Fork of the OpenLibm math library with fx-9860G and fx-CG 50 support.
Find a file
Thomas Leonard 4cb9231f1a Removed some uses of sys/types.h
It's useful to be able to compile openlibm in environments where this
doesn't exist (e.g. OS kernels).
2014-12-01 11:10:41 +00:00
amd64 Export ldexp aliases on Windows 2014-05-09 17:05:33 -07:00
arm Use uint32_t on ARM, not non-standard __uint32_t 2014-11-27 15:58:19 +00:00
bsdsrc add DLLEXPORT to bsdsrc files 2013-08-04 10:04:16 -04:00
i387 don't use system machine/npx.h on OS X either, since it may not exists and isn't necessary 2014-06-27 17:45:02 -05:00
ia64 Enable stack protection in all .S files 2013-12-21 21:19:54 +01:00
include Removed some uses of sys/types.h 2014-12-01 11:10:41 +00:00
ld80 add DLLEXPORT to i387 and amd64 assembly (win32 target) and ld80/ld128 files 2013-08-03 05:52:19 -04:00
ld128 add DLLEXPORT to i387 and amd64 assembly (win32 target) and ld80/ld128 files 2013-08-03 05:52:19 -04:00
mips Add Make.files for all architectures. 2012-12-11 15:09:10 +05:30
powerpc Add Make.files for all architectures. 2012-12-11 15:09:10 +05:30
sparc64 Enable stack protection in all .S files 2013-12-21 21:19:54 +01:00
src Removed some uses of sys/types.h 2014-12-01 11:10:41 +00:00
test Increase single-precision test tolerance for erfc(1.2) and yn(3, 0.7). 2014-07-29 12:24:09 +02:00
.gitignore add .pc to .gitignore 2014-06-20 10:08:16 -04:00
.mailmap Add mailmap 2012-08-24 20:53:18 +05:30
LICENSE.md Fix and improve documentation about licenses 2014-04-29 22:56:15 +02:00
Make.inc Fix comment about SOVERSION 2014-07-29 15:46:20 +02:00
Makefile Separate SOVERSION from release version 2014-07-27 12:54:54 +02:00
openlibm.pc.in Added pkg-config support 2014-05-19 15:30:10 +01:00
README.md revert newline changes from previous commit 2014-06-22 12:46:23 +01:00
Symbol.map Import entire msun from FreeBSD. 2011-12-15 11:29:35 +05:30

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 implementation, 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

  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.