mod quad;
mod simpson;
mod trapezoid;
pub use quad::quad;
pub use simpson::simpson;
pub use trapezoid::trapezoid;
use scivex_core::Float;
#[cfg_attr(
feature = "serde-support",
derive(serde::Serialize, serde::Deserialize)
)]
#[derive(Debug, Clone)]
pub struct QuadResult<T: Float> {
pub value: T,
pub error_estimate: T,
pub n_evals: usize,
}
#[cfg_attr(
feature = "serde-support",
derive(serde::Serialize, serde::Deserialize)
)]
#[derive(Debug, Clone)]
pub struct QuadOptions<T: Float> {
pub abs_tol: T,
pub rel_tol: T,
pub max_subdivisions: usize,
}
impl<T: Float> Default for QuadOptions<T> {
fn default() -> Self {
Self {
abs_tol: T::from_f64(1e-10),
rel_tol: T::from_f64(1e-10),
max_subdivisions: 50,
}
}
}