stride2offset
Determine the index offset which specifies the location of the first indexed value in a strided array.
Usage
var stride2offset = require( '@stdlib/strided/base/stride2offset' );
stride2offset( N, stride )
Returns the index offset which specifies the location of the first indexed value in a strided array.
var offset = stride2offset( 10, 10 );
// returns 0
offset = stride2offset( 10, -10 );
// returns 90
Examples
var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
var stride2offset = require( '@stdlib/strided/base/stride2offset' );
var opts = {
'dtype': 'generic'
};
// Define the number of indexed elements:
var N = 100;
// Define a maximum stride length:
var maxStride = 10;
// Create an array of random integers which can accommodate the maximum stride length:
var arr = discreteUniform( N*maxStride, 0, 255, opts );
// Generate random stride lengths:
var strides = discreteUniform( 10, -maxStride, maxStride, opts );
// Resolve values in the data array for the first indexed element based on various stride lengths...
var offset;
var i;
for ( i = 0; i < strides.length; i++ ) {
offset = stride2offset( N, strides[ i ] );
console.log( 'stride = %d. arr[%d] = %d.', strides[ i ], offset, arr[ offset ] );
}
C APIs
Usage
#include "stdlib/strided/base/stride2offset.h"
stdlib_strided_stride2offset( N, stride )
Returns the index offset which specifies the location of the first indexed value in a strided array.
#include "stdlib/strided/base/stride2offset.h"
#include <stdint.h>
int64_t offset = stdlib_strided_stride2offset( 10, -10 );
// returns 90
The function accepts the following arguments:
- N:
[in] int64_t
number of indexed elements. - stride:
[in] int64_t
index increment.
int64_t stdlib_strided_stride2offset( int64_t N, int64_t stride );
Examples
#include "stdlib/strided/base/stride2offset.h"
#include <stdint.h>
#include <stdio.h>
#include <inttypes.h>
int main( void ) {
// Specify the number of indexed elements:
int64_t N = 6;
// Define a stride:
int64_t stride = -2;
// Compute the offset:
int64_t offset = stdlib_strided_stride2offset( N, stride )
// Print the results:
printf( "stride: %"PRId64" => offset: %"PRId64"\n", stride, offset );
}