pub struct CertifiedChart {
pub region: ChartRegion,
pub lipschitz: f64,
pub beta_center: f64,
pub certified_radius: f64,
pub amortized_jacobian: Option<Array2<f64>>,
pub recon_center: Array1<f64>,
}Expand description
One offline-certified chart: a center, its Kantorovich constants, and the
certified Newton-convergence radius R_c solved from h = β·η·L ≤ ½ at the
worst-case in-chart start.
Fields§
§region: ChartRegion§lipschitz: f64Closed-form Hessian-Lipschitz constant L over the chart.
beta_center: f64β = ‖F'(t_c)⁻¹‖ at the chart center (worst-case in-chart start uses
the center’s curvature; the radius is solved so the certificate holds for
any start in the ball).
certified_radius: f64Certified Newton radius: starts within radius of t_c satisfy h ≤ ½.
amortized_jacobian: Option<Array2<f64>>Distilled amortized-encoder Jacobian for this chart (#1026 ladder item 3).
The exact encode map x ↦ t solves F(t; x) = J_m(t)ᵀ(m(t) − x) = 0. By
the implicit function theorem its derivative at the converged root is
dt/dx = −(∂_t F)⁻¹ (∂_x F) = H⁻¹ J_m (since ∂_x F = −J_m), so the
first-order Taylor expansion of the encode map about this chart’s center
t_c is the closed-form AFFINE predictor
t(x) ≈ t_c + (1/z) · A₁ · (x − z · m₁(t_c)), A₁ = (J₁ᵀJ₁ + ridge·I)⁻¹ J₁,with J₁ = Bᵀ J_Φ(t_c) and m₁(t_c) = BᵀΦ(t_c) the AMPLITUDE-1
reconstruction jets (the amplitude z factors out analytically, so the
stored Jacobian is amplitude-free). This is the DISTILLED amortized
encoder of the #1026 thread: the per-row Hessian factorization + Newton
iteration is moved OFFLINE into this d × p matrix, leaving a single
O(d·p) mat-vec online — no per-row eigendecomposition, no second-jet
evaluation. The Kantorovich certificate is still evaluated AT the
predicted start, so the amortized prediction is trusted iff h ≤ ½ and an
uncertified row still routes to the exact multi-start solve (the encoder
approximates inference, the certificate keeps it honest — the thread’s
“encoder + certificate-gated exact fallback” deployment). None when the
center’s Gauss–Newton block is singular (no certifiable amortization).
recon_center: Array1<f64>Amplitude-1 chart-center reconstruction m₁(t_c) = BᵀΦ(t_c) (length p),
the anchor the amortized predictor expands the encode map around.
Trait Implementations§
Source§impl Clone for CertifiedChart
impl Clone for CertifiedChart
Source§fn clone(&self) -> CertifiedChart
fn clone(&self) -> CertifiedChart
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 CertifiedChart
impl RefUnwindSafe for CertifiedChart
impl Send for CertifiedChart
impl Sync for CertifiedChart
impl Unpin for CertifiedChart
impl UnsafeUnpin for CertifiedChart
impl UnwindSafe for CertifiedChart
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.