OpenLibm

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

This project is maintained by the Julia Project

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. MUSL The libm library in the musl-libc project
  2. FDLIBM: Freely Distributable Math Library
  3. FreeBSD msun: FreeBSD's math library
  4. CRlibm: Correctly Rounded mathematical library

Acknowledgements

PowerPC support for OpenLibm was graciously sponsored by IBM.