DFtype __divdf3(DFtype a, DFtype b) { FP_DECL_EX; FP_DECL_D(A); FP_DECL_D(B); FP_DECL_D(R); DFtype r; FP_INIT_ROUNDMODE; FP_UNPACK_D(A, a); FP_UNPACK_D(B, b); FP_DIV_D(R, A, B); FP_PACK_D(r, R); FP_HANDLE_EXCEPTIONS; return r; }
double __fma (double a, double b, double c) { FP_DECL_EX; FP_DECL_D (A); FP_DECL_D (B); FP_DECL_D (C); FP_DECL_D (R); double r; FP_INIT_ROUNDMODE; FP_UNPACK_D (A, a); FP_UNPACK_D (B, b); FP_UNPACK_D (C, c); FP_FMA_D (R, A, B, C); FP_PACK_D (r, R); FP_HANDLE_EXCEPTIONS; return r; }
DItype __fixdfdi(double a) { FP_DECL_EX; FP_DECL_D(A); DItype r; FP_UNPACK_D(A, a); FP_TO_INT_D(r, A, 64, 1); FP_HANDLE_EXCEPTIONS; return r; }
double __sqrtdf2(double a) { FP_DECL_EX; FP_DECL_D(A); FP_DECL_D(R); double r; FP_INIT_ROUNDMODE; FP_UNPACK_D(A, a); FP_SQRT_D(R, A); FP_PACK_D(r, R); FP_HANDLE_EXCEPTIONS; return r; }
DFtype __negdf2(DFtype a) { FP_DECL_EX; FP_DECL_D(A); FP_DECL_D(R); DFtype r; FP_UNPACK_D(A, a); FP_NEG_D(R, A); FP_PACK_D(r, R); FP_CLEAR_EXCEPTIONS; FP_HANDLE_EXCEPTIONS; return r; }
float __truncdfsf2(double a) { FP_DECL_EX; FP_DECL_D(A); FP_DECL_S(R); float r; FP_INIT_ROUNDMODE; FP_UNPACK_D(A, a); #if _FP_W_TYPE_SIZE < _FP_FRACBITS_D FP_CONV(S,D,1,2,R,A); #else FP_CONV(S,D,1,1,R,A); #endif FP_PACK_S(r, R); FP_HANDLE_EXCEPTIONS; return r; }