zrot


NAME

zrot - 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 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, doublecomplex *y, long incy, double c, doublecomplex s);


PURPOSE

zrot 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