Site Network: Main page | Doxygen docs | Sourceforge

Welcome to the IDIL website

 

Presentation

IDIL is a cross-platform library providing a simple interface for computing, data plotting and image analysis. It contains a set of C++ classes and functions which mimics the comprehensive syntax of languages like Scilab, Matlab or IDL: The library is meant to be easy to learn and use, even for people who don't know much about C or C++.

IDIL provides an array class for data and image manipulation, a simple plotting device, tools for image display, 3D visualization. A set of function makes it easy to import and save ASCII files, images, etc... IDIL uses several standard and open source libraries to achieve this goal:

  • CImg offers an efficient framework for simple and fast display, image IO, some analysis and simple 3D visualisation. [http://cimg.sourceforge.net/]
  • GSL, the GNU Scientific Library [http://www.gnu.org/software/gsl/],
  • Boost, for the threads (internal) and filesystem manipulation [http://www.boost.org/],
  • Portaudio & libsndfile in order to read and play signal from the sound card,
  • Coin3D for the 3D visualization with support for 3D acceleration

Additionally, IDIL will be interfaced some system specific libraries and software. At the present, some simple functions controlling the Measurement Computing Digital Acquisition Cards are included, as well as a few macro to export plots to Igor Pro.

A simple example

This is an example ofan IDIL program
    #include "IDIL.h"
    using namespace idil;
    
    int main(int argc, char * const argv[])
    {
      Array<float> x,y;
   
      x=findgen(1000)/100 - 5;
      y=sin(x);

      Array<long> w = where(x<=0);
y[w] = -sin(x(w)); plot(x,y,blue); message("Press OK to finish."); return 0; }

This program illustrates the way arrays can be created and manipulated with IDIL.
A single instruction creates the plot windows: