HSL Software Index
For information on licencing HSL please see our licencing page.
Please remember to cite HSL as:
"HSL. A collection of Fortran codes for large scale scientific computation. http://www.hsl.rl.ac.uk/"
HSL has moved to a rolling release schedule. New and upgraded
packages are added continuously.
- EIGENVALUES AND EIGENVECTORS
- EA: Eigenvalues and eigenvectors of real symmetric matrices
- EA16
- Compute selected eigenpairs using rational Lanczos method
- HSL_EA19
- Sparse symmetric or Hermitian: leftmost eigenpairs
- HSL_EA20
- s-root of a sparse self-adjoint positive-definite pencil
- EA22
- Sparse symmetric: simultaneous iteration
- EA25
- Sparse symmetric: Lanczos for the spectrum
- EB: Eigenvalues and eigenvectors of general matrices
- EB13
- Sparse unsymmetric: Arnoldi’s method
- EB22
- Sparse unsymmetric: subspace iteration
- EP: Parallel eigenvalues and eigenvectors of real symmetric matrices
- EP25
- Sparse symmetric: Lanczos for the spectrum
- MATHEMATICAL FUNCTIONS
- FA: Random numbers
- FA14
- Uniform distribution
- HSL_FA14
- Uniform distribution
- FD: Simple Functions
- FD15
- Real-valued machine constants
- SORTING
- KB: Sorting numbers
- KB05
- Sort numbers into ascending order using Quicksort
- KB06
- Sort numbers into descending order using Quicksort
- KB07
- Sort numbers into ascending order with indexing using Quicksort
- KB08
- Sort numbers into descending order with indexing using Quicksort
- HSL_KB22
- Sorting reals using the Heapsort method
- LINEAR PROGRAMMING
- LA: Linear prgramming, i.e. minimization of a linear function subject to linear constraints
- LA04
- Sparse linear programming: steepest-edge simplex method
- LA15
- Sparse mathematical programming bases: factorize and update
- LINEAR ALGEBRA
- MA: Solution of linear systems
- MA38
- Sparse unsymmetric system: unsymmetric multifrontal method
- MA41
- Sparse unsymmetric system: unsymmetric multifrontal method
- MA42
- Sparse unsymmetric system: out-of-core frontal method
- HSL_MA42_ELEMENT
- Unsymmetric finite-element system: out-of-core frontal method (real and complex)
- HSL_MA42
- Sparse unsymmetric system: out-of-core frontal method
- MA43
- Sparse unsymmetric system: row-by-row frontal method
- MA44
- Over-determined linear system: least-squares solution
- MA46
- Sparse unsymmetric finite-element system: multifrontal
- MA48
- Sparse unsymmetric system: driver for conventional direct method
- HSL_MA48
- Sparse unsymmetric system: driver for conventional direct method
- MA49
- Sparse over-determined system: least squares by QR
- MA50
- Sparse unsymmetric system: conventional direct method
- MA51
- Auxiliary for MA48 and MA50: identify ignored rows or columns in the rectangular or rank-deficient case, compute determinant
- MA52
- Sparse unsymmetric finite-element system: out-of-core multiple front method
- HSL_MA54
- Definite symmetric full matrix: partial or complete factorization and solution
- HSL_MA55
- Band symmetric positive-definite system
- MA57
- Sparse symmetric system: multifrontal method
- HSL_MA57
- Sparse symmetric system: multifrontal method
- MA60
- Iterative refinement and error estimation
- MA61
- Sparse symmetric positive-definite system: incomplete factorization
- MA62
- Sparse symmetric finite-element system: out-of-core frontal method
- HSL_MA64
- Indefinite symmetric full matrix: partial or complete factorization and solution
- MA65
- Unsymmetric banded system of linear equations
- MA67
- Sparse symmetric system, zeros on diagonal: blocked conventional
- MA69
- Unsymmetric system whose leading subsystem is easy to solve
- HSL_MA69
- Unsymmetric system whose leading subsystem is easy to solve
- MA72
- Sparse symmetric finite-element system: out-of-core multiple front method
- HSL_MA74
- Unsymmetric full matrix: partial or complete factorization and solution
- MA75
- Sparse over-determined system: weighted least squares
- HSL_MA77
- Sparse symmetric system: multifrontal out of core
- HSL_MA78
- Sparse unsymmetric finite-element system: multifrontal out of core
- HSL_MA79
- Sparse symmetric system: mixed precision
- HSL_MA85
- Sparse diagonally-weighted linear least squares solver
- HSL_MA86
- Sparse solver for real and complex indefinite matrices using OpenMP
- HSL_MA87
- Sparse Cholesky solver for real/complex matrices using OpenMP
- HSL_MA97
- Bit-compatible parallel sparse symmetric/Hermitian solver using OpenMP
- MC: Computations with real matrices and vectors
- MC13
- Permute a sparse matrix to block triangular form
- MC21
- Permute a sparse matrix to put entries on the diagonal
- MC22
- Permute a sparse matrix given row and column permutations
- MC25
- Permute a sparse matrix to block triangular form
- MC26
- Sparse rectangular matrix: compute normal matrix
- MC29
- Sparse unsymmetric matrix: calculate scaling factors
- MC30
- Sparse symmetric matrix: calculate scaling factors
- MC33
- Sparse unsymmetric matrix: permute to bordered block triangular form
- MC34
- Sparse symmetric structure: expand from lower triangle
- HSL_MC34
- Sparse symmetric structure: expand from lower triangle
- MC37
- Sparse symmetric matrix: represent as a sum of element matrices
- MC38
- Sparse rectangular matrix held by columns: transpose
- MC44
- Unassembled finite-element matrix: generate the element or supervariable connectivity graph
- MC46
- Sparse rectangular matrix held by rows: transpose
- MC47
- Sparse symmetric pattern: approximate minimum-degree ordering allowing dense rows
- MC53
- Generate an ordering for finite-element matrices within a subdomain
- MC54
- Write a sparse matrix in Rutherford-Boeing format
- MC55
- Write a supplementary file in Rutherford-Boeing format
- MC56
- Read a file or a supplementary file held in Rutherford-Boeing format
- HSL_MC56
- Read a file containing a sparse matrix held in format
- MC57
- Assemble a set of finite-element matrices
- MC58
- Estimate rank and find independent rows/columns of a sparse unsymmetric or rectangular matrix
- MC59
- Sort a sparse matrix to an ordering by columns
- MC60
- Sparse symmetric pattern: reduce the profile and wavefront
- MC61
- Straightforward interface to MC60
- MC62
- Generate a row ordering for a row-by-row frontal solver
- MC63
- Generate an element assembly ordering for a frontal solver
- MC64
- Permute and scale a sparse unsymmetric matrix to put large entries on the diagonal
- HSL_MC64
- Permute and scale a sparse unsymmetric or rectangular matrix to put large entries on the diagonal
- HSL_MC65
- Construct and manipulate matrices in compressed sparse row format
- HSL_MC66
- Permute an unsymmetric sparse matrix to singly bordered blocked diagonal form
- MC67
- Refine a profile-reducing permutation of a symmetric matrix
- HSL_MC68
- Symmetric sparse matrix: compute elimination orderings
- HSL_MC69
- Matrix format converter
- MC71
- Unsymmetric matrix: estimate 1-norm
- MC72
- Full unsymmetric matrix: calculate scaling factors
- HSL_MC73
- Sparse symmetric matrix: compute Fiedler vector and permute to reduce the profile and wavefront
- MC75
- Sparse unsymmetric matrix: estimate condition number
- MC77
- Sparse unsymmetric matrix: calculate scaling factors
- HSL_MC78
- Analysis phase in Cholesky algorithm
- HSL_MC79
- Sparse matrix: maximum matching and Dulmage-Mendelsohn decomposition
- HSL_MC80
- Sparse symmetric matrix: matching-based ordering and scaling
- ME: Solution of complex linear systems and other calculations for complex matrices
- ME22
- Permute a sparse matrix given row and column permutations
- ME38
- Sparse unsymmetric system: unsymmetric multifrontal method
- ME42
- Sparse unsymmetric system: out-of-core frontal method
- ME43
- Sparse unsymmetric system: row-by-row frontal method
- ME48
- Sparse unsymmetric system: driver for conventional direct method
- ME50
- Sparse unsymmetric system: conventional direct method
- ME57
- Sparse Hermitian or complex symmetric: multifrontal method
- HSL_ME57
- Sparse solver for complex symmetric or Hermitian linear systems
- ME62
- Sparse Hermitian or complex symmetric finite-element system: out-of-core frontal method
- See also
-
HSL_MA86 (Parallel sparse symmetric indefinite/Hermitian)
-
HSL_MA87 (Parallel sparse Cholesky)
-
HSL_MA97 (Bit-compatible parallel sparse symmetric/Hermitian)
- MF: Computations with complex matrices and vectors
- MF29
- Sparse unsymmetric matrix: calculate scaling factors
- MF30
- Sparse symmetric matrix: calculate scaling factors
- MF64
- Permute and scale a sparse complex unsymmetric matrix to put large entries on the diagonal
- MF71
- Unsymmetric matrix: estimate 1-norm
- MI: Iterative methods for sparse matrices
- HSL_MI02
- Symmetric possibly-indefinite system: SYMMBK method
- MI11
- Unsymmetric system: incomplete LU factorization
- MI12
- Unsymmetric system: approximate-inverse preconditioner
- HSL_MI13
- Preconditioners for saddle-point systems
- MI15
- Unsymmetric system: flexible GMRES
- HSL_MI20
- Unsymmetric system: algebraic multigrid preconditioner
- MI21
- Symmetric positive-definite system: conjugate gradient method
- MI23
- Unsymmetric system: CGS (conjugate gradient squared) method
- MI24
- Unsymmetric system: GMRES (generalized minimal residual) method
- MI25
- Unsymmetric system: BiCG (BiConjugate Gradient) method
- MI26
- Unsymmetric system: BiCGStab (BiConjugate Gradient Stabilized) method
- HSL_MI27
- Projected preconditioned conjugate gradient method for saddle-point systems
- HSL_MI28
- Symmetric system: incomplete Cholesky factorization
- HSL_MI29
- MPGMRES: an extension of GMRES which allows multiple preconditioners
- HSL_MI30
- Symmetric indefinite saddle-point system: signed incomplete Cholesky factorization
- HSL_MI31
- Symmetric positive-definite system: conjugate gradient method, stopping according to the A-norm of the error
- HSL_MI32
- Symmetric possibly-indefinite system: MINRES method
- HSL_MI35
- Sparse least squares: incomplete factorization preconditioner
- MP: MPI dependant packages
- HSL_MP01
- MPI constants
- HSL_MP42
- Unsymmetric finite-element system: multiple-front method, element entry
- HSL_MP43
- Sparse unsymmetric system: multiple-front method, equation entry
- HSL_MP48
- Sparse unsymmetric system: parallel direct method
- HSL_MP54
- Parallel Cholesky solver
- HSL_MP62
- Symmetric finite-element system: multiple-front method
- NONLINEAR EQUATIONS
- NS: Solution of systems of nonlinear equations in several unknowns
- NS23
- Sparse nonlinear over-determined equations: Marquardt method
- INPUT/OUTPUT
- OF: File management
- HSL_OF01
- Fortran virtual memory
- POLYNOMIAL AND RATIONAL FUNCTIONS
- PA: Zeros of polynomials
- PA16
- Complex coefficients: all roots by the method of Madsen and Reid
- PA17
- Real coefficients: all roots by the method of Madsen and Reid
- TEST PROGRAM GENERATORS
- YM: Generate test programs for chapter M of the library
- YM11
- Generate a random sparse matrix
- FORTRAN SYSTEM FACILITES
- ZB: Array allocation
- HSL_ZB01
- Reallocate an array
- ZD: Derived types
- HSL_ZD11
- Derived type for sparse matrix storage schemes
If you would like us to create a MATLAB interface
to one of our other codes, please
let us know.
- LINEAR ALGEBRA
- MA: Solution of linear systems
- HSL_MA48
- Sparse unsymmetric system: driver for conventional direct method
- MA57
- Sparse symmetric system: multifrontal method
- MA75
- Sparse over-determined system: weighted least squares
- HSL_MA86
- Sparse solver for real and complex indefinite matrices using OpenMP
- HSL_MA87
- Sparse Cholesky solver for real/complex matrices using
OpenMP
- HSL_MA97
- Bit-compatible parallel sparse symmetric/Hermitian solver using OpenMP
- MC: Computations with real matrices and vectors
- HSL_MC64
- Permute and scale a sparse unsymmetric or rectangular matrix to put large entries on the diagonal
- HSL_MC73
- Sparse symmetric matrix: compute Fiedler vector and permute to reduce the profile and wavefront
- HSL_MC80
- Sparse symmetric matrix: matching-based ordering and scaling
- ME: Solution of complex linear systems and other calculations for complex matrices
- ME57
- Sparse Hermitian or complex symmetric: multifrontal method
- See also
-
HSL_MA86 (Parallel sparse symmetric indefinite/Hermitian)
-
HSL_MA87 (Parallel Sparse Cholesky)
-
HSL_MA97 (Bit-compatible parallel sparse symmetric/Hermitian)
- MI: Iterative methods for sparse matrices
- HSL_MI20
- Unsymmetric system: algebraic multigrid preconditioner
- HSL_MI28
- Symmetric system: incomplete Cholesky factorization
- HSL_MI30
- Symmetric indefinite saddle-point system: signed incomplete Cholesky factorization
If you would like us to create a C interface
to one of our other codes, please
let us know.
- LINEAR ALGEBRA
- MA: Solution of linear systems
- HSL_MA48
- Sparse unsymmetric system: driver for conventional direct method
- HSL_MA77
- Sparse symmetric system: multifrontal out of core
- HSL_MA86
- Sparse solver for real and complex indefinite matrices using OpenMP
- HSL_MA87
- Sparse Cholesky solver for real/complex matrices using
OpenMP
- HSL_MA97
- Bit-compatible parallel sparse symmetric/Hermitian solver using OpenMP
- MC: Computations with real matrices and vectors
- 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
- HSL_MC69
- Matrix format converter
- HSL_MC78
- Analysis phase in Cholesky algorithm
- HSL_MC79
- Sparse matrix: maximum matching and Dulmage-Mendelsohn decomposition
- MI: Iterative methods for sparse matrices
- HSL_MI20
- Unsymmetric system: algebraic multigrid preconditioner