Skip to content

Multiplies two floating point numbers together, giving an increasing nonoverlapping sequence

License

Notifications You must be signed in to change notification settings

mikolalysenko/two-product

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

two-product

Computes the product of two floating point numbers as a 2-term nonoverlapping increasing sequence.

testling badge

build status

Install

npm install two-product

Example

var twoProduct = require("two-product")

console.log(twoProduct(1 + Math.pow(2, -52), Math.pow(2, 52) + 1))

Output:

[ 2.220446049250313e-16, 4503599627370498 ]

API

require("two-product")(a, b[, result])

Multiplies a and b and returns the product as a non-overlapping sequence. result is an optional length 2 array that stores the result.

  • a is a number
  • b is a number
  • result is an optional length 2 array that gets the result of multiplying a and b

Returns A length 2 array representing the product of a and b as an expansion. The first entry is the lower order bits, and the second entry is the upper order bits.

Note This algorithm does not work correctly with denormalized numbers.

Credits

JavaScript implementation (c) 2013-2014 Mikola Lysenko. Based on ideas from Jonathan Shewchuk's robust adaptive geometric predicates.

About

Multiplies two floating point numbers together, giving an increasing nonoverlapping sequence

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published