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.
Did you find this page helpful?