Skip to content

Commit 20c6c0d

Browse files
chore: minor clean up
1 parent 1245057 commit 20c6c0d

File tree

11 files changed

+68
-75
lines changed

11 files changed

+68
-75
lines changed

lib/node_modules/@stdlib/stats/base/dists/bernoulli/pmf/README.md

Lines changed: 10 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -161,30 +161,11 @@ for ( i = 0; i < 10; i++ ) {
161161

162162
#### stdlib_base_dists_bernoulli_pmf( x, p )
163163

164-
Evaluates the probability mass function (PMF) for an bernoulli distribution.
164+
Evaluates the probability mass function (PMF) for a Bernoulli distribution with success probability `0 <= p <= 1`.
165165

166166
```c
167167
double y = stdlib_base_dists_bernoulli_pmf( 0.5, 0.5 );
168168
// returns ~0.5
169-
170-
y = stdlib_base_dists_bernoulli_pmf( 2.0, 0.1 );
171-
// returns ~1.0
172-
173-
y = stdlib_base_dists_bernoulli_pmf( -1.0, 0.3 );
174-
// returns ~0.0
175-
176-
y = stdlib_base_dists_bernoulli_pmf( NaN, 0.5 );
177-
// returns NaN
178-
179-
y = stdlib_base_dists_bernoulli_pmf( 0.0, NaN );
180-
// returns NaN
181-
182-
y = stdlib_base_dists_bernoulli_pmf( 0.0, NaN );
183-
// returns NaN
184-
185-
// Invalid probability
186-
y = stdlib_base_dists_bernoulli_pmf( 0.5, 1.4 );
187-
// returns NaN
188169
```
189170

190171
The function accepts the following arguments:
@@ -220,17 +201,22 @@ double stdlib_base_dists_bernoulli_pmf( const double x, const double p );
220201
#include <stdlib.h>
221202
#include <stdio.h>
222203
204+
static double random_uniform( const double min, const double max ) {
205+
double v = (double)rand() / ( (double)RAND_MAX + 1.0 );
206+
return min + ( v*(max-min) );
207+
}
208+
223209
int main( void ) {
224210
double p;
225211
double x;
226212
double y;
227213
int i;
228214
229-
for ( i = 0; i < 25; i++ ) {
230-
x = stdlib_base_round( (double)rand() / (double)RAND_MAX ) * 2.0;
231-
p = ( (double)rand() / (double)RAND_MAX ) ;
215+
for ( i = 0; i < 10; i++ ) {
216+
x = stdlib_base_round( random_uniform( 0.0, 2.0 ) );
217+
p = random_uniform( 0.0, 1.0 );
232218
y = stdlib_base_dists_bernoulli_pmf( x, p );
233-
printf( "x: %lf , p: %1f, P( X = x; p ): %lf\n", x, p , y );
219+
printf( "x: %lf , p: %1f, P( X = x; p ): %lf\n", x, p, y );
234220
}
235221
}
236222
```

lib/node_modules/@stdlib/stats/base/dists/bernoulli/pmf/benchmark/benchmark.js

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222

2323
var bench = require( '@stdlib/bench' );
2424
var randu = require( '@stdlib/random/base/randu' );
25+
var uniform = require( '@stdlib/random/base/uniform' );
26+
var Float64Array = require( '@stdlib/array/float64' );
2527
var round = require( '@stdlib/math/base/special/round' );
2628
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2729
var pkg = require( './../package.json' ).name;
@@ -31,16 +33,25 @@ var pmf = require( './../lib' );
3133
// MAIN //
3234

3335
bench( pkg, function benchmark( b ) {
36+
var len;
3437
var p;
3538
var x;
3639
var y;
3740
var i;
3841

42+
len = 100;
43+
x = new Float64Array( len );
44+
for ( i = 0; i < len; i++ ) {
45+
x[ i ] = round( uniform( 0.0, 3.0 ) );
46+
}
47+
p = new Float64Array( len );
48+
for ( i = 0; i < len; i++ ) {
49+
p[ i ] = uniform( 0.0, 1.0 );
50+
}
51+
3952
b.tic();
4053
for ( i = 0; i < b.iterations; i++ ) {
41-
x = round( randu()*3.0 );
42-
p = randu();
43-
y = pmf( x, p );
54+
y = pmf( x[ i%100 ], p[ i%100 ] );
4455
if ( isnan( y ) ) {
4556
b.fail( 'should not return NaN' );
4657
}

lib/node_modules/@stdlib/stats/base/dists/bernoulli/pmf/benchmark/benchmark.native.js

Lines changed: 11 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222

2323
var resolve = require( 'path' ).resolve;
2424
var bench = require( '@stdlib/bench' );
25-
var randu = require( '@stdlib/random/base/randu' );
25+
var uniform = require( '@stdlib/random/base/uniform' );
26+
var Float64Array = require( '@stdlib/array/float64' );
2627
var round = require( '@stdlib/math/base/special/round' );
2728
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2829
var tryRequire = require( '@stdlib/utils/try-require' );
@@ -40,42 +41,25 @@ var opts = {
4041
// MAIN //
4142

4243
bench( pkg+'::native', opts, function benchmark( b ) {
44+
var len;
4345
var p;
4446
var x;
4547
var y;
4648
var i;
4749

48-
b.tic();
49-
for ( i = 0; i < b.iterations; i++ ) {
50-
x = round( randu()*3.0 );
51-
p = randu();
52-
y = pmf( x, p );
53-
if ( isnan( y ) ) {
54-
b.fail( 'should not return NaN' );
55-
}
50+
len = 100;
51+
x = new Float64Array( len );
52+
for ( i = 0; i < len; i++ ) {
53+
x[ i ] = round( uniform( 0.0, 3.0 ) );
5654
}
57-
b.toc();
58-
if ( isnan( y ) ) {
59-
b.fail( 'should not return NaN' );
55+
p = new Float64Array( len );
56+
for ( i = 0; i < len; i++ ) {
57+
p[ i ] = uniform( 0.0, 1.0 );
6058
}
61-
b.pass( 'benchmark finished' );
62-
b.end();
63-
});
64-
65-
bench( pkg+':factory', opts, function benchmark( b ) {
66-
var mypmf;
67-
var p;
68-
var x;
69-
var y;
70-
var i;
71-
72-
p = 0.3;
73-
mypmf = pmf.factory( p );
7459

7560
b.tic();
7661
for ( i = 0; i < b.iterations; i++ ) {
77-
x = randu() * 3.0;
78-
y = mypmf( x );
62+
y = pmf( x[ i%100 ], p[ i%100 ] );
7963
if ( isnan( y ) ) {
8064
b.fail( 'should not return NaN' );
8165
}

lib/node_modules/@stdlib/stats/base/dists/bernoulli/pmf/benchmark/c/benchmark.c

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -76,13 +76,15 @@ static double tic( void ) {
7676
}
7777

7878
/**
79-
* Generates a random number on the interval [0,1).
79+
* Generates a random number on the interval [min,max).
8080
*
81-
* @return random number
81+
* @param min minimum value (inclusive)
82+
* @param max maximum value (exclusive)
83+
* @return random number
8284
*/
83-
static double rand_double( void ) {
84-
int r = rand();
85-
return (double)r / ( (double)RAND_MAX + 1.0 );
85+
static double random_uniform( const double min, const double max ) {
86+
double v = (double)rand() / ( (double)RAND_MAX + 1.0 );
87+
return min + ( v*(max-min) );
8688
}
8789

8890
/**
@@ -92,17 +94,22 @@ static double rand_double( void ) {
9294
*/
9395
static double benchmark( void ) {
9496
double elapsed;
95-
double p;
96-
double x;
97+
double p[ 100 ];
98+
double x[ 100 ];
9799
double y;
98100
double t;
99101
int i;
100102

103+
for ( i = 0; i < 100; i++ ) {
104+
p[ i ] = stdlib_base_round( random_uniform( 0.0, 3.0 ) );
105+
}
106+
for ( i = 0; i < 100; i++ ) {
107+
p[ i ] = random_uniform( 0.0, 1.0 );
108+
}
109+
101110
t = tic();
102111
for ( i = 0; i < ITERATIONS; i++ ) {
103-
x = stdlib_base_round( (double)rand() / (double)RAND_MAX )*3.0;
104-
p = ( (double)rand() / (double)RAND_MAX ) ;
105-
y = stdlib_base_dists_bernoulli_pmf( x, p );
112+
y = stdlib_base_dists_bernoulli_pmf( x[ i%100 ], p[ i%100 ] );
106113
if ( y != y ) {
107114
printf( "should not return NaN\n" );
108115
break;
@@ -133,4 +140,4 @@ int main( void ) {
133140
printf( "ok %d benchmark finished\n", i+1 );
134141
}
135142
print_summary( REPEATS, REPEATS );
136-
}
143+
}

lib/node_modules/@stdlib/stats/base/dists/bernoulli/pmf/docs/repl.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
{{alias}}( x, p )
33
Evaluates the probability mass function (PMF) for a Bernoulli distribution
4-
with success probability `p` at a value `x`.
4+
with success probability `0 <= p <= 1`.
55

66
If provided `NaN` as any argument, the function returns `NaN`.
77

lib/node_modules/@stdlib/stats/base/dists/bernoulli/pmf/docs/types/index.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ type Unary = ( x: number ) => number;
3131
*/
3232
interface PMF {
3333
/**
34-
* Evaluates the probability mass function (PMF) for a Bernoulli distribution with success probability `p` at a value `x`.
34+
* Evaluates the probability mass function (PMF) for a Bernoulli distribution with success probability `0 <= p <= 1`.
3535
*
3636
* ## Notes
3737
*

lib/node_modules/@stdlib/stats/base/dists/bernoulli/pmf/examples/c/example.c

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,20 @@
2121
#include <stdlib.h>
2222
#include <stdio.h>
2323

24+
static double random_uniform( const double min, const double max ) {
25+
double v = (double)rand() / ( (double)RAND_MAX + 1.0 );
26+
return min + ( v*(max-min) );
27+
}
28+
2429
int main( void ) {
2530
double p;
26-
double x;
31+
double x;
2732
double y;
2833
int i;
2934

3035
for ( i = 0; i < 10; i++ ) {
31-
x = stdlib_base_round( (double)rand() / (double)RAND_MAX )* 2.0 ;
32-
p = ( (double)rand() / (double)RAND_MAX ) ;
36+
x = stdlib_base_round( random_uniform( 0.0, 2.0 ) );
37+
p = random_uniform( 0.0, 1.0 );
3338
y = stdlib_base_dists_bernoulli_pmf( x, p );
3439
printf( "x: %lf , p: %1f, P( X = x; p ): %lf\n", x, p, y );
3540
}

lib/node_modules/@stdlib/stats/base/dists/bernoulli/pmf/include/stdlib/stats/base/dists/bernoulli/pmf.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,12 @@ extern "C" {
2727
#endif
2828

2929
/**
30-
Evaluates the probability mass function (PMF) for a Bernoulli distribution with success probability `p` at a value `x`.
30+
Evaluates the probability mass function (PMF) for a Bernoulli distribution with success probability `0 <= p <= 1`.
3131
*/
3232
double stdlib_base_dists_bernoulli_pmf( const double x, const double p );
3333

3434
#ifdef __cplusplus
3535
}
3636
#endif
3737

38-
#endif // !STDLIB_STATS_BASE_DISTS_BERNOULLI_PMF_H
38+
#endif // !STDLIB_STATS_BASE_DISTS_BERNOULLI_PMF_H

lib/node_modules/@stdlib/stats/base/dists/bernoulli/pmf/lib/main.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ var isnan = require( '@stdlib/math/base/assert/is-nan' );
2626
// MAIN //
2727

2828
/**
29-
* Evaluates the probability mass function (PMF) for a Bernoulli distribution with success probability `p` at a value `x`.
29+
* Evaluates the probability mass function (PMF) for a Bernoulli distribution with success probability `0 <= p <= 1`.
3030
*
3131
* @param {number} x - input value
3232
* @param {Probability} p - success probability

lib/node_modules/@stdlib/stats/base/dists/bernoulli/pmf/lib/native.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ var addon = require( './../src/addon.node' );
2626
// MAIN //
2727

2828
/**
29-
* Evaluates the probability mass function (PMF) for a Bernoulli distribution with success probability `p` at a value `x`.
29+
* Evaluates the probability mass function (PMF) for a Bernoulli distribution with success probability `0 <= p <= 1`.
3030
*
3131
* @param {number} x - input value
3232
* @param {Probability} p - success probability

lib/node_modules/@stdlib/stats/base/dists/bernoulli/pmf/src/main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
#include "stdlib/math/base/assert/is_nan.h"
2121

2222
/**
23-
* Evaluates the probability mass function (PMF) for a Bernoulli distribution with success probability `p` at a value `x`.
23+
* Evaluates the probability mass function (PMF) for a Bernoulli distribution with success probability `0 <= p <= 1`.
2424
*
2525
* @param x input value
2626
* @param p success probability

0 commit comments

Comments
 (0)