200 likes | 299 Views
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.
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!