LAPACK 3.3.1 Linear Algebra PACKage

# dlapy2.f

Go to the documentation of this file.
```00001       DOUBLE PRECISION FUNCTION DLAPY2( X, Y )
00002 *
00003 *  -- LAPACK auxiliary routine (version 3.2) --
00004 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
00005 *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
00006 *     November 2006
00007 *
00008 *     .. Scalar Arguments ..
00009       DOUBLE PRECISION   X, Y
00010 *     ..
00011 *
00012 *  Purpose
00013 *  =======
00014 *
00015 *  DLAPY2 returns sqrt(x**2+y**2), taking care not to cause unnecessary
00016 *  overflow.
00017 *
00018 *  Arguments
00019 *  =========
00020 *
00021 *  X       (input) DOUBLE PRECISION
00022 *  Y       (input) DOUBLE PRECISION
00023 *          X and Y specify the values x and y.
00024 *
00025 *  =====================================================================
00026 *
00027 *     .. Parameters ..
00028       DOUBLE PRECISION   ZERO
00029       PARAMETER          ( ZERO = 0.0D0 )
00030       DOUBLE PRECISION   ONE
00031       PARAMETER          ( ONE = 1.0D0 )
00032 *     ..
00033 *     .. Local Scalars ..
00034       DOUBLE PRECISION   W, XABS, YABS, Z
00035 *     ..
00036 *     .. Intrinsic Functions ..
00037       INTRINSIC          ABS, MAX, MIN, SQRT
00038 *     ..
00039 *     .. Executable Statements ..
00040 *
00041       XABS = ABS( X )
00042       YABS = ABS( Y )
00043       W = MAX( XABS, YABS )
00044       Z = MIN( XABS, YABS )
00045       IF( Z.EQ.ZERO ) THEN
00046          DLAPY2 = W
00047       ELSE
00048          DLAPY2 = W*SQRT( ONE+( Z / W )**2 )
00049       END IF
00050       RETURN
00051 *
00052 *     End of DLAPY2
00053 *
00054       END
```