@@ -77,10 +77,11 @@ module LA_CONSTANTS
77
77
(minexponent (0._sp ) - 1 ) * 0.5_sp )
78
78
real (sp), parameter :: stbig = real (radix (0._sp ), sp)** floor ( &
79
79
(maxexponent (0._sp ) - digits (0._sp ) + 1 ) * 0.5_sp )
80
- ! ssml = 1/s, where s was defined in https://doi.org/10.1145/355769.355771
80
+ ! ssml >= 1/s, where s was defined in https://doi.org/10.1145/355769.355771
81
+ ! The correction was added in https://doi.org/10.1145/3061665 to scale denormalized numbers correctly
81
82
real (sp), parameter :: sssml = real (radix (0._sp ), sp)** ( - floor ( &
82
- (minexponent (0._sp ) - 1 ) * 0.5_sp ))
83
- ! ssml = 1/S, where S was defined in https://doi.org/10.1145/355769.355771
83
+ (minexponent (0._sp ) - digits ( 0._sp ) ) * 0.5_sp ))
84
+ ! sbig = 1/S, where S was defined in https://doi.org/10.1145/355769.355771
84
85
real (sp), parameter :: ssbig = real (radix (0._sp ), sp)** ( - ceiling ( &
85
86
(maxexponent (0._sp ) - digits (0._sp ) + 1 ) * 0.5_sp ))
86
87
@@ -119,10 +120,11 @@ module LA_CONSTANTS
119
120
(minexponent (0._dp ) - 1 ) * 0.5_dp )
120
121
real (dp), parameter :: dtbig = real (radix (0._dp ), dp)** floor ( &
121
122
(maxexponent (0._dp ) - digits (0._dp ) + 1 ) * 0.5_dp )
122
- ! ssml = 1/s, where s was defined in https://doi.org/10.1145/355769.355771
123
+ ! ssml >= 1/s, where s was defined in https://doi.org/10.1145/355769.355771
124
+ ! The correction was added in https://doi.org/10.1145/3061665 to scale denormalized numbers correctly
123
125
real (dp), parameter :: dssml = real (radix (0._dp ), dp)** ( - floor ( &
124
- (minexponent (0._dp ) - 1 ) * 0.5_dp ))
125
- ! ssml = 1/S, where S was defined in https://doi.org/10.1145/355769.355771
126
+ (minexponent (0._dp ) - digits ( 0._dp ) ) * 0.5_dp ))
127
+ ! sbig = 1/S, where S was defined in https://doi.org/10.1145/355769.355771
126
128
real (dp), parameter :: dsbig = real (radix (0._dp ), dp)** ( - ceiling ( &
127
129
(maxexponent (0._dp ) - digits (0._dp ) + 1 ) * 0.5_dp ))
128
130
0 commit comments