biblio. informatique

Bibliothèque au sens informatique, c'est à dire de logiciels système ou graphique ou...
Fiche dév Ens Sup - Recherche
  • Création ou MAJ importante : 19/12/09
  • Correction mineure : 13/05/12
Mots-clés

Proland : librairie OpenGL/C++ pour le rendu et l'édition temps-réel de grandes scènes naturelles

Ce logiciel a été développé (ou est en cours de développement) dans la communauté de l'Enseignement Supérieur et de la Recherche. Son état peut être variable (cf champs ci-dessous) donc sans garantie de bon fonctionnement.
  • Site web
  • Système : UNIX-like, Windows
  • Version actuelle : 4.0 - 13/05/2012
  • Licence(s) : GPL - Proland is distributed under a dual-license scheme. You can obtain a specific license from Inria: proland-licensing@inria.fr.
  • Etat : diffusé en beta
  • Support : maintenu, développement en cours
  • Concepteur(s) : Eric Bruneton, Antoine Begault, Guillaume Piolat
  • Contact concepteur(s) : proland-info@lists.gforge.inria.fr
  • Laboratoire(s), service(s)... : INRIA Grenoble, LJK

 

Fonctionnalités générales du logiciel

Proland permet le :

  • rendu et édition temps-réel de terrains multi-résolution (jusqu'à une planète entière)
  • rendu et édition temps-réel de données vectorielles (représentant par exemple des routes ou des rivières)
  • rendu temps-réel d'atmosphères planétaires et des nuages (depuis tout point de vue du sol à l'espace)
  • rendu temps-réel des océans (depuis tout point de vue du sol à l'espace)
  • rendu de forêts à base de "billboards" 2D ou 3D

Proland peut rendre des scènes naturelles très vastes, à toutes les échelles et depuis tout point de vue du sol à l'espace. Les données du paysage sont chargées à la volée en fonction du point de vue courant (seules les données nécessaires pour le point de vue courant sont stockées en mémoire, à la résolution appropriée). Les données du paysage peuvent être modifiées procéduralement à la volée. Par exemple la forme et la texture d'un terrain peuvent être modifiées en utilisant des données vectorielles représentant des routes ou des rivières.

Proland est basé sur un graphe de tâches et un gestionnaire de cache tirant parti des multi-processeurs, gérant le chargement anticipé des données pour réduire les latences disque, et gérant automatiquement les dépendances entre tâches (les données procédurales sont automatiquement recalculées quand leur données d'entrée sont modifiées).

Contexte d’utilisation du logiciel

Proland est utilisé en interne pour des travaux de recherche sur les scènes naturelles (rendu, modélisation, animation). Il est aussi utilisé de façon externe dans deux projets industriels (planétarium et simulateur de vol).

Publications liées au logiciel


Real-time Realistic Rendering and Lighting of Forests

Bruneton Éric, Neyret Fabrice
Comput. Graph. Forum, 29 (2), ???-???, 2012. Special Issue: Eurographics 2012.

Real-time Realistic Ocean Lighting using Seamless Transitions from Geometry to BRDF
Bruneton Éric, Neyret Fabrice, Holzschuch Nicolas
Comput. Graph. Forum, 29 (2), 487-496, 2010. Special Issue: Eurographics 2010.

Scalable Real-Time Animation of Rivers
Yu Qizhi, Neyret Fabrice, Bruneton Éric, Holzschuch Nicolas
Comput. Graph. Forum, 28 (2), 239-248, 2009. Special Issue: Eurographics 2009.

Precomputed Atmospheric Scattering
Bruneton Éric, Neyret Fabrice
Comput. Graph. Forum, 27 (4), 1079-1086, 2008. Special Issue: Eurographics Symposium on Rendering 2008.

Real-time rendering and editing of vector-based terrains
Bruneton Éric, Neyret Fabrice
Comput. Graph. Forum, 27 (2), 311-320, 2008. Special Issue: Eurographics 2008.

Real-time realistic illumination and shading of stratiform clouds
Bouthors Antoine, Neyret Fabrice, Lefebvre Sylvain
Eurographics Workshop on Natural Phenomena - september 2006

Fiche dév Ens Sup - Recherche
  • Création ou MAJ importante : 12/12/09
  • Correction mineure : 19/12/09
Mots-clés

OpenKN : bibliothèque pour la modélisation, l'image de synthèse et la simulation

Ce logiciel a été développé (ou est en cours de développement) dans la communauté de l'Enseignement Supérieur et de la Recherche. Son état peut être variable (cf champs ci-dessous) donc sans garantie de bon fonctionnement.
  • Site web
  • Système : UNIX-like, Windows
  • Version actuelle : 1.2 - juillet 2009
  • Licence(s) : GPL
  • Etat : diffusé, stable
  • Support : maintenu, développement en cours
  • Concepteur(s) : A. Herubel, V. Biri, V. Nozick, F. de Sorbier, F. Boutarel, B. Raynal, A. Giroud
  • Contact concepteur(s) : biri @ univ-mlv.fr
  • Laboratoire(s), service(s)... : LIGM

 

Fonctionnalités générales du logiciel

OpenKrakeN est une collection de bibliothèques C++ destinée à la recherche et l'enseignement initialement développée par la sous-équipe MISS (Modélisation, Image de Synthèse et Simulation) de l'équipe A3SI du laboratoire d'informatique Gaspard-Monge (LIGM).

Cette bibliothèque offre des fonctionnalités de base en synthèse d'images, mathématiques, vision par ordinateur, réalité virtuelle et augmentée.

Contexte d’utilisation du logiciel

Utilisation pour le développement de la recherche dans notre équipe. Ces programmes sont utilisés dans plusieurs projets en cours, par exemple Terra Numerica. Aussi comme outil pédagogique dans l'École d'ingénieur IMAC.

Netlib : logiciels et bibliothèques pour le calcul scientifique

Fiche ressource Article, événement, site web...
  • Création ou MAJ importante : 10/12/09
  • Correction mineure : 19/12/11
Mots-clés

Netlib : logiciels et bibliothèques pour le calcul scientifique

Netlib est un dépôt contenant des logiciels et des bibliothèques de fonctions écrites en Fortran, C ou C++ utiles pour le calcul scientifique. On y trouve par exemple des bibliothèques célèbres telles que blas, lapack, linpack, atlas...

La liste complète des bibliothèques disponibles est à l'URL suivante : http://www.netlib.org/liblist.html

Ce dépôt est maintenu par les laboratoires AT&T Bell, l'Université du Tennessee et le laboratoire Oak Ridge National.

Il existe dans le monde entier des clones de ce dépôt synchronisés automatiquement.

Fiche logiciel à valider
  • Création ou MAJ importante : 11/09/09
  • Correction mineure : 08/03/12
  • Rédacteur de la fiche : Stéphane Lebon - Laboratoire d'Acoustique de l'Université du Maine (CNRS, Université du Maine)
  • Responsable thématique : Jean-Luc Archimbaud (UREC puis DSI CNRS)
Mots-clés

Comedi : pilotes de cartes d’acquisition de signaux pour Linux

Ce logiciel est en cours d'évaluation par la communauté PLUME. Si vous utilisez ce logiciel en production dans notre communauté, merci de déposer un commentaire.
Description
Fonctionnalités générales

Bibliothèque (sous la forme de codes sources en C) permettant de compiler des pilotes pour des cartes d'acquisition de données sous Linux. On trouve des pilotes pour les principales cartes du commerce (NI, Avantech, Data Translation,…).

Une fois les pilotes compilés et intégrés au noyau, on peut développer ses propres applications avec l'interface de son choix.

Contexte d'utilisation dans mon laboratoire/service

Utilisation quotidienne sur cinq PC instrumentés d'une carte NI PCI 6143 (8voies simultanées 16bits 250kech/s)
Programmes développés sous GNU Octave ou en langage C.

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

Catalogue de cartes supportées limité. Notamment les derniers modèles des constructeurs ne sont pas supportés.
Liste complète ici : http://www.comedi.org/hardware.html
Pour l'instant je n'ai testé qu'un seul modèle de carte (NI PCI6143). J'utilise le programme KTimeTrace comme programme de test (ancien mais fonctionnel).

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

Nécessite un noyau Linux 2.6

Plates-formes

Ubuntu 8.10

Autres logiciels aux fonctionnalités équivalentes

Aucun à ma connaissance

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

Trois développeurs principaux : David Schleef, Frank Mori Hess, Ian Abbott

Eléments de pérennité

Projet commencé en 2000

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur
Fiche logiciel validé
  • Création ou MAJ importante : 29/06/11
  • Correction mineure : 20/10/11
Mots-clés
Pour aller plus loin
  • Fiches logiciel PLUME connexes : Octave

Linux GPIB Package : pilotes de cartes GPIB pour Linux

Description
Fonctionnalités générales

Bibliothèque (sous la forme de codes sources) permettant de compiler des pilotes pour des cartes GPIB sous Linux. On trouve des pilotes pour les principales cartes GPIB du commerce (NI, Agilent,...).

Une fois les pilotes compilés et intégrés au noyau, de nombreux langages de programmation peuvent être utilisés (C avec API compatible avec celle proposé par IBM par exemple il y a de nombreuses années, Python, ...).

Contexte d'utilisation dans mon laboratoire/service
  • Stéphane Lebon : utilisation quotidienne sur une dizaine de PC instrumentés. A travers des programmes développés sous GNU Octave ou en langage C nous interfaçons différents types d'appareils (analyseurs de spectres, oscilloscopes, voltmètres vectoriels, générateurs de signaux...) de différentes marques (Agilent, Lecroy, Stanford).
  • Jean-Marc Routoure : pilotage d'un analyseur de spectre HP89410A à l'aide d'un Mac mini sous Debian et d'une carte National Instrument type USB B. Programmation en C avec une interface graphique en GTK.
  • Arnaud Tizon : utilisation de ce code avec succès pour piloter un oscilloscope TDS794D et récupérer les mesures.
Limitations, difficultés, fonctionnalités importantes non couvertes

Plusieurs personnes signalent avoir recompilé le noyau Linux pour permettre un fonctionnement correct de cette bibliothèque.
Je n'ai personnellement jamais rencontré de problèmes depuis ubuntu 8.04 et mandriva 2006.
Une bonne connaissance du système d'exploitation est un plus, notamment pour configurer correctement le chargement du module au démarrage du PC.

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

Toutes distributions Linux.
Il existe un package débian en standard sous Ubuntu (pas testé).

Plates-formes

Ubuntu 10.10

Logiciels connexes

On peut trouver un guide et des exemples d'applications à cette adresse : http://lagora.lescigales.org/

Autres logiciels aux fonctionnalités équivalentes

Aucun à ma connaissance.

Arnaud Tizon signale qu'il est possible de réaliser pour quelques euros sa propre interface USB-GPIB à partir du site : http://cluster.physik.uni-freiburg.de/~kuhnen/pic/...

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

Projet hébergé sous sourceforge et maintenu par un développeur Frank Mori Hess. Voir les indications sur l'historique sur la page du projet.

Environnement utilisateur
Fiche logiciel validé
  • Création ou MAJ importante : 12/01/12
  • Correction mineure : 12/01/12
Mots-clés
Pour aller plus loin

Log4J : journalisation (log) des applications Java

Description
Fonctionnalités générales

Les bonnes pratiques de développement actuelles déconseillent l'utilisation des méthodes System.out.print* et System.err.print* pour afficher des messages et recommandent plutôt l'utilisation d'un logger tel Log4J apportant plus de souplesse.
Log4J simplifie les gestions des logs et le débogage des applications Java en fournissant des classes et des méthodes pour l'enregistrement de ces informations. Les fichiers journaux d'une application représentent la mémoire d'une application, un historique permanent de la vie de celle-ci, il est donc important de correctement enregistrer ces messages.
Le développeur préférera envoyer le message qu'il souhaite afficher ou enregistrer au logger en lui assignant un certain niveau de criticité (DEBUG, INFO, WARNING, ERROR, CRITICAL) et indiquant la classe/la méthode à l'origine de ce message, la ligne dans le code source, ou toute autre information utile. Grâce à cette couche, on peut facilement demander par exemple à une application d'afficher tous les messages de niveau DEBUG et supérieur à l'écran lors de la phase de développement puis lui demander de n'afficher que les messages de niveau WARNING et supérieur dans un fichier de log en phase de production.
Ces différents types d'affichage des messages peuvent être configurés facilement au runtime de log4j par fichier XML ou par fichier de propriétés, donc de façon totalement externe au code.
Log4J est constitué de 3 composants principaux qui permettent de configurer le dispositif de journalisation : les Loggers pour les écrire les messages, les Appenders pour sélectionner la destination des messages et les Layouts pour la mise en forme des messages.
Log4J permet donc non seulement de gagner en flexibilité sur la gestion des messages d'une application mais également de faciliter la recherche et la détection d'erreur.

Autres fonctionnalités
  • Les messages peuvent être enregistrés de différentes façons : dans une base de données, dans un fichier plat ou XML, vers une socket, vers une file JMS, vers un serveur SMTP,... La sortie vers un fichier XML associée à un outil de lecture adéquat permet une recherche simplifiée des messages.
  • Log4J permet également de remonter les messages d'erreurs de certains logiciels avec lesquels il s'interface. C'est notamment le cas de Tomcat. On peut alors récupérer les messages de Tomcat dès le niveau DEBUG.
  • Log4J permet de gérer finement la rotation des fichiers de logs en production. Plutôt qu'un fichier de log unique dont la taille va rapidement grossir et le rendre inexploitable, on peut faire en sorte que Log4J archive plusieurs fichiers de logs selon différents critères (1 par jour, par semaine, nouveau fichier lorsque le fichier courant atteint une taille donnée,...).
Interopérabilité

Une version de log4j 1.3 alpha releases a été sortie mais elle pose des problèmes de compatibilité avec la version 1.2 et sa maintenance a été abandonnée. Il est fortement conseillé d'utiliser la version 1.2

Contexte d'utilisation dans mon laboratoire/service

Log4J est utilisé pour gérer les fichiers journaux de la plupart de nos applications Java.

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

Log4J a nécessairement des impacts sur les performances de l'application. Cependant, si le logger est configuré judicieusement (éviter l'affichage de messages dans des boucles par exemple), ceux-ci sont généralement négligeables.
La profusion de messages dans le fichier de log et/ou une mauvaise configuration peuvent impliquer un accroissement important de la taille des fichiers de logs aboutissant même à stopper la production d'un applicatif (par exemple si le log et les données sont sur le même file system).

Environnement du logiciel
Logiciels connexes
  • Chainsaw : outil de visualisation des logs basé sur Swing intégré à Log4J depuis la version 1.2.
  • API commons.logging : permet de journaliser une application indépendamment de la librairie qui gérera la journalisation effective.
  • Just4Log : permet d'améliorer les performances des API de journalisation Java.
Autres logiciels aux fonctionnalités équivalentes
  • Dans le monde Java, le JDK intègre depuis la version 1.4, sa propre API de journalisation : java.util.logging.
    Des bibliothèques de journalisation équivalentes (souvent basées sur Log4J) existent également pour d'autres langages dont .NET, C, C++, PHP,... Une liste des outils de journalisation est disponible notamment à l'adresse http://en.wikipedia.org/wiki/Log4J#Ports.
  • Logback : un autre logiciel dans la lignée de log4j
    Il est développé entre autres par l'un des auteurs de log4j, et est disponible sous licence LGPL 2.1
Environnement de développement
Type de structure associée au développement

Fondation Apache.

Eléments de pérennité

La fondation Apache fait parti des communautés Open Source majeures.

Références d'utilisateurs institutionnels

LAAS, AgroClim, CESR à Toulouse,

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

Elles peuvent se faire sur le modèle proposé par Apache :
http://www.apache.org/foundation/contributing.html
Une liste de discussion est réservée aux développeurs de Log4J :
http://mail-archives.apache.org/mod_mbox/logging-l...

Fiche dév Ens Sup - Recherche
  • Création ou MAJ importante : 28/04/10
  • Correction mineure : 12/05/12
  • Auteur de la fiche : Dominique Caron (Laboratoire de Physique Charles Coulomb Montpellier)
  • Responsable thématique : David Rousse (CNRS DSI)
Mots-clés

GINA : gestion de laboratoire

Ce logiciel a été développé (ou est en cours de développement) dans la communauté de l'Enseignement Supérieur et de la Recherche. Son état peut être variable (cf champs ci-dessous) donc sans garantie de bon fonctionnement.
  • Site web
  • Système : UNIX-like
  • Version actuelle : 0.0.1
  • Licence(s) : GPL
  • Etat : en développement
  • Concepteur(s) : Project Manager : Dominique Caron - Développeurs : Dominique Caron
  • Contact concepteur(s) : dominique.caron@univ-montp2.fr
  • Laboratoire(s), service(s)... : L2C

 

Fonctionnalités générales du logiciel

GINA est un projet OpenSource initié et développé par l'Université de Montpellier II dans le cadre de la restructuration de son Système d'Information. GINA est une application Web principalement destinée à aider les chercheurs, enseignants-chercheurs, ita, iatos, doctorants etc... des laboratoires de recherche de type UMR (Unité Mixte de Recherche) dans les tâches de gestion administrative et à fiabiliser les bases de données référentielles (HAL, Harpège, Labintel...), mais GINA sert également à bien d'autres choses encore.

Gestion de l'Information Numérique Administrative ou encore Gina Is Not AIGLe ... Bien que GINA reprenne les principes, les fonctionnalités et la philosophie du logiciel AIGLe , c'est une refonte totale de celui-ci, AIGLe est un "brouillon" de GINA. Cf Fiche Plume.

L'équipe de GINA reste ouverte à toute proposition de participation au projet.

Contexte d’utilisation du logiciel

Le développement de GINA a commencé depuis plusieurs mois. Inscrivez vous sur le wiki de GINA (http://www.ipm.univ-montp2.fr/ginawiki), pour :

  • tout savoir sur GINA,
  • suivre l'avancement du projet,
  • faire des propositions de fonctionnalité,
  • ou mieux encore, participer au projet !
Fiche dév Ens Sup - Recherche
  • Création ou MAJ importante : 02/07/09
  • Correction mineure : 07/09/11
Mots-clés

FEEL++ : Finite Element Embedded Library in C++

Ce logiciel a été développé (ou est en cours de développement) dans la communauté de l'Enseignement Supérieur et de la Recherche. Son état peut être variable (cf champs ci-dessous) donc sans garantie de bon fonctionnement.
  • Site web
  • Système : UNIX-like, MacOS X
  • Version actuelle : 0.9.23 - March 27 2010
  • Licence(s) : GPL, LGPL
  • Etat : diffusé, stable
  • Support : maintenu, développement en cours
  • Concepteur(s) : Christophe Prud'homme
  • Contact concepteur(s) : christophe.prudhomme@ujf-grenoble.fr
  • Laboratoire(s), service(s)... : LJK, EPFL, Universidad de Coimbra

 

Fonctionnalités générales du logiciel

Description générale

FEEL++ est une bibliothèque C++ pour la résolution des EDP par des méthodes de Galerkin généralisées telles que les méthodes des éléments finis simples et étendues (FEM et hp-FEM) et les méthodes spéctrales.

Fonctionnalités principales :

  • permet de résoudre des problèmes en 1D, 2D, 3D.
  • supporte différents types d'objets géométriques pour la discrétisation (simplexes et hypercubes).
  • supporte différents types de polynômes pour l'interpolation (Lagrange, Dubiner, Legendre)
  • permet l'utilisation de concepts mathématiques fonctionnels forts (opérateurs, espaces de fonctions, éléments d'espaces de fonctions..).
  • utilise aussi bien les méthodes continues que discontinues de Galerkin./li>
  • utilise son propre langage intégré au C++ ( DSEL : domain specific embedded language) à l'aide de FEEL++

 

Exemples

1. Calcul de $\int_\Omega x^2+y^2+z^2$ :

/*
* Compute \int f where f= x^2 + y^2 + z^2 with a quadrature that integrates exactely second order polynomials
*/
double local_intf = integrate( elements(mesh), _Q<2>(), Px()*Px() + Py()*Py() + Pz()*Pz() ).evaluate()(0,0);

2. Assemblage du laplacien, conditions aux limites de Dirichlet (formulation faible ou forte)

space_ptrtype Xh = space_type::New( mesh );
element_type u( Xh, "u" );
element_type v( Xh, "v" );
sparse_matrix_ptrtype D( M_backend->newMatrix( Xh, Xh ) );
form2( Xh, Xh, D, _init=true ) = integrate( elements(mesh), _Q<2*(Order-1)>(),
nu*gradt(u)*trans(grad(v)) );
// weak Dirichlet (Nitsche formulation)
form2( Xh, Xh, D ) +=
integrate( markedfaces(mesh,1), _Q<2*Order>(),
-(gradt(u)*N())*id(v) -(grad(v)*N())*idt(u) +penaldir*id(v)*idt(u)/hFace()) +
integrate( markedfaces(mesh,3), _Q<2*Order>(),
-(gradt(u)*N())*id(v) -(grad(v)*N())*idt(u) +penaldir*id(v)*idt(u)/hFace());
D->close();

Prérequis

Logiciels

Bibliothèques

  • Boost >= 1.37
  • Mpi (optional)
  • Petsc >= 2.3.3 (optional)
  • Trilinos (optional)

Pre/Post-Traitement

Formats de Pre-Processing

  • GAMBIT neutral
  • Gmsh

Formats supportés pour le Post-processing

  • EnSight (use then ensight and/or paraview for visualisation)
  • Gmsh
Contexte d’utilisation du logiciel

Distributions dans lesquelles est intégré Feel++

Plateformes :

Toutes machines UNIX/Linux 32 ou 64b, MacOS X and Windows(cygwin)

Logiciels connexes

ParaView
Logiciel libre pour la visualisation scientifique parallèle
http://www.paraview.org

Gmsh
Logiciel libre pour la CAO et la génération de maillage
http://geuz.org/gmsh/

Publications liées au logiciel

La description détaillée des publications est donnée dans la fiche anglaise

Consultez la...

Fiche logiciel validé
  • Création ou MAJ importante : 11/05/10
  • Correction mineure : 11/05/10
Mots-clés

BLAS (Basic Linear Algebra Subprograms) : bibliothèque d'algèbre linéaire

Description
Fonctionnalités générales

BLAS est une bibliothèque d'algèbre linéaire qui permet de réaliser des opérations élémentaires entre : les scalaires, les vecteurs, les matrices. Diffusée en 1979, cette librairie a, depuis, fait l'objet de nombreuses optimisations par la plupart des constructeurs. De ce fait, BLAS est devenu un standard en calcul haute performance et est utilisée dans de nombreuses librairies de plus haut niveau (LAPACK, ScaLAPACK, ...) . On peut également citer ATLAS qui permet d'obtenir une version optimiser de BLAS sans se soucier de l'architecture de la machine.

Pour faciliter son intégration et son utilisation, les concepteurs ont partitionné la librairie en niveaux :

niveau 1 : opérations sur des vecteurs

  • addition de 2 vecteurs,
  • produit scalaire,
  • calcul de norme,
  • ...

niveau 2 : opérations matrice-vecteur

  • addition d'un produit matrice-vecteur et d'un vecteur,
  • résolution de systèmes matrice-vecteur où la matrice est triangulaire supérieure ou inférieure,
  •  ...

niveau 3 : opérations matrice-matrice

  • addition d'un produit matrice-matrice et d'une matrice,
  • résolution de systèmes matrice-matrice où  la première matrice est triangulaire supérieure ou inférieure,
  • ...

Référence des fonctions disponibles : http://www.netlib.org/blas/blasqr.pdf

Différents types de matrice y sont implémentés: format générale, symétrique, hermitienne, triangulaire, ...

Le stockage des matrices est un stockage de type matrice pleine. On peut néanmoins obtenir une version de BLAS pour des matrices creuses (appelée Sparse BLAS) en utilisant par exemple ACML ou Intel MKL.

Exemple d'opération simple avec CBLAS, l'interface langage C de BLAS

  #include stdio.h
  #include gsl/gsl_cblas.h
    
     int
     main (void)
     {
       int lda = 3;
    
       float A[] = { 0.11, 0.12, 0.13,
                     0.21, 0.22, 0.23 };    
       int ldb = 2;      
       float B[] = { 1011, 1012,
                     1021, 1022,
                     1031, 1032 };    
       int ldc = 2;    
       float C[] = { 0.00, 0.00,
                     0.00, 0.00 };
    
       /* Compute C = A B */
       /* Prefix : s=real, d=double, c=complex, z=complex*16 */
       cblas_sgemm (CblasRowMajor,
                    CblasNoTrans, CblasNoTrans, 2, 2, 3,
                    1.0, A, lda, B, ldb, 0.0, C, ldc);
       printf ("[ %g, %g\n", C[0], C[1]);
       printf ("  %g, %g ]\n", C[2], C[3]);
       return 0; 
     }

La compilation s'effectue de la façon suivante :

     $ gcc -Wall demo.c -lgslcblas

et les sorties de l'exécution donnent :

     $ ./a.out
     [ 367.76, 368.12
       674.06, 674.72 ]

Autres fonctionnalités

Exemple d'opération simple avec CBLAS, l'interface langage C de BLAS :

  #include stdio.h
  #include gsl/gsl_cblas.h
    
     int
     main (void)
     {
       int lda = 3;
    
       float A[] = { 0.11, 0.12, 0.13,
                     0.21, 0.22, 0.23 };    
       int ldb = 2;      
       float B[] = { 1011, 1012,
                     1021, 1022,
                     1031, 1032 };    
       int ldc = 2;    
       float C[] = { 0.00, 0.00,
                     0.00, 0.00 };
    
       /* Compute C = A B /
       /
Prefix : s=real, d=double, c=complex, z=complex*16 */
       cblas_sgemm (CblasRowMajor,
                    CblasNoTrans, CblasNoTrans, 2, 2, 3,
                    1.0, A, lda, B, ldb, 0.0, C, ldc);
       printf ("[ %g, %g\n", C[0], C[1]);
       printf ("  %g, %g ]\n", C[2], C[3]);
       return 0; 
     }

La compilation s'effectue de la façon suivante :

     $ gcc -Wall demo.c -lgslcblas

et les sorties de l'exécution donnent :

     $ ./a.out
     [ 367.76, 368.12
       674.06, 674.72 ]

Interopérabilité

BLAS est disponible en langage C (CBLAS) et en Fortran 77.

Contexte d'utilisation dans mon laboratoire/service

BLAS a été utilisée au LAAS/CNRS dans le projet BINAUR pour "certifier" les résultats de calcul matriciel en dehors de matlab.

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

Cette librairie est intégrée dans la plupart des distributions Linux (Debian, Ubuntu, Mandriva,...).

Plates-formes

BLAS est portée sur les plates-formes unix suivantes : ALPHA, HPPA, LINUX, SGI64, SUN4, SUN4SOL2, comme sur Mac OS X et windows (via cygwin).

Logiciels connexes
Environnement de développement
Eléments de pérennité

BLAS est intégrée dans de nombreuses bibliothèques et librairies de haut niveau.

Références d'utilisateurs institutionnels

LAAS/CNRS et de nombreux laboratoires de recherche.

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur
Divers (astuces, actualités, sécurité)

BLAS est une bibliothèque qui n'évolue pas constamment. La dernière proposition d'amélioration est parue en 2002 avec l'ajout de nouvelles fonctionnalités : http://www.netlib.org/blas/faq.html#3

Fiche logiciel validé
  • Création ou MAJ importante : 30/07/13
  • Correction mineure : 31/07/13
Mots-clés
Pour aller plus loin

GNU MPC : bibliothèque de calcul sur les nombres complexes à virgule flottante en précision arbitraire

Une fiche Dév Ens Sup est en relation avec cette fiche, consultez-la pour plus d'informations : GNU MPC
Description
Fonctionnalités générales

GNU MPC est une bibliothèque de fonctions mathématiques sur les nombres complexes à virgule flottante en précision arbitraire avec un arrondi correct.
L'arrondi correct assure que tous les bits du résultat d'un calcul sont exacts, ce qui garantit une borne supérieure déterminée pour l'erreur d'arrondi et permet, par exemple, de faire de l'arithmétique d'intervalles (ici, il s'agit de rectangles).
La représentation des nombres complexes utilisée est une représentation cartésienne x + i * y, où x et y sont des nombres flottants binaires.
GNU MPC fournit toutes les fonctions complexes spécifiées dans la norme ISO C99.

Autres fonctionnalités

La bibliothèque GNU MPC est utilisée par plusieurs systèmes de calcul formel : TRIP, MAGMA et SAGE.

Voir aussi Applications using mpc.

Interopérabilité

Fonctions de lecture et d’écriture des nombres complexes sous forme de chaînes de caractères.
Un ensemble important de fonctions de la bibliothèque assure les conversions vers les types définis dans GNU MPFR, dans GMP et dans le langage C.

Il existe des interfaces vers les langages

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

Toutes les distributions Unix-like majeures.

Plates-formes
  • Windows
  • Linux sur architectures i386, i686 et ia64
  • MacOS X

Une page du site web de GNU MPC récapitule l'ensemble des plates-formes sur lesquelles la bibliothèque a été testée.

Logiciels connexes

Les bibliothèques GNU MPFR et GMP, toutes deux distribuées sous licence LGPL 3, sont utilisées pour les calculs internes de GNU MPC.

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

Les initiateurs de la bibliothèque GNU MPC font partie des centres Inria Nancy - Grand Est et Bordeaux - Sud-Ouest. Ils contribuent activement à son évolution.

Eléments de pérennité

De la même façon que le compilateur gcc utilise GNU MPFR pour calculer certaines expressions constantes réelles au moment de la compilation, les développeurs de gcc ont choisi d'utiliser GNU MPC pour les expressions constantes utilisant des nombres flottants complexes. Ceci a accru la visibilité et le nombre d'utilisateurs de GNU MPC.
Depuis la version 1.0, MPC est un projet GNU.

Références d'utilisateurs institutionnels
  • Inria Bordeaux - Sud-Ouest.
  • Observatoire de Paris - Institut de Mécanique Céleste et de Calcul des Éphémérides.
  • School of Mathematics and Statistics (University of Sydney).
Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur
Syndiquer le contenu