sgbsv
sgbsv - compute 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
SUBROUTINE SGBSV( N, NSUB, NSUPER, NRHS, A, LDA, IPIVOT, B, LDB,
* INFO)
INTEGER N, NSUB, NSUPER, NRHS, LDA, LDB, INFO
INTEGER IPIVOT(*)
REAL A(LDA,*), B(LDB,*)
SUBROUTINE SGBSV_64( N, NSUB, NSUPER, NRHS, A, LDA, IPIVOT, B, LDB,
* INFO)
INTEGER*8 N, NSUB, NSUPER, NRHS, LDA, LDB, INFO
INTEGER*8 IPIVOT(*)
REAL A(LDA,*), B(LDB,*)
SUBROUTINE GBSV( [N], NSUB, NSUPER, [NRHS], A, [LDA], IPIVOT, B,
* [LDB], [INFO])
INTEGER :: N, NSUB, NSUPER, NRHS, LDA, LDB, INFO
INTEGER, DIMENSION(:) :: IPIVOT
REAL, DIMENSION(:,:) :: A, B
SUBROUTINE GBSV_64( [N], NSUB, NSUPER, [NRHS], A, [LDA], IPIVOT, B,
* [LDB], [INFO])
INTEGER(8) :: N, NSUB, NSUPER, NRHS, LDA, LDB, INFO
INTEGER(8), DIMENSION(:) :: IPIVOT
REAL, DIMENSION(:,:) :: A, B
#include <sunperf.h>
void sgbsv(int n, int nsub, int nsuper, int nrhs, float *a, int lda, int *ipivot, float *b, int ldb, int *info);
void sgbsv_64(long n, long nsub, long nsuper, long nrhs, float *a, long lda, long *ipivot, float *b, long ldb, long *info);
sgbsv 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.
-
* N (input)
-
The number of linear equations, i.e., the order of the
matrix A. N >= 0.
-
* NSUB (input)
-
The number of subdiagonals within the band of A. NSUB >= 0.
-
* NSUPER (input)
-
The number of superdiagonals within the band of A. NSUPER >= 0.
-
* NRHS (input)
-
The number of right hand sides, i.e., the number of columns
of the matrix B. NRHS >= 0.
-
* A (input/output)
-
On entry, the matrix A in band storage, in rows NSUB+1 to
2*NSUB+NSUPER+1; rows 1 to NSUB of the array need not be set.
The j-th column of A is stored in the j-th column of the
array A as follows:
A(NSUB+NSUPER+1+i-j,j) = A(i,j) for max(1,j-NSUPER)<=i<=min(N,j+NSUB)
On exit, details of the factorization: U is stored as an
upper triangular band matrix with NSUB+NSUPER superdiagonals in
rows 1 to NSUB+NSUPER+1, and the multipliers used during the
factorization are stored in rows NSUB+NSUPER+2 to 2*NSUB+NSUPER+1.
See below for further details.
-
* LDA (input)
-
The leading dimension of the array A. LDA >= 2*NSUB+NSUPER+1.
-
* IPIVOT (output)
-
The pivot indices that define the permutation matrix P;
row i of the matrix was interchanged with row IPIVOT(i).
-
* B (input/output)
-
On entry, the N-by-NRHS right hand side matrix B.
On exit, if INFO = 0, the N-by-NRHS solution matrix X.
-
* LDB (input)
-
The leading dimension of the array B. LDB >= max(1,N).
-
* INFO (output)
-