The main objective of this project is to write code generators for mathematical functions and filters.
MetaLibm-Lutetia is the branch that aims at open-ended code generation. This generator inputs a high-level specification (a mathematical expression, some day a differential equation) of a function to implement on an interval. The generated code is potentially more efficient than a naive composition of standard functions. It works for the set of functions on which it works (and this set is expanding).
MetaLibm-Lugdunum is the branch that aims at generating code compliant to the standard libm, but in all sorts of optimized variants (for speed, for memory, for a given processor, with or without correct rounding, etc).
MetaLibm-Tricassium is the branch that aims at generating code for filters. It takes into consideration various equivalent algorithms of linear filters (direct forms, state-spaces, lattice... and a lot of other exotic forms, like the ones with ρ operatos).
This project has received support from Agence Nationale de la Recherche, CNRS, CERN, ENS-Lyon, INRIA, INSA-Lyon, Université Perpignan Via Domitia, Université Pierre et Marie Curie.