Skip to content

Releases: Axect/Peroxide

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

v0.36.2

10 Apr 06:08
Compare
Choose a tag to compare

Release 0.36.2 (2024-04-10)

  • Now, you can report current states if your constraints are violated.
    • ODEError::ConstraintViolation -> ODEError::ConstraintViolation(f64, Vec<f64>, Vec<f64>)
    • for detailed information, see docs for ODEError
  • Add docs for ODEError

Full Changelog: v0.36.1...v0.36.2

v0.36.1

09 Apr 10:18
Compare
Choose a tag to compare

Release 0.36.1 (2024-04-09)

  • Fix all warnings in peroxide

  • Change redundant method

    • Vec<f64>::resize -> Vec<f64>::reshape
  • Error handling for concatenation

    • cbind & rbind now returns Result<Matrix, ConcatenateError>
  • New non-macro utils

    • column_stack(&[Vec<f64>]) -> Result<Matrix, ConcatenateError>
    • row_stack(&[Vec<f64>]) -> Result<Matrix, ConcatenateError>
    • rand_with_rng(usize, usize, &mut Rng) -> Matrix
  • Generic Butcher tableau trait (now for embedded Runge-Kutta methods)

    pub trait ButcherTableau {
        const C: &'static [f64];
        const A: &'static [&'static [f64]];
        const BH: &'static [f64];
        const BL: &'static [f64];
    
        fn tol(&self) -> f64;
        fn safety_factor(&self) -> f64;
        fn max_step_size(&self) -> f64;
        fn min_step_size(&self) -> f64;
        fn max_step_iter(&self) -> usize;
    }
    • Implement ODEIntegrator for ButcherTableau

      • Just declare ButcherTableau then step is free
    • Three available embedded Runge-Kutta methods

      • RKF45: Runge-Kutta-Fehlberg 4/5th order
      • DP45: Dormand-Prince 4/5th order
      • TSIT45: Tsitouras 4/5th order

Full Changelog: v0.36.0...v0.36.1

v0.36.0

08 Apr 14:52
Compare
Choose a tag to compare

Release 0.36.0 (2024-04-08)

Huge Update - Error handling & Whole new ODE

Error handling

  • Add thiserror for error handling
  • Implement errors for cubic spline & cubic hermite spline.
  • Implement errors for weighted uniform distribution & PRS.

Seedable sampling

  • Now, all distribution has sample_with_rng method.
  • There are two wrappers for SeedableRng
    • smallrng_from_seed : Performant but not secure
    • stdrng_from_seed : Performant enough and secure enough

Whole new ODE

  • Remove all boilerplates.
  • Now, ODE is composed of traits.
    • ODEProblem: Trait for defining and ODE problem.
    • ODEIntegrator: Trait for integrating ODE.
      • RK4: Runge-Kutta 4th order
      • RKF45: Runge-Kutta-Fehlberg 4/5th order
      • GL4: Gauss-Legendre 4th order
      • You can implement your own integrator.
    • ODESolver: Trait for solving ODE.
      • BasicODESolver: Basic ODE solver - define range of t, initial step size and integrate it.
      • You can implement your own solver.
  • For more information, see docs for ode.

Full Changelog: v0.35.1...v0.36.0

v0.35.1

29 Mar 10:19
Compare
Choose a tag to compare

v0.34.7

14 Mar 02:47
Compare
Choose a tag to compare

More updates for plot feature

  • Make legend optional (Now, no legend is available)
  • Implement set_line_style. Here are available line styles.
    • LineStyle::Solid
    • LineStyle::Dashed
    • LineStyle::Dotted
    • LineStyle::DashDot
  • Implement set_color
  • Implement set_alpha
  • More markers.

Getter for ODE

  • Add explicit getter for ExplicitODE and ImplicitODE for various fields.

Full Changelog: v0.34.6...v0.34.7