|
NAG[f08ssc] NAG[nag_zhegst] - Reduction to standard form of complex Hermitian-definite generalized eigenproblem , or , factorized by f07frc (nag_zpotrf)
|
|
Calling Sequence
f08ssc(comp_type, uplo, n, a, b, 'fail'=fail)
nag_zhegst(. . .)
Parameters
|
uplo - String;
|
|
|
On entry: indicates whether the upper or lower triangular part of is stored and how has been factorized.
|
|
Constraint: "Nag_Upper" or "Nag_Lower". .
|
|
|
n - integer;
|
|
|
Constraint: . .
|
|
|
a - Matrix(1..dim1, 1..dim2, datatype=complex[8], order=order);
|
|
|
Note: this array may be supplied in Fortran_order or C_order , as specified by order. All array parameters must use a consistent order.
|
|
If , the upper triangular part of must be stored and the elements of the array below the diagonal are not referenced.
|
|
If , the lower triangular part of must be stored and the elements of the array above the diagonal are not referenced.
|
|
On exit: the upper or lower triangle of is overwritten by the corresponding upper or lower triangle of as specified by comp_type and uplo.
|
|
|
b - Matrix(1..dim1, 1..dim2, datatype=complex[8], order=order);
|
|
|
Note: this array may be supplied in Fortran_order or C_order , as specified by order. All array parameters must use a consistent order.
|
|
|
'fail'=fail - table; (optional)
|
|
|
The NAG error argument, see the documentation for NagError.
|
|
|
|
Description
|
|
|
Description
|
|
To reduce the complex Hermitian-definite generalized eigenproblem , or to the standard form , nag_zhegst (f08ssc) must be preceded by a call to f07frc (nag_zpotrf) which computes the Cholesky factorization of ; must be positive-definite.
The different problem types are specified by the argument comp_type, as indicated in the table below. The table shows how is computed by the function, and also how the eigenvectors of the original problem can be recovered from the eigenvectors of the standard form.
comp_type
|
Problem
|
uplo
|
|
|
|
|
|
"Nag_Upper" "Nag_Lower"
|
|
|
|
|
|
"Nag_Upper" "Nag_Lower"
|
|
|
|
|
|
"Nag_Upper" "Nag_Lower"
|
|
|
|
|
|
|
|
Error Indicators and Warnings
|
|
"NE_ALLOC_FAIL"
Dynamic memory allocation failed.
"NE_BAD_PARAM"
On entry, argument had an illegal value.
"NE_INT"
On entry, . Constraint: .
"NE_INTERNAL_ERROR"
An internal error has occurred in this function. Check the function call and any array sizes. If the call is correct then please consult NAG for assistance.
|
|
Further Comments
|
|
The total number of real floating-point operations is approximately .
The real analogue of this function is f08sec (nag_dsygst).
|
|
|
Examples
|
|
>
|
comp_type := "Nag_Compute_1":
uplo := "Nag_Lower":
n := 4:
a := Matrix([[-7.36 +0*I , 0 +0*I , 0 +0*I , 0 +0*I ], [0.77 +0.43*I , 3.49 +0*I , 0 +0*I , 0 +0*I ], [-0.64 +0.92*I , 2.19 -4.45*I , 0.12 +0*I , 0 +0*I ], [3.01 +6.97*I , 1.9 -3.73*I , 2.88 +3.17*I , -2.54 +0*I ]], datatype=complex[8]):
b := Matrix([[1.797220075561143 +0*I , 0 +0*I , 0 +0*I , 0 +0*I ], [0.8401864749527325 +1.068316577423342*I , 1.316353439509685 +0*I , 0 +0*I , 0 +0*I ], [1.057188279741849 -0.467388502622712*I , -0.4701749470106329 +0.3130658155999466*I , 1.560392977137124 +0*I , 0 +0*I ], [0.233694251311356 -1.391037210186643*I , 0.08335250923944196 +0.03676071443037457*I , 0.9359617337923402 +0.9899692192815734*I , 0.6603332973655891 +0*I ]], datatype=complex[8]):
NAG:-f08ssc(comp_type, uplo, n, a, b):
|


|
|