200 likes | 217 Views
IntBLAS is a computational environment for interval matrices in C++. This package includes basic interval arithmetic subroutines, interval linear algebra subroutines, and easy-to-use core and auxiliary classes for efficient implementation. It is cross-platform, easy to install, open-source, and well-documented. Download it from the provided link to enhance your linear algebra computations.
E N D
A Computational Environment for Interval Matrices in C++ Michael Nooner and Chenyi Hu Computer Science Department, University of Central Arkansas
Introduction • Motivations • What is IntBLAS • Why use IntBLAS • The package
Motivations • Profil, IntLAB, IntLib • Easy to use • Cross platform
What Is IntBLAS • Interval BLAS Standard • Basic Interval Arithmetic Subroutines (IntLib) • Interval Basic Linear Algebra Subroutines • Level 1, 2, 3 • C++ Implementation • Three core objects • Three auxiliary objects
Why use IntBLAS • Easy to install • GCC • Visual Studio • More on the way … • Cross Platform • Open Source (LGPL) • Well Documented • Easy to use
The Package • One header • IntBLAS.h • Two Static Libraries • intblas.lib (optimized) • intblas_d.lib (debug) • One Namespace • intblas • One Initialization Function • INIT_INTERVAL()
The Package #include<IntBLAS.h> using namespace intblas; int main() { INIT_INTERVAL(); Interval a( .1 ); IntervalMatrix m( 2, 2 ), result; m[0][0] = 2.3; m[0][1] = 3.3; m[1][0] = 5.5; m[1][1] = a; result = m + a;
Core Classes • Three Main Classes • Interval • IntervalVector • IntervalMatrix
Interval Class • IntLib • Double precision • Rounding • Round Up: add one ε • Round Down: subtract one ε • 16th – 18th significant digit
Interval Class • Arithmetic operators • Standard Functions • ipow, isin, isqrt, ilog, iatan … • Additional interval set routines • isEmpty(), midpoint(), width(), …
IntervalVector and IntervalMatrix • BLAS Standard • Method/Function pairs double norm( NORMTYPE n ); friend double norm( IntervalMatrix& a, NORMTYPE n ); • Arithmetic operators • Assignment operator • Intermediate values
Error Handling • INTERVAL_EXCEPTION int code char msg[200] • Global Error Object • 32 predefined codes setError( int code, const char* msg = NULL ) getLastError()
IntervalVectorT & IntervalMatrixT • Enables strong dimension checking • Typdef common matrices and vectorstypedef IntervalMatrixT<2,2> IMatrix2x2;. . .IMatrix2x2 m, n, o;
Problem • Solve the following set of linear equations:
Problem • By paper the solution is
Conclusion • Interval Basic Linear Algebra Subprograms • Easy to install • Cross Platform • Open Source • Well Documented • Easy to use • Download it from http://www.geocities.com/mike_nooner
Future Work • Banded and Sparse Matrices • Arbitrary precision arithmetic • Fuzzy Logic Module • Interval Based LU Decomposition • Other cool stuff!