Releases: Axect/Peroxide
Releases · Axect/Peroxide
v0.39.0
What's Changed
- Update
lambert_w
crate to version 0.4.0 by @JSorngard in #66 - [feature] Support complex matrix by @soumyasen1809 in #71
- [feature] Support complex matrix [2] by @soumyasen1809 in #73
- IMPL: generic and complex integration by @GComitini in #70
- DOC: Document generic integration by @GComitini in #76
- Rand matrix refactor by @bertini97 in #75
- Make sure mean and variance computations are numerically stable by @Hoff97 in #77
- [Proof of Concept] Initial support for parallelization using Rayon by @soumyasen1809 in #74
- Update
puruspe
dependency, removelambert_w
dependency by @JSorngard in #79 - Hermite and Bessel polynomials added by @jgrage in #80
New Contributors
- @soumyasen1809 made their first contribution in #71
- @bertini97 made their first contribution in #75
- @Hoff97 made their first contribution in #77
- @jgrage made their first contribution in #80
Full Changelog: v0.37.9...v0.39.0
v0.37.9
Release 0.37.9 (2024-07-31)
- Fix inconsistent lambert w function name #65 (Thanks to @JSorngard)
- Write doc string for special/mod.rs (Link for doc: peroxide/special)
Full Changelog: v0.37.8...v0.37.9
v0.37.8
Release 0.37.8 (2024-07-30)
- Integrate with lambert_w crate (#63) (Thanks to @JSorngard)
-
Write flexible wrapper for lambert_w
pub enum LambertWAccuracyMode { Simple, // Faster, 24 bits of accuracy Precise, // Slower, 50 bits of accuracy } pub fn lambert_w0(z: f64, mode: LambertWAccuracyMode) -> f64; pub fn lambert_wm1(z: f64, mode: LambertWAccuracyMode) -> f64;
-
Write default Lambert W function for
prelude
(Precise as default)use peroxide::prelude::*; fn main() { lambert_w0(1.0).print(); // Same as fuga::lambert_w0(1.0, LambertWAccuracyMode::Simple) }
-
What's Changed
- Implement the Lambert W function as a wrapper around the
lambert_w
crate. by @JSorngard in #63
New Contributors
- @JSorngard made their first contribution in #63
Full Changelog: v0.37.7...v0.37.8
v0.37.6
Release 0.37.6 (2024-06-19)
Huge Spline Change
- Generic Spline trait
Spline<T>
: desired output type isT
- Split
PolynomialSpline
fromSpline
CubicSpline
&CubicHermiteSpline
are nowPolynomialSpline
- Implement
Spline<f64>
forPolynomialSpline
- Implement B-Spline
BSpline { degree: usize, knots: Vec<f64>, control_points: Vec<Vec<f64>> }
BSpline::open(degree, knots, control_points)
: Open B-SplineBSpline::clamped(degree, knots, control_points)
: Clamped B-Spline
- Implement
Spline<(f64, f64)>
forBSpline
Full Changelog: v0.37.5...v0.37.6
v0.37.5
v0.37.4
v0.37.3
Release 0.37.3 (2024-05-01)
- Add Nan/infinite guard to
gauss_kronrod_quadrature
(early exit) (#59) (Thanks to @GComitini) - Add complex feature & complex module (#35)
- Implement Cubic B-Spline basis functions
UnitCubicBasis
CubicBSplineBases
What's Changed
- Add Nan/infinite guard to gauss_kronrod_quadrature (early exit) by @GComitini in #59
Full Changelog: v0.37.2...v0.37.3
v0.37.2
Release 0.37.2 (2024-04-16)
- Do not include legend box if there is no legend (#58) (Thanks to @GComitini)
- Add
rtol
field toBroydenMethod
- Implement high-level macros for root finding
bisection!(f, (a,b), max_iter, tol)
newton!(f, x0, max_iter, tol)
(require#[ad_function]
attribute)secant!(f, (a,b), max_iter, tol)
false_position!(f, (a,b), max_iter, tol)
New Contributors
- @GComitini made their first contribution in #58
Full Changelog: v0.37.1...v0.37.2
v0.37.1
Release 0.37.1 (2024-04-15)
- Implement
BrodenMethod
: Broyden's method (I>=1, O>=1, T=([f64; I], [f64; I])
) - Restore citation file
Full Changelog: v0.37.0...v0.37.1
v0.37.0
Release 0.37.0 (2024-04-14)
Huge Update - Whole new Root finding & anyhow
Whole new Root finding
- Remove all boilerplates
- Now,
RootFinding
is composed of traitsRootFindingProblem<const I: usize, const O: usize, T>
: Trait for defining and root finding problemI
: Input dimensionO
: Output dimensionT
: Type of state
RootFinder
: Trait for finding rootBisectionMethod
: Bisection Method (I=1, O=1, T=(f64, f64)
)FalsePositionMethod
: False Position Method (I=1, O=1, T=(f64, f64)
)NewtonMethod
: Newton Method (I=1, O=1, T=f64
)SecantMethod
: Secant Method (I=1, O=1, T=(f64, f64)
)
Error handling with anyhow
- Remove
thiserror
dependency - Add
anyhow
for error handling - Change error handling in
ODE
,Spline
,WeightedUniform
Full Changelog: v0.36.4...v0.37.0