root / src / blas / crotg.f @ 4
Historique | Voir | Annoter | Télécharger (683 octet)
1 | 1 | equemene | SUBROUTINE CROTG(CA,CB,C,S) |
---|---|---|---|
2 | 1 | equemene | * .. Scalar Arguments .. |
3 | 1 | equemene | COMPLEX CA,CB,S |
4 | 1 | equemene | REAL C |
5 | 1 | equemene | * .. |
6 | 1 | equemene | * |
7 | 1 | equemene | * Purpose |
8 | 1 | equemene | * ======= |
9 | 1 | equemene | * |
10 | 1 | equemene | * CROTG determines a complex Givens rotation. |
11 | 1 | equemene | * |
12 | 1 | equemene | * .. Local Scalars .. |
13 | 1 | equemene | COMPLEX ALPHA |
14 | 1 | equemene | REAL NORM,SCALE |
15 | 1 | equemene | * .. |
16 | 1 | equemene | * .. Intrinsic Functions .. |
17 | 1 | equemene | INTRINSIC CABS,CONJG,SQRT |
18 | 1 | equemene | * .. |
19 | 1 | equemene | IF (CABS(CA).NE.0.) GO TO 10 |
20 | 1 | equemene | C = 0. |
21 | 1 | equemene | S = (1.,0.) |
22 | 1 | equemene | CA = CB |
23 | 1 | equemene | GO TO 20 |
24 | 1 | equemene | 10 CONTINUE |
25 | 1 | equemene | SCALE = CABS(CA) + CABS(CB) |
26 | 1 | equemene | NORM = SCALE*SQRT((CABS(CA/SCALE))**2+ (CABS(CB/SCALE))**2) |
27 | 1 | equemene | ALPHA = CA/CABS(CA) |
28 | 1 | equemene | C = CABS(CA)/NORM |
29 | 1 | equemene | S = ALPHA*CONJG(CB)/NORM |
30 | 1 | equemene | CA = ALPHA*NORM |
31 | 1 | equemene | 20 CONTINUE |
32 | 1 | equemene | RETURN |
33 | 1 | equemene | END |