pub struct EncodeAtomDevice {
pub d: usize,
pub m: usize,
pub p: usize,
pub topk: usize,
pub newton_steps: usize,
pub ridge: f64,
pub exponents: Vec<i32>,
pub decoder: Vec<f64>,
pub charts: Vec<EncodeChartDevice>,
}Expand description
One EuclideanPatch atom’s frozen encode data, flattened for a device
launch. This is exactly what the online encode reads: the monomial exponent
table, the decoder B, and the offline-certified charts. Built from a real
atom + its AtomEncodeAtlas by EncodeAtomDevice::from_atom_atlas so
the device path consumes the identical data the CPU path does.
Fields§
§d: usizeLatent dimension d.
m: usizeBasis size m (number of monomials of total degree ≤ degree).
p: usizeOutput dimension p.
topk: usizeNumber of nearest charts refined per row (CERTIFIED_ROUTING_TOPK).
newton_steps: usizeOnline Newton refinement steps after a certified landing.
ridge: f64Levenberg ridge added to the per-row Hessian diagonal.
exponents: Vec<i32>Monomial exponents, row-major exponents[col*d + axis], length m*d.
decoder: Vec<f64>Decoder B, row-major decoder[basis*p + out], length m*p.
charts: Vec<EncodeChartDevice>Charts (routing + warm-start + certificate constants).
Implementations§
Source§impl EncodeAtomDevice
impl EncodeAtomDevice
Sourcepub fn from_atom_atlas(
atom: &SaeManifoldAtom,
atom_atlas: &AtomEncodeAtlas,
config: &AtlasConfig,
) -> Result<Self, String>
pub fn from_atom_atlas( atom: &SaeManifoldAtom, atom_atlas: &AtomEncodeAtlas, config: &AtlasConfig, ) -> Result<Self, String>
Extract the device encode data from a real EuclideanPatch atom and its
offline atlas. Recomputes the monomial exponent table (the atom’s own
basis design) so the on-device evaluation is the SAME polynomial the host
EuclideanPatchEvaluator evaluates.
Trait Implementations§
Source§impl Clone for EncodeAtomDevice
impl Clone for EncodeAtomDevice
Source§fn clone(&self) -> EncodeAtomDevice
fn clone(&self) -> EncodeAtomDevice
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for EncodeAtomDevice
impl RefUnwindSafe for EncodeAtomDevice
impl Send for EncodeAtomDevice
impl Sync for EncodeAtomDevice
impl Unpin for EncodeAtomDevice
impl UnsafeUnpin for EncodeAtomDevice
impl UnwindSafe for EncodeAtomDevice
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,
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,
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.