Next: Symmetric/Hermitian Positive Definite Linear Up: Computational Routines for Linear Previous: Computational Routines for Linear   Contents   Index

## General Linear Systems

LA_GETRF
Real and complex versions.


SUBROUTINE LA_GETRF( M, N, A, LDA, &

IPIV, INFO )

INTEGER, INTENT(IN) :: LDA, M, N

INTEGER, INTENT(OUT) :: INFO

INTEGER, INTENT( OUT ) :: IPIV( * )
type(wp), INTENT( INOUT ) :: A( LDA, * )

where
type ::= REAL  COMPLEX
wp   ::= KIND(1.0)  KIND(1.0D0)


LA_GETRF computes an factorization of a general real / complex matrix using partial pivoting with row interchanges.
References: See  [1] and [9,20].
-----------------------------------

LA_GETRS
Real and complex versions.


SUBROUTINE LA_GETRS( TRANS, N, NRHS, &

A, LDA, IPIV, B, LDB, INFO )

CHARACTER(LEN=1), INTENT(IN) :: TRANS

INTEGER, INTENT(IN) :: LDA, LDB, NRHS, N

INTEGER, INTENT(OUT) :: INFO

INTEGER, INTENT(IN) :: IPIV(*)
type(wp), INTENT(IN) :: A(LDA,*)
type(wp), INTENT(INOUT) :: rhs

where
type ::= REAL  COMPLEX
wp   ::= KIND(1.0)  KIND(1.0D0)
rhs  ::= B(LDB,*)  B(*)


LA_GETRS solves a system of linear equations or with a general real / complex matrix using the factorization computed by LA_GETRF.
References: See  [1] and [9,20].
-----------------------------------

LA_GECON
Real version.


SUBROUTINE LA_GECON( NORM, N, A, &

LDA, ANORM, RCOND, WORK, &

IWORK, INFO )

CHARACTER(LEN=1), INTENT(IN) :: &

NORM

INTEGER, INTENT(IN) :: LDA, N

INTEGER, INTENT(OUT) :: INFO

REAL(wp), INTENT(IN) :: ANORM

REAL(wp), INTENT(OUT) :: RCOND

INTEGER, INTENT(OUT) :: IWORK( * )

REAL(wp), INTENT(IN) :: A( LDA, * )

REAL(wp), INTENT(OUT) :: WORK( * )

where
wp   ::= KIND(1.0)  KIND(1.0D0)


Complex version.


SUBROUTINE LA_GECON( NORM, N, A, &

LDA, ANORM, RCOND, WORK, &

RWORK, INFO )

CHARACTER(LEN=1), INTENT(IN) :: &

NORM

INTEGER, INTENT(IN) :: LDA, N

INTEGER, INTENT(OUT) :: INFO

REAL(wp), INTENT(IN) :: ANORM

REAL(wp), INTENT(OUT) :: RCOND, &

RWORK(*)

COMPLEX(wp), INTENT(IN) :: A( LDA, * )

COMPLEX(wp), INTENT(OUT) :: WORK( * )

where
wp   ::= KIND(1.0)  KIND(1.0D0)


LA_GECON estimates the reciprocal of the condition number of a general real / complex matrix , using the factorization computed by LA_GETRF.
References: See  [1] and [9,20,21].
-----------------------------------

LA_GERFS
Real version.


SUBROUTINE LA_GERFS( TRANS, N, NRHS, &

A, LDA, AF, LDAF, IPIV, B, LDB, X, LDX, &

FERR, BERR, WORK, IWORK, INFO )

CHARACTER(LEN=1), INTENT(IN) :: &

TRANS

INTEGER, INTENT(IN) :: LDA, LDAF, LDB, &

LDX, NRHS, N

INTEGER, INTENT(OUT) :: INFO

INTEGER, INTENT(IN) :: IPIV(*)

INTEGER, INTENT(OUT) :: IWORK(*)

REAL(wp), INTENT(OUT) :: err

REAL(wp), INTENT(OUT) :: WORK(*)

