math-powm1
v1.0.0
Published
Computes bˣ - 1.
Downloads
20
Readme
powm1
Computes
bˣ - 1
.
When b
is close to 1
and/or x
is small, this implementation is more accurate than naively computing bˣ
minus 1
.
Installation
$ npm install math-powm1
Usage
var powm1 = require( 'math-powm1' );
powm1( b, x )
Computes bˣ - 1
.
var y = powm1( 2, 3 );
// returns 7
y = powm1( 4, 0.5 );
// returns 1
y = powm1( 0, 100 );
// returns -1
y = powm1( 100, 0 );
// returns 0
y = powm1( 0, 0 );
// returns 0
y = powm1( Math.PI, 5 );
// returns ~305.0197
y = powm1( NaN, 3 );
// returns NaN
y = powm1( 5, NaN );
// returns NaN
Examples
var powm1 = require( 'math-powm1' );
var b;
var x;
var y;
var i;
for ( i = 0; i < 100; i++ ) {
b = Math.round( Math.random()*10 );
x = Math.round( Math.random()*10 ) - 5;
y = powm1( b, x );
console.log( '%d^%d - 1 = %d', b, x, y );
}
To run the example code from the top-level application directory,
$ node ./examples/index.js
Tests
Unit
This repository uses tape for unit tests. To run the tests, execute the following command in the top-level application directory:
$ make test
All new feature development should have corresponding unit tests to validate correct functionality.
Test Coverage
This repository uses Istanbul as its code coverage tool. To generate a test coverage report, execute the following command in the top-level application directory:
$ make test-cov
Istanbul creates a ./reports/coverage
directory. To access an HTML version of the report,
$ make view-cov
Browser Support
This repository uses Testling for browser testing. To run the tests in a (headless) local web browser, execute the following command in the top-level application directory:
$ make test-browsers
To view the tests in a local web browser,
$ make view-browser-tests
License
Copyright
Copyright © 2016. The Compute.io Authors.