CorewiseGeometryOps#

class t3toolbox.backend.geometry.CorewiseGeometryOps#

Bases: t3toolbox.backend.common.ValueHashedFields

The core-parameter Euclidean geometry on raw (tucker_cores, tt_cores) data – the check-free twin of t3toolbox.manifold.COREWISE.

The raw cores ARE the frame (the Section 6.3 substitution (P, Q, O) -> G), there is no gauge, and the retraction is additive (cores += variations). With a non-empty groups the projection is the per-group arithmetic mean (the corewise coordinates are raw factor copies, so that IS the orthogonal projection onto the tied subspace) and the additive retraction preserves tying exactly, so retract only mean-ties its input first – a bitwise no-op on already-tied input.

Secondary to the manifold geometry: its Gauss-Newton Hessian is gauge-singular, which first-order and quasi-Newton methods tolerate but Newton must truncate around.

groups: t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Tuple[int, ...], ...] = ()#

Methods#

with_sharing(sharing, shape)

This geometry restricted to tied Tucker factors (sharing=None gives it back unshared).

frame(x_cores)

The (non-orthonormal) corewise frame: the Section 6.3 substitution (P, Q, O) -> G.

stack_shape(x_cores)

The point's frame stack C. Which axes are the stack is a layout question, so it belongs

base_point(frame)

The point X = (U, G) the frame is attached to (see ManifoldGeometryOps.base_point()).

precompute(frame)

No per-frame companion on this geometry -- the tied mean needs only the static partition.

project(frame, variations[, aux])

The gauge projection: the identity (Euclidean core space), or the per-group mean when tied.

retract(frame, variations[, aux])

The additive retraction (U, G) += variations (mean-tied first when shared, which keeps

inner(a, b)

The Euclidean coordinate <.,.> -- per-element over the leading stacks (shape =

point_norm_sq(x_cores)

Σ‖core_i‖² -- weight decay on the raw cores, per-element over the stack ``C``

point_tangent(frame)

The cores (U, G) as a tangent (the projection is the identity here; X_ref = 0).