REAL(wp), INTENT(IN) :: A(LDA,*), &

AF(LDAF,*), rhs

REAL(wp), INTENT(INOUT) :: sol

where
wp   ::= KIND(1.0)  KIND(1.0D0)
rhs  ::= B(LDB,*)  B(*)
sol  ::= X(LDX,*)  X(*)
err  ::= FERR(*), BERR(*)  FERR, BERR


Complex version.


SUBROUTINE LA_GERFS( TRANS, N, NRHS, &

A, LDA, AF, LDAF, IPIV, B, LDB, X, LDX, &

FERR, BERR, WORK, RWORK, INFO )

CHARACTER(LEN=1), INTENT(IN) :: &

TRANS

INTEGER, INTENT(IN) :: LDA, LDAF, LDB, &

LDX, NRHS, N

INTEGER, INTENT(OUT) :: INFO

INTEGER, INTENT(IN) :: IPIV(*)

REAL(wp), INTENT(OUT) :: err, RWORK(*)

COMPLEX(wp), INTENT(OUT) :: WORK(*)

COMPLEX(wp), INTENT(IN) :: A(LDA,*), &

AF(LDAF,*), rhs

COMPLEX(wp), INTENT(INOUT) :: sol

where
wp   ::= KIND(1.0)  KIND(1.0D0)
rhs  ::= B(LDB,*)  B(*)
sol  ::= X(LDX,*)  X(*)
err  ::= FERR(*), BERR(*)  FERR, BERR


LA_GERFS improves the computed solution to a system of linear equations and provides error bounds and backward error estimates for the solution.
References: See  [1] and [9,21,20].
-----------------------------------

LA_GETRI
Real and complex versions.


SUBROUTINE LA_GETRI( N, A, LDA, IPIV, &

WORK, LWORK, INFO )

INTEGER, INTENT(IN) :: LDA, LWORK, N

INTEGER, INTENT(OUT) :: INFO

INTEGER, INTENT(IN) :: IPIV(*)
type(wp), INTENT(OUT) :: WORK(LWORK)
type(wp), INTENT(INOUT) :: A(LDA,*)

where
type ::= REAL  COMPLEX
wp   ::= KIND(1.0)  KIND(1.0D0)


LA_GETRI computes the inverse of a matrix using the factorization computed by LA_GETRF.
References: See  [1] and [9,20].
-----------------------------------

LA_GEEQU
Real and complex versions.


SUBROUTINE LA_GEEQU( M, N, A, LDA, R, C, &

ROWCND, COLCND, AMAX, INFO )

INTEGER, INTENT(IN) :: LDA, M, N

INTEGER, INTENT(OUT) :: INFO

REAL(wp), INTENT(OUT) :: AMAX, COLCND, &

ROWCND
type(wp), INTENT(IN) :: A( LDA, * )

REAL(wp), INTENT(OUT) :: C( * ), R( * )

where
type ::= REAL  COMPLEX
wp   ::= KIND(1.0)  KIND(1.0D0)


LA_GEEQU computes row and column scalings intended to equilibrate an general real / complex matrix and reduce its condition number.
References: See  [1] and [9,21,20].
-----------------------------------

LA_GBTRF
Real and complex versions.


SUBROUTINE LA_GBTRF( M, N, KL, KU, AB, &

LDAB, IPIV, INFO )

INTEGER, INTENT(IN) :: KL, KU, LDAB, M, N

INTEGER, INTENT(OUT) :: INFO

INTEGER, INTENT(INOUT) :: IPIV(*)
type(wp), INTENT(INOUT) :: AB(LDAB,*)

where
type ::= REAL  COMPLEX
wp   ::= KIND(1.0)  KIND(1.0D0)


LA_GBTRF computes an factorization of a real / complex band matrix using partial pivoting with row interchanges.
References: See  [1] and [9,20].
-----------------------------------

LA_GBTRS
Real and complex versions.


SUBROUTINE LA_GBTRS( TRANS, N, KL, KU, &

NRHS, AB, LDAB, IPIV, B, LDB, INFO )

