K ij hdZddlmZmZmZmZmZddlm Z ddl m Z ddl m Z e Gdde Zy) z4Implementation of :class:`GMPYRationalField` class. ) GMPYRational SymPyRational gmpy_numer gmpy_denom factorial) RationalField)CoercionFailed)publicceZdZdZeZedZedZeeZ dZ dZ dZ dZ dZd Zd Zd Zd Zd ZdZdZdZdZdZdZdZdZy)GMPYRationalFieldzRational field based on GMPY's ``mpq`` type. This will be the implementation of :ref:`QQ` if ``gmpy`` or ``gmpy2`` is installed. Elements will be of type ``gmpy.mpq``. rQQ_gmpycy)N)selfs k/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/polys/domains/gmpyrationalfield.py__init__zGMPYRationalField.__init__s cddlm}|S)z'Returns ring associated with ``self``. r)GMPYIntegerRing)sympy.polys.domainsr)rrs rget_ringzGMPYRationalField.get_rings7  rcbttt|tt|S)z!Convert ``a`` to a SymPy object. )rintrrras rto_sympyzGMPYRationalField.to_sympy"s&SA/ A/1 1rc|jr t|j|jS|jr+ddlm}ttt|j|Std|z)z&Convert SymPy's Integer to ``dtype``. r)RRz$expected ``Rational`` object, got %s) is_Rationalrpqis_Floatrrmapr to_rationalr )rrrs r from_sympyzGMPYRationalField.from_sympy'sT ==QSS) ) ZZ .S"..*;!<= = !G!!KL Lrct|S)z.Convert a Python ``int`` object to ``dtype``. rK1rK0s rfrom_ZZ_pythonz GMPYRationalField.from_ZZ_python1 ArcBt|j|jS)z3Convert a Python ``Fraction`` object to ``dtype``. )r numerator denominatorr)s rfrom_QQ_pythonz GMPYRationalField.from_QQ_python5sAKK77rct|S)z,Convert a GMPY ``mpz`` object to ``dtype``. r(r)s r from_ZZ_gmpyzGMPYRationalField.from_ZZ_gmpy9r-rc|S)z,Convert a GMPY ``mpq`` object to ``dtype``. rr)s r from_QQ_gmpyzGMPYRationalField.from_QQ_gmpy=srcL|jdk(rt|jSy)z3Convert a ``GaussianElement`` object to ``dtype``. rN)yrxr)s rfrom_GaussianRationalFieldz,GMPYRationalField.from_GaussianRationalFieldAs! 33!8$ $ rcLttt|j|S)z.Convert a mpmath ``mpf`` object to ``dtype``. )rr$rr%r)s rfrom_RealFieldz GMPYRationalField.from_RealFieldFsSbnnQ&7899rc0t|t|z S)z=Exact quotient of ``a`` and ``b``, implies ``__truediv__``. r(rrbs rexquozGMPYRationalField.exquoJAa00rc0t|t|z S)z6Quotient of ``a`` and ``b``, implies ``__truediv__``. r(r=s rquozGMPYRationalField.quoNr@rc|jS)z0Remainder of ``a`` and ``b``, implies nothing. )zeror=s rremzGMPYRationalField.remRs yyrcHt|t|z |jfS)z6Division of ``a`` and ``b``, implies ``__truediv__``. )rrDr=s rdivzGMPYRationalField.divVsAa0$));;rc|jS)zReturns numerator of ``a``. )r/rs rnumerzGMPYRationalField.numerZs {{rc|jS)zReturns denominator of ``a``. )r0rs rdenomzGMPYRationalField.denom^s }}rc<ttt|S)zReturns factorial of ``a``. )rgmpy_factorialrrs rrzGMPYRationalField.factorialbsN3q6233rN)__name__ __module__ __qualname____doc__rdtyperDonetypetpaliasrrrr&r,r1r3r5r9r;r?rBrErGrIrKrrrrr r s E 8D (C cB E ! 1 M8% :11<4rr N)rQsympy.polys.domains.groundtypesrrrrrrM!sympy.polys.domains.rationalfieldrsympy.polys.polyerrorsr sympy.utilitiesr r rrrr[s9:<1"W4 W4W4r