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