+
    iS                       R t ^ RIHt ^ RIHt ^ RIHtHtHtH	t	H
t
Ht ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ R	IHtHt ^ R
IHt ^ RIHt ^ RIHt ^ RIH t  ^ RI!H"t" ^ RI#H$t$ ^ RI%H&t&H't' ^ RI(H)t) ^ RI*H+t+ ^ RI,H-t- ^ RI.H/t/H0t0 ^ RI1H2t2 ^ RI3H4t4 ^ RI5H6t6 ^ RI7H8t8 ]4]&3R l4       t9]4]&3R l4       t:]4]&3R l4       t;]4R 4       t< ! R R]24      t= ! R R ]]2]4      t>R!# )"z!Sparse rational function fields. )annotations)reduce)addmulltlegtge)Expr)Mod)Exp1)S)Symbol)CantSympifysympify)ExpBase)Domain)DomainElementFractionField)PolynomialRing)construct_domain)lexMonomialOrder)CoercionFailed)build_options)_parallel_dict_from_expr)PolyRingPolyElement)DefaultPrinting)public)is_sequence)pollutec                B    \        WV4      pV3VP                  ,           # )zFConstruct new rational function field returning (field, x1, ..., xn). 	FracFieldgenssymbolsdomainorder_fields   &&& r/Users/tonyclaw/.openclaw/workspace/skills/math-calculator/venv/lib/python3.14/site-packages/sympy/polys/fields.pyfieldr-      s!     w.F9v{{""    c                4    \        WV4      pW3P                  3# )zHConstruct new rational function field returning (field, (x1, ..., xn)). r$   r'   s   &&& r,   xfieldr0   $   s     w.FKK  r.   c                    \        WV4      p\        VP                   Uu. uF  qDP                  NK  	  upVP                  4       V# u upi )zSConstruct new rational function field and inject generators into global namespace. )r%   r"   r(   namer&   )r(   r)   r*   r+   syms   &&&  r,   vfieldr4   *   s=     w.F&..2.3hh.2FKK@M 3s   Ac                   Rp\        V 4      '       g   V .Rr0\        \        \        V 4      4      p \	        W4      p. pV  F"  pVP                  VP                  4       4       K$  	  \        WT4      w  rtVP                  fH   \        V Uu. uF  p\        VP                  4       4      NK  	  up. 4      p	\        WR7      w  Vn        p
\        VP                  VP                  VP                  4      p. p\        ^ \!        V4      ^4       F,  pVP#                  V! \%        W}V^,            4      4      4       K.  	  V'       d   W^ ,          3# W3# u upi )ak  Construct a field deriving generators and domain
from options and input expressions.

Parameters
==========

exprs   : py:class:`~.Expr` or sequence of :py:class:`~.Expr` (sympifiable)

symbols : sequence of :py:class:`~.Symbol`/:py:class:`~.Expr`

options : keyword arguments understood by :py:class:`~.Options`

Examples
========

>>> from sympy import exp, log, symbols, sfield

>>> x = symbols("x")
>>> K, f = sfield((x*log(x) + 4*x**2)*exp(1/x + log(x)/3)/x**2)
>>> K
Rational function field in x, exp(1/x), log(x), x**(1/3) over ZZ with lex order
>>> f
(4*x**2*(exp(1/x)) + x*(exp(1/x))*(log(x)))/((x**(1/3))**5)
FT)opt)r!   listmapr   r   extendas_numer_denomr   r)   sumvaluesr   r%   r&   r*   rangelenappendtuple)exprsr(   optionssingler6   numdensexprrepsrepcoeffs_r+   fracsis   &*,           r,   sfieldrL   1   s   4 FuvWe$%E

)CGt**,- (6ID
zz D9DSd3::<(D92>(9
AsxxSYY7FE1c$i#VE$1+./0 $ a!! :s   
"Ec                      ] tR t^gt$ RtR]R&   R]R&   R]R&   R]R	&   R
]R&   R]R&   ]3R ltR tR t	R t
R tR tR tR tR!R ltR!R ltR tR tR t]tR tR tR tR tR tR# )"r%   z2Multivariate distributed rational function field. r   ringztuple[FracElement, ...]r&   ztuple[Expr, ...]r(   intngensr   r)   r   r*   c                	   \        WV4      pVP                  pVP                  pVP                  pVP                  pV P
                  WW#3p\        P                  V 4      pWgn        \        V4      Vn
        WGn        Wn        WWn        W'n        W7n        \        WtP                  4      P                  Vn        VP                  VP                  4      Vn        VP                  VP                   4      Vn        VP#                  4       Vn        \'        VP                  VP$                  4       FH  w  r\)        V\*        4      '       g   K  VP,                  p
