Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mikolalysenko/two-sum

Computes the sum of two floats
https://github.com/mikolalysenko/two-sum

Last synced: about 2 months ago
JSON representation

Computes the sum of two floats

Awesome Lists containing this project

README

        

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

[![testling badge](https://ci.testling.com/mikolalysenko/two-sum.png)](https://ci.testling.com/mikolalysenko/two-sum)

[![build status](https://secure.travis-ci.org/mikolalysenko/two-sum.png)](http://travis-ci.org/mikolalysenko/two-sum)

## Install
Using npm:

npm install two-sum

## Example

```javascript
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 number
* `b` is a number
* `result` is an optional length 2 array encoding the result of the sum of `a` and `b`

**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