Skip to main content

PreparedRietveldObjective

Struct PreparedRietveldObjective 

Source
pub struct PreparedRietveldObjective { /* private fields */ }
Expand description

Reusable structural values and derivative products for one accepted state.

Implementations§

Source§

impl PreparedRietveldObjective

Source

pub fn new( input: RietveldInput, options: RietveldCalculationOptions, layout: RietveldStructuralLayout, ) -> Result<Self, RietveldObjectiveError>

Validate and prepare one structural-only matrix-free objective.

§Errors

Returns RietveldObjectiveError for invalid inputs or preparation.

Source

pub const fn layout(&self) -> &RietveldStructuralLayout

Borrow the stable physical structural layout.

Source

pub fn dense_element_count(&self) -> Result<usize, RietveldObjectiveError>

Return the native dense element count required by Self::linearize.

§Errors

Returns RietveldObjectiveError::AllocationOverflow when the product is not representable as usize.

Source

pub fn linearize( &self, ) -> Result<PreparedRietveldLinearization, RietveldObjectiveError>

Materialize one reusable physical structural Jacobian and calculation.

Values and native analytical derivatives are produced in the same fused engine pass. The layout then projects native rows into stable physical parameter order.

§Errors

Returns RietveldObjectiveError for engine, shape, projection, or calculation failures.

Source

pub fn jvp( &self, direction: &[f64], ) -> Result<(Vec<f64>, Vec<f64>), RietveldObjectiveError>

Calculate the structural profile and its physical directional derivative.

§Errors

Returns RietveldObjectiveError for direction or engine failures.

Source

pub fn vjp( &self, sample_weights: &[f64], ) -> Result<Vec<f64>, RietveldObjectiveError>

Apply the physical structural pattern Jacobian transpose.

§Errors

Returns RietveldObjectiveError for weight or engine failures.

Source

pub fn normal_product( &self, direction: &[f64], damping: f64, ) -> Result<Vec<f64>, RietveldObjectiveError>

Apply J^T W J + damping I without a dense sample Jacobian.

§Errors

Returns RietveldObjectiveError for invalid damping or product state.

Source

pub fn gradient(&self) -> Result<(Vec<f64>, Vec<f64>), RietveldObjectiveError>

Calculate J^T W (Ycalc - Yobs) and the complete calculated pattern.

§Errors

Returns RietveldObjectiveError for calculation or reverse-product failures.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

Source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

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

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
Source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.