
    Ed                     n    d Z ddlmZmZmZ ddlmZ ddlmZ ddl	m
Z
 e
 G d de                      ZdS )	z6Implementation of :class:`PythonRationalField` class.     )PythonIntegerPythonRationalSymPyRational)RationalField)CoercionFailed)publicc                       e Zd ZdZeZ ed          Z ed          ZdZd Z	d Z
d Zd Zd	 Zd
 Zd Zd Zd Zd Zd ZdS )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_pythonc                     d S )N )selfs    Glib/python3.11/site-packages/sympy/polys/domains/pythonrationalfield.py__init__zPythonRationalField.__init__   s        c                 "    ddl m}  |            S )z'Returns ring associated with ``self``. r   )PythonIntegerRing)sympy.polys.domainsr   )r   r   s     r   get_ringzPythonRationalField.get_ring   s#    999999  """r   c                 6    t          |j        |j                  S )zConvert `a` to a SymPy object. )r   	numeratordenominatorr   as     r   to_sympyzPythonRationalField.to_sympy   s    Q[!-888r   c                    |j         rt          |j        |j                  S |j        rHddlm} |                    |          \  }}t          t          |          t          |                    S t          d|z            )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_sympyzPythonRationalField.from_sympy"   s    = 	K!!#qs+++Z 	K......>>!$$DAq!#a&&#a&&111 !E!IJJJr   c                      t          |          S )z*Convert a Python `int` object to `dtype`. )r   K1r   K0s      r   from_ZZ_pythonz"PythonRationalField.from_ZZ_python-   s    a   r   c                     |S )z/Convert a Python `Fraction` object to `dtype`. r   r'   s      r   from_QQ_pythonz"PythonRationalField.from_QQ_python1   s    r   c                 :    t          t          |                    S )z(Convert a GMPY `mpz` object to `dtype`. )r   r   r'   s      r   from_ZZ_gmpyz PythonRationalField.from_ZZ_gmpy5   s    mA..///r   c                     t          t          |                                          t          |                                                    S )z(Convert a GMPY `mpq` object to `dtype`. )r   r   numerdenomr'   s      r   from_QQ_gmpyz PythonRationalField.from_QQ_gmpy9   s9    mAGGII66+AGGII668 8 	8r   c                     |                     |          \  }}t          t          |          t          |                    S )z*Convert a mpmath `mpf` object to `dtype`. )r#   r   r$   )r(   r   r)   r    r!   s        r   from_RealFieldz"PythonRationalField.from_RealField>   s3    ~~a  1c!ffc!ff---r   c                     |j         S )zReturns numerator of `a`. )r   r   s     r   r0   zPythonRationalField.numerC   s
    {r   c                     |j         S )zReturns denominator of `a`. )r   r   s     r   r1   zPythonRationalField.denomG   s
    }r   N)__name__
__module____qualname____doc__r   dtypezeroonealiasr   r   r   r%   r*   r,   r.   r2   r4   r0   r1   r   r   r   r
   r
   	   s          E588D
%((CE  # # #
9 9 9	K 	K 	K! ! !  0 0 08 8 8
. . .
      r   r
   N)r:   sympy.polys.domains.groundtypesr   r   r   !sympy.polys.domains.rationalfieldr   sympy.polys.polyerrorsr   sympy.utilitiesr   r
   r   r   r   <module>rC      s    < < Y X X X X X X X X X ; ; ; ; ; ; 1 1 1 1 1 1 " " " " " "? ? ? ? ?- ? ? ? ? ?r   