LAPACK 3.12.0
LAPACK: Linear Algebra PACKage
Loading...
Searching...
No Matches

◆ dlapy2()

double precision function dlapy2 ( double precision  x,
double precision  y 
)

DLAPY2 returns sqrt(x2+y2).

Download DLAPY2 + dependencies [TGZ] [ZIP] [TXT]

Purpose:
 DLAPY2 returns sqrt(x**2+y**2), taking care not to cause unnecessary
 overflow and unnecessary underflow.
Parameters
[in]X
          X is DOUBLE PRECISION
[in]Y
          Y is DOUBLE PRECISION
          X and Y specify the values x and y.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.

Definition at line 62 of file dlapy2.f.

63*
64* -- LAPACK auxiliary routine --
65* -- LAPACK is a software package provided by Univ. of Tennessee, --
66* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
67*
68* .. Scalar Arguments ..
69 DOUBLE PRECISION X, Y
70* ..
71*
72* =====================================================================
73*
74* .. Parameters ..
75 DOUBLE PRECISION ZERO
76 parameter( zero = 0.0d0 )
77 DOUBLE PRECISION ONE
78 parameter( one = 1.0d0 )
79* ..
80* .. Local Scalars ..
81 DOUBLE PRECISION W, XABS, YABS, Z, HUGEVAL
82 LOGICAL X_IS_NAN, Y_IS_NAN
83* ..
84* .. External Functions ..
85 LOGICAL DISNAN
86 EXTERNAL disnan
87* ..
88* .. External Subroutines ..
89 DOUBLE PRECISION DLAMCH
90* ..
91* .. Intrinsic Functions ..
92 INTRINSIC abs, max, min, sqrt
93* ..
94* .. Executable Statements ..
95*
96 x_is_nan = disnan( x )
97 y_is_nan = disnan( y )
98 IF ( x_is_nan ) dlapy2 = x
99 IF ( y_is_nan ) dlapy2 = y
100 hugeval = dlamch( 'Overflow' )
101*
102 IF ( .NOT.( x_is_nan.OR.y_is_nan ) ) THEN
103 xabs = abs( x )
104 yabs = abs( y )
105 w = max( xabs, yabs )
106 z = min( xabs, yabs )
107 IF( z.EQ.zero .OR. w.GT.hugeval ) THEN
108 dlapy2 = w
109 ELSE
110 dlapy2 = w*sqrt( one+( z / w )**2 )
111 END IF
112 END IF
113 RETURN
114*
115* End of DLAPY2
116*
logical function disnan(din)
DISNAN tests input for NaN.
Definition disnan.f:59
double precision function dlamch(cmach)
DLAMCH
Definition dlamch.f:69
double precision function dlapy2(x, y)
DLAPY2 returns sqrt(x2+y2).
Definition dlapy2.f:63
Here is the call graph for this function:
Here is the caller graph for this function: