pub enum OuterHessianMaterialization {
Unavailable,
RepeatedHvp,
BatchedHvp,
Explicit,
}Expand description
Exact dense-materialization route exposed by an outer Hessian operator.
The optimizer uses this as a work-model contract before turning a
matrix-free analytic Hessian into a dense ARC model. Unavailable means
callers must stay matrix-free; the remaining variants are all analytic
but differ in how much per-column HVP overhead they imply.
Variants§
Dense materialization is not part of this operator’s contract.
RepeatedHvp
Materialization is exact but implemented by cheap repeated HVP probes.
BatchedHvp
Materialization is exact and can apply many HVP directions together.
Explicit
Materialization is exact and can be assembled without basis probing.
Implementations§
Source§impl OuterHessianMaterialization
impl OuterHessianMaterialization
pub fn is_available(self) -> bool
Trait Implementations§
Source§impl Clone for OuterHessianMaterialization
impl Clone for OuterHessianMaterialization
Source§fn clone(&self) -> OuterHessianMaterialization
fn clone(&self) -> OuterHessianMaterialization
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for OuterHessianMaterialization
Source§impl Debug for OuterHessianMaterialization
impl Debug for OuterHessianMaterialization
impl Eq for OuterHessianMaterialization
Source§impl PartialEq for OuterHessianMaterialization
impl PartialEq for OuterHessianMaterialization
Source§fn eq(&self, other: &OuterHessianMaterialization) -> bool
fn eq(&self, other: &OuterHessianMaterialization) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for OuterHessianMaterialization
Auto Trait Implementations§
impl Freeze for OuterHessianMaterialization
impl RefUnwindSafe for OuterHessianMaterialization
impl Send for OuterHessianMaterialization
impl Sync for OuterHessianMaterialization
impl Unpin for OuterHessianMaterialization
impl UnsafeUnpin for OuterHessianMaterialization
impl UnwindSafe for OuterHessianMaterialization
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
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
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.