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: