Skip to main content

SymLargestEigenval

This routine computes the largest eigenvalue of a csrmatrix.

Calling example

ans = SymLargestEigenVal(CSRMatrix_::mat [, char(2)::which, &
& INTEGER::NCV, INTEGER::maxIter, REAL::tol]) &

ans = SymLargestEigenVal(CSRMatrix_::mat, INTEGER::nev &
& [, char(2)::which, INTEGER::NCV, &
& INTEGER::maxIter, REAL::tol]) &

Interface

INTERFACE
MODULE FUNCTION SymLargestEigenVal(mat, which, NCV, maxIter, tol) &
& RESULT(ans)
TYPE(CSRMatrix_), INTENT(IN) :: mat
!! dense matrix
CHARACTER(*), OPTIONAL, INTENT(IN) :: which
!! `which = "LM"` ⇨ absolute largest eigenvalue
!! `which = "LA"` ⇨ algebraic largest eigenvalue
!! default is "LA"
INTEGER(I4B), OPTIONAL, INTENT(IN) :: NCV
!! Number of Lanczos vectors generated
!! It must be greater than 1 and smaller than `size(mat,1)`
!! Default is `NCV = MIN(n, 20)`
INTEGER(I4B), OPTIONAL, INTENT(IN) :: maxIter
!! Maximum number of iteration default = `N*10`
REAL(DFP), OPTIONAL, INTENT(IN) :: tol
!! tolerance, default = 0.0
REAL(DFP) :: ans
!! maximum eigenvalue
END FUNCTION SymLargestEigenVal
END INTERFACE
INTERFACE
MODULE FUNCTION SymLargestEigenVal2(mat, nev, which, NCV, maxIter, tol) &
& RESULT(ans)
TYPE(CSRMatrix_), INTENT(IN) :: mat
!! dense matrix
INTEGER(I4B), INTENT(IN) :: nev
!! number of eigenvalues requested
CHARACTER(*), OPTIONAL, INTENT(IN) :: which
!! `which = "LM"` ⇨ absolute largest eigenvalue
!! `which = "LA"` ⇨ algebraic largest eigenvalue
!! default is "LA"
INTEGER(I4B), OPTIONAL, INTENT(IN) :: NCV
!! Number of Lanczos vectors generated
!! It must be greater than 1 and smaller than `size(mat,1)`
!! Default is `NCV = MIN(n, MAX(2*nev+1, 20))`
INTEGER(I4B), OPTIONAL, INTENT(IN) :: maxIter
!! Maximum number of iteration default = `N*10`
REAL(DFP), OPTIONAL, INTENT(IN) :: tol
!! tolerance, default = 0.0
REAL(DFP) :: ans(nev)
!! first k, largest eigenvalue
END FUNCTION SymLargestEigenVal2
END INTERFACE