Releases: Axect/Peroxide
Releases · Axect/Peroxide
v0.40.0
Release 0.40.0 (2025-07-24)
Move from arrow2
to arrow
& parquet
- Remove
arrow2
dependency - Add
arrow
andparquet
dependencies - Update
WithParquet
implementation - On user side, there are almost no changes in
DataFrame
API, but there is one change forfuga
user:CompressionOptions
->UNCOMPRESSED
,SNAPPY
,GZIP(level)
,LZ4
,ZSTD(level)
,BROTLI(level)
,LZO
,LZ4_RAW
- For
prelude user
, there are completely no changes. Default compression isSNAPPY
.
Release 0.39.11 (2025-07-22)
- Implement
derivative
andintegral
of B-Spline
Full Changelog: v0.39.11...v0.40.0
v0.39.10
Release 0.39.10 (2025-07-11)
- Fixed a bug in the adaptive step size control for all embedded Runge-Kutta methods.
- Corrected the
BU
coefficient vector for the 7th order solution in theRKF78
implementation.
Release 0.39.9 (2025-07-10)
- Change implementation of Gauss-Legendre 4th order method
Full Changelog: v0.39.8...v0.39.10
v0.39.8
Release 0.39.8 (2025-06-23)
- Implement
LogNormal
distributionLogNormal(mu: f64, sigma: f64)
- Fix sampling method for
Gamma
Full Changelog: v0.39.7...v0.39.8
v0.39.7
Release 0.39.7 (2025-05-27)
- Add some methods for
DataFrame
filter_by<F: Fn(Scalar) -> bool>(&self, column: &str, f: F) -> anyhow::Result<DataFrame>
: Filter rows by a condition on a specific columnmask(&self, mask: &Series) -> anyhow::Result<DataFrame>
: Filter rows by a boolean maskselect_rows(&self, indices: &[usize]) -> DataFrame
: Select specific rows by indices
Release 0.39.6 (2025-05-16)
- New ODESolver:
RKF78
- Implement
RKF78
method forODESolver
- Implement
Full Changelog: v0.39.5...v0.39.7
v0.39.5
Release 0.39.5 (2025-04-21)
- New feature
rkyv
- Implement
rkyv::{Archive, Serialize, Deserialize}
forMatrix
,Polynomial
,Spline
,ODE
- Implement
Full Changelog: v0.39.4...v0.39.5
v0.39.4
Release 0.39.4 (2025-04-11)
Optimize integrate
- Replace the output signature of
gauss_legendre_table
andkronrod_table
to&'static [f64]
to avoid unnecessary allocations. - Hard code symmetry of weights and nodes into source code to avoid unnecessary allocations.
- New helper function -
compute_gauss_kronrod_sum_stored
- Reduce the number of function calls (G+K -> K)
- Change update method of subinterval tolerance (divide by 2 -> divide by sqrt(2))
- These changes improve the performance of
integrate
by 1.2x - 50x (to integrate highly oscillatory functions)
Update dependencies
- Update
rand
to0.9
- Update
rand_distr
to0.5
Full Changelog: v0.39.3...v0.39.4
v0.39.3
v0.39.2
v0.39.1
Release 0.39.1 (2025-02-06)
-
Add
lambert_w
doc for crate docs #82 (Thanks to @JSorngard) -
Add default signature for
linspace!
#85 (Thanks to @tarolling) -
Fix a bug in
ButcherTableau::step
-
Add another example for ODE (
examples/ode_test_orbit.rs
)
What's Changed
- Add Lambert W function to list of special functions in crate docs by @JSorngard in #82
- ADD: add default signature for linspace macro by @tarolling in #85
New Contributors
- @tarolling made their first contribution in #85
Full Changelog: v0.39.0...v0.39.1
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