pub struct OuterGradientFdRecord {Show 13 fields
pub theta: Array1<f64>,
pub rho_dim: usize,
pub psi_dim: usize,
pub cost: f64,
pub analytic_psi_gradient: Array1<f64>,
pub finite_difference_psi_gradient: Array1<f64>,
pub psi_steps: Array1<f64>,
pub psi_fd_uncertainty: Array1<f64>,
pub psi_fd_orders: Vec<usize>,
pub psi_gram_anchor_deltas: Option<(f64, f64)>,
pub decomposition: OuterGradientFdDecomposition,
pub rho: Option<OuterGradientFdRhoBlock>,
pub curvature: Option<OuterCurvatureDriftAudit>,
}Expand description
Analytic-vs-finite-difference evidence for the ψ block at one real outer seed.
theta retains the complete outer seed and rho_dim locates the ψ block in
that seed. Every gradient and scalar-stencil array contains exactly
psi_dim entries in ψ-local order. Smoothing-parameter ρ coordinates are
deliberately excluded: the κ/geometry gates that request this record do not
grade them, and each unnecessary finite-difference coordinate costs two
complete inner profiles.
Fields§
§theta: Array1<f64>§rho_dim: usize§psi_dim: usize§cost: f64§analytic_psi_gradient: Array1<f64>§finite_difference_psi_gradient: Array1<f64>§psi_steps: Array1<f64>§psi_fd_uncertainty: Array1<f64>Ridders’ estimate of each ψ finite difference’s OWN error, and the
truncation order of the accepted extrapolant (2 is a raw stencil, 4
one Richardson stage, …).
Present because a finite difference is an estimator: without it a
consumer cannot tell an analytic-gradient defect from its own oracle’s
truncation, and has to grade at whatever tolerance the worst step
happens to need — which is how these gates ended up at 5e-2 (#2461).
f64::INFINITY marks a coordinate the ladder could not resolve; such a
component says nothing about the analytic gradient.
psi_fd_orders: Vec<usize>§psi_gram_anchor_deltas: Option<(f64, f64)>Max-abs of the #1033b psi-Gram anchor correction applied to the
criterion’s VALUE at this seed, as (gram_delta, rhs_delta).
joint_hyper pins the n-free tensor to the exactly streamed statistics
by adding a constant offset measured at one reference psi, then installs
the derivative of the UNCORRECTED tensor. A constant removes nothing from
a derivative, so a non-zero value here is the tensor’s own value error at
this seed and its SLOPE error is loose in the gradient lane (#2464).
None means the correction never ran on this seed – NOT that it ran and
was zero. The distinction is the whole point of the field: a probe that
reports 0.0 for “never fired” is unfalsifiable, and reading an absent
emission as a measured zero is exactly how this quantity was first
mis-measured.
decomposition: OuterGradientFdDecompositionThe per-atom breakdown of the same comparison, when the objective’s criterion is assembled from atoms at all.
rho: Option<OuterGradientFdRhoBlock>The SAME comparison for the ρ (log-smoothing) block, when the caller
armed enable_outer_gradient_fd_capture_over_theta.
None is the default and means the ρ coordinates were not differenced —
NOT that they agreed. The two blocks are separate fields rather than one
θ-indexed array because grading ρ is a deliberate, expensive opt-in: each
coordinate costs a full Ridders ladder of inner profiles, and the shipped
κ/geometry gates that consume the ψ block do not grade ρ.
curvature: Option<OuterCurvatureDriftAudit>The curvature the logdet_h atom is taken on, differenced as a MATRIX
against the analytic drift the same evaluation published (#2765).
None when the backend cannot hand out a dense H. See
OuterCurvatureDriftAudit for why a scalar-only audit cannot decide
what this decides.
Trait Implementations§
Source§impl Clone for OuterGradientFdRecord
impl Clone for OuterGradientFdRecord
Source§fn clone(&self) -> OuterGradientFdRecord
fn clone(&self) -> OuterGradientFdRecord
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 OuterGradientFdRecord
impl RefUnwindSafe for OuterGradientFdRecord
impl Send for OuterGradientFdRecord
impl Sync for OuterGradientFdRecord
impl Unpin for OuterGradientFdRecord
impl UnsafeUnpin for OuterGradientFdRecord
impl UnwindSafe for OuterGradientFdRecord
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.