MetaLibm: code generators for the libm and beyond

The main objective of this project is to write code generators for mathematical functions and filters.

MetaLibm-Lutetia

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).

More details, and the source code, by following this link

MetaLibm-Lugdunum

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).

More details, and the source code, by following this link

MetaLibm-Tricassium

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).

More details, and the source code, by following this link

Bibliography and related links

Thanks

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.

News from the ANR-funded consortium