VNODE sous Ubuntu 12.04 / VNODE under Ubuntu 12.04

Voulant faire un peu d’intégration garantie en C++, j’ai décidé d’installer la bibliothèque VNODE-LP sur mon Ubuntu 12.04. Malheureusement cette installation ne se fait pas si facilement… Voici les étapes qui m’ont permis d’y arriver.

I wanted to process guaranteed integration using C++ so I decided to install the VNODE-LP library under my Unbuntu 12.04. Unfortunately  this install was not as easy as I expected… Here are the steps I did to manage the installation.

La première chose à faire c’est de créer le dossier dans lequel sera installé la bibliothèque. Pour ma part j’ai créé un dossier INTERVAL_TOOLS dans mon $(HOME).

The first thing to do is to create the directory where you want to install the library. I decided to create an INTERVAL_TOOLS directory in my home directory.

$ mkdir ~/INTERVAL_TOOLS

Ensuite il faut installer Profil/Bias. Pour cela il faut télécharger l’archive Profil-2.0.8.tgz sur le site http://www.ti3.tuhh.de/keil/profil/index_e.html. Ensuite mettre le fichier dans le dossier INTERVAL_TOOLS qu’on a créé puis l’extraire (clique droit et extraire ici à l’aide de l’interface graphique). Il ne reste plus qu’à exécuter les commandes suivantes:

