ZLARTG  - generate a plane rotation so that  [ CS SN ] [ F
       ] [ R ] [ __ ]


SYNOPSIS

       SUBROUTINE ZLARTG( F, G, CS, SN, R )

           DOUBLE         PRECISION CS

           COMPLEX*16     F, G, R, SN


PURPOSE

       ZLARTG generates a plane rotation so that [ CS SN ] [ F  ]
       [  R  ] [ __ ] . [ ] = [ ] where CS**2 + |SN|**2 = 1.    [
       -SN  CS  ]     [ G ]     [ 0 ]

       This is a faster  version  of  the  BLAS1  routine  ZROTG,
       except for the following differences:
          F and G are unchanged on return.
          If G=0, then CS=1 and SN=0.
          If F=0, then CS=0 and SN is chosen so that R is real.


ARGUMENTS

       F       (input) COMPLEX*16
               The first component of vector to be rotated.

       G       (input) COMPLEX*16
               The second component of vector to be rotated.

       CS      (output) DOUBLE PRECISION
               The cosine of the rotation.

       SN      (output) COMPLEX*16
               The sine of the rotation.

       R       (output) COMPLEX*16
               The nonzero component of the rotated vector.


FURTHER DETAILS

       3-5-96  - Modified with a new algorithm by W. Kahan and J.
       Demmel


Man(1) output converted with man2html