minViewBufferIndex
Return the minimum accessible index based on a set of provided strided array parameters.
Usage
var minViewBufferIndex = require( '@stdlib/strided/base/min-view-buffer-index' );
minViewBufferIndex( N, stride, offset )
Returns the minimum accessible index based on a set of provided strided array parameters.
var idx = minViewBufferIndex( 3, -2, 10 );
// returns 6
Notes
- If
N <= 0
, the function returns the specifiedoffset
; however, do note that, whenN
equals zero, no strided array elements should be accessed.
Examples
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' );
var minViewBufferIndex = require( '@stdlib/strided/base/min-view-buffer-index' );
// Generate a random number of indexed elements:
var N = discreteUniform( 10, 20 );
// Generate a random stride length:
var stride = discreteUniform( -10, 10 );
// Generate a random offset:
var offset = discreteUniform( 0, 100 ) + ( ( stride < 0 ) ? (1-N)*stride : 0 );
// Compute the minimum accessible index:
var idx = minViewBufferIndex( N, stride, offset );
console.log( 'N: %d, stride: %d, offset: %d => %d', N, stride, offset, idx );
C APIs
Usage
#include "stdlib/strided/base/min_view_buffer_index.h"
stdlib_strided_min_view_buffer_index( N, stride, offset )
Returns the minimum accessible index based on a set of provided strided array parameters.
#include "stdlib/strided/base/min_view_buffer_index.h"
#include <stdint.h>
int64_t offset = stdlib_strided_min_view_buffer_index( 3, -2, 10 );
// returns 6
The function accepts the following arguments:
- N:
[in] int64_t
number of indexed elements. - stride:
[in] int64_t
index increment. - offset:
[in] int64_t
starting index.
int64_t stdlib_strided_min_view_buffer_index( const int64_t N, const int64_t stride, const int64_t offset );
Examples
#include "stdlib/strided/base/min_view_buffer_index.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;
// Define an offset:
int64_t offset = 100;
// Compute the minimum accessible index:
int64_t idx = stdlib_strided_min_view_buffer_index( N, stride, offset );
// Print the results:
printf( "N: %"PRId64", stride: %"PRId64", offset: %"PRId64" => idx: %"PRId64"\n", N, stride, offset, idx );
}