pub enum OuterGradientFdDecomposition {
Decomposed(Box<OuterGradientFdAtoms>),
NotDecomposed {
reason: String,
},
}Expand description
Whether the audited criterion decomposes into REML atoms, and the evidence either way (#2460).
The comparison above — one analytic ψ gradient against one Ridders-certified
finite difference of the same objective — is available from any outer
objective that declares a ψ block, because it needs only eval_cost and
eval_with_order. The breakdown below is not: it exists where the criterion
is fixed-β likelihood + ½log|H| − ½log|S|₊ + KKT residual and the evaluator
publishes those atoms as it assembles them.
Routes that evaluate a criterion directly — the constant-curvature fair profile computes its value and derivative in closed form and never enters a REML assembly — have no atoms to publish and no selected coefficient mode to difference. Making the breakdown a PRECONDITION of the measurement is what left those routes with no audit at all, which is the wrong way round: a hand-derived derivative on a bespoke profile is the one that most wants checking.
Variants§
Decomposed(Box<OuterGradientFdAtoms>)
The evaluator published every atom, and each is differenced at the step the Ridders ladder accepted for the total.
NotDecomposed
The evaluator published no atoms, no scalar criterion components and no
selected coefficient mode. reason names the objective so a consumer
reports which route it got rather than an empty array.
A PARTIAL publication is never reported here — it is a defect in an evaluator that means to decompose, and the capture still fails loudly.
Implementations§
Source§impl OuterGradientFdDecomposition
impl OuterGradientFdDecomposition
Sourcepub fn atoms(&self) -> Option<&OuterGradientFdAtoms>
pub fn atoms(&self) -> Option<&OuterGradientFdAtoms>
The atoms, or None where the criterion does not decompose.
Trait Implementations§
Source§impl Clone for OuterGradientFdDecomposition
impl Clone for OuterGradientFdDecomposition
Source§fn clone(&self) -> OuterGradientFdDecomposition
fn clone(&self) -> OuterGradientFdDecomposition
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 OuterGradientFdDecomposition
impl RefUnwindSafe for OuterGradientFdDecomposition
impl Send for OuterGradientFdDecomposition
impl Sync for OuterGradientFdDecomposition
impl Unpin for OuterGradientFdDecomposition
impl UnsafeUnpin for OuterGradientFdDecomposition
impl UnwindSafe for OuterGradientFdDecomposition
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.