This interface overloads the eig interface from stdlib_linalg
to compute the eigenvalues and eigenvectors of a real-valued matrix
whose type is Tridiagonal.
call eig(A, lambda [, left] [, right])
A : real-valued matrix of Tridiagonal.
It is an intent(in) argument.
lambda : Rank-1 real array returning the eigenvalues of A
in increasing order. It is an intent(out) argument.
left (optional) : complex rank-2 array of the same kind as
A returning the left eigenvectors of A.
It is an intent(out) argument.
right (optional) : complex rank-2 array of the same kind as
A returning the right eigenvectors of A.
It is an intent(out) argument.
Note
No specialized eigensolvers for generic Tridiagonal matrices exist
in LAPACK. This routine thus falls back to wrapping the eig
procedure from stdlib_linalg which uses *geev under the hood.
Utility function to compute the eigenvalues and eigenvectors of
a Tridiagonal matrix.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(Tridiagonal), | intent(in) | :: | A |
Input matrix. |
||
| complex(kind=dp), | intent(out) | :: | lambda(:) |
Eigenvalues. |
||
| complex(kind=dp), | intent(out), | optional | :: | left(:,:) |
Eigenvectors. |
|
| complex(kind=dp), | intent(out), | optional | :: | right(:,:) |
Eigenvectors. |