1: SUBROUTINE DLABAD( SMALL, LARGE )
2: *
3: * -- LAPACK auxiliary routine (version 3.2) --
4: * -- LAPACK is a software package provided by Univ. of Tennessee, --
5: * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
6: * November 2006
7: *
8: * .. Scalar Arguments ..
9: DOUBLE PRECISION LARGE, SMALL
10: * ..
11: *
12: * Purpose
13: * =======
14: *
15: * DLABAD takes as input the values computed by DLAMCH for underflow and
16: * overflow, and returns the square root of each of these values if the
17: * log of LARGE is sufficiently large. This subroutine is intended to
18: * identify machines with a large exponent range, such as the Crays, and
19: * redefine the underflow and overflow limits to be the square roots of
20: * the values computed by DLAMCH. This subroutine is needed because
21: * DLAMCH does not compensate for poor arithmetic in the upper half of
22: * the exponent range, as is found on a Cray.
23: *
24: * Arguments
25: * =========
26: *
27: * SMALL (input/output) DOUBLE PRECISION
28: * On entry, the underflow threshold as computed by DLAMCH.
29: * On exit, if LOG10(LARGE) is sufficiently large, the square
30: * root of SMALL, otherwise unchanged.
31: *
32: * LARGE (input/output) DOUBLE PRECISION
33: * On entry, the overflow threshold as computed by DLAMCH.
34: * On exit, if LOG10(LARGE) is sufficiently large, the square
35: * root of LARGE, otherwise unchanged.
36: *
37: * =====================================================================
38: *
39: * .. Intrinsic Functions ..
40: INTRINSIC LOG10, SQRT
41: * ..
42: * .. Executable Statements ..
43: *
44: * If it looks like we're on a Cray, take the square root of
45: * SMALL and LARGE to avoid overflow and underflow problems.
46: *
47: IF( LOG10( LARGE ).GT.2000.D0 ) THEN
48: SMALL = SQRT( SMALL )
49: LARGE = SQRT( LARGE )
50: END IF
51: *
52: RETURN
53: *
54: * End of DLABAD
55: *
56: END
CVSweb interface <joel.bertrand@systella.fr>