Minimum Data Type
Determine the minimum ndarray data type of the closest "kind" necessary for storing a provided scalar value.
Usage
var minDataType = require( '@stdlib/ndarray/min-dtype' );
minDataType( value )
Returns the minimum ndarray data type of the closest "kind" necessary for storing a provided scalar value.
var dt = minDataType( 3.141592653589793 );
// returns 'float32'
dt = minDataType( -3 );
// returns 'int8'
dt = minDataType( 3 );
// returns 'uint8'
dt = minDataType( '3' );
// returns 'generic'
Notes
- The function does not provide precision guarantees for non-integer-valued numbers. In other words, the function returns the smallest possible floating-point (i.e., inexact) data type for storing numbers having decimals.
Examples
var roundn = require( '@stdlib/math/base/special/roundn' );
var randu = require( '@stdlib/random/base/randu' );
var pow = require( '@stdlib/math/base/special/pow' );
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' );
var minDataType = require( '@stdlib/ndarray/min-dtype' );
var dt;
var v;
var i;
// Generate numbers of varying magnitudes and determine the minimum data type for each value...
for ( i = 0; i < 100; i++ ) {
v = randu() * pow( 2.0, discreteUniform( 0, 40 ) );
if ( randu() < 0.5 ) {
v *= -1;
}
v = roundn( v, discreteUniform( -1, 0 ) );
dt = minDataType( v );
console.log( 'min(%d) => %s', v, dt );
}