utv_project_ut3_onto_tangent_space#

t3toolbox.backend.utv_operations.utv_project_ut3_onto_tangent_space(frame_data, x_data)#
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 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 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.