two-sum
Computes a non-overlapping sequence representing the sum of two floating point numbers.
npm install two-sum
Want to see pretty graphs? Log in now!
2 | downloads in the last day |
9 | downloads in the last week |
22 | downloads in the last month |
Last Published By | |
---|---|
Version | 0.1.0 last updated 7 months ago |
License | MIT |
Keywords | two, sum, floating, point, robust, exact |
Repository | git://github.com/mikolalysenko/two-sum.git (git) |
Bugs | https://github.com/mikolalysenko/two-sum/issues |
Dependencies | None |
Dependents | left-right, mikolalysenko-hoarders, robust-scale, robust-sum |
two-sum
Computes the sum of two floating point numbers as a non-overlapping sequence using Knuth's method.
- D.E. Knuth. "The Art of Computer Programming: Seminumerical Algorithms". Volume 2. 1981
Install
Using npm:
npm install two-sum
Example
var twoSum = require("two-sum")
//Add two wildly different sized floats
var result = twoSum(1e64, 1e-64)
console.log(result)
//Prints:
// [1e-64, 1e64]
API
require("two-sum")(a, b[, result])
Computes a non-overlapping sequence representing the sum of a and b.
a
is a numberb
is a numberresult
is an optional length 2 array encoding the result of the sum ofa
andb
Returns A length 2 array representing the non-overlapping sequence encoding the sum of a and b. The first term has smaller magnitude than the second.
Credits
Based on an idea from JRS robust geometric predicates paper.
Implementation (c) 2013 Mikola Lysenko. MIT License