Then it is needed to install Profil/Bias. To do that, download the file Profil-2.0.8.tgz (http://www.ti3.tuhh.de/keil/profil/index_e.html) and extract it in the INTERVAL_TOOLS directory (I did it using the graphical interface). Then tape the following commands in a terminal:

 

$ cd ~/INTEVAL_TOOLS/Profil-2.0.8/
$ ./Configure
$ make all
$ make install
$ make check

Deux remarques:
- Lors du ./Configure, il faut choisir sa configuration (12. x86-Linux-compat-gcc dans mon cas)
- Ne pas oublier de commenter la ligne pour la division par zéro si nécessaire

Two remarks
- During the ./Configure you have to chose your configuration (12. x86-Linux-compat-gcc in my case)
- Do not forget (if you need it) to comment the corresponding line for the divide by zero stuff  

Si Profil/Bias a bien été installé, le message suivant devrait s’afficher dans votre terminal.

With a successful installation you will have the following message:

Passed 2 of 2
Warning: 0
Failed: 0

Maintenant, avant d’installer VNODE, il faut installer la bibliothèque g77. Ne se trouvant dans les dépôts de base de la distribution, il faut rajouter des sources à notre apt-get. Pour cela il faut éditer le fichier source.list:

Now before installing VNODE, you need to install the g77 library. As it is not in the classical packages, you need to add some sources to your apt-get. To do that, you need to edit the file source.list:

$ sudo gedit /etc/apt/sources.list

#ajouter les lignes suivantes à la fin du fichier
#add the following lines at the end of the file
$ deb http://hu.archive.ubuntu.com/ubuntu/ hardy universe
$ deb-src http://hu.archive.ubuntu.com/ubuntu/ hardy universe
$ deb http://hu.archive.ubuntu.com/ubuntu/ hardy-updates universe
$ deb-src http://hu.archive.ubuntu.com/ubuntu/ hardy-updates universe

#mettre a jour les dépots et installer la bibliothèque
#update and install the library
$ sudo apt-get update
$ sudo apt-get install g77

Bien, maintenant on peut télécharger VNODE-LP (disponible sur le site http://www.cas.mcmaster.ca/~nedialk/vnodelp/ après avoir rempli un petit questionnaire), mettre l’archive vnodelp.tar.gz dans le dossier INTERVAL_TOOLS et l’extraire (toujours à l’aide de l’interface graphique).

Well now you can download the VNODE-LP sources (available at http://www.cas.mcmaster.ca/~nedialk/vnodelp/ after a tiny survey). Move the file vnodelp.tag.gz in the directory INTERVAL_TOOLS and extract it (still using the graphical interface).

A partir de là il faut modifier plusieurs fichiers pour réussir à installer la bibliothèque. Le premier, c’est le makefile

From there you need to modify several files to successfully install the library. The first one is the makefile

$ gedit ~/INTERVAL_TOOLS/vnodelp/makefile

Il faut modifier les lignes suivantes (on indique quelle configuration on a ligne 3 (Linux avec Profil/Bias) et où on veut installer la bibliothèque ligne 4):

You need to modify the following lines (the desired configuration on line 3 (Linux and Profil/Bias) and where you want to install the library line 4):

1 # set CONFIG_FILE and INSTALL_DIR
2
3 CONFIG_FILE ?= LinuxWithProfil
4 INSTALL_DIR ?= $(HOME)/INTERVAL_TOOLS/VNODELP_INSTALL
5
6 #--- DO NOT CHANGE BELOW ---

Il faut aussi modifier le fichier de configuration correspondant (LinuxWithProfil dans notre cas)

You also need to modify the corresponding configuration file (LinuxWithProfil is this case)

$ gedit ~/INTERVAL_TOOLS/vnodelp/config/LinuxWithProfil

Il faut modifier les lignes suivantes (on définit le chemin vers les bibliothèques de Profil/Bias):

The following lines have to be modified (this represents the links to the Profil/Bias library):

5 # interval package
6 I_PACKAGE = PROFIL_VNODE
7 I_INCLUDE = \
8      $(HOME)/INTERVAL_TOOLS/Profil-2.0.8/include \
9      $(HOME)/INTERVAL_TOOLS/Profil-2.0.8/include/Bias \
10     $(HOME)/INTERVAL_TOOLS/Profil-2.0.8/src/Base
11 I_LIBDIR = $(HOME)/INTERVAL_TOOLS/Profil-2.0.8/lib
12 I_LIBS = -lProfil -lBias -llr

Les derniers fichiers à éditer sont les fichiers matrixinverse.cc et iho.cc, présents dans le dossier vnodelp/lib/. Dans chacun des fichiers il faut ajouter

The last files you have to modify are matrixinverse.cc and iho.cc. Those files are in the directory vnodelp/lib/. In each file you need to add

#include <limits>

Ha oui j’oubliais, il reste encore deux petits trucs à installer avant de compiler VNODE, en utilisant le gestionnaire de paquet Synaptic, installer les bibliothèque libblas-dev et liblapack-dev.

I almost forgot, you have to install two more libraries before compiling the VNODE library. Using the Synaptic package manager, install the libraries libblas-dev and liblapack-dev.

Bien maintenant tout est prêt, il ne reste plus qu’à installer VNODE!!!

Finally, everything is ready, you can compile and install VNODE!!!

$ cd ~/INTERVAL_TOOLS/vnodelp
$ make
# ça prend un certain temps... attendre patiemment...
# it takes some time, be patient...
$ make install

Et ça y est, maintenant vous pouvez faire de l’intégration garantie!!!

Here it is, you can now process guaranteed integration!!

 

5 thoughts on “VNODE sous Ubuntu 12.04 / VNODE under Ubuntu 12.04

  1. Bonjour,

    tout d’abord merci pour le tuto qui est très clair.
    J’ai cependant eu une erreur à la compilation de vnode.
    Voici comment je l’ai résolu :
    dans le dossier include de vnode, le header « basiclinalg.h » contient des méthodes permettant, entre autre, d’inverser des matrices. La méthode « setColumn » était déclarée après son utilisation dans la méthode « transpose ». Ma version du compilateur gcc refusait cette implémentation. J’ai donc déplacé la méthode « setColumn » pour la mettre plus haut, vers le début du fichier.

    Encore merci !

    • Bonjour,
      J’avoue ne pas avoir eu ce soucis-là lors de la compilation. En tout cas merci pour la précision, ça pourra aider ceux qui rencontrent le même problème!

  2. Bonjour,

    C’est très utile ce guide. J’ai pu la compilé sous Ubuntu selon votre guide. Mon IDE est QT4 avec qmake.

    Vous avez un exemple sur l’utilisation de VNODELP sous forme C++ standard? Je connais rien sur le LP, du coup, j’amerais bien de travailler encore sous C++.

    J’ai inclut :

    INCLUDEPATH += ~/Interval_tools/Vnodelp_install/vnodelp/include \
    ~/Interval_tools/Vnodelp_install/vnodelp/FADBAD++ \
    ~/Interval_tools/Profil-2.0.8/include

    Aussi parcourir le libraire:
    LIBS += -L~/Interval_tools/Vnodelp_install/vnodelp -lvnode

    Mais, il y a beaucoup des erreurs comme :

    v_bias is not a namespace name ou bien « interval » was not declared in this scope etc.
    Pour tester les libraire, j’ai fait simplement comme la suite sous QT:

    #include

    #include
    #include « vnode.h »
    #include

    using namespace std;
    using namespace vnodelp;
    using namespace v_bias;

    int main(int argc, char *argv[])
    {
    QCoreApplication a(argc, argv);

    return a.exec();
    }

    Vous avez une idée ?

    • Bonjour,

      Voici le début de mon fichier *.pro qui me permet notamment d’utiliser VNODELP.

      # POUR VNODE
      QMAKE_CXXFLAGS += -O2 \
      -Wall \
      -Wno-deprecated \
      -DNDEBUG \
      -DPROFIL_VNODE \
      -DMAXORDER=50 \
      -std=c++0x
      QMAKE_CXXFLAGS += -I /home/remy/INTERVAL_TOOLS/VNODELP_INSTALL/vnodelp/include/
      QMAKE_CXXFLAGS += -I /home/remy/INTERVAL_TOOLS/VNODELP_INSTALL/vnodelp/FADBAD++/
      INCLUDEPATH += /home/remy/INTERVAL_TOOLS/Profil/include/
      INCLUDEPATH += /home/remy/INTERVAL_TOOLS/Profil/include/BIAS/
      INCLUDEPATH += /home/remy/INTERVAL_TOOLS/Profil/src/Base/
      INCLUDEPATH += /home/remy/Bureau/qt_et_VNODE/test_VNODE/FADBAD++/
      INCLUDEPATH += /home/remy/INTERVAL_TOOLS/VNODELP_INSTALL/vnodelp/include/
      INCLUDEPATH += /home/remy/INTERVAL_TOOLS/VNODELP_INSTALL/vnodelp/FADBAD++/
      LIBS += -L/home/remy/INTERVAL_TOOLS/Profil/lib \
      -L/home/remy/lib \
      -L/home/remy/INTERVAL_TOOLS/VNODELP_INSTALL/vnodelp/lib \
      -lvnode \
      -lProfil \
      -lBias \
      -llr \
      -llapack \
      -lblas \
      -lstdc++ \
      -lg2c

      J’ai aussi remarqué (juste une impression, ce n’est peut être pas justifié…) que le raccourci « ~/ » symbolisant le répertoire « home » de l’utilisateur n’est pas pris en compte avec QT… En d’autres termes, si je note
      ~/INTERVAL_TOOLS/VNODELP_INSTALL/vnodelp/include/
      au lieu de
      /home/remy/INTERVAL_TOOLS/VNODELP_INSTALL/vnodelp/include/
      j’ai des erreurs de compilation….

      J’espère que ça vous aidera, bon courage.

      • Merci beaucoup! Enfin, ça tourne.
        Votre remarque est très utile. J’ai ajouté le chemin d’accès complet.
        Merci à vous.

Comments are closed.