HSL Archive
The HSL Archive contains packages that have been superceded or that we are no longer able to support.
For personal use HSL Archive packages are available at no cost (subject to licence). They may not be redistributed. For information on licensing HSL Archive packages please see our licensing page.
Please remember to cite HSL as:
"HSL. A collection of Fortran codes for large scale scientific computation. http://www.hsl.rl.ac.uk/"

COMPUTER ALGEBRA

DIFFERENTIAL EQUATIONS

DA: RungeKutta methods for ordinary differential equation initial value problems

DC: Linear multistep methods, predictor corrector methods for ordinary differential equation initial value problems
 DC03
 Ordinary differential equations: Gear's method, sparse Jacobian
 DC04
 Simplified calling sequence for DC03
 DC05
 Ordinary differential equations: Gear's method, reverse communication
 HSL_DC05
 Stiff differentialalgebraic equations
 DC06
 Advances Ordinary differential equations: advances DC05 solution forward
 DC07
 Ordinary differential equations: Gear's method, full Jacobian

DD: Twopoint boundary value ordinary differential equation problems

DP: Parabolic partial differential equation problems


EIGENVALUES AND EIGENVECTORS

EA Eigenvalues and eigenvectors of real symmetric matrices
 EA02
 Eigenvalue and vector nearest given estimate
 EA06
 Eigenvalues and vectors using QR
 EA07
 Eigenvalues using QR
 EA08
 Eigenvalues of a tridiagonal symmetric matrix using QR
 EA09
 Eigenvalues and vectors of a tridiagonal matrix using QR
 EA11
 Solves Ax = lambda Bx, with B positive definite
 EA23
 Full symmetric: Jacobi's method

EB: Eigenvalues and eigenvectors of real general matrices
 EB06
 Eigenvalues and vectors of a real matrix using QR
 EB07
 Eigenvalues of a real matrix using QR
 EB08
 Eigenvalues and vectors of a real upper Hessenberg matrix using QR
 EB09
 Eigenvalues of a real upper Hessenberg matrix using QR
 EB10
 Singular value decomposition of a real matrix

EC: Eigenvalues and eigenvectors of Hermitian matrices
 EC06
 Eigenvalues and vectors of a complex Hermitian matrix using QR
 EC07
 Eigenvalues of a Hermitian matrix using QR
 EC08
 Eigenvalues and vectors of a Hermitian tridiagonal matrix using QR
 EC09
 Eigenvalues of a Hermitian tridiagonal matrix using QR
 EC12
 Eigenvalues and vectors of a Hermitian tridiagonal matrix using Sturm sequences
 EC23
 Full Hermitian matrix: classical Jacobi's method


MATHEMATICAL FUNCTIONS

FA: Random numbers

FB: Elliptic integrals

FC: Error function, gamma function, exponential integrals and
related functions FC01
 Complex error function
 FC03
 Real gamma function
 FC05
 Beta function
 FC07
 Complementary error function
 FC08
 Real error function
 FC10
 Complex Fresnel integral
 FC11
 Exponential integral
 FC12
 Complex plasma dispersion function
 FC13
 Dawson's integral
 FC14
 Real gamma function
 FC15
 Log modulus of the complex gamma function
 FC16
 Plasma dispersion function

FD: Simple functions

FF: Bessel functions
 FF01
 Bessel functions J0 and Y0
 FF02
 Bessel functions J1 and Y1
 FF03
 Bessel functions I0 and K0
 FF04
 Bessel functions I1 and K1
 FF05
 Spherical Bessel functions
 FF06
 Bessel functions: ber, bei, ker, kei, etc.
 FF07
 Bessel functions Inu and Knu

FG: Functions associated with Quantum Physics

FP: Supplementary calculations for graph plotting

FT: Fourier transforms


GEOMETRICAL PROBLEMS

