LAPACK
3.9.0
LAPACK: Linear Algebra PACKage
slapy2.f
Go to the documentation of this file.
1
*> \brief \b SLAPY2 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 SLAPY2 + dependencies
10
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/slapy2.f">
11
*> [TGZ]</a>
12
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/slapy2.f">
13
*> [ZIP]</a>
14
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slapy2.f">
15
*> [TXT]</a>
16
*> \endhtmlonly
17
*
18
* Definition:
19
* ===========
20
*
21
* REAL FUNCTION SLAPY2( X, Y )
22
*
23
* .. Scalar Arguments ..
24
* REAL X, Y
25
* ..
26
*
27
*
28
*> \par Purpose:
29
* =============
30
*>
31
*> \verbatim
32
*>
33
*> SLAPY2 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 REAL
43
*> \endverbatim
44
*>
45
*> \param[in] Y
46
*> \verbatim
47
*> Y is REAL
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 June 2017
60
*
61
*> \ingroup OTHERauxiliary
62
*
63
* =====================================================================
64
REAL
FUNCTION SLAPY2( X, Y )
65
*
66
* -- LAPACK auxiliary routine (version 3.7.1) --
67
* -- LAPACK is a software package provided by Univ. of Tennessee, --
68
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
69
* June 2017
70
*
71
* .. Scalar Arguments ..
72
REAL
x, y
73
* ..
74
*
75
* =====================================================================
76
*
77
* .. Parameters ..
78
REAL
zero
79
parameter( zero = 0.0e0 )
80
REAL
one
81
parameter( one = 1.0e0 )
82
* ..
83
* .. Local Scalars ..
84
REAL
w, xabs, yabs, z
85
LOGICAL
x_is_nan, y_is_nan
86
* ..
87
* .. External Functions ..
88
LOGICAL
sisnan
89
EXTERNAL
sisnan
90
* ..
91
* .. Intrinsic Functions ..
92
INTRINSIC
abs, max, min, sqrt
93
* ..
94
* .. Executable Statements ..
95
*
96
* ..
97
* .. Executable Statements ..
98
*
99
x_is_nan =
sisnan
( x )
100
y_is_nan =
sisnan
( y )
101
IF
( x_is_nan )
slapy2
= x
102
IF
( y_is_nan )
slapy2
= y
103
*
104
IF
( .NOT.( x_is_nan.OR.y_is_nan ) )
THEN
105
xabs = abs( x )
106
yabs = abs( y )
107
w = max( xabs, yabs )
108
z = min( xabs, yabs )
109
IF
( z.EQ.zero )
THEN
110
slapy2
= w
111
ELSE
112
slapy2
= w*sqrt( one+( z / w )**2 )
113
END IF
114
END IF
115
RETURN
116
*
117
* End of SLAPY2
118
*
119
END
sisnan
logical function sisnan(SIN)
SISNAN tests input for NaN.
Definition:
sisnan.f:61
slapy2
real function slapy2(X, Y)
SLAPY2 returns sqrt(x2+y2).
Definition:
slapy2.f:65
SRC
slapy2.f
Generated on Wed May 5 2021 15:10:41 for LAPACK by
1.8.16