v0.6.0
A breaking rewrite focused on real-time latency, ease of use, maintainability, and strict no_std.
Added
- Infinite and semi-infinite integration limits for the iterative integrators (use
f64::INFINITY/
f64::NEG_INFINITY), via a domain transform. Accurate for convergent, decaying integrands. - A runnable example for every module under
examples/, andBENCHMARKS.mdwith accuracy and
latency figures. - A criterion benchmark suite under
benches/, plus deterministic work-count regression tests that
fail if a latency optimization is reverted. CalcErrorimplementscore::error::ErrorandDisplay.
Changed
f64-only API. Dropped thenum_complex::ComplexFloatgeneric; transcendental functions now
come fromlibm, so the crate is genuinelyno_std.- Errors are a typed
CalcErrorenum instead of&'static strstrings. - Functions and integrands are taken as generic
F: Fn(...)(monomorphized) rather than&dyn Fn. - Removed the redundant runtime "number of integrations" / "derivative order" arguments; these are
now inferred from the const-generic array lengths. - Renamed the solver types to
FiniteDifferenceSingle/Multi,IterativeSingle/Multi, and
GaussianSingle/Multi. - Unified the vector-field calling convention: line and flux integrals now take
&[&dyn Fn(&[f64; N]) -> f64; N], matching curl and divergence. - Gaussian quadrature takes the bare integrand; the tabulated weights carry the
e^{-x^2}/e^{-x}
weighting factor. - Per-solver settings are now a plain-data
configfield (e.g.solver.config.method = ...) instead
of getters and setters. - Renamed the
heapfeature toalloc. - Default iterative interval count is now 120 (a multiple of 12) so the Boole and Simpson rules stay
exact.
Fixed
- Gauss-Hermite and Gauss-Laguerre no longer double-apply the weighting function.
- Gauss-Laguerre multi-fold recursion (it read the Legendre table and failed to decrement the fold).
- The 3D line-integral z-component, and the reversed / equal /
NaNlimit checks (negative ranges
such as[-2.0, 1.0]are now accepted). - The linear and quadratic approximation formulas and their goodness-of-fit metrics.
Removed
- The
num-complexdependency, theComplexFloatgeneric, andf32/ complex-number support.