3.1 KiB
3.1 KiB
strides2offset
Determine the index offset which specifies the location of the first indexed value in a multidimensional array based on a stride array.
Usage
var strides2offset = require( '@stdlib/ndarray/base/strides2offset' );
strides2offset( shape, strides )
Returns the index offset which specifies the location of the first indexed value in a multidimensional array.
var offset = strides2offset( [ 3, 2 ], [ 2, 1 ] );
// returns 0
offset = strides2offset( [ 3, 2 ], [ -2, 1 ] );
// returns 4
Examples
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' );
var shape2strides = require( '@stdlib/ndarray/base/shape2strides' );
var numel = require( '@stdlib/ndarray/base/numel' );
var randu = require( '@stdlib/random/base/randu' );
var strides2offset = require( '@stdlib/ndarray/base/strides2offset' );
var strides;
var offset;
var shape;
var len;
var arr;
var i;
var j;
shape = [ 0, 0, 0 ];
shape[ 0 ] = discreteUniform( 1, 10 );
shape[ 1 ] = discreteUniform( 1, 10 );
shape[ 2 ] = discreteUniform( 1, 10 );
strides = shape2strides( shape, 'row-major' );
len = numel( shape );
arr = [];
for ( i = 0; i < len; i++ ) {
arr.push( i );
}
for ( i = 0; i < 100; i++ ) {
j = discreteUniform( 0, shape.length-1 );
strides[ j ] *= ( randu() < 0.5 ) ? -1 : 1;
offset = strides2offset( shape, strides );
console.log( 'arr[0][0][0] = %d', arr[ offset ] );
}