Binary Signatures
Generate a list of binary interface signatures from strided array data types.
Usage
var signatures = require( '@stdlib/strided/base/binary-dtype-signatures' );
signatures( dtypes1, dtypes2, dtypes3[, options] )
Generates a list of binary interface signatures from strided array data types.
var dtypes = [
'float64',
'float32',
'int32',
'uint8'
];
var sigs = signatures( dtypes, dtypes, dtypes );
// returns [ 'float32', 'float32', 'float32', ... ]
The function accepts the following arguments:
- dtypes1: list of supported data types for the first input argument.
- dtypes2: list of supported data types for the second input argument.
- dtypes3: list of supported data types for the output value.
- options: options.
The function accepts the following options:
- enums:
boolean
flag indicating whether to return signatures as a list of data type enumeration constants. Default:false
.
When the enums
options is false
, the function returns an array of data type strings. To return data type enumeration constants, set the enums
option to true
.
var dtypes = [
'float64',
'float32',
'int32',
'uint8'
];
var options = {
'enums': true
};
var sigs = signatures( dtypes, dtypes, dtypes, options );
// returns [...]
Notes
- The function returns a strided array having a stride length of
3
(i.e., every3
elements define a binary interface signature). - For each signature (i.e., set of three consecutive non-overlapping strided array elements), the first two elements are the input data types and the third element is the return data type.
- All signatures follow type promotion rules.
Examples
var dtypes = require( '@stdlib/strided/dtypes' );
var replace = require( '@stdlib/string/replace' );
var signatures = require( '@stdlib/strided/base/binary-dtype-signatures' );
// Get the list of supported strided array data types:
var dt = dtypes();
// Generate binary interface signatures:
var sigs = signatures( dt, dt, dt );
// Format the output:
var str = replace( JSON.stringify( sigs ), /("[^"]+","[^"]+","[^"]+"),/g, '$1,\n' );
console.log( str );