9 releases
Uses old Rust 2015
0.3.0-alpha.2 | Dec 20, 2020 |
---|---|
0.2.6 | Jan 13, 2019 |
0.2.2 | May 17, 2017 |
0.2.1 | Nov 19, 2015 |
0.1.1 | May 12, 2015 |
#890 in Math
125,281 downloads per month
Used in 241 crates
(17 directly)
75KB
1K
SLoC
ieee754
Low-level manipulations of IEEE754 floating-point numbers.
This library includes:
no_std
support by default,- ulp computation (units in the last place, representing the resolution of a float),
- miscellaneous functions like
nextafter
(next
andprev
),copysign
(copy_sign
),abs
,sign
, - the IEEE-754
totalOrder
predicate for doingOrd::cmp
-like comparisons on floats, - an iterator over every floating point value in a range,
- a parallel iterator over every floating point value in a range
(optional: activate with the
rayon
feature), - relative error computation.
lib.rs
:
Low-level manipulations of IEEE754 floating-point numbers.
Installation
Add this to your Cargo.toml:
[dependencies]
ieee754 = "0.2"
To enable rayon
parallel iteration, activate the optional
rayon
feature:
[dependencies]
ieee754 = { version = "0.2", features = ["rayon"] }
Examples
use ieee754::Ieee754;
// there are 840 single-precision floats between 1.0 and 1.0001
// (inclusive).
assert_eq!(1_f32.upto(1.0001).count(), 840);
If rayon
is enabled, this can be performed in parallel:
extern crate ieee754;
extern crate rayon;
use ieee754::Ieee754;
use rayon::prelude::*;
// there are 840 single-precision floats between 1.0 and 1.0001
// (inclusive).
assert_eq!(1_f32.upto(1.0001).into_par_iter().count(), 840);
Dependencies
~0–285KB