Non-Singleton Dimensions
Return the number of non-singleton dimensions.
Usage
var nonsingletonDimensions = require( '@stdlib/ndarray/base/nonsingleton-dimensions' );
nonsingletonDimensions( shape )
Returns the number of non-singleton dimensions.
var n = nonsingletonDimensions( [ 3, 1, 3 ] );
// returns 2
Notes
- A singleton dimension is a dimension whose size is equal to
1
.
Examples
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' );
var nonsingletonDimensions = require( '@stdlib/ndarray/base/nonsingleton-dimensions' );
var shape;
var n;
var i;
shape = [ 0, 0, 0 ];
for ( i = 0; i < 100; i++ ) {
shape[ 0 ] = discreteUniform( 1, 5 );
shape[ 1 ] = discreteUniform( 1, 5 );
shape[ 2 ] = discreteUniform( 1, 5 );
n = nonsingletonDimensions( shape );
console.log( 'shape: %s. non-singleton dimensions: %d.', shape.join( 'x' ), n );
}
C APIs
Usage
#include "stdlib/ndarray/base/nonsingleton_dimensions.h"
stdlib_ndarray_nonsingleton_dimensions( ndims, *shape )
Returns the number of non-singleton dimensions.
int64_t ndims = 2;
int64_t shape[] = { 10, 1 };
int64_t n = stdlib_ndarray_nonsingleton_dimensions( ndims, shape );
// returns 1
The function accepts the following arguments:
- ndims:
[in] int64_t
number of dimensions. - shape:
[in] int64_t*
array shape.
int64_t stdlib_ndarray_nonsingleton_dimensions( int64_t ndims, int64_t *shape );
Examples
#include "stdlib/ndarray/base/nonsingleton_dimensions.h"
#include <stdio.h>
#include <inttypes.h>
int main() {
int64_t shape[] = { 10, 3, 1, 1, 5 };
int64_t n = stdlib_ndarray_nonsingleton_dimensions( 5, shape );
printf( "shape: %"PRId64"x%"PRId64"x%"PRId64"x%"PRId64"x%"PRId64". non-singleton dimensions: %"PRId64"\n", shape[ 0 ], shape[ 1 ], shape[ 2 ], shape[ 3 ], shape[ 4 ], n );
}