bc3f903bc2
While there, also modify the install target. We should make sure to install all openlibm*.h headers. There is still some work to be done: openlibm_fenv_*.h still depends on some additional bits. I'd propose that we eventually create an include/openlibm_cdefs.h that contains all of the macros we need. |
||
---|---|---|
amd64 | ||
arm | ||
bsdsrc | ||
i387 | ||
include | ||
ld80 | ||
ld128 | ||
src | ||
test | ||
.gitignore | ||
.mailmap | ||
.travis.sh | ||
.travis.yml | ||
LICENSE.md | ||
Make.inc | ||
Makefile | ||
openlibm.pc.in | ||
README.md | ||
Symbol.map |
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 derives from FDLIBM
5.3. 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.
Platform support
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.
Build instructions
make
ormake USEGCC=1
to build with GCC. This is the default on Linux and Windows.make USECLANG=1
to build with clang. This is the default on OS X.