6 releases (3 breaking)
0.4.1 | Jul 20, 2024 |
---|---|
0.4.0 | Jul 20, 2024 |
0.3.1 | Oct 12, 2020 |
0.3.0 | Apr 14, 2018 |
0.1.1 | Feb 28, 2016 |
#149 in Algorithms
7,141 downloads per month
Used in 50 crates
(4 directly)
59KB
1.5K
SLoC
(More or less) accurate floating point algorithms
This crate provides several algorithms that implement highly accurate or even guaranteed correct sum and dot product for floating-point numbers without resorting to arbitrary precision arithmetic. These algorithms are available:
- Kahan summation, based on Kahan 65
- Neumaier summation, based on Neumaier 74
- Klein summation, based on Klein 06
- Accurate sum and dot product, based on Ogita, Rump, and Oishi 05
- Online exact summation, based on Zhu and Hayes 10
Usage
Add the accurate
crate as a dependency in your Cargo.toml
:
[dependencies]
accurate = "0.4"
Then use it in your program like this:
extern crate accurate;
use accurate::traits::*;
use accurate::sum::Sum2;
fn main() {
let x = vec![1.0, 2.0, 3.0];
let s = x.sum_with_accumulator::<Sum2<_>>();
assert_eq!(6.0f64, s);
}
Documentation
Documentation for the latest version of the crate is on docs.rs.
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Dependencies
~1.7–2.3MB
~51K SLoC