Skip to content

Commit abc212e

Browse files
committed
Refactor random number generation in JS benchmarks
--- 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 --- --- 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 --- --- 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 --- --- 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 ---
1 parent f3b40b4 commit abc212e

File tree

9 files changed

+160
-170
lines changed

9 files changed

+160
-170
lines changed

lib/node_modules/@stdlib/stats/base/dists/planck/mean/README.md

+12-12
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ for ( i = 0; i < 10; i++ ) {
148148

149149
#### stdlib_base_dists_planck_mean( lambda )
150150

151-
Evaluates the mean for an planck distribution.
151+
Returns the expected value of a Planck distribution with shape parameter `lambda`.
152152

153153
```c
154154
double out = stdlib_base_dists_planck_mean( 0.1 );
@@ -187,20 +187,20 @@ double stdlib_base_dists_planck_mean( const double lambda );
187187
#include <stdio.h>
188188
189189
static double random_uniform( const double min, const double max ) {
190-
double v = (double)rand() / ( (double)RAND_MAX + 1.0 );
191-
return min + ( v * (max - min) );
190+
double v = (double)rand() / ( (double)RAND_MAX + 1.0 );
191+
return min + ( v * (max - min) );
192192
}
193193
194194
int main( void ) {
195-
double lambda;
196-
double y;
197-
int i;
198-
199-
for ( i = 0; i < 25; i++ ) {
200-
lambda = random_uniform( 0.1, 10.0 );
201-
y = stdlib_base_dists_planck_mean( lambda );
202-
printf( "lambda: %lf, E(X;λ): %lf\n", lambda, y );
203-
}
195+
double lambda;
196+
double y;
197+
int i;
198+
199+
for ( i = 0; i < 25; i++ ) {
200+
lambda = random_uniform( 0.1, 10.0 );
201+
y = stdlib_base_dists_planck_mean( lambda );
202+
printf( "λ: %lf, E(X;λ): %lf\n", lambda, y );
203+
}
204204
}
205205
```
206206

lib/node_modules/@stdlib/stats/base/dists/planck/mean/benchmark/benchmark.js

+4-6
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
var bench = require( '@stdlib/bench' );
2424
var Float64Array = require( '@stdlib/array/float64' );
25-
var randu = require( '@stdlib/random/base/randu' );
25+
var uniform = require( '@stdlib/random/base/uniform' );
2626
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2727
var pkg = require( './../package.json' ).name;
2828
var mean = require( './../lib' );
@@ -31,16 +31,15 @@ var mean = require( './../lib' );
3131
// MAIN //
3232

3333
bench( pkg, function benchmark( b ) {
34-
var len;
3534
var lambda;
35+
var len;
3636
var y;
3737
var i;
3838

39-
len =100;
39+
len = 100;
4040
lambda = new Float64Array( len );
4141
for ( i = 0; i < len; i++ ) {
42-
lambda[ i ] = ( randu() * 10.0 ) + 1.0;
43-
42+
lambda[ i ] = uniform( 1.0, 10.0 );
4443
}
4544

4645
b.tic();
@@ -57,4 +56,3 @@ bench( pkg, function benchmark( b ) {
5756
b.pass( 'benchmark finished' );
5857
b.end();
5958
});
60-

lib/node_modules/@stdlib/stats/base/dists/planck/mean/benchmark/benchmark.native.js

+5-6
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
var resolve = require( 'path' ).resolve;
2424
var bench = require( '@stdlib/bench' );
2525
var Float64Array = require( '@stdlib/array/float64' );
26-
var randu = require( '@stdlib/random/base/randu' );
26+
var uniform = require( '@stdlib/random/base/uniform' );
2727
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2828
var tryRequire = require( '@stdlib/utils/try-require' );
2929
var pkg = require( './../package.json' ).name;
@@ -36,19 +36,19 @@ var opts = {
3636
'skip': ( mean instanceof Error )
3737
};
3838

39+
3940
// MAIN //
4041

4142
bench( pkg+'::native', opts, function benchmark( b ) {
42-
var len;
4343
var lambda;
44+
var len;
4445
var y;
4546
var i;
4647

47-
len =100;
48+
len = 100;
4849
lambda = new Float64Array( len );
4950
for ( i = 0; i < len; i++ ) {
50-
lambda[ i ] = ( randu() * 10.0 ) + 1.0;
51-
51+
lambda[ i ] = uniform( 1.0, 10.0 );
5252
}
5353

5454
b.tic();
@@ -65,4 +65,3 @@ bench( pkg+'::native', opts, function benchmark( b ) {
6565
b.pass( 'benchmark finished' );
6666
b.end();
6767
});
68-

lib/node_modules/@stdlib/stats/base/dists/planck/mean/benchmark/c/benchmark.c

+52-52
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
* Prints the TAP version.
3232
*/
3333
static void print_version( void ) {
34-
printf( "TAP version 13\n" );
34+
printf( "TAP version 13\n" );
3535
}
3636

3737
/**
@@ -41,12 +41,12 @@ static void print_version( void ) {
4141
* @param passing total number of passing tests
4242
*/
4343
static void print_summary( int total, int passing ) {
44-
printf( "#\n" );
45-
printf( "1..%d\n", total ); // TAP plan
46-
printf( "# total %d\n", total );
47-
printf( "# pass %d\n", passing );
48-
printf( "#\n" );
49-
printf( "# ok\n" );
44+
printf( "#\n" );
45+
printf( "1..%d\n", total ); // TAP plan
46+
printf( "# total %d\n", total );
47+
printf( "# pass %d\n", passing );
48+
printf( "#\n" );
49+
printf( "# ok\n" );
5050
}
5151

5252
/**
@@ -55,12 +55,12 @@ static void print_summary( int total, int passing ) {
5555
* @param elapsed elapsed time in seconds
5656
*/
5757
static void print_results( double elapsed ) {
58-
double rate = (double)ITERATIONS / elapsed;
59-
printf( " ---\n" );
60-
printf( " iterations: %d\n", ITERATIONS );
61-
printf( " elapsed: %0.9f\n", elapsed );
62-
printf( " rate: %0.9f\n", rate );
63-
printf( " ...\n" );
58+
double rate = (double)ITERATIONS / elapsed;
59+
printf( " ---\n" );
60+
printf( " iterations: %d\n", ITERATIONS );
61+
printf( " elapsed: %0.9f\n", elapsed );
62+
printf( " rate: %0.9f\n", rate );
63+
printf( " ...\n" );
6464
}
6565

6666
/**
@@ -69,9 +69,9 @@ static void print_results( double elapsed ) {
6969
* @return clock time
7070
*/
7171
static double tic( void ) {
72-
struct timeval now;
73-
gettimeofday( &now, NULL );
74-
return (double)now.tv_sec + (double)now.tv_usec / 1.0e6;
72+
struct timeval now;
73+
gettimeofday( &now, NULL );
74+
return (double)now.tv_sec + (double)now.tv_usec / 1.0e6;
7575
}
7676

7777
/**
@@ -82,8 +82,8 @@ static double tic( void ) {
8282
* @return random number
8383
*/
8484
static double random_uniform( const double min, const double max ) {
85-
double v = (double)rand() / ((double)RAND_MAX + 1.0);
86-
return min + (v * (max - min));
85+
double v = (double)rand() / ((double)RAND_MAX + 1.0);
86+
return min + (v * (max - min));
8787
}
8888

8989
/**
@@ -92,49 +92,49 @@ static double random_uniform( const double min, const double max ) {
9292
* @return elapsed time in seconds
9393
*/
9494
static double benchmark( void ) {
95-
double elapsed;
96-
double lambda[100];
97-
double y;
98-
double t;
99-
int i;
95+
double elapsed;
96+
double lambda[100];
97+
double y;
98+
double t;
99+
int i;
100100

101-
for (i = 0; i < 100; i++) {
102-
lambda[i] = random_uniform(0.1, 10.0);
103-
}
101+
for (i = 0; i < 100; i++) {
102+
lambda[i] = random_uniform(0.1, 10.0);
103+
}
104104

105-
t = tic();
106-
for (i = 0; i < ITERATIONS; i++) {
107-
y = stdlib_base_dists_planck_mean(lambda[i % 100]);
108-
if (y != y) {
109-
printf("should not return NaN\n");
110-
break;
111-
}
112-
}
113-
elapsed = tic() - t;
114-
if (y != y) {
115-
printf("should not return NaN\n");
116-
}
117-
return elapsed;
105+
t = tic();
106+
for (i = 0; i < ITERATIONS; i++) {
107+
y = stdlib_base_dists_planck_mean(lambda[i % 100]);
108+
if (y != y) {
109+
printf("should not return NaN\n");
110+
break;
111+
}
112+
}
113+
elapsed = tic() - t;
114+
if (y != y) {
115+
printf("should not return NaN\n");
116+
}
117+
return elapsed;
118118
}
119119

120120
/**
121121
* Main execution sequence.
122122
*/
123123
int main(void) {
124-
double elapsed;
125-
int i;
124+
double elapsed;
125+
int i;
126126

127-
// Use the current time to seed the random number generator:
128-
srand(time(NULL));
127+
// Use the current time to seed the random number generator:
128+
srand(time(NULL));
129129

130-
print_version();
131-
for (i = 0; i < REPEATS; i++) {
132-
printf("# c::%s\n", NAME);
133-
elapsed = benchmark();
134-
print_results(elapsed);
135-
printf("ok %d benchmark finished\n", i + 1);
136-
}
137-
print_summary(REPEATS, REPEATS);
130+
print_version();
131+
for (i = 0; i < REPEATS; i++) {
132+
printf("# c::%s\n", NAME);
133+
elapsed = benchmark();
134+
print_results(elapsed);
135+
printf("ok %d benchmark finished\n", i + 1);
136+
}
137+
print_summary(REPEATS, REPEATS);
138138

139-
return 0;
139+
return 0;
140140
}

lib/node_modules/@stdlib/stats/base/dists/planck/mean/examples/c/example.c

+1-3
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@
1616
* limitations under the License.
1717
*/
1818

19-
// #include "stdlib/math/base/assert/is_nan.h"
20-
// #include "stdlib/math/base/special/expm1.h"
2119
#include "stdlib/stats/base/dists/planck/mean.h"
2220
#include <stdlib.h>
2321
#include <stdio.h>
@@ -35,6 +33,6 @@ int main( void ) {
3533
for ( i = 0; i < 25; i++ ) {
3634
lambda = random_uniform( 0.1, 10.0 );
3735
y = stdlib_base_dists_planck_mean( lambda );
38-
printf( "lambda: %lf, E(X;λ): %lf\n", lambda, y );
36+
printf( "λ: %lf, E(X;λ): %lf\n", lambda, y );
3937
}
4038
}

lib/node_modules/@stdlib/stats/base/dists/planck/mean/include/stdlib/stats/base/dists/planck/mean.h

+1-4
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,7 @@ extern "C" {
2727
#endif
2828

2929
/**
30-
* Evaluates the mean of the Planck distribution with given lambda .
31-
*
32-
* @param T - The temperature parameter of the Planck distribution (must be > 0)
33-
* @return The mean of the Planck distribution for the given temperature
30+
*Returns the expected value of a Planck distribution with shape parameter `lambda`.
3431
*/
3532
double stdlib_base_dists_planck_mean( const double lambda );
3633

lib/node_modules/@stdlib/stats/base/dists/planck/mean/lib/native.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ var addon = require( './../src/addon.node' );
2929
* Returns the expected value of a Planck distribution with shape parameter `lambda`.
3030
*
3131
* @private
32-
* @param {number} lambda - shape parameter (must be positive)
32+
* @param {PositiveNumber} lambda - shape parameter
3333
* @returns {NonNegativeNumber} expected value
3434
*
3535
* @example
@@ -53,7 +53,7 @@ var addon = require( './../src/addon.node' );
5353
* // returns NaN
5454
*/
5555
function mean( lambda ) {
56-
return addon( lambda );
56+
return addon( lambda );
5757
}
5858

5959

0 commit comments

Comments
 (0)