OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
la_constants Module Reference

LA_CONSTANTS is a module for the scaling constants for the compiled Fortran single and double precisions More...

Variables

integer, parameter sp = kind(1.e0)
real(sp), parameter szero = 0.0_sp
real(sp), parameter shalf = 0.5_sp
real(sp), parameter sone = 1.0_sp
real(sp), parameter stwo = 2.0_sp
real(sp), parameter sthree = 3.0_sp
real(sp), parameter sfour = 4.0_sp
real(sp), parameter seight = 8.0_sp
real(sp), parameter sten = 10.0_sp
complex(sp), parameter czero = ( 0.0_sp, 0.0_sp )
complex(sp), parameter chalf = ( 0.5_sp, 0.0_sp )
complex(sp), parameter cone = ( 1.0_sp, 0.0_sp )
character *1, parameter sprefix = 'S'
character *1, parameter cprefix = 'C'
real(sp), parameter sulp = epsilon(0._sp)
real(sp), parameter seps = sulp * 0.5_sp
real(sp), parameter ssafmin = real(radix(0._sp), sp)**max( minexponent(0._sp)-1, 1-maxexponent(0._sp) )
real(sp), parameter ssafmax = sone / ssafmin
real(sp), parameter ssmlnum = ssafmin / sulp
real(sp), parameter sbignum = ssafmax * sulp
real(sp), parameter srtmin = sqrt(ssmlnum)
real(sp), parameter srtmax = sqrt(sbignum)
real(sp), parameter stsml = real(radix(0._sp), sp)**ceiling( (minexponent(0._sp) - 1) * 0.5_sp)
real(sp), parameter stbig = real(radix(0._sp), sp)**floor( (maxexponent(0._sp) - digits(0._sp) + 1) * 0.5_sp)
real(sp), parameter sssml = real(radix(0._sp), sp)**( - floor( (minexponent(0._sp) - digits(0._sp)) * 0.5_sp))
real(sp), parameter ssbig = real(radix(0._sp), sp)**( - ceiling( (maxexponent(0._sp) + digits(0._sp) - 1) * 0.5_sp))
integer, parameter dp = kind(1.d0)
real(dp), parameter dzero = 0.0_dp
real(dp), parameter dhalf = 0.5_dp
real(dp), parameter done = 1.0_dp
real(dp), parameter dtwo = 2.0_dp
real(dp), parameter dthree = 3.0_dp
real(dp), parameter dfour = 4.0_dp
real(dp), parameter deight = 8.0_dp
real(dp), parameter dten = 10.0_dp
complex(dp), parameter zzero = ( 0.0_dp, 0.0_dp )
complex(dp), parameter zhalf = ( 0.5_dp, 0.0_dp )
complex(dp), parameter zone = ( 1.0_dp, 0.0_dp )
character *1, parameter dprefix = 'D'
character *1, parameter zprefix = 'Z'
real(dp), parameter dulp = epsilon(0._dp)
real(dp), parameter deps = dulp * 0.5_dp
real(dp), parameter dsafmin = real(radix(0._dp), dp)**max( minexponent(0._dp)-1, 1-maxexponent(0._dp) )
real(dp), parameter dsafmax = done / dsafmin
real(dp), parameter dsmlnum = dsafmin / dulp
real(dp), parameter dbignum = dsafmax * dulp
real(dp), parameter drtmin = sqrt(dsmlnum)
real(dp), parameter drtmax = sqrt(dbignum)
real(dp), parameter dtsml = real(radix(0._dp), dp)**ceiling( (minexponent(0._dp) - 1) * 0.5_dp)
real(dp), parameter dtbig = real(radix(0._dp), dp)**floor( (maxexponent(0._dp) - digits(0._dp) + 1) * 0.5_dp)
real(dp), parameter dssml = real(radix(0._dp), dp)**( - floor( (minexponent(0._dp) - digits(0._dp)) * 0.5_dp))
real(dp), parameter dsbig = real(radix(0._dp), dp)**( - ceiling( (maxexponent(0._dp) + digits(0._dp) - 1) * 0.5_dp))

Detailed Description

LA_CONSTANTS is a module for the scaling constants for the compiled Fortran single and double precisions

