Statistiques
| Révision :

root / src / lapack / double / dlapy2.f @ 8

Historique | Voir | Annoter | Télécharger (1,28 ko)

1
      DOUBLE PRECISION FUNCTION DLAPY2( X, Y )
2
*
3
*  -- LAPACK auxiliary routine (version 3.2) --
4
*  -- LAPACK is a software package provided by Univ. of Tennessee,    --
5
*  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
6
*     November 2006
7
*
8
*     .. Scalar Arguments ..
9
      DOUBLE PRECISION   X, Y
10
*     ..
11
*
12
*  Purpose
13
*  =======
14
*
15
*  DLAPY2 returns sqrt(x**2+y**2), taking care not to cause unnecessary
16
*  overflow.
17
*
18
*  Arguments
19
*  =========
20
*
21
*  X       (input) DOUBLE PRECISION
22
*  Y       (input) DOUBLE PRECISION
23
*          X and Y specify the values x and y.
24
*
25
*  =====================================================================
26
*
27
*     .. Parameters ..
28
      DOUBLE PRECISION   ZERO
29
      PARAMETER          ( ZERO = 0.0D0 )
30
      DOUBLE PRECISION   ONE
31
      PARAMETER          ( ONE = 1.0D0 )
32
*     ..
33
*     .. Local Scalars ..
34
      DOUBLE PRECISION   W, XABS, YABS, Z
35
*     ..
36
*     .. Intrinsic Functions ..
37
      INTRINSIC          ABS, MAX, MIN, SQRT
38
*     ..
39
*     .. Executable Statements ..
40
*
41
      XABS = ABS( X )
42
      YABS = ABS( Y )
43
      W = MAX( XABS, YABS )
44
      Z = MIN( XABS, YABS )
45
      IF( Z.EQ.ZERO ) THEN
46
         DLAPY2 = W
47
      ELSE
48
         DLAPY2 = W*SQRT( ONE+( Z / W )**2 )
49
      END IF
50
      RETURN
51
*
52
*     End of DLAPY2
53
*
54
      END