pub struct FrameInnerRotationGauge {
pub per_atom_ranks: Vec<usize>,
pub dim: usize,
}Expand description
The #972 decoder-frame inner-rotation gauge, enumerated for the certificate.
A frame-factored atom B_k = U_k C_k is exactly invariant under
U_k → U_k R, C_k → Rᵀ C_k for any R ∈ O(r_k): the reconstruction,
the likelihood, the penalty — every objective term — sees only the
product. Unlike the latent-isometry / ARD-rotation / permutation
generators, this freedom is therefore not a candidate to be pinned by
data or penalty curvature (its orbit direction is identically zero in
function space), so running it through the pinning-span test would be a
category error: it would always come back “unpinned” and pollute the
verdict list with freedoms the parameterization already handles. The
honest certificate treatment is what this struct is: enumerate the
group and its dimension Σ_k r_k(r_k−1)/2, and record how it is fixed —
by the canonical orientation gauge
(crate::manifold::GrassmannFrame’s SVD-ordered
representative), which picks one point per O(r_k) orbit for
serialization/comparison stability.
Fields§
§per_atom_ranks: Vec<usize>Active frame rank r_k per frame-factored atom (atoms on the full-B
path contribute no entry).
dim: usizeTotal group dimension Σ_k r_k (r_k − 1) / 2 (dim O(r) = r(r−1)/2).
Implementations§
Source§impl FrameInnerRotationGauge
impl FrameInnerRotationGauge
Sourcepub fn from_ranks(per_atom_ranks: Vec<usize>) -> Self
pub fn from_ranks(per_atom_ranks: Vec<usize>) -> Self
Enumerate the gauge from the active frame ranks.
Trait Implementations§
Source§impl Clone for FrameInnerRotationGauge
impl Clone for FrameInnerRotationGauge
Source§fn clone(&self) -> FrameInnerRotationGauge
fn clone(&self) -> FrameInnerRotationGauge
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for FrameInnerRotationGauge
impl Debug for FrameInnerRotationGauge
impl Eq for FrameInnerRotationGauge
Source§impl PartialEq for FrameInnerRotationGauge
impl PartialEq for FrameInnerRotationGauge
Source§fn eq(&self, other: &FrameInnerRotationGauge) -> bool
fn eq(&self, other: &FrameInnerRotationGauge) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for FrameInnerRotationGauge
Auto Trait Implementations§
impl Freeze for FrameInnerRotationGauge
impl RefUnwindSafe for FrameInnerRotationGauge
impl Send for FrameInnerRotationGauge
impl Sync for FrameInnerRotationGauge
impl Unpin for FrameInnerRotationGauge
impl UnsafeUnpin for FrameInnerRotationGauge
impl UnwindSafe for FrameInnerRotationGauge
Blanket Implementations§
impl<T> Allocation for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
impl<T, U> Imply<T> for U
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
impl<T> Scalar for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.