Metalibm: a code generator for parametrized mathematical functions PDF
Olga Kupriianova, Paris-6 University

11/7/2014, 11:30am, GHC 8115


The standard mathematical libraries (libm) offer a small set of elementary functions (exponential, trigonometric and others) in a small set of precisions. In scientific computing, the domains for functions may be known beforehand and the needed accuracies of the result can differ from those provided with libms. Thus, handling overflows/underflows, special inputs and computing correctly all mantissa bits may be a waste of time. We propose to provide users with the implementations adapted for their tasks. Manual implementation of each function from the libm with all possible variations (different accuracies, domains, etc.) may take hundreds of years, so we propose to move to "meta"-level and write a code generator instead (Metalibm).

Metalibm takes a set of parameters as an input and produces corresponding C code, the function to be implemented is also passed as a parameter. Thus, Metalibm can be considered as a blackbox code generator: it never knows beforehand which mathematical function it is implementing. It generates all the functions within the same scheme: argument reduction (domain splitting), polynomial approximation and reconstruction. Metalibm selects the computation parameters (e.g. precision, polynomial degrees) so, that the required final accuracy of the result is verified.


Olga received her B.Sc. degree in 2010 and M.Sc in 2012 from Applied Mathematics Department of I.I.Mechnikov Odessa National University in Ukraine. During the 2nd year of Master's studies she passed 4 months of internship in LIP6 (Laboratory of Informatics at Paris-6 University), Paris, France implementing a compliance library for the IEEE754-2008 standard. Since Nov. 2012 she is a PhD Student at LIP6 working on automatic generator for parametrized libraries.

Content for class "clear" Goes Here
nsfSupported by an Expeditions in Computing award from the National Science Foundation