Skip to content

Latest commit

 

History

History

buffer-dtype-enum

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Buffer Data Type Enumeration Constant

Return the data type enumeration constant of an ndarray data buffer.

Usage

var dtypeEnum = require( '@stdlib/ndarray/base/buffer-dtype-enum' );

dtypeEnum( buffer )

Returns the data type enumeration constant of an ndarray data buffer.

var Float64Array = require( '@stdlib/array/float64' );
var buf = new Float64Array( 10 );

var c = dtypeEnum( buf );
// returns <number>

If provided an ndarray data buffer having an unknown or unsupported data type, the function returns null.

var c = dtypeEnum( 'beep' );
// returns null

Notes

  • The principle use case for this function is JavaScript-C interoperability. In C, dtypes are assigned integer enumeration constants, not string values.

Examples

var dtypes = require( '@stdlib/ndarray/dtypes' );
var bufferCtors = require( '@stdlib/ndarray/base/buffer-ctors' );
var isFunction = require( '@stdlib/assert/is-function' );
var dtypeEnum = require( '@stdlib/ndarray/base/buffer-dtype-enum' );

var DTYPES;
var ctor;
var buf;
var len;
var c;
var i;

// Get a list of supported ndarray buffer data types:
DTYPES = dtypes();

// Buffer length:
len = 10;

// For each supported data type, create a buffer and retrieve its data type enumeration constant...
for ( i = 0; i < DTYPES.length; i++ ) {
    ctor = bufferCtors( DTYPES[ i ] );
    if ( DTYPES[ i ] === 'binary' && isFunction( ctor.alloc ) ) {
        buf = ctor.alloc( len );
    } else {
        buf = new ctor( len );
    }
    c = dtypeEnum( buf );
    console.log( '%s => %d', DTYPES[ i ], c );
}

// Try an array-like object...
buf = {
    'length': 10
};
c = dtypeEnum( buf );
console.log( '%s => %s', 'generic', c );