Contents


NAME

     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

SYNOPSIS

     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);

PURPOSE

     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.

ARGUMENTS

     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 X.

     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.