Callbacks
Assign callbacks to masked unary interfaces according to type promotion rules.
Usage
var callbacks = require( '@stdlib/strided/base/mskunary-signature-callbacks' );
callbacks( table, signatures )
Assigns callbacks to masked unary interfaces according to type promotion rules.
var signatures = require( '@stdlib/strided/base/mskunary-dtype-signatures' );
var identity = require( '@stdlib/math/base/special/identity' );
var cidentity = require( '@stdlib/math/base/special/cidentity' );
var cidentityf = require( '@stdlib/math/base/special/cidentityf' );
var dtypes = [
'float64',
'float32',
'int32',
'uint8'
];
var sigs = signatures( dtypes, dtypes );
// returns [...]
var table = {
'default': identity,
'complex64': cidentityf,
'complex128': cidentity
};
var list = callbacks( table, sigs );
// returns [...]
The function accepts the following arguments:
- table: callback table.
- signatures: strided array containing masked unary interface signatures.
A callback table
should have the following properties:
- default: default callback.
- complex64: callback for single-precision complex floating-point numbers.
- complex128: callback for double-precision complex floating-point numbers.
Notes
The function assumes that the provided signature array has the following properties:
- a strided array having a stride length of
3
(i.e., every3
elements define a masked unary interface signature). - for each signature (i.e., set of two consecutive non-overlapping strided array elements), the first element is the input data type, the second element is the mask data type, and the third element is the return data type.
- all signatures (excluding the mask data type) follow type promotion rules.
- a strided array having a stride length of
Examples
var dtypes = require( '@stdlib/strided/dtypes' );
var signatures = require( '@stdlib/strided/base/mskunary-dtype-signatures' );
var identity = require( '@stdlib/math/base/special/identity' );
var cidentity = require( '@stdlib/math/base/special/cidentity' );
var cidentityf = require( '@stdlib/math/base/special/cidentityf' );
var callbacks = require( '@stdlib/strided/base/mskunary-signature-callbacks' );
// Get the list of supported strided array data types:
var dt = dtypes();
// Generate masked unary interface signatures:
var sigs = signatures( dt, dt );
// Define a callback table:
var table = {
'default': identity,
'complex64': cidentityf,
'complex128': cidentity
};
// Generate a list of callbacks according to type promotion rules:
var clbks = callbacks( table, sigs );
// returns [...]