use nalgebra::DVector;
#[derive(Debug, Clone)]
pub struct MinimumParameters {
vec: DVector<f64>,
step: DVector<f64>,
fval: f64,
valid: bool,
has_step: bool,
}
impl MinimumParameters {
pub fn new(vec: DVector<f64>, fval: f64) -> Self {
let n = vec.len();
Self {
vec,
step: DVector::zeros(n),
fval,
valid: true,
has_step: false,
}
}
pub fn with_step(vec: DVector<f64>, step: DVector<f64>, fval: f64) -> Self {
Self {
vec,
step,
fval,
valid: true,
has_step: true,
}
}
pub fn vec(&self) -> &DVector<f64> {
&self.vec
}
pub fn step(&self) -> &DVector<f64> {
&self.step
}
pub fn fval(&self) -> f64 {
self.fval
}
pub fn is_valid(&self) -> bool {
self.valid
}
pub fn has_step(&self) -> bool {
self.has_step
}
pub fn has_step_size(&self) -> bool {
self.has_step()
}
}