Aspen HSL (formerly Harwell Subroutine Library)
Latest release - HSL 2007
HSL (formerly the Harwell Subroutine Library) is a collection
of Fortran packages for large scale scientific computation
written and developed by the Numerical
Analysis Group at the Rutherford Appleton Laboratory and
by other experts and collaborators. It offers users a high
standard of reliability and has an international reputation
as a source of robust and efficient numerical software.
HSL packages are regularly incorporated into advanced software
applications, allowing software and application developers
to leverage the many thousands of programming hours invested
in the HSL packages and ensuring tested, high quality, efficient
algorithms.
More
than of 2000 organisations world-wide use HSL, with packages
incorporated, under licence, into more than 90 commercially
available software products.
Benefits & advantages
- Speed
up application development cycle, reducing time-to-market
and gaining competitive advantage
- Reduce
development costs
- Free
up time to focus on specialist aspects of applications
- Improve
application accuracy and robustness
- HSL
packages are thread safe enabling the user
to safely run multiple instances of the package simultaneously
in different threads or on different processors.
HSL 2007
HSL
2007 contains codes for Automatic
Differentiation, Differential Equations, Eigenvalues &
Eigenvectors, Mathematical Functions, Sorting, Linear Programming,
Linear Algebra, Nonlinear Equations, Polynomials, Optimization
and Non-linear data fitting.
It contains many new packages, which have been developed as
a result of recent research into advanced numerical algorithms.
Click here to view the catalogue.
New in this initial release:
New packages
- HSL_EA19 Sparse symmetric or Hermitian: leftmost eigenpairs
- HSL_KB22 (replaces HSL_KB12) Sorting reals using the Heapsort method
- HSL_MA54 Kernel code for HSL_MA77 (definite case)
- HSL_MA74 Kernel code for HSL_MA78
- HSL_MA78 Sparse unsymmetric finite-element system: multifrontal out of core
- HSL_MC64 Permute and scale a sparse unsymmetric or rectangular
matrix to put large entries on the diagonal
- HSL_MC68 Symmetric sparse matrix: compute elimination orderings
- MF64 Permute and scale a sparse complex unsymmetric matrix to
put large entries on the diagonal
- HSL_MI13 constructs preconditioners for saddle point systems
- MI15 Unsymmetric system: flexible GMRES
- HSL_MI20 Unsymmetric system: algebraic multigrid preconditioner
- HSL_OF01 Fortran virtual memory
- HSL_ZB01 Reallocate an array
- HSL_ZD11 (replaces HSL_KB12)
Derived type for sparse matrix storage schemes
List of packages available in this release - HSL
2007
Many
of the older HSL packages have gradually been superseded by
newer versions, with increases in functionality, improved
interfaces, or speed of execution. As a result, HSL is now
arranged in two parts, the main library, HSL
2007; and an archive, HSL
Archive. The HSL Archive comprises older packages that
were part of previous releases of HSL, many of which have
been superseded by more modern codes.
Design
and language of HSL
HSL 2007 and the HSL Archive are arranged as collections of
Fortran 77 and Fortran 90/95 packages, each of which consists
of either a single program unit or a set of program units.
Almost all the Fortran 77 program units are subroutines, but
there are also some functions and some HSL Archive packages
contain block data subprograms to provide default values for
variables in common blocks. The Fortran 90/95 program units
are modules. Each package performs a basic numerical task
and has been designed to be incorporated into programs. Each
has its own specification document (available as a PDF file),
which gives full details about how to use the package.