lapack_interfaces Module

Double precision interfaces for the LAPACK procedures used by hompack.


Uses

  • module~~lapack_interfaces~~UsesGraph module~lapack_interfaces lapack_interfaces module~hompack_kinds hompack_kinds module~lapack_interfaces->module~hompack_kinds iso_fortran_env iso_fortran_env module~hompack_kinds->iso_fortran_env

Interfaces

interface

  • public pure function disnan(din)

    Test if a double precision value is NaN.

    Arguments

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

    Return Value logical

interface

  • public pure function dlaisnan(din1, din2)

    Test if two double precision values differ (NaN helper).

    Arguments

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

    Return Value logical

interface

  • public pure function dlamch(cmach)

    Determine double precision machine parameters.

    Arguments

    Type IntentOptional Attributes Name
    character(len=1), intent(in) :: cmach

    Return Value real(kind=dp)

interface

  • public pure function dlapy2(x, y)

    Compute sqrt(x**2 + y**2) without undue overflow or underflow.

    Arguments

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

    Return Value real(kind=dp)

interface

  • public pure function ieeeck(ispec, zero, one)

    Check IEEE arithmetic support.

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: ispec
    real, intent(in) :: zero
    real, intent(in) :: one

    Return Value integer

interface

  • public pure function iladlc(m, n, a, lda)

    Find the last non-zero column of a matrix.

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: m
    integer, intent(in) :: n
    real(kind=dp), intent(in) :: a(lda,*)
    integer, intent(in) :: lda

    Return Value integer

interface

  • public pure function iladlr(m, n, a, lda)

    Find the last non-zero row of a matrix.

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: m
    integer, intent(in) :: n
    real(kind=dp), intent(in) :: a(lda,*)
    integer, intent(in) :: lda

    Return Value integer

interface

  • public pure function ilaenv(ispec, name, opts, n1, n2, n3, n4)

    Return LAPACK environment parameters (e.g. optimal block size).

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: ispec
    character(len=*), intent(in) :: name
    character(len=*), intent(in) :: opts
    integer, intent(in) :: n1
    integer, intent(in) :: n2
    integer, intent(in) :: n3
    integer, intent(in) :: n4

    Return Value integer

interface

  • public pure function iparmq(ispec, name, opts, n, ilo, ihi, lwork)

    Return shift parameters for the double-shift QR iteration.

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: ispec
    character(len=*), intent(in) :: name
    character(len=*), intent(in) :: opts
    integer, intent(in) :: n
    integer, intent(in) :: ilo
    integer, intent(in) :: ihi
    integer, intent(in) :: lwork

    Return Value integer

interface

  • public subroutine dgeqpf(m, n, a, lda, jpvt, tau, work, info)

    QR factorization with column pivoting: A*P = Q*R.

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: m
    integer, intent(in) :: n
    real(kind=dp), intent(inout) :: a(lda,*)
    integer, intent(in) :: lda
    integer, intent(inout) :: jpvt(*)
    real(kind=dp), intent(out) :: tau(*)
    real(kind=dp), intent(out) :: work(*)
    integer, intent(out) :: info

interface

  • public subroutine dgeqr2(m, n, a, lda, tau, work, info)

    Unblocked QR factorization: A = Q*R.

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: m
    integer, intent(in) :: n
    real(kind=dp), intent(inout) :: a(lda,*)
    integer, intent(in) :: lda
    real(kind=dp), intent(out) :: tau(*)
    real(kind=dp), intent(out) :: work(*)
    integer, intent(out) :: info

interface

  • public subroutine dgeqrf(m, n, a, lda, tau, work, lwork, info)

    Blocked QR factorization: A = Q*R.

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: m
    integer, intent(in) :: n
    real(kind=dp), intent(inout) :: a(lda,*)
    integer, intent(in) :: lda
    real(kind=dp), intent(out) :: tau(*)
    real(kind=dp), intent(out) :: work(*)
    integer, intent(in) :: lwork
    integer, intent(out) :: info

interface

  • public pure subroutine dlacpy(uplo, m, n, a, lda, b, ldb)

    Copy all or part of a matrix: B = A.

    Arguments

    Type IntentOptional Attributes Name
    character(len=1), intent(in) :: uplo
    integer, intent(in) :: m
    integer, intent(in) :: n
    real(kind=dp), intent(in) :: a(lda,*)
    integer, intent(in) :: lda
    real(kind=dp), intent(out) :: b(ldb,*)
    integer, intent(in) :: ldb

interface

  • public pure subroutine dlaic1(job, j, x, sest, w, gamma, sestpr, s, c)

    Apply one step of incremental condition estimation.

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: job
    integer, intent(in) :: j
    real(kind=dp), intent(in) :: x(j)
    real(kind=dp), intent(in) :: sest
    real(kind=dp), intent(in) :: w(j)
    real(kind=dp), intent(in) :: gamma
    real(kind=dp), intent(out) :: sestpr
    real(kind=dp), intent(out) :: s
    real(kind=dp), intent(out) :: c

interface

  • public pure subroutine dlarf(side, m, n, v, incv, tau, c, ldc, work)

    Apply a Householder reflector H = I - tau*v*v**T to a matrix.

    Arguments

    Type IntentOptional Attributes Name
    character(len=1), intent(in) :: side
    integer, intent(in) :: m
    integer, intent(in) :: n
    real(kind=dp), intent(in) :: v(*)
    integer, intent(in) :: incv
    real(kind=dp), intent(in) :: tau
    real(kind=dp), intent(inout) :: c(ldc,*)
    integer, intent(in) :: ldc
    real(kind=dp), intent(out) :: work(*)

