Skip to content

Commit af4ed3b

Browse files
committed
bench: refactor to use dynamic memory allocation in stats/strided (batch 2/3)
1 parent a081627 commit af4ed3b

File tree

25 files changed

+165
-55
lines changed

25 files changed

+165
-55
lines changed

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

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,11 +96,13 @@ static double rand_double( void ) {
9696
*/
9797
static double benchmark1( int iterations, int len ) {
9898
double elapsed;
99-
double x[ len ];
100-
double y[ len ];
99+
double *x;
100+
double *y;
101101
double t;
102102
int i;
103103

104+
x = (double *) malloc( len * sizeof( double ) );
105+
y = (double *) malloc( len * sizeof( double ) );
104106
for ( i = 0; i < len; i++ ) {
105107
x[ i ] = ( rand_double() * 20000.0 ) - 10000.0;
106108
y[ i ] = 0.0;
@@ -118,6 +120,8 @@ static double benchmark1( int iterations, int len ) {
118120
if ( y[ len-1 ] != y[ len-1 ] ) {
119121
printf( "should not return NaN\n" );
120122
}
123+
free( x );
124+
free( y );
121125
return elapsed;
122126
}
123127

@@ -130,11 +134,13 @@ static double benchmark1( int iterations, int len ) {
130134
*/
131135
static double benchmark2( int iterations, int len ) {
132136
double elapsed;
133-
double x[ len ];
134-
double y[ len ];
137+
double *x;
138+
double *y;
135139
double t;
136140
int i;
137141

142+
x = (double *) malloc( len * sizeof( double ) );
143+
y = (double *) malloc( len * sizeof( double ) );
138144
for ( i = 0; i < len; i++ ) {
139145
x[ i ] = ( rand_double() * 20000.0 ) - 10000.0;
140146
y[ i ] = 0.0;
@@ -152,6 +158,8 @@ static double benchmark2( int iterations, int len ) {
152158
if ( y[ len-1 ] != y[ len-1 ] ) {
153159
printf( "should not return NaN\n" );
154160
}
161+
free( x );
162+
free( y );
155163
return elapsed;
156164
}
157165

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

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,11 +96,13 @@ static double rand_double( void ) {
9696
*/
9797
static double benchmark1( int iterations, int len ) {
9898
double elapsed;
99-
double x[ len ];
100-
double y[ len ];
99+
double *x;
100+
double *y;
101101
double t;
102102
int i;
103103

104+
x = (double *) malloc( len * sizeof( double ) );
105+
y = (double *) malloc( len * sizeof( double ) );
104106
for ( i = 0; i < len; i++ ) {
105107
x[ i ] = ( rand_double() * 20000.0 ) - 10000.0;
106108
y[ i ] = 0.0;
@@ -118,6 +120,8 @@ static double benchmark1( int iterations, int len ) {
118120
if ( y[ len-1 ] != y[ len-1 ] ) {
119121
printf( "should not return NaN\n" );
120122
}
123+
free( x );
124+
free( y );
121125
return elapsed;
122126
}
123127

@@ -130,11 +134,13 @@ static double benchmark1( int iterations, int len ) {
130134
*/
131135
static double benchmark2( int iterations, int len ) {
132136
double elapsed;
133-
double x[ len ];
134-
double y[ len ];
137+
double *x;
138+
double *y;
135139
double t;
136140
int i;
137141

142+
x = (double *) malloc( len * sizeof( double ) );
143+
y = (double *) malloc( len * sizeof( double ) );
138144
for ( i = 0; i < len; i++ ) {
139145
x[ i ] = ( rand_double() * 20000.0 ) - 10000.0;
140146
y[ i ] = 0.0;
@@ -152,6 +158,8 @@ static double benchmark2( int iterations, int len ) {
152158
if ( y[ len-1 ] != y[ len-1 ] ) {
153159
printf( "should not return NaN\n" );
154160
}
161+
free( x );
162+
free( y );
155163
return elapsed;
156164
}
157165

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

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,11 +96,13 @@ static double rand_double( void ) {
9696
*/
9797
static double benchmark1( int iterations, int len ) {
9898
double elapsed;
99-
double x[ len ];
100-
double y[ len ];
99+
double *x;
100+
double *y;
101101
double t;
102102
int i;
103103

104+
x = (double *) malloc( len * sizeof( double ) );
105+
y = (double *) malloc( len * sizeof( double ) );
104106
for ( i = 0; i < len; i++ ) {
105107
x[ i ] = ( rand_double() * 20000.0 ) - 10000.0;
106108
y[ i ] = 0.0;
@@ -118,6 +120,8 @@ static double benchmark1( int iterations, int len ) {
118120
if ( y[ len-1 ] != y[ len-1 ] ) {
119121
printf( "should not return NaN\n" );
120122
}
123+
free( x );
124+
free( y );
121125
return elapsed;
122126
}
123127

@@ -130,11 +134,13 @@ static double benchmark1( int iterations, int len ) {
130134
*/
131135
static double benchmark2( int iterations, int len ) {
132136
double elapsed;
133-
double x[ len ];
134-
double y[ len ];
137+
double *x;
138+
double *y;
135139
double t;
136140
int i;
137141

142+
x = (double *) malloc( len * sizeof( double ) );
143+
y = (double *) malloc( len * sizeof( double ) );
138144
for ( i = 0; i < len; i++ ) {
139145
x[ i ] = ( rand_double() * 20000.0 ) - 10000.0;
140146
y[ i ] = 0.0;
@@ -152,6 +158,8 @@ static double benchmark2( int iterations, int len ) {
152158
if ( y[ len-1 ] != y[ len-1 ] ) {
153159
printf( "should not return NaN\n" );
154160
}
161+
free( x );
162+
free( y );
155163
return elapsed;
156164
}
157165

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

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,11 +96,13 @@ static double rand_double( void ) {
9696
*/
9797
static double benchmark1( int iterations, int len ) {
9898
double elapsed;
99-
double x[ len ];
100-
double y[ len ];
99+
double *x;
100+
double *y;
101101
double t;
102102
int i;
103103

104+
x = (double *) malloc( len * sizeof( double ) );
105+
y = (double *) malloc( len * sizeof( double ) );
104106
for ( i = 0; i < len; i++ ) {
105107
x[ i ] = ( rand_double() * 20000.0 ) - 10000.0;
106108
y[ i ] = 0.0;
@@ -118,6 +120,8 @@ static double benchmark1( int iterations, int len ) {
118120
if ( y[ len-1 ] != y[ len-1 ] ) {
119121
printf( "should not return NaN\n" );
120122
}
123+
free( x );
124+
free( y );
121125
return elapsed;
122126
}
123127

@@ -130,11 +134,13 @@ static double benchmark1( int iterations, int len ) {
130134
*/
131135
static double benchmark2( int iterations, int len ) {
132136
double elapsed;
133-
double x[ len ];
134-
double y[ len ];
137+
double *x;
138+
double *y;
135139
double t;
136140
int i;
137141

142+
x = (double *) malloc( len * sizeof( double ) );
143+
y = (double *) malloc( len * sizeof( double ) );
138144
for ( i = 0; i < len; i++ ) {
139145
x[ i ] = ( rand_double() * 20000.0 ) - 10000.0;
140146
y[ i ] = 0.0;
@@ -152,6 +158,8 @@ static double benchmark2( int iterations, int len ) {
152158
if ( y[ len-1 ] != y[ len-1 ] ) {
153159
printf( "should not return NaN\n" );
154160
}
161+
free( x );
162+
free( y );
155163
return elapsed;
156164
}
157165

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,11 @@ static double rand_double( void ) {
9797
static double benchmark( int iterations, int len ) {
9898
double elapsed;
9999
double out[ 2 ];
100-
double x[ len ];
100+
double *x;
101101
double t;
102102
int i;
103103

104+
x = (double *) malloc( len * sizeof( double ) );
104105
for ( i = 0; i < len; i++ ) {
105106
x[ i ] = ( rand_double() * 20000.0 ) - 10000.0;
106107
}
@@ -120,6 +121,7 @@ static double benchmark( int iterations, int len ) {
120121
if ( out[ i%2 ] != out[ i%2 ] ) {
121122
printf( "should not return NaN\n" );
122123
}
124+
free( x );
123125
return elapsed;
124126
}
125127

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,11 @@ static double rand_double( void ) {
9797
static double benchmark( int iterations, int len ) {
9898
double elapsed;
9999
double out[ 2 ];
100-
double x[ len ];
100+
double *x;
101101
double t;
102102
int i;
103103

104+
x = (double *) malloc( len * sizeof( double ) );
104105
for ( i = 0; i < len; i++ ) {
105106
x[ i ] = ( rand_double() * 20000.0 ) - 10000.0;
106107
}
@@ -120,6 +121,7 @@ static double benchmark( int iterations, int len ) {
120121
if ( out[ i%2 ] != out[ i%2 ] ) {
121122
printf( "should not return NaN\n" );
122123
}
124+
free( x );
123125
return elapsed;
124126
}
125127

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,11 @@ static double rand_double( void ) {
9797
static double benchmark( int iterations, int len ) {
9898
double elapsed;
9999
double out[ 2 ];
100-
double x[ len ];
100+
double *x;
101101
double t;
102102
int i;
103103

104+
x = (double *) malloc( len * sizeof( double ) );
104105
for ( i = 0; i < len; i++ ) {
105106
x[ i ] = ( rand_double() * 20000.0 ) - 10000.0;
106107
}
@@ -119,6 +120,7 @@ static double benchmark( int iterations, int len ) {
119120
if ( out[ i%2 ] != out[ i%2 ] ) {
120121
printf( "should not return NaN\n" );
121122
}
123+
free( x );
122124
return elapsed;
123125
}
124126

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,11 @@ static double rand_double( void ) {
9797
static double benchmark1( int iterations, int len ) {
9898
double elapsed;
9999
double out[ 2 ];
100-
double x[ len ];
100+
double *x;
101101
double t;
102102
int i;
103103

104+
x = (double *) malloc( len * sizeof( double ) );
104105
for ( i = 0; i < len; i++ ) {
105106
x[ i ] = ( rand_double() * 20000.0 ) - 10000.0;
106107
}
@@ -120,6 +121,7 @@ static double benchmark1( int iterations, int len ) {
120121
if ( out[ i%2 ] != out[ i%2 ] ) {
121122
printf( "should not return NaN\n" );
122123
}
124+
free( x );
123125
return elapsed;
124126
}
125127

@@ -133,10 +135,11 @@ static double benchmark1( int iterations, int len ) {
133135
static double benchmark2( int iterations, int len ) {
134136
double elapsed;
135137
double out[ 2 ];
136-
double x[ len ];
138+
double *x;
137139
double t;
138140
int i;
139141

142+
x = (double *) malloc( len * sizeof( double ) );
140143
for ( i = 0; i < len; i++ ) {
141144
x[ i ] = ( rand_double() * 20000.0 ) - 10000.0;
142145
}
@@ -156,6 +159,7 @@ static double benchmark2( int iterations, int len ) {
156159
if ( out[ i%2 ] != out[ i%2 ] ) {
157160
printf( "should not return NaN\n" );
158161
}
162+
free( x );
159163
return elapsed;
160164
}
161165

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,11 +96,12 @@ static double rand_double( void ) {
9696
*/
9797
static double benchmark1( int iterations, int len ) {
9898
double elapsed;
99-
double x[ len ];
99+
double *x;
100100
double v;
101101
double t;
102102
int i;
103103

104+
x = (double *) malloc( len * sizeof( double ) );
104105
for ( i = 0; i < len; i++ ) {
105106
x[ i ] = ( rand_double() * 20000.0 ) - 10000.0;
106107
}
@@ -118,6 +119,7 @@ static double benchmark1( int iterations, int len ) {
118119
if ( v != v ) {
119120
printf( "should not return NaN\n" );
120121
}
122+
free( x );
121123
return elapsed;
122124
}
123125

@@ -130,11 +132,12 @@ static double benchmark1( int iterations, int len ) {
130132
*/
131133
static double benchmark2( int iterations, int len ) {
132134
double elapsed;
133-
double x[ len ];
135+
double *x;
134136
double v;
135137
double t;
136138
int i;
137139

140+
x = (double *) malloc( len * sizeof( double ) );
138141
for ( i = 0; i < len; i++ ) {
139142
x[ i ] = ( rand_double() * 20000.0 ) - 10000.0;
140143
}
@@ -152,6 +155,7 @@ static double benchmark2( int iterations, int len ) {
152155
if ( v != v ) {
153156
printf( "should not return NaN\n" );
154157
}
158+
free( x );
155159
return elapsed;
156160
}
157161

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,11 +96,12 @@ static double rand_double( void ) {
9696
*/
9797
static double benchmark1( int iterations, int len ) {
9898
double elapsed;
99-
double x[ len ];
99+
double *x;
100100
double v;
101101
double t;
102102
int i;
103103

104+
x = (double *) malloc( len * sizeof( double ) );
104105
for ( i = 0; i < len; i++ ) {
105106
if ( rand_double() < 0.5 ) {
106107
x[ i ] = 0.0 / 0.0; // NaN
@@ -122,6 +123,7 @@ static double benchmark1( int iterations, int len ) {
122123
if ( v != v ) {
123124
printf( "should not return NaN\n" );
124125
}
126+
free( x );
125127
return elapsed;
126128
}
127129

@@ -134,11 +136,12 @@ static double benchmark1( int iterations, int len ) {
134136
*/
135137
static double benchmark2( int iterations, int len ) {
136138
double elapsed;
137-
double x[ len ];
139+
double *x;
138140
double v;
139141
double t;
140142
int i;
141143

144+
x = (double *) malloc( len * sizeof( double ) );
142145
for ( i = 0; i < len; i++ ) {
143146
if ( rand_double() < 0.5 ) {
144147
x[ i ] = 0.0 / 0.0; // NaN
@@ -160,6 +163,7 @@ static double benchmark2( int iterations, int len ) {
160163
if ( v != v ) {
161164
printf( "should not return NaN\n" );
162165
}
166+
free( x );
163167
return elapsed;
164168
}
165169

0 commit comments

Comments
 (0)