Contact us Heritage collections Image license terms
HOME ACL Associates Technology Literature Applications Society Software revisited
Further reading □ Overview1962: ComputersHARTRAN (Fortran)Preprocessor (Algol)LibrariesHSLSuitesEnhancementsExpertise
ACD C&A INF CCD CISD Archives Contact us Heritage archives Image license terms

Search

   
ACLSocietyImpact
ACLSocietyImpact
ACL ACD C&A INF CCD CISD Archives
Further reading

Overview
1962: Computers
HARTRAN (Fortran)
Preprocessor (Algol)
Libraries
HSL
Suites
Enhancements
Expertise

Harwell Subroutine Library

1973

The Harwell Subroutine Library was a library of subprograms which are called by a user written program. Complete programs are not included in the library although some of the library routines are in fact packages of more than one subprogram. The principle language was FORTRAN.

The library was composed mainly of mathematical and numerical analysis routines. These were in the main been written by members of the Numerical Analysis Group, past and present, and were of a high standard, A few of the routines were derived from sources outside Harwell and acknowledgements are made to that effect in the catalogue entries.

The principle function of the library was to provide Harwell computer users with good numerical facilities.

The library started life in 1963 and was first used on the IBM 7030 (STRETCH) computer at Aldermaston and later the Chilton Atlas and then Harwell's IBM 360 computers.

In 1967 the concept of having both single and double precision versions of routines was introduced.

The catalogue contains a complete list of routines that make up the library giving details of purpose, method and attributes. The details given are brief and only intended to be sufficient for a potential user to decide which of the routines, if any, are suitable for his particular problem. The routines are listed in alphabetical order by year and the classification used for routine names is such that the list for each year falls naturally into sections associated with different classes of problem. There are some exceptions and general topics, such as data fitting, are covered by routines spread throughout the list.

The first letter of a routine name indicates the section it belongs to:

D  Differential Equations
E  Algebraic eigen values and eigen vector problems
F  Mathematical functions, random numbers and Fourier transforms
G  Geometrical problems
I  Integer valued functions
K  Sorting
L  Linear and dynamic programming
M  Problems in linear algebra
N  Nonlinear equation problems
O  Input and output facilities
P  Polynomial and rational function problems
Q  Numerical integration
S  Functions of statistics
T  Interpolation and general approximation of functions
V  Optimization and nonlinear data fitting problems
Z  Non-FORTRAN system facilities

The list below is sorted in order of the last time the routine was updated. Fuller descriptions are available in the Harwell Subroutine Library manual.

Routines in machine code for the 360 series have been omitted. Names or routines that appear to be missing often indicate that the routine has become redundant because of a later addition. The date given is the last time the routine was updated.

D B Russell and P Hallowell were at the Atlas Computer Laboratory. Most of the other authors were permanent members of Harwell. There were some routines provided by visitors and in a few cases they originated in the SHARE Library.

