IMSL, abrégé de International Mathematics and Statistics Library, est une bibliothèque logicielle d'objets utilisables pour le développement informatique d'applications d'analyse numérique. Les domaines typiques d'utilisation d'IMSL sont le décisionnel, le datamining, la recherche et développement, le contrôle de processus, l'optimisation, les calculs financiers, la bio-informatique, les simulations aéronautiques et automobiles, l'industrie pétrolière, le calcul parallèleUtilisation d'IMSL à l'IDRIS., l'éducation et la rechercheUtilisation d'IMSL par l'université Paris-Sud 11, etc Rogue Wave - Case Studies.
La première bibliothèque IMSL, pour Fortran, a été créée en 1970, suivie par la version C, dont le nom était initialement C/Base, en 1991. Plus récentes, les versions Java et C# existent respectivement depuis 2002 et depuis 2004. PyIMSL et PyIMSL Studio pour Python sont quant à eux apparus en et .
IMSL pour Fortran et IMSL pour C/C++ sont des bibliothèques parallèles (calcul HPC) pouvant fonctionner sur des fermes de calcul, des systèmes à microprocesseur multi-cœur et des calculateurs vectoriels ; ces deux bibliothèques intègrent des mécanismes de parallélisation standards tels que MPI ou OpenMP.
En 2009, Rogue Wave Software fait l'acquisition de la société Visual Numerics.
En , la nouvelle version d'IMSL C# permet à son tour de profiter des systèmes à microprocesseur multi-cœur en s'appuyant sur la TPL du framework .NET 4.0.
En , IMSL Fortran 7.0 propose aux développeurs de bénéficier des performances des GPU Nvidia en intégrant des appels transparents aux BLAS CUDA, la séquence d'appel aux routines IMSL restant inchangée. La même philosophie sera appliquée à IMSL C 8.0, en .
Versions IMSL C Library 8.0 - . IMSL C# Library 6.5 - . IMSL Fortran Library 7.0 - JMSL Library 6.1 - . PyIMSL Studio 1.5 - . PyIMSL wrappers 1.5 -
Fonctionnalités mathématiques et statistiques Les bibliothèques IMSL contiennent les fonctionnalités mathématiques et statistiques suivantes :
Calcul mathématique Systèmes linéaires Problèmes de valeurs et de vecteurs propres Interpolation et approximation, dont :
Intégration et différentiation Équations différentielles, dont : Méthodes de Runge-Kutta Équations aux dérivées partielles Solveur de l' Solveur de l'EDP de Black-Scholes Transformées Zéros de fonctions non linéaires Optimisation, dont : Programmation non linéaire Optimisation linéaire Algorithme génétique Fonctions spéciales
Calcul Statistique Statistiques de base Régression Corrélation et covariance Analyse de la variance et plans d'expériences et discrètes Statistiques non paramétriques Tests d'ajustements Séries temporelles, calcul de prévisions et datamining dont : Modèles , ARMA, ARIMA Réseaux de neurones pour la classification et le calcul de prévisions Classification naïve bayesienne Algorithme génétique Analyse multivariée, dont : Analyse en composantes principales Analyse discriminante Analyse de groupement (clustering hiérarchique, K-moyennes) Analyse de survie et de fiabilité Fonctions de distributions de probabilités et inverses Génération de nombres aléatoires, dont : Mersenne Twister Méthode Ziggourat
Les versions C#/.NET et Java d'IMSL contiennent aussi des fonctions de représentation graphique de données, ces langages étant couramment utilisés pour le développement d'interface homme-machine.
Plateformes disponibles Les bibliothèques numériques IMSL sont disponibles pour de nombreuses architectures, systèmes d'exploitation et compilateurs. Systèmes d'exploitation : Unix, Linux, Windows et Mac OS X Architectures : AMD, Intel, Apple, Cray, Fujitsu, Hitachi, HP, IBM (dont Blue Gene), NEC, SGI et Sun Microsystems Compilateurs : Absoft, GCC, Intel, Microsoft et Portland Bases de données : Sybase IQ Plateforme de développement :
Notes et références
Bibliographie T. J. Aird, D. G. Kainer, The IMSL environment for software development, ACM SIGNUM Newsletter, volume 14 Issue 1,
Voir aussi GNU Scientific Library Netlib
Liens externes
Catégorie:Langage Fortran Catégorie:Logiciel de calcul numérique Catégorie:Logiciel de statistiques Catégorie:Logiciel de calcul scientifique Catégorie:Bibliothèque logicielle Catégorie:Bibliothèque logicielle Java Catégorie:.NET Framework Catégorie:Python Catégorie:Calcul informatique Catégorie:Calcul distribué Catégorie:Calcul parallèle