17 #ifndef _MATH_PRIVATE_H_ 18 #define _MATH_PRIVATE_H_ 36 #if BYTE_ORDER == BIG_ENDIAN 55 #if BYTE_ORDER == LITTLE_ENDIAN 76 #define GET_LDOUBLE_WORDS64(ix0,ix1,d) \ 78 ieee_quad_shape_type qw_u; \ 80 (ix0) = qw_u.parts64.msw; \ 81 (ix1) = qw_u.parts64.lsw; \ 86 #define SET_LDOUBLE_WORDS64(d,ix0,ix1) \ 88 ieee_quad_shape_type qw_u; \ 89 qw_u.parts64.msw = (ix0); \ 90 qw_u.parts64.lsw = (ix1); \ 96 #define GET_LDOUBLE_MSW64(v,d) \ 98 ieee_quad_shape_type sh_u; \ 100 (v) = sh_u.parts64.msw; \ 105 #define SET_LDOUBLE_MSW64(d,v) \ 107 ieee_quad_shape_type sh_u; \ 109 sh_u.parts64.msw = (v); \ 115 #define GET_LDOUBLE_LSW64(v,d) \ 117 ieee_quad_shape_type sh_u; \ 119 (v) = sh_u.parts64.lsw; \ 125 #if BYTE_ORDER == BIG_ENDIAN 143 #if BYTE_ORDER == LITTLE_ENDIAN 163 #define GET_LDOUBLE_WORDS(se,ix0,ix1,d) \ 165 ieee_extended_shape_type ew_u; \ 167 (se) = ew_u.parts.exp; \ 168 (ix0) = ew_u.parts.msw; \ 169 (ix1) = ew_u.parts.lsw; \ 174 #define SET_LDOUBLE_WORDS(d,se,ix0,ix1) \ 176 ieee_extended_shape_type iw_u; \ 177 iw_u.parts.exp = (se); \ 178 iw_u.parts.msw = (ix0); \ 179 iw_u.parts.lsw = (ix1); \ 185 #define GET_LDOUBLE_MSW(v,d) \ 187 ieee_extended_shape_type sh_u; \ 189 (v) = sh_u.parts.msw; \ 194 #define SET_LDOUBLE_MSW(d,v) \ 196 ieee_extended_shape_type sh_u; \ 198 sh_u.parts.msw = (v); \ 204 #define GET_LDOUBLE_EXP(se,d) \ 206 ieee_extended_shape_type ge_u; \ 208 (se) = ge_u.parts.exp; \ 213 #define SET_LDOUBLE_EXP(d,se) \ 215 ieee_extended_shape_type se_u; \ 217 se_u.parts.exp = (se); \ 229 #if (BYTE_ORDER == BIG_ENDIAN) || (defined(__arm__) && !defined(__VFP_FP__)) 243 #if (BYTE_ORDER == LITTLE_ENDIAN) && !(defined(__arm__) && !defined(__VFP_FP__)) 259 #define EXTRACT_WORDS(ix0,ix1,d) \ 261 ieee_double_shape_type ew_u; \ 263 (ix0) = ew_u.parts.msw; \ 264 (ix1) = ew_u.parts.lsw; \ 269 #define GET_HIGH_WORD(i,d) \ 271 ieee_double_shape_type gh_u; \ 273 (i) = gh_u.parts.msw; \ 278 #define GET_LOW_WORD(i,d) \ 280 ieee_double_shape_type gl_u; \ 282 (i) = gl_u.parts.lsw; \ 287 #define INSERT_WORDS(d,ix0,ix1) \ 289 ieee_double_shape_type iw_u; \ 290 iw_u.parts.msw = (ix0); \ 291 iw_u.parts.lsw = (ix1); \ 297 #define SET_HIGH_WORD(d,v) \ 299 ieee_double_shape_type sh_u; \ 301 sh_u.parts.msw = (v); \ 307 #define SET_LOW_WORD(d,v) \ 309 ieee_double_shape_type sl_u; \ 311 sl_u.parts.lsw = (v); \ 326 #define GET_FLOAT_WORD(i,d) \ 328 ieee_float_shape_type gf_u; \ 335 #define SET_FLOAT_WORD(d,i) \ 337 ieee_float_shape_type sf_u; \ 342 #ifdef FLT_EVAL_METHOD 346 #if FLT_EVAL_METHOD == 0 || __GNUC__ == 0 347 #define STRICT_ASSIGN(type, lval, rval) ((lval) = (rval)) 349 #define STRICT_ASSIGN(type, lval, rval) do { \ 350 volatile type __lval; \ 352 if (sizeof(type) >= sizeof(long double)) \ 393 #define TRUNC(d) (_b_trunc(&(d))) 396 _b_trunc(
volatile double *_dp)
414 long double __p1evll(
long double,
void *,
int);
415 long double __polevll(
long double,
void *,
int);
int __ieee754_rem_pio2f(float, float *)
int __kernel_rem_pio2(double *, double *, int, int, int)
float __kernel_tanf(float, float, int)
long double __kernel_tanl(long double, long double, int)
int __kernel_rem_pio2f(float *, float *, int, int, int, const int *)
double __kernel_tan(double, double, int)
#define SET_LOW_WORD(d, v)
double __exp__D(double, double)
void _scan_nan(uint32_t *__words, int __num_words, const char *__s)
struct Double __log__D(double)
double __kernel_sin(double, double, int)
long double __p1evll(long double, void *, int)
long double __polevll(long double, void *, int)
#define GET_LOW_WORD(i, d)
float __kernel_cosf(float, float)
float __kernel_sinf(float, float, int)
long double __kernel_sinl(long double, long double, int)
int __ieee754_rem_pio2(double, double *)
double __kernel_cos(double, double)
long double __kernel_cosl(long double, long double)