Skip to Main content Skip to Navigation
Conference papers

A new open-source SIMD vector libm fully implemented with high-level scalar C

Christoph Lauter 1
1 PEQUAN - Performance et Qualité des Algorithmes Numériques
LIP6 - Laboratoire d'Informatique de Paris 6
Abstract : Systems support mathematical functions like exp, sin, cos through mathematical libraries (libm). With increasingly parallel hardware, scalar libm functions do not suffice; implementations that work on vectors in an element-by-element (SIMD) fashion are required. Only few Open-Source implementations of vector libms exist. They are mostly written in assembly, which hinders portability and maintenance. As they depend on the scalar system libm for special case handling, the existing vector libms may induce a source of non-reproducibility. We present an Open-Source vector libm implemented with high-level scalar C that a modern compiler can translate to SIMD code. The error of all functions does not exceed 8 ulp, while a performance gain of up to 278.5% is obtained. Our library is fully free-standing, i.e. it does not depend on any other system library.
Document type :
Conference papers
Complete list of metadata

Cited literature [12 references]  Display  Hide  Download
Contributor : Christoph Lauter <>
Submitted on : Thursday, April 20, 2017 - 1:55:23 PM
Last modification on : Friday, January 8, 2021 - 5:40:03 PM
Long-term archiving on: : Friday, July 21, 2017 - 1:27:15 PM


Files produced by the author(s)



Christoph Lauter. A new open-source SIMD vector libm fully implemented with high-level scalar C. 2016 50th Asilomar Conference on Signals, Systems and Computers , Nov 2016, Pacific Grove, United States. pp.407 - 411, ⟨10.1109/ACSSC.2016.7869070⟩. ⟨hal-01511131⟩



Record views


Files downloads