| Crates.io | sleef-trig |
| lib.rs | sleef-trig |
| version | 0.1.0 |
| created_at | 2022-10-01 13:21:23.480062+00 |
| updated_at | 2022-10-01 13:21:23.480062+00 |
| description | Port of a few sleef.org trigonometric functions |
| homepage | |
| repository | https://github.com/greatest-ape/sleef-trig |
| max_upload_size | |
| id | 677823 |
| size | 219,356 |
Rust port of a few SLEEF trigonometric functions:
Sleef_sind1_u35purec (approximately 15-30% slower than original)Sleef_sind2_u35sse2 (approximately 15-20% slower than original)Sleef_sind4_u35avx (approximately 5-10% slower than original)The performance differences are the largest for inputs with high absolute values, notably equal to or greater than 1e14.
Additionally, a couple of functions only valid for inputs between -125.0 and 125.0 are provided:
Sleef_sinf1_u35purec_range125Sleef_cosf1_u35purec_range125Both are around 30x faster than the equivalent (unlimited range) sleef functions.
To use this crate, add sleef-trig as a dependency to your Cargo.toml file.
For optimal performance, compile sleef-trig with codegen-units = 1 by adding
the following to Cargo.toml (once for each performance sensitive profile):
[profile.release.package.sleef-trig]
codegen-units = 1
Run:
cargo test
cargo bench
Running tests and benchmarks requires nightly Rust and relies on
sleef-trig-sys for SLEEF bindings.
SIMD FFI is unstable and relies on undefined behaviour.