Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanny Smith <dannysmith@users.sourceforge.net>2002-11-27 06:41:25 +0300
committerDanny Smith <dannysmith@users.sourceforge.net>2002-11-27 06:41:25 +0300
commitdc8597f966ca83f46897e7e269ede83566b98177 (patch)
treea6bf0cb29149d2cd72786d39eb444a73939a70b4 /winsup/mingw/mingwex/math/cephes_mconf.h
parenteb6d2e2f9a8be898e936b6ac07135d57a566014b (diff)
* mingwex/math/lgamma.c: New file.
* mingwex/math/lgammaf.c: New file. * mingwex/math/lgammal.c: New file. * mingwex/math/tgamma.c: New file. * mingwex/math/tgammaf.c: New file. * mingwex/math/tgammal.c: New file. * mingwex/math/cephes_mconf (polevlf): Add float version. (p1evlf): Likewise. Define _CEPHES_USE_ERRNO. * mingwex/Makefile.in (MATH_DISTFILES): Add new files. (MATH_OBJS): Add new objects. * include/math.h (lgamma[fl]): Add prototypes. (tgamma[fl]): Add prototypes.
Diffstat (limited to 'winsup/mingw/mingwex/math/cephes_mconf.h')
-rw-r--r--winsup/mingw/mingwex/math/cephes_mconf.h98
1 files changed, 98 insertions, 0 deletions
diff --git a/winsup/mingw/mingwex/math/cephes_mconf.h b/winsup/mingw/mingwex/math/cephes_mconf.h
index 1dda63d53..85e0bdcf0 100644
--- a/winsup/mingw/mingwex/math/cephes_mconf.h
+++ b/winsup/mingw/mingwex/math/cephes_mconf.h
@@ -12,6 +12,8 @@
#define mtherr(fname, code)
#define XPD 0,
+#define _CEPHES_USE_ERRNO
+
#ifdef _CEPHES_USE_ERRNO
#define _SET_ERRNO(x) errno = (x)
#else
@@ -275,3 +277,99 @@ while( --n );
return( y );
}
+/* Float version */
+
+/* polevlf.c
+ * p1evlf.c
+ *
+ * Evaluate polynomial
+ *
+ *
+ *
+ * SYNOPSIS:
+ *
+ * int N;
+ * float x, y, coef[N+1], polevlf[];
+ *
+ * y = polevlf( x, coef, N );
+ *
+ *
+ *
+ * DESCRIPTION:
+ *
+ * Evaluates polynomial of degree N:
+ *
+ * 2 N
+ * y = C + C x + C x +...+ C x
+ * 0 1 2 N
+ *
+ * Coefficients are stored in reverse order:
+ *
+ * coef[0] = C , ..., coef[N] = C .
+ * N 0
+ *
+ * The function p1evl() assumes that coef[N] = 1.0 and is
+ * omitted from the array. Its calling arguments are
+ * otherwise the same as polevl().
+ *
+ *
+ * SPEED:
+ *
+ * In the interest of speed, there are no checks for out
+ * of bounds arithmetic. This routine is used by most of
+ * the functions in the library. Depending on available
+ * equipment features, the user may wish to rewrite the
+ * program in microcode or assembly language.
+ *
+ */
+
+/*
+Cephes Math Library Release 2.1: December, 1988
+Copyright 1984, 1987, 1988 by Stephen L. Moshier
+Direct inquiries to 30 Frost Street, Cambridge, MA 02140
+*/
+
+static __inline__ float polevlf(float x, const float* coef, int N )
+{
+float ans;
+float *p;
+int i;
+
+p = (float*)coef;
+ans = *p++;
+
+/*
+for( i=0; i<N; i++ )
+ ans = ans * x + *p++;
+*/
+
+i = N;
+do
+ ans = ans * x + *p++;
+while( --i );
+
+return( ans );
+}
+
+/* p1evl() */
+/* N
+ * Evaluate polynomial when coefficient of x is 1.0.
+ * Otherwise same as polevl.
+ */
+
+static __inline__ float p1evlf( float x, const float *coef, int N )
+{
+float ans;
+float *p;
+int i;
+
+p = (float*)coef;
+ans = x + *p++;
+i = N-1;
+
+do
+ ans = ans * x + *p++;
+while( --i );
+
+return( ans );
+}