Annotation of rpl/lapack/blas/zrotg.f, revision 1.13
1.8 bertrand 1: *> \brief \b ZROTG
2: *
3: * =========== DOCUMENTATION ===========
4: *
1.13 ! bertrand 5: * Online html documentation available at
! 6: * http://www.netlib.org/lapack/explore-html/
1.8 bertrand 7: *
8: * Definition:
9: * ===========
10: *
11: * SUBROUTINE ZROTG(CA,CB,C,S)
1.13 ! bertrand 12: *
1.8 bertrand 13: * .. Scalar Arguments ..
14: * COMPLEX*16 CA,CB,S
15: * DOUBLE PRECISION C
16: * ..
1.13 ! bertrand 17: *
1.8 bertrand 18: *
19: *> \par Purpose:
20: * =============
21: *>
22: *> \verbatim
23: *>
24: *> ZROTG determines a double complex Givens rotation.
25: *> \endverbatim
26: *
27: * Authors:
28: * ========
29: *
1.13 ! bertrand 30: *> \author Univ. of Tennessee
! 31: *> \author Univ. of California Berkeley
! 32: *> \author Univ. of Colorado Denver
! 33: *> \author NAG Ltd.
1.8 bertrand 34: *
1.13 ! bertrand 35: *> \date December 2016
1.8 bertrand 36: *
37: *> \ingroup complex16_blas_level1
38: *
39: * =====================================================================
1.1 bertrand 40: SUBROUTINE ZROTG(CA,CB,C,S)
1.8 bertrand 41: *
1.13 ! bertrand 42: * -- Reference BLAS level1 routine (version 3.7.0) --
1.8 bertrand 43: * -- Reference BLAS is a software package provided by Univ. of Tennessee, --
44: * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
1.13 ! bertrand 45: * December 2016
1.8 bertrand 46: *
1.1 bertrand 47: * .. Scalar Arguments ..
1.8 bertrand 48: COMPLEX*16 CA,CB,S
1.1 bertrand 49: DOUBLE PRECISION C
50: * ..
51: *
52: * =====================================================================
53: *
54: * .. Local Scalars ..
1.8 bertrand 55: COMPLEX*16 ALPHA
1.1 bertrand 56: DOUBLE PRECISION NORM,SCALE
57: * ..
58: * .. Intrinsic Functions ..
59: INTRINSIC CDABS,DCMPLX,DCONJG,DSQRT
60: * ..
1.7 bertrand 61: IF (CDABS(CA).EQ.0.0d0) THEN
62: C = 0.0d0
63: S = (1.0d0,0.0d0)
64: CA = CB
65: ELSE
66: SCALE = CDABS(CA) + CDABS(CB)
67: NORM = SCALE*DSQRT((CDABS(CA/DCMPLX(SCALE,0.0d0)))**2+
68: $ (CDABS(CB/DCMPLX(SCALE,0.0d0)))**2)
69: ALPHA = CA/CDABS(CA)
70: C = CDABS(CA)/NORM
71: S = ALPHA*DCONJG(CB)/NORM
72: CA = ALPHA*NORM
73: END IF
1.1 bertrand 74: RETURN
75: END
CVSweb interface <joel.bertrand@systella.fr>