Skip to content

Commit 40c9582

Browse files
chore: clean up
1 parent c9a8a64 commit 40c9582

File tree

7 files changed

+84
-49
lines changed

7 files changed

+84
-49
lines changed

lib/node_modules/@stdlib/stats/base/dists/erlang/mgf/README.md

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -189,26 +189,11 @@ for ( i = 0; i < 10; i++ ) {
189189

190190
#### stdlib_base_dists_erlang_mgf( t, k, lambda )
191191

192-
Evaluates the moment-generating function (MGF) for a erlang distribution.
192+
Evaluates the moment-generating function (MGF) for a erlang distribution with parameters shape parameter `k` and rate parameter `lambda`.
193193

194194
```c
195-
double y = stdlib_base_dists_erlan _mgf( 0.3, 1, 1.0 );
195+
double y = stdlib_base_dists_erlang_mgf( 0.3, 1, 1.0 );
196196
// returns ~1.429
197-
198-
y = stdlib_base_dists_erlan _mgf( 2.0, 2, 3.0 );
199-
// returns ~9.0
200-
201-
y = stdlib_base_dists_erlan _mgf( -1.0, 2, 2.0 );
202-
// returns ~0.444
203-
204-
y = stdlib_base_dists_erlan _mgf( NaN, 1, 1.0 );
205-
// returns NaN
206-
207-
y = stdlib_base_dists_erlan _mgf( 0.0, NaN, 1.0 );
208-
// returns NaN
209-
210-
y = stdlib_base_dists_erlan _mgf( 0.0, 1, NaN );
211-
// returns NaN
212197
```
213198

214199
The function accepts the following arguments:
@@ -245,6 +230,11 @@ double stdlib_base_dists_erlang_mgf( const double t, const double k, const doubl
245230
#include <stdlib.h>
246231
#include <stdio.h>
247232
233+
static double random_uniform( const double min, const double max ) {
234+
double v = (double)rand() / ( (double)RAND_MAX + 1.0 );
235+
return min + ( v*(max-min) );
236+
}
237+
248238
int main( void ) {
249239
double lambda;
250240
double k;
@@ -253,9 +243,9 @@ int main( void ) {
253243
int i;
254244
255245
for ( i = 0; i < 10; i++ ) {
256-
k = stdlib_base_round( ( (double)rand() / (double)RAND_MAX ) * 10.0 );
257-
lambda = ( (double)rand() / (double)RAND_MAX ) *10.0 ;
258-
t = ( (double)rand() / (double)RAND_MAX );
246+
k = stdlib_base_round( random_uniform( 0.0, 10.0 ) );
247+
lambda = random_uniform( 0.0, 10.0 ) ;
248+
t = random_uniform( 0.0, 1.0 );
259249
y = stdlib_base_dists_erlang_mgf( t, k, lambda );
260250
printf( "t: %1f, k: %1f, λ: %1f, M_X(t;k,λ): %lf\n", t, k , lambda , y );
261251
}

lib/node_modules/@stdlib/stats/base/dists/erlang/mgf/benchmark/benchmark.js

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

2323
var bench = require( '@stdlib/bench' );
2424
var ceil = require( '@stdlib/math/base/special/ceil' );
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 isnan = require( '@stdlib/math/base/assert/is-nan' );
2728
var EPS = require( '@stdlib/constants/float64/eps' );
2829
var pkg = require( './../package.json' ).name;
@@ -33,17 +34,29 @@ var mgf = require( './../lib' );
3334

3435
bench( pkg, function benchmark( b ) {
3536
var lambda;
37+
var len;
3638
var k;
3739
var t;
3840
var y;
3941
var i;
4042

43+
len = 100;
44+
k = new Float64Array( len );
45+
for ( i = 0; i < len; i++ ) {
46+
k[ i ] = ceil( uniform( 0.0, 100.0 ) );
47+
}
48+
lambda = new Float64Array( len );
49+
for ( i = 0; i < len; i++ ) {
50+
lambda[ i ] = uniform( EPS, 20.0 );
51+
}
52+
t = new Float64Array( len );
53+
for ( i = 0; i < len; i++ ) {
54+
t[ i ] = uniform( 0.0, lambda );
55+
}
56+
4157
b.tic();
4258
for ( i = 0; i < b.iterations; i++ ) {
43-
k = ceil( randu()*100.0 );
44-
lambda = ( randu()*20.0 ) + EPS;
45-
t = randu()*lambda;
46-
y = mgf( t, k, lambda );
59+
y = mgf( t[ i%100 ], k[ i%100 ], lambda[ i%100 ] );
4760
if ( isnan( y ) ) {
4861
b.fail( 'should not return NaN' );
4962
}
@@ -59,6 +72,7 @@ bench( pkg, function benchmark( b ) {
5972
bench( pkg+':factory', function benchmark( b ) {
6073
var lambda;
6174
var mymgf;
75+
var len;
6276
var k;
6377
var t;
6478
var y;
@@ -68,10 +82,14 @@ bench( pkg+':factory', function benchmark( b ) {
6882
lambda = 1.5;
6983
mymgf = mgf.factory( k, lambda );
7084

85+
len = 100;
86+
t = new Float64Array( len );
87+
for ( i = 0; i < len; i++ ) {
88+
t[ i ] = uniform( 0.0, lambda );
89+
}
7190
b.tic();
7291
for ( i = 0; i < b.iterations; i++ ) {
73-
t = randu()*lambda;
74-
y = mymgf( t );
92+
y = mymgf( t[ i%100 ] );
7593
if ( isnan( y ) ) {
7694
b.fail( 'should not return NaN' );
7795
}

lib/node_modules/@stdlib/stats/base/dists/erlang/mgf/benchmark/benchmark.native.js

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@
2323
var resolve = require( 'path' ).resolve;
2424
var bench = require( '@stdlib/bench' );
2525
var ceil = require( '@stdlib/math/base/special/ceil' );
26-
var randu = require( '@stdlib/random/base/randu' );
26+
var uniform = require( '@stdlib/random/base/uniform' );
27+
var Float64Array = require( '@stdlib/array/float64' );
2728
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2829
var tryRequire = require( '@stdlib/utils/try-require' );
2930
var EPS = require( '@stdlib/constants/float64/eps' );
@@ -42,17 +43,29 @@ var opts = {
4243

4344
bench( pkg+'::native', opts, function benchmark( b ) {
4445
var lambda;
46+
var len;
4547
var k;
4648
var t;
4749
var y;
4850
var i;
4951

52+
len = 100;
53+
k = new Float64Array( len );
54+
for ( i = 0; i < len; i++ ) {
55+
k[ i ] = ceil( uniform( 0.0, 100.0 ) );
56+
}
57+
lambda = new Float64Array( len );
58+
for ( i = 0; i < len; i++ ) {
59+
lambda[ i ] = uniform( EPS, 20.0 );
60+
}
61+
t = new Float64Array( len );
62+
for ( i = 0; i < len; i++ ) {
63+
t[ i ] = uniform( 0.0, lambda );
64+
}
65+
5066
b.tic();
5167
for ( i = 0; i < b.iterations; i++ ) {
52-
k = ceil( randu()*100.0 );
53-
lambda = ( randu()*20.0 ) + EPS;
54-
t = randu()*lambda;
55-
y = mgf( t, k, lambda );
68+
y = mgf( t[ i%100 ], k[ i%100 ], lambda[ i%100 ] );
5669
if ( isnan( y ) ) {
5770
b.fail( 'should not return NaN' );
5871
}

lib/node_modules/@stdlib/stats/base/dists/erlang/mgf/benchmark/c/benchmark.c

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

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

8991
/**
@@ -93,18 +95,25 @@ static double rand_double( void ) {
9395
*/
9496
static double benchmark( void ) {
9597
double elapsed;
96-
double lambda;
97-
double k;
98-
double t;
98+
double lambda[ 100 ];
99+
double k[ 100 ];
100+
double t[ 100 ];
99101
double x;
100102
double y;
101103
int i;
102104

105+
for ( i = 0; i < 100; i++ ) {
106+
k[ i ] = stdlib_base_ceil( random_uniform( 0.0, 100.0 ) );
107+
}
108+
for ( i = 0; i < 100; i++ ) {
109+
lambda[ i ] = random_uniform( STDLIB_CONSTANT_FLOAT64_EPS, 20.0 );
110+
}
111+
for ( i = 0; i < 100; i++ ) {
112+
t[ i ] = random_uniform( 0.0, lambda );
113+
}
114+
103115
x = tic();
104116
for ( i = 0; i < ITERATIONS; i++ ) {
105-
k = stdlib_base_ceil( ( (double)rand() / (double)RAND_MAX )* 100.0 );
106-
lambda = ( ( (double)rand() / (double)RAND_MAX )*20.0 ) + STDLIB_CONSTANT_FLOAT64_EPS;
107-
t = ( (double)rand() / (double)RAND_MAX )* lambda;
108117
y = stdlib_base_dists_erlang_mgf( t, k, lambda );
109118
if ( y != y ) {
110119
printf( "should not return NaN\n" );

lib/node_modules/@stdlib/stats/base/dists/erlang/mgf/examples/c/example.c

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,22 @@
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 lambda;
2631
double k;
27-
double t;
32+
double t;
2833
double y;
2934
int i;
3035

3136
for ( i = 0; i < 10; i++ ) {
32-
k = stdlib_base_round( ( (double)rand() / (double)RAND_MAX ) * 10.0 );
33-
lambda = ( (double)rand() / (double)RAND_MAX ) *10.0 ;
34-
t = ( (double)rand() / (double)RAND_MAX );
37+
k = stdlib_base_round( random_uniform( 0.0, 10.0 ) );
38+
lambda = random_uniform( 0.0, 10.0 ) ;
39+
t = random_uniform( 0.0, 1.0 );
3540
y = stdlib_base_dists_erlang_mgf( t, k, lambda );
3641
printf( "t: %1f, k: %1f, λ: %1f, M_X(t;k,λ): %lf\n", t, k , lambda , y );
3742
}

lib/node_modules/@stdlib/stats/base/dists/erlang/mgf/include/stdlib/stats/base/dists/erlang/mgf.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ extern "C" {
2727
#endif
2828

2929
/**
30-
Evaluates the moment-generating function (MGF) for a erlang distribution with shape parameter `k` and rate parameter `lambda` at a value `t`.
30+
Evaluates the moment-generating function (MGF) for a erlang distribution with parameters shape parameter `k` and rate parameter `lambda`.
3131
*/
3232
double stdlib_base_dists_erlang_mgf( const double t, const double k, const double lambda );
3333

lib/node_modules/@stdlib/stats/base/dists/erlang/mgf/src/main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
#include "stdlib/math/base/special/pow.h"
2323

2424
/**
25-
* Evaluates the moment-generating function (MGF) for a Bernoulli distribution with success probability `p` at a value `t`.
25+
* Evaluates the moment-generating function (MGF) for a erlang distribution with parameters shape parameter `k` and rate parameter `lambda`.
2626
*
2727
* @param t input value
2828
* @param p success probability

0 commit comments

Comments
 (0)