Purpose
=======
DGBSV computes the solution to a real system of linear equations
A * X = B, where A is a band matrix of order N with KL subdiagonals
and KU superdiagonals, and X and B are N-by-NRHS matrices.
The LU decomposition with partial pivoting and row interchanges is
used to factor A as A = L * U, where L is a product of permutation
and unit lower triangular matrices with KL subdiagonals, and U is
upper triangular with KL+KU superdiagonals. The factored form of A
is then used to solve the system of equations A * X = B.
Namespace: DotNumerics.LinearAlgebra.CSLapackAssembly: DWSIM.MathOps.DotNumerics (in DWSIM.MathOps.DotNumerics.dll) Version: 1.0.0.0 (1.0.0.0)
Syntax public void Run(
int N,
int KL,
int KU,
int NRHS,
ref double[] AB,
int offset_ab,
int LDAB,
ref int[] IPIV,
int offset_ipiv,
ref double[] B,
int offset_b,
int LDB,
ref int INFO
)
Public Sub Run (
N As Integer,
KL As Integer,
KU As Integer,
NRHS As Integer,
ByRef AB As Double(),
offset_ab As Integer,
LDAB As Integer,
ByRef IPIV As Integer(),
offset_ipiv As Integer,
ByRef B As Double(),
offset_b As Integer,
LDB As Integer,
ByRef INFO As Integer
)
Request Example
View SourceParameters
- N Int32
-
(input) INTEGER
The number of linear equations, i.e., the order of the
matrix A. N .GE. 0.
- KL Int32
-
(input) INTEGER
The number of subdiagonals within the band of A. KL .GE. 0.
- KU Int32
-
(input) INTEGER
The number of superdiagonals within the band of A. KU .GE. 0.
- NRHS Int32
-
(input) INTEGER
The number of right hand sides, i.e., the number of columns
of the matrix B. NRHS .GE. 0.
- AB Double
-
(input/output) DOUBLE PRECISION array, dimension (LDAB,N)
On entry, the matrix A in band storage, in rows KL+1 to
2*KL+KU+1; rows 1 to KL of the array need not be set.
The j-th column of A is stored in the j-th column of the
array AB as follows:
AB(KL+KU+1+i-j,j) = A(i,j) for max(1,j-KU).LE.i.LE.min(N,j+KL)
On exit, details of the factorization: U is stored as an
upper triangular band matrix with KL+KU superdiagonals in
rows 1 to KL+KU+1, and the multipliers used during the
factorization are stored in rows KL+KU+2 to 2*KL+KU+1.
See below for further details.
- offset_ab Int32
-
- LDAB Int32
-
(input) INTEGER
The leading dimension of the array AB. LDAB .GE. 2*KL+KU+1.
- IPIV Int32
-
(output) INTEGER array, dimension (N)
The pivot indices that define the permutation matrix P;
row i of the matrix was interchanged with row IPIV(i).
- offset_ipiv Int32
-
- B Double
-
(input/output) DOUBLE PRECISION array, dimension (LDB,NRHS)
On entry, the N-by-NRHS right hand side matrix B.
On exit, if INFO = 0, the N-by-NRHS solution matrix X.
- offset_b Int32
-
- LDB Int32
-
(input) INTEGER
The leading dimension of the array B. LDB .GE. max(1,N).
- INFO Int32
-
(output) INTEGER
= 0: successful exit
.LT. 0: if INFO = -i, the i-th argument had an illegal value
.GT. 0: if INFO = i, U(i,i) is exactly zero. The factorization
has been completed, but the factor U is exactly
singular, and the solution has not been computed.
See Also