Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
"""Implementation of :class:`PythonRationalField` class. """
from __future__ import print_function, division
from sympy.polys.domains.rationalfield import RationalField from sympy.polys.domains.groundtypes import PythonInteger, PythonRational, SymPyRational
from sympy.polys.polyerrors import CoercionFailed from sympy.utilities import public
@public class PythonRationalField(RationalField): """Rational field based on Python rational number type. """
dtype = PythonRational zero = dtype(0) one = dtype(1) alias = 'QQ_python'
def __init__(self):
def get_ring(self): """Returns ring associated with ``self``. """
def to_sympy(self, a): """Convert `a` to a SymPy object. """
def from_sympy(self, a): """Convert SymPy's Rational to `dtype`. """ elif a.is_Float: from sympy.polys.domains import RR p, q = RR.to_rational(a) return PythonRational(int(p), int(q)) else: raise CoercionFailed("expected `Rational` object, got %s" % a)
def from_ZZ_python(K1, a, K0): """Convert a Python `int` object to `dtype`. """
def from_QQ_python(K1, a, K0): """Convert a Python `Fraction` object to `dtype`. """ return a
def from_ZZ_gmpy(K1, a, K0): """Convert a GMPY `mpz` object to `dtype`. """ return PythonRational(PythonInteger(a))
def from_QQ_gmpy(K1, a, K0): """Convert a GMPY `mpq` object to `dtype`. """ return PythonRational(PythonInteger(a.numer()), PythonInteger(a.denom()))
def from_RealField(K1, a, K0): """Convert a mpmath `mpf` object to `dtype`. """ p, q = K0.to_rational(a) return PythonRational(int(p), int(q))
def numer(self, a): """Returns numerator of `a`. """
def denom(self, a): """Returns denominator of `a`. """ |