T3Variations ============ .. toctree:: :hidden: /autoapi/t3toolbox/frame_variations_format/T3Variations.d /autoapi/t3toolbox/frame_variations_format/T3Variations.shape /autoapi/t3toolbox/frame_variations_format/T3Variations.stack_shape /autoapi/t3toolbox/frame_variations_format/T3Variations.variation_shapes /autoapi/t3toolbox/frame_variations_format/T3Variations.data /autoapi/t3toolbox/frame_variations_format/T3Variations.to_jax /autoapi/t3toolbox/frame_variations_format/T3Variations.to_numpy /autoapi/t3toolbox/frame_variations_format/T3Variations.copy /autoapi/t3toolbox/frame_variations_format/T3Variations.contains_jax /autoapi/t3toolbox/frame_variations_format/T3Variations.size /autoapi/t3toolbox/frame_variations_format/T3Variations.data_size /autoapi/t3toolbox/frame_variations_format/T3Variations.__repr__ /autoapi/t3toolbox/frame_variations_format/T3Variations.validate /autoapi/t3toolbox/frame_variations_format/T3Variations.__post_init__ /autoapi/t3toolbox/frame_variations_format/T3Variations.unstack /autoapi/t3toolbox/frame_variations_format/T3Variations.stack /autoapi/t3toolbox/frame_variations_format/T3Variations.zeros /autoapi/t3toolbox/frame_variations_format/T3Variations.randn /autoapi/t3toolbox/frame_variations_format/T3Variations.unit /autoapi/t3toolbox/frame_variations_format/T3Variations.zeros_like /autoapi/t3toolbox/frame_variations_format/T3Variations.randn_like /autoapi/t3toolbox/frame_variations_format/T3Variations.to_vector /autoapi/t3toolbox/frame_variations_format/T3Variations.from_vector /autoapi/t3toolbox/frame_variations_format/T3Variations.save /autoapi/t3toolbox/frame_variations_format/T3Variations.load /autoapi/t3toolbox/frame_variations_format/T3Variations.reverse /autoapi/t3toolbox/frame_variations_format/T3Variations.sum_stack /autoapi/t3toolbox/frame_variations_format/T3Variations.__add__ /autoapi/t3toolbox/frame_variations_format/T3Variations.__sub__ /autoapi/t3toolbox/frame_variations_format/T3Variations.__mul__ /autoapi/t3toolbox/frame_variations_format/T3Variations.__neg__ /autoapi/t3toolbox/frame_variations_format/T3Variations.allclose .. py:class:: t3toolbox.frame_variations_format.T3Variations Tuple containing variation cores for frame-variation representations of TuckerTensorTrains. *Components* - tucker_variations = (V0, ..., V(d-1)), elm_shape=stack_shape+(nDi, Ni) - tt_variations = (H0, ..., H(d-1)), elm_shape=stack_shape+(rLi, nUi, rRi) The variations should fit in the "holes" of a T3Frame. .. seealso:: :py:obj:`T3Frame` .. rubric:: Examples Build variations that fill the holes of a base point (so ``check_fv_pair`` accepts them): >>> import numpy as np >>> import t3toolbox.frame_variations_format as bvf >>> ss = (2, 3) # stack shape, shared by frame and variations >>> up_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))) >>> down_tt_cores = (np.ones(ss+(1, 9, 4)), np.ones(ss+(2, 8, 5)), np.ones(ss+(3, 7, 1))) >>> frame = bvf.T3Frame(up_tucker_cores, down_tt_cores, left_tt_cores, right_tt_cores) >>> tucker_shapes, tt_shapes = frame.variation_shapes # the holes to fill >>> tucker_variations = tuple(np.ones(ss + s) for s in tucker_shapes) >>> tt_variations = tuple(np.ones(ss + s) for s in tt_shapes) >>> variations = bvf.T3Variations(tucker_variations, tt_variations) >>> print(variations.variation_shapes == frame.variation_shapes) # fits the frame's holes exactly True .. py:attribute:: tucker_variations :type: t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.NDArray, Ellipsis] .. py:attribute:: tt_variations :type: t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.NDArray, Ellipsis] .. py:attribute:: __rmul__ Methods ------- .. autoapisummary:: t3toolbox.frame_variations_format.T3Variations.d t3toolbox.frame_variations_format.T3Variations.shape t3toolbox.frame_variations_format.T3Variations.stack_shape t3toolbox.frame_variations_format.T3Variations.variation_shapes t3toolbox.frame_variations_format.T3Variations.data t3toolbox.frame_variations_format.T3Variations.to_jax t3toolbox.frame_variations_format.T3Variations.to_numpy t3toolbox.frame_variations_format.T3Variations.copy t3toolbox.frame_variations_format.T3Variations.contains_jax t3toolbox.frame_variations_format.T3Variations.size t3toolbox.frame_variations_format.T3Variations.data_size t3toolbox.frame_variations_format.T3Variations.__repr__ t3toolbox.frame_variations_format.T3Variations.validate t3toolbox.frame_variations_format.T3Variations.__post_init__ t3toolbox.frame_variations_format.T3Variations.unstack t3toolbox.frame_variations_format.T3Variations.stack t3toolbox.frame_variations_format.T3Variations.zeros t3toolbox.frame_variations_format.T3Variations.randn t3toolbox.frame_variations_format.T3Variations.unit t3toolbox.frame_variations_format.T3Variations.zeros_like t3toolbox.frame_variations_format.T3Variations.randn_like t3toolbox.frame_variations_format.T3Variations.to_vector t3toolbox.frame_variations_format.T3Variations.from_vector t3toolbox.frame_variations_format.T3Variations.save t3toolbox.frame_variations_format.T3Variations.load t3toolbox.frame_variations_format.T3Variations.reverse t3toolbox.frame_variations_format.T3Variations.sum_stack t3toolbox.frame_variations_format.T3Variations.__add__ t3toolbox.frame_variations_format.T3Variations.__sub__ t3toolbox.frame_variations_format.T3Variations.__mul__ t3toolbox.frame_variations_format.T3Variations.__neg__ t3toolbox.frame_variations_format.T3Variations.allclose