pub struct RhoGradientParts {
pub index: usize,
pub lambda: f64,
pub block_quadratic: f64,
pub rank: usize,
pub dim: usize,
pub fixed_beta: f64,
pub logdet_h: f64,
pub frozen_logdet_h: f64,
pub mode_response_logdet_h: f64,
pub logdet_s: f64,
pub total: f64,
}Expand description
One ρ coordinate’s analytic gradient, split into the additive parts that
match the criterion-value components of RemlCriterionComponents.
fixed_beta + logdet_h + logdet_s is the envelope gradient entry as
assembled; total additionally carries any IFT/KKT correction folded in
afterwards, so total − (fixed_beta + logdet_h + logdet_s) is the kkt
part. lambda and block_quadratic are the two raw inputs the
fixed_beta part is built from (½·λ_k·q_k, scaled by the dispersion
channel), retained because a defect that is proportional to λ_k is only
diagnosable against the λ_k it was multiplied by.
Fields§
§index: usize§lambda: f64§block_quadratic: f64§rank: usizerank(S_k) as the outer penalty coordinate represents it (rows of its
root), and the ambient dimension it acts on.
dim: usize§fixed_beta: f64§logdet_h: f64§frozen_logdet_h: f64logdet_h split at the drift: ½ tr(K · λ_k S_k), the half that does
not read the coefficient mode response. Both K and S_k are PSD, so a
NEGATIVE value here is a defect with no oracle required.
mode_response_logdet_h: f64The other half, ½ tr(K · D_β H[v_k]).
logdet_s: f64§total: f64Trait Implementations§
Source§impl Clone for RhoGradientParts
impl Clone for RhoGradientParts
Source§fn clone(&self) -> RhoGradientParts
fn clone(&self) -> RhoGradientParts
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for RhoGradientParts
Auto Trait Implementations§
impl Freeze for RhoGradientParts
impl RefUnwindSafe for RhoGradientParts
impl Send for RhoGradientParts
impl Sync for RhoGradientParts
impl Unpin for RhoGradientParts
impl UnsafeUnpin for RhoGradientParts
impl UnwindSafe for RhoGradientParts
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.