Contents
     zrot - apply a plane rotation, where the cos (C) is real and
     the sin (S) is complex, and the vectors X and Y are complex
     SUBROUTINE ZROT(N, X, INCX, Y, INCY, C, S)
     DOUBLE COMPLEX S
     DOUBLE COMPLEX X(*), Y(*)
     INTEGER N, INCX, INCY
     DOUBLE PRECISION C
     SUBROUTINE ZROT_64(N, X, INCX, Y, INCY, C, S)
     DOUBLE COMPLEX S
     DOUBLE COMPLEX X(*), Y(*)
     INTEGER*8 N, INCX, INCY
     DOUBLE PRECISION C
  F95 INTERFACE
     SUBROUTINE ROT([N], X, [INCX], Y, [INCY], C, S)
     COMPLEX(8) :: S
     COMPLEX(8), DIMENSION(:) :: X, Y
     INTEGER :: N, INCX, INCY
     REAL(8) :: C
     SUBROUTINE ROT_64([N], X, [INCX], Y, [INCY], C, S)
     COMPLEX(8) :: S
     COMPLEX(8), DIMENSION(:) :: X, Y
     INTEGER(8) :: N, INCX, INCY
     REAL(8) :: C
  C INTERFACE
     #include <sunperf.h>
     void zrot(int n, doublecomplex *x, int  incx,  doublecomplex
               *y, int incy, double c, doublecomplex *s);
     void zrot_64(long n, doublecomplex *x, long incx, doublecom-
               plex *y, long incy, double c, doublecomplex *s);
     zrot   applies a plane rotation, where the cos (C)  is  real
     and  the  sin  (S)  is  complex, and the vectors X and Y are
     complex.
     N (input)
               The number of elements in the vectors X and Y.
     X (input/output)
               On input, the vector X.  On output, X is overwrit-
               ten with C*X + S*Y.
     INCX (input)
               The increment between successive values of Y.
     Y (input/output)
               On input, the vector Y.  On output, Y is overwrit-
               ten with -CONJG(S)*X + C*Y.
     INCY (input)
               The increment between successive values of Y.
     C (input)
     S (input)
                    C and S define a rotation
                    [  C          S  ]
                    [ -conjg(S)   C  ]
                    where C*C + S*CONJG(S) = 1.0.