filename | test/include/math.h |
changeset | 185:6755a04c447f |
author | nkeynes |
date | Wed Aug 02 04:13:15 2006 +0000 (17 years ago) |
permissions | -rw-r--r-- |
last change | Add many more TA test cases (a couple of corner cases aren't 100% correct yet, TBA) Add new test "testregs" to check register masks (currently just PVR registers) |
file | annotate | diff | log | raw |
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +00001.2 +++ b/test/include/math.h Wed Aug 02 04:13:15 2006 +00001.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 __cplusplus1.8 +extern "C" {1.9 +#endif1.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_VAL1.17 +1.18 +/* Define HUGE_VAL as infinity, unless HUGE_VAL is already defined1.19 + (which might have been done by something like math-68881.h). */1.20 +1.21 +union __dmath1.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_688811.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_ONLY1.51 +#ifndef __math_68811.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_688811.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_ONLY1.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_688811.109 +extern double hypot _PARAMS((double, double));1.110 +#endif1.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_ONLY1.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_ONLY1.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 __cplusplus1.194 +struct __exception1.195 +#else1.196 +struct exception1.197 +#endif1.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 __cplusplus1.208 +extern int matherr _PARAMS((struct __exception *e));1.209 +#else1.210 +extern int matherr _PARAMS((struct exception *e));1.211 +#endif1.212 +1.213 +/* Values for the type field of struct exception. */1.214 +1.215 +#define DOMAIN 11.216 +#define SING 21.217 +#define OVERFLOW 31.218 +#define UNDERFLOW 41.219 +#define TLOSS 51.220 +#define PLOSS 61.221 +1.222 +/* Useful constants. */1.223 +1.224 +#define M_E 2.71828182845904523541.225 +#define M_LOG2E 1.44269504088896340741.226 +#define M_LOG10E 0.434294481903251827651.227 +#define M_LN2 0.693147180559945309421.228 +#define M_LN10 2.302585092994045684021.229 +#define M_PI 3.141592653589793238461.230 +#define M_TWOPI (M_PI * 2.0)1.231 +#define M_PI_2 1.570796326794896619231.232 +#define M_PI_4 0.785398163397448309621.233 +#define M_3PI_4 2.3561944901923448370E01.234 +#define M_SQRTPI 1.772453850905516027929811.235 +#define M_1_PI 0.318309886183790671541.236 +#define M_2_PI 0.636619772367581343081.237 +#define M_2_SQRTPI 1.128379167095512573901.238 +#define M_SQRT2 1.414213562373095048801.239 +#define M_SQRT1_2 0.707106781186547524401.240 +#define M_LN2LO 1.9082149292705877000E-101.241 +#define M_LN2HI 6.9314718036912381649E-11.242 +#define M_SQRT3 1.732050807568877190001.243 +#define M_IVLN10 0.43429448190325182765 /* 1 / log(10) */1.244 +#define M_LOG2_E 0.6931471805599453094171.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_version1.250 +{1.251 + __fdlibm_ieee = -1,1.252 + __fdlibm_svid,1.253 + __fdlibm_xopen,1.254 + __fdlibm_posix1.255 +};1.256 +1.257 +#define _LIB_VERSION_TYPE enum __fdlibm_version1.258 +#define _LIB_VERSION __fdlib_version1.259 +1.260 +extern _CONST _LIB_VERSION_TYPE _LIB_VERSION;1.261 +1.262 +#define _IEEE_ __fdlibm_ieee1.263 +#define _SVID_ __fdlibm_svid1.264 +#define _XOPEN_ __fdlibm_xopen1.265 +#define _POSIX_ __fdlibm_posix1.266 +1.267 +#endif /* ! defined (__STRICT_ANSI__) */1.268 +1.269 +#ifdef __FAST_MATH__1.270 +#include <machine/fastmath.h>1.271 +#endif1.272 +1.273 +#ifdef __cplusplus1.274 +}1.275 +#endif1.276 +#endif /* _MATH_H_ */
.