Circulant Interface

public interface Circulant

This interface provides methods to construct Circulant matrices. Given a vector , the associated Circulant matrix is the following [n x n] matrix

Syntax

   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.


Functions

private pure module function construct(c) result(A)

Construct a Circulant matrix from the rank-1 array c.

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: c(:)

Generating vector.

Return Value type(Circulant)

Corresponding Circulant matrix.

private pure module function initialize(n) result(A)

Construct a Circulant matrix filled with zeros.

Arguments

Type IntentOptional Attributes Name
integer(kind=ilp), intent(in) :: n

Dimension of the matrix.

Return Value type(Circulant)

Circulant matrix.