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: