Contents


NAME

     crot - 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 CROT(N, X, INCX, Y, INCY, C, S)

     COMPLEX S
     COMPLEX X(*), Y(*)
     INTEGER N, INCX, INCY
     REAL C

     SUBROUTINE CROT_64(N, X, INCX, Y, INCY, C, S)

     COMPLEX S
     COMPLEX X(*), Y(*)
     INTEGER*8 N, INCX, INCY
     REAL C

  F95 INTERFACE
     SUBROUTINE ROT([N], X, [INCX], Y, [INCY], C, S)

     COMPLEX :: S
     COMPLEX, DIMENSION(:) :: X, Y
     INTEGER :: N, INCX, INCY
     REAL :: C

     SUBROUTINE ROT_64([N], X, [INCX], Y, [INCY], C, S)

     COMPLEX :: S
     COMPLEX, DIMENSION(:) :: X, Y
     INTEGER(8) :: N, INCX, INCY
     REAL :: C

  C INTERFACE
     #include <sunperf.h>

     void crot(int n, complex *x, int incx, complex *y, int incy,
               float c, complex *s);

     void crot_64(long n, complex *x, long incx, complex *y, long
               incy, float c, complex *s);

PURPOSE

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