castReturn
Wrap a function and cast a function's return value to a complex number.
Usage
var castReturn = require( '@stdlib/complex/base/cast-return' );
castReturn( fcn, nargs, ctor )
Returns a function which wraps a function and casts a function's return value to a complex number.
var Complex64 = require( '@stdlib/complex/float32/ctor' );
var addf = require( '@stdlib/math/base/ops/addf' );
var f = castReturn( addf, 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 returns either a real or complex number.
- The returned function assumes that, if a return value is non-numeric (i.e., not of type
number
), then the return value is a complex number. The returned function does not verify that non-numeric return values are, in fact, complex number objects. The returned function returns non-numeric return values from the wrapped function without modification.
Examples
var Complex64 = require( '@stdlib/complex/float32/ctor' );
var addf = require( '@stdlib/math/base/ops/addf' );
var realf = require( '@stdlib/complex/float32/real' );
var imagf = require( '@stdlib/complex/float32/imag' );
var castReturn = require( '@stdlib/complex/base/cast-return' );
var f = castReturn( addf, 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'