|
|
||
|---|---|---|
| .. | ||
| docs | ||
| include/stdlib/ndarray/base | ||
| lib | ||
| src | ||
| manifest.json | ||
| package.json | ||
| README.md | ||
ind
Return an index given an index mode.
Usage
var ind = require( '@stdlib/ndarray/base/ind' );
ind( idx, max, mode )
Returns an index given an index mode.
var idx = ind( 2, 9, 'throw' );
// returns 2
idx = ind( -1, 9, 'throw' );
// throws <RangeError>
idx = ind( 10, 9, 'throw' );
// throws <RangeError>
The function supports the following modes:
throw: specifies that the function should throw an error when an index is outside the interval[0,max].wrap: specifies that the function should wrap around an index using modulo arithmetic.clamp: specifies that the function should set an index less than0to0(minimum index) and set an index greater thanmaxtomax.
var idx = ind( 2, 9, 'wrap' );
// returns 2
idx = ind( 10, 9, 'wrap' );
// returns 0
idx = ind( -1, 9, 'wrap' );
// returns 9
idx = ind( 2, 9, 'clamp' );
// returns 2
idx = ind( 10, 9, 'clamp' );
// returns 9
idx = ind( -1, 9, 'clamp' );
// returns 0
Examples
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' );
var ind = require( '@stdlib/ndarray/base/ind' );
var modes;
var mode;
var idx;
var out;
var i;
modes = [ 'clamp', 'wrap' ];
for ( i = 0; i < 100; i++ ) {
idx = discreteUniform( -20, 20 );
mode = modes[ discreteUniform( 0, modes.length-1 ) ];
out = ind( idx, 9, mode );
console.log( '%d => %s(%d,%d) => %d', idx, mode, 0, 9, out );
}