Skip to content

Commit a31a337

Browse files
committed
Merge branch 'develop' of https://github.com/stdlib-js/stdlib into develop
2 parents cf28c1a + 95d61ed commit a31a337

File tree

59 files changed

+18451
-297
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+18451
-297
lines changed

lib/node_modules/@stdlib/math/base/special/erfcx/package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,14 @@
1414
}
1515
],
1616
"main": "./lib",
17+
"gypfile": true,
1718
"directories": {
1819
"benchmark": "./benchmark",
1920
"doc": "./docs",
2021
"example": "./examples",
22+
"include": "./include",
2123
"lib": "./lib",
24+
"src": "./src",
2225
"test": "./test"
2326
},
2427
"types": "./docs/types",

lib/node_modules/@stdlib/napi/export/README.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,37 @@ The macro expects the following arguments:
129129
130130
When used, this macro should be used **instead of** `NAPI_MODULE`. The macro includes `NAPI_MODULE`, thus ensuring Node-API module registration.
131131
132+
#### STDLIB_NAPI_MODULE_EXPORT_FCN_WITH_METHOD( fcn_name, prop_name, method_name )
133+
134+
Macro for registering a Node-API module which exports a function having a method.
135+
136+
```c
137+
#include <node_api.h>
138+
139+
// ...
140+
141+
static napi_value addon( napi_env env, napi_callback_info info ) {
142+
// ...
143+
}
144+
145+
static napi_value method( napi_env env, napi_callback_info info ) {
146+
// ...
147+
}
148+
149+
// ...
150+
151+
// Register a Node-API module:
152+
STDLIB_NAPI_MODULE_EXPORT_FCN_WITH_METHOD( addon, "foo", method )
153+
```
154+
155+
The macro expects the following arguments:
156+
157+
- **fcn_name**: name of the C function to export.
158+
- **prop_name**: property name.
159+
- **method_name**: name of the C function to export as a method.
160+
161+
When used, this macro should be used **instead of** `NAPI_MODULE`. The macro includes `NAPI_MODULE`, thus ensuring Node-API module registration.
162+
132163
</section>
133164

134165
<!-- /.usage -->

lib/node_modules/@stdlib/napi/export/include/stdlib/napi/export.h

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,4 +60,50 @@
6060
}; \
6161
NAPI_MODULE( NODE_GYP_MODULE_NAME, stdlib_napi_module_export_fcn_init )
6262

63+
/**
64+
* Macro for registering a Node-API module which exports a function having a method.
65+
*
66+
* @param fcn_name exported function name
67+
* @param prop_name property name
68+
* @param method_name exported function name for the method
69+
*
70+
* @example
71+
* #include <node_api.h>
72+
*
73+
* // ...
74+
*
75+
* static napi_value addon( napi_env env, napi_callback_info info ) {
76+
* // ...
77+
* }
78+
*
79+
* static napi_value method( napi_env env, napi_callback_info info ) {
80+
* // ...
81+
* }
82+
*
83+
* // ...
84+
*
85+
* // Register a Node-API module:
86+
* STDLIB_NAPI_MODULE_EXPORT_FCN_WITH_METHOD( addon, "foo", method )
87+
*/
88+
#define STDLIB_NAPI_MODULE_EXPORT_FCN_WITH_METHOD( fcn_name, prop_name, method_name ) \
89+
static napi_value stdlib_napi_module_export_fcn_with_method_init( \
90+
napi_env env, \
91+
napi_value exports \
92+
) { \
93+
napi_value fcn; \
94+
napi_status status = napi_create_function( \
95+
env, \
96+
"exports", \
97+
NAPI_AUTO_LENGTH, \
98+
fcn_name, \
99+
NULL, \
100+
&fcn \
101+
); \
102+
assert( status == napi_ok ); \
103+
status = napi_set_named_property( env, fcn, prop_name, method_name ) \
104+
assert( status == napi_ok ); \
105+
return fcn; \
106+
}; \
107+
NAPI_MODULE( NODE_GYP_MODULE_NAME, stdlib_napi_module_export_fcn_with_method_init )
108+
63109
#endif // !STDLIB_NAPI_EXPORT_H

lib/node_modules/@stdlib/ndarray/base/map/benchmark/benchmark.10d_blocked_columnmajor.js

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@
2121
// MODULES //
2222

