Expand description
§NuFast
Fast and accurate three-flavor neutrino oscillation probabilities in vacuum and matter.
This is a Rust port of NuFast by Peter Denton, based on the algorithm described in arXiv:2405.02400.
§Features
- Vacuum oscillations: Full 3-flavor PMNS oscillation probabilities
- Matter effects (MSW): Constant-density matter with arbitrary electron fraction
- Anti-neutrino mode: Sign-flipped δCP and matter potential
- CP violation: Full δ_CP phase support
- Newton refinement: Optional iterative improvement for matter eigenvalues
- Batch API:
VacuumBatchfor 45% faster energy spectrum calculations - Zero dependencies: Pure Rust, no external crates required
- WebAssembly: Zig implementation compiles to WASM (see
benchmarks/zig/wasm/)
§Quick Start
use nufast::{VacuumParameters, probability_vacuum_lbl};
use std::f64::consts::PI;
let params = VacuumParameters {
s12sq: 0.307,
s13sq: 0.0218,
s23sq: 0.545,
delta: 1.36 * PI,
Dmsq21: 7.42e-5,
Dmsq31: 2.517e-3,
L: 295.0,
E: 0.6,
antineutrino: false,
};
let probs = probability_vacuum_lbl(¶ms);
assert!(probs[1][0] >= 0.0 && probs[1][0] <= 1.0); // P(νμ → νe)§Performance
Benchmarks on AMD Ryzen (10M iterations):
| Language | Vacuum | Matter N=0 |
|---|---|---|
| Zig SIMD | 21 ns | 37 ns |
| Zig | 42 ns | 108 ns |
| Rust | 61 ns | 95 ns |
| C++ | 49 ns | 130 ns |
| WASM | 80 ns | 150 ns |
Rust is 27% faster than C++ for matter calculations. Zig SIMD achieves 48M vacuum/sec throughput.
Structs§
- Matter
Parameters - Parameters for matter oscillation calculations.
- Vacuum
Batch - Pre-computed vacuum oscillation parameters for batch calculations.
- Vacuum
Parameters - Parameters for vacuum oscillation calculations.
Functions§
- normalize_
probabilities - Clamp all probabilities to [0, 1] and ensure row unitarity.
- probability_
matter_ lbl - Calculate matter oscillation probabilities for long-baseline experiments.
- probability_
vacuum_ lbl - Calculate vacuum oscillation probabilities for long-baseline experiments.
Type Aliases§
- Probability
Matrix - 3×3 probability matrix type.