source: pacpussensors/trunk/Vislab/lib3dv/eigen/lapack/dlapy3.f@ 139

Last change on this file since 139 was 136, checked in by ldecherf, 8 years ago

Doc

File size: 2.7 KB
Line 
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* =====================================================================
69 DOUBLE PRECISION FUNCTION DLAPY3( X, Y, Z )
70*
71* -- LAPACK auxiliary routine (version 3.4.0) --
72* -- LAPACK is a software package provided by Univ. of Tennessee, --
73* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
74* November 2011
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
Note: See TracBrowser for help on using the repository browser.