pub mod context;
pub mod error;
pub mod monomial;
mod da;
pub mod elementary;
pub mod eval;
pub mod io;
mod kernels;
pub mod norm;
pub mod special;
pub mod vector;
pub use context::{
epsilon, init, initialized, machine_epsilon, max_monomials, max_order, max_variables,
pop_truncation_order, push_truncation_order, set_epsilon, set_truncation_order,
truncation_order, version,
};
pub use da::Da;
pub use elementary::{
acos, acosh, asin, asinh, atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, hypot, icrt,
isrt, log, log_base, log2, log10, modulo, powf, powi, root, round, sin, sinh, sqrt, tan, tanh,
trunc,
};
pub use error::DaceError;
pub use eval::CompiledDa;
pub use norm::{Interval, NormType};
pub use special::{bessel_i, bessel_j, bessel_k, bessel_y, gamma, log_gamma, psi};
pub fn fma(a: &Da, afac: f64, b: &Da, bfac: f64) -> Da {
Da::assert_same_context(a, b);
kernels::weighted_sum(a, afac, b, bfac)
}
#[cfg(test)]
pub(crate) mod test_support {
use parking_lot::Mutex;
pub static CONTEXT_LOCK: Mutex<()> = Mutex::new(());
}