LAPACK  3.8.0
LAPACK: Linear Algebra PACKage

◆ dlabad()

subroutine dlabad ( double precision  SMALL,
double precision  LARGE 
)

DLABAD

Download DLABAD + dependencies [TGZ] [ZIP] [TXT]

Purpose:
 DLABAD takes as input the values computed by DLAMCH for underflow and
 overflow, and returns the square root of each of these values if the
 log of LARGE is sufficiently large.  This subroutine is intended to
 identify machines with a large exponent range, such as the Crays, and
 redefine the underflow and overflow limits to be the square roots of
 the values computed by DLAMCH.  This subroutine is needed because
 DLAMCH does not compensate for poor arithmetic in the upper half of
 the exponent range, as is found on a Cray.
Parameters
[in,out]SMALL
          SMALL is DOUBLE PRECISION
          On entry, the underflow threshold as computed by DLAMCH.
          On exit, if LOG10(LARGE) is sufficiently large, the square
          root of SMALL, otherwise unchanged.
[in,out]LARGE
          LARGE is DOUBLE PRECISION
          On entry, the overflow threshold as computed by DLAMCH.
          On exit, if LOG10(LARGE) is sufficiently large, the square
          root of LARGE, otherwise unchanged.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date
December 2016

Definition at line 76 of file dlabad.f.

76 *
77 * -- LAPACK auxiliary routine (version 3.7.0) --
78 * -- LAPACK is a software package provided by Univ. of Tennessee, --
79 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
80 * December 2016
81 *
82 * .. Scalar Arguments ..
83  DOUBLE PRECISION large, small
84 * ..
85 *
86 * =====================================================================
87 *
88 * .. Intrinsic Functions ..
89  INTRINSIC log10, sqrt
90 * ..
91 * .. Executable Statements ..
92 *
93 * If it looks like we're on a Cray, take the square root of
94 * SMALL and LARGE to avoid overflow and underflow problems.
95 *
96  IF( log10( large ).GT.2000.d0 ) THEN
97  small = sqrt( small )
98  large = sqrt( large )
99  END IF
100 *
101  RETURN
102 *
103 * End of DLABAD
104 *