17#ifndef _MATH_PRIVATE_OPENBSD_H_
18#define _MATH_PRIVATE_OPENBSD_H_
20#if __FLOAT_WORD_ORDER__ == __ORDER_BIG_ENDIAN__
39#if __FLOAT_WORD_ORDER__ == __ORDER_LITTLE_ENDIAN__
60#define GET_LDOUBLE_WORDS64(ix0,ix1,d) \
62 ieee_quad_shape_type qw_u; \
64 (ix0) = qw_u.parts64.msw; \
65 (ix1) = qw_u.parts64.lsw; \
70#define SET_LDOUBLE_WORDS64(d,ix0,ix1) \
72 ieee_quad_shape_type qw_u; \
73 qw_u.parts64.msw = (ix0); \
74 qw_u.parts64.lsw = (ix1); \
80#define GET_LDOUBLE_MSW64(v,d) \
82 ieee_quad_shape_type sh_u; \
84 (v) = sh_u.parts64.msw; \
89#define SET_LDOUBLE_MSW64(d,v) \
91 ieee_quad_shape_type sh_u; \
93 sh_u.parts64.msw = (v); \
99#define GET_LDOUBLE_LSW64(v,d) \
101 ieee_quad_shape_type sh_u; \
103 (v) = sh_u.parts64.lsw; \
109#if __FLOAT_WORD_ORDER__ == __ORDER_BIG_ENDIAN__
127#if __FLOAT_WORD_ORDER__ == __ORDER_LITTLE_ENDIAN__
147#define GET_LDOUBLE_WORDS(se,ix0,ix1,d) \
149 ieee_extended_shape_type ew_u; \
151 (se) = ew_u.parts.exp; \
152 (ix0) = ew_u.parts.msw; \
153 (ix1) = ew_u.parts.lsw; \
158#define SET_LDOUBLE_WORDS(d,se,ix0,ix1) \
160 ieee_extended_shape_type iw_u; \
161 iw_u.parts.exp = (se); \
162 iw_u.parts.msw = (ix0); \
163 iw_u.parts.lsw = (ix1); \
169#define GET_LDOUBLE_MSW(v,d) \
171 ieee_extended_shape_type sh_u; \
173 (v) = sh_u.parts.msw; \
178#define SET_LDOUBLE_MSW(d,v) \
180 ieee_extended_shape_type sh_u; \
182 sh_u.parts.msw = (v); \
188#define GET_LDOUBLE_EXP(se,d) \
190 ieee_extended_shape_type ge_u; \
192 (se) = ge_u.parts.exp; \
197#define SET_LDOUBLE_EXP(d,se) \
199 ieee_extended_shape_type se_u; \
201 se_u.parts.exp = (se); \
long double __p1evll(long double, void *, int)
struct Double __log__D(double)
long double __polevll(long double, void *, int)
void __scan_nan(uint32_t *__words, int __num_words, const char *__s)
double __exp__D(double, double)
MATH_INLINE float64_t exp(float64_t const value)
unsigned __int32 uint32_t