Skip to content

Commit 2367060

Browse files
chore: clean up
1 parent dbcb84d commit 2367060

File tree

7 files changed

+67
-48
lines changed

7 files changed

+67
-48
lines changed

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

Lines changed: 8 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -171,29 +171,11 @@ for ( i = 0; i < 10; i++ ) {
171171

172172
#### stdlib_base_dists_erlang_variance( k, lambda )
173173

174-
Evaluates the variance for a erlang distribution with shape parameter `k` and rate parameter `lambda` at a value `x`.
174+
Returns the variance for a erlang distribution with shape parameter `k` and rate parameter `lambda`.
175175

176176
```c
177177
double y = stdlib_base_dists_beta_variance( 1.0, 1.0 );
178178
// returns ~1.0
179-
180-
y = stdlib_base_dists_beta_variance( 4.0, 12.0 );
181-
// returns ~0.028
182-
183-
y = stdlib_base_dists_beta_variance( 8.0, 2.0 );
184-
// returns ~2.0
185-
186-
y = stdlib_base_dists_beta_variance( 1.0, -0.1 );
187-
// returns NaN
188-
189-
y = stdlib_base_dists_beta_variance( -0.1, 1.0 );
190-
// returns NaN
191-
192-
y = stdlib_base_dists_beta_variance( 2.0, NaN );
193-
// returns NaN
194-
195-
y = stdlib_base_dists_beta_variance( NaN, 2.0 );
196-
// returns NaN
197179
```
198180

199181
The function accepts the following arguments:
@@ -232,15 +214,20 @@ element and another before the `/section` close. -->
232214
#include <stdlib.h>
233215
#include <stdio.h>
234216
217+
static double random_uniform( const double min, const double max ) {
218+
double v = (double)rand() / ( (double)RAND_MAX + 1.0 );
219+
return min + ( v*(max-min) );
220+
}
221+
235222
int main( void ) {
236223
double k;
237224
double lambda;
238225
double y;
239226
int i;
240227
241228
for ( i = 0; i < 10; i++ ) {
242-
k = stdlib_base_round( ( (double)rand() / (double)RAND_MAX )*10.0 );
243-
lambda = ( ( (double)rand() / (double)RAND_MAX )*10.0 )+ STDLIB_CONSTANT_FLOAT64_EPS;
229+
k = stdlib_base_round( random_uniform( 0.0, 10.0 ) );
230+
lambda = random_uniform( STDLIB_CONSTANT_FLOAT64_EPS, 10.0 );
244231
y = stdlib_base_dists_erlang_variance( k, lambda );
245232
printf( "k: %1f, λ: %1f, Var(X;k,λ):: %lf\n", k, lambda, y );
246233
}

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

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@
2121
// MODULES //
2222

2323
var bench = require( '@stdlib/bench' );
24-
var randu = require( '@stdlib/random/base/randu' );
24+
var uniform = require( '@stdlib/random/base/uniform' );
25+
var Float64Array = require( '@stdlib/array/float64' );
2526
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2627
var ceil = require( '@stdlib/math/base/special/ceil' );
2728
var EPS = require( '@stdlib/constants/float64/eps' );
@@ -33,15 +34,24 @@ var variance = require( './../lib' );
3334

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

42+
len = 100;
43+
k = new Float64Array( len );
44+
for ( i = 0; i < len; i++ ) {
45+
k[ i ] = ceil( uniform( 0.0, 10.0 ) );
46+
}
47+
lambda = new Float64Array( len );
48+
for ( i = 0; i < len; i++ ) {
49+
lambda[ i ] = uniform( EPS, 10.0 );
50+
}
51+
4052
b.tic();
4153
for ( i = 0; i < b.iterations; i++ ) {
42-
k = ceil( randu()*10.0 );
43-
lambda = ( randu()*10.0 ) + EPS;
44-
y = variance( k, lambda );
54+
y = variance( k[ i%100 ], lambda[ i%100 ] );
4555
if ( isnan( y ) ) {
4656
b.fail( 'should not return NaN' );
4757
}

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

Lines changed: 14 additions & 4 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 isnan = require( '@stdlib/math/base/assert/is-nan' );
2728
var ceil = require( '@stdlib/math/base/special/ceil' );
2829
var tryRequire = require( '@stdlib/utils/try-require' );
@@ -42,15 +43,24 @@ var opts = {
4243

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

51+
len = 100;
52+
k = new Float64Array( len );
53+
for ( i = 0; i < len; i++ ) {
54+
k[ i ] = ceil( uniform( 0.0, 10.0 ) );
55+
}
56+
lambda = new Float64Array( len );
57+
for ( i = 0; i < len; i++ ) {
58+
lambda[ i ] = uniform( EPS, 10.0 );
59+
}
60+
4961
b.tic();
5062
for ( i = 0; i < b.iterations; i++ ) {
51-
k = ceil( randu()*10.0 );
52-
lambda = ( randu()*10.0 ) + EPS;
53-
y = variance( k, lambda );
63+
y = variance( k[ i%100 ], lambda[ i%100 ] );
5464
if ( isnan( y ) ) {
5565
b.fail( 'should not return NaN' );
5666
}

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

Lines changed: 17 additions & 10 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,17 +95,22 @@ static double rand_double( void ) {
9395
*/
9496
static double benchmark( void ) {
9597
double elapsed;
96-
double k;
97-
double lambda;
98+
double k[ 100 ];
99+
double lambda[ 100 ];
98100
double y;
99101
double t;
100102
int i;
101103

104+
for ( i = 0; i < 100; i++ ) {
105+
k[ i ] = stdlib_base_ceil( random_uniform( 0.0, 10.0 ) );
106+
}
107+
for ( i = 0; i < 100; i++ ) {
108+
lambda[ i ] = random_uniform( STDLIB_CONSTANT_FLOAT64_EPS, 10.0 );
109+
}
110+
102111
t = tic();
103112
for ( i = 0; i < ITERATIONS; i++ ) {
104-
k = stdlib_base_ceil( ( (double)rand() / (double)RAND_MAX )*10.0 );
105-
lambda = ( ( (double)rand() / (double)RAND_MAX )*10.0 ) + STDLIB_CONSTANT_FLOAT64_EPS;
106-
y = stdlib_base_dists_erlang_variance( k, lambda );
113+
y = stdlib_base_dists_erlang_variance( k[ i%100 ], lambda[ i%100 ] );
107114
if ( y != y ) {
108115
printf( "should not return NaN\n" );
109116
break;

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

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,21 @@
2222
#include <stdlib.h>
2323
#include <stdio.h>
2424

25+
static double random_uniform( const double min, const double max ) {
26+
double v = (double)rand() / ( (double)RAND_MAX + 1.0 );
27+
return min + ( v*(max-min) );
28+
}
29+
2530
int main( void ) {
26-
double k;
27-
double lambda;
31+
double k;
32+
double lambda;
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 )+ STDLIB_CONSTANT_FLOAT64_EPS;
34-
y = stdlib_base_dists_erlang_variance( k, lambda );
35-
printf( "k: %1f, λ: %1f, Var(X;k,λ):: %lf\n", k, lambda, y );
37+
k = stdlib_base_round( random_uniform( 0.0, 10.0 ) );
38+
lambda = random_uniform( STDLIB_CONSTANT_FLOAT64_EPS, 10.0 );
39+
y = stdlib_base_dists_erlang_variance( k, lambda );
40+
printf( "k: %1f, λ: %1f, Var(X;k,λ):: %lf\n", k, lambda, y );
3641
}
3742
}

lib/node_modules/@stdlib/stats/base/dists/erlang/variance/include/stdlib/stats/base/dists/erlang/variance.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 excess variance for a erlang distribution with shape parameter `k` and rate parameter `lambda` at a value `x`.
30+
* Retruns the excess variance for a erlang distribution with shape parameter `k` and rate parameter `lambda` at a value `x`.
3131
*/
3232
double stdlib_base_dists_erlang_variance( const double k, const double lambda );
3333

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
#include "stdlib/math/base/assert/is_nan.h"
2222

2323
/**
24-
* Evaluates the variance for a erlang distribution with shape parameter `k` and rate parameter `lambda` at a value `x`.
24+
* Returns the variance for a erlang distribution with shape parameter `k` and rate parameter `lambda` at a value `x`.
2525
*
2626
* @param k shape parameter
2727
* @param lambda rate parameter
@@ -56,7 +56,7 @@
5656
* // returns NaN
5757
*/
5858
double stdlib_base_dists_erlang_variance( const double k, const double lambda ) {
59-
if (
59+
if (
6060
!stdlib_base_is_positive_integer( k ) ||
6161
stdlib_base_is_nan( lambda ) ||
6262
lambda <= 0.0

0 commit comments

Comments
 (0)