Commit graph

2 commits

Author SHA1 Message Date
John Marino
587f5554bf math/opensolaris-libm: Second *BSD release
Interestingly, this update comes 11 years to the days after the original
source was released.  This resolves the OpenLibm testsuite failures for
the double variant of Bessel functions (seen always on Clang and on GCC
when fno-builtin switch set) and the gamma/lgamma failures for 0.5 and 3.0
arguments.  The associated implementions were replaced with the 1993
SunPro versions found in all BSD-based math libraries.

The failures were of the off-by-1-bit type explained by floating point
rounding.  Now all float and double tests found in OpenLibm's testsuite
pass.
2017-01-31 20:02:42 +00:00
John Marino
57615df9ab Add new port math/opensolaris-libm
In 2006, Sun Microsystems released math and vector math libraries as
part of their effort to open-source Solaris:

libmvec - vector math library
  This library contains function to evaluate common mathematical functions
  for several arguments at once. The argument values are specified by one
  or more vectors (arrays) of data, and the corresponding result values
  are stored in another vector.

libm - C99 math library
  Functions  in  this  library provide common elementary mathematical
  functions and floating point environment routines defined by System V,
  ANSI C, POSIX, and so on.  Additional functions in this library provide
  extended support for handling floating point exceptions.

The original source has been modified to build on FreeBSD and DragonFly
using GCC or clang and the GNU assembler.  All fixes introduced by Nexenta
and Illumos projects have also been incorporated.  Missing x86_64 variants
of lrint and lround have added.  The floating-point exception logging
including address->symbol tranlation has also been implemented.
2017-01-24 21:01:25 +00:00