Trait argmin::core::ArgminOp [−][src]
pub trait ArgminOp { type Param: Clone + Serialize + DeserializeOwned; type Output: Clone + Serialize + DeserializeOwned; type Hessian: Clone + Serialize + DeserializeOwned; type Jacobian: Clone + Serialize + DeserializeOwned; type Float: ArgminFloat; fn apply(&self, _param: &Self::Param) -> Result<Self::Output, Error> { ... } fn gradient(&self, _param: &Self::Param) -> Result<Self::Param, Error> { ... } fn hessian(&self, _param: &Self::Param) -> Result<Self::Hessian, Error> { ... } fn jacobian(&self, _param: &Self::Param) -> Result<Self::Jacobian, Error> { ... } fn modify(
&self,
_param: &Self::Param,
_extent: Self::Float
) -> Result<Self::Param, Error> { ... } }
Expand description
This trait needs to be implemented for every operator/cost function.
It is required to implement the apply
method, all others are optional and provide a default
implementation which is essentially returning an error which indicates that the method has not
been implemented. Those methods (gradient
and modify
) only need to be implemented if the
uses solver requires it.
Associated Types
type Param: Clone + Serialize + DeserializeOwned
type Param: Clone + Serialize + DeserializeOwned
Type of the parameter vector
type Output: Clone + Serialize + DeserializeOwned
type Output: Clone + Serialize + DeserializeOwned
Output of the operator
type Hessian: Clone + Serialize + DeserializeOwned
type Hessian: Clone + Serialize + DeserializeOwned
Type of Hessian
type Jacobian: Clone + Serialize + DeserializeOwned
type Jacobian: Clone + Serialize + DeserializeOwned
Type of Jacobian
type Float: ArgminFloat
type Float: ArgminFloat
Precision of floats
Provided methods
Applies the operator/cost function to parameters
Computes the gradient at the given parameters
Computes the Hessian at the given parameters
Computes the Hessian at the given parameters
Implementors
impl<T, U, H, J, F> ArgminOp for NoOperator<T, U, H, J, F> where
T: Clone + Default + Debug + Send + Sync + Serialize + DeserializeOwned,
U: Clone + Default + Debug + Send + Sync + Serialize + DeserializeOwned,
H: Clone + Default + Debug + Send + Sync + Serialize + DeserializeOwned,
J: Clone + Default + Debug + Send + Sync + Serialize + DeserializeOwned,
F: ArgminFloat,