1 *> \brief \b DLAPY2 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 November 2011 60 * 61 *> \ingroup auxOTHERauxiliary 62 * 63 * ===================================================================== 64 DOUBLE PRECISION FUNCTION DLAPY2( X, Y ) 65 * 66 * -- LAPACK auxiliary routine (version 3.4.0) -- 67 * -- LAPACK is a software package provided by Univ. of Tennessee, -- 68 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- 69 * November 2011 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 105