Import OpenBSD's libm (trunk, 4 July 2015) to a new vendor branch gitea/vendor/OPENBSD_LIBM origin/vendor/OPENBSD_LIBM
authorJohn Marino <draco@marino.st>
Sun, 12 Jul 2015 19:52:59 +0000 (21:52 +0200)
committerJohn Marino <draco@marino.st>
Sun, 12 Jul 2015 19:52:59 +0000 (21:52 +0200)
With the exception of x86_64 (as amd64), all arch-specific files have
been filtered out.  A new directory called "include" has been added
to capture global and arch-specific headers for installation.  Other
than that directory and those exclusions, this is an unaltered copy
of OpenBSD's libm as it existed on 4th of July, 2015.

376 files changed:
contrib/openbsd_libm/Makefile [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/abi.h [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/e_acos.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/e_asin.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/e_atan2.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/e_atan2f.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/e_exp.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/e_fmod.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/e_log.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/e_log10.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/e_remainder.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/e_remainderf.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/e_scalb.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/e_sqrt.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/e_sqrtf.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/e_sqrtl.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/fenv.c [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/invtrig.c [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/s_atan.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/s_atanf.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/s_ceil.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/s_ceilf.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/s_copysign.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/s_copysignf.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/s_cos.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/s_cosf.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/s_floor.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/s_floorf.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/s_ilogb.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/s_ilogbf.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/s_llrint.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/s_llrintf.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/s_log1p.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/s_log1pf.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/s_logb.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/s_logbf.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/s_lrint.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/s_lrintf.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/s_rint.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/s_rintf.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/s_scalbnf.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/s_significand.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/s_significandf.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/s_sin.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/s_sinf.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/s_tan.S [new file with mode: 0644]
contrib/openbsd_libm/arch/amd64/s_tanf.S [new file with mode: 0644]
contrib/openbsd_libm/include/amd64/fenv.h [new file with mode: 0644]
contrib/openbsd_libm/include/amd64/ieee.h [new file with mode: 0644]
contrib/openbsd_libm/include/global/complex.h [new file with mode: 0644]
contrib/openbsd_libm/include/global/fenv.h [new file with mode: 0644]
contrib/openbsd_libm/include/global/math.h [new file with mode: 0644]
contrib/openbsd_libm/include/global/tgmath.h [new file with mode: 0644]
contrib/openbsd_libm/man/Makefile [new file with mode: 0644]
contrib/openbsd_libm/man/acos.3 [new file with mode: 0644]
contrib/openbsd_libm/man/acosh.3 [new file with mode: 0644]
contrib/openbsd_libm/man/asin.3 [new file with mode: 0644]
contrib/openbsd_libm/man/asinh.3 [new file with mode: 0644]
contrib/openbsd_libm/man/atan.3 [new file with mode: 0644]
contrib/openbsd_libm/man/atan2.3 [new file with mode: 0644]
contrib/openbsd_libm/man/atanh.3 [new file with mode: 0644]
contrib/openbsd_libm/man/cacos.3 [new file with mode: 0644]
contrib/openbsd_libm/man/cacosh.3 [new file with mode: 0644]
contrib/openbsd_libm/man/carg.3 [new file with mode: 0644]
contrib/openbsd_libm/man/casin.3 [new file with mode: 0644]
contrib/openbsd_libm/man/casinh.3 [new file with mode: 0644]
contrib/openbsd_libm/man/catan.3 [new file with mode: 0644]
contrib/openbsd_libm/man/catanh.3 [new file with mode: 0644]
contrib/openbsd_libm/man/ccos.3 [new file with mode: 0644]
contrib/openbsd_libm/man/ccosh.3 [new file with mode: 0644]
contrib/openbsd_libm/man/ceil.3 [new file with mode: 0644]
contrib/openbsd_libm/man/cexp.3 [new file with mode: 0644]
contrib/openbsd_libm/man/cimag.3 [new file with mode: 0644]
contrib/openbsd_libm/man/clog.3 [new file with mode: 0644]
contrib/openbsd_libm/man/conj.3 [new file with mode: 0644]
contrib/openbsd_libm/man/copysign.3 [new file with mode: 0644]
contrib/openbsd_libm/man/cos.3 [new file with mode: 0644]
contrib/openbsd_libm/man/cosh.3 [new file with mode: 0644]
contrib/openbsd_libm/man/cpow.3 [new file with mode: 0644]
contrib/openbsd_libm/man/cproj.3 [new file with mode: 0644]
contrib/openbsd_libm/man/creal.3 [new file with mode: 0644]
contrib/openbsd_libm/man/csin.3 [new file with mode: 0644]
contrib/openbsd_libm/man/csinh.3 [new file with mode: 0644]
contrib/openbsd_libm/man/csqrt.3 [new file with mode: 0644]
contrib/openbsd_libm/man/ctan.3 [new file with mode: 0644]
contrib/openbsd_libm/man/ctanh.3 [new file with mode: 0644]
contrib/openbsd_libm/man/erf.3 [new file with mode: 0644]
contrib/openbsd_libm/man/exp.3 [new file with mode: 0644]
contrib/openbsd_libm/man/fabs.3 [new file with mode: 0644]
contrib/openbsd_libm/man/fdim.3 [new file with mode: 0644]
contrib/openbsd_libm/man/feclearexcept.3 [new file with mode: 0644]
contrib/openbsd_libm/man/feenableexcept.3 [new file with mode: 0644]
contrib/openbsd_libm/man/fegetenv.3 [new file with mode: 0644]
contrib/openbsd_libm/man/fegetround.3 [new file with mode: 0644]
contrib/openbsd_libm/man/floor.3 [new file with mode: 0644]
contrib/openbsd_libm/man/fma.3 [new file with mode: 0644]
contrib/openbsd_libm/man/fmax.3 [new file with mode: 0644]
contrib/openbsd_libm/man/fmod.3 [new file with mode: 0644]
contrib/openbsd_libm/man/hypot.3 [new file with mode: 0644]
contrib/openbsd_libm/man/ilogb.3 [new file with mode: 0644]
contrib/openbsd_libm/man/infnan.3 [new file with mode: 0644]
contrib/openbsd_libm/man/j0.3 [new file with mode: 0644]
contrib/openbsd_libm/man/lgamma.3 [new file with mode: 0644]
contrib/openbsd_libm/man/logb.3 [new file with mode: 0644]
contrib/openbsd_libm/man/lrint.3 [new file with mode: 0644]
contrib/openbsd_libm/man/lround.3 [new file with mode: 0644]
contrib/openbsd_libm/man/nan.3 [new file with mode: 0644]
contrib/openbsd_libm/man/nextafter.3 [new file with mode: 0644]
contrib/openbsd_libm/man/remainder.3 [new file with mode: 0644]
contrib/openbsd_libm/man/rint.3 [new file with mode: 0644]
contrib/openbsd_libm/man/round.3 [new file with mode: 0644]
contrib/openbsd_libm/man/scalbn.3 [new file with mode: 0644]
contrib/openbsd_libm/man/sin.3 [new file with mode: 0644]
contrib/openbsd_libm/man/sinh.3 [new file with mode: 0644]
contrib/openbsd_libm/man/sqrt.3 [new file with mode: 0644]
contrib/openbsd_libm/man/tan.3 [new file with mode: 0644]
contrib/openbsd_libm/man/tanh.3 [new file with mode: 0644]
contrib/openbsd_libm/man/trunc.3 [new file with mode: 0644]
contrib/openbsd_libm/src/b_exp__D.c [new file with mode: 0644]
contrib/openbsd_libm/src/b_log__D.c [new file with mode: 0644]
contrib/openbsd_libm/src/b_tgamma.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_acos.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_acosf.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_acosh.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_acoshf.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_acosl.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_asin.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_asinf.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_asinl.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_atan2.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_atan2f.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_atan2l.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_atanh.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_atanhf.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_cosh.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_coshf.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_exp.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_expf.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_fmod.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_fmodf.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_hypot.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_hypotf.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_j0.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_j0f.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_j1.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_j1f.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_jn.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_jnf.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_lgamma_r.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_lgammaf_r.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_log.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_log10.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_log10f.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_log2.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_log2f.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_logf.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_pow.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_powf.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_rem_pio2.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_rem_pio2f.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_remainder.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_remainderf.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_remainderl.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_scalb.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_scalbf.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_sinh.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_sinhf.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_sqrt.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_sqrtf.c [new file with mode: 0644]
contrib/openbsd_libm/src/e_sqrtl.c [new file with mode: 0644]
contrib/openbsd_libm/src/k_cos.c [new file with mode: 0644]
contrib/openbsd_libm/src/k_cosf.c [new file with mode: 0644]
contrib/openbsd_libm/src/k_rem_pio2.c [new file with mode: 0644]
contrib/openbsd_libm/src/k_rem_pio2f.c [new file with mode: 0644]
contrib/openbsd_libm/src/k_sin.c [new file with mode: 0644]
contrib/openbsd_libm/src/k_sinf.c [new file with mode: 0644]
contrib/openbsd_libm/src/k_tan.c [new file with mode: 0644]
contrib/openbsd_libm/src/k_tanf.c [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/e_acoshl.c [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/e_atanhl.c [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/e_coshl.c [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/e_expl.c [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/e_fmodl.c [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/e_hypotl.c [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/e_lgammal.c [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/e_log10l.c [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/e_log2l.c [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/e_logl.c [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/e_powl.c [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/e_sinhl.c [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/e_tgammal.c [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/invtrig.c [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/invtrig.h [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/k_cosl.c [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/k_sinl.c [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/k_tanl.c [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/s_asinhl.c [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/s_cbrtl.c [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/s_ceill.c [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/s_erfl.c [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/s_exp2l.c [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/s_expm1l.c [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/s_floorl.c [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/s_log1pl.c [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/s_modfl.c [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/s_nanl.c [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/s_nextafterl.c [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/s_nexttoward.c [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/s_nexttowardf.c [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/s_remquol.c [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/s_tanhl.c [new file with mode: 0644]
contrib/openbsd_libm/src/ld80/s_truncl.c [new file with mode: 0644]
contrib/openbsd_libm/src/math_private.h [new file with mode: 0644]
contrib/openbsd_libm/src/polevll.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_asinh.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_asinhf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_atan.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_atanf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_atanl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_cabs.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_cabsf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_cabsl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_cacos.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_cacosf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_cacosh.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_cacoshf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_cacoshl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_cacosl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_carg.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_cargf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_cargl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_casin.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_casinf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_casinh.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_casinhf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_casinhl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_casinl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_catan.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_catanf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_catanh.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_catanhf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_catanhl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_catanl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_cbrt.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_cbrtf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_ccos.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_ccosf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_ccosh.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_ccoshf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_ccoshl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_ccosl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_ceil.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_ceilf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_cexp.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_cexpf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_cexpl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_cimag.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_cimagf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_cimagl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_clog.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_clogf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_clogl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_conj.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_conjf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_conjl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_copysign.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_copysignf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_copysignl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_cos.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_cosf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_cosl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_cpow.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_cpowf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_cpowl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_cproj.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_cprojf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_cprojl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_creal.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_crealf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_creall.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_csin.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_csinf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_csinh.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_csinhf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_csinhl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_csinl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_csqrt.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_csqrtf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_csqrtl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_ctan.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_ctanf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_ctanh.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_ctanhf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_ctanhl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_ctanl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_erf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_erff.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_exp2.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_exp2f.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_expm1.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_expm1f.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_fabsf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_fabsl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_fdim.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_floor.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_floorf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_fma.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_fmaf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_fmal.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_fmax.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_fmaxf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_fmaxl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_fmin.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_fminf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_fminl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_frexpf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_frexpl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_ilogb.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_ilogbf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_ilogbl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_llrint.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_llrintf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_llrintl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_llround.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_llroundf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_llroundl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_log1p.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_log1pf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_logb.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_logbf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_logbl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_lrint.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_lrintf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_lrintl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_lround.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_lroundf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_lroundl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_modff.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_nan.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_nearbyint.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_nextafter.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_nextafterf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_nexttowardf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_remquo.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_remquof.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_rint.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_rintf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_rintl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_round.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_roundf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_roundl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_scalbln.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_scalbn.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_scalbnf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_scalbnl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_signgam.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_significand.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_significandf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_sin.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_sinf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_sinl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_tan.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_tanf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_tanh.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_tanhf.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_tanl.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_trunc.c [new file with mode: 0644]
contrib/openbsd_libm/src/s_truncf.c [new file with mode: 0644]
contrib/openbsd_libm/src/w_drem.c [new file with mode: 0644]
contrib/openbsd_libm/src/w_dremf.c [new file with mode: 0644]
contrib/openbsd_libm/src/w_gamma.c [new file with mode: 0644]
contrib/openbsd_libm/src/w_gamma_r.c [new file with mode: 0644]
contrib/openbsd_libm/src/w_gammaf.c [new file with mode: 0644]
contrib/openbsd_libm/src/w_gammaf_r.c [new file with mode: 0644]
contrib/openbsd_libm/src/w_lgamma.c [new file with mode: 0644]
contrib/openbsd_libm/src/w_lgammaf.c [new file with mode: 0644]

diff --git a/contrib/openbsd_libm/Makefile b/contrib/openbsd_libm/Makefile
new file mode 100644 (file)
index 0000000..3303c24
--- /dev/null
@@ -0,0 +1,394 @@
+#  $OpenBSD: Makefile,v 1.107 2014/09/12 22:07:24 kettenis Exp $
+#  $NetBSD: Makefile,v 1.28 1995/11/20 22:06:19 jtc Exp $
+#
+#  @(#)Makefile 5.1beta 93/09/24 
+# 
+#  ====================================================
+#  Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+# 
+#  Developed at SunPro, a Sun Microsystems, Inc. business.
+#  Permission to use, copy, modify, and distribute this
+#  software is freely granted, provided that this notice 
+#  is preserved.
+#  ====================================================
+
+# SUBDIR is only used to install the infnan(3/VAX) manual page.
+SUBDIR = man
+
+.if (${MACHINE_ARCH} == "alpha")
+.PATH: ${.CURDIR}/arch/alpha
+ARCH_SRCS = s_copysign.S s_copysignf.S
+.elif (${MACHINE_ARCH} == "i386")
+.PATH: ${.CURDIR}/arch/i387
+ARCH_SRCS = e_acos.S e_asin.S e_atan2.S e_exp.S e_fmod.S e_log.S e_log10.S \
+           e_remainder.S e_remainderf.S e_scalb.S e_sqrt.S e_sqrtf.S \
+           e_sqrtl.S \
+           invtrig.c \
+           s_atan.S s_atanf.S s_ceil.S s_ceilf.S s_copysign.S s_copysignf.S \
+           s_cos.S s_cosf.S s_floor.S s_floorf.S \
+           s_ilogb.S s_ilogbf.S s_log1p.S s_log1pf.S s_logb.S s_logbf.S \
+           s_llrint.S s_llrintf.S s_lrint.S s_lrintf.S s_rint.S s_rintf.S\
+           s_scalbnf.S s_significand.S s_significandf.S \
+           s_sin.S s_sinf.S s_tan.S s_tanf.S
+.elif (${MACHINE_ARCH} == "amd64")
+.PATH: ${.CURDIR}/arch/amd64
+CPPFLAGS+=-I${.CURDIR}/arch/amd64
+ARCH_SRCS = e_acos.S e_asin.S e_atan2.S e_exp.S e_fmod.S e_log.S e_log10.S \
+           e_remainder.S e_remainderf.S e_scalb.S e_sqrt.S e_sqrtf.S \
+           e_sqrtl.S \
+           invtrig.c \
+           s_atan.S s_atanf.S s_ceil.S s_ceilf.S s_copysign.S s_copysignf.S \
+           s_cos.S s_cosf.S s_floor.S s_floorf.S \
+           s_ilogb.S s_ilogbf.S s_log1p.S s_log1pf.S s_logb.S s_logbf.S \
+           s_llrint.S s_llrintf.S s_lrint.S s_lrintf.S \
+           s_rint.S s_rintf.S s_scalbnf.S s_significand.S \
+           s_significandf.S s_sin.S s_sinf.S s_tan.S s_tanf.S
+.elif (${MACHINE_ARCH} == "hppa")
+.PATH: ${.CURDIR}/arch/hppa
+ARCH_SRCS = e_sqrt.c e_sqrtf.c e_remainder.c e_remainderf.c \
+           s_ceil.c s_ceilf.c s_floor.c s_floorf.c s_rint.c s_rintf.c \
+           s_round.c s_roundf.c s_trunc.c s_truncf.c
+.elif (${MACHINE_ARCH} == "sh")
+.PATH: ${.CURDIR}/arch/sh
+ARCH_SRCS = e_sqrt.c e_sqrtf.c s_fabsf.c
+.elif (${MACHINE_ARCH} == "arm")
+.PATH: ${.CURDIR}/arch/arm
+.elif (${MACHINE_ARCH} == "hppa64")
+.PATH: ${.CURDIR}/arch/hppa64
+.elif (${MACHINE_ARCH} == "m88k")
+.PATH: ${.CURDIR}/arch/m88k
+.elif (${MACHINE_ARCH} == "mips64")
+.PATH: ${.CURDIR}/arch/mips64
+.elif (${MACHINE_ARCH} == "mips64el")
+.PATH: ${.CURDIR}/arch/mips64
+.elif (${MACHINE_ARCH} == "powerpc")
+.PATH: ${.CURDIR}/arch/powerpc
+.elif (${MACHINE_ARCH} == "sparc")
+.PATH: ${.CURDIR}/arch/sparc
+.elif (${MACHINE_ARCH} == "sparc64")
+.PATH: ${.CURDIR}/arch/sparc64
+ARCH_SRCS = e_sqrtl.c
+.elif (${MACHINE_ARCH} == "vax")
+.PATH: ${.CURDIR}/arch/vax
+NOIEEE_ARCH = n_argred.S n_infnan.S n_sqrt.S
+ARCH_SRCS = n_atan2.S n_cbrt.S n_hypot.S n_sincos.S n_support.S n_tan.S
+.endif
+
+.PATH: ${.CURDIR}/man
+.PATH: ${.CURDIR}/src
+.PATH: ${.CURDIR}/noieee_src
+
+LIB=   m
+COMMON_SRCS = b_exp__D.c b_log__D.c b_tgamma.c \
+       e_acos.c e_acosf.c e_acosh.c e_acoshf.c e_asin.c e_asinf.c \
+       e_atan2.c e_atan2f.c e_atanh.c e_atanhf.c e_cosh.c e_coshf.c e_exp.c \
+       e_expf.c e_fmod.c e_fmodf.c e_hypot.c e_hypotf.c e_j0.c e_j0f.c \
+       e_j1.c e_j1f.c e_jn.c e_jnf.c e_lgamma_r.c e_lgammaf_r.c e_log.c \
+       e_log10.c e_log10f.c e_log2.c e_log2f.c e_logf.c e_pow.c e_powf.c \
+       e_rem_pio2.c \
+       e_rem_pio2f.c e_remainder.c e_remainderf.c e_scalb.c e_scalbf.c \
+       e_sinh.c e_sinhf.c e_sqrt.c e_sqrtf.c \
+       fenv.c \
+       k_cos.c k_cosf.c k_rem_pio2.c k_rem_pio2f.c k_sin.c k_sinf.c \
+       k_tan.c k_tanf.c \
+       s_lround.c s_lroundf.c s_llround.c s_llroundf.c \
+       s_asinh.c s_asinhf.c s_atan.c s_atanf.c s_cabsf.c \
+       s_cacosf.c s_cacoshf.c s_cargf.c \
+       s_casinf.c s_casinhf.c s_catanf.c \
+       s_catanhf.c s_cbrt.c s_cbrtf.c s_ccosf.c \
+       s_ccoshf.c s_ceil.c \
+       s_ceilf.c s_cexpf.c s_clogf.c \
+       s_copysign.c s_copysignf.c s_cos.c s_cosf.c s_cpowf.c \
+       s_csinf.c \
+       s_csinhf.c s_csqrtf.c s_ctanf.c \
+       s_ctanhf.c s_erf.c s_erff.c s_exp2.c s_exp2f.c s_expm1.c s_expm1f.c \
+       s_fabsf.c s_fma.c s_fmaf.c \
+       s_floor.c s_floorf.c s_frexpf.c s_ilogb.c s_ilogbf.c \
+       s_log1p.c \
+       s_log1pf.c s_logb.c s_logbf.c s_llrint.c s_llrintf.c s_lrint.c \
+       s_lrintf.c s_modff.c s_nan.c s_nearbyint.c s_nextafter.c \
+       s_nextafterf.c s_nexttowardf.c s_remquo.c s_remquof.c s_rint.c \
+       s_rintf.c \
+       s_scalbn.c s_scalbnf.c s_signgam.c s_significand.c \
+       s_significandf.c \
+       s_sin.c s_sinf.c s_tan.c s_tanf.c s_tanh.c s_tanhf.c s_trunc.c \
+       s_truncf.c w_drem.c w_dremf.c w_gamma.c w_gamma_r.c w_gammaf.c \
+       w_gammaf_r.c w_lgamma.c w_lgammaf.c
+
+LONG_SRCS = e_acoshl.c e_acosl.c e_asinl.c e_atan2l.c e_atanhl.c \
+       e_coshl.c s_cabsl.c s_cacoshl.c s_cacosl.c s_cargl.c \
+       s_casinhl.c s_casinl.c s_catanhl.c s_catanl.c s_ccoshl.c \
+       s_ccosl.c s_cexpl.c s_cimagl.c s_clogl.c s_conjl.c s_cpowl.c \
+       s_cprojl.c s_creall.c s_csinhl.c s_csinl.c s_csqrtl.c \
+       s_ctanhl.c s_ctanl.c e_expl.c e_fmodl.c e_hypotl.c e_lgammal.c \
+       e_log10l.c e_log2l.c e_logl.c e_powl.c e_remainderl.c \
+       e_sinhl.c e_sqrtl.c e_tgammal.c invtrig.c k_cosl.c k_sinl.c \
+       k_tanl.c polevll.c s_asinhl.c s_atanl.c s_cbrtl.c s_ceill.c \
+       s_copysignl.c s_cosl.c s_erfl.c s_exp2l.c s_expm1l.c s_fabsl.c \
+       s_floorl.c s_fmal.c s_fmaxl.c s_fminl.c s_frexpl.c s_ilogbl.c \
+       s_llrintl.c s_llroundl.c s_log1pl.c s_logbl.c s_lrintl.c \
+       s_lroundl.c s_modfl.c s_nanl.c s_nextafterl.c s_nexttoward.c \
+       s_remquol.c s_rintl.c s_roundl.c s_scalbnl.c s_sinl.c \
+       s_tanhl.c s_tanl.c s_truncl.c
+
+# math routines for non-IEEE architectures.
+NOIEEE_SRCS = n_acosh.c n_asincos.c n_asinh.c n_atan.c \
+       n_atanh.c n_cosh.c \
+       n_erf.c n_exp.c n_exp__E.c n_expm1.c n_floor.c \
+       n_fmod.c \
+       n_j0.c n_j1.c n_jn.c n_lgamma.c n_log.c n_log10.c \
+       n_log1p.c n_log__L.c n_nan.c n_pow.c \
+       n_sinh.c n_tanh.c n_tgamma.c n_lrint.c
+# there for reference, they're replaced by an asm version on vax
+NOIEEE_SRCS += n_argred.c n_atan2.c n_cbrt.c n_hypot.c n_infnan.c \
+       n_sincos.c n_sqrt.c n_support.c n_tan.c
+
+# math routines that are completely MI
+PURE_SRCS = s_cabs.c s_cacos.c s_cacosh.c s_carg.c s_casin.c \
+       s_casinh.c s_catan.c s_catanh.c s_ccos.c s_ccosh.c s_cexp.c \
+       s_cimag.c s_cimagf.c s_clog.c s_conj.c s_conjf.c s_cpow.c \
+       s_creal.c s_crealf.c s_csin.c s_csinh.c s_csqrt.c s_ctan.c \
+       s_ctanh.c s_fdim.c s_fmax.c s_fmaxf.c s_fmin.c s_fminf.c \
+       s_cproj.c s_cprojf.c s_round.c s_roundf.c s_scalbln.c 
+
+.if (${MACHINE_ARCH} == "vax")
+SRCS=  ${NOIEEE_SRCS} ${NOIEEE_ARCH} ${PURE_SRCS}
+.else
+SRCS=  ${COMMON_SRCS} ${PURE_SRCS}
+.if (${MACHINE_ARCH} == "amd64") || (${MACHINE_ARCH} == "i386")
+.PATH:         ${.CURDIR}/src/ld80
+CPPFLAGS+=     -I${.CURDIR}/src -I${.CURDIR}/src/ld80
+SRCS+=         ${LONG_SRCS}
+.endif
+.if (${MACHINE_CPU} == "mips64") || (${MACHINE_ARCH} == "sparc64")
+.PATH:         ${.CURDIR}/src/ld128
+CPPFLAGS+=     -I${.CURDIR}/src -I${.CURDIR}/src/ld128
+SRCS+=         ${LONG_SRCS}
+.endif
+.endif
+
+# Substitute common sources with any arch specific sources 
+.for i in ${ARCH_SRCS}
+    SRCS:=${SRCS:S/${i:S/.S/.c/}/$i/}
+.endfor
+
+.if (${MACHINE_ARCH} == "vax")
+.for i in ${NOIEEE_ARCH}
+    SRCS:=${SRCS:S/${i:S/.S/.c/}/$i/}
+.endfor
+.endif
+
+MAN+=  acos.3 acosh.3 asin.3 asinh.3 atan.3 atan2.3 atanh.3 ceil.3 \
+       copysign.3 cos.3 cosh.3 erf.3 exp.3 \
+       fdim.3 feclearexcept.3 feenableexcept.3 fegetenv.3 \
+       fegetround.3 floor.3 fma.3 fmax.3 fmod.3 hypot.3 ilogb.3 j0.3 \
+       lgamma.3 logb.3 lrint.3 lround.3 nan.3 nextafter.3 \
+       remainder.3 rint.3 round.3 scalbn.3 sin.3 sinh.3 sqrt.3 \
+       tan.3 tanh.3 trunc.3
+
+MAN+=  cacos.3 cacosh.3 carg.3 casin.3 casinh.3 catan.3 catanh.3 \
+       ccos.3 ccosh.3 cexp.3 cimag.3 clog.3 conj.3 cpow.3 cproj.3 \
+       creal.3 csin.3 csinh.3 csqrt.3 ctan.3 ctanh.3
+
+MLINKS+=erf.3 erfc.3
+MLINKS+=exp.3 exp2.3
+MLINKS+=exp.3 expm1.3
+MLINKS+=exp.3 log.3
+MLINKS+=exp.3 log10.3
+MLINKS+=exp.3 log1p.3
+MLINKS+=exp.3 log2.3
+MLINKS+=exp.3 pow.3
+MLINKS+=feclearexcept.3 fegetexceptflag.3
+MLINKS+=feclearexcept.3 feraiseexcept.3
+MLINKS+=feclearexcept.3 fesetexceptflag.3
+MLINKS+=feclearexcept.3 fetestexcept.3
+MLINKS+=feenableexcept.3 fedisableexcept.3
+MLINKS+=feenableexcept.3 fegetexcept.3
+MLINKS+=fegetenv.3 feholdexcept.3
+MLINKS+=fegetenv.3 fesetenv.3
+MLINKS+=fegetenv.3 feupdateenv.3
+MLINKS+=fegetround.3 fesetround.3
+MLINKS+=fmax.3 fmin.3
+MLINKS+=hypot.3 cabs.3
+MLINKS+=j0.3 j1.3 j0.3 jn.3 j0.3 y0.3 j0.3 y1.3 j0.3 yn.3
+MLINKS+=lgamma.3 gamma.3 lgamma.3 tgamma.3
+MLINKS+=logb.3 scalb.3
+MLINKS+=logb.3 significand.3
+MLINKS+=lrint.3 llrint.3
+MLINKS+=lround.3 llround.3
+MLINKS+=nextafter.3 nexttoward.3
+MLINKS+=remainder.3 drem.3 remainder.3 remquo.3
+MLINKS+=rint.3 nearbyint.3
+MLINKS+=scalbn.3 scalbln.3
+MLINKS+=sqrt.3 cbrt.3
+
+# float versions
+MLINKS+=acos.3 acosf.3
+MLINKS+=acosh.3 acoshf.3
+MLINKS+=asin.3 asinf.3
+MLINKS+=asinh.3 asinhf.3
+MLINKS+=atan.3 atanf.3
+MLINKS+=atan2.3 atan2f.3
+MLINKS+=atanh.3 atanhf.3
+MLINKS+=ceil.3 ceilf.3
+MLINKS+=copysign.3 copysignf.3
+MLINKS+=cos.3 cosf.3
+MLINKS+=cosh.3 coshf.3
+MLINKS+=erf.3 erfcf.3
+MLINKS+=erf.3 erff.3
+MLINKS+=exp.3 exp2f.3
+MLINKS+=exp.3 expf.3
+MLINKS+=exp.3 expm1f.3
+MLINKS+=exp.3 log10f.3
+MLINKS+=exp.3 log1pf.3
+MLINKS+=exp.3 log2f.3
+MLINKS+=exp.3 logf.3
+MLINKS+=exp.3 powf.3
+MLINKS+=fdim.3 fdimf.3
+MLINKS+=floor.3 floorf.3
+MLINKS+=fma.3 fmaf.3
+MLINKS+=fmax.3 fmaxf.3
+MLINKS+=fmax.3 fminf.3
+MLINKS+=fmod.3 fmodf.3
+MLINKS+=hypot.3 cabsf.3
+MLINKS+=hypot.3 hypotf.3
+MLINKS+=ilogb.3 ilogbf.3
+MLINKS+=j0.3 j0f.3
+MLINKS+=j0.3 j1f.3
+MLINKS+=j0.3 jnf.3
+MLINKS+=j0.3 y0f.3
+MLINKS+=j0.3 y1f.3
+MLINKS+=j0.3 ynf.3
+MLINKS+=lgamma.3 gammaf.3
+MLINKS+=lgamma.3 lgammaf.3
+MLINKS+=lgamma.3 tgammaf.3
+MLINKS+=logb.3 logbf.3
+MLINKS+=logb.3 scalbf.3
+MLINKS+=logb.3 significandf.3
+MLINKS+=lrint.3 llrintf.3
+MLINKS+=lrint.3 lrintf.3
+MLINKS+=lround.3 llroundf.3
+MLINKS+=lround.3 lroundf.3
+MLINKS+=nan.3 nanf.3
+MLINKS+=nearbyint.3 nearbyintf.3
+MLINKS+=nextafter.3 nextafterf.3
+MLINKS+=nexttoward.3 nexttowardf.3
+MLINKS+=remainder.3 dremf.3
+MLINKS+=remainder.3 remainderf.3
+MLINKS+=remainder.3 remquof.3
+MLINKS+=rint.3 rintf.3
+MLINKS+=round.3 roundf.3
+MLINKS+=scalbln.3 scalblnf.3
+MLINKS+=scalbn.3 scalbnf.3
+MLINKS+=sin.3 sinf.3
+MLINKS+=sinh.3 sinhf.3
+MLINKS+=sqrt.3 cbrtf.3
+MLINKS+=sqrt.3 sqrtf.3
+MLINKS+=tan.3 tanf.3
+MLINKS+=tanh.3 tanhf.3
+MLINKS+=trunc.3 truncf.3
+
+# complex float versions
+MLINKS+=cacos.3 cacosf.3
+MLINKS+=cacosh.3 cacoshf.3
+MLINKS+=carg.3 cargf.3
+MLINKS+=casin.3 casinf.3
+MLINKS+=casinh.3 casinhf.3
+MLINKS+=catan.3 catanf.3
+MLINKS+=catanh.3 catanhf.3
+MLINKS+=ccos.3 ccosf.3
+MLINKS+=ccosh.3 ccoshf.3
+MLINKS+=cexp.3 cexpf.3
+MLINKS+=cimag.3 cimagf.3
+MLINKS+=clog.3 clogf.3
+MLINKS+=conj.3 conjf.3
+MLINKS+=cpow.3 cpowf.3
+MLINKS+=cproj.3 cprojf.3
+MLINKS+=creal.3 crealf.3
+MLINKS+=csin.3 csinf.3
+MLINKS+=csinh.3 csinhf.3
+MLINKS+=csqrt.3 csqrtf.3
+MLINKS+=ctan.3 ctanf.3
+MLINKS+=ctanh.3 ctanhf.3
+
+# long double versions
+MLINKS+=acos.3 acosl.3
+MLINKS+=acosh.3 acoshl.3
+MLINKS+=asin.3 asinl.3
+MLINKS+=asinh.3 asinhl.3
+MLINKS+=atan.3 atanl.3
+MLINKS+=atan2.3 atan2l.3
+MLINKS+=atanh.3 atanhl.3
+MLINKS+=ceil.3 ceill.3
+MLINKS+=copysign.3 copysignl.3
+MLINKS+=cos.3 cosl.3
+MLINKS+=cosh.3 coshl.3
+MLINKS+=erf.3 erfcl.3
+MLINKS+=erf.3 erfl.3
+MLINKS+=exp.3 exp2l.3
+MLINKS+=exp.3 expl.3
+MLINKS+=exp.3 expm1l.3
+MLINKS+=exp.3 log10l.3
+MLINKS+=exp.3 log1pl.3
+MLINKS+=exp.3 log2l.3
+MLINKS+=exp.3 logl.3
+MLINKS+=exp.3 powl.3
+MLINKS+=fdim.3 fdiml.3
+MLINKS+=floor.3 floorl.3
+MLINKS+=fma.3 fmal.3
+MLINKS+=fmax.3 fmaxl.3
+MLINKS+=fmax.3 fminl.3
+MLINKS+=fmod.3 fmodl.3
+MLINKS+=hypot.3 cabsl.3
+MLINKS+=hypot.3 hypotl.3
+MLINKS+=ilogb.3 ilogbl.3
+MLINKS+=lgamma.3 lgammal.3
+MLINKS+=lgamma.3 tgammal.3
+MLINKS+=logb.3 logbl.3
+MLINKS+=logb.3 scalbl.3
+MLINKS+=lrint.3 llrintl.3
+MLINKS+=lrint.3 lrintl.3
+MLINKS+=lround.3 llroundl.3
+MLINKS+=lround.3 lroundl.3
+MLINKS+=nan.3 nanl.3
+MLINKS+=nearbyint.3 nearbyintl.3
+MLINKS+=nextafter.3 nextafterl.3
+MLINKS+=nexttoward.3 nexttowardl.3
+MLINKS+=remainder.3 remainderl.3
+MLINKS+=remainder.3 remquol.3
+MLINKS+=rint.3 rintl.3
+MLINKS+=round.3 roundl.3
+MLINKS+=scalbln.3 scalblnl.3
+MLINKS+=scalbn.3 scalbnl.3
+MLINKS+=sin.3 sinl.3
+MLINKS+=sinh.3 sinhl.3
+MLINKS+=sqrt.3 cbrtl.3
+MLINKS+=sqrt.3 sqrtl.3
+MLINKS+=tan.3 tanl.3
+MLINKS+=tanh.3 tanhl.3
+MLINKS+=trunc.3 truncl.3
+
+# complex long double versions
+MLINKS+=cacos.3 cacosl.3
+MLINKS+=cacosh.3 cacoshl.3
+MLINKS+=carg.3 cargl.3
+MLINKS+=casin.3 casinl.3
+MLINKS+=casinh.3 casinhl.3
+MLINKS+=catan.3 catanl.3
+MLINKS+=catanh.3 catanhl.3
+MLINKS+=ccos.3 ccosl.3
+MLINKS+=ccosh.3 ccoshl.3
+MLINKS+=cexp.3 cexpl.3
+MLINKS+=cimag.3 cimagl.3
+MLINKS+=clog.3 clogl.3
+MLINKS+=conj.3 conjl.3
+MLINKS+=cpow.3 cpowl.3
+MLINKS+=cproj.3 cprojl.3
+MLINKS+=creal.3 creall.3
+MLINKS+=csin.3 csinl.3
+MLINKS+=csinh.3 csinhl.3
+MLINKS+=csqrt.3 csqrtl.3
+MLINKS+=ctan.3 ctanl.3
+MLINKS+=ctanh.3 ctanhl.3
+
+.include <bsd.lib.mk>
diff --git a/contrib/openbsd_libm/arch/amd64/abi.h b/contrib/openbsd_libm/arch/amd64/abi.h
new file mode 100644 (file)
index 0000000..53b40f1
--- /dev/null
@@ -0,0 +1,46 @@
+/*     $OpenBSD: abi.h,v 1.4 2010/06/03 16:38:50 deraadt Exp $ */
+/*     $NetBSD: abi.h,v 1.2 2003/09/14 21:26:14 fvdl Exp $     */
+
+/*
+ * Written by Frank van der Linden (fvdl@wasabisystems.com)
+ */
+
+/*
+ * The x86-64 ABI specifies that float, double and long double
+ * arguments are passed in SSE2 (xmm) registers. Unfortunately,
+ * there is no way to push those on to the FP stack, which is
+ * where the fancier instructions get their arguments from.
+ *
+ * Define some prologues and epilogues to store and retrieve
+ * xmm regs to local variables.
+ */
+
+#define ARG_DOUBLE_ONE         -8(%rsp)
+#define ARG_DOUBLE_TWO         -16(%rsp)
+#define ARG_FLOAT_ONE          -4(%rsp)
+#define ARG_FLOAT_TWO          -8(%rsp)
+
+#define XMM_ONE_ARG_DOUBLE_PROLOGUE \
+       movsd   %xmm0, ARG_DOUBLE_ONE
+       
+#define XMM_TWO_ARG_DOUBLE_PROLOGUE \
+       movsd   %xmm0, ARG_DOUBLE_ONE ; \
+       movsd   %xmm1, ARG_DOUBLE_TWO
+
+#define XMM_ONE_ARG_FLOAT_PROLOGUE \
+       movss   %xmm0, ARG_FLOAT_ONE
+
+#define XMM_TWO_ARG_FLOAT_PROLOGUE \
+       movss   %xmm0, ARG_FLOAT_ONE ; \
+       movss   %xmm1, ARG_FLOAT_TWO
+
+#define XMM_DOUBLE_EPILOGUE \
+       fstpl ARG_DOUBLE_ONE ; \
+       movsd ARG_DOUBLE_ONE, %xmm0
+
+#define XMM_FLOAT_EPILOGUE \
+       fstps ARG_FLOAT_ONE ; \
+       movss ARG_FLOAT_ONE, %xmm0
+
+#define FLDL_VAR(x)    fldl x(%rip)
+
diff --git a/contrib/openbsd_libm/arch/amd64/e_acos.S b/contrib/openbsd_libm/arch/amd64/e_acos.S
new file mode 100644 (file)
index 0000000..5b493c2
--- /dev/null
@@ -0,0 +1,23 @@
+/*     $OpenBSD: e_acos.S,v 1.4 2008/09/07 20:36:08 martynas Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+#include "abi.h"
+
+/* acos = atan (sqrt(1 - x^2) / x) */
+ENTRY(acos)
+       XMM_ONE_ARG_DOUBLE_PROLOGUE
+       fldl    ARG_DOUBLE_ONE          /* x */
+       fld     %st(0)
+       fmul    %st(0)                  /* x^2 */
+       fld1                            
+       fsubp                           /* 1 - x^2 */
+       fsqrt                           /* sqrt (1 - x^2) */
+       fxch    %st(1)
+       fpatan
+       XMM_DOUBLE_EPILOGUE
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/e_asin.S b/contrib/openbsd_libm/arch/amd64/e_asin.S
new file mode 100644 (file)
index 0000000..3e337c8
--- /dev/null
@@ -0,0 +1,22 @@
+/*     $OpenBSD: e_asin.S,v 1.3 2008/09/07 20:36:08 martynas Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+#include "abi.h"
+
+/* asin = atan (x / sqrt(1 - x^2)) */
+ENTRY(asin)
+       XMM_ONE_ARG_DOUBLE_PROLOGUE
+       fldl    ARG_DOUBLE_ONE          /* x */
+       fld     %st(0)
+       fmul    %st(0)                  /* x^2 */
+       fld1
+       fsubp                           /* 1 - x^2 */
+       fsqrt                           /* sqrt (1 - x^2) */
+       fpatan
+       XMM_DOUBLE_EPILOGUE
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/e_atan2.S b/contrib/openbsd_libm/arch/amd64/e_atan2.S
new file mode 100644 (file)
index 0000000..ac7c6bb
--- /dev/null
@@ -0,0 +1,17 @@
+/*     $OpenBSD: e_atan2.S,v 1.3 2008/09/07 20:36:08 martynas Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+#include "abi.h"
+
+ENTRY(atan2)
+       XMM_TWO_ARG_DOUBLE_PROLOGUE
+       fldl    ARG_DOUBLE_ONE
+       fldl    ARG_DOUBLE_TWO
+       fpatan
+       XMM_DOUBLE_EPILOGUE
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/e_atan2f.S b/contrib/openbsd_libm/arch/amd64/e_atan2f.S
new file mode 100644 (file)
index 0000000..77bd7cd
--- /dev/null
@@ -0,0 +1,17 @@
+/*     $OpenBSD: e_atan2f.S,v 1.3 2008/09/07 20:36:08 martynas Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+#include "abi.h"
+
+ENTRY(atan2f)
+       XMM_TWO_ARG_FLOAT_PROLOGUE
+       flds    ARG_FLOAT_ONE
+       flds    ARG_FLOAT_TWO
+       fpatan
+       XMM_FLOAT_EPILOGUE
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/e_exp.S b/contrib/openbsd_libm/arch/amd64/e_exp.S
new file mode 100644 (file)
index 0000000..101e3c7
--- /dev/null
@@ -0,0 +1,101 @@
+/*     $OpenBSD: e_exp.S,v 1.5 2008/09/07 20:36:08 martynas Exp $      */
+/*     $NetBSD: e_exp.S,v 1.12 2002/02/27 16:32:46 christos Exp $      */
+
+/*
+ * Copyright (c) 1993,94 Winning Strategies, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *      This product includes software developed by Winning Strategies, Inc.
+ * 4. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * Written by:
+ *     J.T. Conklin (jtc@wimsey.com), Winning Strategies, Inc.
+ */
+
+#include <machine/asm.h>
+
+#include "abi.h"
+
+/* e^x = 2^(x * log2(e)) */
+ENTRY(exp)
+       XMM_ONE_ARG_DOUBLE_PROLOGUE
+       /*
+        * If x is +-Inf, then the subtraction would give Inf-Inf = NaN.
+        * Avoid this.  Also avoid it if x is NaN for convenience.
+        */
+       movl    -4(%rsp),%eax
+       andl    $0x7fffffff,%eax
+       cmpl    $0x7ff00000,%eax
+       jae     x_Inf_or_NaN
+
+       fldl    ARG_DOUBLE_ONE
+
+       /*
+        * Ensure that the rounding mode is to nearest (to give the smallest
+        * possible fraction) and that the precision is as high as possible.
+        * We may as well mask interrupts if we switch the mode.
+        */
+       fstcw   -8(%rsp)
+       movl    -8(%rsp),%eax
+       andl    $0x0300,%eax
+       cmpl    $0x0300,%eax            /* RC == 0 && PC == 3? */
+       je      1f                      /* jump if mode is good */
+       movl    $0x137f,-4(%rsp)
+       fldcw   -4(%rsp)
+1:
+       fldl2e
+       fmulp                           /* x * log2(e) */
+       fst     %st(1)
+       frndint                         /* int(x * log2(e)) */
+       fst     %st(2)
+       fsubrp                          /* fract(x * log2(e)) */
+       f2xm1                           /* 2^(fract(x * log2(e))) - 1 */ 
+       fld1
+       faddp                           /* 2^(fract(x * log2(e))) */
+       fscale                          /* e^x */
+       fstp    %st(1)
+       je      1f
+       fldcw   -8(%rsp)
+1:
+       XMM_DOUBLE_EPILOGUE
+       ret
+
+x_Inf_or_NaN:
+       /*
+        * Return 0 if x is -Inf.  Otherwise just return x, although the
+        * C version would return (x + x) (Real Indefinite) if x is a NaN.
+        */
+       cmpl    $0xfff00000,-4(%rsp)
+       jne     x_not_minus_Inf
+       cmpl    $0,-8(%rsp)
+       jne     x_not_minus_Inf
+       xorpd   %xmm0,%xmm0
+       ret
+
+x_not_minus_Inf:
+       movsd   ARG_DOUBLE_ONE,%xmm0
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/e_fmod.S b/contrib/openbsd_libm/arch/amd64/e_fmod.S
new file mode 100644 (file)
index 0000000..71c8f9c
--- /dev/null
@@ -0,0 +1,22 @@
+/*     $OpenBSD: e_fmod.S,v 1.3 2008/09/07 20:36:08 martynas Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+#include "abi.h"
+
+
+ENTRY(fmod)
+       XMM_TWO_ARG_DOUBLE_PROLOGUE
+       fldl    ARG_DOUBLE_TWO
+       fldl    ARG_DOUBLE_ONE
+1:     fprem
+       fstsw   %ax
+       btw     $10,%ax
+       jc      1b
+       fstp    %st(1)
+       XMM_DOUBLE_EPILOGUE
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/e_log.S b/contrib/openbsd_libm/arch/amd64/e_log.S
new file mode 100644 (file)
index 0000000..e0293b2
--- /dev/null
@@ -0,0 +1,17 @@
+/*     $OpenBSD: e_log.S,v 1.3 2008/09/07 20:36:08 martynas Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+#include "abi.h"
+
+ENTRY(log)
+       XMM_ONE_ARG_DOUBLE_PROLOGUE
+       fldln2
+       fldl    ARG_DOUBLE_ONE
+       fyl2x
+       XMM_DOUBLE_EPILOGUE
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/e_log10.S b/contrib/openbsd_libm/arch/amd64/e_log10.S
new file mode 100644 (file)
index 0000000..d0439b5
--- /dev/null
@@ -0,0 +1,17 @@
+/*     $OpenBSD: e_log10.S,v 1.3 2008/09/07 20:36:08 martynas Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+#include "abi.h"
+
+ENTRY(log10)
+       XMM_ONE_ARG_DOUBLE_PROLOGUE
+       fldlg2
+       fldl    ARG_DOUBLE_ONE
+       fyl2x
+       XMM_DOUBLE_EPILOGUE
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/e_remainder.S b/contrib/openbsd_libm/arch/amd64/e_remainder.S
new file mode 100644 (file)
index 0000000..1971538
--- /dev/null
@@ -0,0 +1,21 @@
+/*     $OpenBSD: e_remainder.S,v 1.3 2008/09/07 20:36:08 martynas Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+#include "abi.h"
+
+ENTRY(remainder)
+       XMM_TWO_ARG_DOUBLE_PROLOGUE
+       fldl    ARG_DOUBLE_TWO
+       fldl    ARG_DOUBLE_ONE
+1:     fprem1
+       fstsw   %ax
+       btw     $10,%ax
+       jc      1b
+       fstp    %st(1)
+       XMM_DOUBLE_EPILOGUE
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/e_remainderf.S b/contrib/openbsd_libm/arch/amd64/e_remainderf.S
new file mode 100644 (file)
index 0000000..c739332
--- /dev/null
@@ -0,0 +1,21 @@
+/*     $OpenBSD: e_remainderf.S,v 1.3 2008/09/07 20:36:08 martynas Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+#include "abi.h"
+
+ENTRY(remainderf)
+       XMM_TWO_ARG_FLOAT_PROLOGUE
+       flds    ARG_FLOAT_TWO
+       flds    ARG_FLOAT_ONE
+1:     fprem1
+       fstsw   %ax
+       btw     $10,%ax
+       jc      1b
+       fstp    %st(1)
+       XMM_FLOAT_EPILOGUE
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/e_scalb.S b/contrib/openbsd_libm/arch/amd64/e_scalb.S
new file mode 100644 (file)
index 0000000..ac55499
--- /dev/null
@@ -0,0 +1,18 @@
+/*     $OpenBSD: e_scalb.S,v 1.3 2008/09/07 20:36:08 martynas Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+#include "abi.h"
+
+ENTRY(scalb)
+       XMM_TWO_ARG_DOUBLE_PROLOGUE
+       fldl    ARG_DOUBLE_TWO
+       fldl    ARG_DOUBLE_ONE
+       fscale
+       fstp    %st(1)                  /* bug fix for fp stack overflow */
+       XMM_DOUBLE_EPILOGUE
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/e_sqrt.S b/contrib/openbsd_libm/arch/amd64/e_sqrt.S
new file mode 100644 (file)
index 0000000..5b01486
--- /dev/null
@@ -0,0 +1,11 @@
+/*     $OpenBSD: e_sqrt.S,v 1.4 2009/04/08 22:30:41 martynas Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+ENTRY(sqrt)
+       sqrtsd  %xmm0,%xmm0
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/e_sqrtf.S b/contrib/openbsd_libm/arch/amd64/e_sqrtf.S
new file mode 100644 (file)
index 0000000..50fd81b
--- /dev/null
@@ -0,0 +1,11 @@
+/*     $OpenBSD: e_sqrtf.S,v 1.4 2009/04/08 22:30:41 martynas Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+ENTRY(sqrtf)
+       sqrtss  %xmm0,%xmm0
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/e_sqrtl.S b/contrib/openbsd_libm/arch/amd64/e_sqrtl.S
new file mode 100644 (file)
index 0000000..37bc91c
--- /dev/null
@@ -0,0 +1,12 @@
+/*     $OpenBSD: e_sqrtl.S,v 1.1 2009/11/06 23:30:21 kettenis Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@netbsd.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+ENTRY(sqrtl)
+       fldt    8(%rsp)
+       fsqrt
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/fenv.c b/contrib/openbsd_libm/arch/amd64/fenv.c
new file mode 100644 (file)
index 0000000..708259d
--- /dev/null
@@ -0,0 +1,408 @@
+/*     $OpenBSD: fenv.c,v 1.4 2014/04/18 15:09:52 guenther Exp $       */
+/*     $NetBSD: fenv.c,v 1.1 2010/07/31 21:47:53 joerg Exp $   */
+
+/*-
+ * Copyright (c) 2004-2005 David Schultz <das (at) FreeBSD.ORG>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <fenv.h>
+#include <machine/fpu.h>
+
+/*
+ * The following constant represents the default floating-point environment
+ * (that is, the one installed at program startup) and has type pointer to
+ * const-qualified fenv_t.
+ *
+ * It can be used as an argument to the functions within the <fenv.h> header
+ * that manage the floating-point environment, namely fesetenv() and
+ * feupdateenv().
+ *
+ * x87 fpu registers are 16bit wide. The upper bits, 31-16, are marked as
+ * RESERVED.
+ */
+fenv_t __fe_dfl_env = {
+       {
+               0xffff0000 | __INITIAL_NPXCW__, /* Control word register */
+               0xffff0000,                     /* Status word register */
+               0xffffffff,                     /* Tag word register */
+               {
+                       0x00000000,
+                       0x00000000,
+                       0x00000000,
+                       0xffff0000
+               }
+       },
+       __INITIAL_MXCSR__                       /* MXCSR register */
+};
+
+
+/*
+ * The feclearexcept() function clears the supported floating-point exceptions
+ * represented by `excepts'.
+ */
+int
+feclearexcept(int excepts)
+{
+       fenv_t fenv;
+       unsigned int mxcsr;
+
+       excepts &= FE_ALL_EXCEPT;
+
+       /* Store the current x87 floating-point environment */
+       __asm__ volatile ("fnstenv %0" : "=m" (fenv));
+
+       /* Clear the requested floating-point exceptions */
+       fenv.__x87.__status &= ~excepts;
+
+       /* Load the x87 floating-point environent */
+       __asm__ volatile ("fldenv %0" : : "m" (fenv));
+
+       /* Same for SSE environment */
+       __asm__ volatile ("stmxcsr %0" : "=m" (mxcsr));
+       mxcsr &= ~excepts;
+       __asm__ volatile ("ldmxcsr %0" : : "m" (mxcsr));
+
+       return (0);
+}
+
+/*
+ * The fegetexceptflag() function stores an implementation-defined
+ * representation of the states of the floating-point status flags indicated by
+ * the argument excepts in the object pointed to by the argument flagp.
+ */
+int
+fegetexceptflag(fexcept_t *flagp, int excepts)
+{
+       unsigned short status;
+       unsigned int mxcsr;
+
+       excepts &= FE_ALL_EXCEPT;
+
+       /* Store the current x87 status register */
+       __asm__ volatile ("fnstsw %0" : "=am" (status));
+
+       /* Store the MXCSR register */
+       __asm__ volatile ("stmxcsr %0" : "=m" (mxcsr));
+
+       /* Store the results in flagp */
+       *flagp = (status | mxcsr) & excepts;
+
+       return (0);
+}
+
+/*
+ * The feraiseexcept() function raises the supported floating-point exceptions
+ * represented by the argument `excepts'.
+ *
+ * The standard explicitly allows us to execute an instruction that has the
+ * exception as a side effect, but we choose to manipulate the status register
+ * directly.
+ *
+ * The validation of input is being deferred to fesetexceptflag().
+ */
+int
+feraiseexcept(int excepts)
+{
+       excepts &= FE_ALL_EXCEPT;
+
+       fesetexceptflag((fexcept_t *)&excepts, excepts);
+       __asm__ volatile ("fwait");
+
+       return (0);
+}
+
+/*
+ * This function sets the floating-point status flags indicated by the argument
+ * `excepts' to the states stored in the object pointed to by `flagp'. It does
+ * NOT raise any floating-point exceptions, but only sets the state of the flags.
+ */
+int
+fesetexceptflag(const fexcept_t *flagp, int excepts)
+{
+       fenv_t fenv;
+       unsigned int mxcsr;
+
+       excepts &= FE_ALL_EXCEPT;
+
+       /* Store the current x87 floating-point environment */
+       __asm__ volatile ("fnstenv %0" : "=m" (fenv));
+
+       /* Set the requested status flags */
+       fenv.__x87.__status &= ~excepts;
+       fenv.__x87.__status |= *flagp & excepts;
+
+       /* Load the x87 floating-point environent */
+       __asm__ volatile ("fldenv %0" : : "m" (fenv));
+
+       /* Same for SSE environment */
+       __asm__ volatile ("stmxcsr %0" : "=m" (mxcsr));
+       mxcsr &= ~excepts;
+       mxcsr |= *flagp & excepts;
+       __asm__ volatile ("ldmxcsr %0" : : "m" (mxcsr));
+
+       return (0);
+}
+
+/*
+ * The fetestexcept() function determines which of a specified subset of the
+ * floating-point exception flags are currently set. The `excepts' argument
+ * specifies the floating-point status flags to be queried.
+ */
+int
+fetestexcept(int excepts)
+{
+       unsigned short status;
+       unsigned int mxcsr;
+
+       excepts &= FE_ALL_EXCEPT;
+
+       /* Store the current x87 status register */
+       __asm__ volatile ("fnstsw %0" : "=am" (status));
+
+       /* Store the MXCSR register state */
+       __asm__ volatile ("stmxcsr %0" : "=m" (mxcsr));
+
+       return ((status | mxcsr) & excepts);
+}
+
+/*
+ * The fegetround() function gets the current rounding direction.
+ */
+int
+fegetround(void)
+{
+       unsigned short control;
+
+       /*
+        * We assume that the x87 and the SSE unit agree on the
+        * rounding mode.  Reading the control word on the x87 turns
+        * out to be about 5 times faster than reading it on the SSE
+        * unit on an Opteron 244.
+        */
+       __asm__ volatile ("fnstcw %0" : "=m" (control));
+
+       return (control & _X87_ROUND_MASK);
+}
+
+/*
+ * The fesetround() function establishes the rounding direction represented by
+ * its argument `round'. If the argument is not equal to the value of a rounding
+ * direction macro, the rounding direction is not changed.
+ */
+int
+fesetround(int round)
+{
+       unsigned short control;
+       unsigned int mxcsr;
+
+       /* Check whether requested rounding direction is supported */
+       if (round & ~_X87_ROUND_MASK)
+               return (-1);
+
+       /* Store the current x87 control word register */
+       __asm__ volatile ("fnstcw %0" : "=m" (control));
+
+       /* Set the rounding direction */
+       control &= ~_X87_ROUND_MASK;
+       control |= round;
+
+       /* Load the x87 control word register */
+       __asm__ volatile ("fldcw %0" : : "m" (control));
+
+       /* Same for the SSE environment */
+       __asm__ volatile ("stmxcsr %0" : "=m" (mxcsr));
+       mxcsr &= ~(_X87_ROUND_MASK << _SSE_ROUND_SHIFT);
+       mxcsr |= round << _SSE_ROUND_SHIFT;
+       __asm__ volatile ("ldmxcsr %0" : : "m" (mxcsr));
+
+       return (0);
+}
+
+/*
+ * The fegetenv() function attempts to store the current floating-point
+ * environment in the object pointed to by envp.
+ */
+int
+fegetenv(fenv_t *envp)
+{
+       /* Store the current x87 floating-point environment */
+       __asm__ volatile ("fnstenv %0" : "=m" (*envp));
+
+       /* Store the MXCSR register state */
+       __asm__ volatile ("stmxcsr %0" : "=m" (envp->__mxcsr));
+
+       /*
+        * When an FNSTENV instruction is executed, all pending exceptions are
+        * essentially lost (either the x87 FPU status register is cleared or
+        * all exceptions are masked).
+        *
+        * 8.6 X87 FPU EXCEPTION SYNCHRONIZATION -
+        * Intel(R) 64 and IA-32 Architectures Softare Developer's Manual - Vol1
+        */
+       __asm__ volatile ("fldcw %0" : : "m" (envp->__x87.__control));
+
+       return (0);
+}
+
+/*
+ * The feholdexcept() function saves the current floating-point environment
+ * in the object pointed to by envp, clears the floating-point status flags, and
+ * then installs a non-stop (continue on floating-point exceptions) mode, if
+ * available, for all floating-point exceptions.
+ */
+int
+feholdexcept(fenv_t *envp)
+{
+       unsigned int mxcsr;
+
+       /* Store the current x87 floating-point environment */
+       __asm__ volatile ("fnstenv %0" : "=m" (*envp));
+
+       /* Clear all exception flags in FPU */
+       __asm__ volatile ("fnclex");
+
+       /* Store the MXCSR register state */
+       __asm__ volatile ("stmxcsr %0" : "=m" (envp->__mxcsr));
+
+       /* Clear exception flags in MXCSR */
+       mxcsr = envp->__mxcsr;
+       mxcsr &= ~FE_ALL_EXCEPT;
+
+       /* Mask all exceptions */
+       mxcsr |= FE_ALL_EXCEPT << _SSE_MASK_SHIFT;
+
+       /* Store the MXCSR register */
+       __asm__ volatile ("ldmxcsr %0" : : "m" (mxcsr));
+
+       return (0);
+}
+
+/*
+ * The fesetenv() function attempts to establish the floating-point environment
+ * represented by the object pointed to by envp. The argument `envp' points
+ * to an object set by a call to fegetenv() or feholdexcept(), or equal a
+ * floating-point environment macro. The fesetenv() function does not raise
+ * floating-point exceptions, but only installs the state of the floating-point
+ * status flags represented through its argument.
+ */
+int
+fesetenv(const fenv_t *envp)
+{
+       /* Load the x87 floating-point environent */
+       __asm__ volatile ("fldenv %0" : : "m" (*envp));
+
+       /* Store the MXCSR register */
+       __asm__ volatile ("ldmxcsr %0" : : "m" (envp->__mxcsr));
+
+       return (0);
+}
+
+/*
+ * The feupdateenv() function saves the currently raised floating-point
+ * exceptions in its automatic storage, installs the floating-point environment
+ * represented by the object pointed to by `envp', and then raises the saved
+ * floating-point exceptions. The argument `envp' shall point to an object set
+ * by a call to feholdexcept() or fegetenv(), or equal a floating-point
+ * environment macro.
+ */
+int
+feupdateenv(const fenv_t *envp)
+{
+       unsigned short status;
+       unsigned int mxcsr;
+
+       /* Store the x87 status register */
+       __asm__ volatile ("fnstsw %0" : "=am" (status));
+
+       /* Store the MXCSR register */
+       __asm__ volatile ("stmxcsr %0" : "=m" (mxcsr));
+
+       /* Install new floating-point environment */
+       fesetenv(envp);
+
+       /* Raise any previously accumulated exceptions */
+       feraiseexcept(status | mxcsr);
+
+       return (0);
+}
+
+/*
+ * The following functions are extentions to the standard
+ */
+int
+feenableexcept(int mask)
+{
+       unsigned int mxcsr, omask;
+       unsigned short control;
+
+       mask &= FE_ALL_EXCEPT;
+
+       __asm__ volatile ("fnstcw %0" : "=m" (control));
+       __asm__ volatile ("stmxcsr %0" : "=m" (mxcsr));
+
+       omask = ~(control | (mxcsr >> _SSE_MASK_SHIFT)) & FE_ALL_EXCEPT;
+       control &= ~mask;
+       __asm__ volatile ("fldcw %0" : : "m" (control));
+
+       mxcsr &= ~(mask << _SSE_MASK_SHIFT);
+       __asm__ volatile ("ldmxcsr %0" : : "m" (mxcsr));
+
+       return (omask);
+}
+
+int
+fedisableexcept(int mask)
+{
+       unsigned int mxcsr, omask;
+       unsigned short control;
+
+       mask &= FE_ALL_EXCEPT;
+
+       __asm__ volatile ("fnstcw %0" : "=m" (control));
+       __asm__ volatile ("stmxcsr %0" : "=m" (mxcsr));
+
+       omask = ~(control | (mxcsr >> _SSE_MASK_SHIFT)) & FE_ALL_EXCEPT;
+       control |= mask;
+       __asm__ volatile ("fldcw %0" : : "m" (control));
+
+       mxcsr |= mask << _SSE_MASK_SHIFT;
+       __asm__ volatile ("ldmxcsr %0" : : "m" (mxcsr));
+
+       return (omask);
+}
+
+int
+fegetexcept(void)
+{
+       unsigned short control;
+
+       /*
+        * We assume that the masks for the x87 and the SSE unit are
+        * the same.
+        */
+       __asm__ volatile ("fnstcw %0" : "=m" (control));
+
+       return (~control & FE_ALL_EXCEPT);
+}
diff --git a/contrib/openbsd_libm/arch/amd64/invtrig.c b/contrib/openbsd_libm/arch/amd64/invtrig.c
new file mode 100644 (file)
index 0000000..7e9a553
--- /dev/null
@@ -0,0 +1,84 @@
+/*     $OpenBSD: invtrig.c,v 1.3 2013/01/13 03:44:59 martynas Exp $    */
+/*-
+ * Copyright (c) 2008 David Schultz <das@FreeBSD.ORG>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <stdint.h>
+
+#define STRUCT_DECLS
+#include "invtrig.h"
+
+/*
+ * asinl() and acosl()
+ */
+const LONGDOUBLE
+pS0 = { 0xaaaaaaaaaaaaaaa8ULL, 0x3ffcU }, /*  1.66666666666666666631e-01L */
+pS1 = { 0xd5271b6699b48bfaULL, 0xbffdU }, /* -4.16313987993683104320e-01L */
+pS2 = { 0xbcf67ca9e9f669cfULL, 0x3ffdU }, /*  3.69068046323246813704e-01L */
+pS3 = { 0x8b7baa3d15f9830dULL, 0xbffcU }, /* -1.36213932016738603108e-01L */
+pS4 = { 0x92154b093a3bff1cULL, 0x3ff9U }, /*  1.78324189708471965733e-02L */
+pS5 = { 0xe5dd76401964508cULL, 0xbff2U }, /* -2.19216428382605211588e-04L */
+pS6 = { 0xee69c5b0fdb76951ULL, 0xbfedU }, /* -7.10526623669075243183e-06L */
+qS1 = { 0xbcaa2159c01436a0ULL, 0xc000U }, /* -2.94788392796209867269e+00L */
+qS2 = { 0xd17a73d1e1564c29ULL, 0x4000U }, /*  3.27309890266528636716e+00L */
+qS3 = { 0xd767e411c9cf4c2cULL, 0xbfffU }, /* -1.68285799854822427013e+00L */
+qS4 = { 0xc809c0dfb9b0d0b7ULL, 0x3ffdU }, /*  3.90699412641738801874e-01L */
+qS5 = { 0x80c3a2197c8ced57ULL, 0xbffaU }; /* -3.14365703596053263322e-02L */
+
+/*
+ * atanl()
+ */
+const LONGDOUBLE atanhi[] = {
+       { 0xed63382b0dda7b45ULL, 0x3ffdU }, /*  4.63647609000806116202e-01L */
+       { 0xc90fdaa22168c235ULL, 0x3ffeU }, /*  7.85398163397448309628e-01L */
+       { 0xfb985e940fb4d900ULL, 0x3ffeU }, /*  9.82793723247329067960e-01L */
+       { 0xc90fdaa22168c235ULL, 0x3fffU }, /*  1.57079632679489661926e+00L */
+};
+
+const LONGDOUBLE atanlo[] = {
+       { 0xdfc88bd978751a07ULL, 0x3fbcU }, /*  1.18469937025062860669e-20L */
+       { 0xece675d1fc8f8cbbULL, 0xbfbcU }, /* -1.25413940316708300586e-20L */
+       { 0xf10f5e197793c283ULL, 0x3fbdU }, /*  2.55232234165405176172e-20L */
+       { 0xece675d1fc8f8cbbULL, 0xbfbdU }, /* -2.50827880633416601173e-20L */
+};
+
+const LONGDOUBLE aT[] = {
+       { 0xaaaaaaaaaaaaaa9fULL, 0x3ffdU }, /*  3.33333333333333333017e-01L */
+       { 0xcccccccccccc62bcULL, 0xbffcU }, /* -1.99999999999999632011e-01L */
+       { 0x9249249248b81e3fULL, 0x3ffcU }, /*  1.42857142857046531280e-01L */
+       { 0xe38e38e3316f3de5ULL, 0xbffbU }, /* -1.11111111100562372733e-01L */
+       { 0xba2e8b8dc280726aULL, 0x3ffbU }, /*  9.09090902935647302252e-02L */
+       { 0x9d89d5b4c6847ec4ULL, 0xbffbU }, /* -7.69230552476207730353e-02L */
+       { 0x8888461d3099c677ULL, 0x3ffbU }, /*  6.66661718042406260546e-02L */
+       { 0xf0e8ee0f5328dc29ULL, 0xbffaU }, /* -5.88158892835030888692e-02L */
+       { 0xd73ea84d24bae54aULL, 0x3ffaU }, /*  5.25499891539726639379e-02L */
+       { 0xc08fa381dcd9213aULL, 0xbffaU }, /* -4.70119845393155721494e-02L */
+       { 0xa54a26f4095f2a3aULL, 0x3ffaU }, /*  4.03539201366454414072e-02L */
+       { 0xeea2d8d059ef3ad6ULL, 0xbff9U }, /* -2.91303858419364158725e-02L */
+       { 0xcc82292ab894b051ULL, 0x3ff8U }, /*  1.24822046299269234080e-02L */
+};
+
+const LONGDOUBLE
+pi_lo = { 0xece675d1fc8f8cbbULL, 0xbfbeU }; /* -5.01655761266833202345e-20L */
diff --git a/contrib/openbsd_libm/arch/amd64/s_atan.S b/contrib/openbsd_libm/arch/amd64/s_atan.S
new file mode 100644 (file)
index 0000000..5b66329
--- /dev/null
@@ -0,0 +1,17 @@
+/*     $OpenBSD: s_atan.S,v 1.2 2005/08/02 11:17:31 espie Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+#include "abi.h"
+
+ENTRY(atan)
+       XMM_ONE_ARG_DOUBLE_PROLOGUE
+       fldl    ARG_DOUBLE_ONE
+       fld1
+       fpatan
+       XMM_DOUBLE_EPILOGUE
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/s_atanf.S b/contrib/openbsd_libm/arch/amd64/s_atanf.S
new file mode 100644 (file)
index 0000000..5b5dcce
--- /dev/null
@@ -0,0 +1,17 @@
+/*     $OpenBSD: s_atanf.S,v 1.2 2005/08/02 11:17:31 espie Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+#include "abi.h"
+
+ENTRY(atanf)
+       XMM_ONE_ARG_FLOAT_PROLOGUE
+       flds    ARG_FLOAT_ONE
+       fld1
+       fpatan
+       XMM_FLOAT_EPILOGUE
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/s_ceil.S b/contrib/openbsd_libm/arch/amd64/s_ceil.S
new file mode 100644 (file)
index 0000000..0208581
--- /dev/null
@@ -0,0 +1,24 @@
+/*     $OpenBSD: s_ceil.S,v 1.3 2009/04/08 22:30:41 martynas Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+#include "abi.h"
+
+ENTRY(ceil)
+       fstcw   -12(%rsp)
+       movw    -12(%rsp),%dx
+       orw     $0x0800,%dx
+       andw    $0xfbff,%dx
+       movw    %dx,-16(%rsp)
+       fldcw   -16(%rsp)
+       movsd   %xmm0,-8(%rsp)
+       fldl    -8(%rsp)
+       frndint
+       fldcw   -12(%rsp)
+       fstpl   -8(%rsp)
+       movsd   -8(%rsp),%xmm0
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/s_ceilf.S b/contrib/openbsd_libm/arch/amd64/s_ceilf.S
new file mode 100644 (file)
index 0000000..a02291e
--- /dev/null
@@ -0,0 +1,22 @@
+/*     $OpenBSD: s_ceilf.S,v 1.4 2009/04/08 22:30:41 martynas Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+ENTRY(ceilf)
+       fstcw   -8(%rsp)
+       movw    -8(%rsp),%dx
+       orw     $0x0800,%dx
+       andw    $0xfbff,%dx
+       movw    %dx,-12(%rsp)
+       fldcw   -12(%rsp)
+       movss   %xmm0,-4(%rsp)
+       flds    -4(%rsp)
+       frndint
+       fldcw   -8(%rsp)
+       fstps   -4(%rsp)
+       movss   -4(%rsp),%xmm0
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/s_copysign.S b/contrib/openbsd_libm/arch/amd64/s_copysign.S
new file mode 100644 (file)
index 0000000..7f8c98c
--- /dev/null
@@ -0,0 +1,20 @@
+/*     $OpenBSD: s_copysign.S,v 1.4 2011/07/09 18:00:53 martynas Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+.Lpos:
+       .quad   0x8000000000000000
+.Lneg:
+       .quad   0x7fffffffffffffff
+
+ENTRY(copysign)
+       movq    .Lpos(%rip),%xmm2
+       movq    .Lneg(%rip),%xmm3
+       pand    %xmm2,%xmm1
+       pand    %xmm3,%xmm0
+       por     %xmm1,%xmm0
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/s_copysignf.S b/contrib/openbsd_libm/arch/amd64/s_copysignf.S
new file mode 100644 (file)
index 0000000..618203b
--- /dev/null
@@ -0,0 +1,20 @@
+/*     $OpenBSD: s_copysignf.S,v 1.4 2011/07/09 18:00:53 martynas Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+.Lneg:
+       .long 0x7fffffff
+.Lpos:
+       .long 0x80000000
+
+ENTRY(copysignf)
+       movss    .Lpos(%rip),%xmm2
+       movss    .Lneg(%rip),%xmm3
+       pand    %xmm2,%xmm1
+       pand    %xmm3,%xmm0
+       por     %xmm1,%xmm0
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/s_cos.S b/contrib/openbsd_libm/arch/amd64/s_cos.S
new file mode 100644 (file)
index 0000000..c9d191d
--- /dev/null
@@ -0,0 +1,30 @@
+/*     $OpenBSD: s_cos.S,v 1.2 2005/08/02 11:17:31 espie Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+#include "abi.h"
+
+ENTRY(cos)
+       XMM_ONE_ARG_DOUBLE_PROLOGUE
+       fldl    ARG_DOUBLE_ONE
+       fcos
+       fnstsw  %ax
+       andw    $0x400,%ax
+       jnz     1f
+       XMM_DOUBLE_EPILOGUE
+       ret     
+1:     fldpi
+       fadd    %st(0)
+       fxch    %st(1)
+2:     fprem1
+       fnstsw  %ax
+       andw    $0x400,%ax
+       jnz     2b
+       fstp    %st(1)
+       fcos
+       XMM_DOUBLE_EPILOGUE
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/s_cosf.S b/contrib/openbsd_libm/arch/amd64/s_cosf.S
new file mode 100644 (file)
index 0000000..55c8307
--- /dev/null
@@ -0,0 +1,17 @@
+/*     $OpenBSD: s_cosf.S,v 1.2 2005/08/02 11:17:31 espie Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+#include "abi.h"
+
+/* A float's domain isn't large enough to require argument reduction. */
+ENTRY(cosf)
+       XMM_ONE_ARG_FLOAT_PROLOGUE
+       flds    ARG_FLOAT_ONE
+       fcos
+       XMM_FLOAT_EPILOGUE
+       ret     
diff --git a/contrib/openbsd_libm/arch/amd64/s_floor.S b/contrib/openbsd_libm/arch/amd64/s_floor.S
new file mode 100644 (file)
index 0000000..aa611f7
--- /dev/null
@@ -0,0 +1,22 @@
+/*     $OpenBSD: s_floor.S,v 1.3 2009/04/08 22:30:41 martynas Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+ENTRY(floor)
+       movsd   %xmm0, -8(%rsp)
+       fstcw   -12(%rsp)
+       movw    -12(%rsp),%dx
+       orw     $0x0400,%dx
+       andw    $0xf7ff,%dx
+       movw    %dx,-16(%rsp)
+       fldcw   -16(%rsp)
+       fldl    -8(%rsp)
+       frndint
+       fldcw   -12(%rsp)
+       fstpl   -8(%rsp)
+       movsd   -8(%rsp),%xmm0
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/s_floorf.S b/contrib/openbsd_libm/arch/amd64/s_floorf.S
new file mode 100644 (file)
index 0000000..66bef66
--- /dev/null
@@ -0,0 +1,22 @@
+/*     $OpenBSD: s_floorf.S,v 1.4 2009/04/08 22:30:41 martynas Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+ENTRY(floorf)
+       movss   %xmm0, -4(%rsp)
+       fstcw   -8(%rsp)
+       movw    -8(%rsp),%dx
+       orw     $0x0400,%dx
+       andw    $0xf7ff,%dx  
+       movw    %dx,-12(%rsp)
+       fldcw   -12(%rsp)
+       flds    -4(%rsp)
+       frndint
+       fldcw   -8(%rsp)
+       fstps   -4(%rsp)
+       movss   -4(%rsp),%xmm0
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/s_ilogb.S b/contrib/openbsd_libm/arch/amd64/s_ilogb.S
new file mode 100644 (file)
index 0000000..e8a512e
--- /dev/null
@@ -0,0 +1,16 @@
+/*     $OpenBSD: s_ilogb.S,v 1.3 2009/04/08 22:30:41 martynas Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+ENTRY(ilogb)
+       movsd   %xmm0,-8(%rsp)
+       fldl    -8(%rsp)
+       fxtract
+       fstp    %st
+       fistpl  -8(%rsp)
+       movl    -8(%rsp),%eax
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/s_ilogbf.S b/contrib/openbsd_libm/arch/amd64/s_ilogbf.S
new file mode 100644 (file)
index 0000000..be08095
--- /dev/null
@@ -0,0 +1,16 @@
+/*     $OpenBSD: s_ilogbf.S,v 1.3 2009/04/08 22:30:41 martynas Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+ENTRY(ilogbf)
+       movss   %xmm0,-4(%rsp)
+       flds    -4(%rsp)
+       fxtract
+       fstp    %st
+       fistpl  -4(%rsp)
+       movl    -4(%rsp),%eax
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/s_llrint.S b/contrib/openbsd_libm/arch/amd64/s_llrint.S
new file mode 100644 (file)
index 0000000..aeb1347
--- /dev/null
@@ -0,0 +1,12 @@
+/*     $OpenBSD: s_llrint.S,v 1.1 2009/04/10 11:30:33 martynas Exp $   */
+
+/*
+ * Written by Martynas Venckus.  Public domain
+ */
+
+#include <machine/asm.h>
+
+ENTRY(llrint)
+       cvtsd2si %xmm0, %rax
+       ret
+
diff --git a/contrib/openbsd_libm/arch/amd64/s_llrintf.S b/contrib/openbsd_libm/arch/amd64/s_llrintf.S
new file mode 100644 (file)
index 0000000..6d06da4
--- /dev/null
@@ -0,0 +1,12 @@
+/*     $OpenBSD: s_llrintf.S,v 1.1 2009/04/10 11:30:33 martynas Exp $  */
+
+/*
+ * Written by Martynas Venckus.  Public domain
+ */
+
+#include <machine/asm.h>
+
+ENTRY(llrintf)
+       cvtss2si %xmm0, %rax
+       ret
+
diff --git a/contrib/openbsd_libm/arch/amd64/s_log1p.S b/contrib/openbsd_libm/arch/amd64/s_log1p.S
new file mode 100644 (file)
index 0000000..6fa75bd
--- /dev/null
@@ -0,0 +1,75 @@
+/*     $OpenBSD: s_log1p.S,v 1.3 2009/04/08 23:31:34 martynas Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+/*
+ * Modified by Lex Wennmacher <wennmach@NetBSD.org>
+ * Still public domain.
+ */
+
+#include <machine/asm.h>
+
+#include "abi.h"
+
+/*
+ * 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, the range of this
+ * instruction is limited to:
+ *             -(1 - (sqrt(2) / 2)) <= x <= sqrt(2) - 1
+ *                         -0.292893 <= x <= 0.414214
+ * at least on older processor versions.
+ *
+ * log1p() is implemented by testing the range of the argument.
+ * If it is appropriate for fyl2xp1, this instruction is used.
+ * Else, we compute log1p(x) = ln(2)*ld(1 + x) the traditional way
+ * (using fyl2x).
+ *
+ * The range testing costs speed, but as the rationale for the very
+ * existence of this function is accuracy, we accept that.
+ *
+ * In order to reduce the cost for testing the range, we check if
+ * the argument is in the range
+ *                             -0.25 <= x <= 0.25
+ * which can be done with just one conditional branch. If x is
+ * inside this range, we use fyl2xp1. Outside of this range,
+ * the use of fyl2x is accurate enough.
+ * 
+ */
+
+.text
+       .align  4
+ENTRY(log1p)
+       XMM_ONE_ARG_DOUBLE_PROLOGUE
+       fldl    ARG_DOUBLE_ONE
+       fabs
+       fld1                            /* ... x 1 */
+       fadd    %st(0)                  /* ... x 2 */
+       fadd    %st(0)                  /* ... x 4 */
+       fld1                            /* ... 4 1 */
+       fdivp                           /* ... x 0.25 */
+       fcompp
+       fnstsw  %ax
+       andb    $69,%ah
+       jne     use_fyl2x
+       jmp     use_fyl2xp1
+
+       .align  4
+use_fyl2x:
+       fldln2
+       fldl    ARG_DOUBLE_ONE
+       fld1
+       faddp
+       fyl2x
+       XMM_DOUBLE_EPILOGUE
+       ret
+
+       .align  4
+use_fyl2xp1:
+       fldln2
+       fldl    ARG_DOUBLE_ONE
+       fyl2xp1
+       XMM_DOUBLE_EPILOGUE
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/s_log1pf.S b/contrib/openbsd_libm/arch/amd64/s_log1pf.S
new file mode 100644 (file)
index 0000000..5180517
--- /dev/null
@@ -0,0 +1,75 @@
+/*     $OpenBSD: s_log1pf.S,v 1.3 2009/04/08 23:31:34 martynas Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+/*
+ * Modified by Lex Wennmacher <wennmach@NetBSD.org>
+ * Still public domain.
+ */
+
+#include <machine/asm.h>
+
+#include "abi.h"
+
+/*
+ * The log1pf() 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, the range of this
+ * instruction is limited to:
+ *             -(1 - (sqrt(2) / 2)) <= x <= sqrt(2) - 1
+ *                         -0.292893 <= x <= 0.414214
+ * at least on older processor versions.
+ *
+ * log1pf() is implemented by testing the range of the argument.
+ * If it is appropriate for fyl2xp1, this instruction is used.
+ * Else, we compute log1pf(x) = ln(2)*ld(1 + x) the traditional way
+ * (using fyl2x).
+ *
+ * The range testing costs speed, but as the rationale for the very
+ * existence of this function is accuracy, we accept that.
+ *
+ * In order to reduce the cost for testing the range, we check if
+ * the argument is in the range
+ *                             -0.25 <= x <= 0.25
+ * which can be done with just one conditional branch. If x is
+ * inside this range, we use fyl2xp1. Outside of this range,
+ * the use of fyl2x is accurate enough.
+ * 
+ */
+
+.text
+       .align  4
+ENTRY(log1pf)
+       XMM_ONE_ARG_FLOAT_PROLOGUE
+       flds    ARG_FLOAT_ONE
+       fabs
+       fld1                            /* ... x 1 */
+       fadd    %st(0)                  /* ... x 2 */
+       fadd    %st(0)                  /* ... x 4 */
+       fld1                            /* ... 4 1 */
+       fdivp                           /* ... x 0.25 */
+       fcompp
+       fnstsw  %ax
+       andb    $69,%ah
+       jne     use_fyl2x
+       jmp     use_fyl2xp1
+
+       .align  4
+use_fyl2x:
+       fldln2
+       flds    ARG_FLOAT_ONE
+       fld1
+       faddp
+       fyl2x
+       XMM_FLOAT_EPILOGUE
+       ret
+
+       .align  4
+use_fyl2xp1:
+       fldln2
+       flds    ARG_FLOAT_ONE
+       fyl2xp1
+       XMM_FLOAT_EPILOGUE
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/s_logb.S b/contrib/openbsd_libm/arch/amd64/s_logb.S
new file mode 100644 (file)
index 0000000..90f2a83
--- /dev/null
@@ -0,0 +1,17 @@
+/*     $OpenBSD: s_logb.S,v 1.2 2005/08/02 11:17:31 espie Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+#include "abi.h"
+
+ENTRY(logb)
+       XMM_ONE_ARG_DOUBLE_PROLOGUE
+       fldl    ARG_DOUBLE_ONE
+       fxtract
+       fstp    %st
+       XMM_DOUBLE_EPILOGUE
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/s_logbf.S b/contrib/openbsd_libm/arch/amd64/s_logbf.S
new file mode 100644 (file)
index 0000000..f5548cc
--- /dev/null
@@ -0,0 +1,17 @@
+/*     $OpenBSD: s_logbf.S,v 1.2 2005/08/02 11:17:31 espie Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+#include "abi.h"
+
+ENTRY(logbf)
+       XMM_ONE_ARG_FLOAT_PROLOGUE
+       flds    ARG_FLOAT_ONE
+       fxtract
+       fstp    %st
+       XMM_FLOAT_EPILOGUE
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/s_lrint.S b/contrib/openbsd_libm/arch/amd64/s_lrint.S
new file mode 100644 (file)
index 0000000..5cc2712
--- /dev/null
@@ -0,0 +1,12 @@
+/*     $OpenBSD: s_lrint.S,v 1.1 2009/04/10 11:30:33 martynas Exp $    */
+
+/*
+ * Written by Martynas Venckus.  Public domain
+ */
+
+#include <machine/asm.h>
+
+ENTRY(lrint)
+       cvtsd2si %xmm0, %rax
+       ret
+
diff --git a/contrib/openbsd_libm/arch/amd64/s_lrintf.S b/contrib/openbsd_libm/arch/amd64/s_lrintf.S
new file mode 100644 (file)
index 0000000..912e6b6
--- /dev/null
@@ -0,0 +1,12 @@
+/*     $OpenBSD: s_lrintf.S,v 1.1 2009/04/10 11:30:33 martynas Exp $   */
+
+/*
+ * Written by Martynas Venckus.  Public domain
+ */
+
+#include <machine/asm.h>
+
+ENTRY(lrintf)
+       cvtss2si %xmm0, %rax
+       ret
+
diff --git a/contrib/openbsd_libm/arch/amd64/s_rint.S b/contrib/openbsd_libm/arch/amd64/s_rint.S
new file mode 100644 (file)
index 0000000..c279782
--- /dev/null
@@ -0,0 +1,16 @@
+/*     $OpenBSD: s_rint.S,v 1.2 2005/08/02 11:17:31 espie Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+#include "abi.h"
+
+ENTRY(rint)
+       XMM_ONE_ARG_DOUBLE_PROLOGUE
+       fldl    ARG_DOUBLE_ONE
+       frndint
+       XMM_DOUBLE_EPILOGUE
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/s_rintf.S b/contrib/openbsd_libm/arch/amd64/s_rintf.S
new file mode 100644 (file)
index 0000000..d702e5c
--- /dev/null
@@ -0,0 +1,16 @@
+/*     $OpenBSD: s_rintf.S,v 1.2 2005/08/02 11:17:31 espie Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+#include "abi.h"
+
+ENTRY(rintf)
+       XMM_ONE_ARG_FLOAT_PROLOGUE
+       flds    ARG_FLOAT_ONE
+       frndint
+       XMM_FLOAT_EPILOGUE
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/s_scalbnf.S b/contrib/openbsd_libm/arch/amd64/s_scalbnf.S
new file mode 100644 (file)
index 0000000..b5a92e2
--- /dev/null
@@ -0,0 +1,24 @@
+/*     $OpenBSD: s_scalbnf.S,v 1.4 2009/04/25 11:03:35 martynas Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+#include "abi.h"
+
+.global ldexpf
+       ldexpf = scalbnf
+
+ENTRY(scalbnf)
+       movss   %xmm0,-8(%rsp)
+       movl    %edi,-4(%rsp)
+       fildl   -4(%rsp)
+       flds    -8(%rsp)
+       fscale
+       fstp    %st(1)          /* bug fix for fp stack overflow */
+       fstps   -8(%rsp)
+       movss   -8(%rsp),%xmm0
+       ret
+
diff --git a/contrib/openbsd_libm/arch/amd64/s_significand.S b/contrib/openbsd_libm/arch/amd64/s_significand.S
new file mode 100644 (file)
index 0000000..6128eed
--- /dev/null
@@ -0,0 +1,17 @@
+/*     $OpenBSD: s_significand.S,v 1.2 2005/08/02 11:17:31 espie Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+#include "abi.h"
+
+ENTRY(significand)
+       XMM_ONE_ARG_DOUBLE_PROLOGUE
+       fldl    ARG_DOUBLE_ONE
+       fxtract
+       fstp    %st(1)
+       XMM_DOUBLE_EPILOGUE
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/s_significandf.S b/contrib/openbsd_libm/arch/amd64/s_significandf.S
new file mode 100644 (file)
index 0000000..86c1ea0
--- /dev/null
@@ -0,0 +1,17 @@
+/*     $OpenBSD: s_significandf.S,v 1.2 2005/08/02 11:17:31 espie Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+#include "abi.h"
+
+ENTRY(significandf)
+       XMM_ONE_ARG_FLOAT_PROLOGUE
+       flds    ARG_FLOAT_ONE
+       fxtract
+       fstp    %st(1)
+       XMM_FLOAT_EPILOGUE
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/s_sin.S b/contrib/openbsd_libm/arch/amd64/s_sin.S
new file mode 100644 (file)
index 0000000..cccea47
--- /dev/null
@@ -0,0 +1,30 @@
+/*     $OpenBSD: s_sin.S,v 1.2 2005/08/02 11:17:31 espie Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+#include "abi.h"
+
+ENTRY(sin)
+       XMM_ONE_ARG_DOUBLE_PROLOGUE
+       fldl    ARG_DOUBLE_ONE
+       fsin
+       fnstsw  %ax
+       andw    $0x400,%ax
+       jnz     1f
+       XMM_DOUBLE_EPILOGUE
+       ret
+1:     fldpi
+       fadd    %st(0)
+       fxch    %st(1)
+2:     fprem1
+       fnstsw  %ax
+       andw    $0x400,%ax
+       jnz     2b
+       fstp    %st(1)
+       fsin
+       XMM_DOUBLE_EPILOGUE
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/s_sinf.S b/contrib/openbsd_libm/arch/amd64/s_sinf.S
new file mode 100644 (file)
index 0000000..4b707cc
--- /dev/null
@@ -0,0 +1,17 @@
+/*     $OpenBSD: s_sinf.S,v 1.2 2005/08/02 11:17:31 espie Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+#include "abi.h"
+
+/* A float's domain isn't large enough to require argument reduction. */
+ENTRY(sinf)
+       XMM_ONE_ARG_FLOAT_PROLOGUE
+       flds    ARG_FLOAT_ONE
+       fsin
+       XMM_FLOAT_EPILOGUE
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/s_tan.S b/contrib/openbsd_libm/arch/amd64/s_tan.S
new file mode 100644 (file)
index 0000000..acbd10d
--- /dev/null
@@ -0,0 +1,32 @@
+/*     $OpenBSD: s_tan.S,v 1.2 2005/08/02 11:17:31 espie Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+#include "abi.h"
+
+ENTRY(tan)
+       XMM_ONE_ARG_DOUBLE_PROLOGUE
+       fldl    ARG_DOUBLE_ONE
+       fptan
+       fnstsw  %ax
+       andw    $0x400,%ax
+       jnz     1f
+       fstp    %st(0)
+       XMM_DOUBLE_EPILOGUE
+       ret
+1:     fldpi
+       fadd    %st(0)
+       fxch    %st(1)
+2:     fprem1
+       fstsw   %ax
+       andw    $0x400,%ax
+       jnz     2b
+       fstp    %st(1)
+       fptan
+       fstp    %st(0)
+       XMM_DOUBLE_EPILOGUE
+       ret
diff --git a/contrib/openbsd_libm/arch/amd64/s_tanf.S b/contrib/openbsd_libm/arch/amd64/s_tanf.S
new file mode 100644 (file)
index 0000000..e62e6d3
--- /dev/null
@@ -0,0 +1,18 @@
+/*     $OpenBSD: s_tanf.S,v 1.2 2005/08/02 11:17:31 espie Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@NetBSD.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+#include "abi.h"
+
+/* A float's domain isn't large enough to require argument reduction. */
+ENTRY(tanf)
+       XMM_ONE_ARG_FLOAT_PROLOGUE
+       flds    ARG_FLOAT_ONE
+       fptan
+       fstp    %st(0)
+       XMM_FLOAT_EPILOGUE
+       ret
diff --git a/contrib/openbsd_libm/include/amd64/fenv.h b/contrib/openbsd_libm/include/amd64/fenv.h
new file mode 100644 (file)
index 0000000..8dc2343
--- /dev/null
@@ -0,0 +1,115 @@
+/*     $OpenBSD: fenv.h,v 1.4 2011/05/25 21:46:49 martynas Exp $       */
+/*     $NetBSD: fenv.h,v 1.1 2010/07/31 21:47:54 joerg Exp $   */
+
+/*-
+ * Copyright (c) 2004-2005 David Schultz <das (at) FreeBSD.ORG>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef        _AMD64_FENV_H_
+#define        _AMD64_FENV_H_
+
+/*
+ * Each symbol representing a floating point exception expands to an integer
+ * constant expression with values, such that bitwise-inclusive ORs of _all
+ * combinations_ of the constants result in distinct values.
+ *
+ * We use such values that allow direct bitwise operations on FPU/SSE registers.
+ */
+#define        FE_INVALID              0x01
+#define        FE_DENORMAL             0x02
+#define        FE_DIVBYZERO            0x04
+#define        FE_OVERFLOW             0x08
+#define        FE_UNDERFLOW            0x10
+#define        FE_INEXACT              0x20
+
+/*
+ * The following symbol is simply the bitwise-inclusive OR of all floating-point
+ * exception constants defined above.
+ */
+#define        FE_ALL_EXCEPT           (FE_INVALID | FE_DENORMAL | FE_DIVBYZERO | \
+                                FE_OVERFLOW | FE_UNDERFLOW | FE_INEXACT)
+#define        _SSE_MASK_SHIFT         7
+
+/*
+ * Each symbol representing the rounding direction, expands to an integer
+ * constant expression whose value is distinct non-negative value.
+ *
+ * We use such values that allow direct bitwise operations on FPU/SSE registers.
+ */
+#define        FE_TONEAREST            0x000
+#define        FE_DOWNWARD             0x400
+#define        FE_UPWARD               0x800
+#define        FE_TOWARDZERO           0xc00
+
+/*
+ * The following symbol is simply the bitwise-inclusive OR of all floating-point
+ * rounding direction constants defined above.
+ */
+#define        _X87_ROUND_MASK         (FE_TONEAREST | FE_DOWNWARD | FE_UPWARD | \
+                                FE_TOWARDZERO)
+#define        _SSE_ROUND_SHIFT        3
+
+/*
+ * fenv_t represents the entire floating-point environment.
+ */
+typedef        struct {
+       struct {
+               unsigned int __control;         /* Control word register */
+               unsigned int __status;          /* Status word register */
+               unsigned int __tag;             /* Tag word register */
+               unsigned int __others[4];       /* EIP, Pointer Selector, etc */
+       } __x87;
+       unsigned int __mxcsr;                   /* Control, status register */
+} fenv_t;
+
+/*
+ * The following constant represents the default floating-point environment
+ * (that is, the one installed at program startup) and has type pointer to
+ * const-qualified fenv_t.
+ *
+ * It can be used as an argument to the functions within the <fenv.h> header
+ * that manage the floating-point environment, namely fesetenv() and
+ * feupdateenv().
+ */
+__BEGIN_DECLS
+extern fenv_t                  __fe_dfl_env;
+__END_DECLS
+#define        FE_DFL_ENV              ((const fenv_t *)&__fe_dfl_env)
+
+/*
+ * fexcept_t represents the floating-point status flags collectively, including
+ * any status the implementation associates with the flags.
+ *
+ * A floating-point status flag is a system variable whose value is set (but
+ * never cleared) when a floating-point exception is raised, which occurs as a
+ * side effect of exceptional floating-point arithmetic to provide auxiliary
+ * information.
+ *
+ * A floating-point control mode is a system variable whose value may be set by
+ * the user to affect the subsequent behavior of floating-point arithmetic.
+ */
+typedef        unsigned int            fexcept_t;
+
+#endif /* !_AMD64_FENV_H_ */
diff --git a/contrib/openbsd_libm/include/amd64/ieee.h b/contrib/openbsd_libm/include/amd64/ieee.h
new file mode 100644 (file)
index 0000000..74856b2
--- /dev/null
@@ -0,0 +1,142 @@
+/*     $OpenBSD: ieee.h,v 1.2 2008/09/07 20:36:06 martynas Exp $ */
+/*     $NetBSD: ieee.h,v 1.1 1996/09/30 16:34:25 ws Exp $ */
+
+/*
+ * Copyright (c) 1992, 1993
+ *     The Regents of the University of California.  All rights reserved.
+ *
+ * This software was developed by the Computer Systems Engineering group
+ * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
+ * contributed to Berkeley.
+ *
+ * All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ *     This product includes software developed by the University of
+ *     California, Lawrence Berkeley Laboratory.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *     @(#)ieee.h      8.1 (Berkeley) 6/11/93
+ */
+
+/*
+ * ieee.h defines the machine-dependent layout of the machine's IEEE
+ * floating point.  It does *not* define (yet?) any of the rounding
+ * mode bits, exceptions, and so forth.
+ */
+
+/*
+ * Define the number of bits in each fraction and exponent.
+ *
+ *                  k           k+1
+ * Note that  1.0 x 2  == 0.1 x 2      and that denorms are represented
+ *
+ *                                       (-exp_bias+1)
+ * as fractions that look like 0.fffff x 2             .  This means that
+ *
+ *                      -126
+ * the number 0.10000 x 2    , for instance, is the same as the normalized
+ *
+ *             -127                       -128
+ * float 1.0 x 2    .  Thus, to represent 2    , we need one leading zero
+ *
+ *                               -129
+ * in the fraction; to represent 2    , we need two, and so on.  This
+ *
+ *                                                  (-exp_bias-fracbits+1)
+ * implies that the smallest denormalized number is 2
+ *
+ * for whichever format we are talking about: for single precision, for
+ *
+ *                                             -126            -149
+ * instance, we get .00000000000000000000001 x 2    , or 1.0 x 2    , and
+ *
+ * -149 == -127 - 23 + 1.
+ */
+#define        SNG_EXPBITS     8
+#define        SNG_FRACBITS    23
+
+#define        DBL_EXPBITS     11
+#define        DBL_FRACHBITS   20
+#define        DBL_FRACLBITS   32
+#define        DBL_FRACBITS    52
+
+#define        EXT_EXPBITS     15
+#define        EXT_FRACHBITS   32
+#define        EXT_FRACLBITS   32
+#define        EXT_FRACBITS    64
+
+#define        EXT_TO_ARRAY32(p, a) do {               \
+       (a)[0] = (uint32_t)(p)->ext_fracl;      \
+       (a)[1] = (uint32_t)(p)->ext_frach;      \
+} while(0)
+
+struct ieee_single {
+       u_int   sng_frac:23;
+       u_int   sng_exp:8;
+       u_int   sng_sign:1;
+};
+
+struct ieee_double {
+       u_int   dbl_fracl;
+       u_int   dbl_frach:20;
+       u_int   dbl_exp:11;
+       u_int   dbl_sign:1;
+};
+
+struct ieee_ext {
+       u_int   ext_fracl;
+       u_int   ext_frach;
+       u_int   ext_exp:15;
+       u_int   ext_sign:1;
+       u_int   ext_padl:16;
+       u_int   ext_padh;
+};
+
+/*
+ * Floats whose exponent is in [1..INFNAN) (of whatever type) are
+ * `normal'.  Floats whose exponent is INFNAN are either Inf or NaN.
+ * Floats whose exponent is zero are either zero (iff all fraction
+ * bits are zero) or subnormal values.
+ *
+ * A NaN is a `signalling NaN' if its QUIETNAN bit is clear in its
+ * high fraction; if the bit is set, it is a `quiet NaN'.
+ */
+#define        SNG_EXP_INFNAN  255
+#define        DBL_EXP_INFNAN  2047
+#define        EXT_EXP_INFNAN  32767
+
+#if 0
+#define        SNG_QUIETNAN    (1 << 22)
+#define        DBL_QUIETNAN    (1 << 19)
+#define        EXT_QUIETNAN    (1 << 15)
+#endif
+
+/*
+ * Exponent biases.
+ */
+#define        SNG_EXP_BIAS    127
+#define        DBL_EXP_BIAS    1023
+#define        EXT_EXP_BIAS    16383
diff --git a/contrib/openbsd_libm/include/global/complex.h b/contrib/openbsd_libm/include/global/complex.h
new file mode 100644 (file)
index 0000000..b29f5a7
--- /dev/null
@@ -0,0 +1,120 @@
+/*     $OpenBSD: complex.h,v 1.5 2014/03/16 18:38:30 guenther Exp $    */
+/*
+ * Copyright (c) 2008 Martynas Venckus <martynas@openbsd.org>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef _COMPLEX_H_
+#define        _COMPLEX_H_
+
+#include <sys/cdefs.h>
+
+/*
+ * C99
+ */
+#ifdef __GNUC__
+#if __STDC_VERSION__ < 199901
+#define _Complex       __complex__
+#endif
+#define _Complex_I     1.0fi
+#endif
+
+#define complex                _Complex
+
+/* XXX switch to _Imaginary_I */
+#undef I
+#define I              _Complex_I
+
+__BEGIN_DECLS
+/* 
+ * Double versions of C99 functions
+ */
+double complex cacos(double complex);
+double complex casin(double complex);
+double complex catan(double complex);
+double complex ccos(double complex);
+double complex csin(double complex);
+double complex ctan(double complex);
+double complex cacosh(double complex);
+double complex casinh(double complex);
+double complex catanh(double complex);
+double complex ccosh(double complex);
+double complex csinh(double complex);
+double complex ctanh(double complex);
+double complex cexp(double complex);
+double complex clog(double complex);
+double cabs(double complex);
+double complex cpow(double complex, double complex);
+double complex csqrt(double complex);
+double carg(double complex);
+double cimag(double complex);
+double complex conj(double complex);
+double complex cproj(double complex);
+double creal(double complex);
+
+/* 
+ * Float versions of C99 functions
+ */
+float complex cacosf(float complex);
+float complex casinf(float complex);
+float complex catanf(float complex);
+float complex ccosf(float complex);
+float complex csinf(float complex);
+float complex ctanf(float complex);
+float complex cacoshf(float complex);
+float complex casinhf(float complex);
+float complex catanhf(float complex);
+float complex ccoshf(float complex);
+float complex csinhf(float complex);
+float complex ctanhf(float complex);
+float complex cexpf(float complex);
+float complex clogf(float complex);
+float cabsf(float complex);
+float complex cpowf(float complex, float complex);
+float complex csqrtf(float complex);
+float cargf(float complex);
+float cimagf(float complex);
+float complex conjf(float complex);
+float complex cprojf(float complex);
+float crealf(float complex);
+
+/* 
+ * Long double versions of C99 functions
+ */
+long double complex cacosl(long double complex);
+long double complex casinl(long double complex);
+long double complex catanl(long double complex);
+long double complex ccosl(long double complex);
+long double complex csinl(long double complex);
+long double complex ctanl(long double complex);
+long double complex cacoshl(long double complex);
+long double complex casinhl(long double complex);
+long double complex catanhl(long double complex);
+long double complex ccoshl(long double complex);
+long double complex csinhl(long double complex);
+long double complex ctanhl(long double complex);
+long double complex cexpl(long double complex);
+long double complex clogl(long double complex);
+long double cabsl(long double complex);
+long double complex cpowl(long double complex,
+       long double complex);
+long double complex csqrtl(long double complex);
+long double cargl(long double complex);
+long double cimagl(long double complex);
+long double complex conjl(long double complex);
+long double complex cprojl(long double complex);
+long double creall(long double complex);
+__END_DECLS
+
+#endif /* !_COMPLEX_H_ */
diff --git a/contrib/openbsd_libm/include/global/fenv.h b/contrib/openbsd_libm/include/global/fenv.h
new file mode 100644 (file)
index 0000000..1368ab3
--- /dev/null
@@ -0,0 +1,60 @@
+/*     $OpenBSD: fenv.h,v 1.2 2011/05/25 21:46:49 martynas Exp $       */
+/*     $NetBSD: fenv.h,v 1.2.4.1 2011/02/08 16:18:55 bouyer Exp $      */
+
+/*
+ * Copyright (c) 2010 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef        _FENV_H_
+#define        _FENV_H_
+
+#include <sys/cdefs.h>
+#include <machine/fenv.h>
+
+__BEGIN_DECLS
+
+int    feclearexcept(int);
+int    fegetexceptflag(fexcept_t *, int);
+int    feraiseexcept(int);
+int    fesetexceptflag(const fexcept_t *, int);
+int    fetestexcept(int);
+
+int    fegetround(void);
+int    fesetround(int);
+
+int    fegetenv(fenv_t *);
+int    feholdexcept(fenv_t *);
+int    fesetenv(const fenv_t *);
+int    feupdateenv(const fenv_t *);
+
+#if    __BSD_VISIBLE
+int    feenableexcept(int);
+int    fedisableexcept(int);
+int    fegetexcept(void);
+#endif /* __BSD_VISIBLE */
+
+__END_DECLS
+
+#endif /* ! _FENV_H_ */
diff --git a/contrib/openbsd_libm/include/global/math.h b/contrib/openbsd_libm/include/global/math.h
new file mode 100644 (file)
index 0000000..02e1417
--- /dev/null
@@ -0,0 +1,485 @@
+/*     $OpenBSD: math.h,v 1.33 2014/05/03 16:13:03 martynas Exp $      */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice 
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * from: @(#)fdlibm.h 5.1 93/09/24
+ */
+
+#ifndef _MATH_H_
+#define _MATH_H_
+
+#include <sys/_types.h>
+#include <sys/limits.h>
+
+__BEGIN_DECLS
+/*
+ * ANSI/POSIX
+ */
+extern char __infinity[];
+#if __GNUC_PREREQ__(3, 3) && !defined(__vax__)
+#define HUGE_VAL       __builtin_huge_val()
+#else /* __GNUC_PREREQ__(3, 3) && !__vax__ */
+#define HUGE_VAL       (*(double *)(void *)__infinity)
+#endif /* __GNUC_PREREQ__(3, 3) && !__vax__ */
+
+/*
+ * C99
+ */
+#if __ISO_C_VISIBLE >= 1999
+typedef        __double_t      double_t;
+typedef        __float_t       float_t;
+
+#if __GNUC_PREREQ__(3, 3) && !defined(__vax__)
+#define        HUGE_VALF       __builtin_huge_valf()
+#define        HUGE_VALL       __builtin_huge_vall()
+#define        INFINITY        __builtin_inff()
+#define        NAN             __builtin_nanf("")
+#else /* __GNUC_PREREQ__(3, 3) && !__vax__ */
+#ifdef __vax__
+extern char __infinityf[];
+#define        HUGE_VALF       (*(float *)(void *)__infinityf)
+#else /* __vax__ */
+#define        HUGE_VALF       ((float)HUGE_VAL)
+#endif /* __vax__ */
+#define        HUGE_VALL       ((long double)HUGE_VAL)
+#define        INFINITY        HUGE_VALF
+#ifndef __vax__
+extern char __nan[];
+#define        NAN             (*(float *)(void *)__nan)
+#endif /* !__vax__ */
+#endif /* __GNUC_PREREQ__(3, 3) && !__vax__ */
+
+#define        FP_INFINITE     0x01
+#define        FP_NAN          0x02
+#define        FP_NORMAL       0x04
+#define        FP_SUBNORMAL    0x08
+#define        FP_ZERO         0x10
+
+#define FP_ILOGB0      (-INT_MAX)
+#define FP_ILOGBNAN    INT_MAX
+
+#define fpclassify(x) \
+       ((sizeof (x) == sizeof (float)) ? \
+               __fpclassifyf(x) \
+       : (sizeof (x) == sizeof (double)) ? \
+               __fpclassify(x) \
+       :       __fpclassifyl(x))
+#define isfinite(x) \
+       ((sizeof (x) == sizeof (float)) ? \
+               __isfinitef(x) \
+       : (sizeof (x) == sizeof (double)) ? \
+               __isfinite(x) \
+       :       __isfinitel(x))
+#define isnormal(x) \
+       ((sizeof (x) == sizeof (float)) ? \
+               __isnormalf(x) \
+       : (sizeof (x) == sizeof (double)) ? \
+               __isnormal(x) \
+       :       __isnormall(x))
+#define signbit(x) \
+       ((sizeof (x) == sizeof (float)) ? \
+               __signbitf(x) \
+       : (sizeof (x) == sizeof (double)) ? \
+               __signbit(x) \
+       :       __signbitl(x))
+
+#define        isgreater(x, y)         (!isunordered((x), (y)) && (x) > (y))
+#define        isgreaterequal(x, y)    (!isunordered((x), (y)) && (x) >= (y))
+#define        isless(x, y)            (!isunordered((x), (y)) && (x) < (y))
+#define        islessequal(x, y)       (!isunordered((x), (y)) && (x) <= (y))
+#define        islessgreater(x, y)     (!isunordered((x), (y)) && \
+                                       ((x) > (y) || (y) > (x)))
+#define        isunordered(x, y)       (isnan(x) || isnan(y))
+#endif /* __ISO_C_VISIBLE >= 1999 */
+
+#define isinf(x) \
+       ((sizeof (x) == sizeof (float)) ? \
+               __isinff(x) \
+       : (sizeof (x) == sizeof (double)) ? \
+               __isinf(x) \
+       :       __isinfl(x))
+#define isnan(x) \
+       ((sizeof (x) == sizeof (float)) ? \
+               __isnanf(x) \
+       : (sizeof (x) == sizeof (double)) ? \
+               __isnan(x) \
+       :       __isnanl(x))
+
+/*
+ * XOPEN/SVID
+ */
+#if __BSD_VISIBLE || __XPG_VISIBLE
+#define        M_E             ((double)2.7182818284590452354)  /* e */
+#define        M_LOG2E         ((double)1.4426950408889634074)  /* log 2e */
+#define        M_LOG10E        ((double)0.43429448190325182765) /* log 10e */
+#define        M_LN2           ((double)0.69314718055994530942) /* log e2 */
+#define        M_LN10          ((double)2.30258509299404568402) /* log e10 */
+#define        M_PI            ((double)3.14159265358979323846) /* pi */
+#define        M_PI_2          ((double)1.57079632679489661923) /* pi/2 */
+#define        M_PI_4          ((double)0.78539816339744830962) /* pi/4 */
+#define        M_1_PI          ((double)0.31830988618379067154) /* 1/pi */
+#define        M_2_PI          ((double)0.63661977236758134308) /* 2/pi */
+#define        M_2_SQRTPI      ((double)1.12837916709551257390) /* 2/sqrt(pi) */
+#define        M_SQRT2         ((double)1.41421356237309504880) /* sqrt(2) */
+#define        M_SQRT1_2       ((double)0.70710678118654752440) /* 1/sqrt(2) */
+
+#ifdef __vax__
+#define        MAXFLOAT        ((float)1.70141173319264430e+38)
+#else
+#define        MAXFLOAT        ((float)3.40282346638528860e+38)
+#endif /* __vax__ */
+
+extern int signgam;
+#endif /* __BSD_VISIBLE || __XPG_VISIBLE */
+
+#if __POSIX_VISIBLE >= 201403
+#define        M_El            2.718281828459045235360287471352662498L /* e */
+#define        M_LOG2El        1.442695040888963407359924681001892137L /* log 2e */
+#define        M_LOG10El       0.434294481903251827651128918916605082L /* log 10e */
+#define        M_LN2l          0.693147180559945309417232121458176568L /* log e2 */
+#define        M_LN10l         2.302585092994045684017991454684364208L /* log e10 */
+#define        M_PIl           3.141592653589793238462643383279502884L /* pi */
+#define        M_PI_2l         1.570796326794896619231321691639751442L /* pi/2 */
+#define        M_PI_4l         0.785398163397448309615660845819875721L /* pi/4 */
+#define        M_1_PIl         0.318309886183790671537767526745028724L /* 1/pi */
+#define        M_2_PIl         0.636619772367581343075535053490057448L /* 2/pi */
+#define        M_2_SQRTPIl     1.128379167095512573896158903121545172L /* 2/sqrt(pi) */
+#define        M_SQRT2l        1.414213562373095048801688724209698079L /* sqrt(2) */
+#define        M_SQRT1_2l      0.707106781186547524400844362104849039L /* 1/sqrt(2) */
+#endif /* __POSIX_VISIBLE >= 201403 */
+
+#if __BSD_VISIBLE
+#define        HUGE            MAXFLOAT
+#endif /* __BSD_VISIBLE */
+
+/*
+ * ANSI/POSIX
+ */
+double acos(double);
+double asin(double);
+double atan(double);
+double atan2(double, double);
+double cos(double);
+double sin(double);
+double tan(double);
+
+double cosh(double);
+double sinh(double);
+double tanh(double);
+
+double exp(double);
+double frexp(double, int *);
+double ldexp(double, int);
+double log(double);
+double log10(double);
+double modf(double, double *);
+
+double pow(double, double);
+double sqrt(double);
+
+double ceil(double);
+double fabs(double);
+double floor(double);
+double fmod(double, double);
+
+/*
+ * C99
+ */
+#if __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 || __XPG_VISIBLE
+double acosh(double);
+double asinh(double);
+double atanh(double);
+
+double exp2(double);
+double expm1(double);
+int ilogb(double);
+double log1p(double);
+double log2(double);
+double logb(double);
+double scalbn(double, int);
+double scalbln(double, long int);
+
+double cbrt(double);
+double hypot(double, double);
+
+double erf(double);
+double erfc(double);
+double lgamma(double);
+double tgamma(double);
+
+double nearbyint(double);
+double rint(double);
+long int lrint(double);
+long long int llrint(double);
+double round(double);
+long int lround(double);
+long long int llround(double);
+double trunc(double);
+
+double remainder(double, double);
+double remquo(double, double, int *);
+
+double copysign(double, double);
+double nan(const char *);
+double nextafter(double, double);
+double nexttoward(double, long double);
+
+double fdim(double, double);
+double fmax(double, double);
+double fmin(double, double);
+
+double fma(double, double, double);
+#endif /* __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 || __XPG_VISIBLE */
+
+#if __BSD_VISIBLE || __XPG_VISIBLE
+double j0(double);
+double j1(double);
+double jn(int, double);
+double scalb(double, double);
+double y0(double);
+double y1(double);
+double yn(int, double);
+#endif /* __BSD_VISIBLE || __XPG_VISIBLE */
+
+#if __BSD_VISIBLE || __XPG_VISIBLE <= 500
+double gamma(double);
+#endif /* __BSD_VISIBLE || __XPG_VISIBLE <= 500 */
+
+/*
+ * BSD math library entry points
+ */
+#if __BSD_VISIBLE
+double drem(double, double);
+int finite(double);
+
+/*
+ * Reentrant version of gamma & lgamma; passes signgam back by reference
+ * as the second argument; user must allocate space for signgam.
+ */
+double gamma_r(double, int *);
+double lgamma_r(double, int *);
+
+/*
+ * IEEE Test Vector
+ */
+double significand(double);
+#endif /* __BSD_VISIBLE */
+
+/*
+ * Float versions of C99 functions
+ */
+#if __ISO_C_VISIBLE >= 1999
+float acosf(float);
+float asinf(float);
+float atanf(float);
+float atan2f(float, float);
+float cosf(float);
+float sinf(float);
+float tanf(float);
+
+float acoshf(float);
+float asinhf(float);
+float atanhf(float);
+float coshf(float);
+float sinhf(float);
+float tanhf(float);
+
+float expf(float);
+float exp2f(float);
+float expm1f(float);
+float frexpf(float, int *);
+int ilogbf(float);
+float ldexpf(float, int);
+float logf(float);
+float log10f(float);
+float log1pf(float);
+float log2f(float);
+float logbf(float);
+float modff(float, float *);
+float scalbnf(float, int);
+float scalblnf(float, long int);
+
+float cbrtf(float);
+float fabsf(float);
+float hypotf(float, float);
+float powf(float, float);
+float sqrtf(float);
+
+float erff(float);
+float erfcf(float);
+float lgammaf(float);
+float tgammaf(float);
+
+float ceilf(float);
+float floorf(float);
+float nearbyintf(float);
+float rintf(float);
+long int lrintf(float);
+long long int llrintf(float);
+float roundf(float);
+long int lroundf(float);
+long long int llroundf(float);
+float truncf(float);
+
+float fmodf(float, float);
+float remainderf(float, float);
+float remquof(float, float, int *);
+
+float copysignf(float, float);
+float nanf(const char *);
+float nextafterf(float, float);
+float nexttowardf(float, long double);
+
+float fdimf(float, float);
+float fmaxf(float, float);
+float fminf(float, float);
+
+float fmaf(float, float, float);
+#endif /* __ISO_C_VISIBLE >= 1999 */
+
+#if __BSD_VISIBLE || __XPG_VISIBLE
+float j0f(float);
+float j1f(float);
+float jnf(int, float);
+float scalbf(float, float);
+float y0f(float);
+float y1f(float);
+float ynf(int, float);
+#endif /* __BSD_VISIBLE || __XPG_VISIBLE */
+
+#if __BSD_VISIBLE || __XPG_VISIBLE <= 500
+float gammaf(float);
+#endif /* __BSD_VISIBLE || __XPG_VISIBLE <= 500 */
+
+/*
+ * Float versions of BSD math library entry points
+ */
+#if __BSD_VISIBLE
+float dremf(float, float);
+int finitef(float);
+int isinff(float);
+int isnanf(float);
+
+/*
+ * Float versions of reentrant version of gamma & lgamma; passes
+ * signgam back by reference as the second argument; user must
+ * allocate space for signgam.
+ */
+float gammaf_r(float, int *);
+float lgammaf_r(float, int *);
+
+/*
+ * Float version of IEEE Test Vector
+ */
+float significandf(float);
+#endif /* __BSD_VISIBLE */
+
+/*
+ * Long double versions of C99 functions
+ */
+#if __ISO_C_VISIBLE >= 1999
+long double acosl(long double);
+long double asinl(long double);
+long double atanl(long double);
+long double atan2l(long double, long double);
+long double cosl(long double);
+long double sinl(long double);
+long double tanl(long double);
+
+long double acoshl(long double);
+long double asinhl(long double);
+long double atanhl(long double);
+long double coshl(long double);
+long double sinhl(long double);
+long double tanhl(long double);
+
+long double expl(long double);
+long double exp2l(long double);
+long double expm1l(long double);
+long double frexpl(long double, int *);
+int ilogbl(long double);
+long double ldexpl(long double, int);
+long double logl(long double);
+long double log10l(long double);
+long double log1pl(long double);
+long double log2l(long double);
+long double logbl(long double);
+long double modfl(long double, long double *);
+long double scalbnl(long double, int);
+long double scalblnl(long double, long int);
+
+long double cbrtl(long double);
+long double fabsl(long double);
+long double hypotl(long double, long double);
+long double powl(long double, long double);
+long double sqrtl(long double);
+
+long double erfl(long double);
+long double erfcl(long double);
+long double lgammal(long double);
+long double tgammal(long double);
+
+long double ceill(long double);
+long double floorl(long double);
+long double nearbyintl(long double);
+long double rintl(long double);
+long int lrintl(long double);
+long long int llrintl(long double);
+long double roundl(long double);
+long int lroundl(long double);
+long long int llroundl(long double);
+long double truncl(long double);
+
+long double fmodl(long double, long double);
+long double remainderl(long double, long double);
+long double remquol(long double, long double, int *);
+
+long double copysignl(long double, long double);
+long double nanl(const char *);
+long double nextafterl(long double, long double);
+long double nexttowardl(long double, long double);
+
+long double fdiml(long double, long double);
+long double fmaxl(long double, long double);
+long double fminl(long double, long double);
+
+long double fmal(long double, long double, long double);
+#endif /* __ISO_C_VISIBLE >= 1999 */
+
+/*
+ * Library implementation
+ */
+int __fpclassify(double);
+int __fpclassifyf(float);
+int __fpclassifyl(long double);
+int __isfinite(double);
+int __isfinitef(float);
+int __isfinitel(long double);
+int __isinf(double);
+int __isinff(float);
+int __isinfl(long double);
+int __isnan(double);
+int __isnanf(float);
+int __isnanl(long double);
+int __isnormal(double);
+int __isnormalf(float);
+int __isnormall(long double);
+int __signbit(double);
+int __signbitf(float);
+int __signbitl(long double);
+
+#if __BSD_VISIBLE && defined(__vax__)
+double infnan(int);
+#endif /* __BSD_VISIBLE && defined(__vax__) */
+__END_DECLS
+
+#endif /* !_MATH_H_ */
diff --git a/contrib/openbsd_libm/include/global/tgmath.h b/contrib/openbsd_libm/include/global/tgmath.h
new file mode 100644 (file)
index 0000000..46fade4
--- /dev/null
@@ -0,0 +1,169 @@
+/*     $OpenBSD: tgmath.h,v 1.1 2011/07/08 19:28:06 martynas Exp $     */
+
+/*-
+ * Copyright (c) 2004 Stefan Farfeleder.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD: src/include/tgmath.h,v 1.5 2007/02/02 18:30:23 schweikh Exp $
+ */
+
+#ifndef _TGMATH_H_
+#define        _TGMATH_H_
+
+#include <complex.h>
+#include <math.h>
+
+/*
+ * This implementation of <tgmath.h> requires two implementation-dependent
+ * macros to be defined:
+ * __tg_impl_simple(x, y, z, fn, fnf, fnl, ...)
+ *     Invokes fnl() if the corresponding real type of x, y or z is long
+ *     double, fn() if it is double or any has an integer type, and fnf()
+ *     otherwise.
+ * __tg_impl_full(x, y, z, fn, fnf, fnl, cfn, cfnf, cfnl, ...)
+ *     Invokes [c]fnl() if the corresponding real type of x, y or z is long
+ *     double, [c]fn() if it is double or any has an integer type, and
+ *     [c]fnf() otherwise.  The function with the 'c' prefix is called if
+ *     any of x, y or z is a complex number.
+ * Both macros call the chosen function with all additional arguments passed
+ * to them, as given by __VA_ARGS__.
+ *
+ * Note that these macros cannot be implemented with C's ?: operator,
+ * because the return type of the whole expression would incorrectly be long
+ * double complex regardless of the argument types.
+ */
+
+#if __GNUC_PREREQ__(3, 1)
+#define        __tg_type(e, t) __builtin_types_compatible_p(__typeof__(e), t)
+#define        __tg_type3(e1, e2, e3, t)                                       \
+       (__tg_type(e1, t) || __tg_type(e2, t) || __tg_type(e3, t))
+#define        __tg_type_corr(e1, e2, e3, t)                                   \
+       (__tg_type3(e1, e2, e3, t) || __tg_type3(e1, e2, e3, t _Complex))
+#define        __tg_integer(e1, e2, e3)                                        \
+       (((__typeof__(e1))1.5 == 1) || ((__typeof__(e2))1.5 == 1) ||    \
+           ((__typeof__(e3))1.5 == 1))
+#define        __tg_is_complex(e1, e2, e3)                                     \
+       (__tg_type3(e1, e2, e3, float _Complex) ||                      \
+           __tg_type3(e1, e2, e3, double _Complex) ||                  \
+           __tg_type3(e1, e2, e3, long double _Complex) ||             \
+           __tg_type3(e1, e2, e3, __typeof__(_Complex_I)))
+
+#define        __tg_impl_simple(x, y, z, fn, fnf, fnl, ...)                    \
+       __builtin_choose_expr(__tg_type_corr(x, y, z, long double),     \
+           fnl(__VA_ARGS__), __builtin_choose_expr(                    \
+               __tg_type_corr(x, y, z, double) || __tg_integer(x, y, z),\
+               fn(__VA_ARGS__), fnf(__VA_ARGS__)))
+
+#define        __tg_impl_full(x, y, z, fn, fnf, fnl, cfn, cfnf, cfnl, ...)     \
+       __builtin_choose_expr(__tg_is_complex(x, y, z),                 \
+           __tg_impl_simple(x, y, z, cfn, cfnf, cfnl, __VA_ARGS__),    \
+           __tg_impl_simple(x, y, z, fn, fnf, fnl, __VA_ARGS__))
+
+#else  /* __GNUC__ */
+#error "<tgmath.h> not implemented for this compiler"
+#endif /* !__GNUC__ */
+
+/* Macros to save lots of repetition below */
+#define        __tg_simple(x, fn)                                              \
+       __tg_impl_simple(x, x, x, fn, fn##f, fn##l, x)
+#define        __tg_simple2(x, y, fn)                                          \
+       __tg_impl_simple(x, x, y, fn, fn##f, fn##l, x, y)
+#define        __tg_simplev(x, fn, ...)                                        \
+       __tg_impl_simple(x, x, x, fn, fn##f, fn##l, __VA_ARGS__)
+#define        __tg_full(x, fn)                                                \
+       __tg_impl_full(x, x, x, fn, fn##f, fn##l, c##fn, c##fn##f, c##fn##l, x)
+
+/* 7.22#4 -- These macros expand to real or complex functions, depending on
+ * the type of their arguments. */
+#define        acos(x)         __tg_full(x, acos)
+#define        asin(x)         __tg_full(x, asin)
+#define        atan(x)         __tg_full(x, atan)
+#define        acosh(x)        __tg_full(x, acosh)
+#define        asinh(x)        __tg_full(x, asinh)
+#define        atanh(x)        __tg_full(x, atanh)
+#define        cos(x)          __tg_full(x, cos)
+#define        sin(x)          __tg_full(x, sin)
+#define        tan(x)          __tg_full(x, tan)
+#define        cosh(x)         __tg_full(x, cosh)
+#define        sinh(x)         __tg_full(x, sinh)
+#define        tanh(x)         __tg_full(x, tanh)
+#define        exp(x)          __tg_full(x, exp)
+#define        log(x)          __tg_full(x, log)
+#define        pow(x, y)       __tg_impl_full(x, x, y, pow, powf, powl,        \
+                           cpow, cpowf, cpowl, x, y)
+#define        sqrt(x)         __tg_full(x, sqrt)
+
+/* "The corresponding type-generic macro for fabs and cabs is fabs." */
+#define        fabs(x)         __tg_impl_full(x, x, x, fabs, fabsf, fabsl,     \
+                           cabs, cabsf, cabsl, x)
+
+/* 7.22#5 -- These macros are only defined for arguments with real type. */
+#define        atan2(x, y)     __tg_simple2(x, y, atan2)
+#define        cbrt(x)         __tg_simple(x, cbrt)
+#define        ceil(x)         __tg_simple(x, ceil)
+#define        copysign(x, y)  __tg_simple2(x, y, copysign)
+#define        erf(x)          __tg_simple(x, erf)
+#define        erfc(x)         __tg_simple(x, erfc)
+#define        exp2(x)         __tg_simple(x, exp2)
+#define        expm1(x)        __tg_simple(x, expm1)
+#define        fdim(x, y)      __tg_simple2(x, y, fdim)
+#define        floor(x)        __tg_simple(x, floor)
+#define        fma(x, y, z)    __tg_impl_simple(x, y, z, fma, fmaf, fmal, x, y, z)
+#define        fmax(x, y)      __tg_simple2(x, y, fmax)
+#define        fmin(x, y)      __tg_simple2(x, y, fmin)
+#define        fmod(x, y)      __tg_simple2(x, y, fmod)
+#define        frexp(x, y)     __tg_simplev(x, frexp, x, y)
+#define        hypot(x, y)     __tg_simple2(x, y, hypot)
+#define        ilogb(x)        __tg_simple(x, ilogb)
+#define        ldexp(x, y)     __tg_simplev(x, ldexp, x, y)
+#define        lgamma(x)       __tg_simple(x, lgamma)
+#define        llrint(x)       __tg_simple(x, llrint)
+#define        llround(x)      __tg_simple(x, llround)
+#define        log10(x)        __tg_simple(x, log10)
+#define        log1p(x)        __tg_simple(x, log1p)
+#define        log2(x)         __tg_simple(x, log2)
+#define        logb(x)         __tg_simple(x, logb)
+#define        lrint(x)        __tg_simple(x, lrint)
+#define        lround(x)       __tg_simple(x, lround)
+#define        nearbyint(x)    __tg_simple(x, nearbyint)
+#define        nextafter(x, y) __tg_simple2(x, y, nextafter)
+#define        nexttoward(x, y) __tg_simplev(x, nexttoward, x, y)
+#define        remainder(x, y) __tg_simple2(x, y, remainder)
+#define        remquo(x, y, z) __tg_impl_simple(x, x, y, remquo, remquof,      \
+                           remquol, x, y, z)
+#define        rint(x)         __tg_simple(x, rint)
+#define        round(x)        __tg_simple(x, round)
+#define        scalbn(x, y)    __tg_simplev(x, scalbn, x, y)
+#define        scalbln(x, y)   __tg_simplev(x, scalbln, x, y)
+#define        tgamma(x)       __tg_simple(x, tgamma)
+#define        trunc(x)        __tg_simple(x, trunc)
+
+/* 7.22#6 -- These macros always expand to complex functions. */
+#define        carg(x)         __tg_simple(x, carg)
+#define        cimag(x)        __tg_simple(x, cimag)
+#define        conj(x)         __tg_simple(x, conj)
+#define        cproj(x)        __tg_simple(x, cproj)
+#define        creal(x)        __tg_simple(x, creal)
+
+#endif /* !_TGMATH_H_ */
diff --git a/contrib/openbsd_libm/man/Makefile b/contrib/openbsd_libm/man/Makefile
new file mode 100644 (file)
index 0000000..9c942c3
--- /dev/null
@@ -0,0 +1,7 @@
+#      $OpenBSD: Makefile,v 1.1 2011/09/22 04:56:09 schwarze Exp $
+# Written by Ingo Schwarze <schwarze@openbsd.org> 2011; public domain.
+
+MANSUBDIR = vax
+MAN = infnan.3
+
+.include <bsd.prog.mk>
diff --git a/contrib/openbsd_libm/man/acos.3 b/contrib/openbsd_libm/man/acos.3
new file mode 100644 (file)
index 0000000..3a91e63
--- /dev/null
@@ -0,0 +1,80 @@
+.\"    $OpenBSD: acos.3,v 1.14 2013/06/05 03:40:26 tedu Exp $
+.\" Copyright (c) 1991 The Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     from: @(#)acos.3       5.1 (Berkeley) 5/2/91
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt ACOS 3
+.Os
+.Sh NAME
+.Nm acos ,
+.Nm acosf ,
+.Nm acosl
+.Nd arc cosine functions
+.Sh SYNOPSIS
+.In math.h
+.Ft double
+.Fn acos "double x"
+.Ft float
+.Fn acosf "float x"
+.Ft long double
+.Fn acosl "long double x"
+.Sh DESCRIPTION
+The
+.Fn acos
+function computes the principal value of the arc cosine of
+.Fa x
+in the range
+.Bq 0 , \*(Pi .
+The
+.Fn acosf
+is a single precision version of
+.Fn acos .
+The
+.Fn acosl
+is an extended precision version of
+.Fn acos .
+.Sh RETURN VALUES
+If |x|>1,
+.Fn acos "x" ,
+.Fn acosf "x"
+and
+.Fn acosl "x"
+set the global variable
+.Va errno
+to EDOM.
+.Sh SEE ALSO
+.Xr asin 3 ,
+.Xr atan 3 ,
+.Xr atan2 3 ,
+.Xr cos 3 ,
+.Xr cosh 3 ,
+.Xr sin 3 ,
+.Xr sinh 3 ,
+.Xr tan 3 ,
+.Xr tanh 3
diff --git a/contrib/openbsd_libm/man/acosh.3 b/contrib/openbsd_libm/man/acosh.3
new file mode 100644 (file)
index 0000000..d783bb9
--- /dev/null
@@ -0,0 +1,80 @@
+.\"    $OpenBSD: acosh.3,v 1.15 2013/11/03 18:28:27 martynas Exp $
+.\" Copyright (c) 1991 Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     from: @(#)acosh.3      5.2 (Berkeley) 5/6/91
+.\"
+.Dd $Mdocdate: November 3 2013 $
+.Dt ACOSH 3
+.Os
+.Sh NAME
+.Nm acosh ,
+.Nm acoshf ,
+.Nm acoshl
+.Nd inverse hyperbolic cosine functions
+.Sh SYNOPSIS
+.In math.h
+.Ft double
+.Fn acosh "double x"
+.Ft float
+.Fn acoshf "float x"
+.Ft long double
+.Fn acoshl "long double x"
+.Sh DESCRIPTION
+The
+.Fn acosh
+function computes the inverse hyperbolic cosine
+of the real
+argument
+.Ar x .
+The
+.Fn acoshf
+function is a single precision version of
+.Fn acosh .
+The
+.Fn acoshl
+function is an extended precision version of
+.Fn acosh .
+.Sh RETURN VALUES
+If x is less than one,
+.Fn acosh "x" ,
+.Fn acoshf "x"
+and
+.Fn acoshl "x"
+return \*(Na and set the global variable
+.Va errno
+to EDOM.
+.Sh SEE ALSO
+.Xr asinh 3 ,
+.Xr atanh 3 ,
+.Xr exp 3 ,
+.Xr infnan 3
+.Sh HISTORY
+The
+.Fn acosh
+function appeared in
+.Bx 4.3 .
diff --git a/contrib/openbsd_libm/man/asin.3 b/contrib/openbsd_libm/man/asin.3
new file mode 100644 (file)
index 0000000..8d1a2f7
--- /dev/null
@@ -0,0 +1,82 @@
+.\"    $OpenBSD: asin.3,v 1.15 2013/11/03 18:28:27 martynas Exp $
+.\" Copyright (c) 1991 The Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     from: @(#)asin.3       5.1 (Berkeley) 5/2/91
+.\"
+.Dd $Mdocdate: November 3 2013 $
+.Dt ASIN 3
+.Os
+.Sh NAME
+.Nm asin ,
+.Nm asinf ,
+.Nm asinl
+.Nd arc sine functions
+.Sh SYNOPSIS
+.In math.h
+.Ft double
+.Fn asin "double x"
+.Ft float
+.Fn asinf "float x"
+.Ft long double
+.Fn asinl "long double x"
+.Sh DESCRIPTION
+The
+.Fn asin
+function computes the principal value of the arc sine of
+.Fa x
+in the range
+.Bk -words
+.Bq -\*(Pi/2, +\*(Pi/2 .
+.Ek
+The
+.Fn asinf
+function is a single precision version of
+.Fn asin .
+The
+.Fn asinl
+function is an extended precision version of
+.Fn asin .
+.Sh RETURN VALUES
+If |x|>1,
+.Fn asin "x" ,
+.Fn asinf "x"
+and
+.Fn asinl "x"
+return \*(Na and set the global variable
+.Va errno
+to EDOM.
+.Sh SEE ALSO
+.Xr acos 3 ,
+.Xr atan 3 ,
+.Xr atan2 3 ,
+.Xr cos 3 ,
+.Xr cosh 3 ,
+.Xr sin 3 ,
+.Xr sinh 3 ,
+.Xr tan 3 ,
+.Xr tanh 3
diff --git a/contrib/openbsd_libm/man/asinh.3 b/contrib/openbsd_libm/man/asinh.3
new file mode 100644 (file)
index 0000000..6c849c6
--- /dev/null
@@ -0,0 +1,77 @@
+.\"    $OpenBSD: asinh.3,v 1.14 2013/06/05 03:40:26 tedu Exp $
+.\" Copyright (c) 1985, 1991 Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     from: @(#)asinh.3      6.4 (Berkeley) 5/6/91
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt ASINH 3
+.Os
+.Sh NAME
+.Nm asinh ,
+.Nm asinhf ,
+.Nm asinhl
+.Nd inverse hyperbolic sine functions
+.Sh SYNOPSIS
+.In math.h
+.Ft double
+.Fn asinh "double x"
+.Ft float
+.Fn asinhf "float x"
+.Ft long double
+.Fn asinhl "long double x"
+.Sh DESCRIPTION
+The
+.Fn asinh
+function computes the inverse hyperbolic sine
+of the real argument.
+The
+.Fn asinhf
+function is a single precision version of
+.Fn asinh .
+The
+.Fn asinhl
+function is an extended precision version of
+.Fn asinh .
+.Sh RETURN VALUES
+The
+.Fn asinh ,
+.Fn asinhf
+and
+.Fn asinhl
+functions return the inverse hyperbolic sine of
+.Ar x .
+.Sh SEE ALSO
+.Xr acosh 3 ,
+.Xr atanh 3 ,
+.Xr exp 3 ,
+.Xr infnan 3
+.Sh HISTORY
+The
+.Fn asinh
+function appeared in
+.Bx 4.3 .
diff --git a/contrib/openbsd_libm/man/atan.3 b/contrib/openbsd_libm/man/atan.3
new file mode 100644 (file)
index 0000000..0baa1f9
--- /dev/null
@@ -0,0 +1,73 @@
+.\"    $OpenBSD: atan.3,v 1.13 2013/06/05 03:40:26 tedu Exp $
+.\" Copyright (c) 1991 The Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     from: @(#)atan.3       5.1 (Berkeley) 5/2/91
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt ATAN 3
+.Os
+.Sh NAME
+.Nm atan ,
+.Nm atanf ,
+.Nm atanl
+.Nd arc tangent functions of one variable
+.Sh SYNOPSIS
+.In math.h
+.Ft double
+.Fn atan "double x"
+.Ft float
+.Fn atanf "float x"
+.Ft long double
+.Fn atanl "long double x"
+.Sh DESCRIPTION
+The
+.Fn atan
+function computes the principal value of the arc tangent of
+.Fa x
+in the range
+.Bk -words
+.Bq -\*(Pi/2 , +\*(Pi/2 .
+.Ek
+The
+.Fn atanf
+function is a single precision version of
+.Fn atan .
+The
+.Fn atanl
+function is an extended precision version of
+.Fn atan .
+.Sh SEE ALSO
+.Xr acos 3 ,
+.Xr asin 3 ,
+.Xr atan2 3 ,
+.Xr cos 3 ,
+.Xr cosh 3 ,
+.Xr sin 3 ,
+.Xr sinh 3 ,
+.Xr tan 3 ,
+.Xr tanh 3
diff --git a/contrib/openbsd_libm/man/atan2.3 b/contrib/openbsd_libm/man/atan2.3
new file mode 100644 (file)
index 0000000..394f477
--- /dev/null
@@ -0,0 +1,203 @@
+.\"    $OpenBSD: atan2.3,v 1.17 2015/01/15 19:06:31 schwarze Exp $
+.\" Copyright (c) 1991 The Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     from: @(#)atan2.3      5.1 (Berkeley) 5/2/91
+.\"
+.Dd $Mdocdate: January 15 2015 $
+.Dt ATAN2 3
+.Os
+.Sh NAME
+.Nm atan2 ,
+.Nm atan2f ,
+.Nm atan2l
+.Nd arc tangent functions of two variables
+.Sh SYNOPSIS
+.In math.h
+.Ft double
+.Fn atan2 "double y" "double x"
+.Ft float
+.Fn atan2f "float y" "float x"
+.Ft long double
+.Fn atan2l "long double y" "long double x"
+.Sh DESCRIPTION
+The
+.Fn atan2
+function computes the principal value of the arc tangent of
+.Ar y/ Ns Ar x ,
+using the signs of both arguments to determine the quadrant of
+the return value.
+The
+.Fn atan2f
+function is a single precision version of
+.Fn atan2 .
+The
+.Fn atan2l
+function is an extended precision version of
+.Fn atan2 .
+.Sh RETURN VALUES
+The
+.Fn atan2 ,
+.Fn atan2f
+and
+.Fn atan2l
+functions, if successful,
+return the arc tangent of
+.Ar y/ Ns Ar x
+in the range
+.Bk -words
+.Bq \&- Ns \*(Pi , \&+ Ns \*(Pi
+.Ek
+radians.
+If both
+.Ar x
+and
+.Ar y
+are zero, the global variable
+.Va errno
+is set to
+.Er EDOM .
+On the VAX:
+.Bl -column atan_(y,x)_:=____  sign(y)_(Pi_atan2(Xy_xX))___
+.It Fn atan2 y x No := Ta
+.Fn atan y/x Ta
+if
+.Ar x
+> 0,
+.It Ta sign( Ns Ar y Ns )*(\*(Pi -
+.Fn atan "\*(Bay/x\*(Ba" ) Ta
+if
+.Ar x
+< 0,
+.It Ta
+.No 0 Ta
+if
+.Ar x
+=
+.Ar y
+= 0, or
+.It Ta
+.Pf sign( Ar y Ns )*\*(Pi/2 Ta
+if
+.Ar x
+= 0,
+.Ar y
+!= 0.
+.El
+.Sh NOTES
+The function
+.Fn atan2
+defines "if x > 0,"
+.Fn atan2 0 0
+= 0 on a VAX despite that previously
+.Fn atan2 0 0
+may have generated an error message.
+The reasons for assigning a value to
+.Fn atan2 0 0
+are these:
+.Bl -enum -offset indent
+.It
+Programs that test arguments to avoid computing
+.Fn atan2 0 0
+must be indifferent to its value.
+Programs that require it to be invalid are vulnerable
+to diverse reactions to that invalidity on diverse computer systems.
+.It
+The
+.Fn atan2
+function is used mostly to convert from rectangular (x,y)
+to polar
+.if n\
+(r,theta)
+.if t\
+(r,\(*h)
+coordinates that must satisfy x =
+.if n\
+r\(**cos theta
+.if t\
+r\(**cos\(*h
+and y =
+.if n\
+r\(**sin theta.
+.if t\
+r\(**sin\(*h.
+These equations are satisfied when (x=0,y=0)
+is mapped to
+.if n \
+(r=0,theta=0)
+.if t \
+(r=0,\(*h=0)
+on a VAX.
+In general, conversions to polar coordinates
+should be computed thus:
+.Bd -unfilled -offset indent
+.if n \{\
+r      := hypot(x,y);  ... := sqrt(x\(**x+y\(**y)
+theta  := atan2(y,x).
+.\}
+.if t \{\
+r      := hypot(x,y);  ... := \(sr(x\u\s82\s10\d+y\u\s82\s10\d)
+\(*h   := atan2(y,x).
+.\}
+.Ed
+.It
+The foregoing formulas need not be altered to cope in a
+reasonable way with signed zeros and infinities
+on a machine that conforms to IEEE 754 ;
+the versions of
+.Xr hypot 3
+and
+.Fn atan2
+provided for
+such a machine are designed to handle all cases.
+That is why
+.Fn atan2 \(+-0 \-0
+= \(+-\*(Pi
+for instance.
+In general the formulas above are equivalent to these:
+.Bd -unfilled -offset indent
+.if n \
+r := sqrt(x\(**x+y\(**y); if r = 0 then x := copysign(1,x);
+.if t \
+r := \(sr(x\(**x+y\(**y);\0\0if r = 0 then x := copysign(1,x);
+.Ed
+.El
+.Sh SEE ALSO
+.Xr acos 3 ,
+.Xr asin 3 ,
+.Xr atan 3 ,
+.Xr cos 3 ,
+.Xr cosh 3 ,
+.Xr sin 3 ,
+.Xr sinh 3 ,
+.Xr tan 3 ,
+.Xr tanh 3
+.Sh STANDARDS
+The
+.Fn atan2
+function conforms to
+.St -ansiC .
diff --git a/contrib/openbsd_libm/man/atanh.3 b/contrib/openbsd_libm/man/atanh.3
new file mode 100644 (file)
index 0000000..d07efe2
--- /dev/null
@@ -0,0 +1,80 @@
+.\"    $OpenBSD: atanh.3,v 1.15 2013/11/03 18:28:27 martynas Exp $
+.\" Copyright (c) 1985, 1991 Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     from: @(#)atanh.3      5.2 (Berkeley) 5/6/91
+.\"
+.Dd $Mdocdate: November 3 2013 $
+.Dt ATANH 3
+.Os
+.Sh NAME
+.Nm atanh ,
+.Nm atanhf ,
+.Nm atanhl
+.Nd inverse hyperbolic tangent functions
+.Sh SYNOPSIS
+.In math.h
+.Ft double
+.Fn atanh "double x"
+.Ft float
+.Fn atanhf "float x"
+.Ft long double
+.Fn atanhl "long double x"
+.Sh DESCRIPTION
+The
+.Fn atanh
+function computes the inverse hyperbolic tangent
+of the real
+argument
+.Ar x .
+The
+.Fn atanhf
+function is a single precision version of
+.Fn atanh .
+The
+.Fn atanhl
+function is an extended precision version of
+.Fn atanh .
+.Sh RETURN VALUES
+If |x|>=1,
+.Fn atanh "x" ,
+.Fn atanhf "x"
+and
+.Fn atanhl "x"
+return +\*(If, -\*(If or \*(Na, and set the global variable
+.Va errno
+to EDOM.
+.Sh SEE ALSO
+.Xr acosh 3 ,
+.Xr asinh 3 ,
+.Xr exp 3 ,
+.Xr infnan 3
+.Sh HISTORY
+The
+.Fn atanh
+function appeared in
+.Bx 4.3 .
diff --git a/contrib/openbsd_libm/man/cacos.3 b/contrib/openbsd_libm/man/cacos.3
new file mode 100644 (file)
index 0000000..38c64dc
--- /dev/null
@@ -0,0 +1,67 @@
+.\"    $OpenBSD: cacos.3,v 1.2 2013/06/05 03:40:26 tedu Exp $
+.\"
+.\" Copyright (c) 2011 Martynas Venckus <martynas@openbsd.org>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt CACOS 3
+.Os
+.Sh NAME
+.Nm cacos ,
+.Nm cacosf ,
+.Nm cacosl
+.Nd complex circular arc cosine
+.Sh SYNOPSIS
+.In complex.h
+.Ft double complex
+.Fn cacos "double complex z"
+.Ft float complex
+.Fn cacosf "float complex z"
+.Ft long double complex
+.Fn cacosl "long double complex z"
+.Sh DESCRIPTION
+The
+.Fn cacos ,
+.Fn cacosf
+and
+.Fn cacosl
+functions compute the complex circular arc cosine of
+.Fa z .
+.Pp
+For all complex floating-point numbers
+.Fa z ,
+.Bd -literal -offset indent
+cacos(z) = Pi/2 - casin(z).
+.Ed
+.Sh RETURN VALUES
+The
+.Fn cacos ,
+.Fn cacosf
+and
+.Fn cacosl
+functions return the complex circular arc cosine of
+.Fa z
+with unbounded imaginary part, and real part in the interval
+.Bq 0, Pi .
+.Sh SEE ALSO
+.Xr casin 3 ,
+.Xr catan 3
+.Sh STANDARDS
+The
+.Fn cacos ,
+.Fn cacosf
+and
+.Fn cacosl
+functions conform to
+.St -isoC-99 .
diff --git a/contrib/openbsd_libm/man/cacosh.3 b/contrib/openbsd_libm/man/cacosh.3
new file mode 100644 (file)
index 0000000..629ef51
--- /dev/null
@@ -0,0 +1,68 @@
+.\"    $OpenBSD: cacosh.3,v 1.2 2013/06/05 03:40:26 tedu Exp $
+.\"
+.\" Copyright (c) 2011 Martynas Venckus <martynas@openbsd.org>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt CACOSH 3
+.Os
+.Sh NAME
+.Nm cacosh ,
+.Nm cacoshf ,
+.Nm cacoshl
+.Nd complex inverse hyperbolic cosine
+.Sh SYNOPSIS
+.In complex.h
+.Ft double complex
+.Fn cacosh "double complex z"
+.Ft float complex
+.Fn cacoshf "float complex z"
+.Ft long double complex
+.Fn cacoshl "long double complex z"
+.Sh DESCRIPTION
+The
+.Fn cacosh ,
+.Fn cacoshf
+and
+.Fn cacoshl
+functions compute the complex inverse hyperbolic cosine of
+.Fa z .
+.Pp
+For all complex floating-point numbers
+.Fa z ,
+.Bd -literal -offset indent
+cacosh(z) = i acos(z).
+.Ed
+.Sh RETURN VALUES
+The
+.Fn cacosh ,
+.Fn cacoshf
+and
+.Fn cacoshl
+functions return the complex inverse hyperbolic cosine of
+.Fa z
+with imaginary part in the interval
+.Bq -Pi, Pi ,
+and non-negative real part.
+.Sh SEE ALSO
+.Xr casinh 3 ,
+.Xr catanh 3
+.Sh STANDARDS
+The
+.Fn cacosh ,
+.Fn cacoshf
+and
+.Fn cacoshl
+functions conform to
+.St -isoC-99 .
diff --git a/contrib/openbsd_libm/man/carg.3 b/contrib/openbsd_libm/man/carg.3
new file mode 100644 (file)
index 0000000..bfd0376
--- /dev/null
@@ -0,0 +1,59 @@
+.\"    $OpenBSD: carg.3,v 1.2 2013/06/05 03:40:26 tedu Exp $
+.\"
+.\" Copyright (c) 2011 Martynas Venckus <martynas@openbsd.org>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt CARG 3
+.Os
+.Sh NAME
+.Nm carg ,
+.Nm cargf ,
+.Nm cargl
+.Nd complex argument functions
+.Sh SYNOPSIS
+.In complex.h
+.Ft double
+.Fn carg "double complex z"
+.Ft float
+.Fn cargf "float complex z"
+.Ft long double
+.Fn cargl "long double complex z"
+.Sh DESCRIPTION
+The
+.Fn carg ,
+.Fn cargf
+and
+.Fn cargl
+functions compute the argument (also called phase angle) of
+.Fa z ,
+with a branch cut on the negative real axis.
+.Sh RETURN VALUES
+The
+.Fn carg ,
+.Fn cargf
+and
+.Fn cargl
+functions return the argument in the interval
+.Bq -Pi, Pi .
+.Sh SEE ALSO
+.Xr cimag 3
+.Sh STANDARDS
+The
+.Fn carg ,
+.Fn cargf
+and
+.Fn cargl
+functions conform to
+.St -isoC-99 .
diff --git a/contrib/openbsd_libm/man/casin.3 b/contrib/openbsd_libm/man/casin.3
new file mode 100644 (file)
index 0000000..ddc8925
--- /dev/null
@@ -0,0 +1,67 @@
+.\"    $OpenBSD: casin.3,v 1.2 2013/06/05 03:40:26 tedu Exp $
+.\"
+.\" Copyright (c) 2011 Martynas Venckus <martynas@openbsd.org>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt CASIN 3
+.Os
+.Sh NAME
+.Nm casin ,
+.Nm casinf ,
+.Nm casinl
+.Nd complex circular arc sine
+.Sh SYNOPSIS
+.In complex.h
+.Ft double complex
+.Fn casin "double complex z"
+.Ft float complex
+.Fn casinf "float complex z"
+.Ft long double complex
+.Fn casinl "long double complex z"
+.Sh DESCRIPTION
+The
+.Fn casin ,
+.Fn casinf
+and
+.Fn casinl
+functions compute the complex circular arc sine of
+.Fa z .
+.Pp
+For all complex floating-point numbers
+.Fa z ,
+.Bd -literal -offset indent
+casin(z) = -i clog(iz + csqrt(1 - z^2)).
+.Ed
+.Sh RETURN VALUES
+The
+.Fn casin ,
+.Fn casinf
+and
+.Fn casinl
+functions return the complex circular arc sine of
+.Fa z
+with unbounded imaginary part, and real part in the interval
+.Bq -Pi/2, Pi/2 .
+.Sh SEE ALSO
+.Xr cacos 3 ,
+.Xr catan 3
+.Sh STANDARDS
+The
+.Fn casin ,
+.Fn casinf
+and
+.Fn casinl
+functions conform to
+.St -isoC-99 .
diff --git a/contrib/openbsd_libm/man/casinh.3 b/contrib/openbsd_libm/man/casinh.3
new file mode 100644 (file)
index 0000000..67cba7b
--- /dev/null
@@ -0,0 +1,68 @@
+.\"    $OpenBSD: casinh.3,v 1.2 2013/06/05 03:40:26 tedu Exp $
+.\"
+.\" Copyright (c) 2011 Martynas Venckus <martynas@openbsd.org>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt CASINH 3
+.Os
+.Sh NAME
+.Nm casinh ,
+.Nm casinhf ,
+.Nm casinhl
+.Nd complex inverse hyperbolic sine
+.Sh SYNOPSIS
+.In complex.h
+.Ft double complex
+.Fn casinh "double complex z"
+.Ft float complex
+.Fn casinhf "float complex z"
+.Ft long double complex
+.Fn casinhl "long double complex z"
+.Sh DESCRIPTION
+The
+.Fn casinh ,
+.Fn casinhf
+and
+.Fn casinhl
+functions compute the complex inverse hyperbolic sine of
+.Fa z .
+.Pp
+For all complex floating-point numbers
+.Fa z ,
+.Bd -literal -offset indent
+casinh(z) = -i casin(iz).
+.Ed
+.Sh RETURN VALUES
+The
+.Fn casinh ,
+.Fn casinhf
+and
+.Fn casinhl
+functions return the complex inverse hyperbolic sine of
+.Fa z
+with imaginary part in the interval
+.Bq -Pi/2, Pi/2 ,
+and unbounded real part.
+.Sh SEE ALSO
+.Xr cacosh 3 ,
+.Xr catanh 3
+.Sh STANDARDS
+The
+.Fn casinh ,
+.Fn casinhf
+and
+.Fn casinhl
+functions conform to
+.St -isoC-99 .
diff --git a/contrib/openbsd_libm/man/catan.3 b/contrib/openbsd_libm/man/catan.3
new file mode 100644 (file)
index 0000000..04ed54e
--- /dev/null
@@ -0,0 +1,69 @@
+.\"    $OpenBSD: catan.3,v 1.2 2013/06/05 03:40:26 tedu Exp $
+.\"
+.\" Copyright (c) 2011 Martynas Venckus <martynas@openbsd.org>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt CATAN 3
+.Os
+.Sh NAME
+.Nm catan ,
+.Nm catanf ,
+.Nm catanl
+.Nd complex circular arc tangent
+.Sh SYNOPSIS
+.In complex.h
+.Ft double complex
+.Fn catan "double complex z"
+.Ft float complex
+.Fn catanf "float complex z"
+.Ft long double complex
+.Fn catanl "long double complex z"
+.Sh DESCRIPTION
+The
+.Fn catan ,
+.Fn catanf
+and
+.Fn catanl
+functions compute the complex circular arc tangent of
+.Fa z .
+.Pp
+If
+.Fa z
+= x + iy, then
+.Bd -literal -offset indent
+Re catan(z) = 1/2 * atan(2x / (1 - x^2 - y^2)) + k Pi.
+Im catan(z) = 1/4 * log((x^2 + (y + 1)^2) / (x^2 + (y - 1)^2)).
+.Ed
+.Sh RETURN VALUES
+The
+.Fn catan ,
+.Fn catanf
+and
+.Fn catanl
+functions return the complex circular arc tangent of
+.Fa z
+with unbounded imaginary part, and real part in the interval
+.Bq -Pi/2, Pi/2 .
+.Sh SEE ALSO
+.Xr cacos 3 ,
+.Xr casin 3
+.Sh STANDARDS
+The
+.Fn catan ,
+.Fn catanf
+and
+.Fn catanl
+functions conform to
+.St -isoC-99 .
diff --git a/contrib/openbsd_libm/man/catanh.3 b/contrib/openbsd_libm/man/catanh.3
new file mode 100644 (file)
index 0000000..7d78111
--- /dev/null
@@ -0,0 +1,68 @@
+.\"    $OpenBSD: catanh.3,v 1.2 2013/06/05 03:40:26 tedu Exp $
+.\"
+.\" Copyright (c) 2011 Martynas Venckus <martynas@openbsd.org>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt CATANH 3
+.Os
+.Sh NAME
+.Nm catanh ,
+.Nm catanhf ,
+.Nm catanhl
+.Nd complex inverse hyperbolic tangent
+.Sh SYNOPSIS
+.In complex.h
+.Ft double complex
+.Fn catanh "double complex z"
+.Ft float complex
+.Fn catanhf "float complex z"
+.Ft long double complex
+.Fn catanhl "long double complex z"
+.Sh DESCRIPTION
+The
+.Fn catanh ,
+.Fn catanhf
+and
+.Fn catanhl
+functions compute the complex inverse hyperbolic tangent of
+.Fa z .
+.Pp
+For all complex floating-point numbers
+.Fa z ,
+.Bd -literal -offset indent
+catanh(z) = -i catan(iz).
+.Ed
+.Sh RETURN VALUES
+The
+.Fn catanh ,
+.Fn catanhf
+and
+.Fn catanhl
+functions return the complex inverse hyperbolic tangent of
+.Fa z
+with imaginary part in the interval
+.Bq -Pi/2, Pi/2 ,
+and unbounded real part.
+.Sh SEE ALSO
+.Xr cacosh 3 ,
+.Xr casinh 3
+.Sh STANDARDS
+The
+.Fn catanh ,
+.Fn catanhf
+and
+.Fn catanhl
+functions conform to
+.St -isoC-99 .
diff --git a/contrib/openbsd_libm/man/ccos.3 b/contrib/openbsd_libm/man/ccos.3
new file mode 100644 (file)
index 0000000..2673925
--- /dev/null
@@ -0,0 +1,66 @@
+.\"    $OpenBSD: ccos.3,v 1.2 2013/06/05 03:40:26 tedu Exp $
+.\"
+.\" Copyright (c) 2011 Martynas Venckus <martynas@openbsd.org>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt CCOS 3
+.Os
+.Sh NAME
+.Nm ccos ,
+.Nm ccosf ,
+.Nm ccosl
+.Nd complex circular cosine
+.Sh SYNOPSIS
+.In complex.h
+.Ft double complex
+.Fn ccos "double complex z"
+.Ft float complex
+.Fn ccosf "float complex z"
+.Ft long double complex
+.Fn ccosl "long double complex z"
+.Sh DESCRIPTION
+The
+.Fn ccos ,
+.Fn ccosf
+and
+.Fn ccosl
+functions compute the complex circular cosine of
+.Fa z .
+.Pp
+If
+.Fa z
+= x + iy, then
+.Bd -literal -offset indent
+ccos(z) = cos(x) cosh(y) - i sin(x) sinh(y).
+.Ed
+.Sh RETURN VALUES
+The
+.Fn ccos ,
+.Fn ccosf
+and
+.Fn ccosl
+functions return the complex circular cosine of
+.Fa z .
+.Sh SEE ALSO
+.Xr csin 3 ,
+.Xr ctan 3
+.Sh STANDARDS
+The
+.Fn ccos ,
+.Fn ccosf
+and
+.Fn ccosl
+functions conform to
+.St -isoC-99 .
diff --git a/contrib/openbsd_libm/man/ccosh.3 b/contrib/openbsd_libm/man/ccosh.3
new file mode 100644 (file)
index 0000000..35bbafe
--- /dev/null
@@ -0,0 +1,66 @@
+.\"    $OpenBSD: ccosh.3,v 1.2 2013/06/05 03:40:26 tedu Exp $
+.\"
+.\" Copyright (c) 2011 Martynas Venckus <martynas@openbsd.org>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt CCOSH 3
+.Os
+.Sh NAME
+.Nm ccosh ,
+.Nm ccoshf ,
+.Nm ccoshl
+.Nd complex hyperbolic cosine
+.Sh SYNOPSIS
+.In complex.h
+.Ft double complex
+.Fn ccosh "double complex z"
+.Ft float complex
+.Fn ccoshf "float complex z"
+.Ft long double complex
+.Fn ccoshl "long double complex z"
+.Sh DESCRIPTION
+The
+.Fn ccosh ,
+.Fn ccoshf
+and
+.Fn ccoshl
+functions compute the complex hyperbolic cosine of
+.Fa z .
+.Pp
+If
+.Fa z
+= x + iy, then
+.Bd -literal -offset indent
+ccosh(z) = cosh(x) cos(y) + i sinh(x) sin(y).
+.Ed
+.Sh RETURN VALUES
+The
+.Fn ccosh ,
+.Fn ccoshf
+and
+.Fn ccoshl
+functions return the complex hyperbolic cosine of
+.Fa z .
+.Sh SEE ALSO
+.Xr csinh 3 ,
+.Xr ctanh 3
+.Sh STANDARDS
+The
+.Fn ccosh ,
+.Fn ccoshf
+and
+.Fn ccoshl
+functions conform to
+.St -isoC-99 .
diff --git a/contrib/openbsd_libm/man/ceil.3 b/contrib/openbsd_libm/man/ceil.3
new file mode 100644 (file)
index 0000000..d71e2cb
--- /dev/null
@@ -0,0 +1,71 @@
+.\"    $OpenBSD: ceil.3,v 1.15 2013/08/14 06:32:29 jmc Exp $
+.\" Copyright (c) 1991 The Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     from: @(#)ceil.3       5.1 (Berkeley) 5/2/91
+.\"
+.Dd $Mdocdate: August 14 2013 $
+.Dt CEIL 3
+.Os
+.Sh NAME
+.Nm ceil ,
+.Nm ceilf ,
+.Nm ceill
+.Nd round to smallest integral value greater than or equal to x
+.Sh SYNOPSIS
+.In math.h
+.Ft double
+.Fn ceil "double x"
+.Ft float
+.Fn ceilf "float x"
+.Ft long double
+.Fn ceill "long double x"
+.Sh DESCRIPTION
+The
+.Fn ceil
+function returns the smallest integral value
+greater than or equal to
+.Fa x .
+The
+.Fn ceilf
+function is a single precision version of
+.Fn ceil .
+The
+.Fn ceill
+function is an extended precision version of
+.Fn ceil .
+.Sh SEE ALSO
+.Xr abs 3 ,
+.Xr fabs 3 ,
+.Xr floor 3 ,
+.Xr nextafter 3 ,
+.Xr rint 3
+.Sh STANDARDS
+The
+.Fn ceil
+function conforms to
+.St -ansiC .
diff --git a/contrib/openbsd_libm/man/cexp.3 b/contrib/openbsd_libm/man/cexp.3
new file mode 100644 (file)
index 0000000..c11c2dc
--- /dev/null
@@ -0,0 +1,66 @@
+.\"    $OpenBSD: cexp.3,v 1.2 2013/06/05 03:40:26 tedu Exp $
+.\"
+.\" Copyright (c) 2011 Martynas Venckus <martynas@openbsd.org>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt CEXP 3
+.Os
+.Sh NAME
+.Nm cexp ,
+.Nm cexpf ,
+.Nm cexpl
+.Nd complex exponential functions
+.Sh SYNOPSIS
+.In complex.h
+.Ft double complex
+.Fn cexp "double complex z"
+.Ft float complex
+.Fn cexpf "float complex z"
+.Ft long double complex
+.Fn cexpl "long double complex z"
+.Sh DESCRIPTION
+The
+.Fn cexp ,
+.Fn cexpf
+and
+.Fn cexpl
+functions compute the exponential of
+.Fa z .
+.Pp
+If
+.Fa z
+= x + iy, then
+.Bd -literal -offset indent
+cexp(z) = exp(x) cos(y) + i exp(x) sin(y).
+.Ed
+.Sh RETURN VALUES
+The
+.Fn cexp ,
+.Fn cexpf
+and
+.Fn cexpl
+functions return the exponential of
+.Fa z .
+.Sh SEE ALSO
+.Xr clog 3 ,
+.Xr cpow 3
+.Sh STANDARDS
+The
+.Fn cexp ,
+.Fn cexpf
+and
+.Fn cexpl
+functions conform to
+.St -isoC-99 .
diff --git a/contrib/openbsd_libm/man/cimag.3 b/contrib/openbsd_libm/man/cimag.3
new file mode 100644 (file)
index 0000000..c9025c0
--- /dev/null
@@ -0,0 +1,59 @@
+.\"    $OpenBSD: cimag.3,v 1.3 2013/06/05 03:40:26 tedu Exp $
+.\"
+.\" Copyright (c) 2010 Todd C. Miller <Todd.Miller@courtesan.com>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt CIMAG 3
+.Os
+.Sh NAME
+.Nm cimag ,
+.Nm cimagf ,
+.Nm cimagl
+.Nd compute the imaginary part of a complex number
+.Sh SYNOPSIS
+.In complex.h
+.Ft double
+.Fn cimag "double complex z"
+.Ft float
+.Fn cimagf "float complex z"
+.Ft long double
+.Fn cimagl "long double complex z"
+.Sh DESCRIPTION
+The
+.Fn cimag ,
+.Fn cimagf
+and
+.Fn cimagl
+functions compute the imaginary part of
+.Fa z .
+.Sh RETURN VALUES
+The
+.Fn cimag ,
+.Fn cimagf
+and
+.Fn cimagl
+functions return the imaginary part of the complex number
+.Fa z
+as a real number.
+.Sh SEE ALSO
+.Xr carg 3
+.Sh STANDARDS
+The
+.Fn cimag ,
+.Fn cimagf
+and
+.Fn cimagl
+functions conform to
+.St -isoC-99 .
diff --git a/contrib/openbsd_libm/man/clog.3 b/contrib/openbsd_libm/man/clog.3
new file mode 100644 (file)
index 0000000..b9dcc27
--- /dev/null
@@ -0,0 +1,73 @@
+.\"    $OpenBSD: clog.3,v 1.2 2013/06/05 03:40:26 tedu Exp $
+.\"
+.\" Copyright (c) 2011 Martynas Venckus <martynas@openbsd.org>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt CLOG 3
+.Os
+.Sh NAME
+.Nm clog ,
+.Nm clogf ,
+.Nm clogl
+.Nd complex natural logarithm
+.Sh SYNOPSIS
+.In complex.h
+.Ft double complex
+.Fn clog "double complex z"
+.Ft float complex
+.Fn clogf "float complex z"
+.Ft long double complex
+.Fn clogl "long double complex z"
+.Sh DESCRIPTION
+The
+.Fn clog ,
+.Fn clogf
+and
+.Fn clogl
+functions compute the complex logarithm to the base
+.Ms e
+(2.718...) of
+.Fa z .
+.Pp
+If
+.Fa z
+= x + iy, then
+.Bd -literal -offset indent
+clog(z) = log(sqrt(x^2 + y^2)) + i atan(y / x).
+.Ed
+.Sh RETURN VALUES
+The
+.Fn clog ,
+.Fn clogf
+and
+.Fn clogl
+functions return the complex logarithm to the base
+.Ms e
+of
+.Fa z
+with imaginary part in the interval
+.Bq -Pi, Pi ,
+and unbounded real part.
+.Sh SEE ALSO
+.Xr cexp 3 ,
+.Xr cpow 3
+.Sh STANDARDS
+The
+.Fn clog ,
+.Fn clogf
+and
+.Fn clogl
+functions conform to
+.St -isoC-99 .
diff --git a/contrib/openbsd_libm/man/conj.3 b/contrib/openbsd_libm/man/conj.3
new file mode 100644 (file)
index 0000000..2e26dda
--- /dev/null
@@ -0,0 +1,59 @@
+.\"    $OpenBSD: conj.3,v 1.4 2013/06/05 03:40:26 tedu Exp $
+.\"
+.\" Copyright (c) 2010 Todd C. Miller <Todd.Miller@courtesan.com>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt CONJ 3
+.Os
+.Sh NAME
+.Nm conj ,
+.Nm conjf ,
+.Nm conjl
+.Nd compute the complex conjugate
+.Sh SYNOPSIS
+.In complex.h
+.Ft double complex
+.Fn conj "double complex z"
+.Ft float complex
+.Fn conjf "float complex z"
+.Ft long double complex
+.Fn conjl "long double complex z"
+.Sh DESCRIPTION
+The
+.Fn conj ,
+.Fn conjf
+and
+.Fn conjl
+functions reverse the sign of the imaginary part of
+.Fa z ,
+producing the complex conjugate.
+.Sh RETURN VALUES
+The
+.Fn conj ,
+.Fn conjf
+and
+.Fn conjl
+functions return the complex conjugate of the complex number
+.Fa z .
+.Sh SEE ALSO
+.Xr carg 3
+.Sh STANDARDS
+The
+.Fn conj ,
+.Fn conjf
+and
+.Fn conjl
+functions conform to
+.St -isoC-99 .
diff --git a/contrib/openbsd_libm/man/copysign.3 b/contrib/openbsd_libm/man/copysign.3
new file mode 100644 (file)
index 0000000..982fdb5
--- /dev/null
@@ -0,0 +1,76 @@
+.\"    $OpenBSD: copysign.3,v 1.4 2013/06/05 03:40:26 tedu Exp $
+.\" Copyright (c) 1985, 1991 Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     from: @(#)ieee.3       6.4 (Berkeley) 5/6/91
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt COPYSIGN 3
+.Os
+.Sh NAME
+.Nm copysign ,
+.Nm copysignf ,
+.Nm copysignl
+.Nd copy sign
+.Sh SYNOPSIS
+.In math.h
+.Ft double
+.Fn copysign "double x" "double y"
+.Ft float
+.Fn copysignf "float x" "float y"
+.Ft long double
+.Fn copysignl "long double x" "long double y"
+.Sh DESCRIPTION
+.Fn copysign
+returns
+.Fa x
+with its sign changed to
+.Fa y Ns 's.
+The
+.Fn copysignf
+function is a single precision version of
+.Fn copysign .
+The
+.Fn copysignl
+function is an extended precision version of
+.Fn copysign .
+.Sh SEE ALSO
+.Xr fabs 3
+.Sh STANDARDS
+.St -ieee754
+.Sh HISTORY
+The
+.Nm copysign ,
+.Nm copysignf
+and
+.Nm copysignl
+functions appeared in
+.Bx 4.3 ,
+.Nx 1.1
+and
+.Ox 4.5 ,
+respectively.
diff --git a/contrib/openbsd_libm/man/cos.3 b/contrib/openbsd_libm/man/cos.3
new file mode 100644 (file)
index 0000000..1e79372
--- /dev/null
@@ -0,0 +1,84 @@
+.\"    $OpenBSD: cos.3,v 1.15 2013/06/05 03:40:26 tedu Exp $
+.\" Copyright (c) 1991 The Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     from: @(#)cos.3        5.1 (Berkeley) 5/2/91
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt COS 3
+.Os
+.Sh NAME
+.Nm cos ,
+.Nm cosf ,
+.Nm cosl
+.Nd cosine functions
+.Sh SYNOPSIS
+.In math.h
+.Ft double
+.Fn cos "double x"
+.Ft float
+.Fn cosf "float x"
+.Ft long double
+.Fn cosl "long double x"
+.Sh DESCRIPTION
+The
+.Fn cos
+function computes the cosine of
+.Fa x
+(measured in radians).
+The
+.Fn cosf
+function is a single precision version of
+.Fn cos .
+The
+.Fn cosl
+function is an extended precision version of
+.Fn cos .
+A large magnitude argument may yield a result with little or no
+significance.
+.Sh RETURN VALUES
+The
+.Fn cos ,
+.Fn cosf
+and
+.Fn cosl
+functions return the cosine value.
+.Sh SEE ALSO
+.Xr acos 3 ,
+.Xr asin 3 ,
+.Xr atan 3 ,
+.Xr atan2 3 ,
+.Xr cosh 3 ,
+.Xr sin 3 ,
+.Xr sinh 3 ,
+.Xr tan 3 ,
+.Xr tanh 3
+.Sh STANDARDS
+The
+.Fn cos
+function conforms to
+.St -ansiC .
diff --git a/contrib/openbsd_libm/man/cosh.3 b/contrib/openbsd_libm/man/cosh.3
new file mode 100644 (file)
index 0000000..907f5b3
--- /dev/null
@@ -0,0 +1,83 @@
+.\"    $OpenBSD: cosh.3,v 1.15 2013/11/03 18:28:27 martynas Exp $
+.\" Copyright (c) 1989, 1991 The Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     from: @(#)cosh.3       5.1 (Berkeley) 5/2/91
+.\"
+.Dd $Mdocdate: November 3 2013 $
+.Dt COSH 3
+.Os
+.Sh NAME
+.Nm cosh ,
+.Nm coshf ,
+.Nm coshl
+.Nd hyperbolic cosine functions
+.Sh SYNOPSIS
+.In math.h
+.Ft double
+.Fn cosh "double x"
+.Ft float
+.Fn coshf "float x"
+.Ft long double
+.Fn coshl "long double x"
+.Sh DESCRIPTION
+The
+.Fn cosh
+function computes the hyperbolic cosine of
+.Fa x .
+The
+.Fn coshf
+function is a single precision version of
+.Fn cosh .
+The
+.Fn coshl
+function is an extended precision version of
+.Fn cosh .
+.Sh RETURN VALUES
+If the magnitude of x is too large,
+.Fn cosh "x" ,
+.Fn coshf "x"
+and
+.Fn coshl "x"
+return \*(If and set the global variable
+.Va errno
+to ERANGE.
+.Sh SEE ALSO
+.Xr acos 3 ,
+.Xr asin 3 ,
+.Xr atan 3 ,
+.Xr atan2 3 ,
+.Xr cos 3 ,
+.Xr sin 3 ,
+.Xr sinh 3 ,
+.Xr tan 3 ,
+.Xr tanh 3
+.Sh HISTORY
+The
+.Fn cosh
+function first appeared in
+.At v7 .
diff --git a/contrib/openbsd_libm/man/cpow.3 b/contrib/openbsd_libm/man/cpow.3
new file mode 100644 (file)
index 0000000..890066b
--- /dev/null
@@ -0,0 +1,64 @@
+.\"    $OpenBSD: cpow.3,v 1.3 2013/06/05 03:40:26 tedu Exp $
+.\"
+.\" Copyright (c) 2011 Martynas Venckus <martynas@openbsd.org>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt CPOW 3
+.Os
+.Sh NAME
+.Nm cpow ,
+.Nm cpowf ,
+.Nm cpowl
+.Nd complex power functions
+.Sh SYNOPSIS
+.In complex.h
+.Ft double complex
+.Fn cpow "double complex x" "double complex z"
+.Ft float complex
+.Fn cpowf "float complex x" "float complex z"
+.Ft long double complex
+.Fn cpowl "long double complex x" "long double complex z"
+.Sh DESCRIPTION
+The
+.Fn cpow ,
+.Fn cpowf
+and
+.Fn cpowl
+functions compute the complex number
+.Fa x
+raised to the complex power
+.Fa z ,
+with a branch cut along the negative real axis for the first argument.
+.Sh RETURN VALUES
+The
+.Fn cpow ,
+.Fn cpowf
+and
+.Fn cpowl
+functions return the complex number
+.Fa x
+raised to the complex power
+.Fa z .
+.Sh SEE ALSO
+.Xr cexp 3 ,
+.Xr clog 3
+.Sh STANDARDS
+The
+.Fn cpow ,
+.Fn cpowf
+and
+.Fn cpowl
+functions conform to
+.St -isoC-99 .
diff --git a/contrib/openbsd_libm/man/cproj.3 b/contrib/openbsd_libm/man/cproj.3
new file mode 100644 (file)
index 0000000..a61744d
--- /dev/null
@@ -0,0 +1,67 @@
+.\"    $OpenBSD: cproj.3,v 1.4 2013/11/03 18:28:27 martynas Exp $
+.\"
+.\" Copyright (c) 2010 Todd C. Miller <Todd.Miller@courtesan.com>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd $Mdocdate: November 3 2013 $
+.Dt CPROJ 3
+.Os
+.Sh NAME
+.Nm cproj ,
+.Nm cprojf ,
+.Nm cprojl
+.Nd compute projection onto Riemann sphere
+.Sh SYNOPSIS
+.In complex.h
+.Ft double complex
+.Fn cproj "double complex z"
+.Ft float complex
+.Fn cprojf "float complex z"
+.Ft long double complex
+.Fn cprojl "long double complex z"
+.Sh DESCRIPTION
+The
+.Fn cproj ,
+.Fn cprojf
+and
+.Fn cprojl
+functions compute a projection of
+.Fa z
+onto the Riemann sphere.
+.Sh RETURN VALUES
+The
+.Fn cproj ,
+.Fn cprojf
+and
+.Fn cprojl
+functions return
+.Fa z
+for all finite complex numbers.
+If
+.Fa z
+has an infinite part (even if the other part is \*(Na),
+they return the equivalent of:
+.Bd -literal -offset indent
+INFINITY + I * copysign(0.0, cimag(z))
+.Ed
+.Sh SEE ALSO
+.Xr cimag 3
+.Sh STANDARDS
+The
+.Fn cproj ,
+.Fn cprojf
+and
+.Fn cprojl
+functions conform to
+.St -isoC-99 .
diff --git a/contrib/openbsd_libm/man/creal.3 b/contrib/openbsd_libm/man/creal.3
new file mode 100644 (file)
index 0000000..97c7332
--- /dev/null
@@ -0,0 +1,58 @@
+.\"    $OpenBSD: creal.3,v 1.2 2013/06/05 03:40:26 tedu Exp $
+.\"
+.\" Copyright (c) 2011 Martynas Venckus <martynas@openbsd.org>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt CREAL 3
+.Os
+.Sh NAME
+.Nm creal ,
+.Nm crealf ,
+.Nm creall
+.Nd complex real functions
+.Sh SYNOPSIS
+.In complex.h
+.Ft double
+.Fn creal "double complex z"
+.Ft float
+.Fn crealf "float complex z"
+.Ft long double
+.Fn creall "long double complex z"
+.Sh DESCRIPTION
+The
+.Fn creal ,
+.Fn crealf
+and
+.Fn creall
+functions compute the real part of
+.Fa z .
+.Sh RETURN VALUES
+The
+.Fn creal ,
+.Fn crealf
+and
+.Fn creall
+functions return the real part of
+.Fa z .
+.Sh SEE ALSO
+.Xr carg 3
+.Sh STANDARDS
+The
+.Fn creal ,
+.Fn crealf
+and
+.Fn creall
+functions conform to
+.St -isoC-99 .
diff --git a/contrib/openbsd_libm/man/csin.3 b/contrib/openbsd_libm/man/csin.3
new file mode 100644 (file)
index 0000000..7ec6c39
--- /dev/null
@@ -0,0 +1,66 @@
+.\"    $OpenBSD: csin.3,v 1.2 2013/06/05 03:40:26 tedu Exp $
+.\"
+.\" Copyright (c) 2011 Martynas Venckus <martynas@openbsd.org>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt CSIN 3
+.Os
+.Sh NAME
+.Nm csin ,
+.Nm csinf ,
+.Nm csinl
+.Nd complex circular sine
+.Sh SYNOPSIS
+.In complex.h
+.Ft double complex
+.Fn csin "double complex z"
+.Ft float complex
+.Fn csinf "float complex z"
+.Ft long double complex
+.Fn csinl "long double complex z"
+.Sh DESCRIPTION
+The
+.Fn csin ,
+.Fn csinf
+and
+.Fn csinl
+functions compute the complex circular sine of
+.Fa z .
+.Pp
+If
+.Fa z
+= x + iy, then
+.Bd -literal -offset indent
+csin(z) = sin(x) cosh(y) + i cos(x) sinh(y).
+.Ed
+.Sh RETURN VALUES
+The
+.Fn csin ,
+.Fn csinf
+and
+.Fn csinl
+functions return the complex circular sine of
+.Fa z .
+.Sh SEE ALSO
+.Xr ccos 3 ,
+.Xr ctan 3
+.Sh STANDARDS
+The
+.Fn csin ,
+.Fn csinf
+and
+.Fn csinl
+functions conform to
+.St -isoC-99 .
diff --git a/contrib/openbsd_libm/man/csinh.3 b/contrib/openbsd_libm/man/csinh.3
new file mode 100644 (file)
index 0000000..0485883
--- /dev/null
@@ -0,0 +1,65 @@
+.\"    $OpenBSD: csinh.3,v 1.2 2013/06/05 03:40:26 tedu Exp $
+.\"
+.\" Copyright (c) 2011 Martynas Venckus <martynas@openbsd.org>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt CSINH 3
+.Os
+.Sh NAME
+.Nm csinh ,
+.Nm csinhf ,
+.Nm csinhl
+.Nd complex hyperbolic sine
+.Sh SYNOPSIS
+.In complex.h
+.Ft double complex
+.Fn csinh "double complex z"
+.Ft float complex
+.Fn csinhf "float complex z"
+.Ft long double complex
+.Fn csinhl "long double complex z"
+.Sh DESCRIPTION
+The
+.Fn csinh ,
+.Fn csinhf
+and
+.Fn csinhl
+functions compute the complex hyperbolic sine of
+.Fa z .
+.Pp
+For all complex floating-point numbers
+.Fa z ,
+.Bd -literal -offset indent
+csinh(z) = (cexp(z) - cexp(-z)) / 2.
+.Ed
+.Sh RETURN VALUES
+The
+.Fn csinh ,
+.Fn csinhf
+and
+.Fn csinhl
+functions return the complex hyperbolic sine of
+.Fa z .
+.Sh SEE ALSO
+.Xr ccosh 3 ,
+.Xr ctanh 3
+.Sh STANDARDS
+The
+.Fn csinh ,
+.Fn csinhf
+and
+.Fn csinhl
+functions conform to
+.St -isoC-99 .
diff --git a/contrib/openbsd_libm/man/csqrt.3 b/contrib/openbsd_libm/man/csqrt.3
new file mode 100644 (file)
index 0000000..8c8e03a
--- /dev/null
@@ -0,0 +1,72 @@
+.\"    $OpenBSD: csqrt.3,v 1.2 2013/06/05 03:40:26 tedu Exp $
+.\"
+.\" Copyright (c) 2011 Martynas Venckus <martynas@openbsd.org>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt CSQRT 3
+.Os
+.Sh NAME
+.Nm csqrt ,
+.Nm csqrtf ,
+.Nm csqrtl
+.Nd complex square root
+.Sh SYNOPSIS
+.In complex.h
+.Ft double complex
+.Fn csqrt "double complex z"
+.Ft float complex
+.Fn csqrtf "float complex z"
+.Ft long double complex
+.Fn csqrtl "long double complex z"
+.Sh DESCRIPTION
+The
+.Fn csqrt ,
+.Fn csqrtf
+and
+.Fn csqrtl
+functions compute the complex square root of
+.Fa z .
+.Pp
+If
+.Fa z
+= x + iy, then
+.Bd -literal -offset indent
+Re csqrt(z) = [ (|z| + x) / 2 ]^(1/2).
+Im csqrt(z) = [ (|z| - x) / 2 ]^(1/2).
+.Ed
+.Pp
+Note that -csqrt(z) is also a square root of
+.Fa z .
+The root chosen
+is always in the right half plane and Im csqrt(z) has the same sign
+as y.
+.Sh RETURN VALUES
+The
+.Fn csqrt ,
+.Fn csqrtf
+and
+.Fn csqrtl
+functions return the complex square root of
+.Fa z .
+.Sh SEE ALSO
+.Xr cpow 3
+.Sh STANDARDS
+The
+.Fn csqrt ,
+.Fn csqrtf
+and
+.Fn csqrtl
+functions conform to
+.St -isoC-99 .
diff --git a/contrib/openbsd_libm/man/ctan.3 b/contrib/openbsd_libm/man/ctan.3
new file mode 100644 (file)
index 0000000..ae1a547
--- /dev/null
@@ -0,0 +1,72 @@
+.\"    $OpenBSD: ctan.3,v 1.2 2013/06/05 03:40:26 tedu Exp $
+.\"
+.\" Copyright (c) 2011 Martynas Venckus <martynas@openbsd.org>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt CTAN 3
+.Os
+.Sh NAME
+.Nm ctan ,
+.Nm ctanf ,
+.Nm ctanl
+.Nd complex circular tangent
+.Sh SYNOPSIS
+.In complex.h
+.Ft double complex
+.Fn ctan "double complex z"
+.Ft float complex
+.Fn ctanf "float complex z"
+.Ft long double complex
+.Fn ctanl "long double complex z"
+.Sh DESCRIPTION
+The
+.Fn ctan ,
+.Fn ctanf
+and
+.Fn ctanl
+functions compute the complex circular tangent of
+.Fa z .
+.Pp
+If
+.Fa z
+= x + iy, then
+.Bd -literal -offset indent
+ctan(z) = (sin(2x) + i sinh(2y)) / (cos(2x) + cosh(2y)).
+.Ed
+.Pp
+On the real axis the denominator is zero at odd multiples of Pi/2.
+The denominator is evaluated by its Taylor series near these points.
+.Bd -literal -offset indent
+ctan(z) = -i ctanh(iz).
+.Ed
+.Sh RETURN VALUES
+The
+.Fn ctan ,
+.Fn ctanf
+and
+.Fn ctanl
+functions return the complex circular tangent of
+.Fa z .
+.Sh SEE ALSO
+.Xr ccos 3 ,
+.Xr csin 3
+.Sh STANDARDS
+The
+.Fn ctan ,
+.Fn ctanf
+and
+.Fn ctanl
+functions conform to
+.St -isoC-99 .
diff --git a/contrib/openbsd_libm/man/ctanh.3 b/contrib/openbsd_libm/man/ctanh.3
new file mode 100644 (file)
index 0000000..304e49a
--- /dev/null
@@ -0,0 +1,66 @@
+.\"    $OpenBSD: ctanh.3,v 1.2 2013/06/05 03:40:26 tedu Exp $
+.\"
+.\" Copyright (c) 2011 Martynas Venckus <martynas@openbsd.org>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt CTANH 3
+.Os
+.Sh NAME
+.Nm ctanh ,
+.Nm ctanhf ,
+.Nm ctanhl
+.Nd complex hyperbolic tangent
+.Sh SYNOPSIS
+.In complex.h
+.Ft double complex
+.Fn ctanh "double complex z"
+.Ft float complex
+.Fn ctanhf "float complex z"
+.Ft long double complex
+.Fn ctanhl "long double complex z"
+.Sh DESCRIPTION
+The
+.Fn ctanh ,
+.Fn ctanhf
+and
+.Fn ctanhl
+functions compute the complex hyperbolic tangent of
+.Fa z .
+.Pp
+If
+.Fa z
+= x + iy, then
+.Bd -literal -offset indent
+ctanh(z) = (sinh(2x) + i sin(2y)) / (cosh(2x) + cos(2y)).
+.Ed
+.Sh RETURN VALUES
+The
+.Fn ctanh ,
+.Fn ctanhf
+and
+.Fn ctanhl
+functions return the complex hyperbolic tangent of
+.Fa z .
+.Sh SEE ALSO
+.Xr ccosh 3 ,
+.Xr csinh 3
+.Sh STANDARDS
+The
+.Fn ctanh ,
+.Fn ctanhf
+and
+.Fn ctanhl
+functions conform to
+.St -isoC-99 .
diff --git a/contrib/openbsd_libm/man/erf.3 b/contrib/openbsd_libm/man/erf.3
new file mode 100644 (file)
index 0000000..952bd79
--- /dev/null
@@ -0,0 +1,104 @@
+.\"    $OpenBSD: erf.3,v 1.14 2013/06/05 03:40:26 tedu Exp $
+.\" Copyright (c) 1985, 1991 Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     from: @(#)erf.3        6.4 (Berkeley) 4/20/91
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt ERFC 3
+.Os
+.Sh NAME
+.Nm erf ,
+.Nm erff ,
+.Nm erfl ,
+.Nm erfc ,
+.Nm erfcf ,
+.Nm erfcl
+.Nd error function operators
+.Sh SYNOPSIS
+.In math.h
+.Ft double
+.Fn erf "double x"
+.Ft float
+.Fn erff "float x"
+.Ft long double
+.Fn erfl "long double x"
+.Ft double
+.Fn erfc "double x"
+.Ft float
+.Fn erfcf "float x"
+.Ft long double
+.Fn erfcl "long double x"
+.Sh DESCRIPTION
+These functions calculate the error function of
+.Fa x .
+.Pp
+The
+.Fn erf
+calculates the error function of x, and
+the
+.Fn erff
+and
+.Fn erfl
+functions are single and double precision versions of
+.Fn erf .
+The error function is defined as:
+.Bd -filled -offset indent
+.if n \{\
+erf(x) = 2/sqrt(pi)\(**\|integral from 0 to x of exp(\-t\(**t) dt. \}
+.if t \{\
+erf\|(x) :=
+(2/\(sr\(*p)\|\(is\d\s8\z0\s10\u\u\s8x\s10\d\|exp(\-t\u\s82\s10\d)\|dt. \}
+.Ed
+.Pp
+The
+.Fn erfc
+function calculates the complementary error function of
+.Fa x ;
+that is
+.Fn erfc
+subtracts the result of the error function
+.Fn erf x
+from 1.0.
+This is useful, since for large
+.Fa x
+places disappear.
+The
+.Fn erfcf
+and
+.Fn erfcl
+functions are single and double precision version of
+.Fn erfc .
+.Sh SEE ALSO
+.Xr exp 3
+.Sh HISTORY
+The
+.Fn erf
+and
+.Fn erfc
+functions appeared in
+.Bx 4.3 .
diff --git a/contrib/openbsd_libm/man/exp.3 b/contrib/openbsd_libm/man/exp.3
new file mode 100644 (file)
index 0000000..c63f255
--- /dev/null
@@ -0,0 +1,383 @@
+.\"    $OpenBSD: exp.3,v 1.29 2015/01/15 19:06:31 schwarze Exp $
+.\"
+.\" Copyright (c) 1985, 1991 Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     from: @(#)exp.3        6.12 (Berkeley) 7/31/91
+.\"
+.Dd $Mdocdate: January 15 2015 $
+.Dt EXP 3
+.Os
+.Sh NAME
+.Nm exp ,
+.Nm expf ,
+.Nm expl ,
+.Nm exp2 ,
+.Nm exp2f ,
+.Nm exp2l ,
+.Nm expm1 ,
+.Nm expm1f ,
+.Nm expm1l ,
+.Nm log ,
+.Nm logf ,
+.Nm logl ,
+.Nm log2 ,
+.Nm log2f ,
+.Nm log2l ,
+.Nm log10 ,
+.Nm log10f ,
+.Nm log10l ,
+.Nm log1p ,
+.Nm log1pf ,
+.Nm log1pl ,
+.Nm pow ,
+.Nm powf ,
+.Nm powl
+.Nd exponential, logarithm, power functions
+.Sh SYNOPSIS
+.In math.h
+.Ft double
+.Fn exp "double x"
+.Ft float
+.Fn expf "float x"
+.Ft long double
+.Fn expl "long double x"
+.Ft double
+.Fn exp2 "double x"
+.Ft float
+.Fn exp2f "float x"
+.Ft long double
+.Fn exp2l "long double x"
+.Ft double
+.Fn expm1 "double x"
+.Ft float
+.Fn expm1f "float x"
+.Ft long double
+.Fn expm1l "long double x"
+.Ft double
+.Fn log "double x"
+.Ft float
+.Fn logf "float x"
+.Ft long double
+.Fn logl "long double x"
+.Ft double
+.Fn log2 "double x"
+.Ft float
+.Fn log2f "float x"
+.Ft long double
+.Fn log2l "long double x"
+.Ft double
+.Fn log10 "double x"
+.Ft float
+.Fn log10f "float x"
+.Ft long double
+.Fn log10l "long double x"
+.Ft double
+.Fn log1p "double x"
+.Ft float
+.Fn log1pf "float x"
+.Ft long double
+.Fn log1pl "long double x"
+.Ft double
+.Fn pow "double x" "double y"
+.Ft float
+.Fn powf "float x" "float y"
+.Ft long double
+.Fn powl "long double x" "long double y"
+.Sh DESCRIPTION
+The
+.Fn exp
+function computes the base
+.Ms e
+exponential value of the given argument
+.Fa x .
+The
+.Fn expf
+function is a single precision version of
+.Fn exp .
+The
+.Fn expl
+function is an extended precision version of
+.Fn exp .
+.Pp
+The
+.Fn exp2
+function computes the base 2 exponential of the given argument
+.Fa x .
+The
+.Fn exp2f
+function is a single precision version of
+.Fn exp2 .
+The
+.Fn exp2l
+function is an extended precision version of
+.Fn exp2 .
+.Pp
+The
+.Fn expm1
+function computes the value exp(x)\-1 accurately even for tiny argument
+.Fa x .
+The
+.Fn expm1f
+function is a single precision version of
+.Fn expm1 .
+The
+.Fn expm1l
+function is an extended precision version of
+.Fn expm1 .
+.Pp
+The
+.Fn log
+function computes the value of the natural logarithm of argument
+.Fa x .
+The
+.Fn logf
+function is a single precision version of
+.Fn log .
+The
+.Fn logl
+function is an extended precision version of
+.Fn log .
+.Pp
+The
+.Fn log2
+function computes the value of the logarithm of argument
+.Fa x
+to base 2.
+The
+.Fn log2f
+function is a single precision version of
+.Fn log2 .
+The
+.Fn log2l
+function is an extended precision version of
+.Fn log2 .
+.Pp
+The
+.Fn log10
+function computes the value of the logarithm of argument
+.Fa x
+to base 10.
+The
+.Fn log10f
+function is a single precision version of
+.Fn log10 .
+The
+.Fn log10l
+function is an extended precision version of
+.Fn log10 .
+.Pp
+The
+.Fn log1p
+function computes
+the value of log(1+x) accurately even for tiny argument
+.Fa x .
+The
+.Fn log1pf
+function is a single precision version of
+.Fn log1p .
+The
+.Fn log1pl
+function is an extended precision version of
+.Fn log1p .
+.Pp
+The
+.Fn pow
+function computes the value of
+.Ar x
+to the exponent
+.Ar y .
+The
+.Fn powf
+function is a single precision version of
+.Fn pow .
+The
+.Fn powl
+function is an extended precision version of
+.Fn pow .
+.Sh RETURN VALUES
+These functions will return the appropriate computation unless an error
+occurs or an argument is out of range.
+The functions
+.Fn exp ,
+.Fn expm1
+and
+.Fn pow
+detect if the computed value will overflow,
+set the global variable
+.Va errno
+to
+.Er ERANGE
+and cause a reserved operand fault on a VAX or Tahoe.
+The function
+.Fn pow x y
+checks to see if
+.Fa x
+< 0 and
+.Fa y
+is not an integer, in the event this is true,
+the global variable
+.Va errno
+is set to
+.Er EDOM
+and on the VAX and Tahoe generate a reserved operand fault.
+On a VAX and Tahoe,
+.Va errno
+is set to
+.Er EDOM
+and the reserved operand is returned
+by log unless
+.Fa x
+> 0, by
+.Fn log1p
+unless
+.Fa x
+> \-1.
+.Sh ERRORS (due to Roundoff etc.)
+exp(x), log(x), expm1(x) and log1p(x) are accurate to within
+an
+.Em ulp ,
+and log10(x) to within about 2
+.Em ulps ;
+an
+.Em ulp
+is one
+.Em Unit
+in the
+.Em Last
+.Em Place .
+The error in
+.Fn pow x y
+is below about 2
+.Em ulps
+when its
+magnitude is moderate, but increases as
+.Fn pow x y
+approaches
+the over/underflow thresholds until almost as many bits could be
+lost as are occupied by the floating\-point format's exponent
+field; that is 8 bits for
+.Dq VAX D
+and 11 bits for IEEE 754 Double.
+No such drastic loss has been exposed by testing; the worst
+errors observed have been below 20
+.Em ulps
+for
+.Dq VAX D ,
+300
+.Em ulps
+for IEEE 754 Double.
+Moderate values of
+.Fn pow
+are accurate enough that
+.Fn pow integer integer
+is exact until it is bigger than 2**56 on a VAX,
+2**53 for IEEE 754.
+.Sh NOTES
+The functions exp(x)\-1 and log(1+x) are called
+expm1 and logp1 in BASIC on the Hewlett\-Packard HP-71B
+and APPLE Macintosh, EXP1 and LN1 in Pascal, exp1 and log1 in C
+on APPLE Macintoshes, where they have been provided to make
+sure financial calculations of ((1+x)**n\-1)/x, namely
+expm1(n\(**log1p(x))/x, will be accurate when x is tiny.
+They also provide accurate inverse hyperbolic functions.
+.Pp
+The function
+.Fn pow x 0
+returns x**0 = 1 for all x including x = 0,
+.if n \
+\*(If
+.if t \
+\(if
+(not found on a VAX),
+and
+.Em \*(Na
+(the reserved operand on a VAX).
+Previous implementations of
+.Fn pow
+may have defined x**0 to be undefined in some or all of these cases.
+Here are reasons for returning x**0 = 1 always:
+.Bl -enum -width indent
+.It
+Any program that already tests whether x is zero (or
+infinite or \*(Na) before computing x**0 cannot care
+whether 0**0 = 1 or not.
+Any program that depends upon 0**0 to be invalid is dubious anyway since that
+expression's meaning and, if invalid, its consequences
+vary from one computer system to another.
+.It
+Some Algebra texts (e.g., Sigler's) define x**0 = 1 for
+all x, including x = 0.
+This is compatible with the convention that accepts a[0]
+as the value of polynomial
+.Bd -literal -offset indent
+p(x) = a[0]\(**x**0 + a[1]\(**x**1 + a[2]\(**x**2 +...+ a[n]\(**x**n
+.Ed
+.Pp
+at x = 0 rather than reject a[0]\(**0**0 as invalid.
+.It
+Analysts will accept 0**0 = 1 despite that x**y can
+approach anything or nothing as x and y approach 0
+independently.
+The reason for setting 0**0 = 1 anyway is this:
+.Bd -filled -offset indent
+If x(z) and y(z) are
+.Em any
+functions analytic (expandable
+in power series) in z around z = 0, and if there
+x(0) = y(0) = 0, then x(z)**y(z) \(-> 1 as z \(-> 0.
+.Ed
+.It
+If 0**0 = 1, then
+.if n \
+\*(If**0 = 1/0**0 = 1 too; and
+.if t \
+\(if**0 = 1/0**0 = 1 too; and
+then \*(Na**0 = 1 too because x**0 = 1 for all finite
+and infinite x, i.e., independently of x.
+.El
+.Sh SEE ALSO
+.Xr ilogb 3 ,
+.Xr infnan 3
+.Sh HISTORY
+The
+.Fn exp
+and
+.Fn log
+functions first appeared in
+.At v1 ;
+.Fn pow
+in
+.At v3 ;
+.Fn log10
+in
+.At v7 ;
+.Fn log1p
+and
+.Fn expm1
+in
+.Bx 4.3 .
diff --git a/contrib/openbsd_libm/man/fabs.3 b/contrib/openbsd_libm/man/fabs.3
new file mode 100644 (file)
index 0000000..72e602c
--- /dev/null
@@ -0,0 +1,83 @@
+.\"    $OpenBSD: fabs.3,v 1.3 2013/07/18 10:14:48 schwarze Exp $
+.\" Copyright (c) 1991 The Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\"    @(#)fabs.3      5.1 (Berkeley) 5/2/91
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     from: @(#)fabs.3       5.1 (Berkeley) 5/2/91
+.\"
+.Dd $Mdocdate: July 18 2013 $
+.Dt FABS 3
+.Os
+.Sh NAME
+.Nm fabs ,
+.Nm fabsf ,
+.Nm fabsl
+.Nd floating-point absolute value functions
+.Sh SYNOPSIS
+.In math.h
+.Ft double
+.Fn fabs "double x"
+.Ft float
+.Fn fabsf "float x"
+.Ft long double
+.Fn fabsl "long double x"
+.Sh DESCRIPTION
+The
+.Fn fabs
+function computes the absolute value of a floating-point number
+.Fa x .
+The
+.Fn fabsf
+function is a single precision version of
+.Fn fabs .
+The
+.Fn fabsl
+function is an extended precision version of
+.Fn fabs .
+.Sh RETURN VALUES
+The
+.Fn fabs ,
+.Fn fabsf
+and
+.Fn fabsl
+functions return the absolute value of
+.Fa x .
+.Sh SEE ALSO
+.Xr abs 3 ,
+.Xr ceil 3 ,
+.Xr floor 3 ,
+.Xr rint 3
+.Sh STANDARDS
+The
+.Fn fabs
+function conforms to
+.St -ansiC .
+.Sh HISTORY
+An
+.Fn fabs
+function first appeared in
+.At v6 .
diff --git a/contrib/openbsd_libm/man/fdim.3 b/contrib/openbsd_libm/man/fdim.3
new file mode 100644 (file)
index 0000000..7cb2259
--- /dev/null
@@ -0,0 +1,85 @@
+.\"    $OpenBSD: fdim.3,v 1.2 2011/07/07 01:34:52 martynas Exp $
+.\"
+.\" Copyright (c) 2004 David Schultz <das@FreeBSD.org>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD: src/lib/msun/man/fdim.3,v 1.1 2004/06/30 07:04:01 das Exp $
+.\"
+.Dd $Mdocdate: July 7 2011 $
+.Dt FDIM 3
+.Os
+.Sh NAME
+.Nm fdim ,
+.Nm fdimf ,
+.Nm fdiml
+.Nd positive difference functions
+.Sh SYNOPSIS
+.In math.h
+.Ft double
+.Fn fdim "double x" "double y"
+.Ft float
+.Fn fdimf "float x" "float y"
+.Ft long double
+.Fn fdiml "long double x" "long double y"
+.Sh DESCRIPTION
+The
+.Fn fdim ,
+.Fn fdimf ,
+and
+.Fn fdiml
+functions return the positive difference between
+.Fa x
+and
+.Fa y .
+That is, if
+.Fa x\- Ns Fa y
+is positive, then
+.Fa x\- Ns Fa y
+is returned.
+If either
+.Fa x
+or
+.Fa y
+is an \*(Na, then an \*(Na is returned.
+Otherwise, the result is
+.Li +0.0 .
+.Pp
+Overflow or underflow may occur if the exact result is not
+representable in the return type.
+No other exceptions are raised.
+.Sh SEE ALSO
+.Xr fabs 3 ,
+.Xr fmax 3 ,
+.Xr fmin 3
+.Sh STANDARDS
+The
+.Fn fdim ,
+.Fn fdimf ,
+and
+.Fn fdiml
+functions conform to
+.St -isoC-99 .
+.Sh HISTORY
+These routines first appeared in
+.Ox 4.5 .
diff --git a/contrib/openbsd_libm/man/feclearexcept.3 b/contrib/openbsd_libm/man/feclearexcept.3
new file mode 100644 (file)
index 0000000..792c72b
--- /dev/null
@@ -0,0 +1,170 @@
+.\"    $OpenBSD: feclearexcept.3,v 1.4 2013/06/05 03:40:26 tedu Exp $
+.\"
+.\" Copyright (c) 2011 Martynas Venckus <martynas@openbsd.org>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt FECLEAREXCEPT 3
+.Os
+.Sh NAME
+.Nm feclearexcept ,
+.Nm fegetexceptflag ,
+.Nm feraiseexcept ,
+.Nm fesetexceptflag ,
+.Nm fetestexcept
+.Nd access floating-point status flags
+.Sh SYNOPSIS
+.In fenv.h
+.Ft int
+.Fn feclearexcept "int excepts"
+.Ft int
+.Fn fegetexceptflag "fexcept_t *flagp" "int excepts"
+.Ft int
+.Fn feraiseexcept "int excepts"
+.Ft int
+.Fn fesetexceptflag "const fexcept_t *flagp" "int excepts"
+.Ft int
+.Fn fetestexcept "int excepts"
+.Sh DESCRIPTION
+These functions provide access to the floating-point status flags.
+The
+.Fa excepts
+input argument is a bitmask specifying an exception type and
+containing any of the values listed below.
+.Bl -tag -width ".Dv FE_DIVBYZERO"
+.It Dv FE_DIVBYZERO
+A divide-by-zero exception occurs when the program attempts to
+divide a finite non-zero number by zero.
+.It Dv FE_INEXACT
+An inexact exception is raised whenever there is a loss of precision
+due to rounding.
+.It Dv FE_INVALID
+Invalid operation exceptions occur when a program attempts to
+perform calculations for which there is no reasonable representable
+answer.
+.Pp
+For instance, subtraction of infinities, division of zero by zero,
+ordered comparison involving \*(Nas, and taking the square root of a
+negative number are all invalid operations.
+.It Dv FE_OVERFLOW
+An overflow exception occurs when the magnitude of the result of a
+computation is too large to fit in the destination type.
+.It Dv FE_UNDERFLOW
+Underflow occurs when the result of a computation is too close to zero
+to be represented as a non-zero value in the destination type.
+.It Dv FE_DENORMAL
+Denormalization exception occurs when the result of a floating-point
+expression is a denormalized number.
+.Pp
+This is available only on the floating-point implementations of
+amd64 and i386 processors.
+.El
+.Pp
+Additionally, the macro
+.Dv FE_ALL_EXCEPT
+is simply the bitwise OR of all floating-point exception macros
+listed above.
+.Pp
+The
+.Fn feclearexcept
+function clears the floating-point exceptions represented by
+.Fa excepts .
+.Pp
+The
+.Fn fegetexceptflag
+function stores a representation of the states of the floating-point
+flags indicated by
+.Pa excepts
+in the object pointed to by
+.Pa flagp .
+.Pp
+The
+.Fn feraiseexcept
+function raises floating-point exceptions represented by
+.Pa excepts .
+.Pp
+The
+.Fn fesetexceptflag
+function sets the floating-point status flags indicated by
+.Pa excepts
+to the states stored in the object pointed to by
+.Pa flagp .
+The value of
+.Pa flagp
+shall have been set by a previous call to
+.Fn fegetexceptflag
+whose second argument represented at least those floating-point
+exceptions represented by
+.Pa excepts .
+This function does not raise floating-point exceptions, but only
+sets the state of the flags.
+.Pp
+The
+.Fn fetesteexcept
+function determines which of a specified subset of the floating-point
+exception flags are currently set.
+The
+.Pa excepts
+specifies the floating-point status flags to be queried.
+.Sh RETURN VALUES
+The
+.Fn feclearexcept ,
+.Fn fegetexceptflag ,
+.Fn feraiseexcept ,
+and
+.Fn fesetexceptflag
+functions return zero on success, and non-zero if an error occurred.
+The
+.Fn fetestexcept
+function returns a bitmask of a specified subset of the floating-point
+exception flags which are currently set.
+.Sh SEE ALSO
+.Xr feenableexcept 3 ,
+.Xr fegetenv 3 ,
+.Xr fegetround 3
+.Sh STANDARDS
+The
+.Fn feclearexcept ,
+.Fn fegetexceptflag ,
+.Fn feraiseexcept ,
+.Fn fesetexceptflag ,
+and
+.Fn fetestexcept
+functions conform to
+.St -isoC-99 .
+.Pp
+The return types for
+.Fn feclearexcept ,
+.Fn fegetexceptflag ,
+.Fn feraiseexcept ,
+and
+.Fn fesetexceptflag
+are
+.Vt int
+for alignment with
+.St -isoC-99
+Defect Report #202.
+.Sh HISTORY
+These functions first appeared in
+.Ox 5.0 .
+.Sh CAVEATS
+On some architectures,
+.Fn feraiseexcept
+additionally raises the
+.Dq inexact
+floating-point exception whenever it raises the
+.Dq overflow
+or
+.Dq underflow
+floating-point exception.
diff --git a/contrib/openbsd_libm/man/feenableexcept.3 b/contrib/openbsd_libm/man/feenableexcept.3
new file mode 100644 (file)
index 0000000..4be40cc
--- /dev/null
@@ -0,0 +1,86 @@
+.\"    $OpenBSD: feenableexcept.3,v 1.3 2013/06/05 03:40:26 tedu Exp $
+.\"
+.\" Copyright (c) 2011 Martynas Venckus <martynas@openbsd.org>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt FEENABLEEXCEPT 3
+.Os
+.Sh NAME
+.Nm feenableexcept ,
+.Nm fedisableexcept ,
+.Nm fegetexcept
+.Nd control floating-point exception masks
+.Sh SYNOPSIS
+.In fenv.h
+.Ft int
+.Fn feenableexcept "int excepts"
+.Ft int
+.Fn fedisableexcept "int excepts"
+.Ft int
+.Fn fegetexcept void
+.Sh DESCRIPTION
+These functions provide control of the floating-point exception
+masks.
+The
+.Fa excepts
+input argument is a bitmask specifying an exception type and
+containing any of the values listed in
+.Xr feclearexcept 3 .
+.Pp
+The
+.Fn feenableexcept
+function unmasks the floating-point exceptions represented by
+.Fa excepts .
+The future floating-point operations that produce
+.Fa excepts
+will trap, and a
+.Dv SIGFPE
+will be delivered to the process.
+.Pp
+The
+.Fn fedisableexcept
+function masks the floating-point exceptions represented by
+.Fa excepts .
+All exceptions are masked by default.
+.Pp
+The
+.Fn fegetexcept
+function returns the current exception mask.
+.Sh RETURN VALUES
+The
+.Fn feenableexcept ,
+and
+.Fn fedisableexcept
+functions return the previous exception mask.
+The
+.Fn fegetexcept
+function returns the current exception mask.
+.Sh SEE ALSO
+.Xr sigaction 2 ,
+.Xr feclearexcept 3 ,
+.Xr fegetenv 3 ,
+.Xr fegetround 3
+.Sh STANDARDS
+The
+.Fn feenableexcept ,
+.Fn fedisableexcept ,
+and
+.Fn fegetexcept
+functions are
+.Ox
+extensions.
+.Sh HISTORY
+These functions first appeared in
+.Ox 5.0 .
diff --git a/contrib/openbsd_libm/man/fegetenv.3 b/contrib/openbsd_libm/man/fegetenv.3
new file mode 100644 (file)
index 0000000..2340b40
--- /dev/null
@@ -0,0 +1,127 @@
+.\"    $OpenBSD: fegetenv.3,v 1.3 2013/06/05 03:40:26 tedu Exp $
+.\"
+.\" Copyright (c) 2011 Martynas Venckus <martynas@openbsd.org>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt FEGETENV 3
+.Os
+.Sh NAME
+.Nm fegetenv ,
+.Nm feholdexcept ,
+.Nm fesetenv ,
+.Nm feupdateenv
+.Nd manage floating-point environment
+.Sh SYNOPSIS
+.In fenv.h
+.Ft int
+.Fn fegetenv "fenv_t *envp"
+.Ft int
+.Fn feholdexcept "fenv_t *envp"
+.Ft int
+.Fn fesetenv "const fenv_t *envp"
+.Ft int
+.Fn feupdateenv "const fenv_t *envp"
+.Sh DESCRIPTION
+These functions manage the floating-point environment -- status
+flags, rounding direction modes and exception masks -- as one entity.
+The
+.Fa envp
+input argument is an object representing the floating-point environment.
+The macro
+.Dv FE_DFL_ENV
+represents the default floating-point environment -- the one installed
+at program startup.
+.Pp
+The
+.Fn fegetenv
+function stores the current floating-point environment in the object
+pointed to by
+.Pa envp .
+.Pp
+The
+.Fn feholdexcept
+function saves the current floating-point environment in the object
+pointed to by
+.Pa envp ,
+clears the floating-point status flags, and then installs a non-stop
+(continue on floating-point exceptions) mode for all floating-point
+exceptions.
+.Pp
+The
+.Fn fesetenv
+function establishes the floating-point environment represented by
+the object pointed to by
+.Pa envp .
+The argument
+.Pa envp
+shall point to an object set by a call to
+.Fn fegetenv
+or
+.Fn feholdexcept ,
+or equal the macro
+.Dv FE_DFL_ENV .
+Note that
+.Fn fesetenv
+merely installs the state of the floating-point status flags
+represented through its argument, and does not raise these
+floating-point exceptions.
+.Pp
+The
+.Fn feupdateenv
+function saves the currently raised floating-point exceptions in
+its automatic storage, installs the floating-point environment
+represented by the object pointed to by
+.Pa envp ,
+and then raises the saved floating-point exceptions.
+The argument
+.Pa envp
+shall point to an object set by a call to
+.Fn feholdexcept
+or
+.Fn fegetenv ,
+or equal the macro
+.Dv FE_DFL_ENV .
+.Sh RETURN VALUES
+The
+.Fn fegetenv ,
+.Fn feholdexcept ,
+.Fn fesetenv ,
+and
+.Fn feupdateenv
+functions return zero on success, and non-zero if an error occurred.
+.Sh SEE ALSO
+.Xr feclearexcept 3 ,
+.Xr feenableexcept 3 ,
+.Xr fegetround 3
+.Sh STANDARDS
+The
+.Fn fegetenv ,
+.Fn feholdexcept ,
+.Fn fesetenv ,
+and
+.Fn feupdateenv
+functions conform to
+.St -isoC-99 .
+.Pp
+The return types for
+.Fn fegetenv ,
+.Fn fesetenv ,
+and
+.Fn feupdateenv
+are
+.Vt int
+for alignment with
+.St -isoC-99
+Defect Report #202.
diff --git a/contrib/openbsd_libm/man/fegetround.3 b/contrib/openbsd_libm/man/fegetround.3
new file mode 100644 (file)
index 0000000..68c7952
--- /dev/null
@@ -0,0 +1,81 @@
+.\"    $OpenBSD: fegetround.3,v 1.3 2013/06/05 03:40:26 tedu Exp $
+.\"
+.\" Copyright (c) 2011 Martynas Venckus <martynas@openbsd.org>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt FEGETROUND 3
+.Os
+.Sh NAME
+.Nm fegetround ,
+.Nm fesetround
+.Nd control floating-point rounding direction modes
+.Sh SYNOPSIS
+.In fenv.h
+.Ft int
+.Fn fegetround void
+.Ft int
+.Fn fesetround "int round"
+.Sh DESCRIPTION
+These functions provide control of floating-point rounding direction
+modes.
+The
+.Fa round
+input argument is a value specifying a rounding direction mode and
+containing any of the values listed below.
+.Bl -tag -width ".Dv FE_TOWARDZERO"
+.It Dv FE_TONEAREST
+Results are rounded to the closest representable value.
+If the exact result is exactly half way between two representable
+values, the value whose last binary digit is even (zero) is chosen.
+This is the default mode.
+.It Dv FE_DOWNWARD
+Results are rounded towards negative \*[If].
+.It Dv FE_UPWARD
+Results are rounded towards positive \*[If].
+.It Dv FE_TOWARDZERO
+Results are rounded towards zero.
+.El
+.Pp
+The
+.Fn fegetround
+function gets the current rounding direction.
+.Pp
+The
+.Fn fesetround
+function establishes the rounding direction represented by
+.Pa round .
+If the argument is not equal to the value of a rounding direction
+macro, the rounding direction is not changed.
+.Sh RETURN VALUES
+The
+.Fn fegetround
+function returns the current rounding direction.
+The
+.Fn fesetround
+function return zero on success, and non-zero if an error occurred.
+.Sh SEE ALSO
+.Xr feclearexcept 3 ,
+.Xr feenableexcept 3 ,
+.Xr fegetenv 3
+.Sh STANDARDS
+The
+.Fn fegetround
+and
+.Fn fesetround
+functions conform to
+.St -isoC-99 .
+.Sh HISTORY
+These functions first appeared in
+.Ox 5.0 .
diff --git a/contrib/openbsd_libm/man/floor.3 b/contrib/openbsd_libm/man/floor.3
new file mode 100644 (file)
index 0000000..1281cbd
--- /dev/null
@@ -0,0 +1,76 @@
+.\"    $OpenBSD: floor.3,v 1.14 2013/07/17 05:42:11 schwarze Exp $
+.\" Copyright (c) 1985, 1991 The Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     from: @(#)floor.3      6.5 (Berkeley) 4/19/91
+.\"
+.Dd $Mdocdate: July 17 2013 $
+.Dt FLOOR 3
+.Os
+.Sh NAME
+.Nm floor ,
+.Nm floorf ,
+.Nm floorl
+.Nd round to largest integral value not greater than x
+.Sh SYNOPSIS
+.In math.h
+.Ft double
+.Fn floor "double x"
+.Ft float
+.Fn floorf "float x"
+.Ft long double
+.Fn floorl "long double x"
+.Sh DESCRIPTION
+The
+.Fn floor
+function returns the largest integral value
+less than or equal to
+.Fa x .
+The
+.Fn floorf
+function is a single precision version of
+.Fn floor .
+The
+.Fn floorl
+function is an extended precision version of
+.Fn floor .
+.Sh SEE ALSO
+.Xr abs 3 ,
+.Xr ceil 3 ,
+.Xr fabs 3 ,
+.Xr nextafter 3 ,
+.Xr rint 3
+.Sh STANDARDS
+The
+.Fn floor
+function conforms to
+.St -ansiC .
+.Sh HISTORY
+A
+.Fn floor
+function first appeared in
+.At v5 .
diff --git a/contrib/openbsd_libm/man/fma.3 b/contrib/openbsd_libm/man/fma.3
new file mode 100644 (file)
index 0000000..51fd3aa
--- /dev/null
@@ -0,0 +1,58 @@
+.\"    $OpenBSD: fma.3,v 1.3 2013/06/05 03:40:26 tedu Exp $
+.\"
+.\" Copyright (c) 2011 Martynas Venckus <martynas@openbsd.org>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt FMA 3
+.Os
+.Sh NAME
+.Nm fma ,
+.Nm fmaf ,
+.Nm fmal
+.Nd floating multiply-add
+.Sh SYNOPSIS
+.In math.h
+.Ft double
+.Fn fma "double x" "double y" "double z"
+.Ft float
+.Fn fmaf "float x" "float y" "float z"
+.Ft long double
+.Fn fmal "long double x" "long double y" "long double z"
+.Sh DESCRIPTION
+The
+.Fn fma ,
+.Fn fmaf
+and
+.Fn fmal
+functions compute (x * y) + z, rounded as one ternary operation.
+The result is rounded according to the current rounding mode.
+.Sh RETURN VALUES
+The
+.Fn fma ,
+.Fn fmaf
+and
+.Fn fmal
+functions return (x * y) + z, rounded as one ternary operation.
+.Sh SEE ALSO
+.Xr fegetround 3 ,
+.Xr remainder 3
+.Sh STANDARDS
+The
+.Fn fma ,
+.Fn fmaf
+and
+.Fn fmal
+functions conform to
+.St -isoC-99 .
diff --git a/contrib/openbsd_libm/man/fmax.3 b/contrib/openbsd_libm/man/fmax.3
new file mode 100644 (file)
index 0000000..19c4413
--- /dev/null
@@ -0,0 +1,96 @@
+.\"    $OpenBSD: fmax.3,v 1.2 2011/07/07 01:34:52 martynas Exp $
+.\"
+.\" Copyright (c) 2004 David Schultz <das@FreeBSD.org>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD: src/lib/msun/man/fmax.3,v 1.2 2005/01/14 09:12:05 ru Exp $
+.\"
+.Dd $Mdocdate: July 7 2011 $
+.Dt FMAX 3
+.Os
+.Sh NAME
+.Nm fmax ,
+.Nm fmaxf ,
+.Nm fmaxl ,
+.Nm fmin ,
+.Nm fminf ,
+.Nm fminl
+.Nd floating-point maximum and minimum functions
+.Sh SYNOPSIS
+.In math.h
+.Ft double
+.Fn fmax "double x" "double y"
+.Ft float
+.Fn fmaxf "float x" "float y"
+.Ft "long double"
+.Fn fmaxl "long double x" "long double y"
+.Ft double
+.Fn fmin "double x" "double y"
+.Ft float
+.Fn fminf "float x" "float y"
+.Ft "long double"
+.Fn fminl "long double x" "long double y"
+.Sh DESCRIPTION
+The
+.Fn fmax ,
+.Fn fmaxf ,
+and
+.Fn fmaxl
+functions return the larger of
+.Fa x
+and
+.Fa y ,
+and likewise the
+.Fn fmin ,
+.Fn fminf ,
+and
+.Fn fminl
+functions return the smaller of
+.Fa x
+and
+.Fa y .
+They treat
+.Li +0.0
+as being larger than
+.Li -0.0 .
+If one argument is an \*(Na, then the other argument is returned.
+If both arguments are \*(Nas, then the result is an \*(Na.
+These routines do not raise any floating-point exceptions.
+.Sh SEE ALSO
+.Xr fabs 3 ,
+.Xr fdim 3
+.Sh STANDARDS
+The
+.Fn fmax ,
+.Fn fmaxf ,
+.Fn fmaxl ,
+.Fn fmin ,
+.Fn fminf ,
+and
+.Fn fminl
+functions conform to
+.St -isoC-99 .
+.Sh HISTORY
+These routines first appeared in
+.Ox 4.5 .
diff --git a/contrib/openbsd_libm/man/fmod.3 b/contrib/openbsd_libm/man/fmod.3
new file mode 100644 (file)
index 0000000..69878b9
--- /dev/null
@@ -0,0 +1,94 @@
+.\"    $OpenBSD: fmod.3,v 1.12 2013/07/17 05:42:11 schwarze Exp $
+.\" Copyright (c) 1991 The Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     from: @(#)fmod.3       5.1 (Berkeley) 5/2/91
+.\"
+.Dd $Mdocdate: July 17 2013 $
+.Dt FMOD 3
+.Os
+.Sh NAME
+.Nm fmod ,
+.Nm fmodf ,
+.Nm fmodl
+.Nd floating-point remainder functions
+.Sh SYNOPSIS
+.In math.h
+.Ft double
+.Fn fmod "double x" "double y"
+.Ft float
+.Fn fmodf "float x" "float y"
+.Ft long double
+.Fn fmodl "long double x" "long double y"
+.Sh DESCRIPTION
+The
+.Fn fmod
+function computes the floating-point remainder of
+.Fa x Ns / Fa y .
+The
+.Fn fmodf
+function is a single precision version of
+.Fn fmod .
+The
+.Fn fmodl
+function is an extended precision version of
+.Fn fmod .
+.Sh RETURN VALUES
+The
+.Fn fmod ,
+.Fn fmodf
+and
+.Fn fmodl
+functions return the value
+.Sm off
+.Fa x - Em i * Fa y ,
+.Sm on
+for some integer
+.Em i
+such that, if
+.Fa y
+is non-zero, the result has the same sign as
+.Fa x
+and magnitude less than the magnitude of
+.Fa y .
+If
+.Fa y
+is zero, whether a domain error occurs or the
+.Fn fmod
+function returns zero is implementation-defined.
+.Sh SEE ALSO
+.Xr remainder 3
+.Sh STANDARDS
+The
+.Fn fmod
+function conforms to
+.St -ansiC .
+.Sh HISTORY
+An
+.Fn fmod
+function first appeared in
+.At v5 .
diff --git a/contrib/openbsd_libm/man/hypot.3 b/contrib/openbsd_libm/man/hypot.3
new file mode 100644 (file)
index 0000000..ba7c01b
--- /dev/null
@@ -0,0 +1,132 @@
+.\"    $OpenBSD: hypot.3,v 1.21 2015/01/15 19:06:31 schwarze Exp $
+.\" Copyright (c) 1985, 1991 Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     from: @(#)hypot.3      6.7 (Berkeley) 5/6/91
+.\"
+.Dd $Mdocdate: January 15 2015 $
+.Dt HYPOT 3
+.Os
+.Sh NAME
+.Nm hypot ,
+.Nm hypotf ,
+.Nm hypotl ,
+.Nm cabs ,
+.Nm cabsf ,
+.Nm cabsl
+.Nd Euclidean distance and complex absolute value functions
+.Sh SYNOPSIS
+.In math.h
+.Ft double
+.Fn hypot "double x" "double y"
+.Ft float
+.Fn hypotf "float x" "float y"
+.Ft long double
+.Fn hypotl "long double x" "long double y"
+.In complex.h
+.Ft double
+.Fn cabs "double complex z"
+.Ft float
+.Fn cabsf "float complex z"
+.Ft long double
+.Fn cabsl "long double complex z"
+.Sh DESCRIPTION
+The
+.Fn hypot ,
+.Fn hypotf
+and
+.Fn hypotl
+functions
+compute the
+sqrt(x*x+y*y)
+in such a way that underflow will not happen, and overflow
+occurs only if the final result deserves it.
+.Pp
+.Fn hypot "\*(If" "v"
+=
+.Fn hypot "v" "\*(If"
+= +\*(If for all
+.Ar v ,
+including \*(Na.
+.Pp
+The
+.Fn cabs ,
+.Fn cabsf
+and
+.Fn cabsl
+functions return the absolute value of the complex number
+.Fa z .
+.Sh ERRORS (due to Roundoff, etc.)
+Below 0.97
+.Em ulps .
+Consequently
+.Fn hypot "5.0" "12.0"
+= 13.0
+exactly;
+in general, hypot and cabs return an integer whenever an
+integer might be expected.
+.Sh NOTES
+As might be expected,
+.Fn hypot "v" "\*(Na"
+and
+.Fn hypot "\*(Na" "v"
+are \*(Na for all
+.Em finite
+.Ar v ;
+with
+.Dq reserved operand
+in place of "\*(Na", the same is true on a VAX.
+But programmers on machines other than a VAX (it has no \*(If)
+might be surprised at first to discover that
+.Fn hypot "\(+-\*(If" "\*(Na"
+= +\*(If.
+This is intentional; it happens because
+.Fn hypot "\*(If" "v"
+= +\*(If
+for
+.Em all
+.Ar v ,
+finite or infinite.
+Hence
+.Fn hypot "\*(If" "v"
+is independent of
+.Ar v .
+Unlike the reserved operand fault on a VAX,
+the IEEE \*(Na is designed to disappear
+when it turns out to be irrelevant, as it does in
+.Fn hypot "\*(If" "\*(Na" .
+.Sh SEE ALSO
+.Xr sqrt 3
+.Sh HISTORY
+A
+.Fn hypot
+function first appeared in
+.At v3 ,
+and
+.Fn cabs
+in
+.At v7 .
diff --git a/contrib/openbsd_libm/man/ilogb.3 b/contrib/openbsd_libm/man/ilogb.3
new file mode 100644 (file)
index 0000000..ed056ac
--- /dev/null
@@ -0,0 +1,84 @@
+.\"    $OpenBSD: ilogb.3,v 1.6 2013/06/05 03:40:26 tedu Exp $
+.\" Copyright (c) 1985, 1991 Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     from: @(#)ieee.3       6.4 (Berkeley) 5/6/91
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt ILOGB 3
+.Os
+.Sh NAME
+.Nm ilogb ,
+.Nm ilogbf ,
+.Nm ilogbl
+.Nd extract exponent
+.Sh SYNOPSIS
+.In math.h
+.Ft int
+.Fn ilogb "double x"
+.Ft int
+.Fn ilogbf "float x"
+.Ft int
+.Fn ilogbl "long double x"
+.Sh DESCRIPTION
+.Fn ilogb
+returns
+.Fa x Ns 's exponent
+.Fa n ,
+in integer format.
+.Fn ilogb \*(Pm\*(If
+returns
+.Dv INT_MAX
+and
+.Fn ilogb 0
+returns
+.Dv INT_MIN .
+The
+.Fn ilogbf
+function is a single precision version of
+.Fn ilogb .
+The
+.Fn ilogbl
+function is an extended precision version of
+.Fn ilogb .
+.Sh SEE ALSO
+.Xr ffs 3 ,
+.Xr frexp 3
+.Sh STANDARDS
+.St -ieee754
+.Sh HISTORY
+The
+.Nm ilogb ,
+.Nm ilogbf
+and
+.Nm ilogbl
+functions appeared in
+.Bx 4.3 ,
+.Nx 1.1
+and
+.Ox 4.5 ,
+respectively.
diff --git a/contrib/openbsd_libm/man/infnan.3 b/contrib/openbsd_libm/man/infnan.3
new file mode 100644 (file)
index 0000000..b0fc7ad
--- /dev/null
@@ -0,0 +1,145 @@
+.\"    $OpenBSD: infnan.3,v 1.17 2015/01/15 19:06:31 schwarze Exp $
+.\"
+.\" Copyright (c) 1985, 1991, 1993
+.\"    The Regents of the University of California.  All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     @(#)infnan.3   8.1 (Berkeley) 6/4/93
+.\"
+.Dd $Mdocdate: January 15 2015 $
+.Dt INFNAN 3 vax
+.Os
+.Sh NAME
+.Nm infnan
+.Nd signals invalid floating\-point operations on a VAX (temporary)
+.Sh SYNOPSIS
+.In math.h
+.Ft double
+.Fn infnan "int iarg"
+.Sh DESCRIPTION
+At some time in the future, some of the useful properties of
+the Infinities and \*(Nas in the IEEE standard 754
+for Binary Floating\-Point Arithmetic will be simulated in UNIX
+on the DEC VAX by using its Reserved Operands.
+Meanwhile, the Invalid, Overflow and Divide\-by\-Zero exceptions of the
+IEEE standard are being approximated on a VAX by calls to a procedure
+.Fn infnan
+in appropriate places in
+.Em libm .
+When better exception\-handling is implemented in UNIX, only
+.Fn infnan
+among the codes in
+.Em libm
+will have to be changed.
+And users of
+.Em libm
+can design their own
+.Fn infnan
+now to
+insulate themselves from future changes.
+.Pp
+Whenever an elementary function code in
+.Em libm
+has to
+simulate one of the aforementioned IEEE exceptions, it calls
+.Fn infnan iarg
+with an appropriate value of
+.Fa iarg .
+Then a
+reserved operand fault stops computation.
+But
+.Fn infnan
+could
+be replaced by a function with the same name that returns
+some plausible value, assigns an apt value to the global
+variable
+.Va errno ,
+and allows computation to resume.
+Alternatively, the Reserved Operand Fault Handler could be
+changed to respond by returning that plausible value, etc.,
+instead of aborting.
+.Pp
+In the table below, the first two columns show various exceptions
+signaled by the IEEE standard, and the default result it prescribes.
+The third column shows what value is given to
+.Fa iarg
+by functions in
+.Em libm
+when they
+invoke
+.Fn infnan iarg
+under analogous circumstances on a VAX.
+Currently
+.Fn infnan
+stops computation under all those
+circumstances.
+The last two columns offer an alternative;
+they suggest a setting for
+.Va errno
+and a value for a
+revised
+.Fn infnan
+to return.
+And a C program to implement that suggestion follows.
+.Bl -column "IEEE Signal" "IEEE Default" "+-ERANGE" "ERANGE/EDOM" "infnanXX"
+.It Sy "IEEE Signal" Ta Sy "IEEE Default" Ta Fa iarg Ta Va errno Ta Fn infnan
+.It Invalid Ta \*(Na Ta Dv EDOM Ta Dv EDOM Ta 0
+.It Overflow Ta \(+-\*(If Ta Dv ERANGE Ta Dv ERANGE Ta Dv HUGE
+.It Div\-by\-0 Ta \(+-\*(If Ta Dv +-ERANGE Ta Dv ERANGE/EDOM Ta Dv +-HUGE
+.El
+.Pp
+.Dl ( Ns Dv HUGE No = 1.7e38 ... nearly  2.0**127)
+.Pp
+ALTERNATIVE
+.Fn infnan :
+.Bd -literal -offset indent
+#include <math.h>
+#include <errno.h>
+
+double
+infnan(int iarg)
+{
+       switch (iarg) {
+       case \0ERANGE:
+               errno = ERANGE;
+               return (HUGE);
+       case \-ERANGE:
+               errno = EDOM;
+               return (\-HUGE);
+       default:
+               errno = EDOM;
+               return (0);
+       }
+}
+.Ed
+.Sh SEE ALSO
+.Xr intro 2 ,
+.Xr signal 3
+.Sh HISTORY
+The
+.Fn infnan
+function appeared in
+.Bx 4.3 .
diff --git a/contrib/openbsd_libm/man/j0.3 b/contrib/openbsd_libm/man/j0.3
new file mode 100644 (file)
index 0000000..1e55333
--- /dev/null
@@ -0,0 +1,157 @@
+.\"    $OpenBSD: j0.3,v 1.15 2013/07/17 05:42:11 schwarze Exp $
+.\" Copyright (c) 1985, 1991 Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     from: @(#)j0.3 6.7 (Berkeley) 4/19/91
+.\"
+.Dd $Mdocdate: July 17 2013 $
+.Dt J0 3
+.Os
+.Sh NAME
+.Nm j0 ,
+.Nm j0f ,
+.Nm j1 ,
+.Nm j1f ,
+.Nm jn ,
+.Nm jnf ,
+.Nm y0 ,
+.Nm y0f ,
+.Nm y1 ,
+.Nm y1f ,
+.Nm yn ,
+.Nm ynf
+.Nd Bessel functions of first and second kind
+.Sh SYNOPSIS
+.In math.h
+.Ft double
+.Fn j0 "double x"
+.Ft float
+.Fn j0f "float x"
+.Ft double
+.Fn j1 "double x"
+.Ft float
+.Fn j1f "float x"
+.Ft double
+.Fn jn "int n" "double x"
+.Ft float
+.Fn jnf "int n" "float x"
+.Ft double
+.Fn y0 "double x"
+.Ft float
+.Fn y0f "float x"
+.Ft double
+.Fn y1 "double x"
+.Ft float
+.Fn y1f "float x"
+.Ft double
+.Fn yn "int n" "double x"
+.Ft float
+.Fn ynf "int n" "float x"
+.Sh DESCRIPTION
+The functions
+.Fn j0
+and
+.Fn j1
+compute the
+.Em Bessel function of the first kind of the order
+0 and the
+.Em order
+1, respectively,
+for the
+real value
+.Fa x ;
+the function
+.Fn jn
+computes the
+.Em Bessel function of the first kind of the integer order
+.Fa n
+for the real value
+.Fa x .
+The functions
+.Fn j0f ,
+.Fn j1f ,
+and
+.Fn jnf
+are single precision versions of
+.Fn j0 ,
+.Fn j1 ,
+and
+.Fn jn ,
+respectively.
+.Pp
+The functions
+.Fn y0
+and
+.Fn y1
+compute the linearly independent
+.Em Bessel function of the second kind of the order
+0 and the
+.Em order
+1, respectively,
+for the
+positive
+.Em integer
+value
+.Fa x
+(expressed as a double);
+the function
+.Fn yn
+computes the
+.Em Bessel function of the second kind for the integer order
+.Fa n
+for the positive
+.Em integer
+value
+.Fa x
+(expressed as a double).
+The functions
+.Fn y0f ,
+.Fn y1f ,
+and
+.Fn ynf
+are single precision versions of
+.Fn y0 ,
+.Fn y1 ,
+and
+.Fn yn ,
+respectively.
+.Sh RETURN VALUES
+If these functions are successful,
+the computed value is returned, otherwise the global variable
+.Va errno
+is set to EDOM or ERANGE.
+.Sh HISTORY
+The functions
+.Fn j0 ,
+.Fn j1 ,
+.Fn jn ,
+.Fn y0 ,
+.Fn y1 ,
+and
+.Fn yn 
+first appeared in
+.At v7 .
diff --git a/contrib/openbsd_libm/man/lgamma.3 b/contrib/openbsd_libm/man/lgamma.3
new file mode 100644 (file)
index 0000000..624567c
--- /dev/null
@@ -0,0 +1,192 @@
+.\"    $OpenBSD: lgamma.3,v 1.22 2015/01/15 19:06:31 schwarze Exp $
+.\" Copyright (c) 1985, 1991 Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     from: @(#)lgamma.3     6.6 (Berkeley) 12/3/92
+.\"
+.Dd $Mdocdate: January 15 2015 $
+.Dt LGAMMA 3
+.Os
+.Sh NAME
+.Nm lgamma ,
+.Nm lgammaf ,
+.Nm lgammal ,
+.Nm lgamma_r ,
+.Nm lgammaf_r ,
+.Nm lgammal_r ,
+.Nm tgamma ,
+.Nm tgammaf ,
+.Nm tgammal
+.Nd log gamma functions
+.Sh SYNOPSIS
+.In math.h
+.Ft extern int
+.Fa signgam ;
+.sp
+.Ft double
+.Fn lgamma "double x"
+.Ft float
+.Fn lgammaf "float x"
+.Ft long double
+.Fn lgammal "long double x"
+.Ft double
+.Fn lgamma_r "double x" "int *signgamp"
+.Ft float
+.Fn lgammaf_r "float x" "int *signgamp"
+.Ft long double
+.Fn lgammal_r "long double x" "int *signgamp"
+.Ft double
+.Fn tgamma "double x"
+.Ft float
+.Fn tgammaf "float x"
+.Ft long double
+.Fn tgammal "long double x"
+.Sh DESCRIPTION
+.Fn lgamma x
+.if t \{\
+returns ln\||\(*G(x)| where
+.Bd -unfilled -offset indent
+\(*G(x) = \(is\d\s8\z0\s10\u\u\s8\(if\s10\d t\u\s8x\-1\s10\d e\u\s8\-t\s10\d dt        for x > 0 and
+.br
+\(*G(x) = \(*p/(\(*G(1\-x)\|sin(\(*px))        for x < 1.
+.Ed
+.\}
+.if n \
+returns ln\||\(*G(x)|.
+.Pp
+The external integer
+.Fa signgam
+returns the sign of \(*G(x).
+The
+.Fn lgammaf
+function is a single precision version of
+.Fn lgamma .
+The
+.Fn lgammal
+function is an extended precision version of
+.Fn lgamma .
+.Pp
+The
+.Fn lgamma_r ,
+.Fn lgammaf_r ,
+and
+.Fn lgammal_r
+functions are thread-safe versions of
+.Fn lgamma ,
+.Fn lgammaf ,
+and
+.Fn lgammal
+that return the sign via the
+.Fa signgamp
+pointer instead of modifying
+.Fa signgam .
+.Pp
+The
+.Fn tgamma x ,
+.Fn tgammaf x
+and
+.Fn tgammal x
+functions return \(*G(x), with no effect on
+.Fa signgam .
+.Sh IDIOSYNCRASIES
+Do not use the expression
+.Sq Li signgam\(**exp(lgamma(x))
+to compute g := \(*G(x).
+Instead use a program like this (in C):
+.Bd -literal -offset indent
+lg = lgamma(x); g = signgam\(**exp(lg);
+.Ed
+.Pp
+Only after
+.Fn lgamma
+has returned can signgam be correct.
+.Pp
+For arguments in its range,
+.Fn tgamma
+is preferred, as for positive arguments
+it is accurate to within one unit in the last place.
+.Sh RETURN VALUES
+.Fn lgamma
+returns appropriate values unless an argument is out of range.
+Overflow will occur for sufficiently large positive values, and
+non-positive integers.
+For large non-integer negative values,
+.Fn tgamma
+will underflow.
+On the VAX, the reserved operator is returned, and
+.Va errno
+is set to
+.Er ERANGE .
+.Sh SEE ALSO
+.Xr infnan 3
+.Sh STANDARDS
+The
+.Fn lgamma ,
+.Fn lgammaf ,
+.Fn lgammal ,
+.Fn tgamma ,
+.Fn tgammaf ,
+and
+.Fn tgammal
+functions are expected to conform to
+.St -isoC-99 .
+.Pp
+The
+.Fn lgamma_r ,
+.Fn lgammaf_r ,
+and
+.Fn lgammal_r
+functions are
+.Bx
+extensions.
+.Pp
+.Fn gamma
+and
+.Fn gammaf
+are deprecated aliases for
+.Fn lgamma
+and
+.Fn lgammaf ,
+respectively.
+.Sh HISTORY
+A
+.Fn gamma
+function first appeared in
+.At v5 .
+The
+.Fn lgamma
+function first appeared in
+.Bx 4.3 .
+The
+.Fn tgamma
+function first appeared in
+.Ox 4.4 ,
+and is based on the
+.Fn gamma
+function that appeared in
+.Bx 4.4
+as a function to compute \(*G(x).
diff --git a/contrib/openbsd_libm/man/logb.3 b/contrib/openbsd_libm/man/logb.3
new file mode 100644 (file)
index 0000000..30978d1
--- /dev/null
@@ -0,0 +1,115 @@
+.\"    $OpenBSD: logb.3,v 1.9 2013/06/05 03:40:26 tedu Exp $
+.\" Copyright (c) 1985, 1991 Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     from: @(#)ieee.3       6.4 (Berkeley) 5/6/91
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt LOGB 3
+.Os
+.Sh NAME
+.Nm logb ,
+.Nm logbf ,
+.Nm logbl ,
+.Nm scalb ,
+.Nm scalbf ,
+.Nm scalbl ,
+.Nm significand ,
+.Nm significandf
+.Nd IEEE test functions
+.Sh SYNOPSIS
+.In math.h
+.Ft double
+.Fn logb "double x"
+.Ft float
+.Fn logbf "float x"
+.Ft long double
+.Fn logbl "long double x"
+.Ft double
+.Fn scalb "double x" "double n"
+.Ft float
+.Fn scalbf "float x" "float n"
+.Ft long double
+.Fn scalbl "long double x" "long double n"
+.Ft double
+.Fn significand "double x"
+.Ft float
+.Fn significandf "float x"
+.Sh DESCRIPTION
+These functions allow users to test conformance to
+.St -ieee754 .
+Their use is not otherwise recommended.
+.Pp
+.Fn logb x
+returns
+.Fa x Ns 's exponent
+.Fa n ,
+a signed integer converted to double\-precision floating\-point.
+.Fn logb \*(Pm\*(If
+= +\*(If;
+.Fn logb 0
+= -\*(If with a division by zero exception.
+.Fn logbf
+is the single precision form of
+.Fn logb .
+.Fn logbl
+is the extended precision form of
+.Fn logb .
+.Pp
+.Fn scalb x n
+returns
+.Fa x Ns \(**(2** Ns Fa n )
+computed by exponent manipulation.
+.Fn scalbf
+is the single precision form of
+.Fn scalb .
+.Fn scalbl
+is the extended precision form of
+.Fn scalb .
+.Pp
+.Fn significand x
+returns
+.Fa sig ,
+where
+.Fa x
+:=
+.Fa sig No \(** 2** Ns Fa n
+with 1 \(<=
+.Fa sig
+< 2.
+.Fn significand x
+is not defined when
+.Fa x
+is 0, \*(Pm\*(If, or \*(Na.
+.Fn significandf
+is the single precision for of
+.Fn significand .
+.Sh SEE ALSO
+.Xr ilogb 3 ,
+.Xr scalbn 3
+.Sh STANDARDS
+.St -ieee754
diff --git a/contrib/openbsd_libm/man/lrint.3 b/contrib/openbsd_libm/man/lrint.3
new file mode 100644 (file)
index 0000000..bf478cb
--- /dev/null
@@ -0,0 +1,112 @@
+.\"    $OpenBSD: lrint.3,v 1.4 2011/07/07 01:34:52 martynas Exp $
+.\" $NetBSD: lrint.3,v 1.1 2005/09/16 15:26:47 wiz Exp $
+.\"
+.\" Copyright (c) 2005 David Schultz <das@FreeBSD.org>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD: /repoman/r/ncvs/src/lib/msun/man/lrint.3,v 1.2.2.2 2005/03/01 16:18:39 brueffer Exp $
+.\"
+.Dd $Mdocdate: July 7 2011 $
+.Dt LRINT 3
+.Os
+.Sh NAME
+.Nm llrint ,
+.Nm llrintf ,
+.Nm llrintl ,
+.Nm lrint ,
+.Nm lrintf ,
+.Nm lrintl
+.Nd convert to integer
+.Sh SYNOPSIS
+.In math.h
+.Ft long long
+.Fn llrint "double x"
+.Ft long long
+.Fn llrintf "float x"
+.Ft long long
+.Fn llrintl "long double x"
+.Ft long
+.Fn lrint "double x"
+.Ft long
+.Fn lrintf "float x"
+.Ft long
+.Fn lrintl "long double x"
+.Sh DESCRIPTION
+The
+.Fn lrint
+function returns the integer nearest to its argument
+.Fa x
+according to the current rounding mode.
+.Pp
+The
+.Fn llrint ,
+.Fn llrintf ,
+.Fn llrintl ,
+.Fn lrintf ,
+and
+.Fn lrintl
+functions differ from
+.Fn lrint
+only in their input and output types.
+.Sh RETURN VALUES
+The
+.Nm llrint ,
+.Nm llrintf ,
+.Nm llrintl ,
+.Nm lrint ,
+.Nm lrintf ,
+and
+.Nm lrintl
+functions return the integer nearest to their argument
+.Fa x
+according to the current rounding mode.
+If the rounded result is too large to be represented as a
+.Vt long long
+or
+.Vt long
+value, respectively,
+.\" an invalid exception is raised and
+the return value is undefined.
+.\" Otherwise, if
+.\" .Fa x
+.\" is not an integer,
+.\" .Fn lrint
+.\" raises an inexact exception.
+.\" If
+.\" .Fa x
+.\" is too large, a range error may occur.
+.Sh SEE ALSO
+.Xr lround 3 ,
+.Xr rint 3
+.Sh STANDARDS
+The
+.Fn llrint ,
+.Fn llrintf ,
+.Fn llrintl ,
+.Fn lrint ,
+.Fn lrintf ,
+and
+.Fn lrintl
+functions conform to
+.St -isoC-99 .
diff --git a/contrib/openbsd_libm/man/lround.3 b/contrib/openbsd_libm/man/lround.3
new file mode 100644 (file)
index 0000000..9b9dff3
--- /dev/null
@@ -0,0 +1,99 @@
+.\"    $OpenBSD: lround.3,v 1.5 2013/08/14 06:32:29 jmc Exp $
+.\"
+.\" Copyright (c) 2005 David Schultz <das@FreeBSD.org>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD: /repoman/r/ncvs/src/lib/msun/man/lround.3,v 1.4 2005/06/15 19:04:04 ru Exp $
+.\"
+.Dd $Mdocdate: August 14 2013 $
+.Dt LROUND 3
+.Os
+.Sh NAME
+.Nm llround ,
+.Nm llroundf ,
+.Nm llroundl ,
+.Nm lround ,
+.Nm lroundf ,
+.Nm lroundl
+.Nd convert to nearest integral value
+.Sh SYNOPSIS
+.In math.h
+.Ft "long long"
+.Fn llround "double x"
+.Ft "long long"
+.Fn llroundf "float x"
+.Ft "long long"
+.Fn llroundl "long double x"
+.Ft long
+.Fn lround "double x"
+.Ft long
+.Fn lroundf "float x"
+.Ft long
+.Fn lroundl "long double x"
+.Sh DESCRIPTION
+The
+.Fn lround
+function returns the integer nearest to its argument
+.Fa x ,
+rounding away from zero in halfway cases.
+If the rounded result is too large to be represented as a
+.Vt long
+value, an invalid exception is raised and the return value is undefined.
+Otherwise, if
+.Fa x
+is not an integer,
+.Fn lround
+may raise an inexact exception.
+When the rounded result is representable as a
+.Vt long ,
+the expression
+.Fn lround x
+is equivalent to
+.Po Vt long Pc Ns Fn round x
+(although the former may be more efficient).
+.Pp
+The
+.Fn llround ,
+.Fn llroundf ,
+.Fn llroundl ,
+.Fn lroundf
+and
+.Fn lroundl
+functions differ from
+.Fn lround
+only in their input and output types.
+.Sh SEE ALSO
+.Xr lrint 3 ,
+.Xr rint 3
+.Sh STANDARDS
+The
+.Fn llround ,
+.Fn llroundf ,
+.Fn llroundl ,
+.Fn lround ,
+.Fn lroundf ,
+and
+.Fn lroundl
+functions conform to
+.St -isoC-99 .
diff --git a/contrib/openbsd_libm/man/nan.3 b/contrib/openbsd_libm/man/nan.3
new file mode 100644 (file)
index 0000000..f247ff3
--- /dev/null
@@ -0,0 +1,96 @@
+.\"    $OpenBSD: nan.3,v 1.5 2011/07/07 01:34:52 martynas Exp $
+.\"
+.\" Copyright (c) 2007 David Schultz <das@FreeBSD.org>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD: src/lib/msun/man/nan.3,v 1.1 2007/12/16 21:19:28 das Exp $
+.\"
+.Dd $Mdocdate: July 7 2011 $
+.Dt NAN 3
+.Os
+.Sh NAME
+.Nm nan ,
+.Nm nanf ,
+.Nm nanl
+.Nd quiet \*(Nas
+.Sh SYNOPSIS
+.In math.h
+.Ft double
+.Fn nan "const char *s"
+.Ft float
+.Fn nanf "const char *s"
+.Ft long double
+.Fn nanl "const char *s"
+.Sh DESCRIPTION
+The
+.Dv NAN
+macro expands to a quiet \*(Na (Not A Number).
+Similarly both the
+.Fn nan ,
+.Fn nanf
+and
+.Fn nanl
+functions generate a quiet \*(Na value without raising an invalid exception.
+The argument
+.Fa s
+should point to either an empty string or a hexadecimal representation
+of a non-negative integer (e.g. 0x1234).
+In the latter case, the integer is encoded in some free bits in the
+representation of the \*(Na, which sometimes stores
+machine-specific information about why a particular \*(Na was generated.
+There are 22 such bits available for
+.Vt float
+variables, 51 bits for
+.Vt double
+variables, and at least 51 bits for a
+.Vt long double .
+If
+.Fa s
+is improperly formatted or represents an integer that is too large,
+then the particular encoding of the quiet \*(Na that is returned
+is indeterminate.
+.Sh COMPATIBILITY
+Calling these functions with a non-empty string isn't portable.
+Another operating system may translate the string into a different
+\*(Na encoding, and furthermore, the meaning of a given \*(Na encoding
+varies across machine architectures.
+If you understood the innards of a particular platform well enough to
+know what string to use, then you would have no need for these functions
+anyway, so don't use them.
+Use the
+.Dv NAN
+macro instead.
+.Sh SEE ALSO
+.Xr isnan 3 ,
+.Xr strtod 3
+.Sh STANDARDS
+The
+.Fn nan ,
+.Fn nanf
+and
+.Fn nanl
+functions and the
+.Dv NAN
+macro conform to
+.St -isoC-99 .
diff --git a/contrib/openbsd_libm/man/nextafter.3 b/contrib/openbsd_libm/man/nextafter.3
new file mode 100644 (file)
index 0000000..0212059
--- /dev/null
@@ -0,0 +1,81 @@
+.\"    $OpenBSD: nextafter.3,v 1.8 2013/06/05 03:40:26 tedu Exp $
+.\" Copyright (c) 1985, 1991 Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     from: @(#)ieee.3       6.4 (Berkeley) 5/6/91
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt NEXTAFTER 3
+.Os
+.Sh NAME
+.Nm nextafter ,
+.Nm nextafterf ,
+.Nm nextafterl ,
+.Nm nexttoward ,
+.Nm nexttowardf ,
+.Nm nexttowardl
+.Nd next representable value
+.Sh SYNOPSIS
+.In math.h
+.Ft double
+.Fn nextafter "double x" "double y"
+.Ft float
+.Fn nextafterf "float x" "float y"
+.Ft long double
+.Fn nextafterl "long double x" "long double y"
+.Ft double
+.Fn nexttoward "double x" "long double y"
+.Ft float
+.Fn nexttowardf "float x" "long double y"
+.Ft long double
+.Fn nexttowardl "long double x" "long double y"
+.Sh DESCRIPTION
+These functions
+return the next machine representable number from
+.Fa x
+in direction
+.Fa y .
+If
+.Fa x
+equals
+.Fa y ,
+these functions return
+.Fa y .
+.Sh SEE ALSO
+.Xr nearbyint 3
+.Sh STANDARDS
+.St -ieee754
+.Sh HISTORY
+The
+.Nm nextafter
+and
+.Nm nextafterf
+functions appeared in
+.Bx 4.3
+and
+.Nx 1.1 ,
+respectively.
diff --git a/contrib/openbsd_libm/man/remainder.3 b/contrib/openbsd_libm/man/remainder.3
new file mode 100644 (file)
index 0000000..c8ec011
--- /dev/null
@@ -0,0 +1,161 @@
+.\"    $OpenBSD: remainder.3,v 1.6 2011/07/07 01:34:52 martynas Exp $
+.\"
+.\" Copyright (c) 1985, 1991 Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 4. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     from: @(#)ieee.3       6.4 (Berkeley) 5/6/91
+.\" $FreeBSD: src/lib/msun/man/remainder.3,v 1.6 2008/03/30 20:48:02 das Exp $
+.\"
+.Dd $Mdocdate: July 7 2011 $
+.Dt REMAINDER 3
+.Os
+.Sh NAME
+.Nm remainder ,
+.Nm remainderf ,
+.Nm remainderl ,
+.Nm remquo ,
+.Nm remquof ,
+.Nm remquol
+.Nd minimal residue functions
+.Sh SYNOPSIS
+.In math.h
+.Ft double
+.Fn remainder "double x" "double y"
+.Ft float
+.Fn remainderf "float x" "float y"
+.Ft long double
+.Fn remainderl "long double x" "long double y"
+.Ft double
+.Fn remquo "double x" "double y" "int *quo"
+.Ft float
+.Fn remquof "float x" "float y" "int *quo"
+.Ft long double
+.Fn remquol "long double x" "long double y" "int *quo"
+.Sh DESCRIPTION
+.Fn remainder ,
+.Fn remainderf ,
+.Fn remainderl ,
+.Fn remquo ,
+.Fn remquof ,
+and
+.Fn remquol
+return the remainder
+.Fa r
+:=
+.Fa x
+\-
+.Fa n\(**y
+where
+.Fa n
+is the integer nearest the exact value of
+.Bk -words
+.Fa x Ns / Ns Fa y ;
+.Ek
+moreover if
+.Pf \*(Ba Fa n
+\-
+.Sm off
+.Fa x No / Fa y No \*(Ba
+.Sm on
+=
+1/2
+then
+.Fa n
+is even.
+Consequently
+the remainder is computed exactly and
+.Sm off
+.Pf \*(Ba Fa r No \*(Ba
+.Sm on
+\*(Le
+.Sm off
+.Pf \*(Ba Fa y No \*(Ba/2 .
+.Sm on
+But attempting to take the remainder when
+.Fa y
+is 0 or
+.Fa x
+is \*(Pm\*(If is an invalid operation that produces a \*(Na.
+.Pp
+The
+.Fn remquo ,
+.Fn remquof
+and
+.Fn remquol
+functions also store the last
+.Va k
+bits of
+.Fa n
+in the location pointed to by
+.Fa quo ,
+provided that
+.Fa n
+exists.
+The number of bits
+.Va k
+is platform-specific, but is guaranteed to be at least 3.
+.Sh SEE ALSO
+.Xr fmod 3 ,
+.Xr nextafter 3
+.Sh STANDARDS
+The
+.Fn remainder ,
+.Fn remainderf ,
+.Fn remainderl ,
+.Fn remquo ,
+.Fn remquof ,
+and
+.Fn remquol
+routines conform to
+.St -isoC-99 .
+The remainder is as defined in
+.St -ieee754 .
+.Pp
+.Fn drem
+and
+.Fn dremf
+are deprecated aliases for
+.Fn remainder
+and
+.Fn remainderf ,
+respectively.
+.Sh HISTORY
+The
+.Fn remainder
+and
+.Fn remainderf
+functions appeared in
+.Bx 4.3
+and
+.Nx 1.2 ,
+respectively.
+The
+.Fn remquo
+and
+.Fn remquof
+functions were added in
+.Ox 4.4 .
diff --git a/contrib/openbsd_libm/man/rint.3 b/contrib/openbsd_libm/man/rint.3
new file mode 100644 (file)
index 0000000..f5b12cc
--- /dev/null
@@ -0,0 +1,84 @@
+.\"    $OpenBSD: rint.3,v 1.14 2013/06/05 03:40:26 tedu Exp $
+.\" Copyright (c) 1985, 1991 Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     from: @(#)rint.3       5.1 (Berkeley) 5/2/91
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt RINT 3
+.Os
+.Sh NAME
+.Nm nearbyint ,
+.Nm nearbyintf ,
+.Nm nearbyintl ,
+.Nm rint ,
+.Nm rintf ,
+.Nm rintl
+.Nd round to integral value in floating-point format
+.Sh SYNOPSIS
+.In math.h
+.Ft double
+.Fn nearbyint "double x"
+.Ft float
+.Fn nearbyintf "float x"
+.Ft long double
+.Fn nearbyintl "long double x"
+.Ft double
+.Fn rint "double x"
+.Ft float
+.Fn rintf "float x"
+.Ft long double
+.Fn rintl "long double x"
+.Sh DESCRIPTION
+The
+.Fn rint ,
+.Fn rintf ,
+and
+.Fn rintl
+functions return the integral value nearest to
+.Fa x
+according to the prevailing rounding mode.
+.Pp
+The
+.Fn nearbyint ,
+.Fn nearbyintf ,
+and
+.Fn nearbyintl
+functions do the same,
+but without raising the
+.Dq inexact
+floating-point exception.
+.Sh SEE ALSO
+.Xr abs 3 ,
+.Xr ceil 3 ,
+.Xr fabs 3 ,
+.Xr floor 3
+.Sh HISTORY
+A
+.Fn rint
+function appeared in
+.At v6 .
diff --git a/contrib/openbsd_libm/man/round.3 b/contrib/openbsd_libm/man/round.3
new file mode 100644 (file)
index 0000000..ef335ab
--- /dev/null
@@ -0,0 +1,67 @@
+.\"    $OpenBSD: round.3,v 1.5 2011/07/07 01:34:52 martynas Exp $
+.\" Copyright (c) 2003, Steven G. Kargl
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD: src/lib/msun/man/round.3,v 1.6 2005/06/15 19:04:04 ru Exp $
+.\"
+.Dd $Mdocdate: July 7 2011 $
+.Dt ROUND 3
+.Os
+.Sh NAME
+.Nm round ,
+.Nm roundf ,
+.Nm roundl
+.Nd round to nearest integral value
+.Sh SYNOPSIS
+.In math.h
+.Ft double
+.Fn round "double x"
+.Ft float
+.Fn roundf "float x"
+.Ft long double
+.Fn roundl "long double x"
+.Sh DESCRIPTION
+The
+.Fn round ,
+.Fn roundf
+and
+.Fn roundl
+functions return the nearest integral value to
+.Fa x ;
+if
+.Fa x
+lies halfway between two integral values, then these
+functions return the integral value with the larger
+absolute value (i.e., they round away from zero).
+.Sh SEE ALSO
+.Xr ceil 3 ,
+.Xr floor 3 ,
+.Xr lrint 3 ,
+.Xr lround 3 ,
+.Xr nextafter 3 ,
+.Xr rint 3 ,
+.Xr trunc 3
+.Sh STANDARDS
+These functions conform to
+.St -isoC-99 .
diff --git a/contrib/openbsd_libm/man/scalbn.3 b/contrib/openbsd_libm/man/scalbn.3
new file mode 100644 (file)
index 0000000..875bb98
--- /dev/null
@@ -0,0 +1,101 @@
+.\"    $OpenBSD: scalbn.3,v 1.4 2013/06/05 03:40:26 tedu Exp $
+.\" Copyright (c) 1985, 1991 Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     from: @(#)ieee.3       6.4 (Berkeley) 5/6/91
+.\"
+.Dd $Mdocdate: June 5 2013 $
+.Dt SCALBN 3
+.Os
+.Sh NAME
+.Nm scalbln ,
+.Nm scalblnf ,
+.Nm scalblnl ,
+.Nm scalbn ,
+.Nm scalbnf ,
+.Nm scalbnl
+.Nd adjust exponent by radix
+.Sh SYNOPSIS
+.In math.h
+.Ft double
+.Fn scalbln "double x" "long n"
+.Ft float
+.Fn scalblnf "float x" "long n"
+.Ft long double
+.Fn scalblnl "long double x" "long n"
+.Ft double
+.Fn scalbn "double x" "int n"
+.Ft float
+.Fn scalbnf "float x" "int n"
+.Ft long double
+.Fn scalbnl "long double x" "int n"
+.Sh DESCRIPTION
+.Fn scalbln
+and
+.Fn scalbn
+return
+.Fa x Ns \(**(2** Ns Fa n )
+computed by exponent manipulation.
+The
+.Fn scalblnf
+and
+.Fn scalbnf
+functions are single precision versions of
+.Fn scalbln
+and
+.Fn scalbn ,
+respectively.
+The
+.Fn scalblnl
+and
+.Fn scalbnl
+functions are extended precision versions of
+.Fn scalbln
+and
+.Fn scalbn ,
+respectively.
+.Sh STANDARDS
+.St -ieee754
+.Sh HISTORY
+The
+.Nm scalbln ,
+.Nm scalblnf
+and
+.Nm scalblnl
+functions appeared in
+.Ox 4.7 .
+The
+.Nm scalbn ,
+.Nm scalbnf ,
+and
+.Nm scalbnl ,
+functions appeared in
+.Bx 4.3 ,
+.Nx 1.1
+and
+.Ox 4.5 ,
+respectively.
diff --git a/contrib/openbsd_libm/man/sin.3 b/contrib/openbsd_libm/man/sin.3
new file mode 100644 (file)
index 0000000..55e4640
--- /dev/null
@@ -0,0 +1,88 @@
+.\"    $OpenBSD: sin.3,v 1.16 2013/07/17 05:42:11 schwarze Exp $
+.\" Copyright (c) 1991 The Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     from: @(#)cos.3        5.1 (Berkeley) 5/2/91
+.\"
+.Dd $Mdocdate: July 17 2013 $
+.Dt SIN 3
+.Os
+.Sh NAME
+.Nm sin ,
+.Nm sinf ,
+.Nm sinl
+.Nd sine functions
+.Sh SYNOPSIS
+.In math.h
+.Ft double
+.Fn sin "double x"
+.Ft float
+.Fn sinf "float x"
+.Ft long double
+.Fn sinl "long double x"
+.Sh DESCRIPTION
+The
+.Fn sin
+function computes the sine of
+.Fa x
+(measured in radians).
+The
+.Fn sinf
+function is a single precision version of
+.Fn sin .
+The
+.Fn sinl
+function is an extended precision version of
+.Fn sin .
+A large magnitude argument may yield a result with little or no
+significance.
+.Sh RETURN VALUES
+The
+.Fn sin ,
+.Fn sinf
+and
+.Fn sinl
+functions return the sine value.
+.Sh SEE ALSO
+.Xr acos 3 ,
+.Xr asin 3 ,
+.Xr atan 3 ,
+.Xr atan2 3 ,
+.Xr cosh 3 ,
+.Xr sinh 3 ,
+.Xr tan 3 ,
+.Xr tanh 3
+.Sh STANDARDS
+The
+.Fn sin
+function conforms to
+.St -ansiC .
+.Sh HISTORY
+A
+.Fn sin
+function first appeared in
+.At v1 .
diff --git a/contrib/openbsd_libm/man/sinh.3 b/contrib/openbsd_libm/man/sinh.3
new file mode 100644 (file)
index 0000000..3ecf548
--- /dev/null
@@ -0,0 +1,92 @@
+.\"    $OpenBSD: sinh.3,v 1.15 2013/07/17 05:42:11 schwarze Exp $
+.\" Copyright (c) 1991 The Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"    from: @(#)sinh.3        6.6 (Berkeley) 4/19/91
+.Dd $Mdocdate: July 17 2013 $
+.Dt SINH 3
+.Os
+.Sh NAME
+.Nm sinh ,
+.Nm sinhf ,
+.Nm sinhl
+.Nd hyperbolic sine functions
+.Sh SYNOPSIS
+.In math.h
+.Ft double
+.Fn sinh "double x"
+.Ft float
+.Fn sinhf "float x"
+.Ft long double
+.Fn sinhl "long double x"
+.Sh DESCRIPTION
+The
+.Fn sinh
+function computes the hyperbolic sine of
+.Fa x .
+The
+.Fn sinhf
+function is a single precision version of
+.Fn sinh .
+The