crot


NAME

crot - apply a plane rotation, where the cos (C) is real and the sin (S) is complex, and the vectors CX and CY 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 CROT applies a plane rotation, where the cos (C) is real and the sin (S) is complex, and the vectors CX and CY are complex.


ARGUMENTS

* N (input)
The number of elements in the vectors X and Y.

* X (output)
On input, the vector X. On output, X is overwritten with C*X + S*Y.

* INCX (input)
The increment between successive values of Y. INCX <> 0.

* Y (output)
On input, the vector Y. On output, Y is overwritten with -CONJG(S)*X + C*Y.

* INCY (input)
The increment between successive values of Y. INCX <> 0.

* C (input)
* S (input)
.Vb 5 \& C and S define a rotation \& [ C S ] \& [ -conjg(S) C ] \& \& where C*C + S*CONJG(S) = 1.0. .Ve