#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)]
pub struct OptimCounts {
pub function: usize,
pub gradient: usize,
}
#[derive(Debug, Clone, PartialEq)]
pub struct OptimResult {
pub par: Vec<f64>,
pub value: f64,
pub counts: OptimCounts,
pub convergence: i32,
pub message: String,
}
impl OptimResult {
pub fn is_success(&self) -> bool {
self.convergence == 0
}
pub fn convergence_status(&self) -> i32 {
self.convergence
}
pub fn function_count(&self) -> usize {
self.counts.function
}
pub fn gradient_count(&self) -> usize {
self.counts.gradient
}
}