@stdlib/ndarray-base-normalize-indices
v0.1.1
Published
Normalize a list of indices to the interval [0,max].
Downloads
173
Readme
normalizeIndices
Normalize a list of indices to the interval
[0,max].
Installation
npm install @stdlib/ndarray-base-normalize-indicesUsage
var normalizeIndices = require( '@stdlib/ndarray-base-normalize-indices' );normalizeIndices( indices, max )
Normalizes a list of indices to the interval [0,max].
var idx = normalizeIndices( [ 2, -5 ], 10 );
// returns [ 2, 6 ]If provided an out-of-bounds index, the function returns null.
var idx = normalizeIndices( [ 15, -15 ], 10 );
// returns nullNotes
- The function mutates the input array, even when provided an out-of-bounds index. If mutation is undesired, copy the input array before calling this function.
- During normalization, a negative index is converted to a nonnegative index according to
max + idx + 1. If, after normalization, the resolved index is still negative, the value is considered out-of-bounds.
Examples
var discreteUniform = require( '@stdlib/random-array-discrete-uniform' );
var normalizeIndices = require( '@stdlib/ndarray-base-normalize-indices' );
// Generate a list of random indices:
var idx1 = discreteUniform( 100, -20, 20, {
'dtype': 'generic'
});
// Normalize each index to the interval `[0, 15]`:
var idx2 = idx1.slice();
var out = normalizeIndices( idx2, 15 );
// Check whether one or more indices was invalid:
if ( out === null ) {
console.log( 'One or more indices was invalid.' );
}
// Print the results...
var i;
for ( i = 0; i < idx1.length; i++ ) {
console.log( '%d => [%d, %d] => %d', idx1[ i ], 0, 15, idx2[ i ] );
}Notice
This package is part of stdlib, a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more.
For more information on the project, filing bug reports and feature requests, and guidance on how to develop stdlib, see the main project repository.
Community
License
See LICENSE.
Copyright
Copyright © 2016-2026. The Stdlib Authors.
