From c6068645db5ffcb0a8f186f70c06bbe0ce16b583 Mon Sep 17 00:00:00 2001 From: Rejoan Sardar Date: Wed, 13 Mar 2024 23:48:41 +0530 Subject: [PATCH 01/12] feat: @stdlib/math/base/assert/int32-is-even --- .../math/base/assert/int32-is-even/README.md | 92 ++++++++++ .../benchmark/benchmark.native.js | 61 +++++++ .../int32-is-even/benchmark/c/native/Makefile | 146 +++++++++++++++ .../benchmark/c/native/benchmark.c | 138 ++++++++++++++ .../base/assert/int32-is-even/binding.gyp | 170 ++++++++++++++++++ .../assert/int32-is-even/examples/c/Makefile | 146 +++++++++++++++ .../assert/int32-is-even/examples/c/example.c | 33 ++++ .../base/assert/int32-is-even/include.gypi | 53 ++++++ .../stdlib/math/base/assert/int32_is_even.h | 41 +++++ .../base/assert/int32-is-even/lib/native.js | 55 ++++++ .../base/assert/int32-is-even/manifest.json | 39 ++++ .../base/assert/int32-is-even/src/Makefile | 70 ++++++++ .../base/assert/int32-is-even/src/addon.c | 90 ++++++++++ .../math/base/assert/int32-is-even/src/main.c | 36 ++++ .../assert/int32-is-even/test/test.native.js | 84 +++++++++ .../base/assert/is-even/include/src/Makefile | 70 ++++++++ .../base/assert/is-even/include/src/addon.c | 90 ++++++++++ .../base/assert/is-even/include/src/main.c | 36 ++++ 18 files changed, 1450 insertions(+) create mode 100644 lib/node_modules/@stdlib/math/base/assert/int32-is-even/benchmark/benchmark.native.js create mode 100644 lib/node_modules/@stdlib/math/base/assert/int32-is-even/benchmark/c/native/Makefile create mode 100644 lib/node_modules/@stdlib/math/base/assert/int32-is-even/benchmark/c/native/benchmark.c create mode 100644 lib/node_modules/@stdlib/math/base/assert/int32-is-even/binding.gyp create mode 100644 lib/node_modules/@stdlib/math/base/assert/int32-is-even/examples/c/Makefile create mode 100644 lib/node_modules/@stdlib/math/base/assert/int32-is-even/examples/c/example.c create mode 100644 lib/node_modules/@stdlib/math/base/assert/int32-is-even/include.gypi create mode 100644 lib/node_modules/@stdlib/math/base/assert/int32-is-even/include/stdlib/math/base/assert/int32_is_even.h create mode 100644 lib/node_modules/@stdlib/math/base/assert/int32-is-even/lib/native.js create mode 100644 lib/node_modules/@stdlib/math/base/assert/int32-is-even/manifest.json create mode 100644 lib/node_modules/@stdlib/math/base/assert/int32-is-even/src/Makefile create mode 100644 lib/node_modules/@stdlib/math/base/assert/int32-is-even/src/addon.c create mode 100644 lib/node_modules/@stdlib/math/base/assert/int32-is-even/src/main.c create mode 100644 lib/node_modules/@stdlib/math/base/assert/int32-is-even/test/test.native.js create mode 100644 lib/node_modules/@stdlib/math/base/assert/is-even/include/src/Makefile create mode 100644 lib/node_modules/@stdlib/math/base/assert/is-even/include/src/addon.c create mode 100644 lib/node_modules/@stdlib/math/base/assert/is-even/include/src/main.c diff --git a/lib/node_modules/@stdlib/math/base/assert/int32-is-even/README.md b/lib/node_modules/@stdlib/math/base/assert/int32-is-even/README.md index 89358ad1ead..2fcfbf890f5 100644 --- a/lib/node_modules/@stdlib/math/base/assert/int32-is-even/README.md +++ b/lib/node_modules/@stdlib/math/base/assert/int32-is-even/README.md @@ -81,6 +81,98 @@ for ( i = 0; i < 100; i++ ) { + + +* * * + +
+ +## C APIs + + + +
+ +
+ + + + + +
+ +### Usage + +```c +#include "stdlib/math/base/assert/int32_is_even.h" +``` + +#### stdlib_base_int32_is_even( x ) + +Tests if 32-bit integer is even. + +```c +#include + +bool out = stdlib_base_int32_is_even( -2 ); +// returns true + +out = stdlib_base_int32_is_even( 5 ); +// returns false +``` + +The function accepts the following arguments: + +- **x**: `[in] double` input value. + +```c +bool stdlib_base_int32_is_even( const double x ); +``` + +
+ + + + + +
+ +
+ + + + + +
+ +### Examples + +```c +#include "stdlib/math/base/assert/int32_is_even.h" +#include +#include +#include + +int main( void ) { + const int32_t x[] = { 5, -5, 3, -3, 0, 2 }; + + bool b; + int i; + for ( i = 0; i < 5; i++ ) { + b = stdlib_base_int32_is_even( x[ i ] ); + printf( "Value: %d. int32 Is even? %s.\n", x[ i ], ( b ) ? "True" : "False" ); + } +} +``` + +
+ + + +
+ + + From 8c9574267b3cc7ee5c3914d5dbdde898ab44ec08 Mon Sep 17 00:00:00 2001 From: Rejoan Sardar <119718513+Rejoan-Sardar@users.noreply.github.com> Date: Sun, 17 Mar 2024 18:40:22 +0530 Subject: [PATCH 04/12] Update native.js Signed-off-by: Rejoan Sardar <119718513+Rejoan-Sardar@users.noreply.github.com> --- .../@stdlib/math/base/assert/int32-is-even/lib/native.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/math/base/assert/int32-is-even/lib/native.js b/lib/node_modules/@stdlib/math/base/assert/int32-is-even/lib/native.js index b934a1ca597..c9bd14b1fb2 100644 --- a/lib/node_modules/@stdlib/math/base/assert/int32-is-even/lib/native.js +++ b/lib/node_modules/@stdlib/math/base/assert/int32-is-even/lib/native.js @@ -30,7 +30,7 @@ var addon = require( './../src/addon.node' ); * Tests if a 32-bit integer is even. * * @private -* @param {number} x - value to test +* @param {integer32} x - value to test * @returns {boolean} boolean indicating whether the number is even * * @example From 1d268ef06566f768fbe567ddb0ea09e3ce52efdc Mon Sep 17 00:00:00 2001 From: Rejoan Sardar <119718513+Rejoan-Sardar@users.noreply.github.com> Date: Sun, 17 Mar 2024 18:41:54 +0530 Subject: [PATCH 05/12] Update addon.c Signed-off-by: Rejoan Sardar <119718513+Rejoan-Sardar@users.noreply.github.com> --- .../@stdlib/math/base/assert/int32-is-even/src/addon.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/assert/int32-is-even/src/addon.c b/lib/node_modules/@stdlib/math/base/assert/int32-is-even/src/addon.c index 3b64536ce56..ed2b8a508ac 100644 --- a/lib/node_modules/@stdlib/math/base/assert/int32-is-even/src/addon.c +++ b/lib/node_modules/@stdlib/math/base/assert/int32-is-even/src/addon.c @@ -59,8 +59,8 @@ static napi_value addon( napi_env env, napi_callback_info info ) { return NULL; } - double x; - status = napi_get_value_double( env, argv[ 0 ], &x ); + int32_t x; + status = napi_get_value_int32_t( env, argv[ 0 ], &x ); assert( status == napi_ok ); bool result = stdlib_base_int32_is_even( x ); From 0a50f1d3b9a30e1ca5cd396f0918a4462af22941 Mon Sep 17 00:00:00 2001 From: Rejoan Sardar <119718513+Rejoan-Sardar@users.noreply.github.com> Date: Sun, 17 Mar 2024 18:49:01 +0530 Subject: [PATCH 06/12] Update addon.c Signed-off-by: Rejoan Sardar <119718513+Rejoan-Sardar@users.noreply.github.com> --- .../@stdlib/math/base/assert/int32-is-even/src/addon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/math/base/assert/int32-is-even/src/addon.c b/lib/node_modules/@stdlib/math/base/assert/int32-is-even/src/addon.c index ed2b8a508ac..4662b5d3d60 100644 --- a/lib/node_modules/@stdlib/math/base/assert/int32-is-even/src/addon.c +++ b/lib/node_modules/@stdlib/math/base/assert/int32-is-even/src/addon.c @@ -60,7 +60,7 @@ static napi_value addon( napi_env env, napi_callback_info info ) { } int32_t x; - status = napi_get_value_int32_t( env, argv[ 0 ], &x ); + status = napi_get_value_int32( env, argv[ 0 ], &x ); assert( status == napi_ok ); bool result = stdlib_base_int32_is_even( x ); From f4f7eab5b8d9167cdbfb177844111cf9de0a3370 Mon Sep 17 00:00:00 2001 From: Rejoan Sardar <119718513+Rejoan-Sardar@users.noreply.github.com> Date: Sun, 17 Mar 2024 19:11:44 +0530 Subject: [PATCH 07/12] Update native.js Signed-off-by: Rejoan Sardar <119718513+Rejoan-Sardar@users.noreply.github.com> --- .../@stdlib/math/base/assert/int32-is-even/lib/native.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/math/base/assert/int32-is-even/lib/native.js b/lib/node_modules/@stdlib/math/base/assert/int32-is-even/lib/native.js index c9bd14b1fb2..b934a1ca597 100644 --- a/lib/node_modules/@stdlib/math/base/assert/int32-is-even/lib/native.js +++ b/lib/node_modules/@stdlib/math/base/assert/int32-is-even/lib/native.js @@ -30,7 +30,7 @@ var addon = require( './../src/addon.node' ); * Tests if a 32-bit integer is even. * * @private -* @param {integer32} x - value to test +* @param {number} x - value to test * @returns {boolean} boolean indicating whether the number is even * * @example From d9cb259f1b890028a38e7f191978b99a519be57a Mon Sep 17 00:00:00 2001 From: Rejoan Sardar <119718513+Rejoan-Sardar@users.noreply.github.com> Date: Sun, 17 Mar 2024 20:02:00 +0530 Subject: [PATCH 08/12] Update native.js Signed-off-by: Rejoan Sardar <119718513+Rejoan-Sardar@users.noreply.github.com> --- .../@stdlib/math/base/assert/int32-is-even/lib/native.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/math/base/assert/int32-is-even/lib/native.js b/lib/node_modules/@stdlib/math/base/assert/int32-is-even/lib/native.js index b934a1ca597..c9bd14b1fb2 100644 --- a/lib/node_modules/@stdlib/math/base/assert/int32-is-even/lib/native.js +++ b/lib/node_modules/@stdlib/math/base/assert/int32-is-even/lib/native.js @@ -30,7 +30,7 @@ var addon = require( './../src/addon.node' ); * Tests if a 32-bit integer is even. * * @private -* @param {number} x - value to test +* @param {integer32} x - value to test * @returns {boolean} boolean indicating whether the number is even * * @example From 2647ad19bbfb1465eb350d64a6a3fe19b894f2a1 Mon Sep 17 00:00:00 2001 From: Rejoan Sardar <119718513+Rejoan-Sardar@users.noreply.github.com> Date: Sun, 17 Mar 2024 20:03:59 +0530 Subject: [PATCH 09/12] Update addon.c Signed-off-by: Rejoan Sardar <119718513+Rejoan-Sardar@users.noreply.github.com> --- .../@stdlib/math/base/assert/int32-is-even/src/addon.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/assert/int32-is-even/src/addon.c b/lib/node_modules/@stdlib/math/base/assert/int32-is-even/src/addon.c index 4662b5d3d60..3b64536ce56 100644 --- a/lib/node_modules/@stdlib/math/base/assert/int32-is-even/src/addon.c +++ b/lib/node_modules/@stdlib/math/base/assert/int32-is-even/src/addon.c @@ -59,8 +59,8 @@ static napi_value addon( napi_env env, napi_callback_info info ) { return NULL; } - int32_t x; - status = napi_get_value_int32( env, argv[ 0 ], &x ); + double x; + status = napi_get_value_double( env, argv[ 0 ], &x ); assert( status == napi_ok ); bool result = stdlib_base_int32_is_even( x ); From 493b97ba82704d24bf7a097a058f152c66310f21 Mon Sep 17 00:00:00 2001 From: Rejoan Sardar <119718513+Rejoan-Sardar@users.noreply.github.com> Date: Sun, 17 Mar 2024 20:11:12 +0530 Subject: [PATCH 10/12] Update native.js Signed-off-by: Rejoan Sardar <119718513+Rejoan-Sardar@users.noreply.github.com> --- .../@stdlib/math/base/assert/int32-is-even/lib/native.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/math/base/assert/int32-is-even/lib/native.js b/lib/node_modules/@stdlib/math/base/assert/int32-is-even/lib/native.js index c9bd14b1fb2..b934a1ca597 100644 --- a/lib/node_modules/@stdlib/math/base/assert/int32-is-even/lib/native.js +++ b/lib/node_modules/@stdlib/math/base/assert/int32-is-even/lib/native.js @@ -30,7 +30,7 @@ var addon = require( './../src/addon.node' ); * Tests if a 32-bit integer is even. * * @private -* @param {integer32} x - value to test +* @param {number} x - value to test * @returns {boolean} boolean indicating whether the number is even * * @example From 9a790c1c1d7226e899d6aacace40a731d5706f9e Mon Sep 17 00:00:00 2001 From: Rejoan Sardar <119718513+Rejoan-Sardar@users.noreply.github.com> Date: Sun, 17 Mar 2024 22:16:29 +0530 Subject: [PATCH 11/12] Update main.c Signed-off-by: Rejoan Sardar <119718513+Rejoan-Sardar@users.noreply.github.com> --- .../@stdlib/math/base/assert/int32-is-even/src/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/math/base/assert/int32-is-even/src/main.c b/lib/node_modules/@stdlib/math/base/assert/int32-is-even/src/main.c index 0dbcd48cc5f..1581045b1ec 100644 --- a/lib/node_modules/@stdlib/math/base/assert/int32-is-even/src/main.c +++ b/lib/node_modules/@stdlib/math/base/assert/int32-is-even/src/main.c @@ -32,5 +32,5 @@ * // returns true */ bool stdlib_base_int32_is_even( const int32_t x ) { - return ( x & 1 ) == 1; + return ( x & 1 ) == 0; } From 33c87c6ab9b828631b8e6e2b62b11a4f10e12d32 Mon Sep 17 00:00:00 2001 From: Rejoan Sardar <119718513+Rejoan-Sardar@users.noreply.github.com> Date: Sun, 17 Mar 2024 22:18:45 +0530 Subject: [PATCH 12/12] Update addon.c Signed-off-by: Rejoan Sardar <119718513+Rejoan-Sardar@users.noreply.github.com> --- .../@stdlib/math/base/assert/int32-is-even/src/addon.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/assert/int32-is-even/src/addon.c b/lib/node_modules/@stdlib/math/base/assert/int32-is-even/src/addon.c index 3b64536ce56..4662b5d3d60 100644 --- a/lib/node_modules/@stdlib/math/base/assert/int32-is-even/src/addon.c +++ b/lib/node_modules/@stdlib/math/base/assert/int32-is-even/src/addon.c @@ -59,8 +59,8 @@ static napi_value addon( napi_env env, napi_callback_info info ) { return NULL; } - double x; - status = napi_get_value_double( env, argv[ 0 ], &x ); + int32_t x; + status = napi_get_value_int32( env, argv[ 0 ], &x ); assert( status == napi_ok ); bool result = stdlib_base_int32_is_even( x );