time-to-botec/js/node_modules/@stdlib/array/promotion-rules
NunoSempere b6addc7f05 feat: add the node modules
Necessary in order to clearly see the squiggle hotwiring.
2022-12-03 12:44:49 +00:00
..
docs feat: add the node modules 2022-12-03 12:44:49 +00:00
lib feat: add the node modules 2022-12-03 12:44:49 +00:00
package.json feat: add the node modules 2022-12-03 12:44:49 +00:00
README.md feat: add the node modules 2022-12-03 12:44:49 +00:00

Promotion Rules

Return the array data type with the smallest size and closest "kind" to which array data types can be safely cast.

Usage

var promotionRules = require( '@stdlib/array/promotion-rules' );

promotionRules( [dtype1, dtype2] )

If provided data types, returns the array data type with the smallest size and closest "kind" to which array data types can be safely cast.

var out = promotionRules( 'float32', 'uint32' );
// returns 'float64'

If not provided data types, the function returns a promotion table.

var out = promotionRules();
// returns {...}

var f32 = out[ 'float32' ];
// returns {...}

var rule = f32[ 'uint32' ];
// returns 'float64'

If provided an unrecognized or unsupported dtype, the function returns null.

var out = promotionRules( 'foo', 'generic' );
// returns null

Notes

  • If a data type to which data types can be safely cast does not exist (or is not supported), the function returns -1.

Examples

var dtypes = require( '@stdlib/array/dtypes' );
var promotionRules = require( '@stdlib/array/promotion-rules' );

var DTYPES;
var dt1;
var dt2;
var dt;
var i;
var j;

// Get the list of supported array data types:
DTYPES = dtypes();

// Print the promotion rule for each pair of array data types...
for ( i = 0; i < DTYPES.length; i++ ) {
    dt1 = DTYPES[ i ];
    for ( j = 0; j < DTYPES.length; j++ ) {
        dt2 = DTYPES[ j ];
        dt = promotionRules( dt1, dt2 );
        console.log( '(%s, %s) => %s', dt1, dt2, dt );
    }
}