Search
lxdream.org :: lxdream/test/include/math.h :: diff
lxdream 0.9.1
released Jun 29
Download Now
filename test/include/math.h
changeset 185:6755a04c447f
author nkeynes
date Sat Aug 05 00:18:21 2006 +0000 (17 years ago)
permissions -rw-r--r--
last change Add error lines to tests with incomplete polys
Split clip tests to separate data file
Add tests for cmd bit 23 ("use list size field")
file annotate diff log raw
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/test/include/math.h Sat Aug 05 00:18:21 2006 +0000
1.3 @@ -0,0 +1,273 @@
1.4 +/* math.h -- Definitions for the math floating point package. */
1.5 +
1.6 +#ifndef _MATH_H_
1.7 +#ifdef __cplusplus
1.8 +extern "C" {
1.9 +#endif
1.10 +#define _MATH_H_
1.11 +
1.12 +#include <sys/reent.h>
1.13 +#include <machine/ieeefp.h>
1.14 +#include "_ansi.h"
1.15 +
1.16 +#ifndef HUGE_VAL
1.17 +
1.18 +/* Define HUGE_VAL as infinity, unless HUGE_VAL is already defined
1.19 + (which might have been done by something like math-68881.h). */
1.20 +
1.21 +union __dmath
1.22 +{
1.23 + __uint32_t i[2];
1.24 + double d;
1.25 +};
1.26 +
1.27 +extern const union __dmath __infinity;
1.28 +
1.29 +#define HUGE_VAL (__infinity.d)
1.30 +
1.31 +#endif /* ! defined (HUGE_VAL) */
1.32 +
1.33 +/* Reentrant ANSI C functions. */
1.34 +
1.35 +#ifndef __math_68881
1.36 +extern double atan _PARAMS((double));
1.37 +extern double cos _PARAMS((double));
1.38 +extern double sin _PARAMS((double));
1.39 +extern double tan _PARAMS((double));
1.40 +extern double tanh _PARAMS((double));
1.41 +extern double frexp _PARAMS((double, int *));
1.42 +extern double modf _PARAMS((double, double *));
1.43 +extern double ceil _PARAMS((double));
1.44 +extern double fabs _PARAMS((double));
1.45 +extern double floor _PARAMS((double));
1.46 +#endif /* ! defined (__math_68881) */
1.47 +
1.48 +/* Non reentrant ANSI C functions. */
1.49 +
1.50 +#ifndef _REENT_ONLY
1.51 +#ifndef __math_6881
1.52 +extern double acos _PARAMS((double));
1.53 +extern double asin _PARAMS((double));
1.54 +extern double atan2 _PARAMS((double, double));
1.55 +extern double cosh _PARAMS((double));
1.56 +extern double sinh _PARAMS((double));
1.57 +extern double exp _PARAMS((double));
1.58 +extern double ldexp _PARAMS((double, int));
1.59 +extern double log _PARAMS((double));
1.60 +extern double log10 _PARAMS((double));
1.61 +extern double pow _PARAMS((double, double));
1.62 +extern double sqrt _PARAMS((double));
1.63 +extern double fmod _PARAMS((double, double));
1.64 +#endif /* ! defined (__math_68881) */
1.65 +#endif /* ! defined (_REENT_ONLY) */
1.66 +
1.67 +#ifndef __STRICT_ANSI__
1.68 +
1.69 +/* Non ANSI double precision functions. */
1.70 +
1.71 +extern double infinity _PARAMS((void));
1.72 +extern double nan _PARAMS((void));
1.73 +extern int isnan _PARAMS((double));
1.74 +extern int isinf _PARAMS((double));
1.75 +extern int finite _PARAMS((double));
1.76 +extern double copysign _PARAMS((double, double));
1.77 +extern int ilogb _PARAMS((double));
1.78 +
1.79 +extern double asinh _PARAMS((double));
1.80 +extern double cbrt _PARAMS((double));
1.81 +extern double nextafter _PARAMS((double, double));
1.82 +extern double rint _PARAMS((double));
1.83 +extern double scalbn _PARAMS((double, int));
1.84 +
1.85 +#ifndef __math_68881
1.86 +extern double log1p _PARAMS((double));
1.87 +extern double expm1 _PARAMS((double));
1.88 +#endif /* ! defined (__math_68881) */
1.89 +
1.90 +#ifndef _REENT_ONLY
1.91 +extern double acosh _PARAMS((double));
1.92 +extern double atanh _PARAMS((double));
1.93 +extern double remainder _PARAMS((double, double));
1.94 +extern double gamma _PARAMS((double));
1.95 +extern double gamma_r _PARAMS((double, int *));
1.96 +extern double lgamma _PARAMS((double));
1.97 +extern double lgamma_r _PARAMS((double, int *));
1.98 +extern double erf _PARAMS((double));
1.99 +extern double erfc _PARAMS((double));
1.100 +extern double y0 _PARAMS((double));
1.101 +extern double y1 _PARAMS((double));
1.102 +extern double yn _PARAMS((int, double));
1.103 +extern double j0 _PARAMS((double));
1.104 +extern double j1 _PARAMS((double));
1.105 +extern double jn _PARAMS((int, double));
1.106 +#define log2(x) (log (x) / M_LOG2_E)
1.107 +
1.108 +#ifndef __math_68881
1.109 +extern double hypot _PARAMS((double, double));
1.110 +#endif
1.111 +
1.112 +extern double cabs();
1.113 +extern double drem _PARAMS((double, double));
1.114 +
1.115 +#endif /* ! defined (_REENT_ONLY) */
1.116 +
1.117 +/* Single precision versions of ANSI functions. */
1.118 +
1.119 +extern float atanf _PARAMS((float));
1.120 +extern float cosf _PARAMS((float));
1.121 +extern float sinf _PARAMS((float));
1.122 +extern float tanf _PARAMS((float));
1.123 +extern float tanhf _PARAMS((float));
1.124 +extern float frexpf _PARAMS((float, int *));
1.125 +extern float modff _PARAMS((float, float *));
1.126 +extern float ceilf _PARAMS((float));
1.127 +extern float fabsf _PARAMS((float));
1.128 +extern float floorf _PARAMS((float));
1.129 +
1.130 +#ifndef _REENT_ONLY
1.131 +extern float acosf _PARAMS((float));
1.132 +extern float asinf _PARAMS((float));
1.133 +extern float atan2f _PARAMS((float, float));
1.134 +extern float coshf _PARAMS((float));
1.135 +extern float sinhf _PARAMS((float));
1.136 +extern float expf _PARAMS((float));
1.137 +extern float ldexpf _PARAMS((float, int));
1.138 +extern float logf _PARAMS((float));
1.139 +extern float log10f _PARAMS((float));
1.140 +extern float powf _PARAMS((float, float));
1.141 +extern float sqrtf _PARAMS((float));
1.142 +extern float fmodf _PARAMS((float, float));
1.143 +#endif /* ! defined (_REENT_ONLY) */
1.144 +
1.145 +/* Other single precision functions. */
1.146 +
1.147 +extern float infinityf _PARAMS((void));
1.148 +extern float nanf _PARAMS((void));
1.149 +extern int isnanf _PARAMS((float));
1.150 +extern int isinff _PARAMS((float));
1.151 +extern int finitef _PARAMS((float));
1.152 +extern float copysignf _PARAMS((float, float));
1.153 +extern int ilogbf _PARAMS((float));
1.154 +
1.155 +extern float asinhf _PARAMS((float));
1.156 +extern float cbrtf _PARAMS((float));
1.157 +extern float nextafterf _PARAMS((float, float));
1.158 +extern float rintf _PARAMS((float));
1.159 +extern float scalbnf _PARAMS((float, int));
1.160 +extern float log1pf _PARAMS((float));
1.161 +extern float expm1f _PARAMS((float));
1.162 +
1.163 +#ifndef _REENT_ONLY
1.164 +extern float acoshf _PARAMS((float));
1.165 +extern float atanhf _PARAMS((float));
1.166 +extern float remainderf _PARAMS((float, float));
1.167 +extern float gammaf _PARAMS((float));
1.168 +extern float gammaf_r _PARAMS((float, int *));
1.169 +extern float lgammaf _PARAMS((float));
1.170 +extern float lgammaf_r _PARAMS((float, int *));
1.171 +extern float erff _PARAMS((float));
1.172 +extern float erfcf _PARAMS((float));
1.173 +extern float y0f _PARAMS((float));
1.174 +extern float y1f _PARAMS((float));
1.175 +extern float ynf _PARAMS((int, float));
1.176 +extern float j0f _PARAMS((float));
1.177 +extern float j1f _PARAMS((float));
1.178 +extern float jnf _PARAMS((int, float));
1.179 +#define log2f(x) (logf (x) / (float) M_LOG2_E)
1.180 +extern float hypotf _PARAMS((float, float));
1.181 +
1.182 +extern float cabsf();
1.183 +extern float dremf _PARAMS((float, float));
1.184 +
1.185 +#endif /* ! defined (_REENT_ONLY) */
1.186 +
1.187 +/* The gamma functions use a global variable, signgam. */
1.188 +
1.189 +extern int signgam;
1.190 +
1.191 +/* The exception structure passed to the matherr routine. */
1.192 +
1.193 +#ifdef __cplusplus
1.194 +struct __exception
1.195 +#else
1.196 +struct exception
1.197 +#endif
1.198 +{
1.199 + int type;
1.200 + char *name;
1.201 + double arg1;
1.202 + double arg2;
1.203 + double retval;
1.204 + int err;
1.205 +};
1.206 +
1.207 +#ifdef __cplusplus
1.208 +extern int matherr _PARAMS((struct __exception *e));
1.209 +#else
1.210 +extern int matherr _PARAMS((struct exception *e));
1.211 +#endif
1.212 +
1.213 +/* Values for the type field of struct exception. */
1.214 +
1.215 +#define DOMAIN 1
1.216 +#define SING 2
1.217 +#define OVERFLOW 3
1.218 +#define UNDERFLOW 4
1.219 +#define TLOSS 5
1.220 +#define PLOSS 6
1.221 +
1.222 +/* Useful constants. */
1.223 +
1.224 +#define M_E 2.7182818284590452354
1.225 +#define M_LOG2E 1.4426950408889634074
1.226 +#define M_LOG10E 0.43429448190325182765
1.227 +#define M_LN2 0.69314718055994530942
1.228 +#define M_LN10 2.30258509299404568402
1.229 +#define M_PI 3.14159265358979323846
1.230 +#define M_TWOPI (M_PI * 2.0)
1.231 +#define M_PI_2 1.57079632679489661923
1.232 +#define M_PI_4 0.78539816339744830962
1.233 +#define M_3PI_4 2.3561944901923448370E0
1.234 +#define M_SQRTPI 1.77245385090551602792981
1.235 +#define M_1_PI 0.31830988618379067154
1.236 +#define M_2_PI 0.63661977236758134308
1.237 +#define M_2_SQRTPI 1.12837916709551257390
1.238 +#define M_SQRT2 1.41421356237309504880
1.239 +#define M_SQRT1_2 0.70710678118654752440
1.240 +#define M_LN2LO 1.9082149292705877000E-10
1.241 +#define M_LN2HI 6.9314718036912381649E-1
1.242 +#define M_SQRT3 1.73205080756887719000
1.243 +#define M_IVLN10 0.43429448190325182765 /* 1 / log(10) */
1.244 +#define M_LOG2_E 0.693147180559945309417
1.245 +#define M_INVLN2 1.4426950408889633870E0 /* 1 / log(2) */
1.246 +
1.247 +/* Global control over fdlibm error handling. */
1.248 +
1.249 +enum __fdlibm_version
1.250 +{
1.251 + __fdlibm_ieee = -1,
1.252 + __fdlibm_svid,
1.253 + __fdlibm_xopen,
1.254 + __fdlibm_posix
1.255 +};
1.256 +
1.257 +#define _LIB_VERSION_TYPE enum __fdlibm_version
1.258 +#define _LIB_VERSION __fdlib_version
1.259 +
1.260 +extern _CONST _LIB_VERSION_TYPE _LIB_VERSION;
1.261 +
1.262 +#define _IEEE_ __fdlibm_ieee
1.263 +#define _SVID_ __fdlibm_svid
1.264 +#define _XOPEN_ __fdlibm_xopen
1.265 +#define _POSIX_ __fdlibm_posix
1.266 +
1.267 +#endif /* ! defined (__STRICT_ANSI__) */
1.268 +
1.269 +#ifdef __FAST_MATH__
1.270 +#include <machine/fastmath.h>
1.271 +#endif
1.272 +
1.273 +#ifdef __cplusplus
1.274 +}
1.275 +#endif
1.276 +#endif /* _MATH_H_ */
.