Base type to define a Circulant matrix of size [n x n] with elements
given by the vector
This interface provides methods to construct Circulant matrices.
Given a vector ,
the associated Circulant matrix is the following [n x n] matrix
integer, parameter :: n = 100
real(dp) :: c(n)
type(Circulant) :: A
call random_number(c)
A = Circulant(c)
Note
Only double precision is currently supported for this matrix type.
Construct a Circulant matrix from the rank-1 array c.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | c(:) |
Generating vector. |
Corresponding Circulant matrix.
type, public :: Circulant !! Base type to define a `Circulant` matrix of size [n x n] with elements !! given by the vector \(c = (c[1], c[2], ..., c[n]).\) private integer(ilp) :: n !! Dimension of the matrix. real(dp), allocatable :: c(:) !! Generating vector. complex(dp), allocatable :: c_hat(:) !! Fourier Transform of the generating vector. end type Circulant