Skip to main content

FirstOrderRootFindingBlock

Trait FirstOrderRootFindingBlock 

Source
pub trait FirstOrderRootFindingBlock<U, V, Ru, Rv, Kuu, Kvu, Kuv, Kvv> {
    // Required method
    fn root_block(
        &self,
        residual_global: impl FnMut(&U, &V) -> Result<Ru, String>,
        residual_local: impl FnMut(&U, &V) -> Result<Rv, String>,
        tangents: impl FnMut(&U, &V) -> Result<(Kuu, Kvu, Kuv, Kvv), String>,
        initial_guess: (U, V),
        constraint_global: (CscMatrix, Vector),
        constraint_local: (CscMatrix, Vector),
        sparse: Option<SparseSolver>,
        strategy: SolveStrategy,
    ) -> Result<(U, V), OptimizationError>;
}
Expand description

First-order root-finding algorithms for problems split into global and local variables.

Required Methods§

Source

fn root_block( &self, residual_global: impl FnMut(&U, &V) -> Result<Ru, String>, residual_local: impl FnMut(&U, &V) -> Result<Rv, String>, tangents: impl FnMut(&U, &V) -> Result<(Kuu, Kvu, Kuv, Kvv), String>, initial_guess: (U, V), constraint_global: (CscMatrix, Vector), constraint_local: (CscMatrix, Vector), sparse: Option<SparseSolver>, strategy: SolveStrategy, ) -> Result<(U, V), OptimizationError>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<U, V, Ru, Rv, Kuu, Kvu, Kuv, Kvv> FirstOrderRootFindingBlock<U, V, Ru, Rv, Kuu, Kvu, Kuv, Kvv> for NewtonRaphson
where U: Solution, V: Solution, Ru: Jacobian, Rv: Jacobian, Kuu: HessianBlock, Kvu: HessianBlock, Kuv: HessianBlock, Kvv: HessianBlock, for<'a> &'a CscMatrix: Mul<&'a U, Output = Vector> + Mul<&'a V, Output = Vector>,