Author
Edward Anderson, Lockheed Martin
Date
May 2016
Contributors:
Weslley Pereira, University of Colorado Denver, USA Nick Papior, Technical University of Denmark, DK
Further Details:
!>
!>  Anderson E. (2017)
!>  Algorithm 978: Safe Scaling in the Level 1 BLAS
!>  ACM Trans Math Softw 44:1--28
!>  https://doi.org/10.1145/3061665
!>
!>  Blue, James L. (1978)
!>  A Portable Fortran Program to Find the Euclidean Norm of a Vector
!>  ACM Trans Math Softw 4:15--23
!>  https://doi.org/10.1145/355769.355771
!>
!> 

Variable Documentation

◆ chalf

complex(sp), parameter la_constants::chalf = ( 0.5_sp, 0.0_sp )

Definition at line 57 of file la_constants.f90.

57 complex(sp), parameter :: chalf = ( 0.5_sp, 0.0_sp )

◆ cone

complex(sp), parameter la_constants::cone = ( 1.0_sp, 0.0_sp )

Definition at line 58 of file la_constants.f90.

58 complex(sp), parameter :: cone = ( 1.0_sp, 0.0_sp )

◆ cprefix

character*1, parameter la_constants::cprefix = 'C'

Definition at line 60 of file la_constants.f90.

60 character*1, parameter :: cprefix = 'C'

◆ czero

complex(sp), parameter la_constants::czero = ( 0.0_sp, 0.0_sp )

Definition at line 56 of file la_constants.f90.

56 complex(sp), parameter :: czero = ( 0.0_sp, 0.0_sp )

◆ dbignum

real(dp), parameter la_constants::dbignum = dsafmax * dulp

Definition at line 114 of file la_constants.f90.

114 real(dp), parameter :: dbignum = dsafmax * dulp

◆ deight

real(dp), parameter la_constants::deight = 8.0_dp

Definition at line 97 of file la_constants.f90.

97 real(dp), parameter :: deight = 8.0_dp

◆ deps

real(dp), parameter la_constants::deps = dulp * 0.5_dp

Definition at line 107 of file la_constants.f90.

107 real(dp), parameter :: deps = dulp * 0.5_dp

◆ dfour

real(dp), parameter la_constants::dfour = 4.0_dp

Definition at line 96 of file la_constants.f90.

96 real(dp), parameter :: dfour = 4.0_dp

◆ dhalf

real(dp), parameter la_constants::dhalf = 0.5_dp

Definition at line 92 of file la_constants.f90.

92 real(dp), parameter :: dhalf = 0.5_dp

◆ done

real(dp), parameter la_constants::done = 1.0_dp

Definition at line 93 of file la_constants.f90.

93 real(dp), parameter :: done = 1.0_dp

◆ dp

integer, parameter la_constants::dp = kind(1.d0)

Definition at line 89 of file la_constants.f90.

89 integer, parameter :: dp = kind(1.d0)

◆ dprefix

character*1, parameter la_constants::dprefix = 'D'

Definition at line 102 of file la_constants.f90.

102 character*1, parameter :: dprefix = 'D'

◆ drtmax

real(dp), parameter la_constants::drtmax = sqrt(dbignum)

Definition at line 116 of file la_constants.f90.

116 real(dp), parameter :: drtmax = sqrt(dbignum)

◆ drtmin

real(dp), parameter la_constants::drtmin = sqrt(dsmlnum)

Definition at line 115 of file la_constants.f90.

115 real(dp), parameter :: drtmin = sqrt(dsmlnum)

◆ dsafmax

real(dp), parameter la_constants::dsafmax = done / dsafmin

Definition at line 112 of file la_constants.f90.

112 real(dp), parameter :: dsafmax = done / dsafmin

◆ dsafmin

real(dp), parameter la_constants::dsafmin = real(radix(0._dp), dp)**max( minexponent(0._dp)-1, 1-maxexponent(0._dp) )

Definition at line 108 of file la_constants.f90.

108 real(dp), parameter :: dsafmin = real(radix(0._dp),dp)**max( &
109 minexponent(0._dp)-1, &
110 1-maxexponent(0._dp) &
111 )
#define max(a, b)
Definition macros.h:21

◆ dsbig

real(dp), parameter la_constants::dsbig = real(radix(0._dp), dp)**( - ceiling( (maxexponent(0._dp) + digits(0._dp) - 1) * 0.5_dp))

Definition at line 128 of file la_constants.f90.

128 real(dp), parameter :: dsbig = real(radix(0._dp), dp)**( - ceiling( &
129 (maxexponent(0._dp) + digits(0._dp) - 1) * 0.5_dp))

