2014-06-12 09:22:21 +02:00
|
|
|
## OpenLibm
|
2012-08-19 08:22:43 +02:00
|
|
|
|
2015-01-05 19:18:29 +01:00
|
|
|
[![Build Status](https://travis-ci.org/JuliaLang/openlibm.svg?branch=master)](https://travis-ci.org/JuliaLang/openlibm)
|
|
|
|
|
2014-12-04 12:49:05 +01:00
|
|
|
[OpenLibm](http://www.openlibm.org) 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)).
|
2014-06-22 13:46:23 +02:00
|
|
|
It can be used standalone in applications and programming language
|
2014-12-04 20:14:29 +01:00
|
|
|
implementations.
|
2011-12-31 08:18:43 +01:00
|
|
|
|
2014-06-22 13:46:23 +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-22 13:46:23 +02:00
|
|
|
The OpenLibm code derives from the [FreeBSD
|
2014-12-04 20:14:29 +01:00
|
|
|
msun](http://svnweb.freebsd.org/base/head/lib/msun/) and [OpenBSD
|
|
|
|
libm](http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/lib/libm/src/)
|
|
|
|
implementations, which in turn derives from [FDLIBM
|
2014-06-22 13:46:23 +02:00
|
|
|
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-22 13:46:23 +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-22 13:46:23 +02:00
|
|
|
1. `make` or `make USEGCC=1` to build with GCC. This is the default on
|
2014-12-04 20:14:29 +01:00
|
|
|
Linux and Windows.
|
2014-06-22 13:46:23 +02:00
|
|
|
2. `make USECLANG=1` to build with clang. This is the default on OS X.
|