pub trait MObjFn<U>: Fn(&mut [f64], &[f64], Option<&mut [f64]>, &mut U) { }
Expand description
A trait representing a multi-objective function.
A multi-objective function takes the form of a closure f(result: &mut [f64], x: &[f64], gradient: Option<&mut [f64], user_data: &mut U)
result
-m
-dimensional array to store the valuef(x)
x
-n
-dimensional arraygradient
-n×m
-diconstraint array to store the gradientgrad f(x)
. The n dimension of gradient is stored contiguously, so thatdf_i / dx_j
is stored ingradient[i*n + j]
. Ifgradient
isSome(x)
, the user is required to return a valid gradient, otherwise the optimization will most likely fail.user_data
- user defined data