Releases: Axect/Peroxide
Releases · Axect/Peroxide
v0.36.4
Release 0.36.4 (2024-04-11)
- More generic Butcher tableau
- Now, you can use
ButcherTableau
for non-embedded methods too
- Now, you can use
- More ODE integrators
RALS3, RALS4, RK5, BS23
Full Changelog: v0.36.2...v0.36.4
v0.36.2
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
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 returnsResult<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
forButcherTableau
- Just declare
ButcherTableau
thenstep
is free
- Just declare
-
Three available embedded Runge-Kutta methods
RKF45
: Runge-Kutta-Fehlberg 4/5th orderDP45
: Dormand-Prince 4/5th orderTSIT45
: Tsitouras 4/5th order
-
Full Changelog: v0.36.0...v0.36.1
v0.36.0
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 securestdrng_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 orderRKF45
: Runge-Kutta-Fehlberg 4/5th orderGL4
: 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
Full Changelog: v0.34.7...v0.35.1
v0.34.7
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
andImplicitODE
for various fields.
Full Changelog: v0.34.6...v0.34.7