XLPack 7.0
XLPack Numerical Library (C API) Reference Manual
Loading...
Searching...
No Matches

◆ zher2k()

void zher2k ( char  uplo,
char  trans,
int  n,
int  k,
doublecomplex  alpha,
int  lda,
doublecomplex  a[],
int  ldb,
doublecomplex  b[],
double  beta,
int  ldc,
doublecomplex  c[] 
)

Rank 2k operation: C <- αABH + conjg(α)BAH + βC or C <- αAHB + conjg(α)BHA + βC (Hermitian matrices) (BLAS 3)

Purpose
This routine performs one of the Hermitian rank 2k operations
C <- alpha*A*B^H + conjg(alpha)*B*A^H + beta*C or C <- alpha*A^H*B + conjg(alpha)*B^H*A + beta*C
double beta(double a, double b)
Beta function B(a, b)
Definition beta.cpp:79
where alpha and beta are scalars with beta real, C is an n x n Hermitian matrix and A and B are n x k matrices in the first case and k x n matrices in the second case.
Parameters
[in]uploSpecifies whether the upper or lower triangular part of the array c[][] is to be referenced as follows:
= 'U': Only the upper triangular part of c[][] is to be referenced.
= 'L': Only the lower triangular part of c[][] is to be referenced.
[in]transSpecifies the operation to be performed as follows:
= 'N': C <- alpha*A*B^H + conjg(alpha)*B*A^H + beta*C.
= 'C': C <- alpha*A^H*B + conjg(alpha)*B^H*A + beta*C.
[in]nOrder of the matrix. C (n >= 0) (If n = 0, returns without computation)
[in]kNumber of columns of the matrices A and B when trans = 'N', or number of rows of the matrices A and B when trans = 'C'. (k >= 0)
[in]alphaScalar alpha.
[in]ldaLeading dimension of the two dimensional array a[][]. (lda >= max(1, n) when trans = 'N', lda >= max(1, k) otherwise)
[in]a[][]Array a[la][lda] (la >= k when trans = 'N', la >= n otherwise)
n x k matrix A when trans = 'N', or k x n matrix A otherwise.
[in]ldbLeading dimension of the two dimensional array b[][]. (ldb >= max(1, n) when trans = 'N', ldb >= max(1, k) otherwise)
[in]b[][]Array b[lb][ldb] (lb >= k when trans = 'N', lb >= n otherwise)
n x k matrix B when trans = 'N', or k x n matrix B otherwise.
[in]betaScalar beta.
[in]ldcLeading dimension of the two dimensional array c[][]. (ldc >= max(1, n))
[in,out]c[][]Array c[lc][ldc] (lc >= n)
[in] n x n Hermitian matrix C. Only the upper or lower triangular part is to be referenced in accordance with uplo. The imaginary parts of the diagonal elements need not be set and are assumed to be zero.
[out] n x n output Hermitian matrix (= alpha*A*B^H + conjg(alpha)*B*A^H + beta*C or alpha*A^H*B + conjg(alpha)*B^H*A + beta*C). Only the upper or lower triangular part is overwritten in accordance with uplo. The imaginary parts of the diagonal elements are set to zero.
Reference
BLAS