next up previous contents index
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 $\mid$ COMPLEX
wp ::= KIND(1.0) $\mid$ KIND(1.0D0)


LA_GETRF computes an $LU$ factorization of a general $m \times n$ real / complex matrix $A$ 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 $\mid$ COMPLEX
wp ::= KIND(1.0) $\mid$ KIND(1.0D0)
rhs ::= B(LDB,*) $\mid$ B(*)


LA_GETRS solves a system of linear equations $AX = B$ or $A^T X = B$ with a general $n\times n$ real / complex matrix $A$ using the $LU$ 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) $\mid$ 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) $\mid$ KIND(1.0D0)


LA_GECON estimates the reciprocal of the condition number of a general real / complex matrix $A$, using the $LU$ 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) $\mid$ KIND(1.0D0)
rhs ::= B(LDB,*) $\mid$ B(*)
sol ::= X(LDX,*) $\mid$ X(*)
err ::= FERR(*), BERR(*) $\mid$ 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) $\mid$ KIND(1.0D0)
rhs ::= B(LDB,*) $\mid$ B(*)
sol ::= X(LDX,*) $\mid$ X(*)
err ::= FERR(*), BERR(*) $\mid$ 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 $\mid$ COMPLEX
wp ::= KIND(1.0) $\mid$ KIND(1.0D0)


LA_GETRI computes the inverse of a matrix using the $LU$ 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 $\mid$ COMPLEX
wp ::= KIND(1.0) $\mid$ KIND(1.0D0)


LA_GEEQU computes row and column scalings intended to equilibrate an $m \times n$ general real / complex matrix $A$ 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 $\mid$ COMPLEX
wp ::= KIND(1.0) $\mid$ KIND(1.0D0)


LA_GBTRF computes an $LU$ factorization of a real / complex $m \times n$ band matrix $A$ 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 $\mid$ COMPLEX
wp ::= KIND(1.0) $\mid$ KIND(1.0D0)
rhs ::= B(LDB,*) $\mid$ B(*)


LA_GBTRS solves a system of linear equations $AX = B$ or $A^T X = B$ with a general real / complex band matrix $A$ using the $LU$ 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) $\mid$ 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) $\mid$ KIND(1.0D0)


LA_GBCON estimates the reciprocal of the condition number of a real / complex band matrix $A$, using the $LU$ 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) $\mid$ KIND(1.0D0)
rhs ::= B(LDB,*) $\mid$ B(*)
sol ::= X(LDX,*) $\mid$ X(*)
err ::= FERR(*), BERR(*) $\mid$ 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) $\mid$ KIND(1.0D0)
rhs ::= B(LDB,*) $\mid$ B(*)
sol ::= X(LDX,*) $\mid$ X(*)
err ::= FERR(*), BERR(*) $\mid$ 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 $\mid$ COMPLEX
wp ::= KIND(1.0) $\mid$ KIND(1.0D0)


LA_GBEQU computes row and column scalings intended to equilibrate an $m \times n$ real / complex band matrix $A$ 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 $\mid$ COMPLEX
wp ::= KIND(1.0) $\mid$ KIND(1.0D0)


LA_SGTTRF computes an $LU$ factorization of a real / complex tridiagonal matrix $A$ 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 $\mid$ COMPLEX
wp ::= KIND(1.0) $\mid$ KIND(1.0D0)
rhs ::= B(LDB,*) $\mid$ B(*)


LA_GTTRS solves one of the systems of equations $AX = B$ or $A^T X = B$, with a tridiagonal real / complex matrix $A$ using the $LU$ 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) $\mid$ 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) $\mid$ KIND(1.0D0)


LA_GTCON estimates the reciprocal of the condition number of a real / complex tridiagonal matrix $A$ using the $LU$ 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) $\mid$ KIND(1.0D0)
rhs ::= B(LDB,*) $\mid$ B(*)
sol ::= X(LDX,*) $\mid$ X(*)
err ::= FERR(*), BERR(*) $\mid$ 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) $\mid$ KIND(1.0D0)
rhs ::= B(LDB,*) $\mid$ B(*)
sol ::= X(LDX,*) $\mid$ X(*)
err ::= FERR(*), BERR(*) $\mid$ 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 up previous contents index
Next: Symmetric/Hermitian Positive Definite Linear Up: Computational Routines for Linear Previous: Computational Routines for Linear   Contents   Index
Susan Blackford 2001-08-19