Fiche logiciel validé
  • Création ou MAJ importante : 07/05/08
  • Correction mineure : 07/05/08
Auteur :
  • Thierry Dumont - Institut Camille Jordan (Université Lyon 1, CNRS, INSA Lyon, Ecole Centrale Lyon)
Relecteur(s) :
Responsable thématique :
Mots-clés

Blitz++ : bibliothèque de tableaux et vecteurs en C++

Description
Fonctionnalités générales :

Bibliothèque générique de tableaux et vecteurs en C++.

Autres fonctionnalités :
  • Blitz++, en utilisant la technique des « Expression Templates » permet la compilation optimale et sans copie d’expression comportant des opérateurs arithmétiques entre tableaux. Elle permet aussi une syntaxe proche de Fortran 95 pour la manipulation de tableaux et de sous tableaux.
  • La performance est un souci permanent des développeurs dans le but de détrôner le monopole du fortran en matière de manipulation de tableaux.
Interopérabilité :

Blitz++ définit des tableaux indexés « à la Fortran » (colonnes avant lignes, indices supérieurs ou égaux à 1).

Contexte d'utilisation :

Utilisée par moi même pour tous mes dévelopements (méthodes numériques pour la résolution d’équations aux dérivées partielles entre autres).

Limitations, difficultés, fonctionnalités importantes non couvertes :

Blitz++ n’est pas une bibliothèque d’algèbre linéaire. Elle incorpore une classe de matrices, non documentée.

Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré :

Distributions debian-like (et probablement d’autres distributions Linux). A noter que sous Ubuntu, le package est disponible sous certaines versions, mais pas sous d’autres !

Plates-formes :

Linux (avec gcc > 2.9), MacOsX, Windows (avec les bons compilateurs, dont la liste est donnée dans la documentation de blitz++).

Environnement de développement
Type de structure associée au développement :

Communauté OONUMERICS, développée par T. Veldhuizen; voir le site http://www.oonumerics.org/.

Eléments de pérennité :

Première version en 1998.

Références d'utilisateurs institutionnels :

Projets Python Numpy, Scipy, Weave.

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums :
Documentation utilisateur :

Disponible sur http://www.oonumerics.org/blitz/docs/ aux formats html (en ligne), pdf et postscript -en anglais-.
De nombreux exemples facilitant la prise en main : http://www.oonumerics.org/blitz/examples/

Divers (astuces, actualités, sécurité) :
  • L’installation et le fonctionnement correct de Blitz++ reposent sur la qualité du compilateur C++. Pour gcc, les versions supérieures à 2.95 conviennent. Pour les autres compilateurs, voir http://www.oonumerics.org/blitz/platforms/
  • L’installation à partir du fichier tar.gz est particulièrement facile, en tout cas avec les compilateurs g++.
  • Réalisée avant tout avec des templates, l’installation de la bibliothèque crée peu de binaires. Des tests extensifs, qui peuvent aussi servir d’exemples sont livrés avec le fichier tar.gz.
  • La compilation de programmes utilisant Blitz++ est gourmande en mémoire (compilation non recommandée avec moins de 500 mega octets).
  • Voir http://osl.iu.edu/~tveldhui/papers/techniques/ pour la description des techniques utilisées (expression templates, template metaprograms. etc).