+
    iR                     |    R t ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
HtHt ^ RIHt ] ! R R]]4      4       tR	# )
z0Implementation of :class:`FractionField` class. )Field)CompositeDomain)DMF)GeneratorsNeeded)dict_from_basicbasic_from_dict_dict_reorder)publicc                      a  ] tR t^t o Rt]tR;ttRt	Rt
R tR tR tR tR tR tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR t R t!R t"R t#R t$Rt%V t&R# )FractionFieldz3A class for representing rational function fields. Tc                (   V'       g   \        R 4      h\        V4      ^,
          p\        V4      V n        V P                  P	                  W14      V n        V P                  P                  W14      V n        V;V n        V n        V;V n        V n	        R# )zgenerators not specifiedN)
r   lenngensdtypezeroonedomaindomsymbolsgens)selfr   r   levs   &&* c/var/www/html/photoedit/myenv/lib/python3.14/site-packages/sympy/polys/domains/old_fractionfield.py__init__FractionField.__init__   sm    "#=>>$i!mY
JJOOC-	::>>#+!$$dh#''ty    c                >    V P                   ! V.V P                  O5!  # )z-Make a new fraction field with given domain. )	__class__r   )r   r   s   &&r   
set_domainFractionField.set_domain"   s    ~~c.DII..r   c                n    V P                  WP                  \        V P                  4      ^,
          4      # )   )r   r   r   r   )r   elements   &&r   newFractionField.new&   s$    zz'88S^a-?@@r   c                    \        V P                  4      R ,           RP                  \        \         V P                  4      4      ,           R,           # )(,))strr   joinmapr   r   s   &r   __str__FractionField.__str__)   s3    488}s"SXXc#tyy.A%BBSHHr   c                    \        V P                  P                  V P                  V P                  V P
                  34      # )N)hashr   __name__r   r   r   r,   s   &r   __hash__FractionField.__hash__,   s,    T^^,,djj$((DIINOOr   c                    \        V\        4      ;'       d\    V P                  VP                  8H  ;'       d;    V P                  VP                  8H  ;'       d    V P                  VP                  8H  # )z0Returns ``True`` if two domains are equivalent. )
