Skip to content

Commit 1c9a785

Browse files
committed
bench: add missing benchmarks
--- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: na - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: passed - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed ---
1 parent a1628e3 commit 1c9a785

7 files changed

Lines changed: 380 additions & 14 deletions

File tree

lib/node_modules/@stdlib/stats/strided/dnanmskmax/benchmark/c/benchmark.length.c

Lines changed: 54 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ static double rand_double( void ) {
9494
* @param len array length
9595
* @return elapsed time in seconds
9696
*/
97-
static double benchmark( int iterations, int len ) {
97+
static double benchmark1( int iterations, int len ) {
9898
unsigned char mask[ len ];
9999
double elapsed;
100100
double x[ len ];
@@ -113,6 +113,7 @@ static double benchmark( int iterations, int len ) {
113113
v = 0.0;
114114
t = tic();
115115
for ( i = 0; i < iterations; i++ ) {
116+
// cppcheck-suppress uninitvar
116117
v = stdlib_strided_dnanmskmax( len, x, 1, mask, 1 );
117118
if ( v != v ) {
118119
printf( "should not return NaN\n" );
@@ -126,6 +127,46 @@ static double benchmark( int iterations, int len ) {
126127
return elapsed;
127128
}
128129

130+
/**
131+
* Runs a benchmark.
132+
*
133+
* @param iterations number of iterations
134+
* @param len array length
135+
* @return elapsed time in seconds
136+
*/
137+
static double benchmark2( int iterations, int len ) {
138+
unsigned char mask[ len ];
139+
double elapsed;
140+
double x[ len ];
141+
double v;
142+
double t;
143+
int i;
144+
145+
for ( i = 0; i < len; i++ ) {
146+
if ( rand_double() < 0.2 ) {
147+
mask[ i ] = 1; // missing
148+
} else {
149+
mask[ i ] = 0;
150+
}
151+
x[ i ] = ( rand_double() * 20000.0 ) - 10000.0;
152+
}
153+
v = 0.0;
154+
t = tic();
155+
for ( i = 0; i < iterations; i++ ) {
156+
// cppcheck-suppress uninitvar
157+
v = stdlib_strided_dnanmskmax_ndarray( len, x, 1, 0, mask, 1, 0 );
158+
if ( v != v ) {
159+
printf( "should not return NaN\n" );
160+
break;
161+
}
162+
}
163+
elapsed = tic() - t;
164+
if ( v != v ) {
165+
printf( "should not return NaN\n" );
166+
}
167+
return elapsed;
168+
}
169+
129170
/**
130171
* Main execution sequence.
131172
*/
@@ -148,7 +189,18 @@ int main( void ) {
148189
for ( j = 0; j < REPEATS; j++ ) {
149190
count += 1;
150191
printf( "# c::%s:len=%d\n", NAME, len );
151-
elapsed = benchmark( iter, len );
192+
elapsed = benchmark1( iter, len );
193+
print_results( iter, elapsed );
194+
printf( "ok %d benchmark finished\n", count );
195+
}
196+
}
197+
for ( i = MIN; i <= MAX; i++ ) {
198+
len = pow( 10, i );
199+
iter = ITERATIONS / pow( 10, i-1 );
200+
for ( j = 0; j < REPEATS; j++ ) {
201+
count += 1;
202+
printf( "# c::%s:ndarray:len=%d\n", NAME, len );
203+
elapsed = benchmark2( iter, len );
152204
print_results( iter, elapsed );
153205
printf( "ok %d benchmark finished\n", count );
154206
}

lib/node_modules/@stdlib/stats/strided/dnanmskmidrange/benchmark/c/benchmark.length.c

Lines changed: 58 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ static double rand_double( void ) {
9494
* @param len array length
9595
* @return elapsed time in seconds
9696
*/
97-
static double benchmark( int iterations, int len ) {
97+
static double benchmark1( int iterations, int len ) {
9898
unsigned char *mask;
9999
double elapsed;
100100
double *x;
@@ -115,6 +115,7 @@ static double benchmark( int iterations, int len ) {
115115
v = 0.0;
116116
t = tic();
117117
for ( i = 0; i < iterations; i++ ) {
118+
// cppcheck-suppress uninitvar
118119
v = stdlib_strided_dnanmskmidrange( len, x, 1, mask, 1 );
119120
if ( v != v ) {
120121
printf( "should not return NaN\n" );
@@ -130,6 +131,50 @@ static double benchmark( int iterations, int len ) {
130131
return elapsed;
131132
}
132133

134+
/**
135+
* Runs a benchmark.
136+
*
137+
* @param iterations number of iterations
138+
* @param len array length
139+
* @return elapsed time in seconds
140+
*/
141+
static double benchmark2( int iterations, int len ) {
142+
unsigned char *mask;
143+
double elapsed;
144+
double *x;
145+
double v;
146+
double t;
147+
int i;
148+
149+
x = (double *)malloc( len * sizeof( double ) );
150+
mask = (unsigned char *)malloc( len * sizeof( unsigned char ) );
151+
for ( i = 0; i < len; i++ ) {
152+
if ( rand_double() < 0.2 ) {
153+
mask[ i ] = 1; // missing
154+
} else {
155+
mask[ i ] = 0;
156+
}
157+
x[ i ] = ( rand_double() * 20000.0 ) - 10000.0;
158+
}
159+
v = 0.0;
160+
t = tic();
161+
for ( i = 0; i < iterations; i++ ) {
162+
// cppcheck-suppress uninitvar
163+
v = stdlib_strided_dnanmskmidrange_ndarray( len, x, 1, 0, mask, 1, 0 );
164+
if ( v != v ) {
165+
printf( "should not return NaN\n" );
166+
break;
167+
}
168+
}
169+
elapsed = tic() - t;
170+
if ( v != v ) {
171+
printf( "should not return NaN\n" );
172+
}
173+
free( x );
174+
free( mask );
175+
return elapsed;
176+
}
177+
133178
/**
134179
* Main execution sequence.
135180
*/
@@ -152,7 +197,18 @@ int main( void ) {
152197
for ( j = 0; j < REPEATS; j++ ) {
153198
count += 1;
154199
printf( "# c::%s:len=%d\n", NAME, len );
155-
elapsed = benchmark( iter, len );
200+
elapsed = benchmark1( iter, len );
201+
print_results( iter, elapsed );
202+
printf( "ok %d benchmark finished\n", count );
203+
}
204+
}
205+
for ( i = MIN; i <= MAX; i++ ) {
206+
len = pow( 10, i );
207+
iter = ITERATIONS / pow( 10, i-1 );
208+
for ( j = 0; j < REPEATS; j++ ) {
209+
count += 1;
210+
printf( "# c::%s:ndarray:len=%d\n", NAME, len );
211+
elapsed = benchmark2( iter, len );
156212
print_results( iter, elapsed );
157213
printf( "ok %d benchmark finished\n", count );
158214
}

lib/node_modules/@stdlib/stats/strided/dnanmskmin/benchmark/c/benchmark.length.c

Lines changed: 53 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ static double rand_double( void ) {
9494
* @param len array length
9595
* @return elapsed time in seconds
9696
*/
97-
static double benchmark( int iterations, int len ) {
97+
static double benchmark1( int iterations, int len ) {
9898
unsigned char mask[ len ];
9999
double elapsed;
100100
double x[ len ];
@@ -127,6 +127,46 @@ static double benchmark( int iterations, int len ) {
127127
return elapsed;
128128
}
129129

130+
/**
131+
* Runs a benchmark.
132+
*
133+
* @param iterations number of iterations
134+
* @param len array length
135+
* @return elapsed time in seconds
136+
*/
137+
static double benchmark2( int iterations, int len ) {
138+
unsigned char mask[ len ];
139+
double elapsed;
140+
double x[ len ];
141+
double v;
142+
double t;
143+
int i;
144+
145+
for ( i = 0; i < len; i++ ) {
146+
if ( rand_double() < 0.2 ) {
147+
mask[ i ] = 1; // missing
148+
} else {
149+
mask[ i ] = 0;
150+
}
151+
x[ i ] = ( rand_double() * 20000.0 ) - 10000.0;
152+
}
153+
v = 0.0;
154+
t = tic();
155+
for ( i = 0; i < iterations; i++ ) {
156+
// cppcheck-suppress uninitvar
157+
v = stdlib_strided_dnanmskmin_ndarray( len, x, 1, 0, mask, 1, 0 );
158+
if ( v != v ) {
159+
printf( "should not return NaN\n" );
160+
break;
161+
}
162+
}
163+
elapsed = tic() - t;
164+
if ( v != v ) {
165+
printf( "should not return NaN\n" );
166+
}
167+
return elapsed;
168+
}
169+
130170
/**
131171
* Main execution sequence.
132172
*/
@@ -149,7 +189,18 @@ int main( void ) {
149189
for ( j = 0; j < REPEATS; j++ ) {
150190
count += 1;
151191
printf( "# c::%s:len=%d\n", NAME, len );
152-
elapsed = benchmark( iter, len );
192+
elapsed = benchmark1( iter, len );
193+
print_results( iter, elapsed );
194+
printf( "ok %d benchmark finished\n", count );
195+
}
196+
}
197+
for ( i = MIN; i <= MAX; i++ ) {
198+
len = pow( 10, i );
199+
iter = ITERATIONS / pow( 10, i-1 );
200+
for ( j = 0; j < REPEATS; j++ ) {
201+
count += 1;
202+
printf( "# c::%s:ndarray:len=%d\n", NAME, len );
203+
elapsed = benchmark2( iter, len );
153204
print_results( iter, elapsed );
154205
printf( "ok %d benchmark finished\n", count );
155206
}

lib/node_modules/@stdlib/stats/strided/dnanmskrange/benchmark/c/benchmark.length.c

Lines changed: 54 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ static double rand_double( void ) {
9494
* @param len array length
9595
* @return elapsed time in seconds
9696
*/
97-
static double benchmark( int iterations, int len ) {
97+
static double benchmark1( int iterations, int len ) {
9898
unsigned char mask[ len ];
9999
double elapsed;
100100
double x[ len ];
@@ -113,6 +113,7 @@ static double benchmark( int iterations, int len ) {
113113
v = 0.0;
114114
t = tic();
115115
for ( i = 0; i < iterations; i++ ) {
116+
// cppcheck-suppress uninitvar
116117
v = stdlib_strided_dnanmskrange( len, x, 1, mask, 1 );
117118
if ( v != v ) {
118119
printf( "should not return NaN\n" );
@@ -126,6 +127,46 @@ static double benchmark( int iterations, int len ) {
126127
return elapsed;
127128
}
128129

130+
/**
131+
* Runs a benchmark.
132+
*
133+
* @param iterations number of iterations
134+
* @param len array length
135+
* @return elapsed time in seconds
136+
*/
137+
static double benchmark2( int iterations, int len ) {
138+
unsigned char mask[ len ];
139+
double elapsed;
140+
double x[ len ];
141+
double v;
142+
double t;
143+
int i;
144+
145+
for ( i = 0; i < len; i++ ) {
146+
if ( rand_double() < 0.2 ) {
147+
mask[ i ] = 1; // missing
148+
} else {
149+
mask[ i ] = 0;
150+
}
151+
x[ i ] = ( rand_double() * 20000.0 ) - 10000.0;
152+
}
153+
v = 0.0;
154+
t = tic();
155+
for ( i = 0; i < iterations; i++ ) {
156+
// cppcheck-suppress uninitvar
157+
v = stdlib_strided_dnanmskrange_ndarray( len, x, 1, 0, mask, 1, 0 );
158+
if ( v != v ) {
159+
printf( "should not return NaN\n" );
160+
break;
161+
}
162+
}
163+
elapsed = tic() - t;
164+
if ( v != v ) {
165+
printf( "should not return NaN\n" );
166+
}
167+
return elapsed;
168+
}
169+
129170
/**
130171
* Main execution sequence.
131172
*/
@@ -148,7 +189,18 @@ int main( void ) {
148189
for ( j = 0; j < REPEATS; j++ ) {
149190
count += 1;
150191
printf( "# c::%s:len=%d\n", NAME, len );
151-
elapsed = benchmark( iter, len );
192+
elapsed = benchmark1( iter, len );
193+
print_results( iter, elapsed );
194+
printf( "ok %d benchmark finished\n", count );
195+
}
196+
}
197+
for ( i = MIN; i <= MAX; i++ ) {
198+
len = pow( 10, i );
199+
iter = ITERATIONS / pow( 10, i-1 );
200+
for ( j = 0; j < REPEATS; j++ ) {
201+
count += 1;
202+
printf( "# c::%s:ndarray:len=%d\n", NAME, len );
203+
elapsed = benchmark2( iter, len );
152204
print_results( iter, elapsed );
153205
printf( "ok %d benchmark finished\n", count );
154206
}

0 commit comments

Comments
 (0)