From b8cdc234c67d883b7e9d6e4caf4ba15972ac7788 Mon Sep 17 00:00:00 2001 From: Danny Smith Date: Mon, 29 Jul 2002 03:00:10 +0000 Subject: Add incomplet long double math support to libmingwex.a --- winsup/mingw/mingwex/math/cephes_mconf.h | 134 +++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 winsup/mingw/mingwex/math/cephes_mconf.h (limited to 'winsup/mingw/mingwex/math/cephes_mconf.h') diff --git a/winsup/mingw/mingwex/math/cephes_mconf.h b/winsup/mingw/mingwex/math/cephes_mconf.h new file mode 100644 index 000000000..ba8400f34 --- /dev/null +++ b/winsup/mingw/mingwex/math/cephes_mconf.h @@ -0,0 +1,134 @@ +#include +#include + +/* constants used by cephes functions */ + +#define MAXNUML 1.189731495357231765021263853E4932L +#define MAXLOGL 1.1356523406294143949492E4L +#define MINLOGL -1.13994985314888605586758E4L +#define LOGE2L 6.9314718055994530941723E-1L +#define LOG2EL 1.4426950408889634073599E0L +#define PIL 3.1415926535897932384626L +#define PIO2L 1.5707963267948966192313L +#define PIO4L 7.8539816339744830961566E-1L + +#define isfinitel isfinite +#define isinfl isinf +#define isnanl isnan +#define signbitl signbit + + +#define IBMPC 1 +#define ANSIPROT 1 +#define MINUSZERO 1 +#define INFINITIES 1 +#define NANS 1 +#define DENORMAL 1 +#define NEGZEROL (-0.0L) +extern long double __INFL; +#define INFINITYL (__INFL) +extern long double __QNANL; +#define NANL (__QNANL) +#define VOLATILE +#define mtherr(fname, code) +#define XPD 0, + +#ifdef _CEPHES_USE_ERRNO +#define _SET_ERRNO(x) errno = (x) +#else +#define _SET_ERRNO(x) +#endif +/* +Cephes Math Library Release 2.2: July, 1992 +Copyright 1984, 1987, 1988, 1992 by Stephen L. Moshier +Direct inquiries to 30 Frost Street, Cambridge, MA 02140 +*/ + + +/* polevll.c + * p1evll.c + * + * Evaluate polynomial + * + * + * + * SYNOPSIS: + * + * int N; + * long double x, y, coef[N+1], polevl[]; + * + * y = polevll( 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 p1evll() assumes that coef[N] = 1.0 and is + * omitted from the array. Its calling arguments are + * otherwise the same as polevll(). + * + * + * 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. + * + */ + +/* Polynomial evaluator: + * P[0] x^n + P[1] x^(n-1) + ... + P[n] + */ +static __inline__ long double polevll( x, p, n ) +long double x; +const void *p; +int n; +{ +register long double y; +register long double *P = (long double *)p; + +y = *P++; +do + { + y = y * x + *P++; + } +while( --n ); +return(y); +} + + + +/* Polynomial evaluator: + * x^n + P[0] x^(n-1) + P[1] x^(n-2) + ... + P[n] + */ +static __inline__ long double p1evll( x, p, n ) +long double x; +const void *p; +int n; +{ +register long double y; +register long double *P = (long double *)p; + +n -= 1; +y = x + *P++; +do + { + y = y * x + *P++; + } +while( --n ); +return( y ); +} + -- cgit v1.2.3