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 specified offset; however, do note that, when N 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 );
}
Did you find this page helpful?