utv_project_ut3_onto_tangent_space ================================== .. py:function:: t3toolbox.backend.utv_operations.utv_project_ut3_onto_tangent_space(frame_data, x_data) .. code-block:: python def utv_project_ut3_onto_tangent_space( frame_data, # UT3Frame .data (an orthogonal frame), supercore stack = C x_data, # UniformTuckerTensorTrain .data to project, supercore stack = C ): # -> gauged variations .data (the orthogonal projection of x onto the tangent space at the frame) Orthogonal projection of a uniform Tucker tensor train onto the tangent space at an orthogonal frame (the uniform mirror of :py:func:`tv_operations.tv_project_t3_onto_tangent_space`). Returns gauged variations representing the projection of ``x`` *directly* onto the tangent space (the linear subspace; it does NOT subtract the base point). The frame must be orthogonal (minimal rank not required). Mask-once up front, then: re-express ``x``'s TT cores in the frame's up-Tucker basis (a per-core map vectorized over ``d``); accumulate the left/right TT environments with the polymorphic :py:func:`tv_operations.tt_zipper_*` (uniform ``xscan``, mask-free since the operands are masked); contract each environment into the ungauged Tucker/TT variations (a ``d``-axis map); then gauge.