SpecialMatrices.f90 Source File


Source Code

module SpecialMatrices
   use specialmatrices_diagonal
   use specialmatrices_bidiagonal
   use specialmatrices_tridiagonal
   use specialmatrices_symtridiagonal
   use specialmatrices_strang
   use specialmatrices_poisson2D
   use specialmatrices_circulant
   use specialmatrices_toeplitz
   implicit none
   private

   !--------------------------------
   !-----     Matrix types     -----
   !--------------------------------

   public :: Diagonal
   public :: Bidiagonal
   public :: Tridiagonal
   public :: SymTridiagonal
   public :: Strang
   public :: Poisson2D
   public :: Circulant
   public :: Toeplitz

   !----------------------------------
   !-----     Linear Algebra     -----
   !----------------------------------

   public :: transpose
   public :: det
   public :: trace
   public :: inv
   public :: matmul
   public :: solve
   public :: svd, svdvals
   public :: eigh, eigvalsh
   public :: eig, eigvals

   !-------------------------------------
   !-----     Utility functions     -----
   !-------------------------------------

   public :: dense
   public :: shape
   public :: size
   public :: operator(*)

   public :: say_hello
contains
   subroutine say_hello
      print *, "Hello, SpecialMatrices!"
   end subroutine say_hello
end module SpecialMatrices