long double _Q_ulltoq(const unsigned long long a) { FP_DECL_Q(C); long double c; unsigned long long b = a; FP_FROM_INT_Q(C, b, 64, unsigned long long); FP_PACK_RAW_Q(c, C); return c; }
TFtype __floatunditf (UDItype i) { FP_DECL_Q (A); TFtype a; FP_FROM_INT_Q (A, i, DI_BITS, UDItype); FP_PACK_RAW_Q (a, A); return a; }
TFtype __floatsitf (SItype i) { FP_DECL_Q (A); TFtype a; FP_FROM_INT_Q (A, i, SI_BITS, USItype); FP_PACK_RAW_Q (a, A); return a; }
TFtype __floatditf(DItype i) { FP_DECL_EX; FP_DECL_Q(A); TFtype a; FP_FROM_INT_Q(A, i, DI_BITS, UDItype); FP_PACK_RAW_Q(a, A); FP_HANDLE_EXCEPTIONS; return a; }
void _OtsCvtQUX (unsigned long a) { FP_DECL_EX; FP_DECL_Q(C); FP_DECL_RETURN(c); FP_FROM_INT_Q(C, a, 64, unsigned long); FP_PACK_RAW_Q(c, C); FP_RETURN(c); }
long double _q_itoq(const int a) { FP_DECL_EX; FP_DECL_Q(C); int b = a; long double c; FP_FROM_INT_Q(C, b, 32, unsigned int); FP_PACK_RAW_Q(c, C); FP_CLEAR_EXCEPTIONS; FP_HANDLE_EXCEPTIONS; return c; }
TFtype __negtf2 (TFtype a) { FP_DECL_Q (A); FP_DECL_Q (R); TFtype r; FP_UNPACK_RAW_Q (A, a); FP_NEG_Q (R, A); FP_PACK_RAW_Q (r, R); return r; }
long double _Q_lltoq(const long long a) { FP_DECL_EX; FP_DECL_Q(C); long double c; long long b = a; FP_FROM_INT_Q(C, b, 64, unsigned long long); FP_PACK_RAW_Q(c, C); FP_CLEAR_EXCEPTIONS; FP_HANDLE_EXCEPTIONS; return c; }
TFtype __floatuntikf (UTItype i) { FP_DECL_EX; FP_DECL_Q (A); TFtype a; FP_INIT_ROUNDMODE; FP_FROM_INT_Q (A, i, TI_BITS, UTItype); FP_PACK_RAW_Q (a, A); FP_HANDLE_EXCEPTIONS; return a; }
long double _Q_stoq(const float a) { FP_DECL_EX; FP_DECL_S(A); FP_DECL_Q(C); long double c; FP_UNPACK_RAW_S(A, a); #if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q FP_EXTEND(Q,S,4,1,C,A); #else FP_EXTEND(Q,S,2,1,C,A); #endif FP_PACK_RAW_Q(c, C); FP_HANDLE_EXCEPTIONS; return c; }
long double _q_dtoq(const double a) { FP_DECL_EX; FP_DECL_D(A); FP_DECL_Q(C); long double c; FP_INIT_ROUNDMODE; FP_UNPACK_RAW_D(A, a); #if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q FP_EXTEND(Q,D,4,2,C,A); #else FP_EXTEND(Q,D,2,1,C,A); #endif FP_PACK_RAW_Q(c, C); FP_HANDLE_EXCEPTIONS; return c; }
TFtype __extenddftf2(DFtype a) { FP_DECL_EX; FP_DECL_D(A); FP_DECL_Q(R); TFtype r; FP_INIT_ROUNDMODE; FP_UNPACK_RAW_D(A, a); #if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q FP_EXTEND(Q,D,4,2,R,A); #else FP_EXTEND(Q,D,2,1,R,A); #endif FP_PACK_RAW_Q(r, R); FP_HANDLE_EXCEPTIONS; return r; }
long double _Q_neg(const long double a) { long double c = a; #if (__BYTE_ORDER == __BIG_ENDIAN) ((UWtype *)&c)[0] ^= (((UWtype)1) << (W_TYPE_SIZE - 1)); #elif (__BYTE_ORDER == __LITTLE_ENDIAN) && (W_TYPE_SIZE == 64) ((UWtype *)&c)[1] ^= (((UWtype)1) << (W_TYPE_SIZE - 1)); #elif (__BYTE_ORDER == __LITTLE_ENDIAN) && (W_TYPE_SIZE == 32) ((UWtype *)&c)[3] ^= (((UWtype)1) << (W_TYPE_SIZE - 1)); #else FP_DECL_Q(A); FP_DECL_Q(C); FP_UNPACK_RAW_Q(A, a); FP_NEG_Q(C, A); FP_PACK_RAW_Q(c, C); #endif return c; }
TFtype __extendhftf2 (HFtype a) { FP_DECL_EX; FP_DECL_H (A); FP_DECL_Q (R); TFtype r; FP_INIT_EXCEPTIONS; FP_UNPACK_RAW_H (A, a); #if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q FP_EXTEND (Q, H, 4, 1, R, A); #else FP_EXTEND (Q, H, 2, 1, R, A); #endif FP_PACK_RAW_Q (r, R); FP_HANDLE_EXCEPTIONS; return r; }
TFtype __extenddftf2 (DFtype a) { FP_DECL_EX; FP_DECL_D (A); FP_DECL_Q (R); TFtype r; FP_INIT_EXCEPTIONS; FP_UNPACK_RAW_D (A, a); #if _FP_W_TYPE_SIZE < 64 FP_EXTEND (Q, D, 4, 2, R, A); #else FP_EXTEND (Q, D, 2, 1, R, A); #endif FP_PACK_RAW_Q (r, R); FP_HANDLE_EXCEPTIONS; return r; }
TFtype __extendxftf2 (XFtype a) { FP_DECL_EX; FP_DECL_E (A); FP_DECL_Q (R); TFtype r; FP_INIT_TRAPPING_EXCEPTIONS; FP_UNPACK_RAW_E (A, a); #if _FP_W_TYPE_SIZE < 64 FP_EXTEND (Q, E, 4, 4, R, A); #else FP_EXTEND (Q, E, 2, 2, R, A); #endif FP_PACK_RAW_Q (r, R); FP_HANDLE_EXCEPTIONS; return r; }