

De nombreuses fonctions de code sont proposées sous forme de bibliothèques externe (en anglais library).
Afin de pouvoir utiliser ces bibliothèques, il faut avoir accès à deux types de fichiers:

- les fichiers d'en-tête des fonctions de la bibliothèque (fichier .h ou équivalent).
- les aux corps compilés des fonctions: fichiers d'extension .so ou .a. Ces fichiers sont l'équivalent d'un ou plusieurs fichiers objets archivés dans un seul fichier.

* Les fichiers .a sont appelés bibliothèque statiques et sont directement incluses dans l'executable de votre programme au moment de l'édition des liens.
* Les fichiers .so sont appelés bibliothèque dynamique et ne sont pas incluses dans l'executable. Elles sont chargées dynmiquement à chaque lancement de l'executable. Ces fichiers doivent donc rester disponible afin de permettre à l'executable de se lancer. Elles sont également nécessaires au moment de l'édition des liens.



Généralement, les bibliothèques externes communes sont installées de la manière suivante:

- Les fichiers d'en-tête sont placés dans 
/usr/include/

- Les fichiers de bibliothèque compilés dans
/usr/lib/


Ces répertoire sont connus par défault: 
- un fichier FICHIER.h situé dans le répertoire /usr/include/ peut être directement inclu dans votre fichier source sous la forme
#include <FICHIER.h>
et sera reconnu au moment de la compilation.

- un fichier LIBNOM.so ou LIBNOM.a situé dans le répertoire /usr/lib/ peut etre lié à votre executable par l'ajout de l'option -lNOM au moment de l'édition des liens.
Dans le cas d'une bibliothèque dynamique, ce même fichier sera automatiquement chargé au moment de l'exécution de votre exécutable.


================================================

Considérons l'exemple de l'utilisation de la bibliothèque boost (http://www.boost.org/) pour le calcul de la fonction mathématique spéciale de Bessel.
Pour rappel, boost est une bibliothèque C++ répendu proposant des fonctions, algorithmes et structures de données pouvant étendre la bibliothèque standard.



Nous souhaitons utiliser la fonction cyl_bessel_j(j,x)
http://www.boost.org/doc/libs/1_60_0/libs/math/doc/html/math_toolkit/bessel/bessel_first.html
permettant d'évaluer valeurs de la valeur de la fonction de Bessel d'ordre j de première espèce à la valeur x.

0- Considérez le code source donné dans l'exemple.

1- Ajoutez l'inclusion du fichier d'en-tête donnant la signature de cette fonction
#include <boost/math/special_functions/bessel.hpp>

2- Utilisez le code de la fonction afin d'afficher les valeurs de J1(0.5), J1(1.0), et J1(1.5).
