# International Mathematics and Statistics Library

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èle, l'éducation et la recherche, etc.
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 août 2008 et février 2009.
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 avril 2010, 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 octobre 2010, 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 novembre 2011.

## Versions

* IMSL C Library 8.0 - novembre 2011
* IMSL C# Library 6.5 - avril 2010
* IMSL Fortran Library 7.0 - octobre 2010
* JMSL Library 6.1 - août 2010
* PyIMSL Studio 1.5 - août 2009
* PyIMSL wrappers 1.5 - août 2009

## 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 :
** Splines cubiques de Kochanek-Bartels (splines TCB) (en)
* Intégration et différentiation
* Équations différentielles, dont :
** Méthodes de Runge-Kutta
* Équations aux dérivées partielles
** Solveur de l'équation de Feynman-Kac généralisée (en)
** 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
* Analyse de données catégorielles (en) et discrètes
* Statistiques non paramétriques
* Tests d'ajustements
* Séries temporelles, calcul de prévisions et datamining dont :
** Modèles GARCH (en), 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 : ActivePython (en)