Skip to main content

FirstOrderOptimization

Trait FirstOrderOptimization 

Source
pub trait FirstOrderOptimization<F, J, X> {
    // Required method
    fn minimize(
        &self,
        function: impl FnMut(&X) -> Result<F, String>,
        jacobian: impl FnMut(&X) -> Result<J, String>,
        initial_guess: X,
        equality_constraint: EqualityConstraint,
    ) -> Result<X, OptimizationError>;
}
Expand description

First-order optimization algorithms.

Required Methods§

Source

fn minimize( &self, function: impl FnMut(&X) -> Result<F, String>, jacobian: impl FnMut(&X) -> Result<J, String>, initial_guess: X, equality_constraint: EqualityConstraint, ) -> Result<X, OptimizationError>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<F, J, X, E> FirstOrderOptimization<F, J, X> for GradientDescent
where F: Erase<Erased = Scalar> + Tensor, <J as Tensor>::Unit: UnitMul<<X as Tensor>::Unit>, <<J as Tensor>::Unit as UnitMul<<X as Tensor>::Unit>>::Output: UnitSum, <<<J as Tensor>::Unit as UnitMul<<X as Tensor>::Unit>>::Output as UnitSum>::Output: Is<<F as Tensor>::Unit>, J: Erase<Erased = E> + Jacobian + Mul<StepSize<J, X>, Output = X>, for<'a> &'a J: Mul<StepSize<J, X>, Output = X>, X: Erase<Erased = E> + Jacobian + Solution, <X as Tensor>::Unit: UnitDiv<<J as Tensor>::Unit>, E: Tensor, for<'a> &'a Matrix: Mul<&'a X, Output = Vector>,