Security News
GitHub Removes Malicious Pull Requests Targeting Open Source Repositories
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
@stdlib/math-base-napi-unary
Advanced tools
C APIs for registering an N-API module exporting an interface for invoking a unary numerical function.
C APIs for registering an N-API module exporting interfaces for invoking unary numerical functions.
npm install @stdlib/math-base-napi-unary
var headerDir = require( '@stdlib/math-base-napi-unary' );
Absolute file path for the directory containing header files for C APIs.
var dir = headerDir;
// returns <string>
var headerDir = require( '@stdlib/math-base-napi-unary' );
console.log( headerDir );
// => <string>
npm install @stdlib/math-base-napi-unary
#include "stdlib/math/base/napi/unary.h"
Invokes a unary function accepting and returning double-precision floating-point numbers.
#include <node_api.h>
// ...
static double identity( const double x ) {
return x;
}
// ...
/**
* Receives JavaScript callback invocation data via N-API.
*
* @param env environment under which the function is invoked
* @param info callback data
* @return N-API value
*/
napi_value addon( napi_env env, napi_callback_info info ) {
return stdlib_math_base_napi_d_d( env, info, identity );
}
// ...
The function accepts the following arguments:
[in] napi_env
environment under which the function is invoked.[in] napi_callback_info
callback data.[in] double (*fcn)( double )
unary function.void stdlib_math_base_napi_d_d( napi_env env, napi_callback_info info, double (*fcn)( double ) );
Invokes a unary function accepting and returning single-precision floating-point numbers.
#include <node_api.h>
// ...
static float identityf( const float x ) {
return x;
}
// ...
/**
* Receives JavaScript callback invocation data via N-API.
*
* @param env environment under which the function is invoked
* @param info callback data
* @return N-API value
*/
napi_value addon( napi_env env, napi_callback_info info ) {
return stdlib_math_base_napi_f_f( env, info, identityf );
}
// ...
The function accepts the following arguments:
[in] napi_env
environment under which the function is invoked.[in] napi_callback_info
callback data.[in] float (*fcn)( float )
unary function.void stdlib_math_base_napi_f_f( napi_env env, napi_callback_info info, float (*fcn)( float ) );
Invokes a unary function accepting and returning 32-bit signed integers.
#include <node_api.h>
#include <stdint.h>
// ...
static int32_t identity( const int32_t x ) {
return x;
}
// ...
/**
* Receives JavaScript callback invocation data via N-API.
*
* @param env environment under which the function is invoked
* @param info callback data
* @return N-API value
*/
napi_value addon( napi_env env, napi_callback_info info ) {
return stdlib_math_base_napi_i_i( env, info, identity );
}
// ...
The function accepts the following arguments:
[in] napi_env
environment under which the function is invoked.[in] napi_callback_info
callback data.[in] int32_t (*fcn)( int32_t )
unary function.void stdlib_math_base_napi_i_i( napi_env env, napi_callback_info info, int32_t (*fcn)( int32_t ) );
Macro for registering an N-API module exporting an interface for invoking a unary function accepting and returning double-precision floating-point numbers.
static double scale( const double x ) {
return x * 10.0;
}
// ...
// Register an N-API module:
STDLIB_MATH_BASE_NAPI_MODULE_D_D( scale );
The macro expects the following arguments:
double (*fcn)( double )
unary function.When used, this macro should be used instead of NAPI_MODULE
. The macro includes NAPI_MODULE
, thus ensuring N-API module registration.
Macro for registering an N-API module exporting an interface for invoking a unary function accepting and returning single-precision floating-point numbers.
static float scale( const float x ) {
return x * 10.0f;
}
// ...
// Register an N-API module:
STDLIB_MATH_BASE_NAPI_MODULE_F_F( scale );
The macro expects the following arguments:
float (*fcn)( float )
unary function.When used, this macro should be used instead of NAPI_MODULE
. The macro includes NAPI_MODULE
, thus ensuring N-API module registration.
Macro for registering an N-API module exporting an interface for invoking a unary function accepting and returning 32-bit signed integers.
#include <stdint.h>
static int32_t scale( const int32_t x ) {
return x * 10;
}
// ...
// Register an N-API module:
STDLIB_MATH_BASE_NAPI_MODULE_I_I( scale );
The macro expects the following arguments:
int32_t (*fcn)( int32_t )
unary function.When used, this macro should be used instead of NAPI_MODULE
. The macro includes NAPI_MODULE
, thus ensuring N-API module registration.
The C-API functions expect that the callback info
argument provides access to the following JavaScript arguments:
x
: input value.This package is part of stdlib, a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more.
For more information on the project, filing bug reports and feature requests, and guidance on how to develop stdlib, see the main project repository.
See LICENSE.
Copyright © 2016-2021. The Stdlib Authors.
0.0.4 (2021-06-16)
No changes reported for this release.
</section> <!-- /.release --> <section class="release" id="v0.0.3">FAQs
C APIs for registering a Node-API module exporting an interface for invoking a unary numerical function.
The npm package @stdlib/math-base-napi-unary receives a total of 331,402 weekly downloads. As such, @stdlib/math-base-napi-unary popularity was classified as popular.
We found that @stdlib/math-base-napi-unary demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.