Annotation of rpl/lapack/lapack/dlapy3.f, revision 1.8
1.8 ! bertrand 1: *> \brief \b DLAPY3
! 2: *
! 3: * =========== DOCUMENTATION ===========
! 4: *
! 5: * Online html documentation available at
! 6: * http://www.netlib.org/lapack/explore-html/
! 7: *
! 8: *> \htmlonly
! 9: *> Download DLAPY3 + dependencies
! 10: *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlapy3.f">
! 11: *> [TGZ]</a>
! 12: *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlapy3.f">
! 13: *> [ZIP]</a>
! 14: *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlapy3.f">
! 15: *> [TXT]</a>
! 16: *> \endhtmlonly
! 17: *
! 18: * Definition:
! 19: * ===========
! 20: *
! 21: * DOUBLE PRECISION FUNCTION DLAPY3( X, Y, Z )
! 22: *
! 23: * .. Scalar Arguments ..
! 24: * DOUBLE PRECISION X, Y, Z
! 25: * ..
! 26: *
! 27: *
! 28: *> \par Purpose:
! 29: * =============
! 30: *>
! 31: *> \verbatim
! 32: *>
! 33: *> DLAPY3 returns sqrt(x**2+y**2+z**2), taking care not to cause
! 34: *> unnecessary 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: *> \endverbatim
! 49: *>
! 50: *> \param[in] Z
! 51: *> \verbatim
! 52: *> Z is DOUBLE PRECISION
! 53: *> X, Y and Z specify the values x, y and z.
! 54: *> \endverbatim
! 55: *
! 56: * Authors:
! 57: * ========
! 58: *
! 59: *> \author Univ. of Tennessee
! 60: *> \author Univ. of California Berkeley
! 61: *> \author Univ. of Colorado Denver
! 62: *> \author NAG Ltd.
! 63: *
! 64: *> \date November 2011
! 65: *
! 66: *> \ingroup auxOTHERauxiliary
! 67: *
! 68: * =====================================================================
1.1 bertrand 69: DOUBLE PRECISION FUNCTION DLAPY3( X, Y, Z )
70: *
1.8 ! bertrand 71: * -- LAPACK auxiliary routine (version 3.4.0) --
1.1 bertrand 72: * -- LAPACK is a software package provided by Univ. of Tennessee, --
73: * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
1.8 ! bertrand 74: * November 2011
1.1 bertrand 75: *
76: * .. Scalar Arguments ..
77: DOUBLE PRECISION X, Y, Z
78: * ..
79: *
80: * =====================================================================
81: *
82: * .. Parameters ..
83: DOUBLE PRECISION ZERO
84: PARAMETER ( ZERO = 0.0D0 )
85: * ..
86: * .. Local Scalars ..
87: DOUBLE PRECISION W, XABS, YABS, ZABS
88: * ..
89: * .. Intrinsic Functions ..
90: INTRINSIC ABS, MAX, SQRT
91: * ..
92: * .. Executable Statements ..
93: *
94: XABS = ABS( X )
95: YABS = ABS( Y )
96: ZABS = ABS( Z )
97: W = MAX( XABS, YABS, ZABS )
98: IF( W.EQ.ZERO ) THEN
99: * W can be zero for max(0,nan,0)
100: * adding all three entries together will make sure
101: * NaN will not disappear.
102: DLAPY3 = XABS + YABS + ZABS
103: ELSE
104: DLAPY3 = W*SQRT( ( XABS / W )**2+( YABS / W )**2+
105: $ ( ZABS / W )**2 )
106: END IF
107: RETURN
108: *
109: * End of DLAPY3
110: *
111: END
CVSweb interface <joel.bertrand@systella.fr>