From 909b97c45a3a3f255bb1e589e124f44470b39442 Mon Sep 17 00:00:00 2001 From: JoyBoy <144602492+0PrashantYadav0@users.noreply.github.com> Date: Mon, 23 Dec 2024 18:07:14 +0530 Subject: [PATCH 1/7] feat: add C implementation for exponential pdf --- .../base/dists/exponential/pdf/README.md | 96 +++++++++ .../exponential/pdf/benchmark/benchmark.js | 14 +- .../pdf/benchmark/benchmark.native.js | 71 +++++++ .../exponential/pdf/benchmark/c/Makefile | 146 +++++++++++++ .../exponential/pdf/benchmark/c/benchmark.c | 141 ++++++++++++ .../base/dists/exponential/pdf/binding.gyp | 170 +++++++++++++++ .../dists/exponential/pdf/examples/c/Makefile | 146 +++++++++++++ .../exponential/pdf/examples/c/example.c | 41 ++++ .../base/dists/exponential/pdf/include.gypi | 53 +++++ .../stdlib/stats/base/dists/exponential/pdf.h | 38 ++++ .../base/dists/exponential/pdf/lib/native.js | 68 ++++++ .../base/dists/exponential/pdf/manifest.json | 84 ++++++++ .../base/dists/exponential/pdf/package.json | 3 + .../base/dists/exponential/pdf/src/Makefile | 70 ++++++ .../base/dists/exponential/pdf/src/addon.c | 23 ++ .../base/dists/exponential/pdf/src/main.c | 70 ++++++ .../dists/exponential/pdf/test/test.native.js | 200 ++++++++++++++++++ 17 files changed, 1431 insertions(+), 3 deletions(-) create mode 100644 lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/benchmark/benchmark.native.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/benchmark/c/Makefile create mode 100644 lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/benchmark/c/benchmark.c create mode 100644 lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/binding.gyp create mode 100644 lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/examples/c/Makefile create mode 100644 lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/examples/c/example.c create mode 100644 lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/include.gypi create mode 100644 lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/include/stdlib/stats/base/dists/exponential/pdf.h create mode 100644 lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/lib/native.js create mode 100644 lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/manifest.json create mode 100644 lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/src/Makefile create mode 100644 lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/src/addon.c create mode 100644 lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/src/main.c create mode 100644 lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/test/test.native.js diff --git a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/README.md b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/README.md index be2685c9940e..4e95ff4e6e6e 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/README.md +++ b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/README.md @@ -127,6 +127,102 @@ for ( i = 0; i < 10; i++ ) { + + +
+ + + +* * * + +
+ +## C APIs + + + +
+ +
+ + + + + +
+ +### Usage + +```c +#include "stdlib/stats/base/dists/exponential/pdf.h" +``` + +#### stdlib_base_dists_exponential_pdf( x, lambda ) + +Evaluates the [probability density function][pdf] (PDF) for an [exponential][exponential-distribution] distribution with rate parameter `lambda`. + +```c +double out = stdlib_base_dists_exponential_pdf( 2.0, 0.7 ); +// returns ~0.173 +``` + +The function accepts the following arguments: + +- **x**: `[in] double` input value. +- **lambda**: `[in] double` rate parameter. + +```c +double stdlib_base_dists_uniform_mgf( const double x, const double lambda ); +``` + +
+ + + + + +
+ +
+ + + + + +
+ +### Examples + +```c +#include "stdlib/stats/base/dists/exponential/pdf.h" +#include "stdlib/constants/float64/eps.h" +#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 lambda; + double x; + double y; + int i; + + for ( i = 0; i < 25; i++ ) { + x = random_uniform( 0.0, 100.0 ); + lambda = random_uniform( 0.0, 100.0 ) + STDLIB_CONSTANT_FLOAT64_EPS; + y = stdlib_base_dists_exponential_pdf( x, lambda ); + printf( "x: %lf, λ: %lf, f(x;λ): %lf\n", x, lambda, y ); + } +} +``` + +
+ + + From 1f7efd5153fbd0ae1c4d0b3830ff8872adbe541e Mon Sep 17 00:00:00 2001 From: JoyBoy <144602492+0PrashantYadav0@users.noreply.github.com> Date: Thu, 26 Dec 2024 12:35:16 +0530 Subject: [PATCH 3/7] fix: removed unwanted examples --- 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: 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: 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 --- --- .../base/dists/exponential/pdf/src/main.c | 45 +++++-------------- 1 file changed, 12 insertions(+), 33 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/src/main.c b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/src/main.c index 97397f44a2b6..ad5770e924d5 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/src/main.c +++ b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/src/main.c @@ -24,47 +24,26 @@ /** * Evaluates the probability density function (PDF) for an exponential distribution with rate parameter `lambda` at a value `x`. * -* @param {number} x - input value -* @param {PositiveNumber} lambda - rate parameter -* @returns {number} evaluated PDF +* @param x input value +* @param lambda rate parameter +* @return evaluated PDF * * @example -* var y = pdf( 0.3, 4.0 ); +* double y = stdlib_base_dists_exponential_pdf( 0.3, 4.0 ); * // returns ~1.205 -* -* @example -* var y = pdf( 2.0, 0.7 ); -* // returns ~0.173 -* -* @example -* var y = pdf( -1.0, 0.5 ); -* // returns 0.0 -* -* @example -* var y = pdf( 0, NaN ); -* // returns NaN -* -* @example -* var y = pdf( NaN, 2.0 ); -* // returns NaN -* -* @example -* // Negative rate: -* var y = pdf( 2.0, -1.0 ); -* // returns NaN */ double stdlib_base_dists_exponential_pdf( const double x, const double lambda ) { - if ( - stdlib_base_is_nan( x ) || - stdlib_base_is_nan( lambda ) || - lambda <= 0.0 || + if ( + stdlib_base_is_nan( x ) || + stdlib_base_is_nan( lambda ) || + lambda <= 0.0 || lambda == STDLIB_CONSTANT_FLOAT64_PINF - ) { - return 0.0/0.0; // NaN - } + ) { + return 0.0/0.0; // NaN + } if( x < 0.0){ return 0.0; } double scale = 1.0 / lambda; - return stdlib_base_exp( -x / scale ) / scale; + return stdlib_base_exp( -x / scale ) / scale; } From 2d8f9a648d594011302bfb2749dc65fad166e76f Mon Sep 17 00:00:00 2001 From: stdlib-bot <82920195+stdlib-bot@users.noreply.github.com> Date: Sun, 9 Feb 2025 01:09:00 +0000 Subject: [PATCH 4/7] chore: update copyright years --- .../base/dists/exponential/pdf/benchmark/benchmark.native.js | 2 +- .../stats/base/dists/exponential/pdf/benchmark/c/Makefile | 2 +- .../stats/base/dists/exponential/pdf/benchmark/c/benchmark.c | 2 +- .../@stdlib/stats/base/dists/exponential/pdf/binding.gyp | 2 +- .../stats/base/dists/exponential/pdf/examples/c/Makefile | 2 +- .../stats/base/dists/exponential/pdf/examples/c/example.c | 2 +- .../@stdlib/stats/base/dists/exponential/pdf/include.gypi | 2 +- .../pdf/include/stdlib/stats/base/dists/exponential/pdf.h | 2 +- .../@stdlib/stats/base/dists/exponential/pdf/lib/native.js | 2 +- .../@stdlib/stats/base/dists/exponential/pdf/src/Makefile | 2 +- .../@stdlib/stats/base/dists/exponential/pdf/src/addon.c | 2 +- .../@stdlib/stats/base/dists/exponential/pdf/src/main.c | 2 +- .../stats/base/dists/exponential/pdf/test/test.native.js | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/benchmark/benchmark.native.js index 94801c6c9f78..cf3e709d0f8e 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/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/exponential/pdf/benchmark/c/Makefile b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/benchmark/c/Makefile index f69e9da2b4d3..a4bd7b38fd74 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/benchmark/c/Makefile +++ b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/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/exponential/pdf/benchmark/c/benchmark.c b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/benchmark/c/benchmark.c index 92dd6e33f3b7..e81c82edeef1 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/benchmark/c/benchmark.c +++ b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/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/exponential/pdf/binding.gyp b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/binding.gyp index ec3992233442..68a1ca11d160 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/binding.gyp +++ b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/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. diff --git a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/examples/c/Makefile b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/examples/c/Makefile index 6aed70daf167..25ced822f96a 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/examples/c/Makefile +++ b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/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. diff --git a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/examples/c/example.c b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/examples/c/example.c index 62892cd08456..ba184f8fed00 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/examples/c/example.c +++ b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/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. diff --git a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/include.gypi b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/include.gypi index 575cb043c0bf..ecfaf82a3279 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/include.gypi +++ b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/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. diff --git a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/include/stdlib/stats/base/dists/exponential/pdf.h b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/include/stdlib/stats/base/dists/exponential/pdf.h index 78bd30f1d9e6..6f7336c78b65 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/include/stdlib/stats/base/dists/exponential/pdf.h +++ b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/include/stdlib/stats/base/dists/exponential/pdf.h @@ -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/exponential/pdf/lib/native.js b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/lib/native.js index 12aa255d26c3..ffd0f376e8c8 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/lib/native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/lib/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/exponential/pdf/src/Makefile b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/src/Makefile index bcf18aa46655..7733b6180cb4 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/src/Makefile +++ b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/src/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/exponential/pdf/src/addon.c b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/src/addon.c index 2d7a55c8330e..217145327d75 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/src/addon.c +++ b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/src/addon.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/exponential/pdf/src/main.c b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/src/main.c index ad5770e924d5..e350370c2dde 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/src/main.c +++ b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/src/main.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/exponential/pdf/test/test.native.js b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/test/test.native.js index e3bef29c0125..cfc9c8e02255 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/test/test.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/test/test.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. From 836a64c97561b0cc5a7d50f810fd45879853180e Mon Sep 17 00:00:00 2001 From: JoyBoy <144602492+0PrashantYadav0@users.noreply.github.com> Date: Sat, 15 Feb 2025 11:52:28 +0530 Subject: [PATCH 5/7] fix: changes in 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: 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: 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 --- --- 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: passed - 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/dists/exponential/pdf/benchmark/benchmark.js | 4 ++-- .../dists/exponential/pdf/benchmark/benchmark.native.js | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/benchmark/benchmark.js index ac327336e7dc..6ad52728d411 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/benchmark/benchmark.js @@ -42,8 +42,8 @@ bench( pkg, function benchmark( b ) { x = new Float64Array( len ); lambda = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - x[ i ] = ( randu()*100.0 ); - lambda[ i ] = ( randu()*100.0 ) + EPS; + x[ i ] = uniform( 0.0, 100.0 ); + lambda[ i ] = uniform( EPS, 100.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/benchmark/benchmark.native.js index cf3e709d0f8e..2ff56e9db5dd 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/benchmark/benchmark.native.js @@ -23,7 +23,7 @@ var resolve = require( 'path' ).resolve; var bench = require( '@stdlib/bench' ); var Float64Array = require( '@stdlib/array/float64' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var EPS = require( '@stdlib/constants/float64/eps' ); var tryRequire = require( '@stdlib/utils/try-require' ); @@ -51,8 +51,8 @@ bench( pkg+'::native', opts, function benchmark( b ) { x = new Float64Array( len ); lambda = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - x[ i ] = ( randu()*100.0 ); - lambda[ i ] = ( randu()*100.0 ) + EPS; + x[ i ] = uniform( 0.0, 100.0 ); + lambda[ i ] = uniform( EPS, 100.0 ); } b.tic(); From 669811738552a1a0cdcce3a324ae6825f0302514 Mon Sep 17 00:00:00 2001 From: Philipp Burckhardt Date: Wed, 2 Apr 2025 08:24:54 -0400 Subject: [PATCH 6/7] chore: apply suggestions from code review Signed-off-by: Philipp Burckhardt --- .../stats/base/dists/exponential/pdf/benchmark/c/benchmark.c | 2 +- .../stats/base/dists/exponential/pdf/examples/c/example.c | 2 +- .../pdf/include/stdlib/stats/base/dists/exponential/pdf.h | 2 +- .../@stdlib/stats/base/dists/exponential/pdf/src/main.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/benchmark/c/benchmark.c b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/benchmark/c/benchmark.c index e81c82edeef1..645eca596367 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/benchmark/c/benchmark.c +++ b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/benchmark/c/benchmark.c @@ -102,7 +102,7 @@ static double benchmark( void ) { for ( i = 0; i < 100; i++ ) { x[ i ] = random_uniform( 0.0, 100.0 ); - lambda[ i ] = random_uniform( 0.0, 100.0 ) + STDLIB_CONSTANT_FLOAT64_EPS; + lambda[ i ] = random_uniform( STDLIB_CONSTANT_FLOAT64_EPS, 100.0 ); } t = tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/examples/c/example.c b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/examples/c/example.c index ba184f8fed00..731ea678e276 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/examples/c/example.c +++ b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/examples/c/example.c @@ -34,7 +34,7 @@ int main( void ) { for ( i = 0; i < 25; i++ ) { x = random_uniform( 0.0, 100.0 ); - lambda = random_uniform( 0.0, 100.0 ) + STDLIB_CONSTANT_FLOAT64_EPS; + lambda = random_uniform( STDLIB_CONSTANT_FLOAT64_EPS, 100.0 ); y = stdlib_base_dists_exponential_pdf( x, lambda ); printf( "x: %lf, λ: %lf, f(x;λ): %lf\n", x, lambda, y ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/include/stdlib/stats/base/dists/exponential/pdf.h b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/include/stdlib/stats/base/dists/exponential/pdf.h index 6f7336c78b65..0a0983088c44 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/include/stdlib/stats/base/dists/exponential/pdf.h +++ b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/include/stdlib/stats/base/dists/exponential/pdf.h @@ -27,7 +27,7 @@ extern "C" { #endif /** -* Evaluates the probability density function (PDF) for the exponential-distribution distribution with lambda. +* Evaluates the probability density function (PDF) for an exponential distribution with rate parameter `lambda` at a value `x`. */ double stdlib_base_dists_exponential_pdf( const double x, const double lambda ); diff --git a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/src/main.c b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/src/main.c index e350370c2dde..76b81e5cab8c 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/src/main.c +++ b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/src/main.c @@ -41,7 +41,7 @@ double stdlib_base_dists_exponential_pdf( const double x, const double lambda ) ) { return 0.0/0.0; // NaN } - if( x < 0.0){ + if ( x < 0.0 ) { return 0.0; } double scale = 1.0 / lambda; From 83d807d230b400c426cc3d74678fde339a833509 Mon Sep 17 00:00:00 2001 From: Philipp Burckhardt Date: Wed, 2 Apr 2025 08:27:16 -0400 Subject: [PATCH 7/7] docs: fix sections --- .../stats/base/dists/exponential/pdf/README.md | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/README.md b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/README.md index e79a9b7d2eab..cd56be3a1f4c 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/README.md +++ b/lib/node_modules/@stdlib/stats/base/dists/exponential/pdf/README.md @@ -127,10 +127,6 @@ for ( i = 0; i < 10; i++ ) { - - -
- * * * @@ -221,6 +217,18 @@ int main( void ) {
+ + +
+ + + + + +
+ +
+