OpenRadioss
2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
slapy3.f
Go to the documentation of this file.
1
*> \brief \b SLAPY3 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 SLAPY3 + dependencies
10
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/slapy3.f">
11
*> [TGZ]</a>
12
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/slapy3.f">
13
*> [ZIP]</a>
14
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slapy3.f">
15
*> [TXT]</a>
16
*> \endhtmlonly
17
*
18
* Definition:
19
* ===========
20
*
21
* REAL FUNCTION SLAPY3( X, Y, Z )
22
*
23
* .. Scalar Arguments ..
24
* REAL X, Y, Z
25
* ..
26
*
27
*
28
*> \par Purpose:
29
* =============
30
*>
31
*> \verbatim
32
*>
33
*> SLAPY3 returns sqrt(x**2+y**2+z**2), taking care not to cause
34
*> unnecessary overflow and unnecessary underflow.
35
*> \endverbatim
36
*
37
* Arguments:
38
* ==========
39
*
40
*> \param[in] X
41
*> \verbatim
42
*> X is REAL
43
*> \endverbatim
44
*>
45
*> \param[in] Y
46
*> \verbatim
47
*> Y is REAL
48
*> \endverbatim
49
*>
50
*> \param[in] Z
51
*> \verbatim
52
*> Z is REAL
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
*> \ingroup OTHERauxiliary
65
*
66
* =====================================================================
67
REAL
function
slapy3
( x,
Y
, z )
68
*
69
* -- LAPACK auxiliary routine --
70
* -- LAPACK is a software package provided by Univ. of Tennessee, --
71
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
72
*
73
* .. Scalar Arguments ..
74
REAL
x, y, z
75
* ..
76
*
77
* =====================================================================
78
*
79
* .. Parameters ..
80
REAL
zero
81
parameter( zero = 0.0e0 )
82
* ..
83
* .. Local Scalars ..
84
REAL
w, xabs, yabs, zabs, hugeval
85
* ..
86
* .. External Subroutines ..
87
REAL
slamch
88
* ..
89
* .. Intrinsic Functions ..
90
INTRINSIC
abs,
max
, sqrt
91
* ..
92
* .. Executable Statements ..
93
*
94
hugeval =
slamch
(
'Overflow'
)
95
xabs = abs( x )
96
yabs = abs( y
)
97
zabs = abs( z
)
98
w =
max
( xabs, yabs, zabs )
99
IF
( w.EQ.zero
.OR. w.GT.hugeval )
THEN
100
* W can be zero for max(0,nan,0)
101
* adding all three entries together will make sure
102
* NaN will not disappear.
103
slapy3
= xabs + yabs + zabs
104
ELSE
105
slapy3
= w*sqrt( ( xabs / w )**2+( yabs / w )**2+
106
$ ( zabs / w )**2 )
107
END IF
108
RETURN
109
*
110
* End of SLAPY3
111
*
112
END
slapy3
real function slapy3(x, y, z)
SLAPY3 returns sqrt(x2+y2+z2).
Definition
slapy3.f:68
slamch
real function slamch(cmach)
SLAMCH
Definition
slamch.f:68
max
#define max(a, b)
Definition
macros.h:21
engine
extlib
lapack-3.10.1
SRC
slapy3.f
Generated by
1.15.0