Affiliate disclosure
Book titles on this page link to Amazon. As an Amazon Associate, DataField.Dev earns from qualifying purchases — at no additional cost to you.
Further Reading: Linear Algebra and LAPACK
The good news about this chapter is that its primary sources are the actual documentation of the actual
library you are calling — there is no better reference for dgesv than the LAPACK page for dgesv. Sources
are tagged Tier 1 (canonical, confidently recommended) and Tier 2 (real and worth seeking; confirm
the current edition or URL yourself). The theme: read enough to be fluent at the reference page, because
the skill that matters is not memorizing interfaces but decoding a routine name and reading its argument list.
The canonical references
- The LAPACK Users' Guide (Anderson et al., SIAM), and the online LAPACK documentation at
netlib.org/lapack. The definitive source for every routine: the naming scheme, the calling sequences, what each argument means, and which are overwritten. When you meet a routine you have not used, this is where you read it. Tier 1. - Golub and Van Loan, Matrix Computations (Johns Hopkins University Press). The standard graduate text on the algorithms underneath LAPACK — LU with partial pivoting, QR, the symmetric eigenproblem, the SVD, and the conditioning analysis that explains why pivoting and the SVD matter. Read it to understand why the library does what it does. Tier 1.
- Trefethen and Bau, Numerical Linear Algebra (SIAM). A beautifully written, more approachable companion to Golub and Van Loan; its lectures on conditioning, stability, and the SVD are the clearest available, and directly illuminate this chapter's Case Study 1 (pivoting) and Case Study 2 (normal-equations conditioning). Tier 1.
Using LAPACK from modern Fortran
fortran-lang.org— the LAPACK/BLAS tutorials, and thestdlib_linalgdocumentation (stdlib.fortran-lang.org). The community's guide to calling LAPACK the modern way, plus stdlib's type-checkedsolve,eig,svd, andlstsqwrappers that spare you the raw calling convention. The best free companion to this chapter. Tier 1.- The reference BLAS and LAPACK on Netlib, and the OpenBLAS project (
openblas.net). The source you link against, and the tuned drop-in replacement. OpenBLAS's documentation explains the build and threading controls that turn "correct" into "fast" without changing your code. Tier 1. - The Intel oneMKL documentation and its Link Line Advisor. If you run on Intel hardware, MKL is typically
the fastest BLAS/LAPACK, and the Link Line Advisor generates the exact (fiddly)
-lflags for your case. Tier 2.
Going deeper — sparse and large
- The SuiteSparse (
sparse.tamu.edu), SuperLU, MUMPS, and PETSc project documentation. When your matrix is large and sparse (§21.6), these are where the solvers live. PETSc in particular is the standard toolkit for sparse and parallel linear algebra in scientific Fortran, and its manual is a numerical-methods education in itself. Tier 2.
Primary sources and history
- The original BLAS and LAPACK papers (the 1979 Level-1 BLAS paper by Lawson, Hanson, Kincaid & Krogh; the Level-3 BLAS and LAPACK design papers by Dongarra and colleagues). Read them to see the arithmetic-intensity argument of §21.2 being made by the people who built the libraries around it. Tier 2.
Suggested order
- Work this chapter's
code/examples with the LAPACK online docs open beside them: for each call, find the routine's page and match every argument to the description. That single habit is LAPACK fluency. - Read Trefethen and Bau on conditioning and stability — it makes Case Studies 1 and 2 click all the way down, and it is genuinely enjoyable.
- Reach for
stdlib_linalgfor everyday solves once you understand the rawdgesv; drop to the raw call only when you need an option the wrapper does not expose. - Save Golub and Van Loan and the PETSc manual for when a matrix gets large or sparse and you need the algorithm, not just the interface.