mod minimization;
mod root_finding;
pub use minimization::{minimize_scalar_bounded, minimize_scalar_brent, minimize_scalar_golden};
pub use root_finding::{bisect, brentq, newton, ridder, secant};
#[derive(Debug, Clone)]
pub struct ScalarOptions {
pub max_iter: usize,
pub tol: f64,
pub rtol: f64,
}
impl Default for ScalarOptions {
fn default() -> Self {
Self {
max_iter: 100,
tol: 1e-12,
rtol: 1e-12,
}
}
}
#[derive(Debug, Clone)]
pub struct RootResult {
pub root: f64,
pub function_value: f64,
pub iterations: usize,
pub bracket_width: f64,
}
#[derive(Debug, Clone)]
pub struct MinimizeResult {
pub x: f64,
pub f_min: f64,
pub iterations: usize,
pub bracket_width: f64,
}