Trait varpro::prelude::LeastSquaresProblem

source ·
pub trait LeastSquaresProblem<F, M, N>
where F: ComplexField + Copy, N: Dim, M: Dim,
{ type ResidualStorage: RawStorageMut<F, M> + Storage<F, M> + IsContiguous; type JacobianStorage: RawStorageMut<F, M, N> + Storage<F, M, N> + IsContiguous; type ParameterStorage: RawStorageMut<F, N> + Storage<F, N> + IsContiguous + Clone; // Required methods fn set_params(&mut self, x: &Matrix<F, N, Const<1>, Self::ParameterStorage>); fn params(&self) -> Matrix<F, N, Const<1>, Self::ParameterStorage>; fn residuals(&self) -> Option<Matrix<F, M, Const<1>, Self::ResidualStorage>>; fn jacobian(&self) -> Option<Matrix<F, M, N, Self::JacobianStorage>>; }
Expand description

A least squares minimization problem.

This is what LevenbergMarquardt needs to compute the residuals and the Jacobian. See the module documentation for a usage example.

Required Associated Types§

source

type ResidualStorage: RawStorageMut<F, M> + Storage<F, M> + IsContiguous

Storage type used for the residuals. Use nalgebra::storage::Owned<F, M> if you want to use VectorN or MatrixMN.

source

type JacobianStorage: RawStorageMut<F, M, N> + Storage<F, M, N> + IsContiguous

source

type ParameterStorage: RawStorageMut<F, N> + Storage<F, N> + IsContiguous + Clone

Required Methods§

source

fn set_params(&mut self, x: &Matrix<F, N, Const<1>, Self::ParameterStorage>)

Set the stored parameters $\vec{x}$.

source

fn params(&self) -> Matrix<F, N, Const<1>, Self::ParameterStorage>

Get the current parameter vector $\vec{x}$.

source

fn residuals(&self) -> Option<Matrix<F, M, Const<1>, Self::ResidualStorage>>

Compute the residual vector.

source

fn jacobian(&self) -> Option<Matrix<F, M, N, Self::JacobianStorage>>

Compute the Jacobian of the residual vector.

Implementors§