|
NAG[f08tsc] NAG[nag_zhpgst] - Reduction to standard form of complex Hermitian-definite generalized eigenproblem , or , packed storage, factorized by f07grc (nag_zpptrf)
|
|
Calling Sequence
f08tsc(comp_type, uplo, n, ap, bp, 'fail'=fail)
nag_zhpgst(. . .)
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: . .
|
|
|
ap - Vector(1..dim, datatype=complex[8]);
|
|
|
Note: the dimension, dim, of the array ap must be at least .
|
|
On entry: the symmetric matrix , packed by rows or columns. The storage of elements depends on the storage order and uplo arguments as follows:
|
|
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, using the same packed storage format as described above.
|
|
|
bp - Vector(1..dim, datatype=complex[8]);
|
|
|
Note: the dimension, dim, of the array bp must be at least .
|
|
|
'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 using packed storage, nag_zhpgst (f08tsc) must be preceded by a call to f07grc (nag_zpptrf) 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_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 f08tec (nag_dspgst).
|
|
|
Examples
|
|
>
|
comp_type := "Nag_Compute_1":
uplo := "Nag_Lower":
n := 4:
ap := Vector([-7.36 +0*I, 0.77 +0.43*I, 3.49 +0*I, -0.64 +0.92*I, 2.19 -4.45*I, 0.12 +0*I, 3.01 +6.97*I, 1.9 -3.73*I, 2.88 +3.17*I, -2.54 +0*I], datatype=complex[8], order='C_order'):
bp := Vector([1.797220075561143 +0*I, 0.8401864749527325 +1.068316577423342*I, 1.316353439509685 +0*I, 1.057188279741849 -0.467388502622712*I, -0.4701749470106329 +0.3130658155999466*I, 1.560392977137124 +0*I, 0.233694251311356 -1.391037210186643*I, 0.08335250923944192 +0.03676071443037458*I, 0.9359617337923402 +0.9899692192815736*I, 0.6603332973655891 +0*I], datatype=complex[8], order='C_order'):
NAG:-f08tsc(comp_type, uplo, n, ap, bp):
|
|
|