Menu

My requirements are... do I use IT++

2003-11-17
2012-09-15
  • Thomas Halahan

    Thomas Halahan - 2003-11-17

    Hi,

    I found IT++ on the GNU site and was immediately attracted by the good documentation and easy to use interface.  Also some orientation about what the hell BLAS and LAPACK are has put me partially on the path to choosing the linear algebra package I need.  I would welcome any conformation that IT++ is the right choice for me should anyone be willing to comment.

    Requirements are (in order of importance)

    1) Basic matrix manipulation in C++ on Windows XP .NET v7.1.  I will be implementing filters and control algorithms, and will not use anything more than eig and LS if that.  Mostly need matA*matB.

    2) Relatively bug free, as will be production code.

    3) Fast.

    4) User friendly.  This is important as so many other libraries are really hard work.

    5) Documented.

    6) Multiplatform, (migrate to Solaris in 1 year).

    7) Free!, well I am willing to pay for the Intel MKL if necessary - so would pay the same ($200) for library.

    I have looked at CLAPACK (big and ugly), TNT (looks nice), MTL (boasts good performance, although not active development), GSL (looks ugly, but very limited info on other stuff) but liked the look of IT++ the most as it is user friendly and well documented.  However I cannot gleem the performance levels of IT++ and do not know how production ready it is.  Can anyone therefore comment on these things?  (I saw performance targets of >= matlab v6.5 in a previous post.).  All comments welcome.

    Regards, Tom

     
    • Pĺl Frenger

      Pĺl Frenger - 2003-11-18

      Hi Tom,

      Lots of questions. I don't know if I can answer them all though. Anyway:

      1. Regarding you first question I must confess that our track reckord of support for the MSVC++ line of compilers have been a bit shaky. Most of us use the GCC (http://www.gnu.org/software/gcc/gcc.html) compiler even on Windows XP (in the Cygwin envirionment: http://sources.redhat.com/cygwin\). However our MSVC++ guy have now made some efforts so the CVS version (click on the CVS link above and check out as anonomous) should work with MSVC++ I am told. And the upcomming 3.7.2 version will support MSVC++ .Net.

      2. The code is relatively bug free. IT++ have been around for ten years or so by now. But there are always bugs in all software and the ones you don't know of are the worst. We try our best to squash the bugs we find. Regarding if it is "production ready" or not I can say that we use IT++ a lot at work. In fact it is our main tool for simulations since almost three years (I work for a large Swedish telecom manufacturer). We have stopped using Cossap and have started to use IT++ instead. In full scale. And it works.

      3. Well, IT++ with MKL (or any other BLAS library such as ATLAS) it is really fast. IT++ without MKL it is not really fast. Just plain fast.

      4. As always, when you know how something works it is easy. But from my experience from work it seems to rather easy for new users to start enjoying IT++.

      5. The documentation can never be good enough. What we have on our home page is what we have. You have to judge for your self if it is sufficient for your needs or not.

      6. Multiplatform? I thought you used MSVC++. You should switch to GCC if you want to be multiplatform. With GCC we run IT++ on Windows/Cygwin, Linux, Solaris and MacOS X. MSVC++ runs only on Windows.

      7. IT++ is free as in speech. It is licenced under GPL.

      Well, hope this helped you somewhat.

      Cheers,

      //Pl Frenger

       
      • Thomas Halahan

        Thomas Halahan - 2003-11-19

        Hello Pal,

        Many thanks for your comments, they were very helpfull.  Good news about 3.7.2 supporting .Net too!

        It seems that IT++ is more OO than other libraries.  I like it.  I have looked a bit at the source like the mat.cpp and vec.cpp files.  Can you tell me, are the basic functions, like manipulating matrices, OO wrappers to underlying BLAS routines?  I am not yet proficient at BLAS enough yet to see where it plugs in.

        Another question; out of interest why do you not use the Matlab C matrix classes?  I personally find them horrible and I don't want to tie myself to Matlab - however you might have better reasons.

        Thanks again, Tom

         

Log in to post a comment.