Annotation of rpl/lapack/lapack/dlabad.f, revision 1.9
1.8 bertrand 1: *> \brief \b DLABAD
2: *
3: * =========== DOCUMENTATION ===========
4: *
5: * Online html documentation available at
6: * http://www.netlib.org/lapack/explore-html/
7: *
8: *> \htmlonly
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">
15: *> [TXT]</a>
16: *> \endhtmlonly
17: *
18: * Definition:
19: * ===========
20: *
21: * SUBROUTINE DLABAD( SMALL, LARGE )
22: *
23: * .. Scalar Arguments ..
24: * DOUBLE PRECISION LARGE, SMALL
25: * ..
26: *
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: *
65: *> \author Univ. of Tennessee
66: *> \author Univ. of California Berkeley
67: *> \author Univ. of Colorado Denver
68: *> \author NAG Ltd.
69: *
70: *> \date November 2011
71: *
72: *> \ingroup auxOTHERauxiliary
73: *
74: * =====================================================================
1.1 bertrand 75: SUBROUTINE DLABAD( SMALL, LARGE )
76: *
1.8 bertrand 77: * -- LAPACK auxiliary routine (version 3.4.0) --
1.1 bertrand 78: * -- LAPACK is a software package provided by Univ. of Tennessee, --
79: * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
1.8 bertrand 80: * November 2011
1.1 bertrand 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: *
105: END
CVSweb interface <joel.bertrand@systella.fr>