Home | History | Annotate | only in /src/lib/libm
History log of /src/lib/libm
RevisionDateAuthorComments
 1.242 06-Apr-2025  rillig all: remove 'constant in conditional context' from LINTFLAGS

Lint no longer emits this message, as it produced too many false
positives.
 1.241 15-Feb-2025  tsutsui libm: Add missing fma(3) and variants for hppa.

Fixes a build error on pkgsrc/lang/python312. Ok'ed by skrll@.
Should be pulled up to netbsd-10.
 1.240 29-Oct-2024  nat Pull in missing functions for MKSOFTFLOAT.
 1.239 03-Jul-2024  mrg move a COPTS setting after bsd.own.mk.

the riscv64 compat build trips on this saying:
bsd.rv32.mk" line 25: while evaluating variable "COPTS": while evaluating condition " == "gcc"": Bad condition
 1.238 10-Jun-2024  riastradh branches: 1.238.2;
libm: Fix arm expected symbol list harder.

LIB is not defined by the time we need it in the m.expsym rule, so
just say m here like in the other lines.
 1.237 10-Jun-2024  riastradh libm: Fix mips and arm expected symbol lists.

Had forgotten that they were overriding LIB_EXPSYM. Use a new
intermediate variable EXPSYM_SRC_MD for that.
 1.236 09-Jun-2024  riastradh libm: Factor out common expected symbol list.

Should substantially reduce the maintenance burden.
 1.235 14-May-2024  riastradh libm: Fix powerpc64 build.

- Include fenv.c and fma(3) symbols (which just use the FMADD
instruction).
- Note the .FN symbols in libm for the asm functions. The FN symbols
point at the function _descriptors_; the .FN symbols point at the
first instruction of the function.

XXX Unclear why we have the .FN symbols for asm functions but not for
C functions. I'm not sure we should be exporting them.
 1.234 09-May-2024  riastradh libm: Add frexpf and frexpl on VAX.

These are trivial subroutines, not symbol aliases, for separate
reasons:

- frexpf has a different ABI from frexp (float vs double argument)

- frexp is defined in libc, not libm, so although long double is the
same as double, frexpl can't be an alias in libm of a symbol
defined in libc
 1.233 09-May-2024  riastradh libm: Split expected symbols in mips further by 32-bit vs 64-bit.

32-bit has binary64 long double, same as double; 64-bit has binary128
long double, which is implemented with a few more symbols in libm
(which should maybe be hidden internal symbols, but let's get this
diagnostic measure in the build working before we think about
possibly deleting private symbols).
 1.232 08-May-2024  riastradh libm: Split expected symbols on arm and mips by hard/soft float.
 1.231 05-May-2024  riastradh libm: long double is just double on hppa, so don't use s_rintl.c.

PR misc/58054
 1.230 05-May-2024  riastradh libm: No s_rintl.c on mips32.

This is only for machines where long double is not double.

Not 100% sure this is the right criterion, but there's a good chance
it is.
 1.229 05-May-2024  riastradh libm: long double is just double on arm, so don't use s_rintl.c.

PR misc/58054
 1.228 05-May-2024  riastradh libm: New s_rintl.S for x86.

Prompted by PR lib/58054.
 1.227 26-Mar-2024  rillig libm/s_logl: suppress lint warnings

Seen on sparc64.
 1.226 26-Jan-2024  nros sinhf is in the same manual page as sinh not sin
 1.225 26-Jan-2024  nros Add the long double math functions recently added from FreeBSD to their related man pages
 1.224 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.223 21-Dec-2023  jklos Fix building with M68040 and M68060 options.
 1.222 08-Oct-2023  he libm Makefile: add fma() functions for mips.

This pushed the ramdisk size, so that needed to be bumped as well.
Otherwise, there were no build issues for either 32 or 64 bit mips.
Sort-of OK'ed by simonb@.
 1.221 08-Aug-2023  rin libm: Add fma(3) and friends to m68k
 1.220 09-Jul-2023  rin libm: Add missing fma(3) and friends for sh3.
 1.219 10-Apr-2023  rillig libm: suppress lint warning about '>>' on signed integer

GCC has implementation-defined behavior for that case.
 1.218 27-Aug-2022  christos branches: 1.218.2;
Fix vax build.
 1.217 27-Aug-2022  christos Add sincos{,f,l} from FreeBSD
 1.216 23-Jun-2022  martin Use "fmadd" to implement fma(3) on ppc.
 1.215 23-Jun-2022  he libm: build fma(3), fmaf(3), fmal(3) on powerpc.

For now this builds the C version, for completeness, so
that e.g. lang/ocaml can be configured & built. However,
googling reveals that powerpc does have a "fused multiply add"
instruction, ref.
https://www.ibm.com/docs/en/aix/7.1?topic=set-fmadd-fma-floating-multiply-add-instruction
so this could probably be taken advantage of for a more
optimized version.
 1.214 21-Jul-2021  tnn libm: build fma(3), fmaf(3), fmal(3) on alpha

Alpha has no hardware-assisted fused multiply-add, so the fallback
C implementation must be used. A basic smoke test shows the
implementation works for
"x * x - 1.0f" vs "fmaf(x, x, -1.0f)" with "volatile float x = 1.0008f;"
 1.213 25-Apr-2021  christos Use ${MACHINE_MIPS64}
 1.212 11-Nov-2019  joerg Update LLVM to 10.0.0git (01f3a59fb3e2542fce74c768718f594d0debd0da)
 1.211 11-Oct-2019  nros Add manpage links for frexpf and frexpl.

Manpage links were missing for frexpf and frexpl even thogh they were
mentioned in the manpage for frexp.
 1.210 27-Apr-2019  kamil branches: 1.210.2;
Add a C99 symbol to libm: nexttowardl

It's an alias for an already existing symbol nextafterl.

Patch obtained from <mgorny>

Detected by the LLVM buildbot breakage in tests.
 1.209 25-Apr-2019  maya document cosl with MLINKS and in the man page
 1.208 17-Apr-2019  mrg also want s_nexttoward.c on riscv. now tests/lib/libm links.
 1.207 15-Apr-2019  maya we need rintl (long double) to link binaries
 1.206 22-Feb-2019  maya Default our libm to -frounding-math, if built with GCC.

The long-standing GCC default is to not respect rounding mode.
it looks like GCC 7 optimizes rint to a builtin, causing our few
rounding mode tests to fail.

Fixes PR port-amd64/54000: FP tests failing on amd64 since gcc7 import
 1.205 07-Nov-2018  riastradh Disable x87 implementations of sin, cos, tan.

The x87 hardware uses a bad approximation to pi for argument
reduction, and consequently yields bad answers for inputs near pi or
pi/2.

Tweak one tanf test whose doubly rounded output is a little too far
from the correct answer on the doubly rounded input.
 1.204 13-Jun-2018  kamil branches: 1.204.2;
Disable sanitizers for libm and librt

The sanitizers are designed to use pristine OS versions of these libraries,
install interceptors for public symbols in them and link with them in every
sanitized executable.

Having unmodified base libraries (c, m, rt, pthread) also makes the system
usable with programs linking with them and without sanitization, as there
are no fatal issues during the resolving of missing symbols.

The remaining libraries like libutil, libintl etc are prebuilt with
sanitization and all their users in the MKSANITIZER=yes distribution are
required to use the same sanitizer.

libc and libpthread are already marked with the NOSANITIZER flag.
 1.203 26-Sep-2017  maya branches: 1.203.2;
Add man page link for hypotl.3
 1.202 21-Aug-2017  christos add nexttoward for mips64 and aarch64
 1.201 17-Aug-2017  he Actually... s_nexttowardf.c appears to be usable on soft-float as well;
it was for arm earlier and briefly for all mips, so just move it into
COMMON_SRCS.
 1.200 17-Aug-2017  he Move the inclusion of s_nexttowardf.c into a common test for
MKSOFTFLOAT=="no". This brings us nexttowardf() for sparc, at least.
 1.199 16-Aug-2017  nisimura add s_rintl.c for aarch64. ok by ryo@.
 1.198 16-Aug-2017  he In the non-softfloat m68k part, add s_nexttoward.c and s_nexttowardf.c,
so that we get nexttoward() and nexttowardf() implemented here as well.
 1.197 15-Aug-2017  mlelstv rintl is required for archs that support long double.
 1.196 11-Aug-2017  he Move s_nearbyint.c out of the cpu ifdefs and into COMMON_SRCS,
which is used everywhere except on vax. This is to simplify and
to ensure the function is included in the build, allowing us to
re-add the nearbyint() test.
 1.195 27-Jul-2017  he The sparc port needs s_nearbyint.c as well.
 1.194 27-Jul-2017  he Non-softfloat m68k needs s_rintl.c.
 1.193 26-Jul-2017  he Add s_nearbyint.c to alpha, ia64, riscv, mips, powerpc, and sh3 ports.
 1.192 26-Jul-2017  he Add some blank lines to separate the different CPU archs,
for a minimal readability improvement.
 1.191 06-May-2017  christos branches: 1.191.2;
Replace our rounding functions with the ones from FreeBSD
 1.190 23-Mar-2017  chs branches: 1.190.2;
sun2 just has to be different, of course.
it doesn't use the libc softfloat and thus doesn't set MKSOFTFLOAT=yes.
enable the fenv functions here explicitly for now.
 1.189 22-Mar-2017  chs provide a common softfloat fenv implemenation and use it for softfloat builds.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
 1.188 23-Feb-2017  scole Add fenv for ia64, imported from FreeBSD, compile tested only.
 1.187 08-Dec-2016  christos branches: 1.187.2;
more stuff needs -mfpu=vfp
 1.186 21-Sep-2016  christos deal with namespace issues and missing atanhf for vax.
 1.185 07-Sep-2016  jakllsch Actually get fma(3) and friends into ARM libm.
 1.184 27-Aug-2016  christos skip buggy assembly for libm_g.a
 1.183 26-Aug-2016  christos fix double merge.
 1.182 26-Aug-2016  christos do the FENV test consistently
 1.181 25-Aug-2016  christos more fenv for sh
 1.180 24-Aug-2016  christos fix ilogb*
 1.179 24-Aug-2016  christos add ilogb.
 1.178 23-Aug-2016  christos fenv.h for alpha
 1.177 30-Mar-2016  martin branches: 1.177.2;
No fenv for m68k with SOFTFLOAT for now - so at least it builds.
 1.176 17-Mar-2016  nros Added ldexpl to ldexp manpage since it is missing.
Also added ldexpf manpage link since it is missing.
 1.175 17-Mar-2016  nros Add fabsl to the manpage describing the fabs functions.
 1.174 29-Dec-2015  christos Add sqrtl
 1.173 21-Dec-2015  christos Add mips fenv.c (From FreeBSD)
 1.172 20-Dec-2015  christos Powerpc fenv.c from FreeBSD
 1.171 12-Dec-2015  nros Add manpage to the fma function in libm.
The manpage is taken from the FreeBSD project since the fma implementation is
based on the one in FreeBSD.
 1.170 13-Sep-2015  he Add entry for nexttowardf(3) and a link for the function name.
Bump manual page date.
 1.169 13-Sep-2015  he Add entries for rintl(3) and the nearbyint functions, and
make manual page links to the new functions.
Bump manual page date.
 1.168 27-Dec-2014  martin fenv(3) support for hppa
 1.167 17-Nov-2014  christos PR/49399: Henning Petersen: Add man pages for erfl and erfcl
 1.166 19-Sep-2014  matt Add RISC-V MD bits.
 1.165 26-Aug-2014  christos Adding extra dependencies does not affect the inference rule search anymore.
XXX[1]: should that be the case?
Simplify the code anyway via selective path search.
XXX[2]: Split arch portions to arch specific files, this is a mess
 1.164 11-Aug-2014  mrg branches: 1.164.2;
revert parts of 1.163 that affect the x86 build.

possibly, we want to build the i386 fenv.c for compat build, but they
seem largely compatible and for now, just go back to what we had before
that wasn't breaking the build or generating bug reports.
 1.163 10-Aug-2014  matt MKCOMPAT fixes for when compat MACHINE_CPU != normal MACHINE_CPU
 1.162 10-Aug-2014  joerg Add -mfpu=vfp for fenv.c, since it gets those instructions from
machdep/armreg.h
 1.161 10-Aug-2014  matt Changes to existing files to enable building AARCH64 userland.
evbarm64-el
This is clang only. While gcc4.8 supports aarch64, no netbsd support has
been written for aarch64 with gcc4.8.
 1.160 16-Jun-2014  joerg Add modfl(3). From FreeBSD.
 1.159 18-May-2014  martin Re-enable alpha IEEE compiler options
 1.158 05-May-2014  martin Comment out the ieee fp flags for alpha for now - something (tm) is not
working right, see PR port-alpha/48782.
 1.157 28-Apr-2014  martin Tune COPTS for alpha
 1.156 01-Apr-2014  christos branches: 1.156.2;
add -g to LINTFLAGS
 1.155 06-Mar-2014  martin Include new/missing files for vax
 1.154 29-Jan-2014  joerg Include compiler-rt in libc, libm and libkern.
 1.153 18-Jan-2014  skrll Add various functions which need fenv support to arm.
 1.152 22-Nov-2013  martin Try to fix the build (again): move e_sqrtl.c to common soure, but
move the include of fenv.h into the #ifdef __HAVE_LONG_DOUBLE block
and also provide a -DHAVE_FENV_H from the makefile for archs that have
it - leaving out exception settings on architectures that do not provide
it.
 1.151 21-Nov-2013  martin e_sqrtl.c requires fenv.h, so only build it on platfomrs supporting that
 1.150 19-Nov-2013  joerg Add cbrtl(3) and sqrtl(3), from FreeBSD.
 1.149 13-Nov-2013  joerg truncl(3)
 1.148 13-Nov-2013  joerg Add FreeBSD's truncl and minimal testing.
 1.147 12-Nov-2013  joerg Add some fake long double -> double wrappers for various transcendental
functions. They are expected to be implement properly at a later time.
 1.146 12-Nov-2013  joerg Initial version of fmodl from FreeBSD.
Basic test case for the fmod family.
 1.145 12-Nov-2013  joerg Man page entries for ceill, floorl and roundl.
 1.144 11-Nov-2013  joerg Add initial version of ceill, floorl and roundl from FreeBSD.
 1.143 15-Oct-2013  joerg Hook complex operation support into libm when not using libgcc.
 1.142 21-Sep-2013  joerg Update LLVM/Clang snapshot to r191105. This brings in a better detection
of unused static variables and functions. Disable this for some external
code and for ioconf.c in the kernel.
 1.141 22-Aug-2013  martin s_nexttoward.c does not make sense compiling for 32 bit sparc (double ==
long double), so ifdef it out in the sparc64 compat library build. I hope
the nextafter alias is set up correctly (where?) - and someone please
suggest a better way for this if clause.
 1.140 21-Aug-2013  martin Add nexttoward, nearbyint and rintl for sparc64
 1.139 20-Jun-2013  christos Add missing .go and fix lint rule.
 1.138 24-May-2013  martin Fix POLYD/Mariah fallout and include the scalbn sources (which do not
use polyd).
Fix global names and weak aliases.
 1.137 01-May-2013  matt Use MKSOFTFLOAT = no for including arm hardfloat files.
When arm and MKSOFTFLOAT = yes, make explicit dependency to .c files
so .S won't be used.
 1.136 28-Apr-2013  joerg Drop s_scalbnl.c (and s_scalbln.S as side effect) and provide scalbnl in
s_scalbln.c.
 1.135 27-Apr-2013  joerg Retire ldexp sources. scalbn has the aliases.
 1.134 06-Apr-2013  uebayasi Pass a real file as MLINKS target; fix unnecessary (re)install.
 1.133 12-Feb-2013  martin Use __HAVE_LONG_DOUBLE instead of EXT_EXPBITS and include s_nextafterl.c
as well as s_frexpl.c in the global list of "common" sources - as we
seem to have no arch redefining the standard double variant, it seems
unlikely we will have on redefining the long double version in assembler.
 1.132 11-Feb-2013  matt any arch that has fenv.[ch] can have fma as well (since fma uses fenv).
 1.131 11-Feb-2013  matt Add VFP versions of lrint/lrintf/lrintl for earmhf*
 1.130 11-Feb-2013  christos add more functions required by fma
 1.129 11-Feb-2013  christos hook fma to the build
 1.128 09-Feb-2013  christos Hook to the build.
 1.127 09-Feb-2013  christos Make this work for NetBSD
 1.126 03-Feb-2013  matt Add support for the ARM hardfloat instructions vsqrt and vabs.
 1.125 04-Aug-2012  matt branches: 1.125.2;
Use COPTS instead of CFLAGS
 1.124 05-May-2012  christos Add tgamma{,f} from FreeBSD via rudolf, netbsd at eq dot cz
 1.123 04-Apr-2012  joerg Disable new -Wstring-plus-int warning where needed for now.
Adjust various places that add GCC-only options to check for the active
compiler first.
 1.122 21-Mar-2012  matt These directories default to WARNS?=5
 1.121 09-Mar-2012  njoly On alpha compile the math library with dynamic rounding mode instead
of fixed normal IEEE rounding mode. This makes function that depends on
the current rounding mode, such as rint(3), just work.
 1.120 17-Sep-2011  jruoho branches: 1.120.2; 1.120.4;
Split out pow(3) from exp(3).
 1.119 13-Sep-2011  jruoho Split out the logarithm functions from the perplex exp(3). Also remove some
useless notes in the latter (namely, no one cares that financial calculations
were done on Hewlett-Packard HP-71B, or that there is a LN1() in Pascal).
 1.118 06-Aug-2011  jruoho Deprecate ieee(3).
 1.117 06-Aug-2011  jruoho Split out the scalbn(3) family out from ieee(3) and properly document it.
 1.116 03-Aug-2011  joerg Add logbl(3).
 1.115 28-Jul-2011  joerg Add ilogbl(3).
 1.114 28-Jul-2011  joerg Add scalbnl(3) mlinks.
 1.113 28-Jul-2011  matt Add scalbn{,f,l} for VAX.
 1.112 26-Jul-2011  joerg Add scalbnl to libm.
 1.111 20-Jun-2011  mrg remove most of the remaining HAVE_GCC tests that are always true in
the modern world.
 1.110 20-May-2011  nakayama branches: 1.110.2;
Add fenv support for sparc. Mostly copied from sparc64 and share with it.
 1.109 10-May-2011  jruoho Remove trailing '\'.
 1.108 10-May-2011  jruoho Split out the ilogb(3) family out of ieee(3) and properly document it.
 1.107 16-Apr-2011  jruoho Merge floor(3) to ceil(3).
 1.106 13-Apr-2011  jruoho Split out from ieee(3) also the remainder(3) and copysign(3) families.
 1.105 12-Apr-2011  jruoho Split the nextafter(3) family of functions to their own page and properly
document these.
 1.104 06-Feb-2011  christos remquo{,f} from FreeBSD via Stathis Kamperis
 1.103 31-Jan-2011  christos not everyone has fenv.c, pointed by Havard Eidnes
 1.102 31-Jan-2011  christos fenv support for sparc64 from Stathis Kamperis
 1.101 12-Jan-2011  joerg branches: 1.101.2;
Remove NOMANDOC, the documents are at least parsed somewhat sensible.
 1.100 09-Jan-2011  jakllsch Imlementations of fmax, fmaxf, fmin and fminf libm functions for VAX.
 1.99 09-Dec-2010  abs Add noieee versions for lround(), lroundf(), lrint(), lrintf(),
llrint() and llrintf(). Code copied from round(), roundf() and
rint() and modified for return values. Its possible this may not
do the right things in edge cases, but if so its likely to have
the same issues as the existing round(), roundf() and rint().

All this used by vax (only), and should allow xnest to complete
build.
 1.98 15-Sep-2010  christos Commit SoC long double support from Stathis Kamperis
 1.97 10-Aug-2010  drochner two disgusting hacks:
-mk/bsd.lib.mk picks up a .S asm file behind our back (did it do so
always?). s_modf.S is incorrect; I'm undecided whether it makes sense
to fix it, so add a stupid rule to enforce the .c file to be used.
-on i386, s_tanh.c gets miscompiled. It works with -O0, so add
COPTS for exactly that file.
 1.96 07-Aug-2010  wiz Fix typo in MLINKS, from Stathis Kamperis. Adapt set lists, and run
them through sort while there.
 1.95 31-Jul-2010  joerg Add support for fenv.h interface for i386 and amd64.

Submitted by Stathis Kamperis as part of GSoC 2010 and ported from
FreeBSD.
 1.94 23-Apr-2010  drochner -build ldexp/frexp/modf locally again rather than relying on libc
reaching over, to get things into a sane state,
-do the usual namespace protection game with scalbn(f) because it
is used internally
(more symbol renamings are necessary)

The weak_alias change for mc68881 is untested.
 1.93 29-Mar-2010  mrg build s_frexp.c, s_ldexp.c and s_modf.c here for new platforms, since they
don't exist as compat functions in libc.

current list of new platforms: powerpc64.

from dennis.c.ferguson@gmail.com in PR#43042. idea to not put compat
functions into new platforms from drochner@netbsd.
 1.92 11-Jan-2010  christos Add exp2 and exp2m
 1.91 23-Oct-2009  joerg Disable the use of mandoc for now until support for conditional
expression exists.
 1.90 04-Oct-2009  christos add f{min,max,dim}{,l,f} from FreeBSD
 1.89 18-Jan-2009  he Change the use of formally undocumented features, which have now been
made to fail. Specifically, change
.ifdef(SYMBOL) -> .ifdef SYMBOL or .if defined(SYMBOL),
and corresponding for .ifndef.

Also correct one error in lib/libm/Makefile (.ifdef (${MKCOMPLEX} != "no")?!?).
 1.88 29-Aug-2008  gmcgarry branches: 1.88.4; 1.88.8;
Wrap compiler-specific flags with HAVE_GCC and HAVE_PCC as necessary. Add a few flags for PCC.
 1.87 12-Jul-2008  gmcgarry Check MKCOMPLEX variable to build complex support into libm.
 1.86 03-Jun-2008  ad - Fold libm387 into libm.
- Leave libm387 as an empty shell.
 1.85 26-Apr-2008  christos branches: 1.85.2;
Remove 3 functions that exist in libc. This does not break binary compatibility
since we always link with libc.
 1.84 26-Apr-2008  christos Put back USE_SHLIBDIR and remove the confusing lint comment that made me
comment it out in the first place.
 1.83 25-Apr-2008  christos avoid shadow variables, and enable lint.
 1.82 20-Feb-2008  drochner branches: 1.82.4;
Add manpages for the complex math functions, originally from SUSv3,
roff source from the Linux documentation project.
Modifications before import:
-added NetBSD RCS ID
-removed Linux PROLOG and declarations with "long double"
-ran the "deshallify" script as required by The Open Group
Split out complex related things into an own Makefile fragment.
Thanks to hubertf for directions.
 1.81 09-Feb-2008  mrg make all sun2 use -O0 and move most of the hacks out into just 3 files.
 1.80 05-Feb-2008  mrg make sun2 build again with liberal use of -O0.
 1.79 20-Aug-2007  drochner branches: 1.79.2;
Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.78 22-Feb-2007  drochner -get cabs() and cabsf() out of public view - these are historical and
conflict with C99 functions which are builtins in newer gcc
(actually, the old cabs() is ABI compatible with the new _complex one
on i386, but this is purely accidental)
remove public prototypes and manpages, move the code into a compat
subdirectory as libc does so that binary compatibility is kept
-add a manpage for the isgreater() etc macros, borrowed from FreeBSD
 1.77 03-Jul-2006  drochner move manpages for frexp/ldexp/modf to libm -- the (most) implementation is
already there
 1.76 01-Jul-2006  mrg noieee src is not strict-aliasing compliant. apply -fno-strict-aliasing.
 1.75 11-May-2006  mrg build w_cabs.c/w_cabsf.c with -fno-builtin-cabs[f]

XXX: our cabs()/cabsf() are different to others.
 1.74 25-Mar-2006  xtraeme Add trunc() and truncf() C99 functions, from FreeBSD.
 1.73 21-Mar-2006  drochner Build the sun versions of frexp(), ldexp() and modf().
While the versions in libc/gen are prettier to look at, having single
precision versions in libm and double precision versions in libc causes
a lot of confusion, and to favor libm gets us coprocessor support.
 1.72 15-Mar-2006  kleink Add nan(3), nanf(3), and nanl(3); welcome libm.so.0.4.
 1.71 17-Jan-2006  is C versions of non-IEEE round() / roundf(). Alas, using the VAX
cvtrdl; cvtld doesn't work for big numbers.
 1.70 15-Jan-2006  is Implement round(3), so that jot(1) can link again.
 1.69 16-Sep-2005  wiz Add man page for l{,l}rint{,f}(3), very loosely based on the FreeBSD one.
Requested by martin@
Reviewed by drochner@
 1.68 21-Jul-2005  rpaulo Add i387 FPU routines for log2(3) and log2f(3).

ok christos@
 1.67 21-Jul-2005  christos Add wrappers for the newly added functions. Thanks Klaus!
 1.66 21-Jul-2005  christos Add log2 and log2f from FreeBSD PR 83845
 1.65 13-Nov-2004  jmmv branches: 1.65.2;
Add a conditional for proper m68k softfloat operation. It looks like I
forgot to commit this file back when this functionality was added.
Noted by Bruce O'Neel (the original author) in port-mac68k@.
 1.64 10-Jul-2004  junyoung lib/24252: Add C99 functions round(3) and roundf(3).
libm minor unchanged; ride a recent bump.

From FreeBSD.
 1.63 01-Jul-2004  drochner also provide an alpha assembler implemtation of lrint()
 1.62 01-Jul-2004  drochner enable lrint.S for amd64 (which doesn't build libm387),
and tighten the generic->machdep source distribution a bit to avoid
unwanted substitutions
 1.61 01-Jul-2004  drochner being here, add the (l)lround(f) functions to libm
(almost the same like lrint)
 1.60 30-Jun-2004  drochner Implement (l)lrint(f).
(Could get some optimization for LP64; this would need a change to
the float access macros in math_private.h.)
 1.59 15-Jun-2002  matt branches: 1.59.2;
Compile libm on VAX at WARNS=2; leave other architectures at WARNS=1
 1.58 27-Jan-2002  ross branches: 1.58.2;
Drink ALL the Kool-Aid.

(Move -mieee from lib/ to bsd.*.mk; new var MKIEEEFP defaults to yes.)
 1.57 27-Jan-2002  thorpej On Alpha, build libc and libm with -mieee ... A metric crapload
of 3rd party software expects this.

XXX TODO: consider libm-fast for alpha that is not -mieee. Possibly
determine -mieee or not at run-time based on a bit in the executable
headers.
 1.56 28-Dec-2001  lukem * Add user-controlled mk.conf variables
- SHLIBDIR Location to install shared libraries if ${USE_SHLIBDIR}
is "yes". Defaults to "/usr/lib".

- USE_SHLIBDIR If "yes", install shared libraries in ${SHLIBDIR}
instead of ${LIBDIR}. Defaults to "no".
Sets ${_LIBSODIR} to the appropriate value.
This may be set by individual Makefiles as well.

- SHLINKDIR Location of shared linker. Defaults to "/usr/libexec".
If != "/usr/libexec", change the dynamic-linker
encoded in shared programs

* Set USE_SHLIBDIR for libraries used by /bin and /sbin:
libc libcrypt libcrypto libedit libipsec libkvm libm libmi387
libtermcap libutil libz

* If ${_LIBSODIR} != ${LIBDIR}, add symlinks from ${LIBDIR}/${LIB}.so*
to ${_LIBSODIR}/${LIB}.so* for compatibility.

* Always install /sbin/init statically (for now)


The net effect of these changes depends on how the variables are set:

1.) If nothing is set or changed, there is no change from the
current behaviour:
- Static /bin, /sbin, and bits of /usr/*
- Dynamic rest
- Shared linker is /usr/libexec/ld*so

2.) If the following make variables are set:
LDSTATIC=
SHLINKDIR=/lib
SHLIBDIR=/lib
Then the behaviour becomes:
- Dynamic tools
- .so libraries used by /bin and /sbin are installed to /lib,
with symlinks from /usr/lib/lib*so to -> /lib/lib*so
where appropriate
- Shared linker is /lib/ld*so

3.) As per 2.), but add the following variable:
USE_SHLIBDIR=yes
This forces all .so's to be instaleld in /lib (with compat
symlinks), not just those tagged by their Makefiles to be.
Again, compat symlinks are installed
 1.55 12-Dec-2001  tv Readability cleanups; MKfoo=no -> NOfoo.
 1.54 05-Nov-2001  lukem explicitly set to WARNS?=1
 1.53 19-Jun-2001  fvdl Use arch/i387 for x86_64.
 1.52 13-Dec-1999  christos branches: 1.52.4;
If we are not including i387 support in libm, build a separate libi387.
 1.51 22-Aug-1999  is branches: 1.51.4;
Use arch/m68k copies of the common functions even for mc68881 hardware.
 1.50 19-Aug-1999  is Pull in Motorola 68060 floating point library support package based
libm code, .ifdef M68060.
 1.49 16-Aug-1999  kleink Document isinff(3) and isnanf(3), cloned from the corresponding double-
precision manual page. It is kept separately since the latter are part of
libc and thus impose different linkage instructions.
 1.48 16-Aug-1999  kleink Document reentrant log gamma interfaces.
 1.47 15-Aug-1999  kleink Add single-precision versions of interfaces to their manual pages' NAME section
and install links as appropriate.
 1.46 02-Jul-1999  simonb More trailing white space.
 1.45 01-Jul-1999  is Quick and dirty hook to compile a non-6888[12] libm for 68040 and 68060.
This is switched to by the M68040 or M68060 defines.
XXX Eventually, a M060SP based libm should be built for M68060.
 1.44 15-Feb-1999  he NOLINT -> MKLINT=no.
 1.43 11-Nov-1998  matt Fix PIC code and fix problem with obj dirs.
 1.42 10-Oct-1998  matt Actually build __setjmp.S/__sigsetjmp.S for vax. PICifiy the setjmp code.
Fix libm Makefile to handle obj directories.
 1.41 22-Aug-1998  ragge The Mariah chip lacks the POLYD instruction, so some assembly coded
calculations must be done in C instead. Fast fix until the POLY{D,F,G,H}
insn's are written.
 1.40 09-Aug-1998  perry on i386, use FPU instructions in libm if I387_LIBM is set, from dan@geek.com.au
 1.39 19-Feb-1998  cgd move NOLINT definition
 1.38 19-Feb-1998  cgd Make sure the reason that NOLINT is set is documented. Additionally
in places where it should be set (or has to be set right now), do so.
 1.37 23-Oct-1997  lukem use CPPFLAGS instead of CFLAGS
 1.36 18-Oct-1997  mikel branches: 1.36.2;
kill tab on line by itself, keep contents within 80 columns
 1.35 09-Oct-1997  lukem rcsid facism, WARNSify
 1.34 19-Dec-1996  cgd force NOLINT on the Alpha, at least until we fix FP underflow/denorm handling
 1.33 12-Oct-1996  ragge Non-IEEE assembler files wasn't handled correctly. Trouble pointed out by
Robin Birch, fix by Mats O Jansson/Christos Zoulas.
 1.32 05-Jul-1996  explorer Add a continuation slash in the commented-out i387 section
 1.31 03-Jul-1996  jtc Add new i387 math functions to ARCH_SRCS
 1.30 26-Jun-1996  jtc Enable mc68881 version of fmod
 1.29 26-Jun-1996  jtc enable alpha-specific libm files
 1.28 20-Nov-1995  jtc Changed w_gamma.c, w_gamma_r.c, w_gammaf.c, w_gammaf_r.c to call
__ieee754_lgamma_r or __ieee754_lgammaf_r.
Removed e_gamma.c, e_gamma_r.c, e_gammaf.c, e_gammaf_r.c, e_lgamma.c,
e_lgamma_f.c.
 1.27 10-Oct-1995  ragge Got Makefile to understand to use non-IEEE files on vax systems.
 1.26 03-May-1995  jtc Add i387 "float" functions to the makefile
 1.25 18-Feb-1995  jtc Enable mc68881 versions of remainder() and scalb().
 1.24 22-Dec-1994  cgd specify man pages the new way.
 1.23 25-Sep-1994  jtc Added s_isinff.c
 1.22 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.21 12-Mar-1994  jtc Update for mc68881 ceil(), floor(), & rint(), and s_sqrt.S -> e_sqrt.S
naming mistake.
 1.20 11-Mar-1994  jtc Added a ieee_test(3) man page (Like SunOS) derrived from an earlier copy
of ieee(3). This man page describes logb, scalb, and significand, which
are really only useful for verifying IEEE754 compliance.
 1.19 11-Mar-1994  jtc infnan was a vaxism.
 1.18 10-Mar-1994  jtc Added i387 version of significand().
 1.17 08-Mar-1994  jtc Christos Zoulas' Makefile fixes.
 1.16 01-Mar-1994  jtc Add cabs() & drem() for BSD libm compatibility.
 1.15 25-Feb-1994  jtc Update manpages for new math library.
 1.14 15-Feb-1994  jtc Compiled shared too.
 1.13 14-Feb-1994  jtc Comment out all functions that are also provided by our C library: fabs(),
frexp(), isnan(), ldexp(), and modf().
 1.12 14-Feb-1994  jtc isnan() was provided by both C and Math libraries.
 1.11 11-Feb-1994  jtc Changes for fdlibm based math library
 1.10 06-Dec-1993  cgd use .S not .s
 1.9 05-Dec-1993  cgd update for MACHINE_ARCH
 1.8 21-Oct-1993  jtc Use BYTE_ORDER == LITTLE_ENDIAN instead of -Dnational to select byte order
of floating point numbers.

The assumption that a processor's floats use the same order as its integers
is probably unwarranted, but it is better than requiring non-national CPUs
to #define national, as that drags in national-specific code too.
(According to a comment in the code, the national FPU does not do infinity)
 1.7 11-Oct-1993  jtc Install cbrt link to sqrt manpage.
 1.6 05-Oct-1993  pk No PIC, you probably don't want the overhead in these functions.
 1.5 01-Oct-1993  cgd put gamma.c into libm (because it's missing)...
 1.4 14-Aug-1993  mycroft Split log() and log__D() into separate files. Add logtab.c for logarithm
tables and log.h for common definitions.
Split exp() and exp__D() into separate files.
 1.3 14-Aug-1993  mycroft New code from uunet.
 1.2 01-Aug-1993  mycroft Add RCS identifiers.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.36.2.1 09-Nov-1997  lukem sync with trunk (approved by thorpej)
 1.51.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.52.4.1 14-Aug-2000  ragge Apply patch (requested by user, approved by thorpej):

Dynamic linked JSB called global labels don't work, subroutines
must be called with CALLS instead. This patch fixes it for the 1.5 release.
 1.58.2.1 18-Jun-2002  lukem Pull up revision 1.59 (requested by matt in ticket #285):
Compile libm on VAX at WARNS=2; leave other architectures at WARNS=1
 1.59.2.1 15-Jul-2004  he Pull up revision 1.64 (requested by junyoung in ticket #664):
Add C99 functions round(3) and roundf(3).
Bump the teeny version number for libm.
 1.65.2.1 24-Mar-2006  riz Pull up following revision(s) (requested by drochner in ticket #1213):
lib/libm/man/lrint.3: revision 1.1
distrib/sets/lists/comp/mi: revision 1.815
lib/libm/Makefile: revision 1.69
Add man page for l{,l}rint{,f}(3), very loosely based on the FreeBSD one.
Requested by martin@
Reviewed by drochner@
 1.79.2.1 23-Mar-2008  matt sync with HEAD
 1.82.4.2 17-Jun-2008  yamt sync with head.
 1.82.4.1 18-May-2008  yamt sync with head.
 1.85.2.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.85.2.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.88.8.1 21-Apr-2010  matt sync to netbsd-5
 1.88.4.1 12-Mar-2010  riz Pull up following revision(s) (requested by snj in ticket #1330):
lib/libm/man/fmax.3: revision 1.1-1.2
lib/libm/src/s_fmin.c: revision 1.1-1.2
lib/libm/src/s_fdim.c: revision 1.1
lib/libm/src/s_fmaxl.c: revision 1.1
lib/libm/Makefile: revision 1.90
include/math.h: revision 1.49
lib/libm/src/s_fmaxf.c: revision 1.1
lib/libm/src/s_fmax.c: revision 1.1
lib/libm/shlib_version: revision 1.10
distrib/sets/lists/base/md.sparc64: revision 1.63 (via patch)
distrib/sets/lists/base/shl.mi: revision 1.495 (via patch)
lib/libm/src/s_fminl.c: revision 1.1
distrib/sets/lists/comp/mi: revision 1.1317
lib/libm/man/fdim.3: revision 1.1-1.3
lib/libm/src/s_fminf.c: revision 1.1
distrib/sets/lists/base/md.amd64: revision 1.70 (via patch)
add f{min,max,dim}{,l,f} from FreeBSD
These functions are going to first appear in 5.1, not 6.0.
 1.101.2.1 08-Feb-2011  bouyer Sync with HEAD
 1.110.2.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.120.4.1 09-May-2012  riz Pull up following revision(s) (requested by christos in ticket #232):
distrib/sets/lists/comp/mi: revision 1.1756
lib/libm/Makefile: revision 1.124
lib/libm/src/math_private.h: revision 1.17
lib/libm/src/b_tgamma.c: revision 1.1
lib/libm/man/lgamma.3: revision 1.22
lib/libm/src/b_log.c: revision 1.1
lib/libm/src/b_exp.c: revision 1.1
include/math.h: revision 1.58
lib/libm/src/s_tgammaf.c: revision 1.1
add tgamma{,f}
Add tgamma{,f} from FreeBSD via rudolf, netbsd at eq dot cz
oops, forgot to commit: add tgamma and tgammaf
 1.120.2.4 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.120.2.3 30-Oct-2012  yamt sync with head
 1.120.2.2 23-May-2012  yamt sync with head.
 1.120.2.1 17-Apr-2012  yamt sync with head
 1.125.2.3 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.125.2.2 23-Jun-2013  tls resync from head
 1.125.2.1 25-Feb-2013  tls resync with head
 1.156.2.1 10-Aug-2014  tls Rebase.
 1.164.2.4 25-Sep-2016  bouyer Pull up following revision(s) (requested by jakllsch in ticket #1253):
lib/libm/Makefile: revision 1.185 via patch
Actually get fma(3) and friends into ARM libm.
 1.164.2.3 08-Nov-2015  riz branches: 1.164.2.3.2;
Pull up following revision(s) (requested by dholland in ticket #1009):
lib/libm/man/erf.3: revision 1.13
distrib/sets/lists/comp/mi: revision 1.1921
lib/libm/Makefile: revision 1.167
PR/49399: Henning Petersen: Add man pages for erfl and erfcl
fix sets for new erf{c,}l man pages.
 1.164.2.2 20-Jan-2015  snj Pull up following revision(s) (requested by martin in ticket #416):
distrib/sets/lists/comp/md.hppa: revision 1.3
include/fenv.h: revision 1.13 via patch
lib/libm/Makefile: revision 1.168
lib/libm/arch/hppa/fenv.c: revisions 1.1, 1.2
sys/arch/hppa/include/Makefile: revision 1.12
sys/arch/hppa/include/fenv.h: revisions 1.1, 1.2
sys/arch/hppa/include/ieeefp.h: revisions 1.5-1.7
tests/lib/libm/Makefile: revision 1.29 via patch
fenv(3) support for hppa
--
use unsigned over uint32_t so that this file works without stdint.h
being included before hand.
fixes mknative-gcc problems, and likely others.
--
Properly separate fenv.h and ieeefp.h by moving all fenv defines
over to the former.
Now that they are decoupled, make rounding modes match the hardware bits.
--
Simplify, now that rounding mode defines match the hardware bits.
 1.164.2.1 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.164.2.3.2.1 18-Jan-2017  skrll Sync with netbsd-5
 1.177.2.4 26-Apr-2017  pgoyette Sync with HEAD
 1.177.2.3 20-Mar-2017  pgoyette Sync with HEAD
 1.177.2.2 07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.177.2.1 04-Nov-2016  pgoyette Sync with HEAD
 1.187.2.1 21-Apr-2017  bouyer Sync with HEAD
 1.190.2.1 11-May-2017  pgoyette Sync with HEAD
 1.191.2.3 29-Aug-2017  martin Actually apply revision 1.201 (as the previous pullup claimed to do already).
 1.191.2.2 29-Aug-2017  martin Pull up the following, requested by he in ticket #217:

lib/libm/Makefile 1.197-1.201
tests/lib/libm/t_fe_round.c 1.7

Ensure nexttowardf() is included on all IEEE targets.
Add rintl() for aarch64 and mips, and nexttoward() for m68k.
Add a test which verifies that nextafter() and nexttoward() are
present in the implementation.
 1.191.2.1 29-Aug-2017  martin Pull up the following, requested by he in ticket #212:

lib/libm/Makefile 1.192-1.196
tests/lib/libm/t_fe_round.c 1.3-1.6

Ensure that nearbyint() is included in all targets except for vax,
and add a test case for nearbyint(), stubbed out for non-IEEE (vax).
 1.203.2.2 26-Nov-2018  pgoyette Sync with HEAD, resolve a couple of conflicts
 1.203.2.1 25-Jun-2018  pgoyette Sync with HEAD
 1.204.2.2 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.204.2.1 10-Jun-2019  christos Sync with HEAD
 1.210.2.1 08-Oct-2023  martin Pull up following revision(s) (requested by he in ticket #1747):

lib/libm/Makefile: revision 1.222
distrib/evbmips/instkernel/ramdisk/Makefile: revision 1.19

libm Makefile: add fma() functions for mips.

This pushed the ramdisk size, so that needed to be bumped as well.
Otherwise, there were no build issues for either 32 or 64 bit mips.
Sort-of OK'ed by simonb@.
 1.218.2.5 22-Feb-2025  martin Pull up following revision(s) (requested by tsutsui in ticket #1061):

lib/libm/Makefile: revision 1.241

libm: Add missing fma(3) and variants for hppa.

Fixes a build error on pkgsrc/lang/python312. Ok'ed by skrll@.
 1.218.2.4 14-Jan-2024  martin Pull up following revision(s) (requested by riastradh in ticket #547):

lib/libm/Makefile: revision 1.221 (patch)

libm: Add fma(3) and friends to m68k
 1.218.2.3 31-Dec-2023  martin Pull up following revision(s) (requested by jklos in ticket #529):

lib/libm/Makefile: revision 1.223

Fix building with M68040 and M68060 options.
 1.218.2.2 08-Oct-2023  martin Pull up following revision(s) (requested by he in ticket #397):

lib/libm/Makefile: revision 1.222
distrib/evbmips/instkernel/ramdisk/Makefile: revision 1.19

libm Makefile: add fma() functions for mips.

This pushed the ramdisk size, so that needed to be bumped as well.
Otherwise, there were no build issues for either 32 or 64 bit mips.
Sort-of OK'ed by simonb@.
 1.218.2.1 11-Aug-2023  martin Pull up following revision(s) (requested by riastradh in ticket #320):

lib/libm/src/ldbl_dummy.c: revision 1.3
distrib/sets/lists/debug/shl.mi: revision 1.303
lib/libm/src/ldbl_dummy.c: revision 1.4
lib/libm/src/namespace.h: revision 1.17
lib/libm/src/s_llrintl.c: revision 1.3
lib/libm/Makefile: revision 1.220
lib/libm/src/s_lrintl.c: revision 1.3
lib/libm/man/sincos.3: revision 1.2
lib/libm/man/math.3: revision 1.29
distrib/sets/lists/base/shl.mi: revision 1.946
lib/libm/shlib_version: revision 1.18

libm: Fill in more dummy long double transcendental functions.
This should cover everything from C99.

libm: Need <math.h> for __HAVE_LONG_DOUBLE.
Fixes missing definitions of lrintl, llrintl on various platforms.

Add (newly added): expm1l log1pl log2l lgammal tgammal
so that the library gets the correct symbols defined in it.

libm: Bump minor for new long double transcendental functions.
XXX Still missing: remquol, remainderl.

fix cross references (from Anon Ymous)

Correct history (Brad Smith)

libm: Add missing fma(3) and friends for sh3.

libm: Add dummy remainderl and remquol.
These are pretty bad -- these aren't transcendental functions; not
rocket science to make them correctly rounded -- but let's just make
sure they're available in libm for netbsd-10.
 1.238.2.1 02-Aug-2025  perseant Sync with HEAD
 1.3 11-Feb-1994  mycroft Clean up deleted files.
 1.2 14-Aug-1993  mycroft New code from uunet.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.1 30-Mar-2013  agc branches: 1.1.2;
file Version.map was initially added on branch agc-symver.
 1.1.2.1 30-Mar-2013  agc add versioning info for libm
 1.1 24-Jan-2024  christos add the script I used to convert the FreeBSD code.
 1.6 21-Nov-2024  riastradh bsd.lib.mk: Exclude MD linker-generated crud from expected symbols.

Not entirely sure why these symbols like _init/_fini/_end on x86 or
__bss_start__/__bss_end__ on aarch64 or _GLOBAL_OFFSET_TABLE_ on hppa
are exported at all, but it's something the linker is doing
automatically -- and unnecessarily, since libraries with explicit
version scripts don't export these -- and I'm not sure there's any way
to suppress it.

This way, most *.expsym lists can be machine-independent, which will
help keep maintenance burden much lower.

Currently we have only one *.expsym file for a library that _doesn't_
use a version script, libm -- fix that up to reduce the crud. (That
one already happens to have a lot of machine-dependent exports
because of differences in floating-point ABIs so the linker-generated
MD symbol crud wasn't much more of a maintenance burden in this case,
but this maintenance burden is why I haven't aggressively gone around
creating *.expsym files for other libraries.)
 1.5 09-Jun-2024  riastradh branches: 1.5.2;
libm: Factor out common expected symbol list.

Should substantially reduce the maintenance burden.
 1.4 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.3 08-May-2024  riastradh libm: Don't export symbol `pio4' from s_cosl.c.

This appears to have been added unintentionally in the recent FreeBSD
long double update, and never went out in a release.
 1.2 08-May-2024  riastradh libm: Do the weak alias dance for sin/cos/tan/finite{,f}.

tan isn't used internally, but it's confusing for it to be treated
differently from sin and cos, and there's no harm in doing the dance
unnecessarily.
 1.1 07-May-2024  riastradh libm: Memorialize expected symbols on various architectures.

This will reduce the risk of accidentally adding or deleting the
wrong symbols while fixing the aliases.

(This is all the architectures I have a build tree for handy; can add
other architectures like m68k later.)
 1.5.2.1 02-Aug-2025  perseant Sync with HEAD
 1.5 21-Nov-2024  riastradh bsd.lib.mk: Exclude MD linker-generated crud from expected symbols.

Not entirely sure why these symbols like _init/_fini/_end on x86 or
__bss_start__/__bss_end__ on aarch64 or _GLOBAL_OFFSET_TABLE_ on hppa
are exported at all, but it's something the linker is doing
automatically -- and unnecessarily, since libraries with explicit
version scripts don't export these -- and I'm not sure there's any way
to suppress it.

This way, most *.expsym lists can be machine-independent, which will
help keep maintenance burden much lower.

Currently we have only one *.expsym file for a library that _doesn't_
use a version script, libm -- fix that up to reduce the crud. (That
one already happens to have a lot of machine-dependent exports
because of differences in floating-point ABIs so the linker-generated
MD symbol crud wasn't much more of a maintenance burden in this case,
but this maintenance burden is why I haven't aggressively gone around
creating *.expsym files for other libraries.)
 1.4 09-Jun-2024  riastradh branches: 1.4.2;
libm: Factor out common expected symbol list.

Should substantially reduce the maintenance burden.
 1.3 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.2 08-May-2024  riastradh libm: Do the weak alias dance for sin/cos/tan/finite{,f}.

tan isn't used internally, but it's confusing for it to be treated
differently from sin and cos, and there's no harm in doing the dance
unnecessarily.
 1.1 07-May-2024  riastradh libm: Memorialize expected symbols on various architectures.

This will reduce the risk of accidentally adding or deleting the
wrong symbols while fixing the aliases.

(This is all the architectures I have a build tree for handy; can add
other architectures like m68k later.)
 1.4.2.1 02-Aug-2025  perseant Sync with HEAD
 1.5 09-Jun-2024  riastradh libm: Factor out common expected symbol list.

Should substantially reduce the maintenance burden.
 1.4 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.3 08-May-2024  riastradh libm: Split expected symbols on arm and mips by hard/soft float.
 1.2 08-May-2024  riastradh libm: Do the weak alias dance for sin/cos/tan/finite{,f}.

tan isn't used internally, but it's confusing for it to be treated
differently from sin and cos, and there's no harm in doing the dance
unnecessarily.
 1.1 07-May-2024  riastradh libm: Memorialize expected symbols on various architectures.

This will reduce the risk of accidentally adding or deleting the
wrong symbols while fixing the aliases.

(This is all the architectures I have a build tree for handy; can add
other architectures like m68k later.)
 1.3 09-Jun-2024  riastradh libm: Factor out common expected symbol list.

Should substantially reduce the maintenance burden.
 1.2 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.1 08-May-2024  riastradh libm: Split expected symbols on arm and mips by hard/soft float.
 1.3 21-Nov-2024  riastradh bsd.lib.mk: Exclude MD linker-generated crud from expected symbols.

Not entirely sure why these symbols like _init/_fini/_end on x86 or
__bss_start__/__bss_end__ on aarch64 or _GLOBAL_OFFSET_TABLE_ on hppa
are exported at all, but it's something the linker is doing
automatically -- and unnecessarily, since libraries with explicit
version scripts don't export these -- and I'm not sure there's any way
to suppress it.

This way, most *.expsym lists can be machine-independent, which will
help keep maintenance burden much lower.

Currently we have only one *.expsym file for a library that _doesn't_
use a version script, libm -- fix that up to reduce the crud. (That
one already happens to have a lot of machine-dependent exports
because of differences in floating-point ABIs so the linker-generated
MD symbol crud wasn't much more of a maintenance burden in this case,
but this maintenance burden is why I haven't aggressively gone around
creating *.expsym files for other libraries.)
 1.2 16-Jul-2024  riastradh libm: Fix log-related symbol aliases.

- Do the weak alias dance for log, log2, log10, log1p, and their
f/l variants.

(Not strictly necessary for log2 and log10 since nothing in the
math library itself uses them -- only a computer scientist would
use log2 and only an engineer would use log10 -- but let's just do
it the same for all our forestry.)

- Provide long double aliases on vax.

- Sprinkle RCS ids.
 1.1 09-Jun-2024  riastradh branches: 1.1.2;
libm: Factor out common expected symbol list.

Should substantially reduce the maintenance burden.
 1.1.2.1 02-Aug-2025  perseant Sync with HEAD
 1.1 09-Jun-2024  riastradh libm: Factor out common expected symbol list.

Should substantially reduce the maintenance burden.
 1.6 15-Feb-2025  tsutsui libm: Also add fma(3) and variants to expected symbols for hppa.
 1.5 21-Nov-2024  riastradh bsd.lib.mk: Exclude MD linker-generated crud from expected symbols.

Not entirely sure why these symbols like _init/_fini/_end on x86 or
__bss_start__/__bss_end__ on aarch64 or _GLOBAL_OFFSET_TABLE_ on hppa
are exported at all, but it's something the linker is doing
automatically -- and unnecessarily, since libraries with explicit
version scripts don't export these -- and I'm not sure there's any way
to suppress it.

This way, most *.expsym lists can be machine-independent, which will
help keep maintenance burden much lower.

Currently we have only one *.expsym file for a library that _doesn't_
use a version script, libm -- fix that up to reduce the crud. (That
one already happens to have a lot of machine-dependent exports
because of differences in floating-point ABIs so the linker-generated
MD symbol crud wasn't much more of a maintenance burden in this case,
but this maintenance burden is why I haven't aggressively gone around
creating *.expsym files for other libraries.)
 1.4 09-Jun-2024  riastradh branches: 1.4.2;
libm: Factor out common expected symbol list.

Should substantially reduce the maintenance burden.
 1.3 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.2 08-May-2024  riastradh libm: Do the weak alias dance for sin/cos/tan/finite{,f}.

tan isn't used internally, but it's confusing for it to be treated
differently from sin and cos, and there's no harm in doing the dance
unnecessarily.
 1.1 07-May-2024  riastradh libm: Memorialize expected symbols on various architectures.

This will reduce the risk of accidentally adding or deleting the
wrong symbols while fixing the aliases.

(This is all the architectures I have a build tree for handy; can add
other architectures like m68k later.)
 1.4.2.1 02-Aug-2025  perseant Sync with HEAD
 1.6 21-Nov-2024  riastradh bsd.lib.mk: Exclude MD linker-generated crud from expected symbols.

Not entirely sure why these symbols like _init/_fini/_end on x86 or
__bss_start__/__bss_end__ on aarch64 or _GLOBAL_OFFSET_TABLE_ on hppa
are exported at all, but it's something the linker is doing
automatically -- and unnecessarily, since libraries with explicit
version scripts don't export these -- and I'm not sure there's any way
to suppress it.

This way, most *.expsym lists can be machine-independent, which will
help keep maintenance burden much lower.

Currently we have only one *.expsym file for a library that _doesn't_
use a version script, libm -- fix that up to reduce the crud. (That
one already happens to have a lot of machine-dependent exports
because of differences in floating-point ABIs so the linker-generated
MD symbol crud wasn't much more of a maintenance burden in this case,
but this maintenance burden is why I haven't aggressively gone around
creating *.expsym files for other libraries.)
 1.5 09-Jun-2024  riastradh branches: 1.5.2;
libm: Factor out common expected symbol list.

Should substantially reduce the maintenance burden.
 1.4 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.3 08-May-2024  riastradh libm: Do the weak alias dance for sin/cos/tan/finite{,f}.

tan isn't used internally, but it's confusing for it to be treated
differently from sin and cos, and there's no harm in doing the dance
unnecessarily.
 1.2 08-May-2024  riastradh libm/arch/i387: Do the weak alias dance for finite and finitef.

These are used internally by some things.
 1.1 07-May-2024  riastradh libm: Memorialize expected symbols on various architectures.

This will reduce the risk of accidentally adding or deleting the
wrong symbols while fixing the aliases.

(This is all the architectures I have a build tree for handy; can add
other architectures like m68k later.)
 1.5.2.1 02-Aug-2025  perseant Sync with HEAD
 1.5 21-Nov-2024  riastradh bsd.lib.mk: Exclude MD linker-generated crud from expected symbols.

Not entirely sure why these symbols like _init/_fini/_end on x86 or
__bss_start__/__bss_end__ on aarch64 or _GLOBAL_OFFSET_TABLE_ on hppa
are exported at all, but it's something the linker is doing
automatically -- and unnecessarily, since libraries with explicit
version scripts don't export these -- and I'm not sure there's any way
to suppress it.

This way, most *.expsym lists can be machine-independent, which will
help keep maintenance burden much lower.

Currently we have only one *.expsym file for a library that _doesn't_
use a version script, libm -- fix that up to reduce the crud. (That
one already happens to have a lot of machine-dependent exports
because of differences in floating-point ABIs so the linker-generated
MD symbol crud wasn't much more of a maintenance burden in this case,
but this maintenance burden is why I haven't aggressively gone around
creating *.expsym files for other libraries.)
 1.4 09-Jun-2024  riastradh branches: 1.4.2;
libm: Factor out common expected symbol list.

Should substantially reduce the maintenance burden.
 1.3 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.2 08-May-2024  riastradh libm: Do the weak alias dance for sin/cos/tan/finite{,f}.

tan isn't used internally, but it's confusing for it to be treated
differently from sin and cos, and there's no harm in doing the dance
unnecessarily.
 1.1 07-May-2024  riastradh libm: Memorialize expected symbols on various architectures.

This will reduce the risk of accidentally adding or deleting the
wrong symbols while fixing the aliases.

(This is all the architectures I have a build tree for handy; can add
other architectures like m68k later.)
 1.4.2.1 02-Aug-2025  perseant Sync with HEAD
 1.2 16-Jul-2024  riastradh libm: Fix log-related symbol aliases.

- Do the weak alias dance for log, log2, log10, log1p, and their
f/l variants.

(Not strictly necessary for log2 and log10 since nothing in the
math library itself uses them -- only a computer scientist would
use log2 and only an engineer would use log10 -- but let's just do
it the same for all our forestry.)

- Provide long double aliases on vax.

- Sprinkle RCS ids.
 1.1 09-Jun-2024  riastradh branches: 1.1.2;
libm: Factor out common expected symbol list.

Should substantially reduce the maintenance burden.
 1.1.2.1 02-Aug-2025  perseant Sync with HEAD
 1.7 21-Nov-2024  riastradh bsd.lib.mk: Exclude MD linker-generated crud from expected symbols.

Not entirely sure why these symbols like _init/_fini/_end on x86 or
__bss_start__/__bss_end__ on aarch64 or _GLOBAL_OFFSET_TABLE_ on hppa
are exported at all, but it's something the linker is doing
automatically -- and unnecessarily, since libraries with explicit
version scripts don't export these -- and I'm not sure there's any way
to suppress it.

This way, most *.expsym lists can be machine-independent, which will
help keep maintenance burden much lower.

Currently we have only one *.expsym file for a library that _doesn't_
use a version script, libm -- fix that up to reduce the crud. (That
one already happens to have a lot of machine-dependent exports
because of differences in floating-point ABIs so the linker-generated
MD symbol crud wasn't much more of a maintenance burden in this case,
but this maintenance burden is why I haven't aggressively gone around
creating *.expsym files for other libraries.)
 1.6 09-Jun-2024  riastradh branches: 1.6.2;
libm: Factor out common expected symbol list.

Should substantially reduce the maintenance burden.
 1.5 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.4 08-May-2024  riastradh libm: Do the weak alias dance for sin/cos/tan/finite{,f}.

tan isn't used internally, but it's confusing for it to be treated
differently from sin and cos, and there's no harm in doing the dance
unnecessarily.
 1.3 08-May-2024  riastradh libm/arch/m68k: Do the weak alias dance for finite.

This is used internally.
 1.2 08-May-2024  riastradh libm/arch/mc68881: Do the weak alias dance for sin, cos, tan.

These are used internally.
 1.1 07-May-2024  riastradh libm: Add expected symbols for m68k.

Not sure if this'll work for all ports -- we might need to split it
up finer-grained by different m68k flavours -- but let's give it a
try and see what breaks.
 1.6.2.1 02-Aug-2025  perseant Sync with HEAD
 1.7 21-Nov-2024  riastradh bsd.lib.mk: Exclude MD linker-generated crud from expected symbols.

Not entirely sure why these symbols like _init/_fini/_end on x86 or
__bss_start__/__bss_end__ on aarch64 or _GLOBAL_OFFSET_TABLE_ on hppa
are exported at all, but it's something the linker is doing
automatically -- and unnecessarily, since libraries with explicit
version scripts don't export these -- and I'm not sure there's any way
to suppress it.

This way, most *.expsym lists can be machine-independent, which will
help keep maintenance burden much lower.

Currently we have only one *.expsym file for a library that _doesn't_
use a version script, libm -- fix that up to reduce the crud. (That
one already happens to have a lot of machine-dependent exports
because of differences in floating-point ABIs so the linker-generated
MD symbol crud wasn't much more of a maintenance burden in this case,
but this maintenance burden is why I haven't aggressively gone around
creating *.expsym files for other libraries.)
 1.6 09-Jun-2024  riastradh branches: 1.6.2;
libm: Factor out common expected symbol list.

Should substantially reduce the maintenance burden.
 1.5 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.4 09-May-2024  riastradh libm: Split expected symbols in mips further by 32-bit vs 64-bit.

32-bit has binary64 long double, same as double; 64-bit has binary128
long double, which is implemented with a few more symbols in libm
(which should maybe be hidden internal symbols, but let's get this
diagnostic measure in the build working before we think about
possibly deleting private symbols).
 1.3 08-May-2024  riastradh libm: Split expected symbols on arm and mips by hard/soft float.
 1.2 08-May-2024  riastradh libm: Do the weak alias dance for sin/cos/tan/finite{,f}.

tan isn't used internally, but it's confusing for it to be treated
differently from sin and cos, and there's no harm in doing the dance
unnecessarily.
 1.1 07-May-2024  riastradh libm: Memorialize expected symbols on various architectures.

This will reduce the risk of accidentally adding or deleting the
wrong symbols while fixing the aliases.

(This is all the architectures I have a build tree for handy; can add
other architectures like m68k later.)
 1.6.2.1 02-Aug-2025  perseant Sync with HEAD
 1.4 21-Nov-2024  riastradh bsd.lib.mk: Exclude MD linker-generated crud from expected symbols.

Not entirely sure why these symbols like _init/_fini/_end on x86 or
__bss_start__/__bss_end__ on aarch64 or _GLOBAL_OFFSET_TABLE_ on hppa
are exported at all, but it's something the linker is doing
automatically -- and unnecessarily, since libraries with explicit
version scripts don't export these -- and I'm not sure there's any way
to suppress it.

This way, most *.expsym lists can be machine-independent, which will
help keep maintenance burden much lower.

Currently we have only one *.expsym file for a library that _doesn't_
use a version script, libm -- fix that up to reduce the crud. (That
one already happens to have a lot of machine-dependent exports
because of differences in floating-point ABIs so the linker-generated
MD symbol crud wasn't much more of a maintenance burden in this case,
but this maintenance burden is why I haven't aggressively gone around
creating *.expsym files for other libraries.)
 1.3 09-Jun-2024  riastradh branches: 1.3.2;
libm: Factor out common expected symbol list.

Should substantially reduce the maintenance burden.
 1.2 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.1 09-May-2024  riastradh libm: Split expected symbols in mips further by 32-bit vs 64-bit.

32-bit has binary64 long double, same as double; 64-bit has binary128
long double, which is implemented with a few more symbols in libm
(which should maybe be hidden internal symbols, but let's get this
diagnostic measure in the build working before we think about
possibly deleting private symbols).
 1.3.2.1 02-Aug-2025  perseant Sync with HEAD
 1.4 21-Nov-2024  riastradh bsd.lib.mk: Exclude MD linker-generated crud from expected symbols.

Not entirely sure why these symbols like _init/_fini/_end on x86 or
__bss_start__/__bss_end__ on aarch64 or _GLOBAL_OFFSET_TABLE_ on hppa
are exported at all, but it's something the linker is doing
automatically -- and unnecessarily, since libraries with explicit
version scripts don't export these -- and I'm not sure there's any way
to suppress it.

This way, most *.expsym lists can be machine-independent, which will
help keep maintenance burden much lower.

Currently we have only one *.expsym file for a library that _doesn't_
use a version script, libm -- fix that up to reduce the crud. (That
one already happens to have a lot of machine-dependent exports
because of differences in floating-point ABIs so the linker-generated
MD symbol crud wasn't much more of a maintenance burden in this case,
but this maintenance burden is why I haven't aggressively gone around
creating *.expsym files for other libraries.)
 1.3 09-Jun-2024  riastradh branches: 1.3.2;
libm: Factor out common expected symbol list.

Should substantially reduce the maintenance burden.
 1.2 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.1 08-May-2024  riastradh libm: Split expected symbols on arm and mips by hard/soft float.
 1.3.2.1 02-Aug-2025  perseant Sync with HEAD
 1.5 21-Nov-2024  riastradh bsd.lib.mk: Exclude MD linker-generated crud from expected symbols.

Not entirely sure why these symbols like _init/_fini/_end on x86 or
__bss_start__/__bss_end__ on aarch64 or _GLOBAL_OFFSET_TABLE_ on hppa
are exported at all, but it's something the linker is doing
automatically -- and unnecessarily, since libraries with explicit
version scripts don't export these -- and I'm not sure there's any way
to suppress it.

This way, most *.expsym lists can be machine-independent, which will
help keep maintenance burden much lower.

Currently we have only one *.expsym file for a library that _doesn't_
use a version script, libm -- fix that up to reduce the crud. (That
one already happens to have a lot of machine-dependent exports
because of differences in floating-point ABIs so the linker-generated
MD symbol crud wasn't much more of a maintenance burden in this case,
but this maintenance burden is why I haven't aggressively gone around
creating *.expsym files for other libraries.)
 1.4 09-Jun-2024  riastradh branches: 1.4.2;
libm: Factor out common expected symbol list.

Should substantially reduce the maintenance burden.
 1.3 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.2 08-May-2024  riastradh libm: Do the weak alias dance for sin/cos/tan/finite{,f}.

tan isn't used internally, but it's confusing for it to be treated
differently from sin and cos, and there's no harm in doing the dance
unnecessarily.
 1.1 07-May-2024  riastradh libm: Memorialize expected symbols on various architectures.

This will reduce the risk of accidentally adding or deleting the
wrong symbols while fixing the aliases.

(This is all the architectures I have a build tree for handy; can add
other architectures like m68k later.)
 1.4.2.1 02-Aug-2025  perseant Sync with HEAD
 1.5 24-Nov-2024  riastradh libm: Fix powerpc64 expected symbols.

We no longer list the linker-generated ._init/._fini.

PR lib/58838: shared libraries in base should all have expsym lists
 1.4 21-Nov-2024  riastradh bsd.lib.mk: Exclude MD linker-generated crud from expected symbols.

Not entirely sure why these symbols like _init/_fini/_end on x86 or
__bss_start__/__bss_end__ on aarch64 or _GLOBAL_OFFSET_TABLE_ on hppa
are exported at all, but it's something the linker is doing
automatically -- and unnecessarily, since libraries with explicit
version scripts don't export these -- and I'm not sure there's any way
to suppress it.

This way, most *.expsym lists can be machine-independent, which will
help keep maintenance burden much lower.

Currently we have only one *.expsym file for a library that _doesn't_
use a version script, libm -- fix that up to reduce the crud. (That
one already happens to have a lot of machine-dependent exports
because of differences in floating-point ABIs so the linker-generated
MD symbol crud wasn't much more of a maintenance burden in this case,
but this maintenance burden is why I haven't aggressively gone around
creating *.expsym files for other libraries.)
 1.3 09-Jun-2024  riastradh branches: 1.3.2;
libm: Factor out common expected symbol list.

Should substantially reduce the maintenance burden.
 1.2 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.1 14-May-2024  riastradh libm: Fix powerpc64 build.

- Include fenv.c and fma(3) symbols (which just use the FMADD
instruction).
- Note the .FN symbols in libm for the asm functions. The FN symbols
point at the function _descriptors_; the .FN symbols point at the
first instruction of the function.

XXX Unclear why we have the .FN symbols for asm functions but not for
C functions. I'm not sure we should be exporting them.
 1.3.2.1 02-Aug-2025  perseant Sync with HEAD
 1.5 09-Jun-2024  riastradh libm: Factor out common expected symbol list.

Should substantially reduce the maintenance burden.
 1.4 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.3 08-May-2024  riastradh libm: Don't export symbol `pio4' from s_cosl.c.

This appears to have been added unintentionally in the recent FreeBSD
long double update, and never went out in a release.
 1.2 08-May-2024  riastradh libm: Do the weak alias dance for sin/cos/tan/finite{,f}.

tan isn't used internally, but it's confusing for it to be treated
differently from sin and cos, and there's no harm in doing the dance
unnecessarily.
 1.1 07-May-2024  riastradh libm: Memorialize expected symbols on various architectures.

This will reduce the risk of accidentally adding or deleting the
wrong symbols while fixing the aliases.

(This is all the architectures I have a build tree for handy; can add
other architectures like m68k later.)
 1.5 22-Nov-2024  riastradh libm: Fix sh3 expected symbols.

We no longer list the linker-generated __ctors/dtors and
__ctors/dtors_end.

PR lib/58838: shared libraries in base should all have expsym lists
 1.4 21-Nov-2024  riastradh bsd.lib.mk: Exclude MD linker-generated crud from expected symbols.

Not entirely sure why these symbols like _init/_fini/_end on x86 or
__bss_start__/__bss_end__ on aarch64 or _GLOBAL_OFFSET_TABLE_ on hppa
are exported at all, but it's something the linker is doing
automatically -- and unnecessarily, since libraries with explicit
version scripts don't export these -- and I'm not sure there's any way
to suppress it.

This way, most *.expsym lists can be machine-independent, which will
help keep maintenance burden much lower.

Currently we have only one *.expsym file for a library that _doesn't_
use a version script, libm -- fix that up to reduce the crud. (That
one already happens to have a lot of machine-dependent exports
because of differences in floating-point ABIs so the linker-generated
MD symbol crud wasn't much more of a maintenance burden in this case,
but this maintenance burden is why I haven't aggressively gone around
creating *.expsym files for other libraries.)
 1.3 09-Jun-2024  riastradh branches: 1.3.2;
libm: Factor out common expected symbol list.

Should substantially reduce the maintenance burden.
 1.2 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.1 08-May-2024  riastradh libm: Record expected symbols for sh3.
 1.3.2.1 02-Aug-2025  perseant Sync with HEAD
 1.5 21-Nov-2024  riastradh bsd.lib.mk: Exclude MD linker-generated crud from expected symbols.

Not entirely sure why these symbols like _init/_fini/_end on x86 or
__bss_start__/__bss_end__ on aarch64 or _GLOBAL_OFFSET_TABLE_ on hppa
are exported at all, but it's something the linker is doing
automatically -- and unnecessarily, since libraries with explicit
version scripts don't export these -- and I'm not sure there's any way
to suppress it.

This way, most *.expsym lists can be machine-independent, which will
help keep maintenance burden much lower.

Currently we have only one *.expsym file for a library that _doesn't_
use a version script, libm -- fix that up to reduce the crud. (That
one already happens to have a lot of machine-dependent exports
because of differences in floating-point ABIs so the linker-generated
MD symbol crud wasn't much more of a maintenance burden in this case,
but this maintenance burden is why I haven't aggressively gone around
creating *.expsym files for other libraries.)
 1.4 09-Jun-2024  riastradh branches: 1.4.2;
libm: Factor out common expected symbol list.

Should substantially reduce the maintenance burden.
 1.3 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.2 08-May-2024  riastradh libm: Do the weak alias dance for sin/cos/tan/finite{,f}.

tan isn't used internally, but it's confusing for it to be treated
differently from sin and cos, and there's no harm in doing the dance
unnecessarily.
 1.1 07-May-2024  riastradh libm: Memorialize expected symbols on various architectures.

This will reduce the risk of accidentally adding or deleting the
wrong symbols while fixing the aliases.

(This is all the architectures I have a build tree for handy; can add
other architectures like m68k later.)
 1.4.2.1 02-Aug-2025  perseant Sync with HEAD
 1.6 21-Nov-2024  riastradh bsd.lib.mk: Exclude MD linker-generated crud from expected symbols.

Not entirely sure why these symbols like _init/_fini/_end on x86 or
__bss_start__/__bss_end__ on aarch64 or _GLOBAL_OFFSET_TABLE_ on hppa
are exported at all, but it's something the linker is doing
automatically -- and unnecessarily, since libraries with explicit
version scripts don't export these -- and I'm not sure there's any way
to suppress it.

This way, most *.expsym lists can be machine-independent, which will
help keep maintenance burden much lower.

Currently we have only one *.expsym file for a library that _doesn't_
use a version script, libm -- fix that up to reduce the crud. (That
one already happens to have a lot of machine-dependent exports
because of differences in floating-point ABIs so the linker-generated
MD symbol crud wasn't much more of a maintenance burden in this case,
but this maintenance burden is why I haven't aggressively gone around
creating *.expsym files for other libraries.)
 1.5 09-Jun-2024  riastradh branches: 1.5.2;
libm: Factor out common expected symbol list.

Should substantially reduce the maintenance burden.
 1.4 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.3 08-May-2024  riastradh libm: Don't export symbol `pio4' from s_cosl.c.

This appears to have been added unintentionally in the recent FreeBSD
long double update, and never went out in a release.
 1.2 08-May-2024  riastradh libm: Do the weak alias dance for sin/cos/tan/finite{,f}.

tan isn't used internally, but it's confusing for it to be treated
differently from sin and cos, and there's no harm in doing the dance
unnecessarily.
 1.1 07-May-2024  riastradh libm: Memorialize expected symbols on various architectures.

This will reduce the risk of accidentally adding or deleting the
wrong symbols while fixing the aliases.

(This is all the architectures I have a build tree for handy; can add
other architectures like m68k later.)
 1.5.2.1 02-Aug-2025  perseant Sync with HEAD
 1.8 21-Nov-2024  riastradh bsd.lib.mk: Exclude MD linker-generated crud from expected symbols.

Not entirely sure why these symbols like _init/_fini/_end on x86 or
__bss_start__/__bss_end__ on aarch64 or _GLOBAL_OFFSET_TABLE_ on hppa
are exported at all, but it's something the linker is doing
automatically -- and unnecessarily, since libraries with explicit
version scripts don't export these -- and I'm not sure there's any way
to suppress it.

This way, most *.expsym lists can be machine-independent, which will
help keep maintenance burden much lower.

Currently we have only one *.expsym file for a library that _doesn't_
use a version script, libm -- fix that up to reduce the crud. (That
one already happens to have a lot of machine-dependent exports
because of differences in floating-point ABIs so the linker-generated
MD symbol crud wasn't much more of a maintenance burden in this case,
but this maintenance burden is why I haven't aggressively gone around
creating *.expsym files for other libraries.)
 1.7 09-Jun-2024  riastradh branches: 1.7.2;
libm: Factor out common expected symbol list.

Should substantially reduce the maintenance burden.
 1.6 09-Jun-2024  riastradh libm: Define lgamma_r, lgammal, lgammal_r on non-IEEE754.

Missing internal aliases _lgamma_r and _lgammal_r -- TBD.

PR 57881
 1.5 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.4 09-May-2024  riastradh libm: Add frexpf and frexpl on VAX.

These are trivial subroutines, not symbol aliases, for separate
reasons:

- frexpf has a different ABI from frexp (float vs double argument)

- frexp is defined in libc, not libm, so although long double is the
same as double, frexpl can't be an alias in libm of a symbol
defined in libc
 1.3 08-May-2024  riastradh libm: Add rintl, rintf to non-IEEE754 architectures.

While here, delete #ifdef to handle ns32k -- I don't think that's
gonna be relevant any time soon; in case you hadn't noticed, the
world has moved on from ns32k to vax by now.

PR 57881
 1.2 08-May-2024  riastradh libm/arch/vax: Do the weak alias dance for finite, finitef.

These are used internally.
 1.1 07-May-2024  riastradh libm: Memorialize expected symbols on various architectures.

This will reduce the risk of accidentally adding or deleting the
wrong symbols while fixing the aliases.

(This is all the architectures I have a build tree for handy; can add
other architectures like m68k later.)
 1.7.2.1 02-Aug-2025  perseant Sync with HEAD
 1.6 21-Nov-2024  riastradh bsd.lib.mk: Exclude MD linker-generated crud from expected symbols.

Not entirely sure why these symbols like _init/_fini/_end on x86 or
__bss_start__/__bss_end__ on aarch64 or _GLOBAL_OFFSET_TABLE_ on hppa
are exported at all, but it's something the linker is doing
automatically -- and unnecessarily, since libraries with explicit
version scripts don't export these -- and I'm not sure there's any way
to suppress it.

This way, most *.expsym lists can be machine-independent, which will
help keep maintenance burden much lower.

Currently we have only one *.expsym file for a library that _doesn't_
use a version script, libm -- fix that up to reduce the crud. (That
one already happens to have a lot of machine-dependent exports
because of differences in floating-point ABIs so the linker-generated
MD symbol crud wasn't much more of a maintenance burden in this case,
but this maintenance burden is why I haven't aggressively gone around
creating *.expsym files for other libraries.)
 1.5 09-Jun-2024  riastradh branches: 1.5.2;
libm: Factor out common expected symbol list.

Should substantially reduce the maintenance burden.
 1.4 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.3 08-May-2024  riastradh libm: Do the weak alias dance for sin/cos/tan/finite{,f}.

tan isn't used internally, but it's confusing for it to be treated
differently from sin and cos, and there's no harm in doing the dance
unnecessarily.
 1.2 08-May-2024  riastradh libm/arch/i387: Do the weak alias dance for finite and finitef.

These are used internally by some things.
 1.1 07-May-2024  riastradh libm: Memorialize expected symbols on various architectures.

This will reduce the risk of accidentally adding or deleting the
wrong symbols while fixing the aliases.

(This is all the architectures I have a build tree for handy; can add
other architectures like m68k later.)
 1.5.2.1 02-Aug-2025  perseant Sync with HEAD
 1.19 22-Jan-2024  kre Bump libm minor rev (libm.so.0.13 -> libm.so.0.14) after addition of
all the long double functions (with actual implementations).
 1.18 23-Mar-2023  riastradh libm: Bump minor for new long double transcendental functions.

XXX Still missing: remquol, remainderl.
 1.17 26-Sep-2017  maya branches: 1.17.14;
Mention wanting to remove isnanf too, reword
 1.16 13-May-2017  maya Belatedly bump minor.

lots of changes since -7 (libm.so.0.11), including:
new functions: llroundl, lroundl, erfl, erfcl
partial switch to freebsd catrig
 1.15 20-Jan-2017  maya branches: 1.15.2;
add a wishlist for a major bump. isinff and compatibility cabs.
 1.14 10-Oct-2014  christos branches: 1.14.2; 1.14.4;
Add the missing complex functions.
 1.13 26-Jul-2011  joerg branches: 1.13.20;
Add scalbnl to libm.
 1.12 06-Feb-2011  christos remquo{,f} from FreeBSD via Stathis Kamperis
 1.11 11-Jan-2010  christos branches: 1.11.2;
Add exp2 and exp2m
 1.10 04-Oct-2009  christos add f{min,max,dim}{,l,f} from FreeBSD
 1.9 20-Aug-2007  drochner branches: 1.9.14; 1.9.20;
Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.8 25-Mar-2006  xtraeme Add trunc() and truncf() C99 functions, from FreeBSD.
 1.7 15-Mar-2006  kleink Add nan(3), nanf(3), and nanl(3); welcome libm.so.0.4.
 1.6 21-Jul-2005  christos Add log2 and log2f from FreeBSD PR 83845
 1.5 01-Jul-2004  drochner bump libm minor version (functions added)
 1.4 25-Feb-1999  abs branches: 1.4.14;
Add a note to update src/distrib/sets/lists/base/shl.*, and add a missing
RCS Id.
 1.3 05-Jan-1998  perry RCSID Police.
 1.2 19-Aug-1994  jtc Bump minor number to account for additions of "float" versions of
the math functions.
 1.1 15-Feb-1994  jtc Compiled shared too.
 1.4.14.1 15-Jul-2004  he Apply patch (requested by junyoung in ticket #664):
Add C99 functions round(3) and roundf(3).
Bump the teeny version number for libm.
 1.9.20.1 21-Apr-2010  matt sync to netbsd-5
 1.9.14.1 12-Mar-2010  riz Pull up following revision(s) (requested by snj in ticket #1330):
lib/libm/man/fmax.3: revision 1.1-1.2
lib/libm/src/s_fmin.c: revision 1.1-1.2
lib/libm/src/s_fdim.c: revision 1.1
lib/libm/src/s_fmaxl.c: revision 1.1
lib/libm/Makefile: revision 1.90
include/math.h: revision 1.49
lib/libm/src/s_fmaxf.c: revision 1.1
lib/libm/src/s_fmax.c: revision 1.1
lib/libm/shlib_version: revision 1.10
distrib/sets/lists/base/md.sparc64: revision 1.63 (via patch)
distrib/sets/lists/base/shl.mi: revision 1.495 (via patch)
lib/libm/src/s_fminl.c: revision 1.1
distrib/sets/lists/comp/mi: revision 1.1317
lib/libm/man/fdim.3: revision 1.1-1.3
lib/libm/src/s_fminf.c: revision 1.1
distrib/sets/lists/base/md.amd64: revision 1.70 (via patch)
add f{min,max,dim}{,l,f} from FreeBSD
These functions are going to first appear in 5.1, not 6.0.
 1.11.2.1 08-Feb-2011  bouyer Sync with HEAD
 1.13.20.1 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.14.4.1 21-Apr-2017  bouyer Sync with HEAD
 1.14.2.1 20-Mar-2017  pgoyette Sync with HEAD
 1.15.2.1 19-May-2017  pgoyette Resolve conflicts from previous merge (all resulting from $NetBSD
keywork expansion)
 1.17.14.1 11-Aug-2023  martin Pull up following revision(s) (requested by riastradh in ticket #320):

lib/libm/src/ldbl_dummy.c: revision 1.3
distrib/sets/lists/debug/shl.mi: revision 1.303
lib/libm/src/ldbl_dummy.c: revision 1.4
lib/libm/src/namespace.h: revision 1.17
lib/libm/src/s_llrintl.c: revision 1.3
lib/libm/Makefile: revision 1.220
lib/libm/src/s_lrintl.c: revision 1.3
lib/libm/man/sincos.3: revision 1.2
lib/libm/man/math.3: revision 1.29
distrib/sets/lists/base/shl.mi: revision 1.946
lib/libm/shlib_version: revision 1.18

libm: Fill in more dummy long double transcendental functions.
This should cover everything from C99.

libm: Need <math.h> for __HAVE_LONG_DOUBLE.
Fixes missing definitions of lrintl, llrintl on various platforms.

Add (newly added): expm1l log1pl log2l lgammal tgammal
so that the library gets the correct symbols defined in it.

libm: Bump minor for new long double transcendental functions.
XXX Still missing: remquol, remainderl.

fix cross references (from Anon Ymous)

Correct history (Brad Smith)

libm: Add missing fma(3) and friends for sh3.

libm: Add dummy remainderl and remquol.
These are pretty bad -- these aren't transcendental functions; not
rocket science to make them correctly rounded -- but let's just make
sure they're available in libm for netbsd-10.
 1.1 10-Aug-2014  matt branches: 1.1.4;
Preliminary files for AARCH64 (64-bit ARM) support.
Enough for a distribution build.
 1.1.4.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.4.1 10-Aug-2014  tls file e_sqrt.S was added on branch tls-maxphys on 2014-08-20 00:02:18 +0000
 1.1 10-Aug-2014  matt branches: 1.1.4;
Preliminary files for AARCH64 (64-bit ARM) support.
Enough for a distribution build.
 1.1.4.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.4.1 10-Aug-2014  tls file e_sqrtf.S was added on branch tls-maxphys on 2014-08-20 00:02:18 +0000
 1.7 06-May-2024  skrll Trailing whitespace
 1.6 25-Aug-2019  riastradh Fix feraiseexcept.

- Don't touch the trap flags (though on all ARMv8 I know they have no
effect anyway).

- Don't clear any existing raised exception flags; just add to them.

XXX atf test
XXX pullup-9
 1.5 25-Aug-2019  riastradh Fix fesetenv and feupdateenv.

- fesetenv is supposed to set the stored rounding mode (and stored trap
settings, but they have no effect on any ARMv8 I know).

- feupdateenv is supposed to re-raise the exceptions that were raised
in the environment when it was called.

XXX atf test
XXX pullup-9
 1.4 07-Nov-2018  riastradh branches: 1.4.2;
When hardware subnormal support is available, disable flush-to-zero.

Similarly, when hardware NaN propagation is available, disable
default-NaN substitution.

This enables IEEE 754 semantics on any hardware that supports it by
default. Programs that want flush-to-zero or default-NaN substitution
can enable them explicitly.

ok ryo@
 1.3 22-Mar-2017  chs branches: 1.3.10; 1.3.12;
provide a common softfloat fenv implemenation and use it for softfloat builds.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
 1.2 27-Dec-2014  martin branches: 1.2.2; 1.2.4;
Fix consistent typo: it is FE_ALL_EXCEPT instead of FE_EXCEPT_ALL (this
went unnoticed as the undefined macro evaluated to 0 and the expression
was always used with ~)
 1.1 10-Aug-2014  matt branches: 1.1.4;
Preliminary files for AARCH64 (64-bit ARM) support.
Enough for a distribution build.
 1.1.4.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.4.1 10-Aug-2014  tls file fenv.c was added on branch tls-maxphys on 2014-08-20 00:02:18 +0000
 1.2.4.1 21-Apr-2017  bouyer Sync with HEAD
 1.2.2.1 26-Apr-2017  pgoyette Sync with HEAD
 1.3.12.2 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.3.12.1 10-Jun-2019  christos Sync with HEAD
 1.3.10.1 26-Nov-2018  pgoyette Sync with HEAD, resolve a couple of conflicts
 1.4.2.1 08-Dec-2019  martin Pull up following revision(s) (requested by riastradh in ticket #507):

lib/libm/arch/aarch64/fenv.c: revision 1.5
lib/libm/arch/aarch64/fenv.c: revision 1.6

Fix fesetenv and feupdateenv.
- fesetenv is supposed to set the stored rounding mode (and stored trap
settings, but they have no effect on any ARMv8 I know).
- feupdateenv is supposed to re-raise the exceptions that were raised
in the environment when it was called.
XXX atf test
XXX pullup-9

Fix feraiseexcept.
- Don't touch the trap flags (though on all ARMv8 I know they have no
effect anyway).
- Don't clear any existing raised exception flags; just add to them.
XXX atf test
XXX pullup-9
 1.1 10-Aug-2014  matt branches: 1.1.4;
Preliminary files for AARCH64 (64-bit ARM) support.
Enough for a distribution build.
 1.1.4.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.4.1 10-Aug-2014  tls file s_fabsf.S was added on branch tls-maxphys on 2014-08-20 00:02:18 +0000
 1.1 10-Aug-2014  matt branches: 1.1.4;
Preliminary files for AARCH64 (64-bit ARM) support.
Enough for a distribution build.
 1.1.4.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.4.1 10-Aug-2014  tls file s_fma.S was added on branch tls-maxphys on 2014-08-20 00:02:18 +0000
 1.1 10-Aug-2014  matt branches: 1.1.4;
Preliminary files for AARCH64 (64-bit ARM) support.
Enough for a distribution build.
 1.1.4.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.4.1 10-Aug-2014  tls file s_fmaf.S was added on branch tls-maxphys on 2014-08-20 00:02:18 +0000
 1.1 10-Aug-2014  matt branches: 1.1.4;
Preliminary files for AARCH64 (64-bit ARM) support.
Enough for a distribution build.
 1.1.4.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.4.1 10-Aug-2014  tls file s_fmax.S was added on branch tls-maxphys on 2014-08-20 00:02:18 +0000
 1.1 10-Aug-2014  matt branches: 1.1.4;
Preliminary files for AARCH64 (64-bit ARM) support.
Enough for a distribution build.
 1.1.4.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.4.1 10-Aug-2014  tls file s_fmaxf.S was added on branch tls-maxphys on 2014-08-20 00:02:18 +0000
 1.1 10-Aug-2014  matt branches: 1.1.4;
Preliminary files for AARCH64 (64-bit ARM) support.
Enough for a distribution build.
 1.1.4.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.4.1 10-Aug-2014  tls file s_fmin.S was added on branch tls-maxphys on 2014-08-20 00:02:18 +0000
 1.1 10-Aug-2014  matt branches: 1.1.4;
Preliminary files for AARCH64 (64-bit ARM) support.
Enough for a distribution build.
 1.1.4.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.4.1 10-Aug-2014  tls file s_fminf.S was added on branch tls-maxphys on 2014-08-20 00:02:18 +0000
 1.3 30-Dec-2017  martin Fix usage of sysarch(ALPHA_FPGETMASK)
 1.2 22-Mar-2017  chs branches: 1.2.4;
provide a common softfloat fenv implemenation and use it for softfloat builds.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
 1.1 23-Aug-2016  christos branches: 1.1.2; 1.1.4;
fenv.h for alpha
 1.1.4.1 21-Apr-2017  bouyer Sync with HEAD
 1.1.2.3 26-Apr-2017  pgoyette Sync with HEAD
 1.1.2.2 14-Sep-2016  pgoyette Sync with HEAD
 1.1.2.1 23-Aug-2016  pgoyette file fenv.c was added on branch pgoyette-localcount on 2016-09-14 03:04:16 +0000
 1.2.4.1 26-Feb-2018  snj Pull up following revision(s) (requested by maya in ticket #583):
lib/libm/arch/alpha/fenv.c: 1.3
Fix usage of sysarch(ALPHA_FPGETMASK)
 1.4 06-Jul-2021  thorpej Ensure that the stack is always 16-byte aligned by rounding sizes as needed.

All changes from rin@ except swapcontext.S, which is from me (added
symbolic constants to make the code clearer).
 1.3 13-Oct-2004  drochner add licenses
 1.2 02-Jul-2004  drochner allocate stack space for temporary storage
 1.1 01-Jul-2004  drochner also provide an alpha assembler implemtation of lrint()
 1.7 15-Nov-2014  joerg It's copysign, not _copysign.
 1.6 15-Nov-2014  joerg Add copysignl aliases.
 1.5 28-Apr-2008  martin branches: 1.5.40;
Remove clause 3 and 4 from TNF licenses
 1.4 02-Jul-1999  simonb branches: 1.4.40;
More trailing white space.
 1.3 30-Jul-1997  jtc Fix files using old TNF copyright notice
 1.2 13-Aug-1996  thorpej Use <machine/asm.h>
 1.1 26-Jun-1996  jtc Alpha versions of copysign() and copysignf()
 1.4.40.1 18-May-2008  yamt sync with head.
 1.5.40.1 27-May-2015  msaitoh Pull up following revision(s) (requested by joerg in ticket #808):
lib/libm/arch/alpha/s_copysign.S: revision 1.6
lib/libm/arch/alpha/s_copysign.S: revision 1.7
lib/libm/arch/m68k/s_copysign.S: revision 1.8
lib/libm/arch/m68k/s_copysign.S: revision 1.9
- Add copysignl aliases.
- It's copysign, not _copysign.
 1.4 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.3 30-Jul-1997  jtc branches: 1.3.44;
Fix files using old TNF copyright notice
 1.2 13-Aug-1996  thorpej Use <machine/asm.h>
 1.1 26-Jun-1996  jtc Alpha versions of copysign() and copysignf()
 1.3.44.1 18-May-2008  yamt sync with head.
 1.1 03-Feb-2013  matt branches: 1.1.4; 1.1.10;
Add support for the ARM hardfloat instructions vsqrt and vabs.
 1.1.10.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.10.1 03-Feb-2013  yamt file e_sqrt.S was added on branch yamt-pagecache on 2014-05-22 11:36:56 +0000
 1.1.4.2 25-Feb-2013  tls resync with head
 1.1.4.1 03-Feb-2013  tls file e_sqrt.S was added on branch tls-maxphys on 2013-02-25 00:27:57 +0000
 1.1 03-Feb-2013  matt branches: 1.1.4; 1.1.10;
Add support for the ARM hardfloat instructions vsqrt and vabs.
 1.1.10.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.10.1 03-Feb-2013  yamt file e_sqrtf.S was added on branch yamt-pagecache on 2014-05-22 11:36:56 +0000
 1.1.4.2 25-Feb-2013  tls resync with head
 1.1.4.1 03-Feb-2013  tls file e_sqrtf.S was added on branch tls-maxphys on 2013-02-25 00:27:57 +0000
 1.9 08-May-2017  martin Complete the namespace dance
 1.8 08-May-2017  martin Add missing namespace.h include
 1.7 22-Mar-2017  chs branches: 1.7.2;
provide a common softfloat fenv implemenation and use it for softfloat builds.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
 1.6 29-Dec-2014  martin branches: 1.6.2; 1.6.4;
Fix exception status vs mask confusion, of course feenableexcept(),
fedisableexcept() and fegetexcept() all operate on the mask.
 1.5 28-Dec-2014  martin Add missing return in __SOFTFP__ variant, pointed out by htodd.
 1.4 27-Dec-2014  martin Add our common non standard extensions and fix typo (FE_EXCEPT_ALL ->
FE_ALL_EXCEPT).
 1.3 01-May-2013  matt branches: 1.3.2; 1.3.8;
Fix feclearexcept return value (should be 0).
 1.2 30-Apr-2013  matt Make this compile for earmhf
 1.1 28-Apr-2013  matt Add a C99 <fenv.h> implementation for arm.
 1.3.8.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.3.8.1 01-May-2013  yamt file fenv.c was added on branch yamt-pagecache on 2014-05-22 11:36:56 +0000
 1.3.2.2 23-Jun-2013  tls resync from head
 1.3.2.1 01-May-2013  tls file fenv.c was added on branch tls-maxphys on 2013-06-23 06:21:07 +0000
 1.6.4.1 21-Apr-2017  bouyer Sync with HEAD
 1.6.2.1 26-Apr-2017  pgoyette Sync with HEAD
 1.7.2.1 11-May-2017  pgoyette Sync with HEAD
 1.2 16-Mar-2017  chs lrint() and lrintf() are supposed to use the current rounding mode,
so use vcvtr rather than vcvt.
 1.1 11-Feb-2013  matt branches: 1.1.4; 1.1.10; 1.1.16; 1.1.20;
Add VFP versions of lrint/lrintf/lrintl for earmhf*
 1.1.20.1 21-Apr-2017  bouyer Sync with HEAD
 1.1.16.1 20-Mar-2017  pgoyette Sync with HEAD
 1.1.10.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.10.1 11-Feb-2013  yamt file lrint.S was added on branch yamt-pagecache on 2014-05-22 11:36:56 +0000
 1.1.4.2 25-Feb-2013  tls resync with head
 1.1.4.1 11-Feb-2013  tls file lrint.S was added on branch tls-maxphys on 2013-02-25 00:27:57 +0000
 1.2 16-Mar-2017  chs lrint() and lrintf() are supposed to use the current rounding mode,
so use vcvtr rather than vcvt.
 1.1 11-Feb-2013  matt branches: 1.1.4; 1.1.10; 1.1.16; 1.1.20;
Add VFP versions of lrint/lrintf/lrintl for earmhf*
 1.1.20.1 21-Apr-2017  bouyer Sync with HEAD
 1.1.16.1 20-Mar-2017  pgoyette Sync with HEAD
 1.1.10.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.10.1 11-Feb-2013  yamt file lrintf.S was added on branch yamt-pagecache on 2014-05-22 11:36:56 +0000
 1.1.4.2 25-Feb-2013  tls resync with head
 1.1.4.1 11-Feb-2013  tls file lrintf.S was added on branch tls-maxphys on 2013-02-25 00:27:57 +0000
 1.2 14-Feb-2013  matt branches: 1.2.4; 1.2.10;
Remove .fpu since it's not needed
 1.1 03-Feb-2013  matt Add support for the ARM hardfloat instructions vsqrt and vabs.
 1.2.10.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.2.10.1 14-Feb-2013  yamt file s_fabsf.S was added on branch yamt-pagecache on 2014-05-22 11:36:56 +0000
 1.2.4.2 25-Feb-2013  tls resync with head
 1.2.4.1 14-Feb-2013  tls file s_fabsf.S was added on branch tls-maxphys on 2013-02-25 00:27:57 +0000
 1.1 11-Feb-2013  matt branches: 1.1.4; 1.1.10;
Add fma/fmaf/fmal for arm hard float which uses the VFP vmla instruction.
 1.1.10.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.10.1 11-Feb-2013  yamt file s_fma.S was added on branch yamt-pagecache on 2014-05-22 11:36:56 +0000
 1.1.4.2 25-Feb-2013  tls resync with head
 1.1.4.1 11-Feb-2013  tls file s_fma.S was added on branch tls-maxphys on 2013-02-25 00:27:57 +0000
 1.1 11-Feb-2013  matt branches: 1.1.4; 1.1.10;
Add fma/fmaf/fmal for arm hard float which uses the VFP vmla instruction.
 1.1.10.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.10.1 11-Feb-2013  yamt file s_fmaf.S was added on branch yamt-pagecache on 2014-05-22 11:36:56 +0000
 1.1.4.2 25-Feb-2013  tls resync with head
 1.1.4.1 11-Feb-2013  tls file s_fmaf.S was added on branch tls-maxphys on 2013-02-25 00:27:57 +0000
 1.5 03-Sep-2021  andvar fix typos in comments, mainly s/extention/extension/ and s/sufficent/sufficient/
 1.4 22-Mar-2017  chs provide a common softfloat fenv implemenation and use it for softfloat builds.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
 1.3 20-Mar-2016  skrll branches: 1.3.2; 1.3.4;
Update {read,write}fpsr to work everywhere
 1.2 13-Jan-2015  martin branches: 1.2.2;
Simplify, now that rounding mode defines match the hardware bits.
 1.1 27-Dec-2014  martin fenv(3) support for hppa
 1.2.2.2 20-Jan-2015  snj Pull up following revision(s) (requested by martin in ticket #416):
distrib/sets/lists/comp/md.hppa: revision 1.3
include/fenv.h: revision 1.13 via patch
lib/libm/Makefile: revision 1.168
lib/libm/arch/hppa/fenv.c: revisions 1.1, 1.2
sys/arch/hppa/include/Makefile: revision 1.12
sys/arch/hppa/include/fenv.h: revisions 1.1, 1.2
sys/arch/hppa/include/ieeefp.h: revisions 1.5-1.7
tests/lib/libm/Makefile: revision 1.29 via patch
fenv(3) support for hppa
--
use unsigned over uint32_t so that this file works without stdint.h
being included before hand.
fixes mknative-gcc problems, and likely others.
--
Properly separate fenv.h and ieeefp.h by moving all fenv defines
over to the former.
Now that they are decoupled, make rounding modes match the hardware bits.
--
Simplify, now that rounding mode defines match the hardware bits.
 1.2.2.1 13-Jan-2015  snj file fenv.c was added on branch netbsd-7 on 2015-01-20 20:57:24 +0000
 1.3.4.1 21-Apr-2017  bouyer Sync with HEAD
 1.3.2.1 26-Apr-2017  pgoyette Sync with HEAD
 1.11 06-Jun-2008  ad Use a dummy assembly file so we won't try produce lint stuff.
 1.10 03-Jun-2008  ad - Fold libm387 into libm.
- Leave libm387 as an empty shell.
 1.9 25-Apr-2008  christos branches: 1.9.2;
avoid shadow variables, and enable lint.
 1.8 22-Mar-2006  drochner branches: 1.8.18;
merge libc/arch/{i386,x86_64}/gen/modf.S into one
(not quite a merge actually, just an #ifdef for now)
and build it in the i386 case (amd64 should work, just needs to be tested)
That way, a program linking against libm should get the optimized
version as expected.
 1.7 28-Jul-2005  drochner activate e_atan2f.S which was there forever but not built, noticed
by Joerg Sonnenberger
 1.6 21-Jul-2005  rpaulo Add i387 FPU routines for log2(3) and log2f(3).

ok christos@
 1.5 01-Jul-2004  drochner branches: 1.5.2;
provide an assembler implementation of lrint() for i386 and amd64
 1.4 19-Aug-2002  lukem Explicitly move setting of NOxxx and USE_SHLIBDIR to the top of the
Makefile (before including <bsd.own.mk>)
 1.3 28-Dec-2001  lukem * Add user-controlled mk.conf variables
- SHLIBDIR Location to install shared libraries if ${USE_SHLIBDIR}
is "yes". Defaults to "/usr/lib".

- USE_SHLIBDIR If "yes", install shared libraries in ${SHLIBDIR}
instead of ${LIBDIR}. Defaults to "no".
Sets ${_LIBSODIR} to the appropriate value.
This may be set by individual Makefiles as well.

- SHLINKDIR Location of shared linker. Defaults to "/usr/libexec".
If != "/usr/libexec", change the dynamic-linker
encoded in shared programs

* Set USE_SHLIBDIR for libraries used by /bin and /sbin:
libc libcrypt libcrypto libedit libipsec libkvm libm libmi387
libtermcap libutil libz

* If ${_LIBSODIR} != ${LIBDIR}, add symlinks from ${LIBDIR}/${LIB}.so*
to ${_LIBSODIR}/${LIB}.so* for compatibility.

* Always install /sbin/init statically (for now)


The net effect of these changes depends on how the variables are set:

1.) If nothing is set or changed, there is no change from the
current behaviour:
- Static /bin, /sbin, and bits of /usr/*
- Dynamic rest
- Shared linker is /usr/libexec/ld*so

2.) If the following make variables are set:
LDSTATIC=
SHLINKDIR=/lib
SHLIBDIR=/lib
Then the behaviour becomes:
- Dynamic tools
- .so libraries used by /bin and /sbin are installed to /lib,
with symlinks from /usr/lib/lib*so to -> /lib/lib*so
where appropriate
- Shared linker is /lib/ld*so

3.) As per 2.), but add the following variable:
USE_SHLIBDIR=yes
This forces all .so's to be instaleld in /lib (with compat
symlinks), not just those tagged by their Makefiles to be.
Again, compat symlinks are installed
 1.2 12-Dec-2001  tv Readability cleanups; MKfoo=no -> NOfoo.
 1.1 13-Dec-1999  christos branches: 1.1.2;
Makefile and shared library for libm387.
 1.1.2.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.5.2.1 14-Aug-2005  riz Pull up revision 1.7 via patch (requested by drochner in ticket #643):
activate e_atan2f.S which was there forever but not built, noticed
by Joerg Sonnenberger
 1.8.18.2 17-Jun-2008  yamt sync with head.
 1.8.18.1 18-May-2008  yamt sync with head.
 1.9.2.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.8 12-Sep-2013  joerg Pass PICFLAGS down to cc-as-as and use __PIC__ to decide if it is small
vs big PIC mode. Retire -DPIC and -DBIGPIC.
 1.7 18-Jun-2011  joerg branches: 1.7.2; 1.7.8;
Use correct stack register as noticed by christos
 1.6 18-Jun-2011  joerg SSE2 registers are only used for float and double arguments, so update
comment to reflect reality. Add some accessor macros for long double
arguments for i386 and x86_64.
 1.5 23-Jun-2008  drochner branches: 1.5.18;
-fix an obvious mistake in fpcw check
-replace ARG_DOUBLE_ONE_HALF by _MSW/_LSW because this reflects the
intention and also matches the terms used in C code,
also make the code where the fpcw overwrites the argument a bit
self-documenting
(this abstraction sucks because it forces to write inefficient code)
 1.4 23-Jun-2008  christos add macros for the upper half of the double arguments.
 1.3 22-Mar-2004  wiz branches: 1.3.32;
Typo fix, from skrueger at europe com.
 1.2 14-Sep-2003  fvdl Make log1p and log1pf work in shared libraries again.
 1.1 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.3.32.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.5.18.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.7.8.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.7.2.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.9 03-Mar-2014  dsl Drop in a fabs() after the fsqrt().
While it may seem pointless, it the rouding mode is set to round towards
minus infinity then acos(-1) calculates atan2(sqrt(1.0 - 1.0), -1) the subtract
generates -0.0 which sqrt() preserves.
atan2(-0, -1) is -pi, but acos(-1) is expected to be +pi.
This might 'fix' the test failures seen in some environments, but they
are not failing due to an obvously incorrent x87 rounding mode.
 1.8 26-Jul-2003  salo branches: 1.8.54; 1.8.60;
netbsd.org->NetBSD.org
 1.7 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.6 26-Sep-2000  kleink Make these idempotent as far as the FPU register stack is concerned.
 1.5 02-Jul-1999  simonb branches: 1.5.8;
More trailing white space.
 1.4 08-May-1995  jtc Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.5.8.1 26-Sep-2000  kleink Pull up rev. 1.6 (approved by thorpej):
Make these idempotent as far as the FPU register stack is concerned.
 1.8.60.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.8.54.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.7 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.6 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.5 26-Sep-2000  kleink Make these idempotent as far as the FPU register stack is concerned.
 1.4 08-May-1995  jtc branches: 1.4.16;
Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.4.16.1 26-Sep-2000  kleink Pull up rev. 1.5 (approved by thorpej):
Make these idempotent as far as the FPU register stack is concerned.
 1.6 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 08-May-1995  jtc Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 16-Feb-1994  jtc i387-specific math functions.
 1.3 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.2 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.1 08-May-1995  jtc i387 float version of atan2()
 1.14 23-Jun-2008  drochner -fix an obvious mistake in fpcw check
-replace ARG_DOUBLE_ONE_HALF by _MSW/_LSW because this reflects the
intention and also matches the terms used in C code,
also make the code where the fpcw overwrites the argument a bit
self-documenting
(this abstraction sucks because it forces to write inefficient code)
 1.13 23-Jun-2008  christos Share the amd64 and i386 exp versions. Fixes a problem with exp(-Inf) != 0.
 1.12 27-Feb-2002  christos branches: 1.12.34;
PR/15748: Ray Brownrigg: exp(log(0)) is broken.
Use FreeBSD's version. Handles inf/nan and rounding modes.
 1.11 19-Jun-2001  fvdl %rbp -> %rsp in 2 cases.
 1.10 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.9 26-Sep-2000  kleink Make these idempotent as far as the FPU register stack is concerned.
 1.8 02-Jul-1999  simonb branches: 1.8.8;
More trailing white space.
 1.7 03-Jul-1996  jtc use one less fp stack slot
 1.6 03-Jul-1996  jtc It's necessary to use 64 bit precision to avoid errors in the least
significant bit(s) (for some operands).
 1.5 25-Jun-1996  jtc Fix from Bruce Evans. Commited to FreeBSD earlier this month, but was
never forwarded to me :-(.

> Clean up the FP stack before returning. The i387 exp() leaked an FP
> register on its first call. Subsequent calls reused the register so
> the leak didn't accumulate.
 1.4 08-May-1995  jtc branches: 1.4.6;
Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.4.6.1 03-Jul-1996  jtc Pulled up from rev 1.7
 1.8.8.1 26-Sep-2000  kleink Pull up rev. 1.9 (approved by thorpej):
Make these idempotent as far as the FPU register stack is concerned.
 1.12.34.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.6 24-Jun-2008  drochner as in exp(), treat +/-Inf and NaN arguments specially, should fix
eg expf(-Inf) which was Nan previously
(We could avoid touching the i387 on amd64 in these cases, but we'd
need to bypass the ABI abstraction macros, so leave it the old way
for now.)
 1.5 26-Jul-2003  salo branches: 1.5.32;
netbsd.org->NetBSD.org
 1.4 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.3 26-Sep-2000  kleink Make these idempotent as far as the FPU register stack is concerned.
 1.2 02-Jul-1999  simonb branches: 1.2.8;
More trailing white space.
 1.1 03-Jul-1996  jtc Assembly versions of expf(), logf(),log10f(), scalbf(), expm1() and expm1f().
 1.2.8.1 26-Sep-2000  kleink Pull up rev. 1.3 (approved by thorpej):
Make these idempotent as far as the FPU register stack is concerned.
 1.5.32.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.7 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.6 25-Jun-2001  fvdl Oops, when I replaced sahf with a btw, I made it test the wrong bit
(2 vs. 10).
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 08-May-1995  jtc Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 04-Mar-1994  jtc More i387 libm support.
 1.6 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 08-May-1995  jtc Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.6 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 08-May-1995  jtc Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.3 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.2 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.1 03-Jul-1996  jtc Assembly versions of expf(), logf(),log10f(), scalbf(), expm1() and expm1f().
 1.1 21-Jul-2005  rpaulo Add i387 FPU routines for log2(3) and log2f(3).

ok christos@
 1.1 21-Jul-2005  rpaulo Add i387 FPU routines for log2(3) and log2f(3).

ok christos@
 1.4 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.3 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.2 06-Jul-1996  jtc Fix typo
 1.1 03-Jul-1996  jtc Assembly versions of expf(), logf(),log10f(), scalbf(), expm1() and expm1f().
 1.7 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.6 25-Jun-2001  fvdl 2 more bitnumber mistakes fixed while removing sahf.
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 08-May-1995  jtc Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 04-Mar-1994  jtc More i387 libm support.
 1.5 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.4 25-Jun-2001  fvdl 2 more bitnumber mistakes fixed while removing sahf.
 1.3 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.2 08-May-1995  jtc Id -> NetBSD
 1.1 03-May-1995  jtc Added i387 remainderf and sqrtf
 1.7 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.6 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.5 02-Jan-1999  kristerw The scalb* functions left data on the floting point register stack.
Remove it before leaving the function.

The solution is taken from OpenBSD.
 1.4 08-May-1995  jtc Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 12-Feb-1994  jtc More i387 math support, too bad we can't enable it
 1.3 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.2 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.1 03-Jul-1996  jtc Assembly versions of expf(), logf(),log10f(), scalbf(), expm1() and expm1f().
 1.6 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 08-May-1995  jtc Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.4 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.3 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.2 08-May-1995  jtc Id -> NetBSD
 1.1 03-May-1995  jtc Added i387 remainderf and sqrtf
 1.1 06-Jun-2008  ad branches: 1.1.2; 1.1.4;
Use a dummy assembly file so we won't try produce lint stuff.
 1.1.4.2 23-Jun-2008  wrstuden Add files to branch that were added on -current.

After this, all that's left of update is to merge some changes
that had conflicts.
 1.1.4.1 06-Jun-2008  wrstuden file empty.S was added on branch wrstuden-revivesa on 2008-06-23 05:02:11 +0000
 1.1.2.2 17-Jun-2008  yamt sync with head.
 1.1.2.1 06-Jun-2008  yamt file empty.S was added on branch yamt-pf42 on 2008-06-17 09:13:39 +0000
 1.2 06-Jun-2008  ad Use a dummy assembly file so we won't try produce lint stuff.
 1.1 04-Jun-2008  ad Forgot to add this yesterday.
 1.10 03-Sep-2021  andvar fix typos in comments, mainly s/extention/extension/ and s/sufficent/sufficient/
 1.9 25-Jan-2018  christos use named initializers
 1.8 22-Mar-2017  chs provide a common softfloat fenv implemenation and use it for softfloat builds.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
 1.7 17-Feb-2016  christos branches: 1.7.2; 1.7.4;
PR/50822: David Binderman: Fix copy length.
 1.6 11-Nov-2013  joerg Preserve the initial x87 control word in the global FP environment
in preparation for adjusting the default based on the main binary
version.
 1.5 29-May-2013  riastradh Fix sense of fegetexcept on x86.

Somehow I overlooked this when I fixed feenableexcept and
fedisableexcept last summer.

XXX pullup to 6
 1.4 04-Aug-2012  riastradh branches: 1.4.2;
Mask off the result of feenableexcept and fedisableexcept on x86.

These shouldn't return bits outside FE_ALL_EXCEPT.
 1.3 01-Aug-2010  taca branches: 1.3.6; 1.3.8;
Fix compile error.
 1.2 31-Jul-2010  joerg Fix merge error: drop machine from an older workaround for machine.sse
under compat32, drop the assertion, initialize oldlen.
 1.1 31-Jul-2010  joerg Add support for fenv.h interface for i386 and amd64.

Submitted by Stathis Kamperis as part of GSoC 2010 and ported from
FreeBSD.
 1.3.8.2 13-Jun-2013  msaitoh Pull up following revision(s) (requested by riastradh in ticket #899):
lib/libm/arch/i387/fenv.c: revision 1.5
lib/libm/arch/x86_64/fenv.c: revision 1.3-1.4
Fix amd64 feraiseexcept so that it actually traps.
The call to fwait got lost somewhere along the line; the i387 code has it.
Fix sense of fegetexcept on x86.
Somehow I overlooked this when I fixed feenableexcept and fedisableexcept
last summer.
 1.3.8.1 12-Aug-2012  martin branches: 1.3.8.1.4; 1.3.8.1.6;
Pull up following revision(s) (requested by riastradh in ticket #477):
lib/libm/arch/i387/fenv.c: revision 1.4
lib/libm/arch/x86_64/fenv.c: revision 1.2
Mask off the result of feenableexcept and fedisableexcept on x86.
These shouldn't return bits outside FE_ALL_EXCEPT.
 1.3.8.1.6.1 14-Jun-2013  msaitoh Pull up following revision(s) (requested by riastradh in ticket #899):
lib/libm/arch/i387/fenv.c: revision 1.5
lib/libm/arch/x86_64/fenv.c: revision 1.3-1.4
Fix amd64 feraiseexcept so that it actually traps.
The call to fwait got lost somewhere along the line; the i387 code has it.
Fix sense of fegetexcept on x86.
Somehow I overlooked this when I fixed feenableexcept and fedisableexcept
last summer.
 1.3.8.1.4.1 14-Jun-2013  msaitoh Pull up following revision(s) (requested by riastradh in ticket #899):
lib/libm/arch/i387/fenv.c: revision 1.5
lib/libm/arch/x86_64/fenv.c: revision 1.3-1.4
Fix amd64 feraiseexcept so that it actually traps.
The call to fwait got lost somewhere along the line; the i387 code has it.
Fix sense of fegetexcept on x86.
Somehow I overlooked this when I fixed feenableexcept and fedisableexcept
last summer.
 1.3.6.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.3.6.1 30-Oct-2012  yamt sync with head
 1.4.2.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.4.2.1 23-Jun-2013  tls resync from head
 1.7.4.1 21-Apr-2017  bouyer Sync with HEAD
 1.7.2.1 26-Apr-2017  pgoyette Sync with HEAD
 1.2 13-Oct-2004  drochner add licenses
 1.1 01-Jul-2004  drochner provide an assembler implementation of lrint() for i386 and amd64
 1.1 24-Nov-2024  riastradh branches: 1.1.4;
libm387: Add (intentionally empty!) exported symbol list.

This library has been an empty stub since 2008, probably won't serve
any useful purpose in the future, but let's make sure it doesn't
accidentally sprout anything.

PR lib/58838: shared libraries in base should all have expsym lists
 1.1.4.2 02-Aug-2025  perseant Sync with HEAD
 1.1.4.1 24-Nov-2024  perseant file m387.expsym was added on branch perseant-exfatfs on 2025-08-02 05:54:50 +0000
 1.8 09-Jun-2024  riastradh libm: Sprinkle whitespace fixes and rcsids on inverse trig functions.

No functional change intended.
 1.7 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.6 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 08-May-1995  jtc Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 12-Feb-1994  jtc More i387 math support, too bad we can't enable it
 1.7 09-Jun-2024  riastradh libm: Sprinkle whitespace fixes and rcsids on inverse trig functions.

No functional change intended.
 1.6 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.5 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.4 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.3 08-May-1995  jtc Id -> NetBSD
 1.2 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.1 19-Aug-1994  jtc Assembly language versions of some of the "float" functions.
 1.9 04-Apr-2022  andvar fix various typos, mainly in comments.
 1.8 18-Jun-2011  joerg Kill redundant ;
 1.7 26-Jul-2003  salo branches: 1.7.52;
netbsd.org->NetBSD.org
 1.6 26-Mar-2002  fvdl Fix stack usage for temporary storage. From Stephen Ma in PR xsrc/15404.
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 08-May-1995  jtc branches: 1.4.16;
Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.4.16.1 28-Mar-2002  he Pull up revision 1.6 (requested by fvdl):
Fix stack usage so that a signal delivered in ceil() or floor()
no longer corrupts the stack.
 1.7.52.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.10 04-Apr-2022  andvar fix various typos, mainly in comments.
 1.9 18-Jun-2011  joerg Kill redundant ;
 1.8 16-Jul-2004  drochner branches: 1.8.46;
amd64: stack sanity, leave the return PC alone
 1.7 26-Jul-2003  salo branches: 1.7.2;
netbsd.org->NetBSD.org
 1.6 30-Mar-2002  fvdl Fix mistake in previous.
 1.5 26-Mar-2002  fvdl Fix stack usage for temporary storage. From Stephen Ma in PR xsrc/15404.
 1.4 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.3 08-May-1995  jtc branches: 1.3.16;
Id -> NetBSD
 1.2 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.1 19-Aug-1994  jtc Assembly language versions of some of the "float" functions.
 1.3.16.2 30-Mar-2002  he Pull up revision 1.6 (requested by fvdl):
Fix stack usage so that a signal delivered in ceil() or floor()
no longer corrupts the stack.
(This corrects an error in the earlier pull-up.)
 1.3.16.1 28-Mar-2002  he Pull up revision 1.5 (requested by fvdl):
Fix stack usage so that a signal delivered in ceil() or floor()
no longer corrupts the stack.
 1.7.2.1 19-Jul-2004  tron Pull up revision 1.8 (requested by drochner in ticket #679):
amd64: stack sanity, leave the return PC alone
 1.8.46.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.7 18-Jun-2011  joerg Switch to SSE code, since our gas supports it now.
 1.6 26-Jul-2003  salo branches: 1.6.52;
netbsd.org->NetBSD.org
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 08-May-1995  jtc Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 12-Feb-1994  jtc More i387 math support, too bad we can't enable it
 1.6.52.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.7 21-Jun-2011  joerg Actually used SSE branch. Noticed by enami@
 1.6 18-Jun-2011  joerg Switch to SSE code, since our gas supports it now.
 1.5 26-Jul-2003  salo branches: 1.5.52;
netbsd.org->NetBSD.org
 1.4 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.3 08-May-1995  jtc Id -> NetBSD
 1.2 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.1 19-Aug-1994  jtc Assembly language versions of some of the "float" functions.
 1.5.52.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.9 26-Apr-2019  maya Remove unused 387 implementations.

These were removed from the build for being wrong, but the implementation
stayed around. This is confusing, we have the attic for old code,
let's delete the unused implementations.
 1.8 26-Jul-2003  salo branches: 1.8.96;
netbsd.org->NetBSD.org
 1.7 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 08-May-1995  jtc Id -> NetBSD
 1.4 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.3 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.2 18-Feb-1994  jtc Optimize the common case (theta < 2^63).
 1.1 16-Feb-1994  jtc i387-specific math functions.
 1.8.96.1 10-Jun-2019  christos Sync with HEAD
 1.7 26-Apr-2019  maya Remove unused 387 implementations.

These were removed from the build for being wrong, but the implementation
stayed around. This is confusing, we have the attic for old code,
let's delete the unused implementations.
 1.6 26-Jul-2003  salo branches: 1.6.96;
netbsd.org->NetBSD.org
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 02-Jul-1999  simonb More trailing white space.
 1.3 08-May-1995  jtc Id -> NetBSD
 1.2 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.1 19-Aug-1994  jtc Assembly language versions of some of the "float" functions.
 1.6.96.1 10-Jun-2019  christos Sync with HEAD
 1.2 03-Jul-1996  jtc this simple adaptation exp() does not work
 1.1 03-Jul-1996  jtc Assembly versions of expf(), logf(),log10f(), scalbf(), expm1() and expm1f().
 1.2 03-Jul-1996  jtc this simple adaptation exp() does not work
 1.1 03-Jul-1996  jtc Assembly versions of expf(), logf(),log10f(), scalbf(), expm1() and expm1f().
 1.8 08-May-2024  riastradh libm/arch/i387: Do the weak alias dance for finite and finitef.

These are used internally by some things.
 1.7 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.6 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.5 04-Jun-1996  jtc Use setne instead of setnel, new versions of gas balk at the bad mnemonic.
Wrong mask was used in s_finitef.S.
 1.4 08-May-1995  jtc branches: 1.4.6;
Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 12-Feb-1994  jtc More i387 math support, too bad we can't enable it
 1.4.6.1 04-Jun-1996  jtc Pull up changes from vers 1.5
 1.7 08-May-2024  riastradh libm/arch/i387: Do the weak alias dance for finite and finitef.

These are used internally by some things.
 1.6 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 04-Jun-1996  jtc Use setne instead of setnel, new versions of gas balk at the bad mnemonic.
Wrong mask was used in s_finitef.S.
 1.3 09-May-1995  jtc branches: 1.3.6;
Id -> NetBSD
 1.2 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.1 19-Aug-1994  jtc Assembly language versions of some of the "float" functions.
 1.3.6.1 04-Jun-1996  jtc Pull up changes from vers 1.4
 1.10 04-Apr-2022  andvar fix various typos, mainly in comments.
 1.9 18-Jun-2011  joerg Kill redundant ;
 1.8 26-Jul-2003  salo branches: 1.8.52;
netbsd.org->NetBSD.org
 1.7 26-Mar-2002  fvdl Fix stack usage for temporary storage. From Stephen Ma in PR xsrc/15404.
 1.6 19-Jun-2001  fvdl %rbp -> %rsp in 2 cases.
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 09-May-1995  jtc branches: 1.4.16;
Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.4.16.1 28-Mar-2002  he Pull up revision 1.7 (requested by fvdl):
Fix stack usage so that a signal delivered in ceil() or floor()
no longer corrupts the stack.
 1.8.52.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.9 04-Apr-2022  andvar fix various typos, mainly in comments.
 1.8 18-Jun-2011  joerg Kill redundant ;
 1.7 16-Jul-2004  drochner branches: 1.7.46;
amd64: stack sanity, leave the return PC alone
 1.6 26-Jul-2003  salo branches: 1.6.2;
netbsd.org->NetBSD.org
 1.5 26-Mar-2002  fvdl Fix stack usage for temporary storage. From Stephen Ma in PR xsrc/15404.
 1.4 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.3 09-May-1995  jtc branches: 1.3.16;
Id -> NetBSD
 1.2 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.1 19-Aug-1994  jtc Assembly language versions of some of the "float" functions.
 1.3.16.1 28-Mar-2002  he Pull up revision 1.5 (requested by fvdl):
Fix stack usage so that a signal delivered in ceil() or floor()
no longer corrupts the stack.
 1.6.2.1 19-Jul-2004  tron Pull up revision 1.7 (requested by drochner in ticket #679):
amd64: stack sanity, leave the return PC alone
 1.7.46.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.8 26-Apr-2019  maya Remove unused 387 implementations.

These were removed from the build for being wrong, but the implementation
stayed around. This is confusing, we have the attic for old code,
let's delete the unused implementations.
 1.7 26-Jul-2003  salo branches: 1.7.96;
netbsd.org->NetBSD.org
 1.6 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.5 12-Oct-1995  jtc Fix from Jochen Pohl, i387 version of ilogb didn't set up the stack
frame correctly (PR #1590).
 1.4 09-May-1995  jtc branches: 1.4.2;
Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 18-Feb-1994  jtc i387 specific ilogb()
 1.4.2.1 22-Oct-1995  pk Update from trunk
 1.7.96.1 10-Jun-2019  christos Sync with HEAD
 1.7 26-Apr-2019  maya Remove unused 387 implementations.

These were removed from the build for being wrong, but the implementation
stayed around. This is confusing, we have the attic for old code,
let's delete the unused implementations.
 1.6 26-Jul-2003  salo branches: 1.6.96;
netbsd.org->NetBSD.org
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 22-Oct-1995  pk Setup stack-frame correctly (same as s_ilogb.S).
 1.3 09-May-1995  jtc branches: 1.3.2;
Id -> NetBSD
 1.2 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.1 19-Aug-1994  jtc Assembly language versions of some of the "float" functions.
 1.3.2.1 22-Oct-1995  pk Update from trunk
 1.6.96.1 10-Jun-2019  christos Sync with HEAD
 1.1 28-Jul-2011  joerg Add ilogbl(3).
 1.14 16-Jul-2024  riastradh libm: Fix log-related symbol aliases.

- Do the weak alias dance for log, log2, log10, log1p, and their
f/l variants.

(Not strictly necessary for log2 and log10 since nothing in the
math library itself uses them -- only a computer scientist would
use log2 and only an engineer would use log10 -- but let's just do
it the same for all our forestry.)

- Provide long double aliases on vax.

- Sprinkle RCS ids.
 1.13 16-Sep-2003  wennmach branches: 1.13.108;
Avoid the PIC dance.
 1.12 14-Sep-2003  fvdl Make log1p and log1pf work in shared libraries again.
 1.11 10-Sep-2003  wennmach Reimplement s_log1p.S and s_log1pf.S to use the fyl2xp1 instruction
where necessary.

The log1p() function is provided to compute an accurate value of
log(1 + x), even for tiny values of x. The i387 FPU provides the
fyl2xp1 instruction for this purpose.

However, since the range of the fyl2xp1 function is limited to
-(1 - (sqrt(2) / 2)) <= x <= sqrt(2) - 1
(-0.292893 <= x <= 0.414214)
we need to check if the argument is in the valid range.

In order to reduce the cost for testing the range, we only use
fyl2xp1 if the argument is in the range
-0.25 <= x <= 0.25
which can be checked with just one conditional branch.

Fixes PR lib/22599 by Ray Brownrigg.
 1.10 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.9 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 09-May-1995  jtc Id -> NetBSD
 1.6 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.5 26-Aug-1994  jtc Remove lie (in a comment) about conversion between 80 bit ot 64 bit reals,
since we set up the fpu to do all calculations in 64 bit mode at this time.
 1.4 19-Aug-1994  jtc The fyl2xp1 instruction has a limited range:
-(1 - (sqrt(2) / 2)) <= x <= sqrt(2) - 1
so we can't use it.

Also, I'm not sure fyl2xp1's extra precision will
matter once the result is converted from extended
real (80 bits) back to double real (64 bits).
 1.3 18-Aug-1994  jtc Major Bogon: change %ebp to %esp, as I don't set up a stack frame.
 1.2 12-Mar-1994  jtc branches: 1.2.2;
Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 12-Feb-1994  jtc More i387 math support, too bad we can't enable it
 1.2.2.2 26-Aug-1994  mycroft update from trunk
 1.2.2.1 18-Aug-1994  mycroft update from trunk
 1.13.108.1 02-Aug-2025  perseant Sync with HEAD
 1.11 16-Jul-2024  riastradh libm: Fix log-related symbol aliases.

- Do the weak alias dance for log, log2, log10, log1p, and their
f/l variants.

(Not strictly necessary for log2 and log10 since nothing in the
math library itself uses them -- only a computer scientist would
use log2 and only an engineer would use log10 -- but let's just do
it the same for all our forestry.)

- Provide long double aliases on vax.

- Sprinkle RCS ids.
 1.10 16-Sep-2003  wennmach branches: 1.10.108;
Avoid the PIC dance.
 1.9 14-Sep-2003  fvdl Make log1p and log1pf work in shared libraries again.
 1.8 10-Sep-2003  wennmach Reimplement s_log1p.S and s_log1pf.S to use the fyl2xp1 instruction
where necessary.

The log1p() function is provided to compute an accurate value of
log(1 + x), even for tiny values of x. The i387 FPU provides the
fyl2xp1 instruction for this purpose.

However, since the range of the fyl2xp1 function is limited to
-(1 - (sqrt(2) / 2)) <= x <= sqrt(2) - 1
(-0.292893 <= x <= 0.414214)
we need to check if the argument is in the valid range.

In order to reduce the cost for testing the range, we only use
fyl2xp1 if the argument is in the range
-0.25 <= x <= 0.25
which can be checked with just one conditional branch.

Fixes PR lib/22599 by Ray Brownrigg.
 1.7 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.6 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.5 02-Jul-1999  simonb More trailing white space.
 1.4 09-May-1995  jtc Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 26-Aug-1994  jtc Remove lie (in a comment) about conversion between 80 bit ot 64 bit reals,
since we set up the fpu to do all calculations in 64 bit mode at this time.
 1.1 19-Aug-1994  jtc Assembly language versions of some of the "float" functions.
 1.10.108.1 02-Aug-2025  perseant Sync with HEAD
 1.6 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 09-May-1995  jtc Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 12-Feb-1994  jtc More i387 math support, too bad we can't enable it
 1.5 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.4 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.1 19-Aug-1994  jtc Assembly language versions of some of the "float" functions.
 1.1 03-Aug-2011  joerg Add logbl(3).
 1.2 26-Apr-2019  maya Remove unused 387 implementations.

These were removed from the build for being wrong, but the implementation
stayed around. This is confusing, we have the attic for old code,
let's delete the unused implementations.
 1.1 22-Mar-2006  drochner branches: 1.1.84;
merge libc/arch/{i386,x86_64}/gen/modf.S into one
(not quite a merge actually, just an #ifdef for now)
and build it in the i386 case (amd64 should work, just needs to be tested)
That way, a program linking against libm should get the optimized
version as expected.
 1.1.84.1 10-Jun-2019  christos Sync with HEAD
 1.6 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 09-May-1995  jtc Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.5 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.4 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.1 19-Aug-1994  jtc Assembly language versions of some of the "float" functions.
 1.1 05-May-2024  riastradh libm: New s_rintl.S for x86.

Prompted by PR lib/58054.
 1.2 28-Apr-2013  joerg Drop s_scalbnl.c (and s_scalbln.S as side effect) and provide scalbnl in
s_scalbln.c.
 1.1 27-Apr-2013  joerg Add a dummy s_scalbln.S to avoid the generic implementations of scalbln
and co on i386 and amd64. They are implemented next to scalbn and co.
 1.14 20-May-2013  joerg Fix ldexp aliases.
 1.13 20-May-2013  mlelstv Use correct alias for scalbn(). Tested by martin@.
 1.12 27-Apr-2013  joerg Add aliases for scalbn* to ldexp, they are identical for FLT_RADIX=2.
 1.11 27-Apr-2013  joerg Use the correct register on AMD64 for the argument.
 1.10 11-Feb-2013  matt Add long double version of x86 scalb functions
 1.9 23-Apr-2010  drochner branches: 1.9.6; 1.9.12;
-build ldexp/frexp/modf locally again rather than relying on libc
reaching over, to get things into a sane state,
-do the usual namespace protection game with scalbn(f) because it
is used internally
(more symbol renamings are necessary)

The weak_alias change for mc68881 is untested.
 1.8 21-Mar-2006  drochner The second argument is not a float, so the "abi.h" abstraction
doesn't work.
Open-code the argument handling instead.
Should fix the ldexp() bug reported by Brendon Costa in port-amd64.
 1.7 26-Jul-2003  salo branches: 1.7.4; 1.7.6; 1.7.10;
netbsd.org->NetBSD.org
 1.6 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.5 02-Jan-1999  kristerw The scalb* functions left data on the floting point register stack.
Remove it before leaving the function.

The solution is taken from OpenBSD.
 1.4 09-May-1995  jtc Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 12-Feb-1994  jtc More i387 math support, too bad we can't enable it
 1.7.10.1 26-Jul-2006  tron Pull up following revision(s) (requested by drochner in ticket #1236):
lib/libm/arch/i387/s_scalbn.S: revision 1.8
lib/libm/arch/i387/s_scalbnf.S: revision 1.7
The second argument is not a float, so the "abi.h" abstraction
doesn't work.
Open-code the argument handling instead.
Should fix the ldexp() bug reported by Brendon Costa in port-amd64.
 1.7.6.1 04-Apr-2006  tron Pull up following revision(s) (requested by drochner in ticket #1236):
lib/libm/arch/i387/s_scalbn.S: revision 1.8
lib/libm/arch/i387/s_scalbnf.S: revision 1.7
The second argument is not a float, so the "abi.h" abstraction
doesn't work.
Open-code the argument handling instead.
Should fix the ldexp() bug reported by Brendon Costa in port-amd64.
 1.7.4.1 21-Apr-2006  tron Pull up following revision(s) (requested by drochner in ticket #10412):
lib/libm/arch/i387/s_scalbn.S: revision 1.8
lib/libm/arch/i387/s_scalbnf.S: revision 1.7
The second argument is not a float, so the "abi.h" abstraction
doesn't work.
Open-code the argument handling instead.
Should fix the ldexp() bug reported by Brendon Costa in port-amd64.
 1.9.12.2 23-Jun-2013  tls resync from head
 1.9.12.1 25-Feb-2013  tls resync with head
 1.9.6.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.14 20-May-2013  mlelstv Correctly alias the ldexp* functions to the scalbn equivalents
that take an int argument.
 1.13 27-Apr-2013  joerg Add aliases for scalbn* to ldexp, they are identical for FLT_RADIX=2.
 1.12 27-Apr-2013  joerg Use the correct register on AMD64 for the argument.
 1.11 12-Feb-2013  matt Fix the strong alias correctly this time.
 1.10 11-Feb-2013  matt Fix strong_alias
 1.9 11-Feb-2013  matt Add long double version of x86 scalb functions
 1.8 23-Apr-2010  drochner branches: 1.8.6; 1.8.12;
-build ldexp/frexp/modf locally again rather than relying on libc
reaching over, to get things into a sane state,
-do the usual namespace protection game with scalbn(f) because it
is used internally
(more symbol renamings are necessary)

The weak_alias change for mc68881 is untested.
 1.7 21-Mar-2006  drochner The second argument is not a float, so the "abi.h" abstraction
doesn't work.
Open-code the argument handling instead.
Should fix the ldexp() bug reported by Brendon Costa in port-amd64.
 1.6 26-Jul-2003  salo branches: 1.6.4; 1.6.6; 1.6.10;
netbsd.org->NetBSD.org
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 02-Jan-1999  kristerw The scalb* functions left data on the floting point register stack.
Remove it before leaving the function.

The solution is taken from OpenBSD.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.1 19-Aug-1994  jtc Assembly language versions of some of the "float" functions.
 1.6.10.1 26-Jul-2006  tron Pull up following revision(s) (requested by drochner in ticket #1236):
lib/libm/arch/i387/s_scalbn.S: revision 1.8
lib/libm/arch/i387/s_scalbnf.S: revision 1.7
The second argument is not a float, so the "abi.h" abstraction
doesn't work.
Open-code the argument handling instead.
Should fix the ldexp() bug reported by Brendon Costa in port-amd64.
 1.6.6.1 04-Apr-2006  tron Pull up following revision(s) (requested by drochner in ticket #1236):
lib/libm/arch/i387/s_scalbn.S: revision 1.8
lib/libm/arch/i387/s_scalbnf.S: revision 1.7
The second argument is not a float, so the "abi.h" abstraction
doesn't work.
Open-code the argument handling instead.
Should fix the ldexp() bug reported by Brendon Costa in port-amd64.
 1.6.4.1 21-Apr-2006  tron Pull up following revision(s) (requested by drochner in ticket #10412):
lib/libm/arch/i387/s_scalbn.S: revision 1.8
lib/libm/arch/i387/s_scalbnf.S: revision 1.7
The second argument is not a float, so the "abi.h" abstraction
doesn't work.
Open-code the argument handling instead.
Should fix the ldexp() bug reported by Brendon Costa in port-amd64.
 1.8.12.2 23-Jun-2013  tls resync from head
 1.8.12.1 25-Feb-2013  tls resync with head
 1.8.6.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.5 20-May-2013  mlelstv Correctly alias the ldexp* functions to the scalbn equivalents
that take an int argument.
 1.4 27-Apr-2013  joerg Use the correct register on AMD64 for the argument.
 1.3 11-Feb-2013  christos provide ldexpl
 1.2 11-Feb-2013  matt Add long double version of x86 scalb functions
 1.1 26-Jul-2011  joerg branches: 1.1.2; 1.1.8;
Add optimised version of scalbnl for x86.
 1.1.8.2 23-Jun-2013  tls resync from head
 1.1.8.1 25-Feb-2013  tls resync with head
 1.1.2.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.6 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 09-May-1995  jtc Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 10-Mar-1994  jtc Added i387 version of significand().
 1.5 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.4 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.1 19-Aug-1994  jtc Assembly language versions of some of the "float" functions.
 1.8 26-Apr-2019  maya Remove unused 387 implementations.

These were removed from the build for being wrong, but the implementation
stayed around. This is confusing, we have the attic for old code,
let's delete the unused implementations.
 1.7 26-Jul-2003  salo branches: 1.7.96;
netbsd.org->NetBSD.org
 1.6 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.5 09-May-1995  jtc Id -> NetBSD
 1.4 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.3 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.2 18-Feb-1994  jtc Optimize the common case (theta < 2^63).
 1.1 16-Feb-1994  jtc i387-specific math functions.
 1.7.96.1 10-Jun-2019  christos Sync with HEAD
 1.6 26-Apr-2019  maya Remove unused 387 implementations.

These were removed from the build for being wrong, but the implementation
stayed around. This is confusing, we have the attic for old code,
let's delete the unused implementations.
 1.5 26-Jul-2003  salo branches: 1.5.96;
netbsd.org->NetBSD.org
 1.4 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.1 19-Aug-1994  jtc Assembly language versions of some of the "float" functions.
 1.5.96.1 10-Jun-2019  christos Sync with HEAD
 1.8 26-Apr-2019  maya Remove unused 387 implementations.

These were removed from the build for being wrong, but the implementation
stayed around. This is confusing, we have the attic for old code,
let's delete the unused implementations.
 1.7 26-Jul-2003  salo branches: 1.7.96;
netbsd.org->NetBSD.org
 1.6 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.5 09-May-1995  jtc Id -> NetBSD
 1.4 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.3 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.2 18-Feb-1994  jtc Optimize the common case (theta < 2^63).
 1.1 16-Feb-1994  jtc i387-specific math functions.
 1.7.96.1 10-Jun-2019  christos Sync with HEAD
 1.6 26-Apr-2019  maya Remove unused 387 implementations.

These were removed from the build for being wrong, but the implementation
stayed around. This is confusing, we have the attic for old code,
let's delete the unused implementations.
 1.5 26-Jul-2003  salo branches: 1.5.96;
netbsd.org->NetBSD.org
 1.4 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.1 19-Aug-1994  jtc Assembly language versions of some of the "float" functions.
 1.5.96.1 10-Jun-2019  christos Sync with HEAD
 1.2 21-Jul-2005  rpaulo Bump minor version for log2{,f}.
 1.1 13-Dec-1999  christos branches: 1.1.2;
Makefile and shared library for libm387.
 1.1.2.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.3 23-Mar-2017  chs branches: 1.3.2;
expose the BSD/linux fenv extensions in libm on ia64 too.
 1.2 22-Mar-2017  chs provide a common softfloat fenv implemenation and use it for softfloat builds.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
 1.1 23-Feb-2017  scole branches: 1.1.2;
Add fenv for ia64, imported from FreeBSD, compile tested only.
 1.1.2.3 26-Apr-2017  pgoyette Sync with HEAD
 1.1.2.2 20-Mar-2017  pgoyette Sync with HEAD
 1.1.2.1 23-Feb-2017  pgoyette file fenv.c was added on branch pgoyette-localcount on 2017-03-20 06:56:59 +0000
 1.3.2.2 23-Mar-2017  chs 503162
 1.3.2.1 23-Mar-2017  chs file fenv.c was added on branch bouyer-socketcan on 2017-03-23 18:27:30 +0000
 1.5 07-May-2024  riastradh libm/arch/m68060/Makefile: bsd.sys.mk -> bsd.host.mk

Somewhat belatedly, after bsd.sys.mk was forbidden to use directly
from Makefiles back in 2014.
 1.4 26-Oct-2003  lukem Use ${HOST_SH} instead of `sh'.

If necessary, pull in <bsd.sys.mk> to get the definition of HOST_SH;
Makefiles that pull in one of (most of) <bsd.*.mk> will get this anyway.
 1.3 19-Aug-2002  lukem Use ${NETBSDSRCDIR}/some/path instead of ${.CURDIR}/../../some/path (etc).
(Reduces make output by ~ 20%)
 1.2 14-Apr-2000  is Move original Motorola files to the "dist" subdirectory, in response
to PR 9626 by Kris Shannon.
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola 68060 floating point library support package based architecture
dependent code for libm. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.3 12-May-2000  is Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.2 21-Aug-1999  is Clarify instructions
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola 68060 floating point library support package based architecture
dependent code for libm. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.4 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.3 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.2 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.9 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.6 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.5 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.4 10-Nov-1999  thorpej Regen; add register prefixes.
 1.3 22-Aug-1999  is branches: 1.3.4;
*gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.3.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.16 07-May-2024  riastradh lib/libm/m68060/makeas.sh: Delimit symbols with END.

This way we get symbol sizes in the ELF output.
 1.15 07-May-2024  riastradh lib/libm/arch/m68060/makeas.sh: Create public weak aliases.

Use _foo for internal names, and weak alias foo when it's public like
sin/cos/tan.
 1.14 07-May-2024  riastradh lib/libm/m68060/makeas.sh: Use `set -eu' to detect script mistakes.

No functional change intended.
 1.13 07-May-2024  riastradh lib/libm/m68060/makeas.sh: Pass arguments to dummy more idiomatically.

No functional change intended.
 1.12 07-May-2024  riastradh lib/libm/m68060/makeas.sh: Use local for shell functions.

No functional change intended.
 1.11 07-May-2024  riastradh lib/libm/arch/m68060/makeas.sh: Indent sh blocks.

No functional change intended.
 1.10 07-May-2024  riastradh lib/libm/arch/m68060/makeas.sh: Strip the $ when emitting RCS id.
 1.9 07-May-2024  riastradh libm/arch/m68060/makeas.sh: Tag output with makeas.sh RCS id.

No functional change intended to the output -- only changes are to
comments.
 1.8 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.7 09-Nov-2009  is Move to two-clause license.
 1.6 16-May-2000  is Change libm-68060 internal, but file external labels (used for linkage between
wrapper functions and the Motorola code) to guarantee consistent protection
of the user namespace.
 1.5 12-May-2000  is Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.4 10-Nov-1999  thorpej Add register prefixes.
 1.3 22-Aug-1999  is branches: 1.3.4;
*gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola 68060 floating point library support package based architecture
dependent code for libm. Currently, easy functions only.
 1.3.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.3 16-May-2000  is Change libm-68060 internal, but file external labels (used for linkage between
wrapper functions and the Motorola code) to guarantee consistent protection
of the user namespace.
 1.2 12-May-2000  is Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola 68060 floating point library support package based architecture
dependent code for libm. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.8 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.7 07-May-2024  riastradh lib/libm/arch/m68060: regen
 1.6 06-Jan-2010  phx Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
 1.5 16-May-2000  is Regenerate, after changing internal label used for linkage to the wrapper
scripts.
 1.4 12-May-2000  is Regenerated files after this change:
Move each wrapper function to its own source file, such that redefining one
function doesn't give link errors when another one is pulled in from the
library.
Problem discovered by Klaus Klein.
 1.3 22-Aug-1999  is *gamma* need k_sin*/k_cos*
 1.2 21-Aug-1999  is wrap lines in Makefile.list
 1.1 19-Aug-1999  is branches: 1.1.1;
Initial revision
 1.1.1.1 19-Aug-1999  is Motorola floating point library support package based architecture dependent
code for libm - generated files. Currently, easy functions only.
 1.3 26-Oct-2019  christos Separate the NetBSD-specific fenv functions from the standard ones.
No functional change.
 1.2 22-Mar-2017  chs branches: 1.2.12;
provide a common softfloat fenv implemenation and use it for softfloat builds.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
 1.1 24-Dec-2015  christos branches: 1.1.2; 1.1.4;
add fenv for m68k
 1.1.4.1 21-Apr-2017  bouyer Sync with HEAD
 1.1.2.1 26-Apr-2017  pgoyette Sync with HEAD
 1.2.12.1 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.9 10-Aug-2014  isaki Improve the code. %sp@(4) is already loaded in %fp0.
PR/49083 (2)
 1.8 10-Aug-2014  isaki Remove a meaningless conditional branch.
PR/49083 (1)
 1.7 07-Aug-2003  agc branches: 1.7.60;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.6 10-Nov-1999  thorpej Add register prefixes.
 1.5 21-Aug-1999  is branches: 1.5.4;
Copied from mc68881/s_ceil.S,v
 1.4 15-Aug-1999  kleink Make these SVR4 ABI ready.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 18-Mar-1994  jtc Use RCSID macro for RCS ID's.
 1.1 12-Mar-1994  jtc converted ceil(), floor(), & rint() from old to new math libraries.
 1.5.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.7.60.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.10 16-Nov-2014  joerg Deal with the potential pressence of long double support.
 1.9 15-Nov-2014  joerg It's copysign, not _copysign.
 1.8 15-Nov-2014  joerg Add copysignl aliases.
 1.7 07-Aug-2003  agc branches: 1.7.74;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.6 10-Nov-1999  thorpej Add register prefixes.
 1.5 21-Aug-1999  is branches: 1.5.4;
Copied from mc68881/s_copysign.S,v
 1.4 15-Aug-1999  kleink Make these SVR4 ABI ready.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 18-Mar-1994  jtc Use RCSID macro for RCS ID's.
 1.1 14-Feb-1994  jtc Functions brought over from the old math library.
 1.5.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.7.74.2 28-May-2015  martin Pull up the following revision, requested by joerg in #812:

src/lib/libm/arch/m68k/s_copysign.S 1.10

Deal with the potential pressence of long double support.
 1.7.74.1 27-May-2015  msaitoh Pull up following revision(s) (requested by joerg in ticket #808):
lib/libm/arch/alpha/s_copysign.S: revision 1.6
lib/libm/arch/alpha/s_copysign.S: revision 1.7
lib/libm/arch/m68k/s_copysign.S: revision 1.8
lib/libm/arch/m68k/s_copysign.S: revision 1.9
- Add copysignl aliases.
- It's copysign, not _copysign.
 1.8 08-May-2024  riastradh libm/arch/m68k: Do the weak alias dance for finite.

This is used internally.
 1.7 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.6 10-Nov-1999  thorpej Add register prefixes.
 1.5 21-Aug-1999  is branches: 1.5.4;
Copied from mc68881/s_finite.S,v
 1.4 26-Jun-1996  jtc we don't need to branch
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 18-Mar-1994  jtc Use RCSID macro for RCS ID's.
 1.1 14-Feb-1994  jtc Functions brought over from the old math library.
 1.5.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.9 10-Aug-2014  isaki Improve the code. %sp@(4) is already loaded in %fp0.
PR/49083 (2)
 1.8 10-Aug-2014  isaki Remove a meaningless conditional branch.
PR/49083 (1)
 1.7 07-Aug-2003  agc branches: 1.7.60;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.6 10-Nov-1999  thorpej Add register prefixes.
 1.5 21-Aug-1999  is branches: 1.5.4;
Copied from mc68881/s_floor.S,v
 1.4 15-Aug-1999  kleink Make these SVR4 ABI ready.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 18-Mar-1994  jtc Use RCSID macro for RCS ID's.
 1.1 12-Mar-1994  jtc converted ceil(), floor(), & rint() from old to new math libraries.
 1.5.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.7.60.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.7 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.6 10-Nov-1999  thorpej Add register prefixes.
 1.5 21-Aug-1999  is branches: 1.5.4;
Copied from mc68881/s_rint.S,v
 1.4 15-Aug-1999  kleink Make these SVR4 ABI ready.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 18-Mar-1994  jtc Use RCSID macro for RCS ID's.
 1.1 12-Mar-1994  jtc converted ceil(), floor(), & rint() from old to new math libraries.
 1.5.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.6 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 10-Nov-1999  thorpej Add register prefixes.
 1.4 15-Aug-1999  kleink branches: 1.4.4;
Make these SVR4 ABI ready.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 18-Mar-1994  jtc Use RCSID macro for RCS ID's.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.4.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.6 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 10-Nov-1999  thorpej Add register prefixes.
 1.4 15-Aug-1999  kleink branches: 1.4.4;
Make these SVR4 ABI ready.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 18-Mar-1994  jtc Use RCSID macro for RCS ID's.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.4.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.6 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 10-Nov-1999  thorpej Add register prefixes.
 1.4 15-Aug-1999  kleink branches: 1.4.4;
Make these SVR4 ABI ready.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 18-Mar-1994  jtc Use RCSID macro for RCS ID's.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.4.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.6 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 10-Nov-1999  thorpej Add register prefixes.
 1.4 15-Aug-1999  kleink branches: 1.4.4;
Make these SVR4 ABI ready.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 18-Mar-1994  jtc Use RCSID macro for RCS ID's.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.4.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.6 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 10-Nov-1999  thorpej Add register prefixes.
 1.4 15-Aug-1999  kleink branches: 1.4.4;
Make these SVR4 ABI ready.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 18-Mar-1994  jtc Use RCSID macro for RCS ID's.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.4.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.4 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.3 10-Nov-1999  thorpej Add register prefixes.
 1.2 15-Aug-1999  kleink branches: 1.2.4;
Make these SVR4 ABI ready.
 1.1 08-Jul-1996  thorpej Correct think-o; this is an assembler source file (and the Makefile
expected as such).
 1.2.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.2 08-Jul-1996  thorpej Correct think-o; this is an assembler source file (and the Makefile
expected as such).
 1.1 26-Jun-1996  jtc add m68881 specific fmod()
 1.6 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 10-Nov-1999  thorpej Add register prefixes.
 1.4 15-Aug-1999  kleink branches: 1.4.4;
Make these SVR4 ABI ready.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 18-Mar-1994  jtc Use RCSID macro for RCS ID's.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.4.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.6 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 10-Nov-1999  thorpej Add register prefixes.
 1.4 15-Aug-1999  kleink branches: 1.4.4;
Make these SVR4 ABI ready.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 18-Mar-1994  jtc Use RCSID macro for RCS ID's.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.4.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.6 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.5 10-Nov-1999  thorpej Add register prefixes.
 1.4 15-Aug-1999  kleink branches: 1.4.4;
Make these SVR4 ABI ready.
 1.3 11-May-1995  jtc Winning Strategies has placed this code in the public domain.
 1.2 09-May-1995  jtc Id -> NetBSD
 1.1 18-Feb-1995  jtc 68881-assisted versions of these functions.
 1.4.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.9 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.8 31-Jan-2000  kleink G/c label orphaned since rev. 1.6.
 1.7 10-Nov-1999  thorpej Add register prefixes.
 1.6 21-Aug-1999  is branches: 1.6.4;
Same reason as for ldexp.S: most applications don't scale 0.0.
 1.5 15-Aug-1999  kleink Make these SVR4 ABI ready.
 1.4 11-May-1995  jtc Winning Strategies has placed this code in the public domain.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 18-Feb-1995  jtc Special case 0, as was done in s_scalbn.S.
I'm only doing this for consistancy --- someone really needs to measure
whether this optimization is justified.
 1.1 18-Feb-1995  jtc 68881-assisted versions of these functions.
 1.6.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.6 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 10-Nov-1999  thorpej Add register prefixes.
 1.4 15-Aug-1999  kleink branches: 1.4.4;
Make these SVR4 ABI ready.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 18-Mar-1994  jtc Use RCSID macro for RCS ID's.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.4.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.7 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.6 10-Nov-1999  thorpej Add register prefixes.
 1.5 15-Aug-1999  kleink branches: 1.5.4;
Make these SVR4 ABI ready.
 1.4 02-Jul-1999  simonb More trailing white space.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 18-Mar-1994  jtc Use RCSID macro for RCS ID's.
 1.1 12-Mar-1994  jtc The hardware sqrt function is supposed to be __ieee754_sqrt(), and live in
e_sqrt.S.
 1.5.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.7 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.6 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 10-Nov-1999  thorpej Add register prefixes.
 1.4 15-Aug-1999  kleink branches: 1.4.4;
Make these SVR4 ABI ready.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 18-Mar-1994  jtc Use RCSID macro for RCS ID's.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.4.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.5 22-Aug-1999  is Use arch/m68k copies of the common functions even for mc68881 hardware.
 1.4 15-Aug-1999  kleink Make these SVR4 ABI ready.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 18-Mar-1994  jtc Use RCSID macro for RCS ID's.
 1.1 12-Mar-1994  jtc converted ceil(), floor(), & rint() from old to new math libraries.
 1.5 22-Aug-1999  is Use arch/m68k copies of the common functions even for mc68881 hardware.
 1.4 15-Aug-1999  kleink Make these SVR4 ABI ready.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 18-Mar-1994  jtc Use RCSID macro for RCS ID's.
 1.1 14-Feb-1994  jtc Functions brought over from the old math library.
 1.7 08-May-2024  riastradh libm/arch/mc68881: Do the weak alias dance for sin, cos, tan.

These are used internally.
 1.6 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 10-Nov-1999  thorpej Add register prefixes.
 1.4 15-Aug-1999  kleink branches: 1.4.4;
Make these SVR4 ABI ready.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 18-Mar-1994  jtc Use RCSID macro for RCS ID's.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.4.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.6 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 10-Nov-1999  thorpej Add register prefixes.
 1.4 15-Aug-1999  kleink branches: 1.4.4;
Make these SVR4 ABI ready.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 18-Mar-1994  jtc Use RCSID macro for RCS ID's.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.4.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.5 22-Aug-1999  is Use arch/m68k copies of the common functions even for mc68881 hardware.
 1.4 26-Jun-1996  jtc we don't need to branch
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 18-Mar-1994  jtc Use RCSID macro for RCS ID's.
 1.1 14-Feb-1994  jtc Functions brought over from the old math library.
 1.5 22-Aug-1999  is Use arch/m68k copies of the common functions even for mc68881 hardware.
 1.4 15-Aug-1999  kleink Make these SVR4 ABI ready.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 18-Mar-1994  jtc Use RCSID macro for RCS ID's.
 1.1 12-Mar-1994  jtc converted ceil(), floor(), & rint() from old to new math libraries.
 1.7 16-Jul-2024  riastradh libm: Fix log-related symbol aliases.

- Do the weak alias dance for log, log2, log10, log1p, and their
f/l variants.

(Not strictly necessary for log2 and log10 since nothing in the
math library itself uses them -- only a computer scientist would
use log2 and only an engineer would use log10 -- but let's just do
it the same for all our forestry.)

- Provide long double aliases on vax.

- Sprinkle RCS ids.
 1.6 07-Aug-2003  agc branches: 1.6.108;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 10-Nov-1999  thorpej Add register prefixes.
 1.4 15-Aug-1999  kleink branches: 1.4.4;
Make these SVR4 ABI ready.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 18-Mar-1994  jtc Use RCSID macro for RCS ID's.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.4.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.6.108.1 02-Aug-2025  perseant Sync with HEAD
 1.7 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.6 10-Nov-1999  thorpej Add register prefixes.
 1.5 15-Aug-1999  kleink branches: 1.5.4;
Make these SVR4 ABI ready.
 1.4 09-May-1995  jtc Id -> NetBSD
 1.3 18-Mar-1994  jtc Use RCSID macro for RCS ID's.
 1.2 12-Mar-1994  jtc Replace code that was "truncated" when it was converted from old
math library.
 1.1 14-Feb-1994  jtc Functions brought over from the old math library.
 1.5.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.5 22-Aug-1999  is Use arch/m68k copies of the common functions even for mc68881 hardware.
 1.4 15-Aug-1999  kleink Make these SVR4 ABI ready.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 18-Mar-1994  jtc Use RCSID macro for RCS ID's.
 1.1 12-Mar-1994  jtc converted ceil(), floor(), & rint() from old to new math libraries.
 1.11 20-May-2013  mlelstv Correctly alias the ldexp* functions to the scalbn equivalents
that take an int argument.
 1.10 30-Apr-2013  joerg Provide scalbln weak alias. Fix argument order for STRONG_ALIAS.
Expect WEAK_ALIAS and STRONG_ALIAS to exist.
 1.9 27-Apr-2013  joerg Add aliases for scalbn* to ldexp, they are identical for FLT_RADIX=2.
 1.8 23-Apr-2010  drochner branches: 1.8.6; 1.8.12;
-build ldexp/frexp/modf locally again rather than relying on libc
reaching over, to get things into a sane state,
-do the usual namespace protection game with scalbn(f) because it
is used internally
(more symbol renamings are necessary)

The weak_alias change for mc68881 is untested.
 1.7 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.6 10-Nov-1999  thorpej Add register prefixes.
 1.5 15-Aug-1999  kleink branches: 1.5.4;
Make these SVR4 ABI ready.
 1.4 10-Oct-1997  is Same reason as for ldexp.S: most applications don't scale 0.0.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 18-Mar-1994  jtc Use RCSID macro for RCS ID's.
 1.1 14-Feb-1994  jtc Functions brought over from the old math library.
 1.5.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.8.12.1 23-Jun-2013  tls resync from head
 1.8.6.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.7 08-May-2024  riastradh libm/arch/mc68881: Do the weak alias dance for sin, cos, tan.

These are used internally.
 1.6 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 10-Nov-1999  thorpej Add register prefixes.
 1.4 15-Aug-1999  kleink branches: 1.4.4;
Make these SVR4 ABI ready.
 1.3 10-May-1995  jtc Id -> NetBSD
 1.2 18-Mar-1994  jtc Use RCSID macro for RCS ID's.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.4.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.2 12-Mar-1994  mycroft Clean up deleted files.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.7 08-May-2024  riastradh libm/arch/mc68881: Do the weak alias dance for sin, cos, tan.

These are used internally.
 1.6 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 10-Nov-1999  thorpej Add register prefixes.
 1.4 15-Aug-1999  kleink branches: 1.4.4;
Make these SVR4 ABI ready.
 1.3 10-May-1995  jtc Id -> NetBSD
 1.2 18-Mar-1994  jtc Use RCSID macro for RCS ID's.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.4.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.6 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 10-Nov-1999  thorpej Add register prefixes.
 1.4 15-Aug-1999  kleink branches: 1.4.4;
Make these SVR4 ABI ready.
 1.3 10-May-1995  jtc Id -> NetBSD
 1.2 18-Mar-1994  jtc Use RCSID macro for RCS ID's.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.4.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.3 22-Mar-2017  chs provide a common softfloat fenv implemenation and use it for softfloat builds.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
 1.2 11-Jan-2016  christos branches: 1.2.2; 1.2.4;
fix lint build
 1.1 21-Dec-2015  christos Add mips fenv.c (From FreeBSD)
 1.2.4.1 21-Apr-2017  bouyer Sync with HEAD
 1.2.2.1 26-Apr-2017  pgoyette Sync with HEAD
 1.2 22-Mar-2017  chs provide a common softfloat fenv implemenation and use it for softfloat builds.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
 1.1 20-Dec-2015  christos branches: 1.1.2; 1.1.4;
Powerpc fenv.c from FreeBSD
 1.1.4.1 21-Apr-2017  bouyer Sync with HEAD
 1.1.2.1 26-Apr-2017  pgoyette Sync with HEAD
 1.1 23-Jun-2022  martin Use "fmadd" to implement fma(3) on ppc.
 1.1 23-Jun-2022  martin Use "fmadd" to implement fma(3) on ppc.
 1.2 27-Mar-2015  matt Update to new RISCV ABI
 1.1 19-Sep-2014  matt New files for Userland support of UCB RISC-V (both 32-bit and 64-bit)
 1.2 27-Mar-2015  matt Update to new RISCV ABI
 1.1 19-Sep-2014  matt New files for Userland support of UCB RISC-V (both 32-bit and 64-bit)
 1.5 17-May-2024  riastradh riscv: Make feraiseexcept actually raise the given exceptions.

Doing

fexcept_t ex = 0;
fesetexceptflag(&ex, excepts);

has the effect of _clearing_ all the exceptions in excepts. Using
fesetexceptflag doesn't make this easier, because we would have to
record which exceptions were already raised. So just set the fflags
bits in the fcsr register directly.
 1.4 07-May-2023  skrll RISC-V support that works on QEMU with a single hart.

Thanks for Simon Burge for plic(4).
 1.3 03-Sep-2021  andvar fix typos in comments, mainly s/extention/extension/ and s/sufficent/sufficient/
 1.2 22-Mar-2017  chs provide a common softfloat fenv implemenation and use it for softfloat builds.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
 1.1 19-Sep-2014  matt branches: 1.1.2; 1.1.4;
New files for Userland support of UCB RISC-V (both 32-bit and 64-bit)
 1.1.4.1 21-Apr-2017  bouyer Sync with HEAD
 1.1.2.1 26-Apr-2017  pgoyette Sync with HEAD
 1.2 27-Mar-2015  matt Update to new RISCV ABI
 1.1 19-Sep-2014  matt New files for Userland support of UCB RISC-V (both 32-bit and 64-bit)
 1.2 27-Mar-2015  matt Update to new RISCV ABI
 1.1 19-Sep-2014  matt New files for Userland support of UCB RISC-V (both 32-bit and 64-bit)
 1.5 13-Apr-2019  maya Don't alias the long double version to the double version.
We now have 128bit long double (by the upstream GCC changing things)
 1.4 27-Mar-2015  matt branches: 1.4.16;
Update to new RISCV ABI
 1.3 15-Nov-2014  joerg It's copysign, not _copysign.
 1.2 15-Nov-2014  joerg Add copysignl aliases.
 1.1 19-Sep-2014  matt New files for Userland support of UCB RISC-V (both 32-bit and 64-bit)
 1.4.16.1 10-Jun-2019  christos Sync with HEAD
 1.2 27-Mar-2015  matt Update to new RISCV ABI
 1.1 19-Sep-2014  matt New files for Userland support of UCB RISC-V (both 32-bit and 64-bit)
 1.2 27-Mar-2015  matt Update to new RISCV ABI
 1.1 19-Sep-2014  matt New files for Userland support of UCB RISC-V (both 32-bit and 64-bit)
 1.2 27-Mar-2015  matt Update to new RISCV ABI
 1.1 19-Sep-2014  matt New files for Userland support of UCB RISC-V (both 32-bit and 64-bit)
 1.2 27-Mar-2015  matt Update to new RISCV ABI
 1.1 19-Sep-2014  matt New files for Userland support of UCB RISC-V (both 32-bit and 64-bit)
 1.2 27-Mar-2015  matt Update to new RISCV ABI
 1.1 19-Sep-2014  matt New files for Userland support of UCB RISC-V (both 32-bit and 64-bit)
 1.2 27-Mar-2015  matt Update to new RISCV ABI
 1.1 19-Sep-2014  matt New files for Userland support of UCB RISC-V (both 32-bit and 64-bit)
 1.2 27-Mar-2015  matt Update to new RISCV ABI
 1.1 19-Sep-2014  matt New files for Userland support of UCB RISC-V (both 32-bit and 64-bit)
 1.2 27-Mar-2015  matt Update to new RISCV ABI
 1.1 19-Sep-2014  matt New files for Userland support of UCB RISC-V (both 32-bit and 64-bit)
 1.2 27-Mar-2015  matt Update to new RISCV ABI
 1.1 19-Sep-2014  matt New files for Userland support of UCB RISC-V (both 32-bit and 64-bit)
 1.2 22-Mar-2017  chs provide a common softfloat fenv implemenation and use it for softfloat builds.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
 1.1 25-Aug-2016  christos branches: 1.1.2; 1.1.4;
more fenv for sh
 1.1.4.1 21-Apr-2017  bouyer Sync with HEAD
 1.1.2.3 26-Apr-2017  pgoyette Sync with HEAD
 1.1.2.2 14-Sep-2016  pgoyette Sync with HEAD
 1.1.2.1 25-Aug-2016  pgoyette file fenv.c was added on branch pgoyette-localcount on 2016-09-14 03:04:16 +0000
 1.3 03-Sep-2021  andvar fix typos in comments, mainly s/extention/extension/ and s/sufficent/sufficient/
 1.2 22-Mar-2017  chs provide a common softfloat fenv implemenation and use it for softfloat builds.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
 1.1 20-May-2011  nakayama branches: 1.1.26; 1.1.30;
Add fenv support for sparc. Mostly copied from sparc64 and share with it.
 1.1.30.1 21-Apr-2017  bouyer Sync with HEAD
 1.1.26.1 26-Apr-2017  pgoyette Sync with HEAD
 1.4 03-Sep-2021  andvar fix typos in comments, mainly s/extention/extension/ and s/sufficent/sufficient/
 1.3 22-Mar-2017  chs provide a common softfloat fenv implemenation and use it for softfloat builds.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
 1.2 20-May-2011  nakayama branches: 1.2.26; 1.2.30;
Add fenv support for sparc. Mostly copied from sparc64 and share with it.
 1.1 31-Jan-2011  christos branches: 1.1.2;
fenv support for sparc64 from Stathis Kamperis
 1.1.2.2 06-Mar-2011  bouyer Sync with HEAD
 1.1.2.1 31-Jan-2011  bouyer file fenv.c was added on branch bouyer-quota2 on 2011-03-06 15:07:55 +0000
 1.2.30.1 21-Apr-2017  bouyer Sync with HEAD
 1.2.26.1 26-Apr-2017  pgoyette Sync with HEAD
 1.10 07-May-2024  riastradh libm/arch/vax: Use END to delimit symbol definitions.

This way we get sizes and, likely, slightly better debug info about
PCs inside these symbols.
 1.9 19-Apr-2007  matt Mark some internal libm symbols as hidden
 1.8 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.7 24-Feb-2002  matt Change to use a register prefix.
 1.6 14-Jul-2000  matt Well, duh! Use indexed addressing since that's why it's there. That way
the code is PIC. (mmm. linker warning's about non-PIC code).
 1.5 14-Jul-2000  matt Clean up & prepare for ELF. Don't define isnan since it's in libc. Add a
powf (really a wrapper for pow).
 1.4 02-Jul-1999  simonb branches: 1.4.8;
More trailing white space.
 1.3 11-Nov-1998  matt Fix PIC code and fix problem with obj dirs.
 1.2 31-Oct-1998  matt Add .type _sym,@foo for shared libraries
 1.1 10-Oct-1995  ragge Machine specific math library files for vax.
 1.4.8.1 14-Aug-2000  ragge Apply patch (requested by user, approved by thorpej):

Dynamic linked JSB called global labels don't work, subroutines
must be called with CALLS instead. This patch fixes it for the 1.5 release.
 1.11 07-May-2024  riastradh libm/arch/vax: Expose atan2l.

PR port-vax/57881: vax libm is missing various symbols
 1.10 07-May-2024  riastradh libm/arch/vax: Use END to delimit symbol definitions.

This way we get sizes and, likely, slightly better debug info about
PCs inside these symbols.
 1.9 10-Oct-2014  martin Add a few missing weak aliases
 1.8 20-Mar-2008  mhitch branches: 1.8.42;
Fix weak alias.
 1.7 20-Mar-2008  mhitch Add wrappers for missing coshf(), expf(), logf(), sinhf(), atan2f(), and
hypotf() functions for vax. Play the namespace and weak alias game for
functions used internally by the complex functions. Should fix the vax
build of libm.
 1.6 07-Aug-2003  agc branches: 1.6.22; 1.6.28;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 24-Feb-2002  matt Change to use a register prefix.
 1.4 14-Jul-2000  matt Clean up & prepare for ELF. Don't define isnan since it's in libc. Add a
powf (really a wrapper for pow).
 1.3 02-Jul-1999  simonb More trailing white space.
 1.2 31-Oct-1998  matt Add .type _sym,@foo for shared libraries
 1.1 10-Oct-1995  ragge Machine specific math library files for vax.
 1.6.28.1 24-Mar-2008  keiichi sync with head.
 1.6.22.1 23-Mar-2008  matt sync with HEAD
 1.8.42.1 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.9 07-May-2024  riastradh libm/arch/vax: Use STRONG_ALIAS, not ALTENTRY.

STRONG_ALIAS copies the symbol size and type, so it avoids warnings
like this:

/home/riastradh/netbsd/10/obj.vax/tooldir/bin/../lib/gcc/vax--netbsdelf/10.5.0/../../../../vax--netbsdelf/bin/ld: warning: type and size of dynamic symbol `ldexpl' are not defined
 1.8 07-May-2024  riastradh libm/arch/vax: Use END to delimit symbol definitions.

This way we get sizes and, likely, slightly better debug info about
PCs inside these symbols.
 1.7 10-Oct-2014  martin Add a few missing weak aliases
 1.6 20-Mar-2008  mhitch branches: 1.6.42;
Add wrappers for missing coshf(), expf(), logf(), sinhf(), atan2f(), and
hypotf() functions for vax. Play the namespace and weak alias game for
functions used internally by the complex functions. Should fix the vax
build of libm.
 1.5 07-Aug-2003  agc branches: 1.5.22; 1.5.28;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.4 24-Feb-2002  matt Change to use a register prefix.
 1.3 14-Jul-2000  matt Clean up & prepare for ELF. Don't define isnan since it's in libc. Add a
powf (really a wrapper for pow).
 1.2 31-Oct-1998  matt Add .type _sym,@foo for shared libraries
 1.1 10-Oct-1995  ragge Machine specific math library files for vax.
 1.5.28.1 24-Mar-2008  keiichi sync with head.
 1.5.22.1 23-Mar-2008  matt sync with HEAD
 1.6.42.1 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.9 07-May-2024  riastradh libm/arch/vax: Use STRONG_ALIAS, not ALTENTRY.

STRONG_ALIAS copies the symbol size and type, so it avoids warnings
like this:

/home/riastradh/netbsd/10/obj.vax/tooldir/bin/../lib/gcc/vax--netbsdelf/10.5.0/../../../../vax--netbsdelf/bin/ld: warning: type and size of dynamic symbol `ldexpl' are not defined
 1.8 07-May-2024  riastradh libm/arch/vax: Use END to delimit symbol definitions.

This way we get sizes and, likely, slightly better debug info about
PCs inside these symbols.
 1.7 24-Nov-2013  martin Provide cbrtl() and cbrtf() for vax
 1.6 07-Aug-2003  agc branches: 1.6.54; 1.6.60;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 24-Feb-2002  matt Change to use a register prefix.
 1.4 14-Jul-2000  matt Clean up & prepare for ELF. Don't define isnan since it's in libc. Add a
powf (really a wrapper for pow).
 1.3 02-Jul-1999  simonb More trailing white space.
 1.2 31-Oct-1998  matt Add .type _sym,@foo for shared libraries
 1.1 10-Oct-1995  ragge Machine specific math library files for vax.
 1.6.60.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.6.54.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.7 07-May-2024  riastradh libm/arch/vax: Use END to delimit symbol definitions.

This way we get sizes and, likely, slightly better debug info about
PCs inside these symbols.
 1.6 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 24-Feb-2002  matt Change to use a register prefix.
 1.4 14-Jul-2000  matt Clean up & prepare for ELF. Don't define isnan since it's in libc. Add a
powf (really a wrapper for pow).
 1.3 02-Jul-1999  simonb More trailing white space.
 1.2 31-Oct-1998  matt Add .type _sym,@foo for shared libraries
 1.1 10-Oct-1995  ragge Machine specific math library files for vax.
 1.3 17-Jan-2006  is C versions of non-IEEE round() / roundf(). Alas, using the VAX
cvtrdl; cvtld doesn't work for big numbers.
 1.2 17-Jan-2006  is Oops - round() is supposed to return double, not integer.
 1.1 15-Jan-2006  is Implement round(3), so that jot(1) can link again.
 1.8 07-May-2024  riastradh libm/arch/vax: Use STRONG_ALIAS, not ALTENTRY.

STRONG_ALIAS copies the symbol size and type, so it avoids warnings
like this:

/home/riastradh/netbsd/10/obj.vax/tooldir/bin/../lib/gcc/vax--netbsdelf/10.5.0/../../../../vax--netbsdelf/bin/ld: warning: type and size of dynamic symbol `ldexpl' are not defined
 1.7 07-May-2024  riastradh libm/arch/vax: Use END to delimit symbol definitions.

This way we get sizes and, likely, slightly better debug info about
PCs inside these symbols.
 1.6 04-Apr-2022  andvar fix various typos, mainly in comments.
 1.5 03-Feb-2014  martin Provide scalbnl, scalbnf, logbl, logbf, fmaxl for vax.
 1.4 24-May-2013  martin Fix POLYD/Mariah fallout and include the scalbn sources (which do not
use polyd).
Fix global names and weak aliases.
 1.3 20-May-2013  mlelstv Correctly alias the ldexp* functions to the scalbn equivalents
that take an int argument.
 1.2 27-Apr-2013  joerg Add aliases for scalbn* to ldexp, they are identical for FLT_RADIX=2.
 1.1 28-Jul-2011  matt branches: 1.1.2; 1.1.8;
Add scalbn{,f,l} for VAX.
 1.1.8.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.8.1 23-Jun-2013  tls resync from head
 1.1.2.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.10 06-May-2024  riastradh libm: Expose sinl, cosl, tanl on vax.

While here, make sin, cos, and tan be weak aliases for internal
symbols _sin, _cos, and _tan; likewise sinf, cosf, tanf.

PR 57881
 1.9 10-Oct-2014  martin More aliases
 1.8 07-Aug-2003  agc branches: 1.8.74;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.7 21-Feb-2003  matt Fix some assembly botches.
 1.6 14-Jul-2002  matt Add sinf/cosf.
 1.5 24-Feb-2002  matt Change to use a register prefix.
 1.4 14-Jul-2000  matt Clean up & prepare for ELF. Don't define isnan since it's in libc. Add a
powf (really a wrapper for pow).
 1.3 02-Jul-1999  simonb branches: 1.3.8;
More trailing white space.
 1.2 31-Oct-1998  matt Add .type _sym,@foo for shared libraries
 1.1 10-Oct-1995  ragge Machine specific math library files for vax.
 1.3.8.1 14-Aug-2000  ragge Apply patch (requested by user, approved by thorpej):

Dynamic linked JSB called global labels don't work, subroutines
must be called with CALLS instead. This patch fixes it for the 1.5 release.
 1.8.74.1 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.12 07-May-2024  riastradh libm/arch/vax: Use END to delimit symbol definitions.

This way we get sizes and, likely, slightly better debug info about
PCs inside these symbols.
 1.11 11-Oct-2014  martin Seems we need both sqrtl and _sqrtl as a weak alias - something must be
wrong namespapce wise here, but this should make it build for now.
 1.10 11-Oct-2014  martin Fix _sqrtl alias
 1.9 06-Mar-2014  martin branches: 1.9.4;
Provide sqrtl alias
 1.8 18-Apr-2007  matt branches: 1.8.34; 1.8.40;
Make the internal __libm_dsqrt_r6 have a fake entry mask of 0 to make
ld.elf_so.
 1.7 13-May-2004  mhitch Add ceilf(), floorf(), and sqrtf() (as wrappers using ceil(), floor(), and
sqrt() repectively). The fixes PR#22796.
 1.6 07-Aug-2003  agc branches: 1.6.2;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 24-Feb-2002  matt Change to use a register prefix.
 1.4 21-Feb-2002  matt Don't bsbb to an external symbol. the dynamic linker won't like it.
 1.3 14-Jul-2000  matt Clean up & prepare for ELF. Don't define isnan since it's in libc. Add a
powf (really a wrapper for pow).
 1.2 31-Oct-1998  matt Add .type _sym,@foo for shared libraries
 1.1 10-Oct-1995  ragge Machine specific math library files for vax.
 1.6.2.1 15-May-2004  tron Pull up revision 1.7 (requested by mhitch in ticket #339):
Add ceilf(), floorf(), and sqrtf() (as wrappers using ceil(), floor(), and
sqrt() repectively). The fixes PR#22796.
 1.8.40.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.8.34.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.9.4.1 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.13 17-Jul-2024  riastradh libm: Fix `mantissa' to say `significand' in comments.

(mantissa = fractional part of log(significand))

No functional change intended.
 1.12 08-May-2024  riastradh branches: 1.12.2;
libm/arch/vax: Do the weak alias dance for finite, finitef.

These are used internally.
 1.11 07-May-2024  riastradh libm/arch/vax: Use END to delimit symbol definitions.

This way we get sizes and, likely, slightly better debug info about
PCs inside these symbols.
 1.10 14-Nov-2014  joerg Define copysignl on !long double platforms. Be consistent in the use of
weak aliases.
 1.9 15-Mar-2014  martin branches: 1.9.4;
Need to load the full argument
 1.8 15-Mar-2014  martin Provide copysignf and copysignl
 1.7 03-Feb-2014  martin Provide scalbnl, scalbnf, logbl, logbf, fmaxl for vax.
 1.6 07-Aug-2003  agc branches: 1.6.54; 1.6.60;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 23-Jun-2002  matt Add finitef
 1.4 24-Feb-2002  matt branches: 1.4.2;
Change to use a register prefix.
 1.3 14-Jul-2000  matt Clean up & prepare for ELF. Don't define isnan since it's in libc. Add a
powf (really a wrapper for pow).
 1.2 02-Jul-1999  simonb More trailing white space.
 1.1 10-Oct-1995  ragge Machine specific math library files for vax.
 1.4.2.1 24-Jun-2002  lukem Pull up revision 1.5 (requested by matt in ticket #354):
Add finitef
 1.6.60.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.6.54.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.9.4.1 25-May-2015  msaitoh Pull up following revision(s) (requested by joerg in ticket #790):
sys/arch/powerpc/include/math.h: revision 1.5
lib/libm/src/namespace.h: revision 1.13
lib/libm/arch/vax/n_support.S: revision 1.10
lib/libm/src/s_copysignl.c: revision 1.3
lib/libm/src/s_copysignl.c: revision 1.4
lib/libm/src/s_copysignl.c: revision 1.5
sys/arch/powerpc/include/ieee.h: revision 1.6
lib/libm/src/s_copysign.c: revision 1.12
lib/libm/src/s_copysign.c: revision 1.13
- Support copysignl on PowerPC.
- Define copysignl on !long double platforms. Be consistent in the use of
weak aliases.
- copysignl is also needed for PowerPC's double-double format, so special
case that. Functional support was added earlier, but not enabled.
 1.12.2.1 02-Aug-2025  perseant Sync with HEAD
 1.8 06-May-2024  riastradh libm: Expose sinl, cosl, tanl on vax.

While here, make sin, cos, and tan be weak aliases for internal
symbols _sin, _cos, and _tan; likewise sinf, cosf, tanf.

PR 57881
 1.7 06-Mar-2014  martin Simple tanf() for vax
 1.6 07-Aug-2003  agc branches: 1.6.54; 1.6.60;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 24-Feb-2002  matt Change to use a register prefix.
 1.4 14-Jul-2000  matt Clean up & prepare for ELF. Don't define isnan since it's in libc. Add a
powf (really a wrapper for pow).
 1.3 02-Jul-1999  simonb branches: 1.3.8;
More trailing white space.
 1.2 31-Oct-1998  matt Add .type _sym,@foo for shared libraries
 1.1 10-Oct-1995  ragge Machine specific math library files for vax.
 1.3.8.1 14-Aug-2000  ragge Apply patch (requested by user, approved by thorpej):

Dynamic linked JSB called global labels don't work, subroutines
must be called with CALLS instead. This patch fixes it for the 1.5 release.
 1.6.60.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.6.54.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.11 20-Feb-2024  riastradh fenv(3): Fix fetestexcept to avoid side effects on trap state.

PR port-amd64/57949
 1.10 03-Sep-2021  andvar branches: 1.10.2;
fix typos in comments, mainly s/extention/extension/ and s/sufficent/sufficient/
 1.9 19-Aug-2021  andvar s/memry/memory+s/softare/software/+s/grapics/graphics+s/ouput/output
 1.8 12-Aug-2021  andvar fix typos in "environment" word.
 1.7 22-Mar-2017  chs branches: 1.7.4; 1.7.14;
provide a common softfloat fenv implemenation and use it for softfloat builds.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
 1.6 11-Nov-2013  joerg branches: 1.6.8; 1.6.12;
Preserve the initial x87 control word in the global FP environment
in preparation for adjusting the default based on the main binary
version.
 1.5 18-Oct-2013  christos use the masked variable
 1.4 29-May-2013  riastradh Fix amd64 feraiseexcept so that it actually traps.

The call to fwait got lost somewhere along the line; the i387 code
has it.

XXX pullup to 6
 1.3 29-May-2013  riastradh Fix sense of fegetexcept on x86.

Somehow I overlooked this when I fixed feenableexcept and
fedisableexcept last summer.

XXX pullup to 6
 1.2 04-Aug-2012  riastradh branches: 1.2.2;
Mask off the result of feenableexcept and fedisableexcept on x86.

These shouldn't return bits outside FE_ALL_EXCEPT.
 1.1 31-Jul-2010  joerg branches: 1.1.6; 1.1.8;
Add support for fenv.h interface for i386 and amd64.

Submitted by Stathis Kamperis as part of GSoC 2010 and ported from
FreeBSD.
 1.1.8.2 13-Jun-2013  msaitoh Pull up following revision(s) (requested by riastradh in ticket #899):
lib/libm/arch/i387/fenv.c: revision 1.5
lib/libm/arch/x86_64/fenv.c: revision 1.3-1.4
Fix amd64 feraiseexcept so that it actually traps.
The call to fwait got lost somewhere along the line; the i387 code has it.
Fix sense of fegetexcept on x86.
Somehow I overlooked this when I fixed feenableexcept and fedisableexcept
last summer.
 1.1.8.1 12-Aug-2012  martin branches: 1.1.8.1.4; 1.1.8.1.6;
Pull up following revision(s) (requested by riastradh in ticket #477):
lib/libm/arch/i387/fenv.c: revision 1.4
lib/libm/arch/x86_64/fenv.c: revision 1.2
Mask off the result of feenableexcept and fedisableexcept on x86.
These shouldn't return bits outside FE_ALL_EXCEPT.
 1.1.8.1.6.1 14-Jun-2013  msaitoh Pull up following revision(s) (requested by riastradh in ticket #899):
lib/libm/arch/i387/fenv.c: revision 1.5
lib/libm/arch/x86_64/fenv.c: revision 1.3-1.4
Fix amd64 feraiseexcept so that it actually traps.
The call to fwait got lost somewhere along the line; the i387 code has it.
Fix sense of fegetexcept on x86.
Somehow I overlooked this when I fixed feenableexcept and fedisableexcept
last summer.
 1.1.8.1.4.1 14-Jun-2013  msaitoh Pull up following revision(s) (requested by riastradh in ticket #899):
lib/libm/arch/i387/fenv.c: revision 1.5
lib/libm/arch/x86_64/fenv.c: revision 1.3-1.4
Fix amd64 feraiseexcept so that it actually traps.
The call to fwait got lost somewhere along the line; the i387 code has it.
Fix sense of fegetexcept on x86.
Somehow I overlooked this when I fixed feenableexcept and fedisableexcept
last summer.
 1.1.6.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.6.1 30-Oct-2012  yamt sync with head
 1.2.2.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2.2.1 23-Jun-2013  tls resync from head
 1.6.12.1 21-Apr-2017  bouyer Sync with HEAD
 1.6.8.1 26-Apr-2017  pgoyette Sync with HEAD
 1.7.14.1 23-Feb-2024  martin Pull up following revision(s) (requested by riastradh in ticket #1801):

tests/lib/libm/t_fenv.c: revision 1.14
tests/lib/libm/t_fenv.c: revision 1.15
lib/libm/arch/x86_64/fenv.c: revision 1.11

fenv(3): Add test for PR port-amd64/57949.

fenv(3): Fix fetestexcept to avoid side effects on trap state.

PR port-amd64/57949
 1.7.4.1 23-Feb-2024  martin Pull up following revision(s) (requested by riastradh in ticket #1937):

tests/lib/libm/t_fenv.c: revision 1.14
tests/lib/libm/t_fenv.c: revision 1.15
lib/libm/arch/x86_64/fenv.c: revision 1.11

fenv(3): Add test for PR port-amd64/57949.

fenv(3): Fix fetestexcept to avoid side effects on trap state.

PR port-amd64/57949
 1.10.2.1 23-Feb-2024  martin Pull up following revision(s) (requested by riastradh in ticket #603):

tests/lib/libm/t_fenv.c: revision 1.14
tests/lib/libm/t_fenv.c: revision 1.15
lib/libm/arch/x86_64/fenv.c: revision 1.11

fenv(3): Add test for PR port-amd64/57949.

fenv(3): Fix fetestexcept to avoid side effects on trap state.

PR port-amd64/57949
 1.3 13-May-2017  maya Drop superfluous ; in __warn_references
 1.2 10-Aug-2007  drochner branches: 1.2.62;
make the hypot/atan2 functions weak aliases, because they are used
internally by the historical cabs(), and the future c99 cabs/carg
 1.1 22-Feb-2007  drochner -get cabs() and cabsf() out of public view - these are historical and
conflict with C99 functions which are builtins in newer gcc
(actually, the old cabs() is ABI compatible with the new _complex one
on i386, but this is purely accidental)
remove public prototypes and manpages, move the code into a compat
subdirectory as libc does so that binary compatibility is kept
-add a manpage for the isgreater() etc macros, borrowed from FreeBSD
 1.2.62.1 19-May-2017  pgoyette Resolve conflicts from previous merge (all resulting from $NetBSD
keywork expansion)
 1.3 13-May-2017  maya Drop superfluous ; in __warn_references
 1.2 10-Aug-2007  drochner branches: 1.2.62;
make the hypot/atan2 functions weak aliases, because they are used
internally by the historical cabs(), and the future c99 cabs/carg
 1.1 22-Feb-2007  drochner -get cabs() and cabsf() out of public view - these are historical and
conflict with C99 functions which are builtins in newer gcc
(actually, the old cabs() is ABI compatible with the new _complex one
on i386, but this is purely accidental)
remove public prototypes and manpages, move the code into a compat
subdirectory as libc does so that binary compatibility is kept
-add a manpage for the isgreater() etc macros, borrowed from FreeBSD
 1.2.62.1 19-May-2017  pgoyette Resolve conflicts from previous merge (all resulting from $NetBSD
keywork expansion)
 1.12 09-May-2024  riastradh libm: No divtc3.c or multc3.c in sparc64's compat sparc library.

compat/sparc64/sparc/bsd.sparc.mk doesn't define LIBC_MACHINE_CPU,
only LIBC_MACHINE_ARCH, so when the compat build gets to this
conditional, LIBC_MACHINE_CPU is just MACHINE_CPU, i.e., sparc64.

Since there's no `sparc64el' or `sparc64hf-el' that we need to
canonicalize by MACHINE_ARCH -> MACHINE_CPU, just use
LIBC_MACHINE_ARCH here.
 1.11 16-Jun-2021  rin PR port-arm/55897

Fix ABI mismatch for armhf runtime routines for floating-point arithmetics;
For hard-float arm variants, provide

(1) generic runtime routines with correct calling convention, and
(2) EABI runtime routines at the same time.

I've confirmed that no binary changes for kernels.

LGTM by skrll
 1.10 27-Feb-2016  joerg branches: 1.10.18;
Long double complex multiplication and division helpers are needed on
Sparc64 and AArch64.
 1.9 22-Oct-2014  joerg Add missing muldc3.c.
 1.8 17-Oct-2014  joerg PPC64 uses the double-double code too
 1.7 17-Oct-2014  joerg Complex division for long double uses different function names on PPC.
 1.6 13-Jun-2014  mrg branches: 1.6.2; 1.6.4;
remove the build support for GCC 4.1, and any hacks i found for it.

there could still be more -- i only looked for lines matching
both "HAVE_GCC" and "4" as words (grep -w.)
 1.5 26-Feb-2014  joerg branches: 1.5.2; 1.5.4;
Update compiler-rt glue for the new source layout.
 1.4 03-Feb-2014  joerg For ancient GCC, disable the missing prototype warning completely.
 1.3 31-Jan-2014  joerg Restore -Wno-error for clang build. Just don't try to force GCC 4.1 for
clang, okay?
 1.2 31-Jan-2014  martin -Wno-error=missing-prototypes is not available on gcc 4.1
 1.1 15-Oct-2013  joerg Hook complex operation support into libm when not using libgcc.
 1.5.4.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.5.4.1 26-Feb-2014  yamt file Makefile.inc was added on branch yamt-pagecache on 2014-05-22 11:36:57 +0000
 1.5.2.1 10-Aug-2014  tls Rebase.
 1.6.4.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.6.4.1 13-Jun-2014  tls file Makefile.inc was added on branch tls-maxphys on 2014-08-20 00:02:18 +0000
 1.6.2.1 19-May-2015  snj Pull up following revision(s) (requested by joerg in ticket #778):
lib/libm/compiler_rt/Makefile.inc: revisions 1.7-1.9
Complex division for long double uses different function names on PPC.
--
PPC64 uses the double-double code too
--
Add missing muldc3.c.
 1.10.18.1 08-Aug-2021  martin Pull up following revision(s) (requested by skrll in ticket #1328):

sys/external/bsd/compiler_rt/dist/lib/builtins/negsf2.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/muldf3.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/truncdfhf2.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/negsf2.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/muldf3.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/floatdidf.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_cfcmpeq_check_nan.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/truncdfhf2.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/floatdidf.c: revision 1.4
sys/external/bsd/compiler_rt/dist/lib/builtins/floatdidf.c: revision 1.5
sys/external/bsd/compiler_rt/dist/lib/builtins/divdf3.c: revision 1.2
sys/external/bsd/compiler_rt/abi.mk: revision 1.1
sys/external/bsd/compiler_rt/dist/lib/builtins/divdf3.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/floatunsisf.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/comparesf2.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/floatunsisf.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/comparesf2.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h: revision 1.4
sys/external/bsd/compiler_rt/dist/lib/builtins/ashrdi3.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/ashldi3.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/truncdfsf2.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/subdf3.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h: revision 1.5
sys/external/bsd/compiler_rt/dist/lib/builtins/ashrdi3.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/ashldi3.c: revision 1.3
sys/lib/libkern/Makefile.compiler-rt: revision 1.13
sys/external/bsd/compiler_rt/dist/lib/builtins/truncdfsf2.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/subdf3.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h: revision 1.6
sys/external/bsd/compiler_rt/dist/lib/builtins/lshrdi3.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/floatsisf.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/extendhfsf2.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/lshrdi3.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/floatsisf.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/extendhfsf2.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/floatunsidf.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/floatunsidf.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/fixdfsi.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/fixdfsi.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_frsub.c: revision 1.2
lib/libm/compiler_rt/Makefile.inc: revision 1.11
sys/external/bsd/compiler_rt/dist/lib/builtins/fixunsdfsi.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/floatsidf.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/fixunsdfsi.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/divsi3.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/adddf3.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/floatsidf.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/divsi3.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/adddf3.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_div0.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/mulsf3.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/mulsf3.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/fixdfdi.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/fixdfdi.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/divsf3.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/negdf2.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/fixunsdfdi.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/divsf3.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/negdf2.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/fixunsdfdi.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/extendsfdf2.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/subsf3.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/extendsfdf2.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/subsf3.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/comparedf2.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/comparedf2.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/floatundisf.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/floatundisf.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/fixsfsi.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_drsub.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/fixsfsi.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/muldi3.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/fixunssfsi.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_cdcmpeq_check_nan.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/muldi3.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/fixunssfsi.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/floatdisf.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/floatdisf.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/addsf3.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/addsf3.c: revision 1.3
lib/libc/compiler_rt/Makefile.inc: revision 1.40
sys/external/bsd/compiler_rt/dist/lib/builtins/fixunssfdi.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/fixunssfdi.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/udivsi3.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/truncsfhf2.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/floatundidf.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/fixsfdi.c: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/udivsi3.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/truncsfhf2.c: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/floatundidf.c: revision 1.4
sys/external/bsd/compiler_rt/dist/lib/builtins/fixsfdi.c: revision 1.3

PR port-arm/55897
Cherry-pick upstream commit llvm-svn: 266891:
https://github.com/llvm/llvm-project/commit/28e1b977d4694c6b3a5c4d8107570a969be71e77#diff-549f1733063df365663fe375f336034e33e16d6bf2826cd4f966045aeb136007
----
[PATCH] builtins: remove use of __attribute__((pcs("aapcs"))) on
Windows
Windows does not honour the __attribute__((pcs)) on ARM. Although this will
result in ABI mismatches, compiler-rt should largely be unneeded for resolving
dependencies as we generate MS ABI compliant library calls now for the most
part.
llvm-svn: 266891
PR port-arm/55897
Cherry-pick upstream commit llvm-svn: 298974 for lib/builtins/int_lib.h.
https://github.com/llvm/llvm-project/commit/d8ca74176e25bd4080ee81982819e2ef7a36553f#diff-549f1733063df365663fe375f336034e33e16d6bf2826cd4f966045aeb136007
----
[Builtin] Unxfail tests for armhf
Summary:
Originally, a few tests fail for armhf target due to:
1) COMPILER_RT_ARMHF_TARGET was not set when building the lib
2) COMPILER_RT_ABI should not be defined as `__attribute__((pcs("aapcs")))` for armhf when building for both lib and tests
This addresshttps://bugs.llvm.org//show_bug.cgi?id=32261
mulsc3_test.c is a newly exposed issue, which will be addressed separately.
Reviewers: rengolin, compnerd
Reviewed By: compnerd
Subscribers: aemerson, llvm-commits, mgorny
Differential Revision:https://reviews.llvm.org/D31448
llvm-svn: 298974
PR port-arm/55897
Cherry-pick upstream commit llvm-svn: 303138:
https://github.com/llvm/llvm-project/commit/44c45717b9e9f3dc194508d2eeeb8599a9d76949#diff-549f1733063df365663fe375f336034e33e16d6bf2826cd4f966045aeb136007
----
[PATCH] builtins: use reserved spelling (NFC)
llvm-svn: 303138
PR port-arm/55897
Cherry-pick upstream commit llvm-svn: 303188:
https://github.com/llvm/llvm-project/commit/36ac5ddff7377586390a71cb3261f0a40d274308#diff-549f1733063df365663fe375f336034e33e16d6bf2826cd4f966045aeb136007
----
[PATCH] builtins: expand out the AEABI function stubs
These actually may change calling conventions. We cannot simply provide
function aliases as the aliased function may have a different calling
convention. Provide a forwarding function instead to permit the
compiler to synthesize the calling convention adjustment thunk.
Remove the `ARM_EABI_FNALIAS` macro as that is not safe to use.
Resolves PR33030!
llvm-svn: 303188
PR port-arm/55897
Cherry-pick upstream commit llvm-svn: 303207:
https://github.com/llvm/llvm-project/commit/4a45838d10085defac0f3b3003a5263e34536f3b#diff-549f1733063df365663fe375f336034e33e16d6bf2826cd4f966045aeb136007
----
[PATCH] builtins: fix guard __AEABI__ -> __ARM_EABI__
llvm-svn: 303207
PR port-arm/55897
Cherry-pick upstream commit llvm-svn: 314851:
https://github.com/llvm/llvm-project/commit/0d586d06a756b126a7eb43a21ecc12bd243d7cd8#diff-549f1733063df365663fe375f336034e33e16d6bf2826cd4f966045aeb136007
----
[PATCH] [compiler-rt] Add back ARM EABI aliases where legal.
r303188 removed all the uses of aliases for EABI functions from
compiler-rt, because some of them had mismatched calling conventions.
Obviously, we can't use aliases for functions which don't have the same
calling convention, but that's only an issue for floating-point
functions with the hardfloat ABI. In other cases, the stubs increase
size and reduce performance for no benefit.
This patch adds back the aliases, with appropriate checks to make sure
they're only used in cases where the calling convention matches.
llvm-svn: 314851
PR port-arm/55897
Fix ABI mismatch for armhf runtime routines for floating-point arithmetics;
For hard-float arm variants, provide
(1) generic runtime routines with correct calling convention, and
(2) EABI runtime routines at the same time.
I've confirmed that no binary changes for kernels.
LGTM by skrll
 1.10 07-May-2017  christos Add the imprecise catrigl functions back.
 1.9 19-Sep-2016  christos branches: 1.9.4;
Add the complex trig functions from FreeBSD
 1.8 10-Oct-2014  christos branches: 1.8.2;
whitespace
 1.7 10-Oct-2014  martin Add missing catanh variant (and readd it to the Makefile list)
 1.6 10-Oct-2014  martin Add cimag (apparently accidently dropped in previous revision and reorg)
 1.5 10-Oct-2014  christos Add the missing complex functions.
 1.4 18-Mar-2011  joerg branches: 1.4.22;
Add missing MLINKS. From Stathis Kamperis.
 1.3 15-Sep-2010  christos Commit SoC long double support from Stathis Kamperis
 1.2 08-Mar-2008  drochner branches: 1.2.2;
fix so that it doesn't interact strangely with ARCH_SRCS definitions
in the base Makefile, makes the lib built correctly again for eg amd64
(seen by wiz)
 1.1 20-Feb-2008  drochner branches: 1.1.2;
Add manpages for the complex math functions, originally from SUSv3,
roff source from the Linux documentation project.
Modifications before import:
-added NetBSD RCS ID
-removed Linux PROLOG and declarations with "long double"
-ran the "deshallify" script as required by The Open Group
Split out complex related things into an own Makefile fragment.
Thanks to hubertf for directions.
 1.1.2.1 24-Mar-2008  keiichi sync with head.
 1.2.2.2 23-Mar-2008  matt sync with HEAD
 1.2.2.1 08-Mar-2008  matt file Makefile.inc was added on branch matt-armv6 on 2008-03-23 00:40:27 +0000
 1.4.22.1 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.8.2.1 04-Nov-2016  pgoyette Sync with HEAD
 1.9.4.1 11-May-2017  pgoyette Sync with HEAD
 1.4 27-Sep-2017  maya Mention tgmath cproj, creal, cabs

following copysign example use of "real-floating" with "complex-floating"
 1.3 29-Jan-2013  matt Document long double versions of these routines.
 1.2 27-Dec-2012  wiz Convert to mdoc and fix stuff while here.
 1.1 20-Feb-2008  drochner branches: 1.1.4; 1.1.28; 1.1.34;
Add manpages for the complex math functions, originally from SUSv3,
roff source from the Linux documentation project.
Modifications before import:
-added NetBSD RCS ID
-removed Linux PROLOG and declarations with "long double"
-ran the "deshallify" script as required by The Open Group
Split out complex related things into an own Makefile fragment.
Thanks to hubertf for directions.
 1.1.34.1 25-Feb-2013  tls resync with head
 1.1.28.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.28.1 23-Jan-2013  yamt sync with head
 1.1.4.2 23-Mar-2008  matt sync with HEAD
 1.1.4.1 20-Feb-2008  matt file cabs.3 was added on branch matt-armv6 on 2008-03-23 00:40:27 +0000
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.1 10-Oct-2014  christos branches: 1.1.2;
Add the missing complex functions.
 1.1.2.2 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.1.2.1 10-Oct-2014  martin file cabsl.c was added on branch netbsd-7 on 2014-10-13 19:34:58 +0000
 1.3 29-Jan-2013  matt Document long double versions of these routines.
 1.2 27-Dec-2012  wiz Convert to mdoc and fix stuff while here.
 1.1 20-Feb-2008  drochner branches: 1.1.4; 1.1.28; 1.1.34;
Add manpages for the complex math functions, originally from SUSv3,
roff source from the Linux documentation project.
Modifications before import:
-added NetBSD RCS ID
-removed Linux PROLOG and declarations with "long double"
-ran the "deshallify" script as required by The Open Group
Split out complex related things into an own Makefile fragment.
Thanks to hubertf for directions.
 1.1.34.1 25-Feb-2013  tls resync with head
 1.1.28.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.28.1 23-Jan-2013  yamt sync with head
 1.1.4.2 23-Mar-2008  matt sync with HEAD
 1.1.4.1 20-Feb-2008  matt file cacos.3 was added on branch matt-armv6 on 2008-03-23 00:40:27 +0000
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.4 14-Mar-2013  njoly Remove unknown .LP macro.
 1.3 29-Jan-2013  matt Document long double versions of these routines.
 1.2 27-Dec-2012  wiz Convert to mdoc and fix stuff while here.
 1.1 20-Feb-2008  drochner branches: 1.1.4; 1.1.28; 1.1.34;
Add manpages for the complex math functions, originally from SUSv3,
roff source from the Linux documentation project.
Modifications before import:
-added NetBSD RCS ID
-removed Linux PROLOG and declarations with "long double"
-ran the "deshallify" script as required by The Open Group
Split out complex related things into an own Makefile fragment.
Thanks to hubertf for directions.
 1.1.34.2 23-Jun-2013  tls resync from head
 1.1.34.1 25-Feb-2013  tls resync with head
 1.1.28.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.28.1 23-Jan-2013  yamt sync with head
 1.1.4.2 23-Mar-2008  matt sync with HEAD
 1.1.4.1 20-Feb-2008  matt file cacosh.3 was added on branch matt-armv6 on 2008-03-23 00:40:27 +0000
 1.2 03-Aug-2009  drochner As noticed by Stathis Kamperis, the original implementation does not
always return the correct principal value (with real>=0).
(eg cacosh(ccos(1.0I)) was -1)
Replace by a more ground-up one which should do better.
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.2 03-Aug-2009  drochner As noticed by Stathis Kamperis, the original implementation does not
always return the correct principal value (with real>=0).
(eg cacosh(ccos(1.0I)) was -1)
Replace by a more ground-up one which should do better.
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.1 10-Oct-2014  christos branches: 1.1.2;
Add the missing complex functions.
 1.1.2.2 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.1.2.1 10-Oct-2014  martin file cacoshl.c was added on branch netbsd-7 on 2014-10-13 19:34:58 +0000
 1.1 10-Oct-2014  christos branches: 1.1.2;
Add the missing complex functions.
 1.1.2.2 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.1.2.1 10-Oct-2014  martin file cacosl.c was added on branch netbsd-7 on 2014-10-13 19:34:58 +0000
 1.3 29-Jan-2013  matt Document long double versions of these routines.
 1.2 27-Dec-2012  wiz Convert to mdoc and fix stuff while here.
 1.1 20-Feb-2008  drochner branches: 1.1.4; 1.1.28; 1.1.34;
Add manpages for the complex math functions, originally from SUSv3,
roff source from the Linux documentation project.
Modifications before import:
-added NetBSD RCS ID
-removed Linux PROLOG and declarations with "long double"
-ran the "deshallify" script as required by The Open Group
Split out complex related things into an own Makefile fragment.
Thanks to hubertf for directions.
 1.1.34.1 25-Feb-2013  tls resync with head
 1.1.28.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.28.1 23-Jan-2013  yamt sync with head
 1.1.4.2 23-Mar-2008  matt sync with HEAD
 1.1.4.1 20-Feb-2008  matt file carg.3 was added on branch matt-armv6 on 2008-03-23 00:40:27 +0000
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.1 10-Oct-2014  christos branches: 1.1.2;
Add the missing complex functions.
 1.1.2.2 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.1.2.1 10-Oct-2014  martin file cargl.c was added on branch netbsd-7 on 2014-10-13 19:34:58 +0000
 1.3 29-Jan-2013  matt Document long double versions of these routines.
 1.2 27-Dec-2012  wiz Convert to mdoc and fix stuff while here.
 1.1 20-Feb-2008  drochner branches: 1.1.4; 1.1.28; 1.1.34;
Add manpages for the complex math functions, originally from SUSv3,
roff source from the Linux documentation project.
Modifications before import:
-added NetBSD RCS ID
-removed Linux PROLOG and declarations with "long double"
-ran the "deshallify" script as required by The Open Group
Split out complex related things into an own Makefile fragment.
Thanks to hubertf for directions.
 1.1.34.1 25-Feb-2013  tls resync with head
 1.1.28.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.28.1 23-Jan-2013  yamt sync with head
 1.1.4.2 23-Mar-2008  matt sync with HEAD
 1.1.4.1 20-Feb-2008  matt file casin.3 was added on branch matt-armv6 on 2008-03-23 00:40:27 +0000
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.3 29-Jan-2013  matt Document long double versions of these routines.
 1.2 27-Dec-2012  wiz Convert to mdoc and fix stuff while here.
 1.1 20-Feb-2008  drochner branches: 1.1.4; 1.1.28; 1.1.34;
Add manpages for the complex math functions, originally from SUSv3,
roff source from the Linux documentation project.
Modifications before import:
-added NetBSD RCS ID
-removed Linux PROLOG and declarations with "long double"
-ran the "deshallify" script as required by The Open Group
Split out complex related things into an own Makefile fragment.
Thanks to hubertf for directions.
 1.1.34.1 25-Feb-2013  tls resync with head
 1.1.28.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.28.1 23-Jan-2013  yamt sync with head
 1.1.4.2 23-Mar-2008  matt sync with HEAD
 1.1.4.1 20-Feb-2008  matt file casinh.3 was added on branch matt-armv6 on 2008-03-23 00:40:27 +0000
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.1 10-Oct-2014  christos branches: 1.1.2;
Add the missing complex functions.
 1.1.2.2 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.1.2.1 10-Oct-2014  martin file casinhl.c was added on branch netbsd-7 on 2014-10-13 19:34:58 +0000
 1.1 10-Oct-2014  christos branches: 1.1.2;
Add the missing complex functions.
 1.1.2.2 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.1.2.1 10-Oct-2014  martin file casinl.c was added on branch netbsd-7 on 2014-10-13 19:34:58 +0000
 1.3 29-Jan-2013  matt Document long double versions of these routines.
 1.2 27-Dec-2012  wiz Convert to mdoc and fix stuff while here.
 1.1 20-Feb-2008  drochner branches: 1.1.4; 1.1.28; 1.1.34;
Add manpages for the complex math functions, originally from SUSv3,
roff source from the Linux documentation project.
Modifications before import:
-added NetBSD RCS ID
-removed Linux PROLOG and declarations with "long double"
-ran the "deshallify" script as required by The Open Group
Split out complex related things into an own Makefile fragment.
Thanks to hubertf for directions.
 1.1.34.1 25-Feb-2013  tls resync with head
 1.1.28.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.28.1 23-Jan-2013  yamt sync with head
 1.1.4.2 23-Mar-2008  matt sync with HEAD
 1.1.4.1 20-Feb-2008  matt file catan.3 was added on branch matt-armv6 on 2008-03-23 00:40:27 +0000
 1.2 03-Jul-2011  mrg use DBL_MAX and FLT_MAX from <float.h> instead of hard coding some ieeefp values.
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.2 03-Jul-2011  mrg use DBL_MAX and FLT_MAX from <float.h> instead of hard coding some ieeefp values.
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.3 29-Jan-2013  matt Document long double versions of these routines.
 1.2 27-Dec-2012  wiz Convert to mdoc and fix stuff while here.
 1.1 20-Feb-2008  drochner branches: 1.1.4; 1.1.28; 1.1.34;
Add manpages for the complex math functions, originally from SUSv3,
roff source from the Linux documentation project.
Modifications before import:
-added NetBSD RCS ID
-removed Linux PROLOG and declarations with "long double"
-ran the "deshallify" script as required by The Open Group
Split out complex related things into an own Makefile fragment.
Thanks to hubertf for directions.
 1.1.34.1 25-Feb-2013  tls resync with head
 1.1.28.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.28.1 23-Jan-2013  yamt sync with head
 1.1.4.2 23-Mar-2008  matt sync with HEAD
 1.1.4.1 20-Feb-2008  matt file catanh.3 was added on branch matt-armv6 on 2008-03-23 00:40:27 +0000
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.3 10-Oct-2014  christos branches: 1.3.2;
use long constant
 1.2 10-Oct-2014  martin copy&pasto
 1.1 10-Oct-2014  martin Add missing catanh variant (and readd it to the Makefile list)
 1.3.2.2 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.3.2.1 10-Oct-2014  martin file catanhl.c was added on branch netbsd-7 on 2014-10-13 19:34:58 +0000
 1.1 10-Oct-2014  christos branches: 1.1.2;
Add the missing complex functions.
 1.1.2.2 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.1.2.1 10-Oct-2014  martin file catanl.c was added on branch netbsd-7 on 2014-10-13 19:34:58 +0000
 1.3 19-Apr-2022  rillig lib: remove CONSTCOND comment

Since 2021-01-31, lint doesn't need it anymore for the common pattern of
'do ... while (0)'.
 1.2 20-Sep-2016  christos branches: 1.2.2;
fix VAX!
 1.1 19-Sep-2016  christos Add the complex trig functions from FreeBSD
 1.2.2.2 04-Nov-2016  pgoyette Sync with HEAD
 1.2.2.1 20-Sep-2016  pgoyette file catrig.c was added on branch pgoyette-localcount on 2016-11-04 14:48:54 +0000
 1.2 19-Apr-2022  rillig lib: remove CONSTCOND comment

Since 2021-01-31, lint doesn't need it anymore for the common pattern of
'do ... while (0)'.
 1.1 19-Sep-2016  christos branches: 1.1.2;
Add the complex trig functions from FreeBSD
 1.1.2.2 04-Nov-2016  pgoyette Sync with HEAD
 1.1.2.1 19-Sep-2016  pgoyette file catrigf.c was added on branch pgoyette-localcount on 2016-11-04 14:48:54 +0000
 1.3 19-Apr-2022  rillig lib: remove CONSTCOND comment

Since 2021-01-31, lint doesn't need it anymore for the common pattern of
'do ... while (0)'.
 1.2 07-May-2017  christos mention why we don't support this (yet)
 1.1 19-Sep-2016  christos branches: 1.1.2; 1.1.6;
Add the complex trig functions from FreeBSD
 1.1.6.1 11-May-2017  pgoyette Sync with HEAD
 1.1.2.2 04-Nov-2016  pgoyette Sync with HEAD
 1.1.2.1 19-Sep-2016  pgoyette file catrigl.c was added on branch pgoyette-localcount on 2016-11-04 14:48:54 +0000
 1.3 29-Jan-2013  matt Document long double versions of these routines.
 1.2 27-Dec-2012  wiz Convert to mdoc and fix stuff while here.
 1.1 20-Feb-2008  drochner branches: 1.1.4; 1.1.28; 1.1.34;
Add manpages for the complex math functions, originally from SUSv3,
roff source from the Linux documentation project.
Modifications before import:
-added NetBSD RCS ID
-removed Linux PROLOG and declarations with "long double"
-ran the "deshallify" script as required by The Open Group
Split out complex related things into an own Makefile fragment.
Thanks to hubertf for directions.
 1.1.34.1 25-Feb-2013  tls resync with head
 1.1.28.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.28.1 23-Jan-2013  yamt sync with head
 1.1.4.2 23-Mar-2008  matt sync with HEAD
 1.1.4.1 20-Feb-2008  matt file ccos.3 was added on branch matt-armv6 on 2008-03-23 00:40:27 +0000
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.3 29-Jan-2013  matt Document long double versions of these routines.
 1.2 27-Dec-2012  wiz Convert to mdoc and fix stuff while here.
 1.1 20-Feb-2008  drochner branches: 1.1.4; 1.1.28; 1.1.34;
Add manpages for the complex math functions, originally from SUSv3,
roff source from the Linux documentation project.
Modifications before import:
-added NetBSD RCS ID
-removed Linux PROLOG and declarations with "long double"
-ran the "deshallify" script as required by The Open Group
Split out complex related things into an own Makefile fragment.
Thanks to hubertf for directions.
 1.1.34.1 25-Feb-2013  tls resync with head
 1.1.28.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.28.1 23-Jan-2013  yamt sync with head
 1.1.4.2 23-Mar-2008  matt sync with HEAD
 1.1.4.1 20-Feb-2008  matt file ccosh.3 was added on branch matt-armv6 on 2008-03-23 00:40:27 +0000
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.1 10-Oct-2014  christos branches: 1.1.2;
Add the missing complex functions.
 1.1.2.2 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.1.2.1 10-Oct-2014  martin file ccoshl.c was added on branch netbsd-7 on 2014-10-13 19:34:58 +0000
 1.1 10-Oct-2014  christos branches: 1.1.2;
Add the missing complex functions.
 1.1.2.2 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.1.2.1 10-Oct-2014  martin file ccosl.c was added on branch netbsd-7 on 2014-10-13 19:34:58 +0000
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.2 10-Oct-2014  christos branches: 1.2.2;
try to make vax work.
 1.1 10-Oct-2014  christos Add the missing complex functions.
 1.2.2.2 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.2.2.1 10-Oct-2014  martin file cephes_subrl.c was added on branch netbsd-7 on 2014-10-13 19:34:58 +0000
 1.1 10-Oct-2014  christos branches: 1.1.2;
Add the missing complex functions.
 1.1.2.2 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.1.2.1 10-Oct-2014  martin file cephes_subrl.h was added on branch netbsd-7 on 2014-10-13 19:34:58 +0000
 1.3 29-Jan-2013  matt Document long double versions of these routines.
 1.2 27-Dec-2012  wiz Convert to mdoc and fix stuff while here.
 1.1 20-Feb-2008  drochner branches: 1.1.4; 1.1.28; 1.1.34;
Add manpages for the complex math functions, originally from SUSv3,
roff source from the Linux documentation project.
Modifications before import:
-added NetBSD RCS ID
-removed Linux PROLOG and declarations with "long double"
-ran the "deshallify" script as required by The Open Group
Split out complex related things into an own Makefile fragment.
Thanks to hubertf for directions.
 1.1.34.1 25-Feb-2013  tls resync with head
 1.1.28.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.28.1 23-Jan-2013  yamt sync with head
 1.1.4.2 23-Mar-2008  matt sync with HEAD
 1.1.4.1 20-Feb-2008  matt file cexp.3 was added on branch matt-armv6 on 2008-03-23 00:40:27 +0000
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.1 10-Oct-2014  christos branches: 1.1.2;
Add the missing complex functions.
 1.1.2.2 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.1.2.1 10-Oct-2014  martin file cexpl.c was added on branch netbsd-7 on 2014-10-13 19:34:58 +0000
 1.4 27-Dec-2012  wiz Convert to mdoc and fix stuff while here.
 1.3 15-Sep-2010  wiz branches: 1.3.6; 1.3.12;
Remove trailing whitespace.
 1.2 15-Sep-2010  christos Commit SoC long double support from Stathis Kamperis
 1.1 20-Feb-2008  drochner branches: 1.1.4;
Add manpages for the complex math functions, originally from SUSv3,
roff source from the Linux documentation project.
Modifications before import:
-added NetBSD RCS ID
-removed Linux PROLOG and declarations with "long double"
-ran the "deshallify" script as required by The Open Group
Split out complex related things into an own Makefile fragment.
Thanks to hubertf for directions.
 1.1.4.2 23-Mar-2008  matt sync with HEAD
 1.1.4.1 20-Feb-2008  matt file cimag.3 was added on branch matt-armv6 on 2008-03-23 00:40:27 +0000
 1.3.12.1 25-Feb-2013  tls resync with head
 1.3.6.1 23-Jan-2013  yamt sync with head
 1.2 15-Sep-2010  christos Commit SoC long double support from Stathis Kamperis
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.2 15-Sep-2010  christos Commit SoC long double support from Stathis Kamperis
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.3 20-Sep-2010  christos no more ieee ifdefs
 1.2 17-Sep-2010  christos don't compile long double support for the havenots.
 1.1 15-Sep-2010  christos Commit SoC long double support from Stathis Kamperis
 1.3 29-Jan-2013  matt Document long double versions of these routines.
 1.2 27-Dec-2012  wiz Convert to mdoc and fix stuff while here.
 1.1 20-Feb-2008  drochner branches: 1.1.4; 1.1.28; 1.1.34;
Add manpages for the complex math functions, originally from SUSv3,
roff source from the Linux documentation project.
Modifications before import:
-added NetBSD RCS ID
-removed Linux PROLOG and declarations with "long double"
-ran the "deshallify" script as required by The Open Group
Split out complex related things into an own Makefile fragment.
Thanks to hubertf for directions.
 1.1.34.1 25-Feb-2013  tls resync with head
 1.1.28.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.28.1 23-Jan-2013  yamt sync with head
 1.1.4.2 23-Mar-2008  matt sync with HEAD
 1.1.4.1 20-Feb-2008  matt file clog.3 was added on branch matt-armv6 on 2008-03-23 00:40:27 +0000
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.1 10-Oct-2014  christos branches: 1.1.2;
Add the missing complex functions.
 1.1.2.2 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.1.2.1 10-Oct-2014  martin file clogl.c was added on branch netbsd-7 on 2014-10-13 19:34:58 +0000
 1.4 27-Dec-2012  wiz Convert to mdoc and fix stuff while here.
 1.3 15-Sep-2010  wiz branches: 1.3.6; 1.3.12;
Remove trailing whitespace.
 1.2 15-Sep-2010  christos Commit SoC long double support from Stathis Kamperis
 1.1 20-Feb-2008  drochner branches: 1.1.4;
Add manpages for the complex math functions, originally from SUSv3,
roff source from the Linux documentation project.
Modifications before import:
-added NetBSD RCS ID
-removed Linux PROLOG and declarations with "long double"
-ran the "deshallify" script as required by The Open Group
Split out complex related things into an own Makefile fragment.
Thanks to hubertf for directions.
 1.1.4.2 23-Mar-2008  matt sync with HEAD
 1.1.4.1 20-Feb-2008  matt file conj.3 was added on branch matt-armv6 on 2008-03-23 00:40:27 +0000
 1.3.12.1 25-Feb-2013  tls resync with head
 1.3.6.1 23-Jan-2013  yamt sync with head
 1.2 15-Sep-2010  christos Commit SoC long double support from Stathis Kamperis
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.2 15-Sep-2010  christos Commit SoC long double support from Stathis Kamperis
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.4 20-Sep-2010  christos no more ieee ifdefs
 1.3 20-Sep-2010  christos shouldn't need ieee.h here.
 1.2 17-Sep-2010  christos don't compile long double support for the havenots.
 1.1 15-Sep-2010  christos Commit SoC long double support from Stathis Kamperis
 1.3 29-Jan-2013  matt Document long double versions of these routines.
 1.2 27-Dec-2012  wiz Convert to mdoc and fix stuff while here.
 1.1 20-Feb-2008  drochner branches: 1.1.4; 1.1.28; 1.1.34;
Add manpages for the complex math functions, originally from SUSv3,
roff source from the Linux documentation project.
Modifications before import:
-added NetBSD RCS ID
-removed Linux PROLOG and declarations with "long double"
-ran the "deshallify" script as required by The Open Group
Split out complex related things into an own Makefile fragment.
Thanks to hubertf for directions.
 1.1.34.1 25-Feb-2013  tls resync with head
 1.1.28.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.28.1 23-Jan-2013  yamt sync with head
 1.1.4.2 23-Mar-2008  matt sync with HEAD
 1.1.4.1 20-Feb-2008  matt file cpow.3 was added on branch matt-armv6 on 2008-03-23 00:40:27 +0000
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.1 10-Oct-2014  christos branches: 1.1.2;
Add the missing complex functions.
 1.1.2.2 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.1.2.1 10-Oct-2014  martin file cpowl.c was added on branch netbsd-7 on 2014-10-13 19:34:58 +0000
 1.5 27-Sep-2017  maya Mention tgmath cproj, creal, cabs

following copysign example use of "real-floating" with "complex-floating"
 1.4 27-Dec-2012  wiz Convert to mdoc and fix stuff while here.
 1.3 29-Nov-2011  drochner branches: 1.3.6;
fix minor typo
 1.2 15-Sep-2010  wiz branches: 1.2.6;
Remove trailing whitespace.
 1.1 15-Sep-2010  christos Commit SoC long double support from Stathis Kamperis
 1.2.6.2 23-Jan-2013  yamt sync with head
 1.2.6.1 17-Apr-2012  yamt sync with head
 1.3.6.1 25-Feb-2013  tls resync with head
 1.5 02-Nov-2011  christos Fix the vax build under gcc-4.5 which now detects that floating constants
don't fit or are effectively 0.
 1.4 02-Mar-2011  christos PR/44663: Corinna Vinschen: Fix misplaced parenthesis that produces the wrong
result.
 1.3 20-Sep-2010  christos branches: 1.3.2;
deal with infinity on the vax.
 1.2 20-Sep-2010  christos get rid of ieee dependencies.
 1.1 15-Sep-2010  christos Commit SoC long double support from Stathis Kamperis
 1.3.2.1 05-Mar-2011  bouyer Sync with HEAD
 1.5 02-Nov-2011  christos Fix the vax build under gcc-4.5 which now detects that floating constants
don't fit or are effectively 0.
 1.4 02-Mar-2011  christos PR/44663: Corinna Vinschen: Fix misplaced parenthesis that produces the wrong
result.
 1.3 20-Sep-2010  christos branches: 1.3.2;
deal with infinity on the vax.
 1.2 20-Sep-2010  christos get rid of ieee dependencies.
 1.1 15-Sep-2010  christos Commit SoC long double support from Stathis Kamperis
 1.3.2.1 05-Mar-2011  bouyer Sync with HEAD
 1.7 10-Oct-2014  christos Add the missing complex functions.
 1.6 02-Nov-2011  christos branches: 1.6.20;
Fix the vax build under gcc-4.5 which now detects that floating constants
don't fit or are effectively 0.
 1.5 02-Mar-2011  christos PR/44663: Corinna Vinschen: Fix misplaced parenthesis that produces the wrong
result.
 1.4 20-Sep-2010  christos branches: 1.4.2;
deal with infinity on the vax.
 1.3 20-Sep-2010  christos get rid of ieee dependencies.
 1.2 17-Sep-2010  christos don't compile long double support for the havenots.
 1.1 15-Sep-2010  christos Commit SoC long double support from Stathis Kamperis
 1.4.2.1 05-Mar-2011  bouyer Sync with HEAD
 1.6.20.1 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.5 27-Sep-2017  maya Mention tgmath cproj, creal, cabs

following copysign example use of "real-floating" with "complex-floating"
 1.4 27-Dec-2012  wiz Convert to mdoc and fix stuff while here.
 1.3 15-Sep-2010  wiz branches: 1.3.6; 1.3.12;
Remove trailing whitespace.
 1.2 15-Sep-2010  christos Commit SoC long double support from Stathis Kamperis
 1.1 20-Feb-2008  drochner branches: 1.1.4;
Add manpages for the complex math functions, originally from SUSv3,
roff source from the Linux documentation project.
Modifications before import:
-added NetBSD RCS ID
-removed Linux PROLOG and declarations with "long double"
-ran the "deshallify" script as required by The Open Group
Split out complex related things into an own Makefile fragment.
Thanks to hubertf for directions.
 1.1.4.2 23-Mar-2008  matt sync with HEAD
 1.1.4.1 20-Feb-2008  matt file creal.3 was added on branch matt-armv6 on 2008-03-23 00:40:27 +0000
 1.3.12.1 25-Feb-2013  tls resync with head
 1.3.6.1 23-Jan-2013  yamt sync with head
 1.2 15-Sep-2010  christos Commit SoC long double support from Stathis Kamperis
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.2 15-Sep-2010  christos Commit SoC long double support from Stathis Kamperis
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.3 20-Sep-2010  christos no more ieee ifdefs
 1.2 17-Sep-2010  christos don't compile long double support for the havenots.
 1.1 15-Sep-2010  christos Commit SoC long double support from Stathis Kamperis
 1.3 29-Jan-2013  matt Document long double versions of these routines.
 1.2 27-Dec-2012  wiz Convert to mdoc and fix stuff while here.
 1.1 20-Feb-2008  drochner branches: 1.1.4; 1.1.28; 1.1.34;
Add manpages for the complex math functions, originally from SUSv3,
roff source from the Linux documentation project.
Modifications before import:
-added NetBSD RCS ID
-removed Linux PROLOG and declarations with "long double"
-ran the "deshallify" script as required by The Open Group
Split out complex related things into an own Makefile fragment.
Thanks to hubertf for directions.
 1.1.34.1 25-Feb-2013  tls resync with head
 1.1.28.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.28.1 23-Jan-2013  yamt sync with head
 1.1.4.2 23-Mar-2008  matt sync with HEAD
 1.1.4.1 20-Feb-2008  matt file csin.3 was added on branch matt-armv6 on 2008-03-23 00:40:27 +0000
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.3 29-Jan-2013  matt Document long double versions of these routines.
 1.2 27-Dec-2012  wiz Convert to mdoc and fix stuff while here.
 1.1 20-Feb-2008  drochner branches: 1.1.4; 1.1.28; 1.1.34;
Add manpages for the complex math functions, originally from SUSv3,
roff source from the Linux documentation project.
Modifications before import:
-added NetBSD RCS ID
-removed Linux PROLOG and declarations with "long double"
-ran the "deshallify" script as required by The Open Group
Split out complex related things into an own Makefile fragment.
Thanks to hubertf for directions.
 1.1.34.1 25-Feb-2013  tls resync with head
 1.1.28.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.28.1 23-Jan-2013  yamt sync with head
 1.1.4.2 23-Mar-2008  matt sync with HEAD
 1.1.4.1 20-Feb-2008  matt file csinh.3 was added on branch matt-armv6 on 2008-03-23 00:40:27 +0000
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.1 10-Oct-2014  christos branches: 1.1.2;
Add the missing complex functions.
 1.1.2.2 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.1.2.1 10-Oct-2014  martin file csinhl.c was added on branch netbsd-7 on 2014-10-13 19:34:58 +0000
 1.1 10-Oct-2014  christos branches: 1.1.2;
Add the missing complex functions.
 1.1.2.2 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.1.2.1 10-Oct-2014  martin file csinl.c was added on branch netbsd-7 on 2014-10-13 19:34:58 +0000
 1.3 29-Jan-2013  matt Document long double versions of these routines.
 1.2 27-Dec-2012  wiz Convert to mdoc and fix stuff while here.
 1.1 20-Feb-2008  drochner branches: 1.1.4; 1.1.28; 1.1.34;
Add manpages for the complex math functions, originally from SUSv3,
roff source from the Linux documentation project.
Modifications before import:
-added NetBSD RCS ID
-removed Linux PROLOG and declarations with "long double"
-ran the "deshallify" script as required by The Open Group
Split out complex related things into an own Makefile fragment.
Thanks to hubertf for directions.
 1.1.34.1 25-Feb-2013  tls resync with head
 1.1.28.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.28.1 23-Jan-2013  yamt sync with head
 1.1.4.2 23-Mar-2008  matt sync with HEAD
 1.1.4.1 20-Feb-2008  matt file csqrt.3 was added on branch matt-armv6 on 2008-03-23 00:40:27 +0000
 1.4 01-Jan-2017  maya compare to zero, instead of using signbit, and be more specific in comment.
-0.0 > 0 is also false. no functional change.

while this is mostly a change to be consistent in style (the rest of the
comparisons aren't done with signbit), it is also a micro-optimization.

with our default compile flags, calls to copysign are libm calls (and a
whole function call!!). this generates more efficient code.
 1.3 31-Dec-2016  maya csqrt has a branch cut on the negative real axis, and this requires
delicacy in order to maintain continuity around it.

we have an initial case to deal with a fairly common case: getting
a real number. Avoid dealing with the branch cut in this case by
checking if the real part is negative.

later, -0.0 < 0 is not met, so instead, test for a negative number
using signbit, so negative zero is also treated as a negative number.

Fixes last part of PR lib/51427: libm issues triggered by py-numpy

ok riastradh
 1.2 31-Dec-2016  maya Spare ourselves a fabs call. We already check the sign later.
w = r + y*I is the same as w = r because this is the y == 0 case.

no functional change.
 1.1 20-Aug-2007  drochner branches: 1.1.54;
Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.1.54.1 07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.4 01-Jan-2017  maya compare to zero, instead of using signbit, and be more specific in comment.
-0.0 > 0 is also false. no functional change.

while this is mostly a change to be consistent in style (the rest of the
comparisons aren't done with signbit), it is also a micro-optimization.

with our default compile flags, calls to copysign are libm calls (and a
whole function call!!). this generates more efficient code.
 1.3 31-Dec-2016  maya similar to csqrt, spare ourselves a fabsf call. we already check sign
later on, use this to our advantage.

No functional change.
 1.2 31-Dec-2016  maya csqrt has a branch cut on the negative real axis, and this requires
delicacy in order to maintain continuity around it.

we have an initial case to deal with a fairly common case: getting
a real number. Avoid dealing with the branch cut in this case by
checking if the real part is negative.

later, -0.0 < 0 is not met, so instead, test for a negative number
using signbit, so negative zero is also treated as a negative number.

Fixes last part of PR lib/51427: libm issues triggered by py-numpy

ok riastradh
 1.1 20-Aug-2007  drochner branches: 1.1.54;
Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.1.54.1 07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.2 11-Oct-2014  christos branches: 1.2.2;
namespace protection
 1.1 10-Oct-2014  christos Add the missing complex functions.
 1.2.2.2 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.2.2.1 11-Oct-2014  martin file csqrtl.c was added on branch netbsd-7 on 2014-10-13 19:34:58 +0000
 1.3 29-Jan-2013  matt Document long double versions of these routines.
 1.2 27-Dec-2012  wiz Convert to mdoc and fix stuff while here.
 1.1 20-Feb-2008  drochner branches: 1.1.4; 1.1.28; 1.1.34;
Add manpages for the complex math functions, originally from SUSv3,
roff source from the Linux documentation project.
Modifications before import:
-added NetBSD RCS ID
-removed Linux PROLOG and declarations with "long double"
-ran the "deshallify" script as required by The Open Group
Split out complex related things into an own Makefile fragment.
Thanks to hubertf for directions.
 1.1.34.1 25-Feb-2013  tls resync with head
 1.1.28.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.28.1 23-Jan-2013  yamt sync with head
 1.1.4.2 23-Mar-2008  matt sync with HEAD
 1.1.4.1 20-Feb-2008  matt file ctan.3 was added on branch matt-armv6 on 2008-03-23 00:40:28 +0000
 1.2 03-Jul-2011  mrg use DBL_MAX and FLT_MAX from <float.h> instead of hard coding some ieeefp values.
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.2 03-Jul-2011  mrg use DBL_MAX and FLT_MAX from <float.h> instead of hard coding some ieeefp values.
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.3 29-Jan-2013  matt Document long double versions of these routines.
 1.2 27-Dec-2012  wiz Convert to mdoc and fix stuff while here.
 1.1 20-Feb-2008  drochner branches: 1.1.4; 1.1.28; 1.1.34;
Add manpages for the complex math functions, originally from SUSv3,
roff source from the Linux documentation project.
Modifications before import:
-added NetBSD RCS ID
-removed Linux PROLOG and declarations with "long double"
-ran the "deshallify" script as required by The Open Group
Split out complex related things into an own Makefile fragment.
Thanks to hubertf for directions.
 1.1.34.1 25-Feb-2013  tls resync with head
 1.1.28.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.28.1 23-Jan-2013  yamt sync with head
 1.1.4.2 23-Mar-2008  matt sync with HEAD
 1.1.4.1 20-Feb-2008  matt file ctanh.3 was added on branch matt-armv6 on 2008-03-23 00:40:28 +0000
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.1 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.1 10-Oct-2014  christos branches: 1.1.2;
Add the missing complex functions.
 1.1.2.2 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.1.2.1 10-Oct-2014  martin file ctanhl.c was added on branch netbsd-7 on 2014-10-13 19:34:58 +0000
 1.1 10-Oct-2014  christos branches: 1.1.2;
Add the missing complex functions.
 1.1.2.2 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.1.2.1 10-Oct-2014  martin file ctanl.c was added on branch netbsd-7 on 2014-10-13 19:34:58 +0000
 1.1 15-Mar-2006  kleink Add nan(3), nanf(3), and nanl(3); welcome libm.so.0.4.
 1.5 27-Aug-2016  dholland strtod, not strod.
 1.4 10-Jun-2011  njoly nanl() do use strtold(), not strtod().
 1.3 17-Dec-2010  njoly branches: 1.3.4;
Fix typo in cross-refernce.
 1.2 30-Apr-2008  martin Convert TNF licenses to new 2 clause variant
 1.1 15-Mar-2006  kleink branches: 1.1.18;
Add nan(3), nanf(3), and nanl(3); welcome libm.so.0.4.
 1.1.18.1 18-May-2008  yamt sync with head.
 1.3.4.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.3 07-Mar-2017  maya Remove redundant null check before free()
It is guaranteed to be fine also by C99
 1.2 28-Apr-2008  martin branches: 1.2.44; 1.2.48;
Remove clause 3 and 4 from TNF licenses
 1.1 15-Mar-2006  kleink branches: 1.1.18;
Add nan(3), nanf(3), and nanl(3); welcome libm.so.0.4.
 1.1.18.1 18-May-2008  yamt sync with head.
 1.2.48.1 21-Apr-2017  bouyer Sync with HEAD
 1.2.44.1 20-Mar-2017  pgoyette Sync with HEAD
 1.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.1 15-Mar-2006  kleink branches: 1.1.18;
Add nan(3), nanf(3), and nanl(3); welcome libm.so.0.4.
 1.1.18.1 18-May-2008  yamt sync with head.
 1.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.1 15-Mar-2006  kleink branches: 1.1.18;
Add nan(3), nanf(3), and nanl(3); welcome libm.so.0.4.
 1.1.18.1 18-May-2008  yamt sync with head.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.2 23-Feb-2025  christos PR/59093: Onno van der Linden: Follow suit and do the same as the ld80 version
 1.1 21-Jan-2024  christos branches: 1.1.2;
Bring in more long double functions from FreeBSD.
 1.1.2.1 02-Aug-2025  perseant Sync with HEAD
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.2 29-Aug-2022  riastradh libm: Fix some whitespace issues in recent sincos additions.
 1.1 27-Aug-2022  christos Add sincos{,f,l} from FreeBSD
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.2 22-Jan-2024  kre This set of changes seem to be sufficient to make at least the
amd64 port build again after the long double math function infusion
from yesterday.

Feel free (without consulting me, I'm just hacking about) to revert
any of this and do it a better way.

Note: this is not intended to be complete, in particular, in <math.h>
I added prototypes only for the functions that are needed for a
successful build, not all of the new ones...
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.2 22-Jan-2024  kre This set of changes seem to be sufficient to make at least the
amd64 port build again after the long double math function infusion
from yesterday.

Feel free (without consulting me, I'm just hacking about) to revert
any of this and do it a better way.

Note: this is not intended to be complete, in particular, in <math.h>
I added prototypes only for the functions that are needed for a
successful build, not all of the new ones...
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.3 03-Apr-2024  christos remove #include <ieeefp.h> for i386 now that it is included in math_private.h
 1.2 22-Jan-2024  kre This set of changes seem to be sufficient to make at least the
amd64 port build again after the long double math function infusion
from yesterday.

Feel free (without consulting me, I'm just hacking about) to revert
any of this and do it a better way.

Note: this is not intended to be complete, in particular, in <math.h>
I added prototypes only for the functions that are needed for a
successful build, not all of the new ones...
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.3 22-Feb-2025  christos PR/59093: Onno van der Linden: Elide compiler warning
 1.2 03-Apr-2024  christos branches: 1.2.2;
remove #include <ieeefp.h> for i386 now that it is included in math_private.h
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.2.2.1 02-Aug-2025  perseant Sync with HEAD
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.3 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.2 29-Aug-2022  riastradh libm: Fix some whitespace issues in recent sincos additions.
 1.1 27-Aug-2022  christos Add sincos{,f,l} from FreeBSD
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.2 17-Jul-2024  riastradh libm: Fix `mantissa' to say `significand' in comments.

(mantissa = fractional part of log(significand))

No functional change intended.
 1.1 21-Jan-2024  christos branches: 1.1.2;
Bring in more long double functions from FreeBSD.
 1.1.2.1 02-Aug-2025  perseant Sync with HEAD
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.2 03-Apr-2024  christos remove #include <ieeefp.h> for i386 now that it is included in math_private.h
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.2 03-Apr-2024  christos remove #include <ieeefp.h> for i386 now that it is included in math_private.h
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.2 03-Apr-2024  christos remove #include <ieeefp.h> for i386 now that it is included in math_private.h
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.2 03-Apr-2024  christos remove #include <ieeefp.h> for i386 now that it is included in math_private.h
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.2 03-Apr-2024  christos remove #include <ieeefp.h> for i386 now that it is included in math_private.h
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.2 03-Apr-2024  christos remove #include <ieeefp.h> for i386 now that it is included in math_private.h
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.2 03-Apr-2024  christos remove #include <ieeefp.h> for i386 now that it is included in math_private.h
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.2 03-Apr-2024  christos remove #include <ieeefp.h> for i386 now that it is included in math_private.h
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.19 04-Dec-2022  uwe lib: Mark up error names in man pages with .Er
 1.18 03-Jul-2017  wiz Remove workaround for ancient HTML generation code.
 1.17 29-Jan-2013  matt Document the long double versions.
 1.16 07-Aug-2003  agc branches: 1.16.54; 1.16.60;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.15 16-Apr-2003  wiz Use
.In header.h
instead of
.Fd #include \*[Lt]header.h\*[Gt]
Much easier to read and write, and supported by groff for ages.
Okayed by ross.
 1.14 20-Feb-2002  wiz Sort SEE ALSO.
 1.13 07-Feb-2002  ross Generate <>& symbolically.
 1.12 15-Aug-1999  kleink Add single-precision versions of interfaces to their manual pages' NAME section
and install links as appropriate.
 1.11 02-Jul-1999  simonb More trailing white space.
 1.10 05-Feb-1998  perry add LIBRARY section to man page
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 14-Jul-1997  kleink Add missing standards conformance statements.
 1.7 29-Mar-1997  christos PR/3405: Krister Walfridsson: Various typos; since we compile with POSIX
libm, we should not xref matherr(3), and describe the errno settings.
 1.6 14-Apr-1995  jtc First cut at adding float versions of math functions to the manpages.
 1.5 04-Mar-1995  jtc First pass at documenting "float" versions of these functions.
 1.4 29-Oct-1993  jtc Fix formatting of SEE ALSO section.
 1.3 14-Aug-1993  mycroft New code from uunet.
 1.2 01-Aug-1993  mycroft Add RCS indentifiers.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.16.60.1 25-Feb-2013  tls resync with head
 1.16.54.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.18 04-Dec-2022  uwe lib: Mark up error names in man pages with .Er
 1.17 19-Sep-2014  wiz Sort sections. From Henning Petersen in PR 49222.
 1.16 29-Jan-2013  matt branches: 1.16.8;
Document the long double versions.
 1.15 07-Aug-2003  agc branches: 1.15.54; 1.15.60;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.14 16-Apr-2003  wiz Use
.In header.h
instead of
.Fd #include \*[Lt]header.h\*[Gt]
Much easier to read and write, and supported by groff for ages.
Okayed by ross.
 1.13 07-Feb-2002  ross Generate <>& symbolically.
 1.12 15-Aug-1999  kleink Add single-precision versions of interfaces to their manual pages' NAME section
and install links as appropriate.
 1.11 02-Jul-1999  simonb More trailing white space.
 1.10 05-Feb-1998  perry add LIBRARY section to man page
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 29-Mar-1997  christos PR/3405: Krister Walfridsson: Various typos; since we compile with POSIX
libm, we should not xref matherr(3), and describe the errno settings.
 1.7 30-Mar-1996  jtc infnan(3) no longer exists.
 1.6 14-Apr-1995  jtc First cut at adding float versions of math functions to the manpages.
 1.5 04-Mar-1995  jtc First pass at documenting "float" versions of these functions.
 1.4 29-Oct-1993  jtc Fix formatting of SEE ALSO section.
 1.3 14-Aug-1993  mycroft New code from uunet.
 1.2 01-Aug-1993  mycroft Add RCS indentifiers.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.15.60.1 25-Feb-2013  tls resync with head
 1.15.54.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.16.8.1 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.18 03-Jul-2017  wiz Remove workaround for ancient HTML generation code.
 1.17 29-Jan-2013  matt Document the long double versions.
 1.16 07-Aug-2003  agc branches: 1.16.54; 1.16.60;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.15 16-Apr-2003  wiz Use
.In header.h
instead of
.Fd #include \*[Lt]header.h\*[Gt]
Much easier to read and write, and supported by groff for ages.
Okayed by ross.
 1.14 20-Feb-2002  wiz Sort SEE ALSO.
 1.13 07-Feb-2002  ross Generate <>& symbolically.
 1.12 15-Aug-1999  kleink Add single-precision versions of interfaces to their manual pages' NAME section
and install links as appropriate.
 1.11 02-Jul-1999  simonb More trailing white space.
 1.10 05-Feb-1998  perry add LIBRARY section to man page
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 14-Jul-1997  kleink Add missing standards conformance statements.
 1.7 29-Mar-1997  christos PR/3405: Krister Walfridsson: Various typos; since we compile with POSIX
libm, we should not xref matherr(3), and describe the errno settings.
 1.6 14-Apr-1995  jtc First cut at adding float versions of math functions to the manpages.
 1.5 04-Mar-1995  jtc First pass at documenting "float" versions of these functions.
 1.4 29-Oct-1993  jtc Fix formatting of SEE ALSO section.
 1.3 14-Aug-1993  mycroft New code from uunet.
 1.2 01-Aug-1993  mycroft Add RCS indentifiers.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.16.60.1 25-Feb-2013  tls resync with head
 1.16.54.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.17 19-Sep-2014  wiz Sort sections. From Henning Petersen in PR 49222.
 1.16 29-Jan-2013  matt branches: 1.16.8;
Document the long double versions.
 1.15 07-Aug-2003  agc branches: 1.15.54; 1.15.60;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.14 16-Apr-2003  wiz Use
.In header.h
instead of
.Fd #include \*[Lt]header.h\*[Gt]
Much easier to read and write, and supported by groff for ages.
Okayed by ross.
 1.13 07-Feb-2002  ross Generate <>& symbolically.
 1.12 15-Aug-1999  kleink Add single-precision versions of interfaces to their manual pages' NAME section
and install links as appropriate.
 1.11 02-Jul-1999  simonb More trailing white space.
 1.10 05-Feb-1998  perry add LIBRARY section to man page
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 29-Mar-1997  christos PR/3405: Krister Walfridsson: Various typos; since we compile with POSIX
libm, we should not xref matherr(3), and describe the errno settings.
 1.7 30-Mar-1996  jtc infnan(3) no longer exists.
 1.6 14-Apr-1995  jtc First cut at adding float versions of math functions to the manpages.
 1.5 04-Mar-1995  jtc First pass at documenting "float" versions of these functions.
 1.4 29-Oct-1993  jtc Fix formatting of SEE ALSO section.
 1.3 14-Aug-1993  mycroft New code from uunet.
 1.2 01-Aug-1993  mycroft Add RCS indentifiers.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.15.60.1 25-Feb-2013  tls resync with head
 1.15.54.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.16.8.1 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.17 29-Jan-2013  matt Document the long double versions.
 1.16 07-Aug-2003  agc branches: 1.16.54; 1.16.60;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.15 16-Apr-2003  wiz Use
.In header.h
instead of
.Fd #include \*[Lt]header.h\*[Gt]
Much easier to read and write, and supported by groff for ages.
Okayed by ross.
 1.14 20-Feb-2002  wiz Sort SEE ALSO.
 1.13 07-Feb-2002  ross Generate <>& symbolically.
 1.12 15-Aug-1999  kleink Add single-precision versions of interfaces to their manual pages' NAME section
and install links as appropriate.
 1.11 02-Jul-1999  simonb More trailing white space.
 1.10 05-Feb-1998  perry add LIBRARY section to man page
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 14-Jul-1997  kleink Add missing standards conformance statements.
 1.7 29-Mar-1997  christos PR/3405: Krister Walfridsson: Various typos; since we compile with POSIX
libm, we should not xref matherr(3), and describe the errno settings.
 1.6 14-Apr-1995  jtc First cut at adding float versions of math functions to the manpages.
 1.5 04-Mar-1995  jtc First pass at documenting "float" versions of these functions.
 1.4 04-Oct-1993  jtc Removed trailing in SEE ALSO list
 1.3 14-Aug-1993  mycroft New code from uunet.
 1.2 01-Aug-1993  mycroft Add RCS indentifiers.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.16.60.1 25-Feb-2013  tls resync with head
 1.16.54.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.19 03-Jul-2017  wiz Remove workaround for ancient HTML generation code.
 1.18 26-Apr-2013  njoly Kill some extra backslashes.
 1.17 29-Jan-2013  matt Document the long double versions.
 1.16 07-Aug-2003  agc branches: 1.16.54; 1.16.60;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.15 16-Apr-2003  wiz Use
.In header.h
instead of
.Fd #include \*[Lt]header.h\*[Gt]
Much easier to read and write, and supported by groff for ages.
Okayed by ross.
 1.14 01-Oct-2002  wiz New sentence, new line. From Robert Elz.
 1.13 20-Feb-2002  wiz Sort SEE ALSO.
 1.12 07-Feb-2002  ross Generate <>& symbolically.
 1.11 15-Aug-1999  kleink Add single-precision versions of interfaces to their manual pages' NAME section
and install links as appropriate.
 1.10 02-Jul-1999  simonb More trailing white space.
 1.9 29-Apr-1998  fair fix mdoc reference
 1.8 05-Feb-1998  perry add LIBRARY section to man page
 1.7 01-Nov-1997  mycroft Nuke trailing comma in SEE ALSO section.
 1.6 09-Oct-1997  lukem rcsid facism, WARNSify
 1.5 14-Apr-1995  jtc First cut at adding float versions of math functions to the manpages.
 1.4 04-Mar-1995  jtc First pass at documenting "float" versions of these functions.
 1.3 14-Aug-1993  mycroft New code from uunet.
 1.2 01-Aug-1993  mycroft Add RCS indentifiers.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.16.60.2 23-Jun-2013  tls resync from head
 1.16.60.1 25-Feb-2013  tls resync with head
 1.16.54.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.18 04-Dec-2022  uwe lib: Mark up error names in man pages with .Er
 1.17 19-Sep-2014  wiz Sort sections. From Henning Petersen in PR 49222.
 1.16 29-Jan-2013  matt branches: 1.16.8;
Document the long double versions.
 1.15 07-Aug-2003  agc branches: 1.15.54; 1.15.60;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.14 16-Apr-2003  wiz Use
.In header.h
instead of
.Fd #include \*[Lt]header.h\*[Gt]
Much easier to read and write, and supported by groff for ages.
Okayed by ross.
 1.13 07-Feb-2002  ross Generate <>& symbolically.
 1.12 15-Aug-1999  kleink Add single-precision versions of interfaces to their manual pages' NAME section
and install links as appropriate.
 1.11 02-Jan-1999  kristerw Fix a typo.
 1.10 05-Feb-1998  perry add LIBRARY section to man page
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 29-Mar-1997  christos PR/3405: Krister Walfridsson: Various typos; since we compile with POSIX
libm, we should not xref matherr(3), and describe the errno settings.
 1.7 30-Mar-1996  jtc infnan(3) no longer exists.
 1.6 14-Apr-1995  jtc First cut at adding float versions of math functions to the manpages.
 1.5 04-Mar-1995  jtc First pass at documenting "float" versions of these functions.
 1.4 29-Oct-1993  jtc Fix formatting of SEE ALSO section.
 1.3 14-Aug-1993  mycroft New code from uunet.
 1.2 01-Aug-1993  mycroft Add RCS indentifiers.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.15.60.1 25-Feb-2013  tls resync with head
 1.15.54.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.16.8.1 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.21 01-Feb-2017  abhinav Add comma between two Nm entries in the NAME section.
 1.20 12-Nov-2013  joerg branches: 1.20.8; 1.20.12;
Man page entries for ceill, floorl and roundl.
 1.19 18-Sep-2011  jruoho branches: 1.19.2; 1.19.8;
Remove BUGS as per joerg@'s objection.
 1.18 16-Apr-2011  jruoho Merge floor(3) to ceil(3).
 1.17 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.16 16-Apr-2003  wiz Use
.In header.h
instead of
.Fd #include \*[Lt]header.h\*[Gt]
Much easier to read and write, and supported by groff for ages.
Okayed by ross.
 1.15 20-Feb-2002  wiz Sort SEE ALSO.
 1.14 07-Feb-2002  ross Generate <>& symbolically.
 1.13 19-Nov-1999  enami Don't pass so many args to .Nd macro. It just overflows.
 1.12 15-Aug-1999  kleink branches: 1.12.4;
Add single-precision versions of interfaces to their manual pages' NAME section
and install links as appropriate.
 1.11 05-Feb-1998  perry add LIBRARY section to man page
 1.10 09-Oct-1997  lukem rcsid facism, WARNSify
 1.9 12-Aug-1996  explorer Fix description of ceil(3). Closes pr lib/2690
 1.8 14-Apr-1995  jtc First cut at adding float versions of math functions to the manpages.
 1.7 04-Mar-1995  jtc First pass at documenting "float" versions of these functions.
 1.6 11-Mar-1994  jtc Updated for new math library.
 1.5 29-Oct-1993  jtc Fix manual page typos.
 1.4 04-Oct-1993  jtc In the SEE ALSO section, it's math(3), not math.3.
 1.3 14-Aug-1993  mycroft New code from uunet.
 1.2 01-Aug-1993  mycroft Add RCS indentifiers.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.12.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.19.8.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.19.2.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.20.12.1 21-Apr-2017  bouyer Sync with HEAD
 1.20.8.1 20-Mar-2017  pgoyette Sync with HEAD
 1.4 28-Sep-2017  maya Restore CAVEATS section unmodified.

It apparently refers to VAX and its lack of a negative zero.
 1.3 28-Sep-2017  maya Remove CAVEATS section

The man page for an individual function is not the right place to discuss
the issues with negative zero
 1.2 26-Sep-2017  maya Mention there's a type generic variant in tgmath.h

(XXX and in math.h, if you're netbsd)
 1.1 13-Apr-2011  jruoho Split out from ieee(3) also the remainder(3) and copysign(3) families.
 1.17 02-Sep-2019  sevan Start documenting history
https://www.bell-labs.com/usr/dmr/www/man31.pdf
 1.16 25-Apr-2019  maya branches: 1.16.2;
document cosl with MLINKS and in the man page
 1.15 07-Aug-2003  agc branches: 1.15.96;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.14 16-Apr-2003  wiz Use
.In header.h
instead of
.Fd #include \*[Lt]header.h\*[Gt]
Much easier to read and write, and supported by groff for ages.
Okayed by ross.
 1.13 20-Feb-2002  wiz Sort SEE ALSO.
 1.12 07-Feb-2002  ross Generate <>& symbolically.
 1.11 15-Aug-1999  kleink Add single-precision versions of interfaces to their manual pages' NAME section
and install links as appropriate.
 1.10 02-Jul-1999  simonb More trailing white space.
 1.9 05-Feb-1998  perry add LIBRARY section to man page
 1.8 09-Oct-1997  lukem rcsid facism, WARNSify
 1.7 14-Apr-1995  jtc First cut at adding float versions of math functions to the manpages.
 1.6 04-Mar-1995  jtc First pass at documenting "float" versions of these functions.
 1.5 29-Oct-1993  jtc Fix formatting of SEE ALSO section.
 1.4 29-Oct-1993  jtc Fix manual page typos.
 1.3 14-Aug-1993  mycroft New code from uunet.
 1.2 01-Aug-1993  mycroft Add RCS indentifiers.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.15.96.2 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.15.96.1 10-Jun-2019  christos Sync with HEAD
 1.16.2.1 05-Sep-2019  martin Pull up following revision(s) (requested by sevan in ticket #174):
lib/libc/sys/chmod.2: revision 1.48
lib/libc/sys/stat.2: revision 1.59
lib/libc/sys/unlink.2: revision 1.30
lib/libc/sys/lseek.2: revision 1.25
lib/libc/sys/getuid.2: revision 1.18
lib/libc/sys/chown.2: revision 1.37
lib/libm/man/exp.3: revision 1.32
lib/libm/man/log.3: revision 1.7
lib/libc/sys/open.2: revision 1.60
lib/libc/stdio/fopen.3: revision 1.36
lib/libc/stdio/putc.3: revision 1.14
lib/libc/sys/mount.2: revision 1.51
share/man/man9/copy.9: revision 1.22
share/man/man9/uiomove.9: revision 1.20
lib/libc/sys/setuid.2: revision 1.23
lib/libc/sys/close.2: revision 1.18
sbin/init/init.8: revision 1.61
lib/libc/sys/write.2: revision 1.36
lib/libc/sys/read.2: revision 1.39
sbin/init/init.8: revision 1.62
lib/libc/sys/wait.2: revision 1.40
usr.bin/tty/tty.1: revision 1.10
lib/libc/sys/link.2: revision 1.33
usr.bin/du/du.1: revision 1.24
lib/libc/stdlib/exit.3: revision 1.17
usr.bin/su/su.1: revision 1.53
usr.bin/mail/mail.1: revision 1.66
lib/libc/sys/fork.2: revision 1.25
usr.bin/su/su.1: revision 1.54
usr.bin/mail/mail.1: revision 1.67
lib/libm/man/sin.3: revision 1.15
share/man/man9/intro.9: revision 1.26
share/man/man5/utmp.5: revision 1.17
lib/libc/compat-43/creat.3: revision 1.17
lib/libc/time/ctime.3: revision 1.61
lib/libcompat/4.1/stty.3: revision 1.10
usr.bin/dc/dc.1: revision 1.3
lib/libm/man/cos.3: revision 1.17
lib/libc/sys/chdir.2: revision 1.23
lib/libc/gen/exec.3: revision 1.30
lib/libc/gen/exec.3: revision 1.31
games/bcd/bcd.6: revision 1.18
games/bcd/bcd.6: revision 1.19
usr.bin/write/write.1: revision 1.7
usr.bin/wc/wc.1: revision 1.18
usr.bin/pr/pr.1: revision 1.24
usr.bin/who/who.1: revision 1.25
lib/libc/sys/mkdir.2: revision 1.30
lib/libc/stdio/getc.3: revision 1.13
usr.bin/sort/sort.1: revision 1.40
usr.bin/mesg/mesg.1: revision 1.11
share/man/man5/passwd.5: revision 1.34
sort was there since v1
https://www.bell-labs.com/usr/dmr/www/man61.pdf

dc was in v1
https://www.bell-labs.com/usr/dmr/www/man12.pdf

du was in v1
https://www.bell-labs.com/usr/dmr/www/man12.pdf

mail was in v1
https://www.bell-labs.com/usr/dmr/www/man12.pdf

mesg was in v1
https://www.bell-labs.com/usr/dmr/www/man12.pdf

Document history
https://www.bell-labs.com/usr/dmr/www/man13.pdf

su was in v1
https://www.bell-labs.com/usr/dmr/www/man13.pdf

Document history
https://www.bell-labs.com/usr/dmr/www/man13.pdf

Document history
https://www.bell-labs.com/usr/dmr/www/man14.pdf
Update URL

write was in v1
https://www.bell-labs.com/usr/dmr/www/man14.pdf
grammar

passwd(5) was in v1
https://www.bell-labs.com/usr/dmr/www/man51.pdf

utmp(5) was present in v1
https://www.bell-labs.com/usr/dmr/www/man51.pdf

Earliest version of wtmp I could find was in v3
https://minnie.tuhs.org/cgi-bin/utree.pl?file=V3/man/man5/wtmp.5

Document history of chdir(2)
https://www.bell-labs.com/usr/dmr/www/man21.pdf

Document history of chmod(2)
https://www.bell-labs.com/usr/dmr/www/man21.pdf

Document history of chown(2)
https://www.bell-labs.com/usr/dmr/www/man21.pdf

Document history
https://www.bell-labs.com/usr/dmr/www/man21.pdf

create was present in v1
https://www.bell-labs.com/usr/dmr/www/man21.pdf

Document history of exec()
Move statement on execlpe() & execvpe() to HISTORY section.

Document history
https://www.bell-labs.com/usr/dmr/www/man21.pdf

fork was present in v1
https://www.bell-labs.com/usr/dmr/www/man21.pdf
stat() was present in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

document history of fstat()
https://www.bell-labs.com/usr/dmr/www/man21.pdf

getuid was present in v1
https://www.bell-labs.com/usr/dmr/www/man21.pdf

Document history
https://www.bell-labs.com/usr/dmr/www/man21.pdf

Document history
https://www.bell-labs.com/usr/dmr/www/man21.pdf

stty & gtty were around since v1
https://www.bell-labs.com/usr/dmr/www/man21.pdf
https://www.bell-labs.com/usr/dmr/www/man22.pdf

mount & umount were present in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

Open was present in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

read was present in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

seek was present in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

setuid was in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

unlink was presen in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

wait was present in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

write was present in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

start documenting history
exp was present in v1
https://www.bell-labs.com/usr/dmr/www/man31.pdf

Start documenting history
https://www.bell-labs.com/usr/dmr/www/man31.pdf

Start documenting history
https://www.bell-labs.com/usr/dmr/www/man31.pdf

log appeared in v1
https://www.bell-labs.com/usr/dmr/www/man31.pdf

putc & putw were in v1
https://www.bell-labs.com/usr/dmr/www/man31.pdf

putchar was in v4
https://minie.tuhs.org/cgi-bin/utree.pl?file=V4/man/man3/putchr.3

Start documenting history
https://www.bell-labs.com/usr/dmr/www/man31.pdf

Document history.
https://www.bell-labs.com/usr/dmr/www/man11.pdf
Between v1 & v6 UNIX, bcd was rewritten in C, but I don't know if which
version,
hence I've skipped mentioning it.
End sentence with a dot.
Remove superfluous Pp.
Remove superfluous Pp.
Remove superfluous Ns.
Remove superfluous Pp.
fetch(9) -> ufetch(9)
fetch(9) -> ufetch(9). Remove superfluous Pp.
fetch(9) -> ufetch(9). Remove reference to unimplemented ppi(9).
 1.17 26-Jan-2024  nros Add the long double math functions recently added from FreeBSD to their related man pages
 1.16 04-Dec-2022  uwe lib: Mark up error names in man pages with .Er
 1.15 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.14 16-Apr-2003  wiz Use
.In header.h
instead of
.Fd #include \*[Lt]header.h\*[Gt]
Much easier to read and write, and supported by groff for ages.
Okayed by ross.
 1.13 20-Feb-2002  wiz Sort SEE ALSO.
 1.12 07-Feb-2002  ross Generate <>& symbolically.
 1.11 15-Aug-1999  kleink Add single-precision versions of interfaces to their manual pages' NAME section
and install links as appropriate.
 1.10 05-Feb-1998  perry add LIBRARY section to man page
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 14-Jul-1997  kleink Add missing standards conformance statements.
 1.7 29-Mar-1997  christos PR/3405: Krister Walfridsson: Various typos; since we compile with POSIX
libm, we should not xref matherr(3), and describe the errno settings.
 1.6 14-Apr-1995  jtc First cut at adding float versions of math functions to the manpages.
 1.5 04-Mar-1995  jtc First pass at documenting "float" versions of these functions.
 1.4 29-Oct-1993  jtc Fix formatting of SEE ALSO section.
 1.3 14-Aug-1993  mycroft New code from uunet.
 1.2 01-Aug-1993  mycroft Add RCS indentifiers.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.14 07-Nov-2015  nros Fix typo in erfl synopsis.
 1.13 17-Nov-2014  christos PR/49399: Henning Petersen: Add man pages for erfl and erfcl
 1.12 07-Aug-2003  agc branches: 1.12.74;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.11 16-Apr-2003  wiz Use
.In header.h
instead of
.Fd #include \*[Lt]header.h\*[Gt]
Much easier to read and write, and supported by groff for ages.
Okayed by ross.
 1.10 07-Feb-2002  ross Generate <>& symbolically.
 1.9 15-Aug-1999  kleink Add single-precision versions of interfaces to their manual pages' NAME section
and install links as appropriate.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 05-Feb-1998  perry add LIBRARY section to man page
 1.6 09-Oct-1997  lukem rcsid facism, WARNSify
 1.5 29-Mar-1997  christos PR/3405: Krister Walfridsson: Various typos; since we compile with POSIX
libm, we should not xref matherr(3), and describe the errno settings.
 1.4 14-Apr-1995  jtc First cut at adding float versions of math functions to the manpages.
 1.3 14-Aug-1993  mycroft New code from uunet.
 1.2 01-Aug-1993  mycroft Add RCS indentifiers.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.12.74.2 16-Nov-2015  msaitoh Pull up following revision(s) (requested by dholland in ticket #1009):

lib/libm/man/erf.3: revision 1.14

Fix typo in erfl synopsis.
 1.12.74.1 08-Nov-2015  riz Pull up following revision(s) (requested by dholland in ticket #1009):
lib/libm/man/erf.3: revision 1.13
distrib/sets/lists/comp/mi: revision 1.1921
lib/libm/Makefile: revision 1.167
PR/49399: Henning Petersen: Add man pages for erfl and erfcl
fix sets for new erf{c,}l man pages.
 1.33 26-Jan-2024  nros Add the long double math functions recently added from FreeBSD to their related man pages
 1.32 02-Sep-2019  sevan exp was present in v1
https://www.bell-labs.com/usr/dmr/www/man31.pdf
 1.31 01-Feb-2017  abhinav branches: 1.31.12; 1.31.14;
Fix sentence.
 1.30 01-Feb-2017  abhinav Remove comma after the last Nm entry.
 1.29 06-Nov-2012  dholland branches: 1.29.12; 1.29.16;
proofreading
 1.28 17-Sep-2011  jruoho branches: 1.28.2; 1.28.8;
Remove rest of the NOTES and ERRORS and references to pow(3) family.
 1.27 13-Sep-2011  jruoho Split out the logarithm functions from the perplex exp(3). Also remove some
useless notes in the latter (namely, no one cares that financial calculations
were done on Hewlett-Packard HP-71B, or that there is a LN1() in Pascal).
 1.26 03-May-2010  jruoho Note that rest of the functions come from C99.
 1.25 12-Jan-2010  christos merge conflicting error sections.
 1.24 11-Jan-2010  christos Add exp2 and exp2m
 1.23 21-Jul-2005  wiz Punctuation fixes, bump date for log2{,f}.
 1.22 21-Jul-2005  christos Add log2 and log2f from FreeBSD PR 83845
 1.21 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.20 16-Apr-2003  wiz Use
.In header.h
instead of
.Fd #include \*[Lt]header.h\*[Gt]
Much easier to read and write, and supported by groff for ages.
Okayed by ross.
 1.19 01-Oct-2002  wiz New sentence, new line. From Robert Elz.
 1.18 20-Feb-2002  wiz Punctuation nits, use standard headers, sort sections, remove Tahoe references.
 1.17 07-Feb-2002  ross Generate <>& symbolically.
 1.16 15-Aug-1999  kleink Add single-precision versions of interfaces to their manual pages' NAME section
and install links as appropriate.
 1.15 02-Jul-1999  simonb More trailing white space.
 1.14 05-Feb-1998  perry add LIBRARY section to man page
 1.13 09-Oct-1997  lukem rcsid facism, WARNSify
 1.12 14-Jul-1997  kleink Add missing standards conformance statements.
 1.11 29-Mar-1997  christos PR/3405: Krister Walfridsson: Various typos; since we compile with POSIX
libm, we should not xref matherr(3), and describe the errno settings.
 1.10 30-Mar-1996  jtc infnan(3) no longer exists.
 1.9 27-Apr-1995  jtc removed log2 from manpage, libm doesn't provide that function.
 1.8 14-Apr-1995  jtc First cut at adding float versions of math functions to the manpages.
 1.7 11-Feb-1994  jtc Beginning of changes needed for fdlibm
 1.6 11-Jan-1994  jtc Fix spelling errors.
 1.5 29-Oct-1993  jtc Fix formatting of SEE ALSO section.
 1.4 04-Oct-1993  jtc Change RANGE to ERANGE.
 1.3 14-Aug-1993  mycroft New code from uunet.
 1.2 01-Aug-1993  mycroft Add RCS indentifiers.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.28.8.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.28.2.1 16-Jan-2013  yamt sync with (a bit old) head
 1.29.16.1 21-Apr-2017  bouyer Sync with HEAD
 1.29.12.1 20-Mar-2017  pgoyette Sync with HEAD
 1.31.14.1 05-Sep-2019  martin Pull up following revision(s) (requested by sevan in ticket #174):
lib/libc/sys/chmod.2: revision 1.48
lib/libc/sys/stat.2: revision 1.59
lib/libc/sys/unlink.2: revision 1.30
lib/libc/sys/lseek.2: revision 1.25
lib/libc/sys/getuid.2: revision 1.18
lib/libc/sys/chown.2: revision 1.37
lib/libm/man/exp.3: revision 1.32
lib/libm/man/log.3: revision 1.7
lib/libc/sys/open.2: revision 1.60
lib/libc/stdio/fopen.3: revision 1.36
lib/libc/stdio/putc.3: revision 1.14
lib/libc/sys/mount.2: revision 1.51
share/man/man9/copy.9: revision 1.22
share/man/man9/uiomove.9: revision 1.20
lib/libc/sys/setuid.2: revision 1.23
lib/libc/sys/close.2: revision 1.18
sbin/init/init.8: revision 1.61
lib/libc/sys/write.2: revision 1.36
lib/libc/sys/read.2: revision 1.39
sbin/init/init.8: revision 1.62
lib/libc/sys/wait.2: revision 1.40
usr.bin/tty/tty.1: revision 1.10
lib/libc/sys/link.2: revision 1.33
usr.bin/du/du.1: revision 1.24
lib/libc/stdlib/exit.3: revision 1.17
usr.bin/su/su.1: revision 1.53
usr.bin/mail/mail.1: revision 1.66
lib/libc/sys/fork.2: revision 1.25
usr.bin/su/su.1: revision 1.54
usr.bin/mail/mail.1: revision 1.67
lib/libm/man/sin.3: revision 1.15
share/man/man9/intro.9: revision 1.26
share/man/man5/utmp.5: revision 1.17
lib/libc/compat-43/creat.3: revision 1.17
lib/libc/time/ctime.3: revision 1.61
lib/libcompat/4.1/stty.3: revision 1.10
usr.bin/dc/dc.1: revision 1.3
lib/libm/man/cos.3: revision 1.17
lib/libc/sys/chdir.2: revision 1.23
lib/libc/gen/exec.3: revision 1.30
lib/libc/gen/exec.3: revision 1.31
games/bcd/bcd.6: revision 1.18
games/bcd/bcd.6: revision 1.19
usr.bin/write/write.1: revision 1.7
usr.bin/wc/wc.1: revision 1.18
usr.bin/pr/pr.1: revision 1.24
usr.bin/who/who.1: revision 1.25
lib/libc/sys/mkdir.2: revision 1.30
lib/libc/stdio/getc.3: revision 1.13
usr.bin/sort/sort.1: revision 1.40
usr.bin/mesg/mesg.1: revision 1.11
share/man/man5/passwd.5: revision 1.34
sort was there since v1
https://www.bell-labs.com/usr/dmr/www/man61.pdf

dc was in v1
https://www.bell-labs.com/usr/dmr/www/man12.pdf

du was in v1
https://www.bell-labs.com/usr/dmr/www/man12.pdf

mail was in v1
https://www.bell-labs.com/usr/dmr/www/man12.pdf

mesg was in v1
https://www.bell-labs.com/usr/dmr/www/man12.pdf

Document history
https://www.bell-labs.com/usr/dmr/www/man13.pdf

su was in v1
https://www.bell-labs.com/usr/dmr/www/man13.pdf

Document history
https://www.bell-labs.com/usr/dmr/www/man13.pdf

Document history
https://www.bell-labs.com/usr/dmr/www/man14.pdf
Update URL

write was in v1
https://www.bell-labs.com/usr/dmr/www/man14.pdf
grammar

passwd(5) was in v1
https://www.bell-labs.com/usr/dmr/www/man51.pdf

utmp(5) was present in v1
https://www.bell-labs.com/usr/dmr/www/man51.pdf

Earliest version of wtmp I could find was in v3
https://minnie.tuhs.org/cgi-bin/utree.pl?file=V3/man/man5/wtmp.5

Document history of chdir(2)
https://www.bell-labs.com/usr/dmr/www/man21.pdf

Document history of chmod(2)
https://www.bell-labs.com/usr/dmr/www/man21.pdf

Document history of chown(2)
https://www.bell-labs.com/usr/dmr/www/man21.pdf

Document history
https://www.bell-labs.com/usr/dmr/www/man21.pdf

create was present in v1
https://www.bell-labs.com/usr/dmr/www/man21.pdf

Document history of exec()
Move statement on execlpe() & execvpe() to HISTORY section.

Document history
https://www.bell-labs.com/usr/dmr/www/man21.pdf

fork was present in v1
https://www.bell-labs.com/usr/dmr/www/man21.pdf
stat() was present in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

document history of fstat()
https://www.bell-labs.com/usr/dmr/www/man21.pdf

getuid was present in v1
https://www.bell-labs.com/usr/dmr/www/man21.pdf

Document history
https://www.bell-labs.com/usr/dmr/www/man21.pdf

Document history
https://www.bell-labs.com/usr/dmr/www/man21.pdf

stty & gtty were around since v1
https://www.bell-labs.com/usr/dmr/www/man21.pdf
https://www.bell-labs.com/usr/dmr/www/man22.pdf

mount & umount were present in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

Open was present in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

read was present in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

seek was present in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

setuid was in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

unlink was presen in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

wait was present in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

write was present in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

start documenting history
exp was present in v1
https://www.bell-labs.com/usr/dmr/www/man31.pdf

Start documenting history
https://www.bell-labs.com/usr/dmr/www/man31.pdf

Start documenting history
https://www.bell-labs.com/usr/dmr/www/man31.pdf

log appeared in v1
https://www.bell-labs.com/usr/dmr/www/man31.pdf

putc & putw were in v1
https://www.bell-labs.com/usr/dmr/www/man31.pdf

putchar was in v4
https://minie.tuhs.org/cgi-bin/utree.pl?file=V4/man/man3/putchr.3

Start documenting history
https://www.bell-labs.com/usr/dmr/www/man31.pdf

Document history.
https://www.bell-labs.com/usr/dmr/www/man11.pdf
Between v1 & v6 UNIX, bcd was rewritten in C, but I don't know if which
version,
hence I've skipped mentioning it.
End sentence with a dot.
Remove superfluous Pp.
Remove superfluous Pp.
Remove superfluous Ns.
Remove superfluous Pp.
fetch(9) -> ufetch(9)
fetch(9) -> ufetch(9). Remove superfluous Pp.
fetch(9) -> ufetch(9). Remove reference to unimplemented ppi(9).
 1.31.12.1 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.17 17-Mar-2016  wiz Fix typo, add whitespace for better formatting, bump date for previous.
 1.16 17-Mar-2016  nros Add fabsl to the manpage describing the fabs functions.
 1.15 13-Sep-2011  njoly Remove xrefs to ieee(3) man page which does not exists anymore.
 1.14 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.13 16-Apr-2003  wiz Use
.In header.h
instead of
.Fd #include \*[Lt]header.h\*[Gt]
Much easier to read and write, and supported by groff for ages.
Okayed by ross.
 1.12 20-Feb-2002  wiz Sort SEE ALSO.
 1.11 07-Feb-2002  ross Generate <>& symbolically.
 1.10 10-Sep-1999  simonb Remove SCCS revision line from the middle of the copyright - the version
info is still in the usual place after the "THIS SOFTWARE IS..." blurb.
 1.9 15-Aug-1999  kleink Add single-precision versions of interfaces to their manual pages' NAME section
and install links as appropriate.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 05-Feb-1998  perry add LIBRARY section to man page
 1.6 09-Oct-1997  lukem rcsid facism, WARNSify
 1.5 14-Apr-1995  jtc First cut at adding float versions of math functions to the manpages.
 1.4 04-Oct-1993  jtc Change math.3 to math(3) in SEE ALSO section.
 1.3 14-Aug-1993  mycroft New code from uunet.
 1.2 01-Aug-1993  mycroft Add RCS indentifiers.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.3 08-Mar-2010  snj branches: 1.3.2; 1.3.4;
These functions are going to first appear in 5.1, not 6.0.
 1.2 04-Oct-2009  wiz Mention NetBSD in HISTORY as well.
 1.1 04-Oct-2009  christos add f{min,max,dim}{,l,f} from FreeBSD
 1.3.4.2 21-Apr-2010  matt sync to netbsd-5
 1.3.4.1 08-Mar-2010  matt file fdim.3 was added on branch matt-nb5-mips64 on 2010-04-21 05:28:10 +0000
 1.3.2.2 12-Mar-2010  riz Pull up following revision(s) (requested by snj in ticket #1330):
lib/libm/man/fmax.3: revision 1.1-1.2
lib/libm/src/s_fmin.c: revision 1.1-1.2
lib/libm/src/s_fdim.c: revision 1.1
lib/libm/src/s_fmaxl.c: revision 1.1
lib/libm/Makefile: revision 1.90
include/math.h: revision 1.49
lib/libm/src/s_fmaxf.c: revision 1.1
lib/libm/src/s_fmax.c: revision 1.1
lib/libm/shlib_version: revision 1.10
distrib/sets/lists/base/md.sparc64: revision 1.63 (via patch)
distrib/sets/lists/base/shl.mi: revision 1.495 (via patch)
lib/libm/src/s_fminl.c: revision 1.1
distrib/sets/lists/comp/mi: revision 1.1317
lib/libm/man/fdim.3: revision 1.1-1.3
lib/libm/src/s_fminf.c: revision 1.1
distrib/sets/lists/base/md.amd64: revision 1.70 (via patch)
add f{min,max,dim}{,l,f} from FreeBSD
These functions are going to first appear in 5.1, not 6.0.
 1.3.2.1 08-Mar-2010  riz file fdim.3 was added on branch netbsd-5 on 2010-03-12 21:58:42 +0000
 1.2 07-Aug-2010  wiz Remove reference to fpresetsticky(3), which doesn't exist.
From Stathis Kamperis.
 1.1 31-Jul-2010  joerg Add support for fenv.h interface for i386 and amd64.

Submitted by Stathis Kamperis as part of GSoC 2010 and ported from
FreeBSD.
 1.1 31-Jul-2010  joerg Add support for fenv.h interface for i386 and amd64.

Submitted by Stathis Kamperis as part of GSoC 2010 and ported from
FreeBSD.
 1.2 04-Aug-2010  wiz Remove trailing comma in enumeration.
 1.1 31-Jul-2010  joerg Add support for fenv.h interface for i386 and amd64.

Submitted by Stathis Kamperis as part of GSoC 2010 and ported from
FreeBSD.
 1.1 31-Jul-2010  joerg Add support for fenv.h interface for i386 and amd64.

Submitted by Stathis Kamperis as part of GSoC 2010 and ported from
FreeBSD.
 1.3 03-Jul-2017  wiz Remove workaround for ancient HTML generation code.
 1.2 04-Aug-2010  wiz Remove trailing comma in enumeration, make HTML-ready.
 1.1 31-Jul-2010  joerg Add support for fenv.h interface for i386 and amd64.

Submitted by Stathis Kamperis as part of GSoC 2010 and ported from
FreeBSD.
 1.2 06-Aug-2011  wiz ort SEE ALSO.
 1.1 06-Aug-2011  jruoho Deprecate ieee(3).
 1.15 16-Apr-2011  jruoho Merge floor(3) to ceil(3).
 1.14 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.13 16-Apr-2003  wiz Use
.In header.h
instead of
.Fd #include \*[Lt]header.h\*[Gt]
Much easier to read and write, and supported by groff for ages.
Okayed by ross.
 1.12 20-Feb-2002  wiz Sort SEE ALSO.
 1.11 07-Feb-2002  ross Generate <>& symbolically.
 1.10 15-Aug-1999  kleink Add single-precision versions of interfaces to their manual pages' NAME section
and install links as appropriate.
 1.9 02-Jul-1999  simonb More trailing white space.
 1.8 05-Feb-1998  perry add LIBRARY section to man page
 1.7 09-Oct-1997  lukem rcsid facism, WARNSify
 1.6 14-Apr-1995  jtc First cut at adding float versions of math functions to the manpages.
 1.5 11-Mar-1994  jtc Updated for new math library.
 1.4 29-Oct-1993  jtc Fix manual page typos.
 1.3 14-Aug-1993  mycroft New code from uunet.
 1.2 01-Aug-1993  mycroft Add RCS indentifiers.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.3 27-Sep-2017  maya Fix typo
 1.2 12-Dec-2015  wiz Whitespace nit.
 1.1 12-Dec-2015  nros Add manpage to the fma function in libm.
The manpage is taken from the FreeBSD project since the fma implementation is
based on the one in FreeBSD.
 1.2 08-Mar-2010  snj branches: 1.2.2; 1.2.4;
These functions are going to first appear in 5.1, not 6.0.
 1.1 04-Oct-2009  christos add f{min,max,dim}{,l,f} from FreeBSD
 1.2.4.2 21-Apr-2010  matt sync to netbsd-5
 1.2.4.1 08-Mar-2010  matt file fmax.3 was added on branch matt-nb5-mips64 on 2010-04-21 05:28:10 +0000
 1.2.2.2 12-Mar-2010  riz Pull up following revision(s) (requested by snj in ticket #1330):
lib/libm/man/fmax.3: revision 1.1-1.2
lib/libm/src/s_fmin.c: revision 1.1-1.2
lib/libm/src/s_fdim.c: revision 1.1
lib/libm/src/s_fmaxl.c: revision 1.1
lib/libm/Makefile: revision 1.90
include/math.h: revision 1.49
lib/libm/src/s_fmaxf.c: revision 1.1
lib/libm/src/s_fmax.c: revision 1.1
lib/libm/shlib_version: revision 1.10
distrib/sets/lists/base/md.sparc64: revision 1.63 (via patch)
distrib/sets/lists/base/shl.mi: revision 1.495 (via patch)
lib/libm/src/s_fminl.c: revision 1.1
distrib/sets/lists/comp/mi: revision 1.1317
lib/libm/man/fdim.3: revision 1.1-1.3
lib/libm/src/s_fminf.c: revision 1.1
distrib/sets/lists/base/md.amd64: revision 1.70 (via patch)
add f{min,max,dim}{,l,f} from FreeBSD
These functions are going to first appear in 5.1, not 6.0.
 1.2.2.1 08-Mar-2010  riz file fmax.3 was added on branch netbsd-5 on 2010-03-12 21:58:42 +0000
 1.12 12-Nov-2013  joerg Initial version of fmodl from FreeBSD.
Basic test case for the fmod family.
 1.11 07-Aug-2003  agc branches: 1.11.54; 1.11.60;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.10 16-Apr-2003  wiz Use
.In header.h
instead of
.Fd #include \*[Lt]header.h\*[Gt]
Much easier to read and write, and supported by groff for ages.
Okayed by ross.
 1.9 07-Feb-2002  ross Generate <>& symbolically.
 1.8 15-Aug-1999  kleink Add single-precision versions of interfaces to their manual pages' NAME section
and install links as appropriate.
 1.7 02-Jul-1999  simonb More trailing white space.
 1.6 05-Feb-1998  perry add LIBRARY section to man page
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 14-Apr-1995  jtc First cut at adding float versions of math functions to the manpages.
 1.3 14-Aug-1993  mycroft New code from uunet.
 1.2 01-Aug-1993  mycroft Add RCS indentifiers.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.11.60.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.11.54.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.4 10-Sep-2015  wiz Bump date for previous.
 1.3 10-Sep-2015  he Document frexpl() now that we have it as well.
 1.2 29-Apr-2010  joerg Don't mix opening and closing macros of different types.
 1.1 03-Jul-2006  drochner move manpages for frexp/ldexp/modf to libm -- the (most) implementation is
already there
 1.19 28-Sep-2017  wiz Remove Tn.
 1.18 26-Sep-2017  maya omit mention of cabs (not relevant to this man page)
mention type-generic hypot
mention hypotl
 1.17 22-Feb-2007  drochner -get cabs() and cabsf() out of public view - these are historical and
conflict with C99 functions which are builtins in newer gcc
(actually, the old cabs() is ABI compatible with the new _complex one
on i386, but this is purely accidental)
remove public prototypes and manpages, move the code into a compat
subdirectory as libc does so that binary compatibility is kept
-add a manpage for the isgreater() etc macros, borrowed from FreeBSD
 1.16 02-Nov-2003  wiz Uppercase name; from Jared Yanovich via jmc@openbsd.
 1.15 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.14 20-May-2003  wiz Nit fixes from jmc@openbsd.
 1.13 16-Apr-2003  wiz Use
.In header.h
instead of
.Fd #include \*[Lt]header.h\*[Gt]
Much easier to read and write, and supported by groff for ages.
Okayed by ross.
 1.12 01-Oct-2002  wiz New sentence, new line. From Robert Elz.
 1.11 20-Feb-2002  wiz Use standard headers, sort sections.
 1.10 07-Feb-2002  ross Generate <>& symbolically.
 1.9 15-Aug-1999  kleink Add single-precision versions of interfaces to their manual pages' NAME section
and install links as appropriate.
 1.8 31-Jan-1999  christos Mention cabsf, and explain struct complex usage.
 1.7 05-Feb-1998  perry add LIBRARY section to man page
 1.6 09-Oct-1997  lukem rcsid facism, WARNSify
 1.5 29-Mar-1997  christos PR/3405: Krister Walfridsson: Various typos; since we compile with POSIX
libm, we should not xref matherr(3), and describe the errno settings.
 1.4 14-Apr-1995  jtc First cut at adding float versions of math functions to the manpages.
 1.3 14-Aug-1993  mycroft New code from uunet.
 1.2 01-Aug-1993  mycroft Add RCS indentifiers.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.29 06-Aug-2011  jruoho Deprecate ieee(3).
 1.28 06-Aug-2011  jruoho Split out the scalbn(3) family out from ieee(3) and properly document it.
 1.27 02-Aug-2011  wiz Fix typo in function name.
 1.26 28-Jul-2011  joerg Add scalbnl(3) mlinks.
 1.25 10-May-2011  jruoho Split out the ilogb(3) family out of ieee(3) and properly document it.
 1.24 13-Apr-2011  jruoho Split out from ieee(3) also the remainder(3) and copysign(3) families.
 1.23 12-Apr-2011  jruoho Split the nextafter(3) family of functions to their own page and properly
document these.
 1.22 06-Feb-2011  christos remquo{,f} from FreeBSD via Stathis Kamperis
 1.21 15-Sep-2010  christos branches: 1.21.2;
Commit SoC long double support from Stathis Kamperis
 1.20 05-Apr-2010  joerg Fix escape sequences
 1.19 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.18 20-May-2003  wiz Nit fixes from jmc@openbsd.
 1.17 16-Apr-2003  wiz Use
.In header.h
instead of
.Fd #include \*[Lt]header.h\*[Gt]
Much easier to read and write, and supported by groff for ages.
Okayed by ross.
 1.16 01-Oct-2002  wiz New sentence, new line. From Robert Elz.
 1.15 20-Feb-2002  wiz Sort sections.
 1.14 07-Feb-2002  ross Generate <>& symbolically.
 1.13 11-Apr-2001  wiz Fix date and (missing) punctuation.
 1.12 15-Aug-1999  kleink Add single-precision versions of interfaces to their manual pages' NAME section
and install links as appropriate.
 1.11 02-Jul-1999  simonb More trailing white space.
 1.10 05-Feb-1998  perry add LIBRARY section to man page
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 14-Apr-1995  jtc First cut at adding float versions of math functions to the manpages.
 1.7 10-Mar-1994  jtc Fix typo.
 1.6 25-Feb-1994  jtc Update manpages for new math library.
 1.5 29-Oct-1993  jtc Fix manual page typos.
 1.4 21-Oct-1993  jtc Removed duplicate names from the NAME section.
 1.3 14-Aug-1993  mycroft New code from uunet.
 1.2 01-Aug-1993  mycroft Add RCS indentifiers.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.21.2.1 08-Feb-2011  bouyer Sync with HEAD
 1.14 03-Jul-2017  wiz Remove workaround for ancient HTML generation code.
 1.13 01-Feb-2017  abhinav Fix a sentence.
Correct function name in the DESCRIPTION section.
 1.12 13-Sep-2011  njoly branches: 1.12.24; 1.12.28;
Remove xrefs to ieee(3) man page which does not exists anymore.
 1.11 03-Aug-2011  joerg Add logbl(3).
 1.10 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.9 16-Apr-2003  wiz Use
.In header.h
instead of
.Fd #include \*[Lt]header.h\*[Gt]
Much easier to read and write, and supported by groff for ages.
Okayed by ross.
 1.8 08-Feb-2002  ross Generate <>& symbolically. I'm avoiding .../dist/... directories for now.
 1.7 07-Feb-2002  ross Generate <>& symbolically.
 1.6 15-Aug-1999  kleink Add single-precision versions of interfaces to their manual pages' NAME section
and install links as appropriate.
 1.5 02-Jul-1999  simonb More trailing white space.
 1.4 05-Feb-1998  perry add LIBRARY section to man page
 1.3 09-Oct-1997  lukem rcsid facism, WARNSify
 1.2 14-Apr-1995  jtc First cut at adding float versions of math functions to the manpages.
 1.1 11-Mar-1994  jtc Added a ieee_test(3) man page (Like SunOS) derrived from an earlier copy
of ieee(3). This man page describes logb, scalb, and significand, which
are really only useful for verifying IEEE754 compliance.
 1.12.28.1 21-Apr-2017  bouyer Sync with HEAD
 1.12.24.1 20-Mar-2017  pgoyette Sync with HEAD
 1.4 22-Aug-2016  maya BUGS section is no longer correct
FP_ILOGB0 and FP_ILOGBNAN are both defined in math.h
 1.3 02-Aug-2011  wiz Add serial comma.
 1.2 28-Jul-2011  joerg Add ilogbl(3).
 1.1 10-May-2011  jruoho Split out the ilogb(3) family out of ieee(3) and properly document it.
 1.4 11-Mar-1994  mycroft Clean up deleted files.
 1.3 14-Aug-1993  mycroft New code from uunet.
 1.2 01-Aug-1993  mycroft Add RCS indentifiers.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.6 14-May-2010  joerg \\* -> \*
 1.5 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.4 16-Apr-2003  wiz Use
.In header.h
instead of
.Fd #include \*[Lt]header.h\*[Gt]
Much easier to read and write, and supported by groff for ages.
Okayed by ross.
 1.3 07-Feb-2002  ross Generate <>& symbolically.
 1.2 15-Jan-2002  wiz Whitespace nit.
 1.1 16-Aug-1999  kleink Document isinff(3) and isnanf(3), cloned from the corresponding double-
precision manual page. It is kept separately since the latter are part of
libc and thus impose different linkage instructions.
 1.16 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.15 16-Apr-2003  wiz Use
.In header.h
instead of
.Fd #include \*[Lt]header.h\*[Gt]
Much easier to read and write, and supported by groff for ages.
Okayed by ross.
 1.14 31-Mar-2003  perry bessel->Bessel, from Igor Sobrado in PR misc/19814
 1.13 07-Feb-2002  ross Generate <>& symbolically.
 1.12 15-Aug-1999  kleink Add single-precision versions of interfaces to their manual pages' NAME section
and install links as appropriate.
 1.11 02-Jul-1999  simonb More trailing white space.
 1.10 05-Feb-1998  perry add LIBRARY section to man page
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 29-Mar-1997  christos PR/3405: Krister Walfridsson: Various typos; since we compile with POSIX
libm, we should not xref matherr(3), and describe the errno settings.
 1.7 30-Mar-1996  jtc infnan(3) no longer exists.
 1.6 14-Apr-1995  jtc First cut at adding float versions of math functions to the manpages.
 1.5 11-Jan-1994  jtc Fix spelling errors.
 1.4 05-Oct-1993  jtc Fix grammar of HISTORY section.
 1.3 14-Aug-1993  mycroft New code from uunet.
 1.2 01-Aug-1993  mycroft Add RCS indentifiers.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.5 17-Mar-2016  nros Added ldexpl to ldexp manpage since it is missing.
Also added ldexpf manpage link since it is missing.
 1.4 18-Sep-2011  jruoho Remove BUGS as per joerg@'s objection.
 1.3 12-Sep-2011  wiz Fix special chars and spacing in previous.
 1.2 12-Sep-2011  jruoho Update and improve, and note that the long double variant is not supported.
 1.1 03-Jul-2006  drochner move manpages for frexp/ldexp/modf to libm -- the (most) implementation is
already there
 1.24 26-Jan-2024  nros Add the long double math functions recently added from FreeBSD to their related man pages
 1.23 03-Jul-2017  wiz Remove workaround for ancient HTML generation code.
 1.22 05-May-2012  christos Add tgamma{,f} from FreeBSD via rudolf, netbsd at eq dot cz
 1.21 07-Aug-2003  agc branches: 1.21.54; 1.21.56;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.20 16-Apr-2003  wiz Use
.In header.h
instead of
.Fd #include \*[Lt]header.h\*[Gt]
Much easier to read and write, and supported by groff for ages.
Okayed by ross.
 1.19 20-Feb-2002  wiz Drop superfluous .Pp, punctuation nit.
 1.18 07-Feb-2002  ross Generate <>& symbolically.
 1.17 16-Aug-1999  kleink Document reentrant log gamma interfaces.
 1.16 15-Aug-1999  kleink Add single-precision versions of interfaces to their manual pages' NAME section
and install links as appropriate.
 1.15 02-Jul-1999  simonb More trailing white space.
 1.14 22-Mar-1999  garbled Last of the .Os cleanups. .Os is defined in the tmac.doc-common file,
so we shouldn't override it with versions in the manpages. Wheee!
 1.13 29-Aug-1998  lukem first pass at fixing up capitalization of function names and
arguments; ensure that each is correct with respect to the
implementation, rather than being correct as per english.
 1.12 05-Feb-1998  perry add LIBRARY section to man page
 1.11 12-Nov-1997  mrg add missing .Nm calls and MLINKS. from spz@serpens.swb.de
 1.10 09-Oct-1997  lukem branches: 1.10.2;
rcsid facism, WARNSify
 1.9 25-Jul-1997  jtc Removed confusing text which implies that gamma() computes the gamma
instead of log gamma function. This was true with 4.4BSD's libm, but
they are equivalent on all other systems (XPG4.2 requires this).
 1.8 30-Mar-1996  jtc infnan(3) no longer exists.
 1.7 14-Apr-1995  jtc First cut at adding float versions of math functions to the manpages.
 1.6 11-Jan-1994  jtc Fix spelling errors.
 1.5 21-Oct-1993  jtc Add comma between gamma and lgamma in NAME section.
 1.4 14-Aug-1993  mycroft New code from uunet.
 1.3 03-Aug-1993  jtc Fix formatting error.
 1.2 01-Aug-1993  mycroft Add RCS indentifiers.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.10.2.1 12-Nov-1997  mrg pull up from trunk: add missing .Nm calls and MLINKS. from spz@serpens.swb.de
 1.21.56.1 09-May-2012  riz Pull up following revision(s) (requested by christos in ticket #232):
distrib/sets/lists/comp/mi: revision 1.1756
lib/libm/Makefile: revision 1.124
lib/libm/src/math_private.h: revision 1.17
lib/libm/src/b_tgamma.c: revision 1.1
lib/libm/man/lgamma.3: revision 1.22
lib/libm/src/b_log.c: revision 1.1
lib/libm/src/b_exp.c: revision 1.1
include/math.h: revision 1.58
lib/libm/src/s_tgammaf.c: revision 1.1
add tgamma{,f}
Add tgamma{,f} from FreeBSD via rudolf, netbsd at eq dot cz
oops, forgot to commit: add tgamma and tgammaf
 1.21.54.1 23-May-2012  yamt sync with head.
 1.8 26-Jan-2024  nros Add the long double math functions recently added from FreeBSD to their related man pages
 1.7 02-Sep-2019  sevan log appeared in v1
https://www.bell-labs.com/usr/dmr/www/man31.pdf
 1.6 03-Jul-2017  wiz branches: 1.6.6; 1.6.8;
Remove workaround for ancient HTML generation code.
 1.5 01-Feb-2017  abhinav Also, fix spelling of described.
 1.4 01-Feb-2017  abhinav Remove comma after last Nm entry.
 1.3 13-Sep-2011  wiz branches: 1.3.24; 1.3.28;
Fix Dt.
 1.2 13-Sep-2011  njoly Add missing El macro.
 1.1 13-Sep-2011  jruoho Split out the logarithm functions from the perplex exp(3). Also remove some
useless notes in the latter (namely, no one cares that financial calculations
were done on Hewlett-Packard HP-71B, or that there is a LN1() in Pascal).
 1.3.28.1 21-Apr-2017  bouyer Sync with HEAD
 1.3.24.1 20-Mar-2017  pgoyette Sync with HEAD
 1.6.8.1 05-Sep-2019  martin Pull up following revision(s) (requested by sevan in ticket #174):
lib/libc/sys/chmod.2: revision 1.48
lib/libc/sys/stat.2: revision 1.59
lib/libc/sys/unlink.2: revision 1.30
lib/libc/sys/lseek.2: revision 1.25
lib/libc/sys/getuid.2: revision 1.18
lib/libc/sys/chown.2: revision 1.37
lib/libm/man/exp.3: revision 1.32
lib/libm/man/log.3: revision 1.7
lib/libc/sys/open.2: revision 1.60
lib/libc/stdio/fopen.3: revision 1.36
lib/libc/stdio/putc.3: revision 1.14
lib/libc/sys/mount.2: revision 1.51
share/man/man9/copy.9: revision 1.22
share/man/man9/uiomove.9: revision 1.20
lib/libc/sys/setuid.2: revision 1.23
lib/libc/sys/close.2: revision 1.18
sbin/init/init.8: revision 1.61
lib/libc/sys/write.2: revision 1.36
lib/libc/sys/read.2: revision 1.39
sbin/init/init.8: revision 1.62
lib/libc/sys/wait.2: revision 1.40
usr.bin/tty/tty.1: revision 1.10
lib/libc/sys/link.2: revision 1.33
usr.bin/du/du.1: revision 1.24
lib/libc/stdlib/exit.3: revision 1.17
usr.bin/su/su.1: revision 1.53
usr.bin/mail/mail.1: revision 1.66
lib/libc/sys/fork.2: revision 1.25
usr.bin/su/su.1: revision 1.54
usr.bin/mail/mail.1: revision 1.67
lib/libm/man/sin.3: revision 1.15
share/man/man9/intro.9: revision 1.26
share/man/man5/utmp.5: revision 1.17
lib/libc/compat-43/creat.3: revision 1.17
lib/libc/time/ctime.3: revision 1.61
lib/libcompat/4.1/stty.3: revision 1.10
usr.bin/dc/dc.1: revision 1.3
lib/libm/man/cos.3: revision 1.17
lib/libc/sys/chdir.2: revision 1.23
lib/libc/gen/exec.3: revision 1.30
lib/libc/gen/exec.3: revision 1.31
games/bcd/bcd.6: revision 1.18
games/bcd/bcd.6: revision 1.19
usr.bin/write/write.1: revision 1.7
usr.bin/wc/wc.1: revision 1.18
usr.bin/pr/pr.1: revision 1.24
usr.bin/who/who.1: revision 1.25
lib/libc/sys/mkdir.2: revision 1.30
lib/libc/stdio/getc.3: revision 1.13
usr.bin/sort/sort.1: revision 1.40
usr.bin/mesg/mesg.1: revision 1.11
share/man/man5/passwd.5: revision 1.34
sort was there since v1
https://www.bell-labs.com/usr/dmr/www/man61.pdf

dc was in v1
https://www.bell-labs.com/usr/dmr/www/man12.pdf

du was in v1
https://www.bell-labs.com/usr/dmr/www/man12.pdf

mail was in v1
https://www.bell-labs.com/usr/dmr/www/man12.pdf

mesg was in v1
https://www.bell-labs.com/usr/dmr/www/man12.pdf

Document history
https://www.bell-labs.com/usr/dmr/www/man13.pdf

su was in v1
https://www.bell-labs.com/usr/dmr/www/man13.pdf

Document history
https://www.bell-labs.com/usr/dmr/www/man13.pdf

Document history
https://www.bell-labs.com/usr/dmr/www/man14.pdf
Update URL

write was in v1
https://www.bell-labs.com/usr/dmr/www/man14.pdf
grammar

passwd(5) was in v1
https://www.bell-labs.com/usr/dmr/www/man51.pdf

utmp(5) was present in v1
https://www.bell-labs.com/usr/dmr/www/man51.pdf

Earliest version of wtmp I could find was in v3
https://minnie.tuhs.org/cgi-bin/utree.pl?file=V3/man/man5/wtmp.5

Document history of chdir(2)
https://www.bell-labs.com/usr/dmr/www/man21.pdf

Document history of chmod(2)
https://www.bell-labs.com/usr/dmr/www/man21.pdf

Document history of chown(2)
https://www.bell-labs.com/usr/dmr/www/man21.pdf

Document history
https://www.bell-labs.com/usr/dmr/www/man21.pdf

create was present in v1
https://www.bell-labs.com/usr/dmr/www/man21.pdf

Document history of exec()
Move statement on execlpe() & execvpe() to HISTORY section.

Document history
https://www.bell-labs.com/usr/dmr/www/man21.pdf

fork was present in v1
https://www.bell-labs.com/usr/dmr/www/man21.pdf
stat() was present in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

document history of fstat()
https://www.bell-labs.com/usr/dmr/www/man21.pdf

getuid was present in v1
https://www.bell-labs.com/usr/dmr/www/man21.pdf

Document history
https://www.bell-labs.com/usr/dmr/www/man21.pdf

Document history
https://www.bell-labs.com/usr/dmr/www/man21.pdf

stty & gtty were around since v1
https://www.bell-labs.com/usr/dmr/www/man21.pdf
https://www.bell-labs.com/usr/dmr/www/man22.pdf

mount & umount were present in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

Open was present in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

read was present in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

seek was present in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

setuid was in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

unlink was presen in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

wait was present in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

write was present in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

start documenting history
exp was present in v1
https://www.bell-labs.com/usr/dmr/www/man31.pdf

Start documenting history
https://www.bell-labs.com/usr/dmr/www/man31.pdf

Start documenting history
https://www.bell-labs.com/usr/dmr/www/man31.pdf

log appeared in v1
https://www.bell-labs.com/usr/dmr/www/man31.pdf

putc & putw were in v1
https://www.bell-labs.com/usr/dmr/www/man31.pdf

putchar was in v4
https://minie.tuhs.org/cgi-bin/utree.pl?file=V4/man/man3/putchr.3

Start documenting history
https://www.bell-labs.com/usr/dmr/www/man31.pdf

Document history.
https://www.bell-labs.com/usr/dmr/www/man11.pdf
Between v1 & v6 UNIX, bcd was rewritten in C, but I don't know if which
version,
hence I've skipped mentioning it.
End sentence with a dot.
Remove superfluous Pp.
Remove superfluous Pp.
Remove superfluous Ns.
Remove superfluous Pp.
fetch(9) -> ufetch(9)
fetch(9) -> ufetch(9). Remove superfluous Pp.
fetch(9) -> ufetch(9). Remove reference to unimplemented ppi(9).
 1.6.6.1 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.2 26-Jan-2024  nros Add the long double math functions recently added from FreeBSD to their related man pages
 1.1 16-Sep-2005  wiz branches: 1.1.2;
Add man page for l{,l}rint{,f}(3), very loosely based on the FreeBSD one.
Requested by martin@
Reviewed by drochner@
 1.1.2.2 24-Mar-2006  riz Pull up following revision(s) (requested by drochner in ticket #1213):
lib/libm/man/lrint.3: revision 1.1
distrib/sets/lists/comp/mi: revision 1.815
lib/libm/Makefile: revision 1.69
Add man page for l{,l}rint{,f}(3), very loosely based on the FreeBSD one.
Requested by martin@
Reviewed by drochner@
 1.1.2.1 16-Sep-2005  riz file lrint.3 was added on branch netbsd-3 on 2006-03-24 22:28:37 +0000
 1.29 08-May-2023  christos fix cross references (from Anon Ymous)
 1.28 28-Sep-2017  maya branches: 1.28.14;
List a few more functions
 1.27 03-Jul-2017  wiz Remove workaround for ancient HTML generation code.
 1.26 10-Nov-2012  njoly Add No macro to ensure that "and" word is not taken as function
argument.
 1.25 22-Sep-2011  njoly branches: 1.25.2; 1.25.8;
In functions list, switch from tab characters to Ta macro. Makes
nroff properly handle xrefs.
 1.24 18-Sep-2011  njoly Fix a few xrefs.
 1.23 17-Sep-2011  wiz Convert to mdoc.
 1.22 26-Feb-2007  drochner remove references to old cabs()
 1.21 26-Mar-2006  xtraeme Mention trunc(3), reminded by kjk.
 1.20 15-Mar-2006  wiz Bump date for previous.
 1.19 15-Mar-2006  kleink Add nan(3), nanf(3), and nanl(3); welcome libm.so.0.4.
 1.18 03-Dec-2003  jschauma Add a list of pre-defined values (such as pi, e etc.).
Ok by wiz@.
 1.17 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.16 01-May-2003  wiz Restore \fR that got lost in last.
 1.15 01-May-2003  gmcgarry Remove reference to non-existent infnan(3) function.
 1.14 31-Mar-2003  perry bessel->Bessel from Igor Sobrado PR misc/19814
 1.13 01-Oct-2002  wiz New sentence, new line. From Robert Elz.
 1.12 08-Feb-2002  ross Generate <>& symbolically. I'm avoiding .../dist/... directories for now.
 1.11 07-Feb-2002  ross generate & symbolically
 1.10 07-Feb-2002  ross Generate <>& symbolically.
 1.9 10-Nov-2001  gmcgarry - sort sections
- introduce commented-out FILES section until page is mdoc'ified.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 28-Sep-1997  mikel comment out reference to missing FORTRAN math lib; PR 4153
 1.6 18-Apr-1997  mikel add isnan(3) and isinf(3) to table, replacing obsolescent infnan(3);
from Jon Buller in PR lib/3488.
also added some more functions to table and corrected xrefs.
 1.5 30-Mar-1996  jtc Changed 3m to 3. There is no 3m manpage section.
 1.4 25-Feb-1994  jtc Changes for new math library.
 1.3 14-Aug-1993  mycroft New code from uunet.
 1.2 01-Aug-1993  mycroft Add RCS indentifiers.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.25.8.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.25.2.1 16-Jan-2013  yamt sync with (a bit old) head
 1.28.14.1 11-Aug-2023  martin Pull up following revision(s) (requested by riastradh in ticket #320):

lib/libm/src/ldbl_dummy.c: revision 1.3
distrib/sets/lists/debug/shl.mi: revision 1.303
lib/libm/src/ldbl_dummy.c: revision 1.4
lib/libm/src/namespace.h: revision 1.17
lib/libm/src/s_llrintl.c: revision 1.3
lib/libm/Makefile: revision 1.220
lib/libm/src/s_lrintl.c: revision 1.3
lib/libm/man/sincos.3: revision 1.2
lib/libm/man/math.3: revision 1.29
distrib/sets/lists/base/shl.mi: revision 1.946
lib/libm/shlib_version: revision 1.18

libm: Fill in more dummy long double transcendental functions.
This should cover everything from C99.

libm: Need <math.h> for __HAVE_LONG_DOUBLE.
Fixes missing definitions of lrintl, llrintl on various platforms.

Add (newly added): expm1l log1pl log2l lgammal tgammal
so that the library gets the correct symbols defined in it.

libm: Bump minor for new long double transcendental functions.
XXX Still missing: remquol, remainderl.

fix cross references (from Anon Ymous)

Correct history (Brad Smith)

libm: Add missing fma(3) and friends for sh3.

libm: Add dummy remainderl and remquol.
These are pretty bad -- these aren't transcendental functions; not
rocket science to make them correctly rounded -- but let's just make
sure they're available in libm for netbsd-10.
 1.3 01-Feb-2017  abhinav Add modff and modfl in the NAME section.
 1.2 15-Mar-2016  nros branches: 1.2.2; 1.2.4;
Add modfl to the modf manpage, the link to modfl was already there but the
content was missing.
 1.1 03-Jul-2006  drochner move manpages for frexp/ldexp/modf to libm -- the (most) implementation is
already there
 1.2.4.1 21-Apr-2017  bouyer Sync with HEAD
 1.2.2.1 20-Mar-2017  pgoyette Sync with HEAD
 1.8 02-May-2019  mgorny Explicitly indicate that nexttowardl() is identical to nextafterl().

Requested by kamil.
 1.7 28-Apr-2019  wiz Remove undefined \*H
 1.6 27-Apr-2019  kamil Add a C99 symbol to libm: nexttowardl

It's an alias for an already existing symbol nextafterl.

Patch obtained from <mgorny>

Detected by the LLVM buildbot breakage in tests.
 1.5 13-Sep-2015  he branches: 1.5.16;
Add entry for nexttowardf(3) and a link for the function name.
Bump manual page date.
 1.4 18-Sep-2011  jruoho Remove BUGS as per joerg@'s objection.
 1.3 13-Sep-2011  njoly Remove xrefs to ieee(3) man page which does not exists anymore.
 1.2 16-Apr-2011  christos Fix markup
 1.1 12-Apr-2011  jruoho Split the nextafter(3) family of functions to their own page and properly
document these.
 1.5.16.1 10-Jun-2019  christos Sync with HEAD
 1.4 26-Jan-2024  wiz Fix typo
 1.3 26-Jan-2024  nros Add the long double math functions recently added from FreeBSD to their related man pages
 1.2 13-Nov-2015  wiz Family is singular, so use singular form of verb.
 1.1 17-Sep-2011  jruoho Split out pow(3) from exp(3).
 1.3 26-Jan-2024  nros Add the long double math functions recently added from FreeBSD to their related man pages
 1.2 18-Sep-2011  jruoho Remove BUGS as per joerg@'s objection.
 1.1 13-Apr-2011  jruoho Split out from ieee(3) also the remainder(3) and copysign(3) families.
 1.16 18-Apr-2025  christos Explain how to get and set the rounding mode.
 1.15 13-Sep-2015  wiz branches: 1.15.28;
Fix typo.
 1.14 13-Sep-2015  he Add entries for rintl(3) and the nearbyint functions, and
make manual page links to the new functions.
Bump manual page date.
 1.13 13-Sep-2011  njoly Remove xrefs to ieee(3) man page which does not exists anymore.
 1.12 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.11 16-Apr-2003  wiz Use
.In header.h
instead of
.Fd #include \*[Lt]header.h\*[Gt]
Much easier to read and write, and supported by groff for ages.
Okayed by ross.
 1.10 20-Feb-2002  wiz Sort SEE ALSO.
 1.9 07-Feb-2002  ross Generate <>& symbolically.
 1.8 15-Aug-1999  kleink Add single-precision versions of interfaces to their manual pages' NAME section
and install links as appropriate.
 1.7 05-Feb-1998  perry add LIBRARY section to man page
 1.6 09-Oct-1997  lukem rcsid facism, WARNSify
 1.5 14-Apr-1995  jtc First cut at adding float versions of math functions to the manpages.
 1.4 11-Mar-1994  jtc Updated for new math library.
 1.3 14-Aug-1993  mycroft New code from uunet.
 1.2 01-Aug-1993  mycroft Add RCS indentifiers.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.15.28.1 02-Aug-2025  perseant Sync with HEAD
 1.7 12-Nov-2013  joerg Man page entries for ceill, floorl and roundl.
 1.6 13-Sep-2011  njoly branches: 1.6.2; 1.6.8;
Remove xrefs to ieee(3) man page which does not exists anymore.
 1.5 25-Mar-2006  uwe Uncomment crossreference to trunc now that we have it.
 1.4 24-Jan-2006  kleink Note roundf() in STANDARDS, too.
 1.3 15-Jul-2004  junyoung branches: 1.3.2;
round(3) and roundf(3) appeared in 2.0.
Bump date.
 1.2 10-Jul-2004  wiz Move RCS Id to top of file; comment out reference to trunc(3),
which we do not have.
 1.1 10-Jul-2004  junyoung lib/24252: Add C99 functions round(3) and roundf(3).
libm minor unchanged; ride a recent bump.

From FreeBSD.
 1.3.2.3 15-Jul-2004  he Pull up revisions 1.2-1.3 (requested by junyoung in ticket #664):
Corrected "appeared in", and updated date.
 1.3.2.2 15-Jul-2004  he Pull up revision 1.1 (new, requested by junyoung in ticket #664):
Add C99 functions round(3) and roundf(3).
Bump the teeny version number for libm.
 1.3.2.1 15-Jul-2004  he file round.3 was added on branch netbsd-2-0 on 2004-07-15 20:57:36 +0000
 1.6.8.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.6.2.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.2 18-Sep-2011  jruoho Remove BUGS as per joerg@'s objection.
 1.1 06-Aug-2011  jruoho Split out the scalbn(3) family out from ieee(3) and properly document it.
 1.16 26-Jan-2024  nros Add the long double math functions recently added from FreeBSD to their related man pages
 1.15 02-Sep-2019  sevan Start documenting history
https://www.bell-labs.com/usr/dmr/www/man31.pdf
 1.14 07-Aug-2003  agc branches: 1.14.96; 1.14.98;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.13 16-Apr-2003  wiz Use
.In header.h
instead of
.Fd #include \*[Lt]header.h\*[Gt]
Much easier to read and write, and supported by groff for ages.
Okayed by ross.
 1.12 20-Feb-2002  wiz Sort SEE ALSO.
 1.11 07-Feb-2002  ross Generate <>& symbolically.
 1.10 10-Sep-1999  simonb Remove SCCS revision line from the middle of the copyright - the version
info is still in the usual place after the "THIS SOFTWARE IS..." blurb.
 1.9 15-Aug-1999  kleink Add single-precision versions of interfaces to their manual pages' NAME section
and install links as appropriate.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 05-Feb-1998  perry add LIBRARY section to man page
 1.6 09-Oct-1997  lukem rcsid facism, WARNSify
 1.5 14-Apr-1995  jtc First cut at adding float versions of math functions to the manpages.
 1.4 29-Oct-1993  jtc Fix formatting of SEE ALSO section.
 1.3 14-Aug-1993  mycroft New code from uunet.
 1.2 01-Aug-1993  mycroft Add RCS indentifiers.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.14.98.1 05-Sep-2019  martin Pull up following revision(s) (requested by sevan in ticket #174):
lib/libc/sys/chmod.2: revision 1.48
lib/libc/sys/stat.2: revision 1.59
lib/libc/sys/unlink.2: revision 1.30
lib/libc/sys/lseek.2: revision 1.25
lib/libc/sys/getuid.2: revision 1.18
lib/libc/sys/chown.2: revision 1.37
lib/libm/man/exp.3: revision 1.32
lib/libm/man/log.3: revision 1.7
lib/libc/sys/open.2: revision 1.60
lib/libc/stdio/fopen.3: revision 1.36
lib/libc/stdio/putc.3: revision 1.14
lib/libc/sys/mount.2: revision 1.51
share/man/man9/copy.9: revision 1.22
share/man/man9/uiomove.9: revision 1.20
lib/libc/sys/setuid.2: revision 1.23
lib/libc/sys/close.2: revision 1.18
sbin/init/init.8: revision 1.61
lib/libc/sys/write.2: revision 1.36
lib/libc/sys/read.2: revision 1.39
sbin/init/init.8: revision 1.62
lib/libc/sys/wait.2: revision 1.40
usr.bin/tty/tty.1: revision 1.10
lib/libc/sys/link.2: revision 1.33
usr.bin/du/du.1: revision 1.24
lib/libc/stdlib/exit.3: revision 1.17
usr.bin/su/su.1: revision 1.53
usr.bin/mail/mail.1: revision 1.66
lib/libc/sys/fork.2: revision 1.25
usr.bin/su/su.1: revision 1.54
usr.bin/mail/mail.1: revision 1.67
lib/libm/man/sin.3: revision 1.15
share/man/man9/intro.9: revision 1.26
share/man/man5/utmp.5: revision 1.17
lib/libc/compat-43/creat.3: revision 1.17
lib/libc/time/ctime.3: revision 1.61
lib/libcompat/4.1/stty.3: revision 1.10
usr.bin/dc/dc.1: revision 1.3
lib/libm/man/cos.3: revision 1.17
lib/libc/sys/chdir.2: revision 1.23
lib/libc/gen/exec.3: revision 1.30
lib/libc/gen/exec.3: revision 1.31
games/bcd/bcd.6: revision 1.18
games/bcd/bcd.6: revision 1.19
usr.bin/write/write.1: revision 1.7
usr.bin/wc/wc.1: revision 1.18
usr.bin/pr/pr.1: revision 1.24
usr.bin/who/who.1: revision 1.25
lib/libc/sys/mkdir.2: revision 1.30
lib/libc/stdio/getc.3: revision 1.13
usr.bin/sort/sort.1: revision 1.40
usr.bin/mesg/mesg.1: revision 1.11
share/man/man5/passwd.5: revision 1.34
sort was there since v1
https://www.bell-labs.com/usr/dmr/www/man61.pdf

dc was in v1
https://www.bell-labs.com/usr/dmr/www/man12.pdf

du was in v1
https://www.bell-labs.com/usr/dmr/www/man12.pdf

mail was in v1
https://www.bell-labs.com/usr/dmr/www/man12.pdf

mesg was in v1
https://www.bell-labs.com/usr/dmr/www/man12.pdf

Document history
https://www.bell-labs.com/usr/dmr/www/man13.pdf

su was in v1
https://www.bell-labs.com/usr/dmr/www/man13.pdf

Document history
https://www.bell-labs.com/usr/dmr/www/man13.pdf

Document history
https://www.bell-labs.com/usr/dmr/www/man14.pdf
Update URL

write was in v1
https://www.bell-labs.com/usr/dmr/www/man14.pdf
grammar

passwd(5) was in v1
https://www.bell-labs.com/usr/dmr/www/man51.pdf

utmp(5) was present in v1
https://www.bell-labs.com/usr/dmr/www/man51.pdf

Earliest version of wtmp I could find was in v3
https://minnie.tuhs.org/cgi-bin/utree.pl?file=V3/man/man5/wtmp.5

Document history of chdir(2)
https://www.bell-labs.com/usr/dmr/www/man21.pdf

Document history of chmod(2)
https://www.bell-labs.com/usr/dmr/www/man21.pdf

Document history of chown(2)
https://www.bell-labs.com/usr/dmr/www/man21.pdf

Document history
https://www.bell-labs.com/usr/dmr/www/man21.pdf

create was present in v1
https://www.bell-labs.com/usr/dmr/www/man21.pdf

Document history of exec()
Move statement on execlpe() & execvpe() to HISTORY section.

Document history
https://www.bell-labs.com/usr/dmr/www/man21.pdf

fork was present in v1
https://www.bell-labs.com/usr/dmr/www/man21.pdf
stat() was present in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

document history of fstat()
https://www.bell-labs.com/usr/dmr/www/man21.pdf

getuid was present in v1
https://www.bell-labs.com/usr/dmr/www/man21.pdf

Document history
https://www.bell-labs.com/usr/dmr/www/man21.pdf

Document history
https://www.bell-labs.com/usr/dmr/www/man21.pdf

stty & gtty were around since v1
https://www.bell-labs.com/usr/dmr/www/man21.pdf
https://www.bell-labs.com/usr/dmr/www/man22.pdf

mount & umount were present in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

Open was present in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

read was present in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

seek was present in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

setuid was in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

unlink was presen in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

wait was present in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

write was present in v1
https://www.bell-labs.com/usr/dmr/www/man22.pdf

start documenting history
exp was present in v1
https://www.bell-labs.com/usr/dmr/www/man31.pdf

Start documenting history
https://www.bell-labs.com/usr/dmr/www/man31.pdf

Start documenting history
https://www.bell-labs.com/usr/dmr/www/man31.pdf

log appeared in v1
https://www.bell-labs.com/usr/dmr/www/man31.pdf

putc & putw were in v1
https://www.bell-labs.com/usr/dmr/www/man31.pdf

putchar was in v4
https://minie.tuhs.org/cgi-bin/utree.pl?file=V4/man/man3/putchr.3

Start documenting history
https://www.bell-labs.com/usr/dmr/www/man31.pdf

Document history.
https://www.bell-labs.com/usr/dmr/www/man11.pdf
Between v1 & v6 UNIX, bcd was rewritten in C, but I don't know if which
version,
hence I've skipped mentioning it.
End sentence with a dot.
Remove superfluous Pp.
Remove superfluous Pp.
Remove superfluous Ns.
Remove superfluous Pp.
fetch(9) -> ufetch(9)
fetch(9) -> ufetch(9). Remove superfluous Pp.
fetch(9) -> ufetch(9). Remove reference to unimplemented ppi(9).
 1.14.96.1 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.2 11-Jun-2023  christos Correct history (Brad Smith)
 1.1 27-Aug-2022  christos branches: 1.1.2;
Add sincos{,f,l} from FreeBSD
 1.1.2.1 11-Aug-2023  martin Pull up following revision(s) (requested by riastradh in ticket #320):

lib/libm/src/ldbl_dummy.c: revision 1.3
distrib/sets/lists/debug/shl.mi: revision 1.303
lib/libm/src/ldbl_dummy.c: revision 1.4
lib/libm/src/namespace.h: revision 1.17
lib/libm/src/s_llrintl.c: revision 1.3
lib/libm/Makefile: revision 1.220
lib/libm/src/s_lrintl.c: revision 1.3
lib/libm/man/sincos.3: revision 1.2
lib/libm/man/math.3: revision 1.29
distrib/sets/lists/base/shl.mi: revision 1.946
lib/libm/shlib_version: revision 1.18

libm: Fill in more dummy long double transcendental functions.
This should cover everything from C99.

libm: Need <math.h> for __HAVE_LONG_DOUBLE.
Fixes missing definitions of lrintl, llrintl on various platforms.

Add (newly added): expm1l log1pl log2l lgammal tgammal
so that the library gets the correct symbols defined in it.

libm: Bump minor for new long double transcendental functions.
XXX Still missing: remquol, remainderl.

fix cross references (from Anon Ymous)

Correct history (Brad Smith)

libm: Add missing fma(3) and friends for sh3.

libm: Add dummy remainderl and remquol.
These are pretty bad -- these aren't transcendental functions; not
rocket science to make them correctly rounded -- but let's just make
sure they're available in libm for netbsd-10.
 1.15 26-Jan-2024  nros Add the long double math functions recently added from FreeBSD to their related man pages
 1.14 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.13 20-May-2003  wiz Nit fixes from jmc@openbsd.
 1.12 16-Apr-2003  wiz Use
.In header.h
instead of
.Fd #include \*[Lt]header.h\*[Gt]
Much easier to read and write, and supported by groff for ages.
Okayed by ross.
 1.11 20-Feb-2002  wiz Sort SEE ALSO.
 1.10 07-Feb-2002  ross Generate <>& symbolically.
 1.9 15-Aug-1999  kleink Add single-precision versions of interfaces to their manual pages' NAME section
and install links as appropriate.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 05-Feb-1998  perry add LIBRARY section to man page
 1.6 09-Oct-1997  lukem rcsid facism, WARNSify
 1.5 14-Apr-1995  jtc First cut at adding float versions of math functions to the manpages.
 1.4 29-Oct-1993  jtc Fix formatting of SEE ALSO section.
 1.3 14-Aug-1993  mycroft New code from uunet.
 1.2 01-Aug-1993  mycroft Add RCS indentifiers.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.15 04-Dec-2022  uwe lib: Mark up error names in man pages with .Er
 1.14 19-Nov-2013  joerg Add cbrtl(3) and sqrtl(3), from FreeBSD.
 1.13 07-Aug-2003  agc branches: 1.13.54; 1.13.60;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.12 16-Apr-2003  wiz Use
.In header.h
instead of
.Fd #include \*[Lt]header.h\*[Gt]
Much easier to read and write, and supported by groff for ages.
Okayed by ross.
 1.11 07-Feb-2002  ross Generate <>& symbolically.
 1.10 15-Aug-1999  kleink Add single-precision versions of interfaces to their manual pages' NAME section
and install links as appropriate.
 1.9 02-Jul-1999  simonb More trailing white space.
 1.8 05-Feb-1998  perry add LIBRARY section to man page
 1.7 09-Oct-1997  lukem rcsid facism, WARNSify
 1.6 14-Jul-1997  kleink Add missing standards conformance statements.
 1.5 29-Mar-1997  christos PR/3405: Krister Walfridsson: Various typos; since we compile with POSIX
libm, we should not xref matherr(3), and describe the errno settings.
 1.4 14-Apr-1995  jtc First cut at adding float versions of math functions to the manpages.
 1.3 14-Aug-1993  mycroft New code from uunet.
 1.2 01-Aug-1993  mycroft Add RCS indentifiers.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.13.60.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.13.54.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.14 26-Jan-2024  nros Add the long double math functions recently added from FreeBSD to their related man pages
 1.13 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.12 16-Apr-2003  wiz Use
.In header.h
instead of
.Fd #include \*[Lt]header.h\*[Gt]
Much easier to read and write, and supported by groff for ages.
Okayed by ross.
 1.11 20-Feb-2002  wiz Sort SEE ALSO.
 1.10 07-Feb-2002  ross Generate <>& symbolically.
 1.9 15-Aug-1999  kleink Add single-precision versions of interfaces to their manual pages' NAME section
and install links as appropriate.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 05-Feb-1998  perry add LIBRARY section to man page
 1.6 09-Oct-1997  lukem rcsid facism, WARNSify
 1.5 14-Apr-1995  jtc First cut at adding float versions of math functions to the manpages.
 1.4 05-Oct-1993  jtc Remove trailing comma from SEE ALSO list.
 1.3 14-Aug-1993  mycroft New code from uunet.
 1.2 01-Aug-1993  mycroft Add RCS indentifiers.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.16 26-Jan-2024  nros Add the long double math functions recently added from FreeBSD to their related man pages
 1.15 17-Nov-2011  wiz Fix a lint warning noted by njoly.
 1.14 18-Sep-2011  jruoho branches: 1.14.2;
Remove BUGS as per joerg@'s objection.
 1.13 12-Sep-2011  jruoho Improve and update. Also note again the lack of tanhl() in NetBSD.
 1.12 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.11 16-Apr-2003  wiz Use
.In header.h
instead of
.Fd #include \*[Lt]header.h\*[Gt]
Much easier to read and write, and supported by groff for ages.
Okayed by ross.
 1.10 20-Feb-2002  wiz Sort SEE ALSO.
 1.9 07-Feb-2002  ross Generate <>& symbolically.
 1.8 15-Aug-1999  kleink Add single-precision versions of interfaces to their manual pages' NAME section
and install links as appropriate.
 1.7 05-Feb-1998  perry add LIBRARY section to man page
 1.6 09-Oct-1997  lukem rcsid facism, WARNSify
 1.5 14-Apr-1995  jtc First cut at adding float versions of math functions to the manpages.
 1.4 05-Oct-1993  jtc Remove trailing comma from SEE ALSO list.
 1.3 14-Aug-1993  mycroft New code from uunet.
 1.2 01-Aug-1993  mycroft Add RCS indentifiers.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.14.2.1 17-Apr-2012  yamt sync with head
 1.7 13-Nov-2013  wiz Add missing comma.
 1.6 13-Nov-2013  joerg truncl(3)
 1.5 04-Apr-2006  wiz branches: 1.5.42; 1.5.48;
Sort SEE ALSO, bump date for previous.
 1.4 31-Mar-2006  drochner we don't have FE_TOWARDZERO (yet), refer to FP_RZ instead
 1.3 25-Mar-2006  kleink Add LIBRARY.
 1.2 25-Mar-2006  uwe Uncomment crossreference to round(3), we do have one.
 1.1 25-Mar-2006  xtraeme Add trunc() and truncf() C99 functions, from FreeBSD.
 1.5.48.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.5.42.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.11 17-Jul-2024  riastradh libm: Fix `mantissa' to say `significand' in comments.

(mantissa = fractional part of log(significand))

No functional change intended.
 1.10 02-Nov-2011  christos branches: 1.10.54;
Fix the vax build under gcc-4.5 which now detects that floating constants
don't fit or are effectively 0.
 1.9 01-May-2008  christos fix bugs that piss off lint.
 1.8 08-Jul-2006  matt branches: 1.8.18;
Rather than cast everything around (which upsets gcc4), use a union instead.
 1.7 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.6 15-Jun-2002  wiz Remove unnecessary spaces.
 1.5 15-Jun-2002  matt Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.4 08-Nov-1998  ragge branches: 1.4.12;
Fixe some forgotten vax -> __vax__ changes.
 1.3 20-Oct-1998  matt vax --> __vax__ (also egcsify the code; missing ints, braces, etc.)
 1.2 20-Oct-1997  ragge Fix a bunch of warnings introduced by more flags to cc.
 1.1 10-Oct-1995  ragge Machine independent math library files for non-IEEE architectures.
 1.4.12.1 18-Jun-2002  lukem Pull up revision 1.5 (requested by matt in ticket #286):
Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.8.18.1 18-May-2008  yamt sync with head.
 1.10.54.1 02-Aug-2025  perseant Sync with HEAD
 1.6 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 15-Jun-2002  matt Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.4 02-Jul-1999  simonb branches: 1.4.10;
More trailing white space.
 1.3 20-Oct-1998  matt vax --> __vax__ (also egcsify the code; missing ints, braces, etc.)
 1.2 20-Oct-1997  ragge Fix a bunch of warnings introduced by more flags to cc.
 1.1 10-Oct-1995  ragge Machine independent math library files for non-IEEE architectures.
 1.4.10.1 18-Jun-2002  lukem Pull up revision 1.5 (requested by matt in ticket #286):
Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.11 09-Jun-2024  riastradh libm: Sprinkle whitespace fixes and rcsids on inverse trig functions.

No functional change intended.
 1.10 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.9 21-Sep-2016  christos deal with namespace issues and missing atanhf for vax.
 1.8 24-Nov-2013  martin branches: 1.8.8;
Provide (very stupid) versions of atanf(), asinf() and acosf()
 1.7 07-Aug-2003  agc branches: 1.7.54; 1.7.60;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.6 15-Jun-2002  matt Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.5 02-Jul-1999  simonb branches: 1.5.10;
More trailing white space.
 1.4 08-Nov-1998  ragge Fixe some forgotten vax -> __vax__ changes.
 1.3 20-Oct-1998  matt vax --> __vax__ (also egcsify the code; missing ints, braces, etc.)
 1.2 20-Oct-1997  ragge Fix a bunch of warnings introduced by more flags to cc.
 1.1 10-Oct-1995  ragge Machine independent math library files for non-IEEE architectures.
 1.5.10.1 18-Jun-2002  lukem Pull up revision 1.6 (requested by matt in ticket #286):
Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.7.60.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.7.54.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.8.8.1 04-Nov-2016  pgoyette Sync with HEAD
 1.7 29-Apr-2008  uwe According to C99:

6.11.5 Storage-class specifiers

[#1] The placement of a storage-class specifier other than
at the beginning of the declaration specifiers in a
declaration is an obsolescent feature.

and gcc -Wextra warns about this, so s/const static/static const/
 1.6 07-Aug-2003  agc branches: 1.6.30;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 15-Jun-2002  matt Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.4 02-Jul-1999  simonb branches: 1.4.10;
More trailing white space.
 1.3 20-Oct-1998  matt vax --> __vax__ (also egcsify the code; missing ints, braces, etc.)
 1.2 20-Oct-1997  ragge Fix a bunch of warnings introduced by more flags to cc.
 1.1 10-Oct-1995  ragge Machine independent math library files for non-IEEE architectures.
 1.4.10.1 18-Jun-2002  lukem Pull up revision 1.5 (requested by matt in ticket #286):
Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.6.30.1 18-May-2008  yamt sync with head.
 1.8 09-Jun-2024  riastradh libm: Sprinkle whitespace fixes and rcsids on inverse trig functions.

No functional change intended.
 1.7 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.6 24-Nov-2013  martin Provide (very stupid) versions of atanf(), asinf() and acosf()
 1.5 07-Aug-2003  agc branches: 1.5.54; 1.5.60;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.4 15-Jun-2002  matt Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.3 02-Jul-1999  simonb branches: 1.3.10;
More trailing white space.
 1.2 20-Oct-1997  ragge Fix a bunch of warnings introduced by more flags to cc.
 1.1 10-Oct-1995  ragge Machine independent math library files for non-IEEE architectures.
 1.3.10.1 18-Jun-2002  lukem Pull up revision 1.4 (requested by matt in ticket #286):
Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.5.60.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.5.54.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.7 10-Oct-2014  martin Add a few missing weak aliases
 1.6 07-Aug-2003  agc branches: 1.6.74;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 15-Jun-2002  matt Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.4 02-Jul-1999  simonb branches: 1.4.10;
More trailing white space.
 1.3 08-Nov-1998  ragge Fixe some forgotten vax -> __vax__ changes.
 1.2 20-Oct-1998  matt vax --> __vax__ (also egcsify the code; missing ints, braces, etc.)
 1.1 10-Oct-1995  ragge Machine independent math library files for non-IEEE architectures.
 1.4.10.1 18-Jun-2002  lukem Pull up revision 1.5 (requested by matt in ticket #286):
Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.6.74.1 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.7 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.6 15-Jun-2002  matt Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.5 02-Jul-1999  simonb branches: 1.5.10;
More trailing white space.
 1.4 08-Nov-1998  ragge Fixe some forgotten vax -> __vax__ changes.
 1.3 20-Oct-1998  matt vax --> __vax__ (also egcsify the code; missing ints, braces, etc.)
 1.2 20-Oct-1997  ragge Fix a bunch of warnings introduced by more flags to cc.
 1.1 10-Oct-1995  ragge Machine independent math library files for non-IEEE architectures.
 1.5.10.1 18-Jun-2002  lukem Pull up revision 1.6 (requested by matt in ticket #286):
Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.1 21-Sep-2016  christos branches: 1.1.2;
deal with namespace issues and missing atanhf for vax.
 1.1.2.2 04-Nov-2016  pgoyette Sync with HEAD
 1.1.2.1 21-Sep-2016  pgoyette file n_atanhf.c was added on branch pgoyette-localcount on 2016-11-04 14:48:54 +0000
 1.5 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.4 15-Jun-2002  matt Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.3 02-Jul-1999  simonb branches: 1.3.10;
More trailing white space.
 1.2 20-Oct-1998  matt vax --> __vax__ (also egcsify the code; missing ints, braces, etc.)
 1.1 10-Oct-1995  ragge Machine independent math library files for non-IEEE architectures.
 1.3.10.1 18-Jun-2002  lukem Pull up revision 1.4 (requested by matt in ticket #286):
Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.7 24-Mar-2022  andvar s/interger/integer/ and s/Compensatin/Compensation/ in comments.
 1.6 24-Nov-2013  martin Provide cbrtf() and cbrtl()
 1.5 07-Aug-2003  agc branches: 1.5.54; 1.5.60;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.4 15-Jun-2002  matt Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.3 02-Jul-1999  simonb branches: 1.3.10;
More trailing white space.
 1.2 20-Oct-1998  matt vax --> __vax__ (also egcsify the code; missing ints, braces, etc.)
 1.1 10-Oct-1995  ragge Machine independent math library files for non-IEEE architectures.
 1.3.10.1 18-Jun-2002  lukem Pull up revision 1.4 (requested by matt in ticket #286):
Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.5.60.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.5.54.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.9 10-Oct-2014  martin Add a few missing weak aliases
 1.8 20-Mar-2008  mhitch branches: 1.8.42;
Add wrappers for missing coshf(), expf(), logf(), sinhf(), atan2f(), and
hypotf() functions for vax. Play the namespace and weak alias game for
functions used internally by the complex functions. Should fix the vax
build of libm.
 1.7 07-Aug-2003  agc branches: 1.7.22; 1.7.28;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.6 15-Jun-2002  matt Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.5 02-Jul-1999  simonb branches: 1.5.10;
More trailing white space.
 1.4 08-Nov-1998  ragge Fixe some forgotten vax -> __vax__ changes.
 1.3 20-Oct-1998  matt vax --> __vax__ (also egcsify the code; missing ints, braces, etc.)
 1.2 20-Oct-1997  ragge Fix a bunch of warnings introduced by more flags to cc.
 1.1 10-Oct-1995  ragge Machine independent math library files for non-IEEE architectures.
 1.5.10.1 18-Jun-2002  lukem Pull up revision 1.6 (requested by matt in ticket #286):
Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.7.28.1 24-Mar-2008  keiichi sync with head.
 1.7.22.1 23-Mar-2008  matt sync with HEAD
 1.8.42.1 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.9 24-Nov-2013  martin Provide erff() and erfcf().
 1.8 02-Nov-2011  christos branches: 1.8.2; 1.8.8;
Fix the vax build under gcc-4.5 which now detects that floating constants
don't fit or are effectively 0.
 1.7 03-May-2005  matt Don't cast x to double, it already is one.
 1.6 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 15-Jun-2002  matt Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.4 02-Jul-1999  simonb branches: 1.4.10;
More trailing white space.
 1.3 20-Oct-1998  matt vax --> __vax__ (also egcsify the code; missing ints, braces, etc.)
 1.2 20-Oct-1997  ragge Fix a bunch of warnings introduced by more flags to cc.
 1.1 10-Oct-1995  ragge Machine independent math library files for non-IEEE architectures.
 1.4.10.1 18-Jun-2002  lukem Pull up revision 1.5 (requested by matt in ticket #286):
Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.8.8.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.8.2.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.9 10-Oct-2014  martin Add a few missing weak aliases
 1.8 20-Mar-2008  mhitch branches: 1.8.42;
Add wrappers for missing coshf(), expf(), logf(), sinhf(), atan2f(), and
hypotf() functions for vax. Play the namespace and weak alias game for
functions used internally by the complex functions. Should fix the vax
build of libm.
 1.7 07-Aug-2003  agc branches: 1.7.22; 1.7.28;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.6 15-Jun-2002  matt Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.5 02-Jul-1999  simonb branches: 1.5.10;
More trailing white space.
 1.4 08-Nov-1998  ragge Fixe some forgotten vax -> __vax__ changes.
 1.3 20-Oct-1998  matt vax --> __vax__ (also egcsify the code; missing ints, braces, etc.)
 1.2 20-Oct-1997  ragge Fix a bunch of warnings introduced by more flags to cc.
 1.1 10-Oct-1995  ragge Machine independent math library files for non-IEEE architectures.
 1.5.10.1 18-Jun-2002  lukem Pull up revision 1.6 (requested by matt in ticket #286):
Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.7.28.1 24-Mar-2008  keiichi sync with head.
 1.7.22.1 23-Mar-2008  matt sync with HEAD
 1.8.42.1 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.4 06-Mar-2018  christos avoid negative shift
 1.3 23-Mar-2014  martin branches: 1.3.4; 1.3.8; 1.3.28;
Avoid strict aliasing problems
 1.2 12-Mar-2014  martin XXX This is all wrong and needs new tables and constants - but at least use
constants in the VAX double range for now, so it is compilable with newer
gcc.
 1.1 06-Mar-2014  martin Add brute-force adaptions of the ieee version of exp2() and exp2f for
vax. Needs some polishing (and table adaption), but should get the build
going for now.
 1.3.28.1 15-Mar-2018  pgoyette Synch with HEAD
 1.3.8.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.3.8.1 23-Mar-2014  tls file n_exp2.c was added on branch tls-maxphys on 2014-08-20 00:02:18 +0000
 1.3.4.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.3.4.1 23-Mar-2014  yamt file n_exp2.c was added on branch yamt-pagecache on 2014-05-22 11:36:57 +0000
 1.2 23-Mar-2014  martin branches: 1.2.4; 1.2.8;
Avoid strict aliasing problems
 1.1 06-Mar-2014  martin Add brute-force adaptions of the ieee version of exp2() and exp2f for
vax. Needs some polishing (and table adaption), but should get the build
going for now.
 1.2.8.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2.8.1 23-Mar-2014  tls file n_exp2f.c was added on branch tls-maxphys on 2014-08-20 00:02:18 +0000
 1.2.4.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.2.4.1 23-Mar-2014  yamt file n_exp2f.c was added on branch yamt-pagecache on 2014-05-22 11:36:57 +0000
 1.7 29-Apr-2008  uwe According to C99:

6.11.5 Storage-class specifiers

[#1] The placement of a storage-class specifier other than
at the beginning of the declaration specifiers in a
declaration is an obsolescent feature.

and gcc -Wextra warns about this, so s/const static/static const/
 1.6 07-Aug-2003  agc branches: 1.6.30;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 15-Jun-2002  matt Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.4 02-Jul-1999  simonb branches: 1.4.10;
More trailing white space.
 1.3 20-Oct-1998  matt vax --> __vax__ (also egcsify the code; missing ints, braces, etc.)
 1.2 20-Oct-1997  ragge Fix a bunch of warnings introduced by more flags to cc.
 1.1 10-Oct-1995  ragge Machine independent math library files for non-IEEE architectures.
 1.4.10.1 18-Jun-2002  lukem Pull up revision 1.5 (requested by matt in ticket #286):
Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.6.30.1 18-May-2008  yamt sync with head.
 1.8 24-Nov-2013  martin Provide expm1f()
 1.7 29-Apr-2008  uwe branches: 1.7.4; 1.7.26;
According to C99:

6.11.5 Storage-class specifiers

[#1] The placement of a storage-class specifier other than
at the beginning of the declaration specifiers in a
declaration is an obsolescent feature.

and gcc -Wextra warns about this, so s/const static/static const/
 1.6 07-Aug-2003  agc branches: 1.6.30;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 15-Jun-2002  matt Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.4 02-Jul-1999  simonb branches: 1.4.10;
More trailing white space.
 1.3 20-Oct-1998  matt vax --> __vax__ (also egcsify the code; missing ints, braces, etc.)
 1.2 20-Oct-1997  ragge Fix a bunch of warnings introduced by more flags to cc.
 1.1 10-Oct-1995  ragge Machine independent math library files for non-IEEE architectures.
 1.4.10.1 18-Jun-2002  lukem Pull up revision 1.5 (requested by matt in ticket #286):
Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.6.30.1 18-May-2008  yamt sync with head.
 1.7.26.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.7.4.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.9 08-May-2024  riastradh libm: Add rintl, rintf to non-IEEE754 architectures.

While here, delete #ifdef to handle ns32k -- I don't think that's
gonna be relevant any time soon; in case you hadn't noticed, the
world has moved on from ns32k to vax by now.

PR 57881
 1.8 16-Mar-2014  martin Provide all missing variants of trunc/floor/ceil.
 1.7 09-Dec-2010  abs branches: 1.7.6; 1.7.12;
Add noieee versions for lround(), lroundf(), lrint(), lrintf(),
llrint() and llrintf(). Code copied from round(), roundf() and
rint() and modified for return values. Its possible this may not
do the right things in edge cases, but if so its likely to have
the same issues as the existing round(), roundf() and rint().

All this used by vax (only), and should allow xnest to complete
build.
 1.6 13-May-2004  mhitch Add ceilf(), floorf(), and sqrtf() (as wrappers using ceil(), floor(), and
sqrt() repectively). The fixes PR#22796.
 1.5 07-Aug-2003  agc branches: 1.5.2;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.4 15-Jun-2002  matt Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.3 20-Oct-1998  matt branches: 1.3.12;
vax --> __vax__ (also egcsify the code; missing ints, braces, etc.)
 1.2 20-Oct-1997  ragge Fix a bunch of warnings introduced by more flags to cc.
 1.1 10-Oct-1995  ragge Machine independent math library files for non-IEEE architectures.
 1.3.12.1 18-Jun-2002  lukem Pull up revision 1.4 (requested by matt in ticket #286):
Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.5.2.1 15-May-2004  tron Pull up revision 1.6 (requested by mhitch in ticket #339):
Add ceilf(), floorf(), and sqrtf() (as wrappers using ceil(), floor(), and
sqrt() repectively). The fixes PR#22796.
 1.7.12.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.7.6.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.2 03-Feb-2014  martin Provide scalbnl, scalbnf, logbl, logbf, fmaxl for vax.
 1.1 09-Jan-2011  jakllsch branches: 1.1.6; 1.1.12;
Imlementations of fmax, fmaxf, fmin and fminf libm functions for VAX.
 1.1.12.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.6.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1 09-Jan-2011  jakllsch Imlementations of fmax, fmaxf, fmin and fminf libm functions for VAX.
 1.1 09-Jan-2011  jakllsch Imlementations of fmax, fmaxf, fmin and fminf libm functions for VAX.
 1.1 09-Jan-2011  jakllsch Imlementations of fmax, fmaxf, fmin and fminf libm functions for VAX.
 1.11 09-Nov-2018  martin Add modfl alias.
 1.10 16-Jan-2016  christos branches: 1.10.14; 1.10.16;
modernize.
 1.9 16-Jan-2016  christos fix typo
 1.8 16-Jan-2016  christos PR/50660: David Binderman: bad calls to printf, in test part
 1.7 22-Nov-2013  martin Fix stupid bug in previous (fixing fmodf)
 1.6 21-Nov-2013  martin Add fmodf and fmodl
 1.5 07-Aug-2003  agc branches: 1.5.54; 1.5.60;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.4 15-Jun-2002  matt Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.3 20-Oct-1998  matt branches: 1.3.12;
vax --> __vax__ (also egcsify the code; missing ints, braces, etc.)
 1.2 20-Oct-1997  ragge Fix a bunch of warnings introduced by more flags to cc.
 1.1 10-Oct-1995  ragge Machine independent math library files for non-IEEE architectures.
 1.3.12.1 18-Jun-2002  lukem Pull up revision 1.4 (requested by matt in ticket #286):
Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.5.60.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.5.54.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.10.16.1 10-Jun-2019  christos Sync with HEAD
 1.10.14.1 26-Nov-2018  pgoyette Sync with HEAD, resolve a couple of conflicts
 1.1 09-May-2024  riastradh libm: Add frexpf and frexpl on VAX.

These are trivial subroutines, not symbol aliases, for separate
reasons:

- frexpf has a different ABI from frexp (float vs double argument)

- frexp is defined in libc, not libm, so although long double is the
same as double, frexpl can't be an alias in libm of a symbol
defined in libc
 1.1 09-May-2024  riastradh libm: Add frexpf and frexpl on VAX.

These are trivial subroutines, not symbol aliases, for separate
reasons:

- frexpf has a different ABI from frexp (float vs double argument)

- frexp is defined in libc, not libm, so although long double is the
same as double, frexpl can't be an alias in libm of a symbol
defined in libc
 1.9 09-Nov-2013  christos fix unused variable warnings
 1.8 08-Jun-2012  abs branches: 1.8.2;
ANSI prototypes
 1.7 02-Nov-2011  christos branches: 1.7.2;
Fix the vax build under gcc-4.5 which now detects that floating constants
don't fit or are effectively 0.
 1.6 24-Nov-2006  wiz s/greatful/grateful/, from Zafer.
 1.5 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.4 15-Jun-2002  matt Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.3 20-Oct-1998  matt branches: 1.3.12;
vax --> __vax__ (also egcsify the code; missing ints, braces, etc.)
 1.2 20-Oct-1997  ragge Fix a bunch of warnings introduced by more flags to cc.
 1.1 10-Oct-1995  ragge Machine independent math library files for non-IEEE architectures.
 1.3.12.1 18-Jun-2002  lukem Pull up revision 1.4 (requested by matt in ticket #286):
Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.7.2.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.7.2.1 30-Oct-2012  yamt sync with head
 1.8.2.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2 09-May-2024  riastradh libm: Define ilogbl as alias for ilogb on vax.

PR 57881
 1.1 24-Aug-2016  christos branches: 1.1.2;
ilogb for the vax
 1.1.2.2 14-Sep-2016  pgoyette Sync with HEAD
 1.1.2.1 24-Aug-2016  pgoyette file n_ilogb.c was added on branch pgoyette-localcount on 2016-09-14 03:04:16 +0000
 1.7 02-Nov-2011  christos Fix the vax build under gcc-4.5 which now detects that floating constants
don't fit or are effectively 0.
 1.6 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 15-Jun-2002  matt Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.4 02-Jul-1999  simonb branches: 1.4.10;
More trailing white space.
 1.3 20-Oct-1998  matt vax --> __vax__ (also egcsify the code; missing ints, braces, etc.)
 1.2 20-Oct-1997  ragge Fix a bunch of warnings introduced by more flags to cc.
 1.1 10-Oct-1995  ragge Machine independent math library files for non-IEEE architectures.
 1.4.10.1 18-Jun-2002  lukem Pull up revision 1.5 (requested by matt in ticket #286):
Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.7 02-Nov-2011  christos Fix the vax build under gcc-4.5 which now detects that floating constants
don't fit or are effectively 0.
 1.6 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 15-Jun-2002  matt Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.4 02-Jul-1999  simonb branches: 1.4.10;
More trailing white space.
 1.3 20-Oct-1998  matt vax --> __vax__ (also egcsify the code; missing ints, braces, etc.)
 1.2 20-Oct-1997  ragge Fix a bunch of warnings introduced by more flags to cc.
 1.1 10-Oct-1995  ragge Machine independent math library files for non-IEEE architectures.
 1.4.10.1 18-Jun-2002  lukem Pull up revision 1.5 (requested by matt in ticket #286):
Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.8 05-Mar-2018  christos comment out unused variable.
 1.7 02-Nov-2011  christos Fix the vax build under gcc-4.5 which now detects that floating constants
don't fit or are effectively 0.
 1.6 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 15-Jun-2002  matt Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.4 02-Jul-1999  simonb branches: 1.4.10;
More trailing white space.
 1.3 20-Oct-1998  matt vax --> __vax__ (also egcsify the code; missing ints, braces, etc.)
 1.2 20-Oct-1997  ragge Fix a bunch of warnings introduced by more flags to cc.
 1.1 10-Oct-1995  ragge Machine independent math library files for non-IEEE architectures.
 1.4.10.1 18-Jun-2002  lukem Pull up revision 1.5 (requested by matt in ticket #286):
Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.8 09-Jun-2024  riastradh libm: Define lgamma_r, lgammal, lgammal_r on non-IEEE754.

Missing internal aliases _lgamma_r and _lgammal_r -- TBD.

PR 57881
 1.7 04-Feb-2019  mrg add some fallthru comments.
 1.6 24-Nov-2006  wiz branches: 1.6.82;
s/greatful/grateful/, from Zafer.
 1.5 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.4 15-Jun-2002  matt Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.3 20-Oct-1998  matt branches: 1.3.12;
vax --> __vax__ (also egcsify the code; missing ints, braces, etc.)
 1.2 20-Oct-1997  ragge Fix a bunch of warnings introduced by more flags to cc.
 1.1 10-Oct-1995  ragge Machine independent math library files for non-IEEE architectures.
 1.3.12.1 18-Jun-2002  lukem Pull up revision 1.4 (requested by matt in ticket #286):
Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.6.82.1 10-Jun-2019  christos Sync with HEAD
 1.9 16-Jul-2024  riastradh libm: Fix log-related symbol aliases.

- Do the weak alias dance for log, log2, log10, log1p, and their
f/l variants.

(Not strictly necessary for log2 and log10 since nothing in the
math library itself uses them -- only a computer scientist would
use log2 and only an engineer would use log10 -- but let's just do
it the same for all our forestry.)

- Provide long double aliases on vax.

- Sprinkle RCS ids.
 1.8 10-Oct-2014  martin branches: 1.8.28;
Add a few missing weak aliases
 1.7 20-Mar-2008  mhitch branches: 1.7.42;
Add wrappers for missing coshf(), expf(), logf(), sinhf(), atan2f(), and
hypotf() functions for vax. Play the namespace and weak alias game for
functions used internally by the complex functions. Should fix the vax
build of libm.
 1.6 07-Aug-2003  agc branches: 1.6.22; 1.6.28;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 15-Jun-2002  matt Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.4 02-Jul-1999  simonb branches: 1.4.10;
More trailing white space.
 1.3 20-Oct-1998  matt vax --> __vax__ (also egcsify the code; missing ints, braces, etc.)
 1.2 20-Oct-1997  ragge Fix a bunch of warnings introduced by more flags to cc.
 1.1 10-Oct-1995  ragge Machine independent math library files for non-IEEE architectures.
 1.4.10.1 18-Jun-2002  lukem Pull up revision 1.5 (requested by matt in ticket #286):
Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.6.28.1 24-Mar-2008  keiichi sync with head.
 1.6.22.1 23-Mar-2008  matt sync with HEAD
 1.7.42.1 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.8.28.1 02-Aug-2025  perseant Sync with HEAD
 1.8 16-Jul-2024  riastradh libm: Fix log-related symbol aliases.

- Do the weak alias dance for log, log2, log10, log1p, and their
f/l variants.

(Not strictly necessary for log2 and log10 since nothing in the
math library itself uses them -- only a computer scientist would
use log2 and only an engineer would use log10 -- but let's just do
it the same for all our forestry.)

- Provide long double aliases on vax.

- Sprinkle RCS ids.
 1.7 06-Mar-2014  martin branches: 1.7.38;
log10f() for vax
 1.6 07-Aug-2003  agc branches: 1.6.54; 1.6.60;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 15-Jun-2002  matt Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.4 02-Jul-1999  simonb branches: 1.4.10;
More trailing white space.
 1.3 20-Oct-1998  matt vax --> __vax__ (also egcsify the code; missing ints, braces, etc.)
 1.2 20-Oct-1997  ragge Fix a bunch of warnings introduced by more flags to cc.
 1.1 10-Oct-1995  ragge Machine independent math library files for non-IEEE architectures.
 1.4.10.1 18-Jun-2002  lukem Pull up revision 1.5 (requested by matt in ticket #286):
Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.6.60.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.6.54.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.7.38.1 02-Aug-2025  perseant Sync with HEAD
 1.9 16-Jul-2024  riastradh libm: Fix log-related symbol aliases.

- Do the weak alias dance for log, log2, log10, log1p, and their
f/l variants.

(Not strictly necessary for log2 and log10 since nothing in the
math library itself uses them -- only a computer scientist would
use log2 and only an engineer would use log10 -- but let's just do
it the same for all our forestry.)

- Provide long double aliases on vax.

- Sprinkle RCS ids.
 1.8 06-Mar-2014  martin branches: 1.8.38;
Simplistic log1pf() for vax
 1.7 29-Apr-2008  uwe branches: 1.7.4; 1.7.26;
According to C99:

6.11.5 Storage-class specifiers

[#1] The placement of a storage-class specifier other than
at the beginning of the declaration specifiers in a
declaration is an obsolescent feature.

and gcc -Wextra warns about this, so s/const static/static const/
 1.6 07-Aug-2003  agc branches: 1.6.30;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 15-Jun-2002  matt Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.4 02-Jul-1999  simonb branches: 1.4.10;
More trailing white space.
 1.3 20-Oct-1998  matt vax --> __vax__ (also egcsify the code; missing ints, braces, etc.)
 1.2 20-Oct-1997  ragge Fix a bunch of warnings introduced by more flags to cc.
 1.1 10-Oct-1995  ragge Machine independent math library files for non-IEEE architectures.
 1.4.10.1 18-Jun-2002  lukem Pull up revision 1.5 (requested by matt in ticket #286):
Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.6.30.1 18-May-2008  yamt sync with head.
 1.7.26.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.7.4.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.8.38.1 02-Aug-2025  perseant Sync with HEAD
 1.2 16-Jul-2024  riastradh libm: Fix log-related symbol aliases.

- Do the weak alias dance for log, log2, log10, log1p, and their
f/l variants.

(Not strictly necessary for log2 and log10 since nothing in the
math library itself uses them -- only a computer scientist would
use log2 and only an engineer would use log10 -- but let's just do
it the same for all our forestry.)

- Provide long double aliases on vax.

- Sprinkle RCS ids.
 1.1 06-Mar-2014  martin branches: 1.1.4; 1.1.8; 1.1.42;
log2() for vax
 1.1.42.1 02-Aug-2025  perseant Sync with HEAD
 1.1.8.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.8.1 06-Mar-2014  tls file n_log2.c was added on branch tls-maxphys on 2014-08-20 00:02:18 +0000
 1.1.4.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.4.1 06-Mar-2014  yamt file n_log2.c was added on branch yamt-pagecache on 2014-05-22 11:36:57 +0000
 1.6 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 15-Jun-2002  matt Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.4 02-Jul-1999  simonb branches: 1.4.10;
More trailing white space.
 1.3 20-Oct-1998  matt vax --> __vax__ (also egcsify the code; missing ints, braces, etc.)
 1.2 20-Oct-1997  ragge Fix a bunch of warnings introduced by more flags to cc.
 1.1 10-Oct-1995  ragge Machine independent math library files for non-IEEE architectures.
 1.4.10.1 18-Jun-2002  lukem Pull up revision 1.5 (requested by matt in ticket #286):
Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.1 09-Dec-2010  abs Add noieee versions for lround(), lroundf(), lrint(), lrintf(),
llrint() and llrintf(). Code copied from round(), roundf() and
rint() and modified for return values. Its possible this may not
do the right things in edge cases, but if so its likely to have
the same issues as the existing round(), roundf() and rint().

All this used by vax (only), and should allow xnest to complete
build.
 1.1 09-Dec-2010  abs Add noieee versions for lround(), lroundf(), lrint(), lrintf(),
llrint() and llrintf(). Code copied from round(), roundf() and
rint() and modified for return values. Its possible this may not
do the right things in edge cases, but if so its likely to have
the same issues as the existing round(), roundf() and rint().

All this used by vax (only), and should allow xnest to complete
build.
 1.12 09-Jul-2025  andvar Fix typos in comments:
s/mulicast/multicast/
s/muticast/multicast/
s/muliplicator/multiplicator/
s/muti-precision/multi-precision/
 1.11 11-Oct-2014  martin branches: 1.11.28;
Need powl as alias as well
 1.10 10-Oct-2014  martin Add a few missing weak aliases
 1.9 24-Nov-2013  martin branches: 1.9.4;
Provide powl()
 1.8 02-Nov-2011  christos branches: 1.8.2; 1.8.8;
Fix the vax build under gcc-4.5 which now detects that floating constants
don't fit or are effectively 0.
 1.7 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.6 15-Jun-2002  matt Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.5 14-Jul-2000  matt branches: 1.5.2;
Clean up & prepare for ELF. Don't define isnan since it's in libc. Add a
powf (really a wrapper for pow).
 1.4 02-Jul-1999  simonb More trailing white space.
 1.3 20-Oct-1998  matt vax --> __vax__ (also egcsify the code; missing ints, braces, etc.)
 1.2 20-Oct-1997  ragge Fix a bunch of warnings introduced by more flags to cc.
 1.1 10-Oct-1995  ragge Machine independent math library files for non-IEEE architectures.
 1.5.2.1 18-Jun-2002  lukem Pull up revision 1.6 (requested by matt in ticket #286):
Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.8.8.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.8.2.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.9.4.1 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.11.28.1 02-Aug-2025  perseant Sync with HEAD
 1.2 16-Mar-2014  martin Add roundl()
 1.1 17-Jan-2006  is branches: 1.1.42; 1.1.48;
C versions of non-IEEE round() / roundf(). Alas, using the VAX
cvtrdl; cvtld doesn't work for big numbers.
 1.1.48.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.42.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1 17-Jan-2006  is C versions of non-IEEE round() / roundf(). Alas, using the VAX
cvtrdl; cvtld doesn't work for big numbers.
 1.11 16-Jul-2024  riastradh libm/noieee_src/n_sincos.c: Omit confusing duplicate sincos{,f}.

This file is not currently used -- vax uses n_sincos.S and sincos{,f}
come from n_sincos1.c on vax instead. If we were to use n_sincos.c,
these duplicates would cause trouble, and in any case they cause
confusion, so let's simplify.

Add RCS id while here.
 1.10 08-May-2024  riastradh branches: 1.10.2;
libm: Do the weak alias dance for sin/cos/tan/finite{,f}.

tan isn't used internally, but it's confusing for it to be treated
differently from sin and cos, and there's no harm in doing the dance
unnecessarily.
 1.9 27-Aug-2022  christos Fix vax build.
 1.8 27-Aug-2022  christos Add sincos{,f,l} from FreeBSD
 1.7 10-Oct-2014  martin Add a few missing weak aliases
 1.6 07-Aug-2003  agc branches: 1.6.74;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 23-Jun-2002  matt Add cosf/sinf.
 1.4 15-Jun-2002  matt Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.3 02-Jul-1999  simonb branches: 1.3.10;
More trailing white space.
 1.2 22-Aug-1998  ragge The Mariah chip lacks the POLYD instruction, so some assembly coded
calculations must be done in C instead. Fast fix until the POLY{D,F,G,H}
insn's are written.
 1.1 10-Oct-1995  ragge Machine independent math library files for non-IEEE architectures.
 1.3.10.2 24-Jun-2002  lukem Pull up revision 1.5 (requested by matt in ticket #353):
Add cosf/sinf.
 1.3.10.1 18-Jun-2002  lukem Pull up revision 1.4 (requested by matt in ticket #286):
Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.6.74.1 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.10.2.1 02-Aug-2025  perseant Sync with HEAD
 1.2 06-May-2024  riastradh libm: Expose sincosl on vax.

PR 57881
 1.1 27-Aug-2022  christos Fix vax build.
 1.8 10-Oct-2014  martin Add a few missing weak aliases
 1.7 20-Mar-2008  mhitch branches: 1.7.42;
Add wrappers for missing coshf(), expf(), logf(), sinhf(), atan2f(), and
hypotf() functions for vax. Play the namespace and weak alias game for
functions used internally by the complex functions. Should fix the vax
build of libm.
 1.6 07-Aug-2003  agc branches: 1.6.22; 1.6.28;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 15-Jun-2002  matt Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.4 02-Jul-1999  simonb branches: 1.4.10;
More trailing white space.
 1.3 20-Oct-1998  matt vax --> __vax__ (also egcsify the code; missing ints, braces, etc.)
 1.2 20-Oct-1997  ragge Fix a bunch of warnings introduced by more flags to cc.
 1.1 10-Oct-1995  ragge Machine independent math library files for non-IEEE architectures.
 1.4.10.1 18-Jun-2002  lukem Pull up revision 1.5 (requested by matt in ticket #286):
Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.6.28.1 24-Mar-2008  keiichi sync with head.
 1.6.22.1 23-Mar-2008  matt sync with HEAD
 1.7.42.1 13-Oct-2014  martin Pullup the following revisions, requested by christos in #138:

src/lib/libm/Makefile 1.165-1.166
src/lib/libm/shlib_version 1.14
src/lib/libm/arch/vax/n_atan2.S 1.9
src/lib/libm/arch/vax/n_cabs.S 1.7
src/lib/libm/arch/vax/n_sincos.S 1.9
src/lib/libm/arch/vax/n_sqrt.S 1.10-1.11
src/lib/libm/complex/Makefile.inc 1.5-1.8
src/lib/libm/complex/cabsl.c 1.1
src/lib/libm/complex/cacoshl.c 1.1
src/lib/libm/complex/cacosl.c 1.1
src/lib/libm/complex/cargl.c 1.1
src/lib/libm/complex/casinhl.c 1.1
src/lib/libm/complex/casinl.c 1.1
src/lib/libm/complex/catanhl.c 1.1
src/lib/libm/complex/catanl.c 1.1
src/lib/libm/complex/ccoshl.c 1.1
src/lib/libm/complex/ccosl.c 1.1
src/lib/libm/complex/cephes_subrl.c 1.1
src/lib/libm/complex/cephes_subrl.h 1.1
src/lib/libm/complex/cexpl.c 1.1
src/lib/libm/complex/clogl.c 1.1
src/lib/libm/complex/cpowl.c 1.1
src/lib/libm/complex/cprojl.c 1.7
src/lib/libm/complex/csinhl.c 1.1
src/lib/libm/complex/csinl.c 1.1
src/lib/libm/complex/csqrtl.c 1.1
src/lib/libm/complex/ctanhl.c 1.1
src/lib/libm/complex/ctanl.c 1.1
src/lib/libm/man/acosh.3 1.17
src/lib/libm/man/asinh.3 1.17
src/lib/libm/man/atanh.3 1.17
src/lib/libm/noieee_src/n_atan2.c 1.7
src/lib/libm/noieee_src/n_cosh.c 1.9
src/lib/libm/noieee_src/n_exp.c 1.9
src/lib/libm/noieee_src/n_log.c 1.8
src/lib/libm/noieee_src/n_pow.c 1.10-1.11
src/lib/libm/noieee_src/n_sincos.c 1.7
src/lib/libm/noieee_src/n_sinh.c 1.8

Import the missing complex support routines from FreeBSD so we can
enable C++ 2011 mode for libstc++.
 1.5 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.4 15-Jun-2002  matt Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.3 02-Jul-1999  simonb branches: 1.3.10;
More trailing white space.
 1.2 20-Oct-1998  matt vax --> __vax__ (also egcsify the code; missing ints, braces, etc.)
 1.1 10-Oct-1995  ragge Machine independent math library files for non-IEEE architectures.
 1.3.10.1 18-Jun-2002  lukem Pull up revision 1.4 (requested by matt in ticket #286):
Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.5 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.4 15-Jun-2002  matt Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.3 02-Jul-1999  simonb branches: 1.3.10;
More trailing white space.
 1.2 22-Aug-1998  ragge The Mariah chip lacks the POLYD instruction, so some assembly coded
calculations must be done in C instead. Fast fix until the POLY{D,F,G,H}
insn's are written.
 1.1 10-Oct-1995  ragge Machine independent math library files for non-IEEE architectures.
 1.3.10.1 18-Jun-2002  lukem Pull up revision 1.4 (requested by matt in ticket #286):
Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.8 07-Sep-2024  andvar spelling and grammar fixes, mainly in comments.
 1.7 06-Mar-2014  martin branches: 1.7.38;
Simplistic tanhf() for vax
 1.6 07-Aug-2003  agc branches: 1.6.54; 1.6.60;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 15-Jun-2002  matt Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.4 02-Jul-1999  simonb branches: 1.4.10;
More trailing white space.
 1.3 20-Oct-1998  matt vax --> __vax__ (also egcsify the code; missing ints, braces, etc.)
 1.2 20-Oct-1997  ragge Fix a bunch of warnings introduced by more flags to cc.
 1.1 10-Oct-1995  ragge Machine independent math library files for non-IEEE architectures.
 1.4.10.1 18-Jun-2002  lukem Pull up revision 1.5 (requested by matt in ticket #286):
Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.6.60.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.6.54.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.7.38.1 02-Aug-2025  perseant Sync with HEAD
 1.6 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 15-Jun-2002  matt Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.4 02-Jul-1999  simonb branches: 1.4.10;
More trailing white space.
 1.3 15-Feb-1999  hubertf RCS ID police
 1.2 20-Oct-1998  matt vax --> __vax__ (also egcsify the code; missing ints, braces, etc.)
 1.1 22-Aug-1998  ragge The Mariah chip lacks the POLYD instruction, so some assembly coded
calculations must be done in C instead. Fast fix until the POLY{D,F,G,H}
insn's are written.
 1.4.10.1 18-Jun-2002  lukem Pull up revision 1.5 (requested by matt in ticket #286):
Ansify libm noieeesrc (for VAX). Also make const data really const.
libm for VAX can compiles with WARNS=2
 1.1 22-Mar-2017  chs branches: 1.1.2; 1.1.4;
provide a common softfloat fenv implemenation and use it for softfloat builds.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
 1.1.4.2 26-Apr-2017  pgoyette Sync with HEAD
 1.1.4.1 22-Mar-2017  pgoyette file feclearexcept.c was added on branch pgoyette-localcount on 2017-04-26 02:52:56 +0000
 1.1.2.2 22-Mar-2017  chs 12371
 1.1.2.1 22-Mar-2017  chs file feclearexcept.c was added on branch bouyer-socketcan on 2017-03-22 23:11:10 +0000
 1.1 22-Mar-2017  chs branches: 1.1.2; 1.1.4;
provide a common softfloat fenv implemenation and use it for softfloat builds.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
 1.1.4.2 26-Apr-2017  pgoyette Sync with HEAD
 1.1.4.1 22-Mar-2017  pgoyette file fedisableexcept.c was added on branch pgoyette-localcount on 2017-04-26 02:52:56 +0000
 1.1.2.2 22-Mar-2017  chs 12371
 1.1.2.1 22-Mar-2017  chs file fedisableexcept.c was added on branch bouyer-socketcan on 2017-03-22 23:11:10 +0000
 1.1 22-Mar-2017  chs branches: 1.1.2; 1.1.4;
provide a common softfloat fenv implemenation and use it for softfloat builds.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
 1.1.4.2 26-Apr-2017  pgoyette Sync with HEAD
 1.1.4.1 22-Mar-2017  pgoyette file feenableexcept.c was added on branch pgoyette-localcount on 2017-04-26 02:52:56 +0000
 1.1.2.2 22-Mar-2017  chs 12371
 1.1.2.1 22-Mar-2017  chs file feenableexcept.c was added on branch bouyer-socketcan on 2017-03-22 23:11:10 +0000
 1.1 22-Mar-2017  chs branches: 1.1.2; 1.1.4;
provide a common softfloat fenv implemenation and use it for softfloat builds.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
 1.1.4.2 26-Apr-2017  pgoyette Sync with HEAD
 1.1.4.1 22-Mar-2017  pgoyette file fegetenv.c was added on branch pgoyette-localcount on 2017-04-26 02:52:56 +0000
 1.1.2.2 22-Mar-2017  chs 12371
 1.1.2.1 22-Mar-2017  chs file fegetenv.c was added on branch bouyer-socketcan on 2017-03-22 23:11:10 +0000
 1.1 22-Mar-2017  chs branches: 1.1.2; 1.1.4;
provide a common softfloat fenv implemenation and use it for softfloat builds.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
 1.1.4.2 26-Apr-2017  pgoyette Sync with HEAD
 1.1.4.1 22-Mar-2017  pgoyette file fegetexcept.c was added on branch pgoyette-localcount on 2017-04-26 02:52:56 +0000
 1.1.2.2 22-Mar-2017  chs 12371
 1.1.2.1 22-Mar-2017  chs file fegetexcept.c was added on branch bouyer-socketcan on 2017-03-22 23:11:10 +0000
 1.1 22-Mar-2017  chs branches: 1.1.2; 1.1.4;
provide a common softfloat fenv implemenation and use it for softfloat builds.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
 1.1.4.2 26-Apr-2017  pgoyette Sync with HEAD
 1.1.4.1 22-Mar-2017  pgoyette file fegetexceptflag.c was added on branch pgoyette-localcount on 2017-04-26 02:52:56 +0000
 1.1.2.2 22-Mar-2017  chs 12371
 1.1.2.1 22-Mar-2017  chs file fegetexceptflag.c was added on branch bouyer-socketcan on 2017-03-22 23:11:10 +0000
 1.1 22-Mar-2017  chs branches: 1.1.2; 1.1.4;
provide a common softfloat fenv implemenation and use it for softfloat builds.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
 1.1.4.2 26-Apr-2017  pgoyette Sync with HEAD
 1.1.4.1 22-Mar-2017  pgoyette file fegetround.c was added on branch pgoyette-localcount on 2017-04-26 02:52:56 +0000
 1.1.2.2 22-Mar-2017  chs 12371
 1.1.2.1 22-Mar-2017  chs file fegetround.c was added on branch bouyer-socketcan on 2017-03-22 23:11:10 +0000
 1.1 22-Mar-2017  chs branches: 1.1.2; 1.1.4;
provide a common softfloat fenv implemenation and use it for softfloat builds.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
 1.1.4.2 26-Apr-2017  pgoyette Sync with HEAD
 1.1.4.1 22-Mar-2017  pgoyette file feholdexcept.c was added on branch pgoyette-localcount on 2017-04-26 02:52:56 +0000
 1.1.2.2 22-Mar-2017  chs 12371
 1.1.2.1 22-Mar-2017  chs file feholdexcept.c was added on branch bouyer-socketcan on 2017-03-22 23:11:10 +0000
 1.1 22-Mar-2017  chs branches: 1.1.2; 1.1.4;
provide a common softfloat fenv implemenation and use it for softfloat builds.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
 1.1.4.2 26-Apr-2017  pgoyette Sync with HEAD
 1.1.4.1 22-Mar-2017  pgoyette file feraiseexcept.c was added on branch pgoyette-localcount on 2017-04-26 02:52:56 +0000
 1.1.2.2 22-Mar-2017  chs 12371
 1.1.2.1 22-Mar-2017  chs file feraiseexcept.c was added on branch bouyer-socketcan on 2017-03-22 23:11:10 +0000
 1.1 22-Mar-2017  chs branches: 1.1.2; 1.1.4;
provide a common softfloat fenv implemenation and use it for softfloat builds.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
 1.1.4.2 26-Apr-2017  pgoyette Sync with HEAD
 1.1.4.1 22-Mar-2017  pgoyette file fesetenv.c was added on branch pgoyette-localcount on 2017-04-26 02:52:56 +0000
 1.1.2.2 22-Mar-2017  chs 12371
 1.1.2.1 22-Mar-2017  chs file fesetenv.c was added on branch bouyer-socketcan on 2017-03-22 23:11:10 +0000
 1.1 22-Mar-2017  chs branches: 1.1.2; 1.1.4;
provide a common softfloat fenv implemenation and use it for softfloat builds.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
 1.1.4.2 26-Apr-2017  pgoyette Sync with HEAD
 1.1.4.1 22-Mar-2017  pgoyette file fesetexceptflag.c was added on branch pgoyette-localcount on 2017-04-26 02:52:56 +0000
 1.1.2.2 22-Mar-2017  chs 12371
 1.1.2.1 22-Mar-2017  chs file fesetexceptflag.c was added on branch bouyer-socketcan on 2017-03-22 23:11:10 +0000
 1.1 22-Mar-2017  chs branches: 1.1.2; 1.1.4;
provide a common softfloat fenv implemenation and use it for softfloat builds.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
 1.1.4.2 26-Apr-2017  pgoyette Sync with HEAD
 1.1.4.1 22-Mar-2017  pgoyette file fesetround.c was added on branch pgoyette-localcount on 2017-04-26 02:52:56 +0000
 1.1.2.2 22-Mar-2017  chs 12371
 1.1.2.1 22-Mar-2017  chs file fesetround.c was added on branch bouyer-socketcan on 2017-03-22 23:11:10 +0000
 1.1 22-Mar-2017  chs branches: 1.1.2; 1.1.4;
provide a common softfloat fenv implemenation and use it for softfloat builds.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
 1.1.4.2 26-Apr-2017  pgoyette Sync with HEAD
 1.1.4.1 22-Mar-2017  pgoyette file fetestexcept.c was added on branch pgoyette-localcount on 2017-04-26 02:52:56 +0000
 1.1.2.2 22-Mar-2017  chs 12371
 1.1.2.1 22-Mar-2017  chs file fetestexcept.c was added on branch bouyer-socketcan on 2017-03-22 23:11:10 +0000
 1.1 22-Mar-2017  chs branches: 1.1.2; 1.1.4;
provide a common softfloat fenv implemenation and use it for softfloat builds.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
 1.1.4.2 26-Apr-2017  pgoyette Sync with HEAD
 1.1.4.1 22-Mar-2017  pgoyette file feupdateenv.c was added on branch pgoyette-localcount on 2017-04-26 02:52:56 +0000
 1.1.2.2 22-Mar-2017  chs 12371
 1.1.2.1 22-Mar-2017  chs file feupdateenv.c was added on branch bouyer-socketcan on 2017-03-22 23:11:10 +0000
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.2 11-Feb-1994  mycroft Clean up deleted files.
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.3 10-Aug-1994  mycroft Clean up deleted files.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.1 05-May-2012  christos branches: 1.1.2; 1.1.4;
Add tgamma{,f} from FreeBSD via rudolf, netbsd at eq dot cz
 1.1.4.2 23-May-2012  yamt sync with head.
 1.1.4.1 05-May-2012  yamt file b_exp.c was added on branch yamt-pagecache on 2012-05-23 10:07:32 +0000
 1.1.2.2 09-May-2012  riz Pull up following revision(s) (requested by christos in ticket #232):
distrib/sets/lists/comp/mi: revision 1.1756
lib/libm/Makefile: revision 1.124
lib/libm/src/math_private.h: revision 1.17
lib/libm/src/b_tgamma.c: revision 1.1
lib/libm/man/lgamma.3: revision 1.22
lib/libm/src/b_log.c: revision 1.1
lib/libm/src/b_exp.c: revision 1.1
include/math.h: revision 1.58
lib/libm/src/s_tgammaf.c: revision 1.1
add tgamma{,f}
Add tgamma{,f} from FreeBSD via rudolf, netbsd at eq dot cz
oops, forgot to commit: add tgamma and tgammaf
 1.1.2.1 05-May-2012  riz file b_exp.c was added on branch netbsd-6 on 2012-05-09 18:22:36 +0000
 1.1 05-May-2012  christos branches: 1.1.2; 1.1.4;
Add tgamma{,f} from FreeBSD via rudolf, netbsd at eq dot cz
 1.1.4.2 23-May-2012  yamt sync with head.
 1.1.4.1 05-May-2012  yamt file b_log.c was added on branch yamt-pagecache on 2012-05-23 10:07:32 +0000
 1.1.2.2 09-May-2012  riz Pull up following revision(s) (requested by christos in ticket #232):
distrib/sets/lists/comp/mi: revision 1.1756
lib/libm/Makefile: revision 1.124
lib/libm/src/math_private.h: revision 1.17
lib/libm/src/b_tgamma.c: revision 1.1
lib/libm/man/lgamma.3: revision 1.22
lib/libm/src/b_log.c: revision 1.1
lib/libm/src/b_exp.c: revision 1.1
include/math.h: revision 1.58
lib/libm/src/s_tgammaf.c: revision 1.1
add tgamma{,f}
Add tgamma{,f} from FreeBSD via rudolf, netbsd at eq dot cz
oops, forgot to commit: add tgamma and tgammaf
 1.1.2.1 05-May-2012  riz file b_log.c was added on branch netbsd-6 on 2012-05-09 18:22:36 +0000
 1.1 05-May-2012  christos branches: 1.1.2; 1.1.4;
Add tgamma{,f} from FreeBSD via rudolf, netbsd at eq dot cz
 1.1.4.2 23-May-2012  yamt sync with head.
 1.1.4.1 05-May-2012  yamt file b_tgamma.c was added on branch yamt-pagecache on 2012-05-23 10:07:32 +0000
 1.1.2.2 09-May-2012  riz Pull up following revision(s) (requested by christos in ticket #232):
distrib/sets/lists/comp/mi: revision 1.1756
lib/libm/Makefile: revision 1.124
lib/libm/src/math_private.h: revision 1.17
lib/libm/src/b_tgamma.c: revision 1.1
lib/libm/man/lgamma.3: revision 1.22
lib/libm/src/b_log.c: revision 1.1
lib/libm/src/b_exp.c: revision 1.1
include/math.h: revision 1.58
lib/libm/src/s_tgammaf.c: revision 1.1
add tgamma{,f}
Add tgamma{,f} from FreeBSD via rudolf, netbsd at eq dot cz
oops, forgot to commit: add tgamma and tgammaf
 1.1.2.1 05-May-2012  riz file b_tgamma.c was added on branch netbsd-6 on 2012-05-09 18:22:36 +0000
 1.3 24-Feb-2024  christos add missing symbols for non long double architectures.
 1.2 23-Jan-2024  christos move inclusion of <machine/ieee.h> to the ieee source files instead of
including it in math_private.h which is also used by the vax which is not ieee.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.2 10-Aug-1994  mycroft Clean up deleted files.
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.12 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.11 02-Jul-1999  simonb More trailing white space.
 1.10 09-Oct-1997  lukem rcsid facism, WARNSify
 1.9 12-May-1995  jtc Changed core routines to call __ieee754_sqrt() instead of sqrt(). I
reported this enhancement to fdlibm-comments, and got the following
reply:

Date: Thu, 11 May 1995 14:35:25 -0700
From: Kwok.Ng@Eng.Sun.COM (KC Ng)
To: fdlibm-comments@sunpro.Eng.Sun.COM, jtc@cygnus.com
Subject: Re: fdlibm 5.2: why do core functions use sqrt?

> I noticed that core (e_*.c) fdlibm functions like __ieee754_acos()
> ensure that they call sqrt() with arguments in range (x > 0), when
> they could call __ieee754_sqrt() directly.
>
> Since sqrt() does a lot more work (verifies x is in range, etc.) is
> there any reason for this? I'd think that calling __iee754_sqrt()
> would be more appropriate. ....

You are right. __ieee754_sqrt should be in use with e_*.c.
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.8 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.7 02-Jul-1999  simonb More trailing white space.
 1.6 09-Oct-1997  lukem rcsid facism, WARNSify
 1.5 12-May-1995  jtc Changed core routines to call __ieee754_sqrt() instead of sqrt(). I
reported this enhancement to fdlibm-comments, and got the following
reply:

Date: Thu, 11 May 1995 14:35:25 -0700
From: Kwok.Ng@Eng.Sun.COM (KC Ng)
To: fdlibm-comments@sunpro.Eng.Sun.COM, jtc@cygnus.com
Subject: Re: fdlibm 5.2: why do core functions use sqrt?

> I noticed that core (e_*.c) fdlibm functions like __ieee754_acos()
> ensure that they call sqrt() with arguments in range (x > 0), when
> they could call __ieee754_sqrt() directly.
>
> Since sqrt() does a lot more work (verifies x is in range, etc.) is
> there any reason for this? I'd think that calling __iee754_sqrt()
> would be more appropriate. ....

You are right. __ieee754_sqrt should be in use with e_*.c.
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.12 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.11 02-Jul-1999  simonb More trailing white space.
 1.10 09-Oct-1997  lukem rcsid facism, WARNSify
 1.9 12-May-1995  jtc Changed core routines to call __ieee754_sqrt() instead of sqrt(). I
reported this enhancement to fdlibm-comments, and got the following
reply:

Date: Thu, 11 May 1995 14:35:25 -0700
From: Kwok.Ng@Eng.Sun.COM (KC Ng)
To: fdlibm-comments@sunpro.Eng.Sun.COM, jtc@cygnus.com
Subject: Re: fdlibm 5.2: why do core functions use sqrt?

> I noticed that core (e_*.c) fdlibm functions like __ieee754_acos()
> ensure that they call sqrt() with arguments in range (x > 0), when
> they could call __ieee754_sqrt() directly.
>
> Since sqrt() does a lot more work (verifies x is in range, etc.) is
> there any reason for this? I'd think that calling __iee754_sqrt()
> would be more appropriate. ....

You are right. __ieee754_sqrt should be in use with e_*.c.
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.8 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.7 02-Jul-1999  simonb More trailing white space.
 1.6 09-Oct-1997  lukem rcsid facism, WARNSify
 1.5 12-May-1995  jtc Changed core routines to call __ieee754_sqrt() instead of sqrt(). I
reported this enhancement to fdlibm-comments, and got the following
reply:

Date: Thu, 11 May 1995 14:35:25 -0700
From: Kwok.Ng@Eng.Sun.COM (KC Ng)
To: fdlibm-comments@sunpro.Eng.Sun.COM, jtc@cygnus.com
Subject: Re: fdlibm 5.2: why do core functions use sqrt?

> I noticed that core (e_*.c) fdlibm functions like __ieee754_acos()
> ensure that they call sqrt() with arguments in range (x > 0), when
> they could call __ieee754_sqrt() directly.
>
> Since sqrt() does a lot more work (verifies x is in range, etc.) is
> there any reason for this? I'd think that calling __iee754_sqrt()
> would be more appropriate. ....

You are right. __ieee754_sqrt should be in use with e_*.c.
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Apr-2024  christos remove #include <ieeefp.h> for i386 now that it is included in math_private.h
 1.3 24-Feb-2024  christos add missing symbols for non long double architectures.
 1.2 27-Jan-2024  ryoon Enable asinl, acosl, logl, coshl, tanhl, atanhl, asinhl and acoshl

* Fix pkgsrc/math/py-numpy and pkgsrc/graphics/py-matplotlib, for example.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.5 09-Jun-2024  riastradh libm: Sprinkle whitespace fixes and rcsids on inverse trig functions.

No functional change intended.
 1.4 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.3 24-Feb-2024  christos add missing symbols for non long double architectures.
 1.2 27-Jan-2024  ryoon Enable asinl, acosl, logl, coshl, tanhl, atanhl, asinhl and acoshl

* Fix pkgsrc/math/py-numpy and pkgsrc/graphics/py-matplotlib, for example.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.13 09-May-2017  maya Correct misleading indentation. NFC

This isn't a functional difference because huge + x > one is
always true for a small x, and is probably a magical incantation
to raise inexact if x != 0

Found by GCC 8.0
 1.12 26-May-2002  wiz branches: 1.12.86;
__STDC__ is always defined on NetBSD.
 1.11 02-Jul-1999  simonb More trailing white space.
 1.10 09-Oct-1997  lukem rcsid facism, WARNSify
 1.9 12-May-1995  jtc Changed core routines to call __ieee754_sqrt() instead of sqrt(). I
reported this enhancement to fdlibm-comments, and got the following
reply:

Date: Thu, 11 May 1995 14:35:25 -0700
From: Kwok.Ng@Eng.Sun.COM (KC Ng)
To: fdlibm-comments@sunpro.Eng.Sun.COM, jtc@cygnus.com
Subject: Re: fdlibm 5.2: why do core functions use sqrt?

> I noticed that core (e_*.c) fdlibm functions like __ieee754_acos()
> ensure that they call sqrt() with arguments in range (x > 0), when
> they could call __ieee754_sqrt() directly.
>
> Since sqrt() does a lot more work (verifies x is in range, etc.) is
> there any reason for this? I'd think that calling __iee754_sqrt()
> would be more appropriate. ....

You are right. __ieee754_sqrt should be in use with e_*.c.
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.12.86.1 11-May-2017  pgoyette Sync with HEAD
 1.9 09-May-2017  maya Correct misleading indentation. NFC

This isn't a functional difference because huge + x > one is
always true for a small x, and is probably a magical incantation
to raise inexact if x != 0

Found by GCC 8.0
 1.8 26-May-2002  wiz branches: 1.8.86;
__STDC__ is always defined on NetBSD.
 1.7 02-Jul-1999  simonb More trailing white space.
 1.6 09-Oct-1997  lukem rcsid facism, WARNSify
 1.5 12-May-1995  jtc Changed core routines to call __ieee754_sqrt() instead of sqrt(). I
reported this enhancement to fdlibm-comments, and got the following
reply:

Date: Thu, 11 May 1995 14:35:25 -0700
From: Kwok.Ng@Eng.Sun.COM (KC Ng)
To: fdlibm-comments@sunpro.Eng.Sun.COM, jtc@cygnus.com
Subject: Re: fdlibm 5.2: why do core functions use sqrt?

> I noticed that core (e_*.c) fdlibm functions like __ieee754_acos()
> ensure that they call sqrt() with arguments in range (x > 0), when
> they could call __ieee754_sqrt() directly.
>
> Since sqrt() does a lot more work (verifies x is in range, etc.) is
> there any reason for this? I'd think that calling __iee754_sqrt()
> would be more appropriate. ....

You are right. __ieee754_sqrt should be in use with e_*.c.
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.8.86.1 11-May-2017  pgoyette Sync with HEAD
 1.5 09-Jun-2024  riastradh libm: Sprinkle whitespace fixes and rcsids on inverse trig functions.

No functional change intended.
 1.4 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.3 24-Feb-2024  christos add missing symbols for non long double architectures.
 1.2 27-Jan-2024  ryoon Enable asinl, acosl, logl, coshl, tanhl, atanhl, asinhl and acoshl

* Fix pkgsrc/math/py-numpy and pkgsrc/graphics/py-matplotlib, for example.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.13 10-Mar-2018  eadler Fix signed overflow in atan2

As a component of atan2(y, x), the case of x == 1.0 is farmed out to
atan(y). The current implementation of this comparison is vulnerable
to signed integer underflow (that is, undefined behavior), and it's
performed in a somewhat more complicated way than it need be. Change
it to not be quite so cute, rather directly comparing the high/low
bits of x to the specific IEEE-754 bit pattern that encodes 1.0.

ok martin@ pgoyette@ maya@
obtained from FreeBSD
 1.12 26-May-2002  wiz branches: 1.12.94;
__STDC__ is always defined on NetBSD.
 1.11 02-Jul-1999  simonb More trailing white space.
 1.10 11-Nov-1997  veego Fix a brain error from luke while he WARNSifyed libm.
Erik Bertelsen found the missplaced brakes.
 1.9 09-Oct-1997  lukem branches: 1.9.2;
rcsid facism, WARNSify
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.9.2.1 11-Nov-1997  veego Pull up revision 1.10 from the trunk, which fixes the 'PERL' problem.
 1.12.94.1 15-Mar-2018  pgoyette Synch with HEAD
 1.7 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.2 23-Jan-2024  christos move inclusion of <machine/ieee.h> to the ieee source files instead of
including it in math_private.h which is also used by the vax which is not ieee.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.11 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.10 02-Jul-1999  simonb More trailing white space.
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.7 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Apr-2024  christos remove #include <ieeefp.h> for i386 now that it is included in math_private.h
 1.3 24-Feb-2024  christos add missing symbols for non long double architectures.
 1.2 27-Jan-2024  ryoon Enable asinl, acosl, logl, coshl, tanhl, atanhl, asinhl and acoshl

* Fix pkgsrc/math/py-numpy and pkgsrc/graphics/py-matplotlib, for example.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.11 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.10 02-Jul-1999  simonb More trailing white space.
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 20-Jun-1997  mikel add parens for gcc -Wall
 1.7 10-May-1995  jtc Id -> NetBSD
 1.6 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.5 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.9 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 09-Oct-1997  lukem rcsid facism, WARNSify
 1.6 08-Apr-1996  phil Removing a "volatile" put there for the ns32k which is no longer needed.
 1.5 10-May-1995  jtc Id -> NetBSD
 1.4 16-Dec-1994  jtc Add volatile qualifier to huge and tiny, so that huge*huge and tiny*tiny
are performed at run-time.
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 03-Apr-2024  christos remove #include <ieeefp.h> for i386 now that it is included in math_private.h
 1.2 27-Jan-2024  ryoon Enable asinl, acosl, logl, coshl, tanhl, atanhl, asinhl and acoshl

* Fix pkgsrc/math/py-numpy and pkgsrc/graphics/py-matplotlib, for example.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.11 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.10 02-Jul-1999  simonb More trailing white space.
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.9 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 09-Oct-1997  lukem rcsid facism, WARNSify
 1.6 08-Apr-1996  phil Removing a "volatile" put there for the ns32k which is no longer needed.
 1.5 10-May-1995  jtc Id -> NetBSD
 1.4 16-Dec-1994  jtc Add volatile qualifier to huge and tiny, so that huge*huge and tiny*tiny
are performed at run-time.
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.12 19-Nov-2013  joerg Alias to fmod for platforms with double == long double
 1.11 26-May-2002  wiz branches: 1.11.54; 1.11.60;
__STDC__ is always defined on NetBSD.
 1.10 02-Jul-1999  simonb More trailing white space.
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.11.60.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.11.54.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.7 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 17-Jul-2024  riastradh libm: Fix `mantissa' to say `significand' in comments.

(mantissa = fractional part of log(significand))

No functional change intended.
 1.2 14-Nov-2013  martin branches: 1.2.4; 1.2.8; 1.2.42;
Make it compile on archs with implicit NBIT
 1.1 12-Nov-2013  joerg Initial version of fmodl from FreeBSD.
Basic test case for the fmod family.
 1.2.42.1 02-Aug-2025  perseant Sync with HEAD
 1.2.8.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2.8.1 14-Nov-2013  tls file e_fmodl.c was added on branch tls-maxphys on 2014-08-20 00:02:18 +0000
 1.2.4.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.2.4.1 14-Nov-2013  yamt file e_fmodl.c was added on branch yamt-pagecache on 2014-05-22 11:36:57 +0000
 1.7 20-Nov-1995  jtc Changed w_gamma.c, w_gamma_r.c, w_gammaf.c, w_gammaf_r.c to call
__ieee754_lgamma_r or __ieee754_lgammaf_r.
Removed e_gamma.c, e_gamma_r.c, e_gammaf.c, e_gammaf_r.c, e_lgamma.c,
e_lgamma_f.c.
 1.6 10-May-1995  jtc Id -> NetBSD
 1.5 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.7 20-Nov-1995  jtc Changed w_gamma.c, w_gamma_r.c, w_gammaf.c, w_gammaf_r.c to call
__ieee754_lgamma_r or __ieee754_lgammaf_r.
Removed e_gamma.c, e_gamma_r.c, e_gammaf.c, e_gammaf_r.c, e_lgamma.c,
e_lgamma_f.c.
 1.6 10-May-1995  jtc Id -> NetBSD
 1.5 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.4 20-Nov-1995  jtc Changed w_gamma.c, w_gamma_r.c, w_gammaf.c, w_gammaf_r.c to call
__ieee754_lgamma_r or __ieee754_lgammaf_r.
Removed e_gamma.c, e_gamma_r.c, e_gammaf.c, e_gammaf_r.c, e_lgamma.c,
e_lgamma_f.c.
 1.3 10-May-1995  jtc Id -> NetBSD
 1.2 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 20-Nov-1995  jtc Changed w_gamma.c, w_gamma_r.c, w_gammaf.c, w_gammaf_r.c to call
__ieee754_lgamma_r or __ieee754_lgammaf_r.
Removed e_gamma.c, e_gamma_r.c, e_gammaf.c, e_gammaf_r.c, e_lgamma.c,
e_lgamma_f.c.
 1.3 10-May-1995  jtc Id -> NetBSD
 1.2 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.13 25-Apr-2008  christos avoid shadow variables, and enable lint.
 1.12 26-May-2002  wiz branches: 1.12.30;
__STDC__ is always defined on NetBSD.
 1.11 02-Jul-1999  simonb More trailing white space.
 1.10 09-Oct-1997  lukem rcsid facism, WARNSify
 1.9 12-May-1995  jtc Changed core routines to call __ieee754_sqrt() instead of sqrt(). I
reported this enhancement to fdlibm-comments, and got the following
reply:

Date: Thu, 11 May 1995 14:35:25 -0700
From: Kwok.Ng@Eng.Sun.COM (KC Ng)
To: fdlibm-comments@sunpro.Eng.Sun.COM, jtc@cygnus.com
Subject: Re: fdlibm 5.2: why do core functions use sqrt?

> I noticed that core (e_*.c) fdlibm functions like __ieee754_acos()
> ensure that they call sqrt() with arguments in range (x > 0), when
> they could call __ieee754_sqrt() directly.
>
> Since sqrt() does a lot more work (verifies x is in range, etc.) is
> there any reason for this? I'd think that calling __iee754_sqrt()
> would be more appropriate. ....

You are right. __ieee754_sqrt should be in use with e_*.c.
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.12.30.1 18-May-2008  yamt sync with head.
 1.10 24-Jan-2016  gson Fix incorrect magic numbers in scaling. From FreeBSD commit 23397, by
way of Rin Okuyama. Fixes PR lib/50698.
 1.9 25-Apr-2008  christos branches: 1.9.40;
avoid shadow variables, and enable lint.
 1.8 26-May-2002  wiz branches: 1.8.30;
__STDC__ is always defined on NetBSD.
 1.7 02-Jul-1999  simonb More trailing white space.
 1.6 09-Oct-1997  lukem rcsid facism, WARNSify
 1.5 12-May-1995  jtc Changed core routines to call __ieee754_sqrt() instead of sqrt(). I
reported this enhancement to fdlibm-comments, and got the following
reply:

Date: Thu, 11 May 1995 14:35:25 -0700
From: Kwok.Ng@Eng.Sun.COM (KC Ng)
To: fdlibm-comments@sunpro.Eng.Sun.COM, jtc@cygnus.com
Subject: Re: fdlibm 5.2: why do core functions use sqrt?

> I noticed that core (e_*.c) fdlibm functions like __ieee754_acos()
> ensure that they call sqrt() with arguments in range (x > 0), when
> they could call __ieee754_sqrt() directly.
>
> Since sqrt() does a lot more work (verifies x is in range, etc.) is
> there any reason for this? I'd think that calling __iee754_sqrt()
> would be more appropriate. ....

You are right. __ieee754_sqrt should be in use with e_*.c.
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.8.30.1 18-May-2008  yamt sync with head.
 1.9.40.1 06-Mar-2016  martin Pull up following revision(s) (requested by gson in ticket #1120):
lib/libm/src/e_hypotf.c: revision 1.10
Fix incorrect magic numbers in scaling. From FreeBSD commit 23397, by
way of Rin Okuyama. Fixes PR lib/50698.
 1.3 07-Oct-2025  nat Be considerate of archs that don't set the hidden bit
for +/- infinity.

This was done to accomodate m68k softfloat.
 1.2 11-May-2024  riastradh hypotl(3): Fix includes and macros.

1. Need <math.h> for __HAVE_LONG_DOUBLE.
2. Need <machine/ieee.h> for struct ieee_ext_u &c.
3. EXT_FRACLBITS, not LDBL_MANL_SIZE.

PR lib/58245: hypotl is broken on ld128 ports
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.13 09-Feb-2017  maya Appease static analyzers by making all code paths which assign
values into p,q sane. Get rid of redundant assignment. Indent
for legibility. NFC.

This doesn't create a functional difference, as all callers
test number >= 0x40000000 anyway.

To see this, note the following:
- consistently, hx is the high bits of x, lx is the low bits,
x is the float.
- & 0x7fffffff zeroes the sign bit, as does fabs.

A case where it isn't easy to see that there's no functional
change is y1, which does:

ix = hx & 0x7fffffff (zero signbit of high bits of x)
y = fabs(x) (this has a zeroed signbit but otherwise same as x)
ix >= 0x40000000
pone(y); qone(y)

qone(x) (also pone) do:
ix = hx & 0x7fffffff

ix in qone and in the calling function are the same number,
and the comparison applies for both, and ix < 0x40000000 isn't
possible.

(Also, no explosions seem to happen when I feed it random numbers)
 1.12 20-Aug-2007  drochner branches: 1.12.54; 1.12.58;
Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.11 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.10 02-Jul-1999  simonb More trailing white space.
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.12.58.1 21-Apr-2017  bouyer Sync with HEAD
 1.12.54.1 20-Mar-2017  pgoyette Sync with HEAD
 1.11 09-Feb-2017  maya Appease static analyzers by making all code paths which assign
values into p,q sane. Get rid of redundant assignment. Indent
for legibility. NFC.

This doesn't create a functional difference, as all callers
test number >= 0x40000000 anyway.

To see this, note the following:
- consistently, hx is the high bits of x, lx is the low bits,
x is the float.
- & 0x7fffffff zeroes the sign bit, as does fabs.

A case where it isn't easy to see that there's no functional
change is y1, which does:

ix = hx & 0x7fffffff (zero signbit of high bits of x)
y = fabs(x) (this has a zeroed signbit but otherwise same as x)
ix >= 0x40000000
pone(y); qone(y)

qone(x) (also pone) do:
ix = hx & 0x7fffffff

ix in qone and in the calling function are the same number,
and the comparison applies for both, and ix < 0x40000000 isn't
possible.

(Also, no explosions seem to happen when I feed it random numbers)
 1.10 20-Aug-2007  drochner branches: 1.10.54; 1.10.58;
Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.9 19-Mar-2006  christos Coverity CID 572: Comment out dead code.
 1.8 19-Mar-2006  christos Coverity CID 573: Comment out unreachable code.
 1.7 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.10.58.1 21-Apr-2017  bouyer Sync with HEAD
 1.10.54.1 20-Mar-2017  pgoyette Sync with HEAD
 1.13 09-Feb-2017  maya Appease static analyzers by making all code paths which assign
values into p,q sane. Get rid of redundant assignment. Indent
for legibility. NFC.

This doesn't create a functional difference, as all callers
test number >= 0x40000000 anyway.

To see this, note the following:
- consistently, hx is the high bits of x, lx is the low bits,
x is the float.
- & 0x7fffffff zeroes the sign bit, as does fabs.

A case where it isn't easy to see that there's no functional
change is y1, which does:

ix = hx & 0x7fffffff (zero signbit of high bits of x)
y = fabs(x) (this has a zeroed signbit but otherwise same as x)
ix >= 0x40000000
pone(y); qone(y)

qone(x) (also pone) do:
ix = hx & 0x7fffffff

ix in qone and in the calling function are the same number,
and the comparison applies for both, and ix < 0x40000000 isn't
possible.

(Also, no explosions seem to happen when I feed it random numbers)
 1.12 20-Aug-2007  drochner branches: 1.12.54; 1.12.58;
Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.11 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.10 02-Jul-1999  simonb More trailing white space.
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.12.58.1 21-Apr-2017  bouyer Sync with HEAD
 1.12.54.1 20-Mar-2017  pgoyette Sync with HEAD
 1.12 09-Feb-2017  maya Appease static analyzers by making all code paths which assign
values into p,q sane. Get rid of redundant assignment. Indent
for legibility. NFC.

This doesn't create a functional difference, as all callers
test number >= 0x40000000 anyway.

To see this, note the following:
- consistently, hx is the high bits of x, lx is the low bits,
x is the float.
- & 0x7fffffff zeroes the sign bit, as does fabs.

A case where it isn't easy to see that there's no functional
change is y1, which does:

ix = hx & 0x7fffffff (zero signbit of high bits of x)
y = fabs(x) (this has a zeroed signbit but otherwise same as x)
ix >= 0x40000000
pone(y); qone(y)

qone(x) (also pone) do:
ix = hx & 0x7fffffff

ix in qone and in the calling function are the same number,
and the comparison applies for both, and ix < 0x40000000 isn't
possible.

(Also, no explosions seem to happen when I feed it random numbers)
 1.11 20-Aug-2007  drochner branches: 1.11.54; 1.11.58;
Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.10 19-Mar-2006  christos Use float constants!
 1.9 19-Mar-2006  christos Coverity CID 574: Unreachable code due to incorrect constants. Correct
constants according to the comments in the code, and add more comments.
 1.8 19-Mar-2006  christos Coverity CID 575: comment out dead code.
 1.7 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.11.58.1 21-Apr-2017  bouyer Sync with HEAD
 1.11.54.1 20-Mar-2017  pgoyette Sync with HEAD
 1.14 29-Nov-2010  drochner fix accuracy problems in argument ranges where j0(x) is small, closes
PR lib/44170 by Henning Petersen
(originally from Steven G. Kargl per FreeBSD PR bin/144306)
 1.13 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.12 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.11 02-Jul-1999  simonb More trailing white space.
 1.10 09-Oct-1997  lukem rcsid facism, WARNSify
 1.9 10-May-1995  jtc Id -> NetBSD
 1.8 16-Jan-1995  jtc Bug fix from fdlibm 5.2.
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.11 29-Nov-2010  drochner fix accuracy problems in argument ranges where j0(x) is small, closes
PR lib/44170 by Henning Petersen
(originally from Steven G. Kargl per FreeBSD PR bin/144306)
 1.10 19-Jan-2009  lukem fix -Wsign-compare issue
 1.9 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.8 09-Apr-2002  thorpej #if 0 invsqrtpi; it's not used.
 1.7 02-Jul-1999  simonb More trailing white space.
 1.6 09-Oct-1997  lukem rcsid facism, WARNSify
 1.5 10-May-1995  jtc Id -> NetBSD
 1.4 16-Jan-1995  jtc Bug fix from fdlibm 5.2.
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.7 20-Nov-1995  jtc Changed w_gamma.c, w_gamma_r.c, w_gammaf.c, w_gammaf_r.c to call
__ieee754_lgamma_r or __ieee754_lgammaf_r.
Removed e_gamma.c, e_gamma_r.c, e_gammaf.c, e_gammaf_r.c, e_lgamma.c,
e_lgamma_f.c.
 1.6 10-May-1995  jtc Id -> NetBSD
 1.5 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.11 01-Nov-2021  andvar fix typos, mainly in words minimum and maximum, but also few others.
 1.10 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.9 02-Jul-1999  simonb More trailing white space.
 1.8 09-Oct-1997  lukem rcsid facism, WARNSify
 1.7 10-May-1995  jtc Id -> NetBSD
 1.6 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.4 20-Nov-1995  jtc Changed w_gamma.c, w_gamma_r.c, w_gammaf.c, w_gammaf_r.c to call
__ieee754_lgamma_r or __ieee754_lgammaf_r.
Removed e_gamma.c, e_gamma_r.c, e_gammaf.c, e_gammaf_r.c, e_lgamma.c,
e_lgamma_f.c.
 1.3 10-May-1995  jtc Id -> NetBSD
 1.2 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.6 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.5 02-Jul-1999  simonb More trailing white space.
 1.4 09-Oct-1997  lukem rcsid facism, WARNSify
 1.3 10-May-1995  jtc Id -> NetBSD
 1.2 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.2 23-Jan-2024  christos move inclusion of <machine/ieee.h> to the ieee source files instead of
including it in math_private.h which is also used by the vax which is not ieee.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.12 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.11 02-Jul-1999  simonb More trailing white space.
 1.10 19-Aug-1998  thorpej Add some braces to make egcs happy. (This code could kill me.)
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.12 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.11 02-Jul-1999  simonb More trailing white space.
 1.10 09-Oct-1997  lukem rcsid facism, WARNSify
 1.9 10-May-1995  jtc Id -> NetBSD
 1.8 25-Jan-1995  jtc Remove unused static constant "one".
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.8 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.7 02-Jul-1999  simonb More trailing white space.
 1.6 09-Oct-1997  lukem rcsid facism, WARNSify
 1.5 10-May-1995  jtc Id -> NetBSD
 1.4 25-Jan-1995  jtc Remove unused static constant "one".
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.1 21-Jul-2005  christos Add log2 and log2f from FreeBSD PR 83845
 1.1 21-Jul-2005  christos Add log2 and log2f from FreeBSD PR 83845
 1.8 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.7 02-Jul-1999  simonb More trailing white space.
 1.6 19-Aug-1998  thorpej Add some braces to make egcs happy. (This code could kill me.)
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.17 27-Aug-2016  christos sync with FreeBSD
 1.16 23-Apr-2010  drochner -build ldexp/frexp/modf locally again rather than relying on libc
reaching over, to get things into a sane state,
-do the usual namespace protection game with scalbn(f) because it
is used internally
(more symbol renamings are necessary)

The weak_alias change for mc68881 is untested.
 1.15 19-Jan-2009  lukem fix -Wsign-compare issue
 1.14 25-Apr-2008  christos avoid shadow variables, and enable lint.
 1.13 30-Jun-2004  drochner branches: 1.13.24;
-fix a long-standing bug which affects the <close-to-1>^<huge number> case
(fixed in fdlibm-5.3)
-being here, sync with -5.3 as far as possible (There is another bugfix -
sign in overflow/underflow cases -; this doesn't change anything for us
because the wrapper (w_pow.c) fixes this up. Keep things in sync anyway
to ease further maintainance.)
 1.12 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.11 02-Jul-1999  simonb More trailing white space.
 1.10 09-Oct-1997  lukem rcsid facism, WARNSify
 1.9 12-May-1995  jtc Changed core routines to call __ieee754_sqrt() instead of sqrt(). I
reported this enhancement to fdlibm-comments, and got the following
reply:

Date: Thu, 11 May 1995 14:35:25 -0700
From: Kwok.Ng@Eng.Sun.COM (KC Ng)
To: fdlibm-comments@sunpro.Eng.Sun.COM, jtc@cygnus.com
Subject: Re: fdlibm 5.2: why do core functions use sqrt?

> I noticed that core (e_*.c) fdlibm functions like __ieee754_acos()
> ensure that they call sqrt() with arguments in range (x > 0), when
> they could call __ieee754_sqrt() directly.
>
> Since sqrt() does a lot more work (verifies x is in range, etc.) is
> there any reason for this? I'd think that calling __iee754_sqrt()
> would be more appropriate. ....

You are right. __ieee754_sqrt should be in use with e_*.c.
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 13-Sep-1994  jtc Remove CYGNUS_LOCAL comment: I maintain this code for NetBSD, not Cygnus
 1.5 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.13.24.1 18-May-2008  yamt sync with head.
 1.16 27-Aug-2016  christos sync with FreeBSD
 1.15 23-Apr-2010  drochner -build ldexp/frexp/modf locally again rather than relying on libc
reaching over, to get things into a sane state,
-do the usual namespace protection game with scalbn(f) because it
is used internally
(more symbol renamings are necessary)

The weak_alias change for mc68881 is untested.
 1.14 19-Jan-2009  lukem fix -Wsign-compare issue
 1.13 25-Apr-2008  christos avoid shadow variables, and enable lint.
 1.12 19-Mar-2006  christos branches: 1.12.18;
Coverity CID 562: Flip the order of the if statement to prevent unreachable
code.
 1.11 30-Jun-2004  drochner fic the <close-to-1>^<huge number> fix as in e_pow.c
 1.10 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.9 02-Jul-1999  simonb More trailing white space.
 1.8 09-Oct-1997  lukem rcsid facism, WARNSify
 1.7 08-Apr-1996  phil Removing a "volatile" put there for the ns32k which is no longer needed.
 1.6 12-May-1995  jtc Changed core routines to call __ieee754_sqrt() instead of sqrt(). I
reported this enhancement to fdlibm-comments, and got the following
reply:

Date: Thu, 11 May 1995 14:35:25 -0700
From: Kwok.Ng@Eng.Sun.COM (KC Ng)
To: fdlibm-comments@sunpro.Eng.Sun.COM, jtc@cygnus.com
Subject: Re: fdlibm 5.2: why do core functions use sqrt?

> I noticed that core (e_*.c) fdlibm functions like __ieee754_acos()
> ensure that they call sqrt() with arguments in range (x > 0), when
> they could call __ieee754_sqrt() directly.
>
> Since sqrt() does a lot more work (verifies x is in range, etc.) is
> there any reason for this? I'd think that calling __iee754_sqrt()
> would be more appropriate. ....

You are right. __ieee754_sqrt should be in use with e_*.c.
 1.5 10-May-1995  jtc Id -> NetBSD
 1.4 16-Dec-1994  jtc Add volatile qualifier to huge and tiny, so that huge*huge and tiny*tiny
are performed at run-time.
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.12.18.1 18-May-2008  yamt sync with head.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.12 24-Aug-2022  christos sync with FreeBSD; bring some more inline functions.
 1.11 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.10 02-Jul-1999  simonb More trailing white space.
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 25-Jan-1995  jtc Integrate last of the relavant changes from fdlibm 5.2:
4. Performance issue on rem_pio2
An attempt to speed up the argument reduction in the trig function is to
consider pi/4 < x < 3pi/4 a special case. This was done in the file
e_rem_pio2.c
 1.6 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.5 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.9 19-Jan-2009  lukem fix -Wsign-compare issue
 1.8 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.7 02-Jul-1999  simonb More trailing white space.
 1.6 09-Oct-1997  lukem rcsid facism, WARNSify
 1.5 10-May-1995  jtc Id -> NetBSD
 1.4 25-Jan-1995  jtc Integrate last of the relavant changes from fdlibm 5.2:
4. Performance issue on rem_pio2
An attempt to speed up the argument reduction in the trig function is to
consider pi/4 < x < 3pi/4 a special case. This was done in the file
e_rem_pio2.c
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.1 27-Aug-2022  christos Add sincos{,f,l} from FreeBSD
 1.2 29-Aug-2022  riastradh libm: Fix some whitespace issues in recent sincos additions.
 1.1 27-Aug-2022  christos Add sincos{,f,l} from FreeBSD
 1.11 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.10 02-Jul-1999  simonb More trailing white space.
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.7 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.10 23-Apr-2010  drochner -build ldexp/frexp/modf locally again rather than relying on libc
reaching over, to get things into a sane state,
-do the usual namespace protection game with scalbn(f) because it
is used internally
(more symbol renamings are necessary)

The weak_alias change for mc68881 is untested.
 1.9 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 09-Oct-1997  lukem rcsid facism, WARNSify
 1.6 10-May-1995  jtc Id -> NetBSD
 1.5 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.7 23-Apr-2010  drochner -build ldexp/frexp/modf locally again rather than relying on libc
reaching over, to get things into a sane state,
-do the usual namespace protection game with scalbn(f) because it
is used internally
(more symbol renamings are necessary)

The weak_alias change for mc68881 is untested.
 1.6 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.5 02-Jul-1999  simonb More trailing white space.
 1.4 09-Oct-1997  lukem rcsid facism, WARNSify
 1.3 10-May-1995  jtc Id -> NetBSD
 1.2 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.11 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.10 02-Jul-1999  simonb More trailing white space.
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 20-Jun-1997  mikel add parens for gcc -Wall
 1.7 10-May-1995  jtc Id -> NetBSD
 1.6 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.5 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.7 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.2 03-Apr-2024  christos remove #include <ieeefp.h> for i386 now that it is included in math_private.h
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.13 16-Feb-2009  lukem fix -Wsign-compare issue (on macppc)
 1.12 26-May-2002  wiz branches: 1.12.40;
__STDC__ is always defined on NetBSD.
 1.11 04-Dec-2001  wiz Replace some misuses of "then" with "than".
 1.10 02-Jul-1999  simonb More trailing white space.
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.12.40.1 13-May-2009  jym Sync with HEAD.

Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
 1.7 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.6 06-May-2017  christos add missing namespace.h
 1.5 26-Aug-2016  christos branches: 1.5.4;
do the FENV test consistently
 1.4 22-Nov-2013  martin branches: 1.4.4; 1.4.8;
For the non-fenv archs: just use double - punt
 1.3 22-Nov-2013  martin Try to fix the build (again): move e_sqrtl.c to common soure, but
move the include of fenv.h into the #ifdef __HAVE_LONG_DOUBLE block
and also provide a -DHAVE_FENV_H from the makefile for archs that have
it - leaving out exception settings on architectures that do not provide
it.
 1.2 20-Nov-2013  martin Make it compile on archs with implicit NBIT
 1.1 19-Nov-2013  joerg Add cbrtl(3) and sqrtl(3), from FreeBSD.
 1.4.8.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.4.8.1 22-Nov-2013  tls file e_sqrtl.c was added on branch tls-maxphys on 2014-08-20 00:02:18 +0000
 1.4.4.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.4.4.1 22-Nov-2013  yamt file e_sqrtl.c was added on branch yamt-pagecache on 2014-05-22 11:36:57 +0000
 1.5.4.1 11-May-2017  pgoyette Sync with HEAD
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.2 10-Aug-1994  mycroft Clean up deleted files.
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.2 11-Feb-1994  mycroft Clean up deleted files.
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.2 11-Feb-1994  mycroft Clean up deleted files.
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.11 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.10 02-Jul-1999  simonb More trailing white space.
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.7 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.15 08-Aug-2023  mrg avoid uninitialised variable accesses.

if __kernel_rem_pio2() or __kernel_rem_pio2f() are called with "nx" less
than 2, the local variable fq[0] may be accessed uninitialised.

__kernel_rem_pio2() has direct calls with nx = 1, and __kernel_rem_pio2f()
is called with a value starting at 3, but may be decreased to less than 2,
implied by this code , if not actually avoided by the tx[] setup above:
nx = 3;
while(tx[nx-1]==zero) nx--; /* skip zero term */
n = __kernel_rem_pio2f(tx,y,e0,nx,2,two_over_pi);

found by GCC 12.
 1.14 24-Aug-2022  christos sync with FreeBSD; bring some more inline functions.
 1.13 22-Jun-2017  maya Correct misleading indentation. NFC

From GCC8
 1.12 23-Apr-2010  drochner -build ldexp/frexp/modf locally again rather than relying on libc
reaching over, to get things into a sane state,
-do the usual namespace protection game with scalbn(f) because it
is used internally
(more symbol renamings are necessary)

The weak_alias change for mc68881 is untested.
 1.11 04-Jan-2003  wiz Spell output with two ts.
 1.10 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.9 02-Jul-1999  simonb More trailing white space.
 1.8 09-Oct-1997  lukem rcsid facism, WARNSify
 1.7 10-May-1995  jtc Id -> NetBSD
 1.6 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.5 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.10 08-Aug-2023  mrg avoid uninitialised variable accesses.

if __kernel_rem_pio2() or __kernel_rem_pio2f() are called with "nx" less
than 2, the local variable fq[0] may be accessed uninitialised.

__kernel_rem_pio2() has direct calls with nx = 1, and __kernel_rem_pio2f()
is called with a value starting at 3, but may be decreased to less than 2,
implied by this code , if not actually avoided by the tx[] setup above:
nx = 3;
while(tx[nx-1]==zero) nx--; /* skip zero term */
n = __kernel_rem_pio2f(tx,y,e0,nx,2,two_over_pi);

found by GCC 12.
 1.9 22-Jun-2017  maya Correct misleading indentation. NFC

From GCC8
 1.8 23-Apr-2010  drochner -build ldexp/frexp/modf locally again rather than relying on libc
reaching over, to get things into a sane state,
-do the usual namespace protection game with scalbn(f) because it
is used internally
(more symbol renamings are necessary)

The weak_alias change for mc68881 is untested.
 1.7 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.11 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.10 02-Jul-1999  simonb More trailing white space.
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.2 29-Aug-2022  riastradh libm: Fix some whitespace issues in recent sincos additions.
 1.1 27-Aug-2022  christos Add sincos{,f,l} from FreeBSD
 1.1 27-Aug-2022  christos Add sincos{,f,l} from FreeBSD
 1.2 29-Aug-2022  riastradh libm: Fix some whitespace issues in recent sincos additions.
 1.1 27-Aug-2022  christos Add sincos{,f,l} from FreeBSD
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.7 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.23 12-Apr-2021  mrg add a default: case to __kernel_standard(), failing with EDOM
 1.22 27-Aug-2016  christos no need for stdio.
 1.21 27-Aug-2016  christos correct case 23 for -0.0
 1.20 08-Sep-2015  dholland Apply patch in PR 45391 from Yui NARUSE: generate HUGE_VAL rather than
-HUGE_VAL for 0^negative. No objection after asking nearly two years
ago if I shouldn't just commit it.
 1.19 19-Nov-2013  joerg Add cbrtl(3) and sqrtl(3), from FreeBSD.
 1.18 19-Nov-2013  joerg Report correct exception for fmodl.
 1.17 11-Apr-2011  drochner branches: 1.17.4; 1.17.10;
let log(<0) return NaN rather than -inf in POSIX/XOPEN modes, as
requested in PR lib/41931 by Havard Eidnes (the PR refers to POSIX,
the OSF/1 manpage suggests that XOPEN should behave that way too)
being here, do the same to log10 and log2
 1.16 01-Sep-2010  drochner EDOM should not be set on atan2(0,0) in POSIX mode, found by
Stathis Kamperis' testsuite
 1.15 27-Jan-2010  drochner fix return values for atan2(+-0,+-0) in the POSIX case
 1.14 20-Jan-2010  drochner let the previous fix apply to acos rather than atan2,
and get rid of #ifdef vax
 1.13 20-Jan-2010  tnozaki PR/42630 asin(2.0) and acos(2.0) doesn't return NaN.
reported by NARUSE, Yui -san, Thanks!
 1.12 21-Jul-2005  christos branches: 1.12.26; 1.12.32;
Add wrappers for the newly added functions. Thanks Klaus!
 1.11 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.10 26-May-2001  aymeric revert previous (obviously wrong) change
 1.9 22-May-2001  aymeric Make this compile when _USE_WRITE is defined
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 09-Oct-1997  lukem rcsid facism, WARNSify
 1.6 10-May-1995  jtc Id -> NetBSD
 1.5 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.12.32.1 21-Apr-2010  matt sync to netbsd-5
 1.12.26.1 23-Jan-2010  bouyer Pull up following revision(s) (requested by tnozaki in ticket #1261):
lib/libm/src/k_standard.c: revision 1.13, 1.14
PR/42630 asin(2.0) and acos(2.0) doesn't return NaN.
reported by NARUSE, Yui -san, Thanks!
let the previous fix apply to acos rather than atan2,
and get rid of #ifdef vax
 1.17.10.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.17.4.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.12 22-Jul-2004  drochner pull in an accuracy fix for corner cases from FDLIBM 5.3
(affects large arguments which are close to N*Pi+Pi/2):
2. k_tan.c error was > 1 ulp target for FDLIBM
5.2: Worst error at least 1.45 ulp at
tan(1.7765241907548024E+269) = 1.7733884462610958E+16
5.3: Worst error 0.96 ulp
 1.11 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.10 02-Jul-1999  simonb More trailing white space.
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.7 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.5 08-May-2024  riastradh libm: ldbl_dummy.c is no longer needed -- nix it.
 1.4 07-Aug-2023  riastradh libm: Add dummy remainderl and remquol.

These are pretty bad -- these aren't transcendental functions; not
rocket science to make them correctly rounded -- but let's just make
sure they're available in libm for netbsd-10.

XXX pullup-10
 1.3 13-Mar-2023  riastradh libm: Fill in more dummy long double transcendental functions.

This should cover everything from C99.
 1.2 13-Nov-2014  christos branches: 1.2.26;
add a couple more dummies (erf, erfc)
 1.1 12-Nov-2013  joerg branches: 1.1.4; 1.1.8;
Add some fake long double -> double wrappers for various transcendental
functions. They are expected to be implement properly at a later time.
 1.1.8.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.8.1 12-Nov-2013  tls file ldbl_dummy.c was added on branch tls-maxphys on 2014-08-20 00:02:18 +0000
 1.1.4.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.4.1 12-Nov-2013  yamt file ldbl_dummy.c was added on branch yamt-pagecache on 2014-05-22 11:36:57 +0000
 1.2.26.1 11-Aug-2023  martin Pull up following revision(s) (requested by riastradh in ticket #320):

lib/libm/src/ldbl_dummy.c: revision 1.3
distrib/sets/lists/debug/shl.mi: revision 1.303
lib/libm/src/ldbl_dummy.c: revision 1.4
lib/libm/src/namespace.h: revision 1.17
lib/libm/src/s_llrintl.c: revision 1.3
lib/libm/Makefile: revision 1.220
lib/libm/src/s_lrintl.c: revision 1.3
lib/libm/man/sincos.3: revision 1.2
lib/libm/man/math.3: revision 1.29
distrib/sets/lists/base/shl.mi: revision 1.946
lib/libm/shlib_version: revision 1.18

libm: Fill in more dummy long double transcendental functions.
This should cover everything from C99.

libm: Need <math.h> for __HAVE_LONG_DOUBLE.
Fixes missing definitions of lrintl, llrintl on various platforms.

Add (newly added): expm1l log1pl log2l lgammal tgammal
so that the library gets the correct symbols defined in it.

libm: Bump minor for new long double transcendental functions.
XXX Still missing: remquol, remainderl.

fix cross references (from Anon Ymous)

Correct history (Brad Smith)

libm: Add missing fma(3) and friends for sh3.

libm: Add dummy remainderl and remquol.
These are pretty bad -- these aren't transcendental functions; not
rocket science to make them correctly rounded -- but let's just make
sure they're available in libm for netbsd-10.
 1.3 06-May-2017  christos Replace our rounding functions with the ones from FreeBSD
 1.2 13-Oct-2004  drochner branches: 1.2.80;
add licenses
 1.1 30-Jun-2004  drochner Implement (l)lrint(f).
(Could get some optimization for LP64; this would need a change to
the float access macros in math_private.h.)
 1.2.80.1 11-May-2017  pgoyette Sync with HEAD
 1.3 06-May-2017  christos Replace our rounding functions with the ones from FreeBSD
 1.2 13-Oct-2004  drochner branches: 1.2.80;
add licenses
 1.1 30-Jun-2004  drochner Implement (l)lrint(f).
(Could get some optimization for LP64; this would need a change to
the float access macros in math_private.h.)
 1.2.80.1 11-May-2017  pgoyette Sync with HEAD
 1.3 06-May-2017  christos Replace our rounding functions with the ones from FreeBSD
 1.2 13-Oct-2004  drochner branches: 1.2.80;
add licenses
 1.1 01-Jul-2004  drochner being here, add the (l)lround(f) functions to libm
(almost the same like lrint)
 1.2.80.1 11-May-2017  pgoyette Sync with HEAD
 1.3 06-May-2017  christos Replace our rounding functions with the ones from FreeBSD
 1.2 13-Oct-2004  drochner branches: 1.2.80;
add licenses
 1.1 01-Jul-2004  drochner being here, add the (l)lround(f) functions to libm
(almost the same like lrint)
 1.2.80.1 11-May-2017  pgoyette Sync with HEAD
 1.7 06-May-2017  christos Replace our rounding functions with the ones from FreeBSD
 1.6 27-Feb-2017  chs branches: 1.6.2;
the MI lrint() code assumes that rounding is done in at most double precision
but m68k (68881) uses extended precision by default, so put the FPU in
double-precision mode temporarily here.
 1.5 09-Jul-2015  nat branches: 1.5.2; 1.5.4;
Return x for >= DBL_FRACBITS in lrint.c.
Return x for >= SNG_FRACBITS in lrintf.c

Addresses PR lib/49690

This commit was approved by christos@
 1.4 26-Apr-2008  christos branches: 1.4.6; 1.4.22; 1.4.40;
pass a little lint.
 1.3 13-Oct-2004  drochner branches: 1.3.24;
add licenses
 1.2 01-Jul-2004  drochner aboid to shift an int by more than 31 bits - behaviour is implementation
dependant in this case
 1.1 30-Jun-2004  drochner Implement (l)lrint(f).
(Could get some optimization for LP64; this would need a change to
the float access macros in math_private.h.)
 1.3.24.1 18-May-2008  yamt sync with head.
 1.4.40.1 17-Jul-2015  snj Pull up following revision(s) (requested by nat in ticket #875):
lib/libm/src/lrint.c: revision 1.5
lib/libm/src/lrintf.c: revision 1.6
Return x for >= DBL_FRACBITS in lrint.c.
Return x for >= SNG_FRACBITS in lrintf.c
Addresses PR lib/49690
This commit was approved by christos@
 1.4.22.1 15-Nov-2015  bouyer Pull up following revision(s) (requested by nat in ticket #1311):
lib/libm/src/lrintf.c: revision 1.6
lib/libm/src/lrint.c: revision 1.5
Return x for >= DBL_FRACBITS in lrint.c.
Return x for >= SNG_FRACBITS in lrintf.c
Addresses PR lib/49690
This commit was approved by christos@
 1.4.6.1 07-Nov-2015  snj Pull up following revision(s) (requested by nat in ticket #1972):
lib/libm/src/lrintf.c: revision 1.6
lib/libm/src/lrint.c: revision 1.5
Return x for >= DBL_FRACBITS in lrint.c.
Return x for >= SNG_FRACBITS in lrintf.c
Addresses PR lib/49690
This commit was approved by christos@
 1.5.4.1 21-Apr-2017  bouyer Sync with HEAD
 1.5.2.1 20-Mar-2017  pgoyette Sync with HEAD
 1.6.2.1 11-May-2017  pgoyette Sync with HEAD
 1.7 06-May-2017  christos Replace our rounding functions with the ones from FreeBSD
 1.6 09-Jul-2015  nat branches: 1.6.6;
Return x for >= DBL_FRACBITS in lrint.c.
Return x for >= SNG_FRACBITS in lrintf.c

Addresses PR lib/49690

This commit was approved by christos@
 1.5 26-Apr-2008  christos branches: 1.5.6; 1.5.22; 1.5.40;
pass a little lint.
 1.4 01-Aug-2006  drochner branches: 1.4.18;
make an intermediate float variable "volatile" on i386 to work around a gcc
optimization problem: subsequent add/subs were done inside FPU registers,
with "double" precision, without rounding to "float" in between
 1.3 13-Oct-2004  drochner add licenses
 1.2 01-Jul-2004  drochner aboid to shift an int by more than 31 bits - behaviour is implementation
dependant in this case
 1.1 30-Jun-2004  drochner Implement (l)lrint(f).
(Could get some optimization for LP64; this would need a change to
the float access macros in math_private.h.)
 1.4.18.1 18-May-2008  yamt sync with head.
 1.5.40.1 17-Jul-2015  snj Pull up following revision(s) (requested by nat in ticket #875):
lib/libm/src/lrint.c: revision 1.5
lib/libm/src/lrintf.c: revision 1.6
Return x for >= DBL_FRACBITS in lrint.c.
Return x for >= SNG_FRACBITS in lrintf.c
Addresses PR lib/49690
This commit was approved by christos@
 1.5.22.1 15-Nov-2015  bouyer Pull up following revision(s) (requested by nat in ticket #1311):
lib/libm/src/lrintf.c: revision 1.6
lib/libm/src/lrint.c: revision 1.5
Return x for >= DBL_FRACBITS in lrint.c.
Return x for >= SNG_FRACBITS in lrintf.c
Addresses PR lib/49690
This commit was approved by christos@
 1.5.6.1 07-Nov-2015  snj Pull up following revision(s) (requested by nat in ticket #1972):
lib/libm/src/lrintf.c: revision 1.6
lib/libm/src/lrint.c: revision 1.5
Return x for >= DBL_FRACBITS in lrint.c.
Return x for >= SNG_FRACBITS in lrintf.c
Addresses PR lib/49690
This commit was approved by christos@
 1.6.6.1 11-May-2017  pgoyette Sync with HEAD
 1.4 06-May-2017  christos Replace our rounding functions with the ones from FreeBSD
 1.3 26-Apr-2008  christos branches: 1.3.52;
pass a little lint.
 1.2 13-Oct-2004  drochner branches: 1.2.24;
add licenses
 1.1 01-Jul-2004  drochner being here, add the (l)lround(f) functions to libm
(almost the same like lrint)
 1.2.24.1 18-May-2008  yamt sync with head.
 1.3.52.1 11-May-2017  pgoyette Sync with HEAD
 1.4 06-May-2017  christos Replace our rounding functions with the ones from FreeBSD
 1.3 26-Apr-2008  christos branches: 1.3.52;
pass a little lint.
 1.2 13-Oct-2004  drochner branches: 1.2.24;
add licenses
 1.1 01-Jul-2004  drochner being here, add the (l)lround(f) functions to libm
(almost the same like lrint)
 1.2.24.1 18-May-2008  yamt sync with head.
 1.3.52.1 11-May-2017  pgoyette Sync with HEAD
 1.5 16-Aug-1999  kleink G/C this copy of <math.h> in favor of the version found in basesrc/include,
which is actually the one installed. The latter (which is derived from this
file) has evolved since, and the argument that it is exlusively associated
with libm (and thus should be installed from this directory) no longer holds
since two interfaces (isinf() and isnan()) are part of libc these days.
 1.4 02-Jul-1999  simonb More trailing white space.
 1.3 09-Oct-1997  lukem rcsid facism, WARNSify
 1.2 25-Sep-1994  jtc Add prototype for isinff().
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.34 17-Jul-2024  riastradh libm/src/math_private.h: Tidy up comments and whitespace.

Clarify which words are which when ambiguous.

Say `significand', not `mantissa'; we're not talking about books of
log tables here. (Strictly speaking, this may refer either to what
IEEE 754 calls the trailing significand field of the binary encoding,
which is a sequence of bits rather than a real number in [1,2), or,
for ld80 with an explicit 1-bit, what might be called the significand
field since it's not just the trailing part after the dot. But the
term `significand' will serve as a proxy for these cases.)
 1.33 17-Jul-2024  riastradh libm: Fix order of significand words in EXTRACT_LDBL128_WORDS.

PR lib/58337
 1.32 03-Apr-2024  kre branches: 1.32.2;

For i386, if ft[sg]etprec() are to be used, ensure there's a
prototype for them in scope (so include <ieeefp.h>)

Might fix the i386 build.
 1.31 23-Jan-2024  christos move inclusion of <machine/ieee.h> to the ieee source files instead of
including it in math_private.h which is also used by the vax which is not ieee.
 1.30 22-Jan-2024  kre Simply an overly complex way of saying "0 or 1" into a cleaner version.

While here add a commment about how the __i386__ magic LD80C macro
might no longer work on all other arch's as well (if someone can verify
that it still does, or can fix it so that it still works on i386, but
also works everywhere else, then please remove that XXX comment.
The issue I am (perhaps imagining) is the (uint32_t) cast.
 1.29 22-Jan-2024  kre This set of changes seem to be sufficient to make at least the
amd64 port build again after the long double math function infusion
from yesterday.

Feel free (without consulting me, I'm just hacking about) to revert
any of this and do it a better way.

Note: this is not intended to be complete, in particular, in <math.h>
I added prototypes only for the functions that are needed for a
successful build, not all of the new ones...
 1.28 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.27 03-Aug-2023  andvar fix typos in comments and one definition, mainly s/sucket/socket/.
 1.26 27-Aug-2022  christos Add sincos{,f,l} from FreeBSD
 1.25 24-Aug-2022  christos sync with FreeBSD; bring some more inline functions.
 1.24 19-Apr-2022  rillig lib: remove CONSTCOND comment

Since 2021-01-31, lint doesn't need it anymore for the common pattern of
'do ... while (0)'.
 1.23 19-Sep-2016  christos Add the complex trig functions from FreeBSD
 1.22 26-Mar-2015  justin branches: 1.22.2;
Fix prototypes to match definitions
 1.21 14-Mar-2014  dsl There is some very odd code in s_exp2.c that only works if 'double'
values are rounded to 53 bit mantissa in teh x87 registers.
This hasn't been true since Nov 11 2013.
Forcing a store-load for 'double' in STRICT_ASSIGN() seems to fix things
(at least enough for the few random test cases).
I suspect the code could be changed so that the number of mantissa bits
didn't matter.
 1.20 19-Nov-2013  joerg Add cbrtl(3) and sqrtl(3), from FreeBSD.
 1.19 12-Nov-2013  joerg Initial version of fmodl from FreeBSD.
Basic test case for the fmod family.
 1.18 11-Feb-2013  christos hook fma to the build
 1.17 05-May-2012  christos branches: 1.17.2;
Add tgamma{,f} from FreeBSD via rudolf, netbsd at eq dot cz
 1.16 16-Sep-2010  drochner branches: 1.16.6; 1.16.8;
fix an obvious botch which made eg conjl(3) a no-op
 1.15 15-Sep-2010  christos Commit SoC long double support from Stathis Kamperis
 1.14 11-Jan-2010  christos Add exp2 and exp2m
 1.13 26-Apr-2008  christos pass a little lint.
 1.12 21-Jul-2005  christos branches: 1.12.18;
Add log2 and log2f from FreeBSD PR 83845
 1.11 21-Feb-2001  bjh21 Add support for ARM VFP-format doubles, conditional on __VFP_FP__.
 1.10 09-Feb-2001  bjh21 __arm26__ || __arm32__ -> __arm__
Not least because the unified NetBSD/arm compiler probably won't predefine
__arm26__ or __arm32__.
 1.9 09-May-2000  bjh21 Initial commit of arm26 port
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 24-Nov-1998  mycroft Use __arm32__, not arm32, for egcs.
 1.6 09-Oct-1997  lukem rcsid facism, WARNSify
 1.5 13-Oct-1996  christos remove inclusion of <machine/endian.h>
 1.4 07-May-1996  mark Get the word order of doubles correct for the arm32 port.
Note: The arm32 port is little endian except for the FP word order.
 1.3 25-Mar-1995  jtc Fix overlooked FIXME: unsigned int -> u_int32_t.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.12.18.1 18-May-2008  yamt sync with head.
 1.16.8.1 09-May-2012  riz Pull up following revision(s) (requested by christos in ticket #232):
distrib/sets/lists/comp/mi: revision 1.1756
lib/libm/Makefile: revision 1.124
lib/libm/src/math_private.h: revision 1.17
lib/libm/src/b_tgamma.c: revision 1.1
lib/libm/man/lgamma.3: revision 1.22
lib/libm/src/b_log.c: revision 1.1
lib/libm/src/b_exp.c: revision 1.1
include/math.h: revision 1.58
lib/libm/src/s_tgammaf.c: revision 1.1
add tgamma{,f}
Add tgamma{,f} from FreeBSD via rudolf, netbsd at eq dot cz
oops, forgot to commit: add tgamma and tgammaf
 1.16.6.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.16.6.1 23-May-2012  yamt sync with head.
 1.17.2.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.17.2.1 25-Feb-2013  tls resync with head
 1.22.2.1 04-Nov-2016  pgoyette Sync with HEAD
 1.32.2.1 02-Aug-2025  perseant Sync with HEAD
 1.24 16-Jul-2024  riastradh libm: Fix log-related symbol aliases.

- Do the weak alias dance for log, log2, log10, log1p, and their
f/l variants.

(Not strictly necessary for log2 and log10 since nothing in the
math library itself uses them -- only a computer scientist would
use log2 and only an engineer would use log10 -- but let's just do
it the same for all our forestry.)

- Provide long double aliases on vax.

- Sprinkle RCS ids.
 1.23 09-Jun-2024  riastradh branches: 1.23.2;
libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.22 09-Jun-2024  riastradh libm/src/namespace.h: Delete duplicates.

No functional change intended.
 1.21 09-Jun-2024  riastradh libm/src/namespace.h: Sort.

No functional change intended.

Grouping vaguely by functionality makes this painful to update.
 1.20 08-May-2024  riastradh libm: Do the weak alias dance for sin/cos/tan/finite{,f}.

tan isn't used internally, but it's confusing for it to be treated
differently from sin and cos, and there's no harm in doing the dance
unnecessarily.
 1.19 24-Feb-2024  mrg fix some fallout from 32-bit fixes for long double functions.

apply namespace.h to remqou*. add missing weak aliases for some of them,
and normalise checkf for __weak_alias().

now libm.so seems to only have libc undefined symbols.
 1.18 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.17 14-Mar-2023  kre Add (newly added): expm1l log1pl log2l lgammal tgammal
so that the library gets the correct symbols defined in it.
 1.16 27-Aug-2022  christos branches: 1.16.2;
Add sincos{,f,l} from FreeBSD
 1.15 26-Oct-2019  christos Separate the NetBSD-specific fenv functions from the standard ones.
No functional change.
 1.14 22-Mar-2017  chs branches: 1.14.12;
provide a common softfloat fenv implemenation and use it for softfloat builds.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
 1.13 14-Nov-2014  joerg branches: 1.13.2; 1.13.4;
Define copysignl on !long double platforms. Be consistent in the use of
weak aliases.
 1.12 14-Nov-2014  christos add erfl erfcl
 1.11 16-Jun-2014  joerg branches: 1.11.2;
Add modfl(3). From FreeBSD.
 1.10 19-Nov-2013  joerg branches: 1.10.2;
Add cbrtl(3) and sqrtl(3), from FreeBSD.
 1.9 13-Nov-2013  joerg Add FreeBSD's truncl and minimal testing.
 1.8 12-Nov-2013  joerg Add some fake long double -> double wrappers for various transcendental
functions. They are expected to be implement properly at a later time.
 1.7 12-Nov-2013  joerg Initial version of fmodl from FreeBSD.
Basic test case for the fmod family.
 1.6 11-Nov-2013  joerg Add initial version of ceill, floorl and roundl from FreeBSD.
 1.5 28-Jan-2013  matt Add long double aliases
 1.4 26-Jul-2011  joerg branches: 1.4.2; 1.4.8;
Add scalbnl to libm.
 1.3 23-Apr-2010  drochner -build ldexp/frexp/modf locally again rather than relying on libc
reaching over, to get things into a sane state,
-do the usual namespace protection game with scalbn(f) because it
is used internally
(more symbol renamings are necessary)

The weak_alias change for mc68881 is untested.
 1.2 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.1 10-Aug-2007  drochner make the hypot/atan2 functions weak aliases, because they are used
internally by the historical cabs(), and the future c99 cabs/carg
 1.4.8.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.4.8.1 25-Feb-2013  tls resync with head
 1.4.2.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.10.2.1 10-Aug-2014  tls Rebase.
 1.11.2.1 25-May-2015  msaitoh Pull up following revision(s) (requested by joerg in ticket #790):
sys/arch/powerpc/include/math.h: revision 1.5
lib/libm/src/namespace.h: revision 1.13
lib/libm/arch/vax/n_support.S: revision 1.10
lib/libm/src/s_copysignl.c: revision 1.3
lib/libm/src/s_copysignl.c: revision 1.4
lib/libm/src/s_copysignl.c: revision 1.5
sys/arch/powerpc/include/ieee.h: revision 1.6
lib/libm/src/s_copysign.c: revision 1.12
lib/libm/src/s_copysign.c: revision 1.13
- Support copysignl on PowerPC.
- Define copysignl on !long double platforms. Be consistent in the use of
weak aliases.
- copysignl is also needed for PowerPC's double-double format, so special
case that. Functional support was added earlier, but not enabled.
 1.13.4.1 21-Apr-2017  bouyer Sync with HEAD
 1.13.2.1 26-Apr-2017  pgoyette Sync with HEAD
 1.14.12.1 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.16.2.1 11-Aug-2023  martin Pull up following revision(s) (requested by riastradh in ticket #320):

lib/libm/src/ldbl_dummy.c: revision 1.3
distrib/sets/lists/debug/shl.mi: revision 1.303
lib/libm/src/ldbl_dummy.c: revision 1.4
lib/libm/src/namespace.h: revision 1.17
lib/libm/src/s_llrintl.c: revision 1.3
lib/libm/Makefile: revision 1.220
lib/libm/src/s_lrintl.c: revision 1.3
lib/libm/man/sincos.3: revision 1.2
lib/libm/man/math.3: revision 1.29
distrib/sets/lists/base/shl.mi: revision 1.946
lib/libm/shlib_version: revision 1.18

libm: Fill in more dummy long double transcendental functions.
This should cover everything from C99.

libm: Need <math.h> for __HAVE_LONG_DOUBLE.
Fixes missing definitions of lrintl, llrintl on various platforms.

Add (newly added): expm1l log1pl log2l lgammal tgammal
so that the library gets the correct symbols defined in it.

libm: Bump minor for new long double transcendental functions.
XXX Still missing: remquol, remainderl.

fix cross references (from Anon Ymous)

Correct history (Brad Smith)

libm: Add missing fma(3) and friends for sh3.

libm: Add dummy remainderl and remquol.
These are pretty bad -- these aren't transcendental functions; not
rocket science to make them correctly rounded -- but let's just make
sure they're available in libm for netbsd-10.
 1.23.2.1 02-Aug-2025  perseant Sync with HEAD
 1.12 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.11 02-Jul-1999  simonb More trailing white space.
 1.10 09-Oct-1997  lukem rcsid facism, WARNSify
 1.9 12-May-1995  jtc Changed core routines to call __ieee754_sqrt() instead of sqrt(). I
reported this enhancement to fdlibm-comments, and got the following
reply:

Date: Thu, 11 May 1995 14:35:25 -0700
From: Kwok.Ng@Eng.Sun.COM (KC Ng)
To: fdlibm-comments@sunpro.Eng.Sun.COM, jtc@cygnus.com
Subject: Re: fdlibm 5.2: why do core functions use sqrt?

> I noticed that core (e_*.c) fdlibm functions like __ieee754_acos()
> ensure that they call sqrt() with arguments in range (x > 0), when
> they could call __ieee754_sqrt() directly.
>
> Since sqrt() does a lot more work (verifies x is in range, etc.) is
> there any reason for this? I'd think that calling __iee754_sqrt()
> would be more appropriate. ....

You are right. __ieee754_sqrt should be in use with e_*.c.
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.8 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.7 02-Jul-1999  simonb More trailing white space.
 1.6 09-Oct-1997  lukem rcsid facism, WARNSify
 1.5 12-May-1995  jtc Changed core routines to call __ieee754_sqrt() instead of sqrt(). I
reported this enhancement to fdlibm-comments, and got the following
reply:

Date: Thu, 11 May 1995 14:35:25 -0700
From: Kwok.Ng@Eng.Sun.COM (KC Ng)
To: fdlibm-comments@sunpro.Eng.Sun.COM, jtc@cygnus.com
Subject: Re: fdlibm 5.2: why do core functions use sqrt?

> I noticed that core (e_*.c) fdlibm functions like __ieee754_acos()
> ensure that they call sqrt() with arguments in range (x > 0), when
> they could call __ieee754_sqrt() directly.
>
> Since sqrt() does a lot more work (verifies x is in range, etc.) is
> there any reason for this? I'd think that calling __iee754_sqrt()
> would be more appropriate. ....

You are right. __ieee754_sqrt should be in use with e_*.c.
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Apr-2024  christos remove #include <ieeefp.h> for i386 now that it is included in math_private.h
 1.3 24-Feb-2024  christos add missing symbols for non long double architectures.
 1.2 27-Jan-2024  ryoon Enable asinl, acosl, logl, coshl, tanhl, atanhl, asinhl and acoshl

* Fix pkgsrc/math/py-numpy and pkgsrc/graphics/py-matplotlib, for example.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.13 09-Jun-2024  riastradh libm: Sprinkle whitespace fixes and rcsids on inverse trig functions.

No functional change intended.
 1.12 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.11 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.10 02-Jul-1999  simonb More trailing white space.
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.9 09-Jun-2024  riastradh libm: Sprinkle whitespace fixes and rcsids on inverse trig functions.

No functional change intended.
 1.8 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.7 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.8 17-Jul-2024  riastradh libm: Fix `mantissa' to say `significand' in comments.

(mantissa = fractional part of log(significand))

No functional change intended.
 1.7 09-Jun-2024  riastradh branches: 1.7.2;
libm: Sprinkle whitespace fixes and rcsids on inverse trig functions.

No functional change intended.
 1.6 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.5 24-Feb-2024  mrg fix some fallout from 32-bit fixes for long double functions.

apply namespace.h to remqou*. add missing weak aliases for some of them,
and normalise checkf for __weak_alias().

now libm.so seems to only have libc undefined symbols.
 1.4 24-Feb-2024  christos add missing symbols for non long double architectures.
 1.3 23-Jan-2024  christos move inclusion of <machine/ieee.h> to the ieee source files instead of
including it in math_private.h which is also used by the vax which is not ieee.
 1.2 22-Jan-2024  kre This set of changes seem to be sufficient to make at least the
amd64 port build again after the long double math function infusion
from yesterday.

Feel free (without consulting me, I'm just hacking about) to revert
any of this and do it a better way.

Note: this is not intended to be complete, in particular, in <math.h>
I added prototypes only for the functions that are needed for a
successful build, not all of the new ones...
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.7.2.1 02-Aug-2025  perseant Sync with HEAD
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.13 20-Nov-2013  joerg Fix operand order.
 1.12 19-Nov-2013  joerg Add cbrtl(3) and sqrtl(3), from FreeBSD.
 1.11 26-May-2002  wiz branches: 1.11.54; 1.11.60;
__STDC__ is always defined on NetBSD.
 1.10 02-Jul-1999  simonb More trailing white space.
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.11.60.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.11.54.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.7 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Apr-2024  christos remove #include <ieeefp.h> for i386 now that it is included in math_private.h
 1.3 03-Apr-2024  christos need <ieeefp.h> for i386.
 1.2 03-Apr-2024  christos reduce diff with FreeBSD
 1.1 19-Nov-2013  joerg branches: 1.1.4; 1.1.8;
Add cbrtl(3) and sqrtl(3), from FreeBSD.
 1.1.8.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.8.1 19-Nov-2013  tls file s_cbrtl.c was added on branch tls-maxphys on 2014-08-20 00:02:18 +0000
 1.1.4.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.4.1 19-Nov-2013  yamt file s_cbrtl.c was added on branch yamt-pagecache on 2014-05-22 11:36:57 +0000
 1.14 11-Nov-2013  joerg Add initial version of ceill, floorl and roundl from FreeBSD.
 1.13 16-Feb-2009  lukem branches: 1.13.6; 1.13.12;
fix -Wsign-compare issue (on macppc)
 1.12 25-Apr-2008  christos branches: 1.12.8;
avoid shadow variables, and enable lint.
 1.11 26-May-2002  wiz branches: 1.11.30;
__STDC__ is always defined on NetBSD.
 1.10 02-Jul-1999  simonb More trailing white space.
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.11.30.1 18-May-2008  yamt sync with head.
 1.12.8.1 13-May-2009  jym Sync with HEAD.

Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
 1.13.12.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.13.6.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.8 25-Apr-2008  christos avoid shadow variables, and enable lint.
 1.7 26-May-2002  wiz branches: 1.7.30;
__STDC__ is always defined on NetBSD.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.7.30.1 18-May-2008  yamt sync with head.
 1.1 11-Nov-2013  joerg branches: 1.1.4; 1.1.8;
Add initial version of ceill, floorl and roundl from FreeBSD.
 1.1.8.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.8.1 11-Nov-2013  tls file s_ceill.c was added on branch tls-maxphys on 2014-08-20 00:02:18 +0000
 1.1.4.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.4.1 11-Nov-2013  yamt file s_ceill.c was added on branch yamt-pagecache on 2014-05-22 11:36:57 +0000
 1.2 03-Apr-2024  christos remove #include <ieeefp.h> for i386 now that it is included in math_private.h
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.13 14-May-2015  joerg copysignl is also needed for PowerPC's double-double format, so special
case that. Functional support was added earlier, but not enabled.
 1.12 14-Nov-2014  joerg Define copysignl on !long double platforms. Be consistent in the use of
weak aliases.
 1.11 26-May-2002  wiz branches: 1.11.74;
__STDC__ is always defined on NetBSD.
 1.10 02-Jul-1999  simonb More trailing white space.
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.11.74.1 25-May-2015  msaitoh Pull up following revision(s) (requested by joerg in ticket #790):
sys/arch/powerpc/include/math.h: revision 1.5
lib/libm/src/namespace.h: revision 1.13
lib/libm/arch/vax/n_support.S: revision 1.10
lib/libm/src/s_copysignl.c: revision 1.3
lib/libm/src/s_copysignl.c: revision 1.4
lib/libm/src/s_copysignl.c: revision 1.5
sys/arch/powerpc/include/ieee.h: revision 1.6
lib/libm/src/s_copysign.c: revision 1.12
lib/libm/src/s_copysign.c: revision 1.13
- Support copysignl on PowerPC.
- Define copysignl on !long double platforms. Be consistent in the use of
weak aliases.
- copysignl is also needed for PowerPC's double-double format, so special
case that. Functional support was added earlier, but not enabled.
 1.7 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.6 04-Feb-2019  mrg - avoid uninitialised memory usage
 1.5 14-May-2015  joerg branches: 1.5.16;
copysignl is also needed for PowerPC's double-double format, so special
case that. Functional support was added earlier, but not enabled.
 1.4 14-Nov-2014  joerg Define copysignl on !long double platforms. Be consistent in the use of
weak aliases.
 1.3 22-Oct-2014  joerg Support copysignl on PowerPC.
 1.2 17-Sep-2010  christos branches: 1.2.24;
don't compile long double support for the havenots.
 1.1 15-Sep-2010  christos commit long double SoC code from Stathis Kamperis
 1.2.24.1 25-May-2015  msaitoh Pull up following revision(s) (requested by joerg in ticket #790):
sys/arch/powerpc/include/math.h: revision 1.5
lib/libm/src/namespace.h: revision 1.13
lib/libm/arch/vax/n_support.S: revision 1.10
lib/libm/src/s_copysignl.c: revision 1.3
lib/libm/src/s_copysignl.c: revision 1.4
lib/libm/src/s_copysignl.c: revision 1.5
sys/arch/powerpc/include/ieee.h: revision 1.6
lib/libm/src/s_copysign.c: revision 1.12
lib/libm/src/s_copysign.c: revision 1.13
- Support copysignl on PowerPC.
- Define copysignl on !long double platforms. Be consistent in the use of
weak aliases.
- copysignl is also needed for PowerPC's double-double format, so special
case that. Functional support was added earlier, but not enabled.
 1.5.16.1 10-Jun-2019  christos Sync with HEAD
 1.12 08-May-2024  riastradh libm: Do the weak alias dance for sin/cos/tan/finite{,f}.

tan isn't used internally, but it's confusing for it to be treated
differently from sin and cos, and there's no harm in doing the dance
unnecessarily.
 1.11 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.10 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.9 02-Jul-1999  simonb More trailing white space.
 1.8 09-Oct-1997  lukem rcsid facism, WARNSify
 1.7 10-May-1995  jtc Id -> NetBSD
 1.6 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.5 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.10 08-May-2024  riastradh libm: Do the weak alias dance for sin/cos/tan/finite{,f}.

tan isn't used internally, but it's confusing for it to be treated
differently from sin and cos, and there's no harm in doing the dance
unnecessarily.
 1.9 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.8 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.7 09-Apr-2002  thorpej #if 0 one; it's not used.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 08-May-2024  riastradh libm: Don't export symbol `pio4' from s_cosl.c.

This appears to have been added unintentionally in the recent FreeBSD
long double update, and never went out in a release.
 1.2 03-Apr-2024  christos remove #include <ieeefp.h> for i386 now that it is included in math_private.h
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.3 24-Feb-2024  christos add missing symbols for non long double architectures.
 1.2 23-Jan-2024  christos move inclusion of <machine/ieee.h> to the ieee source files instead of
including it in math_private.h which is also used by the vax which is not ieee.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.11 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.10 02-Jul-1999  simonb More trailing white space.
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.7 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 24-Feb-2024  christos add missing symbols for non long double architectures.
 1.2 23-Jan-2024  christos move inclusion of <machine/ieee.h> to the ieee source files instead of
including it in math_private.h which is also used by the vax which is not ieee.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.5 18-Mar-2014  dsl Change 'i0' to be signed so that the sign bit is preserved on 'k'
and the code at the bottom splits the multiply.
Fixes denormal results.
This might have been introduced when I deferred shifting 'k' left.
 1.4 16-Mar-2014  dsl Simplify somewhat: this is C not FORTRAN-IV - we have structures!
Directly us 'ieee_double_shape_type' when ripping apart the fp number
to avoid an extra store-load in 'STRICT_ASSIGN'.
Keep 'k' as the exponent, only do 'k << 20' when generating the fp number
from it.
Fix infinity and underflow returns on i386 - because the value is returned
in %st0 (x87 stack) we have to generate a long double error value.
The returned value for integers -1023 and below (which should be denormal
fp valuesr) are 'just plain wrong' (tm).
 1.3 06-Nov-2013  christos simplify.
 1.2 11-Jan-2010  christos branches: 1.2.6; 1.2.12;
remove weak reference for now.
 1.1 11-Jan-2010  christos Add exp2 and exp2m
 1.2.12.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2.6.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.2 16-Mar-2014  dsl Fix overflow and underflow on i386.
The return value of a 'float' function is in the x87 %st(0) register.
This is an 80bit 'long double' register.
If you multiply 0x1p100f by 0x1p100f the caller sees 0x1p200 - not the
expected infinity.
So use a 'double' value which goes through a store-load sequence to generate
the required exception and value.
 1.1 11-Jan-2010  christos branches: 1.1.6; 1.1.12;
Add exp2 and exp2m
 1.1.12.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.6.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.3 24-Feb-2024  christos add missing symbols for non long double architectures.
 1.2 23-Jan-2024  christos move inclusion of <machine/ieee.h> to the ieee source files instead of
including it in math_private.h which is also used by the vax which is not ieee.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.2 23-Jan-2024  christos move inclusion of <machine/ieee.h> to the ieee source files instead of
including it in math_private.h which is also used by the vax which is not ieee.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.13 09-Feb-2017  maya ifdef out some dead code. improves code readability.
all later users of y first assign another value.

using ifdefs to make potential future code syncs easier, as is done
elsewhere.

suggested by coverity, CID 1300929, 1300930.
 1.12 26-May-2002  wiz branches: 1.12.78; 1.12.82;
__STDC__ is always defined on NetBSD.
 1.11 02-Jul-1999  simonb More trailing white space.
 1.10 19-Aug-1998  thorpej Add some braces to make egcs happy. (This code could kill me.)
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.12.82.1 21-Apr-2017  bouyer Sync with HEAD
 1.12.78.1 20-Mar-2017  pgoyette Sync with HEAD
 1.11 09-Feb-2017  maya ifdef out some dead code. improves code readability.
all later users of y first assign another value.

using ifdefs to make potential future code syncs easier, as is done
elsewhere.

suggested by coverity, CID 1300929, 1300930.
 1.10 26-May-2002  wiz branches: 1.10.78; 1.10.82;
__STDC__ is always defined on NetBSD.
 1.9 02-Jul-1999  simonb More trailing white space.
 1.8 19-Aug-1998  thorpej Add some braces to make egcs happy. (This code could kill me.)
 1.7 09-Oct-1997  lukem rcsid facism, WARNSify
 1.6 08-Apr-1996  phil Removing a "volatile" put there for the ns32k which is no longer needed.
 1.5 10-May-1995  jtc Id -> NetBSD
 1.4 16-Dec-1994  jtc Add volatile qualifier to huge and tiny, so that huge*huge and tiny*tiny
are performed at run-time.
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.10.82.1 21-Apr-2017  bouyer Sync with HEAD
 1.10.78.1 20-Mar-2017  pgoyette Sync with HEAD
 1.11 29-Nov-2013  joerg Use normal style for checking for long double support. Add missing
aliases for fminl and fmaxl, fabsl is here just for symmetry.
 1.10 26-May-2002  wiz branches: 1.10.54; 1.10.60;
__STDC__ is always defined on NetBSD.
 1.9 02-Jul-1999  simonb More trailing white space.
 1.8 09-Oct-1997  lukem rcsid facism, WARNSify
 1.7 10-May-1995  jtc Id -> NetBSD
 1.6 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.5 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.10.60.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.10.54.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.7 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.8 02-Apr-2024  christos undo accidental commit.
 1.7 02-Apr-2024  christos PR/58054: Martin Husemann: fix bug in expsign extraction and only use the
code for the floating point formats where it works (does not work for 112
bit mantisa in sparc64)
 1.6 25-Feb-2024  christos fabsl is defined in libc...
 1.5 24-Feb-2024  christos add missing symbols for non long double architectures.
 1.4 05-Dec-2021  msaitoh s/argumetn/argument/ in comment.
 1.3 29-Nov-2013  joerg Use normal style for checking for long double support. Add missing
aliases for fminl and fmaxl, fabsl is here just for symmetry.
 1.2 17-Sep-2010  christos branches: 1.2.6; 1.2.12;
don't compile long double support for the havenots.
 1.1 15-Sep-2010  christos commit long double SoC code from Stathis Kamperis
 1.2.12.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2.6.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.2 08-Mar-2010  snj branches: 1.2.2; 1.2.4;
Fix broken RCSID.
 1.1 04-Oct-2009  christos add f{min,max,dim}{,l,f} from FreeBSD
 1.2.4.2 21-Apr-2010  matt sync to netbsd-5
 1.2.4.1 08-Mar-2010  matt file s_fdim.c was added on branch matt-nb5-mips64 on 2010-04-21 05:28:10 +0000
 1.2.2.2 12-Mar-2010  riz Pull up following revision(s) (requested by snj in ticket #1330):
lib/libm/man/fmax.3: revision 1.1-1.2
lib/libm/src/s_fmin.c: revision 1.1-1.2
lib/libm/src/s_fdim.c: revision 1.1
lib/libm/src/s_fmaxl.c: revision 1.1
lib/libm/Makefile: revision 1.90
include/math.h: revision 1.49
lib/libm/src/s_fmaxf.c: revision 1.1
lib/libm/src/s_fmax.c: revision 1.1
lib/libm/shlib_version: revision 1.10
distrib/sets/lists/base/md.sparc64: revision 1.63 (via patch)
distrib/sets/lists/base/shl.mi: revision 1.495 (via patch)
lib/libm/src/s_fminl.c: revision 1.1
distrib/sets/lists/comp/mi: revision 1.1317
lib/libm/man/fdim.3: revision 1.1-1.3
lib/libm/src/s_fminf.c: revision 1.1
distrib/sets/lists/base/md.amd64: revision 1.70 (via patch)
add f{min,max,dim}{,l,f} from FreeBSD
These functions are going to first appear in 5.1, not 6.0.
 1.2.2.1 08-Mar-2010  riz file s_fdim.c was added on branch netbsd-5 on 2010-03-12 21:58:42 +0000
 1.13 08-May-2024  riastradh libm: Do the weak alias dance for sin/cos/tan/finite{,f}.

tan isn't used internally, but it's confusing for it to be treated
differently from sin and cos, and there's no harm in doing the dance
unnecessarily.
 1.12 12-Nov-2013  joerg Typo.
 1.11 26-May-2002  wiz branches: 1.11.54; 1.11.60;
__STDC__ is always defined on NetBSD.
 1.10 02-Jul-1999  simonb More trailing white space.
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.11.60.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.11.54.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.9 08-May-2024  riastradh libm: Do the weak alias dance for sin/cos/tan/finite{,f}.

tan isn't used internally, but it's confusing for it to be treated
differently from sin and cos, and there's no harm in doing the dance
unnecessarily.
 1.8 12-Nov-2013  joerg Typo.
 1.7 26-May-2002  wiz branches: 1.7.54; 1.7.60;
__STDC__ is always defined on NetBSD.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.7.60.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.7.54.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.14 11-Nov-2013  joerg Add initial version of ceill, floorl and roundl from FreeBSD.
 1.13 16-Feb-2009  lukem branches: 1.13.6; 1.13.12;
fix -Wsign-compare issue (on macppc)
 1.12 25-Apr-2008  christos branches: 1.12.8;
avoid shadow variables, and enable lint.
 1.11 26-May-2002  wiz branches: 1.11.30;
__STDC__ is always defined on NetBSD.
 1.10 02-Jul-1999  simonb More trailing white space.
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.11.30.1 18-May-2008  yamt sync with head.
 1.12.8.1 13-May-2009  jym Sync with HEAD.

Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
 1.13.12.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.13.6.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.8 25-Apr-2008  christos avoid shadow variables, and enable lint.
 1.7 26-May-2002  wiz branches: 1.7.30;
__STDC__ is always defined on NetBSD.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.7.30.1 18-May-2008  yamt sync with head.
 1.1 11-Nov-2013  joerg branches: 1.1.4; 1.1.8;
Add initial version of ceill, floorl and roundl from FreeBSD.
 1.1.8.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.8.1 11-Nov-2013  tls file s_floorl.c was added on branch tls-maxphys on 2014-08-20 00:02:18 +0000
 1.1.4.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.4.1 11-Nov-2013  yamt file s_floorl.c was added on branch yamt-pagecache on 2014-05-22 11:36:57 +0000
 1.7 06-May-2017  christos add missing namespace.h
 1.6 14-Feb-2013  matt branches: 1.6.4; 1.6.10; 1.6.24;
Use right macro for __strong_alias
 1.5 14-Feb-2013  matt Define a strong alias, not a weak one
 1.4 12-Feb-2013  martin Use __weak_alias instead of __weak_reference (obvious pasto)
 1.3 11-Feb-2013  christos use __HAVE_LONG_DOUBLE
 1.2 11-Feb-2013  christos hook fma to the build
 1.1 11-Feb-2013  christos bring in fma from FreeBSD
 1.6.24.1 11-May-2017  pgoyette Sync with HEAD
 1.6.10.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.6.10.1 14-Feb-2013  yamt file s_fma.c was added on branch yamt-pagecache on 2014-05-22 11:36:57 +0000
 1.6.4.2 25-Feb-2013  tls resync with head
 1.6.4.1 14-Feb-2013  tls file s_fma.c was added on branch tls-maxphys on 2013-02-25 00:27:58 +0000
 1.3 06-May-2017  christos add missing namespace.h
 1.2 11-Feb-2013  christos branches: 1.2.4; 1.2.10; 1.2.24;
hook fma to the build
 1.1 11-Feb-2013  christos bring in fma from FreeBSD
 1.2.24.1 11-May-2017  pgoyette Sync with HEAD
 1.2.10.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.2.10.1 11-Feb-2013  yamt file s_fmaf.c was added on branch yamt-pagecache on 2014-05-22 11:36:57 +0000
 1.2.4.2 25-Feb-2013  tls resync with head
 1.2.4.1 11-Feb-2013  tls file s_fmaf.c was added on branch tls-maxphys on 2013-02-25 00:27:58 +0000
 1.4 06-May-2017  christos add missing namespace.h
 1.3 12-Feb-2013  martin branches: 1.3.4; 1.3.10; 1.3.24;
Use __HAVE_LONG_DOUBLE instead of EXT_EXPBITS and include s_nextafterl.c
as well as s_frexpl.c in the global list of "common" sources - as we
seem to have no arch redefining the standard double variant, it seems
unlikely we will have on redefining the long double version in assembler.
 1.2 11-Feb-2013  christos hook fma to the build
 1.1 11-Feb-2013  christos bring in fma from FreeBSD
 1.3.24.1 11-May-2017  pgoyette Sync with HEAD
 1.3.10.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.3.10.1 12-Feb-2013  yamt file s_fmal.c was added on branch yamt-pagecache on 2014-05-22 11:36:57 +0000
 1.3.4.2 25-Feb-2013  tls resync with head
 1.3.4.1 12-Feb-2013  tls file s_fmal.c was added on branch tls-maxphys on 2013-02-25 00:27:58 +0000
 1.3 29-Nov-2013  joerg Use normal style for checking for long double support. Add missing
aliases for fminl and fmaxl, fabsl is here just for symmetry.
 1.2 08-Mar-2010  snj branches: 1.2.2; 1.2.4; 1.2.10; 1.2.16;
Fix broken RCSID.
 1.1 04-Oct-2009  christos add f{min,max,dim}{,l,f} from FreeBSD
 1.2.16.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2.10.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.2.4.2 21-Apr-2010  matt sync to netbsd-5
 1.2.4.1 08-Mar-2010  matt file s_fmax.c was added on branch matt-nb5-mips64 on 2010-04-21 05:28:10 +0000
 1.2.2.2 12-Mar-2010  riz Pull up following revision(s) (requested by snj in ticket #1330):
lib/libm/man/fmax.3: revision 1.1-1.2
lib/libm/src/s_fmin.c: revision 1.1-1.2
lib/libm/src/s_fdim.c: revision 1.1
lib/libm/src/s_fmaxl.c: revision 1.1
lib/libm/Makefile: revision 1.90
include/math.h: revision 1.49
lib/libm/src/s_fmaxf.c: revision 1.1
lib/libm/src/s_fmax.c: revision 1.1
lib/libm/shlib_version: revision 1.10
distrib/sets/lists/base/md.sparc64: revision 1.63 (via patch)
distrib/sets/lists/base/shl.mi: revision 1.495 (via patch)
lib/libm/src/s_fminl.c: revision 1.1
distrib/sets/lists/comp/mi: revision 1.1317
lib/libm/man/fdim.3: revision 1.1-1.3
lib/libm/src/s_fminf.c: revision 1.1
distrib/sets/lists/base/md.amd64: revision 1.70 (via patch)
add f{min,max,dim}{,l,f} from FreeBSD
These functions are going to first appear in 5.1, not 6.0.
 1.2.2.1 08-Mar-2010  riz file s_fmax.c was added on branch netbsd-5 on 2010-03-12 21:58:42 +0000
 1.2 08-Mar-2010  snj branches: 1.2.2; 1.2.4;
Fix broken RCSID.
 1.1 04-Oct-2009  christos add f{min,max,dim}{,l,f} from FreeBSD
 1.2.4.2 21-Apr-2010  matt sync to netbsd-5
 1.2.4.1 08-Mar-2010  matt file s_fmaxf.c was added on branch matt-nb5-mips64 on 2010-04-21 05:28:10 +0000
 1.2.2.2 12-Mar-2010  riz Pull up following revision(s) (requested by snj in ticket #1330):
lib/libm/man/fmax.3: revision 1.1-1.2
lib/libm/src/s_fmin.c: revision 1.1-1.2
lib/libm/src/s_fdim.c: revision 1.1
lib/libm/src/s_fmaxl.c: revision 1.1
lib/libm/Makefile: revision 1.90
include/math.h: revision 1.49
lib/libm/src/s_fmaxf.c: revision 1.1
lib/libm/src/s_fmax.c: revision 1.1
lib/libm/shlib_version: revision 1.10
distrib/sets/lists/base/md.sparc64: revision 1.63 (via patch)
distrib/sets/lists/base/shl.mi: revision 1.495 (via patch)
lib/libm/src/s_fminl.c: revision 1.1
distrib/sets/lists/comp/mi: revision 1.1317
lib/libm/man/fdim.3: revision 1.1-1.3
lib/libm/src/s_fminf.c: revision 1.1
distrib/sets/lists/base/md.amd64: revision 1.70 (via patch)
add f{min,max,dim}{,l,f} from FreeBSD
These functions are going to first appear in 5.1, not 6.0.
 1.2.2.1 08-Mar-2010  riz file s_fmaxf.c was added on branch netbsd-5 on 2010-03-12 21:58:42 +0000
 1.4 29-Nov-2013  joerg Use normal style for checking for long double support. Add missing
aliases for fminl and fmaxl, fabsl is here just for symmetry.
 1.3 04-Jul-2011  mrg branches: 1.3.2; 1.3.8;
avoid some uninitalised variable warnings.
 1.2 08-Mar-2010  snj branches: 1.2.2; 1.2.4;
Fix broken RCSID.
 1.1 04-Oct-2009  christos add f{min,max,dim}{,l,f} from FreeBSD
 1.2.4.2 21-Apr-2010  matt sync to netbsd-5
 1.2.4.1 08-Mar-2010  matt file s_fmaxl.c was added on branch matt-nb5-mips64 on 2010-04-21 05:28:10 +0000
 1.2.2.2 12-Mar-2010  riz Pull up following revision(s) (requested by snj in ticket #1330):
lib/libm/man/fmax.3: revision 1.1-1.2
lib/libm/src/s_fmin.c: revision 1.1-1.2
lib/libm/src/s_fdim.c: revision 1.1
lib/libm/src/s_fmaxl.c: revision 1.1
lib/libm/Makefile: revision 1.90
include/math.h: revision 1.49
lib/libm/src/s_fmaxf.c: revision 1.1
lib/libm/src/s_fmax.c: revision 1.1
lib/libm/shlib_version: revision 1.10
distrib/sets/lists/base/md.sparc64: revision 1.63 (via patch)
distrib/sets/lists/base/shl.mi: revision 1.495 (via patch)
lib/libm/src/s_fminl.c: revision 1.1
distrib/sets/lists/comp/mi: revision 1.1317
lib/libm/man/fdim.3: revision 1.1-1.3
lib/libm/src/s_fminf.c: revision 1.1
distrib/sets/lists/base/md.amd64: revision 1.70 (via patch)
add f{min,max,dim}{,l,f} from FreeBSD
These functions are going to first appear in 5.1, not 6.0.
 1.2.2.1 08-Mar-2010  riz file s_fmaxl.c was added on branch netbsd-5 on 2010-03-12 21:58:42 +0000
 1.3.8.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.3.2.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.2 29-Nov-2013  joerg Use normal style for checking for long double support. Add missing
aliases for fminl and fmaxl, fabsl is here just for symmetry.
 1.1 04-Oct-2009  christos branches: 1.1.2; 1.1.4; 1.1.10; 1.1.16;
add f{min,max,dim}{,l,f} from FreeBSD
 1.1.16.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.10.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.4.2 21-Apr-2010  matt sync to netbsd-5
 1.1.4.1 04-Oct-2009  matt file s_fmin.c was added on branch matt-nb5-mips64 on 2010-04-21 05:28:11 +0000
 1.1.2.2 12-Mar-2010  riz Pull up following revision(s) (requested by snj in ticket #1330):
lib/libm/man/fmax.3: revision 1.1-1.2
lib/libm/src/s_fmin.c: revision 1.1-1.2
lib/libm/src/s_fdim.c: revision 1.1
lib/libm/src/s_fmaxl.c: revision 1.1
lib/libm/Makefile: revision 1.90
include/math.h: revision 1.49
lib/libm/src/s_fmaxf.c: revision 1.1
lib/libm/src/s_fmax.c: revision 1.1
lib/libm/shlib_version: revision 1.10
distrib/sets/lists/base/md.sparc64: revision 1.63 (via patch)
distrib/sets/lists/base/shl.mi: revision 1.495 (via patch)
lib/libm/src/s_fminl.c: revision 1.1
distrib/sets/lists/comp/mi: revision 1.1317
lib/libm/man/fdim.3: revision 1.1-1.3
lib/libm/src/s_fminf.c: revision 1.1
distrib/sets/lists/base/md.amd64: revision 1.70 (via patch)
add f{min,max,dim}{,l,f} from FreeBSD
These functions are going to first appear in 5.1, not 6.0.
 1.1.2.1 04-Oct-2009  riz file s_fmin.c was added on branch netbsd-5 on 2010-03-12 21:58:42 +0000
 1.3 16-Apr-2022  andvar fix various typos in comments and log messages.
 1.2 08-Mar-2010  snj branches: 1.2.2; 1.2.4;
Fix broken RCSID.
 1.1 04-Oct-2009  christos add f{min,max,dim}{,l,f} from FreeBSD
 1.2.4.2 21-Apr-2010  matt sync to netbsd-5
 1.2.4.1 08-Mar-2010  matt file s_fminf.c was added on branch matt-nb5-mips64 on 2010-04-21 05:28:11 +0000
 1.2.2.2 12-Mar-2010  riz Pull up following revision(s) (requested by snj in ticket #1330):
lib/libm/man/fmax.3: revision 1.1-1.2
lib/libm/src/s_fmin.c: revision 1.1-1.2
lib/libm/src/s_fdim.c: revision 1.1
lib/libm/src/s_fmaxl.c: revision 1.1
lib/libm/Makefile: revision 1.90
include/math.h: revision 1.49
lib/libm/src/s_fmaxf.c: revision 1.1
lib/libm/src/s_fmax.c: revision 1.1
lib/libm/shlib_version: revision 1.10
distrib/sets/lists/base/md.sparc64: revision 1.63 (via patch)
distrib/sets/lists/base/shl.mi: revision 1.495 (via patch)
lib/libm/src/s_fminl.c: revision 1.1
distrib/sets/lists/comp/mi: revision 1.1317
lib/libm/man/fdim.3: revision 1.1-1.3
lib/libm/src/s_fminf.c: revision 1.1
distrib/sets/lists/base/md.amd64: revision 1.70 (via patch)
add f{min,max,dim}{,l,f} from FreeBSD
These functions are going to first appear in 5.1, not 6.0.
 1.2.2.1 08-Mar-2010  riz file s_fminf.c was added on branch netbsd-5 on 2010-03-12 21:58:42 +0000
 1.4 29-Nov-2013  joerg Use normal style for checking for long double support. Add missing
aliases for fminl and fmaxl, fabsl is here just for symmetry.
 1.3 04-Jul-2011  mrg branches: 1.3.2; 1.3.8;
avoid some uninitalised variable warnings.
 1.2 08-Mar-2010  snj branches: 1.2.2; 1.2.4;
Fix broken RCSID.
 1.1 04-Oct-2009  christos add f{min,max,dim}{,l,f} from FreeBSD
 1.2.4.2 21-Apr-2010  matt sync to netbsd-5
 1.2.4.1 08-Mar-2010  matt file s_fminl.c was added on branch matt-nb5-mips64 on 2010-04-21 05:28:11 +0000
 1.2.2.2 12-Mar-2010  riz Pull up following revision(s) (requested by snj in ticket #1330):
lib/libm/man/fmax.3: revision 1.1-1.2
lib/libm/src/s_fmin.c: revision 1.1-1.2
lib/libm/src/s_fdim.c: revision 1.1
lib/libm/src/s_fmaxl.c: revision 1.1
lib/libm/Makefile: revision 1.90
include/math.h: revision 1.49
lib/libm/src/s_fmaxf.c: revision 1.1
lib/libm/src/s_fmax.c: revision 1.1
lib/libm/shlib_version: revision 1.10
distrib/sets/lists/base/md.sparc64: revision 1.63 (via patch)
distrib/sets/lists/base/shl.mi: revision 1.495 (via patch)
lib/libm/src/s_fminl.c: revision 1.1
distrib/sets/lists/comp/mi: revision 1.1317
lib/libm/man/fdim.3: revision 1.1-1.3
lib/libm/src/s_fminf.c: revision 1.1
distrib/sets/lists/base/md.amd64: revision 1.70 (via patch)
add f{min,max,dim}{,l,f} from FreeBSD
These functions are going to first appear in 5.1, not 6.0.
 1.2.2.1 08-Mar-2010  riz file s_fminl.c was added on branch netbsd-5 on 2010-03-12 21:58:42 +0000
 1.3.8.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.3.2.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.14 30-Jan-2020  joerg Provide frexpl on non-long-double systems as alias to frexp.
 1.13 28-Sep-2008  christos branches: 1.13.60;
Fix a little lint.
 1.12 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.11 02-Jul-1999  simonb More trailing white space.
 1.10 09-Oct-1997  lukem rcsid facism, WARNSify
 1.9 10-May-1995  jtc Id -> NetBSD
 1.8 25-Jan-1995  jtc Remove unused static constant "one".
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.13.60.1 08-Apr-2020  martin Merge changes from current as of 20200406
 1.10 21-Aug-2007  drochner replace the last cast through void* by the SET_FLOAT_WORD macro, inspired
by a similar change in FreeBSD
 1.9 05-Dec-2002  scw Avoid a strict-alias warning.
 1.8 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.7 02-Jul-1999  simonb More trailing white space.
 1.6 09-Oct-1997  lukem rcsid facism, WARNSify
 1.5 10-May-1995  jtc Id -> NetBSD
 1.4 25-Jan-1995  jtc Remove unused static constant "one".
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 12-Feb-2013  martin branches: 1.3.4; 1.3.10;
Use __HAVE_LONG_DOUBLE instead of EXT_EXPBITS and include s_nextafterl.c
as well as s_frexpl.c in the global list of "common" sources - as we
seem to have no arch redefining the standard double variant, it seems
unlikely we will have on redefining the long double version in assembler.
 1.2 11-Feb-2013  christos add more functions required by fma
 1.1 11-Feb-2013  christos more stuff from FreeBSD
 1.3.10.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.3.10.1 12-Feb-2013  yamt file s_frexpl.c was added on branch yamt-pagecache on 2014-05-22 11:36:57 +0000
 1.3.4.2 25-Feb-2013  tls resync with head
 1.3.4.1 12-Feb-2013  tls file s_frexpl.c was added on branch tls-maxphys on 2013-02-25 00:27:58 +0000
 1.16 26-Aug-2016  christos fix sun2 build; only IEEE math platform (and coldfire) without fenv
 1.15 24-Aug-2016  christos fix ilogb*
 1.14 09-Feb-2013  matt Use FP_ILOGB0 and FP_ILOGBNAN
 1.13 28-Jul-2011  joerg branches: 1.13.2; 1.13.8;
Add ilogbl(3).
 1.12 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.11 02-Jul-1999  simonb More trailing white space.
 1.10 09-Oct-1997  lukem rcsid facism, WARNSify
 1.9 10-May-1995  jtc Id -> NetBSD
 1.8 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.7 26-Aug-1994  mycroft Only extract lx if we need it.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.13.8.1 25-Feb-2013  tls resync with head
 1.13.2.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.10 26-Aug-2016  christos fix sun2 build; only IEEE math platform (and coldfire) without fenv
 1.9 24-Aug-2016  christos fix ilogb*
 1.8 09-Feb-2013  matt Use FP_ILOGB0 and FP_ILOGBNAN
 1.7 26-May-2002  wiz branches: 1.7.54; 1.7.60;
__STDC__ is always defined on NetBSD.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.7.60.1 25-Feb-2013  tls resync with head
 1.7.54.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.4 26-Aug-2016  christos fix sun2 build; only IEEE math platform (and coldfire) without fenv
 1.3 24-Aug-2016  christos fix ilogb*
 1.2 09-Feb-2013  matt Use FP_ILOGB0 and FP_ILOGBNAN
 1.1 28-Jul-2011  joerg branches: 1.1.2; 1.1.8;
Add ilogbl(3).
 1.1.8.1 25-Feb-2013  tls resync with head
 1.1.2.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.5 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.4 09-Jan-1998  perry RCS Id Police.
 1.3 13-Oct-1996  christos <machine/endian.h> -> <sys/types.h>
 1.2 11-May-1995  jtc Winning Strategies has placed this code in the public domain.
 1.1 25-Sep-1994  jtc __infinity[] and isinf() for systems whose C libraries don't supply them;
and isinff(), a "float" version of isinf().
 1.6 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.5 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.4 09-Oct-1997  lukem rcsid facism, WARNSify
 1.3 11-May-1995  jtc Winning Strategies has placed this code in the public domain.
 1.2 10-May-1995  jtc Id -> NetBSD
 1.1 25-Sep-1994  jtc __infinity[] and isinf() for systems whose C libraries don't supply them;
and isinff(), a "float" version of isinf().
 1.6 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.5 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.4 09-Oct-1997  lukem rcsid facism, WARNSify
 1.3 11-May-1995  jtc Winning Strategies has placed this code in the public domain.
 1.2 10-May-1995  jtc Id -> NetBSD
 1.1 25-Sep-1994  jtc __infinity[] and isinf() for systems whose C libraries don't supply them;
and isinff(), a "float" version of isinf().
 1.11 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.10 02-Jul-1999  simonb More trailing white space.
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.7 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.12 27-Apr-2013  joerg Retire ldexp sources. scalbn has the aliases.
 1.11 23-Apr-2010  drochner branches: 1.11.6; 1.11.12;
-build ldexp/frexp/modf locally again rather than relying on libc
reaching over, to get things into a sane state,
-do the usual namespace protection game with scalbn(f) because it
is used internally
(more symbol renamings are necessary)

The weak_alias change for mc68881 is untested.
 1.10 25-Apr-2008  christos avoid shadow variables, and enable lint.
 1.9 26-May-2002  wiz branches: 1.9.30;
__STDC__ is always defined on NetBSD.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 09-Oct-1997  lukem rcsid facism, WARNSify
 1.6 10-May-1995  jtc Id -> NetBSD
 1.5 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.9.30.1 18-May-2008  yamt sync with head.
 1.11.12.1 23-Jun-2013  tls resync from head
 1.11.6.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.9 27-Apr-2013  joerg Retire ldexp sources. scalbn has the aliases.
 1.8 23-Apr-2010  drochner branches: 1.8.6; 1.8.12;
-build ldexp/frexp/modf locally again rather than relying on libc
reaching over, to get things into a sane state,
-do the usual namespace protection game with scalbn(f) because it
is used internally
(more symbol renamings are necessary)

The weak_alias change for mc68881 is untested.
 1.7 25-Apr-2008  christos avoid shadow variables, and enable lint.
 1.6 26-May-2002  wiz branches: 1.6.30;
__STDC__ is always defined on NetBSD.
 1.5 02-Jul-1999  simonb More trailing white space.
 1.4 09-Oct-1997  lukem rcsid facism, WARNSify
 1.3 10-May-1995  jtc Id -> NetBSD
 1.2 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.6.30.1 18-May-2008  yamt sync with head.
 1.8.12.1 23-Jun-2013  tls resync from head
 1.8.6.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 09-Oct-1997  lukem rcsid facism, WARNSify
 1.6 10-May-1995  jtc Id -> NetBSD
 1.5 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.1 06-May-2017  christos branches: 1.1.2;
Replace our rounding functions with the ones from FreeBSD
 1.1.2.2 11-May-2017  pgoyette Sync with HEAD
 1.1.2.1 06-May-2017  pgoyette file s_llrint.c was added on branch prg-localcount2 on 2017-05-11 02:58:33 +0000
 1.1 06-May-2017  christos branches: 1.1.2;
Replace our rounding functions with the ones from FreeBSD
 1.1.2.2 11-May-2017  pgoyette Sync with HEAD
 1.1.2.1 06-May-2017  pgoyette file s_llrintf.c was added on branch prg-localcount2 on 2017-05-11 02:58:33 +0000
 1.4 24-Feb-2024  christos add missing symbols for non long double architectures.
 1.3 13-Mar-2023  riastradh libm: Need <math.h> for __HAVE_LONG_DOUBLE.

Fixes missing definitions of lrintl, llrintl on various platforms.
 1.2 07-May-2017  martin branches: 1.2.2; 1.2.22;
Limit some rintl usage to #ifdef __HAVE_LONG_DOUBLE.
XXX should probably declare some aliases in the #else case
 1.1 06-May-2017  christos Replace our rounding functions with the ones from FreeBSD
 1.2.22.1 11-Aug-2023  martin Pull up following revision(s) (requested by riastradh in ticket #320):

lib/libm/src/ldbl_dummy.c: revision 1.3
distrib/sets/lists/debug/shl.mi: revision 1.303
lib/libm/src/ldbl_dummy.c: revision 1.4
lib/libm/src/namespace.h: revision 1.17
lib/libm/src/s_llrintl.c: revision 1.3
lib/libm/Makefile: revision 1.220
lib/libm/src/s_lrintl.c: revision 1.3
lib/libm/man/sincos.3: revision 1.2
lib/libm/man/math.3: revision 1.29
distrib/sets/lists/base/shl.mi: revision 1.946
lib/libm/shlib_version: revision 1.18

libm: Fill in more dummy long double transcendental functions.
This should cover everything from C99.

libm: Need <math.h> for __HAVE_LONG_DOUBLE.
Fixes missing definitions of lrintl, llrintl on various platforms.

Add (newly added): expm1l log1pl log2l lgammal tgammal
so that the library gets the correct symbols defined in it.

libm: Bump minor for new long double transcendental functions.
XXX Still missing: remquol, remainderl.

fix cross references (from Anon Ymous)

Correct history (Brad Smith)

libm: Add missing fma(3) and friends for sh3.

libm: Add dummy remainderl and remquol.
These are pretty bad -- these aren't transcendental functions; not
rocket science to make them correctly rounded -- but let's just make
sure they're available in libm for netbsd-10.
 1.2.2.2 11-May-2017  pgoyette Sync with HEAD
 1.2.2.1 07-May-2017  pgoyette file s_llrintl.c was added on branch prg-localcount2 on 2017-05-11 02:58:33 +0000
 1.1 06-May-2017  christos branches: 1.1.2;
Replace our rounding functions with the ones from FreeBSD
 1.1.2.2 11-May-2017  pgoyette Sync with HEAD
 1.1.2.1 06-May-2017  pgoyette file s_llround.c was added on branch prg-localcount2 on 2017-05-11 02:58:33 +0000
 1.1 06-May-2017  christos branches: 1.1.2;
Replace our rounding functions with the ones from FreeBSD
 1.1.2.2 11-May-2017  pgoyette Sync with HEAD
 1.1.2.1 06-May-2017  pgoyette file s_llroundf.c was added on branch prg-localcount2 on 2017-05-11 02:58:33 +0000
 1.1 06-May-2017  christos branches: 1.1.2;
Replace our rounding functions with the ones from FreeBSD
 1.1.2.2 11-May-2017  pgoyette Sync with HEAD
 1.1.2.1 06-May-2017  pgoyette file s_llroundl.c was added on branch prg-localcount2 on 2017-05-11 02:58:33 +0000
 1.13 16-Jul-2024  riastradh libm: Fix log-related symbol aliases.

- Do the weak alias dance for log, log2, log10, log1p, and their
f/l variants.

(Not strictly necessary for log2 and log10 since nothing in the
math library itself uses them -- only a computer scientist would
use log2 and only an engineer would use log10 -- but let's just do
it the same for all our forestry.)

- Provide long double aliases on vax.

- Sprinkle RCS ids.
 1.12 26-May-2002  wiz branches: 1.12.108;
__STDC__ is always defined on NetBSD.
 1.11 02-Jul-1999  simonb More trailing white space.
 1.10 19-Aug-1998  thorpej Add some braces to make egcs happy. (This code could kill me.)
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.12.108.1 02-Aug-2025  perseant Sync with HEAD
 1.9 16-Jul-2024  riastradh libm: Fix log-related symbol aliases.

- Do the weak alias dance for log, log2, log10, log1p, and their
f/l variants.

(Not strictly necessary for log2 and log10 since nothing in the
math library itself uses them -- only a computer scientist would
use log2 and only an engineer would use log10 -- but let's just do
it the same for all our forestry.)

- Provide long double aliases on vax.

- Sprinkle RCS ids.
 1.8 26-May-2002  wiz branches: 1.8.108;
__STDC__ is always defined on NetBSD.
 1.7 02-Jul-1999  simonb More trailing white space.
 1.6 19-Aug-1998  thorpej Add some braces to make egcs happy. (This code could kill me.)
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.8.108.1 02-Aug-2025  perseant Sync with HEAD
 1.12 03-Aug-2011  joerg Add logbl(3).
 1.11 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.10 02-Jul-1999  simonb More trailing white space.
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.7 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.1 03-Aug-2011  joerg Add logbl(3).
 1.5 16-Jul-2024  riastradh libm: Fix log-related symbol aliases.

- Do the weak alias dance for log, log2, log10, log1p, and their
f/l variants.

(Not strictly necessary for log2 and log10 since nothing in the
math library itself uses them -- only a computer scientist would
use log2 and only an engineer would use log10 -- but let's just do
it the same for all our forestry.)

- Provide long double aliases on vax.

- Sprinkle RCS ids.
 1.4 24-Feb-2024  christos branches: 1.4.2;
add missing symbols for non long double architectures.
 1.3 27-Jan-2024  ryoon Enable asinl, acosl, logl, coshl, tanhl, atanhl, asinhl and acoshl

* Fix pkgsrc/math/py-numpy and pkgsrc/graphics/py-matplotlib, for example.
 1.2 23-Jan-2024  christos move inclusion of <machine/ieee.h> to the ieee source files instead of
including it in math_private.h which is also used by the vax which is not ieee.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.4.2.1 02-Aug-2025  perseant Sync with HEAD
 1.1 06-May-2017  christos branches: 1.1.2;
Replace our rounding functions with the ones from FreeBSD
 1.1.2.2 11-May-2017  pgoyette Sync with HEAD
 1.1.2.1 06-May-2017  pgoyette file s_lrint.c was added on branch prg-localcount2 on 2017-05-11 02:58:33 +0000
 1.1 06-May-2017  christos branches: 1.1.2;
Replace our rounding functions with the ones from FreeBSD
 1.1.2.2 11-May-2017  pgoyette Sync with HEAD
 1.1.2.1 06-May-2017  pgoyette file s_lrintf.c was added on branch prg-localcount2 on 2017-05-11 02:58:33 +0000
 1.4 24-Feb-2024  christos add missing symbols for non long double architectures.
 1.3 13-Mar-2023  riastradh libm: Need <math.h> for __HAVE_LONG_DOUBLE.

Fixes missing definitions of lrintl, llrintl on various platforms.
 1.2 07-May-2017  martin branches: 1.2.2; 1.2.22;
Limit some rintl usage to #ifdef __HAVE_LONG_DOUBLE.
XXX should probably declare some aliases in the #else case
 1.1 06-May-2017  christos Replace our rounding functions with the ones from FreeBSD
 1.2.22.1 11-Aug-2023  martin Pull up following revision(s) (requested by riastradh in ticket #320):

lib/libm/src/ldbl_dummy.c: revision 1.3
distrib/sets/lists/debug/shl.mi: revision 1.303
lib/libm/src/ldbl_dummy.c: revision 1.4
lib/libm/src/namespace.h: revision 1.17
lib/libm/src/s_llrintl.c: revision 1.3
lib/libm/Makefile: revision 1.220
lib/libm/src/s_lrintl.c: revision 1.3
lib/libm/man/sincos.3: revision 1.2
lib/libm/man/math.3: revision 1.29
distrib/sets/lists/base/shl.mi: revision 1.946
lib/libm/shlib_version: revision 1.18

libm: Fill in more dummy long double transcendental functions.
This should cover everything from C99.

libm: Need <math.h> for __HAVE_LONG_DOUBLE.
Fixes missing definitions of lrintl, llrintl on various platforms.

Add (newly added): expm1l log1pl log2l lgammal tgammal
so that the library gets the correct symbols defined in it.

libm: Bump minor for new long double transcendental functions.
XXX Still missing: remquol, remainderl.

fix cross references (from Anon Ymous)

Correct history (Brad Smith)

libm: Add missing fma(3) and friends for sh3.

libm: Add dummy remainderl and remquol.
These are pretty bad -- these aren't transcendental functions; not
rocket science to make them correctly rounded -- but let's just make
sure they're available in libm for netbsd-10.
 1.2.2.2 11-May-2017  pgoyette Sync with HEAD
 1.2.2.1 07-May-2017  pgoyette file s_lrintl.c was added on branch prg-localcount2 on 2017-05-11 02:58:33 +0000
 1.1 06-May-2017  christos branches: 1.1.2;
Replace our rounding functions with the ones from FreeBSD
 1.1.2.2 11-May-2017  pgoyette Sync with HEAD
 1.1.2.1 06-May-2017  pgoyette file s_lround.c was added on branch prg-localcount2 on 2017-05-11 02:58:33 +0000
 1.1 06-May-2017  christos branches: 1.1.2;
Replace our rounding functions with the ones from FreeBSD
 1.1.2.2 11-May-2017  pgoyette Sync with HEAD
 1.1.2.1 06-May-2017  pgoyette file s_lroundf.c was added on branch prg-localcount2 on 2017-05-11 02:58:33 +0000
 1.1 06-May-2017  christos branches: 1.1.2;
Replace our rounding functions with the ones from FreeBSD
 1.1.2.2 11-May-2017  pgoyette Sync with HEAD
 1.1.2.1 06-May-2017  pgoyette file s_lroundl.c was added on branch prg-localcount2 on 2017-05-11 02:58:33 +0000
 1.9 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 09-Oct-1997  lukem rcsid facism, WARNSify
 1.6 10-May-1995  jtc Id -> NetBSD
 1.5 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.15 16-Jun-2014  joerg Add modfl(3). From FreeBSD.
 1.14 27-Jan-2010  drochner branches: 1.14.12; 1.14.22;
fix return value in case of NaN input
(the code also shortcuts the +-inf case, but this was OK before -- it
only avoids an extra check of the mantissa)
 1.13 28-Sep-2008  christos Fix a little lint.
 1.12 25-Apr-2008  christos avoid shadow variables, and enable lint.
 1.11 26-May-2002  wiz branches: 1.11.30;
__STDC__ is always defined on NetBSD.
 1.10 02-Jul-1999  simonb More trailing white space.
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.11.30.1 18-May-2008  yamt sync with head.
 1.14.22.1 10-Aug-2014  tls Rebase.
 1.14.12.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.9 27-Jan-2010  drochner fix return value in case of NaN input
(the code also shortcuts the +-inf case, but this was OK before -- it
only avoids an extra check of the mantissa)
 1.8 25-Apr-2008  christos avoid shadow variables, and enable lint.
 1.7 26-May-2002  wiz branches: 1.7.30;
__STDC__ is always defined on NetBSD.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.7.30.1 18-May-2008  yamt sync with head.
 1.2 15-May-2024  riastradh modfl(3): Fix conversion from FreeBSD.

LDBL_MANL_SIZE is spelled EXT_FRACLBITS -- and not EXT_FRACHBITS.

PR lib/58237: modfl returns wrong answers on ld128 architectures
 1.1 16-Jun-2014  joerg branches: 1.1.2; 1.1.6;
Add modfl(3). From FreeBSD.
 1.1.6.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.6.1 16-Jun-2014  tls file s_modfl.c was added on branch tls-maxphys on 2014-08-20 00:02:18 +0000
 1.1.2.2 10-Aug-2014  tls Rebase.
 1.1.2.1 16-Jun-2014  tls file s_modfl.c was added on branch tls-earlyentropy on 2014-08-10 06:52:02 +0000
 1.2 09-Feb-2013  christos branches: 1.2.4; 1.2.10;
Make this work for NetBSD
 1.1 09-Feb-2013  christos add FreeBSD implementations.
 1.2.10.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.2.10.1 09-Feb-2013  yamt file s_nan.c was added on branch yamt-pagecache on 2014-05-22 11:36:57 +0000
 1.2.4.2 25-Feb-2013  tls resync with head
 1.2.4.1 09-Feb-2013  tls file s_nan.c was added on branch tls-maxphys on 2013-02-25 00:27:58 +0000
 1.6 30-Oct-2024  riastradh nearbyint(3), nearbyintf(3): Use rint(3), rintf(3), not rintl(3).

This macro was mistakenly changed to use rintl(3) for all three
functions, instead of using the macro parameter as originally
intended. Put it back the right way, and rename the paramter
`rintfn' to avoid confusion in the future.

(It is not strictly wrong to use rintl(3) for nearbyint(3) and
nearbyintf(3), because the input can always be converted to long
double without losing information, and once rounded to an integer,
the output undergoes no further rounding back into float or double --
if the input was an integer already it is unchanged, and if the input
was not then rounding it to an integer can't use more precision than
was already needed for the input. But it might be suboptimal.)

Should fix failures in nearbyint/nearbyintf tests on sparc64 because
rintl is broken (nearbyintl is still broken because rintl is still
broken, of course, to be diagnosed).
 1.5 24-Feb-2024  christos branches: 1.5.2;
add missing symbols for non long double architectures.
 1.4 06-May-2017  christos add missing namespace.h
 1.3 11-Feb-2013  christos branches: 1.3.4; 1.3.10; 1.3.24;
use __HAVE_LONG_DOUBLE
 1.2 09-Feb-2013  christos make these only work for things that have EXT_ foo definitions.
 1.1 09-Feb-2013  christos add FreeBSD implementations.
 1.3.24.1 11-May-2017  pgoyette Sync with HEAD
 1.3.10.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.3.10.1 11-Feb-2013  yamt file s_nearbyint.c was added on branch yamt-pagecache on 2014-05-22 11:36:57 +0000
 1.3.4.2 25-Feb-2013  tls resync with head
 1.3.4.1 11-Feb-2013  tls file s_nearbyint.c was added on branch tls-maxphys on 2013-02-25 00:27:58 +0000
 1.5.2.1 02-Aug-2025  perseant Sync with HEAD
 1.17 05-May-2024  riastradh libm: If long double is double, nexttowardl is nextafter.

long double nexttowardl(long double, long double);
double nextafter(double, double);
 1.16 16-Aug-2017  he branches: 1.16.6; 1.16.14;
On second thought, don't introduce nexttowardl() since we don't have that
yet elsewhere.
 1.15 16-Aug-2017  he On systems without __HAVE_LONG_DOUBLE, also alias nexttoward() and
nexttowardl() to nextafter().
 1.14 18-Mar-2014  riastradh branches: 1.14.18;
Merge riastradh-drm2 to HEAD.
 1.13 18-Jul-2013  matt If __HAVE_LONG_DOUBLE is not defined,
add a strong alias for nextafterl to nextafter
 1.12 18-Apr-2011  drochner branches: 1.12.4; 1.12.10; 1.12.14;
according to C99/POSIX, nextafter(x,y) should return y if x==y, from
Henning Petersen per PR lib/44875
 1.11 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.10 02-Jul-1999  simonb More trailing white space.
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.12.14.1 23-Jul-2013  riastradh sync with HEAD
 1.12.10.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.12.4.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.14.18.1 29-Aug-2017  martin Also pull up rev 1.15 and 1.16 for ticket #217:

On systems without __HAVE_LONG_DOUBLE, alias nexttoward() to nextafter().
 1.16.14.1 14-Oct-2024  martin Additionally pull up following revision(s) (requested by riastradh in ticket #963):

lib/libm/src/s_nextafter.c: revision 1.17
lib/libm/src/s_nexttowardf.c: revision 1.4

libm: Make s_nexttowardf.c work when long double is double.
Seems likely that there are other parts of libm which would benefit
from being defined unconditionally in terms of ieee_ext_u, with
ieee_ext_u as an alias for ieee_double_u, in this scenario. But I
haven't gone looking yet.

libm: If long double is double, nexttowardl is nextafter.
long double nexttowardl(long double, long double);
double nextafter(double, double);
 1.16.6.1 14-Oct-2024  martin Additionally pull up following revision(s) (requested by riastradh in ticket #1906):

lib/libm/src/s_nextafter.c: revision 1.17
lib/libm/src/s_nexttowardf.c: revision 1.4

libm: Make s_nexttowardf.c work when long double is double.
Seems likely that there are other parts of libm which would benefit
from being defined unconditionally in terms of ieee_ext_u, with
ieee_ext_u as an alias for ieee_double_u, in this scenario. But I
haven't gone looking yet.

libm: If long double is double, nexttowardl is nextafter.
long double nexttowardl(long double, long double);
double nextafter(double, double);
 1.8 18-Apr-2011  drochner according to C99/POSIX, nextafter(x,y) should return y if x==y, from
Henning Petersen per PR lib/44875
 1.7 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.6 27-Apr-2019  kamil Add a C99 symbol to libm: nexttowardl

It's an alias for an already existing symbol nextafterl.

Patch obtained from <mgorny>

Detected by the LLVM buildbot breakage in tests.
 1.5 31-Jan-2014  matt branches: 1.5.26;
Just use EXT_EXP_INFNAN instead of EXT_EXP_INF or EXT_EXP_NAN.
 1.4 18-Jul-2013  matt Only compile is __HAVE_LONG_DOUBLE is defined
 1.3 14-Feb-2013  matt branches: 1.3.2;
Deal with an implicit NBIT
 1.2 17-Sep-2010  christos branches: 1.2.6; 1.2.12;
don't compile long double support for the havenots.
 1.1 15-Sep-2010  christos commit long double SoC code from Stathis Kamperis
 1.2.12.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2.12.1 25-Feb-2013  tls resync with head
 1.2.6.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.3.2.1 23-Jul-2013  riastradh sync with HEAD
 1.5.26.1 10-Jun-2019  christos Sync with HEAD
 1.3 11-May-2024  riastradh nexttoward(3): Fix high-word test on small positive subnormals.

By this point in the logic, x can't be zero, so it's either positive
or negative.

The high word hx, however, can be zero, when x is a small positive
subnormal. This means x is a small positive subnormal, so if x > y
we are computing nextDown, and if x < y we are computing nextUp.

hx is a (signed 32-bit) integer, not a double floating-point number,
so it's a little silly to compare hx > 0.0. But that on its own
isn't enough to trigger the bug because all signed 32-bit integers
can be represented by double on all NetBSD architectures.

PR lib/58236
 1.2 21-Aug-2013  martin branches: 1.2.28; 1.2.36;
Add support for archs with LDBL_IMPLICIT_NBIT
 1.1 15-Sep-2010  christos branches: 1.1.6; 1.1.12;
commit long double SoC code from Stathis Kamperis
 1.1.12.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.6.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.2.36.1 13-Oct-2024  martin Pull up following revision(s) (requested by riastradh in ticket #963):

tests/lib/libm/Makefile: revision 1.49
distrib/sets/lists/tests/mi: revision 1.1315
tests/lib/libm/t_next.c: revision 1.1
tests/lib/libm/t_next.c: revision 1.2
distrib/sets/lists/debug/mi: revision 1.435
tests/lib/libm/t_next.c: revision 1.3
tests/lib/libm/t_next.c: revision 1.4
tests/lib/libm/t_next.c: revision 1.5
tests/lib/libm/t_next.c: revision 1.6
lib/libm/src/s_nexttoward.c: revision 1.3

tests/lib/libm: Test nextafter/nexttoward and variants.

The tests are fairly trivial but should work without any conditionals
about floating-point formats.
tests/lib/libm/t_next: Disable this test on VAX.

But leave a replacement xfail test that fails unconditionally, to
leave a reminder in the tests of PR 57881: vax libm is missing
various symbols.

tests/lib/libm/t_next: Fix stub on VAX.
Tested building the wrong tree, oops.

tests/lib/libm/t_next: Expand substantially.

This covers many more potential problem areas -- and includes a new
xfail test for PR lib/58236: nexttoward(3) is broken on subnormals.
tests/lib/libm/t_next: nexttoward works if it's just nextafter.

It's broken on platforms where long double and double aren't the same
and nexttoward isn't an alias for nextafter.
nexttoward(3): Fix high-word test on small positive subnormals.

By this point in the logic, x can't be zero, so it's either positive
or negative.

The high word hx, however, can be zero, when x is a small positive
subnormal. This means x is a small positive subnormal, so if x > y
we are computing nextDown, and if x < y we are computing nextUp.
hx is a (signed 32-bit) integer, not a double floating-point number,
so it's a little silly to compare hx > 0.0. But that on its own
isn't enough to trigger the bug because all signed 32-bit integers
can be represented by double on all NetBSD architectures.
PR lib/58236
 1.2.28.1 13-Oct-2024  martin Pull up following revision(s) (requested by riastradh in ticket #963):

tests/lib/libm/Makefile: revision 1.49
distrib/sets/lists/tests/mi: revision 1.1315
tests/lib/libm/t_next.c: revision 1.1
tests/lib/libm/t_next.c: revision 1.2
distrib/sets/lists/debug/mi: revision 1.435
tests/lib/libm/t_next.c: revision 1.3
tests/lib/libm/t_next.c: revision 1.4
tests/lib/libm/t_next.c: revision 1.5
tests/lib/libm/t_next.c: revision 1.6
lib/libm/src/s_nexttoward.c: revision 1.3
(all via patch)

tests/lib/libm: Test nextafter/nexttoward and variants.

The tests are fairly trivial but should work without any conditionals
about floating-point formats.
tests/lib/libm/t_next: Disable this test on VAX.

But leave a replacement xfail test that fails unconditionally, to
leave a reminder in the tests of PR 57881: vax libm is missing
various symbols.

tests/lib/libm/t_next: Fix stub on VAX.
Tested building the wrong tree, oops.

tests/lib/libm/t_next: Expand substantially.

This covers many more potential problem areas -- and includes a new
xfail test for PR lib/58236: nexttoward(3) is broken on subnormals.
tests/lib/libm/t_next: nexttoward works if it's just nextafter.

It's broken on platforms where long double and double aren't the same
and nexttoward isn't an alias for nextafter.
nexttoward(3): Fix high-word test on small positive subnormals.

By this point in the logic, x can't be zero, so it's either positive
or negative.

The high word hx, however, can be zero, when x is a small positive
subnormal. This means x is a small positive subnormal, so if x > y
we are computing nextDown, and if x < y we are computing nextUp.
hx is a (signed 32-bit) integer, not a double floating-point number,
so it's a little silly to compare hx > 0.0. But that on its own
isn't enough to trigger the bug because all signed 32-bit integers
can be represented by double on all NetBSD architectures.
PR lib/58236
 1.5 05-May-2024  riastradh libm/s_nexttowardf.c: Handle __HAVE_LONG_DOUBLE, LDBL_IMPLICIT_NBIT.

We should arrange to just have LDBL_NBIT unconditionally defined in the
appropriate MD header file, and make LDBL_IMPLICIT_NBIT an alias for
LDBL_NBIT==0. But for now this will do.
 1.4 05-May-2024  riastradh libm: Make s_nexttowardf.c work when long double is double.

Seems likely that there are other parts of libm which would benefit
from being defined unconditionally in terms of ieee_ext_u, with
ieee_ext_u as an alias for ieee_double_u, in this scenario. But I
haven't gone looking yet.
 1.3 09-Feb-2013  christos branches: 1.3.4; 1.3.10; 1.3.36; 1.3.44;
make these only work for things that have EXT_ foo definitions.
 1.2 09-Feb-2013  christos Make this work for NetBSD
 1.1 09-Feb-2013  christos one more
 1.3.44.2 15-Oct-2024  martin Additionally pull up following revision(s) (requested by rin in ticket #963):

lib/libm/src/s_nexttowardf.c: revision 1.5

libm/s_nexttowardf.c: Handle __HAVE_LONG_DOUBLE, LDBL_IMPLICIT_NBIT.

We should arrange to just have LDBL_NBIT unconditionally defined in the
appropriate MD header file, and make LDBL_IMPLICIT_NBIT an alias for
LDBL_NBIT==0. But for now this will do.
 1.3.44.1 14-Oct-2024  martin Additionally pull up following revision(s) (requested by riastradh in ticket #963):

lib/libm/src/s_nextafter.c: revision 1.17
lib/libm/src/s_nexttowardf.c: revision 1.4

libm: Make s_nexttowardf.c work when long double is double.
Seems likely that there are other parts of libm which would benefit
from being defined unconditionally in terms of ieee_ext_u, with
ieee_ext_u as an alias for ieee_double_u, in this scenario. But I
haven't gone looking yet.

libm: If long double is double, nexttowardl is nextafter.
long double nexttowardl(long double, long double);
double nextafter(double, double);
 1.3.36.2 15-Oct-2024  martin Additionally pull up following revision(s) (requested by rin in ticket #1906):

lib/libm/src/s_nexttowardf.c: revision 1.5

libm/s_nexttowardf.c: Handle __HAVE_LONG_DOUBLE, LDBL_IMPLICIT_NBIT.

We should arrange to just have LDBL_NBIT unconditionally defined in the
appropriate MD header file, and make LDBL_IMPLICIT_NBIT an alias for
LDBL_NBIT==0. But for now this will do.
 1.3.36.1 14-Oct-2024  martin Additionally pull up following revision(s) (requested by riastradh in ticket #1906):

lib/libm/src/s_nextafter.c: revision 1.17
lib/libm/src/s_nexttowardf.c: revision 1.4

libm: Make s_nexttowardf.c work when long double is double.
Seems likely that there are other parts of libm which would benefit
from being defined unconditionally in terms of ieee_ext_u, with
ieee_ext_u as an alias for ieee_double_u, in this scenario. But I
haven't gone looking yet.

libm: If long double is double, nexttowardl is nextafter.
long double nexttowardl(long double, long double);
double nextafter(double, double);
 1.3.10.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.3.10.1 09-Feb-2013  yamt file s_nexttowardf.c was added on branch yamt-pagecache on 2014-05-22 11:36:57 +0000
 1.3.4.2 25-Feb-2013  tls resync with head
 1.3.4.1 09-Feb-2013  tls file s_nexttowardf.c was added on branch tls-maxphys on 2013-02-25 00:27:58 +0000
 1.4 20-Sep-2024  gdt libm/remquo: Fix bug where remquo returned wrong sign of quo

ISO C requires that quo be congruent to the quotient mod 2^k and have
a particular sign. The current code can return 0 when it should be
negative.

Because the code chooses k=31 (for the requirement of congruence
modulo 2^k), the only value available (in ILP32 or LP64) that is
negative and congruent to 0 is 0x80000000. In the specific case of
wanting "-0", return 0x80000000.

Resolves t_remquo test failure.

\todo pullups
\todo check/fix remquof and remquol
 1.3 20-Sep-2024  gdt libm/remquo: Fix bug where wrong quotient was returned

Fix taken from FreeBSD:

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=166463
https://cgit.freebsd.org/src/commit/lib/msun/src/s_remquo.c?id=1cbd288942b08217e99bf889e0967895d53af00c

FreeBSD commit message:

Fix a bug in remquo{,f,l}, in which the quotient didn't always have the
correct sign when the remainder was 0.

Fix a separate bug in remquo alone, in which the remainder and
quotient were both off by a bit in certain cases involving subnormal
remainders.

The bugs affected all platforms except amd64 and i386, on which the
routines are implemented in assembly.

(On NetBSD, this bug manifests on amd64.)

\todo pullups
\todo check/fix remquof and remquol
 1.2 24-Feb-2024  mrg branches: 1.2.2;
fix some fallout from 32-bit fixes for long double functions.

apply namespace.h to remqou*. add missing weak aliases for some of them,
and normalise checkf for __weak_alias().

now libm.so seems to only have libc undefined symbols.
 1.1 06-Feb-2011  christos branches: 1.1.2; 1.1.56;
Add the actual function files. From FreeBSD via Stathis Kamperis
 1.1.56.1 02-Oct-2024  martin Pull up following revision(s) (requested by gdt in ticket #912):

distrib/sets/lists/debug/mi: revision 1.449
lib/libm/src/s_remquo.c: revision 1.3
lib/libm/src/s_remquo.c: revision 1.4
distrib/sets/lists/tests/mi: revision 1.1339
tests/lib/libm/t_remquo.c: revision 1.1
tests/lib/libm/t_remquo.c: revision 1.2
tests/lib/libm/Makefile: revision 1.51

tests: Add test for remquo

This test currently fails, because remquo has bugs. (A bugfix will be
committed soon.) Test vectors derived from results from code by
Charles Karney in GeodesicLib/proj, and manually inspected.

t_remquo: Work around missing remquo(3) for vax
Part of PR port-vax/57881

libm/remquo: Fix bug where wrong quotient was returned

Fix taken from FreeBSD:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=166463
https://cgit.freebsd.org/src/commit/lib/msun/src/s_remquo.c?id=1cbd288942b08217e99bf889e0967895d53af00c

FreeBSD commit message:
Fix a bug in remquo{,f,l}, in which the quotient didn't always have the
correct sign when the remainder was 0.
Fix a separate bug in remquo alone, in which the remainder and
quotient were both off by a bit in certain cases involving subnormal
remainders.
The bugs affected all platforms except amd64 and i386, on which the
routines are implemented in assembly.

(On NetBSD, this bug manifests on amd64.)

libm/remquo: Fix bug where remquo returned wrong sign of quo
ISO C requires that quo be congruent to the quotient mod 2^k and have
a particular sign. The current code can return 0 when it should be
negative.
Because the code chooses k=31 (for the requirement of congruence
modulo 2^k), the only value available (in ILP32 or LP64) that is
negative and congruent to 0 is 0x80000000. In the specific case of
wanting "-0", return 0x80000000.
Resolves t_remquo test failure.
 1.1.2.2 08-Feb-2011  bouyer Sync with HEAD
 1.1.2.1 06-Feb-2011  bouyer file s_remquo.c was added on branch bouyer-quota2 on 2011-02-08 16:19:01 +0000
 1.2.2.1 02-Aug-2025  perseant Sync with HEAD
 1.2 24-Feb-2024  mrg fix some fallout from 32-bit fixes for long double functions.

apply namespace.h to remqou*. add missing weak aliases for some of them,
and normalise checkf for __weak_alias().

now libm.so seems to only have libc undefined symbols.
 1.1 06-Feb-2011  christos branches: 1.1.2;
Add the actual function files. From FreeBSD via Stathis Kamperis
 1.1.2.2 08-Feb-2011  bouyer Sync with HEAD
 1.1.2.1 06-Feb-2011  bouyer file s_remquof.c was added on branch bouyer-quota2 on 2011-02-08 16:19:01 +0000
 1.6 17-Jul-2024  riastradh libm: Fix `mantissa' to say `significand' in comments.

(mantissa = fractional part of log(significand))

No functional change intended.
 1.5 24-Feb-2024  mrg branches: 1.5.2;
fix some fallout from 32-bit fixes for long double functions.

apply namespace.h to remqou*. add missing weak aliases for some of them,
and normalise checkf for __weak_alias().

now libm.so seems to only have libc undefined symbols.
 1.4 24-Feb-2024  christos add missing symbols for non long double architectures.
 1.3 23-Jan-2024  christos move inclusion of <machine/ieee.h> to the ieee source files instead of
including it in math_private.h which is also used by the vax which is not ieee.
 1.2 22-Jan-2024  kre This set of changes seem to be sufficient to make at least the
amd64 port build again after the long double math function infusion
from yesterday.

Feel free (without consulting me, I'm just hacking about) to revert
any of this and do it a better way.

Note: this is not intended to be complete, in particular, in <math.h>
I added prototypes only for the functions that are needed for a
successful build, not all of the new ones...
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.5.2.1 02-Aug-2025  perseant Sync with HEAD
 1.13 28-Aug-2022  he s_rint.c: weak-alias rintl -> rint for ports without __HAVE_LONG_DOUBLE.
 1.12 25-Apr-2008  christos avoid shadow variables, and enable lint.
 1.11 26-May-2002  wiz branches: 1.11.30;
__STDC__ is always defined on NetBSD.
 1.10 02-Jul-1999  simonb More trailing white space.
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.11.30.1 18-May-2008  yamt sync with head.
 1.9 25-Apr-2008  christos avoid shadow variables, and enable lint.
 1.8 01-Aug-2006  drochner branches: 1.8.18;
make an intermediate float variable "volatile" on i386 to work around a gcc
optimization problem: subsequent add/subs were done inside FPU registers,
with "double" precision, without rounding to "float" in between
 1.7 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.8.18.1 18-May-2008  yamt sync with head.
 1.7 04-May-2024  riastradh s_rintl.c: Reduce FreeBSD diff and fix on ld128 platforms.

EXT_FRACBITS, the number of bits in the _binary encoding_ that stores
the trailing significand field, is never 113. In IEEE 754 binary128,
it is 112, even though there are 113 bits of precision in the set of
floating-point numbers -- the leading 1 bit is implicit in binary128.
So ld128 platforms like aarch64 and sparc64 were skipping the real
definition and just defining rintl as an alias for rint, which is
wrong.

In contrast, LDBL_MANT_DIG, the number of bits of precision in the set
of floating-point numbers (p, in IEEE 754 parlance), is 113 in IEEE 754
binary128. This is also the constant used in FreeBSD libm anyway. So
let's just use that instead of trying to translate it to our private
EXT_FRACBITS (not defined in FreeBSD) with a fencepos terror. And
delete the buggy rintl=rint alias.

PR lib/58054
 1.6 02-Apr-2024  christos PR/58054: Martin Husemann: fix bug in expsign extraction and only use the
code for the floating point formats where it works (does not work for 112
bit mantisa in sparc64)
 1.5 21-Aug-2013  martin branches: 1.5.4;
Add support for the long double format used on sparc64
 1.4 11-Feb-2013  christos branches: 1.4.4;
use __HAVE_LONG_DOUBLE
 1.3 09-Feb-2013  christos make these only work for things that have EXT_ foo definitions.
 1.2 09-Feb-2013  christos Hook to the build.
 1.1 09-Feb-2013  christos FreeBSD version
 1.4.4.3 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.4.4.2 25-Feb-2013  tls resync with head
 1.4.4.1 11-Feb-2013  tls file s_rintl.c was added on branch tls-maxphys on 2013-02-25 00:27:58 +0000
 1.5.4.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.5.4.1 21-Aug-2013  yamt file s_rintl.c was added on branch yamt-pagecache on 2014-05-22 11:36:57 +0000
 1.3 11-Nov-2013  joerg Add initial version of ceill, floorl and roundl from FreeBSD.
 1.2 21-Aug-2007  drochner branches: 1.2.30; 1.2.36;
Adopt an (older) fix from FreeBSD: using ceil() on values in (0,0.5]
leads to loss of precision, leading to rounding into the wrong direction
for the case 0.5-epsilon. use floor() instead.
This also fixes a wrong sign of zero returned with non-default rounding
directions.
 1.1 10-Jul-2004  junyoung branches: 1.1.2;
lib/24252: Add C99 functions round(3) and roundf(3).
libm minor unchanged; ride a recent bump.

From FreeBSD.
 1.1.2.2 15-Jul-2004  he Pull up revision 1.1 (new, requested by junyoung in ticket #664):
Add C99 functions round(3) and roundf(3).
Bump the teeny version number for libm.
 1.1.2.1 10-Jul-2004  he file s_round.c was added on branch netbsd-2-0 on 2004-07-15 20:57:36 +0000
 1.2.36.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2.30.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.2 21-Aug-2007  drochner Adopt an (older) fix from FreeBSD: using ceil() on values in (0,0.5]
leads to loss of precision, leading to rounding into the wrong direction
for the case 0.5-epsilon. use floor() instead.
This also fixes a wrong sign of zero returned with non-default rounding
directions.
 1.1 10-Jul-2004  junyoung branches: 1.1.2;
lib/24252: Add C99 functions round(3) and roundf(3).
libm minor unchanged; ride a recent bump.

From FreeBSD.
 1.1.2.2 15-Jul-2004  he Pull up revision 1.1 (new, requested by junyoung in ticket #664):
Add C99 functions round(3) and roundf(3).
Bump the teeny version number for libm.
 1.1.2.1 10-Jul-2004  he file s_roundf.c was added on branch netbsd-2-0 on 2004-07-15 20:57:36 +0000
 1.1 11-Nov-2013  joerg branches: 1.1.4; 1.1.8;
Add initial version of ceill, floorl and roundl from FreeBSD.
 1.1.8.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.8.1 11-Nov-2013  tls file s_roundl.c was added on branch tls-maxphys on 2014-08-20 00:02:18 +0000
 1.1.4.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.4.1 11-Nov-2013  yamt file s_roundl.c was added on branch yamt-pagecache on 2014-05-22 11:36:57 +0000
 1.6 28-Apr-2013  joerg Drop s_scalbnl.c (and s_scalbln.S as side effect) and provide scalbnl in
s_scalbln.c.
 1.5 27-Apr-2013  joerg Move scalbnl back to s_scalbln.c to match the assembler implementations.
 1.4 27-Apr-2013  joerg Casting is a not a valid way to check for overflow, so be explicit and
use the limit macros.
 1.3 27-Apr-2013  joerg Use namespace.h. Don't redefine scalblnl on 64bit platforms.
 1.2 11-Feb-2013  christos branches: 1.2.4;
add more functions required by fma
 1.1 11-Feb-2013  christos more stuff from FreeBSD
 1.2.4.3 23-Jun-2013  tls resync from head
 1.2.4.2 25-Feb-2013  tls resync with head
 1.2.4.1 11-Feb-2013  tls file s_scalbln.c was added on branch tls-maxphys on 2013-02-25 00:27:58 +0000
 1.19 27-Mar-2018  martin Add missing alias for ldexpl on ! __HAVE_LONG_DOUBLE architectures.
Pointed out by Hal Murray on port-arm.
 1.18 20-May-2013  joerg branches: 1.18.20; 1.18.26;
Fix ldexp aliases.
 1.17 27-Apr-2013  joerg Add aliases to scalbn* as ldexp*, they are identical for FLT_RADIX=2.
 1.16 28-Jan-2013  matt Deal with _LP64 properly.
 1.15 26-Jul-2011  joerg branches: 1.15.2; 1.15.8;
Add scalbnl to libm.
 1.14 23-Apr-2010  drochner -build ldexp/frexp/modf locally again rather than relying on libc
reaching over, to get things into a sane state,
-do the usual namespace protection game with scalbn(f) because it
is used internally
(more symbol renamings are necessary)

The weak_alias change for mc68881 is untested.
 1.13 28-Sep-2008  christos Fix a little lint.
 1.12 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.11 02-Jul-1999  simonb More trailing white space.
 1.10 19-Aug-1998  thorpej Add some braces to make egcs happy. (This code could kill me.)
 1.9 09-Oct-1997  lukem rcsid facism, WARNSify
 1.8 10-May-1995  jtc Id -> NetBSD
 1.7 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.6 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.5 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Mar-1994  jtc Don't determine byte order at run time.
This also "solves" the problem of GCC optimization leading to incorrect
results.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.15.8.2 23-Jun-2013  tls resync from head
 1.15.8.1 25-Feb-2013  tls resync with head
 1.15.2.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.18.26.1 30-Mar-2018  pgoyette Resolve conflicts between branch and HEAD
 1.18.20.1 31-Mar-2018  bouyer Pull up following revision(s) (requested by martin in ticket #659):
lib/libm/src/s_scalbn.c: revision 1.19
Add missing alias for ldexpl on ! __HAVE_LONG_DOUBLE architectures.
Pointed out by Hal Murray on port-arm.
 1.12 20-May-2013  joerg Fix ldexp aliases.
 1.11 27-Apr-2013  joerg Add aliases to scalbn* as ldexp*, they are identical for FLT_RADIX=2.
 1.10 28-Jan-2013  matt Deal with _LP64 properly.
 1.9 23-Apr-2010  drochner branches: 1.9.6; 1.9.12;
-build ldexp/frexp/modf locally again rather than relying on libc
reaching over, to get things into a sane state,
-do the usual namespace protection game with scalbn(f) because it
is used internally
(more symbol renamings are necessary)

The weak_alias change for mc68881 is untested.
 1.8 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.7 02-Jul-1999  simonb More trailing white space.
 1.6 19-Aug-1998  thorpej Add some braces to make egcs happy. (This code could kill me.)
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.9.12.2 23-Jun-2013  tls resync from head
 1.9.12.1 25-Feb-2013  tls resync with head
 1.9.6.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.9 20-May-2013  joerg Fix ldexp aliases.
 1.8 19-May-2013  martin Try to fix bogus underflow test (obvious copy & pasto) - someone please
review to make sure I got it right.
This fixes PR 47834.
 1.7 28-Apr-2013  joerg Drop s_scalbnl.c (and s_scalbln.S as side effect) and provide scalbnl in
s_scalbln.c.
 1.6 27-Apr-2013  joerg Add aliases to scalbn* as ldexp*, they are identical for FLT_RADIX=2.
 1.5 27-Apr-2013  joerg Move scalbnl back to s_scalbln.c to match the assembler implementations.
 1.4 11-Feb-2013  christos provide ldexpl
 1.3 28-Jan-2013  pgoyette Add missing ';' to fix the build.
 1.2 28-Jan-2013  matt Deal with _LP64 properly.
 1.1 26-Jul-2011  joerg branches: 1.1.2; 1.1.8;
Add scalbnl to libm.
 1.1.8.2 23-Jun-2013  tls resync from head
 1.1.8.1 25-Feb-2013  tls resync with head
 1.1.2.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.4 09-Jan-1998  perry RCS Id Police.
 1.3 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.9 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 09-Oct-1997  lukem rcsid facism, WARNSify
 1.6 10-May-1995  jtc Id -> NetBSD
 1.5 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.6 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.5 02-Jul-1999  simonb More trailing white space.
 1.4 09-Oct-1997  lukem rcsid facism, WARNSify
 1.3 10-May-1995  jtc Id -> NetBSD
 1.2 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.12 08-May-2024  riastradh libm: Do the weak alias dance for sin/cos/tan/finite{,f}.

tan isn't used internally, but it's confusing for it to be treated
differently from sin and cos, and there's no harm in doing the dance
unnecessarily.
 1.11 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.10 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.9 02-Jul-1999  simonb More trailing white space.
 1.8 09-Oct-1997  lukem rcsid facism, WARNSify
 1.7 10-May-1995  jtc Id -> NetBSD
 1.6 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.5 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.5 29-Aug-2022  riastradh libm: Fix some whitespace issues in recent sincos additions.
 1.4 28-Aug-2022  he s_sincos.c: use correct order of __weak_alias() arguments...
 1.3 28-Aug-2022  he s_sincos.c: use __weak_alias and not __weak_reference.

Fixes build on NetBSD/macppc, thanks to hint from riastradh@
 1.2 28-Aug-2022  christos only alias sincos to sincosl when we don't have long doubles
 1.1 27-Aug-2022  christos Add sincos{,f,l} from FreeBSD
 1.1 27-Aug-2022  christos Add sincos{,f,l} from FreeBSD
 1.4 03-Apr-2024  christos remove #include <ieeefp.h> for i386 now that it is included in math_private.h
 1.3 24-Feb-2024  christos add missing symbols for non long double architectures.
 1.2 27-Aug-2022  christos tuck in k_sincosl.h include inside __HAVE_LONG_DOUBLE
 1.1 27-Aug-2022  christos Add sincos{,f,l} from FreeBSD
 1.9 08-May-2024  riastradh libm: Do the weak alias dance for sin/cos/tan/finite{,f}.

tan isn't used internally, but it's confusing for it to be treated
differently from sin and cos, and there's no harm in doing the dance
unnecessarily.
 1.8 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.7 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 03-Apr-2024  christos remove #include <ieeefp.h> for i386 now that it is included in math_private.h
 1.2 26-Jan-2024  ryoon Fix inverted logic for weak alias

* Fix gfortran from pkgsrc/lang/gcc10 and pkgsrc/math/coinmp, for example.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.3 24-Feb-2024  christos add missing symbols for non long double architectures.
 1.2 23-Jan-2024  christos move inclusion of <machine/ieee.h> to the ieee source files instead of
including it in math_private.h which is also used by the vax which is not ieee.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.11 08-May-2024  riastradh libm: Do the weak alias dance for sin/cos/tan/finite{,f}.

tan isn't used internally, but it's confusing for it to be treated
differently from sin and cos, and there's no harm in doing the dance
unnecessarily.
 1.10 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.9 02-Jul-1999  simonb More trailing white space.
 1.8 09-Oct-1997  lukem rcsid facism, WARNSify
 1.7 10-May-1995  jtc Id -> NetBSD
 1.6 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.5 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.8 08-May-2024  riastradh libm: Do the weak alias dance for sin/cos/tan/finite{,f}.

tan isn't used internally, but it's confusing for it to be treated
differently from sin and cos, and there's no harm in doing the dance
unnecessarily.
 1.7 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.10 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.9 02-Jul-1999  simonb More trailing white space.
 1.8 09-Oct-1997  lukem rcsid facism, WARNSify
 1.7 10-May-1995  jtc Id -> NetBSD
 1.6 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.5 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.7 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-May-1995  jtc Id -> NetBSD
 1.3 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.2 18-Aug-1994  jtc Change int -> int32_t and unsigned int -> u_int32_t to improve portabilty
to machines where int != 32 bits.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 03-Apr-2024  christos remove #include <ieeefp.h> for i386 now that it is included in math_private.h
 1.3 24-Feb-2024  christos add missing symbols for non long double architectures.
 1.2 27-Jan-2024  ryoon Enable asinl, acosl, logl, coshl, tanhl, atanhl, asinhl and acoshl

* Fix pkgsrc/math/py-numpy and pkgsrc/graphics/py-matplotlib, for example.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.3 03-Apr-2024  christos remove #include <ieeefp.h> for i386 now that it is included in math_private.h
 1.2 23-Feb-2024  christos fix the 32 bit tanl symbol.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.3 24-Feb-2024  christos add missing symbols for non long double architectures.
 1.2 23-Jan-2024  christos move inclusion of <machine/ieee.h> to the ieee source files instead of
including it in math_private.h which is also used by the vax which is not ieee.
 1.1 21-Jan-2024  christos Bring in more long double functions from FreeBSD.
 1.1 05-May-2012  christos branches: 1.1.2; 1.1.4;
Add tgamma{,f} from FreeBSD via rudolf, netbsd at eq dot cz
 1.1.4.2 23-May-2012  yamt sync with head.
 1.1.4.1 05-May-2012  yamt file s_tgammaf.c was added on branch yamt-pagecache on 2012-05-23 10:07:32 +0000
 1.1.2.2 09-May-2012  riz Pull up following revision(s) (requested by christos in ticket #232):
distrib/sets/lists/comp/mi: revision 1.1756
lib/libm/Makefile: revision 1.124
lib/libm/src/math_private.h: revision 1.17
lib/libm/src/b_tgamma.c: revision 1.1
lib/libm/man/lgamma.3: revision 1.22
lib/libm/src/b_log.c: revision 1.1
lib/libm/src/b_exp.c: revision 1.1
include/math.h: revision 1.58
lib/libm/src/s_tgammaf.c: revision 1.1
add tgamma{,f}
Add tgamma{,f} from FreeBSD via rudolf, netbsd at eq dot cz
oops, forgot to commit: add tgamma and tgammaf
 1.1.2.1 05-May-2012  riz file s_tgammaf.c was added on branch netbsd-6 on 2012-05-09 18:22:36 +0000
 1.4 13-Nov-2013  joerg Add FreeBSD's truncl and minimal testing.
 1.3 25-Apr-2008  christos branches: 1.3.4; 1.3.26;
avoid shadow variables, and enable lint.
 1.2 17-Jan-2007  hubertf branches: 1.2.10;
Remove more duplicate #includes, and a few spurious whitespaces at EOL
From Slava Semushin <slava.semushin@gmail.com>
 1.1 25-Mar-2006  xtraeme Add trunc() and truncf() C99 functions, from FreeBSD.
 1.2.10.1 18-May-2008  yamt sync with head.
 1.3.26.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.3.4.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.4 25-Apr-2008  christos avoid shadow variables, and enable lint.
 1.3 17-Jan-2007  hubertf branches: 1.3.10;
Remove more duplicate #includes, and a few spurious whitespaces at EOL
From Slava Semushin <slava.semushin@gmail.com>
 1.2 25-Mar-2006  xtraeme Add __RCSID(), u_intX_t -> uintX_t.
cvs: ----------------------------------------------------------------------
 1.1 25-Mar-2006  xtraeme Add trunc() and truncf() C99 functions, from FreeBSD.
 1.3.10.1 18-May-2008  yamt sync with head.
 1.4 13-Nov-2013  joerg Add FreeBSD's truncl and minimal testing.
 1.3 11-Nov-2013  joerg Add initial version of ceill, floorl and roundl from FreeBSD.
 1.2 08-Aug-2012  matt branches: 1.2.2; 1.2.4;
Fix copyright.
 1.1 08-Aug-2012  matt Add a long double version of trunc.
 1.2.4.3 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.2.4.2 30-Oct-2012  yamt sync with head
 1.2.4.1 08-Aug-2012  yamt file s_truncl.c was added on branch yamt-pagecache on 2012-10-30 18:59:12 +0000
 1.2.2.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.11 09-Jun-2024  riastradh libm: Sprinkle whitespace fixes and rcsids on inverse trig functions.

No functional change intended.
 1.10 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.9 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 09-Oct-1997  lukem rcsid facism, WARNSify
 1.6 10-May-1995  jtc Id -> NetBSD
 1.5 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.8 09-Jun-2024  riastradh libm: Sprinkle whitespace fixes and rcsids on inverse trig functions.

No functional change intended.
 1.7 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.6 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.5 02-Jul-1999  simonb More trailing white space.
 1.4 09-Oct-1997  lukem rcsid facism, WARNSify
 1.3 10-May-1995  jtc Id -> NetBSD
 1.2 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.9 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 09-Oct-1997  lukem rcsid facism, WARNSify
 1.6 10-May-1995  jtc Id -> NetBSD
 1.5 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.6 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.5 02-Jul-1999  simonb More trailing white space.
 1.4 09-Oct-1997  lukem rcsid facism, WARNSify
 1.3 10-May-1995  jtc Id -> NetBSD
 1.2 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.12 09-Jun-2024  riastradh libm: Sprinkle whitespace fixes and rcsids on inverse trig functions.

No functional change intended.
 1.11 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.10 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.9 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 09-Oct-1997  lukem rcsid facism, WARNSify
 1.6 10-May-1995  jtc Id -> NetBSD
 1.5 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.9 09-Jun-2024  riastradh libm: Sprinkle whitespace fixes and rcsids on inverse trig functions.

No functional change intended.
 1.8 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.7 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.6 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.5 02-Jul-1999  simonb More trailing white space.
 1.4 09-Oct-1997  lukem rcsid facism, WARNSify
 1.3 10-May-1995  jtc Id -> NetBSD
 1.2 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.10 10-Aug-2007  drochner make the hypot/atan2 functions weak aliases, because they are used
internally by the historical cabs(), and the future c99 cabs/carg
 1.9 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 09-Oct-1997  lukem rcsid facism, WARNSify
 1.6 10-May-1995  jtc Id -> NetBSD
 1.5 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.7 10-Aug-2007  drochner make the hypot/atan2 functions weak aliases, because they are used
internally by the historical cabs(), and the future c99 cabs/carg
 1.6 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.5 02-Jul-1999  simonb More trailing white space.
 1.4 09-Oct-1997  lukem rcsid facism, WARNSify
 1.3 10-May-1995  jtc Id -> NetBSD
 1.2 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.9 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 09-Oct-1997  lukem rcsid facism, WARNSify
 1.6 10-May-1995  jtc Id -> NetBSD
 1.5 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.6 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.5 02-Jul-1999  simonb More trailing white space.
 1.4 09-Oct-1997  lukem rcsid facism, WARNSify
 1.3 10-May-1995  jtc Id -> NetBSD
 1.2 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.5 22-Feb-2007  drochner -get cabs() and cabsf() out of public view - these are historical and
conflict with C99 functions which are builtins in newer gcc
(actually, the old cabs() is ABI compatible with the new _complex one
on i386, but this is purely accidental)
remove public prototypes and manpages, move the code into a compat
subdirectory as libc does so that binary compatibility is kept
-add a manpage for the isgreater() etc macros, borrowed from FreeBSD
 1.4 06-Jan-2001  christos remove redundant declarations; use __MATH_PRIVATE__ to override math.h
declarations.
 1.3 02-Jul-1999  simonb More trailing white space.
 1.2 09-Oct-1997  lukem rcsid facism, WARNSify
 1.1 01-Mar-1994  jtc Add cabs() & drem() for BSD libm compatibility.
 1.5 22-Feb-2007  drochner -get cabs() and cabsf() out of public view - these are historical and
conflict with C99 functions which are builtins in newer gcc
(actually, the old cabs() is ABI compatible with the new _complex one
on i386, but this is purely accidental)
remove public prototypes and manpages, move the code into a compat
subdirectory as libc does so that binary compatibility is kept
-add a manpage for the isgreater() etc macros, borrowed from FreeBSD
 1.4 06-Jan-2001  christos remove redundant declarations; use __MATH_PRIVATE__ to override math.h
declarations.
 1.3 02-Jul-1999  simonb More trailing white space.
 1.2 09-Oct-1997  lukem rcsid facism, WARNSify
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.10 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.9 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 09-Oct-1997  lukem rcsid facism, WARNSify
 1.6 10-May-1995  jtc Id -> NetBSD
 1.5 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.7 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.6 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.5 02-Jul-1999  simonb More trailing white space.
 1.4 09-Oct-1997  lukem rcsid facism, WARNSify
 1.3 10-May-1995  jtc Id -> NetBSD
 1.2 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 25-Jun-2004  drochner ANSIfy
 1.3 02-Jul-1999  simonb More trailing white space.
 1.2 09-Oct-1997  lukem rcsid facism, WARNSify
 1.1 01-Mar-1994  jtc Add cabs() & drem() for BSD libm compatibility.
 1.4 25-Jun-2004  drochner ANSIfy
 1.3 02-Jul-1999  simonb More trailing white space.
 1.2 09-Oct-1997  lukem rcsid facism, WARNSify
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.11 24-Aug-2025  nat Fix _IEEE_LIBM build.
 1.10 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.9 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 09-Oct-1997  lukem rcsid facism, WARNSify
 1.6 10-May-1995  jtc Id -> NetBSD
 1.5 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.8 24-Aug-2025  nat Fix _IEEE_LIBM build.
 1.7 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.6 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.5 02-Jul-1999  simonb More trailing white space.
 1.4 09-Oct-1997  lukem rcsid facism, WARNSify
 1.3 10-May-1995  jtc Id -> NetBSD
 1.2 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.10 12-Nov-2013  joerg Initial version of fmodl from FreeBSD.
Basic test case for the fmod family.
 1.9 26-May-2002  wiz branches: 1.9.54; 1.9.60;
__STDC__ is always defined on NetBSD.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 09-Oct-1997  lukem rcsid facism, WARNSify
 1.6 10-May-1995  jtc Id -> NetBSD
 1.5 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.9.60.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.9.54.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.6 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.5 02-Jul-1999  simonb More trailing white space.
 1.4 09-Oct-1997  lukem rcsid facism, WARNSify
 1.3 10-May-1995  jtc Id -> NetBSD
 1.2 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.4 21-Nov-2013  martin branches: 1.4.4; 1.4.8;
Fix copy & pasto (make temp variable long double).
Fixes fmodl() test failure on sparc64
 1.3 19-Nov-2013  joerg Report correct exception for fmodl.
 1.2 13-Nov-2013  joerg Add missing __HAVE_LONG_DOUBLE protection.
 1.1 12-Nov-2013  joerg Initial version of fmodl from FreeBSD.
Basic test case for the fmod family.
 1.4.8.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.4.8.1 21-Nov-2013  tls file w_fmodl.c was added on branch tls-maxphys on 2014-08-20 00:02:18 +0000
 1.4.4.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.4.4.1 21-Nov-2013  yamt file w_fmodl.c was added on branch yamt-pagecache on 2014-05-22 11:36:57 +0000
 1.11 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.10 06-Jan-2001  christos remove redundant declarations; use __MATH_PRIVATE__ to override math.h
declarations.
 1.9 02-Jul-1999  simonb More trailing white space.
 1.8 09-Oct-1997  lukem rcsid facism, WARNSify
 1.7 20-Nov-1995  jtc Changed w_gamma.c, w_gamma_r.c, w_gammaf.c, w_gammaf_r.c to call
__ieee754_lgamma_r or __ieee754_lgammaf_r.
Removed e_gamma.c, e_gamma_r.c, e_gammaf.c, e_gammaf_r.c, e_lgamma.c,
e_lgamma_f.c.
 1.6 10-May-1995  jtc Id -> NetBSD
 1.5 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.11 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.10 06-Jan-2001  christos remove redundant declarations; use __MATH_PRIVATE__ to override math.h
declarations.
 1.9 02-Jul-1999  simonb More trailing white space.
 1.8 09-Oct-1997  lukem rcsid facism, WARNSify
 1.7 20-Nov-1995  jtc Changed w_gamma.c, w_gamma_r.c, w_gammaf.c, w_gammaf_r.c to call
__ieee754_lgamma_r or __ieee754_lgammaf_r.
Removed e_gamma.c, e_gamma_r.c, e_gammaf.c, e_gammaf_r.c, e_lgamma.c,
e_lgamma_f.c.
 1.6 10-May-1995  jtc Id -> NetBSD
 1.5 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.8 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.7 06-Jan-2001  christos remove redundant declarations; use __MATH_PRIVATE__ to override math.h
declarations.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 20-Nov-1995  jtc Changed w_gamma.c, w_gamma_r.c, w_gammaf.c, w_gammaf_r.c to call
__ieee754_lgamma_r or __ieee754_lgammaf_r.
Removed e_gamma.c, e_gamma_r.c, e_gammaf.c, e_gammaf_r.c, e_lgamma.c,
e_lgamma_f.c.
 1.3 10-May-1995  jtc Id -> NetBSD
 1.2 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.8 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.7 06-Jan-2001  christos remove redundant declarations; use __MATH_PRIVATE__ to override math.h
declarations.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 20-Nov-1995  jtc Changed w_gamma.c, w_gamma_r.c, w_gammaf.c, w_gammaf_r.c to call
__ieee754_lgamma_r or __ieee754_lgammaf_r.
Removed e_gamma.c, e_gamma_r.c, e_gammaf.c, e_gammaf_r.c, e_lgamma.c,
e_lgamma_f.c.
 1.3 10-May-1995  jtc Id -> NetBSD
 1.2 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.10 10-Aug-2007  drochner make the hypot/atan2 functions weak aliases, because they are used
internally by the historical cabs(), and the future c99 cabs/carg
 1.9 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 09-Oct-1997  lukem rcsid facism, WARNSify
 1.6 10-May-1995  jtc Id -> NetBSD
 1.5 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.7 10-Aug-2007  drochner make the hypot/atan2 functions weak aliases, because they are used
internally by the historical cabs(), and the future c99 cabs/carg
 1.6 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.5 02-Jul-1999  simonb More trailing white space.
 1.4 09-Oct-1997  lukem rcsid facism, WARNSify
 1.3 10-May-1995  jtc Id -> NetBSD
 1.2 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.9 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 09-Oct-1997  lukem rcsid facism, WARNSify
 1.6 10-May-1995  jtc Id -> NetBSD
 1.5 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.6 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.5 02-Jul-1999  simonb More trailing white space.
 1.4 09-Oct-1997  lukem rcsid facism, WARNSify
 1.3 10-May-1995  jtc Id -> NetBSD
 1.2 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.9 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 09-Oct-1997  lukem rcsid facism, WARNSify
 1.6 10-May-1995  jtc Id -> NetBSD
 1.5 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.6 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.5 02-Jul-1999  simonb More trailing white space.
 1.4 09-Oct-1997  lukem rcsid facism, WARNSify
 1.3 10-May-1995  jtc Id -> NetBSD
 1.2 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.9 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 09-Oct-1997  lukem rcsid facism, WARNSify
 1.6 10-May-1995  jtc Id -> NetBSD
 1.5 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.6 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.5 02-Jul-1999  simonb More trailing white space.
 1.4 09-Oct-1997  lukem rcsid facism, WARNSify
 1.3 10-May-1995  jtc Id -> NetBSD
 1.2 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.10 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.9 06-Jan-2001  christos remove redundant declarations; use __MATH_PRIVATE__ to override math.h
declarations.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 09-Oct-1997  lukem rcsid facism, WARNSify
 1.6 10-May-1995  jtc Id -> NetBSD
 1.5 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.10 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.9 06-Jan-2001  christos remove redundant declarations; use __MATH_PRIVATE__ to override math.h
declarations.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 09-Oct-1997  lukem rcsid facism, WARNSify
 1.6 10-May-1995  jtc Id -> NetBSD
 1.5 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.7 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.6 06-Jan-2001  christos remove redundant declarations; use __MATH_PRIVATE__ to override math.h
declarations.
 1.5 02-Jul-1999  simonb More trailing white space.
 1.4 09-Oct-1997  lukem rcsid facism, WARNSify
 1.3 10-May-1995  jtc Id -> NetBSD
 1.2 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.7 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.6 06-Jan-2001  christos remove redundant declarations; use __MATH_PRIVATE__ to override math.h
declarations.
 1.5 02-Jul-1999  simonb More trailing white space.
 1.4 09-Oct-1997  lukem rcsid facism, WARNSify
 1.3 10-May-1995  jtc Id -> NetBSD
 1.2 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.11 16-Jul-2024  riastradh libm: Fix log-related symbol aliases.

- Do the weak alias dance for log, log2, log10, log1p, and their
f/l variants.

(Not strictly necessary for log2 and log10 since nothing in the
math library itself uses them -- only a computer scientist would
use log2 and only an engineer would use log10 -- but let's just do
it the same for all our forestry.)

- Provide long double aliases on vax.

- Sprinkle RCS ids.
 1.10 20-Aug-2007  drochner branches: 1.10.84;
Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.9 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 09-Oct-1997  lukem rcsid facism, WARNSify
 1.6 10-May-1995  jtc Id -> NetBSD
 1.5 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.10.84.1 02-Aug-2025  perseant Sync with HEAD
 1.10 16-Jul-2024  riastradh libm: Fix log-related symbol aliases.

- Do the weak alias dance for log, log2, log10, log1p, and their
f/l variants.

(Not strictly necessary for log2 and log10 since nothing in the
math library itself uses them -- only a computer scientist would
use log2 and only an engineer would use log10 -- but let's just do
it the same for all our forestry.)

- Provide long double aliases on vax.

- Sprinkle RCS ids.
 1.9 26-May-2002  wiz branches: 1.9.108;
__STDC__ is always defined on NetBSD.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 09-Oct-1997  lukem rcsid facism, WARNSify
 1.6 10-May-1995  jtc Id -> NetBSD
 1.5 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.9.108.1 02-Aug-2025  perseant Sync with HEAD
 1.7 16-Jul-2024  riastradh libm: Fix log-related symbol aliases.

- Do the weak alias dance for log, log2, log10, log1p, and their
f/l variants.

(Not strictly necessary for log2 and log10 since nothing in the
math library itself uses them -- only a computer scientist would
use log2 and only an engineer would use log10 -- but let's just do
it the same for all our forestry.)

- Provide long double aliases on vax.

- Sprinkle RCS ids.
 1.6 26-May-2002  wiz branches: 1.6.108;
__STDC__ is always defined on NetBSD.
 1.5 02-Jul-1999  simonb More trailing white space.
 1.4 09-Oct-1997  lukem rcsid facism, WARNSify
 1.3 10-May-1995  jtc Id -> NetBSD
 1.2 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.6.108.1 02-Aug-2025  perseant Sync with HEAD
 1.2 16-Jul-2024  riastradh libm: Fix log-related symbol aliases.

- Do the weak alias dance for log, log2, log10, log1p, and their
f/l variants.

(Not strictly necessary for log2 and log10 since nothing in the
math library itself uses them -- only a computer scientist would
use log2 and only an engineer would use log10 -- but let's just do
it the same for all our forestry.)

- Provide long double aliases on vax.

- Sprinkle RCS ids.
 1.1 21-Jul-2005  christos branches: 1.1.96;
Add wrappers for the newly added functions. Thanks Klaus!
 1.1.96.1 02-Aug-2025  perseant Sync with HEAD
 1.2 16-Jul-2024  riastradh libm: Fix log-related symbol aliases.

- Do the weak alias dance for log, log2, log10, log1p, and their
f/l variants.

(Not strictly necessary for log2 and log10 since nothing in the
math library itself uses them -- only a computer scientist would
use log2 and only an engineer would use log10 -- but let's just do
it the same for all our forestry.)

- Provide long double aliases on vax.

- Sprinkle RCS ids.
 1.1 21-Jul-2005  christos branches: 1.1.96;
Add wrappers for the newly added functions. Thanks Klaus!
 1.1.96.1 02-Aug-2025  perseant Sync with HEAD
 1.7 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.6 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.5 02-Jul-1999  simonb More trailing white space.
 1.4 09-Oct-1997  lukem rcsid facism, WARNSify
 1.3 10-May-1995  jtc Id -> NetBSD
 1.2 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.7 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 09-Oct-1997  lukem rcsid facism, WARNSify
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.6 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.5 02-Jul-1999  simonb More trailing white space.
 1.4 09-Oct-1997  lukem rcsid facism, WARNSify
 1.3 10-May-1995  jtc Id -> NetBSD
 1.2 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.9 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 09-Oct-1997  lukem rcsid facism, WARNSify
 1.6 10-May-1995  jtc Id -> NetBSD
 1.5 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.6 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.5 02-Jul-1999  simonb More trailing white space.
 1.4 09-Oct-1997  lukem rcsid facism, WARNSify
 1.3 10-May-1995  jtc Id -> NetBSD
 1.2 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.9 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 09-Oct-1997  lukem rcsid facism, WARNSify
 1.6 10-May-1995  jtc Id -> NetBSD
 1.5 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.6 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.5 02-Jul-1999  simonb More trailing white space.
 1.4 09-Oct-1997  lukem rcsid facism, WARNSify
 1.3 10-May-1995  jtc Id -> NetBSD
 1.2 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.10 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.9 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 09-Oct-1997  lukem rcsid facism, WARNSify
 1.6 10-May-1995  jtc Id -> NetBSD
 1.5 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.7 20-Aug-2007  drochner Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
 1.6 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.5 02-Jul-1999  simonb More trailing white space.
 1.4 09-Oct-1997  lukem rcsid facism, WARNSify
 1.3 10-May-1995  jtc Id -> NetBSD
 1.2 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.10 19-Nov-2013  joerg Add cbrtl(3) and sqrtl(3), from FreeBSD.
 1.9 26-May-2002  wiz branches: 1.9.54; 1.9.60;
__STDC__ is always defined on NetBSD.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 09-Oct-1997  lukem rcsid facism, WARNSify
 1.6 10-May-1995  jtc Id -> NetBSD
 1.5 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.4 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.3 18-Feb-1994  jtc Add RCS ID's.
 1.2 11-Feb-1994  jtc Include <math.h> instead of "fdlibm.h"
Byteorder fix for s_frexp.c.
 1.1 11-Feb-1994  jtc branches: 1.1.1;
Initial revision
 1.1.1.1 11-Feb-1994  jtc Fdlibm 5.1
 1.9.60.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.9.54.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.6 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.5 02-Jul-1999  simonb More trailing white space.
 1.4 09-Oct-1997  lukem rcsid facism, WARNSify
 1.3 10-May-1995  jtc Id -> NetBSD
 1.2 22-Sep-1994  jtc LIBM_SCCS must be defined for the RCS ID to be defined.
This library will soon be used by DJGPP. And since memory is often tight
on DOS machines, there is little benifit to be had from including RCS IDs.
 1.1 10-Aug-1994  jtc Float versions of math functions. From Ian Taylor (ian@cygnus.com), with
minor changes by me.
 1.2 20-Nov-2013  joerg branches: 1.2.4; 1.2.8;
Long double conditional.
 1.1 19-Nov-2013  joerg Add cbrtl(3) and sqrtl(3), from FreeBSD.
 1.2.8.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2.8.1 20-Nov-2013  tls file w_sqrtl.c was added on branch tls-maxphys on 2014-08-20 00:02:18 +0000
 1.2.4.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.2.4.1 20-Nov-2013  yamt file w_sqrtl.c was added on branch yamt-pagecache on 2014-05-22 11:36:57 +0000

RSS XML Feed