pub struct OuterThetaLayout {
pub n_params: usize,
pub psi_dim: usize,
}Fields§
§n_params: usize§psi_dim: usizeImplementations§
Source§impl OuterThetaLayout
impl OuterThetaLayout
pub const fn new(n_params: usize, psi_dim: usize) -> Self
pub const fn rho_dim(&self) -> usize
Sourcepub const fn coordinate_is_log_smoothing(&self, k: usize) -> bool
pub const fn coordinate_is_log_smoothing(&self, k: usize) -> bool
Does outer coordinate k parameterize a smoothing parameter as
λ = e^ρ?
The θ vector is one contiguous array under one box, and every layer that reasons about a bound — the projector, the active set, the PSD sub-block — is right to treat all of it alike: a box constraint is a statement about a coordinate, not about what the coordinate means.
The asymptote/tail law is not that kind of rule. ĉ = ∓e^{±ρ}·∂V/∂ρ
is derived from λ = e^ρ together with the REML criterion’s O(1/λ)
behaviour, and it exists because the ρ box is a proxy for a limit
the search can never actually reach: λ = ∞ is at ρ = ∞, so the
remaining gap to the optimum has to be extrapolated rather than
observed. A ψ coordinate is a different quantity — a sectional
curvature, a log length-scale, a measure exponent — and its box is a
real constraint (chart validity, s ∈ (0, 2)) whose endpoint a
point can sit exactly on. There the ordinary complementarity the
projector already applies IS the first-order certificate, and
exponentiating the coordinate has no derivation at all (#2453).
Answering this question by position is exactly what makes it a
question about the quantity: psi_dim is declared by the call site
that knows what it put in each slot, and the trailing block is the ψ
block by construction.
Trait Implementations§
Source§impl Clone for OuterThetaLayout
impl Clone for OuterThetaLayout
Source§fn clone(&self) -> OuterThetaLayout
fn clone(&self) -> OuterThetaLayout
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 OuterThetaLayout
Source§impl Debug for OuterThetaLayout
impl Debug for OuterThetaLayout
impl Eq for OuterThetaLayout
Source§impl PartialEq for OuterThetaLayout
impl PartialEq for OuterThetaLayout
impl StructuralPartialEq for OuterThetaLayout
Auto Trait Implementations§
impl Freeze for OuterThetaLayout
impl RefUnwindSafe for OuterThetaLayout
impl Send for OuterThetaLayout
impl Sync for OuterThetaLayout
impl Unpin for OuterThetaLayout
impl UnsafeUnpin for OuterThetaLayout
impl UnwindSafe for OuterThetaLayout
Blanket Implementations§
impl<T> Allocation for T
impl<T> Boilerplate 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,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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,
impl<T> Scalar for T
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.