Converts a real matrix in band storage mode to a real general matrix.
A — Real (NUC + 1 + NLC) by N array containing the band matrix in band storage mode. (Input)
NLC — Number of lower codiagonals in A. (Input)
NUC — Number of upper codiagonals in A. (Input)
B — Real N by N array containing the matrix. (Output)
N — Order of the
matrices A and
B.
(Input)
Default: N = size
(A,2).
LDA — Leading
dimension of A
exactly as specified in the dimension statement of the calling
program. (Input)
Default: LDA = size
(A,1).
LDB — Leading
dimension of B
exactly as specified in the dimension statement of the calling
program. (Input)
Default: LDB = size
(B,1).
Generic: CALL CRBRG (A, NLC, NUC, B [,…])
Specific: The specific interface names are S_CRBRG and D_CRBRG.
Single: CALL CRBRG (N, A, LDA, NLC, NUC, B, LDB)
Double: The double precision name is DCRBRG.
The routine CRBRG
converts the real band matrix A of order N in band storage mode
into the real
N ´ N
general matrix B with mu = NUC
upper codiagonals and ml = NLC
lower codiagonals. The first mu rows of A are
copied to the upper codiagonals of B, the next row of A is copied
to the diagonal of B, and the last ml rows of A are
copied to the lower codiagonals of B.
A real band matrix of order 3 in band storage mode with one upper codiagonal and one lower codiagonal is copied to a 3 ´ 3 real general matrix.
USE CRBRG_INT
USE WRRRN_INT
IMPLICIT NONE
! Declare variables
INTEGER LDA, LDB, N, NLC, NUC
PARAMETER (LDA=3, LDB=3, N=3, NLC=1, NUC=1)
!
REAL A(LDA,N), B(LDB,N)
! Set values for A (in band mode)
! A = ( 0.0 1.0 1.0)
! ( 4.0 3.0 2.0)
! ( 2.0 2.0 0.0)
!
DATA A/0.0, 4.0, 2.0, 1.0, 3.0, 2.0, 1.0, 2.0, 0.0/
! Convert band matrix A to matrix B
CALL CRBRG (A, NLC, NUC, B)
! Print results
CALL WRRRN ('B', B)
END
B
1 2
3
1 4.000 1.000 0.000
2
2.000 3.000 1.000
3 0.000
2.000 2.000
Visual Numerics, Inc. PHONE: 713.784.3131 FAX:713.781.9260 |