interface

  • public pure subroutine dlarf1f(side, m, n, v, incv, tau, c, ldc, work)

    Apply a Householder reflector with first element 1.

    Arguments

    Type IntentOptional Attributes Name
    character(len=1), intent(in) :: side
    integer, intent(in) :: m
    integer, intent(in) :: n
    real(kind=dp), intent(in) :: v(*)
    integer, intent(in) :: incv
    real(kind=dp), intent(in) :: tau
    real(kind=dp), intent(inout) :: c(ldc,*)
    integer, intent(in) :: ldc
    real(kind=dp), intent(out) :: work(*)

interface

  • public pure subroutine dlarfb(side, trans, direct, storev, m, n, k, v, ldv, t, ldt, c, ldc, work, ldwork)

    Apply a block Householder reflector H = I - V*T*V**T to a matrix.

    Arguments

    Type IntentOptional Attributes Name
    character(len=1), intent(in) :: side
    character(len=1), intent(in) :: trans
    character(len=1), intent(in) :: direct
    character(len=1), intent(in) :: storev
    integer, intent(in) :: m
    integer, intent(in) :: n
    integer, intent(in) :: k
    real(kind=dp), intent(in) :: v(ldv,*)
    integer, intent(in) :: ldv
    real(kind=dp), intent(in) :: t(ldt,*)
    integer, intent(in) :: ldt
    real(kind=dp), intent(inout) :: c(ldc,*)
    integer, intent(in) :: ldc
    real(kind=dp), intent(out) :: work(ldwork,*)
    integer, intent(in) :: ldwork

interface

  • public pure subroutine dlarfg(n, alpha, x, incx, tau)

    Generate a Householder reflector H such that H*[alpha; x] = [beta; 0].

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: n
    real(kind=dp), intent(inout) :: alpha
    real(kind=dp), intent(inout) :: x(*)
    integer, intent(in) :: incx
    real(kind=dp), intent(out) :: tau

interface

  • public pure subroutine dlarft(direct, storev, n, k, v, ldv, tau, t, ldt)

    Form the triangular factor T of a block Householder reflector.

    Arguments

    Type IntentOptional Attributes Name
    character(len=1), intent(in) :: direct
    character(len=1), intent(in) :: storev
    integer, intent(in) :: n
    integer, intent(in) :: k
    real(kind=dp), intent(in) :: v(ldv,*)
    integer, intent(in) :: ldv
    real(kind=dp), intent(in) :: tau(*)
    real(kind=dp), intent(out) :: t(ldt,*)
    integer, intent(in) :: ldt

interface

  • public subroutine dorg2r(m, n, k, a, lda, tau, work, info)

    Unblocked generation of Q from QR factorization.

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: m
    integer, intent(in) :: n
    integer, intent(in) :: k
    real(kind=dp), intent(inout) :: a(lda,*)
    integer, intent(in) :: lda
    real(kind=dp), intent(in) :: tau(*)
    real(kind=dp), intent(out) :: work(*)
    integer, intent(out) :: info

interface

  • public subroutine dorgqr(m, n, k, a, lda, tau, work, lwork, info)

    Blocked generation of Q from QR factorization.

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: m
    integer, intent(in) :: n
    integer, intent(in) :: k
    real(kind=dp), intent(inout) :: a(lda,*)
    integer, intent(in) :: lda
    real(kind=dp), intent(in) :: tau(*)
    real(kind=dp), intent(out) :: work(*)
    integer, intent(in) :: lwork
    integer, intent(out) :: info

interface

  • public subroutine dorm2r(side, trans, m, n, k, a, lda, tau, c, ldc, work, info)

    Unblocked application of Q from QR factorization to a matrix.

    Arguments

    Type IntentOptional Attributes Name
    character(len=1), intent(in) :: side
    character(len=1), intent(in) :: trans
    integer, intent(in) :: m
    integer, intent(in) :: n
    integer, intent(in) :: k
    real(kind=dp), intent(in) :: a(lda,*)
    integer, intent(in) :: lda
    real(kind=dp), intent(in) :: tau(*)
    real(kind=dp), intent(inout) :: c(ldc,*)
    integer, intent(in) :: ldc
    real(kind=dp), intent(out) :: work(*)
    integer, intent(out) :: info

interface

  • public subroutine dormqr(side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info)

    Blocked application of Q from QR factorization to a matrix.

    Arguments

    Type IntentOptional Attributes Name
    character(len=1), intent(in) :: side
    character(len=1), intent(in) :: trans
    integer, intent(in) :: m
    integer, intent(in) :: n
    integer, intent(in) :: k
    real(kind=dp), intent(in) :: a(lda,*)
    integer, intent(in) :: lda
    real(kind=dp), intent(in) :: tau(*)
    real(kind=dp), intent(inout) :: c(ldc,*)
    integer, intent(in) :: ldc
    real(kind=dp), intent(out) :: work(*)
    integer, intent(in) :: lwork
    integer, intent(out) :: info

interface

  • public subroutine xerbla(srname, info)

    Error handler called by LAPACK/BLAS routines.

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: srname
    integer, intent(in) :: info