compute-filled
v1.0.1
Published
Creates a filled matrix or array.
Downloads
6
Readme
Filled
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
:
- dtype: output
typed array
ormatrix
data type. Default:generic
.
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 genericarray
and ignores any specifieddtype
.var out = filled( [2,1,3], null, { 'dtype': 'float32' }); // returns [ [ [null,null,null] ], [ [null,null,null] ] ]
The fill
value
is not validated or checked fordtype
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 customizedfilled
function will provide performance benefits.Non-numeric fill
values
are supported.array
andobject
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
Copyright
Copyright © 2015. The Compute.io Authors.