compute-inf

1.0.0 • Public • Published

inf

NPM version Build Status Coverage Status Dependencies

Creates an infinity-filled matrix or array.

Installation

$ npm install compute-inf

For use in the browser, use browserify.

Usage

var inf = require( 'compute-inf' );

inf( dims[, opts] )

Creates an infinity-filled matrix or array. The dims argument may either be a positive integer specifying a length or an array of positive integers specifying dimensions.

var out;
 
out = inf( 5 );
// returns [ +inf, +inf, +inf, +inf, +inf ];
 
out = inf( [2,1,2] );
// returns [ [ [+inf,+inf] ], [ [+inf,+inf] ] ]

The function accepts the following options:

  • dtype: output data type. The following dtypes are accepted:

    • float32
    • float64
    • generic (default)
  • sign: specifies whether to fill using positive or negative infinity. Default: +1.

By default, the output data structure is a generic array. To output a typed array or matrix, set the dtype option.

var out;
 
out = inf( 5, {
    'dtype': 'float32'
});
// returns Float32Array( [+inf,+inf,+inf,+inf,+inf] );
 
out = inf( [3,2], {
    'dtype': 'float64'
});
/*
    [ +inf +inf
      +inf +inf
      +inf +inf ]
*/

To fill using negative infinity, set the sign option to -1.

var out = inf( 5, {
    'sign': -1
});
// returns [ -inf, -inf, -inf, -inf, -inf ];

Notes:

  • Currently, for more than 2 dimensions, the function outputs a generic array and ignores any specified dtype.

    var out = inf( [2,1,3], {
        'dtype': 'float32'
    });
    // returns [ [ [+inf,+inf,+inf] ], [ [+inf,+inf,+inf] ] ]
  • Integer arrays are not supported. In JavaScript, positive and negative infinity are only represented in floating-point storage formats (IEEE 754).

inf.compile( dims )

Compiles a function for creating infinity-filled arrays having specified dimensions.

var fcn, out;
 
fcn = inf.compile( [2,1,3] );
 
out = fcn();
// returns [ [ [+inf,+inf,+inf] ], [ [+inf,+inf,+inf] ] ]
 
out = fcn();
// returns [ [ [+inf,+inf,+inf] ], [ [+inf,+inf,+inf] ] ]

Notes:

  • When repeatedly creating arrays having the same shape, creating a customized inf function will provide performance benefits.

Examples

var inf = require( 'compute-inf' ),
    out;
 
// Plain arrays...
 
// 1x10:
out = inf( 10 );
 
// 2x1x3:
out = inf( [2,1,3] );
 
// 5x5x5:
out = inf( [5,5,5] );
 
// 10x5x10x20:
out = inf( [10,5,10,20] );
 
// Typed arrays...
out = inf( 10, {
    'dtype': 'float32',
    'sign': -1
});
 
// Matrices...
out = inf( [3,2], {
    'dtype': 'float64'
});

To run the example code from the top-level application directory,

$ node ./examples/index.js

Tests

Unit

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.

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

License

MIT license.

Copyright

Copyright © 2015-2016. The Compute.io Authors.

Package Sidebar

Install

npm i compute-inf

Weekly Downloads

1

Version

1.0.0

License

MIT

Last publish

Collaborators

  • kgryte
  • planeshifter