Eigen pour C++ : guide complet avec exemples
1. Qu'est-ce que Eigen et pourquoi l'utiliser ?
Eigen est une bibliothèque de calcul matriciel haute performance, basée sur les templates, pour le langage C++. Elle offre aux développeurs des outils puissants et intuitifs pour manipuler matrices, vecteurs, solveurs numériques et algorithmes associés. Contrairement à d'autres bibliothèques (comme BLAS/LAPACK), Eigen est écrit en C++ pur sans dépendances externes, ce qui en fait un choix idéal pour les projets où la simplicité d'intégration et la portabilité sont essentielles.
Pourquoi l'utiliser ? Dans le développement moderne, l'algèbre linéaire est au cœur de nombreux domaines : infographie, traitement d'images, apprentissage automatique, robotique et simulations scientifiques. Eigen permet aux développeurs de ne pas réinventer la roue et d'utiliser des algorithmes éprouvés et optimisés, souvent plus rapides que des implémentations maison. La bibliothèque exploite pleinement les templates C++ (template expressions) pour effectuer des optimisations complexes à la compilation, évitant ainsi la création d'objets temporaires et fusionnant les opérations en une seule boucle efficace.
Eigen prend en charge tous les types de matrices (denses, creuses, à taille fixe et dynamique), une large gamme de décompositions (LU, QR, SVD, Cholesky, valeurs propres) et des transformations géométriques (rotations, translations, transformations affines). Grâce à sa flexibilité et ses performances, Eigen est devenu un standard de facto pour de nombreux projets C++, y compris des frameworks reconnus comme ROS (Robot Operating System), TensorFlow (partiellement) et CGAL.
2. Installation
Eigen est une bibliothèque header-only (uniquement composée de fichiers d'en-tête). Cela signifie que vous n'avez pas besoin de compiler une bibliothèque séparée ni de faire de lien. Il suffit de télécharger les fichiers et d'indiquer le chemin au compilateur.
Méthode 1 : Installation manuelle (recommandée pour l'apprentissage)
# Téléchargez la dernière version depuis le site officiel ou GitHub
wget https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.tar.gz
tar -xzf eigen-3.4.0.tar.gz
sudo mv eigen-3.4.0 /usr/local/include/eigen3
Lors de la compilation, indiquez le chemin vers les fichiers d'en-tête :
g++ -std=c++11 -I /usr/local/include/eigen3 mon_programme.cpp -o mon_programme
Méthode 2 : Via le gestionnaire de paquets (Linux/macOS)
# Ubuntu/Debian
sudo apt-get install libeigen3-dev
# macOS (via Homebrew)
brew install eigen
Méthode 3 : Via vcpkg ou Conan (Windows)
# vcpkg
vcpkg install eigen3
# Conan
conan install eigen/3.4.0@
Important : Contrairement à Python (pip) ou JavaScript (npm), Eigen ne s'installe pas via un gestionnaire de paquets du langage. C'est une bibliothèque système C++.
3. Démarrage rapide — exemple minimal fonctionnel
Créez un fichier main.cpp et copiez-y le code suivant :
#include <iostream>
#include <Eigen/Dense> // En-tête principal pour les matrices denses
int main() {
// Créez une matrice 2x2 et remplissez-la
Eigen::Matrix2d mat;
mat << 1, 2,
3, 4;
// Créez un vecteur 2x1
Eigen::Vector2d vec(5, 6);
// Multipliez la matrice par le vecteur
Eigen::Vector2d resultat = mat * vec;
// Affichez le résultat
std::cout << "Matrice :\n" << mat << std::endl;
std::cou Aussi dans la bibliothèque
Guide complet Swagger-PHP pour PHP : tutoriel et exemples
Travailler avec S3 et les stockages cloud en Swift (iOS/macOS) : la bibliothèque AWSS3
toml++ pour C++ : guide complet avec exemples
Paging 3 pour Kotlin : guide complet avec exemples