From 716551211aea326e8d5dac9d3188a685ed22ec5a Mon Sep 17 00:00:00 2001 From: Menna Date: Sun, 8 Feb 2026 01:48:32 +0000 Subject: [PATCH] bench: refactor to use dynamic memory allocation in dasumpw Ref: #8643 --- .../dasumpw/benchmark/c/benchmark.length.c | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/lib/node_modules/@stdlib/blas/ext/base/dasumpw/benchmark/c/benchmark.length.c b/lib/node_modules/@stdlib/blas/ext/base/dasumpw/benchmark/c/benchmark.length.c index 9b96bcecb0a3..f79665c0fae2 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dasumpw/benchmark/c/benchmark.length.c +++ b/lib/node_modules/@stdlib/blas/ext/base/dasumpw/benchmark/c/benchmark.length.c @@ -16,12 +16,12 @@ * limitations under the License. */ +#include #include "stdlib/blas/ext/base/dasumpw.h" -#include -#include #include +#include +#include #include -#include #define NAME "dasumpw" #define ITERATIONS 1000000 @@ -74,7 +74,7 @@ static void print_results( int iterations, double elapsed ) { static double tic( void ) { struct timeval now; gettimeofday( &now, NULL ); - return (double)now.tv_sec + (double)now.tv_usec/1.0e6; + return (double)now.tv_sec + (double)now.tv_usec / 1.0e6; } /** @@ -96,10 +96,11 @@ static double rand_double( void ) { */ static double benchmark1( int iterations, int len ) { double elapsed; - double x[ len ]; + double *x; double v; double t; int i; + x = (double *)malloc( len * sizeof( double ) ); for ( i = 0; i < len; i++ ) { x[ i ] = ( rand_double() * 20000.0 ) - 10000.0; @@ -118,6 +119,7 @@ static double benchmark1( int iterations, int len ) { if ( v != v ) { printf( "should not return NaN\n" ); } + free( x ); return elapsed; } @@ -130,10 +132,11 @@ static double benchmark1( int iterations, int len ) { */ static double benchmark2( int iterations, int len ) { double elapsed; - double x[ len ]; + double *x; double v; double t; int i; + x = (double *)malloc( len * sizeof( double ) ); for ( i = 0; i < len; i++ ) { x[ i ] = ( rand_double() * 20000.0 ) - 10000.0; @@ -152,6 +155,7 @@ static double benchmark2( int iterations, int len ) { if ( v != v ) { printf( "should not return NaN\n" ); } + free( x ); return elapsed; } @@ -173,7 +177,7 @@ int main( void ) { count = 0; for ( i = MIN; i <= MAX; i++ ) { len = pow( 10, i ); - iter = ITERATIONS / pow( 10, i-1 ); + iter = ITERATIONS / pow( 10, i - 1 ); for ( j = 0; j < REPEATS; j++ ) { count += 1; printf( "# c::%s:len=%d\n", NAME, len ); @@ -184,7 +188,7 @@ int main( void ) { } for ( i = MIN; i <= MAX; i++ ) { len = pow( 10, i ); - iter = ITERATIONS / pow( 10, i-1 ); + iter = ITERATIONS / pow( 10, i - 1 ); for ( j = 0; j < REPEATS; j++ ) { count += 1; printf( "# c::%s:ndarray:len=%d\n", NAME, len );