T3FrameWeights#
- class t3toolbox.frame_variations_format.T3FrameWeights#
Diagonal weights defining a metric on the tangent coordinates – a Grasedyck-Kramer-style reweighting of the
dvariation directions (penalise poorly-informed ones with e.g.1/sigma).Four families, each
len=d(one per variation core, Approach-1 / metric-on-variations):up(onH’snUleg),down(onV’snDleg),left(H’srL),right(H’srR).T3Tangent.weighted_norm()/weighted_inner()absorb these into the variation cores and take the coordinate norm/inner – the frame stays orthonormal and untouched.Batching: a weight is FRAME-like (it is absorbed into the variations, but it batches with the frame – do not conflate the two). Every vector is
stack_shape + (rank,), and that stack is the frame stackC, likeT3Frame– not the variations’K + C: a weight is one metric per base point, shared by allKtangent vectors at that frame, and it broadcasts overKfor free (Cis innermost). Pairing with variations alone follows the same trailing-stack rule ascheck_fv_pair()(the weight’s stack is the trailing/inner part of the variation stack); at the tangent level, where the frame is present too,check_fw_pair()enforces the exactweights.stack_shape == frame.stack_shape.
Methods#
|
|
|
|
|
|
|
Structural: four families each of length d, and one uniform stack_shape on every vector. |
|
True iff these weights match the variation ranks + stack of a |
Elementwise |
|
|
Elementwise |
|
Reverse the mode order, swapping |
|
Per-edge concatenation (the |
|
Per-edge Kronecker product (the Hadamard combine; ranks multiply). |
|
Unstack a stack of frame-weights into an array-like tree (mirrors |
|
Stack an array-like tree of frame-weights into one (mirrors |
|
Build a tangent metric from base-point edge weights (e.g. |