@@ -496,7 +496,9 @@ void check_array_stoc_double(double *tmpin, double *tmpout,
496496 ck_abort_msg ( "Not rounding to either closest number." ) ;
497497 fpopts - > round = mode ;
498498 if ( fabs ( counter [ 0 ] / NREPS - prounddown [ i % 3 ] ) > 0.1 ) {
499- printf ( "%e\n" , fabs ( counter [ 0 ] / NREPS - prounddown [ i % 3 ] ) ) ;
499+ printf ( "DOUBLE\n" ) ;
500+ printf ( "***\ni = %ld\nexp = %23.15e\nact = %23.15e\n" ,
501+ i , counter [ 0 ] / NREPS , prounddown [ i % 3 ] ) ;
500502 ck_abort_msg ( "Error in stochasting rounding." ) ;
501503 }
502504 }
@@ -527,7 +529,9 @@ void check_array_stoc_float(float *tmpin, float *tmpout,
527529 ck_abort_msg ( "Not rounding to either closest number." ) ;
528530 fpopts - > round = mode ;
529531 if ( fabs ( counter [ 0 ] / ( double ) NREPS - prounddown [ i % 3 ] ) > 0.1 ) {
530- printf ( "%e\n" , fabs ( counter [ 0 ] / NREPS - prounddown [ i % 3 ] ) ) ;
532+ printf ( "FLOAT\n" ) ;
533+ printf ( "***\ni = %ld\nexp = %23.15e\nact = %23.15e\n" ,
534+ i , counter [ 0 ] / NREPS , prounddown [ i % 3 ] ) ;
531535 ck_abort_msg ( "Error in stochasting rounding." ) ;
532536 }
533537 }
@@ -548,7 +552,9 @@ void check_array_equi_double(double *tmpin, double *tmpout,
548552 else
549553 counter [ 0 ] ++ ;
550554 if ( fabs ( counter [ 0 ] / NREPS - * prounddown ) > 0.1 ) {
551- printf ( "%e\n" , fabs ( counter [ 0 ] / NREPS - prounddown [ i % 3 ] ) ) ;
555+ printf ( "DOUBLE\n" ) ;
556+ printf ( "***\ni = %ld\nexp = %23.15e\nact = %23.15e\n" ,
557+ i , counter [ 0 ] / NREPS , prounddown [ i % 3 ] ) ;
552558 ck_abort_msg ( "Error in stochasting rounding." ) ;
553559 }
554560 }
@@ -569,7 +575,9 @@ void check_array_equi_float(float *tmpin, float *tmpout,
569575 else
570576 counter [ 0 ] ++ ;
571577 if ( fabs ( counter [ 0 ] / ( double ) NREPS - * prounddown ) > 0.1 ) {
572- printf ( "%e\n" , fabs ( counter [ 0 ] / NREPS - prounddown [ i % 3 ] ) ) ;
578+ printf ( "FLOAT\n" ) ;
579+ printf ( "***\ni = %ld\nexp = %23.15e\nact = %23.15e\n" ,
580+ i , counter [ 0 ] / NREPS , prounddown [ i % 3 ] ) ;
573581 ck_abort_msg ( "Error in stochasting rounding." ) ;
574582 }
575583 }
@@ -974,7 +982,8 @@ for (size_t mode = 1; mode < 3; mode++) {
974982 fpopts - > precision = precision [ i ] ;
975983 fpopts - > emax = emax [ i ] ;
976984 fpopts - > emin = emin [ i ] ;
977- size_t n = ldexp ( 1. , fpopts - > precision - 1 ) * 2 * fpopts - > emax ;
985+ size_t n = ldexp ( 1. , fpopts - > precision - 1 ) *
986+ ( fpopts - > emax - fpopts - > emin + 1 ) ;
978987 uint64_t * xd = malloc ( n * sizeof ( * xd ) ) ;
979988 init_intarray_double ( xd , n , intminnormal_double ( fpopts ) ,
980989 1 ul << ( 52 - fpopts - > precision + 1 ) ) ;
@@ -1690,7 +1699,8 @@ for (size_t mode = 1; mode < 3; mode++) {
16901699 fpopts - > precision = precision [ i ] ;
16911700 fpopts - > emax = emax [ i ] ;
16921701 fpopts - > emin = emin [ i ] ;
1693- size_t n = 3 * ( ldexp ( 1. , fpopts - > precision - 1 ) * 2 * fpopts - > emax - 1 ) ;
1702+ size_t n = 3 *
1703+ ( ldexp ( 1. , fpopts - > precision - 1 ) * ( fpopts - > emax - fpopts - > emin + 1 ) - 1 ) ;
16941704 uint64_t * xd_imm = malloc ( n * sizeof ( * xd_imm ) ) ;
16951705 uint64_t * refd = malloc ( n * sizeof ( * refd ) ) ;
16961706 double * xd = malloc ( n * sizeof ( * xd ) ) ;
@@ -2103,7 +2113,8 @@ for (size_t mode = 1; mode < 3; mode++ ) {
21032113 fpopts - > emax = emax [ i ] ;
21042114 fpopts - > emin = emin [ i ] ;
21052115
2106- size_t n = 3 * ( ldexp ( 1. , fpopts - > precision - 1 ) * 2 * fpopts - > emax - 1 ) ;
2116+ size_t n = 3 * ( ldexp ( 1. , fpopts - > precision - 1 )
2117+ * ( fpopts - > emax - fpopts - > emin + 1 ) - 1 ) ;
21072118 uint64_t * xd = malloc ( n * sizeof ( * xd ) ) ;
21082119 double xmin = minnormal ( fpopts ) ;
21092120 uint64_t stepd = 1 ul << ( 52 - fpopts - > precision + 1 ) ;
@@ -2742,7 +2753,8 @@ for (size_t mode = 3; mode < 3; mode++) {
27422753 fpopts - > emax = emax [ i ] ;
27432754 fpopts - > emin = emin [ i ] ;
27442755
2745- size_t n = ldexp ( 1. , fpopts - > precision - 1 ) * 2 * fpopts - > emax + 2 ;
2756+ size_t n = ldexp ( 1. , fpopts - > precision - 1 ) *
2757+ ( fpopts - > emax - fpopts - > emin + 1 ) + 2 ;
27462758 double * ad = malloc ( n * sizeof ( * ad ) ) ;
27472759 double * xd = allocate_array_double ( ad , n , mode ) ;
27482760 double * refd = malloc ( n * sizeof ( * refd ) ) ;
0 commit comments