Expand description
§Ellip Rayon
Parallelized elliptic integral computation for Rust based on Ellip.
§Installation
cargo add ellip-rayon§Machine-specific Threshold
Ellip Rayon employs parallelization if the length of the arguments exceesds certain thresholds. These thresholds depend on the core count, cache size, and architecture. For the most efficiency, these thresholds should be tuned on the target machine.
- Generating benchmark data
cargo benchThe process should take about 30-40 minutes to complete, and the file benches/par_threshold.md will be created. This reports the threshold for each function.
- Using the generated threshold
cargo run --example generate_threshold_codeThis script automatically replaces the thresholds in the source code.
- Adding locally compiled library
From your working directory, run
cargo add --path path/to/your/ellip-rayonFunctions§
- cel
- Computes cel in parallel.
- cel1
- Computes cel1 in parallel.
- cel2
- Computes cel2 in parallel.
- el1
- Computes el1 in parallel.
- el2
- Computes el2 in parallel.
- el3
- Computes el3 in parallel.
- ellipd
- Computes ellipd in parallel.
- ellipdinc
- Computes ellipdinc in parallel.
- ellipe
- Computes ellipe in parallel.
- ellipeinc
- Computes ellipeinc in parallel.
- ellipf
- Computes ellipf in parallel.
- ellipk
- Computes ellipk in parallel.
- ellippi
- Computes ellippi in parallel.
- ellippiinc
- Computes ellippiinc in parallel.
- ellippiinc_
bulirsch - Computes ellippiinc_bulirsch in parallel.
- elliprc
- Computes elliprc in parallel.
- elliprd
- Computes elliprd in parallel.
- elliprf
- Computes elliprf in parallel.
- elliprg
- Computes elliprg in parallel.
- elliprj
- Computes elliprj in parallel.
- heuman_
lambda - Computes heuman_lambda in parallel.
- jacobi_
zeta - Computes jacobi_zeta in parallel.