Skip to content

Commit d6b0185

Browse files
committed
feat:C implementation of stats/base/dists/weibull/skewness
--- 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 8d2201d commit d6b0185

File tree

2 files changed

+59
-59
lines changed

2 files changed

+59
-59
lines changed

lib/node_modules/@stdlib/stats/base/dists/weibull/skewness/benchmark/c/benchmark.c

Lines changed: 57 additions & 57 deletions
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,54 +92,54 @@ 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 k[ 100 ];
97-
double lambda[ 100 ];
98-
double y;
99-
double t;
100-
int i;
95+
double elapsed;
96+
double k[ 100 ];
97+
double lambda[ 100 ];
98+
double y;
99+
double t;
100+
int i;
101101

102-
// Generate random values for k (shape) and lambda (scale)
103-
for ( i = 0; i < 100; i++ ) {
104-
k[ i ] = random_uniform( 0.1, 10.0 ); // k > 0 to avoid NaN result
105-
lambda[ i ] = random_uniform( 0.1, 10.0 ); // lambda > 0 to avoid NaN result
106-
}
102+
// Generate random values for k (shape) and lambda (scale)
103+
for ( i = 0; i < 100; i++ ) {
104+
k[ i ] = random_uniform( 0.1, 10.0 ); // k > 0 to avoid NaN result
105+
lambda[ i ] = random_uniform( 0.1, 10.0 ); // lambda > 0 to avoid NaN result
106+
}
107107

108-
t = tic();
109-
// Benchmark loop
110-
for ( i = 0; i < ITERATIONS; i++ ) {
111-
// Calculate skewness for the Weibull distribution
112-
y = stdlib_base_dists_weibull_skewness( k[ i % 100 ], lambda[ i % 100 ] );
113-
if ( y != y ) { // Check for NaN
114-
printf( "should not return NaN\n" );
115-
break;
116-
}
117-
}
118-
elapsed = tic() - t;
108+
t = tic();
109+
// Benchmark loop
110+
for ( i = 0; i < ITERATIONS; i++ ) {
111+
// Calculate skewness for the Weibull distribution
112+
y = stdlib_base_dists_weibull_skewness( k[ i % 100 ], lambda[ i % 100 ] );
113+
if ( y != y ) { // Check for NaN
114+
printf( "should not return NaN\n" );
115+
break;
116+
}
117+
}
118+
elapsed = tic() - t;
119119

120-
// Final NaN check
121-
if ( y != y ) {
122-
printf( "should not return NaN\n" );
123-
}
124-
return elapsed;
120+
// Final NaN check
121+
if ( y != y ) {
122+
printf( "should not return NaN\n" );
123+
}
124+
return elapsed;
125125
}
126126

127127
/**
128128
* Main execution sequence.
129129
*/
130130
int main( void ) {
131-
double elapsed;
132-
int i;
131+
double elapsed;
132+
int i;
133133

134-
// Use the current time to seed the random number generator:
135-
srand( time( NULL ) );
134+
// Use the current time to seed the random number generator:
135+
srand( time( NULL ) );
136136

137-
print_version();
138-
for ( i = 0; i < REPEATS; i++ ) {
139-
printf( "# c::%s\n", NAME );
140-
elapsed = benchmark();
141-
print_results( elapsed );
142-
printf( "ok %d benchmark finished\n", i+1 );
143-
}
144-
print_summary( REPEATS, REPEATS );
137+
print_version();
138+
for ( i = 0; i < REPEATS; i++ ) {
139+
printf( "# c::%s\n", NAME );
140+
elapsed = benchmark();
141+
print_results( elapsed );
142+
printf( "ok %d benchmark finished\n", i+1 );
143+
}
144+
print_summary( REPEATS, REPEATS );
145145
}

lib/node_modules/@stdlib/stats/base/dists/weibull/skewness/lib/native.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,11 @@ var addon = require( './../src/addon.node' );
3434
*
3535
* @example
3636
* var y = skewness( 2.0, 1.5 );
37-
* // returns the skewness for Weibull skewness
37+
* // returns 0.6311
3838
*
3939
* @example
4040
* var y = skewness( 1.0, 3 );
41-
* // returns the skewness for Weibull skewness with a different skewness
41+
* // returns 2.0
4242
*
4343
* @example
4444
* var y = skewness( -1.0, 3 );

0 commit comments

Comments
 (0)