WARNING: This is the old version. The current version is available here.
PROFIL (Programmer's Runtime Optimized Fast Interval Library) is a C++ class library supporting the most commonly needed interval and real operations in a user friendly way. The supported data types are currently:
INT, REAL, INTERVAL, vectors and matrices of these types, and complex numbers.
PROFIL is based on BIAS (Basic Interval Arithmetic Subroutines). The developement of BIAS was guided by the ideas of BLAS, i.e. to provide an interface for basic vector and matrix operations with specific and fast implementations on various machines, the latter frequently provided by the manufacturers. The idea of BIAS is to give such an interface for interval operations with the objective:
Currently, for IBM RS/6000 series, Sparc architectures,
HP 9000/700 series, and PCs with coprocessor under Unix,
Linux, DOS or OS/2, a general purpose, but nevertheless
very efficient version of BIAS written in C is available,
using directed rounding and lower/upper bound interval representation.
The adaption to other architectures (as they support directed
rounding) is restricted to the implementation of 3 small routines
switching the rounding mode and possibly some slight changes in
A BIAS version for architectures without directed rounding modes is available on request. PROFIL is under developement so the number of supported data types and routines will grow.
Comparisons with other interval libraries and programming environments show a speed improvement of up to one magnitude.
The source code for PROFIL/BIAS is available as compressed tar-file for Unix systems. The PC version which differs mainly only in shortened file names is also available. An extension package, supporting linear lists, automatic differentiation, and some test matrices is available for Unix systems and for PCs. A simple implementation of a global optimization method is also available for Unix systems as well as for PCs.
The PROFIL/BIAS documentation is available online on this server or as compressed PostScript files: