t3toolbox.uniform_basis_coordinates_format.UT3Basis#

class t3toolbox.uniform_basis_coordinates_format.UT3Basis#

Basis for basis-coordinates representation of uniform Tucker tensor trains

Uniform version of T3Basis

Examples

>>> import numpy as np
>>> import t3toolbox.basis_coordinates_format as bcf
>>> ss = (2,3)
>>> tucker_cores = (np.ones(ss+(10, 14)), np.ones(ss+(11, 15)), np.ones(ss+(12, 16)))
>>> left_tt_cores = (np.ones(ss+(1, 10, 2)), np.ones(ss+(2, 11, 3)), np.ones(ss+(3,12,5)))
>>> right_tt_cores = (np.ones(ss+(2, 10, 4)), np.ones(ss+(4, 11, 5)), np.ones(ss+(5, 12, 1)))
>>> outer_tt_cores = (np.ones(ss+(1, 9, 4)), np.ones(ss+(2, 8, 5)), np.ones(ss+(3, 7, 1)))
>>> basis = bcf.T3Basis(tucker_cores, left_tt_cores, right_tt_cores, outer_tt_cores)
>>> print(basis.structure)
((14, 15, 16), (10, 11, 12), (1, 2, 3, 5), (2, 4, 5, 1), (9, 8, 7), (2, 3))
>>> print(basis.coordinate_shapes)
(((9, 14), (8, 15), (7, 16)), ((1, 10, 4), (2, 11, 5), (3, 12, 1)))
up_tucker_cores: t3toolbox.backend.common.NDArray#
left_tt_cores: t3toolbox.backend.common.NDArray#
right_tt_cores: t3toolbox.backend.common.NDArray#
down_tt_cores: t3toolbox.backend.common.NDArray#
shape_mask: t3toolbox.backend.common.NDArray#
up_mask: t3toolbox.backend.common.NDArray#
left_mask: t3toolbox.backend.common.NDArray#
right_mask: t3toolbox.backend.common.NDArray#
down_mask: t3toolbox.backend.common.NDArray#
d() int#
N() int#
nU() int#
nD() int#
rL() int#
rR() int#
stack_shape() t3toolbox.backend.common.typ.Tuple[int, Ellipsis]#
uniform_structure() t3toolbox.backend.common.typ.Tuple[int, int, int, int, int, int, t3toolbox.backend.common.typ.Tuple[int, Ellipsis]]#
shape() t3toolbox.backend.common.typ.Tuple[int, Ellipsis]#
up_ranks() t3toolbox.backend.common.NDArray#
down_ranks() t3toolbox.backend.common.NDArray#
left_ranks() t3toolbox.backend.common.NDArray#
right_ranks() t3toolbox.backend.common.NDArray#
structure() t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Tuple[int, Ellipsis], t3toolbox.backend.common.NDArray, t3toolbox.backend.common.NDArray, t3toolbox.backend.common.NDArray, t3toolbox.backend.common.NDArray, t3toolbox.backend.common.typ.Tuple[int, Ellipsis]]#
coordinate_shapes() t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Tuple[int, Ellipsis], Ellipsis], t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Tuple[int, Ellipsis], Ellipsis]]#

T3Coordinates shapes that fit with this T3Basis.

Shapes of the “holes” in the following tensor diagrams:

1 -- L0 -- ( ) -- R2 -- R3 -- 1
     |      |      |      |
     U0     U1     U2     U3
     |      |      |      |

1 -- L0 -- L1 -- O2 -- R3 -- 1
     |     |     |     |
     U0    U1    ( )   U3
     |     |     |     |

Examples

>>> import numpy as np
>>> import t3toolbox.basis_coordinates_format as bcf
>>> ss = (2,3) # not included in coordinate_shapes.
>>> tucker_cores = (np.ones(ss+(10, 14)), np.ones(ss+(11, 15)), np.ones(ss+(12, 16)))
>>> left_tt_cores = (np.ones(ss+(1, 10, 2)), np.ones(ss+(2, 11, 3)), np.ones(ss+(3,12,5)))
>>> right_tt_cores = (np.ones(ss+(2, 10, 4)), np.ones(ss+(4, 11, 5)), np.ones(ss+(5, 12, 1)))
>>> outer_tt_cores = (np.ones(ss+(1, 9, 4)), np.ones(ss+(2, 8, 5)), np.ones(ss+(3, 7, 1)))
>>> basis = bcf.T3Basis(tucker_cores, left_tt_cores, right_tt_cores, outer_tt_cores)
>>> print(basis.coordinate_shapes)
(((9, 14), (8, 15), (7, 16)), ((1, 10, 4), (2, 11, 5), (3, 12, 1)))
data() t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.NDArray, Ellipsis], t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.NDArray, Ellipsis], t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.NDArray, Ellipsis], t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.NDArray, Ellipsis]]#
validate() None#

Check rank and shape consistency of Tucker tensor train basis (T3Basis).

Parameters:

x (T3Basis)

Raises:

ValueError – Error raised if the cores of the T3Basis have inconsistent shapes.

See also

T3Basis, T3Coordinates

__post_init__()#