@@ -496,7 +496,9 @@ void check_array_stoc_double(double *tmpin, double *tmpout,
496
496
ck_abort_msg ( "Not rounding to either closest number." ) ;
497
497
fpopts - > round = mode ;
498
498
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 ] ) ;
500
502
ck_abort_msg ( "Error in stochasting rounding." ) ;
501
503
}
502
504
}
@@ -527,7 +529,9 @@ void check_array_stoc_float(float *tmpin, float *tmpout,
527
529
ck_abort_msg ( "Not rounding to either closest number." ) ;
528
530
fpopts - > round = mode ;
529
531
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 ] ) ;
531
535
ck_abort_msg ( "Error in stochasting rounding." ) ;
532
536
}
533
537
}
@@ -548,7 +552,9 @@ void check_array_equi_double(double *tmpin, double *tmpout,
548
552
else
549
553
counter [ 0 ] ++ ;
550
554
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 ] ) ;
552
558
ck_abort_msg ( "Error in stochasting rounding." ) ;
553
559
}
554
560
}
@@ -569,7 +575,9 @@ void check_array_equi_float(float *tmpin, float *tmpout,
569
575
else
570
576
counter [ 0 ] ++ ;
571
577
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 ] ) ;
573
581
ck_abort_msg ( "Error in stochasting rounding." ) ;
574
582
}
575
583
}
@@ -974,7 +982,8 @@ for (size_t mode = 1; mode < 3; mode++) {
974
982
fpopts - > precision = precision [ i ] ;
975
983
fpopts - > emax = emax [ i ] ;
976
984
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 ) ;
978
987
uint64_t * xd = malloc ( n * sizeof ( * xd ) ) ;
979
988
init_intarray_double ( xd , n , intminnormal_double ( fpopts ) ,
980
989
1 ul << ( 52 - fpopts - > precision + 1 ) ) ;
@@ -1690,7 +1699,8 @@ for (size_t mode = 1; mode < 3; mode++) {
1690
1699
fpopts - > precision = precision [ i ] ;
1691
1700
fpopts - > emax = emax [ i ] ;
1692
1701
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 ) ;
1694
1704
uint64_t * xd_imm = malloc ( n * sizeof ( * xd_imm ) ) ;
1695
1705
uint64_t * refd = malloc ( n * sizeof ( * refd ) ) ;
1696
1706
double * xd = malloc ( n * sizeof ( * xd ) ) ;
@@ -2103,7 +2113,8 @@ for (size_t mode = 1; mode < 3; mode++ ) {
2103
2113
fpopts - > emax = emax [ i ] ;
2104
2114
fpopts - > emin = emin [ i ] ;
2105
2115
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 ) ;
2107
2118
uint64_t * xd = malloc ( n * sizeof ( * xd ) ) ;
2108
2119
double xmin = minnormal ( fpopts ) ;
2109
2120
uint64_t stepd = 1 ul << ( 52 - fpopts - > precision + 1 ) ;
@@ -2742,7 +2753,8 @@ for (size_t mode = 3; mode < 3; mode++) {
2742
2753
fpopts - > emax = emax [ i ] ;
2743
2754
fpopts - > emin = emin [ i ] ;
2744
2755
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 ;
2746
2758
double * ad = malloc ( n * sizeof ( * ad ) ) ;
2747
2759
double * xd = allocate_array_double ( ad , n , mode ) ;
2748
2760
double * refd = malloc ( n * sizeof ( * refd ) ) ;
0 commit comments