The interactive file manager requires Javascript. Please enable it or use sftp or scp.
You may still browse the files here.

Download Latest Version geomlib.tar.gz (58.3 kB)
Email in envelope

Get an email when there's a new version of CFD Utilities

Home / linsys
Name Modified Size InfoDownloads / Week
Parent folder
linsys.tar.gz 2022-09-02 47.1 kB
symevdsolve.f90 2022-01-31 2.4 kB
symevd.f90 2022-01-30 3.1 kB
README 2022-01-18 3.2 kB
safeguarded_lsqr.f90 2019-10-17 3.2 kB
Totals: 5 Items   59.1 kB 0
The linsys utilities deal with linear systems of equations (square or
over- or underdetermined).  All except LSQR and SYMMLQ use direct (non-
iterative) factorization methods. Only LSQR and SYMMLQ are suited to large
sparse systems.

For overdetermined linear least squares problems, Ax ~ b, the QR
factorization method of HDESOL and its relatives is recommended over
the commonly used normal equations method (A'Ax = A'b) as the orthogonal
factorization does not square the condition number of the LHS matrix the
way forming A'A does.

For underdetermined linear least squares, the method of HDECOM + HSULVE
provides the shortest-length solution.

Recently (10-16-2019), safeguarded_lsqr.f90 has been added as a workaround
for possible matrix singularity in a 3x3 Newton iteration.  It ensures full
rank for any matrix A(m,n).

Jan. 2022:  For stabilized solution of ill-conditioned symmetric systems,
            see symevd and symevdsolve.

bloktr.f             Solve one block tridiagonal system, any block size
btr4.f               Solve one block tridiagonal system, block size 4
cholesky.f           Cholesky factorization A = GG' for symmetric A as rows
cholesky_factorization.f  Cholesky factorization for symmetric A as A(n,n)
cholesky_solution.f  Corresponding solution of Ax = b for given RHS b
chsolve.f            CHOLESKY companion; triangle factor G stored as rows
colslv.f             Block bidiagonal solver from collocation techniques
decbt.f              Block tridiagonal decomposition for multiple RHS cases
decbtc.f             Cyclic block tridiagonal decomposition; see SOLBTC
decomp.f90           LU decomposition: Gaussian elimination w/ partial pivoting
decslv.f             Combines DECOMP & SOLVE for one RHS; b(:) is A(:,n+1)
dtdlsq.f             Diag. + TriDiag. system; Least SQuares soln.; QR factor
hdecom.f             QR factorization of A(m,n), m >= n for more than 1 RHS
hdesol.f             QR factorizn. & solution of A x ~ b; one RHS; m >= n
hdesolw.f            Weighted linear least squares variant of HDESOL
hsolve.f             HDECOM companion for m >= n cases
hsulve.f             HDECOM companion for m < n cases
lsqr.f               [Damped] linear least squares or unsymmetric Ax = b
lusolve.f90          May be more convenient than DECSLV: A(ndim,n) and b(n)
qrdiag.f             QR factrzn. & soln. of non-diag-dominant tridiag. sys.
safeguarded_lsqr.f90 Intended to work around rank deficiency for any A(m,n)
solbt.f              DECBT compantion; completes block tridiagonal solution
solbtc.f             DECBTC companion; completes cyclic block tridiag. soln.
solve.f90            DECOMP companion for multiple RHS cases
symevd.f90           Eigenvalue decomposition for symmetric A
symevdsolve.f90      Companion to symevd solves for one RHS; treats ill-conditioning
symmlq.f             Solves Ax = b for large sparse symmetric indefinite A
trdiag.f             Solution of one diagonally dominant tridiagonal system
tricps.f             Soln. of 1 cyclic +ve definite symmetric tridiag. system
trid2r.f             TRDIAG variant for the two-RHS case
trid3r.f             TRDIAG variant for the three-RHS case
trip.f               Solves one periodic tridiagonal system
Source: README, updated 2022-01-18