K i`dZddlmZmZmZddlmZddlmZddl m Z e GddeZ y) z6Implementation of :class:`PythonRationalField` class. ) PythonIntegerPythonRational SymPyRational) RationalField)CoercionFailed)publicczeZdZdZeZedZedZdZdZ dZ dZ dZ d Z d Zd Zd Zd ZdZdZy)PythonRationalFieldzRational field based on :ref:`MPQ`. This will be used as :ref:`QQ` if ``gmpy`` and ``gmpy2`` are not installed. Elements are instances of :ref:`MPQ`. r QQ_pythoncy)N)selfs m/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/polys/domains/pythonrationalfield.py__init__zPythonRationalField.__init__s cddlm}|S)z'Returns ring associated with ``self``. r)PythonIntegerRing)sympy.polys.domainsr)rrs rget_ringzPythonRationalField.get_rings9 ""rcBt|j|jS)zConvert `a` to a SymPy object. )r numerator denominatorras rto_sympyzPythonRationalField.to_sympysQ[[!--88rc|jr t|j|jS|jr8ddlm}|j|\}}tt|t|Std|z)z%Convert SymPy's Rational to `dtype`. r)RRz"expected `Rational` object, got %s) is_Rationalrpqis_Floatrr to_rationalintr)rrrr r!s r from_sympyzPythonRationalField.from_sympy"s` ==!!##qss+ + ZZ .>>!$DAq!#a&#a&1 1 !E!IJ Jrct|S)z*Convert a Python `int` object to `dtype`. )rK1rK0s rfrom_ZZ_pythonz"PythonRationalField.from_ZZ_python-s a  rc|S)z/Convert a Python `Fraction` object to `dtype`. rr's rfrom_QQ_pythonz"PythonRationalField.from_QQ_python1src*tt|S)z(Convert a GMPY `mpz` object to `dtype`. )rrr's r from_ZZ_gmpyz PythonRationalField.from_ZZ_gmpy5smA.//rcvtt|jt|jS)z(Convert a GMPY `mpq` object to `dtype`. )rrnumerdenomr's r from_QQ_gmpyz PythonRationalField.from_QQ_gmpy9s*mAGGI6+AGGI68 8rcf|j|\}}tt|t|S)z*Convert a mpmath `mpf` object to `dtype`. )r#rr$)r(rr)r r!s rfrom_RealFieldz"PythonRationalField.from_RealField>s)~~a 1c!fc!f--rc|jS)zReturns numerator of `a`. )rrs rr0zPythonRationalField.numerCs {{rc|jS)zReturns denominator of `a`. )rrs rr1zPythonRationalField.denomGs }}rN)__name__ __module__ __qualname____doc__rdtypezeroonealiasrrrr%r*r,r.r2r4r0r1rrrr r s] E 8D (C E # 9 K!08 . rr N) r:sympy.polys.domains.groundtypesrrr!sympy.polys.domains.rationalfieldrsympy.polys.polyerrorsrsympy.utilitiesrr rrrrCs3<YX;1"?-??r