libm: Sync with FreeBSD (~50 math functions added)
The main purpose of syncing with FreeBSD is to obtain numerous "long double"
functions which are required for C99 compliance. There are still many
functions missing. According to g++ testsuite, the following 10 functions
still must be implemented at least:
coshl logl expl
sinhl log2l expm1l
acoshl log10l
asinhl log1pl
Also known missing are nexttowardl, tgammal, and the long double version of
most of several complex functions.
A few years ago the freebsd-based math library was thrown out in favor of
the NetBSD version. It may be time to reverse that and sync the entire
libm with FreeBSD. Right now the DragonFly libm is a mixture between the
two and it doesn't divide nicely. All the rounding and rint functions from
NetBSD had to be thrown out as well as the "kernel" functions. For the
short term this is okay, but in the long term it would be a good idea to
start tracking FreeBSD again. They are maintaining this library more
frequently and adding more functions more rapidly than NetBSD, so it would
be good to piggy-back on that effort.
The man page will be committed separately.
- [DB] lib/libm/src/b_log.c