Skip to content

Files

Latest commit

b240fb1 · Sep 28, 2024

History

History

promotion-rules

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Feb 7, 2022
Sep 28, 2024
Feb 7, 2022
Feb 7, 2022
Feb 7, 2022
Nov 9, 2023
Feb 7, 2022

Promotion Rules

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

Usage

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

promotionRules( [dtype1, dtype2] )

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

var out = promotionRules( 'complex128', 'complex64' );
// returns 'complex128'

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

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

var c128 = out[ 'complex128' ];
// returns {...}

var rule = c128[ 'uint32' ];
// returns 'complex128'

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

var out = promotionRules( 'foo', 'complex128' );
// 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/complex/dtypes' );
var promotionRules = require( '@stdlib/complex/promotion-rules' );

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

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

// Print the promotion rule for each pair of 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 );
    }
}

See Also