You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 53e1717
Browse filesBrowse the repository at this point in the historyBrowse files
|[`grave`](src/grave)| Retired implementations kept for reference; not compiled |
44
+
The directories under `src/` map one-to-one to the public modules, so the module index in the [API docs](https://docs.rs/peroxide) doubles as the source map; start from a module's documentation and its `mod.rs`.
45
+
The only exception is `src/grave/`, which holds retired implementations kept for reference and is excluded from compilation.
Copy file name to clipboardExpand all lines: README.md
+21-16Lines changed: 21 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -66,7 +66,7 @@ For accelerated linear algebra, plotting, or DataFrame I/O, enable the matching
66
66
Peroxide provides various features.
67
67
68
68
-`default` - Pure Rust (No dependencies of architecture - Perfect cross compilation)
69
-
-`O3` - BLAS & LAPACK (Perfect performance but little bit hard to set-up - Strongly recommend to look [Peroxide with BLAS](https://github.com/Axect/Peroxide_BLAS))
69
+
-`O3-openblas` / `O3-openblas-system` / `O3-accelerate` / `O3-mkl` / `O3-netlib` - BLAS & LAPACK accelerated linear algebra; pick one backend flag (see [Pre-requisite](#pre-requisite))
70
70
-`plot` - With matplotlib of python, we can draw any plots.
71
71
-`complex` - With complex numbers (vector, matrix and integral)
72
72
-`parallel` - With some parallel functions
@@ -76,7 +76,7 @@ Peroxide provides various features.
76
76
-`serde` - serialization with [Serde](https://serde.rs/).
77
77
-`rkyv` - serialization with [rkyv](https://rkyv.org).
78
78
79
-
If you want to do high performance computation and more linear algebra, then choose `O3` feature.
79
+
If you want to do high performance computation and more linear algebra, then choose one of the `O3-*` backend features.
80
80
If you don't want to depend C/C++ or Fortran libraries, then choose `default` feature.
81
81
If you want to draw plot with some great templates, then choose `plot` feature.
82
82
@@ -267,25 +267,27 @@ The three groups below depend on external libraries or runtimes; install the rel
267
267
Those crates only provide function signatures, so the link backend that supplies the actual `dgemv_` / `dpotrf_` / ... symbols must be selected separately.
268
268
The simplest path is to enable one of the convenience flags below; each pulls in [`blas-src`](https://crates.io/crates/blas-src) and [`lapack-src`](https://crates.io/crates/lapack-src) with the matching backend.
269
269
270
-
| Convenience flag | Backend | Typical platform / use case |
If you need a backend not in the list above (for example BLIS or R's BLAS), enable the bare `O3` flag and add `blas-src` / `lapack-src` to your downstream binary's `Cargo.toml` with the appropriate features yourself.
278
+
`O3-openblas` does **not** use a system-installed OpenBLAS: the [`openblas-src`](https://crates.io/crates/openblas-src) crate downloads the OpenBLAS source tarball during the cargo build and compiles it, so it needs `gcc`, `gfortran`, `make`, and network access, but no BLAS system package.
279
+
The download happens over HTTPS through `openblas-src`'s default `rustls` TLS backend; if you depend on `openblas-src` directly with `default-features = false` (as some older guides suggest), you must re-enable one of its `rustls` / `native-tls` features yourself or the build will fail.
278
280
279
-
System libraries still need to be present on the host for `O3-openblas` and `O3-netlib`; install them with:
281
+
`O3-openblas-system` skips the source build and links the OpenBLAS already installed on the host, discovered via `pkg-config`:
`O3-accelerate` and `O3-mkl` ship their own backend (Apple's framework and Intel's redistributable, respectively), so they need no further system packages.
290
+
If you need a backend not in the list above (for example BLIS or R's BLAS), enable the bare `O3` flag and add `blas-src` / `lapack-src` to your downstream binary's `Cargo.toml` with the appropriate features yourself.
289
291
290
292
> **Note:**`O3-accelerate` only builds on Apple targets. Enabling it on Linux or Windows fails while compiling `accelerate-src` with ``error: library kind `framework` is only supported on Apple targets``; pick `O3-openblas`, `O3-mkl`, or `O3-netlib` instead. For the same reason, exclude `O3-accelerate` (and `O3-mkl` / `O3-netlib` unless their toolchains are installed) when running tools like `cargo hack --each-feature` on Linux.
|`rand`| (pure Rust) | Random sampling stack: distributions, RNG wrappers, `rand()` constructors. **On by default**; disable with `default-features = false` to get the deterministic core (ODE, integration, splines, linear algebra) for sandboxed targets like wasm32 |
Copy file name to clipboardExpand all lines: RELEASES.md
+25Lines changed: 25 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,3 +1,28 @@
1
+
# Release 0.43.0 (2026-07-11)
2
+
3
+
## Breaking changes
4
+
5
+
- Make the `rand` / `rand_distr` sampling stack optional behind the default-on `rand` feature ([#88](https://github.com/Axect/Peroxide/issues/88), [#104](https://github.com/Axect/Peroxide/pull/104))
6
+
- Existing default-feature users are unchanged.
7
+
-`default-features = false` now provides a deterministic core without RNG dependencies; sampling APIs require the `rand` feature.
8
+
- This is a breaking change for users who already disabled default features and relied on sampling APIs.
9
+
10
+
## New features
11
+
12
+
- Add the `Dirichlet(α)` probability distribution ([#95](https://github.com/Axect/Peroxide/pull/95))
13
+
- Add `O3-openblas-system` for linking a system-installed OpenBLAS through `pkg-config` ([#98](https://github.com/Axect/Peroxide/issues/98), [#107](https://github.com/Axect/Peroxide/pull/107))
14
+
15
+
## Documentation
16
+
17
+
- Clarify BLAS/LAPACK backend selection, OpenBLAS source versus system builds, TLS prerequisites, and HDF5 constraints ([#98](https://github.com/Axect/Peroxide/issues/98))
18
+
- Remove the stale `Peroxide_BLAS` setup link from the main README; the archived repository is retained for historical reference
19
+
- Replace the hand-maintained source-layout table with module-level docs.rs pointers and improve module descriptions ([#99](https://github.com/Axect/Peroxide/issues/99), [#108](https://github.com/Axect/Peroxide/pull/108))
20
+
21
+
## CI / Lint
22
+
23
+
- Add cargo-hack coverage for individual features and pairwise pure-Rust feature combinations ([#98](https://github.com/Axect/Peroxide/issues/98))
24
+
- Add dedicated CI coverage for system/source OpenBLAS, no-rand `wasm32`, plotting, formatting, and clippy
0 commit comments