time-to-botec/squiggle/node_modules/@stdlib/ndarray/base/singleton-dimensions/README.md
NunoSempere b6addc7f05 feat: add the node modules
Necessary in order to clearly see the squiggle hotwiring.
2022-12-03 12:44:49 +00:00

4.2 KiB

Singleton Dimensions

Return the number of singleton dimensions.

Usage

var singletonDimensions = require( '@stdlib/ndarray/base/singleton-dimensions' );

singletonDimensions( shape )

Returns number of singleton dimensions.

var n = singletonDimensions( [ 3, 1, 3 ] );
// returns 1

Notes

  • A singleton dimension is a dimension whose size is equal to 1.

Examples

var discreteUniform = require( '@stdlib/random/base/discrete-uniform' );
var singletonDimensions = require( '@stdlib/ndarray/base/singleton-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 = singletonDimensions( shape );
    console.log( 'shape: %s. singleton dimensions: %d.', shape.join( 'x' ), n );
}

C APIs

Usage

#include "stdlib/ndarray/base/singleton_dimensions.h"

stdlib_ndarray_singleton_dimensions( ndims, *shape )

Returns the number of singleton dimensions.

int64_t ndims = 2;
int64_t shape[] = { 10, 1 };

int64_t n = stdlib_ndarray_singleton_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_singleton_dimensions( int64_t ndims, int64_t *shape );

Examples

#include "stdlib/ndarray/base/singleton_dimensions.h"
#include <stdio.h>
#include <inttypes.h>

int main() {
    int64_t shape[] = { 10, 3, 1, 1, 5 };

    int64_t n = stdlib_ndarray_singleton_dimensions( 5, shape );
    printf( "shape: %"PRId64"x%"PRId64"x%"PRId64"x%"PRId64"x%"PRId64". singleton dimensions: %"PRId64"\n", shape[ 0 ], shape[ 1 ], shape[ 2 ], shape[ 3 ], shape[ 4 ], n );
}