1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
//! `multicalc` — single- and multi-variable calculus for `no_std` Rust: derivatives,
//! integrals, Jacobians and Hessians, vector-field operators, and Taylor approximation.
//!
//! Operations are generic over the [`Numeric`] scalar trait — implemented for `f32` and `f64`,
//! defaulting to `f64` — with transcendentals from [`libm`] so it works without `std`.
//! Fallible operations return [`utils::error_codes::CalcError`].
extern crate alloc;
/// Re-export of [`libm`], so `no_std` users can reach transcendental functions
/// (`libm::sin`, `libm::exp`, …) without taking their own dependency.
pub use libm;
/// The scalar trait the calculus modules are generic over (implemented for `f32` and `f64`).
pub use Numeric;
/// Forward-mode dual number giving exact first derivatives (it implements [`Numeric`]).
pub use Dual;
/// Hyper-dual number giving exact first and second derivatives (it implements [`Numeric`]).
pub use HyperDual;
/// Jet (truncated Taylor series) giving exact derivatives to arbitrary order (it implements [`Numeric`]).
pub use Jet;
/// Scalar-function abstraction evaluable at any [`Numeric`] scalar, so one formula drives both
/// finite differences and autodiff.
pub use ;
/// Fixed-size, stack-allocated vector and matrix types.
pub use ;
/// The Levenberg-Marquardt and Gauss-Newton least-squares solvers and their result types.
pub use ;
/// Bracketed and Newton root finders for scalar equations and square systems.
pub use ;