T3Variations.unit#

static t3toolbox.frame_variations_format.T3Variations.unit(variation_shapes, index, stack_shape=(), use_jax=False)#
def unit(
        variation_shapes,                                       # (tucker_variation_shapes, tt_variation_shapes)
        index:          typ.Tuple[bool, int, typ.Sequence[int]],  # (use_tt_coordinate, i, within_index)
        stack_shape:    typ.Tuple[int, ...] = (),               # full leading stack K + C
        use_jax:        bool = False,
) -> 'T3Variations':

Canonical unit variation: zero except a single core entry set to 1.

index = (use_tt_coordinate, i, within_index) selects the core (a tt-variation if use_tt_coordinate else a tucker-variation), its position i, and the within-core index. These units are the standard basis of the variation cores – an overcomplete, non-ambient- orthogonal generating set of the tangent space, not an orthonormal basis.

Parameters:
  • index (t3toolbox.backend.common.typ.Tuple[bool, int, t3toolbox.backend.common.typ.Sequence[int]])

  • stack_shape (t3toolbox.backend.common.typ.Tuple[int, Ellipsis])

  • use_jax (bool)

Return type:

T3Variations