accurate icon indicating copy to clipboard operation
accurate copied to clipboard

(More or less) accurate floating point algorithms

(More or less) accurate floating point algorithms

Travis build status Documentation: hosted License: Apache License 2.0 or MIT latest GitHub release crate on crates.io

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:

Usage

Add the accurate crate as a dependency in your Cargo.toml:

[dependencies]
accurate = "0.3"

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.