Function

cblas_zhemm

Multiplies two Hermitian matrices (double-precision complex).

Declaration

void cblas_zhemm(const enum CBLAS_ORDER __Order, const enum CBLAS_SIDE __Side, const enum CBLAS_UPLO __Uplo, const int __M, const int __N, const void *__alpha, const void *__A, const int __lda, const void *__B, const int __ldb, const void *__beta, void *__C, const int __ldc);

Parameters

Order

Specifies row-major (C) or column-major (Fortran) data ordering.

Side

Determines the order in which the matrices should be multiplied.

Uplo

Specifies whether to use the upper or lower triangle from the matrix. Valid values are 'U' or 'L'.

M

The number of rows in matrices A and C.

N

The number of columns in matrices B and C.

alpha

Scaling factor for the product of matrices A and B.

A

Matrix A.

lda

The size of the first dimention of matrix A; if you are passing a matrix A[m][n], the value should be m.

B

Matrix B.

ldb

The size of the first dimention of matrix B; if you are passing a matrix B[m][n], the value should be m.

beta

Scaling factor for matrix C.

C

Matrix C.

ldc

The size of the first dimention of matrix C; if you are passing a matrix C[m][n], the value should be m.

Discussion

This function multiplies A * B or B * A (depending on the value of Side) and multiplies the resulting matrix by alpha. It then multiplies matrix C by beta. It stores the sum of these two products in matrix C.

Thus, it calculates either

C←αAB + βC

or

C←αBA + βC

where

A = AH

See Also

Double-Precision Complex Matrix Functions

cblas_dzasum

Computes the sum of the absolute values of real and imaginary parts of elements in a vector (single-precision complex).

cblas_dznrm2

Computes the unitary norm of a vector (double-precision complex).

cblas_zaxpy

Computes a constant times a vector plus a vector (double-precision complex).

cblas_zcopy

Copies a vector to another vector (double-precision complex).

cblas_zdrot

Applies a Givens rotation matrix to a pair of complex vectors.

cblas_zdscal

Multiplies each element of a vector by a constant (double-precision complex).

cblas_zgbmv

Scales a general band matrix, then multiplies by a vector, then adds a vector (double-precision complex).

cblas_zgemm

Multiplies two matrices (double-precision complex).

cblas_zgemv

Multiplies a matrix by a vector (double-precision complex).

cblas_zgerc

Multiplies vector X by the conjugate transpose of vector Y, then adds matrix A (double-precision complex).

cblas_zgeru

Multiplies vector X by the transpose of vector Y, then adds matrix A (double-precision complex).

cblas_zhbmv

Scales a Hermitian band matrix, then multiplies by a vector, then adds a vector (double-precision complex).

cblas_zhemv

Scales and multiplies a Hermitian matrix by a vector, then adds a second (scaled) vector.

cblas_zher

Adds the product of a scaling factor, vector X, and the conjugate transpose of X to matrix A.

cblas_zher2

Hermitian rank 2 update: adds the product of a scaling factor, vector X, and the conjugate transpose of vector Y to the product of the conjugate of the scaling factor, vector Y, and the conjugate transpose of vector X, and adds the result to matrix A.

cblas_zher2k

Performs a rank-2k update of a complex Hermitian matrix (double-precision complex).

cblas_zherk

Rank-k update—multiplies a Hermitian matrix by its transpose and adds a second matrix (single precision).

cblas_zhpmv

Scales a packed hermitian matrix, multiplies it by a vector, and adds a scaled vector.

cblas_zhpr

Scales and multiplies a vector times its conjugate transpose, then adds a matrix.

cblas_zhpr2

Multiplies a vector times the conjugate transpose of a second vector and vice-versa, sums the results, and adds a matrix.

cblas_zrotg

Constructs a complex Givens rotation.

cblas_zscal

Multiplies each element of a vector by a constant (double-precision complex).

cblas_zswap

Exchanges the elements of two vectors (double-precision complex).

cblas_zsymm

Multiplies a matrix by a symmetric matrix (double-precision complex).

cblas_zsyr2k

Performs a rank-2k update of a symmetric matrix (double-precision complex).

cblas_zsyrk

Rank-k update—multiplies a symmetric matrix by its transpose and adds a second matrix (double-precision complex).

cblas_ztbmv

Scales a triangular band matrix, then multiplies by a vector (double-precision complex).

cblas_ztbsv

Solves a triangular banded system of equations.

cblas_ztpmv

Multiplies a triangular matrix by a vector, then adds a vector (double-precision compex).

cblas_ztpsv

Solves a packed triangular system of equations.

cblas_ztrmm

Scales a triangular matrix and multiplies it by a matrix.

cblas_ztrmv

Multiplies a triangular matrix by a vector.

cblas_ztrsm

Solves a triangular system of equations with multiple values for the right side.

cblas_ztrsv

Solves a triangular system of equations with a single value for the right side.