ó
    Š*£h÷  ã                   ó`   • S r SSKJrJrJr  SSKJr  SSKJr  SSK	J
r
  \
 " S S\5      5       rg)	z6Implementation of :class:`PythonRationalField` class. é    )ÚPythonIntegerÚPythonRationalÚSymPyRational)ÚRationalField)ÚCoercionFailed)Úpublicc                   ó‚   • \ rS rSrSr\r\" S5      r\" S5      rSr	S r
S rS rS	 rS
 rS rS rS rS rS rS rSrg)ÚPythonRationalFieldé	   z—Rational 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_pythonc                 ó   • g )N© )Úselfs    Úd/home/mande/repo/quber/.venv/lib/python3.13/site-packages/sympy/polys/domains/pythonrationalfield.pyÚ__init__ÚPythonRationalField.__init__   s   € Øó    c                 ó   • SSK Jn  U" 5       $ )z'Returns ring associated with ``self``. r   )ÚPythonIntegerRing)Úsympy.polys.domainsr   )r   r   s     r   Úget_ringÚPythonRationalField.get_ring   s   € å9Ù Ó"Ð"r   c                 óB   • [        UR                  UR                  5      $ )zConvert `a` to a SymPy object. )r   Ú	numeratorÚdenominator©r   Úas     r   Úto_sympyÚPythonRationalField.to_sympy   s   € ä˜QŸ[™[¨!¯-©-Ó8Ð8r   c                 ó  • UR                   (       a   [        UR                  UR                  5      $ UR                  (       a7  SSKJn  UR                  U5      u  p4[        [        U5      [        U5      5      $ [        SU-  5      e)z%Convert SymPy's Rational to `dtype`. r   )ÚRRz"expected `Rational` object, got %s)
Úis_Rationalr   ÚpÚqÚis_Floatr   r"   Úto_rationalÚintr   )r   r   r"   r$   r%   s        r   Ú
from_sympyÚPythonRationalField.from_sympy"   s^   € à�=�=Ü! !§#¡# q§s¡sÓ+Ð+Ø�Z�ZÝ.Ø—>‘> !Ó$‰DˆAÜ!¤# a£&¬#¨a«&Ó1Ð1ä Ð!EÈÑ!IÓJÐJr   c                 ó   • [        U5      $ )z*Convert a Python `int` object to `dtype`. )r   ©ÚK1r   ÚK0s      r   Úfrom_ZZ_pythonÚ"PythonRationalField.from_ZZ_python-   s   € ä˜aÓ Ð r   c                 ó   • U$ )z/Convert a Python `Fraction` object to `dtype`. r   r,   s      r   Úfrom_QQ_pythonÚ"PythonRationalField.from_QQ_python1   s   € àˆr   c                 ó*   • [        [        U5      5      $ )z(Convert a GMPY `mpz` object to `dtype`. )r   r   r,   s      r   Úfrom_ZZ_gmpyÚ PythonRationalField.from_ZZ_gmpy5   s   € äœm¨AÓ.Ó/Ð/r   c                 óv   • [        [        UR                  5       5      [        UR                  5       5      5      $ )z(Convert a GMPY `mpq` object to `dtype`. )r   r   ÚnumerÚdenomr,   s      r   Úfrom_QQ_gmpyÚ PythonRationalField.from_QQ_gmpy9   s*   € äœm¨A¯G©G«IÓ6Ü+¨A¯G©G«IÓ6ó8ð 	8r   c                 ód   • UR                  U5      u  p4[        [        U5      [        U5      5      $ )z*Convert a mpmath `mpf` object to `dtype`. )r'   r   r(   )r-   r   r.   r$   r%   s        r   Úfrom_RealFieldÚ"PythonRationalField.from_RealField>   s'   € à�~‰~˜aÓ ‰ˆÜœc !›f¤c¨!£fÓ-Ð-r   c                 ó   • UR                   $ )zReturns numerator of `a`. )r   r   s     r   r8   ÚPythonRationalField.numerC   s   € à�{‰{Ðr   c                 ó   • UR                   $ )zReturns denominator of `a`. )r   r   s     r   r9   ÚPythonRationalField.denomG   s   € à�}‰}Ðr   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   ÚdtypeÚzeroÚoneÚaliasr   r   r   r)   r/   r2   r5   r:   r=   r8   r9   Ú__static_attributes__r   r   r   r
   r
   	   s]   † ñð €EÙ�‹8€DÙ
�‹(€CØ€Eòò#ò
9ò	Kò!òò0ò8ò
.ò
õr   r
   N)rG   Úsympy.polys.domains.groundtypesr   r   r   Ú!sympy.polys.domains.rationalfieldr   Úsympy.polys.polyerrorsr   Úsympy.utilitiesr   r
   r   r   r   Ú<module>rQ      s3   ðÙ <÷ YÑ XÝ ;Ý 1Ý "àô?˜-ó ?ó ñ?r   