From cd3f7616d72ce867041bd747f802d04607c2407f Mon Sep 17 00:00:00 2001 From: Om-A-osc Date: Sat, 11 Apr 2026 14:03:10 +0530 Subject: [PATCH 1/2] refactor: reuse variance in `stats/base/dists/binomial/stdev` --- 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: 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: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../stats/base/dists/binomial/stdev/lib/main.js | 16 ++-------------- .../base/dists/binomial/stdev/manifest.json | 12 ++++++------ .../stats/base/dists/binomial/stdev/src/main.c | 13 ++----------- 3 files changed, 10 insertions(+), 31 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/binomial/stdev/lib/main.js b/lib/node_modules/@stdlib/stats/base/dists/binomial/stdev/lib/main.js index adbe9b8fb132..06ec374891f2 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/binomial/stdev/lib/main.js +++ b/lib/node_modules/@stdlib/stats/base/dists/binomial/stdev/lib/main.js @@ -20,10 +20,8 @@ // MODULES // -var isNonNegativeInteger = require( '@stdlib/math/base/assert/is-nonnegative-integer' ); -var isnan = require( '@stdlib/math/base/assert/is-nan' ); var sqrt = require( '@stdlib/math/base/special/sqrt' ); -var PINF = require( '@stdlib/constants/float64/pinf' ); +var variance = require( '@stdlib/stats/base/dists/binomial/variance' ); // MAIN // @@ -56,17 +54,7 @@ var PINF = require( '@stdlib/constants/float64/pinf' ); * // returns NaN */ function stdev( n, p ) { - if ( - isnan( n ) || - isnan( p ) || - p < 0.0 || - p > 1.0 || - !isNonNegativeInteger( n ) || - n === PINF - ) { - return NaN; - } - return sqrt( n * p * ( 1.0 - p ) ); + return sqrt( variance( n, p ) ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/binomial/stdev/manifest.json b/lib/node_modules/@stdlib/stats/base/dists/binomial/stdev/manifest.json index 44a2bc36b3d5..71f4605d7943 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/binomial/stdev/manifest.json +++ b/lib/node_modules/@stdlib/stats/base/dists/binomial/stdev/manifest.json @@ -39,8 +39,8 @@ "libpath": [], "dependencies": [ "@stdlib/math/base/napi/binary", - "@stdlib/math/base/assert/is-nan", - "@stdlib/math/base/special/sqrt" + "@stdlib/math/base/special/sqrt", + "@stdlib/stats/base/dists/binomial/variance" ] }, { @@ -55,9 +55,9 @@ "libraries": [], "libpath": [], "dependencies": [ - "@stdlib/math/base/assert/is-nan", "@stdlib/math/base/special/sqrt", - "@stdlib/math/base/special/ceil" + "@stdlib/math/base/special/ceil", + "@stdlib/stats/base/dists/binomial/variance" ] }, { @@ -72,9 +72,9 @@ "libraries": [], "libpath": [], "dependencies": [ - "@stdlib/math/base/assert/is-nan", "@stdlib/math/base/special/sqrt", - "@stdlib/math/base/special/ceil" + "@stdlib/math/base/special/ceil", + "@stdlib/stats/base/dists/binomial/variance" ] } ] diff --git a/lib/node_modules/@stdlib/stats/base/dists/binomial/stdev/src/main.c b/lib/node_modules/@stdlib/stats/base/dists/binomial/stdev/src/main.c index e4a75ab560bf..7edebcc54f34 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/binomial/stdev/src/main.c +++ b/lib/node_modules/@stdlib/stats/base/dists/binomial/stdev/src/main.c @@ -17,9 +17,8 @@ */ #include "stdlib/stats/base/dists/binomial/stdev.h" -#include "stdlib/math/base/assert/is_nan.h" #include "stdlib/math/base/special/sqrt.h" -#include +#include "stdlib/stats/base/dists/binomial/variance.h" /** * Returns the standard deviation of a binomial distribution. @@ -33,13 +32,5 @@ * // returns 3.0 */ double stdlib_base_dists_binomial_stdev( const int32_t n, const double p ) { - if ( - stdlib_base_is_nan( p ) || - n < 0 || - p < 0.0 || - p > 1.0 - ) { - return 0.0 / 0.0; - } - return stdlib_base_sqrt( n * p * (1.0 - p) ); + return stdlib_base_sqrt( stdlib_base_dists_binomial_variance( n, p ) ); } From 98f91b6009b20c2eb33958f27848720e8f804998 Mon Sep 17 00:00:00 2001 From: Athan Date: Sun, 12 Apr 2026 04:11:56 -0700 Subject: [PATCH 2/2] Apply suggestions from code review Co-authored-by: Athan Signed-off-by: Athan --- .../@stdlib/stats/base/dists/binomial/stdev/src/main.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/node_modules/@stdlib/stats/base/dists/binomial/stdev/src/main.c b/lib/node_modules/@stdlib/stats/base/dists/binomial/stdev/src/main.c index 7edebcc54f34..caa30cda8af2 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/binomial/stdev/src/main.c +++ b/lib/node_modules/@stdlib/stats/base/dists/binomial/stdev/src/main.c @@ -19,6 +19,7 @@ #include "stdlib/stats/base/dists/binomial/stdev.h" #include "stdlib/math/base/special/sqrt.h" #include "stdlib/stats/base/dists/binomial/variance.h" +#include /** * Returns the standard deviation of a binomial distribution.