def __long__(self): if gmp.mpz_fits_slong_p(self._mpz): return long(gmp.mpz_get_si(self._mpz)) elif gmp.mpz_fits_ulong_p(self._mpz): return gmp.mpz_get_ui(self._mpz) else: return _mpz_to_pylong(self._mpz)
def __int__(self): if not gmp.mpfr_number_p(self._mpfr): raise ValueError("Cannot convert '%s' to int" % self) elif gmp.mpfr_fits_slong_p(self._mpfr, gmp.MPFR_RNDN): return gmp.mpfr_get_si(self._mpfr, gmp.MPFR_RNDN) elif gmp.mpfr_fits_ulong_p(self._mpfr, gmp.MPFR_RNDN): return gmp.mpfr_get_ui(self._mpfr, gmp.MPFR_RNDN) else: tmp_mpz = _new_mpz() gmp.mpfr_get_z(tmp_mpz, self._mpfr, gmp.MPFR_RNDN) res = _mpz_to_pylong(tmp_mpz) _del_mpz(tmp_mpz) return res