Annotation of rpl/lapack/lapack/dlabad.f, revision 1.17
1.8 bertrand 1: *> \brief \b DLABAD
2: *
3: * =========== DOCUMENTATION ===========
4: *
1.14 bertrand 5: * Online html documentation available at
6: * http://www.netlib.org/lapack/explore-html/
1.8 bertrand 7: *
8: *> \htmlonly
1.14 bertrand 9: *> Download DLABAD + dependencies
10: *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlabad.f">
11: *> [TGZ]</a>
12: *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlabad.f">
13: *> [ZIP]</a>
14: *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlabad.f">
1.8 bertrand 15: *> [TXT]</a>
1.14 bertrand 16: *> \endhtmlonly
1.8 bertrand 17: *
18: * Definition:
19: * ===========
20: *
21: * SUBROUTINE DLABAD( SMALL, LARGE )
1.14 bertrand 22: *
1.8 bertrand 23: * .. Scalar Arguments ..
24: * DOUBLE PRECISION LARGE, SMALL
25: * ..
1.14 bertrand 26: *
1.8 bertrand 27: *
28: *> \par Purpose:
29: * =============
30: *>
31: *> \verbatim
32: *>
33: *> DLABAD takes as input the values computed by DLAMCH for underflow and
34: *> overflow, and returns the square root of each of these values if the
35: *> log of LARGE is sufficiently large. This subroutine is intended to
36: *> identify machines with a large exponent range, such as the Crays, and
37: *> redefine the underflow and overflow limits to be the square roots of
38: *> the values computed by DLAMCH. This subroutine is needed because
39: *> DLAMCH does not compensate for poor arithmetic in the upper half of
40: *> the exponent range, as is found on a Cray.
41: *> \endverbatim
42: *
43: * Arguments:
44: * ==========
45: *
46: *> \param[in,out] SMALL
47: *> \verbatim
48: *> SMALL is DOUBLE PRECISION
49: *> On entry, the underflow threshold as computed by DLAMCH.
50: *> On exit, if LOG10(LARGE) is sufficiently large, the square
51: *> root of SMALL, otherwise unchanged.
52: *> \endverbatim
53: *>
54: *> \param[in,out] LARGE
55: *> \verbatim
56: *> LARGE is DOUBLE PRECISION
57: *> On entry, the overflow threshold as computed by DLAMCH.
58: *> On exit, if LOG10(LARGE) is sufficiently large, the square
59: *> root of LARGE, otherwise unchanged.
60: *> \endverbatim
61: *
62: * Authors:
63: * ========
64: *
1.14 bertrand 65: *> \author Univ. of Tennessee
66: *> \author Univ. of California Berkeley
67: *> \author Univ. of Colorado Denver
68: *> \author NAG Ltd.
1.8 bertrand 69: *
1.14 bertrand 70: *> \ingroup OTHERauxiliary
1.8 bertrand 71: *
72: * =====================================================================
1.1 bertrand 73: SUBROUTINE DLABAD( SMALL, LARGE )
74: *
1.17 ! bertrand 75: * -- LAPACK auxiliary routine --
1.1 bertrand 76: * -- LAPACK is a software package provided by Univ. of Tennessee, --
77: * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
78: *
79: * .. Scalar Arguments ..
80: DOUBLE PRECISION LARGE, SMALL
81: * ..
82: *
83: * =====================================================================
84: *
85: * .. Intrinsic Functions ..
86: INTRINSIC LOG10, SQRT
87: * ..
88: * .. Executable Statements ..
89: *
90: * If it looks like we're on a Cray, take the square root of
91: * SMALL and LARGE to avoid overflow and underflow problems.
92: *
93: IF( LOG10( LARGE ).GT.2000.D0 ) THEN
94: SMALL = SQRT( SMALL )
95: LARGE = SQRT( LARGE )
96: END IF
97: *
98: RETURN
99: *
100: * End of DLABAD
101: *
102: END
CVSweb interface <joel.bertrand@systella.fr>