cvmul


NAME

cvmul - compute the scaled product of complex vectors


SYNOPSIS

  SUBROUTINE CVMUL( N, ALPHA, X, INCX, Y, INCY, BETA, Z, INCZ)
  COMPLEX ALPHA, BETA
  COMPLEX X(*), Y(*), Z(*)
  INTEGER N, INCX, INCY, INCZ
 
  SUBROUTINE CVMUL_64( N, ALPHA, X, INCX, Y, INCY, BETA, Z, INCZ)
  COMPLEX ALPHA, BETA
  COMPLEX X(*), Y(*), Z(*)
  INTEGER*8 N, INCX, INCY, INCZ
 

F95 INTERFACE

  SUBROUTINE VMUL( [N], ALPHA, X, [INCX], Y, [INCY], BETA, Z, [INCZ])
  COMPLEX :: ALPHA, BETA
  COMPLEX, DIMENSION(:) :: X, Y, Z
  INTEGER :: N, INCX, INCY, INCZ
 
  SUBROUTINE VMUL_64( [N], ALPHA, X, [INCX], Y, [INCY], BETA, Z, [INCZ])
  COMPLEX :: ALPHA, BETA
  COMPLEX, DIMENSION(:) :: X, Y, Z
  INTEGER(8) :: N, INCX, INCY, INCZ
 

C INTERFACE

#include <sunperf.h>

void cvmul(int n, complex alpha, complex *x, int incx, complex *y, int incy, complex beta, complex *z, int incz);

void cvmul_64(long n, complex alpha, complex *x, long incx, complex *y, long incy, complex beta, complex *z, long incz);


PURPOSE

cvmul computes the scaled product of complex vectors:

  z(i) = ALPHA * x(i) * y(i) + BETA * z(i)

for 1 <= i <= N.


ARGUMENTS

* N (input)
Length of the vectors. N >= 0. Returns immediately if N = 0.

* ALPHA (input)
Scale factor on the multiplicand vectors.

* X (input)
 dimension(*)

Multiplicand vector.

* INCX (input)
Stride between elements of the multiplicand vector X. INCX > 0.

* Y (input)
 dimension(*)

Multiplicand vector.

* INCY (input)
Stride between elements of the multiplicand vector Y. INCY > 0.

* BETA (input)
Scale factor on the product vector.

* Z (input/output)
 dimension(*)

Product vector. On exit, z(i) = ALPHA * x(i) * y(i) + BETA * z(i).

* INCZ (input)
Stride between elements of Z. INCZ > 0.