◆ dsmlnum

real(dp), parameter la_constants::dsmlnum = dsafmin / dulp

Definition at line 113 of file la_constants.f90.

113 real(dp), parameter :: dsmlnum = dsafmin / dulp

◆ dssml

real(dp), parameter la_constants::dssml = real(radix(0._dp), dp)**( - floor( (minexponent(0._dp) - digits(0._dp)) * 0.5_dp))

Definition at line 125 of file la_constants.f90.

125 real(dp), parameter :: dssml = real(radix(0._dp), dp)**( - floor( &
126 (minexponent(0._dp) - digits(0._dp)) * 0.5_dp))

◆ dtbig

real(dp), parameter la_constants::dtbig = real(radix(0._dp), dp)**floor( (maxexponent(0._dp) - digits(0._dp) + 1) * 0.5_dp)

Definition at line 121 of file la_constants.f90.

121 real(dp), parameter :: dtbig = real(radix(0._dp), dp)**floor( &
122 (maxexponent(0._dp) - digits(0._dp) + 1) * 0.5_dp)

◆ dten

real(dp), parameter la_constants::dten = 10.0_dp

Definition at line 98 of file la_constants.f90.

98 real(dp), parameter :: dten = 10.0_dp

◆ dthree

real(dp), parameter la_constants::dthree = 3.0_dp

Definition at line 95 of file la_constants.f90.

95 real(dp), parameter :: dthree = 3.0_dp

◆ dtsml

real(dp), parameter la_constants::dtsml = real(radix(0._dp), dp)**ceiling( (minexponent(0._dp) - 1) * 0.5_dp)

Definition at line 119 of file la_constants.f90.

119 real(dp), parameter :: dtsml = real(radix(0._dp), dp)**ceiling( &
120 (minexponent(0._dp) - 1) * 0.5_dp)

◆ dtwo

real(dp), parameter la_constants::dtwo = 2.0_dp

Definition at line 94 of file la_constants.f90.

94 real(dp), parameter :: dtwo = 2.0_dp

◆ dulp

real(dp), parameter la_constants::dulp = epsilon(0._dp)

Definition at line 106 of file la_constants.f90.

106 real(dp), parameter :: dulp = epsilon(0._dp)

◆ dzero

real(dp), parameter la_constants::dzero = 0.0_dp

Definition at line 91 of file la_constants.f90.

91 real(dp), parameter :: dzero = 0.0_dp

◆ sbignum

real(sp), parameter la_constants::sbignum = ssafmax * sulp

Definition at line 71 of file la_constants.f90.

71 real(sp), parameter :: sbignum = ssafmax * sulp

◆ seight

real(sp), parameter la_constants::seight = 8.0_sp

Definition at line 54 of file la_constants.f90.

54 real(sp), parameter :: seight = 8.0_sp

◆ seps

real(sp), parameter la_constants::seps = sulp * 0.5_sp

Definition at line 64 of file la_constants.f90.

64 real(sp), parameter :: seps = sulp * 0.5_sp

◆ sfour

real(sp), parameter la_constants::sfour = 4.0_sp

Definition at line 53 of file la_constants.f90.

53 real(sp), parameter :: sfour = 4.0_sp

◆ shalf

real(sp), parameter la_constants::shalf = 0.5_sp

Definition at line 49 of file la_constants.f90.

49 real(sp), parameter :: shalf = 0.5_sp

◆ sone

real(sp), parameter la_constants::sone = 1.0_sp

Definition at line 50 of file la_constants.f90.

50 real(sp), parameter :: sone = 1.0_sp

◆ sp

integer, parameter la_constants::sp = kind(1.e0)

Definition at line 46 of file la_constants.f90.

46 integer, parameter :: sp = kind(1.e0)

◆ sprefix

character*1, parameter la_constants::sprefix = 'S'

Definition at line 59 of file la_constants.f90.

59 character*1, parameter :: sprefix = 'S'

◆ srtmax

real(sp), parameter la_constants::srtmax = sqrt(sbignum)

Definition at line 73 of file la_constants.f90.

73 real(sp), parameter :: srtmax = sqrt(sbignum)

◆ srtmin

real(sp), parameter la_constants::srtmin = sqrt(ssmlnum)

Definition at line 72 of file la_constants.f90.

72 real(sp), parameter :: srtmin = sqrt(ssmlnum)