CHARACTER(LEN=1), INTENT(IN) :: TRANS

INTEGER, INTENT(IN) :: KL, KU, LDAB, LDB, &

N, NRHS

INTEGER, INTENT(OUT) :: INFO

INTEGER, INTENT(IN) :: IPIV(*)
type(wp), INTENT(IN) :: AB( LDAB,*)
type(wp), INTENT(INOUT) ::  rhs

where
type ::= REAL  COMPLEX
wp   ::= KIND(1.0)  KIND(1.0D0)
rhs  ::= B(LDB,*)  B(*)


LA_GBTRS solves a system of linear equations or with a general real / complex band matrix using the factorization computed by LA_GBTRF.
References: See  [1] and [9,20].
-----------------------------------

LA_GBCON
Real version.


SUBROUTINE LA_GBCON( NORM, N, KL, &

KU, AB, LDAB, IPIV, ANORM, &

RCOND, WORK, IWORK, INFO )

CHARACTER(LEN=1), INTENT(IN) :: &

NORM

INTEGER, INTENT(IN) :: KL, KU, LDAB, N

INTEGER, INTENT(OUT) :: INFO

REAL(wp), INTENT(IN) :: ANORM

REAL(wp), INTENT(OUT) :: RCOND

INTEGER, INTENT(IN) :: IPIV( * )

INTEGER, INTENT(OUT) :: IWORK( * )

REAL(wp), INTENT(IN) :: AB( LDAB, * )

REAL(wp), INTENT(OUT) :: WORK( * )

where
wp   ::= KIND(1.0)  KIND(1.0D0)


Complex version.


SUBROUTINE LA_GBCON( NORM, N, KL, &

KU, AB, LDAB, IPIV, ANORM, &

RCOND, WORK, RWORK, INFO )

CHARACTER(LEN=1), INTENT(IN) :: &

NORM

INTEGER, INTENT(IN) :: KL, KU, LDAB, N

INTEGER, INTENT(OUT) :: INFO

REAL(wp), INTENT(IN) :: ANORM

REAL(wp), INTENT(OUT) :: RCOND

INTEGER, INTENT(IN) :: IPIV( * )

REAL(wp), INTENT(OUT) :: RWORK( * )

COMPLEX(wp), INTENT(IN) :: AB( LDAB, * )

COMPLEX(wp), INTENT(OUT) :: WORK( * )

where
wp   ::= KIND(1.0)  KIND(1.0D0)


LA_GBCON estimates the reciprocal of the condition number of a real / complex band matrix , using the factorization computed by LA_GBTRF.
References: See  [1] and [9,21,20].
-----------------------------------

LA_GBRFS
Real version.


SUBROUTINE LA_GBCON( TRANS, N, KL, KU, &

NRHS, AB, LDAB, AFB, LDAFB, IPIV, B, &

LDB, X, LDX, FERR, BERR, WORK, &

IWORK, INFO )

CHARACTER(LEN=1), INTENT(IN) :: TRANS

INTEGER, INTENT(IN) :: KL, KU, LDAB, &

LDAFB, LDB, LDX, N, NRHS

INTEGER, INTENT(OUT) :: INFO

INTEGER, INTENT(IN) :: IPIV(*)

INTEGER, INTENT(OUT) :: IWORK(*)

REAL(wp), INTENT(OUT) :: err

REAL(wp), INTENT(IN) :: AB( LDAB,*), &

AFB( LDAFB,*), rhs

REAL(wp), INTENT(OUT) :: WORK(*)

REAL(wp), INTENT(INOUT) :: sol

where
wp   ::= KIND(1.0)  KIND(1.0D0)
rhs  ::= B(LDB,*)  B(*)
sol  ::= X(LDX,*)  X(*)
err  ::= FERR(*), BERR(*)  FERR, BERR


Complex version.


SUBROUTINE LA_GBRFS( TRANS, N, KL, KU, &

NRHS, AB, LDAB, AFB, LDAFB, IPIV, B, &

LDB, X, LDX, FERR, BERR, WORK, &

RWORK, INFO )

