ag

array-grid

Two-dimensional implementation of ndarray to avoid dynamic code generation eval.

Showing:

Popularity

Downloads/wk

15

GitHub Stars

9

Maintenance

Last Commit

6yrs ago

Contributors

0

Package

Dependencies

0

Size (min+gzip)

0.5KB

License

ISC

Type Definitions

Tree-Shakeable

No?

Categories

Readme

array-grid

Two-dimensional implementation of ndarray with coordinate lookup and sub-array placement.

This modules conforms to the same API as ndarray except fixed at 2-dimensions with a couple of other useful methods (lookup and place). Use if you need to avoid the runtime eval code generation of ndarray (e.g. Chrome Packaged App).

Install via npm

$ npm install array-grid

API

var ArrayGrid = require('array-grid')
var array = ArrayGrid([1,2,3,4], [2, 2])

ArrayGrid(data[, shape, stride, offset])

  • data is a 1D array storage. It is either an instance of Array or a typed array.
  • shape is the shape of the view (Default: [data.length, 1])
  • stride is the resulting stride of the new array. (Default: row major [shape[1], 1])
  • offset is the offset to start the view (Default: 0)

Returns a 2-dimensional array view of the underlying data.

array.get(row, col)

Get the value at the position specified.

array.set(row, col, value)

Set the value of the position specified.

array.index(row, col)

Get the interal 1d data index of the specified coordinates.

array.lookup(value)

Lookup the [row,col] coordinates of the specified value.

array.coordsAt(index)

Lookup the [row,col] coordinates of the specified index.

array.place(originRow, originCol, array)

Stamp another ArrayGrid or two-dimensional ndarray starting at the origin specified.

array.getRange(shape, offsetCoords)

Copy the specified range starting at offsetCoords and return a new ArrayGrid.

array.data (attribute)

The underlying one-dimensional array holding the data.

array.shape (attribute)

[rows,columns] of the grid.

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100