\/        Wz4      '       d   K<  \1        WzV	4       KJ  	  V# N)r   r(   rP   r)   r*   __name__object__new___hash_tuplehash_hashrN   FracElementzeroraw_newdtypeone_gensr&   zip
isinstancer   r2   hasattrsetattr)clsr(   r)   r*   rN   rP   rV   objsymbol	generatorr2   s   &&&&       r,   rU   FracField.__new__q   s   /,,



||WVCnnS!%%		
	YY/77	99TYY'))DHH%99;!$S[[#((!;F&&)){{s))Cy1 "< 
r.   c                    \        V P                  P                   Uu. uF  qP                  V4      NK  	  up4      # u upi )z(Return a list of polynomial generators. )r@   rN   r&   r\   selfgens   & r,   r^   FracField._gens   s-    $))..B.3zz#.BCCBs   >c                	H    V P                   V P                  V P                  3# rR   )r(   r)   r*   rj   s   &r,   __getnewargs__FracField.__getnewargs__   s    dkk4::66r.   c                	    V P                   # rR   )rX   rn   s   &r,   __hash__FracField.__hash__   s    zzr.   c                	    V P                  V4      '       d*   V P                  P                  VP                  4       4      # \	        R V P
                  : RV: R24      h)zexpected a , got z instead)
is_elementrN   indexto_poly
ValueErrorr\   ri   s   &&r,   rw   FracField.index   s>    ??399??3;;=11

3OPPr.   c                	    \        V\        4      ;'       d^    V P                  V P                  V P                  V P
                  3VP                  VP                  VP                  VP
                  38H  # rR   )r`   r%   r(   rP   r)   r*   rj   others   &&r,   __eq__FracField.__eq__   s\    %+ D D\\4::t{{DJJ?]]EKKu{{CD	Dr.   c                	    W8X  * # rR    r|   s   &&r,   __ne__FracField.__ne__   s      r.   c                P    \        V\        4      ;'       d    VP                  V 8H  # )zBTrue if ``element`` is an element of this field. False otherwise. )r`   rY   r-   rj   elements   &&r,   rv   FracField.is_element   s     ';/IIGMMT4IIr.   Nc                	$    V P                  W4      # rR   )r\   rj   numerdenoms   &&&r,   r[   FracField.raw_new   s    zz%''r.   c                	~    Vf   V P                   P                  pVP                  V4      w  rV P                  W4      # rR   )rN   r]   cancelr[   r   s   &&&r,   newFracField.new   s2    =$))--%||E*||E))r.   c                	8    V P                   P                  V4      # rR   )r)   convertr   s   &&r,   
