Functions/Subroutines | |
subroutine | imtqlx (mat_size, diag, off_diag, sol_vec) |
Implicitly-shifted Modified QL factorization algorithm for symmetric tridiagonal matrices. More... | |
subroutine | dsort2a (n, x, y) |
subroutine gjp_imtqlx::dsort2a | ( | integer, intent(in) | n, |
real(dp), dimension(n), intent(inout) | x, | ||
real(dp), dimension(n), intent(inout) | y | ||
) |
Definition at line 145 of file gjp_imtqlx.f90.
subroutine gjp_imtqlx::imtqlx | ( | integer, intent(in) | mat_size, |
real(dp), dimension(mat_size), intent(inout) | diag, | ||
real(dp), dimension(mat_size - 1), intent(inout) | off_diag, | ||
real(dp), dimension(mat_size), intent(inout) | sol_vec | ||
) |
Implicitly-shifted Modified QL factorization algorithm for symmetric tridiagonal matrices.
This subroutine diagonalizes a real, symmetric, tridiagonal matrix using the implicitly-shifted Modified QL factorization algorithm. The eigenvalues are overwritten on the diagonal of the matrix, while the eigenvectors are stored in the array sol_vec
. This is an internal function typically used in the context of computing Gauss-Jacobi quadrature points and weights.
This function is an adaptation of the Implicitly-shifted QL algorithm. It is specifically optimized for tridiagonal matrices, which is the form that Jacobi matrices often take. This is a modernized version of the algorithm presented in Algorithm 655 which in turn is a slightly modified variant of an EISPACK routine.
[in] | mat_size | The size of the matrix, i.e., number of rows or columns. |
[in,out] | diag | On entry, the diagonal elements of the tridiagonal matrix. On exit, the eigenvalues in ascending order. |
[in,out] | off_diag | On entry, the off-diagonal elements of the tridiagonal matrix. On exit, the values are overwritten. |
[in,out] | sol_vec | On entry, the initial guesses for the eigenvectors. On exit, the computed eigenvectors. |
max_iter
) set to 30. An error is reported if the limit is exceeded.diag
, off_diag
, and sol_vec
before calling this function. Definition at line 43 of file gjp_imtqlx.f90.