File:
[local] /
rpl /
lapack /
lapack /
dlapy3.f
Revision
1.13:
download - view:
text,
annotated -
select for diffs -
revision graph
Mon Jan 27 09:28:21 2014 UTC (10 years, 4 months ago) by
bertrand
Branches:
MAIN
CVS tags:
rpl-4_1_24,
rpl-4_1_23,
rpl-4_1_22,
rpl-4_1_21,
rpl-4_1_20,
rpl-4_1_19,
rpl-4_1_18,
rpl-4_1_17,
HEAD
Cohérence.
1: *> \brief \b DLAPY3 returns sqrt(x2+y2+z2).
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 September 2012
65: *
66: *> \ingroup auxOTHERauxiliary
67: *
68: * =====================================================================
69: DOUBLE PRECISION FUNCTION DLAPY3( X, Y, Z )
70: *
71: * -- LAPACK auxiliary routine (version 3.4.2) --
72: * -- LAPACK is a software package provided by Univ. of Tennessee, --
73: * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
74: * September 2012
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>