domain_newFracField.domain_new   s    {{""7++r.   c                	    V P                  V P                  P                  V4      4      #   \         d    T P                  pTP
                  '       g   TP                  '       d   T P                  pTP                  4       pTP                  T4      pTP                  TP                  T4      4      pTP                  TP                  T4      4      pT P                  YV4      u # h i ; irR   )r   rN   
ground_newr   r)   is_Fieldhas_assoc_Field	get_fieldr   r   r   r[   )rj   r   r)   rN   ground_fieldr   r   s   &&     r,   r   FracField.ground_new   s    	88DII009:: 	[[F???v'='='=yy%//1&..w7(:(:7(CD(:(:7(CD||E11	s   ), (C)C)'A>C)'C)c                	   \        V\        4      '       d   WP                  8X  d   V# \        V P                  \        4      '       d7   V P                  P                  VP                  8X  d   V P                  V4      # \        V P                  \        4      '       dE   V P                  P                  P                  4       VP                  8X  d   V P                  V4      # \        R 4      h\        V\        4      '       Ed*   VP                  4       w  r#\        V P                  \        4      '       dB   VP                  V P                  P                  8X  d   V P                  P                  V4      pM\        V P                  \        4      '       dP   VP                  V P                  P                  P                  4       8X  d   V P                  P                  V4      pMVP                  V P                  4      pV P                  P                  V4      pV P                  W24      # \        V\        4      '       dM   \!        V4      ^8X  d=   \#        \%        V P                  P&                  V4      4      w  r2V P)                  W24      # \        V\*        4      '       d   \        R4      h\        V\,        4      '       d   V P/                  V4      # V P                  V4      # )
conversionparsing)r`   rY   r-   r)   r   r   r   rN   to_fieldNotImplementedErrorr   clear_denomsto_ringset_ringr[   r@   r>   r7   r8   ring_newr   strr
   	from_expr)rj   r   r   r   s   &&  r,   	field_newFracField.field_new   s   g{++}}$$++}55!!W]]2w//DKK88  ))+w}}<w//),77--"//1LE$++~66

dkk...		,,U3DKK77

dkk//7799		,,U3tyy1II((/E<<--''CLA,=DII$6$6 @ALE88E))%%%i00&&>>'**??7++r.   c                	   aaaa V P                   o\        ;QJ d"    . R  SP                  4        4       F  NK  	  5M! R  SP                  4        4       4      oVVVV3R loS! V4      # )c              3     "   T F@  pVP                   '       g   \        V\        4      '       g   K-  WP                  4       3x  KB  	  R # 5irR   )is_Powr`   r   as_base_exp).0rk   s   & r,   	<genexpr>*FracField._rebuild_expr.<locals>.<genexpr>   s3      7>CzzzZW5 0__./>s   A
A
A
c           	     
  < S	P                  V 4      pVe   V# V P                  '       d.   \        \        \	        \        SV P                  4      4      4      # V P                  '       d.   \        \        \	        \        SV P                  4      4      4      # V P                  '       g   \        V \        \        34      '       d   V P                  4       w  r#S
 FI  w  pw  rVWR8X  g   K  \        W64      ^ 8X  g   K"  S	P                  V4      \        W6,          4      ,          u # 	  VP                   '       d-   V\"        P$                  Jd   S! V4      \        V4      ,          # M9S	P                  ^V ,          4      e    ^S	P                  ^V ,          4      ,          #  SP'                  V 4      #   \(         dH    SP*                  '       g4   SP,                  '       d"   SP/                  4       P'                  T 4      u # h i ; irR   )getis_Addr   r   r7   r8   argsis_Mulr   r   r`   r   r   r   r   rO   
