MathSymb est une bibliothèque que je suis en train d'écrire avec Haskell afin de scanner et manipuler des expressions mathématiques de façon symbolique. Ses fonctionnalités sont:
Possibilité d'être utilisée dans d'autres programmes.
Analyse lexical d'une expression données par l'utilisateur.
Reconnaissance des fonctions mathématiques standards (log, log10, sin, cos, tan, acos, asin, atan).
Simplification automatique des expressions.
Réorganisation automatique des termes des expressions.
Reconnaissance de certaines identités remarquables ($left( a+b right) * left( a - b right)=left( a2 - b2 right)$ …).
Évaluation avec différentes valeurs de variables.
En plus de la bibliothèque, MathSymb incorpore un programme de test en ligne de commande (interactif) afin de tester les fonctionnalités et valider la bibliothèque.
Actuellement, MathSymb comporte environ 15000 lignes de codes et suit une évolution constante.
Je travaille à présent à améliorer et optimiser les performances de ma bibliothèque. Afin d'avoir des résultats objectifs, j'utilise la bibliothèque Criterion qui permet d'effectuer des Benchmarks sur différentes fonctions et d'obtenir des rapports détaillés au format html.