{{alias}}( fcns, types, data, nargs, nin, nout ) Returns an ndarray function interface which performs multiple dispatch. An ndarray function interface has the following signature: f( x, y, ... ) where - x: ndarray. - y: ndarray. - ...: additional ndarrays. The number of parameters is derived from `nargs`, the number of input ndarrays is derived from `nin`, and the number of output ndarrays is derived from `nout`. Parameters ---------- fcns: Function|ArrayLikeObject List of ndarray functions. An ndarray function should have the following signature: f( arrays, data ) where - arrays: array containing input and output ndarrays. - data: ndarray function data (e.g., a callback). For convenience, a single ndarray function may be provided which will be invoked whenever the ndarray argument data types match a sequence of types in `types`. Providing a single ndarray function is particularly convenient for the case where, regardless of array data types, traversing arrays remains the same, but the ndarray function `data` differs (e.g., callbacks which differ based on the array data types). types: ArrayLikeObject One-dimensional list of ndarray argument data types. data: ArrayLikeObject|null ndarray function data (e.g., callbacks). If `null`, a returned ndarray function interface does **not** provide a `data` argument to an invoked ndarray function. nargs: integer Total number of ndarray function interface arguments. nin: integer Number of input ndarrays. nout: integer Number of output ndarrays. Returns ------- fcn: Function ndarray function interface. Examples -------- // Define ndarray argument data types: > var t = [ 'float64', 'float64', 'float32', 'float32' ]; // Define a list of ndarray function data (callbacks): > var d = [ {{alias:@stdlib/math/base/special/abs}}, {{alias:@stdlib/math/base/special/absf}} ]; // Create an ndarray function interface for applying unary callbacks: > var f = {{alias}}( {{alias:@stdlib/ndarray/base/unary}}, t, d, 2, 1, 1 ); // Create an input ndarray: > var xbuf = new {{alias:@stdlib/array/float64}}( [ -1.0, -2.0, -3.0, -4.0 ] ); > var x = {{alias:@stdlib/ndarray/ctor}}( 'float64', xbuf, [ 4 ], [ 1 ], 0, 'row-major' ); // Create an output ndarray: > var ybuf = new {{alias:@stdlib/array/float64}}( [ 0.0, 0.0, 0.0, 0.0 ] ); > var y = {{alias:@stdlib/ndarray/ctor}}( 'float64', ybuf, [ 4 ], [ 1 ], 0, 'row-major' ); // Compute the element-wise absolute value: > f( x, y ); > ybuf [ 1.0, 2.0, 3.0, 4.0 ] See Also --------