OSDN Git Service

new repo
[bytom/vapor.git] / vendor / gonum.org / v1 / gonum / lapack / internal / testdata / dsterftest / dlapy2.f
1 *> \brief \b DLAPY2 returns sqrt(x2+y2).
2 *
3 *  =========== DOCUMENTATION ===========
4 *
5 * Online html documentation available at 
6 *            http://www.netlib.org/lapack/explore-html/ 
7 *
8 *> \htmlonly
9 *> Download DLAPY2 + dependencies 
10 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlapy2.f"> 
11 *> [TGZ]</a> 
12 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlapy2.f"> 
13 *> [ZIP]</a> 
14 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlapy2.f"> 
15 *> [TXT]</a>
16 *> \endhtmlonly 
17 *
18 *  Definition:
19 *  ===========
20 *
21 *       DOUBLE PRECISION FUNCTION DLAPY2( X, Y )
22
23 *       .. Scalar Arguments ..
24 *       DOUBLE PRECISION   X, Y
25 *       ..
26 *  
27 *
28 *> \par Purpose:
29 *  =============
30 *>
31 *> \verbatim
32 *>
33 *> DLAPY2 returns sqrt(x**2+y**2), taking care not to cause unnecessary
34 *> overflow.
35 *> \endverbatim
36 *
37 *  Arguments:
38 *  ==========
39 *
40 *> \param[in] X
41 *> \verbatim
42 *>          X is DOUBLE PRECISION
43 *> \endverbatim
44 *>
45 *> \param[in] Y
46 *> \verbatim
47 *>          Y is DOUBLE PRECISION
48 *>          X and Y specify the values x and y.
49 *> \endverbatim
50 *
51 *  Authors:
52 *  ========
53 *
54 *> \author Univ. of Tennessee 
55 *> \author Univ. of California Berkeley 
56 *> \author Univ. of Colorado Denver 
57 *> \author NAG Ltd. 
58 *
59 *> \date September 2012
60 *
61 *> \ingroup auxOTHERauxiliary
62 *
63 *  =====================================================================
64       DOUBLE PRECISION FUNCTION DLAPY2( X, Y )
65 *
66 *  -- LAPACK auxiliary routine (version 3.4.2) --
67 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
68 *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
69 *     September 2012
70 *
71 *     .. Scalar Arguments ..
72       DOUBLE PRECISION   X, Y
73 *     ..
74 *
75 *  =====================================================================
76 *
77 *     .. Parameters ..
78       DOUBLE PRECISION   ZERO
79       PARAMETER          ( ZERO = 0.0D0 )
80       DOUBLE PRECISION   ONE
81       PARAMETER          ( ONE = 1.0D0 )
82 *     ..
83 *     .. Local Scalars ..
84       DOUBLE PRECISION   W, XABS, YABS, Z
85 *     ..
86 *     .. Intrinsic Functions ..
87       INTRINSIC          ABS, MAX, MIN, SQRT
88 *     ..
89 *     .. Executable Statements ..
90 *
91       XABS = ABS( X )
92       YABS = ABS( Y )
93       W = MAX( XABS, YABS )
94       Z = MIN( XABS, YABS )
95       IF( Z.EQ.ZERO ) THEN
96          DLAPY2 = W
97       ELSE
98          DLAPY2 = W*SQRT( ONE+( Z / W )**2 )
99       END IF
100       RETURN
101 *
102 *     End of DLAPY2
103 *
104       END