Package Exports
- multidim-array-index
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (multidim-array-index) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
multidim-array-index
maps multidimensional array indices to monodimensional array index
Table Of Contents:
Installation
With npm do
npm install multidim-array-index
Examples
All code in the examples below is intended to be contained into a single file.
var multiDimArrayIndex = require('multidim-array-index')
1th-order
In the monodimensional case, it just returns the index itself.
var i3 = multiDimArrayIndex.bind(null, [3])
i3([0]) // 0
i3([1]) // 1
i3([2]) // 2
2th-order
For a two dimensional case, for instance a matrix, it is equivalent to the
function (i, j, numCols) => j + i * numCols
var i2x3 = multiDimArrayIndex.bind(null, [2, 3])
i2x3([0, 0]) // 0
i2x3([0, 1]) // 1
i2x3([0, 2]) // 2
i2x3([1, 0]) // 3
i2x3([1, 1]) // 4
i2x3([1, 2]) // 5
3th-order
var i2x3x4 = multiDimArrayIndex.bind(null, [2, 2, 2])
i2x3x4([0, 0, 0]) // 0
i2x3x4([0, 0, 1]) // 1
i2x3x4([0, 0, 2]) // 2
i2x3x4([0, 0, 3]) // 3
i2x3x4([0, 1, 0]) // 4
i2x3x4([0, 1, 1]) // 5
i2x3x4([0, 1, 2]) // 6
i2x3x4([0, 1, 3]) // 7
i2x3x4([1, 0, 0]) // 8
i2x3x4([1, 0, 1]) // 9
i2x3x4([1, 0, 2]) // 10
i2x3x4([1, 0, 3]) // 11
i2x3x4([1, 1, 0]) // 12
i2x3x4([1, 1, 1]) // 13
i2x3x4([1, 1, 2]) // 14
i2x3x4([1, 1, 3]) // 15
i2x2x2([0, 0, 0]) //// 0
i2x2x2([0, 0, 1]) // 1
i2x2x2([0, 1, 0]) // 2
i2x2x2([0, 1, 1]) // 3
i2x2x2([1, 0, 0]) // 4
i2x2x2([1, 0, 1]) // 5
i2x2x2([1, 1, 0]) // 6
i2x2x2([1, 1, 1]) // 7
API
multiDimArrayIndex(dimension, indices)
- @param
{Array}
dimensions defines the shape of the multi dimensional array - @param
{Array}
indices to transform - @returns
{Number}
index of an equivalent mono dimensional array
Given dimensions d_1, d_2, d_3 .. d_n
and indices i_1, i_2, i_3 .. i_n
index
is computed by formula
index = i_n + i_(n-1) * d_n + i_(n-2) * d_n * d_(n-1) + ... + i_2 * d_n * d_(n-1) * ... * d_3 + i_1 * d_n * ... * d_2
multiDimArrayIndex.error
An object exposing the following error messages:
- outOfBoundIndex
For example, the following snippets will throw
// outOfBoundIndex
i3([11])
i2x3x4([2, 3, 5])