GA Transformation of coordinates and areas of contours
 GA01
 Convert cartesian to spherical coordinates
 GA02
 Area bounded by contour and side(s) of a triangle
 GA03
 Areas between successive contours
 GA04
 Solid angle subtended by a disc of unit radius
 GA06
 Triangulate arbitrary set of points in a plane
 GA15
 Test if a point is inside a twodimensional region


INTEGER VALUED FUNCTIONS

IC: Character string manipulation functions

ID: Simple integer functions

IM: Integer functions for matrices


SORTING

KB: Sorting numbers, sorting text, sorting tables

KC: Sorting and merging intervals on the real line

KD: Hashing and searching


LINEAR PROGRAMMING

LINEAR ALGEBRA

MA Solution of linear equations, also inverses and determinants
 MA01
 Solves with one or more RHS, simple Gaussian elimination
 MA08
 Form the normal equations for linear least squares
 MA09
 Solve linear least squares using normal equations
 MA10
 Solve symmetric positive definite systems using Cholesky
 MA11
 Solve an overdetermined system in the minimax sense
 MA12
 Solves an upper Hessenberg system using Gaussian elimination
 MA19
 Minimax solution of a system subject to simple bounds
 MA20
 Solves an overdetermined system in the L1 sense
 MA21
 Solution, inversion, determinant, scaling and iterative refinement
 MA22
 As MA21 but for symmetric positive definite systems
 MA24
 As MA21 but for Hermitian positive definite systems
 MA25
 Minimax solution to a system subject to simple bounds
 MA26
 Solve symmetric positivedefinite tridiagonal system, Cholesky
 MA27
 Solve sparse symmetric system, not necessarily positive definite
 MA28
 Factorize and solve sparse system of linear equations
 MA29
 Factorize and solve symmetric system of linear equations
 MA30
 Perform LU decomposition of a sparse matrix
 MA32
 Solve sparse system using frontal method
 MA33
 Perform LU decomposition of a sparse, possibly rectangular matrix
 MA35
 Solve a band structured system of linear equations
 MA36
 Solve symmetric positive definite band system
 MA37
 Solve a sparse system, symmetric or nearly symmetric
 MA47
 Solve sparse symmetric indefinite system of linear equations

MB: Inverses of matrices, also determinants, adjoints and generalized
inverses MB01
 Inverse of a real matrix using Gaussian elimination
 MB04
 Given a matrix and its inverse, finds inverse of leading submatrix
 MB05
 Given a matrix and inverse of its leading submatrix, finds its inverse
 MB10
 Generalized inverse of a rectangular matrix
 MB11
 Generalized inverse of a rectangular matrix of full rank

MC: Computations with real matrices and vectors
 MC04
 Householder transformation of symmetrical matrix to tridiagonal
 MC06
 Apply GramSchmidt orthogonalization to vectors
 MC09
 Sparse matrixvector product
 MC11
 Rank1 update to positive definite matrix
 MC14
 Transform real matrix to upper Hessenberg form
 MC15
 Scale rows and columns to balance matrix elements
 MC16
 Append n+1 vector to n by n triangular matrix
 MC17
 Delete a column from an n by n triangular matrix
 MC18
 Compute Householder transformation of symmetric matrix
 MC19
 Sparse unsymmetric matrix: calculate scaling factors
 MC20
 Sort a sparse matrix to an ordering by columns
 MC24
 Bound on largest element of sparse matrix during Gaussian elimination
 MC27
 Downdate factorization of positive definite symmetric matrix
 MC31
 Part of MA32
 MC32
 Part of MA32
 MC36
 Read sparse matrix in HarwellBoeing format from an i/o stream
 MC39
 Sort a sparse matrix to an ordering by columns
 MC40
 Symmetric permutation that reduces profile of sparse matrix with a symmetric sparsity pattern
 MC43
 Ordering for finite element matrix, for frontal solver
 MC49
 Sort a sparse matrix to an ordering by columns
 MC52
 Write sparse matrix in HarwellBoeing format to an i/o stream
 MC54
 Write a sparse matrix in RutherfordBoeing format
 MC55
 Write a supplementary file in RutherfordBoeing format
 MC56
 Read a file or a supplementary file held in RutherfordBoeing format

