ieee754dp ieee754dp_funs(unsigned int u) { if ((int) u < 0) return ieee754dp_add(ieee754dp_1e31(), ieee754dp_fint(u & ~(1 << 31))); return ieee754dp_fint(u); }
ieee754dp ieee754dp_ceil(ieee754dp x) { ieee754dp i; if (ieee754dp_gt(ieee754dp_modf(x, &i), ieee754dp_zero(0))) return ieee754dp_add(i, ieee754dp_one(0)); else return i; }
union ieee754dp ieee754dp_abs(union ieee754dp x) { unsigned int oldrm; union ieee754dp y; oldrm = ieee754_csr.rm; ieee754_csr.rm = FPU_CSR_RD; if (DPSIGN(x)) y = ieee754dp_sub(ieee754dp_zero(0), x); else y = ieee754dp_add(ieee754dp_zero(0), x); ieee754_csr.rm = oldrm; return y; }