compute-filled

1.0.1 • Public • Published

Filled

NPM version Build Status Coverage Status Dependencies

Creates a filled matrix or array.

Installation

$ npm install compute-filled

For use in the browser, use browserify.

Usage

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

filled( dims, value[, opts] )

Creates a 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 = filled( 5, -2 );
// returns [ -2, -2, -2, -2, -2 ];
 
out = filled( [2,1,2], 'a' );
// returns [ [ ['a','a'] ], [ ['a','a'] ] ]

The function accepts the following options:

By default, the output data structure is a generic array. To output a typed array or matrix, set the dtype option (see matrix for a list of acceptable data types).

var out;
 
out = filled( 5, 1.5, {
    'dtype': 'float32'
});
// returns Float32Array( [1.5,1.5,1.5,1.5,1.5] );
 
out = filled( [3,2], -1, {
    'dtype': 'int32'
});
/*
    [ -1 -1
      -1 -1
      -1 -1 ]
*/

Notes:

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

    var out = filled( [2,1,3], null, {
        'dtype': 'float32'
    });
    // returns [ [ [null,null,null] ], [ [null,null,null] ] ]
  • The fill value is not validated or checked for dtype compatibility.

    var out;
     
    out = filled( 2, 'beep', {
        'dtype': 'int8'
    });
    // returns Int8Array( [0,0] )
     
    out = filled( 3, true, {
        'dtype': 'float32'
    });
    // returns Float32Array( [1,1,1] )

filled.compile( dims, value )

Compiles a function for creating filled arrays having specified dimensions.

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

Notes:

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

  • Non-numeric fill values are supported. array and object fill values are essentially deep copied and replicated and do not refer to the same memory address.

    var fcn, out;
     
    // Strings:
    fcn = filled.compile( 2, 'beep' );
     
    out = fcn();
    // returns [ 'beep', 'beep' ]
     
    // +-Infinity:
    fcn = filled.compile( 2, Number.NEGATIVE_INFINITY );
     
    out = fcn();
    // returns [ -inf, -inf ]
     
    // Objects:
    fcn = filled.compile( 2, {} );
     
    out = fcn();
    // returns [ {}, {} ]
     
    out[ 0 ] === out[ 1 ];
    // returns false
     
    // Arrays:
    fcn = filled.compiled( 2, [1,2,3] );
     
    out = fcn();
    // returns [ [1,2,3], [1,2,3] ]
     
    // Dates:
    fcn = filled.compile( 2, new Date() );
     
    out = fcn();
    // returns [ <Date>, <Date> ]

Examples

var filled = require( 'compute-filled' ),
    out;
 
// Plain arrays...
 
// 1x10:
out = filled( 10, Math.PI );
 
// 2x1x3:
out = filled( [2,1,3], null );
 
// 5x5x5:
out = filled( [5,5,5], 'beep' );
 
// 10x5x10x20:
out = filled( [10,5,10,20], true );
 
// Typed arrays...
out = filled( 10, -Math.PI, {
    'dtype': 'float32'
});
 
// Matrices...
out = filled( [3,2], -1, {
    'dtype': 'int32'
});

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. The Compute.io Authors.

Package Sidebar

Install

npm i compute-filled

Weekly Downloads

13

Version

1.0.1

License

MIT

Last publish

Collaborators

  • kgryte
  • planeshifter