wrap
Wrap a function accepting complex number arguments to support providing both real and complex numbers.
Usage
var wrap = require( '@stdlib/complex/base/wrap-function' );
wrap( fcn, nargs, ctor )
Returns a function which wraps a function accepting complex number arguments to support providing both real and complex numbers.
var Complex64 = require( '@stdlib/complex/float32/ctor' );
var caddf = require( '@stdlib/complex/float32/base/add' );
var f = wrap( caddf, 2, Complex64 );
// returns <Function>
The function accepts the following arguments:
- fcn: the function to wrap.
- nargs: the number of arguments to be provided to the wrapped function.
- ctor: complex number constructor for converting real numbers to complex numbers.
Notes
- The returned function assumes that the wrapped function accepts only complex number input arguments (i.e., every argument must be a complex number).
- The returned function assumes that, if an input argument is non-numeric (i.e., not of type
number
), then the input argument is a complex number. The returned function does not verify that non-numeric input arguments are, in fact, complex number objects. The returned function passes non-numeric input arguments to the wrapped function without modification.
Examples
var Complex64 = require( '@stdlib/complex/float32/ctor' );
var caddf = require( '@stdlib/complex/float32/base/add' );
var realf = require( '@stdlib/complex/float32/real' );
var imagf = require( '@stdlib/complex/float32/imag' );
var wrap = require( '@stdlib/complex/base/wrap-function' );
var f = wrap( caddf, 2, Complex64 );
// ...
var z = f( 3.0, 4.0 );
// returns <Complex64>
var re = realf( z );
// returns 7.0
var im = imagf( z );
// returns 0.0
console.log( '%d + %di', re, im );
// => '7 + 0i'