IntBLAS

A C++ Interval BLAS Implementation

Ever since Ray Moore proposed interval arithmetic in the early of 1950's, there have been numerous results of interval computing in various application areas. To meet the needs for interval basic linear algebra subroutines (BLAS) as software development tool, the Basic Linear Algebra Subprograms Technical (BLAST) Forum proposed an interval BLAS standard as a part of its new BLAS standard. This is an implementation, named IntBLAS, of the interval BLAS standard. Implemented with ISO/ANSI standard C++, IntBLAS is cross-platform and architecture independent. By taking the advantages of object-oriented features of C++, IntBLAS treats intervals, interval vectors and matrices like other regular basic numerical types. Hence, we overload the operators in the standard mathematics library <cmath> wherever appropriate for seamless integration. For example, the operators + and - can be used to add and subtract two intervals, interval vectors, or interval matrices. Only interval specific operations are defined with newly named class member functions. IntBLAS uses directed rounding for rigor and double precision as default to record real intervals.

Installation

To install this package you first must download the source and unpack it. If you are using Linux/UNIX and you have gcc then you simply need to run 'make' followed by 'make install' inside the gcc directory. You may need to edit the make file in the gcc directory and change the installation path, and the documentation path.

Usage

A static library is created when you insalled the package. To make use of the library do the following:
  • Include the file <IntBLAS.h> in your source file.
  • All classes, functions, global variables, etc. are defined in the intblas namespace. So make the appropriate using declarations.
  • You need to call the function INIT_INTERVAL() before making use of any of the classes, functions, or global variables. This function should ideally be called even before any declarations.
  • Finally you will need to instruct your compiler to link to intblas.lib

©Micheal Nooner, 2005