OSDN Git Service

new repo
[bytom/vapor.git] / vendor / gonum.org / v1 / gonum / lapack / internal / testdata / netlib / dlabad.f
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 *  =====================================================================
75       SUBROUTINE DLABAD( SMALL, LARGE )
76 *
77 *  -- LAPACK auxiliary routine (version 3.4.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 *     November 2011
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