Name Year Author Description
DA01A 1963 D McVicar To integrate a set of first order differential equations
EA02A 1963 E J York Given a real symmetric matrix A and an estimate λe of one of its eigenvalues, will find to a given accuracy the eigen value nearest to λe
EA03A 1963 J Soper Given a real symmetric matrix A, finds all its eigen values λi and eigenvectors xi
FC03A 1963 S Marlow To compute values of the Gamma function
FC05A 1963 S Marlow To compute values of the Beta function
FC10A 1963 S Marlow Computes the real and imaginary part of the Fresnel integral
FC11A 1963 S Marlow To compute values of the exponential integral
FF01A 1963 S Marlow Computes values of the Bessel functions J0(x) and Y0(x)
FF02A 1963 S Marlow Computes values of the Bessel functions J1(x) and Y1(x)
FF05A 1963 F R A Hopgood Given x ≥ 0, computes the value of the spherical Bessel functions
MA01B 1963 E J York To solve a system of n linear algebraic equations in n unknowns with one or more right-hand sides
MB02A 1963 G Packham To evaluate the adjoint matrix of an n by n real matrix where A may be singular
MC06A 1963 M Osbourne Applies the Gram-Schmidt orthogonalization process to n vectors in an m dimensional space
ME02A 1963 E J York Given an Hermitian matrix and a complex vector, compute the complex product
OA01A 1963 E J York To print out an m by n matrix in an easily read format
PA01A 1963 SHARE To find all the real and complex roots of a polynomial with real coefficients
PA02A 1963 M J Hopper To find all the real roots of a polynomial with real coefficients that fall within a given interval
PA03A 1963 H Simmonds To find all the roots of a cubic polynomial
PA04A 1963 M Lancefield To find the number of real roots above, below and within a specified interval
PA05A 1963 S Marlow To find all the roots of a quartic polynomial
PE01A 1963 S Marlow Calculates the coefficients of a polynomial given the coefficients of its expansion in terms of Chebyshev polynomials
PE03A 1963 C Brittain Given the coefficients of a polynomial calculates the coefficients of its expansion in terms of Chebyshev polynomials
PE04A 1963 A T Sinden Given a function f(x) in a range, find a rational approximation
QA02A 1963 M J D Powell To evaluate the integral of f(x) between a and b to a specified absolute accuracy
QA03A 1963 M J D Powell To tabulate an integral function
QB01A 1963 F R A Hopgood To evaluate a 1 to 6 dimensional integral using user-specified quadrature method at each dimension: Simpson's rule, Gauss quadrature or a quadrature based on Chebyshev polynomials at
TA01A 1963 M J D Powell To compute and print out a table of differences of a function when the function is given at equal intervals
TB01A 1963 A G Hearn To interpolate the value of an even function f(x)=f(-x) given n+1 function values
TB02A 1963 A G Hearn To interpolate the value of a function given n+1 function values
VA03A 1963 M J D Powell Reduces the problem of finding the minimum of a function of n variables to that of finding a minimum of a function of one variable many times
VB03A 1963 M J D Powell To minimise a sum of squares of m functions of n variables when values of the derivatives are available
VB06A 1963 M J D Powell To calculate a least square fit to given data by a cubic spline which has knots specified by the user and subject to smoothing conditions imposed
VC01A 1963 E J York To calculate a best weighted least square fit to given data by a polynomial of specified degree
FC01A 1964 A Bailey To evaluate the function e-z2erfc(-iz) for complex z
FF06A 1964 S Marlow Given x > 0, computes values of all the Bessel functions ber(x), bei(x), ker(x), kei(x), ber'(x), bei'(x), ker'(x), kei'(x)
GA01A 1964 A Hearn Calculate the cartesian coordinates x,y,z of a point given in spherical coordinates or vice versa
GA02A 1964 D Miller Calculates the area bounded by a contour f(x,y)=c
ID02A 1964 A Gavan Finds K the HCF of two given integers
ID03A 1964 A Bailey Calculates the number of seconds between two given times given in years, months, days and hours
KC01A 1964 D Willis Given a set of intervals on the real line, the routine finds the smallest set of disjoint intervals
KC02A 1964 D Willis Given two set of non-overlapping intervals the routine merges the two sets together
MA07A 1964 D B Russell To solve a system of n linear equations in n unknown when the equation coefficient matrix is band structured
MA08A 1964 M J Hopper Forms the normal equations of the linear least squares problem
MA09A 1964 M J Hopper Solves the linear least square problem by the so-called normal equation method
MA10A 1964 M J Hopper To solve a system of n linear algebraic equations in n unknowns
MB01B 1964 L Morgan To compute the inverse matrix of of an n by n real matrix
MB04A 1964 M J D Powell Given A-1 the inverse matrix of a partitioned n by n real symmetric matrix where A1 is (n-1) by (n-1) top left, A2 is a row matrix (bottom left), A2 T is top right and bottom right is a scalar, calculates the (n-1) by (n-1) inverse matrix of A1
MB05A 1964 M J D Powell As above but calculates the inverse of A
MC07A 1964 M J D Powell Given an n by n real symmetric matrix, calculates the coefficients of its characteristic polynomial
MD03A 1964 M J D Powell To evaluate the determinant of an n by n real symmetric matrix
PC02A 1964 L Morgan Given n+1 points, calculates the coefficients of the polynomial that passes through them
PE06A 1964 L Morgan Given a polynomial C(x) of degree K finds the coefficients of the Pade approximation
PE07A 1964 S Northcliffe To compute the value of a polynomial P(x) of degree n which is expresses as a linear combination of orthogonal polynomials
PE08A 1964 S Northcliffe To obtain the coefficients of a polynomial expressed as a linear combination of orthogonal polynomials
SV01A 1964 M J D Powell To extract from a minimization of a sum of squares an approximation to the variance-covariance matrix
TB03A 1964 D Miller Calculates the coefficients of the piece-wise cubic function which interpolates n+1 given function values at specified points
VA02A 1964 M J D Powell To minimize a sum of squares of m functions of n variables
VA04A 1964 M J D Powell To find the minimum of a general function of n variables
VD01A 1964 M J D Powell To find a minimum of a general function of one variable
VD02A 1964 M J D Powell To find a minimum of a general function of one variable within a specified accuracy
DD01A 1965 P Hallowell To solve the two point boundary value problem for the second order linear differential equation
DD02A 1965 P Hallowell To solve the two point boundary value problem for the second order non-linear differential equation
DP01A 1965 P Hallowell To solve the two point boundary value problem for the linear parabolic partial differential equation
EB04A 1965 P Hallowell Finds all the eigenvalues, real and complex of a real upper Hessenberg matrix
EC02A 1965 E J York Finds all the eigenvalues of a tri-diagonal Hermitian matrix
MA11B 1965 M J Hopper To solve an over-determined system of m linear algebraic equations in n unknowns>
QC02AD 1965 A R Curtis To find weights and zeros for Gaussian type quadrature of integrals of the form e-xf(x) between 0 and infinity
TA02A 1965 D B Russell To evaluate the divided differences of a function f(x) tabulated at a set of points not necessarily equally spaced
TA03A 1965 D B Russell To evaluate the central differences of a function f(x) tabulated at equal intervals
TD01A 1965 P Hallowell To estimate first or second derivatives given a table of function values and finite differences
DP02A 1966 P Hallowell To solve the two point boundary value problem for the non-linear parabolic partial differential equation
EB05A 1966 M Reynolds Given a real upper Hessenberg matrix A and one of its eigenvalues λ, finds the corresponding eigenvector
FC13A 1966 A R Curtis To compute values of Dawson's integral
FF03A 1966 S Marlow Computes values of the Bessel functions I0(x) and K0(x)
FF04A 1966 S Marlow Computes values of the Bessel functions I1(x) and K1(x)
GA04A 1966 M Ruffle Computes the solid angle subtended by a disc of unit radius from a general point in the plane perpendicular to the plane of the disc
KB01A 1966 M Reynolds To sort an array of numbers into ascending order
KB02A 1966 M Reynolds To sort an array of numbers into descending order
KB03A 1966 M Reynolds To sort an array of numbers into ascending order maintaining an index array to preserve a record of the original order
KB04A 1966 M Reynolds To sort an array of numbers into descending order maintaining an index array to preserve a record of the original order
LA01A 1966 M J Hopper Solve the general linear programming problem
MA12A 1966 M Reynolds To solve a system of n linear algebraic equations in n unknowns where the coefficient matrix is upper Hessenberg
MC04B 1966 Transform n by n real symmetric matrix in to a tri-diagonal matrix having the same eigen values
MC08A 1966 E J York Transform an n by n matrix to an upper Hessenberg matrix
ME01B 1966 Transform an n by n Hermitian matrix into a tri-diagonal matrix having the same eigenvalues
ME04A 1966 To solve a system of n complex linear algebraic equations in n unknowns
PD03A 1966 A R Curtis Given a polynomial in x, calculate the coefficients of the polynomial under a change of variable
PE11A 1966 S Marlow Given m values of a function f(x) calculates the nth degree minimax polynomial
QM01A 1966 D Green Evaluate the value of an n dimensional integral to a specified accuracy by a Monte Carlo method
TG01A 1966 M J D Powell To compute the values of a cubic spline defined over a given range in the standard format
TG01B 1966 M J Hopper To compute the value of a cubic spline given in terms of its knot points and its values and first derivative values
VB05B 1966 M J D Powell To calculate the best weighted least squares fit to given data by a cubic spline with the number of knots specified by the user
ZE01A 1966 A R Curtis To estimate the rounding errors generated in floating point arithmetic
DINT 1967 R C F McLatchie Returns the double precision point value of the integer part of a real double precision floating point number
EB01A 1967 E J York, M Reynolds Finds all the eigenvalues and eigenvectors of a general real matrix
FA01AS 1967 R C F McLatchie Generate uniformly distributed pseudo-random numbers
FA02AS 1967 To return the signed fractional part of a real floating point number
FB01A 1967 S Marlow Compute values of the complete elliptic integrals of the 1st and 2nd kind
FB02A 1967 L Morgan Compute values of the incomplete elliptic integrals of the 1st and 2nd kind
FB03a 1967 M Ruffle Compute values of the complete elliptic integral of the 3rd kind
FT01A 1967 A R Curtis Calculates discrete Fourier transforms
GA03A 1967 E J York Constructs a system of plane contours f(x,y) = ck for k=1,..,N over a specified rectangular region
OD01A 1967 D McVicar To allow a FORTRAN programmer to read or write paper tape
OD02A 1967 R Garside To allow a FORTRAN programmer to read or write Dectape
ON01B 1967 M Ruffle To provide a free format input facility for the FORTRAN user
PC01A 1967 W E Hart To calculate the coefficients of a polynomial given all its roots, the roots must be real
PE05AD 1967 A R Curtis Given a smooth function in a range finds a weighted rational approximation
VC03A 1967 M J D Powell To calculate a smooth weighted least square fit to given data by a cubic spline
MA14A 1968 M J Hopper To calculate a least square solution to an over-determined system of m linear equations in n unknowns
NS03A 1968 M J D Powell To solve a system of n non-linear equations in n unknowns
OA02A 1968 M J Hopper To print out contents of a single dimensional array in tabular form
ON02A 1968 R C F McLatchie Given a data card containing numeric data items constructs the FORTRAN format required to read the numbers from the card
QD01A 1968 W E Hart To evaluate integrals of the form f(t) sin xt dt between a and b and the cosine equivalent
FG01A 1969 J Soper To compute the various vector coupling coefficients (3-j, 6-j, 9-j etc)
OC01A 1969 A R Curtis To produce a graph of several dependent variables against an independent variable on a lineprinter
VA05A 1969 M J D Powell To minimise a sum of squares of m functions in n variables
VE01A 1969 R Fletcher To find the minimum of a general function subject to a number of linear inequality constraints
DC01AD 1970 A R Curtis, A B Smith A package of routines to integrate a system of first order ordinary differential equations
DC02AD 1970 A R Curtis A package of routines to integrate a system of first order ordinary differential equations
EA07C 1970 J K Reid Given a real symmetric matrix A, find all its eigen vectors λi and eigenvectors xi
EA08C 1970 J K Reid Given a real symmetric matrix A, find all its eigen vectors
EA09C 1970 J K Reid Find all the eigenvalues of a real tri-diagonal symmetric matrix. The QR algorithm with shifts is used
LA02A 1970 R Fletcher To find a feasible point to a set of linear constraints
MA07B 1970 J K Reid To solve a system of n linear algebraic equations where the equation coefficient matrix has a band structure
MA16A 1970 J K Reid To solve a system of n linear algebraic equations in n unknowns when the coefficient matrix is symmetric positive definite and is very large and sparse
MB10A 1970 M J D Powell To calculate the generalized inverse of an m by n rectangular matrix
MB11A 1970 M J D Powell As MB10A where the rank of A is equal to m
OA03A 1970 M J Hopper To print out in tabular form the contents of two single dimensional arrays
PD02A 1970 M J Hopper To give the first m terms of the Taylor series expansion of functions of a given polynomial
SA02A 1970 D G Papworth To evaluate the one-sided cumulative distribution function of Student's distribution
SA03A 1970 D G Papworth To evaluate the complement of the cumulative distribution function of the variance ratio distribution
TB04A 1970 J K Reid Given function values at a set of points, find a cubic spline that interpolates the function values
TB05A 1970 J K Reid Given function values at a set of points, find a periodic cubic spline that interpolates the function values
VA06A 1970 M J D Powell To calculate the minimum of a general function of n values when values of the derivatives can be provided
VE02A 1970 R Fletcher To find a minimum of a quadratic function subject to linear constraints
EC06C 1971 S Marlow Given a complex Hermitian matrix, finds all its eigenvalues and eigenvectors
EC07C 1971 S Marlow Given a complex Hermitian matrix, finds all its eigenvalues and eigenvectors with a defined constraint
EC08C 1971 S Marlow Finds all the eigen values of a complex Hermitian tri-diagonal matrix
FA03A 1971 A B Smith Generate pseudo-random numbers from a Gaussian distribution with mean zero and standard deviation specified by the user
FD01AS 1971 M Hopper Given an integer n will compute 2n
FD01BS 1971 M Hopper Given an integer n will compute 16n
MA18A 1971 A R Curtis, J K Reid To solve a system of n linear algebraic equations when the coefficient matrix is large and sparse
MA21A 1971 S Marlow, J K Reid Given an n by n matrix a) solves the system of algebraic equations b) computes the inverse matrix c) computes the value of the determinant
MA22A 1971 S Marlow, J K Reid Given a symmetric positive definite n by n matrix a) solves the system of linear equations b) computes the inverse matrix c) computes the value of the determinant
MA23A 1971 S Marlow, J K Reid Given a complex n by n matrix and a complex right hand side, solve the complex linear equations, compute the inverse or evaluate the determinant
MA24A 1971 S Marlow, J K Reid Given a complex Hermitian n by n matrix and a complex right hand side, solve the complex linear equations, compute the inverse or evaluate the determinant
MC10A 1971 J K Reid Calculates scaling factors for the rows and columns of an n by n real matrix
MC12A 1971 A R Curtis Calculates scaling factors for the rows and columns of an n by n real sparse matrix
ME06AS 1971 S Marlow To evaluate the sum of a complex constant c and an inner product of two complex vectors accumulating intermediate results double length
ME07A 1971 S Marlow Calculates scaling factors for the rows and columns of an n by n complex matrix
ME08A 1971 S Marlow Transforms an n by n complex Hermitian matrix to a tri-diagonal Hermitian matrix
OB01A 1971 A R Curtis Simple editing facilities for the modification of source code
SA01A 1971 M J Hopper, J Hedger To evaluate the cumulative chi-squared probability function
VA07A 1971 R Fletcher To minimise a sum of squares of m functions of n variables when the values of the derivatives are available
VA11A 1971 M D Hebden To calculate the minimum of a general function of n variables when values of both the first and second derivatives can be provided
VE03A 1971 R Fletcher To find the minimum of a general function satisfying a set of linear constraints
DA02A 1972 A R Curtis, A B Smith To integrate a set of first order differential equations
EA11A 1972 S Marlow Calculates all the eigenvalues λi and eigenvector xi of the system AxiiBxi
GA05A 1972 J K Reid To efficiently determine whether a point (x,y) is interior or exterior to a given closed region
KB11A 1972 M J Hopper To sort n numbers from an array of m numbers
MA15C 1972 J K Reid To sole a system of n linear algebraic equations in n unknowns where the coefficient matrix is band structured, symmetric and positive definite
MA17A 1972 J K Reid To solve a system of n linear algebraic equations in n unknowns when the coefficient matrix is large and sparse and symmetric positive definite
MA20A 1972 I Barrowdale To solve an over-determined system of m linear equations in n unknowns
MC09A 1972 J K Reid Given a sparse matrix stored in a compact form evaluates the matrix-vector products
NB01A 1972 M J D Powell To find a real zero of a continuous function f(x) in a given interval
NS03A 1972 J K Reid To solve a system of m non-linear equations in n unknowns
OB11A 1972 S Marlow, M J D Powell To draw on the graph plotter a smooth, tangentially continuous curve
OB12A 1972 S Marlow, M J D Powell To draw on the graph plotter a cubic spline defined by its knots
QA04A 1972 I G A Robinson, A B Smith To evaluate the integral of f(x) between a and b to a specified relative or absolute accuracy
QA05A 1972 C de Boor modified by A R Curtis To evaluate the integral f(x) between a and b to a specified accuracy which may be relative or absolute
TD02A 1972 J K Reid Given n functions, evaluates an approximation to the Jacobian matrix
TS01A 1972 M J D Powell Finds a cubic spline approximation to a given smooth function within a prescribed accuracy
VA08A 1972 R Fletcher To find the minimum of a general function of n variables when values of the derivatives can be provided
VA09A 1972 R Fletcher To find the minimum of a general function of n variables when values of the derivatives can be provided
VA10A 1972 R Fletcher To find the minimum of a general function of n variables when the function is differentiable although values of the derivatives are not required
VB01A 1972 R Fletcher To calculate the best least squares fit to given data
VC04A 1972 J Ledger To fit a straight line to data
⇑ Top of page
© Chilton Computing and UKRI Science and Technology Facilities Council webmaster@chilton-computing.org.uk
Our thanks to UKRI Science and Technology Facilities Council for hosting this site