TBCI is a C++ library which provides classes for Vectors, Matrices, etc., and defines operations on them such as additions, multiplications, etc. There are many Matrix classes providing specializations for different sparse matrices. They all feature a similar interface. TBCI comes with an extensive set of solvers for linear systems and an interface to lapack libraries. It uses the temporary base class idiom, which avoids unnecessary copying of data by having a notion of real and temporary objects which are treated differently with respect to assignment and copy c'tor.
|Operating Systems||OS Independent|
Release Notes: This release has a few minor bugfixes and performance improvements. The code has received minor adaptations to compile fine with icc-11.1 and gcc-4.5+. Usage of HOT/COLD attributes has been implemented, but disabled by default (did not help in tests). cplx<>:power(double) has received a bugfix. There are some cleanups and performance improvements in the SMP parallelization infrastructure. Most notably, this release can do short busy-waiting before yielding a core, which results in less context switches and better SMP performance.
Release Notes: The CPU detection code now handles intel hyperthreaded CPUs specially; it will by default only schedule a compute thread on one of the hyperthreads. This improves performance. The packaging has been cleaned up and is now much more in line with openSUSE and Debian packaging conventions.
Release Notes: This release features a few performance enhancements. It will detect core2 and Nehalems correctly and optimize for them. thread_control structures have been rearranged for reduced cacheline bouncing, especially for the thread-safe memory allocations via malloc_cache (binary incompatible with 2.5.x). A few bugfixes have been made.
Release Notes: This release features a collection of minor fixes. There have been two areas of significant improvement. f_matrix.h had a number of bugs. Test programs (test/test_matrix*) and a code review triggered many bugs that have been resolved. The malloc_cache code was not thread-safe. This was no issue for TBCI itself, as it did not do memory (de)allocations in threads. A safeguard to only use it in the main thread has been added.
Release Notes: A number of little bugs have been fixed. The CSCMatrix::setval() function only worked with proper input sorting; malloc_cache can now extend empty vectors; GMres and SVD are safer against badly prepared input. The sources compile fine now with -pedantic. There are also a few minor feature enhancements: All matrices now have a transpose() member. Error checking messages have been improved. The SMP code now has bind_threads() support, and better autotools support has been added. The RPMs for i386 now contain libraries both with and without SSE2 support.