pub struct OuterResult {
pub rho: Array1<f64>,
pub final_value: f64,
pub iterations: usize,
pub final_grad_norm: Option<f64>,
pub final_gradient: Option<Array1<f64>>,
pub final_hessian: Option<Array2<f64>>,
pub converged: bool,
pub plan_used: OuterPlan,
pub operator_trust_radius: Option<f64>,
pub operator_stop_reason: Option<OperatorTrustRegionStopReason>,
pub criterion_certificate: Option<CriterionCertificate>,
pub rho_uncertainty_diagnostic: Option<RhoUncertaintyDiagnostic>,
}Expand description
Result of a completed outer optimization.
Fields§
§rho: Array1<f64>Optimized log-smoothing parameters.
final_value: f64Final objective value.
iterations: usizeTotal outer iterations across all solver restarts.
final_grad_norm: Option<f64>Final gradient norm, when the solver computed an actual gradient.
final_gradient: Option<Array1<f64>>Final gradient when the solver is gradient-based.
final_hessian: Option<Array2<f64>>Final Hessian when the solver tracks one.
converged: boolWhether the optimizer converged to a stationary point.
plan_used: OuterPlanWhich plan was actually used (may differ from initial if fallback fired).
operator_trust_radius: Option<f64>Final trust radius for the internal operator trust-region solver.
A non-converged operator-ARC attempt may be restarted by the budget ladder. Restarting only from the last θ but resetting the trust radius is not a warm start: it replays the same rejected large trial steps. Carry this globalization state so retries resume from the scale the previous attempt already learned.
operator_stop_reason: Option<OperatorTrustRegionStopReason>Why the internal operator trust-region solver stopped.
criterion_certificate: Option<CriterionCertificate>First-order optimality self-audit at the returned point (#934).
None when no analytic gradient was measured at termination
(gradient-free solvers, cache-hit short-circuits, per-atom EFS) or
when an audit probe failed to evaluate. Populated once by
[run_outer] after the solver ladder returns, outside all hot loops.
rho_uncertainty_diagnostic: Option<RhoUncertaintyDiagnostic>Post-fit PSIS diagnostic for whether sampled smoothing-parameter weights
show evidence that plug-in REML/LAML intervals are unreliable. Populated
once by [run_outer] when the exact rho Hessian is cheap enough to use.
Implementations§
Source§impl OuterResult
impl OuterResult
pub fn new( rho: Array1<f64>, final_value: f64, iterations: usize, converged: bool, plan_used: OuterPlan, ) -> Self
Sourcepub fn final_grad_norm_report(&self) -> String
pub fn final_grad_norm_report(&self) -> String
Human-readable rendering of final_grad_norm for diagnostics. Returns
"n/a" when no gradient was measured (gradient-free / cache-hit paths).
Trait Implementations§
Source§impl Clone for OuterResult
impl Clone for OuterResult
Source§fn clone(&self) -> OuterResult
fn clone(&self) -> OuterResult
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 OuterResult
impl RefUnwindSafe for OuterResult
impl Send for OuterResult
impl Sync for OuterResult
impl Unpin for OuterResult
impl UnsafeUnpin for OuterResult
impl UnwindSafe for OuterResult
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.