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.

    Install

    npm i compute-inf

    DownloadsWeekly Downloads

    1

    Version

    1.0.0

    License

    MIT

    Last publish

    Collaborators

    • kgryte
    • planeshifter