freebsd-nq/lib/msun/man
Steve Kargl 046e2d5db1 Implementations of cexpl()
The change implements cexpl() for both ld80 and ld128 architectures.
Testing was done on x86_64 and aarch64 systems.

Along the way sincos[fl]() use an optimization that reduces the argument
to being done one rather than twice.  This optimization actually pointed
to a bug in the ld128 version of sincosl(), which is now fixed.  In
addition, the minmax polynomial coefficients for sincosl() have been
updated.

A concise log of the file-by-file changes follows.

* include/complex.h:
  . Add a prototype for cexpl().

* lib/msun/Makefile:
  . Add s_cexpl.c to the build.
  . Setup a link for cexpl.3 to cexp.3.

* lib/msun/Symbol.map:
  . Expose cexpl symbol in libm shared library.

* lib/msun/ld128/s_cexpl.c:
  * Implementation of cexpl() for 128-bit long double architectures.
    Tested on an aarch64 system.

* lib/msun/ld80/s_cexpl.c:
  * Implementation of cexpl() for Intel 80-bit long double.

* lib/msun/man/cexp.3:
  . Document cexpl().

* lib/msun/man/complex.3:
  . Add a BUGS section about cpow[fl].

* lib/msun/src/s_cexp.c:
  . Include float.h for weak references on 53-bit long double targets.
  . Use sincos() to reduce argument reduction cost.

* lib/msun/src/s_cexpf.c:
  . Use sincosf() to reduce argument reduction cost.

* lib/msun/src/k_sincosl.h:
  . Catch up with the new minmax polynomial coefficients for the kernel for
    the 128-bit cosl() implementation.
  . BUG FIX: *cs was used where *sn should have been.  This means that sinl()
    was no computed correctly when iy != 0.

* lib/msun/src/s_cosl.c:
  . Include fpmath.h to get access to IEEEl2bits.
  . Replace M_PI_4 with pio4,  a 64-bit or 113-bit approximation for pi / 4.

PR:	216862
MFC after:	1 week
2021-11-05 13:51:42 +02:00
..
acos.3 math(3): Use the .Fa macro for function arguments 2021-07-09 19:51:44 +02:00
acosh.3 math(3): Use the .Fa macro for function arguments 2021-07-09 19:51:44 +02:00
asin.3 math(3): Use the .Fa macro for function arguments 2021-07-09 19:51:44 +02:00
asinh.3 math(3): Use the .Fa macro for function arguments 2021-07-09 19:51:44 +02:00
atan2.3 math(3): Use the .Fa macro for function arguments 2021-07-09 19:51:44 +02:00
atan.3
atanh.3 math(3): Use the .Fa macro for function arguments 2021-07-09 19:51:44 +02:00
cacos.3
ccos.3 math(3): Use the .Fa macro for function arguments 2021-07-09 19:51:44 +02:00
ccosh.3 math(3): Use the .Fa macro for function arguments 2021-07-09 19:51:44 +02:00
ceil.3
cexp.3 Implementations of cexpl() 2021-11-05 13:51:42 +02:00
cimag.3
clog.3
complex.3 Implementations of cexpl() 2021-11-05 13:51:42 +02:00
copysign.3
cos.3
cosh.3
cospi.3 [LIBM] implementations of sinpi[fl], cospi[fl], and tanpi[fl] 2021-10-26 02:50:20 +03:00
cpow.3
csqrt.3
erf.3
exp.3 math(3): Use the .Fa macro for function arguments 2021-07-09 19:51:44 +02:00
fabs.3
fdim.3
feclearexcept.3
feenableexcept.3
fegetenv.3
fegetround.3
fenv.3
floor.3
fma.3
fmax.3
fmod.3
hypot.3
ieee_test.3
ieee.3
ilogb.3
j0.3
lgamma.3
log.3
lrint.3
lround.3
math.3
nan.3
nextafter.3
remainder.3
rint.3
round.3
scalbn.3
signbit.3
sin.3
sincos.3 math(3): Use the .Fa macro for function arguments 2021-07-09 19:51:44 +02:00
sinh.3
sinpi.3 [LIBM] implementations of sinpi[fl], cospi[fl], and tanpi[fl] 2021-10-26 02:50:20 +03:00
sqrt.3 math(3): Use the .Fa macro for function arguments 2021-07-09 19:51:44 +02:00
tan.3
tanh.3
tanpi.3 [LIBM] implementations of sinpi[fl], cospi[fl], and tanpi[fl] 2021-10-26 02:50:20 +03:00
trunc.3