t3toolbox.uniform_tucker_tensor_train.ut3_entries#

t3toolbox.uniform_tucker_tensor_train.ut3_entries(x: UniformTuckerTensorTrain, index: t3toolbox.backend.common.NDArray, use_jax: bool = False) t3toolbox.backend.common.NDArray#

Compute entry (entries) of a uniform Tucker tensor train.

If index is outside the tensor, the result is undefined. In this case, the function may either return a meaningless number, or raise an error.

Examples

>>> import numpy as np
>>> import t3toolbox.tucker_tensor_train as t3
>>> import t3toolbox.uniform_tucker_tensor_train as ut3
>>> x = t3.t3_corewise_randn((14,15,16), (4,5,3), (1,4,2,1)) # T3
>>> index = (3,1,2)
>>> x_312 = t3.t3_entries(x, index)
>>> print(x_312) # (3,1,2) entry from T3:
58.91320690249439
>>> uniform_x = ut3.t3_to_ut3(x) # Convert to Uniform T3
>>> x_312_uniform = ut3.ut3_entries(uniform_x, index) # (3,1,2) entry from uniform T3:
>>> print(x_312_uniform)
58.91320690249439

Multiple entries:

>>> import numpy as np
>>> import t3toolbox.tucker_tensor_train as t3
>>> import t3toolbox.uniform_tucker_tensor_train as ut3
>>> x = t3.t3_corewise_randn((14,15,16), (4,5,3), (1,4,2,1))
>>> index = ((3,9), (1,8), (2,7))
>>> x_312_987 = t3.t3_entries(x, index)
>>> print(x_312_987)
[-13.31445318 -16.95641076]
>>> uniform_x = ut3.t3_to_ut3(x)
>>> x_312_987_uniform = ut3.ut3_entries(uniform_x, index)
>>> print(x_312_987_uniform)
[-13.31445318 -16.95641076]

Multiple entries, multiple T3s:

>>> import numpy as np
>>> import t3toolbox.tucker_tensor_train as t3
>>> import t3toolbox.uniform_tucker_tensor_train as ut3
>>> x = t3.t3_corewise_randn((14,15,16), (4,5,3), (1,4,2,1), stack_shape=(3,))
>>> index = ((3,9), (1,8), (2,7))
>>> x_312_987 = t3.t3_entries(x, index)
>>> print(x_312_987)
[[ 13.37754112 -14.2301319 ]
 [ 10.34271727   9.07781055]
 [ -3.47189513 -21.14557063]]
>>> uniform_x = ut3.t3_to_ut3(x)
>>> x_312_987_uniform = ut3.ut3_entries(uniform_x, index)
>>> print(x_312_987_uniform)
[[ 13.37754112 -14.2301319 ]
 [ 10.34271727   9.07781055]
 [ -3.47189513 -21.14557063]]