?hfrk

Performs a Hermitian rank-k operation for matrix in RFP format.

Syntax

FORTRAN 77:

call chfrk(transr, uplo, trans, n, k, alpha, a, lda, beta, c)

call zhfrk(transr, uplo, trans, n, k, alpha, a, lda, beta, c)

C:

lapack_int LAPACKE_chfrk( int matrix_order, char transr, char uplo, char trans, lapack_int n, lapack_int k, float alpha, const lapack_complex_float* a, lapack_int lda, float beta, lapack_complex_float* c );

lapack_int LAPACKE_zhfrk( int matrix_order, char transr, char uplo, char trans, lapack_int n, lapack_int k, double alpha, const lapack_complex_double* a, lapack_int lda, double beta, lapack_complex_double* c );

Include Files

The FORTRAN 77 interfaces are specified in the mkl_lapack.fi and mkl_lapack.h include files and the C interfaces are specified in the mkl_lapacke.h include file.

Description

The ?hfrk routines perform a matrix-matrix operation using Hermitian matrices. The operation is defined as

C := alpha*A*AH + beta*C,

or

C := alpha*AH*A + beta*C,

where:

alpha and beta are real scalars,

C is an n-by-n Hermitian matrix in RFP format,

A is an n-by-k matrix in the first case and a k-by-n matrix in the second case.

Input Parameters

The data types are given for the Fortran interface. A <datatype> placeholder, if present, is used for the C interface data types in the C interface section above. See C Interface Conventions for the C interface principal conventions and type defintions.

transr

CHARACTER*1.

if transr = 'N' or 'n', the normal form of RFP C is stored;

if transr = 'C' or 'c', the conjugate-transpose form of RFP C is stored.

uplo

CHARACTER*1. Specifies whether the upper or lower triangular part of the array c is used.

If uplo = 'U' or 'u', then the upper triangular part of the array c is used.

If uplo = 'L' or 'l', then the low triangular part of the array c is used.

trans

CHARACTER*1. Specifies the operation:

if trans = 'N' or 'n', then C := alpha*A*AH + beta*C;

if trans = 'C' or 'c', then C := alpha*AH*A + beta*C.

n

INTEGER. Specifies the order of the matrix C. The value of n must be at least zero.

k

INTEGER. On entry with trans = 'N' or 'n', k specifies the number of columns of the matrix a, and on entry with trans = 'T' or 't' or 'C' or 'c', k specifies the number of rows of the matrix a.

The value of k must be at least zero.

alpha

COMPLEX for chfrk

DOUBLE COMPLEX for zhfrk

Specifies the scalar alpha.

a

COMPLEX for chfrk

DOUBLE COMPLEX for zhfrk

Array, DIMENSION (lda,ka), where ka is k when trans = 'N' or 'n', and is n otherwise. Before entry with trans = 'N' or 'n', the leading n-by-k part of the array a must contain the matrix A, otherwise the leading k-by-n part of the array a must contain the matrix A.

lda

INTEGER. Specifies the leading dimension of a as declared in the calling (sub)program. When trans = 'N' or 'n', then lda must be at least max(1,n), otherwise lda must be at least max(1, k).

beta

COMPLEX for chfrk

DOUBLE COMPLEX for zhfrk

Specifies the scalar beta.

c

COMPLEX for chfrk

DOUBLE COMPLEX for zhfrk

Array, DIMENSION (n*(n+1)/2 ). Before entry contains the Hermitian matrix C in in RFP format.

Output Parameters

c

If trans = 'N' or 'n', then c contains C := alpha*A*AH + beta*C;

if trans = 'C' or 'c', then c contains C := alpha*AH*A + beta*C ;


Submit feedback on this help topic

Copyright © 1994 - 2011, Intel Corporation. All rights reserved.