Solves a complex sparse Hermitian positive definite system of linear equations, given the Cholesky factorization of the coefficient matrix.
A — Real vector of length 2N − 1 containing the first row
of the coefficient matrix followed by its first column beginning with the second
element. (Input)
See Comment 2.
B — Real vector of length N containing the right-hand side of the linear system. (Input)
X — Real vector of length N containing the
solution of the linear system. (Output)
If B is not needed then
B and X may share the same
storage locations.
N — Order of the matrix represented by A.
(Input)
Default: N = (size (A,1) +1)/2
IPATH — Integer flag. (Input)
IPATH = 1
means the system Ax = B is solved.
IPATH = 2 means the
system AT
x = B is solved.
Default: IPATH =1.
Generic: CALL LSLTO (A, B, X [,…])
Specific: The specific interface names are S_LSLTO and D_LSLTO.
Single: CALL LSLTO (N, A, B, IPATH, X)
Double: The double precision name is DLSLTO.
Toeplitz matrices have entries that are constant along each diagonal, for example,
The routine LSLTO is based on the routine TSLS in the TOEPLITZ package, see Arushanian et al. (1983). It is based on an algorithm of Trench (1964). This algorithm is also described by Golub and van Loan (1983), pages 125−133.
1. Workspace may be explicitly provided, if desired, by use of L2LTO/DL2LTO. The reference is:
CALL L2LTO (N, A, B, IPATH, X, WK)
The additional argument is:
WK — Work vector of length 2N − 2.
2. Because
of the special structure of Toeplitz matrices, the first row and the first
column of a Toeplitz matrix completely characterize the matrix. Hence, only the
elements
A(1, 1), …, A(1, N), A(2, 1), …, A(N, 1) need to be
stored.
A system of four linear equations is solved. Note that only the first row and column of the matrix A are entered.
USE
LSLTO_INT
USE WRRRN_INT
! Declare variables
INTEGER N
PARAMETER (N=4)
REAL A(2*N-1), B(N), X(N)
! Set values for A, and B
!
! A = ( 2 -3 -1 6 )
! ( 1 2 -3 -1 )
! ( 4 1 2 -3 )
! ( 3 4 1 2 )
!
! B = ( 16 -29 -7 5 )
!
DATA A/2.0, -3.0, -1.0, 6.0, 1.0, 4.0, 3.0/
DATA B/16.0, -29.0, -7.0, 5.0/
! Solve AX = B
CALL LSLTO (A, B, X)
! Print results
CALL WRRRN ('X', X, 1, N, 1)
END
X
1
2 3
4
-2.000 -1.000 7.000 4.000
Visual Numerics, Inc. PHONE: 713.784.3131 FAX:713.781.9260 |