| Line 10... |
Line 10... |
| 10 |
!
|
10 |
!
|
| 11 |
!> \author Edward Anderson, Lockheed Martin
|
11 |
!> \author Edward Anderson, Lockheed Martin
|
| 12 |
!
|
12 |
!
|
| 13 |
!> \date May 2016
|
13 |
!> \date May 2016
|
| 14 |
!
|
14 |
!
|
| 15 |
!> \ingroup OTHERauxiliary
|
15 |
!> \ingroup la_constants
|
| 16 |
!
|
16 |
!
|
| 17 |
!> \par Contributors:
|
17 |
!> \par Contributors:
|
| 18 |
! ==================
|
18 |
! ==================
|
| 19 |
!>
|
19 |
!>
|
| 20 |
!> Weslley Pereira, University of Colorado Denver, USA
|
20 |
!> Weslley Pereira, University of Colorado Denver, USA
|
| Line 40... |
Line 40... |
| 40 |
module LA_CONSTANTS
|
40 |
module LA_CONSTANTS
|
| 41 |
! -- LAPACK auxiliary module --
|
41 |
! -- LAPACK auxiliary module --
|
| 42 |
! -- LAPACK is a software package provided by Univ. of Tennessee, --
|
42 |
! -- LAPACK is a software package provided by Univ. of Tennessee, --
|
| 43 |
! -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
|
43 |
! -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
|
| 44 |
|
44 |
|
| 45 |
! Standard constants for
|
45 |
! Standard constants for
|
| 46 |
integer, parameter :: sp = kind(1.e0)
|
46 |
integer, parameter :: sp = kind(1.e0)
|
| 47 |
|
47 |
|
| 48 |
real(sp), parameter :: szero = 0.0_sp
|
48 |
real(sp), parameter :: szero = 0.0_sp
|
| 49 |
real(sp), parameter :: shalf = 0.5_sp
|
49 |
real(sp), parameter :: shalf = 0.5_sp
|
| 50 |
real(sp), parameter :: sone = 1.0_sp
|
50 |
real(sp), parameter :: sone = 1.0_sp
|
| Line 76... |
Line 76... |
| 76 |
real(sp), parameter :: stsml = real(radix(0._sp), sp)**ceiling( &
|
76 |
real(sp), parameter :: stsml = real(radix(0._sp), sp)**ceiling( &
|
| 77 |
(minexponent(0._sp) - 1) * 0.5_sp)
|
77 |
(minexponent(0._sp) - 1) * 0.5_sp)
|
| 78 |
real(sp), parameter :: stbig = real(radix(0._sp), sp)**floor( &
|
78 |
real(sp), parameter :: stbig = real(radix(0._sp), sp)**floor( &
|
| 79 |
(maxexponent(0._sp) - digits(0._sp) + 1) * 0.5_sp)
|
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 |
! The correction was added in https://doi.org/10.1145/3061665 to scale denormalized numbers correctly
|
| 82 |
real(sp), parameter :: sssml = real(radix(0._sp), sp)**( - floor( &
|
82 |
real(sp), parameter :: sssml = real(radix(0._sp), sp)**( - floor( &
|
| 83 |
(minexponent(0._sp) - digits(0._sp)) * 0.5_sp))
|
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 |
! sbig = 1/S, where S was defined in https://doi.org/10.1145/355769.355771
|
| 85 |
real(sp), parameter :: ssbig = real(radix(0._sp), sp)**( - ceiling( &
|
85 |
real(sp), parameter :: ssbig = real(radix(0._sp), sp)**( - ceiling( &
|
| 86 |
(maxexponent(0._sp) + digits(0._sp) - 1) * 0.5_sp))
|
86 |
(maxexponent(0._sp) + digits(0._sp) - 1) * 0.5_sp))
|
| 87 |
|
87 |
|
| 88 |
! Standard constants for
|
88 |
! Standard constants for
|
| 89 |
integer, parameter :: dp = kind(1.d0)
|
89 |
integer, parameter :: dp = kind(1.d0)
|
| 90 |
|
90 |
|
| 91 |
real(dp), parameter :: dzero = 0.0_dp
|
91 |
real(dp), parameter :: dzero = 0.0_dp
|
| 92 |
real(dp), parameter :: dhalf = 0.5_dp
|
92 |
real(dp), parameter :: dhalf = 0.5_dp
|
| 93 |
real(dp), parameter :: done = 1.0_dp
|
93 |
real(dp), parameter :: done = 1.0_dp
|
| Line 119... |
Line 119... |
| 119 |
real(dp), parameter :: dtsml = real(radix(0._dp), dp)**ceiling( &
|
119 |
real(dp), parameter :: dtsml = real(radix(0._dp), dp)**ceiling( &
|
| 120 |
(minexponent(0._dp) - 1) * 0.5_dp)
|
120 |
(minexponent(0._dp) - 1) * 0.5_dp)
|
| 121 |
real(dp), parameter :: dtbig = real(radix(0._dp), dp)**floor( &
|
121 |
real(dp), parameter :: dtbig = real(radix(0._dp), dp)**floor( &
|
| 122 |
(maxexponent(0._dp) - digits(0._dp) + 1) * 0.5_dp)
|
122 |
(maxexponent(0._dp) - digits(0._dp) + 1) * 0.5_dp)
|
| 123 |
! 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
|
124 |
! The correction was added in https://doi.org/10.1145/3061665 to scale denormalized numbers correctly
|
| 125 |
real(dp), parameter :: dssml = real(radix(0._dp), dp)**( - floor( &
|
125 |
real(dp), parameter :: dssml = real(radix(0._dp), dp)**( - floor( &
|
| 126 |
(minexponent(0._dp) - digits(0._dp)) * 0.5_dp))
|
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
|
127 |
! sbig = 1/S, where S was defined in https://doi.org/10.1145/355769.355771
|
| 128 |
real(dp), parameter :: dsbig = real(radix(0._dp), dp)**( - ceiling( &
|
128 |
real(dp), parameter :: dsbig = real(radix(0._dp), dp)**( - ceiling( &
|
| 129 |
(maxexponent(0._dp) + digits(0._dp) - 1) * 0.5_dp))
|
129 |
(maxexponent(0._dp) + digits(0._dp) - 1) * 0.5_dp))
|