is_Integerr   Oner   r   r   r   r   )rE   rf   berk   bgeg_rebuildr)   mappingpowerss   &      r,   r   )FracField._rebuild_expr.<locals>._rebuild   ss   D)I$  c4Hdii(@#ABBc4Hdii(@#ABB
4'4 A A'')%+MC"w3q:?&{{3/QT:: &, <<<AQUUN#A;A..QtV$0QtV,,,~~d++! 6+A+A+A!++-55d;;	s   F0 0HHH H)r)   r@   keys)rj   rE   r   r   r)   r   s   &&f@@@r,   _rebuild_exprFracField._rebuild_expr   sV     77<<> 7 77<<> 7 7	 	8 ~r.   c                	   \        \        \        V P                  V P                  4      4      4      p V P                  \        V4      V4      pV P                  V4      #   \         d    \        R T : RT: 24      hi ; i)z=expected an expression convertible to a rational function in ru   )
dictr7   r_   r(   r&   r   r   r   r   ry   )rj   rE   r   fracs   &&  r,   r   FracField.from_expr  sq    tCdii89:	(%%gdmW=D >>$''  	wjnptuvv	ws   A   A?c                	    \        V 4      # rR   r   rn   s   &r,   	to_domainFracField.to_domain  s    T""r.   c                	X    \        V P                  V P                  V P                  4      # rR   )r   r(   r)   r*   rn   s   &r,   r   FracField.to_ring!  s    dkk4::>>r.   r   rR   )rS   
__module____qualname____firstlineno____doc____annotations__r   rU   r^   ro   rr   rw   r~   r   rv   r[   r   r   r   r   __call__r   r   r   r   __static_attributes__r   r.   r,   r%   r%   g   s    <
N
!!JN,/  DD7QD
!J(*
, #,J H!F(#?r.   r%   c                  
   ] tR tRtRtR)R ltR)R l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#R" t$R# t%R$ t&R)R% lt'R)R& lt(R)R' lt)R(t*R# )*rY   i$  z=Element of multivariate distributed rational function field. Nc                	    Vf   VP                   P                  pMV'       g   \        R4      hWn        W n        W0n        R # )Nzzero denominator)rN   r]   ZeroDivisionErrorr-   r   r   )rj   r-   r   r   s   &&&&r,   __init__FracElement.__init__'  s2    =JJNNE#$677


r.   c                	:    V P                  V P                  W4      # rR   )	__class__r-   fr   r   s   &&&r,   r[   FracElement.raw_new1  s    {{177E11r.   c                	@    V P                   ! VP                  V4      !  # rR   )r[   r   r   s   &&&r,   r   FracElement.new4  s    yy%,,u-..r.   c                	R    V P                   ^8w  d   \        R4      hV P                  # )   zf.denom should be 1)r   ry   r   r   s   &r,   rx   FracElement.to_poly7  s"    77a<233wwr.   c                	6    V P                   P                  4       # rR   )r-   r   rn   s   &r,   parentFracElement.parent<  s    zz##%%r.   c                	H    V P                   V P                  V P                  3# rR   )r-   r   r   rn   s   &r,   ro   FracElement.__getnewargs__?  s    

DJJ

33r.   c                	    V P                   pVf4   \        V P                  V P                  V P                  34      ;V n         pV# rR   )rX   rW   r-   r   r   )rj   rX   s   & r,   rr   FracElement.__hash__D  s9    

=!%tzz4::tzz&J!KKDJr.   c                	    V P                  V P                  P                  4       V P                  P                  4       4      # rR   )r[   r   copyr   rn   s   &r,   r   FracElement.copyJ  s)    ||DJJOO-tzz/@AAr.   c                	    V P                   V8X  d   V # VP                  pV P                  P                  V4      pV P                  P                  V4      pVP                  W44      # rR   )r-   rN   r   r   r   r   )rj   	new_fieldnew_ringr   r   s   &&   r,   	set_fieldFracElement.set_fieldM  sS    ::"K ~~HJJ''1EJJ''1E==..r.   c                	t    V P                   P                  ! V!  V P                  P                  ! V!  ,          # rR   )r   as_exprr   )rj   r(   s   &*r,   r   FracElement.as_exprV  s+    zz!!7+DJJ,>,>,HHHr.   c                	`   \        V\        4      '       dV   V P                  VP                  8X  d;   V P                  VP                  8H  ;'       d    V P                  VP                  8H  # V P                  V8H  ;'       d.    V P                  V P                  P
                  P                  8H  # rR   )r`   rY   r-   r   r   rN   r]   r   gs   &&r,   r~   FracElement.__eq__Y  ss    a%%!''QWW*<77agg%<<!''QWW*<<77a<??AGGqww||/?/?$??r.   c                	    W8X  * # rR   r   r   s   &&r,   r   FracElement.__ne___  s
    zr.   c                	,    \        V P                  4      # rR   )boolr   r   s   &r,   __bool__FracElement.__bool__b  s    AGG}r.   c                	j    V P                   P                  4       V P                  P                  4       3# rR   )r   sort_keyr   rn   s   &r,   r   FracElement.sort_keye  s'    

##%tzz':':'<==r.   c                	    V P                   P                  V4      '       d&   V! V P                  4       VP                  4       4      # \        # rR   )r-   rv   r   NotImplemented)f1f2ops   &&&r,   _cmpFracElement._cmph  s6    88r""bkkmR[[]33!!r.   c                	.    V P                  V\        4      # rR   )r  r   r  r  s   &&r,   __lt__FracElement.__lt__n      wwr2r.   c                	.    V P                  V\        4      # rR   )r  r   r	  s   &&r,   __le__FracElement.__le__p  r  r.   c                	.    V P                  V\        4      # rR   )r  r   r	  s   &&r,   __gt__FracElement.__gt__r  r  r.   c                	.    V P                  V\        4      # rR   )r  r	   r	  s   &&r,   __ge__FracElement.__ge__t  r  r.   c                N    V P                  V P                  V P                  4      # z"Negate all coefficients in ``f``. r[   r   r   r   s   &r,   __pos__FracElement.__pos__w  s    yy!''**r.   c                P    V P                  V P                  ) V P                  4      # r  r  r   s   &r,   __neg__FracElement.__neg__{  s    yy!''177++r.   c                	z   V P                   P                  p VP                  V4      p^VR3#   \         d    TP                  '       gk   TP
                  '       dY   TP                  4       p TP                  T4      pRTP                  T4      TP                  T4      3u #   \         d     Mi ; iRu # i ; i)r   N)    NN)	r-   r)   r   r   r   r   r   r   r   )rj   r   r)   r   s   &&  r,   _extract_groundFracElement._extract_ground  s    ""	$nnW-G gt##  	!???v'='='=%//1X*227;G |11':L<N<Nw<WWW & 
 ! 	!s?   . B:B:B:.B$?#B:$B2/B:1B22B:9B:c                &   V P                   pV'       g   V # V '       g   V# VP                  V4      '       d   V P                  VP                  8X  d8   V P                  V P                  VP                  ,           V P                  4      # V P                  V P                  VP                  ,          V P                  VP                  ,          ,           V P                  VP                  ,          4      # VP
                  P                  V4      '       d?   V P                  V P                  V P                  V,          ,           V P                  4      # \        V\        4      '       d   \        VP                  \        4      '       d'   VP                  P                   VP                   8X  d   M\        VP                   P                  \        4      '       d7   VP                   P                  P                   V8X  d   VP                  V 4      # \        # \        V\        4      '       dX   \        VP                  \        4      '       d'   VP                  P
                  VP
                  8X  d   MVP                  V 4      # V P                  V4      # )z(Add rational functions ``f`` and ``g``. )r-   rv   r   r   r   rN   r`   rY   r)   r   __radd__r  r   r   r   r   r-   s   && r,   __add__FracElement.__add__  s   HHa  ww!''!uuQWWqww.88uuQWWQWW_qwwqww>PPZZ""1%%5517719,agg66![))ellM::u||?Q?QUVU\U\?\>>177>>CWCW[`C`::a=())A{++ellN;;@Q@QUVU[U[@[::a=(zz!}r.   c                	:   V P                   P                  P                  V4      '       d?   V P                  V P                  V P
                  V,          ,           V P
                  4      # V P                  V4      w  r#pV^8X  d?   V P                  V P                  V P
                  V,          ,           V P
                  4      # V'       g   \        # V P                  V P                  V,          V P
                  V,          ,           V P
                  V,          4      # r   r-   rN   rv   r   r   r   r!  r  r   cr  g_numerg_denoms   &&   r,   r$  FracElement.__radd__  s    77<<""1%%5517719,agg66 003W7551777?2AGG<<!!551777?:AGGGOLLr.   c                l   V P                   pV'       g   V # V '       g   V) # VP                  V4      '       d   V P                  VP                  8X  d8   V P                  V P                  VP                  ,
          V P                  4      # V P                  V P                  VP                  ,          V P                  VP                  ,          ,
          V P                  VP                  ,          4      # VP
                  P                  V4      '       d?   V P                  V P                  V P                  V,          ,
          V P                  4      # \        V\        4      '       d   \        VP                  \        4      '       d'   VP                  P                   VP                   8X  d   M\        VP                   P                  \        4      '       d7   VP                   P                  P                   V8X  d   VP                  V 4      # \        # \        V\        4      '       dX   \        VP                  \        4      '       d'   VP                  P
                  VP
                  8X  d   MVP                  V 4      # V P                  V4      w  r4pV^8X  d?   V P                  V P                  V P                  V,          ,
          V P                  4      # V'       g   \        # V P                  V P                  V,          V P                  V,          ,
          V P                  V,          4      # )z-Subtract rational functions ``f`` and ``g``. )r-   rv   r   r   r   rN   r`   rY   r)   r   __rsub__r  r   r   r!  r   r   r-   r  r-  r.  s   &&    r,   __sub__FracElement.__sub__  s   H2Ia  ww!''!uuQWWqww.88uuQWWQWW_qwwqww>PPZZ""1%%5517719,agg66![))ellM::u||?Q?QUVU\U\?\>>177>>CWCW[`C`::a=())A{++ellN;;@Q@QUVU[U[@[::a=( 003W7551777?2AGG<<!!551777?:AGGGOLLr.   c                	@   V P                   P                  P                  V4      '       d@   V P                  V P                  ) V P
                  V,          ,           V P
                  4      # V P                  V4      w  r#pV^8X  d@   V P                  V P                  ) V P
                  V,          ,           V P
                  4      # V'       g   \        # V P                  V P                  ) V,          V P
                  V,          ,           V P
                  V,          4      # r)  r*  r+  s   &&   r,   r1  FracElement.__rsub__  s    77<<""1%%55!''AGGAI-qww77 003W755!''AGGGO3QWW==!!55!''')AGGGO;QWWW_MMr.   c                ,   V P                   pV '       d	   V'       g   VP                  # VP                  V4      '       dI   V P                  V P                  VP                  ,          V P
                  VP
                  ,          4      # VP                  P                  V4      '       d.   V P                  V P                  V,          V P
                  4      # \        V\        4      '       d   \        VP                  \        4      '       d'   VP                  P                   VP                   8X  d   M\        VP                   P                  \        4      '       d7   VP                   P                  P                   V8X  d   VP                  V 4      # \        # \        V\        4      '       dX   \        VP                  \        4      '       d'   VP                  P                  VP                  8X  d   MVP                  V 4      # V P                  V4      # )z-Multiply rational functions ``f`` and ``g``. )r-   rZ   rv   r   r   r   rN   r`   rY   r)   r   __rmul__r  r   r   r%  s   && r,   __mul__FracElement.__mul__  sS   ::a  55!''!''/::ZZ""1%%55AGG,,![))ellM::u||?Q?QUVU\U\?\>>177>>CWCW[`C`::a=())A{++ellN;;@Q@QUVU[U[@[::a=(zz!}r.   c                	   V P                   P                  P                  V4      '       d.   V P                  V P                  V,          V P
                  4      # V P                  V4      w  r#pV^8X  d.   V P                  V P                  V,          V P
                  4      # V'       g   \        # V P                  V P                  V,          V P
                  V,          4      # r)  r*  r+  s   &&   r,   r8  FracElement.__rmul__  s    77<<""1%%55AGG,, 003W755!''22!!55!'''/::r.   c                   V P                   pV'       g   \        hVP                  V4      '       dI   V P                  V P                  VP
                  ,          V P
                  VP                  ,          4      # VP                  P                  V4      '       d.   V P                  V P                  V P
                  V,          4      # \        V\        4      '       d   \        VP                  \        4      '       d'   VP                  P                   VP                   8X  d   M\        VP                   P                  \        4      '       d7   VP                   P                  P                   V8X  d   VP                  V 4      # \        # \        V\        4      '       dX   \        VP                  \        4      '       d'   VP                  P                  VP                  8X  d   MVP                  V 4      # V P                  V4      w  r4pV^8X  d.   V P                  V P                  V P
                  V,          4      # V'       g   \        # V P                  V P                  V,          V P
                  V,          4      # )z0Computes quotient of fractions ``f`` and ``g``. )r-   r   rv   r   r   r   rN   r`   rY   r)   r   __rtruediv__r  r   r   r!  r2  s   &&    r,   __truediv__FracElement.__truediv__  s   ##a  55!''!''/::ZZ""1%%55!''!),,![))ellM::u||?Q?QUVU\U\?\>>177>>CWCW[`C`>>!,,))A{++ellN;;@Q@QUVU[U[@[>>!,, 003W755!'''/22!!55!'''/::r.   c                	   V '       g   \         hV P                  P                  P                  V4      '       d.   V P	                  V P
                  V,          V P                  4      # V P                  V4      w  r#pV^8X  d.   V P	                  V P
                  V,          V P                  4      # V'       g   \        # V P	                  V P
                  V,          V P                  V,          4      # r)  )	r   r-   rN   rv   r   r   r   r!  r  r+  s   &&   r,   r>  FracElement.__rtruediv__:  s    ##WW\\$$Q''55AGG,, 003W755!''22!!55!'''/::r.   c                    V^ 8  d5   V P                  V P                  V,          V P                  V,          4      # V '       g   \        hV P                  V P                  V) ,          V P                  V) ,          4      # )z+Raise ``f`` to a non-negative power ``n``. )r[   r   r   r   )r   ns   &&r,   __pow__FracElement.__pow__I  sX    699QWWaZ!44##99QWWqb[!''A2+66r.   c                   VP                  4       pV P                  V P                  P                  V4      V P                  ,          V P                  V P                  P                  V4      ,          ,
          V P                  ^,          4      # )zComputes partial derivative in ``x``.

Examples
========

>>> from sympy.polys.fields import field
>>> from sympy.polys.domains import ZZ

>>> _, x, y, z = field("x,y,z", ZZ)
>>> ((x**2 + y)/(z + 1)).diff(x)
2*x/(z + 1)

)rx   r   r   diffr   )r   xs   &&r,   rH  FracElement.diffR  sX     IIKuuQWW\\!_QWW,qwwqww||A/FFQR
SSr.   c                	0   ^ \        V4      u;8  d   V P                  P                  8:  d<   M M8V P                  \	        \        V P                  P                  V4      4      4      # \        RV P                  P                  : R\        V4      : 24      h)r   z expected at least 1 and at most z values, got )r>   r-   rP   evaluater7   r_   r&   ry   )r   r<   s   &*r,   r   FracElement.__call__c  sb    s6{+aggmm+::d3qww||V#<=>>TUT[T[TaTacfgmcnoppr.   c                	   \        V\        4      '       d`   Vf\   V UUu. uF  w  r2VP                  4       V3NK  	  pppV P                  P	                  V4      V P
                  P	                  V4      rTMEVP                  4       pV P                  P	                  W4      V P
                  P	                  W4      rTVP                  P                  4       pVP                  WE4      # u uppi rR   )	r`   r7   rx   r   rL  r   rN   r   r   )r   rI  aXr   r   r-   s   &&&    r,   rL  FracElement.evaluatei  s    a19/02qtq199;"qA277++A.0@0@0C5		A77++A11773C3CA3I5

