HPGVD: computes all the eigenvalues and, optionally, the eigenvectors of a complex generalized Hermitian-definite eigenproblem, of the form A*x=(lambda)*B*x, A*Bx=(lambda)*x, or B*A*x=(lambda)*x. Here A and B are assumed to be Hermitian, stored in packed format, and B is also positive definite. If eigenvectors are desired, it uses a divide and conquer algorithm. The divide and conquer algorithm makes very mild assumptions about floating point arithmetic. It will work on machines with a guard digit in add/subtract, or on those binary machines without guard digits which subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or Cray-2. It could conceivably fail on hexadecimal or decimal machines without guard digits, but we know of none.
More...
|
subroutine | chpgvd (itype, jobz, uplo, n, ap, bp, w, z, ldz, work, lwork, rwork, lrwork, iwork, liwork, info) |
|
| la_chpgvd |
|
| la_whpgvd |
|
subroutine | zhpgvd (itype, jobz, uplo, n, ap, bp, w, z, ldz, work, lwork, rwork, lrwork, iwork, liwork, info) |
|
| la_zhpgvd |
|
HPGVD: computes all the eigenvalues and, optionally, the eigenvectors of a complex generalized Hermitian-definite eigenproblem, of the form A*x=(lambda)*B*x, A*Bx=(lambda)*x, or B*A*x=(lambda)*x. Here A and B are assumed to be Hermitian, stored in packed format, and B is also positive definite. If eigenvectors are desired, it uses a divide and conquer algorithm. The divide and conquer algorithm makes very mild assumptions about floating point arithmetic. It will work on machines with a guard digit in add/subtract, or on those binary machines without guard digits which subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or Cray-2. It could conceivably fail on hexadecimal or decimal machines without guard digits, but we know of none.
◆ chpgvd()
subroutine la_lapack::hpgvd::chpgvd |
( |
integer(ilp), intent(in) |
itype, |
|
|
character, intent(in) |
jobz, |
|
|
character, intent(in) |
uplo, |
|
|
integer(ilp), intent(in) |
n, |
|
|
complex(sp), dimension(*), intent(inout) |
ap, |
|
|
complex(sp), dimension(*), intent(inout) |
bp, |
|
|
real(sp), dimension(*), intent(out) |
w, |
|
|
complex(sp), dimension(ldz,*), intent(out) |
z, |
|
|
integer(ilp), intent(in) |
ldz, |
|
|
complex(sp), dimension(*), intent(out) |
work, |
|
|
integer(ilp), intent(in) |
lwork, |
|
|
real(sp), dimension(*), intent(out) |
rwork, |
|
|
integer(ilp), intent(in) |
lrwork, |
|
|
integer(ilp), dimension(*), intent(out) |
iwork, |
|
|
integer(ilp), intent(in) |
liwork, |
|
|
integer(ilp), intent(out) |
info |
|
) |
| |
◆ la_chpgvd()
la_lapack::hpgvd::la_chpgvd |
◆ la_whpgvd()
la_lapack::hpgvd::la_whpgvd |
◆ la_zhpgvd()
la_lapack::hpgvd::la_zhpgvd |
◆ zhpgvd()
subroutine la_lapack::hpgvd::zhpgvd |
( |
integer(ilp), intent(in) |
itype, |
|
|
character, intent(in) |
jobz, |
|
|
character, intent(in) |
uplo, |
|
|
integer(ilp), intent(in) |
n, |
|
|
complex(dp), dimension(*), intent(inout) |
ap, |
|
|
complex(dp), dimension(*), intent(inout) |
bp, |
|
|
real(dp), dimension(*), intent(out) |
w, |
|
|
complex(dp), dimension(ldz,*), intent(out) |
z, |
|
|
integer(ilp), intent(in) |
ldz, |
|
|
complex(dp), dimension(*), intent(out) |
work, |
|
|
integer(ilp), intent(in) |
lwork, |
|
|
real(dp), dimension(*), intent(out) |
rwork, |
|
|
integer(ilp), intent(in) |
lrwork, |
|
|
integer(ilp), dimension(*), intent(out) |
iwork, |
|
|
integer(ilp), intent(in) |
liwork, |
|
|
integer(ilp), intent(out) |
info |
|
) |
| |
The documentation for this interface was generated from the following file: