ó
    ‰*£h ã                  ó†  • S SK Jr  S SKJrJr  S SKJr  SSKJr  SSK	J
r
  SSKJr  SSKJr  SS	KJr  SS
KJrJrJrJrJr  SSKJrJrJrJr  SSKJr  SSKJrJ r   SSK!J"r"J#r#  S SK$J%r%  S SK&J'r'  S SK(J)r)  S SK*J+r+   " S S\5      r,\+" S5      r-\-R]                  \/\/4\,5        SSK.J0r0  SSK1J2r2J3r3  SSK4J5r5J6r6  SSK7J8r8J9r9J:r:  g)é    )Úannotations)ÚCallableÚTYPE_CHECKING)Úproducté   )Ú_sympify)Úcacheit)ÚS)ÚExpr)ÚPrecisionExhausted)Úexpand_complexÚexpand_multinomialÚ
expand_mulÚ_mexpandÚ	PoleError)Ú
fuzzy_boolÚ	fuzzy_notÚ	fuzzy_andÚfuzzy_or)Úglobal_parameters)Úis_gtÚis_lt)Ú
NumberKindÚUndefinedKind)Úsift)Úsympy_deprecation_warning)Úas_int)Ú
Dispatcherc                  óô  ^ • \ rS rSrSrSrSr\(       a
  \S=S j5       r	\S>S j5       r
\S>S j5       r\S 5       r\S?S@S	 jj5       rSAS
 j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S rS r S r!S r"S r#S r$S r%S  r&S! r'S" r(S# r)S$ r*SBS% jr+S& r,S' r-S( r.S) r/S* r0S+ r1S, r2S- r3S. r4S/ r5SCS0 jr6SDS1 jr7S2 r8\S3 5       r9U 4S4 jr:S5 r;S6 r<S7 r=S8 r>SES9 jr?S: r@S; rAS<rBU =rC$ )FÚPowé   añ  
Defines the expression x**y as "x raised to a power y"

.. deprecated:: 1.7

   Using arguments that aren't subclasses of :class:`~.Expr` in core
   operators (:class:`~.Mul`, :class:`~.Add`, and :class:`~.Pow`) is
   deprecated. See :ref:`non-expr-args-deprecated` for details.

Singleton definitions involving (0, 1, -1, oo, -oo, I, -I):

+--------------+---------+-----------------------------------------------+
| expr         | value   | reason                                        |
+==============+=========+===============================================+
| z**0         | 1       | Although arguments over 0**0 exist, see [2].  |
+--------------+---------+-----------------------------------------------+
| z**1         | z       |                                               |
+--------------+---------+-----------------------------------------------+
| (-oo)**(-1)  | 0       |                                               |
+--------------+---------+-----------------------------------------------+
| (-1)**-1     | -1      |                                               |
+--------------+---------+-----------------------------------------------+
| S.Zero**-1   | zoo     | This is not strictly true, as 0**-1 may be    |
|              |         | undefined, but is convenient in some contexts |
|              |         | where the base is assumed to be positive.     |
+--------------+---------+-----------------------------------------------+
| 1**-1        | 1       |                                               |
+--------------+---------+-----------------------------------------------+
| oo**-1       | 0       |                                               |
+--------------+---------+-----------------------------------------------+
| 0**oo        | 0       | Because for all complex numbers z near        |
|              |         | 0, z**oo -> 0.                                |
+--------------+---------+-----------------------------------------------+
| 0**-oo       | zoo     | This is not strictly true, as 0**oo may be    |
|              |         | oscillating between positive and negative     |
|              |         | values or rotating in the complex plane.      |
|              |         | It is convenient, however, when the base      |
|              |         | is positive.                                  |
+--------------+---------+-----------------------------------------------+
| 1**oo        | nan     | Because there are various cases where         |
| 1**-oo       |         | lim(x(t),t)=1, lim(y(t),t)=oo (or -oo),       |
|              |         | but lim( x(t)**y(t), t) != 1.  See [3].       |
+--------------+---------+-----------------------------------------------+
| b**zoo       | nan     | Because b**z has no limit as z -> zoo         |
+--------------+---------+-----------------------------------------------+
| (-1)**oo     | nan     | Because of oscillations in the limit.         |
| (-1)**(-oo)  |         |                                               |
+--------------+---------+-----------------------------------------------+
| oo**oo       | oo      |                                               |
+--------------+---------+-----------------------------------------------+
| oo**-oo      | 0       |                                               |
+--------------+---------+-----------------------------------------------+
| (-oo)**oo    | nan     |                                               |
| (-oo)**-oo   |         |                                               |
+--------------+---------+-----------------------------------------------+
| oo**I        | nan     | oo**e could probably be best thought of as    |
| (-oo)**I     |         | the limit of x**e for real x as x tends to    |
|              |         | oo. If e is I, then the limit does not exist  |
|              |         | and nan is used to indicate that.             |
+--------------+---------+-----------------------------------------------+
| oo**(1+I)    | zoo     | If the real part of e is positive, then the   |
| (-oo)**(1+I) |         | limit of abs(x**e) is oo. So the limit value  |
|              |         | is zoo.                                       |
+--------------+---------+-----------------------------------------------+
| oo**(-1+I)   | 0       | If the real part of e is negative, then the   |
| -oo**(-1+I)  |         | limit is 0.                                   |
+--------------+---------+-----------------------------------------------+

Because symbolic computations are more flexible than floating point
calculations and we prefer to never return an incorrect answer,
we choose not to conform to all IEEE 754 conventions.  This helps
us avoid extra test-case code in the calculation of limits.

See Also
========

sympy.core.numbers.Infinity
sympy.core.numbers.NegativeInfinity
sympy.core.numbers.NaN

References
==========

.. [1] https://en.wikipedia.org/wiki/Exponentiation
.. [2] https://en.wikipedia.org/wiki/Zero_to_the_power_of_zero
.. [3] https://en.wikipedia.org/wiki/Indeterminate_forms

T©Úis_commutativec                ó   • g ©N© ©Úselfs    ÚM/home/mande/repo/quber/.venv/lib/python3.13/site-packages/sympy/core/power.pyÚargsÚPow.argsu   s   € àó    c                ó    • U R                   S   $ )Nr   ©r*   r'   s    r)   ÚbaseÚPow.basey   ó   € à�y‰y˜‰|Ðr,   c                ó    • U R                   S   $ ©Nr   r.   r'   s    r)   ÚexpÚPow.exp}   r1   r,   c                ót   • U R                   R                  [        L a  U R                  R                  $ [        $ r%   )r4   Úkindr   r/   r   r'   s    r)   r7   ÚPow.kind�   s&   € à�8‰8�=‰=œJÒ&Ø—9‘9—>‘>Ð!ä Ð r,   c                ó†
  • Uc  [         R                  n[        U5      n[        U5      nSSKJn  [        XF5      (       d  [        XV5      (       a  [        S5      eXE4 H>  n[        U[        5      (       a  M  [        S[        U5      R                  < S3SSSS	9  M@     U(       Ga6  U[        R                  L a  [        R                  $ U[        R                  L aÜ  [        U[        R                   5      (       a  [        R                  $ [        U[        R"                  5      (       a/  [%        U[        R                   5      (       a  [        R&                  $ [%        U[        R"                  5      (       a@  UR(                  (       a  [        R                  $ UR(                  S
L a  [        R                  $ U[        R&                  L a  [        R                   $ U[        R                   L a  U$ US:X  a  U(       d  [        R                  $ UR*                  R                  S:X  aJ  U[        R,                  :X  a5  SSKJn  U" [3        XER4                  5      [3        XER6                  5      5      $ O¯UR8                  (       a  UR:                  (       d  UR<                  (       a|  UR>                  (       a  UR@                  (       d  URB                  (       aI  URE                  5       (       a4  URF                  (       a  U* nOURH                  (       a  [3        U* U5      * $ [        R                  XE4;   a  [        R                  $ U[        R                   L a:  [K        U5      RL                  (       a  [        R                  $ [        R                   $ SSK'J(n	  URR                  (       Gd  U[        R,                  LGa  [        XI5      (       dø  SSK*J+n
  SSK'J,n  SSK-J.n  U
" US
S9R_                  5       u  pÞU" U5      u  nn[        UU5      (       a(  UR`                  S   U:X  a  [        R,                  Xß-  -  $ URb                  (       az  SSK2J3nJ4n  U" U" U5      5      nURB                  (       aS  U(       aL  UU" U
" US
S9* 5      U[        Rj                  -  [        Rl                  -  -   :X  a  [        R,                  Xß-  -  $ URo                  U5      nUb  U$ [        Rp                  " XU5      nU Rs                  U5      n[        U[2        5      (       d  U$ URt                  =(       a    URt                  Ul:        U$ )Nr   )Ú
Relationalz Relational cannot be used in Powzf
    Using non-Expr arguments in Pow is deprecated (in this case, one of the
    arguments is of type zf).

    If you really did intend to construct a power with this base, use the **
    operator instead.z1.7znon-expr-args-deprecatedé   )Údeprecated_since_versionÚactive_deprecations_targetÚ
stacklevelFéÿÿÿÿÚAccumulationBoundsr   ©ÚAccumBounds)Ú	exp_polar)Úfactor_terms©Úlog)Úfraction)Úsign)rH   Úim);r   Úevaluater   Ú
relationalr:   Ú
isinstanceÚ	TypeErrorr   r   ÚtypeÚ__name__r
   ÚComplexInfinityÚNaNÚInfinityr   ÚOneÚNegativeOner   ÚZeroÚ	is_finiteÚ	__class__ÚExp1Ú!sympy.calculus.accumulationboundsrB   r    ÚminÚmaxÚ	is_SymbolÚ
is_integerÚ
is_IntegerÚ	is_numberÚis_MulÚ	is_NumberÚcould_extract_minus_signÚis_evenÚis_oddÚabsÚis_infiniteÚ&sympy.functions.elementary.exponentialrC   Úis_AtomÚ	exprtoolsrD   rF   Úsympy.simplify.radsimprG   Úas_coeff_Mulr*   Úis_AddÚ$sympy.functions.elementary.complexesrH   rI   ÚImaginaryUnitÚPiÚ_eval_powerÚ__new__Ú _exec_constructor_postprocessorsr#   )ÚclsÚbÚerJ   r/   r4   r:   ÚargrB   rC   rD   rF   rG   ÚcÚexÚnumÚdenrH   rI   ÚsÚobjs                        r)   rq   ÚPow.__new__ˆ   s¥  € àÑÜ(×1Ñ1ˆHä˜‹{ˆÜ�q‹kˆõ 	+Ü�d×'Ñ'¬:°c×+FÑ+FÜÐ>Ó?Ð?ð “;ˆCÜ˜c¤4×(Ó(Ü)ðä˜s›)×,Ñ,Ñ/ð 0ðð .3Ø/IØ ô
ñ ÷ Ø”a×'Ñ'Ò'Ü—u‘u�Ø”a—j‘jÒ Ü˜œqŸu™u×%Ñ%ÜŸ:™:Ð%Ü˜œqŸ}™}×-Ñ-´%¸¼a¿e¹e×2DÑ2DÜŸ6™6�MÜ˜œqŸ}™}×-Ñ-Ø—~—~Ü ×0Ñ0Ð0Ø—~‘~¨Ò.Ü Ÿu™u˜Ø”a—f‘fŠ}Ü—u‘u�ØœŸ™’Ø�Ø˜“¦4Ü×(Ñ(Ð(Ø—‘×'Ñ'Ð+?Ó?Øœ1Ÿ6™6“>ÝMÙ&¤s¨4·±Ó'9¼3¸tÇWÁWÓ;MÓNÐNð "ð —-—- C§N§N°c·n·nØŸ>Ÿ>¨d¯k¯k¸T¿^¿^Ø×7Ñ7×9Ñ9Ø—;—;Ø ˜5‘DØ—Z—ZÜ   s›OÐ+Ð+Ü�u‰u˜˜Ó#Ü—u‘u�ØœŸ™’Ü�s“8×'×'ÜŸ5™5�LÜ—u‘u�õ MØ—{—{�{ t´1·6±6Ó'9Ä*ÈT×B]ÑB]Ý7ÝJÝ?Ù(¨°5Ñ9×FÑFÓH‘E�AÙ'¨›|‘H�C˜Ü! # s×+Ñ+°·±¸±¸tÓ0CÜ Ÿv™v¨©™Ð.ØŸŸßQÙ ¡ D£›N˜ØŸ;Ÿ;®1°Ù #¡\°$¸UÑ%CÐ$CÓ DÀqÌÏÉÑGXÔYZ×Y]ÑY]ÑG]Ñ ]ó2^ä#$§6¡6¨A©E¡?Ð2à×&Ñ& sÓ+�Ø‘?Ø�JÜ�lŠl˜3 cÓ*ˆØ×2Ñ2°3Ó7ˆÜ˜#œs×#Ñ#ØˆJØ"×1Ñ1×H°c×6HÑ6HˆÔØˆ
r,   c                óP   • U R                   [        R                  :X  a  SSKJn  U$ g ©Nr   rE   )r/   r
   rX   rg   rF   )r(   ÚargindexrF   s      r)   ÚinverseÚPow.inverseë   s   € Ø�9‰9œŸ™ÓÝBØˆJØr,   c                ó    • SSU R                   4$ )Né   é   )rO   ©rs   s    r)   Ú	class_keyÚPow.class_keyñ   s   € à�!�S—\‘\Ð!Ð!r,   c                óJ  • SSK JnJn  U R                  5       u  pEU" UR	                  U5      U5      (       al  UR                  5       (       aV  U" UR                  U5      U5      (       a  [        U* U5      $ U" UR                  U5      U5      (       a  [        U* U5      * $ g g g )Nr   )ÚaskÚQ)	Úsympy.assumptions.askrŠ   r‹   Úas_base_expÚintegerrb   Úevenr    Úodd)r(   ÚassumptionsrŠ   r‹   rt   ru   s         r)   Ú_eval_refineÚPow._eval_refineõ   sŽ   € ß0Ø×ÑÓ!‰ˆÙˆq�y‰y˜‹|˜[×)Ñ)¨a×.HÑ.H×.JÑ.JÙ�1—6‘6˜!“9˜k×*Ñ*Ü˜A˜2˜q“zÐ!Ù�Q—U‘U˜1“X˜{×+Ñ+Ü˜Q˜B ›
�{Ð"ð ,ð /KÐ)r,   c                ó:  • U R                  5       u  p#U[        R                  L a  X#-  U-  $ S nUR                  (       a  SnGO²UR                  (       a  SnGO�UR
                  Gb�  SSKJnJnJ	nJ
n  SSKJn	Jn
  SSKJn  S nS nUR
                  (       GaÁ  US:X  a[  U" U5      (       aM  UR                   S	L a#  [        R"                  U-  [%        U* X1-  5      -  $ UR                   S
L a  [%        X!* 5      $ O`UR&                  (       aO  UR
                  (       a  [)        U5      nUR*                  (       a"  [)        U" U5      5      [        R,                  -  n[)        U5      S:  S	:X  d  US:X  a  SnGO€UR.                  (       a  SnGOkU" U5      R.                  (       a  [)        U5      S:  S	:X  a  SnGO>U" U5      (       a”  U	" S[        R0                  -  [        R,                  -  U-  U" [        R2                  X5" U5      -  S[        R0                  -  -  -
  5      -  5      nUR
                  (       a  U" U" U5      U-
  5      S:X  a	  U" U5      nOŸS nOœ U	" S[        R,                  -  [        R0                  -  U-  U" [        R2                  U" X:" U5      -  5      S-  [        R0                  -  -
  5      -  5      nUR
                  (       a  U" U" U5      U-
  5      S:X  a	  U" U5      nOS n Ub  U[%        X#U-  5      -  $ g ! [4         a    S n N#f = f)Nr   r   )rv   rI   ÚrerH   ©r4   rF   )Úfloorc                ó~   • [        U SS5      S:X  a  gU R                  5       u  pUR                  (       a  US:X  a  ggg)zJReturn True if the exponent has a literal 2 as the
denominator, else None.ÚqNr…   T)ÚgetattrÚas_numer_denomr]   )ru   ÚnÚds      r)   Ú_halfÚPow._eval_power.<locals>._half  s?   € ô ˜1˜c 4Ó(¨AÓ-ØØ×'Ñ'Ó)‘�Ø—<—< A¨£FØð %+�<r,   c                ól   •  U R                  SSS9nUR                  (       a  U$ g! [         a     gf = f)zHReturn ``e`` evaluated to a Number with 2 significant
digits, else None.r…   T©ÚstrictN)Úevalfra   r   )ru   Úrvs     r)   Ú_n2ÚPow._eval_power.<locals>._n2  s<   € ðØŸ™ ¨4˜Ð0�BØ—|—|Ø!˜	ð $øä)ó Ùðús   ‚"& ¦
3²3r?   TFr…   )r�   r
   rQ   r]   Úis_polarÚis_extended_realrm   rv   rI   r•   rH   rg   r4   rF   Ú#sympy.functions.elementary.integersr—   Úis_negativerT   r    rc   re   Úis_imaginaryrn   Úis_extended_nonnegativero   ÚHalfr   )r(   Úexptrt   ru   r{   rv   rI   r•   rH   r4   rF   r—   rž   r¥   s                 r)   rp   ÚPow._eval_powerþ   sˆ  € Ø×ÑÓ!‰ˆØ”—‘Š:Ø‘D˜4‘<ÐàˆØ�?�?ØŠAØ�Z�ZØŠAØ×ÑÒ+ßNÓNßGÝAò òð ×!×!Ð!ð ˜“7á˜T—{‘{ØŸ=™=¨DÒ0Ü#$§=¡=°$Ñ#6´s¸A¸2¸q¹v³Ñ#FÐFØŸ]™]¨eÒ3Ü#& q¨%£=Ð0øØ—Y—YØ×)×)Ü ›F˜Ø—~—~Ü¡ 1£›J¤q§¡Ñ6˜ä˜“F˜Q‘J 4Ó'¨1°«6Ø’AØ×.×.Ø’AÙ˜“U×2×2¼¸A»À¹
ÀtÓ7KØ’AÙ˜4—[‘[Ù˜AœaŸd™d™F¤1§?¡?Ñ2°4Ñ7¹ÜŸ™  3 q£6¡¨1¬Q¯T©T©6Ñ!2Ñ2ó94ñ 4ó 5�Aà×)×)©c±$°q³'¸A±+Ó.>À!Ó.CÙ  ›G™à ˜øð

Ù˜AœaŸo™oÑ-¬a¯d©dÑ2°4Ñ7ÙœaŸf™f¡r¨!¨C°«F©(£|°A¡~´a·d±dÑ':Ñ:Ó;ñ<ó =�Að ×)×)©c±$°q³'¸A±+Ó.>À!Ó.CÙ  ›G™à ™ð ‰=Ø”S˜˜d™F“^Ñ#Ð#ð øô *ó Ø’Aðús   ÉBL Ë3L ÌLÌLc                ó
  • U R                   U R                  p2UR                  (       GaÚ  UR                  (       GaÇ  UR                  (       a  X!-  S:X  a  [        R
                  $ SSKJn  UR                  (       a´  UR                  (       a£  UR                  (       a’  [        U5      [        U5      [        U5      pvnUR                  5       nUS::  aG  Xh:¼  aB  UR                  5       S-  U:¼  a+  [        U" U5      5      n	[        [        XYXi-  -   U5      5      $ [        [        XVU5      5      $ SSKJn
  [        U[         5      (       a;  UR                  (       a*  UR"                  (       a  U
" X!5      nU
" [!        X#SS9U5      $ [        U[         5      (       ag  UR                  (       aU  UR"                  (       aC  [        U5      R                  5       nUS::  a#  U" U5      n	Xš" X95      -   nU
" [!        X#SS9U5      $ g	g	g	g	g	g	)
aÏ  A dispatched function to compute `b^e \bmod q`, dispatched
by ``Mod``.

Notes
=====

Algorithms:

1. For unevaluated integer power, use built-in ``pow`` function
with 3 arguments, if powers are not too large wrt base.

2. For very large powers, use totient reduction if $e \ge \log(m)$.
Bound on m, is for safe factorization memory wise i.e. $m^{1/4}$.
For pollard-rho to be faster than built-in pow $\log(e) > m^{1/4}$
check is added.

3. For any unevaluated power found in `b` or `e`, the step 2
will be recursed down to the base and the exponent
such that the $b \bmod q$ becomes the new base and
$\phi(q) + e \bmod \phi(q)$ becomes the new exponent, and then
the computation for the reduced expression can be done.
r   )ÚtotientéP   r;   r   )ÚModF©rJ   N)r/   r4   r]   Úis_positiver
   rU   Ú%sympy.functions.combinatorial.numbersr±   r^   ÚintÚ
bit_lengthÚIntegerÚpowÚmodr³   rL   r    r_   )r(   r™   r/   r4   r±   rt   ru   ÚmÚmbÚphir³   r¸   s               r)   Ú	_eval_ModÚPow._eval_ModR  sw  € ð0 —I‘I˜tŸx™xˆcà�>�>ˆ>˜cŸoŸo˜oØ�|�| ¡¨A£Ü—v‘v�åEà�� 3§>§>°a·l·lÜ˜d›)¤S¨£X¬s°1«v�a�Ø—\‘\“^�Ø˜“8 £¨A¯L©L«N¸AÑ,=ÀÓ,BÜ™g a›j›/�CÜ"¤3 q°±©+°qÓ#9Ó:Ð:Üœs 1¨›|Ó,Ð,å ä˜$¤×$Ñ$¨¯¯¸T¿^¿^Ù˜4“|�Ùœ3˜t°5Ñ9¸1Ó=Ð=ä˜#œs×#Ñ#¨¯¯¸3¿=¿=Ü  ›V×.Ñ.Ó0�
ð  Ó#Ù! !›*�CØ  C£Ñ-�CÙœs 4°uÑ=¸qÓAÐAð $ð <I¨Ð#ð) .ˆ>r,   c                óž   • U R                   R                  (       a2  U R                   R                  (       a  U R                  R                  $ g g r%   )r4   r]   rµ   r/   rc   r'   s    r)   Ú_eval_is_evenÚPow._eval_is_evenŠ  s3   € Ø�8‰8×× 4§8¡8×#7×#7Ø—9‘9×$Ñ$Ð$ð $8Ðr,   c                óR   • [         R                  U 5      nUSL a  U R                  $ U$ ©NT)r    Ú_eval_is_extended_negativerV   )r(   Úext_negs     r)   Ú_eval_is_negativeÚPow._eval_is_negativeŽ  s(   € Ü×0Ñ0°Ó6ˆØ�dŠ?Ø—>‘>Ð!Øˆr,   c                ó   • U R                   U R                  :X  a  U R                   R                  (       a  gg U R                   R                  (       a  U R                  R                  (       a  gg U R                   R
                  (       a9  U R                  R                  (       a  gU R                  R                  (       a  gg U R                   R                  (       a2  U R                  R                  (       a  U R                  R                  $ g U R                   R                  (       a  U R                  R                  (       a  gg U R                   R                  (       a›  U R                  R                  (       aB  U R                  S-  nUR                  (       a  gUR                  (       a  UR                  SL a  gU R                  R                  (       a"  SSKJn  U" U R                   5      R                  $ g g )NTFr;   r   rE   )r/   r4   r¬   rµ   Úis_realÚis_extended_negativerc   rd   Úis_zeror¨   Úis_extended_nonpositiver«   r]   rg   rF   )r(   r¼   rF   s      r)   Ú_eval_is_extended_positiveÚPow._eval_is_extended_positive”  s<  € Ø�9‰9˜Ÿ™Ó Ø�y‰y×0×0Øð 1à�Y‰Y×"×"Ø�x‰x××Øð  à�Y‰Y×+×+Ø�x‰x××ØØ�x‰x��Øð à�Y‰Y××Ø�x‰x×(×(Ø—x‘x×'Ñ'Ð'ð )à�Y‰Y×.×.Ø�x‰x��Øð à�Y‰Y×#×#Ø�x‰x×"×"Ø—H‘H˜q‘L�Ø—9—9ØØ—<—< A§I¡I°Ò$6Ø Ø�x‰x×$×$ÝFÙ˜4Ÿ9™9“~×2Ñ2Ð2ð %ð $r,   c                óº  • U R                   [        R                  L a7  U R                  R                  (       d  U R                  R
                  (       a  gU R                  R                  (       aT  U R                   R                  (       a  U R                  R                  (       a  gU R                   R                  (       a  gg U R                  R                  (       a  U R                   R
                  (       a  gg U R                  R                  (       a  U R                   R
                  (       a  gg U R                  R                  (       a  U R                   R                  (       a  gg U R                  R                  (       a  U R                   R                  (       a  gg U R                  R
                  (       a  U R                   R                  (       a  gg g ©NFT)r4   r
   r­   r/   Ú
is_complexr¨   rÌ   rd   rV   rc   Úis_extended_positiverÍ   r¬   rÎ   r'   s    r)   rÆ   ÚPow._eval_is_extended_negative±  s  € Ø�8‰8”q—v‘vÒØ�y‰y×#×# t§y¡y×'A×'AØØ�9‰9×)×)Ø�x‰x�� 4§9¡9×#6×#6ØØ�x‰x××Øð  à�Y‰Y×+×+Ø�x‰x×(×(Øð )à�Y‰Y××Ø�x‰x×(×(Øð )à�Y‰Y×.×.Ø�x‰x×/×/Øð 0à�Y‰Y×.×.Ø�x‰x××Øð  à�Y‰Y×'×'Ø�x‰x××Øð  ð (r,   c                ó2  • U R                   R                  (       a9  U R                  R                  (       a  gU R                  R                  (       a  gg U R                   [
        R                  :X  a  U R                  [
        R                  L $ U R                   R                  SL Ga7  U R                   R                  (       a  U R                  R                  (       a  gU R                  R                  (       a  U R                   R                  $ U R                  R                  (       a  gU R                  R                  (       a—  U R                  R                  (       a{  S[        U R                   5      -
  R                  (       a  U R                  R                  $ S[        U R                   5      -
  R                  (       a  U R                  R                  $ g g g U R                   R                  (       a  U R                  R                  (       a  gg g )NTFr   )r/   rÍ   r4   rÔ   rÎ   r
   rX   ÚNegativeInfinityrV   rª   rf   Úis_nonnegativer¨   re   rÌ   r'   s    r)   Ú_eval_is_zeroÚPow._eval_is_zeroÊ  sM  € Ø�9‰9××Ø�x‰x×,×,ØØ—‘×1×1Øð 2à�Y‰Yœ!Ÿ&™&Ó Ø—8‘8œq×1Ñ1Ð1Ð1Ø�Y‰Y×Ñ %Ó'Ø�y‰y×"×" t§x¡x×'9×'9ØØ—‘×%×%Ø—y‘y×,Ñ,Ð,Ø—‘×(×(ØØ—‘×%×%¨$¯(©(×*C×*CØœ˜DŸI™I›Ñ&×<×<ØŸ8™8×8Ñ8Ð8Øœ#˜dŸi™i›.Ñ(×>×>ØŸ8™8×8Ñ8Ð8ð ?ð +DÐ%ð
 �Y‰Y× ×  T§X¡X×%9×%9àð &:Ð r,   c                ó¢  • U R                   u  pUR                  (       a!  UR                  SL a  UR                  (       a  gUR                  (       aH  UR                  (       a7  U[        R
                  L a  gUR                  (       d  UR                  (       a  gUR                  (       an  UR                  (       a]  UR                  (       d  UR                  (       a;  [        US-
  R                  5      (       a  [        US-   R                  5      (       a  gUR                  (       a6  UR                  (       a%  U R                  " U R                   6 nUR                  $ UR                  (       a&  UR                  (       a  US-
  R                  (       a  gUR                  (       a(  UR                  (       a  US-   R                  (       a  gg g g )NFTr   )r*   Úis_rationalr]   rµ   r
   rT   rØ   rª   rV   r   rÍ   ra   Úfuncr^   )r(   rt   ru   Úchecks       r)   Ú_eval_is_integerÚPow._eval_is_integerâ  s  € Ø�y‰y‰ˆØ�=�=Ø�|‰|˜uÒ$¨¯¯ØØ�<�<˜AŸLŸLØ”A—M‘MÒ!ØØ×× 1§=§=ØØ�<�<˜AŸMŸM¨q¯{¯{¸a¿l¿lÜ˜!˜a™%Ÿ™×)Ñ)¬i¸¸Q¹¿¹×.HÑ.HØØ�;�;˜1Ÿ;Ÿ;Ø—I’I˜tŸy™yÐ)ˆEØ×#Ñ#Ð#Ø�=�=˜QŸ]Ÿ]°°A±×/B×/BØØ�=�=˜QŸ]Ÿ]°°A±×/B×/BØð 0C˜]ˆ=r,   c                óZ  • U R                   [        R                  L ar  U R                  R                  (       a  gU R                  R
                  (       a;  S[        R                  -  U R                  -  [        R                  -  R                  $ SSK	J
nJn  U R                   R                  nUcÖ  U R                   R                  U:X  a;  U R                   R                  R
                  (       a  U R                  R
                  $ U R                   R                  [        :X  ab  U R                   R                   [        R                  L a;  U R                   R                  R
                  (       a  U R                  R
                  $ g U R                  R                  nUc  g U(       aÿ  U(       aø  U R                   R                  (       a  gU R                   R                  (       a  U R                  R                  (       a  gU R                  R                  (       a  U R                   R                   (       a  gU R                  R                  (       a  U R                  R"                  (       a  gU R                   R$                  (       a  U R                  R&                  (       a  gU(       a_  U R                  R$                  (       aD  U R                   R(                  SL a+  [        U R                   U R                  * 5      R                  $ U R                   R
                  nU R                  R
                  nU(       GaH  U R                  R                  (       a9  U R                  R                  (       a  gU R                  R*                  (       a  gOôU(       a"  U" U R                   5      R
                  (       a  gU R                  R,                  (       ad  U R                  R/                  5       u  pxU(       a@  UR0                  (       a/  [3        U R                   U-  U R                   U-  SS9R                  $ OLU R                   [        R                  * [        R                  4;   a  U R                  S-  R                  SL a  gU(       Ga   U(       aù  U R                   [        R4                  L a  gU R                  R7                  [        R                  5      nU(       a«  U R                   R8                  (       a\  UR8                  (       aK  U R                   R:                  (       a0  U R                   S-
  R:                  (       a  UR:                  (       a  gXq" U R                   5      -  [        R                  -  R                  n	U	b  U	$ USL a–  U(       aŽ  [=        U R                  [>        5      (       a  U R                  R@                  S:X  a  gSSK!J"n
  U
" U R                   5      U R                  -  [        R                  -  nURF                  (       a  UR                  $ g g g )	NTr…   r   )rF   r4   Fr´   r   ©rv   )$r/   r
   rX   r4   r¨   r«   rn   ro   rc   rg   rF   rÝ   r    rÔ   r¬   r]   Úis_extended_nonzerorØ   rÌ   Úis_RationalrÍ   rd   rl   Úas_coeff_Addr^   ÚMulrT   ÚcoeffrÜ   Ú
is_nonzerorL   ÚRationalÚprm   rv   rÓ   )r(   rF   r4   Úreal_bÚreal_eÚim_bÚim_erw   ÚaÚokrv   Úis               r)   Ú_eval_is_extended_realÚPow._eval_is_extended_real÷  s­  € Ø�9‰9œŸ™ÒØ�x‰x×(×(ØØ—‘×&×&Øœ!Ÿ/™/Ñ)¨$¯(©(Ñ2´1·4±4Ñ7×@Ñ@Ð@çCØ—‘×+Ñ+ˆØ‰>Ø�y‰y�~‰~ Ó$¨¯©¯©×)C×)CØ—x‘x×,Ñ,Ð,Ø�y‰y�~‰~¤Ó$¨¯©¯©¼1¿6¹6Ò)AÀdÇiÁiÇmÁm×F`×F`Ø—x‘x×,Ñ,Ð,ØØ—‘×*Ñ*ˆØ‰>ØÞ–fØ�y‰y×-×-ØØ—‘×2×2°t·x±x×7W×7WØØ—‘×$×$¨¯©×)F×)FØØ—‘×$×$¨¯©×)@×)@ØØ—‘×/×/Ø—8‘8×'×'Ø Þ�d—h‘h×3×3¸¿	¹	×8IÑ8IÈUÒ8RÜ�t—y‘y 4§8¡8 )Ó,×=Ñ=Ð=Ø�y‰y×%Ñ%ˆØ�x‰x×$Ñ$ˆßØ�x‰x×"×"Ø—8‘8×#×#ØØ—X‘X—_—_Ø ð %æ™#˜dŸi™i›.×5×5ØØ—‘——Ø—x‘x×,Ñ,Ó.‘�Þ˜ŸŸÜØŸ	™	 1™ d§i¡i°¡l¸UñDßDTÑDTðUøà—‘¤§¡Ð/´·±ÐAÓAØ—H‘H˜Q‘J×*Ñ*¨eÒ3Ø ß–dØ�y‰yœAŸM™MÒ)ØØ—‘—‘œqŸ™Ó/ˆAÞØ—9‘9×(×(¨Q¯]¯]Ø—y‘y×+×+°·±¸Q±×0J×0JÈqÏ|Ï|Ø$Ø˜˜DŸI™I›Ñ&¤q§t¡tÑ+×7Ñ7�Ø‘>Ø�Ià�UŠ?žvÜ˜$Ÿ(™(¤H×-Ñ-°$·(±(·*±*À³/ØÝ@Ù�D—I‘I“˜tŸx™xÑ'¬¯©Ñ,ˆAØ�|�|Ø—|‘|Ð#ð ð  &ˆ?r,   c                ó  • U R                   [        R                  :X  a5  [        U R                  R
                  U R                  R                  /5      $ [        S U R                   5       5      (       a  U R                  5       (       a  gg g )Nc              3  ó8   #   • U  H  oR                   v •  M     g 7fr%   )rÓ   )Ú.0rï   s     r)   Ú	<genexpr>Ú'Pow._eval_is_complex.<locals>.<genexpr>B  s   é € Ð/¢Y �|Ž|¢Yùó   ‚T)
r/   r
   rX   r   r4   rÓ   rÌ   Úallr*   Ú_eval_is_finiter'   s    r)   Ú_eval_is_complexÚPow._eval_is_complex=  se   € à�9‰9œŸ™ÓÜ˜TŸX™X×0Ñ0°$·(±(×2OÑ2OÐPÓQÐQäÑ/ T§Y¢YÓ/×/Ñ/°D×4HÑ4H×4JÑ4JØð 5KÐ/r,   c                ó˜  • U R                   R                  SL a  gU R                   R                  (       a7  U R                  R                  (       a  U R                  R
                  nUb  U$ g U R                   [        R                  :X  aV  SU R                  -  [        R                  [        R                  -  -  nUR                  (       a  gUR
                  (       a  gg U R                  R                  (       a&  SSKJn  U" U R                   5      R                  nUb  gU R                   R                  (       aª  U R                  R                  (       a�  U R                   R                  (       a  gU R                  R                  nU(       d  U$ U R                  R                  (       a  gSU R                  -  R                  nU(       a  U R                   R                   $ U$ U R                   R                  SL aK  SSKJn  U" U R                   5      U R                  -  [        R                  -  nSU-  R
                  n	U	b  U	$ g g )NFr…   Tr   rE   râ   )r/   r#   r«   r4   r]   rd   r
   rX   ro   rn   rc   rg   rF   r¨   rµ   rÜ   rª   rm   rv   )
r(   r�   ÚfrF   ÚimlogÚratÚhalfrv   rñ   Úisodds
             r)   Ú_eval_is_imaginaryÚPow._eval_is_imaginaryE  sŽ  € Ø�9‰9×#Ñ# uÒ,Øà�9‰9×!×!Ø�x‰x×"×"Ø—h‘h—o‘o�Ø‘?Ø�JØà�9‰9œŸ™ÓØ�D—H‘H‘¤§¡¤Q§_¡_Ñ 4Ñ5ˆAà�y�yØà�x�xØØà�8‰8× × ÝBÙ˜Ÿ	™	“N×/Ñ/ˆEØÑ Øà�9‰9×%×%¨$¯(©(×*C×*CØ�y‰y×$×$Øà—h‘h×*Ñ*�ÞØ�JØ—8‘8×&×&Ø à˜dŸh™h™J×2Ñ2�DÞØ#Ÿy™y×4Ñ4Ð4Ø�Kà�9‰9×%Ñ%¨Ò.Ý@Ù�D—I‘I“˜tŸx™xÑ'¬¯©Ñ,ˆAØ�q‘S—L‘LˆEØÑ Ø�ð !ð	 /r,   c                óH  • U R                   R                  (       a‡  U R                   R                  (       a  U R                  R                  $ U R                   R
                  (       a  U R                  R                  (       a  gU R                  [        R                  L a  gg g rÅ   )r4   r]   rµ   r/   rd   rØ   r
   rT   r'   s    r)   Ú_eval_is_oddÚPow._eval_is_oddv  se   € Ø�8‰8××Ø�x‰x×#×#Ø—y‘y×'Ñ'Ð'Ø—‘×(×(¨T¯Y©Y×-=×-=ØØ—‘œaŸm™mÒ+Øð ,ð r,   c                óè  • U R                   R                  (       aS  U R                  R                  (       a  gU R                  R                  (       d  U R                  R
                  (       a  gU R                  R                  nUc  g U R                   R                  nUc  g U(       aI  U(       aA  U R                   R                  (       d$  [        U R                  R                  5      (       a  gg g g rÒ   )	r4   rª   r/   rÍ   rf   rè   rV   rØ   r   )r(   Úc1Úc2s      r)   rû   ÚPow._eval_is_finite  sŸ   € Ø�8‰8××Ø�y‰y× × ØØ�y‰y×$×$¨¯	©	×(<×(<ØØ�Y‰Y× Ñ ˆØ‰:ØØ�X‰X×ÑˆØ‰:ØÞ–"Ø�x‰x×&×&¬)°D·I±I×4EÑ4E×*FÑ*FØð +Gð ˆ2r,   c                ó²   • U R                   R                  (       a<  U R                  R                  (       a   U R                  S-
  R                  (       a  gggg)z=
An integer raised to the n(>=2)-th power cannot be a prime.
r   FN)r/   r]   r4   rµ   r'   s    r)   Ú_eval_is_primeÚPow._eval_is_prime�  s<   € ð �9‰9×× D§H¡H×$7×$7¸T¿X¹XÈ¹\×<V×<VØð =WÐ$7Ðr,   c                óš  • U R                   R                  (       a°  U R                  R                  (       a”  U R                   S-
  R                  (       a  U R                  S-
  R                  (       dT  U R                   S-   R                  (       a9  U R                  R                  (       a  U R                  R
                  (       a  gggggg)zC
A power is composite if both base and exponent are greater than 1
r   TN)r/   r]   r4   rµ   rª   rc   r'   s    r)   Ú_eval_is_compositeÚPow._eval_is_composite–  s   € ð �I‰I× ×  T§X¡X×%8×%8Ø�i‰i˜!‰m×(×(¨d¯h©h¸©l×-G×-GØ�Y‰Y˜‰]×'×'¨D¯H©H×,@×,@ÀTÇXÁX×EU×EUØð FVÐ,@Ð'ð &9Ð r,   c                ó.   • U R                   R                  $ r%   )r/   r§   r'   s    r)   Ú_eval_is_polarÚPow._eval_is_polarŸ  s   € Ø�y‰y×!Ñ!Ð!r,   c                ó6	  • SSK Jn  [        U R                  U5      (       ah  U R                  R                  X5      nU R                  R                  X5      n[        XS5      (       a  UR                  U5      $ U R                  XE5      $ SSKJnJ	n  S nXR                  :X  d#  X:X  a‚  U R                  [        R                  :X  ad  UR                  (       a6  [        U[        5      (       a!  U" U R                  R                  X5      5      $ X R                  R                  X5      -  $ [        XR                  5      (       aS  U R                  UR                  :X  a9  U" U R                  UR                  5      n	U	R                  (       a  [!        X)5      $ [        XR                  5      (       Ga×  U R                  UR                  :X  Ga¼  U R                  R"                  SL a‡  U R                  R%                  [&        SS9n
UR                  R%                  [&        SS9nU" X«U5      u  pÍnU(       a6  U R                  X-5      nUb   [)        U[!        UR                  U5      5      nU$ GOUR                  n/ n/ nUR+                  5       nU R                  R,                   H•  nUR                  X5      nUR+                  5       n
U" X«U5      u  pÍnU(       a)  UR/                  X--  5        Ub  UR/                  U5        M`  UR0                  (       d  UR2                  (       d    g UR/                  U5        M—     U(       aF  [5        U6 nUR/                  US:w  a  [!        U R                  USS9OU R                  5        [)        U6 $ [        X5      (       d.  UR6                  (       aï  UR                  [        R                  L aÑ  U R                  R8                  (       aµ  U R                  R:                  (       a™  UR                  R%                  [&        SS9n
U R                  U" U R                  5      -  R%                  [&        SS9nU" X«U5      u  pÍnU(       a6  U R                  X-5      nUb   [)        U[!        UR                  U5      5      nU$ g g g g g )	Nr   rA   r–   c                ój  • U u  p4Uu  pVXF:X  a¯  UR                   (       a  X5-  n [        USS9  SnX‡S4$ [        U[        5      (       d  U4n[        S U 5       5      (       d  g [        [        U5      [        U5      5      u  p{US:  a  US:w  a  US-  nU[        U5      -  nUS:X  a  SnO[        U/UQ76 nSX|4$ g! [         aZ    UR                  5       u  pšU	R                  =(       a    U
R
                  =(       d    U	R                  =(       a    U
R                  n Nñf = f! [         a     gf = f)	aš  Return (bool, pow, remainder_pow) where, if bool is True, then the
exponent of Pow `old` will combine with `pow` so the substitution
is valid, otherwise bool will be False.

For noncommutative objects, `pow` will be an integer, and a factor
`Pow(old.base, remainder_pow)` needs to be included. If there is
no such factor, None is returned. For commutative objects,
remainder_pow is always None.

cti are the coefficient and terms of an exponent of self or old
In this _eval_subs routine a change like (b**(2*x)).subs(b**x, y)
will give y**2 since (b**x)**2 == b**(2*x); if that equality does
not hold then the substitution should not occur so `bool` will be
False.

Fr¡   TNc              3  ó8   #   • U  H  oR                   v •  M     g 7fr%   )r]   )rö   Úterms     r)   r÷   Ú1Pow._eval_subs.<locals>._check.<locals>.<genexpr>Ò  s   é € ÐBº6°4Ÿžº6ùrù   )FNNr   r   )r#   r   Ú
ValueErrorr�   rµ   rË   rØ   rL   Útuplerú   Údivmodræ   )Úct1Úct2ÚoldÚcoeff1Úterms1Úcoeff2Úterms2rº   Úcombinesrt   ru   Ú	remainderÚremainder_pows                r)   Ú_checkÚPow._eval_subs.<locals>._check®  s>  € ð" !‰NˆFØ ‰NˆFØÓØ×%×%à ™-�CðhÜ˜s¨5Ò1Ø#'˜ð $¨$Ð.Ð.ô & f¬e×4Ñ4Ø"( ˜ÜÑB¹6ÓB×BÑBØ0ðä)/´°v³ÄÀvÃÓ)O™˜Ø ›7 y°A£~Ø 1™H˜CØ%¬°«Ñ7˜Ià$¨›>Ø,0™Mä,/°	Ð,C¸FÒ,C˜Mà# SÐ7Ð7ð
 %øô= &ó hØ"Ÿ™Ó0™˜à#$§=¡=×#>°Q·Y±Y×#gÀ!×BRÑBR×BgÐWX×WgÑWgšðhûô4 &ó àà$ð	ús%   ¤B> Á%AD% Â>A!D"Ä!D"Ä%
D2Ä1D2F)Úas_Addr   r´   )rY   rB   rL   r4   r/   ÚsubsÚ__rpow__rÝ   rg   rF   r
   rX   Úis_Functionr   Ú_subsra   r    rl   Úas_independentÚSymbolræ   Úas_coeff_mulr*   Úappendr#   r]   ÚAddÚis_Powr¨   rµ   )r(   r   ÚnewrB   rt   ru   r4   rF   r(  Úlr  r  rð   rº   r'  ÚresultÚoargÚnew_lÚo_alrï   ÚnewaÚexpos                         r)   Ú
_eval_subsÚPow._eval_subs¢  s€  € ÝAä�d—h‘h ×,Ñ,Ø—	‘	—‘˜sÓ(ˆAØ—‘—‘˜cÓ'ˆAÜ˜!×)Ñ)Ø—z‘z !“}Ð$Ø—9‘9˜Q“?Ð"çCò8	%ðt —)‘)Ó £
¨t¯y©y¼A¿F¹FÓ/BØ��¤:¨c´8×#<Ñ#<Ù˜4Ÿ8™8Ÿ>™>¨#Ó3Ó4Ð4àŸH™HŸN™N¨3Ó4Ñ4Ð4ô �cŸ9™9×%Ñ%¨$¯(©(°c·g±gÓ*=Ù�D—I‘I˜sŸx™xÓ(ˆAØ�{�{Ü˜3“{Ð"ä�cŸ9™9×%Ò%¨$¯)©)°s·x±xÔ*?Ø�x‰x�‰ %Ò'Ø—h‘h×-Ñ-¬f¸UÐ-ÐC�Ø—g‘g×,Ñ,¬V¸EÐ,ÐB�Ù)/°¸#Ó)>Ñ&�˜Þà!ŸY™Y sÓ0�FØ$Ñ0Ü!$ V¬S°·±¸=Ó-IÓ!J˜Ø!�Mñ ð —w‘w�Ø�Ø�Ø×'Ñ'Ó)�ØŸ™Ÿœ�AØŸ7™7 3Ó,�DØ×+Ñ+Ó-�CÙ-3°C¸cÓ-BÑ*�B˜]ÞØŸ™ S¡XÔ.Ø(Ñ4Ø ŸK™K¨Ô6Ù Ø ×/×/¸¿¿ñ Ø—K‘K Ö%ñ 'ö Ü ˜:�DØ—L‘LÈÐQRË¤ T§Y¡Y°¸uÒ!EÐX\×XaÑXaÔbÜ ˜;Ð&ä�s× Ñ  S§Z§Z°C·H±HÄÇÁÒ4FÈTÏXÉX×Mf×MfÐko×ktÑkt÷  lA÷  lAØ—'‘'×(Ñ(¬¸Ð(Ð>ˆCØ—8‘8™C §	¡	›NÑ*×:Ñ:Ü˜uð ;ð &ˆCá%+¨C°cÓ%:Ñ"ˆB�]ÞØŸ™ 3Ó,�Ø Ñ,Ü  ¬¨S¯X©X°}Ó)EÓF�FØ�ð	 ð lAÐMfÐ4F Zr,   c                ó¶   • U R                   u  pUR                  (       a8  UR                  S:X  a(  UR                  S:w  a  [	        UR                  5      U* 4$ X4$ )az  Return base and exp of self.

Explanation
===========

If base a Rational less than 1, then return 1/Rational, -exp.
If this extra processing is not needed, the base and exp
properties will give the raw arguments.

Examples
========

>>> from sympy import Pow, S
>>> p = Pow(S.Half, 2, evaluate=False)
>>> p.as_base_exp()
(2, -2)
>>> p.args
(1/2, 2)
>>> p.base, p.exp
(1/2, 2)

r   )r*   rä   rê   r™   r¹   )r(   rt   ru   s      r)   r�   ÚPow.as_base_exp#  sF   € ð. �y‰y‰ˆØ�=�=˜QŸS™S A›X¨!¯#©#°«(Ü˜1Ÿ3™3“< ! Ð#Ð#Øˆtˆr,   c                óF  • SSK Jn  U R                  R                  U R                  R
                  p2U(       a  U" U R                  5      U R                  -  $ U(       a  U R                  U" U R                  5      -  $ USL a  USL a  [        U 5      nX@:w  a  U" U5      $ g g g )Nr   )ÚadjointF)rm   rB  r4   r]   r/   rµ   r   )r(   rB  rñ   rê   Úexpandeds        r)   Ú_eval_adjointÚPow._eval_adjoint?  sŠ   € Ý@Ø�x‰x×"Ñ" D§I¡I×$9Ñ$9ˆ1ÞÙ˜4Ÿ9™9Ó% t§x¡xÑ/Ð/ÞØ—9‘9™g d§h¡hÓ/Ñ/Ð/Ø�Š:˜!˜uš*Ü% dÓ+ˆHØÓÙ˜xÓ(Ð(ð  ð %ˆ:r,   c                óh  • SSK Jn  U R                  R                  U R                  R
                  p2U(       a  U" U R                  5      U R                  -  $ U(       a  U R                  U" U R                  5      -  $ USL a  USL a  [        U 5      nX@:w  a  U" U5      $ U R                  (       a  U $ g )Nr   )Ú	conjugateF)rm   rG  r4   r]   r/   rµ   r   r¨   )r(   rw   rñ   rê   rC  s        r)   Ú_eval_conjugateÚPow._eval_conjugateK  sŽ   € ÝGØ�x‰x×"Ñ" D§I¡I×$9Ñ$9ˆ1ÞÙ�T—Y‘Y“< §¡Ñ)Ð)ÞØ—9‘9™a §¡›kÑ)Ð)Ø�Š:˜!˜uš*Ü% dÓ+ˆHØÓÙ˜“{Ð"Ø× × ØˆKð !r,   c                ó   • SSK Jn  U R                  [        R                  :X  a8  U R                  [        R                  U R                  R                  5       5      $ U R                  R                  U R                  R                  =(       d    U R                  R                  p2U(       a  U R                  U R                  -  $ U(       a  U" U R                  5      U R                  -  $ USL a  USL a  [        U 5      nX@:w  a  U" U5      $ g g g )Nr   )Ú	transposeF)rm   rK  r/   r
   rX   rÝ   r4   r]   rÓ   rf   r   )r(   rK  rñ   rê   rC  s        r)   Ú_eval_transposeÚPow._eval_transposeY  sÆ   € ÝBØ�9‰9œŸ™ÓØ—9‘9œQŸV™V T§X¡X×%7Ñ%7Ó%9Ó:Ð:Ø�x‰x×"Ñ" T§Y¡Y×%9Ñ%9×%R¸T¿Y¹Y×=RÑ=Rˆ1ÞØ—9‘9˜dŸh™hÑ&Ð&ÞÙ˜TŸY™YÓ'¨¯©Ñ1Ð1Ø�Š:˜!˜uš*Ü% dÓ+ˆHØÓÙ  Ó*Ð*ð  ð %ˆ:r,   c           	     ó"  • U R                   nU R                  nU[        R                  :X  aY  SSKJn  [        X45      (       aC  UR                  (       a2  SSKJ	n  U" U R                  X#R                  5      /UR                  Q76 $ UR                  (       aî  UR                  SS5      (       d$  UR                  SL d  UR!                  5       (       a³  UR                  (       a1  [#        UR$                   Vs/ s H  o`R                  X&5      PM     sn6 $ UR                  (       a`  ['        UR$                  S SS9u  pxU(       aA  [#        U Vs/ s H  o`R                  X&5      PM     sn6 U[(        R*                  " U5      -  -  $ U $ s  snf s  snf )	za**(n + m) -> a**n*a**mr   )ÚSum)ÚProductÚforceFc                ó   • U R                   $ r%   r"   ©Úxs    r)   Ú<lambda>Ú,Pow._eval_expand_power_exp.<locals>.<lambda>u  s
   € ¨q×/?Ò/?r,   T©Úbinary)r/   r4   r
   rX   Úsympy.concrete.summationsrO  rL   r#   Úsympy.concrete.productsrP  rÝ   ÚfunctionÚlimitsrl   ÚgetrÍ   Ú_all_nonneg_or_nonpposræ   r*   r   r3  Ú
_from_args)	r(   Úhintsrt   ru   rO  rP  rT  rw   Úncs	            r)   Ú_eval_expand_power_expÚPow._eval_expand_power_expg  s!  € à�I‰IˆØ�H‰HˆØ”—‘‹;Ý5Ü˜!×!Ñ! a×&6×&6Ý;Ù˜tŸy™y¨¯J©JÓ7ÐC¸!¿(¹(ÒCÐCØ�8�8˜Ÿ™ 7¨E×2Ñ2Ø—	‘	˜UÒ" a×&>Ñ&>×&@Ñ&@Ø××Ü°a·f²fÓ=²f°ŸY™Y qž_±fÑ=Ð>Ð>Ø××Ü˜QŸV™VÑ%?ÈÑM‘�ÞÜ¹!Ó <º!°Q§¡¨1¦¹!Ñ <ð ØœSŸ^š^¨BÓ/Ñ/ñ0ð 0àˆùò >ùò !=s   Ã6FÅFc                ón	  • UR                  SS5      nU R                  nU R                  nUR                  (       d  U $ UR	                  SS9u  pVU(       aÅ  U Vs/ s H(  n[        US5      (       a  UR                  " S0 UD6OUPM*     nnUR                  (       aX  UR                  (       a  [        Xd-  6 nO%[        USSS2    Vs/ s H  owS-  PM	     snU* -  6 nU(       a  U[        U6 U-  -  nU$ U(       d  U R                  [        U6 USS9$ [        U6 /n[        US S	S
9u  pšS n[        X«5      nUS	   nXœS   -  n	US   nU[        R                     nU(       Ga  [        R                  n[        U5      S-  nUS:X  a  OèUS:X  a  U	R                  U5        OÐUS:X  a]  U(       a6  UR!                  5       * nU[        R"                  La  UR                  U5        O�UR                  [        R$                  5        OmU(       a6  UR!                  5       * nU[        R"                  La  UR                  U5        OUR                  [        R$                  5        U	R                  U5        AU(       d  UR&                  (       a  XÞ-   U	-   nUn	GONUR                  (       a   e[        U5      S:”  a•  [        R"                  nU	(       d(  US   R(                  (       a  UUR!                  S5      -  n[        U5      S-  (       a  U* nU H  nUR                  U* 5        M     U[        R"                  La  U	R                  U5        O�U(       ax  U	(       aq  US   R(                  (       aK  US   [        R$                  La5  U	R                  [        R$                  5        UR                  US   * 5        O#U	R+                  U5        OU	R+                  U5        AUnX–-  n	[        R"                  nU(       aˆ  UR,                  (       aN  [        US S	S
9u  nn[        U Vs/ s H+  o0R                  UR                  " UR.                  6 U5      PM-     sn6 nU[        U Vs/ s H  o0R                  X4SS9PM     sn6 -  nU	(       a  X€R                  [        U	6 USS9-  nU$ s  snf s  snf s  snf s  snf )z(a*b)**n -> a**n * b**nrQ  F)Úsplit_1Ú_eval_expand_power_baseNr?   r´   c                ó   • U R                   SL $ ©NF)r¨   rS  s    r)   rU  Ú-Pow._eval_expand_power_base.<locals>.<lambda>�  s   € °!×2DÑ2DÈÑ2Mr,   TrW  c                ó¢   • U [         R                  L a  [         R                  $ U R                  nU(       a  gUc  [        U R                  5      $ g rÅ   )r
   rn   r§   r   r¬   )rT  Úpolars     r)   ÚpredÚ)Pow._eval_expand_power_base.<locals>.predŸ  sB   € Ø”A—O‘OÒ#Ü—‘Ð&Ø—J‘JˆEÞØØ‰}Ü! !×";Ñ";Ó<Ð<ð r,   r;   r   r   r…   c                óŽ   • U R                   =(       a3    U R                  R                  =(       a    U R                  R                  $ r%   )r4  r4   rä   r/   r_   rS  s    r)   rU  ri  í  s1   € °A·H±H÷ 5;Ø—E‘E×%Ñ%÷5;Ø*+¯&©&×*:Ñ*:ð5;r,   r&   )r]  r/   r4   r`   Úargs_cncÚhasattrrf  r^   rµ   ræ   rÝ   r   r
   rn   Úlenr2  ÚpoprS   rT   r]   ra   Úextendrä   r*   )r(   r`  rQ  rt   ru   Úcargsra  rñ   r¤   ÚotherÚ
maybe_realrl  ÚsiftedÚnonnegÚnegÚimagÚIÚnonnÚorœ   Únpows                        r)   rf  ÚPow._eval_expand_power_base{  sî  € à—	‘	˜' 5Ó)ˆà�I‰IˆØ�H‰HˆØ�x�xØˆKà—J‘J u�JÐ-‰	ˆö
 ñ óâ�Aô ˜1Ð7×8Ñ8ð ×+Ò+Ñ4¨eÒ4Ø>?ò@áð ð ð �|�|Ø—=—=Ü˜b™d˜‘Bä¨b±°2°ªhÓ7ªh¨ "œu©hÑ7¸¸Ñ:Ð;�BÞØœ#˜u˜+ q™.Ñ(�BØ�	æØ—y‘y¤ b ¨1°u�yÐ=Ð=ä�r�(�ˆBô ! Ñ(MØñÑˆò	=ô �jÓ'ˆØ˜‘ˆØ˜‘ÑˆØ�U‰mˆØ”a—o‘oÑ&ˆßÜ—‘ˆAÜ�D“	˜A‘ˆAØ�A‹vØØ�a“Ø—‘˜Q•Ø�a“ÞØŸG™G›I˜:�DØ¤1§5¡5Ò(ØŸ™ dÔ+øà—J‘JœqŸ}™}Õ-æØŸG™G›I˜:�DØ¤1§5¡5Ò(ØŸ™ dÔ+øà—J‘JœqŸ}™}Ô-Ø—‘˜Q”Øö �A—L—Là‘L 5Ñ(ˆEØŠEð —|—|Ð#Ð#ô �3‹x˜!‹|Ü—E‘E�Þ  Q¡×!1×!1Ø˜Ÿ™ ›‘O�AÜ�s“8˜a—<Ø˜�AÛ�AØ—M‘M 1 "Ö%ñ àœAŸE™E’>Ø—L‘L ”OøÞžØ�q‘6×#×#¨¨A©´a·m±mÒ(CØ—L‘L¤§¡Ô/Ø—M‘M 3 q¡6 'Õ*à—L‘L Õ%à—‘˜SÔ!ØàˆEØ‰KˆEä�U‰UˆÞØ�}�}Ü" 5ñ +;àñ!‘��eô Á$ÓGÂ$¸QŸ9™9 Q§V¢V¨Q¯V©V _°aÖ8Á$ÑGÐH�Ø”#ÁÓGÂ¸AŸ	™	 !°˜	Ó7ÁÑGÐHÑHˆBÞØ—)‘)œC ˜K¨°U�)Ð;Ñ;ˆBØˆ	ùòUùò 8ùò| HùÚGs   Á/R#ÃR(Ð"2R-Ñ"R2
c           	     óþ  • U R                   u  p#U nUR                  (       Gai  UR                  S:”  GaX  UR                  (       GaF  UR                  (       dª  [        UR                  UR                  -  5      nU(       d  U$ U R                  X#U-
  5      / pFU R                  X%5      nUR                  (       a  UR                  5       n[        R                  " U5       H  nUR                  X†-  5        M     [        U6 $ [        U5      nUR                  (       Ga¨  / / p©UR                    H8  nUR                  (       a  U	R                  U5        M'  U
R                  U5        M:     U	(       aM  [        U
6 n[        U	6 nUS:X  a  [!        XÅ-  SS9X\-  U-  -   $ [!        XÅS-
  -  SS9n[#        XÎ-  SS9X^-  U-  -   $ UR$                  (       GaÎ  UR'                  5       u  pûUR                  (       Gaª  UR                  (       Ga˜  UR                  (       d£  UR                  (       d[  U R                  UR                  UR                  -  U5      nUR                  UR                  -  UR                  UR                  -  p¿O€U R                  UR                  U5      nUR                  UR                  U-  p¿OIUR                  (       d6  U R                  UR                  U5      nXûR                  -  UR                  p¿OSn[        U5      [        U5      SS4u  pûnnU(       aC  US-  (       a  UU-  UU-  -
  UU-  UU-  -   nnUS-  nXÿ-  X»-  -
  SU-  U-  p¿US-  nU(       a  MC  [(        R*                  nUS:X  a  UUU-  -   $ [        U5      U-  UU-  U-  -   $ U
nSSKJn  SSKJn  U" [5        U5      U5      nU" U/UQ76 $ US:X  a:  [        UR                    VVs/ s H  oÂR                     H  oìU-  PM	     M     snn6 $ X%S-
  -  R                  5       nUR                  (       a;  [        UR                    VVs/ s H  nUR                     H  nXÎ-  PM	     M     snn6 $ [        UR                    Vs/ s H  oÌU-  PM	     sn6 $ UR                  (       ag  UR                  S:  aW  UR                  (       aF  [7        UR                  5      UR                  :”  a#  SU R                  X#* 5      R                  5       -  $ UR                  (       a×  UR8                  (       aÆ  UR;                  SS5      (       d$  UR<                  SL d  UR?                  5       (       a‹  / / nnUR                    HG  nUR8                  (       a"  UR                  U R                  X(5      5        M6  UR                  U5        MI     [A        UU R                  U[        RB                  " U5      5      /-   6 $ U$ s  snnf s  snnf s  snf )	zA(a + b + ..)**n -> a**n + n*a**(n-1)*b + .., n is nonzero integerr   r…   F©Údeepr   )Úmultinomial_coefficients)Úbasic_from_dictrQ  )"r*   rä   rê   rl   r^   r¹   r™   rÝ   r4  Ú_eval_expand_multinomialr3  Ú	make_argsr2  r·   r#   Úis_Orderr   r   r_   Úas_real_imagr
   rn   Úsympy.ntheory.multinomialrƒ  Úsympy.polys.polyutilsr„  rq  re   ra   r]  rÍ   r^  ræ   r_  )r(   r`  r/   r4   r7  rœ   ÚradicalÚexpanded_base_nr  Úorder_termsÚother_termsrt   rÿ   r}  Úgrï   Úkrw   r�   r{  rê   rƒ  r„  Úexpansion_dictÚmultirç   Útails                              r)   r…  ÚPow._eval_expand_multinomialö  sÉ  € ð —I‘I‰	ˆØˆà�?�?ˆ?˜sŸu™u qœy¨T¯[¯[¨[Ø—>—>Ü˜CŸE™E S§U¡U™NÓ+�æØ!�Mà&*§i¡i°¸A±gÓ&>À˜Và&*§i¡i°Ó&8�OØ&×-×-à+×DÑDÓFð (ä #§¢¨oÖ >˜ØŸ™ d¡lÖ3ñ !?ô  ˜<Ð'ä�C“ˆAà×"×"Ð"Ø+-¨r˜[àŸœ�AØ—z—zØ#×*Ñ*¨1Ö-à#×*Ñ*¨1Ö-ñ	 #ö ä˜[Ð)�AÜ˜[Ð)�Aà˜A“vÜ1°!±$¸UÑCÀaÁcÈ!ÁeÑKÐKä.¨q°q±5©zÀÑF˜Ü)¨!©#°EÑ:¸Q¹SÀ¹UÑBÐBà—>—>�>ð  ×,Ñ,Ó.‘D�Aà—}—}�}¨¯¯¨Ø Ÿ|Ÿ|Ø#$§<§<Ø$(§I¡I¨a¯c©c°A·C±C©i¸Ó$; Ø'(§s¡s¨1¯3©3¡w°·±°A·C±C±¡1à$(§I¡I¨a¯c©c°1Ó$5 Ø'(§s¡s¨A¯C©C°©E¡1Ø!"§§Ø $§	¡	¨!¯#©#¨qÓ 1˜AØ#$§S¡S¡5¨!¯#©#™qà !˜Aä%(¨£V¬S°«V°Q¸Ð%9™
˜˜a æØ  1ŸuØ'(¨¡s¨Q¨q©S¡y°!°A±#¸¸!¹±) 1 Ø ! Q¡ Ø#$¡3¨©¡9¨a°©c°!©e˜qØ !™G˜A÷  ˜aô ŸO™O˜à ›6Ø#$ q¨¡s¡7˜Nä#*¨1£:¨a¡<°!°A±#°a±%Ñ#7Ð7à�õ OÝAÙ!9¼#¸a»&À!Ó!D�ñ ' ~Ð:¸Ò:Ð:à˜“6Ü¨d¯iªiÔ Kªi¨ÇÅ¸A 1¤Á¡©iÒ KÐLÐLà!¨¡E™]×DÑDÓF�EØ—|—|Ü"°$·)²)ô %1²)¨QØ%*§Z¥Z ð &'¤SÙ%/ñ &)±)ò %1ð  2ð 2ô  #°d·i²iÓ$@²i° u¤W±iÑ$@ÐAÐAØ�o�o #§%¡%¨!£)°··Ü�C—E‘E“
˜SŸU™UÓ"Ø�t—y‘y  tÓ,×EÑEÓGÑGÐGØ�Z�Z˜DŸNŸN°·	±	¸'À5×0IÑ0IØ—‘ Ò%¨×)CÑ)C×)EÑ)Eð ˜b�4ˆEØŸœ�Ø—>—>Ø—L‘L §¡¨4Ó!6Ö7à—K‘K Ö%ñ	 !ô
 ˜ $§)¡)¨D´#·.².ÀÓ2FÓ"GÐ!HÑHÐJÐJàˆMùó3 !Lùó%1ùò %As   Ï !W.
Ñ "W4
Ñ:W:c           
     ó6
  • U R                   R                  (       Ga“  SSKJn  U R                   nU R                  R                  US9u  pVU(       d  U [        R                  4$ [        S[        S9u  pxUS:¼  a]  UR                  (       a>  UR                  (       a-  [        U R                  U-  5      n	X�:w  a  U	R                  5       $ U" Xx-   U-  5      n	O{US-  US-  -   n
XZ-  U* U
-  peUR                  (       aH  UR                  (       a7  [        XV[        R                  -  -   U* -  5      n	X�:w  a  U	R                  5       $ U" Xx-   U* -  5      n	U	R                  5        Vs/ s H  o»S   S   S-  (       a  M  UPM     nn[        U VVVs/ s H  u  u  pÞoÿX}-  -  XŽ-  -  PM     snnn6 nU	R                  5        Vs/ s H  o»S   S   S-  S:X  d  M  UPM     nn[        U VVVs/ s H  u  u  pÞoÿX}-  -  XŽ-  -  PM     snnn6 nU	R                  5        Vs/ s H  o»S   S   S-  S	:X  d  M  UPM     nn[        U VVVs/ s H  u  u  pÞoÿX}-  -  XŽ-  -  PM     snnn6 nUR                  XuU[        R                  U-  05      UR                  XuX†05      UR                  XuX†* 05      -   4$ SS
KJnJnJn  U R                   R(                  (       Ga2  U R                  R                  US9u  pVUR*                  (       a{  U R                   [        R,                  L a^  UR.                  (       a  U [        R                  4$ UR0                  (       a*  [        R                  U R                  * U R                   -  4$ U R3                  U R3                  US5      U R3                  US5      -   [        R,                  5      nU" Xe5      nU R3                  XÀR                   5      UU R                   -  nnUU" U5      -  UU" U5      -  4$ U R                  [        R4                  L au  SSKJ n  U R                   R                  5       u  pVU(       a&  UR8                  " U40 UD6nUR8                  " U40 UD6nU" U5      U" U5      nnU" U5      U-  U" U5      U-  4$ SSKJnJn  U(       a>  SUS'   U R8                  " U40 UD6nURA                  S5      U:X  a  g U" U5      U" U5      4$ U" U 5      U" U 5      4$ s  snf s  snnnf s  snf s  snnnf s  snf s  snnnf )Nr   )Úpolyr�  za br†   r…   r   r;   r„   )Úatan2ÚcosÚsin©r4   )rI   r•   FÚcomplexÚignore)!r4   r^   Úsympy.polys.polytoolsr–  r/   rˆ  r
   rU   ÚsymbolsÚDummyra   r   rn   Útermsr3  r+  Ú(sympy.functions.elementary.trigonometricr—  r˜  r™  rä   rÍ   r­   r¬   rÎ   rÝ   rX   rg   Úexpandrm   rI   r•   r]  )r(   r‚  r`  r–  r4   Úre_erî   rï   rt   ÚexprÚmagrñ   ÚrÚaaÚbbÚccÚre_partÚim_part1Úim_part3r—  r˜  r™  ÚtÚrpÚtprw   r{   rI   r•   rC  s                                 r)   rˆ  ÚPow.as_real_imagp  sE  € Ø�8‰8××ÐÝ2à—(‘(ˆCØŸ™×/Ñ/°TÐ/Ð:‰JˆDÞØœQŸV™V�|Ð#Ü˜5¤eÑ,‰DˆAØ�a‹xØ—>—> d§n§nä-¨d¯i©i¸©nÓ=�DØ“|Ø#×0Ñ0Ó2Ð2áØ‘U˜S‘Ló"‘ð ˜A‘g  a¡Ñ'�Ø!™X¨ u¨S¡y�dØ—>—> d§n§nä-¨t¼1¿?¹?Ñ6JÑ/JÈcÈTÑ.QÓR�DØ“|Ø#×0Ñ0Ó2Ð2á˜Q™U c T™MÓ*�ð !ŸJ™JœLÓ<šL�q°!±°Q±¸!µ—™LˆAÐ<Ü¹qÕAºq©|©x°¸˜q™u™H Q¡UœN¹qÓAÐBˆGà ŸJ™JœLÓ=šL�q¨a©D°©G°a©K¸1Ñ,<—™LˆAÐ=ÜÁÕBÂ±±°¸" ¡™X a¡eœ^ÁÓBÐCˆHØ ŸJ™JœLÓ=šL�q¨a©D°©G°a©K¸1Ñ,<—™LˆAÐ=ÜÁÕBÂ±±°¸" ¡™X a¡eœ^ÁÓBÐCˆHà—L‘L !¨1¬a¯o©o¸dÑ.BÐ!CÓDØ�M‰M˜1 AÐ,Ó-°·±¸qÈÈ5Ð>QÓ0RÑRðTð T÷ 	MÑLà�8‰8××ÐØŸ™×/Ñ/°TÐ/Ð:‰JˆDà�|�| §¡¬A¯F©FÒ 2Ø×/×/Ø¤§¡˜<Ð'Ø×/×/ÜŸ6™6 T§Y¡Y J°·±Ñ#9Ð9Ð9ð
 —	‘	˜$Ÿ)™) D¨!Ó,¨t¯y©y¸¸qÓ/AÑAÄ1Ç6Á6ÓJˆAá�dÓ!ˆAà—Y‘Y˜q§(¡(Ó+¨Q¨t¯x©x©Z�ˆBà‘c˜"“g‘:˜r¡# b£'™zÐ)Ð)Ø�Y‰Yœ!Ÿ&™&Ò ÝBØŸ™×.Ñ.Ó0‰JˆDÞØ—{’{ 4Ñ1¨5Ñ1�Ø—{’{ 4Ñ1¨5Ñ1�Ù�t“9™c $›iˆqˆAÙ�t“9˜Q‘;¡ D£	¨!¡Ð+Ð+çCÞØ#(��iÑ àŸ;š; tÑ5¨uÑ5�Ø—9‘9˜XÓ&¨(Ó2Øá˜x›L©"¨X«,Ð7Ð7á˜$“x¡ D£Ð)Ð)ùòg =ùÜAùâ=ùÜBùÚ=ùÜBs6   Å#S7Å:S7ÆS<Æ?TÇTÇ(TÈTÈ0TÉTc                óà   • SSK Jn  U R                  R                  U5      nU R                  R                  U5      nXU" U R                  5      -  X0R                  -  U R                  -  -   -  $ r   )rg   rF   r/   Údiffr4   )r(   r{   rF   ÚdbaseÚdexps        r)   Ú_eval_derivativeÚPow._eval_derivativeÃ  sT   € Ý>Ø—	‘	—‘˜qÓ!ˆØ�x‰x�}‰}˜QÓˆØ™c $§)¡)›nÑ,¨u·x±xÑ/?ÀÇ	Á	Ñ/IÑIÑJÐJr,   c                ó,  • U R                  5       u  p#U[        R                  :X  a&  SSKJn  U" U R                  SS9R                  U5      $ UR                  U5      nUR                  (       d  UR                  U5      nUR                  (       at  UR                  (       ac  UR                  SL aT  UR                  5       X"R                  5       -  R                  U5      -  nU* nU R                  X#5      R                  5       $ U R                  X#5      $ )Nr   rš  Fr´   )r�   r
   rX   rg   r4   Ú_eval_evalfÚ_evalfr^   rª   r_   r¨   rG  rÝ   r¢  )r(   Úprecr/   r4   Úexp_functions        r)   r¸  ÚPow._eval_evalfÉ  sÍ   € Ø×$Ñ$Ó&‰	ˆØ”1—6‘6‹>åRÙ §¡°5Ñ9×EÑEÀdÓKÐKØ�{‰{˜4Ó ˆØ�~�~Ø—*‘*˜TÓ"ˆCØ�?�?˜tŸ~Ÿ~°$×2GÑ2GÈ5Ò2PØ—>‘>Ó# t¯n©nÓ.>Ñ'>×&FÑ&FÀtÓ&LÑLˆDØ�$ˆCØ—9‘9˜TÓ'×.Ñ.Ó0Ð0Ø�y‰y˜Ó#Ð#r,   c                ó,  • U R                   R                  " U6 (       a  gU R                  R                  " U6 (       aW  [        U R                  R	                  U5      =(       a,    U R                   R
                  =(       a    U R                   S:¬  5      $ g)NFr   T)r4   Úhasr/   ÚboolÚ_eval_is_polynomialr^   ©r(   Úsymss     r)   rÀ  ÚPow._eval_is_polynomialØ  sj   € Ø�8‰8�<Š<˜ÖØà�9‰9�=Š=˜$ÖÜ˜Ÿ	™	×5Ñ5°dÓ;÷ 8Ø—‘×#Ñ#÷8Ø)-¯©°Q©ó9ð 9ð r,   c                ó*  • U R                   R                  (       a_  U R                  R                  (       aD  [	        [        U R                   R                  U R                  R                  /5      5      (       a  gU R                  " U R                  5       6 nUR                  (       d  UR                  $ UR                  5       u  p#UR                  (       a  UR                  (       a  gUR                  (       aa  UR                  (       a3  [	        UR                  5      (       d  UR                  (       a  gX#:X  a  gOUR                  (       a  UR                  $ U[        R                  L a%  UR                  (       a  UR                   (       a  gg g g )NTF)r4   r]   r/   rÜ   r   r   rª   rÍ   rÝ   r�   r4  rä   rØ   Úis_irrationalr
   rX   rè   )r(   rê   rt   ru   s       r)   Ú_eval_is_rationalÚPow._eval_is_rationalâ  sý   € ð �H‰H×× D§I¡I×$9×$9Üœi¨¯©×)=Ñ)=¸t¿y¹y×?PÑ?PÐ(QÓR×SÑSØØ�IŠI�t×'Ñ'Ó)Ð*ˆØ�x�xØ—=‘=Ð Ø�}‰}‹‰ˆØ�=�=˜QŸ]Ÿ]ð Ø�<�<Ø�}�}Ü˜QŸY™Y×'Ñ'¨1×+;×+;ØØ“6Øð à——Ø—y‘yÐ Ø”—‘Š;Ø�}�} §§Øð ".ˆ}ð r,   c                óÀ  • S nU R                   R                  (       d  U" U R                   5      (       a  gU R                   [        R                  L aã  U R                  " U R
                  6 nUR                  U R                  :X  a¤  U R                  R                  (       aˆ  U R                  R                  (       a  gU R                  [        R                  -  R                  (       a  gU R                  [        R                  [        R                  -  -  R                  (       a  gg g UR                  $ U R                  R                  (       aÇ  U R                   R                  SL a  U R                  R                  $ U R                   R                  SL aM  U R                  R                  (       a  U R                   R                  $ U R                   R                  (       a  gU R                  R                  (       a  U R                   R                  $ g U R                   R                  (       a«  U R                  R                  (       a�  [        U R                   R                  5      (       a   [        U" U R                   5      5      (       d4  U R                   R                  SL d  U R                   R                  (       a  U R                  R                  $ g g g )Nc                óB   •  U S-
  R                   $ ! [         a     gf = f)Nr   F)rÍ   r  )r¤  s    r)   Ú_is_oneÚ'Pow._eval_is_algebraic.<locals>._is_oneþ  s)   € ðØ˜q™×)Ñ)Ð)øÜó áðús   ‚ ‘
�TF)r/   rÍ   r
   rX   rÝ   r*   r4   rè   Úis_algebraicro   rÜ   rn   rµ   r   r]   rÅ  )r(   rÊ  r{   s      r)   Ú_eval_is_algebraicÚPow._eval_is_algebraicý  sÕ  € ò	ð �9‰9××¡¨¯	©	× 2Ñ 2ØØ�Y‰Yœ!Ÿ&™&Ò Ø—	’	˜4Ÿ9™9Ð%ˆAØ�v‰v˜Ÿ™Ó"Ø—8‘8×&×&Ø—x‘x×,×,Ø$ØŸ(™(¤1§4¡4™-×4×4Ø$ØŸ(™(¤A§O¡O´A·D±DÑ$8Ñ9×F×FØ#ð Gð 'ð —~‘~Ð%Ø�X‰X×!×!Ø�y‰y×%Ñ%¨Ò.Ø—x‘x×'Ñ'Ð'Ø�y‰y× Ñ  EÒ)Ø—8‘8×&×&ØŸ9™9×1Ñ1Ð1Ø—Y‘Y×+×+ØØ�x‰x×#×#Ø—y‘y×-Ñ-Ð-ð $à�Y‰Y×#×#¨¯©×(=×(=Ü˜4Ÿ9™9×,Ñ,×-Ñ-Ü™g d§i¡iÓ0×1Ñ1Ø—9‘9×'Ñ'¨5Ò0Ø—9‘9×*×*Ø—x‘x×+Ñ+Ð+ð +ð	 )>Ð#r,   c                óî   • U R                   R                  " U6 (       a  gU R                  R                  " U6 (       a8  U R                  R                  U5      =(       a    U R                   R                  $ grÒ   )r4   r¾  r/   Ú_eval_is_rational_functionr^   rÁ  s     r)   rÐ  ÚPow._eval_is_rational_function$  sS   € Ø�8‰8�<Š<˜ÖØà�9‰9�=Š=˜$ÖØ—9‘9×7Ñ7¸Ó=÷ $Ø—‘×#Ñ#ð$ð r,   c                óè  • U R                   R                  X5      nU R                  R                  nU(       a  U$ U R                  R                  X5      nUSL a  U(       a  S$ S $ Uc  g U R                   R	                  X5      nUR
                  nU(       a  SnO [        UR                  [        U5      45      nUSL a  U$ Uc  g U(       d  U$ U R                  R	                  X5      R                  $ rh  )	r/   Ú_eval_is_meromorphicr4   r^   r+  rÍ   r   rV   r   )	r(   rT  rï   Ú
base_meromÚexp_integerÚ	exp_meromrt   Úb_zeroÚlog_defineds	            r)   rÓ  ÚPow._eval_is_meromorphic.  sÚ   € ð —Y‘Y×3Ñ3°AÓ9ˆ
Ø—h‘h×)Ñ)ˆÞØÐà—H‘H×1Ñ1°!Ó7ˆ	Ø˜Òö &�5Ð/¨4Ð/ØÑØà�I‰I�N‰N˜1Ó ˆð —‘ˆÞØ‰Kä# Q§[¡[´)¸FÓ2CÐ$DÓEˆKà˜%ÒØÐØÑ ØæØÐà�x‰x�}‰}˜QÓ"×,Ñ,Ð,r,   c                óî   • U R                   R                  " U6 (       a  gU R                  R                  " U6 (       a8  U R                  R                  U5      =(       a    U R                   R                  $ grÒ   )r4   r¾  r/   Ú_eval_is_algebraic_exprrä   rÁ  s     r)   rÛ  ÚPow._eval_is_algebraic_exprS  sS   € Ø�8‰8�<Š<˜ÖØà�9‰9�=Š=˜$ÖØ—9‘9×4Ñ4°TÓ:÷ %Ø—‘×$Ñ$ð%ð r,   c                óò  • SSK JnJn  UR                  (       d,  UR	                  U5      (       d  UR	                  U5      (       a  X-  $ UR	                  [
        5      nUR	                  [
        5      (       aG  [        R                  (       a"  [        [        R                  U" U5      U-  US9$ U" U" U5      U-  US9$ SSKJnJn  U" U" U" U5      5      [        R                  U" U5      -  -   U-  5      $ )Nr   r–   r´   )rv   ÚAbs)rg   r4   rF   rÍ   r¾  r0  r   Ú
exp_is_powr    r
   rX   rm   rv   rÞ  rn   )	r(   r/   r<  Úkwargsr4   rF   rJ   rv   rÞ  s	            r)   Ú_eval_rewrite_as_expÚPow._eval_rewrite_as_exp]  s´   € ßCà�<�<˜4Ÿ8™8 CŸ=™=¨D¯H©H°S¯M©MØ‘:Ðà—8‘8œFÓ#ˆà�8‰8”F×Ñô !×+×+Üœ1Ÿ6™6¡3 t£9¨T¡>¸HÑEÐEá™3˜t›9 T™>°HÑ=Ð=÷ FÙ™™C ›I›¬¯©¹¸T»Ñ)BÑBÀDÑHÓIÐIr,   c                óP  • U R                   (       d  U [        R                  4$ U R                  5       u  pUR	                  5       u  p4UR
                  nUR                  (       a(  U(       d!  UR                  (       d  UR                  5       nUR                  nUR                  (       d  U(       d  Un[        R                  nUR                  nU(       a  U* U* pCOUc  U(       d  Un[        R                  nU(       a  XCpCU* nUR                  (       aq  U[        R                  L a%  U[        R                  La  X0R                  XB5      4$ U[        R                  La&  U[        R                  L a  U R                  X25      U4$ U R                  X25      U R                  XB5      4$ r%   )r#   r
   rS   r�   r›   rª   r`   rµ   rb   r]   r¨   Úis_nonpositiverf   rÝ   )r(   r/   r4   rœ   r�   Úneg_expÚint_expÚdnonposs           r)   r›   ÚPow.as_numer_denomq  s6  € Ø×"×"ØœŸ™�;ÐØ×$Ñ$Ó&‰	ˆØ×"Ñ"Ó$‰ˆð —/‘/ˆØ�:�:žg¨c¯o¯oØ×2Ñ2Ó4ˆGØ—.‘.ˆð ×"×"¦gØˆAÜ—‘ˆAØ×"Ñ"ˆÞØ�2˜�r‰qØ‰_¦WØˆAÜ—‘ˆAÞØˆqØ�$ˆCØ�?�?Ø”A—E‘EŠz˜a¤q§u¡ušnØŸ)™) AÓ+Ð+Ð+ØœŸ™Š~ !¤q§u¡u¢*Ø—y‘y Ó(¨!Ð+Ð+Ø�y‰y˜Ó  $§)¡)¨AÓ"3Ð3Ð3r,   c                óÖ  • [        U5      nUc  0 nU[        R                  L a/  U R                  R	                  [        R
                  U5      nUb  U$ [        U[        5      (       d  g UR                  5       u  pVU R                  5       u  pxUR                  (       aX  UR                  (       aG  U(       a@  UR                  (       a  UR	                  XVU-  -  U5      $ UR	                  USU-  -  U5      $ UR                  5       nU R                  R	                  XT5      nUc  g U R                  R                  U5      R	                  Xd5      nUc  [        R                  " XU5      $ U$ r3   )r   r
   rS   r4   ÚmatchesrU   rL   r   r�   r\   r^   rÜ   Úcopyr/   Úxreplace)	r(   r¤  Ú	repl_dictr   r�   rt   ru   ÚsbÚses	            r)   rê  ÚPow.matches”  s#  € Ü˜‹~ˆØÑØˆIð ”1—5‘5Š=Ø—‘× Ñ ¤§¡¨Ó3ˆAØ‰}Ø�ô ˜$¤×%Ñ%Øà×ÑÓ!‰ˆð ×!Ñ!Ó#‰ˆØ�<�<˜BŸMŸM®dØ�}�}Ø—z‘z !¨¡d¡)¨YÓ7Ð7Ø—:‘:˜d Q r¡T™l¨IÓ6Ð6à�N‰NÓˆØ�I‰I×Ñ˜aÓ#ˆØ‰9Øà�H‰H×Ñ˜aÓ ×(Ñ(¨Ó.ˆØ‰9Ü—<’< ¨IÓ6Ð6Øˆr,   c                óò  ^2• SSK JnJn  SSKJn  SSKJn  SSKJn	  U R                  [        R                  L aÑ  U R                  R                  XUS9n
U
R                  (       a  SU
-   $ U" U
R                  5       US5      nU[        R                  L a  U" X-  U5      $ U[        R                   L a  U $ X«-
  nU" U5      =pÞ[#        SU5       H  nXìU-  -  nUR                  XUS9nXÞ-  nM      XØ" XÂ-  U5      -  nSSKJn  U" US	S
S9$ SSKJn  SSKJn  U" U S	S9R/                  5       n U R1                  5       u  nnUR2                  " U6 (       a
  [5        5       eUR3                  U5      (       a  U" UU" U5      -  5      R7                  XX4S9$ UbZ  UR3                  U5      (       aD  SSKJn  [=        SUU/S9u  nnUR?                  U" UUU-  -  5      U" U5      UU-  -   5      nUU-  n UR                  5       n SSK J!n  UR3                  U[        RD                  5      (       a  Ub
  [G        5       eURI                  U5      u  nnUR3                  U5      (       a  SSK)J*n  U" U5      RW                  5       nURX                  (       dm  URZ                  (       a  UR\                  (       dK  X R_                  XUS9:X  a8  U" UU" U5      -  5      R7                  XX4S9nUU" UU" U5      -  5      :X  a  U $ U$ URa                  XS9n[c        U5      U-
  RW                  5       nUU-  nURZ                  (       d
  [K        5       eUUU-  -
  m2T2R3                  [d        5      (       a  U	" U5      m2T2Rf                  (       a  U" UUU-  -  U5      $ URX                  (       a  UU-  nUU :w  a  UU" X-  U5      -  nU$ S n U24S jn! URI                  XS9u  nn"URh                  (       a:  U"[        Rj                  :X  a&  UR?                  S S 5      nURI                  XS9u  nn"U"Rl                  (       dŒ  URo                  5       nURX                  (       a  UU-  $ URI                  XS9u  nn"U"Rl                  (       dC  UU-
  U-  Rq                  5       nURI                  XS9u  nn"U"Rl                  (       d
  [K        5       eSSK9J:n#  UR7                  UU#" T25      X4S9R                  5       n$0 n%[v        Rx                  " U$5       H4  nU " Xá5      u  n&n'U%R{                  U'[        Rj                  5      U&-   U%U''   M6     [        R|                  n([        Rj                  [        R|                  0n)U%n*SSK?J@n+JAn,  U(U"-  T2-
  Rf                  (       a|  U," UU(5      U+" U(5      -  n-U* H/  nU)R{                  U[        Rj                  5      U-U*U   -  -   U)U'   M1     U!" U*U%5      n*U([        R|                  -  n(U(U"-  T2-
  Rf                  (       a  M|  SSKBJCn.  URˆ                  (       d·  URX                  (       a¦  URf                  (       a•  UU-
  R‹                  X5      n/U." U/5      Rf                  (       a  U " UU-  SS U-  -  -  U5      u  n0n1O`U." U/5      RX                  (       a*  U " U" UU" U5      -  5      Ra                  XUS9U5      u  n0n1OU " UU-  U5      u  n0n1OU " UU-  U5      u  n0n1[        Rj                  nU) H  n'U'U1-   nUU)U'   U0-  UU-  -  -  nM     URˆ                  (       a7  URl                  (       a&  UU"-  U-
  RŒ                  (       a  U[c        U 5      :X  d   UU" X-  U5      -  nU$ U$ ! [F        [J        [4        4 a~    UR7                  U[M        SU5      X4S9R                  5       nUR3                  [        RN                  [        RP                  5      (       a
  [K        5       eURI                  U5      u  nn GN¶f = f! [F        [J        4 a2    U" UUT2-  -  US5      S:X  a  UU-  UUU-  -  U-  -   s $ [K        5       ef = f! [J         a"    U" UU" U5      -  5      R7                  XX4S9s $ f = f)!Nr   r–   )Úlimit)ÚOrder©Úsympify)rœ   Úlogxr   )ÚpowsimpTr4   )r‚  Úcombine)Ú	powdenest)Ú_illegal)rQ  )rœ   rö  Úcdir)ÚWildzc, ex)rs   Úexclude)Ú	polygammar…   )Ú
logcombine©rö  rû  ©rö  c                óV  • [         R                  [         R                  p2[        R                  " U 5       HJ  nUR                  U5      (       a-  UR                  5       u  pSXQ:w  a   U R                  U5      s  $ MF  X$-  nML     X#4$ ! [         a    U [         R                  4s s  $ f = fr%   )	r
   rS   rU   ræ   r†  r¾  r�   Úleadtermr  )r  rT  rç   r4   Úfactorr/   s         r)   Ú	coeff_expÚ$Pow._eval_nseries.<locals>.coeff_exp  s‘   € ÜŸ™¤§¡�3ÜŸ-š-¨Ö-�Ø—:‘:˜a—=‘=Ø &× 2Ñ 2Ó 4‘I�DØ“yð0Ø#'§=¡=°Ó#3Ò3ñ !ð ‘O’Eñ .ð �:Ðøô	  *ó 0Ø#'¬¯© <Ô/ð0ús   Á'BÂB(Â'B(c                ó¤   >• 0 n[        X5       H=  u  p4X4-   nUT:  d  M  UR                  U[        R                  5      X   X   -  -   X%'   M?     U$ r%   )r   r]  r
   rU   )Úd1Úd2ÚresÚe1Úe2rx   Úmaxpows         €r)   ÚmulÚPow._eval_nseries.<locals>.mul"  sP   ø€ ØˆCÜ! "ž/‘�Ø‘W�Ø˜•;Ø!Ÿg™g b¬!¯&©&Ó1°B±F¸2¹6±MÑA�C“Gñ *ð ˆJr,   c                ó   • U R                   $ r%   )Úis_FloatrS  s    r)   rU  Ú#Pow._eval_nseries.<locals>.<lambda>6  s   €  A§J¢Jr,   c                ó   • [        U 5      $ r%   )ré   rS  s    r)   rU  r  6  s   € ¼(À1¼+r,   )Úceiling)Ú	factorialÚff©rI   r?   éþÿÿÿ)Grg   r4   rF   Úsympy.series.limitsrò  Úsympy.series.orderró  Úsympy.core.sympifyrõ  r/   r
   rX   Únseriesr‡  ÚremoveOr×   rR   ÚrangeÚsympy.simplify.powsimpr÷  rù  Únumbersrú  Útrigsimpr�   r¾  r   Ú_eval_nseriesÚsymbolrü  rž  ÚreplaceÚ'sympy.functions.special.gamma_functionsrþ  Ú
EulerGammar  r  ÚNotImplementedErrorr[   rQ   rP   Úsympy.simplify.simplifyrÿ  ÚcancelrÍ   r_   rË   Ú_eval_as_leading_termÚas_leading_termr   r0  rª   r  rU   rµ   Úsimplifyr¢  r©   r  r3  r†  r]  rS   Ú(sympy.functions.combinatorial.factorialsr  r  rm   rI   r]   Údirrä  )3r(   rT  rœ   rö  rû  r4   rF   rò  ró  rõ  Úe_seriesÚe0r­  Ú
exp_seriesr  rñ   r÷  rù  rú  rt   ru   rü  rw   rx   rþ  Ú_r¼   rÿ  r
  rÿ   r�  r¦  r  r  r�   r  ÚgpolyÚgtermsÚco1r  r�  r   Útkr  r  rç   rI   ÚndirÚincoÚinexr  s3                                                     @r)   r"  ÚPow._eval_nseries¶  sl  ø€ ÷ 	DÝ-Ý,Ý.Ø�9‰9œŸ™ÒØ—x‘x×'Ñ'¨°TÐ'Ð:ˆHØ× × Ø˜8‘|Ð#Ù�x×'Ñ'Ó)¨1¨aÓ0ˆBØ”Q×'Ñ'Ò'Ù˜Q™T 1“~Ð%Ø”Q—Z‘ZÒØ�Ø‘ˆAÙ # B£Ð'ˆJä˜1˜a–[�Ø˜!™‘�Ø—|‘| A°�|Ð6�ØÑ"’
ñ !ð ˜% ¡ a›.Ñ(ˆJÝ6Ù˜:¨D¸%Ñ@Ð@Ý4Ý%Ù˜ TÑ*×3Ñ3Ó5ˆØ×ÑÓ!‰ˆˆ1à�5Š5�(ÖÜ“+Ðà�5‰5��8‰8Ù�q™˜Q›‘x“=×.Ñ.¨q¸DÐ.ÐLÐLàÑ §¡ c§
¡
Ý$Ü˜G¨¸°sÑ;‰EˆAˆrØ—	‘	™#˜a  2¡™g›,©¨A«°°D±Ñ(8Ó9ˆAØ�a‘4ˆDà�I‰I‹Kˆð		!ÝIØ�u‰u�Y¤§¡×-Ñ-°$Ñ2BÜ “lÐ"Ø—:‘:˜a“=‰DˆAˆqð �5‰5��:‰:Ý:Ù˜1“×$Ñ$Ó&ˆAà—	—	˜QŸ[Ÿ[¨Q¯Y¯YØ×1Ñ1°!ÀTÐ1ÐJÓJÙ˜!™C ›F™(“m×1Ñ1°!¸tÐ1ÐO�Ø™#˜a¡ A£™h›-Ó'Ø�KØ�
à×Ñ˜aÐÐ+ˆÜ�a‹[˜1‰_×$Ñ$Ó&ˆØˆa‰CˆØ�{�{Ü%Ó'Ð'Ø�Q�q‘S‘ˆØ�:‰:”f×ÑÙ˜Q“ZˆFà××Ù˜˜Q˜q™S™ 1Ó%Ð%à�9�9Ø�1‘ˆAØ�D‹yØ‘U˜1™4 “^Ñ#�ØˆHò	õ	ð	,Ø—:‘:˜a�:Ð+‰DˆAˆqð �:�:˜!œqŸv™v›+ð —	‘	Ñ.Ñ0EÓFˆAØ—:‘:˜a�:Ð+‰DˆAˆqØ�}�}Ø—
‘
“ˆAØ�y�yØ˜!‘t�Ø—:‘:˜a�:Ð+‰DˆAˆqØ—=—=Ø˜!‘e˜Q‘Y×&Ñ&Ó(�Ø—z‘z !�zÐ/‘��1Ø—}—}Ü-Ó/Ð/å?Ø—‘ ¡W¨V£_¸4�ÐK×SÑSÓUˆØˆä—M’M %Ö(ˆDÙ Ó(‰GˆC�ØŸ™ B¬¯©Ó/°#Ñ5ˆF�2‹Jñ )ô �E‰EˆÜ—‘œŸ™�ˆØˆçJà�‰s�V‰|×(×(Ù�q˜!“H™Y q›\Ñ)ˆEÛ�Ø!ŸI™I b¬!¯&©&Ó1°E¸"¸R¹&±LÑ@��b“	ñ á�R˜“ˆBØ”—‘‰JˆAð �‰s�V‰|×(×(Ñ(õ 	<à�|�| §	§	¨a¯m¯mØ˜‘E—;‘;˜qÓ'ˆDÙ�$‹x×#×#Ù& q¨!¡t¨R°2°a±4©LÑ'8¸!Ó<‘
�‘dÙ�D“×!×!Ù&¡s¨1©S°«V©8£}×'DÑ'DÀQÐX\Ð'DÐ']Ð_`Óa‘
�‘dá& q¨!¡t¨QÓ/‘
�‘dá" 1 a¡4¨Ó+‰JˆD�$Ü�f‰fˆãˆBØ�d‘ˆBØ�5˜‘9˜T‘> ! b¡'Ñ)Ñ)ŠCñ ð —— §§°A°a±C¸!±G×3K×3KØ”x “~Ó%ðQØ‘u˜Q™T 1“~Ñ%�ð ˆ
ˆsˆ
øô Ô/´Ð;ó 	!Ø—‘ ¤S¨¨A£Y°T�ÐE×MÑMÓOˆAØ�u‰u”Q—U‘UœA×-Ñ-×.Ñ.Ü)Ó+Ð+Ø—:‘:˜a“=‰DˆA‹qð		!ûôv Ô/Ð0ó 	,Ù�Q�q˜&‘y‘[ ! QÓ'¨1Ó,à˜!‘t˜a  1¡™f Q™h‘Ò&ä)Ó+Ð+ð	,ûôD 'ó QÙ˜1™S ›V™8“}×2Ñ2°1ÀÐ2ÐPÒPðQús8   Ç?A]/ Ï` Ýa
 Ý/B`à`à5aà<aá
)a6á5a6c                óÌ  • SSK JnJn  U R                  nU R                  nU R                  [        R
                  L av  UR                  XS9nUR                  US5      n	U	[        R                  L a  UR                  US5      n	U	R                  SL a  [        R
                  U	-  $ [        SU -  5      eUR                  U5      (       a   U" Xe" U5      -  5      n
U
R                  XUS9$ SSKJn   UR                  XUS9nUR                  (       d±  UR                   (       a   UR                  U5      (       dŠ  X|-
  R#                  X5      nU" U5      R                   (       a  U R%                  XÆ5      SS	U-  -  -  $ U" U5      R&                  (       a/  U" U5      R)                  XUS9nUR                  SL a
  U" Xn-  5      $ U R%                  XÆ5      $ ! [         a    U s $ f = f)
Nr   r–   r  FzCannot expand %s around 0r   r  r?   r  )rg   r4   rF   r/   r
   rX   r+  r+  rQ   rò  rf   r   r¾  rm   rI   r]   rª   r.  rÝ   rÍ   r*  )r(   rT  rö  rû  r4   rF   ru   rt   rv   Úarg0ÚltrI   rÿ   r7  Úlog_leadterms                  r)   r*  ÚPow._eval_as_leading_termr  sœ  € ßCØ�H‰HˆØ�I‰IˆØ�9‰9œŸ™ÒØ×#Ñ# AÐ#Ð1ˆCØ—8‘8˜A˜q“>ˆDØ”q—u‘uŠ}Ø—y‘y  A“�Ø×Ñ 5Ò(Ü—v‘v˜t‘|Ð#ÜÐ7¸4Ñ@ÓAÐAØ�U‰U�1�X‰XÙ�Q˜˜Q›‘Z“ˆBØ×%Ñ% a¸Ð%Ð>Ð>å?ðØ×%Ñ% a¸Ð%Ð>�ð —<—< A§M§M¸!¿%¹%À¿(¹(Ø™—{‘{ 1Ó+�Ù�d“8×'×'ð  Ÿ9™9 Q›?¨b°B°q±D©\Ñ9Ð9Ù˜“X×%×%Ù#& q£6×#?Ñ#?ÀÐSWÐ#?Ð#X�LØ#×/Ñ/°5Ò8Ù" 1¡>Ó2Ð2Ø—9‘9˜Q“?Ð"øô ó Ø’ðús   Ã1G ÇG#Ç"G#c                óX   • SSK Jn  U" U R                  U5      U R                  X!5      -  $ )Nr   )Úbinomial)r-  rA  r4   rÝ   )r(   rœ   rT  Úprevious_termsrA  s        r)   Ú_taylor_termÚPow._taylor_term”  s#   € åEÙ˜Ÿ™ !Ó$ t§y¡y°£Ñ6Ð6r,   c                ó&  >• U R                   [        R                  La  [        TU ]  " X/UQ76 $ US:  a  [        R
                  $ US:X  a  [        R                  $ SSKJn  U" U5      nU(       a  US   nUb  XR-  U-  $ SSKJ	n  X!-  U" U5      -  $ )Nr   r   rô  r?   )r  )
r/   r
   rX   ÚsuperÚtaylor_termrU   rS   rõ  r-  r  )r(   rœ   rT  rB  rõ  rê   r  rW   s          €r)   rG  ÚPow.taylor_term™  s†   ø€ Ø�9‰9œAŸF™FÒ"Ü‘7Ò& qÐ=¨nÒ=Ð=Øˆq‹5Ü—6‘6ˆMØ�‹6Ü—5‘5ˆLÝ$Ù�A‹JˆÞØ˜rÑ"ˆAØ‰}Ø‘u˜q‘yÐ ÝFØ‰t‘I˜a“LÑ Ð r,   c                ó"  • U R                   [        R                  L ar  SSKJn  U" [        R
                  U R                  -  [        R                  S-  -   5      [        R
                  U" [        R
                  U R                  -  5      -  -
  $ g )Nr   )r™  r…   )r/   r
   rX   r¡  r™  rn   r4   ro   )r(   r/   r4   r`  r™  s        r)   Ú_eval_rewrite_as_sinÚPow._eval_rewrite_as_sin©  se   € Ø�9‰9œŸ™ÒÝDÙ”q—‘ t§x¡xÑ/´!·$±$°q±&Ñ8Ó9¼A¿O¹OÉCÔPQ×P_ÑP_Ð`d×`hÑ`hÑPhÓLiÑ<iÑiÐið r,   c                ó"  • U R                   [        R                  L ar  SSKJn  U" [        R
                  U R                  -  5      [        R
                  U" [        R
                  U R                  -  [        R                  S-  -   5      -  -   $ g )Nr   )r˜  r…   )r/   r
   rX   r¡  r˜  rn   r4   ro   )r(   r/   r4   r`  r˜  s        r)   Ú_eval_rewrite_as_cosÚPow._eval_rewrite_as_cos®  sg   € Ø�9‰9œŸ™ÒÝDÙ”q—‘ t§x¡xÑ/Ó0´1·?±?Á3ÄqÇÁÐW[×W_ÑW_ÑG_Ôbc×bfÑbfÐghÑbhÑGhÓCiÑ3iÑiÐið r,   c                ó¬   • U R                   [        R                  L a7  SSKJn  SU" U R
                  S-  5      -   SU" U R
                  S-  5      -
  -  $ g )Nr   )Útanhr   r…   )r/   r
   rX   Ú%sympy.functions.elementary.hyperbolicrP  r4   )r(   r/   r4   r`  rP  s        r)   Ú_eval_rewrite_as_tanhÚPow._eval_rewrite_as_tanh³  sI   € Ø�9‰9œŸ™ÒÝBØ™˜TŸX™X a™ZÓ(Ñ(¨1©t°D·H±H¸Q±JÓ/?Ñ+?Ñ@Ð@ð r,   c                óÄ  • SSK JnJn  U[        R                  La  g UR
                  (       a³  UR                  [        R                  [        R                  -  5      nU(       a{  UR                  (       ai  U" [        R                  U-  5      U" [        R                  U-  5      p‡[        Xu5      (       d'  [        X„5      (       d  U[        R                  U-  -   $ g g g g g )Nr   )r™  r˜  )r¡  r™  r˜  r
   rX   r`   rç   ro   rn   r_   rL   )	r(   r/   r4   rà  r™  r˜  rç   ÚcosineÚsines	            r)   Ú_eval_rewrite_as_sqrtÚPow._eval_rewrite_as_sqrt¸  sœ   € ßEØ”q—v‘vÒØØ�:�:Ø—I‘IœaŸd™d¤Q§_¡_Ñ4Ó5ˆEÞ˜ŸŸÙ"¤1§4¡4¨¡:›±´A·D±D¸±J³˜Ü! &×.Ñ.´zÀ4×7MÑ7MØ!¤A§O¡O°DÑ$8Ñ8Ð8ð 8NÐ.ð )ˆuð r,   c           
     ó¼  • U R                  5       u  p4[        UR                  XS96 nUR                  XS9u  pVUR                  (       aÎ  UR	                  5       u  pxUR                  (       a«  U[
        R                  :w  a—  XW-  n	U R                  X95      n
[
        R                  nU
R                  (       d3  [        U	R                  U	R                  5      u  pËU R                  X<5      n
X R                  U[        XXXµ-  U	R                  -  -   5      5      4$ [        XV5      nUR                  (       a‰  UR                  (       ax  UR                  XS9u  pxU R                  Xt5      R                  5       u  p­UR                  5       u  pÞU[
        R                  L d  Xä:X  a  X R                  [        XØ5      U5      4$ [
        R                  U R                  X45      4$ )aî  Return the tuple (R, self/R) where R is the positive Rational
extracted from self.

Examples
========

>>> from sympy import sqrt
>>> sqrt(4 + 4*sqrt(2)).as_content_primitive()
(2, sqrt(1 + sqrt(2)))
>>> sqrt(3 + 3*sqrt(2)).as_content_primitive()
(1, sqrt(3)*sqrt(1 + sqrt(2)))

>>> from sympy import expand_power_base, powsimp, Mul
>>> from sympy.abc import x, y

>>> ((2*x + 2)**2).as_content_primitive()
(4, (x + 1)**2)
>>> (4**((1 + y)/2)).as_content_primitive()
(2, 4**(y/2))
>>> (3**((1 + y)/2)).as_content_primitive()
(1, 3**((y + 1)/2))
>>> (3**((5 + y)/2)).as_content_primitive()
(9, 3**((y + 1)/2))
>>> eq = 3**(2 + 2*x)
>>> powsimp(eq) == eq
True
>>> eq.as_content_primitive()
(9, 3**(2*x))
>>> powsimp(Mul(*_))
3**(2*x + 2)

>>> eq = (2 + 2*x)**y
>>> s = expand_power_base(eq); s.is_Mul, s
(False, (2*x + 2)**y)
>>> eq.as_content_primitive()
(1, (2*(x + 1))**y)
>>> s = expand_power_base(_[1]); s.is_Mul, s
(True, 2**y*(x + 1)**y)

See docstring of Expr.as_content_primitive for more examples.
)r‹  Úclear)r�   Ú_keep_coeffÚas_content_primitiverä   rå   r
   rU   rÝ   r  rê   r™   r`   rk   rS   )r(   r‹  rZ  rt   ru   ÚceÚpeÚhr­  Úcehrw   r¦  Úicehr¼   Úmes                  r)   r\  ÚPow.as_content_primitiveÃ  sl  € ðV ×ÑÓ!‰ˆÜ˜×/Ñ/¸Ð/ÐMÐNˆØ×'Ñ'°Ð'ÐE‰ˆØ�=�=ð —?‘?Ó$‰DˆAØ�}�} ¤a§f¡f£Ø‘d�Ø—I‘I˜aÓ%�Ü—F‘F�Ø—}—}Ü$ S§U¡U¨C¯E©EÓ2‘G�DØŸ	™	 !Ó*�AØŸ)™) A¤{°2¸1¹4ÀÇÁ¹:±~Ó'FÓGÐGÐGÜ˜Óˆà�=�=˜QŸXŸXØ×)Ñ)°'Ð)ÐG‰DˆAØ—9‘9˜Q“?×/Ñ/Ó1‰DˆAØ—M‘M“O‰EˆAØ”A—E‘EŠz˜R›Wð Ÿ)™)¤K°Ó$5°qÓ9Ð9Ð9Ü�u‰u�d—i‘i “oÐ%Ð%r,   c                óŽ  • U nUR                  SS5      (       a  UR                  5       nUR                  5       u  pEUR                  S5      nU(       a  XE-  nXs:w  a  UR	                  5       $ UR                  " U6 nUR                  " U6 n	U	(       a   U(       a  gUR                  S5      nUSL a  gOU	c  g UR                  S5      $ )Nr,  Tr   F)r]  r,  r�   ÚequalsÚis_constant)
r(   ÚwrtÚflagsr¤  rt   ru   Úbzr5  ÚeconÚbcons
             r)   rf  ÚPow.is_constant  s³   € ØˆØ�9‰9�Z ×&Ñ&Ø—=‘=“?ˆDØ×ÑÓ!‰ˆØ�X‰X�a‹[ˆÞØ‘$ˆCØ‹{Ø—‘Ó(Ð(Ø�}Š}˜cÐ"ˆØ�}Š}˜cÐ"ˆÞÞØØ—‘˜!“ˆBØ�UŠ{Øð à‰\Øà�x‰x˜‹{Ðr,   c                ó¼   • U R                   u  p4UR                  U5      (       a8  UR                  U5      (       d!  UR                  XU-   5      nX5U-
  -  S-
  U -  $ g g r3   )r*   r¾  r+  )r(   rœ   Ústeprt   ru   Únew_es         r)   Ú_eval_difference_deltaÚPow._eval_difference_delta+  sU   € Ø�y‰y‰ˆØ�5‰5��8‰8˜AŸE™E !ŸH™HØ—F‘F˜1 $™hÓ'ˆEØ ™	‘N QÑ&¨$Ñ.Ð.ð %ˆ8r,   r&   )Úreturnztuple[Expr, Expr])rr  r   r%   )rt   úExpr | complexru   rs  rr  r   )r   )Trh  )r   )FT)DrO   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r4  Ú	__slots__r   Úpropertyr*   r/   r4   r7   r	   rq   r�   Úclassmethodr‡   r’   rp   r¿   rÂ   rÈ   rÏ   rÆ   rÙ   rß   rò   rü   r  r  rû   r  r  r  r=  r�   rD  rH  rL  rb  rf  r…  rˆ  rµ  r¸  rÀ  rÆ  rÍ  rÐ  rÓ  rÛ  rá  r›   rê  r"  r*  rC  rG  rJ  rM  rR  rW  r\  rf  rp  Ú__static_attributes__Ú__classcell__)rW   s   @r)   r    r       s¸  ø† ñWðp €Fà#€Iæà	ó	ó 
ð	ð óó ðð óó ðð ñ!ó ð!ð õ`ó ð`ôDð ñ"ó ð"ò#òR$òh6Bòp%òò3ò:ò2ò0ò*D$òLò/òbòò òò"òòBò8
)òò+òò(yòvxôtQ*òfKò$òòò6%,òNò#-òJòJò(!4ôF ôDzòx #ðD ñ7ó ð7õ!ò jò
jò
Aò
	9ôO&òb÷./ð /r,   r    Úpower)r3  )r¹   ré   )ræ   r[  )r0  rŸ  rž  N);Ú
__future__r   Útypingr   r   Ú	itertoolsr   rõ  r   Úcacher	   Ú	singletonr
   r¤  r   r£   r   r[  r   r   r   r   r   Úlogicr   r   r   r   Ú
parametersr   rK   r   r   r7   r   r   Úsympy.utilities.iterablesr   Úsympy.utilities.exceptionsr   Úsympy.utilities.miscr   Úsympy.multipledispatchr   r    r}  ÚaddÚobjectr3  r   r¹   ré   r  ræ   r[  r#  r0  rŸ  rž  r&   r,   r)   Ú<module>r‹     s   ðÝ "ß *Ý å Ý Ý Ý Ý %÷%õ %ç =Ó =Ý )ß $ß +Ý *Ý @Ý 'Ý -ôY/ˆ$ô Y/ñv8 	�7Ó€Ø ‡	�	ˆ6�6Ð
˜CÔ  å ß &ß !ß *Ò *r,   