File tree Expand file tree Collapse file tree
lib/node_modules/@stdlib/math/base/special/round/benchmark/c Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -74,13 +74,15 @@ static double tic( void ) {
7474}
7575
7676/**
77- * Generates a random number on the interval [0,1 ).
77+ * Generates a random number on the interval [min,max ).
7878*
79- * @return random number
79+ * @param min minimum value (inclusive)
80+ * @param max maximum value (exclusive)
81+ * @return random number
8082*/
81- static double rand_double ( void ) {
82- int r = rand ();
83- return ( double ) r / ( ( double ) RAND_MAX + 1.0 );
83+ static double random_uniform ( const double min , const double max ) {
84+ double v = ( double ) rand () / ( ( double ) RAND_MAX + 1.0 );
85+ return min + ( v * ( max - min ) );
8486}
8587
8688/**
@@ -96,7 +98,7 @@ static double benchmark( void ) {
9698 int i ;
9799
98100 for ( i = 0 ; i < 100 ; i ++ ) {
99- x [ i ] = ( 1000.0 * rand_double () ) - 500.0 ;
101+ x [ i ] = random_uniform ( -500.0 , 500.0 ); ;
100102 }
101103
102104 t = tic ();
Original file line number Diff line number Diff line change @@ -79,13 +79,15 @@ static double tic( void ) {
7979}
8080
8181/**
82- * Generates a random number on the interval [0,1 ).
82+ * Generates a random number on the interval [min,max ).
8383*
84- * @return random number
84+ * @param min minimum value (inclusive)
85+ * @param max maximum value (exclusive)
86+ * @return random number
8587*/
86- static double rand_double ( void ) {
87- int r = rand ();
88- return ( double ) r / ( ( double ) RAND_MAX + 1.0 );
88+ static double random_uniform ( const double min , const double max ) {
89+ double v = ( double ) rand () / ( ( double ) RAND_MAX + 1.0 );
90+ return min + ( v * ( max - min ) );
8991}
9092
9193/**
@@ -101,7 +103,7 @@ static double benchmark( void ) {
101103 int i ;
102104
103105 for ( i = 0 ; i < 100 ; i ++ ) {
104- x [ i ] = ( 1000.0 * rand_double () ) - 500.0 ;
106+ x [ i ] = random_uniform ( -500.0 , 500.0 ) ;
105107 }
106108
107109 t = tic ();
Original file line number Diff line number Diff line change @@ -75,13 +75,15 @@ static double tic( void ) {
7575}
7676
7777/**
78- * Generates a random number on the interval [0,1 ).
78+ * Generates a random number on the interval [min,max ).
7979*
80- * @return random number
80+ * @param min minimum value (inclusive)
81+ * @param max maximum value (exclusive)
82+ * @return random number
8183*/
82- static double rand_double ( void ) {
83- int r = rand ();
84- return ( double ) r / ( ( double ) RAND_MAX + 1.0 );
84+ 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 ) );
8587}
8688
8789/**
@@ -97,12 +99,12 @@ static double benchmark( void ) {
9799 int i ;
98100
99101 for ( i = 0 ; i < 100 ; i ++ ) {
100- x [ i ] = ( 1000.0 * rand_double () ) - 500.0 ;
102+ x [ i ] = random_uniform ( -500.0 , 500.0 ) ;
101103 }
102104
103105 t = tic ();
104106 for ( i = 0 ; i < ITERATIONS ; i ++ ) {
105- y = round ( x [ i % 100 ] );
107+ y = stdlib_base_round ( x [ i % 100 ] );
106108 if ( y != y ) {
107109 printf ( "should not return NaN\n" );
108110 break ;
You can’t perform that action at this time.
0 commit comments