LAPACK  3.9.1
LAPACK: Linear Algebra PACKage

◆ zrotg()

subroutine zrotg ( complex*16  CA,
complex*16  CB,
double precision  C,
complex*16  S 
)

ZROTG

Purpose:
    ZROTG determines a double complex Givens rotation.
Parameters
[in,out]CA
          CA is COMPLEX*16
[in]CB
          CB is COMPLEX*16
[out]C
          C is DOUBLE PRECISION
[out]S
          S is COMPLEX*16
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.

Definition at line 61 of file zrotg.f.

62 *
63 * -- Reference BLAS level1 routine --
64 * -- Reference BLAS is a software package provided by Univ. of Tennessee, --
65 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
66 *
67 * .. Scalar Arguments ..
68  COMPLEX*16 CA,CB,S
69  DOUBLE PRECISION C
70 * ..
71 *
72 * =====================================================================
73 *
74 * .. Local Scalars ..
75  COMPLEX*16 ALPHA
76  DOUBLE PRECISION NORM,SCALE
77 * ..
78 * .. Intrinsic Functions ..
79  INTRINSIC cdabs,dcmplx,dconjg,dsqrt
80 * ..
81  IF (cdabs(ca).EQ.0.0d0) THEN
82  c = 0.0d0
83  s = (1.0d0,0.0d0)
84  ca = cb
85  ELSE
86  scale = cdabs(ca) + cdabs(cb)
87  norm = scale*dsqrt((cdabs(ca/dcmplx(scale,0.0d0)))**2+
88  $ (cdabs(cb/dcmplx(scale,0.0d0)))**2)
89  alpha = ca/cdabs(ca)
90  c = cdabs(ca)/norm
91  s = alpha*dconjg(cb)/norm
92  ca = alpha*norm
93  END IF
94  RETURN
Here is the caller graph for this function: