OpenLibm

A high quality system independent, portable, open source libm implementation

This project is maintained by JuliaLang

OpenLibm

OpenLibm is an effort to have a high quality, portable, standalone C mathematical library (libm). It can be used standalone in applications and programming language implementations.

The project was born out of a need to have a good libm for the Julia programming langage that worked consistently across compilers and operating systems, and in 32-bit and 64-bit environments.

History

The OpenLibm code derives from the FreeBSD msun and OpenBSD libm implementations, which in turn derive from FDLIBM 5.3. Over and above that, OpenLibm itself has received a number of patches to make it platform independent and portable.

Platform support

OpenLibm builds on Linux, macOS, Windows, FreeBSD, OpenBSD, NetBSD, and DragonFly BSD. It builds with both GCC and clang. Although largely tested and widely used on the x86 and x86-64 architectures, OpenLibm also supports arm, aarch64, ppc64le, mips, wasm32, and s390(x).

Other relevant projects

  1. FDLIBM: Freely Distributable Math Library
  2. CRlibm: Correctly Rounded mathematical library
  3. Yeppp!: A high-performance SIMD-optimized mathematical library
  4. Intel VML: Intel's Vector Math Library

Acknowledgements

PowerPC support for OpenLibm was graciously sponsored by IBM.