This interface overloads the eig interface from stdlib_linalg to
compute the eigenvalues and eigenvectors of a real-valued matrix
whose type is Circulant.
call eig(A, lambda [, left] [, right])
A : real-valued matrix of Circulant.
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
Eigenvalues of a circulant matrix can be efficiently computed using
the Fast Fourier Transform of the generating vector c. Likewise,
its eigenvectors are simply the corresponding Fourier modes.
Utility function to compute the eigenvalues and eigenvectors of a
Circulant matrix.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(Circulant), | 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. |