Skip to content

Latest commit

 

History

History

strides2offset

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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 ] );
}