Nicolas Brodu     
          
            C H E A P M A T R I X
Nicolas
Brodu
C H E A P M A T R I X

Description

CheapMatrix est une bibliothèque de calcul matriciel en C++. Elle peut se lier avec LAPACK afin de bénéficier des fonctionnalités de cette excellente bibliothèque de calcul matriciel en FORTRAN.

J'ai développé CheapMatrix lors de mon MSc by Research en Angleterre (Aston University). Mon superviseur n'étant pas familier du C++, j'ai écris cette bibliothèque dans un soucis de simplicité d'utilisation. En particulier, les utilisateurs de Matlab doivent pouvoir lire, comprendre, et pourquoi pas écrire du code C++ utilisant CheapMatrix.

Le but est de fournir des matrices prêtes à l'emploi, sans avoir à instancier des tas de templates ou à utiliser des syntaxes farfelues.

Par exemple, vous pouvez écrire directement:

    Matrix a(4,4);
    Vector v(4);
    a =  1,  2,  3,  4,
         5,  6,  7,  8,
         9, 10, 11, 12,
         13, 14, 15, 16;

    v = 0.1, -0.2, 0.3, -0.4;

    Vector b = a * v;

    etc...

ou encore

    Vector a = range(1,100);
    Matrix b = a * sin(a).transpose();

CheapMatrix est destiné à un public de scientifiques, qui ne veulent pas forcément passer du temps à comprendre toutes les subtilités du C++, mais plutôt effectuer des calculs.

A cette fin, CheapMatrix peut se lier avec LAPACK et ainsi fournir des fonctions parmies les plus pointues et optimisées en l'algèbre linéaire. Le but est donc de fournir une syntaxe simple en C++, plutôt que de devoir coder en Fortran ou en C pour utiliser LAPACK.

Enfin, CheapMatrix a été conçu en gardant à l'esprit un soucis d'optimisation de la place mémoire requise. Ceci ne veut pas dire que les calculs ne sont pas performants; Au contraire, puisque LAPACK est utilisé pour les calculs complexes, les performances sont mêmes plutôt bonnes. CheapMatrix n'est simplement pas conçu pour faire un moteur d'affichage 3D pour des jeux à 100 images/seconde!

Extensions

CheapMatrix dispose de plusieurs extensions:

- Routines utilitaires basiques: matrices prédéfinies, fonctions statistiques (moyenne, écart-type, etc), définitions d'un intervalle, générateurs de matrices définies par des fonctions, etc.

- Fonctions d'optimisation. Sont implémentés la méthode des gradients conjugués et la méthode du recuit simulé. A titre d'exemple, ces méthodes sont appliquées sur une sinusoïde, mais aussi sur des réseaux de neuronnes.

- LAPACK. Des fonctions prêtes à l'emploi sont écrites pour la décomposition en valeurs singulières, estimation des moindres carrés, l'inversion de matrice, et la recherche des valeurs propres. Ces interfaces vers LAPACK servent d'exemple pour appeler toute autre fonction LAPACK à la guise de l'utilisateur.

Page officielle

CheapMatrix est un projet sur SourceForge, et vous touverez plus d'information sur le site du projet (en anglais).

Projets

Deux projets utilisent ou ont utilisé CheapMatrix.

- Mon propre projet de MSc by Research .

- Un projet de la Caisse Primaire d'Assurance Maladie (CPAM) qui voulait réaliser des calculs statistiques.

Style:
      L O G I C I E L S 
C
H
E
A
P
M
A
T
R
I
X
C
H
E
A
P
M
A
T
R
I
X