2323
var bench = require( '@stdlib/bench' );
24-
var randu = require( '@stdlib/random/base/randu' );
2524
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2625
var pow = require( '@stdlib/math/base/special/pow' );
2726
var floor = require( '@stdlib/math/base/special/floor' );
28-
var round = require( '@stdlib/math/base/special/round' );
2927
var identity = require( '@stdlib/math/base/special/identity' );
3028
var filledarray = require( '@stdlib/array/filled' );
29+
var filledarrayBy = require( '@stdlib/array/filled-by' );
30+
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory;
3131
var shape2strides = require( '@stdlib/ndarray/base/shape2strides' );
3232
var pkg = require( './../package.json' ).name;
3333
var map = require( './../lib/10d_blocked.js' );
@@ -54,13 +54,9 @@ var order = 'column-major';
5454
function createBenchmark( len, shape, xtype, ytype ) {
5555
var x;
5656
var y;
57-
var i;
5857

59-
x = filledarray( 0.0, len, xtype );
58+
x = filledarrayBy( len, xtype, discreteUniform( -100, 100 ) );
6059
y = filledarray( 0.0, len, ytype );
61-
for ( i = 0; i < len; i++ ) {
62-
x[ i ] = round( ( randu()*200.0 ) - 100.0 );
63-
}
6460
x = {
6561
'dtype': xtype,
6662
'data': x,

lib/node_modules/@stdlib/ndarray/base/map/benchmark/benchmark.10d_blocked_rowmajor.js

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@
2121
// MODULES //
2222

2323
var bench = require( '@stdlib/bench' );
24-
var randu = require( '@stdlib/random/base/randu' );
2524
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2625
var pow = require( '@stdlib/math/base/special/pow' );
2726
var floor = require( '@stdlib/math/base/special/floor' );
28-
var round = require( '@stdlib/math/base/special/round' );
2927
var identity = require( '@stdlib/math/base/special/identity' );
3028
var filledarray = require( '@stdlib/array/filled' );
29+
var filledarrayBy = require( '@stdlib/array/filled-by' );
30+
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory;
3131
var shape2strides = require( '@stdlib/ndarray/base/shape2strides' );
3232
var pkg = require( './../package.json' ).name;
3333
var map = require( './../lib/10d_blocked.js' );
@@ -54,13 +54,9 @@ var order = 'row-major';
5454
function createBenchmark( len, shape, xtype, ytype ) {
5555
var x;
5656
var y;
57-
var i;
5857

59-
x = filledarray( 0.0, len, xtype );
58+
x = filledarrayBy( len, xtype, discreteUniform( -100, 100 ) );
6059
y = filledarray( 0.0, len, ytype );
61-
for ( i = 0; i < len; i++ ) {
62-
x[ i ] = round( ( randu()*200.0 ) - 100.0 );
63-
}
6460
x = {
6561
'dtype': xtype,
6662
'data': x,

lib/node_modules/@stdlib/ndarray/base/map/benchmark/benchmark.10d_columnmajor.js

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@
2121
// MODULES //
2222

2323
var bench = require( '@stdlib/bench' );
24-
var randu = require( '@stdlib/random/base/randu' );
2524
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2625
var pow = require( '@stdlib/math/base/special/pow' );
2726
var floor = require( '@stdlib/math/base/special/floor' );
28-
var round = require( '@stdlib/math/base/special/round' );
2927
var identity = require( '@stdlib/math/base/special/identity' );
3028
var filledarray = require( '@stdlib/array/filled' );
29+
var filledarrayBy = require( '@stdlib/array/filled-by' );
30+
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory;
3131
var shape2strides = require( '@stdlib/ndarray/base/shape2strides' );
3232
var pkg = require( './../package.json' ).name;
3333
var map = require( './../lib/10d.js' );
@@ -54,13 +54,9 @@ var order = 'column-major';
5454
function createBenchmark( len, shape, xtype, ytype ) {
5555
var x;
5656
var y;
57-
var i;
5857

59-
x = filledarray( 0.0, len, xtype );
58+
x = filledarrayBy( len, xtype, discreteUniform( -100, 100 ) );
6059
y = filledarray( 0.0, len, ytype );
61-
for ( i = 0; i < len; i++ ) {
62-
x[ i ] = round( ( randu()*200.0 ) - 100.0 );
63-
}
6460
x = {
6561
'dtype': xtype,
6662
'data': x,

lib/node_modules/@stdlib/ndarray/base/map/benchmark/benchmark.10d_rowmajor.js

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@
2121
// MODULES //
2222

2323
var bench = require( '@stdlib/bench' );
24-
var randu = require( '@stdlib/random/base/randu' );
2524
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2625
var pow = require( '@stdlib/math/base/special/pow' );
2726
var floor = require( '@stdlib/math/base/special/floor' );
28-
var round = require( '@stdlib/math/base/special/round' );
2927
var identity = require( '@stdlib/math/base/special/identity' );
3028
var filledarray = require( '@stdlib/array/filled' );
29+
var filledarrayBy = require( '@stdlib/array/filled-by' );
30+
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory;
3131
var shape2strides = require( '@stdlib/ndarray/base/shape2strides' );
3232
var pkg = require( './../package.json' ).name;
3333
var map = require( './../lib/10d.js' );
@@ -54,13 +54,9 @@ var order = 'row-major';
5454
function createBenchmark( len, shape, xtype, ytype ) {
5555
var x;
5656
var y;
57-
var i;
5857

59-
x = filledarray( 0.0, len, xtype );
58+
x = filledarrayBy( len, xtype, discreteUniform( -100, 100 ) );
6059
y = filledarray( 0.0, len, ytype );
61-
for ( i = 0; i < len; i++ ) {
62-
x[ i ] = round( ( randu()*200.0 ) - 100.0 );
63-
}
6460
x = {
6561
'dtype': xtype,
6662
'data': x,

lib/node_modules/@stdlib/ndarray/base/map/benchmark/benchmark.11d_columnmajor.js

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@
2121
// MODULES //
2222

2323
var bench = require( '@stdlib/bench' );
24-
var randu = require( '@stdlib/random/base/randu' );
2524
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2625
var pow = require( '@stdlib/math/base/special/pow' );
2726
var floor = require( '@stdlib/math/base/special/floor' );
28-
var round = require( '@stdlib/math/base/special/round' );
2927
var identity = require( '@stdlib/math/base/special/identity' );
3028
var filledarray = require( '@stdlib/array/filled' );
29+
var filledarrayBy = require( '@stdlib/array/filled-by' );
30+
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory;
3131
var shape2strides = require( '@stdlib/ndarray/base/shape2strides' );
3232
var pkg = require( './../package.json' ).name;
3333
var map = require( './../lib/nd.js' );
@@ -54,13 +54,9 @@ var order = 'column-major';
5454
function createBenchmark( len, shape, xtype, ytype ) {
5555
var x;
5656
var y;
57-
var i;
5857

59-
x = filledarray( 0.0, len, xtype );
58+
x = filledarrayBy( len, xtype, discreteUniform( -100, 100 ) );
6059
y = filledarray( 0.0, len, ytype );
61-
for ( i = 0; i < len; i++ ) {
62-
x[ i ] = round( ( randu()*200.0 ) - 100.0 );
63-
}
6460
x = {
6561
'dtype': xtype,
6662
'data': x,

lib/node_modules/@stdlib/ndarray/base/map/benchmark/benchmark.11d_rowmajor.js

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@
2121
// MODULES //
2222

2323
var bench = require( '@stdlib/bench' );
24-
var randu = require( '@stdlib/random/base/randu' );
2524
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2625
var pow = require( '@stdlib/math/base/special/pow' );
2726
var floor = require( '@stdlib/math/base/special/floor' );
28-
var round = require( '@stdlib/math/base/special/round' );
2927
var identity = require( '@stdlib/math/base/special/identity' );
3028
var filledarray = require( '@stdlib/array/filled' );
29+
var filledarrayBy = require( '@stdlib/array/filled-by' );
30+
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory;
3131
var shape2strides = require( '@stdlib/ndarray/base/shape2strides' );
3232
var pkg = require( './../package.json' ).name;
3333
var map = require( './../lib/nd.js' );
@@ -54,13 +54,9 @@ var order = 'row-major';
5454
function createBenchmark( len, shape, xtype, ytype ) {
5555
var x;
5656
var y;
57-
var i;
5857

59-
x = filledarray( 0.0, len, xtype );
58+
x = filledarrayBy( len, xtype, discreteUniform( -100, 100 ) );
6059
y = filledarray( 0.0, len, ytype );
61-
for ( i = 0; i < len; i++ ) {
62-
x[ i ] = round( ( randu()*200.0 ) - 100.0 );
63-
}
6460
x = {
6561
'dtype': xtype,
6662
'data': x,

lib/node_modules/@stdlib/ndarray/base/map/benchmark/benchmark.1d_columnmajor.js

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@
2121
// MODULES //
2222

2323
var bench = require( '@stdlib/bench' );
24-
var randu = require( '@stdlib/random/base/randu' );
2524
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2625
var pow = require( '@stdlib/math/base/special/pow' );
27-
var round = require( '@stdlib/math/base/special/round' );
2826
var identity = require( '@stdlib/math/base/special/identity' );
2927
var filledarray = require( '@stdlib/array/filled' );
28+
var filledarrayBy = require( '@stdlib/array/filled-by' );
29+
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory;
3030
var shape2strides = require( '@stdlib/ndarray/base/shape2strides' );
3131
var pkg = require( './../package.json' ).name;
3232
var map = require( './../lib' );
@@ -53,13 +53,9 @@ var order = 'column-major';
5353
function createBenchmark( len, shape, xtype, ytype ) {
5454
var x;
5555
var y;
56-
var i;
5756

58-
x = filledarray( 0.0, len, xtype );
57+
x = filledarrayBy( len, xtype, discreteUniform( -100, 100 ) );
5958
y = filledarray( 0.0, len, ytype );
60-
for ( i = 0; i < len; i++ ) {
61-
x[ i ] = round( ( randu()*200.0 ) - 100.0 );
62-
}
6359
x = {
6460
'dtype': xtype,
6561
'data': x,

0 commit comments

Comments
 (0)