LAPACK  3.10.1 LAPACK: Linear Algebra PACKage

## ◆ slapy2()

 real function slapy2 ( real X, real Y )

SLAPY2 returns sqrt(x2+y2).

Purpose:
``` SLAPY2 returns sqrt(x**2+y**2), taking care not to cause unnecessary
overflow and unnecessary underflow.```
Parameters
 [in] X ` X is REAL` [in] Y ``` Y is REAL X and Y specify the values x and y.```

Definition at line 62 of file slapy2.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  REAL X, Y
70 * ..
71 *
72 * =====================================================================
73 *
74 * .. Parameters ..
75  REAL ZERO
76  parameter( zero = 0.0e0 )
77  REAL ONE
78  parameter( one = 1.0e0 )
79 * ..
80 * .. Local Scalars ..
81  REAL W, XABS, YABS, Z, HUGEVAL
82  LOGICAL X_IS_NAN, Y_IS_NAN
83 * ..
84 * .. External Functions ..
85  LOGICAL SISNAN
86  EXTERNAL sisnan
87 * ..
88 * .. External Subroutines ..
89  REAL SLAMCH
90 * ..
91 * .. Intrinsic Functions ..
92  INTRINSIC abs, max, min, sqrt
93 * ..
94 * .. Executable Statements ..
95 *
96  x_is_nan = sisnan( x )
97  y_is_nan = sisnan( y )
98  IF ( x_is_nan ) slapy2 = x
99  IF ( y_is_nan ) slapy2 = y
100  hugeval = slamch( '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  slapy2 = w
109  ELSE
110  slapy2 = w*sqrt( one+( z / w )**2 )
111  END IF
112  END IF
113  RETURN
114 *
115 * End of SLAPY2
116 *
real function slapy2(X, Y)
SLAPY2 returns sqrt(x2+y2).
Definition: slapy2.f:63
logical function sisnan(SIN)
SISNAN tests input for NaN.
Definition: sisnan.f:59
real function slamch(CMACH)
SLAMCH
Definition: slamch.f:68
Here is the call graph for this function:
Here is the caller graph for this function: