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