BCSLIB Software

Areas of Mathematics

The BCSLIB Features page lists areas of mathematical and statistical coverage provided by BCSLIB. Further details of those areas are provided here.

Care has been taken in the selection of all algorithms used in BCSLIB to ensure significant accuracy and a wide range of numeric representation where required, and to provide many options to allow selection of an appropriate algorithm that fits the requirements of the customer's problem.

Special Functions

These extend the intrinsic functions provided by the progamming language (Fortran-77, Fortran-90, C or C++). Examples are: Error, Beta, Gamma and Bessel functions. The algorithm for the Incomplete Gamma Function is described here.

Data Fitting and Geometry

Subprograms are provided for curve and surface fitting. Such fitting is either interpolation, where data is fitted exactly (the curve or surface goes through each data point), or approximation (where the curve or surface is a "best fit" to the data, but the curve doesn't necessarily pass through any of the points). Examples of capabilities include approximation by least squares polynomials, spline fitting, as well as Non-Uniform Rational B-Splines (NURBS).

Polynomial and Nonlinear Equations

Subprograms are provided to find the roots of polynomials, zeros of real valued functions, zeros of complex functions of a complex variable, and for zeros of systems of nonlinear equations.

Quadrature and Differential Equations

Subprograms are provided for integration of tabular data and data defined by user written functions using a variety of methods. Single, double, and multiple quadrature algorithms are included. Subprograms for the solution of stiff and non-stiff ordinary differential equations are also provided.

Linear Algebra

Subprograms are provided for the solution of systems of linear equations, to perform matrix and vector operations, for eigenvector and eigenvalue analyses, and to solve overdetermined and underdetermined linear systems of equations. Most basic linear algebra capabilities are provided through LAPACK. In the Fortran version, a variety of subprograms are provided to take advantage of any special characteristics of the system of equations (banded, triangular, etc.).

The linear algebra capabilities provided by BCSLIB are intended for small to medium sized problems. The customer is encouraged to investigate BCSLIB-EXT for applications involving very large dimensional linear algebra problems.

Statistics and Probability

Subprograms are provided for random number generation, probability distributions, descriptive statistics and, in the Fortran version, regression analysis. The methodology and characteristics of the Random Number Generator are described here.

Time Series Analysis

Subprograms are provided for one, two and three dimensional Fourier transforms.

Data Manipulation

Subprograms are provided for various types of in-core sorting of numeric and character data, and for string and character manipulation.


Support subprograms are provided for error handling, system interfaces, and for the display of line-printer graphics.

Support Environment

Mathematical and machine constants are uniquely defined for maximum significance as a function of the compiler and machine hardware upon which BCSLIB is installed.