From 0812ffc3e0508a4792415614703942444c4e9023 Mon Sep 17 00:00:00 2001 From: Neerajpathak07 Date: Sun, 15 Dec 2024 16:11:22 +0530 Subject: [PATCH 01/12] feat: add quantile --- .../base/dists/bernoulli/quantile/README.md | 110 +++++++++++- .../quantile/benchmark/benchmark.native.js | 88 +++++++++ .../bernoulli/quantile/benchmark/c/Makefile | 146 +++++++++++++++ .../quantile/benchmark/c/benchmark.c | 135 ++++++++++++++ .../base/dists/bernoulli/quantile/binding.gyp | 170 ++++++++++++++++++ .../bernoulli/quantile/examples/c/Makefile | 146 +++++++++++++++ .../bernoulli/quantile/examples/c/examples.c | 35 ++++ .../dists/bernoulli/quantile/include.gypi | 53 ++++++ .../stats/base/dists/bernoulli/quantile.h | 38 ++++ .../dists/bernoulli/quantile/lib/native.js | 74 ++++++++ .../dists/bernoulli/quantile/mainfest.json | 76 ++++++++ .../dists/bernoulli/quantile/package.json | 2 + .../dists/bernoulli/quantile/src/Makefile | 70 ++++++++ .../base/dists/bernoulli/quantile/src/addon.c | 23 +++ .../base/dists/bernoulli/quantile/src/main.c | 76 ++++++++ .../bernoulli/quantile/test/test.native.js | 163 +++++++++++++++++ 16 files changed, 1404 insertions(+), 1 deletion(-) create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/benchmark.native.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/c/Makefile create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/c/benchmark.c create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/binding.gyp create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/examples/c/Makefile create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/examples/c/examples.c create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/include.gypi create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/include/stats/base/dists/bernoulli/quantile.h create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/lib/native.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/mainfest.json create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/src/Makefile create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/src/addon.c create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/src/main.c create mode 100644 lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/test/test.native.js diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/README.md b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/README.md index ed3daca7c5be..428b4eacf33a 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/README.md +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/README.md @@ -2,7 +2,7 @@ @license Apache-2.0 -Copyright (c) 2018 The Stdlib Authors. +Copyright (c) 2024 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. @@ -145,6 +145,114 @@ for ( i = 0; i < 10; i++ ) { + + +* * * + +
+ +## C APIs + + + +
+ +
+ + + + + +
+ +### Usage + +```c +#include "stdlib/stats/base/dists/bernoulli/quantile.h" +``` + +#### stdlib_base_dists_bernoulli_quantile( r , p ) + +Evaluates the quantile function for a Bernoulli distribution with success probability `p` at a probability `r`. + +```c +double y = stdlib_base_dists_bernoulli_quantile( 0.8, 0.4 ); +// returns ~1.0 + +y = stdlib_base_dists_bernoulli_quantile( 0.5, 0.4 ); +// returns ~0.0 + +y = stdlib_base_dists_bernoulli_quantile( 0.8, 0.1 ); +// returns ~0.0 + +y = stdlib_base_dists_bernoulli_quantile( -0.2, 0.1 ); +// returns ~NaN + +y = stdlib_base_dists_bernoulli_quantile( NaN, 0.8 ); +// returns ~NaN + +y = stdlib_base_dists_bernoulli_quantile( 0.4, NaN ); +// returns ~NaN + +y = stdlib_base_dists_bernoulli_quantile( 0.5, -1.0 ); +// returns ~NaN + +y = stdlib_base_dists_bernoulli_quantile( 0.5, 1.5 ); +// returns ~NaN +``` + +The function accepts the following arguments: + +- **r**: `[in] double` probability. +- **p**: `[in] double` success probability. + +```c +double stdlib_base_dists_bernoulli_quantile( const double r, const double p ); +``` +
+ + + + + +
+ +
+ + + + + +
+ +### Examples + +```c +#include "stdlib/stats/base/dists/bernoulli/quantile.h" +#include +#include + +int main( void ) { + double p; + double r; + double y; + int i; + + for ( i = 0; i < 25; i++ ) { + r = ( (double)rand() / (double)RAND_MAX ); + p = ( (double)rand() / (double)RAND_MAX ); + y = stdlib_base_dists_bernoulli_quantile( r, p ); + printf( "r: %lf , p: %lf , Q(r;p): %lf\n", r , p , y ); + } +} +``` + +
+ + + +
+ diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/c/benchmark.c b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/c/benchmark.c index af27288438b2..073b1cc2d223 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/c/benchmark.c +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/c/benchmark.c @@ -132,4 +132,4 @@ int main( void ) { printf( "ok %d benchmark finished\n", i+1 ); } print_summary( REPEATS, REPEATS ); -} \ No newline at end of file +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/examples/c/examples.c b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/examples/c/examples.c index 0161a9932e49..e8262af9de62 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/examples/c/examples.c +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/examples/c/examples.c @@ -30,6 +30,6 @@ int main( void ) { r = ( (double)rand() / (double)RAND_MAX ); p = ( (double)rand() / (double)RAND_MAX ); y = stdlib_base_dists_bernoulli_quantile( r, p ); - printf( "r: %lf , p: %lf , Q(r;p): %lf\n", r , p , y ); + printf( "r: %lf , Q(r;p): %lf\n", r , p , y ); } } diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/package.json b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/package.json index 3b1446638ae1..fb8248527e92 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/package.json +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/package.json @@ -59,7 +59,7 @@ "distribution", "dist", "probability", - "cdf", + "quantile", "inverse", "discrete", "success probability", diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/src/addon.c b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/src/addon.c index 209f4945449a..ff04c8fe3a1f 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/src/addon.c +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/src/addon.c @@ -20,4 +20,4 @@ #include "stdlib/math/base/napi/unary.h" // cppcheck-suppress shadowFunction -STDLIB_MATH_BASE_NAPI_MODULE_D_D( stdlib_base_dists_bernoulli_quantile ) \ No newline at end of file +STDLIB_MATH_BASE_NAPI_MODULE_D_D( stdlib_base_dists_bernoulli_quantile ) From 34c15f5d442a759974a298c2ed53e044d81bfeec Mon Sep 17 00:00:00 2001 From: Neerajpathak07 Date: Thu, 19 Dec 2024 01:23:50 +0530 Subject: [PATCH 04/12] fix: CI errors --- .../@stdlib/stats/base/dists/bernoulli/quantile/src/addon.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/src/addon.c b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/src/addon.c index ff04c8fe3a1f..35a488b71e8d 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/src/addon.c +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/src/addon.c @@ -17,7 +17,7 @@ */ #include "stdlib/stats/base/dists/bernoulli/quantile.h" -#include "stdlib/math/base/napi/unary.h" +#include "stdlib/math/base/napi/binary.h" // cppcheck-suppress shadowFunction -STDLIB_MATH_BASE_NAPI_MODULE_D_D( stdlib_base_dists_bernoulli_quantile ) +STDLIB_MATH_BASE_NAPI_MODULE_DD_D( stdlib_base_dists_bernoulli_quantile ) From e28c4ba1da06f7f85ecc13d8804fde6b351bdeb4 Mon Sep 17 00:00:00 2001 From: Neerajpathak07 Date: Thu, 19 Dec 2024 10:17:29 +0530 Subject: [PATCH 05/12] fix: minifest dependencies --- .../@stdlib/stats/base/dists/bernoulli/quantile/mainfest.json | 2 +- .../@stdlib/stats/base/dists/bernoulli/quantile/src/addon.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/mainfest.json b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/mainfest.json index 777fa7e8c4ba..5d9b6fa16002 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/mainfest.json +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/mainfest.json @@ -38,7 +38,7 @@ "libraries": [], "libpath": [], "dependencies": [ - "@stdlib/math/base/napi/unary", + "@stdlib/math/base/napi/biary", "@stdlib/math/base/assert/is_nan" ] }, diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/src/addon.c b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/src/addon.c index 35a488b71e8d..3a99039fb06a 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/src/addon.c +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/src/addon.c @@ -20,4 +20,4 @@ #include "stdlib/math/base/napi/binary.h" // cppcheck-suppress shadowFunction -STDLIB_MATH_BASE_NAPI_MODULE_DD_D( stdlib_base_dists_bernoulli_quantile ) +STDLIB_MATH_BASE_NAPI_MODULE_DD_D( stdlib_base_dists_bernoulli_quantile ) \ No newline at end of file From 75b8a294ebfb7a4edc82a0e0368ff48aa08b4540 Mon Sep 17 00:00:00 2001 From: Neerajpathak07 Date: Thu, 19 Dec 2024 16:44:13 +0530 Subject: [PATCH 06/12] fix: bench errors --- .../dists/bernoulli/quantile/benchmark/c/benchmark.c | 12 +++++++----- .../base/dists/bernoulli/quantile/mainfest.json | 8 ++++---- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/c/benchmark.c b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/c/benchmark.c index 073b1cc2d223..92307d6fbc62 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/c/benchmark.c +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/c/benchmark.c @@ -75,13 +75,15 @@ static double tic( void ) { } /** -* Generates a random number on the interval [0,1). +* Generates a random number on the interval [min,max). * -* @return random number +* @param min minimum value (inclusive) +* @param max maximum value (exclusive) +* @return random number */ -static double rand_double( void ) { - int r = rand(); - return (double)r / ( (double)RAND_MAX + 1.0 ); +static double random_uniform( const double min, const double max ) { + double v = (double)rand() / ( (double)RAND_MAX + 1.0 ); + return min + ( v*(max-min) ); } /** diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/mainfest.json b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/mainfest.json index 5d9b6fa16002..8a9584b6f127 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/mainfest.json +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/mainfest.json @@ -38,8 +38,8 @@ "libraries": [], "libpath": [], "dependencies": [ - "@stdlib/math/base/napi/biary", - "@stdlib/math/base/assert/is_nan" + "@stdlib/math/base/napi/binary", + "@stdlib/math/base/assert/is-nan" ] }, { @@ -54,7 +54,7 @@ "libraries": [], "libpath": [], "dependencies": [ - "@stdlib/math/base/assert/is_nan" + "@stdlib/math/base/assert/is-nan" ] }, { @@ -69,7 +69,7 @@ "libraries": [], "libpath": [], "dependencies": [ - "@stdlib/math/base/assert/is_nan" + "@stdlib/math/base/assert/is-nan" ] } ] From ca20636cf061ca65baa63ae8756261535f2ba177 Mon Sep 17 00:00:00 2001 From: Neerajpathak07 Date: Thu, 19 Dec 2024 16:58:45 +0530 Subject: [PATCH 07/12] fix: example errors --- .../stats/base/dists/bernoulli/quantile/examples/c/examples.c | 2 +- .../include/stdlib/stats/base/dists/bernoulli/quantile.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/examples/c/examples.c b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/examples/c/examples.c index e8262af9de62..0161a9932e49 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/examples/c/examples.c +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/examples/c/examples.c @@ -30,6 +30,6 @@ int main( void ) { r = ( (double)rand() / (double)RAND_MAX ); p = ( (double)rand() / (double)RAND_MAX ); y = stdlib_base_dists_bernoulli_quantile( r, p ); - printf( "r: %lf , Q(r;p): %lf\n", r , p , y ); + printf( "r: %lf , p: %lf , Q(r;p): %lf\n", r , p , y ); } } diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/include/stdlib/stats/base/dists/bernoulli/quantile.h b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/include/stdlib/stats/base/dists/bernoulli/quantile.h index 7a5525f8aaed..81b5049e7ffd 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/include/stdlib/stats/base/dists/bernoulli/quantile.h +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/include/stdlib/stats/base/dists/bernoulli/quantile.h @@ -35,4 +35,4 @@ double stdlib_base_dists_bernoulli_quantile( const double r, const double p ); } #endif -#endif // !STDLIB_STATS_BASE_DISTS_BERNOULLI_QUANTILE_H +#endif // !STDLIB_STATS_BASE_DISTS_BERNOULLI_QUANTILE_H \ No newline at end of file From facb058db2ae6bf8851eb0e8b3e82a738bf1e1a6 Mon Sep 17 00:00:00 2001 From: Neerajpathak07 Date: Thu, 2 Jan 2025 19:55:28 +0530 Subject: [PATCH 08/12] chore: minor clean up --- .../base/dists/bernoulli/quantile/README.md | 25 ++----------------- .../stats/base/dists/bernoulli/quantile.h | 4 +-- .../base/dists/bernoulli/quantile/lib/main.js | 2 +- .../dists/bernoulli/quantile/lib/native.js | 2 +- .../quantile/{mainfest.json => manifest.json} | 0 .../base/dists/bernoulli/quantile/src/main.c | 2 +- 6 files changed, 7 insertions(+), 28 deletions(-) rename lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/{mainfest.json => manifest.json} (100%) diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/README.md b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/README.md index a85d0a32c926..ab3fc519fe6f 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/README.md +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/README.md @@ -173,37 +173,16 @@ for ( i = 0; i < 10; i++ ) { #### stdlib_base_dists_bernoulli_quantile( r , p ) -Evaluates the quantile function for a Bernoulli distribution with success probability `p` at a probability `r`. +Evaluates the quantile function for a Bernoulli distribution with success probability `p` at a value `r`. ```c double y = stdlib_base_dists_bernoulli_quantile( 0.8, 0.4 ); // returns ~1.0 - -y = stdlib_base_dists_bernoulli_quantile( 0.5, 0.4 ); -// returns ~0.0 - -y = stdlib_base_dists_bernoulli_quantile( 0.8, 0.1 ); -// returns ~0.0 - -y = stdlib_base_dists_bernoulli_quantile( -0.2, 0.1 ); -// returns ~NaN - -y = stdlib_base_dists_bernoulli_quantile( NaN, 0.8 ); -// returns ~NaN - -y = stdlib_base_dists_bernoulli_quantile( 0.4, NaN ); -// returns ~NaN - -y = stdlib_base_dists_bernoulli_quantile( 0.5, -1.0 ); -// returns ~NaN - -y = stdlib_base_dists_bernoulli_quantile( 0.5, 1.5 ); -// returns ~NaN ``` The function accepts the following arguments: -- **r**: `[in] double` probability. +- **r**: `[in] double` input value. - **p**: `[in] double` success probability. ```c diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/include/stdlib/stats/base/dists/bernoulli/quantile.h b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/include/stdlib/stats/base/dists/bernoulli/quantile.h index 81b5049e7ffd..faf2d3b7710a 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/include/stdlib/stats/base/dists/bernoulli/quantile.h +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/include/stdlib/stats/base/dists/bernoulli/quantile.h @@ -27,7 +27,7 @@ extern "C" { #endif /** -* Returns the quantile of a Bernoulli distribution. +* Evaluates the quantile function for a Bernoulli distribution with success probability `p` at a probability `r`. */ double stdlib_base_dists_bernoulli_quantile( const double r, const double p ); @@ -35,4 +35,4 @@ double stdlib_base_dists_bernoulli_quantile( const double r, const double p ); } #endif -#endif // !STDLIB_STATS_BASE_DISTS_BERNOULLI_QUANTILE_H \ No newline at end of file +#endif // !STDLIB_STATS_BASE_DISTS_BERNOULLI_QUANTILE_H diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/lib/main.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/lib/main.js index ed4a9da84bc2..ba1ca5f68947 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/lib/main.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/lib/main.js @@ -26,7 +26,7 @@ var isnan = require( '@stdlib/math/base/assert/is-nan' ); // MAIN // /** -* Evaluates the quantile function for a Bernoulli distribution with success probability `p` at a probability `r`. +* Evaluates the quantile function for a Bernoulli distribution with success probability `p` at a value `r`. * * @param {Probability} r - input value * @param {Probability} p - success probability diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/lib/native.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/lib/native.js index f1c2ee29f355..cbadb13e2bef 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/lib/native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/lib/native.js @@ -26,7 +26,7 @@ var addon = require( './../src/addon.node' ); // MAIN // /** -* Evaluates the quantile function for a Bernoulli distribution with success probability `p` at a probability `r`. +* Evaluates the quantile function for a Bernoulli distribution with success probability `p` at a value `r`. * * @param {Probability} r - input value * @param {Probability} p - success probability diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/mainfest.json b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/manifest.json similarity index 100% rename from lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/mainfest.json rename to lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/manifest.json diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/src/main.c b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/src/main.c index 64010c02f7ee..8ca7f8514cbf 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/src/main.c +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/src/main.c @@ -20,7 +20,7 @@ #include "stdlib/math/base/assert/is_nan.h" /** -* Evaluates the quantile function for a Bernoulli distribution with success probability `p` at a probability `r`. +* Evaluates the quantile function for a Bernoulli distribution with success probability `p` at a value `r`. * * @param r input value * @param p success probability From d3f05da22d6fbb6e4e0b289210fc2a5ac47eb80e Mon Sep 17 00:00:00 2001 From: Neerajpathak07 Date: Thu, 2 Jan 2025 20:14:16 +0530 Subject: [PATCH 09/12] fix: example error --- .../quantile/benchmark/benchmark.native.js | 2 +- .../bernoulli/quantile/benchmark/c/Makefile | 2 +- .../quantile/benchmark/c/benchmark.c | 2 +- .../base/dists/bernoulli/quantile/binding.gyp | 4 +- .../bernoulli/quantile/examples/c/Makefile | 4 +- .../examples/c/{examples.c => example.c} | 4 +- .../dists/bernoulli/quantile/include.gypi | 4 +- .../stats/base/dists/bernoulli/quantile.h | 2 +- .../dists/bernoulli/quantile/lib/native.js | 4 +- .../dists/bernoulli/quantile/src/Makefile | 6 +- .../base/dists/bernoulli/quantile/src/addon.c | 4 +- .../base/dists/bernoulli/quantile/src/main.c | 12 ++-- .../bernoulli/quantile/test/test.native.js | 70 ++++++------------- 13 files changed, 45 insertions(+), 75 deletions(-) rename lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/examples/c/{examples.c => example.c} (93%) diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/benchmark.native.js index e1b6b2c503ac..ea26da8b8188 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/benchmark.native.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2024 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. diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/c/Makefile b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/c/Makefile index f69e9da2b4d3..a4bd7b38fd74 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/c/Makefile +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/c/Makefile @@ -1,7 +1,7 @@ #/ # @license Apache-2.0 # -# Copyright (c) 2024 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. diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/c/benchmark.c b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/c/benchmark.c index 92307d6fbc62..428f0ee16153 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/c/benchmark.c +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/c/benchmark.c @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2024 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. diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/binding.gyp b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/binding.gyp index 507cb00291e7..68a1ca11d160 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/binding.gyp +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/binding.gyp @@ -1,6 +1,6 @@ # @license Apache-2.0 # -# Copyright (c) 2024 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. @@ -167,4 +167,4 @@ ], # end actions }, # end target copy_addon ], # end targets -} \ No newline at end of file +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/examples/c/Makefile b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/examples/c/Makefile index d53ef397c77d..25ced822f96a 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/examples/c/Makefile +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/examples/c/Makefile @@ -1,7 +1,7 @@ #/ # @license Apache-2.0 # -# Copyright (c) 2024 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. @@ -143,4 +143,4 @@ run: $(c_targets) clean: $(QUIET) -rm -f *.o *.out -.PHONY: clean \ No newline at end of file +.PHONY: clean diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/examples/c/examples.c b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/examples/c/example.c similarity index 93% rename from lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/examples/c/examples.c rename to lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/examples/c/example.c index 0161a9932e49..a69c4c9efa42 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/examples/c/examples.c +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/examples/c/example.c @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2024 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. @@ -26,7 +26,7 @@ int main( void ) { double y; int i; - for ( i = 0; i < 25; i++ ) { + for ( i = 0; i < 10; i++ ) { r = ( (double)rand() / (double)RAND_MAX ); p = ( (double)rand() / (double)RAND_MAX ); y = stdlib_base_dists_bernoulli_quantile( r, p ); diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/include.gypi b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/include.gypi index c6495fc1da3f..ecfaf82a3279 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/include.gypi +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/include.gypi @@ -1,6 +1,6 @@ # @license Apache-2.0 # -# Copyright (c) 2024 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. @@ -50,4 +50,4 @@ ' Date: Thu, 2 Jan 2025 20:50:25 +0530 Subject: [PATCH 10/12] fix: updating bench file --- .../quantile/benchmark/benchmark.native.js | 28 +------------------ 1 file changed, 1 insertion(+), 27 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/benchmark.native.js index ea26da8b8188..506620e81813 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/benchmark.native.js @@ -38,7 +38,7 @@ var opts = { // MAIN // -bench( pkg, opts, function benchmark( b ) { +bench( pkg+'::native', opts, function benchmark( b ) { var p; var r; var y; @@ -60,29 +60,3 @@ bench( pkg, opts, function benchmark( b ) { b.pass( 'benchmark finished' ); b.end(); }); - -bench( pkg+':factory', opts, function benchmark( b ) { - var myquantile; - var p; - var r; - var y; - var i; - - p = 0.3; - myquantile = quantile.factory( p ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - r = randu(); - y = myquantile( r ); - if ( isnan( y ) ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( y ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); From 7ecbaa8a4ccbe9cf8caaa0aa0d31b1c569b18165 Mon Sep 17 00:00:00 2001 From: Neerajpathak07 Date: Thu, 16 Jan 2025 18:34:09 +0530 Subject: [PATCH 11/12] chore: clean up --- .../stats/base/dists/bernoulli/quantile/README.md | 13 +++++++++---- .../bernoulli/quantile/benchmark/c/benchmark.c | 15 ++++++++++----- .../dists/bernoulli/quantile/examples/c/example.c | 9 +++++++-- .../stdlib/stats/base/dists/bernoulli/quantile.h | 2 +- .../base/dists/bernoulli/quantile/lib/native.js | 4 ++++ 5 files changed, 31 insertions(+), 12 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/README.md b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/README.md index ab3fc519fe6f..b6892ae3b00a 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/README.md +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/README.md @@ -212,15 +212,20 @@ double stdlib_base_dists_bernoulli_quantile( const double r, const double p ); #include #include +static double random_uniform( const double min, const double max ) { + double v = (double)rand() / ( (double)RAND_MAX + 1.0 ); + return min + ( v * ( max - min ) ); +} + int main( void ) { double p; double r; double y; int i; - for ( i = 0; i < 25; i++ ) { - r = ( (double)rand() / (double)RAND_MAX ); - p = ( (double)rand() / (double)RAND_MAX ); + for ( i = 0; i < 10; i++ ) { + r = random_uniform( 0.1, 10.0 ); + p = random_uniform( 0.1, 10.0 ); y = stdlib_base_dists_bernoulli_quantile( r, p ); printf( "r: %lf , p: %lf , Q(r;p): %lf\n", r , p , y ); } @@ -251,4 +256,4 @@ int main( void ) { - + diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/c/benchmark.c b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/c/benchmark.c index 428f0ee16153..bb5841b70979 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/c/benchmark.c +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/c/benchmark.c @@ -93,17 +93,22 @@ static double random_uniform( const double min, const double max ) { */ static double benchmark( void ) { double elapsed; - double r; - double p; + double r[ 100 ]; + double p[ 100 ]; double y; double t; int i; + for ( i = 0; i < 100; i++ ) { + r[ i ] = random_uniform( 0.1, 10.0 ); + } + for ( i = 0; i < 100; i++ ) { + p[ i ] = random_uniform( 0.1, 10.0 ); + } + t = tic(); for ( i = 0; i < ITERATIONS; i++ ) { - r = ( (double)rand() / (double)RAND_MAX ) ; - p = ( (double)rand() / (double)RAND_MAX ) ; - y = stdlib_base_dists_bernoulli_quantile( r, p ); + y = stdlib_base_dists_bernoulli_quantile( r[ i%100 ], p[ i%100 ] ); if ( y != y ) { printf( "should not return NaN\n" ); break; diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/examples/c/example.c b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/examples/c/example.c index a69c4c9efa42..b00254b3810d 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/examples/c/example.c +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/examples/c/example.c @@ -20,6 +20,11 @@ #include #include +static double random_uniform( const double min, const double max ) { + double v = (double)rand() / ( (double)RAND_MAX + 1.0 ); + return min + ( v * ( max - min ) ); +} + int main( void ) { double p; double r; @@ -27,8 +32,8 @@ int main( void ) { int i; for ( i = 0; i < 10; i++ ) { - r = ( (double)rand() / (double)RAND_MAX ); - p = ( (double)rand() / (double)RAND_MAX ); + r = random_uniform( 0.1, 10.0 ); + p = random_uniform( 0.1, 10.0 ); y = stdlib_base_dists_bernoulli_quantile( r, p ); printf( "r: %lf , p: %lf , Q(r;p): %lf\n", r , p , y ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/include/stdlib/stats/base/dists/bernoulli/quantile.h b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/include/stdlib/stats/base/dists/bernoulli/quantile.h index 324a5284745d..deb871b2bdcd 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/include/stdlib/stats/base/dists/bernoulli/quantile.h +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/include/stdlib/stats/base/dists/bernoulli/quantile.h @@ -27,7 +27,7 @@ extern "C" { #endif /** -* Evaluates the quantile function for a Bernoulli distribution with success probability `p` at a probability `r`. +* Evaluates the quantile function for a Bernoulli distribution with success probability `p` at a value `r`. */ double stdlib_base_dists_bernoulli_quantile( const double r, const double p ); diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/lib/native.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/lib/native.js index d789ba2fe921..6ed30938fb48 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/lib/native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/lib/native.js @@ -45,6 +45,10 @@ var addon = require( './../src/addon.node' ); * // returns 0 * * @example +* var y = quantile( NaN, 1.0 ); +* // returns 1 +* +* @example * var y = quantile( -0.2, 0.1 ); * // returns NaN * From 214d52c7b3ad4f5cdd5e7f9cf791e88e44fd2432 Mon Sep 17 00:00:00 2001 From: Neerajpathak07 Date: Sat, 8 Feb 2025 11:26:59 +0530 Subject: [PATCH 12/12] chore: clean up --- .../base/dists/bernoulli/quantile/README.md | 10 +++--- .../bernoulli/quantile/benchmark/benchmark.js | 26 ++++++++++---- .../quantile/benchmark/benchmark.native.js | 16 ++++++--- .../quantile/benchmark/c/benchmark.c | 6 ++-- .../bernoulli/quantile/examples/c/example.c | 8 ++--- .../dists/bernoulli/quantile/lib/native.js | 11 +++--- .../dists/bernoulli/quantile/manifest.json | 2 +- .../base/dists/bernoulli/quantile/src/main.c | 34 ++----------------- 8 files changed, 51 insertions(+), 62 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/README.md b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/README.md index b6892ae3b00a..56c1eabe70f8 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/README.md +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/README.md @@ -173,11 +173,11 @@ for ( i = 0; i < 10; i++ ) { #### stdlib_base_dists_bernoulli_quantile( r , p ) -Evaluates the quantile function for a Bernoulli distribution with success probability `p` at a value `r`. +Evaluates the [quantile function][quantile-function] for a [Bernoulli][bernoulli-distribution] distribution with success probability `p` at a value `r`. ```c double y = stdlib_base_dists_bernoulli_quantile( 0.8, 0.4 ); -// returns ~1.0 +// returns 1.0 ``` The function accepts the following arguments: @@ -224,10 +224,10 @@ int main( void ) { int i; for ( i = 0; i < 10; i++ ) { - r = random_uniform( 0.1, 10.0 ); - p = random_uniform( 0.1, 10.0 ); + r = random_uniform( 0.0, 1.0 ); + p = random_uniform( 0.0, 1.0 ); y = stdlib_base_dists_bernoulli_quantile( r, p ); - printf( "r: %lf , p: %lf , Q(r;p): %lf\n", r , p , y ); + printf( "r: %lf, p: %lf, Q(r;p): %lf\n", r, p, y ); } } ``` diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/benchmark.js index afdccc79cc91..d665db6b527d 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/benchmark.js @@ -21,7 +21,8 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); +var Float64Array = require( '@stdlib/array/float64' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var pkg = require( './../package.json' ).name; var quantile = require( './../lib' ); @@ -30,16 +31,23 @@ var quantile = require( './../lib' ); // MAIN // bench( pkg, function benchmark( b ) { + var len; var p; var r; var y; var i; + len = 100; + r = new Float64Array( len ); + p = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + r[ i ] = uniform( 0.0, 1.0 ); + p[ i ] = uniform( 0.0, 1.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - r = randu(); - p = randu(); - y = quantile( r, p ); + y = quantile( r[ i % len], p[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -54,6 +62,7 @@ bench( pkg, function benchmark( b ) { bench( pkg+':factory', function benchmark( b ) { var myquantile; + var len; var p; var r; var y; @@ -62,10 +71,15 @@ bench( pkg+':factory', function benchmark( b ) { p = 0.3; myquantile = quantile.factory( p ); + len = 100; + r = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + r[ i ] = uniform( 0.0, 1.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - r = randu(); - y = myquantile( r ); + y = myquantile( r[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/benchmark.native.js index 506620e81813..55f0c24e6ced 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/benchmark.native.js @@ -22,7 +22,8 @@ var resolve = require( 'path' ).resolve; var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); +var Float64Array = require( '@stdlib/array/float64' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var tryRequire = require( '@stdlib/utils/try-require' ); var pkg = require( './../package.json' ).name; @@ -39,16 +40,23 @@ var opts = { // MAIN // bench( pkg+'::native', opts, function benchmark( b ) { + var len; var p; var r; var y; var i; + len = 100; + r = new Float64Array( len ); + p = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + r[ i ] = uniform( 0.0, 1.0 ); + p[ i ] = uniform( 0.0, 1.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - r = randu(); - p = randu(); - y = quantile( r, p ); + y = quantile( r[ i % len], p[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/c/benchmark.c b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/c/benchmark.c index bb5841b70979..1fab57b33b8a 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/c/benchmark.c +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/c/benchmark.c @@ -93,7 +93,7 @@ static double random_uniform( const double min, const double max ) { */ static double benchmark( void ) { double elapsed; - double r[ 100 ]; + double r[ 100 ]; double p[ 100 ]; double y; double t; @@ -101,14 +101,12 @@ static double benchmark( void ) { for ( i = 0; i < 100; i++ ) { r[ i ] = random_uniform( 0.1, 10.0 ); - } - for ( i = 0; i < 100; i++ ) { p[ i ] = random_uniform( 0.1, 10.0 ); } t = tic(); for ( i = 0; i < ITERATIONS; i++ ) { - y = stdlib_base_dists_bernoulli_quantile( r[ i%100 ], p[ i%100 ] ); + y = stdlib_base_dists_bernoulli_quantile( r[ i % 100 ], p[ i % 100 ] ); if ( y != y ) { printf( "should not return NaN\n" ); break; diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/examples/c/example.c b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/examples/c/example.c index b00254b3810d..e9ccd42e6511 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/examples/c/example.c +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/examples/c/example.c @@ -27,14 +27,14 @@ static double random_uniform( const double min, const double max ) { int main( void ) { double p; - double r; + double r; double y; int i; for ( i = 0; i < 10; i++ ) { - r = random_uniform( 0.1, 10.0 ); - p = random_uniform( 0.1, 10.0 ); + r = random_uniform( 0.0, 1.0 ); + p = random_uniform( 0.0, 1.0 ); y = stdlib_base_dists_bernoulli_quantile( r, p ); - printf( "r: %lf , p: %lf , Q(r;p): %lf\n", r , p , y ); + printf( "r: %lf, p: %lf, Q(r;p): %lf\n", r, p, y ); } } diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/lib/native.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/lib/native.js index 6ed30938fb48..953485262afb 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/lib/native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/lib/native.js @@ -28,27 +28,24 @@ var addon = require( './../src/addon.node' ); /** * Evaluates the quantile function for a Bernoulli distribution with success probability `p` at a value `r`. * +* @private * @param {Probability} r - input value * @param {Probability} p - success probability * @returns {NonNegativeInteger} evaluated quantile function * * @example -* var v = quantile( 0.8, 0.4 ); +* var y = quantile( 0.8, 0.4 ); * // returns 1 * * @example -* var v = quantile( 0.5, 0.4 ); +* var y = quantile( 0.5, 0.4 ); * // returns 0 * * @example -* var v = quantile( 0.8, 0.1 ); +* var y = quantile( 0.8, 0.1 ); * // returns 0 * * @example -* var y = quantile( NaN, 1.0 ); -* // returns 1 -* -* @example * var y = quantile( -0.2, 0.1 ); * // returns NaN * diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/manifest.json b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/manifest.json index 8a9584b6f127..db80b71a4aa4 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/manifest.json +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/manifest.json @@ -73,4 +73,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/src/main.c b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/src/main.c index 91828f811686..9c996193c811 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/src/main.c +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/src/main.c @@ -24,44 +24,16 @@ * * @param r input value * @param p success probability -* @returns evaluated quantile function +* @return evaluated quantile function * * @example * double y = stdlib_base_dists_bernoulli_quantile( 0.8, 0.4 ); -* // returns ~1.0 -* -* @example -* double y = stdlib_base_dists_bernoulli_quantile( 0.5, 0.4 ); -* // returns ~0.0 -* -* @example -* double y = stdlib_base_dists_bernoulli_quantile( 0.8, 0.1 ); -* // returns ~0.0 -* -* @example -* double y = stdlib_base_dists_bernoulli_quantile( -0.2, 0.1 ); -* // returns NaN -* -* @example -* double y = stdlib_base_dists_bernoulli_quantile( NaN, 0.8 ); -* // returns NaN -* -* @example -* double y = stdlib_base_dists_bernoulli_quantile( 0.4, NaN ); -* // returns NaN -* -* @example -* double y = stdlib_base_dists_bernoulli_quantile( 0.5, -1.0 ); -* // returns NaN -* -* @example -* double y = stdlib_base_dists_bernoulli_quantile( 0.5, 1.5 ); -* // returns NaN +* // returns 1.0 */ double stdlib_base_dists_bernoulli_quantile( const double r, const double p ) { if ( stdlib_base_is_nan( p ) || - stdlib_base_is_nan( p ) || + stdlib_base_is_nan( p ) || p < 0.0 || p > 1.0 || r < 0.0 ||