pub struct PreparedGeneralRietveldObjective { /* private fields */ }Expand description
Reusable complete physical objective for one accepted native state.
Implementations§
Source§impl PreparedGeneralRietveldObjective
impl PreparedGeneralRietveldObjective
Sourcepub fn new(
input: RietveldInput,
options: RietveldCalculationOptions,
layout: RietveldParameterLayout,
) -> Result<Self, RietveldGeneralObjectiveError>
pub fn new( input: RietveldInput, options: RietveldCalculationOptions, layout: RietveldParameterLayout, ) -> Result<Self, RietveldGeneralObjectiveError>
Prepare structural products and explicit global/background columns.
The structural Jacobian is materialized when it fits under the default memory ceiling. Larger objectives retain matrix-free structural products; selected experiment/background columns remain explicit.
§Errors
Returns RietveldGeneralObjectiveError for invalid state or derivative
layout mismatches.
Sourcepub fn new_with_max_linearization_elements(
input: RietveldInput,
options: RietveldCalculationOptions,
layout: RietveldParameterLayout,
max_linearization_elements: usize,
) -> Result<Self, RietveldGeneralObjectiveError>
pub fn new_with_max_linearization_elements( input: RietveldInput, options: RietveldCalculationOptions, layout: RietveldParameterLayout, max_linearization_elements: usize, ) -> Result<Self, RietveldGeneralObjectiveError>
Prepare a complete objective under an explicit dense-memory ceiling.
A zero ceiling forces matrix-free products. Requests whose native structural Jacobian fits within the ceiling materialize it once and reuse it for every gradient and normal product at this state.
§Errors
Returns RietveldGeneralObjectiveError for invalid state, derivative
layout mismatches, or failed structural products.
Sourcepub const fn uses_dense_linearization(&self) -> bool
pub const fn uses_dense_linearization(&self) -> bool
Return whether this state reuses a bounded dense structural Jacobian.
Sourcepub const fn preparation_evaluation_count(&self) -> usize
pub const fn preparation_evaluation_count(&self) -> usize
Return expensive model products consumed while preparing the gradient.
Sourcepub const fn normal_product_evaluation_count(&self) -> usize
pub const fn normal_product_evaluation_count(&self) -> usize
Return expensive model products consumed by one normal-product call.
Sourcepub const fn jvp_evaluation_count(&self) -> usize
pub const fn jvp_evaluation_count(&self) -> usize
Return expensive model products consumed by one forward-product call.
Sourcepub const fn layout(&self) -> &RietveldParameterLayout
pub const fn layout(&self) -> &RietveldParameterLayout
Borrow the complete stable physical layout.
Sourcepub const fn calculation(&self) -> &RietveldCalculation
pub const fn calculation(&self) -> &RietveldCalculation
Borrow the accepted-state calculation used for global columns.
Sourcepub fn free_linearization(
&self,
derivative: &ConstraintDerivativeMatrix,
) -> Result<Option<PreparedGeneralFreeLinearization>, RietveldGeneralObjectiveError>
pub fn free_linearization( &self, derivative: &ConstraintDerivativeMatrix, ) -> Result<Option<PreparedGeneralFreeLinearization>, RietveldGeneralObjectiveError>
Project the cached dense objective into weighted scaled-free rows.
Returns None for the bounded matrix-free fallback. The derivative
matrix maps scaled free coordinates to the complete physical layout.
§Errors
Returns RietveldGeneralObjectiveError for incompatible dimensions
or failed dense products.
Sourcepub fn jvp(
&self,
direction: &[f64],
) -> Result<(Vec<f64>, Vec<f64>), RietveldGeneralObjectiveError>
pub fn jvp( &self, direction: &[f64], ) -> Result<(Vec<f64>, Vec<f64>), RietveldGeneralObjectiveError>
Calculate profile values and one complete physical directional derivative.
§Errors
Returns RietveldGeneralObjectiveError for a wrong direction or
numerical product failure.
Sourcepub fn vjp(
&self,
sample_weights: &[f64],
) -> Result<Vec<f64>, RietveldGeneralObjectiveError>
pub fn vjp( &self, sample_weights: &[f64], ) -> Result<Vec<f64>, RietveldGeneralObjectiveError>
Apply the complete physical Jacobian transpose.
§Errors
Returns RietveldGeneralObjectiveError for sample shape or engine
product failures.
Sourcepub fn normal_product(
&self,
direction: &[f64],
damping: f64,
) -> Result<Vec<f64>, RietveldGeneralObjectiveError>
pub fn normal_product( &self, direction: &[f64], damping: f64, ) -> Result<Vec<f64>, RietveldGeneralObjectiveError>
Apply J^T W J + damping I in complete physical coordinates.
§Errors
Returns RietveldGeneralObjectiveError for invalid damping or product
state.
Sourcepub fn gradient(
&self,
) -> Result<(Vec<f64>, Vec<f64>), RietveldGeneralObjectiveError>
pub fn gradient( &self, ) -> Result<(Vec<f64>, Vec<f64>), RietveldGeneralObjectiveError>
Calculate the complete accepted-state gradient.
§Errors
Returns RietveldGeneralObjectiveError for residual or product state.
Auto Trait Implementations§
impl !RefUnwindSafe for PreparedGeneralRietveldObjective
impl !UnwindSafe for PreparedGeneralRietveldObjective
impl Freeze for PreparedGeneralRietveldObjective
impl Send for PreparedGeneralRietveldObjective
impl Sync for PreparedGeneralRietveldObjective
impl Unpin for PreparedGeneralRietveldObjective
impl UnsafeUnpin for PreparedGeneralRietveldObjective
Blanket Implementations§
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
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
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.