isinstancer   r   r   r   )r   others   &&r   __eq__FractionField.__eq__/   si    %/ \ \JJ%++%\ \*.((eii*?\ \DHIIQVQ[Q[D[	\r   c                    \        VP                  4       P                  4       .V P                  O5!  \        VP	                  4       P                  4       .V P                  O5!  ,          # )z!Convert ``a`` to a SymPy object. )r   numerto_sympy_dictr   denomr   as   &&r   to_sympyFractionField.to_sympy4   sN    	 7 7 9FDIIF	 7 7 9FDIIFG 	Hr   c                   VP                  4       w  r#\        W P                  R7      w  rE\        W0P                  R7      w  reVP                  4        F"  w  rxV P                  P                  V4      WG&   K$  	  VP                  4        F"  w  rxV P                  P                  V4      Wg&   K$  	  V ! WF34      P                  4       # )z)Convert SymPy's expression to ``dtype``. )r   )as_numer_denomr   r   itemsr   
from_sympycancel)	r   r>   pqnum_denkvs	   &&       r   rD   FractionField.from_sympy9   s    ! 3 3IIKDAXX((+CF   IIKDAXX((+CF   SJ&&((r   c                D    V ! V P                   P                  W4      4      # z.Convert a Python ``int`` object to ``dtype``. r   convertK1r>   K0s   &&&r   from_ZZFractionField.from_ZZH       "&&..'((r   c                D    V ! V P                   P                  W4      4      # rO   rP   rR   s   &&&r   from_ZZ_pythonFractionField.from_ZZ_pythonL   rW   r   c                D    V ! V P                   P                  W4      4      # )z3Convert a Python ``Fraction`` object to ``dtype``. rP   rR   s   &&&r   from_QQ_pythonFractionField.from_QQ_pythonP   rW   r   c                D    V ! V P                   P                  W4      4      # )z,Convert a GMPY ``mpz`` object to ``dtype``. rP   rR   s   &&&r   from_ZZ_gmpyFractionField.from_ZZ_gmpyT   rW   r   c                D    V ! V P                   P                  W4      4      # )z,Convert a GMPY ``mpq`` object to ``dtype``. rP   rR   s   &&&r   from_QQ_gmpyFractionField.from_QQ_gmpyX   rW   r   c                D    V ! V P                   P                  W4      4      # )z.Convert a mpmath ``mpf`` object to ``dtype``. rP   rR   s   &&&r   from_RealFieldFractionField.from_RealField\   rW   r   c                4   V P                   VP                   8X  da   V P                  VP                  8X  d   V ! VP                  4       4      # V ! VP                  V P                  4      P                  4       4      # \	        VP                  4       VP                   V P                   4      w  r4V P                  VP                  8w  d4   V Uu. uF'  qPP                  P                  WRP                  4      NK)  	  ppV ! \        \        W44      4      4      # u upi )z'Convert a ``DMF`` object to ``dtype``. )r   r   to_listrQ   r   to_dictdictzip)rS   r>   rT   monomscoeffscs   &&&   r   from_GlobalPolynomialRing'FractionField.from_GlobalPolynomialRing`   s    77bggvv!))+&!))BFF+33566*199;INFvv>DFf66>>!VV4fFd3v./00 Gs   -Dc           	     6   V P                   VP                   8X  d   V P                  VP                  8X  d   V# V ! VP                  4       P                  V P                  4      P	                  4       VP                  4       P                  V P                  4      P	                  4       34      # \        VP                   4      P                  V P                   4      '       Ed.   \        VP                  4       P                  4       VP                   V P                   4      w  r4\        VP                  4       P                  4       VP                   V P                   4      w  rVV P                  VP                  8w  dg   V Uu. uF'  qpP                  P                  WrP                  4      NK)  	  ppV Uu. uF'  qpP                  P                  WrP                  4      NK)  	  ppV ! \        \        W44      4      \        \        WV4      4      34      # R# u upi u upi )as  
Convert a fraction field element to another fraction field.

Examples
========

>>> from sympy.polys.polyclasses import DMF
>>> from sympy.polys.domains import ZZ, QQ
>>> from sympy.abc import x

>>> f = DMF(([ZZ(1), ZZ(2)], [ZZ(1), ZZ(1)]), ZZ)

>>> QQx = QQ.old_frac_field(x)
>>> ZZx = ZZ.old_frac_field(x)

>>> QQx.from_FractionField(f, ZZx)
DMF([1, 2], [1, 1], QQ)

N)r   r   r:   rQ   rh   r<   setissubsetr   ri   rj   rk   )rS   r>   rT   nmonomsncoeffsdmonomsdcoeffsrn   s   &&&     r   from_FractionField FractionField.from_FractionFieldo   s|   ( 77bggvv1779,,RVV4<<>779,,RVV4<<>@ A A\""277++,	!!#RWWbgg 7G,	!!#RWWbgg 7G vv?FHw!FFNN1ff5wH?FHw!FFNN1ff5wHtC12DW9N4OPQQ , IHs   ?-H2-Hc                J    ^ RI Hp V! V P                  .V P                  O5!  # )z)Returns a ring associated with ``self``. )PolynomialRing)sympy.polys.domainsr{   r   r   )r   r{   s   & r   get_ringFractionField.get_ring   s    6dhh333r   c                    \        R4      h)z(Returns a polynomial ring, i.e. `K[X]`. nested domains not allowedNotImplementedErrorr   r   s   &*r   	poly_ringFractionField.poly_ring       !">??r   c                    \        R4      h)z'Returns a fraction field, i.e. `K(X)`. r   r   r   s   &*r   
frac_fieldFractionField.frac_field   r   r   c                p    V P                   P                  VP                  4       P                  4       4      # )z#Returns True if ``a`` is positive. )r   is_positiver:   LCr=   s   &&r   r   FractionField.is_positive   #    xx##AGGILLN33r   c                p    V P                   P                  VP                  4       P                  4       4      # )z#Returns True if ``a`` is negative. )r   is_negativer:   r   r=   s   &&r   r   FractionField.is_negative   r   r   c                p    V P                   P                  VP                  4       P                  4       4      # )z'Returns True if ``a`` is non-positive. )r   is_nonpositiver:   r   r=   s   &&r   r   FractionField.is_nonpositive   #    xx&&qwwy||~66r   c                p    V P                   P                  VP                  4       P                  4       4      # )z'Returns True if ``a`` is non-negative. )r   is_nonnegativer:   r   r=   s   &&r   r   FractionField.is_nonnegative   r   r   c                "    VP                  4       # )zReturns numerator of ``a``. )r:   r=   s   &&r   r:   FractionField.numer       wwyr   c                "    VP                  4       # )zReturns denominator of ``a``. )r<   r=   s   &&r   r<   FractionField.denom   r   r   c                V    V P                  V P                  P                  V4      4      # )zReturns factorial of ``a``. )r   r   	factorialr=   s   &&r   r   FractionField.factorial   s     zz$((,,Q/00r   )r   r   r   r   r   r   r   N)'r1   
__module____qualname____firstlineno____doc__r   r   is_FractionFieldis_Frachas_assoc_Ringhas_assoc_Fieldr   r   r#   r-   r2   r7   r?   rD   rU   rY   r\   r_   rb   re   ro   rx   r}   r   r   r   r   r   r   r:   r<   r   __static_attributes____classdictcell__)__classdict__s   @r   r   r      s     =E!%%wNO(/AIP\
H
)))))))1$RL4
@@44771 1r   r   N)r   sympy.polys.domains.fieldr   #sympy.polys.domains.compositedomainr   sympy.polys.polyclassesr   sympy.polys.polyerrorsr   sympy.polys.polyutilsr   r   r   sympy.utilitiesr	   r    r   r   <module>r      s=    6 , ? ' 3 Q Q "p1E? p1 p1r   