Trait SecondOrderOptimization

Source
pub trait SecondOrderOptimization<F, H, J, X> {
    // Required method
    fn minimize(
        &self,
        function: impl Fn(&X) -> Result<F, OptimizeError>,
        jacobian: impl Fn(&X) -> Result<J, OptimizeError>,
        hessian: impl Fn(&X) -> Result<H, OptimizeError>,
        initial_guess: X,
        equality_constraint: EqualityConstraint,
        banded: Option<Banded>,
    ) -> Result<X, OptimizeError>;
}
Expand description

Second-order optimization algorithms.

Required Methods§

Source

fn minimize( &self, function: impl Fn(&X) -> Result<F, OptimizeError>, jacobian: impl Fn(&X) -> Result<J, OptimizeError>, hessian: impl Fn(&X) -> Result<H, OptimizeError>, initial_guess: X, equality_constraint: EqualityConstraint, banded: Option<Banded>, ) -> Result<X, OptimizeError>

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<F, H, J, X> SecondOrderOptimization<F, H, J, X> for NewtonRaphson
where H: Hessian, J: Jacobian + Div<H, Output = X>, X: Solution, Vector: From<X>, for<'a> &'a Matrix: Mul<&'a X, Output = Vector>,