ME: Solution of complex linear equations and other calculations for
complex matrices ME05
 Solution, inversion, determinant and iterative refinement
 ME08
 Reduce to tridiagonal Hermitian form
 ME17
 Full unsymmetric matrix: calculate scaling factors
 ME20
 Sort the nonzeros of a sparse complex matrix
 ME24
 Bound on largest element of sparse matrix during Gaussian elimination
 ME27
 Solve sparse Hermitian systems of linear equations
 ME28
 Sparse unsymmetric: driver for conventional direct method
 ME30
 Sparse unsymmetric: conventional direct method
 ME47
 Solve sparse symmetric complex systems of linear equations

MF: Computations with complex matrices and vectors


NONLINEAR EQUATIONS

NB: Solution of a single nonlinear equation in one unknown

NS: Solution of systems of nonlinear equations in several unknowns


INPUT AND OUTPUT AIDS

OA: Printing arrays in tabular form

OB: Subroutines generating output for the graph plotter
 OB11
 Draw smooth, tangentially continuous curve, given sequence of points
 OB12
 Draw a cubic spline
 OB13
 Plot the part of a conic section that is inside a given triangle
 OB14
 Contours of a function, values archivespecified over regular rectangular

OC: Graphical output for the line printer or terminal

OE: Source and text editing facilities
 OE08
 Maintain different source versions in one master file
 OE09
 Construct a master file for OE08
 OE10
 Source editor for card image files
 OE12
 Fortran profiler, inserts statements to count executions
 OE15
 Compares two files containing fixed length records
 OE16
 Performs partial analysis of a Fortran 77 statement
 OE17
 To count and time subroutine calls during execution

OF: Direct access data set management


POLYNOMIAL AND RATIONAL FUNCTIONS

PA: Zeros of polynomials

PB: Evaluation of polynomials

PC Generating coefficients of polynomials

PD: Functions of polynomials
 PD02
 Taylor's series expansion of polynomial reciprocal
 PD03
 New coefficients on a change of variable
 PD04
 Quotient on dividing a polynomial by a linear factor
 PD05
 Taylor series expansion of log [A(x)]
 PD06
 Taylor series expansion of exp [A(x)]
 PD07
 Taylor series expansions of sin [A(x)] and cos [A(x)]
 PD08
 Taylor series expansion of a power of [A(x)]
 PD09
 Taylor series expansion of A(x)B(x)
 PD10
 Taylor series expansion of A(x)/B(x)

PE: Polynomial and rational approximations, orthogonal polynomials
 PE01
 Given polynomial expressed in terms of Chebyshev polynomials,
 PE02
 Evaluate polynomial expressed in terms of Chebyshev polynomials
 PE03
 Given a polynomial obtain its expansion in terms of Chebyshev polynomials
 PE04
 Finds a rational approximation of a function
 PE06
 Finds the Pade_ approximation of a polynomial
 PE07
 Value of polynomial expressed as linear combination of orthogonal polynomials
 PE08
 Coefficients of polynomial expressed as linear combination of orthogonal polynomials
 PE09
 Value, 1st and 2nd derivative of polynomial expressed as linear combination of orthogonal polynomials
 PE11
 Minimax polynomial approximation to a function over a set of points
 PE12
 Converts polynomial in terms of orthogonal polynomials to one in terms of Chebyshev polynomials


NUMERICAL INTEGRATION

QA Integrals of functions of one variable
 QA01
 Integrate using NewtonCoates formulae
 QA02
 Integrate using variable step Simpson's rule
 QA03
 Tabulate an integral function using variable step Simpson's rule
 QA04
 Integrate to archivespecified accuracy using adaptive Gaussian Integration
 QA05
 Integrate using Romberg extrapolation and Trapezoidal rule

