Skip to content

Releases: Axect/Peroxide

v0.37.9

30 Jul 23:04
Compare
Choose a tag to compare

Release 0.37.9 (2024-07-31)

Full Changelog: v0.37.8...v0.37.9

v0.37.8

30 Jul 12:03
Compare
Choose a tag to compare

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

Full Changelog: v0.37.7...v0.37.8

v0.37.6

19 Jun 10:10
Compare
Choose a tag to compare

Release 0.37.6 (2024-06-19)

Huge Spline Change

  • Generic Spline trait
    • Spline<T>: desired output type is T
  • Split PolynomialSpline from Spline
    • CubicSpline & CubicHermiteSpline are now PolynomialSpline
    • Implement Spline<f64> for PolynomialSpline
  • Implement B-Spline
    • BSpline { degree: usize, knots: Vec<f64>, control_points: Vec<Vec<f64>> }
    • BSpline::open(degree, knots, control_points) : Open B-Spline
    • BSpline::clamped(degree, knots, control_points) : Clamped B-Spline
  • Implement Spline<(f64, f64)> for BSpline

Full Changelog: v0.37.5...v0.37.6

v0.37.5

10 Jun 05:03
Compare
Choose a tag to compare

Release 0.37.5

  • More generic & stable root finding macros

Full Changelog: v0.37.4...v0.37.5

v0.37.4

17 May 00:58
Compare
Choose a tag to compare

Release 0.37.4 (2024-05-17)

  • Public ODE Integrator fields

Full Changelog: v0.37.3...v0.37.4

v0.37.3

01 May 09:38
Compare
Choose a tag to compare

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

16 Apr 05:37
Compare
Choose a tag to compare

Release 0.37.2 (2024-04-16)

  • Do not include legend box if there is no legend (#58) (Thanks to @GComitini)
  • Add rtol field to BroydenMethod
  • 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

Full Changelog: v0.37.1...v0.37.2

v0.37.1

15 Apr 05:09
Compare
Choose a tag to compare

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

13 Apr 16:28
Compare
Choose a tag to compare

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 traits
    • RootFindingProblem<const I: usize, const O: usize, T>: Trait for defining and root finding problem
      • I: Input dimension
      • O: Output dimension
      • T: Type of state
    • RootFinder: Trait for finding root
      • BisectionMethod: 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

v0.36.4

11 Apr 12:36
Compare
Choose a tag to compare

Release 0.36.4 (2024-04-11)

  • More generic Butcher tableau
    • Now, you can use ButcherTableau for non-embedded methods too
  • More ODE integrators
    • RALS3, RALS4, RK5, BS23

Full Changelog: v0.36.2...v0.36.4