Many of you may be aware of the IT++ C++ library of information technology related functions.


IT++ includes vector and matrix functionality much like Matlab as well as many communications related functions (coding, interleaving, modulation, etc). Of course you’re still programming in C++ so it’s definitely more painful than Matlab, but if you have any computationally intensive functions that you’d like to use for simulation purposes, this package may be useful to you. The Hydra multihop prototype makes use of this library for it’s vector/matrix structure.


The installation of IT++ for use with Linux distributions is a fairly straightforward affair:

  1. Using the link from the IT++ site, download the latest IT++ source.
  2. Follow these instructions for making the source.

If you are using the Gentoo Linux distribution, the package manager (emerge) will do steps 1 and 2 for you. When compiling C++ programs using IT++ libraries, you must consider the appropriate syntax for proper linking.

Recently, I had the desire to install IT++ on my intel Mac OS X laptop. Unfortunately, there is little documentation on how to get this working. It took me a while to tweak the settings, but I finally got it to work. Here are some hints:

  • Use fink to install FFTW and ATLAS.
  • Using the x11 terminal keep the default prefix (/usr/local) when executing the configure script. Other locations will make header inclusions messy.
  • When you use fink to install the FFTW and ATLAS dependencies (which optimize matrix/vector and FFT computations), you must add this to the library and include paths. For example, you might execute:
    export LDFLAGS=”-L/sw/lib”
    export CPPFLAGS=”-I/sw/include”
  • Before executing the configure script, you need to point to doxygen, dvips, and latex (I’m not really sure if you need all of this). The problem is, the installation looks for these programs in the root directory, and if you’re using fink (again, I recommend this) these programs are installed in the /sw/ directory. I created links for all three of these programs. For example
    sudo ln -s /sw/bin/dvips /usr/bin/dvips

    creates a symbolic link in the root to the fink-installed dvips program.