I did actually not know of MTL but I regularly check for other libraries with similar features. I have e.g. been looking into Blitz++. However, we like to have a easy to use interface, and we also need the fuctionality in LAPACK. In fact MTL also uses LAPACK so that is not a big difference. The interface in MTL seems to assume iterators which is a concept that many programmers seem not to favour, in may be elegant but apparently not intuitive. We could of course hide this making an it++ wrapper class to the MTL objects.
Furthermore MTL requires more from the compiler since it uses some advanced templating features (so does Blitz++) which probably will not work with e.g. Visual C++ 6.0. Hence, we have not felt it appropriate to switch to Blitz++ at an earlier stage. Checking the MTL site it seems that they need different distribution for Visual C++ (probably because it does not comply very well to the ISO C++ standard). It may be that once compilers start being more ISO compliant libraries like MTL and Blitz++ may be of interest. Maybe the time has come?
Regarding if MTL is better, I am not convinced. The results shown on the MTL homepage is for SUN Ultra and no other machine using the KAI C++ compiler. Using e.g. the g++ compiler and an Intel processor the results may be very different. The main target for IT++ is Intel and g++ (and Visual C++) since these seem to be the most commenly used compilers and plattforms.
/Tony
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi,
Again I have a question, why did you used LAPACK and CBLAS and why not a C++ template library, which is better, like MTL?
I did actually not know of MTL but I regularly check for other libraries with similar features. I have e.g. been looking into Blitz++. However, we like to have a easy to use interface, and we also need the fuctionality in LAPACK. In fact MTL also uses LAPACK so that is not a big difference. The interface in MTL seems to assume iterators which is a concept that many programmers seem not to favour, in may be elegant but apparently not intuitive. We could of course hide this making an it++ wrapper class to the MTL objects.
Furthermore MTL requires more from the compiler since it uses some advanced templating features (so does Blitz++) which probably will not work with e.g. Visual C++ 6.0. Hence, we have not felt it appropriate to switch to Blitz++ at an earlier stage. Checking the MTL site it seems that they need different distribution for Visual C++ (probably because it does not comply very well to the ISO C++ standard). It may be that once compilers start being more ISO compliant libraries like MTL and Blitz++ may be of interest. Maybe the time has come?
Regarding if MTL is better, I am not convinced. The results shown on the MTL homepage is for SUN Ultra and no other machine using the KAI C++ compiler. Using e.g. the g++ compiler and an Intel processor the results may be very different. The main target for IT++ is Intel and g++ (and Visual C++) since these seem to be the most commenly used compilers and plattforms.
/Tony