Reorganizing algorithms into "blocked" versions that are significantly faster on modern hardware.
EISPACK was designed to be a "pathway" system. Users would select a specific path of subroutines based on the characteristics of their matrix and the specific data required: Matrix Eigensystem Routines — EISPACK Guide
Specifically Level 3 BLAS, which performs matrix-matrix operations to maximize data reuse in cache. Routines are modular, allowing users to calculate all
Despite being technologically superseded, the EISPACK Guide remains a foundational text for numerical analysts. It established the standards for , including the use of "check-results" and rigorous error analysis. The logic embedded in its Fortran IV code continues to serve as the "gold standard" for verifying the correctness of new numerical libraries across all modern programming languages. Numerical Stability and the QR Algorithm
Routines are modular, allowing users to calculate all eigenvalues, only a subset within a range, only the eigenvectors, or both. The Systematic Approach: The "Driver" Philosophy
In response, the NATS project (National Activity to Test Software), involving Argonne National Laboratory and various universities, began translating and refining these algorithms. The result was , a milestone in software engineering that prioritized numerical stability, documentation, and systematic testing over simple execution speed. Scope and Mathematical Coverage
One of EISPACK's greatest innovations was the introduction of . While the library contains dozens of low-level "building block" routines—such as TRED1 for Householder reduction or IMTQL1 for the implicit QL algorithm—the drivers (like RG for general real matrices or RS for real symmetric matrices) simplified the user experience. A single call to a driver would handle the necessary transformations, the eigenvalue extraction, and the back-transformations of eigenvectors. Numerical Stability and the QR Algorithm