Index: complex.h
===================================================================
RCS file: /cvsroot/src/include/complex.h,v
retrieving revision 1.2
diff -u -r1.2 complex.h
--- complex.h 22 Jul 2009 15:09:57 -0000 1.2
+++ complex.h 22 Mar 2010 23:02:26 -0000
@@ -19,14 +19,19 @@
float crealf(float complex);
float cimagf(float complex);
float complex conjf(float complex);
+long double creall(long double complex);
+long double cimagl(long double complex);
+long double complex conjl(long double complex);
#ifndef __LIBM0_SOURCE__
/* avoid conflict with historical cabs(struct complex) */
double cabs(double complex) __RENAME(__c99_cabs);
float cabsf(float complex) __RENAME(__c99_cabsf);
+long double cabsl(long double complex) __RENAME(__c99_cabsl);
#endif
double carg(double complex);
float cargf(float complex);
+long double cargl(long double complex);
double complex csqrt(double complex);
double complex cexp(double complex);
@@ -47,6 +52,34 @@
double complex cacosh(double complex);
double complex catanh(double complex);
+#ifdef __HAVE_LONG_DOUBLE
+long double creall(long double complex);
+long double cimagl(long double complex);
+long double complex conjl(long double complex);
+
+long double cabsl(long double complex);
+long double cargl(long double complex);
+
+long double complex csqrtl(long double complex);
+long double complex cexpl(long double complex);
+long double complex clogl(long double complex);
+long double complex cpowl(long double complex, long double complex);
+
+long double complex csinl(long double complex);
+long double complex ccosl(long double complex);
+long double complex ctanl(long double complex);
+long double complex csinhl(long double complex);
+long double complex ccoshl(long double complex);
+long double complex ctanhl(long double complex);
+
+long double complex casinl(long double complex);
+long double complex cacosl(long double complex);
+long double complex catanl(long double complex);
+long double complex casinhl(long double complex);
+long double complex cacoshl(long double complex);
+long double complex catanhl(long double complex);
+#endif /* __HAVE_LONG_DOUBLE */
+
float complex csqrtf(float complex);
float complex cexpf(float complex);
float complex clogf(float complex);
@@ -66,4 +99,23 @@
float complex cacoshf(float complex);
float complex catanhf(float complex);
+long double complex csqrtl(long double complex);
+long double complex cexpl(long double complex);
+long double complex clogl(long double complex);
+long double complex cpowl(long double complex, long double complex);
+
+long double complex csinl(long double complex);
+long double complex ccosl(long double complex);
+long double complex ctanl(long double complex);
+long double complex csinhl(long double complex);
+long double complex ccoshl(long double complex);
+long double complex ctanhl(long double complex);
+
+long double complex casinl(long double complex);
+long double complex cacosl(long double complex);
+long double complex catanl(long double complex);
+long double complex casinhl(long double complex);
+long double complex cacoshl(long double complex);
+long double complex catanhl(long double complex);
+
__END_DECLS
Index: fenv.h
===================================================================
RCS file: fenv.h
diff -N fenv.h
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ fenv.h 22 Mar 2010 23:02:26 -0000
@@ -0,0 +1,59 @@
+/* $NetBSD$ */
+/*-
+ * Copyright (c) 2008 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Matt Thomas <
[email protected]>
+ *
+ * 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_
+
+/*
+ * Import the machine-dependent FE_* definitions.
+ */
+#ifdef __vax__
+#include <machine/vaxfp.h>
+#else
+#include <machine/ieeefp.h>
+#endif
+
+__BEGIN_DECLS
+int feclearexcept(int);
+int fegetexceptflag(fexcep_t *, int);
+int feraiseexcept(int);
+int fesetexceptflag(const fexcep_t *, int);
+int fetestexcept(int);
+
+int fegetround(void);
+int fesetround(int);
+
+int fegetenv(fent_t *);
+int feholdexcept(const fent_t *);
+int fesetenv(const fent_t *);
+int feupdateenv(const fent_t *);
+__END_DECLS
+
+#endif /* !_FENV_H_ */
Index: math.h
===================================================================
RCS file: /cvsroot/src/include/math.h,v
retrieving revision 1.51
diff -u -r1.51 math.h
--- math.h 23 Feb 2010 00:03:09 -0000 1.51
+++ math.h 22 Mar 2010 23:02:26 -0000
@@ -282,6 +282,24 @@
float sinf(float);
float tanf(float);
+double acos(double);
+double asin(double);
+double atan(double);
+double atan2(double, double);
+double cos(double);
+double sin(double);
+double tan(double);
+
+#ifdef __HAVE_LONG_DOUBLE
+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);
+#endif
+
/* 7.12.5 hyperbolic */
float acoshf(float);
@@ -291,6 +309,22 @@
float sinhf(float);
float tanhf(float);
+double acosh(double);
+double asinh(double);
+double atanh(double);
+double cosh(double);
+double sinh(double);
+double tanh(double);
+
+#ifdef __HAVE_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);
+#endif
+
/* 7.12.6 exp / log */
float expf(float);
@@ -307,6 +341,34 @@
float modff(float, float *);
float scalbnf(float, int);
+double exp(double);
+double expm1(double);
+double frexp(double, int *);
+int ilogb(double);
+double ldexp(double, int);
+double log(double);
+double log2(double);
+double log10(double);
+double log1p(double);
+double logb(double);
+double modf(double, double *);
+double scalbn(double, int);
+
+#ifdef __HAVE_LONG_DOUBLE
+long double expl(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 log2l(long double);
+long double log10l(long double);
+long double log1pl(long double);
+long double logbl(long double);
+long double modfl(long double, long double *);
+long double scalbnl(long double, int);
+#endif
+
/* 7.12.7 power / absolute */
float cbrtf(float);
@@ -315,46 +377,104 @@
float powf(float, float);
float sqrtf(float);
+double cbrt(double);
+double fabs(double);
+double hypot(double, double);
+double pow(double, double);
+double sqrt(double);
+
+#ifdef __HAVE_LONG_DOUBLE
+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);
+#endif
+
/* 7.12.8 error / gamma */
float erff(float);
float erfcf(float);
float lgammaf(float);
+float tgammaf(float);
+
+double erf(double);
+double erfc(double);
+double lgamma(double);
+double tgamma(double);
+
+#ifdef __HAVE_LONG_DOUBLE
+long double erfl(long double);
+long double erfcl(long double);
+long double lgammal(long double);
+long double tgammal(long double);
+#endif
/* 7.12.9 nearest integer */
float ceilf(float);
float floorf(float);
float rintf(float);
-double round(double);
float roundf(float);
-double trunc(double);
float truncf(float);
-long int lrint(double);
long int lrintf(float);
/* LONGLONG */
-long long int llrint(double);
-/* LONGLONG */
long long int llrintf(float);
-long int lround(double);
long int lroundf(float);
/* LONGLONG */
+long long int llroundf(float);
+
+double ceil(double);
+double floor(double);
+double rint(double);
+double round(double);
+double trunc(double);
+long int lrint(double);
+/* LONGLONG */
+long long int llrint(double);
+long int lround(double);
+/* LONGLONG */
long long int llround(double);
+
+#ifdef __HAVE_LONG_DOUBLE
+long double ceill(long double);
+long double floorl(long double);
+long double rintl(long double);
+long double roundl(long double);
+long double truncl(long double);
+long int lrintl(long double);
/* LONGLONG */
-long long int llroundf(float);
+long long int llrintl(long double);
+long int lroundl(long double);
+/* LONGLONG */
+long long int llroundl(long double);
+#endif
/* 7.12.10 remainder */
float fmodf(float, float);
float remainderf(float, float);
+#ifdef __HAVE_LONG_DOUBLE
+long double fmodl(long double, long double);
+long double remainderl(long double, long double);
+#endif
+
/* 7.12.11 manipulation */
-float copysignf(float, float);
-double nan(const char *);
-float nanf(const char *);
+float copysignf(float, float);
+float nanf(const char *);
+float nextafterf(float, float);
+
+double copysign(double, double);
+double nan(const char *);
+double nextafter(double, double);
+
+#ifdef __HAVE_LONG_DOUBLE
+long double copysignl(long double, long double);
long double nanl(const char *);
-float nextafterf(float, float);
+long double nextafterl(long double, long double);
+#endif
/* 7.12.14 comparision */
@@ -383,18 +503,10 @@
((_POSIX_C_SOURCE - 0) >= 200112L) || \
defined(_ISOC99_SOURCE) || defined(_NETBSD_SOURCE)
/* 7.12.3.3 int isinf(real-floating x) */
-#ifdef __isinf
-#define isinf(__x) __isinf(__x)
-#else
#define isinf(__x) __fpmacro_unary_floating(isinf, __x)
-#endif
/* 7.12.3.4 int isnan(real-floating x) */
-#ifdef __isnan
-#define isnan(__x) __isnan(__x)
-#else
#define isnan(__x) __fpmacro_unary_floating(isnan, __x)
-#endif
#endif /* !_ANSI_SOURCE && ... */
#if defined(_NETBSD_SOURCE)
@@ -472,14 +584,15 @@
* Library implementation
*/
int __fpclassifyf(float);
-int __fpclassifyd(double);
int __isfinitef(float);
-int __isfinited(double);
int __isinff(float);
-int __isinfd(double);
int __isnanf(float);
-int __isnand(double);
int __signbitf(float);
+
+int __fpclassifyd(double);
+int __isfinited(double);
+int __isinfd(double);
+int __isnand(double);
int __signbitd(double);
#ifdef __HAVE_LONG_DOUBLE