create_complex_like
Create a Node-API value representing a complex number-like object.
Usage
var headerDir = require( '@stdlib/napi/create-complex-like' );
headerDir
Absolute file path for the directory containing header files for C APIs.
var dir = headerDir;
// returns <string>
Examples
var headerDir = require( '@stdlib/napi/create-complex-like' );
console.log( headerDir );
// => <string>
C APIs
Usage
#include "stdlib/napi/create_complex_like.h"
stdlib_napi_create_complex_like( env, re, im, *out )
Returns a Node-API value representing a complex number-like object.
#include "stdlib/napi/create_complex_like.h"
#include <node_api.h>
static napi_value addon( napi_env env, napi_callback_info info ) {
// ...
napi_value value;
napi_status status = stdlib_napi_create_complex_like( env, 3.0, 5.0, &value );
assert( status == napi_ok );
if ( err != NULL ) {
assert( napi_throw( env, err ) == napi_ok );
return NULL;
}
// ...
}
The function accepts the following arguments:
- env:
[in] napi_env
environment under which the function is invoked. - re:
[in] double
double-precision floating-point number corresponding to the real component. - im:
[in] double
double-precision floating-point number corresponding to the imaginary component. - out:
[out] napi_value*
destination for storing output value.
napi_status stdlib_napi_create_complex_like( const napi_env env, const double re, const double im, napi_value *out );
The function returns a napi_status
status code indicating success or failure (returns napi_ok
if success).
STDLIB_NAPI_CREATE_COMPLEX_LIKE( env, re, im, name )
Macro for creating a Node-API value representing a complex number-like object.
#include "stdlib/napi/create_complex_like.h"
#include "stdlib/napi/argv_complex128.h"
#include "stdlib/napi/argv.h"
#include "stdlib/complex/float64/ctor.h"
#include "stdlib/complex/float64/real.h"
#include "stdlib/complex/float64/imag.h"
#include <node_api.h>
static stdlib_complex128_t fcn( const stdlib_complex128_t v ) {
return v;
}
// ...
static napi_value addon( napi_env env, napi_callback_info info ) {
// Retrieve add-on callback arguments:
STDLIB_NAPI_ARGV( env, info, argv, argc, 1 );
// Convert the first argument to a C type:
STDLIB_NAPI_ARGV_COMPLEX128( env, value, argv, 0 );
// ...
stdlib_complex128_t z = fcn( value );
// Convert a value having a C type to a Node-API value:
STDLIB_NAPI_CREATE_COMPLEX_LIKE( env, stdlib_complex128_real( z ), stdlib_complex128_imag( z ), out );
return out;
}
The macro expects the following arguments:
- env: environment under which the callback is invoked.
- re: expression returning a double-precision floating-point number corresponding to the real component.
- im: expression returning a double-precision floating-point number corresponding to the imaginary component.
- name: output variable name.