CHARACTER(LEN=1), INTENT(IN) :: TRANS

INTEGER, INTENT(IN) :: KL, KU, LDAB, &

LDAFB, LDB, LDX, N, NRHS

INTEGER, INTENT(OUT) :: INFO

INTEGER, INTENT(IN) :: IPIV(*)

REAL(wp), INTENT(OUT) :: err, RWORK(*)

COMPLEX(wp), INTENT(IN) :: AB( LDAB,*), &

AFB( LDAFB,*), rhs

COMPLEX(wp), INTENT(OUT) :: WORK(*)

COMPLEX(wp), INTENT(INOUT) :: sol

where
wp   ::= KIND(1.0)  KIND(1.0D0)
rhs  ::= B(LDB,*)  B(*)
sol  ::= X(LDX,*)  X(*)
err  ::= FERR(*), BERR(*)  FERR, BERR


LA_GBRFS improves the computed solution to a system of linear equations when the coefficient matrix is banded, and provides error bounds and backward error estimates for the solution.
References: See  [1] and [9,21,20].
-----------------------------------

LA_GBEQU
Real and complex versions.


SUBROUTINE LA_GBEQU( M, N, KL, KU, AB, &

LDAB, R, C, ROWCND, COLCND, AMAX, &

INFO )

INTEGER, INTENT(IN) :: KL, KU, LDAB, &

M, N

INTEGER, INTENT(OUT) :: INFO

REAL(wp), INTENT(OUT) :: AMAX, &

COLCND, ROWCND

REAL(wp), INTENT(OUT) :: C(*), R(*)
type(wp), INTENT(IN) :: AB( LDAB,*)

where
type ::= REAL  COMPLEX
wp   ::= KIND(1.0)  KIND(1.0D0)


LA_GBEQU computes row and column scalings intended to equilibrate an real / complex band matrix and reduce its condition number.
References: See  [1] and [9,21,20].
-----------------------------------

LA_GTTRF
Real and complex versions.


SUBROUTINE LA_GTTRF( N, DL, D, DU,

DU2, IPIV, INFO )

INTEGER, INTENT(IN) :: N

INTEGER, INTENT(OUT) :: INFO

INTEGER, INTENT(OUT) :: IPIV(*)
type(wp), INTENT(INOUT) :: D(*), DL(*), DU(*)
type(wp), INTENT(OUT) :: DU2(*)

where
type ::= REAL  COMPLEX
wp   ::= KIND(1.0)  KIND(1.0D0)


LA_SGTTRF computes an factorization of a real / complex tridiagonal matrix using elimination with partial pivoting and row interchanges.
References: See  [1] and [9,20].
-----------------------------------

LA_GTTRS
Real and complex versions.


SUBROUTINE LA_GTTRS( TRANS, N, NRHS, &

DL, D, DU, DU2, IPIV, B, LDB, INFO )

CHARACTER(LEN=1), INTENT(IN) :: &

TRANS

INTEGER, INTENT(IN) :: LDB, N, NRHS

INTEGER, INTENT(OUT) :: INFO

INTEGER, INTENT(IN) :: IPIV(*)
type(wp), INTENT(IN) :: D(*), DL(*), DU(*), &

DU2(*)
type(wp), INTENT(INOUT) :: rhs

where
type ::= REAL  COMPLEX
wp   ::= KIND(1.0)  KIND(1.0D0)
rhs  ::= B(LDB,*)  B(*)


LA_GTTRS solves one of the systems of equations or , with a tridiagonal real / complex matrix using the factorization computed by LA_GTTRF.
References: See  [1] and [9,20].
-----------------------------------

LA_GTCON
Real version.


SUBROUTINE LA_GTCON( NORM, N, DL, &

D, DU, DU2, IPIV, ANORM, RCOND, &

WORK, IWORK, INFO )

CHARACTER(LEN=1), INTENT(IN) :: &

NORM

INTEGER, INTENT(IN) :: N

