2014-06-12 09:22:21 +02:00
|
|
|
## OpenLibm
|
2012-08-19 08:22:43 +02:00
|
|
|
|
2014-06-12 09:22:21 +02:00
|
|
|
OpenLibm is an effort to have a high quality, portable, standalone
|
2014-06-20 20:09:44 +02:00
|
|
|
C mathematical library ([`libm`](http://en.wikipedia.org/wiki/libm)).
|
|
|
|
It can be used standalone in applications
|
|
|
|
and programming language implementations.
|
2011-12-31 08:18:43 +01:00
|
|
|
|
2014-06-20 20:09:44 +02:00
|
|
|
The project was born out of a need to have a good `libm`
|
|
|
|
for the [Julia programming langage](http://www.julialang.org)
|
|
|
|
that worked consistently across compilers and operating systems,
|
|
|
|
and in 32-bit and 64-bit environments.
|
2012-01-06 05:35:01 +01:00
|
|
|
|
2014-06-12 09:22:21 +02:00
|
|
|
### History
|
2012-07-03 17:30:34 +02:00
|
|
|
|
2014-06-20 20:09:44 +02:00
|
|
|
The OpenLibm code derives from the
|
|
|
|
[FreeBSD msun](http://svnweb.freebsd.org/base/head/lib/msun/) implementation,
|
|
|
|
which in turn derives from [FDLIBM 5.3](http://www.netlib.org/fdlibm/).
|
|
|
|
As a result, it includes a number of fixes and updates to FDLIBM
|
|
|
|
that have accumulated over the years in `msun`,
|
|
|
|
and optimized versions of many functions.
|
2012-07-03 17:30:34 +02:00
|
|
|
|
2014-06-12 09:22:21 +02:00
|
|
|
### Platform support
|
|
|
|
|
2014-06-20 20:09:44 +02:00
|
|
|
OpenLibm builds on Linux, Mac OS X, and Windows,
|
|
|
|
and with little effort, should build on FreeBSD as well.
|
|
|
|
It builds with both GCC and clang.
|
|
|
|
Although largely tested on x86,
|
|
|
|
it also includes experimental support for ARM.
|
|
|
|
The original `msun` also includes support for
|
|
|
|
mips, sparc64, powerpc, ia64, and alpha.
|
|
|
|
These are present in the OpenLibm source tree,
|
|
|
|
but no attempt has been made to build any of these.
|
2014-06-12 09:22:21 +02:00
|
|
|
|
|
|
|
### Build instructions
|
|
|
|
|
2014-06-20 20:09:44 +02:00
|
|
|
1. `make` or `make USEGCC=1` to build with GCC.
|
|
|
|
This is the default on Linux and Windows.
|
|
|
|
2. `make USECLANG=1` to build with clang.
|
|
|
|
This is the default on OS X.
|