From 10d1d287c751ee5e767297769357365be3501ca1 Mon Sep 17 00:00:00 2001 From: DhruvArvindSingh Date: Sun, 12 Jan 2025 21:38:52 +0000 Subject: [PATCH 01/18] feat: add C ndarray and refactor for stats/base/sdsnanmeanors --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: passed - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: passed - task: lint_c_examples status: na - task: lint_c_benchmarks status: passed - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: na - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- type: pre_push_report description: Results of running various checks prior to pushing changes. report: - task: run_javascript_examples status: na - task: run_c_examples status: na - task: run_cpp_examples status: na - task: run_javascript_readme_examples status: na - task: run_c_benchmarks status: na - task: run_cpp_benchmarks status: na - task: run_fortran_benchmarks status: na - task: run_javascript_benchmarks status: na - task: run_julia_benchmarks status: na - task: run_python_benchmarks status: na - task: run_r_benchmarks status: na - task: run_javascript_tests status: na --- --- .../stats/base/sdsnanmeanors/README.md | 103 ++++++++++++++++++ .../benchmark/c/benchmark.length.c | 50 ++++++++- .../include/stdlib/stats/base/sdsnanmeanors.h | 9 +- .../stats/base/sdsnanmeanors/lib/ndarray.js | 14 +-- .../base/sdsnanmeanors/lib/ndarray.native.js | 18 +-- .../base/sdsnanmeanors/lib/sdsnanmeanors.js | 40 +------ .../sdsnanmeanors/lib/sdsnanmeanors.native.js | 8 +- .../stats/base/sdsnanmeanors/manifest.json | 21 +++- .../stats/base/sdsnanmeanors/src/addon.c | 26 ++++- .../src/{sdsnanmeanors.c => main.c} | 41 ++++--- 10 files changed, 245 insertions(+), 85 deletions(-) rename lib/node_modules/@stdlib/stats/base/sdsnanmeanors/src/{sdsnanmeanors.c => main.c} (52%) diff --git a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/README.md b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/README.md index 4e3b564c181a..09a7a63f133c 100644 --- a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/README.md +++ b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/README.md @@ -181,6 +181,109 @@ console.log( v ); + + +
+ +### Usage + +```c +#include "stdlib/stats/base/sdsnanmeanors.h" +``` + +#### stdlib_strided_sdsnanmeanors( N, \*X, strideX ) + +Computes the [arithmetic mean][arithmetic-mean] of a single-precision floating-point strided array, ignoring `NaN` values and using ordinary recursive summation with extended accumulation. + +```c +const float x[] = { 1.0, -2.0, 0.0/0.0, 2.0 }; + +double v = stdlib_strided_sdsnanmeanors( 4, x, 1 ); +// returns ~0.3333 +``` + +The function accepts the following arguments: + +- **N**: `[in] CBLAS_INT` number of indexed elements. +- **X**: `[in] float*` input array. +- **strideX**: `[in] CBLAS_INT` stride length for `X`. + +```c +double stdlib_strided_sdsnanmeanors( const CBLAS_INT N, const double *X, const CBLAS_INT strideX ); +``` + +#### stdlib_strided_sdsnanmeanors_ndarray( N, \*X, strideX, offsetX ) + +Computes the [arithmetic mean][arithmetic-mean] of a single-precision floating-point strided array, ignoring `NaN` values and using ordinary recursive summation with extended accumulation and alternative indexing semantics. + +```c +const float x[] = { 1.0, -2.0, 0.0/0.0, 2.0 }; + +double v = stdlib_strided_sdsnanmeanors_ndarray( 4, x, 1, 0 ); +// returns ~0.3333 +``` + +The function accepts the following arguments: + +- **N**: `[in] CBLAS_INT` number of indexed elements. +- **X**: `[in] float*` input array. +- **strideX**: `[in] CBLAS_INT` stride length for `X`. +- **offsetX**: `[in] CBLAS_INT` starting index for `X`. + +```c +double stdlib_strided_sdsnanmeanors_ndarray( const CBLAS_INT N, const double *X, const CBLAS_INT strideX, const CBLAS_INT offsetX ); +``` + +
+ + + + + +
+ +
+ + + + + +
+ +### Examples + +```c +#include "stdlib/stats/base/sdsnanmeanors.h" +#include + +int main( void ) { + // Create a strided array: + const float x[] = { 1.0, 2.0, 0.0/0.0, 3.0, 0.0/0.0, 4.0, 5.0, 6.0, 0.0/0.0, 7.0, 8.0, 0.0/0.0 }; + + // Specify the number of elements: + const int N = 6; + + // Specify the stride length: + const int strideX = 2; + + // Compute the arithmetic mean: + double v = stdlib_strided_sdsnanmeanors( N, x, strideX ); + + // Print the result: + printf( "mean: %lf\n", v ); +} +``` + +
+ + + + + + + +* * * + @@ -240,7 +240,7 @@ double stdlib_strided_sdsnanmeanors_ndarray( const CBLAS_INT N, const double *X, int main( void ) { // Create a strided array: - const float x[] = { 1.0, 2.0, 0.0/0.0, 3.0, 0.0/0.0, 4.0, 5.0, 6.0, 0.0/0.0, 7.0, 8.0, 0.0/0.0 }; + const float x[] = { 1.0f, 2.0f, 0.0f/0.0f, 3.0f, 0.0f/0.0f, 4.0f, 5.0f, 6.0f, 0.0f/0.0f, 7.0f, 8.0f, 0.0f/0.0f }; // Specify the number of elements: const int N = 6; @@ -249,10 +249,10 @@ int main( void ) { const int strideX = 2; // Compute the arithmetic mean: - double v = stdlib_strided_sdsnanmeanors( N, x, strideX ); + float v = stdlib_strided_sdsnanmeanors( N, x, strideX ); // Print the result: - printf( "mean: %lf\n", v ); + printf( "mean: %f\n", v ); } ``` diff --git a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/examples/c/example.c b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/examples/c/example.c index 1bcb31d6be1d..84eb9a79a35d 100644 --- a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/examples/c/example.c +++ b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/examples/c/example.c @@ -21,7 +21,7 @@ int main( void ) { // Create a strided array: - const float x[] = { 1.0, 2.0, 0.0/0.0, 3.0, 0.0/0.0, 4.0, 5.0, 6.0, 0.0/0.0, 7.0, 8.0, 0.0/0.0 }; + const float x[] = { 1.0f, 2.0f, 0.0f/0.0f, 3.0f, 0.0f/0.0f, 4.0f, 5.0f, 6.0f, 0.0f/0.0f, 7.0f, 8.0f, 0.0f/0.0f }; // Specify the number of elements: const int N = 6; diff --git a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/include/stdlib/stats/base/sdsnanmeanors.h b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/include/stdlib/stats/base/sdsnanmeanors.h index d5498561a29d..a1a07a9c6a45 100644 --- a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/include/stdlib/stats/base/sdsnanmeanors.h +++ b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/include/stdlib/stats/base/sdsnanmeanors.h @@ -31,12 +31,12 @@ extern "C" { /** * Computes the arithmetic mean of a single-precision floating-point strided array, ignoring `NaN` values and using ordinary recursive summation with extended accumulation. */ -double API_SUFFIX( stdlib_strided_sdsnanmeanors )( const CBLAS_INT N, const float *X, const CBLAS_INT strideX ); +float API_SUFFIX(stdlib_strided_sdsnanmeanors)( const CBLAS_INT N, const float *X, const CBLAS_INT strideX ); /** * Computes the arithmetic mean of a single-precision floating-point strided array, ignoring `NaN` values and using ordinary recursive summation with extended accumulation and alternative indexing semantics. */ -double API_SUFFIX( stdlib_strided_sdsnanmeanors_ndarray )( const CBLAS_INT N, const float *X, const CBLAS_INT strideX, const CBLAS_INT offsetX ); +float API_SUFFIX(stdlib_strided_sdsnanmeanors_ndarray)( const CBLAS_INT N, const float *X, const CBLAS_INT strideX, const CBLAS_INT offsetX ); #ifdef __cplusplus } diff --git a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/lib/ndarray.native.js b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/lib/ndarray.native.js index 71aea189a8fc..fd920eac4395 100644 --- a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/lib/ndarray.native.js +++ b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/lib/ndarray.native.js @@ -40,7 +40,7 @@ var addon = require( './../src/addon.node' ); * var x = new Float32Array( [ 2.0, 1.0, 2.0, -2.0, -2.0, 2.0, 3.0, 4.0, NaN ] ); * * var v = sdsnanmeanors( 4, x, 2, 1 ); -* //returns 1.25 +* //returns 1.25 */ function sdsnanmeanors( N, x, strideX, offsetX ) { return addon.ndarray( N, x, strideX, offsetX ); diff --git a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/lib/sdsnanmeanors.js b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/lib/sdsnanmeanors.js index 8b4faf89871d..728bd10c631c 100644 --- a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/lib/sdsnanmeanors.js +++ b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/lib/sdsnanmeanors.js @@ -43,8 +43,7 @@ var ndarray = require( './ndarray.js' ); * // returns ~0.3333 */ function sdsnanmeanors( N, x, strideX ) { - var ox = stride2offset( N, strideX ); - return ndarray( N, x, strideX, ox ); + return ndarray( N, x, strideX, stride2offset( N, strideX ) ); } diff --git a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/lib/sdsnanmeanors.native.js b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/lib/sdsnanmeanors.native.js index dadf1cb37967..8e1107c23305 100644 --- a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/lib/sdsnanmeanors.native.js +++ b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/lib/sdsnanmeanors.native.js @@ -39,7 +39,7 @@ var addon = require( './../src/addon.node' ); * var x = new Float32Array( [ 1.0, -2.0, NaN, 2.0 ] ); * * var v = sdsnanmeanors( x.length, x, 1 ); -* //returns ~0.3333 +* //returns ~0.3333 */ function sdsnanmeanors( N, x, strideX ) { return addon( N, x, strideX ); diff --git a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/manifest.json b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/manifest.json index 66ef0f4b3fc7..cc9248846f16 100644 --- a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/manifest.json +++ b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/manifest.json @@ -1,6 +1,7 @@ { "options": { - "task": "build" + "task": "build", + "wasm": false }, "fields": [ { @@ -27,61 +28,75 @@ "confs": [ { "task": "build", + "wasm": false, "src": [ "./src/main.c" ], "include": [ "./include" ], - "libraries": [ - "-lm" - ], + "libraries": [], "libpath": [], "dependencies": [ + "@stdlib/blas/base/shared", + "@stdlib/strided/base/stride2offset", + "@stdlib/math/base/assert/is-nan", "@stdlib/napi/export", "@stdlib/napi/argv", "@stdlib/napi/argv-int64", "@stdlib/napi/argv-strided-float32array", - "@stdlib/blas/base/shared", - "@stdlib/math/base/assert/is-nan", - "@stdlib/strided/base/stride2offset", "@stdlib/napi/create-double" ] }, { "task": "benchmark", + "wasm": false, "src": [ "./src/main.c" ], "include": [ "./include" ], - "libraries": [ - "-lm" - ], + "libraries": [], "libpath": [], "dependencies": [ "@stdlib/blas/base/shared", - "@stdlib/math/base/assert/is-nan", - "@stdlib/strided/base/stride2offset" + "@stdlib/strided/base/stride2offset", + "@stdlib/math/base/assert/is-nan" ] }, { "task": "examples", + "wasm": false, "src": [ "./src/main.c" ], "include": [ "./include" ], - "libraries": [ - "-lm" + "libraries": [], + "libpath": [], + "dependencies": [ + "@stdlib/blas/base/shared", + "@stdlib/strided/base/stride2offset", + "@stdlib/math/base/assert/is-nan" + ] + }, + { + "task": "", + "wasm": true, + "src": [ + "./src/main.c" + ], + "include": [ + "./include" ], + "libraries": [], "libpath": [], "dependencies": [ "@stdlib/blas/base/shared", - "@stdlib/math/base/assert/is-nan", - "@stdlib/strided/base/stride2offset" + "@stdlib/strided/base/stride2offset", + "@stdlib/math/base/assert/is-nan" ] } ] diff --git a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/src/addon.c b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/src/addon.c index 3b802fbf59fd..4419a4dcdf6d 100644 --- a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/src/addon.c +++ b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/src/addon.c @@ -37,7 +37,7 @@ static napi_value addon( napi_env env, napi_callback_info info ) { STDLIB_NAPI_ARGV_INT64( env, N, argv, 0 ); STDLIB_NAPI_ARGV_INT64( env, strideX, argv, 2 ); STDLIB_NAPI_ARGV_STRIDED_FLOAT32ARRAY( env, X, N, strideX, argv, 1 ); - STDLIB_NAPI_CREATE_DOUBLE( env, API_SUFFIX( stdlib_strided_sdsnanmeanors )( N, X, strideX ), v ); + STDLIB_NAPI_CREATE_DOUBLE( env, (double)API_SUFFIX(stdlib_strided_sdsnanmeanors)( N, X, strideX ), v ); return v; } @@ -54,7 +54,7 @@ static napi_value addon_method( napi_env env, napi_callback_info info ) { STDLIB_NAPI_ARGV_INT64( env, offsetX, argv, 3 ); STDLIB_NAPI_ARGV_INT64( env, strideX, argv, 2 ); STDLIB_NAPI_ARGV_STRIDED_FLOAT32ARRAY( env, X, N, strideX, argv, 1 ); - STDLIB_NAPI_CREATE_DOUBLE( env, API_SUFFIX( stdlib_strided_sdsnanmeanors_ndarray )( N, X, strideX, offsetX ), v ); + STDLIB_NAPI_CREATE_DOUBLE( env, (double)API_SUFFIX(stdlib_strided_sdsnanmeanors_ndarray)( N, X, strideX, offsetX ), v ); return v; } diff --git a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/src/main.c b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/src/main.c index f0e8d8fcdd73..c593b8078813 100644 --- a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/src/main.c +++ b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/src/main.c @@ -29,7 +29,7 @@ * @param strideX stride length * @return output value */ -double API_SUFFIX( stdlib_strided_sdsnanmeanors )( const CBLAS_INT N, const float *X, const CBLAS_INT strideX ) { +float API_SUFFIX(stdlib_strided_sdsnanmeanors)( const CBLAS_INT N, const float *X, const CBLAS_INT strideX ) { const CBLAS_INT ox = stdlib_strided_stride2offset( N, strideX ); return API_SUFFIX( stdlib_strided_sdsnanmeanors_ndarray )( N, X, strideX, ox ); } @@ -42,7 +42,7 @@ double API_SUFFIX( stdlib_strided_sdsnanmeanors )( const CBLAS_INT N, const floa * @param offsetX starting index for X * @return output value */ -double API_SUFFIX( stdlib_strided_sdsnanmeanors_ndarray )( const CBLAS_INT N, const float *X, const CBLAS_INT strideX, const CBLAS_INT offsetX ) { +float API_SUFFIX(stdlib_strided_sdsnanmeanors_ndarray)( const CBLAS_INT N, const float *X, const CBLAS_INT strideX, const CBLAS_INT offsetX ) { double sum; CBLAS_INT ix; CBLAS_INT i; diff --git a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/test/test.sdsnanmeanors.js b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/test/test.sdsnanmeanors.js index 4aa6c85faaac..0044d43630e9 100644 --- a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/test/test.sdsnanmeanors.js +++ b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/test/test.sdsnanmeanors.js @@ -61,7 +61,7 @@ tape( 'the function calculates the arithmetic mean of a strided array, ignoring t.end(); }); -tape( 'if provided an `4` parameter less than or equal to `0`, the function returns `NaN`', function test( t ) { +tape( 'if provided an `N` parameter less than or equal to `0`, the function returns `NaN`', function test( t ) { var x; var v; @@ -76,7 +76,7 @@ tape( 'if provided an `4` parameter less than or equal to `0`, the function retu t.end(); }); -tape( 'if provided an `4` parameter equal to `1`, the function returns the first element', function test( t ) { +tape( 'if provided an `N` parameter equal to `1`, the function returns the first element', function test( t ) { var x; var v; diff --git a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/test/test.sdsnanmeanors.native.js b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/test/test.sdsnanmeanors.native.js index b25264ae4030..c8c3505974ac 100644 --- a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/test/test.sdsnanmeanors.native.js +++ b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/test/test.sdsnanmeanors.native.js @@ -152,7 +152,7 @@ tape( 'the function calculates the arithmetic mean of a strided array, ignoring t.end(); }); -tape( 'if provided an `4` parameter less than or equal to `0`, the function returns `NaN`', opts, function test( t ) { +tape( 'if provided an `N` parameter less than or equal to `0`, the function returns `NaN`', opts, function test( t ) { var x; var v; @@ -167,7 +167,7 @@ tape( 'if provided an `4` parameter less than or equal to `0`, the function retu t.end(); }); -tape( 'if provided an `4` parameter equal to `1`, the function returns the first element', opts, function test( t ) { +tape( 'if provided an `N` parameter equal to `1`, the function returns the first element', opts, function test( t ) { var x; var v; From 5c91864915eaf5102ddaeba4b5f88d93a2ba9947 Mon Sep 17 00:00:00 2001 From: gururaj1512 Date: Mon, 9 Jun 2025 12:03:40 +0000 Subject: [PATCH 04/18] style: fix indentations --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: na - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: missing_dependencies - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: na - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../@stdlib/stats/base/sdsnanmeanors/src/main.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/src/main.c b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/src/main.c index c593b8078813..ff2e496ad69d 100644 --- a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/src/main.c +++ b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/src/main.c @@ -24,8 +24,8 @@ /** * Computes the arithmetic mean of a single-precision floating-point strided array, ignoring `NaN` values and using ordinary recursive summation with extended accumulation. * -* @param N number of indexed elements -* @param X input array +* @param N number of indexed elements +* @param X input array * @param strideX stride length * @return output value */ @@ -36,8 +36,8 @@ float API_SUFFIX(stdlib_strided_sdsnanmeanors)( const CBLAS_INT N, const float * /** * Computes the arithmetic mean of a single-precision floating-point strided array, ignoring `NaN` values and using ordinary recursive summation with extended accumulation and alternative indexing semantics. * -* @param N number of indexed elements -* @param X input array +* @param N number of indexed elements +* @param X input array * @param strideX stride length * @param offsetX starting index for X * @return output value From 3e4ffda366c512d1855f7a4f5f5da87cc5674a5f Mon Sep 17 00:00:00 2001 From: stdlib-bot <82920195+stdlib-bot@users.noreply.github.com> Date: Mon, 9 Jun 2025 12:05:43 +0000 Subject: [PATCH 05/18] chore: update copyright years --- lib/node_modules/@stdlib/stats/base/sdsnanmeanors/src/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/src/main.c b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/src/main.c index ff2e496ad69d..fb751f0df701 100644 --- a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/src/main.c +++ b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/src/main.c @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2020 The Stdlib Authors. +* Copyright (c) 2025 The Stdlib Authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. From b481e2ee7420e6063e30539ff2ec6c5cf49e5e82 Mon Sep 17 00:00:00 2001 From: gururaj1512 Date: Mon, 9 Jun 2025 12:24:03 +0000 Subject: [PATCH 06/18] fix: examples and benchmarks --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: passed - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: na - task: lint_javascript_cli status: na - task: lint_javascript_examples status: passed - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: passed - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: na - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../stats/base/sdsnanmeanors/README.md | 15 ++++++++--- .../base/sdsnanmeanors/benchmark/benchmark.js | 23 +++++++++++----- .../benchmark/benchmark.native.js | 22 ++++++++++++---- .../benchmark/benchmark.ndarray.js | 26 ++++++++++++------- .../benchmark/benchmark.ndarray.native.js | 22 ++++++++++++---- .../base/sdsnanmeanors/examples/index.js | 15 ++++++++--- 6 files changed, 90 insertions(+), 33 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/README.md b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/README.md index 1adcc305ebba..c7a5b399f05e 100644 --- a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/README.md +++ b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/README.md @@ -147,12 +147,19 @@ var v = sdsnanmeanors.ndarray( 4, x, 2, 1 ); ```javascript -var discreteUniform = require( '@stdlib/random/array/discrete-uniform' ); +var uniform = require( '@stdlib/random/base/uniform' ); +var filledarrayBy = require( '@stdlib/array/filled-by' ); +var bernoulli = require( '@stdlib/random/base/bernoulli' ); var sdsnanmeanors = require( '@stdlib/stats/base/sdsnanmeanors' ); -var x = discreteUniform( 10, -50, 50, { - 'dtype': 'float32' -}); +function rand() { + if ( bernoulli( 0.8 ) < 1 ) { + return NaN; + } + return uniform( -50.0, 50.0 ); +} + +var x = filledarrayBy( 10, 'float32', rand ); console.log( x ); var v = sdsnanmeanors( x.length, x, 1 ); diff --git a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/benchmark/benchmark.js index eee9088aa95c..b289cc539899 100644 --- a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/benchmark/benchmark.js @@ -21,7 +21,9 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var uniform = require( '@stdlib/random/array/uniform' ); +var uniform = require( '@stdlib/random/base/uniform' ); +var bernoulli = require( '@stdlib/random/base/bernoulli' ); +var filledarrayBy = require( '@stdlib/array/filled-by' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var pow = require( '@stdlib/math/base/special/pow' ); var pkg = require( './../package.json' ).name; @@ -30,13 +32,22 @@ var sdsnanmeanors = require( './../lib/sdsnanmeanors.js' ); // VARIABLES // -var options = { - 'dtype': 'float32' -}; - // FUNCTIONS // +/** +* Returns a random value or `NaN`. +* +* @private +* @returns {number} random number or `NaN` +*/ +function rand() { + if ( bernoulli( 0.8 ) < 1 ) { + return NaN; + } + return uniform( -10.0, 10.0 ); +} + /** * Creates a benchmark function. * @@ -45,7 +56,7 @@ var options = { * @returns {Function} benchmark function */ function createBenchmark( len ) { - var x = uniform( len, -10.0, 10.0, options ); + var x = filledarrayBy( len, 'float32', rand ); return benchmark; function benchmark( b ) { diff --git a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/benchmark/benchmark.native.js index 795f73f9fadd..7526d3e487b2 100644 --- a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/benchmark/benchmark.native.js @@ -22,7 +22,9 @@ var resolve = require( 'path' ).resolve; var bench = require( '@stdlib/bench' ); -var uniform = require( '@stdlib/random/array/uniform' ); +var uniform = require( '@stdlib/random/base/uniform' ); +var bernoulli = require( '@stdlib/random/base/bernoulli' ); +var filledarrayBy = require( '@stdlib/array/filled-by' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var pow = require( '@stdlib/math/base/special/pow' ); var tryRequire = require( '@stdlib/utils/try-require' ); @@ -35,13 +37,23 @@ var sdsnanmeanors = tryRequire( resolve( __dirname, './../lib/sdsnanmeanors.nati var opts = { 'skip': ( sdsnanmeanors instanceof Error ) }; -var options = { - 'dtype': 'float32' -}; // FUNCTIONS // +/** +* Returns a random value or `NaN`. +* +* @private +* @returns {number} random number or `NaN` +*/ +function rand() { + if ( bernoulli( 0.8 ) < 1 ) { + return NaN; + } + return uniform( -10.0, 10.0 ); +} + /** * Creates a benchmark function. * @@ -50,7 +62,7 @@ var options = { * @returns {Function} benchmark function */ function createBenchmark( len ) { - var x = uniform( len, -10.0, 10.0, options ); + var x = filledarrayBy( len, 'float32', rand ); return benchmark; function benchmark( b ) { diff --git a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/benchmark/benchmark.ndarray.js b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/benchmark/benchmark.ndarray.js index 7970d4e65df5..d7cf2832e57c 100644 --- a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/benchmark/benchmark.ndarray.js +++ b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/benchmark/benchmark.ndarray.js @@ -21,22 +21,30 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var uniform = require( '@stdlib/random/array/uniform' ); +var uniform = require( '@stdlib/random/base/uniform' ); +var bernoulli = require( '@stdlib/random/base/bernoulli' ); +var filledarrayBy = require( '@stdlib/array/filled-by' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var pow = require( '@stdlib/math/base/special/pow' ); var pkg = require( './../package.json' ).name; var sdsnanmeanors = require( './../lib/ndarray.js' ); -// VARIABLES // - -var options = { - 'dtype': 'float32' -}; - - // FUNCTIONS // +/** +* Returns a random value or `NaN`. +* +* @private +* @returns {number} random number or `NaN` +*/ +function rand() { + if ( bernoulli( 0.8 ) < 1 ) { + return NaN; + } + return uniform( -10.0, 10.0 ); +} + /** * Creates a benchmark function. * @@ -45,7 +53,7 @@ var options = { * @returns {Function} benchmark function */ function createBenchmark( len ) { - var x = uniform( len, -10.0, 10.0, options ); + var x = filledarrayBy( len, 'float32', rand ); return benchmark; function benchmark( b ) { diff --git a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/benchmark/benchmark.ndarray.native.js b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/benchmark/benchmark.ndarray.native.js index f7322d595995..048973d4b301 100644 --- a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/benchmark/benchmark.ndarray.native.js +++ b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/benchmark/benchmark.ndarray.native.js @@ -22,7 +22,9 @@ var resolve = require( 'path' ).resolve; var bench = require( '@stdlib/bench' ); -var uniform = require( '@stdlib/random/array/uniform' ); +var uniform = require( '@stdlib/random/base/uniform' ); +var bernoulli = require( '@stdlib/random/base/bernoulli' ); +var filledarrayBy = require( '@stdlib/array/filled-by' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var pow = require( '@stdlib/math/base/special/pow' ); var tryRequire = require( '@stdlib/utils/try-require' ); @@ -35,13 +37,23 @@ var sdsnanmeanors = tryRequire( resolve( __dirname, './../lib/ndarray.native.js' var opts = { 'skip': ( sdsnanmeanors instanceof Error ) }; -var options = { - 'dtype': 'float32' -}; // FUNCTIONS // +/** +* Returns a random value or `NaN`. +* +* @private +* @returns {number} random number or `NaN` +*/ +function rand() { + if ( bernoulli( 0.8 ) < 1 ) { + return NaN; + } + return uniform( -10.0, 10.0 ); +} + /** * Creates a benchmark function. * @@ -50,7 +62,7 @@ var options = { * @returns {Function} benchmark function */ function createBenchmark( len ) { - var x = uniform( len, -10.0, 10.0, options ); + var x = filledarrayBy( len, 'float32', rand ); return benchmark; function benchmark( b ) { diff --git a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/examples/index.js b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/examples/index.js index a20a077abed9..ecd0aa87e51e 100644 --- a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/examples/index.js +++ b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/examples/index.js @@ -18,12 +18,19 @@ 'use strict'; -var discreteUniform = require( '@stdlib/random/array/discrete-uniform' ); +var uniform = require( '@stdlib/random/base/uniform' ); +var filledarrayBy = require( '@stdlib/array/filled-by' ); +var bernoulli = require( '@stdlib/random/base/bernoulli' ); var sdsnanmeanors = require( './../lib' ); -var x = discreteUniform( 10, -50, 50, { - 'dtype': 'float32' -}); +function rand() { + if ( bernoulli( 0.8 ) < 1 ) { + return NaN; + } + return uniform( -50.0, 50.0 ); +} + +var x = filledarrayBy( 10, 'float32', rand ); console.log( x ); var v = sdsnanmeanors( x.length, x, 1 ); From 812f010c364f8f1217f92cc3b599fe2eadf02c1f Mon Sep 17 00:00:00 2001 From: gururaj1512 Date: Mon, 9 Jun 2025 12:27:41 +0000 Subject: [PATCH 07/18] fix: minor cleanup --- .../@stdlib/stats/base/sdsnanmeanors/benchmark/benchmark.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/benchmark/benchmark.js index b289cc539899..2deca547c0f0 100644 --- a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/benchmark/benchmark.js @@ -30,9 +30,6 @@ var pkg = require( './../package.json' ).name; var sdsnanmeanors = require( './../lib/sdsnanmeanors.js' ); -// VARIABLES // - - // FUNCTIONS // /** From ea12b4487dac59d0b83e71a8d0ebbe27b42132d9 Mon Sep 17 00:00:00 2001 From: gururaj1512 Date: Mon, 9 Jun 2025 12:29:15 +0000 Subject: [PATCH 08/18] fix: simplify example usage in README --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: passed - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: na - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: na - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- lib/node_modules/@stdlib/stats/base/sdsnanmeanors/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/README.md b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/README.md index c7a5b399f05e..8ab18b691135 100644 --- a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/README.md +++ b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/README.md @@ -59,9 +59,8 @@ Computes the [arithmetic mean][arithmetic-mean] of a single-precision floating-p var Float32Array = require( '@stdlib/array/float32' ); var x = new Float32Array( [ 1.0, -2.0, NaN, 2.0 ] ); -var N = x.length; -var v = sdsnanmeanors( N, x, 1 ); +var v = sdsnanmeanors( x.length, x, 1 ); // returns ~0.3333 ``` From 6920ae6c1692dc92e76051f0f58c0854c52460ef Mon Sep 17 00:00:00 2001 From: Athan Date: Sun, 27 Jul 2025 03:50:28 -0700 Subject: [PATCH 09/18] docs: update example Signed-off-by: Athan --- lib/node_modules/@stdlib/stats/base/sdsnanmeanors/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/README.md b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/README.md index 8ab18b691135..b7c20b91a2a8 100644 --- a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/README.md +++ b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/README.md @@ -77,7 +77,7 @@ var Float32Array = require( '@stdlib/array/float32' ); var x = new Float32Array( [ 1.0, 2.0, 2.0, -7.0, -2.0, 3.0, 4.0, 2.0, NaN ] ); -var v = sdsnanmeanors( 4, x, 2 ); +var v = sdsnanmeanors( 5, x, 2 ); // returns 1.25 ``` From 7f4ad8fdeab98640ad8e4786a96b85811016123d Mon Sep 17 00:00:00 2001 From: Athan Date: Sun, 27 Jul 2025 03:52:48 -0700 Subject: [PATCH 10/18] docs: remove horizontal rule Signed-off-by: Athan --- lib/node_modules/@stdlib/stats/base/sdsnanmeanors/README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/README.md b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/README.md index b7c20b91a2a8..1e161e548ba5 100644 --- a/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/README.md +++ b/lib/node_modules/@stdlib/stats/base/sdsnanmeanors/README.md @@ -270,8 +270,6 @@ int main( void ) { -* * * -