pub struct Problem<'a> {
pub f: Option<&'a dyn Fn(&[f64]) -> f64>,
pub residuals: Option<&'a dyn Fn(&[f64]) -> Vec<f64>>,
pub gradient: Option<&'a dyn Fn(&[f64]) -> Vec<f64>>,
pub jacobian: Option<&'a dyn Fn(&[f64]) -> Vec<Vec<f64>>>,
pub x0: Vec<f64>,
pub bounds: Option<Vec<(f64, f64)>>,
pub seed: u64,
}Expand description
An optimization problem: a scalar objective or a residual vector (least squares), whatever derivatives are available, a start, and optional bounds.
Fields§
§f: Option<&'a dyn Fn(&[f64]) -> f64>§residuals: Option<&'a dyn Fn(&[f64]) -> Vec<f64>>§gradient: Option<&'a dyn Fn(&[f64]) -> Vec<f64>>§jacobian: Option<&'a dyn Fn(&[f64]) -> Vec<Vec<f64>>>§x0: Vec<f64>§bounds: Option<Vec<(f64, f64)>>Per-parameter (lo, hi) box, required by differential evolution.
seed: u64RNG seed for stochastic methods (differential evolution).
Implementations§
Source§impl<'a> Problem<'a>
impl<'a> Problem<'a>
Sourcepub fn least_squares(
residuals: &'a dyn Fn(&[f64]) -> Vec<f64>,
x0: Vec<f64>,
) -> Self
pub fn least_squares( residuals: &'a dyn Fn(&[f64]) -> Vec<f64>, x0: Vec<f64>, ) -> Self
A least-squares problem min sum r_i(x)^2.
pub fn with_gradient(self, gradient: &'a dyn Fn(&[f64]) -> Vec<f64>) -> Self
pub fn with_jacobian( self, jacobian: &'a dyn Fn(&[f64]) -> Vec<Vec<f64>>, ) -> Self
pub fn with_bounds(self, bounds: Vec<(f64, f64)>) -> Self
pub fn with_seed(self, seed: u64) -> Self
Auto Trait Implementations§
impl<'a> !RefUnwindSafe for Problem<'a>
impl<'a> !Send for Problem<'a>
impl<'a> !Sync for Problem<'a>
impl<'a> !UnwindSafe for Problem<'a>
impl<'a> Freeze for Problem<'a>
impl<'a> Unpin for Problem<'a>
impl<'a> UnsafeUnpin for Problem<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more