##%yy&& 3s   C&c                	   \        V\        4      '       d`   Vf\   V UUu. uF  w  r2VP                  4       V3NK  	  pppV P                  P	                  V4      V P
                  P	                  V4      rTMEVP                  4       pV P                  P	                  W4      V P
                  P	                  W4      rTV P                  WE4      # u uppi rR   )r`   r7   rx   r   subsr   r   )r   rI  rO  rP  r   r   s   &&&   r,   rS  FracElement.subst  s    a19/02qtq199;"qA277<<?AGGLLO5		A77<<-qww||A/A5uuU"" 3s   Cc                	    \         hrR   )r   )r   rI  rO  s   &&&r,   composeFracElement.compose~  s    !!r.   )rX   r   r-   r   rR   )+rS   r   r   r   r   r   r[   r   rx   r   ro   rX   rr   r   r   r   r~   r   r   r   r  r
  r  r  r  r  r  r!  r&  r$  r3  r1  r9  r8  r?  r>  rE  rH  r   rL  rS  rV  r   r   r.   r,   rY   rY   $  s    G2/
&4 EB/I@>"+,$(>M$MLN4;;B;7T"q	'#" "r.   rY   N)?r   
__future__r   	functoolsr   operatorr   r   r   r   r   r	   sympy.core.exprr
   sympy.core.modr   sympy.core.numbersr   sympy.core.singletonr   sympy.core.symbolr   sympy.core.sympifyr   r   &sympy.functions.elementary.exponentialr   sympy.polys.domains.domainr   !sympy.polys.domains.domainelementr   !sympy.polys.domains.fractionfieldr   "sympy.polys.domains.polynomialringr   sympy.polys.constructorr   sympy.polys.orderingsr   r   sympy.polys.polyerrorsr   sympy.polys.polyoptionsr   sympy.polys.polyutilsr   sympy.polys.ringsr   r   sympy.printing.defaultsr   sympy.utilitiesr    sympy.utilities.iterablesr!   sympy.utilities.magicr"   r-   r0   r4   rL   r%   rY   r   r.   r,   <module>rp     s    ' "  - -    # " $ 3 : - ; ; = 4 4 1 1 : 3 3 " 1 )!$ # #
 "% ! !
 "%   2 2j{? {?z["-+ ["r.   