Bibliothèques matricielles pour C et C++

Posté par  . Modéré par Fabien Penso.
Étiquettes :
0
25
sept.
2002
Linux
Cet article traite des options actuellement disponibles en matière de bibliothèques matricielles C/C++ Open Source utilisables sous Linux. Parmi elles se trouvent Meschach qui fournit des routines pour opérer sur matrices et vecteurs de projets codés en C, la Coopware Matrix (CwMtx) pour codage en C++, et finalement Blitz, qui fournit un index de classes N-dimensionnel avec des types « utilisateurs-définis » intégraux, non fixés, complexes, et dociles.

Aller plus loin

  • # certe...

    Posté par  . Évalué à -4.

    mais est-ce que c'est des vrai-math(tm) ?



    hop -1 [jesors]
    • [^] # Re: certe...

      Posté par  . Évalué à -1.

      ca depend si tu penses comme a peu pres tout le monde ( sauf les gens bizarre et un peu bornés ) que 2+2=4 c est des maths , alors oui.
  • # plop

    Posté par  (site web personnel) . Évalué à 10.

    J'avais pas mal utilisé Meschach à une époque et c'est un bibliothèque béton (efficace, pas de bugs, extremement simple à utiliser). Par contre sa license ne doit pas être completement libre (mais du style lgpl, on peut l'utiliser dans un code closed-source, avec certaines restrictions que j'ai oublié)

    Blitz++ n'est pas vraiment une bibliothèque de matrices, mais est plutot orienté tableaux (à la base c'était pour les gens qui font du traitement d'images si je me souviens bien). C'est typiquement le genre de bibliothèque assez jolie, mais qui tue les compilateurs. Là aussi je l'avais essayée (mais pas adoptée) y'a quelques années, g++ compilait une ligne par seconde (j'exagère pas), depuis il a du faire des progrès mais les templates faut pas en abuser.

    Dans le même genre que Blitz, il y a pooma http://www.codesourcery.com/pooma/pooma(...) j'ai jamais essayé mais on m'en avait dit du bien.

    Toujours dans le genre templates, y'a mtl (Matrix Template Library) qui est pas mal et de taille raisonnable, http://www.osl.iu.edu/research/mtl/(...) , et qui peut se coupler avec itl (Iterative Template Library http://www.osl.iu.edu/research/itl/(...) ) pour les solveurs iteratifs (mais itl est indépendante, c'est tout l'intérêt des templates ici)

    Sinon il y avait un projet très ambitieux de bibliothèque (GPL) à base de templates pour gèrer les matrices, la différentiation automatique, les fft, etc: http://ldeniau.home.cern.ch/ldeniau/html/sl++.html(...) malheureusement ça a l'air définitivement abandonné..
    • [^] # Re: plop

      Posté par  (site web personnel) . Évalué à 10.

      Quand à cwMtx (je connaissais pas) elle ne joue pas dans la même cour que les autres puisque visiblement ses performances sont désastreuses, et qu'elle ne gère pas les matrices creuses. Elle a l'air assez proche de newmat http://www.robertnz.net/nm_intro.htm(...) (cad des petites libs pas chiantes à utiliser pour des petites matrices quand les perfs ne sont pas une priorité)

      D'ailleurs ça me fait penser que l'article aurait pu toucher un mot sur LAPACK, c'est quand même la lib de base (et c'est toujours un plaisir de l'utiliser ;-)
    • [^] # Re: plop

      Posté par  . Évalué à 10.

      L'article sur les matrices est sympa. Mais en fait, le choix de telle ou telle bibliothèque sur les matrices est aussi conditionné par l'utilisation qu'on va en faire. Il y a trop de choses faisables sur les matrices et, si on veut pas une usine à gaz, il faut spécialiser (matrice pleine/creuse ? stockage par bande/bloc ? ligne de ciel ? traitements directs sur la matrice / operateurs matriciels classiques ? ...)

      C'est un peu le même problème qu'on retrouve pour les graphes. Il y a pas mal de bibliothèques, mais, lorsqu'elles sont correctes (pas/peu de bugs, relativement faciles à utiliser) il faut faire le choix en fonction des possibilités offertes et de ce qu'on cherche.

      Ca faisait un bout de temps que je me disais qu'un jour, je prendrais le temps de regarder sur le web les différentes possibilités. Merci pour les références
  • # Heu

    Posté par  . Évalué à 10.

    C'aurait pas été plus simple de poster les trois articles de developerWorks en une seule news ? Là IBM a un peu tendance à monopoliser la page d'accueil... M'enfin ;-))
    • [^] # Re: Heu

      Posté par  . Évalué à 2.

      Fabien vient de postuler chez IBM, et on peut lui donner un petit coup de pouce ;)
  • # Gnu Scientific Library

    Posté par  . Évalué à 10.

    Comme bibliothèque libre en C de maths, et qui inclut des fonctions pour travailler sur des matrices, il y a la GSL :
    http://www.gnu.org/software/gsl/gsl.html(...)
  • # d'autres encores

    Posté par  . Évalué à 1.

    Quelques URLs intéressantes aussi :

    Pour construire un BLAS (avec interface fortran et C) plus une mini LAPACK :
    http://math-atlas.sourceforge.net/devel/(...)

    Un solveur creux généraliste excellent :
    http://www.cise.ufl.edu/research/sparse/umfpack/(...)

    Une lib avec un excellent choleski creux :
    http://www.tau.ac.il/~stoledo/taucs/(...)


    The fast fourier transform of the west :
    http://www.fftw.org/(...)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.