QB: Multidimensional integration of functions of several variables

QC: Onedimensional infinite integrals

QD: Integration of trigonometric and related functions

QG: Integration of spline functions
 QG01
 Integrate cubic spline between knot point limits
 QG02
 Integrate cubic spline between general limits
 QG03
 Integrate product of a Gaussian exponential and a piecewise linear function
 QG04
 Integrate (Gaussian exponential) (cubic spline) product

QM: Estimation of integrals by Monte Carlo methods


STATISTICS

SA: Probability functions

SV: Extraction of statistical information from data fitting
subroutines


INTERPOLATION AND APPROXIMATION

TA: Generating and printing finite differences

TB Interpolation by polynomials and spline functions
 TB01 Interpolate the value of an even function
 TB02
 Interpolate the value of a function
 TB03
 Coefficients of piecewise cubic function
 TB04
 Cubic spline that interpolates given function values
 TB06
 Cubic spline interpolation as sum of Bsplines
 TB07
 Optimal spline interpolation as sum of Bsplines
 TB08
 Computes knots of optimal spline interpolation
 TB15
 Periodic spline that interpolates given function values

TC: Inverse interpolation

TD: Estimation of derivatives by finite differences

TG: Evaluation of spline functions
 TG01
 Value of a cubic spline expressed by values and derivatives at knots
 TG02
 Value and derivatives of a cubic spline expressed by values and derivatives at knots
 TG03
 Value and derivatives of a spline expressed as a sum of Bsplines
 TG04
 Values and integrals of Bsplines over a given set of knots

TS: Approximation of functions by spline functions


OPTIMIZATION AND NONLINEAR DATA FITTING

VA: Minimization of general functions and sums of squares of
functions of several variables VA05
 Minimize a sum of squares, derivatives not needed
 VA06
 Minimum of a general function, derivatives required
 VA08
 Minimize a function of several variables: FletcherReeves method
 VA09
 Minimum of a general function, derivatives required
 VA10
 Minimum of general function, differentiable but derivatives not required
 VA13
 Minimum of general function, BFGS variable metric method
 VA21
 Minimum of general function when 1st and 2nd derivatives available
 VA23
 The VA24 method with user control at a basic level
 VA24
 Minimum of general function, no derivatives
 VA27
 Minimize a sum of squares, derivatives required, Marquardt method
 VA34
 Minimize a function of a huge number of variables: conjugate gradients
 VA35
 Minimize a function: limitedmemory BFGS method

VB: Nonlinear data fitting, minimization of sums of squares of
functions and data fitting by spline functions 
VC: Data fitting by polynomials and spline functions
 VC03
 Smooth weighted least squares fit to given data by cubic spline
 VC04
 Least squares fit of a straight line to data
 VC11
 Calculate best weighted least squares fit by a polynomial
 VC15
 Calculate weighted least squares fit by a sum of n decaying exponentials

VD: Minimization of a function of one variable

VE: Minimization of a general function subject to linear constraints
 VE01
 Minimize a general function, linear constraints, Davidon's method
 VE02
 Minimize a quadratic function, linear constraints
 VE03
 Minimize a general function, linear and simple bounds
 VE04
 Minimize quadratic function, bounds on the variables
 VE07
 Solves a convex quadratic programming problem
 VE08
 Minimize a sum of finiteelement functions
 VE10
 Minimize a sum of squares of element functions
 VE11
 Minimize a differentiable function, linear constraints and bounds
 VE17
 Solve convex quadratic programming problem, linear constraints

VF: Minimization of a general function subject to nonlinear
constraints 
VG: Nonlinear minimax minimization

VH: Minimization of functions of integer variables


TEST PROGRAM GENERATORS

FORTRAN SYSTEM FACILITIES

ZA: Timing, machine constants, etc

ZD: Derived types

ZE: Estimation of rounding errors
