p?her2k
p?her2k
Performs a rank-2k update of a Hermitian distributed matrix.
Syntax
void pcher2k
(
const char
*uplo
,
const char
*trans
,
const MKL_INT
*n
,
const MKL_INT
*k
,
const MKL_Complex8
*alpha
,
const MKL_Complex8
*a
,
const MKL_INT
*ia
,
const MKL_INT
*ja
,
const MKL_INT
*desca
,
const MKL_Complex8
*b
,
const MKL_INT
*ib
,
const MKL_INT
*jb
,
const MKL_INT
*descb
,
const float
*beta
,
MKL_Complex8
*c
,
const MKL_INT
*ic
,
const MKL_INT
*jc
,
const MKL_INT
*descc
);
void pzher2k
(
const char
*uplo
,
const char
*trans
,
const MKL_INT
*n
,
const MKL_INT
*k
,
const MKL_Complex16
*alpha
,
const MKL_Complex16
*a
,
const MKL_INT
*ia
,
const MKL_INT
*ja
,
const MKL_INT
*desca
,
const MKL_Complex16
*b
,
const MKL_INT
*ib
,
const MKL_INT
*jb
,
const MKL_INT
*descb
,
const double
*beta
,
MKL_Complex16
*c
,
const MKL_INT
*ic
,
const MKL_INT
*jc
,
const MKL_INT
*descc
);
Include Files
- mkl_pblas.h
Description
The
p?her2k
routines perform a distributed matrix-matrix operation defined as sub(C):=alpha*sub(A)*conjg(sub(B)')+ conjg(alpha)*sub(B)*conjg(sub(A)')+beta*sub(C),
or
sub(C):=alpha*conjg(sub(A)')*sub(A)+ conjg(alpha)*conjg(sub(B)')*sub(A) + beta*sub(C),
where:
alpha
and beta
are scalars,sub(
is an C
)n
-by-n
Hermitian distributed
matrix, sub(
.C
) = C(ic
:ic
+n
-1, jc
:jc
+n
-1)sub(
is a distributed matrix, A
)sub(
,
if A
)=A
(ia
:ia
+n
-1, ja
:ja
+k
-1)trans
= 'N
''
, and n
'sub(
otherwise.A
) = A
(ia
:ia
+k
-1, ja
:ja
+n
-1)sub(
is a distributed matrix, B
)sub(
,
if B
) = B
(ib
:ib
+n
-1, jb
:jb
+k
-1)trans
= 'N'
'n'
sub(
otherwise.B
)=B
(ib
:ib
+k
-1, jb
:jb
+n
-1)Input Parameters
- uplo
- (global) Specifies whether the upper or lower triangular part of the Hermitian distributed matrixsub(is used:C)Iforuplo='U''u', then the upper triangular part of thesub(is used.C)Iforuplo='L''l', then the low triangular part of thesub(is used.C)
- trans
- (global) Specifies the operation:ifortrans='N', then'n'sub(;C) :=alpha*sub(A)*conjg(sub(B)')+ conjg(alpha)*sub(B)*conjg(sub(A)') +beta*sub(C)ifortrans='C', then'c'sub(.C) :=alpha*conjg(sub(A)')*sub(A)+ conjg(alpha)*conjg(sub(B)')*sub(A) +beta*sub(C)
- n
- (global) Specifies the order of the distributed matrixsub(,C)n≥0.
- k
- (global) On entry withortrans='N''n',kspecifies the number of columns of the distributed matricessub(andA)sub(, and on entry withB)ortrans='C''c',kspecifies the number of rows of the distributed matricessub(andA)sub(,B)k≥0.
- alpha
- (global)Specifies the scalaralpha.
- a
- (local)Array, size(, wherelld_a,kla)klaisLOCq(whenja+k-1)ortrans='N''n', and isLOCq(otherwise. Before entry withja+n-1)ortrans='N''n', this array contains the local pieces of the distributed matrixsub(.A)
- ia,ja
- (global) The row and column indices in the distributed matrixAindicating the first row and the first column of the submatrixsub(, respectively.A)
- desca
- (global and local) array of dimension 9. The array descriptor of the distributed matrixA.
- b
- (local)Array, size(, wherelld_b,klb)klbisLOCq(whenjb+k-1)ortrans='N''n', and isLOCq(otherwise. Before entry withjb+n-1)ortrans='N''n', this array contains the local pieces of the distributed matrixsub(.B)
- ib,jb
- (global) The row and column indices in the distributed matrixBindicating the first row and the first column of the submatrixsub(, respectively.B)
- descb
- (global and local) array of dimension 9. The array descriptor of the distributed matrixB.
- beta
- (global)Specifies the scalarbeta.
- c
- (local)Array, size(.lld_c, LOCq(jc+n-1))Before entry withoruplo='U''u', this array containsn-by-nupper triangular part of the symmetric distributed matrixsub(and its strictly lower triangular part is not referenced.C)Before entry withoruplo='L''l', this array containsn-by-nlower triangular part of the symmetric distributed matrixsub(and its strictly upper triangular part is not referenced.C)
- ic,jc
- (global) The row and column indices in the distributed matrixCindicating the first row and the first column of the submatrixsub(, respectively.C)
- descc
- (global and local) array of dimension 9. The array descriptor of the distributed matrixC.
Output Parameters
- c
- Withoruplo='U''u', the upper triangular part ofsub(is overwritten by the upper triangular part of the updated distributed matrix.C)Withoruplo='L''l', the lower triangular part ofsub(is overwritten by the upper triangular part of the updated distributed matrix.C)