To find the desired eigenvalues of a given real symmetric tridiagonal matrix T, LARRE: sets any "small" off-diagonal elements to zero, and for each unreduced block T_i, it finds (a) a suitable shift at one end of the block's spectrum, (b) the base representation, T_i - sigma_i I = L_i D_i L_i^T, and (c) eigenvalues of each L_i D_i L_i^T. The representations and eigenvalues found are then used by DSTEMR to compute the eigenvectors of T. The accuracy varies depending on whether bisection is used to find a few eigenvalues or the dqds algorithm (subroutine DLASQ2) to conpute all and then discard any unwanted one. As an added benefit, LARRE also outputs the n Gerschgorin intervals for the matrices L_i D_i L_i^T.
More...
|
pure subroutine | dlarre (range, n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit, m, w, werr, wgap, iblock, indexw, gers, pivmin, work, iwork, info) |
|
| la_dlarre |
|
| la_qlarre |
|
pure subroutine | slarre (range, n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit, m, w, werr, wgap, iblock, indexw, gers, pivmin, work, iwork, info) |
|
| la_slarre |
|
To find the desired eigenvalues of a given real symmetric tridiagonal matrix T, LARRE: sets any "small" off-diagonal elements to zero, and for each unreduced block T_i, it finds (a) a suitable shift at one end of the block's spectrum, (b) the base representation, T_i - sigma_i I = L_i D_i L_i^T, and (c) eigenvalues of each L_i D_i L_i^T. The representations and eigenvalues found are then used by DSTEMR to compute the eigenvectors of T. The accuracy varies depending on whether bisection is used to find a few eigenvalues or the dqds algorithm (subroutine DLASQ2) to conpute all and then discard any unwanted one. As an added benefit, LARRE also outputs the n Gerschgorin intervals for the matrices L_i D_i L_i^T.
◆ dlarre()
pure subroutine la_lapack::larre::dlarre |
( |
character, intent(in) | range, |
|
|
integer(ilp), intent(in) | n, |
|
|
real(dp), intent(inout) | vl, |
|
|
real(dp), intent(inout) | vu, |
|
|
integer(ilp), intent(in) | il, |
|
|
integer(ilp), intent(in) | iu, |
|
|
real(dp), dimension(*), intent(inout) | d, |
|
|
real(dp), dimension(*), intent(inout) | e, |
|
|
real(dp), dimension(*), intent(inout) | e2, |
|
|
real(dp), intent(in) | rtol1, |
|
|
real(dp), intent(in) | rtol2, |
|
|
real(dp), intent(in) | spltol, |
|
|
integer(ilp), intent(out) | nsplit, |
|
|
integer(ilp), dimension(*), intent(out) | isplit, |
|
|
integer(ilp), intent(out) | m, |
|
|
real(dp), dimension(*), intent(out) | w, |
|
|
real(dp), dimension(*), intent(out) | werr, |
|
|
real(dp), dimension(*), intent(out) | wgap, |
|
|
integer(ilp), dimension(*), intent(out) | iblock, |
|
|
integer(ilp), dimension(*), intent(out) | indexw, |
|
|
real(dp), dimension(*), intent(out) | gers, |
|
|
real(dp), intent(out) | pivmin, |
|
|
real(dp), dimension(*), intent(out) | work, |
|
|
integer(ilp), dimension(*), intent(out) | iwork, |
|
|
integer(ilp), intent(out) | info ) |
◆ la_dlarre()
la_lapack::larre::la_dlarre |
◆ la_qlarre()
la_lapack::larre::la_qlarre |
◆ la_slarre()
la_lapack::larre::la_slarre |
◆ slarre()
pure subroutine la_lapack::larre::slarre |
( |
character, intent(in) | range, |
|
|
integer(ilp), intent(in) | n, |
|
|
real(sp), intent(inout) | vl, |
|
|
real(sp), intent(inout) | vu, |
|
|
integer(ilp), intent(in) | il, |
|
|
integer(ilp), intent(in) | iu, |
|
|
real(sp), dimension(*), intent(inout) | d, |
|
|
real(sp), dimension(*), intent(inout) | e, |
|
|
real(sp), dimension(*), intent(inout) | e2, |
|
|
real(sp), intent(in) | rtol1, |
|
|
real(sp), intent(in) | rtol2, |
|
|
real(sp), intent(in) | spltol, |
|
|
integer(ilp), intent(out) | nsplit, |
|
|
integer(ilp), dimension(*), intent(out) | isplit, |
|
|
integer(ilp), intent(out) | m, |
|
|
real(sp), dimension(*), intent(out) | w, |
|
|
real(sp), dimension(*), intent(out) | werr, |
|
|
real(sp), dimension(*), intent(out) | wgap, |
|
|
integer(ilp), dimension(*), intent(out) | iblock, |
|
|
integer(ilp), dimension(*), intent(out) | indexw, |
|
|
real(sp), dimension(*), intent(out) | gers, |
|
|
real(sp), intent(out) | pivmin, |
|
|
real(sp), dimension(*), intent(out) | work, |
|
|
integer(ilp), dimension(*), intent(out) | iwork, |
|
|
integer(ilp), intent(out) | info ) |
The documentation for this interface was generated from the following file: