Hankel Derived Type

type, public :: Hankel

Base type to define a Hankel matrix of size [m x n] generate from the vector v.


Constructor

public interface Hankel

This interface provides methods to construct Hankel matrices. Given a vector vc specifying the first column of the matrix and a vector vr specifying its last row, the associated Hankel matrix is the following matrix

Syntax

   integer, parameter :: m = 100, n = 200
   real(dp) :: vc(n), vr(n)
   type(Hankel) :: A

   call random_number(vc) ; call random_number(vr)
   A = hankel(Hc, vr)

Warning

The element is read from the last entry of the vector vc. The first entry of vr is not referenced.

Note

Only double precision is currently supported for this matrix type.

  • private pure module function construct(v, m, n) result(A)

    Construct a Hankel matrix from the rank-1 arrays vc and vr.

    Arguments

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

    Generating vector.

    integer(kind=ilp), intent(in) :: m

    Dimensions of the matrix.

    integer(kind=ilp), intent(in) :: n

    Dimensions of the matrix.

    Return Value type(Hankel)

    Corresponding hankel matrix.


Source Code

   type, public :: Hankel
      !! Base type to define a `Hankel` matrix of size [m x n] generate from
      !! the vector v.
      private
      integer(ilp) :: m, n
      !! Dimensions of the matrix.
      real(dp), allocatable :: v(:)
      !! Generating vector.
   end type Hankel