INTEGER, INTENT(OUT) :: INFO, IWORK(*)

REAL(wp), INTENT(IN) :: ANORM

REAL(wp), INTENT(OUT) :: RCOND

INTEGER, INTENT(IN) :: IPIV(*)

REAL(wp), INTENT(IN) :: D(*), DL(*), &

DU(*), DU2(*)

REAL(wp), INTENT(OUT) :: WORK(*)

where
wp   ::= KIND(1.0)  KIND(1.0D0)


Complex version.


SUBROUTINE LA_GTCON( NORM, N, DL, &

D, DU, DU2, IPIV, ANORM, RCOND, &

WORK, INFO )

CHARACTER(LEN=1), INTENT(IN) :: &

NORM

INTEGER, INTENT(IN) :: N

INTEGER, INTENT(OUT) :: INFO

REAL(wp), INTENT(IN) :: ANORM

REAL(wp), INTENT(OUT) :: RCOND

INTEGER, INTENT(IN) :: IPIV(*)

COMPLEX(wp), INTENT(IN) :: D(*), DL(*), &

DU(*), DU2(*)

COMPLEX(wp), INTENT(OUT) :: WORK(*)

where
wp   ::= KIND(1.0)  KIND(1.0D0)


LA_GTCON estimates the reciprocal of the condition number of a real / complex tridiagonal matrix using the factorization as computed by LA_GTTRF.
References: See  [1] and [9,21,20].
-----------------------------------

LA_GTRFS
Real version.


SUBROUTINE LA_GTRFS( TRANS, N, NRHS, &

DL, D, DU, DLF, DF, DUF, DU2, IPIV, B, &

LDB, X, LDX, FERR, BERR, WORK, &

IWORK, INFO )

CHARACTER(LEN=1), INTENT(IN) :: TRANS

INTEGER, INTENT(IN) :: LDB, LDX, N, &

NRHS, IPIV(*)

INTEGER, INTENT(OUT) :: INFO, IWORK(*)

REAL(wp), INTENT(OUT) :: err

REAL(wp), INTENT(IN) :: rhs, D(*), DF(*), DL(*), &

DLF(*), DU(*), DU2(*), DUF(*)

REAL(wp), INTENT(INOUT) :: sol

REAL(wp), INTENT(OUT) :: WORK(*)

where
wp   ::= KIND(1.0)  KIND(1.0D0)
rhs  ::= B(LDB,*)  B(*)
sol  ::= X(LDX,*)  X(*)
err  ::= FERR(*), BERR(*)  FERR, BERR


Complex version.


SUBROUTINE LA_GTRFS( TRANS, N, NRHS, &

DL, D, DU, DLF, DF, DUF, DU2, IPIV, B, &

LDB, X, LDX, FERR, BERR, WORK, &

RWORK, INFO )

CHARACTER(LEN=1), INTENT(IN) :: &

TRANS

INTEGER, INTENT(IN) :: LDB, LDX, N, &

NRHS, IPIV(*)

INTEGER, INTENT(OUT) :: INFO

REAL(wp), INTENT(OUT) :: err, RWORK(*)

COMPLEX(wp), INTENT(IN) :: rhs, D(*), DF(*), DL(*), &

DLF(*), DU(*), DU2(*), DUF(*)

COMPLEX(wp), INTENT(INOUT) :: sol

COMPLEX(wp), INTENT(OUT) :: WORK(*)

where
wp   ::= KIND(1.0)  KIND(1.0D0)
rhs  ::= B(LDB,*)  B(*)
sol  ::= X(LDX,*)  X(*)
err  ::= FERR(*), BERR(*)  FERR, BERR


LA_GTRFS improves the computed solution to a system of linear equations when the coefficient matrix is tridiagonal, and provides error bounds and backward error estimates for the solution.
References: See  [1] and [9,21,20].
-----------------------------------

Next: Symmetric/Hermitian Positive Definite Linear Up: Computational Routines for Linear Previous: Computational Routines for Linear   Contents   Index
Susan Blackford 2001-08-19