lapack_wrapper Module

A small module just designed to provide interfaces to commonly used lapack routines so that we can forget about the precision of the arguments at the calling site and the compiler has some information about the lapack routine arguments.

Requires the code to be linked against lapack so we currently have to take care to guard against having use lapack_wrapper when we don't have lapack available. We could further guard against this by only allowing this module to be non-empty when LAPACK is defined.



Contents


Interfaces

public interface getrf

  • private interface cgetrf()

    Arguments

    None
  • private interface zgetrf()

    Arguments

    None

public interface getri

  • private interface cgetri()

    Arguments

    None
  • private interface zgetri()

    Arguments

    None

public interface gemm

  • private interface cgemm()

    Arguments

    None
  • private interface zgemm()

    Arguments

    None

public interface gemv

  • private interface cgemv()

    Arguments

    None
  • private interface zgemv()

    Arguments

    None

interface

  • private subroutine cgetrf(m, n, a, lda, ipiv, info)

    Arguments

    Type IntentOptional Attributes Name
    integer :: m
    integer :: n
    complex(kind=real32), dimension(lda, *) :: a
    integer :: lda
    integer, dimension(*) :: ipiv
    integer :: info

interface

  • private subroutine zgetrf(m, n, a, lda, ipiv, info)

    Arguments

    Type IntentOptional Attributes Name
    integer :: m
    integer :: n
    complex(kind=real64), dimension(lda, *) :: a
    integer :: lda
    integer, dimension(*) :: ipiv
    integer :: info

interface

  • private subroutine cgetri(n, a, lda, ipiv, work, lwork, info)

    Arguments

    Type IntentOptional Attributes Name
    integer :: n
    complex(kind=real32), dimension(lda, *) :: a
    integer :: lda
    integer, dimension(*) :: ipiv
    complex(kind=real32), dimension(*) :: work
    integer :: lwork
    integer :: info

interface

  • private subroutine zgetri(n, a, lda, ipiv, work, lwork, info)

    Arguments

    Type IntentOptional Attributes Name
    integer :: n
    complex(kind=real64), dimension(lda, *) :: a
    integer :: lda
    integer, dimension(*) :: ipiv
    complex(kind=real64), dimension(*) :: work
    integer :: lwork
    integer :: info

interface

  • private subroutine cgemm(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)

    Arguments

    Type IntentOptional Attributes Name
    character(len=1) :: transa
    character(len=1) :: transb
    integer :: m
    integer :: n
    integer :: k
    complex(kind=real32) :: alpha
    complex(kind=real32), dimension(lda, *) :: a
    integer :: lda
    complex(kind=real32), dimension(ldb, *) :: b
    integer :: ldb
    complex(kind=real32) :: beta
    complex(kind=real32), dimension(ldc, *) :: c
    integer :: ldc

interface

  • private subroutine zgemm(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)

    Arguments

    Type IntentOptional Attributes Name
    character(len=1) :: transa
    character(len=1) :: transb
    integer :: m
    integer :: n
    integer :: k
    complex(kind=real64) :: alpha
    complex(kind=real64), dimension(lda, *) :: a
    integer :: lda
    complex(kind=real64), dimension(ldb, *) :: b
    integer :: ldb
    complex(kind=real64) :: beta
    complex(kind=real64), dimension(ldc, *) :: c
    integer :: ldc

interface

  • private subroutine cgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)

    Arguments

    Type IntentOptional Attributes Name
    character(len=1) :: trans
    integer :: m
    integer :: n
    complex(kind=real32) :: alpha
    complex(kind=real32), dimension(lda, *) :: a
    integer :: lda
    complex(kind=real32), dimension(*) :: x
    integer :: incx
    complex(kind=real32) :: beta
    complex(kind=real32), dimension(*) :: y
    integer :: incy

interface

  • private subroutine zgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)

    Arguments

    Type IntentOptional Attributes Name
    character(len=1) :: trans
    integer :: m
    integer :: n
    complex(kind=real64) :: alpha
    complex(kind=real64), dimension(lda, *) :: a
    integer :: lda
    complex(kind=real64), dimension(*) :: x
    integer :: incx
    complex(kind=real64) :: beta
    complex(kind=real64), dimension(*) :: y
    integer :: incy