Loading...
Searching...
No Matches
la_constants Module Reference
LAPACK » Auxiliary routines » Parameters » la_constants: Fortran 95 module of constants

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
      !>
      !>