Developer Reference

Contents

p?hegst

Reduces a Hermitian positive-definite generalized eigenvalue problem to the standard form.

Syntax

void
pchegst
(
MKL_INT
*ibtype
,
char
*uplo
,
MKL_INT
*n
,
MKL_Complex8
*a
,
MKL_INT
*ia
,
MKL_INT
*ja
,
MKL_INT
*desca
,
MKL_Complex8
*b
,
MKL_INT
*ib
,
MKL_INT
*jb
,
MKL_INT
*descb
,
float
*scale
,
MKL_INT
*info
);
void
pzhegst
(
MKL_INT
*ibtype
,
char
*uplo
,
MKL_INT
*n
,
MKL_Complex16
*a
,
MKL_INT
*ia
,
MKL_INT
*ja
,
MKL_INT
*desca
,
MKL_Complex16
*b
,
MKL_INT
*ib
,
MKL_INT
*jb
,
MKL_INT
*descb
,
double
*scale
,
MKL_INT
*info
);
Include Files
  • mkl_scalapack.h
Description
The
p?hegst
function
reduces complex Hermitian positive-definite generalized eigenproblems to the standard form.
In the following sub(
A
) denotes
A
(
ia
:
ia
+
n
-1,
ja
:
ja
+
n
-1) and sub(
B
) denotes
B
(
ib
:
ib
+
n
-1,
jb
:
jb
+
n
-1).
If
ibtype
= 1
, the problem is
sub(
A
)*
x
=
λ*
sub(
B
)*
x
,
and sub(
A
) is overwritten by inv(
U
H
)*sub(
A
)*inv(
U
), or inv(
L
)*sub(
A
)*inv(
L
H
).
If
ibtype
= 2 or 3
, the problem is
sub(
A
)*sub(
B
)*
x
=
λ*
x,
or sub(
B
)*sub(
A
)*
x
=
λ*
x
,
and sub(
A
) is overwritten by
U
*sub(
A
)*
U
H
, or
L
H
*sub(
A
)*
L
.
sub(
B
) must have been previously factorized as
U
H
*U
or
L*L
H
by
p?potrf
.
Input Parameters
ibtype
(global) Must be 1 or 2 or 3.
If
itype
= 1
, compute inv(
U
H
)*sub(
A
)*inv(
U
), or inv(
L
)*sub(
A
)*inv(
L
H
);
If
itype
= 2 or 3
, compute
U
*sub(
A
)*
U
H
, or
L
H
*sub(
A
)*
L
.
uplo
(global) Must be
'U'
or
'L'
.
If
uplo
=
'U'
, the upper triangle of sub(
A
) is stored and sub (
B
) is factored as
U
H
*
U
.
If
uplo
=
'L'
, the lower triangle of sub(
A
) is stored and sub (
B
) is factored as
L
*
L
H
.
n
(global) The order of the matrices sub (
A
) and sub (
B
)
(
n
0)
.
a
(local)
Pointer into the local memory to an array of size
lld_a
*
LOCc
(
ja
+
n
-1)
. On entry, the array contains the local pieces of the
n
-by-
n
Hermitian distributed matrix sub(
A
). If
uplo
=
'U'
, the leading
n
-by-
n
upper triangular part of sub(
A
) contains the upper triangular part of the matrix, and its strictly lower triangular part is not referenced. If
uplo
=
'L'
, the leading
n
-by-
n
lower triangular part of sub(
A
) contains the lower triangular part of the matrix, and its strictly upper triangular part is not referenced.
ia
,
ja
(global) The row and column indices in the global matrix
A
indicating the first row and the first column of the submatrix
A
, respectively.
desca
(global and local) array of size
dlen_
. The array descriptor for the distributed matrix
A
.
b
(local)
Pointer into the local memory to an array of size
lld_b
*
LOCc
(
jb
+
n
-1)
. On entry, the array contains the local pieces of the triangular factor from the Cholesky factorization of sub (
B
) as returned by
p?potrf
.
ib
,
jb
(global) The row and column indices in the global matrix
B
indicating the first row and the first column of the submatrix
B
, respectively.
descb
(global and local) array of size
dlen_
. The array descriptor for the distributed matrix B.
Output Parameters
a
On exit, if
info
= 0, the transformed matrix, stored in the same format as sub(
A
).
scale
(global)
Amount by which the eigenvalues should be scaled to compensate for the scaling performed in this
function
. At present,
scale
is always returned as 1.0, it is returned here to allow for future enhancement.
info
(global)
If
info
= 0
, the execution is successful. If
info
<0
, if the
i
-th argument is an array and the
j-
th entry
, indexed
j
- 1,
had an illegal value, then
info
= -(
i
*100+
j
); if the
i-
th argument is a scalar and had an illegal value, then
info
=
-i
.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.