FreeBSD Numerics Project
Contents
Introduction
The FreeBSD Numerics Project develops and maintains high-quality floating-point math support for FreeBSD.
Past accomplishments include 80-bit and 128-bit long double floating-point routines for printf(), scanf(), and most math library functions; extensions for complex arithmetic; implementations of the fenv.h FPU-programming API for all Tier 1 and Tier 2 architectures; the tgmath.h type-generic math macros; and numerous optimizations and bugfixes for math library functions.
A major focus of ongoing work is on implementing the remaining long double and complex functions specified by the C11 standard but not yet present in libm.
This page tracks the status of ongoing work, and identifies areas where we could use help. If you are interested in contributing, please subscribe to the freebsd-numerics mailing list.
Problem Reports
See also the numerics@ tickets on FreeBSD's Bugzilla.
Functions
Function / Feature |
Contact |
Status |
Notes |
||
13-CURRENT |
12-STABLE |
11-STABLE |
|||
rintl, nearbyintl, lrintl, llrintl |
das |
✔ |
✔ |
✔ |
|
exp2l |
das |
✔ |
✔ |
✔ |
|
sinl, cosl, tanl |
kargl |
✔ |
✔ |
✔ |
|
tgammaf |
das |
✔ |
✔ |
✔ |
|
sqrtl |
kargl |
✔ |
✔ |
✔ |
|
hypotl, cabsl |
bde |
✔ |
✔ |
✔ |
|
remquol, remainderl |
das |
✔ |
✔ |
✔ |
|
csqrtl |
das |
✔ |
✔ |
✔ |
|
fmodl |
das |
✔ |
✔ |
✔ |
|
acosl, asinl, atanl, atan2l, cargl |
das |
✔ |
✔ |
✔ |
|
cproj, cprojf, cprojl |
das |
✔ |
✔ |
✔ |
|
log2, log2f |
das |
✔ |
✔ |
✔ |
|
cbrtl |
kargl |
✔ |
✔ |
✔ |
|
cexp |
das |
✔ |
✔ |
✔ |
|
ccos, csin, ctan, ccosh, csinh, ctanh, |
bde, kargl |
✔ |
✔ |
✔ |
|
expl |
kargl |
✔ |
✔ |
✔ |
|
cacos, cacosh, casin, casinh, catan, catanh |
stephen |
✔ |
✔ |
✔ |
|
CMPLX, CMPLXF, CMPLXL |
ed |
✔ |
✔ |
✔ |
|
logl, log2l, log10l, log1pl |
bde |
✔ |
✔ |
✔ |
|
expm1l |
kargl |
✔ |
✔ |
✔ |
|
acoshl, asinhl, atanhl |
das |
✔ |
✔ |
✔ |
|
clogf, clog, clogl |
bde |
✔ |
✔ (r333577) |
|
|
coshl, sinhl, tanhl |
kargl |
✔ |
✔ |
✔ |
|
cexpl |
das |
|
|
|
not started, https://bugs.freebsd.org/216862 |
sincosf, sincos, sincosl |
kargl |
✔ |
✔ (r319047) |
|
|
ccosl, ccoshl, csinl, csinhl, ctanl, ctanhl |
bde, kargl |
|
|
|
not started, https://bugs.freebsd.org/216853 https://bugs.freebsd.org/216854 |
cacosl, cacoshl, casinl, casinhl, catanl, catanhl |
stephen |
✔ |
✔ (r313761) |
✔ (r324006) |
|
erfcl, erfl |
|
|
|
|
not started |
powl |
|
✔ |
✔ (r336299) |
✔ (r336767) |
|
lgammal, tgammal |
|
|
|
|
not started |
FENV_ACCESS, FP_CONTRACT |
theraven |
|
|
|
compiler change required |
cpowf, cpow, cpowl |
peterj |
✔ |
✔ (r336299) |
✔ (r336767) |
Future directions
- Perfectly rounded transcendental functions
- Floating-point exception interfaces; c.f. AIX's fpxcp.h
- Decimal floating point
- Vector math library for ILP processors
Reference
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf 7.3 & Annex G.