(C|Z)HEMV

Single complex and double complex HEMV.

Description

Computes a hermitian matrix-vector product.

y \assign \alpha A * x + \beta y

BLAS Interface

void chemv(const char *UPLO, const qml_long *N, const qml_single_complex *ALPHA,
           const qml_single_complex *A, const qml_long *LDA,
           const qml_single_complex *X, const qml_long *INCX,
           const qml_single_complex *BETA, qml_single_complex *Y,
           const qml_long *INCY);

void zhemv(const char *UPLO, const qml_long *N, const qml_double_complex *ALPHA,
           const qml_double_complex *A, const qml_long *LDA,
           const qml_double_complex *X, const qml_long *INCX,
           const qml_double_complex *BETA, qml_double_complex *Y,
           const qml_long *INCY);

CBLAS Interface

void cblas_chemv(const CBLAS_ORDER ORDER, const CBLAS_UPLO UPLO, const qml_long N,
                 const qml_single_complex *ALPHA, const qml_single_complex *A,
                 const qml_long LDA, const qml_single_complex *X,
                 const qml_long INCX, const qml_single_complex *BETA,
                 qml_single_complex *Y, const qml_long INCY);

void cblas_zhemv(const CBLAS_ORDER ORDER, const CBLAS_UPLO UPLO, const qml_long N,
                 const qml_double_complex *ALPHA, const qml_double_complex *A,
                 const qml_long LDA, const qml_double_complex *X,
                 const qml_long INCX, const qml_double_complex *BETA,
                 qml_double_complex *Y, const qml_long INCY);

Arguments

UPLO Specify whether the upper or lower triangle of matrix A will be used
N Order of matrix A
ALPHA Scalar multiplied with the matrix-vector product
A Input matrix A
LDA Leading dimension of matrix A
X First input vector, must be at least: (\fvar{N}-1)\mult\abs{\fvar{INCX}} + 1
INCX Distance between individual elements in X
BETA Scalar multiplied with vector Y
Y Second vector, must be at least: (\fvar{N}-1)\mult\abs{\fvar{INCY}} + 1
INCY Distance between individual elements in Y