HSL, originally the Harwell Subroutine Library, is a collection of Fortran 77 and 95 codes that address core problems in numerical analysis. It is primarily developed by the Numerical Analysis Group at the Rutherford Appleton Laboratory with contributions from other experts in the field.
HSL codes are easily recognizable by the format of their names, consisting of two letters followed by two numbers, dating back to early versions of Fortran's limited subroutine name length. The letters denote a broad classification of the problem they solve, and the numbers serve to distinguish different codes. For example, the well known sparse LU code MA28 (superseded by MA48) is a Matrix Algebra code number 28. Fortran 95 codes are differentiated from Fortran 77 codes by the prefix HSL_.
Original development of the Harwell Subroutine Library began in 1963 by Mike Powell and Mike Hopper for internal use on an IBM mainframe at AERE Harwell. Early contributors also included Alan Curtis. With a spreading reputation, the Library was distributed externally for the first time in 1964 upon request. The first library catalog (AERE Report M-1748) was released in 1966.
Over the intervening years, HSL has striven to maintain a high standard of reliability and has garnered a worldwide reputation as a prime source of numerical software. It has undergone a number of changes to reflect newly available features of the Fortran language, completing in 1990 the conversion to Fortran 77, and more recently, the entire Library has been made thread safe. Many newer codes are written in Fortran 95.
New packages continue to be developed, with a new release issued every two to three years. Many older codes have now been superseded and are available in the HSL Archive.
The current version, HSL 2007 is a commercial product sold by AspenTech, but is also available without charge to individual academics direct from STFC for teaching and their own academic research purposes. [1] HSL is currently not sold to commercial competitors of Aspen Technology. [2]
Obsolete routines are stored in the HSL archive and are available for personal non-commercial use by anyone following registration with HSL. Commercial use and distribution of these routines still requires a purchased licence. [3]
Fortran is a third generation, compiled, imperative programming language that is especially suited to numeric computation and scientific computing.
NumPy is a library for the Python programming language, adding support for large, multi-dimensional arrays and matrices, along with a large collection of high-level mathematical functions to operate on these arrays. The predecessor of NumPy, Numeric, was originally created by Jim Hugunin with contributions from several other developers. In 2005, Travis Oliphant created NumPy by incorporating features of the competing Numarray into Numeric, with extensive modifications. NumPy is open-source software and has many contributors. NumPy is a NumFOCUS fiscally sponsored project.
IDL, short for Interactive Data Language, is a programming language used for data analysis. It is popular in particular areas of science, such as astronomy, atmospheric physics and medical imaging. IDL shares a common syntax with PV-Wave and originated from the same codebase, though the languages have subsequently diverged in detail. There are also free or costless implementations, such as GNU Data Language (GDL) and Fawlty Language (FL).
Numerical Recipes is the generic title of a series of books on algorithms and numerical analysis by William H. Press, Saul A. Teukolsky, William T. Vetterling and Brian P. Flannery. In various editions, the books have been in print since 1986. The most recent edition was published in 2007.
LAPACK is a standard software library for numerical linear algebra. It provides routines for solving systems of linear equations and linear least squares, eigenvalue problems, and singular value decomposition. It also includes routines to implement the associated matrix factorizations such as LU, QR, Cholesky and Schur decomposition. LAPACK was originally written in FORTRAN 77, but moved to Fortran 90 in version 3.2 (2008). The routines handle both real and complex matrices in both single and double precision. LAPACK relies on an underlying BLAS implementation to provide efficient and portable computational building blocks for its routines.
Basic Linear Algebra Subprograms (BLAS) is a specification that prescribes a set of low-level routines for performing common linear algebra operations such as vector addition, scalar multiplication, dot products, linear combinations, and matrix multiplication. They are the de facto standard low-level routines for linear algebra libraries; the routines have bindings for both C and Fortran. Although the BLAS specification is general, BLAS implementations are often optimized for speed on a particular machine, so using them can bring substantial performance benefits. BLAS implementations will take advantage of special floating point hardware such as vector registers or SIMD instructions.
EISPACK is a software library for numerical computation of eigenvalues and eigenvectors of matrices, written in FORTRAN. It contains subroutines for calculating the eigenvalues of nine classes of matrices: complex general, complex Hermitian, real general, real symmetric, real symmetric banded, real symmetric tridiagonal, special real tridiagonal, generalized real, and generalized real symmetric matrices. In addition it includes subroutines to perform a singular value decomposition.
Mathematical software is software used to model, analyze or calculate numeric, symbolic or geometric data.
The CERN Program Library (CERNLIB) is a collection of general purpose software libraries and program modules for scientific computing, developed at the European Organization for Nuclear Research CERN. The application area of the library focuses on physics research, in particular high energy physics, involving general mathematics, data analysis, detectors simulation, data-handling, numerical analysis, and others, applicable to a wide range of scientific problems. Many modules are written in the FORTRAN 77 language.
MINPACK is a library of FORTRAN subroutines for the solving of systems of nonlinear equations, or the least-squares minimization of the residual of a set of linear or nonlinear equations.
Iain S. Duff is a British mathematician and computer scientist, known for his work in numerical methods and software for solving problem with sparse matrices, in particular the Harwell Subroutine Library. From 1986 to 2009, he was the Group Leader of Numerical Analysis at Harwell Laboratory, which has moved in 1990 to the Rutherford Appleton Laboratory. He is also the Project Leader for the Parallel Algorithms Group at CERFACS in Toulouse.
The James H. Wilkinson Prize for Numerical Software is awarded every four years to honor outstanding contributions in the field of numerical software. The award is named to commemorate the outstanding contributions of James H. Wilkinson in the same field.
SLATEC Common Mathematical Library is a FORTRAN 77 library of over 1,400 general purpose mathematical and statistical routines. The code was developed at US government research laboratories and is therefore public domain software.
UMFPACK is a set of routines for solving unsymmetric sparse linear systems of the form Ax=b, using the Unsymmetric MultiFrontal method. Written in ANSI/ISO C and interfaces with
QUADPACK is a FORTRAN 77 library for numerical integration of one-dimensional functions. It was included in the SLATEC Common Mathematical Library and is therefore in the public domain. The individual subprograms are also available on netlib.
The OS/360 Object File Format is the standard object module file format for the IBM DOS/360, OS/360 and VM/370, Univac VS/9, and Fujitsu BS2000 mainframe operating systems. In the 1990s, the format was given an extension with the XSD-type record for the MVS Operating System to support longer module names in the C Programming Language. This format is still in use by the z/VSE operating system. In contrast, it has been superseded by the GOFF file format on the MVS Operating System and on the z/VM Operating System. Since the MVS and z/VM loaders will still handle this older format, some compilers have chosen to continue to produce this format instead of the newer GOFF format.
Absoft Fortran Compilers are set of Fortran compilers for Microsoft Windows, Apple Macintosh, and Linux produced by Absoft Corporation. The compilers are source code compatible across platforms.
Jennifer Ann Scott is a British mathematician specialising in numerical analysis, sparse matrix computations, and parallel computing. She is a professor of applied mathematics at the University of Reading, where she directs the Centre for the Mathematics of Planet Earth, and a Group Leader and Individual Merit Research Fellow for the Science and Technology Facilities Council at the Rutherford Appleton Laboratory.