Generates a linearly spaced numeric array.
$ npm install compute-linspace
For use in the browser, use browserify.
To use the module,
var linspace = require( 'compute-linspace' );
Generates a linearly spaced numeric array
. If a length
is not provided, the default output array
length is 100
.
var arr = linspace( 0, 100, 6 );
// returns [ 0, 20, 40, 60, 80, 100 ]
The output array
is guaranteed to include the start
and end
values. Beware, however, that values between the start
and end
are subject to floating point errors. Hence,
var arr = linspace( 0, 1, 3 );
// returns [ 0, ~0.5, 1 ]
where arr[1]
is only guaranteed to be approximately equal to 0.5
. If you desire more control over element precision, consider using compute-roundn:
var roundn = require( 'compute-roundn' );
// Create an array subject to floating point errors:
var arr = linspace( 0, 1, 21 );
// Round each value to the nearest hundredth:
roundn( arr, -2 );
console.log( arr.join( '\n' ) );
This function is inspired by MATLAB's linspace.
var linspace = require( 'compute-linspace' ),
out;
// Default behavior:
out = linspace( 0, 10 );
console.log( out.join( '\n' ) );
// Specify length:
out = linspace( 0, 10, 10 );
console.log( out.join( '\n' ) );
out = linspace( 0, 10, 11 );
console.log( out.join( '\n' ) );
// Create an array with decremented values:
out = linspace( 10, 0, 11 );
console.log( out.join( '\n' ) );
To run the example code from the top-level application directory,
$ node ./examples/index.js
Unit tests use the Mocha test framework with Chai assertions. 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.
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
Copyright © 2014. Athan Reines.