◆ ssafmax

real(sp), parameter la_constants::ssafmax = sone / ssafmin

Definition at line 69 of file la_constants.f90.

69 real(sp), parameter :: ssafmax = sone / ssafmin

◆ ssafmin

real(sp), parameter la_constants::ssafmin = real(radix(0._sp), sp)**max( minexponent(0._sp)-1, 1-maxexponent(0._sp) )

Definition at line 65 of file la_constants.f90.

65 real(sp), parameter :: ssafmin = real(radix(0._sp),sp)**max( &
66 minexponent(0._sp)-1, &
67 1-maxexponent(0._sp) &
68 )

◆ ssbig

real(sp), parameter la_constants::ssbig = real(radix(0._sp), sp)**( - ceiling( (maxexponent(0._sp) + digits(0._sp) - 1) * 0.5_sp))

Definition at line 85 of file la_constants.f90.

85 real(sp), parameter :: ssbig = real(radix(0._sp), sp)**( - ceiling( &
86 (maxexponent(0._sp) + digits(0._sp) - 1) * 0.5_sp))

◆ ssmlnum

real(sp), parameter la_constants::ssmlnum = ssafmin / sulp

Definition at line 70 of file la_constants.f90.

70 real(sp), parameter :: ssmlnum = ssafmin / sulp

◆ sssml

real(sp), parameter la_constants::sssml = real(radix(0._sp), sp)**( - floor( (minexponent(0._sp) - digits(0._sp)) * 0.5_sp))

Definition at line 82 of file la_constants.f90.

82 real(sp), parameter :: sssml = real(radix(0._sp), sp)**( - floor( &
83 (minexponent(0._sp) - digits(0._sp)) * 0.5_sp))

◆ stbig

real(sp), parameter la_constants::stbig = real(radix(0._sp), sp)**floor( (maxexponent(0._sp) - digits(0._sp) + 1) * 0.5_sp)

Definition at line 78 of file la_constants.f90.

78 real(sp), parameter :: stbig = real(radix(0._sp), sp)**floor( &
79 (maxexponent(0._sp) - digits(0._sp) + 1) * 0.5_sp)

◆ sten

real(sp), parameter la_constants::sten = 10.0_sp

Definition at line 55 of file la_constants.f90.

55 real(sp), parameter :: sten = 10.0_sp

◆ sthree

real(sp), parameter la_constants::sthree = 3.0_sp

Definition at line 52 of file la_constants.f90.

52 real(sp), parameter :: sthree = 3.0_sp

◆ stsml

real(sp), parameter la_constants::stsml = real(radix(0._sp), sp)**ceiling( (minexponent(0._sp) - 1) * 0.5_sp)

Definition at line 76 of file la_constants.f90.

76 real(sp), parameter :: stsml = real(radix(0._sp), sp)**ceiling( &
77 (minexponent(0._sp) - 1) * 0.5_sp)

◆ stwo

real(sp), parameter la_constants::stwo = 2.0_sp

Definition at line 51 of file la_constants.f90.

51 real(sp), parameter :: stwo = 2.0_sp

◆ sulp

real(sp), parameter la_constants::sulp = epsilon(0._sp)

Definition at line 63 of file la_constants.f90.

63 real(sp), parameter :: sulp = epsilon(0._sp)

◆ szero

real(sp), parameter la_constants::szero = 0.0_sp

Definition at line 48 of file la_constants.f90.

48 real(sp), parameter :: szero = 0.0_sp

◆ zhalf

complex(dp), parameter la_constants::zhalf = ( 0.5_dp, 0.0_dp )

Definition at line 100 of file la_constants.f90.

100 complex(dp), parameter :: zhalf = ( 0.5_dp, 0.0_dp )

◆ zone

complex(dp), parameter la_constants::zone = ( 1.0_dp, 0.0_dp )

Definition at line 101 of file la_constants.f90.

101 complex(dp), parameter :: zone = ( 1.0_dp, 0.0_dp )

◆ zprefix

character*1, parameter la_constants::zprefix = 'Z'

Definition at line 103 of file la_constants.f90.

103 character*1, parameter :: zprefix = 'Z'

◆ zzero

complex(dp), parameter la_constants::zzero = ( 0.0_dp, 0.0_dp )

Definition at line 99 of file la_constants.f90.

99 complex(dp), parameter :: zzero = ( 0.0_dp, 0.0_dp )