Statistiques
| Révision :

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

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

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