fortran-lapack
Loading...
Searching...
No Matches
la_lapack::larre Interface Reference

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...

Public Member Functions

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
 

Detailed Description

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.

Member Function/Subroutine Documentation

◆ 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: