Ë
    7^(h ã                  ó†  — d dl mZ d dlmZmZ d dlmZ ddlmZ ddl	m
Z
 ddlmZ ddlmZ dd	lmZ dd
lmZmZmZmZmZ ddlmZmZmZmZ ddlmZ ddlmZm Z  ddl!m"Z"m#Z# d dl$m%Z% d dl&m'Z' d dl(m)Z) d dl*m+Z+  G d„ de«      Z, e+d«      Z-e-j]                  e/e/fe,«       ddl.m0Z0 ddl1m2Z2m3Z3 ddl4m5Z5m6Z6 ddl7m8Z8m9Z9m:Z: y)é    )Ú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                  óÌ  ‡ — e Zd ZdZdZdZer	ed;d„«       Zed<d„«       Z	ed<d„«       Z
ed„ «       Zed=d>d„«       Zd?d	„Zed
„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d „ Z&d!„ Z'd"„ Z(d#„ Z)d@d$„Z*d%„ Z+d&„ Z,d'„ Z-d(„ Z.d)„ Z/d*„ Z0d+„ Z1d,„ Z2d-„ Z3d.„ Z4dAd/„Z5dBd0„Z6d1„ Z7ed2„ «       Z8ˆ fd3„Z9d4„ Z:d5„ Z;d6„ Z<d7„ Z=dCd8„Z>d9„ Z?d:„ Z@ˆ xZAS )DÚPowa%  
    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                 ó   — y ©N© ©Úselfs    úN/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/core/power.pyÚargszPow.argsu   s   € àó    c                ó    — | j                   d   S )Nr   ©r)   r&   s    r(   ÚbasezPow.basey   ó   € à�y‰y˜‰|Ðr*   c                ó    — | j                   d   S ©Nr   r,   r&   s    r(   ÚexpzPow.exp}   r.   r*   c                ór   — | j                   j                  t        u r| j                  j                  S t        S r$   )r1   Úkindr   r-   r   r&   s    r(   r3   zPow.kind�   s&   € à�8‰8�=‰=œJÑ&Ø—9‘9—>‘>Ð!ä Ð r*   c                óh	  — |€t         j                  }t        |«      }t        |«      }ddlm} t        ||«      st        ||«      rt        d«      ‚||fD ]9  }t        |t        «      rŒt        dt        |«      j                  ›d�ddd¬	«       Œ; |�rÄ|t        j                  u rt        j                  S |t        j                  u rÂt        |t        j                   «      rt        j                  S t        |t        j"                  «      r*t%        |t        j                   «      rt        j&                  S t%        |t        j"                  «      r:|j(                  rt        j                  S |j(                  d
u rt        j                  S |t        j&                  u rt        j                   S |t        j                   u r|S |dk(  r|st        j                  S |j*                  j                  dk(  rJ|t        j,                  k(  r¹ddlm}  |t3        ||j4                  «      t3        ||j6                  «      «      S |j8                  r|j:                  s|j<                  r^|j>                  r|j@                  s|jB                  r:|jE                  «       r*|jF                  r| }n|jH                  rt3        | |«       S t        j                  ||fv rt        j                  S |t        j                   u r5tK        |«      jL                  rt        j                  S t        j                   S ddl'm(}	 |jR                  �s	|t        j,                  ur÷t        ||	«      sëddl*m+}
 ddl'm,} ddl-m.}  |
|d
¬«      j_                  «       \  }} ||«      \  }}t        ||«      r(|j`                  d   |k(  rt        j,                  ||z  z  S |jb                  rsddl2m3}m4}  | ||«      «      }|jB                  rQ|rO| | |
|d
¬«       «      |t        jj                  z  t        jl                  z  z   k(  rt        j,                  ||z  z  S |jo                  |«      }|�|S t        jp                  | ||«      }| js                  |«      }t        |t2        «      s|S |jt                  xr |jt                  |_:        |S )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)rC   Úim);r   Úevaluater   Ú
relationalr5   Ú
isinstanceÚ	TypeErrorr   r   ÚtypeÚ__name__r
   ÚComplexInfinityÚNaNÚInfinityr   ÚOneÚNegativeOner   ÚZeroÚ	is_finiteÚ	__class__ÚExp1Ú!sympy.calculus.accumulationboundsr=   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.exponentialr>   Úis_AtomÚ	exprtoolsr?   rA   Úsympy.simplify.radsimprB   Úas_coeff_Mulr)   Úis_AddÚ$sympy.functions.elementary.complexesrC   rD   ÚImaginaryUnitÚPiÚ_eval_powerÚ__new__Ú _exec_constructor_postprocessorsr"   )ÚclsÚbÚerE   r-   r1   r5   Úargr=   r>   r?   rA   rB   ÚcÚexÚnumÚdenrC   rD   ÚsÚobjs                        r(   rl   zPow.__new__ˆ   s™  € àÐÜ(×1Ñ1ˆHä˜‹{ˆÜ�q‹kˆõ 	+Ü�d˜JÔ'¬:°c¸:Ô+FÜÐ>Ó?Ð?ð ˜#�;ò 	ˆCÜ˜c¤4Õ(Ü)ðä˜s›)×,Ñ,Ð/ð 0ðð .3Ø/IØ ö
ð	ò Ø”a×'Ñ'Ñ'Ü—u‘u�Ø”a—j‘jÑ Ü˜œqŸu™uÔ%ÜŸ:™:Ð%Ü˜œqŸ}™}Ô-´%¸¼a¿e¹eÔ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ÀSÇWÁWÓ;MÓNÐNð —-’- C§N¢N°c·n²nØŸ>š>¨d¯kªk¸T¿^º^Ø×7Ñ7Ô9Ø—;’;Ø ˜5‘DØ—Z’ZÜ   s›OÐ+Ð+Ü�u‰u˜˜s˜Ñ#Ü—u‘u�ØœŸ™‘Ü�s“8×'Ò'ÜŸ5™5�LÜ—u‘u�õ MØ—{“{ t´1·6±6Ñ'9Ä*ÈTÐS\ÔB]Ý7ÝJÝ?Ù(¨°5Ô9×FÑFÓH‘E�A�rÙ'¨›|‘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¨c©E¡?Ð2à×&Ñ& sÓ+�Ø�?Ø�JÜ�l‰l˜3  cÓ*ˆØ×2Ñ2°3Ó7ˆÜ˜#œsÔ#ØˆJØ"×1Ñ1ÒH°c×6HÑ6HˆÔØˆ
r*   c                óN   — | j                   t        j                  k(  rddlm} |S y ©Nr   r@   )r-   r
   rS   rb   rA   )r'   ÚargindexrA   s      r(   ÚinversezPow.inverseë   s   € Ø�9‰9œŸ™ÒÝBØˆJØr*   c                ó    — dd| j                   fS )Né   é   )rJ   ©rn   s    r(   Ú	class_keyzPow.class_keyñ   s   € à�!�S—\‘\Ð!Ð!r*   c                ó$  — ddl m}m} | j                  «       \  }} ||j	                  |«      |«      r]|j                  «       rL ||j                  |«      |«      rt        | |«      S  ||j                  |«      |«      rt        | |«       S y y y )Nr   )ÚaskÚQ)	Úsympy.assumptions.askr‚   rƒ   Úas_base_expÚintegerr]   Úevenr    Úodd)r'   Úassumptionsr‚   rƒ   ro   rp   s         r(   Ú_eval_refinezPow._eval_refineõ   s„   € ß0Ø×ÑÓ!‰ˆˆ1Ùˆq�y‰y˜‹|˜[Ô)¨a×.HÑ.HÔ.JÙ�1—6‘6˜!“9˜kÔ*Ü˜A˜2˜q“zÐ!Ù�Q—U‘U˜1“X˜{Ô+Ü˜Q˜B ›
�{Ð"ð ,ð /KÐ)r*   c                ó¶  — | j                  «       \  }}|t        j                  u r||z  |z  S d }|j                  rd}�nu|j                  rd}�ne|j
                  ��Xddlm}m}m	}m
} ddlm}	m}
 ddlm} d„ }d„ }|j
                  �r•|dk(  rU ||«      rž|j                   d	u r$t        j"                  |z  t%        | ||z  «      z  S |j                   d
u r^t%        || «      S |j&                  rE|j
                  rt)        |«      }|j*                  r"t)         ||«      «      t        j,                  z  }t)        |«      dk  d	k(  s|dk(  rd}�nf|j.                  rd}�nV ||«      j.                  rt)        |«      dk  d	k(  rd}�n/ ||«      �r& |	dt        j0                  z  t        j,                  z  |z   |t        j2                  | ||«      z  dt        j0                  z  z  z
  «      z  «      }|j
                  r | ||«      |z
  «      dk(  r	 ||«      }n™d }n–	  |	dt        j,                  z  t        j0                  z  |z   |t        j2                   || |
|«      z  «      dz  t        j0                  z  z
  «      z  «      }|j
                  r | ||«      |z
  «      dk(  r	 ||«      }nd }|�|t%        |||z  «      z  S y # t4        $ r d }Y Œ"w xY w)Nr   r   )rq   rD   ÚrerC   ©r1   rA   )Úfloorc                ór   — t        | dd«      dk(  ry| j                  «       \  }}|j                  r|dk(  ryyy)zZReturn True if the exponent has a literal 2 as the
                denominator, else None.ÚqNr~   T)ÚgetattrÚas_numer_denomrX   )rp   ÚnÚds      r(   Ú_halfzPow._eval_power.<locals>._half  sA   € ô ˜1˜c 4Ó(¨AÒ-ØØ×'Ñ'Ó)‘��1Ø—<’< A¨¢FØð %+�<r*   c                óf   — 	 | j                  dd¬«      }|j                  r|S y# t        $ r Y yw xY w)zXReturn ``e`` evaluated to a Number with 2 significant
                digits, else None.r~   T©ÚstrictN)Úevalfr\   r   )rp   Úrvs     r(   Ú_n2zPow._eval_power.<locals>._n2  s<   € ðØŸ™ ¨4˜Ó0�BØ—|’|Ø!˜	ð $øä)ò Ùðús   ‚ $ ¤	0¯0r:   TFr~   )r…   r
   rL   rX   Úis_polarÚis_extended_realrh   rq   rD   rŒ   rC   rb   r1   rA   Ú#sympy.functions.elementary.integersrŽ   Úis_negativerO   r    r^   r`   Úis_imaginaryri   Úis_extended_nonnegativerj   ÚHalfr   )r'   Úexptro   rp   rv   rq   rD   rŒ   rC   r1   rA   rŽ   r•   r›   s                 r(   rk   zPow._eval_powerþ   s‰  € Ø×ÑÓ!‰ˆˆ1Ø”—‘‰:Ø�q‘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¨4¨%£=Ð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˜˜A˜d™F“^Ñ#Ð#ð øô *ò Ø’Aðús   È BK
 Ë
KËKc                ó¬  — | j                   | j                  }}|j                  �r¯|j                  �r¡|j                  r||z  dk(  rt        j
                  S ddlm} |j                  r¬|j                  r |j                  r”t        |«      t        |«      t        |«      }}}|j                  «       }|dk  rH||k\  rC|j                  «       dz  |k\  r-t         ||«      «      }	t        t        ||	||	z  z   |«      «      S t        t        |||«      «      S ddlm}
 t        |t         «      r6|j                  r*|j"                  r |
||«      } |
t!        ||d¬«      |«      S t        |t         «      rb|j                  rU|j"                  rHt        |«      j                  «       }|dk  r) ||«      }	|	 |
||	«      z   } |
t!        ||d¬«      |«      S y	y	y	y	y	y	)
aO  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   r6   r   )ÚModF©rE   N)r-   r1   rX   Úis_positiver
   rP   Ú%sympy.functions.combinatorial.numbersr¥   rY   ÚintÚ
bit_lengthÚIntegerÚpowÚmodr§   rG   r    rZ   )r'   r�   r-   r1   r¥   ro   rp   ÚmÚmbÚphir§   r¬   s               r(   Ú	_eval_ModzPow._eval_ModR  sƒ  € ð0 —I‘I˜tŸx™xˆcˆà�>‹>˜cŸo›oØ�|Š|  q¡¨A¢Ü—v‘v�åEà�Š 3§>¢>°a·l²lÜ˜d›)¤S¨£X¬s°1«v�a�1�Ø—\‘\“^�Ø˜’8  R¢¨A¯L©L«N¸AÑ,=ÀÒ,BÜ™g a›j›/�CÜ"¤3 q¨#°°#±©+°qÓ#9Ó:Ð:Üœs 1 a¨›|Ó,Ð,å ä˜$¤Ô$¨¯ª¸T¿^º^Ù˜4 “|�Ùœ3˜t S°5Ô9¸1Ó=Ð=ä˜#œsÔ#¨¯ª¸3¿=º=Ü  ›V×.Ñ.Ó0�
ð  Ò#Ù! !›*�CØ¡ C¨£Ñ-�CÙœs 4¨°uÔ=¸qÓAÐAð $ð <I¨Ð#ð) .ˆ>r*   c                óŠ   — | j                   j                  r-| j                   j                  r| j                  j                  S y y r$   )r1   rX   r©   r-   r^   r&   s    r(   Ú_eval_is_evenzPow._eval_is_evenŠ  s3   € Ø�8‰8×Ò 4§8¡8×#7Ò#7Ø—9‘9×$Ñ$Ð$ð $8Ðr*   c                óP   — t         j                  | «      }|du r| j                  S |S ©NT)r    Ú_eval_is_extended_negativerQ   )r'   Úext_negs     r(   Ú_eval_is_negativezPow._eval_is_negativeŽ  s(   € Ü×0Ñ0°Ó6ˆØ�d‰?Ø—>‘>Ð!Øˆr*   c                óf  — | j                   | j                  k(  r| j                   j                  ryy | j                   j                  r| j                  j                  ryy | j                   j
                  r/| j                  j                  ry| j                  j                  ryy | j                   j                  r-| j                  j                  r| j                  j                  S y | j                   j                  r| j                  j                  ryy | j                   j                  r†| j                  j                  r7| j                  dz  }|j                  ry|j                  r|j                  du ry| j                  j                  r"ddlm}  || j                   «      j                  S y y )NTFr6   r   r@   )r-   r1   r¡   r©   Úis_realÚis_extended_negativer^   r_   Úis_zeror�   Úis_extended_nonpositiver    rX   rb   rA   )r'   r°   rA   s      r(   Ú_eval_is_extended_positivez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                ó  — | j                   t        j                  u r-| j                  j                  s| j                  j
                  ry| j                  j                  rE| j                   j                  r| j                  j                  ry| j                   j                  ryy | j                  j                  r| j                   j
                  ryy | j                  j                  r| j                   j
                  ryy | j                  j                  r| j                   j                  ryy | j                  j                  r| j                   j                  ryy | j                  j
                  r| j                   j                  ryy y ©NFT)r1   r
   r¢   r-   Ú
is_complexr�   r½   r_   rQ   r^   Úis_extended_positiver¾   r¡   r¿   r&   s    r(   r¸   z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                ó¬  — | j                   j                  r/| j                  j                  ry| j                  j                  ryy | j                   t
        j                  k(  r| j                  t
        j                  u S | j                   j                  du �r| j                   j                  r| j                  j                  ry| j                  j                  r| j                   j                  S | j                  j                  ry| j                  j                  rˆ| j                  j                  rqdt        | j                   «      z
  j                  r| j                  j                  S dt        | j                   «      z
  j                  r| j                  j                  S y y y | j                   j                  r| j                  j                  ryy y )NTFr   )r-   r¾   r1   rÄ   r¿   r
   rS   ÚNegativeInfinityrQ   rŸ   ra   Úis_nonnegativer�   r`   r½   r&   s    r(   Ú_eval_is_zeroz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                óØ  — | j                   \  }}|j                  r|j                  du r|j                  ry|j                  r8|j                  r,|t        j
                  u ry|j                  s|j                  ry|j                  rU|j                  rI|j                  s|j                  r1t        |dz
  j                  «      rt        |dz   j                  «      ry|j                  r1|j                  r% | j                  | j                   Ž }|j                  S |j                  r|j                  r|dz
  j                  ry|j                  r|j                  r|dz   j                  ryy y y )NFTr   )r)   Úis_rationalrX   r©   r
   rO   rÇ   rŸ   rQ   r   r¾   r\   ÚfuncrY   )r'   ro   rp   Úchecks       r(   Ú_eval_is_integerzPow._eval_is_integerâ  s  € Ø�y‰y‰ˆˆ1Ø�=Š=Ø�|‰|˜uÑ$¨¯ªØØ�<Š<˜AŸLšLØ”A—M‘MÑ!ØØ×Ò 1§=¢=ØØ�<Š<˜AŸMšM¨q¯{ª{¸a¿lºlÜ˜!˜a™%Ÿ™Ô)¬i¸¸Q¹¿¹Ô.HØØ�;Š;˜1Ÿ;š;Ø�D—I‘I˜tŸy™yÐ)ˆEØ×#Ñ#Ð#Ø�=Š=˜QŸ]š]°°A±×/BÒ/BØØ�=Š=˜QŸ]š]°°A±×/BÒ/BØð 0C˜]ˆ=r*   c                óÐ
  — | j                   t        j                  u rh| j                  j                  ry| j                  j
                  r;dt        j                  z  | j                  z  t        j                  z  j                  S ddl	m
}m} | j                   j                  }|€É| j                   j                  |k(  r6| j                   j                  j
                  r| j                  j
                  S | j                   j                  t        k(  r\| j                   j                   t        j                  u r6| j                   j                  j
                  r| j                  j
                  S y | j                  j                  }|€y |rÍ|rË| j                   j                  ry| j                   j                  r| j                  j                  ry| j                  j                  r| j                   j                   ry| j                  j                  r| j                  j"                  ry| j                   j$                  r| j                  j&                  ry|rY| j                  j$                  rC| j                   j(                  du r+t        | j                   | j                   «      j                  S | j                   j
                  }| j                  j
                  }|�r| j                  j                  r.| j                  j                  ry| j                  j*                  rÜy|r || j                   «      j
                  ry| j                  j,                  r]| j                  j/                  «       \  }}|r‡|j0                  r{t3        | j                   |z  | j                   |z  d¬«      j                  S | j                   t        j                   t        j                  fv r| j                  dz  j                  du ry|rÜ|rÚ| j                   t        j4                  u ry| j                  j7                  t        j                  «      }|r’| j                   j8                  rH|j8                  r<| j                   j:                  r&| j                   dz
  j:                  r|j:                  ry| || j                   «      z  t        j                  z  j                  }	|	�|	S |du r†|rƒt=        | j                  t>        «      r| j                  j@                  dk(  ryddl!m"}
  |
| j                   «      | j                  z  t        j                  z  }|jF                  r|j                  S y y y )	NTr~   r   )rA   r1   Fr¨   r   ©rq   )$r-   r
   rS   r1   r�   r    ri   rj   r^   rb   rA   rË   r    rÄ   r¡   rX   Úis_extended_nonzerorÇ   r½   Úis_Rationalr¾   r_   rg   Úas_coeff_AddrY   ÚMulrO   ÚcoeffrÊ   Ú
is_nonzerorG   ÚRationalÚprh   rq   rÃ   )r'   rA   r1   Úreal_bÚreal_eÚim_bÚim_err   ÚaÚokrq   Úis               r(   Ú_eval_is_extended_realz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Ù˜ŸšÜØŸ	™	 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                ó  — | j                   t        j                  k(  r5t        | j                  j
                  | j                  j                  g«      S t        d„ | j                  D «       «      r| j                  «       ryy y )Nc              3  ó4   K  — | ]  }|j                   –— Œ y ­wr$   )rÃ   )Ú.0rÜ   s     r(   ú	<genexpr>z'Pow._eval_is_complex.<locals>.<genexpr>B  s   è ø€ Ò/ ˆq�|�|Ñ/ùó   ‚T)
r-   r
   rS   r   r1   rÃ   r½   Úallr)   Ú_eval_is_finiter&   s    r(   Ú_eval_is_complexzPow._eval_is_complex=  s_   € à�9‰9œŸ™ÒÜ˜TŸX™X×0Ñ0°$·(±(×2OÑ2OÐPÓQÐQäÑ/ T§Y¡YÔ/Ô/°D×4HÑ4HÔ4JØð 5KÐ/r*   c                ó  — | j                   j                  du ry| j                   j                  r1| j                  j                  r| j                  j
                  }|�|S y | j                   t        j                  k(  rLd| j                  z  t        j                  t        j                  z  z  }|j                  ry|j
                  ryy | j                  j                  r%ddlm}  || j                   «      j                  }|�y| j                   j                  r‘| j                  j                  r{| j                   j                  ry| j                  j                  }|s|S | j                  j                  ryd| j                  z  j                  }|r| j                   j                   S |S | j                   j                  du rJddlm}  || j                   «      | j                  z  t        j                  z  }d|z  j
                  }	|	�|	S y y )NFr~   Tr   r@   rÏ   )r-   r"   r    r1   rX   r_   r
   rS   rj   ri   r^   rb   rA   r�   r©   rÊ   rŸ   rh   rq   )
r'   rˆ   ÚfrA   ÚimlogÚratÚhalfrq   rÞ   Úisodds
             r(   Ú_eval_is_imaginaryz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                ó  — | j                   j                  rw| j                   j                  r| j                  j                  S | j                   j
                  r| j                  j                  ry| j                  t        j                  u ryy y r·   )r1   rX   r©   r-   r_   rÇ   r
   rO   r&   s    r(   Ú_eval_is_oddzPow._eval_is_oddv  se   € Ø�8‰8×ÒØ�x‰x×#Ò#Ø—y‘y×'Ñ'Ð'Ø—‘×(Ò(¨T¯Y©Y×-=Ò-=ØØ—‘œaŸm™mÑ+Øð ,ð r*   c                ó”  — | j                   j                  rD| j                  j                  ry| j                  j                  s| j                  j
                  ry| j                  j                  }|€y | j                   j                  }|€y |r:|r7| j                   j                  st        | j                  j                  «      ryy y y rÂ   )	r1   rŸ   r-   r¾   ra   rÕ   rQ   rÇ   r   )r'   Úc1Úc2s      r(   ræ   zPow._eval_is_finite  sœ   € Ø�8‰8×ÒØ�y‰y× Ò ØØ�y‰y×$Ò$¨¯	©	×(<Ò(<ØØ�Y‰Y× Ñ ˆØˆ:ØØ�X‰X×ÑˆØˆ:ØÙ‘"Ø�x‰x×&Ò&¬)°D·I±I×4EÑ4EÔ*FØð +Gð ˆ2r*   c                ó”   — | j                   j                  r2| j                  j                  r| j                  dz
  j                  ryyyy)zM
        An integer raised to the n(>=2)-th power cannot be a prime.
        r   FN)r-   rX   r1   r©   r&   s    r(   Ú_eval_is_primezPow._eval_is_prime�  s<   € ð �9‰9×Ò D§H¡H×$7Ò$7¸T¿X¹XÈ¹\×<VÒ<VØð =WÐ$7Ðr*   c                óT  — | j                   j                  r’| j                  j                  r{| j                   dz
  j                  r| j                  dz
  j                  sE| j                   dz   j                  r/| j                  j                  r| j                  j
                  ryyyyyy)zS
        A power is composite if both base and exponent are greater than 1
        r   TN)r-   rX   r1   r©   rŸ   r^   r&   s    r(   Ú_eval_is_compositez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                ó.   — | j                   j                  S r$   )r-   rœ   r&   s    r(   Ú_eval_is_polarzPow._eval_is_polarŸ  s   € Ø�y‰y×!Ñ!Ð!r*   c                óº  — ddl m} t        | j                  |«      rg| j                  j                  ||«      }| j                  j                  ||«      }t        ||«      r|j                  |«      S | j                  ||«      S ddlm}m	} d„ }|| j                  k(  s"||k(  rz| j                  t        j                  k(  r]|j                  r2t        |t        «      r" || j                  j                  ||«      «      S || j                  j                  ||«      z  S t        || j                  «      rN| j                  |j                  k(  r5 || j                  |j                  «      }	|	j                  rt!        ||	«      S t        || j                  «      �rÅ| j                  |j                  k(  �r«| j                  j"                  du r‰| j                  j%                  t&        d¬«      }
|j                  j%                  t&        d¬«      } ||
||«      \  }}}|�r@| j                  ||«      }|� t)        |t!        |j                  |«      «      }|S |j                  }g }g }|j+                  «       }| j                  j,                  D ]‡  }|j                  ||«      }|j+                  «       }
 ||
||«      \  }}}|r(|j/                  ||z  «       |�|j/                  |«       Œ]|j0                  s|j2                  s y |j/                  |«       Œ‰ |rHt5        |Ž }|j/                  |dk7  rt!        | j                  |d¬«      n| j                  «       t)        |Ž S t        ||«      s(|j6                  rç|j                  t        j                  u rÊ| j                  j8                  r³| j                  j:                  rœ|j                  j%                  t&        d¬«      }
| j                   || j                  «      z  j%                  t&        d¬«      } ||
||«      \  }}}|r6| j                  ||«      }|� t)        |t!        |j                  |«      «      }|S y y y y y )	Nr   r<   r�   c                ó8  — | \  }}|\  }}||k(  r¤|j                   r||z  }	 t        |d¬«       d}||dfS t        |t        «      s|f}t        d„ |D «       «      sy	 t        t        |«      t        |«      «      \  }}|dk  r|dk7  r|dz  }|t        |«      z  }|dk(  rd}nt        |g|¢­Ž }d||fS y# t        $ rL |j                  «       \  }	}
|	j                  xr |
j
                  xs |	j                  xr |
j                  }Y ŒØw xY w# t        $ r Y yw xY w)	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  ó4   K  — | ]  }|j                   –— Œ y ­wr$   )rX   )râ   Úterms     r(   rã   z1Pow._eval_subs.<locals>._check.<locals>.<genexpr>Ò  s   è ø€ ÒB°4˜tŸ�ÑBùrä   )FNNr   r   )r"   r   Ú
ValueErrorr…   r©   r¼   rÇ   rG   Útuplerå   ÚdivmodrÓ   )Úct1Úct2ÚoldÚcoeff1Úterms1Úcoeff2Úterms2r®   Úcombinesro   rp   Ú	remainderÚremainder_pows                r(   Ú_checkzPow._eval_subs.<locals>._check®  sH  € ð" !‰NˆF�FØ ‰NˆF�FØ˜ÒØ×%Ò%à  ™-�CðhÜ˜s¨5Õ1Ø#'˜ð $ S¨$Ð.Ð.ô & f¬eÔ4Ø"( ˜ÜÑB¸6ÔBÔBØ0ðä)/´°v³ÄÀvÃÓ)O™˜˜YØ š7 y°A¢~Ø 1™H˜CØ%¬°«Ñ7˜Ià$¨š>Ø,0™Mä,/°	Ð,C¸FÒ,C˜Mà# S¨-Ð7Ð7ð
 %øô= &ò hØ"Ÿ™Ó0™˜˜1à#$§=¡=Ò#>°Q·Y±YÒ#gÀ!×BRÑBRÒBgÐWX×WgÑWgšðhûô4 &ò àà$ð	ús%   ¢B5 ÁAD Â5AD
Ä	D
Ä	DÄDF)Úas_Addr   r¨   )rT   r=   rG   r1   r-   ÚsubsÚ__rpow__rË   rb   rA   r
   rS   Úis_Functionr   Ú_subsr\   r    rg   Úas_independentÚSymbolrÓ   Úas_coeff_mulr)   Úappendr"   rX   ÚAddÚis_Powr�   r©   )r'   r  Únewr=   ro   rp   r1   rA   r  Úlr  r  rÝ   r®   r
  ÚresultÚoargÚnew_lÚo_alrÜ   ÚnewaÚexpos                         r(   Ú
_eval_subszPow._eval_subs¢  sœ  € ÝAä�d—h‘h Ô,Ø—	‘	—‘˜s CÓ(ˆAØ—‘—‘˜c 3Ó'ˆAÜ˜!˜[Ô)Ø—z‘z !“}Ð$Ø—9‘9˜Q “?Ð"çCò8	%ðt �$—)‘)Ò  s¢
¨t¯y©y¼A¿F¹FÒ/BØ�Š¤:¨c´8Ô#<Ù˜4Ÿ8™8Ÿ>™>¨#¨sÓ3Ó4Ð4à˜DŸH™HŸN™N¨3°Ó4Ñ4Ð4ô �c˜4Ÿ9™9Ô%¨$¯(©(°c·g±gÒ*=Ù�D—I‘I˜sŸx™xÓ(ˆAØ�{Š{Ü˜3 “{Ð"ä�c˜4Ÿ9™9Õ%¨$¯)©)°s·x±xÓ*?Ø�x‰x�‰ %Ñ'Ø—h‘h×-Ñ-¬f¸UÐ-ÓC�Ø—g‘g×,Ñ,¬V¸EÐ,ÓB�Ù)/°°S¸#Ó)>Ñ&��C˜Úà!ŸY™Y s¨CÓ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˜CÔ  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                ó¬   — | j                   \  }}|j                  r6|j                  dk(  r'|j                  dk7  rt	        |j                  «      | fS ||fS )aú  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'   ro   rp   s      r(   r…   zPow.as_base_exp#  sJ   € ð. �y‰y‰ˆˆ1Ø�=Š=˜QŸS™S AšX¨!¯#©#°ª(Ü˜1Ÿ3™3“< ! Ð#Ð#Ø�!ˆtˆr*   c                ó0  — ddl m} | j                  j                  | j                  j
                  }}|r || j                  «      | j                  z  S |r| j                   || j                  «      z  S |du r|du rt        | «      }|| k7  r ||«      S y y y )Nr   )ÚadjointF)rh   r"  r1   rX   r-   r©   r   )r'   r"  rÞ   r×   Úexpandeds        r(   Ú_eval_adjointz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Ø˜4ÒÙ˜xÓ(Ð(ð  ð %ˆ:r*   c                óH  — ddl m} | j                  j                  | j                  j
                  }}|r || j                  «      | j                  z  S |r| j                   || j                  «      z  S |du r|du rt        | «      }|| k7  r ||«      S | j                  r| S y )Nr   )Ú	conjugateF)rh   r&  r1   rX   r-   r©   r   r�   )r'   rr   rÞ   r×   r#  s        r(   Ú_eval_conjugatezPow._eval_conjugateK  s’   € ÝGØ�x‰x×"Ñ" D§I¡I×$9Ñ$9ˆ1ˆÙÙ�T—Y‘Y“< §¡Ñ)Ð)ÙØ—9‘9™a §¡›kÑ)Ð)Ø�‰:˜!˜u™*Ü% dÓ+ˆHØ˜4ÒÙ˜“{Ð"Ø× Ò ØˆKð !r*   c                óþ  — ddl m} | j                  t        j                  k(  r8| j                  t        j                  | j                  j                  «       «      S | j                  j                  | j                  j                  xs | j                  j                  }}|r| j                  | j                  z  S |r || j                  «      | j                  z  S |du r|du rt        | «      }|| k7  r ||«      S y y y )Nr   )Ú	transposeF)rh   r)  r-   r
   rS   rË   r1   rX   rÃ   ra   r   )r'   r)  rÞ   r×   r#  s        r(   Ú_eval_transposez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Ø˜4ÒÙ  Ó*Ð*ð  ð %ˆ:r*   c           	     óÔ  — | j                   }| j                  }|t        j                  k(  rQddlm} t        ||«      r?|j                  r3ddlm	}  || j                  ||j                  «      g|j                  ¢­Ž S |j                  rÕ|j                  dd«      s|j                  du s|j!                  «       r¥|j                  r0t#        |j$                  D �cg c]  }| j                  ||«      ‘Œ c}Ž S |j                  r]t'        |j$                  d„ d¬«      \  }}|r?t#        |D �cg c]  }| j                  ||«      ‘Œ c}Ž |t)        j*                  |«      z  z  S | S c c}w c c}w )	za**(n + m) -> a**n*a**mr   )ÚSum)ÚProductÚforceFc                ó   — | j                   S r$   r!   ©Úxs    r(   ú<lambda>z,Pow._eval_expand_power_exp.<locals>.<lambda>u  s   € ¨q×/?Ñ/?€ r*   T©Úbinary)r-   r1   r
   rS   Úsympy.concrete.summationsr,  rG   r"   Úsympy.concrete.productsr-  rË   ÚfunctionÚlimitsrg   Úgetr¾   Ú_all_nonneg_or_nonpposrÓ   r)   r   r  Ú
_from_args)	r'   Úhintsro   rp   r,  r-  r1  rr   Úncs	            r(   Ú_eval_expand_power_expzPow._eval_expand_power_expg  s  € à�I‰IˆØ�H‰HˆØ”—‘Š;Ý5Ü˜!˜SÔ! a×&6Ò&6Ý;Ù˜tŸy™y¨¨A¯J©JÓ7ÐC¸!¿(¹(ÒCÐCØ�8Š8˜Ÿ™ 7¨EÔ2Ø—	‘	˜UÑ" a×&>Ñ&>Ô&@Ø×ÒÜ°a·f±fÖ=°˜TŸY™Y q¨!�_Ò=Ð>Ð>Ø×ÒÜ˜QŸV™VÑ%?ÈÔM‘��2ÙÜ¸!Ö <°Q §¡¨1¨a¥Ò <ð ØœSŸ^™^¨BÓ/Ñ/ñ0ð 0àˆùò >ùò !=s   ÃE Ä(E%c                ó   — |j                  dd«      }| j                  }| j                  }|j                  s| S |j	                  d¬«      \  }}|r«|D �cg c]"  }t        |d«      r |j                  di |¤Žn|‘Œ$ }}|j                  rM|j                  rt        ||z  Ž }n#t        |ddd…   D �cg c]  }|dz  ‘Œ	 c}| z  Ž }|r|t        |Ž |z  z  }|S |s| j                  t        |Ž |d¬«      S t        |Ž g}t        |d„ d	¬
«      \  }	}
d„ }t        |
|«      }|d	   }|	|d   z  }	|d   }|t        j                     }|rÿt        j                  }t        |«      dz  }|dk(  rnÚ|dk(  r|	j                  |«       nÃ|dk(  rW|r5|j!                  «        }|t        j"                  ur™|j                  |«       n‡|j                  t        j$                  «       ng|r5|j!                  «        }|t        j"                  ur1|j                  |«       n|j                  t        j$                  «       |	j                  |«       ~|s|j&                  r||z   |	z   }|}	�n'|j                  rJ ‚t        |«      dkD  rƒt        j"                  }|	s#|d   j(                  r||j!                  d«      z  }t        |«      dz  r| }|D ]  }|j                  | «       Œ |t        j"                  ur’|	j                  |«       n€|rm|	rk|d   j(                  rJ|d   t        j$                  ur5|	j                  t        j$                  «       |j                  |d    «       n#|	j+                  |«       n|	j+                  |«       ~|}|	|z  }	t        j"                  }|r†|j,                  rOt        |d„ d	¬
«      \  }}t        |D �cg c]+  }| j                   |j                  |j.                  Ž |«      ‘Œ- c}Ž }|t        |D �cg c]  }| j                  ||d¬«      ‘Œ c}Ž z  }|	r|| j                  t        |	Ž |d¬«      z  }|S c c}w c c}w c c}w c c}w )z(a*b)**n -> a**n * b**nr.  F)Úsplit_1Ú_eval_expand_power_baseNr:   r¨   c                ó   — | j                   du S ©NF)r�   r0  s    r(   r2  z-Pow._eval_expand_power_base.<locals>.<lambda>�  s   € °!×2DÑ2DÈÐ2M€ r*   Tr3  c                ó”   — | t         j                  u rt         j                  S | j                  }|ry|€t        | j                  «      S y r·   )r
   ri   rœ   r   r¡   )r1  Úpolars     r(   Úpredz)Pow._eval_expand_power_base.<locals>.predŸ  sB   € Ø”A—O‘OÑ#Ü—‘Ð&Ø—J‘JˆEÙØØˆ}Ü! !×";Ñ";Ó<Ð<ð r*   r6   r   r   r~   c                óz   — | j                   xr. | j                  j                  xr | j                  j                  S r$   )r  r1   rÑ   r-   rZ   r0  s    r(   r2  z-Pow._eval_expand_power_base.<locals>.<lambda>í  s1   € °A·H±Hò 5;Ø—E‘E×%Ñ%ò5;Ø*+¯&©&×*:Ñ*:ð r*   r%   )r9  r-   r1   r[   Úargs_cncÚhasattrrA  rY   r©   rÓ   rË   r   r
   ri   Úlenr  ÚpoprN   rO   rX   r\   ÚextendrÑ   r)   )r'   r<  r.  ro   rp   Úcargsr=  rÞ   rš   ÚotherÚ
maybe_realrF  ÚsiftedÚnonnegÚnegÚimagÚIÚnonnÚor“   Únpows                        r(   rA  zPow._eval_expand_power_base{  sú  € à—	‘	˜' 5Ó)ˆà�I‰IˆØ�H‰HˆØ�xŠxØˆKà—J‘J u�JÓ-‰	ˆˆrñ
 ð öàô ˜1Ð7Ô8ð ,�!×+Ñ+Ñ4¨eÒ4Ø>?ñ@ð ˆBð ð �|Š|Ø—=’=Ü˜b ™d˜‘Bä¨b±°2°©hÖ7¨˜q "›uÒ7¸¸Ñ:Ð;�BÙØœ#˜u˜+ q™.Ñ(�BØ�	áØ—y‘y¤ b ¨1°u�yÓ=Ð=ä�r�(�ˆBô ! Ñ(MØôÑˆˆzò	=ô �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à˜S‘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Ø�R‰KˆEä�U‰UˆÙØ�}Š}Ü" 5ñ +;àô!‘��eô À$ÖG¸Q˜4Ÿ9™9 V Q§V¡V¨Q¯V©V _°aÕ8ÒGÐH�Ø”#ÀÖG¸A˜Ÿ	™	 ! Q°˜	Õ7ÒGÐHÑHˆBÙØ�$—)‘)œC ˜K¨°U�)Ó;Ñ;ˆBØˆ	ùòUùò 8ùò| HùÚGs   Á'P<Â0QÎ<0QÏ:Q
c           	     ó
  — | j                   \  }}| }|j                  �r|j                  dkD  �r|j                  �rþ|j                  s¡t        |j                  |j                  z  «      }|s|S | j                  |||z
  «      g }}| j                  ||«      }|j                  r|j                  «       }t        j                  |«      D ]  }|j                  ||z  «       Œ t        |Ž S t        |«      }|j                  �rƒg g }
}	|j                   D ]1  }|j                  r|	j                  |«       Œ!|
j                  |«       Œ3 |	rZt        |
Ž }t        |	Ž }|dk(  rt!        ||z  d¬«      ||z  |z  z   S t!        ||dz
  z  d¬«      }t#        ||z  d¬«      ||z  |z  z   S |j$                  �r­|j'                  «       \  }}|j                  �r�|j                  �r€|j                  s |j                  s\| j                  |j                  |j                  z  |«      }|j                  |j                  z  |j                  |j                  z  }}n~| j                  |j                  |«      }|j                  |j                  |z  }}nF|j                  s8| j                  |j                  |«      }||j                  z  |j                  }}nd}t        |«      t        |«      ddf\  }}}}|r;|dz  r||z  ||z  z
  ||z  ||z  z   }}|dz  }||z  ||z  z
  d|z  |z  }}|dz  }|rŒ;t(        j*                  }|dk(  r|||z  z   S t        |«      |z  ||z  |z  z   S |
}ddlm} ddlm}  |t5        |«      |«      } ||g|¢­Ž S |dk(  r6t        |j                   D ��cg c]  }|j                   D ]  }||z  ‘Œ	 Œ c}}Ž S ||dz
  z  j                  «       }|j                  r6t        |j                   D ��cg c]  }|j                   D ]  }||z  ‘Œ	 Œ c}}Ž S t        |j                   D �cg c]  }||z  ‘Œ	 c}Ž S |j                  ra|j                  dk  rR|j                  rFt7        |j                  «      |j                  kD  r$d| j                  || «      j                  «       z  S |j                  r¿|j8                  r³|j;                  dd«      s|j<                  du s|j?                  «       rƒg g }}|j                   D ]A  }|j8                  r"|j                  | j                  ||«      «       Œ1|j                  |«       ŒC tA        || j                  |t        jB                  |«      «      gz   Ž S |S c c}}w c c}}w c c}w )	zA(a + b + ..)**n -> a**n + n*a**(n-1)*b + .., n is nonzero integerr   r~   F©Údeepr   )Úmultinomial_coefficients)Úbasic_from_dictr.  )"r)   rÑ   r×   rg   rY   r­   r�   rË   r  Ú_eval_expand_multinomialr  Ú	make_argsr  r«   r"   Úis_Orderr   r   rZ   Úas_real_imagr
   ri   Úsympy.ntheory.multinomialr[  Úsympy.polys.polyutilsr\  rJ  r`   r\   r9  r¾   r:  rÓ   r;  )r'   r<  r-   r1   r  r“   ÚradicalÚexpanded_base_nrý   Úorder_termsÚother_termsro   ré   rV  ÚgrÜ   Úkrr   r”   rT  r×   r[  r\  Úexpansion_dictÚmultirÔ   Útails                              r(   r]  zPow._eval_expand_multinomialö  sö  € ð —I‘I‰	ˆˆcØˆà�?‹?˜sŸu™u q›y¨T¯[«[Ø—>’>Ü˜CŸE™E S§U¡U™NÓ+�áØ!�Mà&*§i¡i°°c¸A±gÓ&>À˜V�Gà&*§i¡i°°aÓ&8�OØ&×-Ò-à+×DÑDÓFð (ä #§¡¨oÓ >ò 4˜ØŸ™ d¨7¡lÕ3ð4ô  ˜<Ð'ä�C“ˆAà×"Ó"Ø+-¨r˜[�àŸ™ò .�AØ—z’zØ#×*Ñ*¨1Õ-à#×*Ñ*¨1Õ-ð	.ñ ä˜[Ð)�AÜ˜[Ð)�Aà˜A’vÜ1°!°Q±$¸UÔCÀaÈÁcÈ!ÁeÑKÐKä.¨q°1°q±5©zÀÔF˜Ü)¨!¨A©#°EÔ:¸Q¸q¹SÀ¹UÑBÐBà—>“>ð  ×,Ñ,Ó.‘D�A�qà—}“}¨¯«Ø Ÿ|š|Ø#$§<¢<Ø$(§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Ø#$ Q§S¡S¡5¨!¯#©#˜q™Aà !˜Aä%(¨£V¬S°«V°Q¸Ð%9™
˜˜1˜a áØ  1šuØ'(¨¡s¨Q¨q©S¡y°!°A±#¸¸!¹±) 1 Ø ! Q¡ Ø#$ Q¡3¨¨1©¡9¨a°©c°!©e˜q˜AØ !™G˜Aò  ô ŸO™O˜à š6Ø#$ q¨¡s¡7˜Nä#*¨1£:¨a¡<°!°A±#°a±%Ñ#7Ð7à�õ OÝAÙ!9¼#¸a»&À!Ó!D�ñ ' ~Ð:¸Ò:Ð:à˜’6Ü¨d¯i©i× K¨ÀÇÁÒ K¸A  1£Ð K Ó KÐLÐLà! A¨¡E™]×DÑDÓF�EØ—|’|Ü"°$·)±)÷ %1¨QØ%*§Z¡Zò%1Ø !ð &' q£Sð %1 Só %1ð  2ð 2ô  #°d·i±iÖ$@° Q u£WÒ$@Ð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Ø—‘ Ñ%¨×)CÑ)CÔ)Eð ˜b�4ˆEØŸ™ò &�Ø—>’>Ø—L‘L §¡¨4°Ó!6Õ7à—K‘K Õ%ð	&ô
 ˜ $§)¡)¨D´#·.±.ÀÓ2FÓ"GÐ!HÑHÐJÐJàˆMùó3 !Lùó%1ùò %As   ÎU4
Ï5U:
Ð*V c           
     óÎ	  — | j                   j                  �r~ddlm} | j                   }| j                  j                  |¬«      \  }}|s| t        j                  fS t        dt        ¬«      \  }}|dk\  rT|j                  r9|j                  r-t        | j                  |z  «      }	|	| k7  r|	j                  «       S  |||z   |z  «      }	nu|dz  |dz  z   }
||
z  | |
z  }}|j                  rD|j                  r8t        ||t        j                  z  z   | z  «      }	|	| k7  r|	j                  «       S  |||z   | z  «      }	|	j                  «       D �cg c]  }|d   d   dz  rŒ|‘Œ }}t        |D ���cg c]  \  \  }}}|||z  z  ||z  z  ‘Œ c}}}Ž }|	j                  «       D �cg c]  }|d   d   dz  dk(  sŒ|‘Œ }}t        |D ���cg c]  \  \  }}}|||z  z  ||z  z  ‘Œ c}}}Ž }|	j                  «       D �cg c]  }|d   d   dz  d	k(  sŒ|‘Œ }}t        |D ���cg c]  \  \  }}}|||z  z  ||z  z  ‘Œ c}}}Ž }|j                  |||t        j                  |z  i«      |j                  ||||i«      |j                  |||| i«      z   fS dd
lm}m}m} | j                   j(                  �r(| j                  j                  |¬«      \  }}|j*                  rp| j                   t        j,                  u rT|j.                  r| t        j                  fS |j0                  r*t        j                  | j                   | j                   z  fS | j3                  | j3                  |d«      | j3                  |d«      z   t        j,                  «      } |||«      }| j3                  || j                   «      || j                   z  }}| ||«      z  | ||«      z  fS | j                  t        j4                  u rqddlm } | j                   j                  «       \  }}|r& |j8                  |fi |¤Ž} |j8                  |fi |¤Ž} ||«       ||«      }} ||«      |z   ||«      |z  fS ddlm}m} |r=d|d<    | j8                  |fi |¤Ž}|jA                  d«      |k(  ry  ||«       ||«      fS  || «       || «      fS c c}w c c}}}w c c}w c c}}}w c c}w c c}}}w )Nr   )ÚpolyrY  za br   r~   r   r6   r}   )Úatan2ÚcosÚsin©r1   )rD   rŒ   FÚcomplexÚignore)!r1   rY   Úsympy.polys.polytoolsrm  r-   r`  r
   rP   ÚsymbolsÚDummyr\   r   ri   Útermsr  r  Ú(sympy.functions.elementary.trigonometricrn  ro  rp  rÑ   r¾   r¢   r¡   r¿   rË   rS   rb   Úexpandrh   rD   rŒ   r9  )r'   rZ  r<  rm  r1   Úre_erÛ   rÜ   ro   ÚexprÚmagrÞ   ÚrÚaaÚbbÚccÚre_partÚim_part1Úim_part3rn  ro  rp  ÚtÚrpÚtprr   rv   rD   rŒ   r#  s                                 r(   r`  zPow.as_real_imagp  s�  € Ø�8‰8×ÓÝ2à—(‘(ˆCØŸ™×/Ñ/°TÐ/Ó:‰JˆD�$ÙØœQŸV™V�|Ð#Ü˜5¤eÔ,‰DˆAˆqØ�aŠxØ—>’> d§n¢nä-¨d¯i©i¸©nÓ=�DØ˜t’|Ø#×0Ñ0Ó2Ð2áØ˜‘U˜S‘Ló"‘ð ˜A‘g  a¡Ñ'�Ø! #™X¨ u¨S¡y�d�Ø—>’> d§n¢nä-¨t°d¼1¿?¹?Ñ6JÑ/JÈcÈTÑ.QÓR�DØ˜t’|Ø#×0Ñ0Ó2Ð2á˜Q ™U c T™MÓ*�ð !ŸJ™J›LÖ<�q°°!±°Q±¸!³’Ð<ˆAÐ<Ü¸q×AÐA©|©x°°B¸˜B˜q "™u™H Q¨¡U›NÔAÐBˆGà ŸJ™J›LÖ=�q¨A¨a©D°©G°a©K¸1Ó,<’Ð=ˆAÐ=ÜÀ×BÐB±±°°R¸"˜R  2¡™X a¨¡e›^ÔBÐCˆHØ ŸJ™J›LÖ=�q¨A¨a©D°©G°a©K¸1Ó,<’Ð=ˆAÐ=ÜÀ×BÐB±±°°R¸"˜R  2¡™X a¨¡e›^ÔBÐCˆHà—L‘L ! T¨1¬a¯o©o¸dÑ.BÐ!CÓDØ�M‰M˜1˜d A tÐ,Ó-°·±¸qÀ$ÈÈDÈ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˜DÓ!ˆAà—Y‘Y˜q $§(¡(Ó+¨Q¨t¯x©x©Z�ˆBà‘c˜"“g‘:˜r¡# b£'™zÐ)Ð)Ø�Y‰Yœ!Ÿ&™&Ñ ÝBØŸ™×.Ñ.Ó0‰JˆD�$ÙØ"�t—{‘{ 4Ñ1¨5Ñ1�Ø"�t—{‘{ 4Ñ1¨5Ñ1�Ù�t“9™c $›iˆqˆAÙ�t“9˜Q‘;¡ D£	¨!¡Ð+Ð+çCÙØ#(��iÑ à&˜4Ÿ;™; tÑ5¨uÑ5�Ø—9‘9˜XÓ&¨(Ò2Øá˜x›L©"¨X«,Ð7Ð7á˜$“x¡ D£Ð)Ð)ùòg =ùÜAùâ=ùÜBùÚ=ùÜBs6   ÅSÅ"SÅ3SÆ&SÆ:SÇSÇ>SÈSÈ#S c                óä   — ddl m} | j                  j                  |«      }| j                  j                  |«      }| | || j                  «      z  || j                  z  | j                  z  z   z  S ry   )rb   rA   r-   Údiffr1   )r'   rv   rA   ÚdbaseÚdexps        r(   Ú_eval_derivativezPow._eval_derivativeÃ  sX   € Ý>Ø—	‘	—‘˜qÓ!ˆØ�x‰x�}‰}˜QÓˆØ�t™c $§)¡)›nÑ,¨u°t·x±xÑ/?ÀÇ	Á	Ñ/IÑIÑJÐJr*   c                ó  — | j                  «       \  }}|t        j                  k(  r)ddlm}  || j                  d¬«      j                  |«      S |j                  |«      }|j                  s|j                  |«      }|j                  rp|j                  rd|j                  du rV|j                  «       ||j                  «       z  j                  |«      z  }| }| j                  ||«      j                  «       S | j                  ||«      S )Nr   rq  Fr¨   )r…   r
   rS   rb   r1   Ú_eval_evalfÚ_evalfrY   rŸ   rZ   r�   r&  rË   ry  )r'   Úprecr-   r1   Úexp_functions        r(   r�  zPow._eval_evalfÉ  sÕ   € Ø×$Ñ$Ó&‰	ˆˆcØ”1—6‘6Š>åRÙ §¡°5Ô9×EÑEÀdÓKÐKØ�{‰{˜4Ó ˆØ�~Š~Ø—*‘*˜TÓ"ˆCØ�?Š?˜tŸ~š~°$×2GÑ2GÈ5Ñ2PØ—>‘>Ó# t¨d¯n©nÓ.>Ñ'>×&FÑ&FÀtÓ&LÑLˆDØ�$ˆCØ—9‘9˜T 3Ó'×.Ñ.Ó0Ð0Ø�y‰y˜˜sÓ#Ð#r*   c                ó  —  | j                   j                  |Ž ry | j                  j                  |Ž rMt        | j                  j	                  |«      xr' | j                   j
                  xr | j                   dk\  «      S y)NFr   T)r1   Úhasr-   ÚboolÚ_eval_is_polynomialrY   ©r'   Úsymss     r(   r”  zPow._eval_is_polynomialØ  sn   € Øˆ4�8‰8�<‰<˜ÑØàˆ4�9‰9�=‰=˜$ÑÜ˜Ÿ	™	×5Ñ5°dÓ;ò 8Ø—‘×#Ñ#ò8Ø)-¯©°Q©ó9ð 9ð r*   c                ó¦  — | j                   j                  rU| j                  j                  r?t	        t        | j                   j                  | j                  j                  g«      «      ry | j                  | j                  «       Ž }|j                  s|j                  S |j                  «       \  }}|j                  r|j                  ry|j                  rL|j                  r(t	        |j                  «      s|j                  ry||k(  ry|j                  r|j                  S |t        j                  u r|j                  r|j                   ryy y y )NTF)r1   rX   r-   rÊ   r   r   rŸ   r¾   rË   r…   r  rÑ   rÇ   Úis_irrationalr
   rS   rÕ   )r'   r×   ro   rp   s       r(   Ú_eval_is_rationalzPow._eval_is_rationalâ  sø   € ð �H‰H×Ò D§I¡I×$9Ò$9Üœi¨¯©×)=Ñ)=¸t¿y¹y×?PÑ?PÐ(QÓRÔSØØˆD�I‰I�t×'Ñ'Ó)Ð*ˆØ�xŠxØ—=‘=Ð Ø�}‰}‹‰ˆˆ1Ø�=Š=˜QŸ]š]ð Ø�<Š<Ø�}Š}Ü˜QŸY™YÔ'¨1×+;Ò+;ØØ˜’6ØØ—’Ø—y‘yÐ Ø”—‘‰;Ø�}Š} §¢Øð ".ˆ}ð r*   c                ó   — d„ }| j                   j                  s || j                   «      ry| j                   t        j                  u rÎ | j                  | j
                  Ž }|j                  | j                  k(  rŽ| j                  j                  r…| j                  j                  ry| j                  t        j                  z  j                  ry| j                  t        j                  t        j                  z  z  j                  ry|j                  S y y | j                  j                  r¶| j                   j                  du r| j                  j                  S | j                   j                  du rC| j                  j                  r| j                   j                  S | j                   j                  ry| j                  j                  r| j                   j                  S y | j                   j                  r–| j                  j                  rt        | j                   j                  «      rt         || j                   «      «      s.| j                   j                  du s| j                   j                  r| j                  j                  S y y y )Nc                ó@   — 	 | dz
  j                   S # t        $ r Y yw xY w)Nr   F)r¾   rþ   )r{  s    r(   Ú_is_onez'Pow._eval_is_algebraic.<locals>._is_oneþ  s)   € ðØ˜q™×)Ñ)Ð)øÜò áðús   ‚ ‘	œTF)r-   r¾   r
   rS   rË   r)   r1   rÕ   Úis_algebraicrj   rÊ   ri   r©   r   rX   r˜  )r'   rœ  rv   s      r(   Ú_eval_is_algebraiczPow._eval_is_algebraicý  sÎ  € ò	ð �9‰9×Ò¡¨¯	©	Ô 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Ø—9‘9×'Ñ'¨5Ñ0Ø—9‘9×*Ò*Ø—x‘x×+Ñ+Ð+ð +ð	 )>Ð#r*   c                óÐ   —  | j                   j                  |Ž ry | j                  j                  |Ž r3| j                  j                  |«      xr | j                   j                  S yrÂ   )r1   r’  r-   Ú_eval_is_rational_functionrY   r•  s     r(   r   zPow._eval_is_rational_function$  sW   € Øˆ4�8‰8�<‰<˜ÑØàˆ4�9‰9�=‰=˜$ÑØ—9‘9×7Ñ7¸Ó=ò $Ø—‘×#Ñ#ð$ð r*   c                óÀ  — | j                   j                  ||«      }| j                  j                  }|r|S | j                  j                  ||«      }|du r|rdS d S |€y | j                   j	                  ||«      }|j
                  }|rd}n t        |j                  t        |«      f«      }|du r|S |€y |s|S | j                  j	                  ||«      j                  S rC  )	r-   Ú_eval_is_meromorphicr1   rY   r  r¾   r   rQ   r   )	r'   r1  rÜ   Ú
base_meromÚexp_integerÚ	exp_meromro   Úb_zeroÚlog_defineds	            r(   r¢  zPow._eval_is_meromorphic.  sâ   € ð —Y‘Y×3Ñ3°A°qÓ9ˆ
Ø—h‘h×)Ñ)ˆÙØÐà—H‘H×1Ñ1°!°QÓ7ˆ	Ø˜Ññ &�5Ð/¨4Ð/ØÐØà�I‰I�N‰N˜1˜aÓ ˆð —‘ˆÙØ‰Kä# Q§[¡[´)¸FÓ2CÐ$DÓEˆKà˜%ÑØÐØÐ ØáØÐà�x‰x�}‰}˜Q Ó"×,Ñ,Ð,r*   c                óÐ   —  | j                   j                  |Ž ry | j                  j                  |Ž r3| j                  j                  |«      xr | j                   j                  S yrÂ   )r1   r’  r-   Ú_eval_is_algebraic_exprrÑ   r•  s     r(   r©  zPow._eval_is_algebraic_exprS  sW   € Øˆ4�8‰8�<‰<˜ÑØàˆ4�9‰9�=‰=˜$ÑØ—9‘9×4Ñ4°TÓ:ò %Ø—‘×$Ñ$ð%ð r*   c                óÎ  — ddl m}m} |j                  s"|j	                  |«      s|j	                  |«      r||z  S |j	                  t
        «      }|j	                  t
        «      rHt        j                  r%t        t        j                   ||«      |z  |¬«      S  | ||«      |z  |¬«      S ddlm}m}  | | ||«      «      t        j                   ||«      z  z   |z  «      S )Nr   r�   r¨   )rq   ÚAbs)rb   r1   rA   r¾   r’  r  r   Ú
exp_is_powr    r
   rS   rh   rq   r«  ri   )	r'   r-   r  Úkwargsr1   rA   rE   rq   r«  s	            r(   Ú_eval_rewrite_as_expzPow._eval_rewrite_as_exp]  s¯   € ßCà�<Š<˜4Ÿ8™8 Cœ=¨D¯H©H°S¬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                óö  — | j                   s| t        j                  fS | j                  «       \  }}|j	                  «       \  }}|j
                  }|j                  r|s|j                  s|j                  «       }|j                  }|j                  s|s|}t        j                  }|j                  }|r| | }}n|€|s|}t        j                  }|r||}}| }|j                  rp|t        j                  u r&|t        j                  ur|| j                  ||«      fS |t        j                  ur&|t        j                  u r| j                  ||«      |fS | j                  ||«      | j                  ||«      fS r$   )r"   r
   rN   r…   r’   rŸ   r[   r©   r]   rX   r�   Úis_nonpositivera   rË   )r'   r-   r1   r“   r”   Úneg_expÚint_expÚdnonposs           r(   r’   zPow.as_numer_denomq  sJ  € Ø×"Ò"ØœŸ™�;ÐØ×$Ñ$Ó&‰	ˆˆcØ×"Ñ"Ó$‰ˆˆ1ð —/‘/ˆØ�:Š:™g¨c¯oªoØ×2Ñ2Ó4ˆGØ—.‘.ˆð ×"Ò"¡gØˆAÜ—‘ˆAØ×"Ñ"ˆÙØ�2˜�rˆq‰AØˆ_¡WØˆAÜ—‘ˆAÙØ�aˆqˆAØ�$ˆCØ�?Š?Ø”A—E‘E‰z˜a¤q§u¡u™nØ˜$Ÿ)™) A sÓ+Ð+Ð+ØœŸ™‰~ !¤q§u¡u¡*Ø—y‘y  CÓ(¨!Ð+Ð+Ø�y‰y˜˜CÓ  $§)¡)¨A¨sÓ"3Ð3Ð3r*   c                ó¤  — t        |«      }|€i }|t        j                  u r.| j                  j	                  t        j
                  |«      }|�|S t        |t        «      sy |j                  «       \  }}| j                  «       \  }}|j                  rJ|j                  r>|r<|j                  r|j	                  |||z  z  |«      S |j	                  |d|z  z  |«      S |j                  «       }| j                  j	                  ||«      }|€y | j                  j                  |«      j	                  ||«      }|€t        j                  | ||«      S |S r0   )r   r
   rN   r1   ÚmatchesrP   rG   r   r…   rW   rY   rÊ   Úcopyr-   Úxreplace)	r'   r{  Ú	repl_dictr  r”   ro   rp   ÚsbÚses	            r(   rµ  zPow.matches”  s,  € Ü˜‹~ˆØÐØˆIð ”1—5‘5‰=Ø—‘× Ñ ¤§¡¨Ó3ˆAØˆ}Ø�ô ˜$¤Ô%Øà×ÑÓ!‰ˆˆ1ð ×!Ñ!Ó#‰ˆˆBØ�<Š<˜BŸMšM©dØ�}Š}Ø—z‘z ! a¨¡d¡)¨YÓ7Ð7Ø—:‘:˜d Q r¡T™l¨IÓ6Ð6à�N‰NÓˆØ�I‰I×Ñ˜a Ó#ˆØˆ9Øà�H‰H×Ñ˜aÓ ×(Ñ(¨¨AÓ.ˆØˆ9Ü—<‘<  d¨IÓ6Ð6Øˆr*   c                ó>  ‡2— ddl m}m} ddlm} ddlm} ddlm}	 | j                  t        j                  u rÚ| j                  j                  |||¬«      }
|
j                  rd|
z   S  ||
j                  «       |d«      }|t        j                  u r |||z  |«      S |t        j                   u r| S |
|z
  } ||«      x}}t#        d|«      D ]#  }|||z  z  }|j                  |||¬«      }||z  }Œ% | |||z  |«      z  }ddlm}  ||d	d
¬«      S ddlm} ddlm}  || d	¬«      j/                  «       } | j1                  «       \  }} |j2                  |Ž r
t5        «       ‚|j3                  |«      r$ || ||«      z  «      j7                  ||||¬«      S |�X|j3                  |«      rGddlm} t=        d||g¬«      \  }}|j?                   ||||z  z  «       ||«      ||z  z   «      }||z  } |j                  «       }	 ddl m!} |j3                  |t        jD                  «      r|�
tG        «       ‚|jI                  |«      \  }}|j3                  |«      rddl)m*}  ||«      jW                  «       }|jX                  sk|jZ                  r|j\                  sS| | j_                  |||¬«      k(  r< || ||«      z  «      j7                  ||||¬«      }| || ||«      z  «      k(  r| S |S |ja                  ||¬«      }tc        |«      |z
  jW                  «       }||z  }|jZ                  s
tK        «       ‚|||z  z
  Š2‰2j3                  td        «      r |	|«      Š2‰2jf                  r ||||z  z  |«      S |jX                  r||z  }|| k7  r| |||z  |«      z  }|S d„ } ˆ2fd„}!	 |jI                  ||¬«      \  }}"|jh                  r=|"t        jj                  k(  r*|j?                  d„ d„ «      }|jI                  ||¬«      \  }}"|"jl                  s…|jo                  «       }|jX                  r||z  S |jI                  ||¬«      \  }}"|"jl                  sB||z
  |z  jq                  «       }|jI                  ||¬«      \  }}"|"jl                  s
tK        «       ‚ddl9m:}# |j7                  | |#‰2«      ||¬«      j                  «       }$i }%tw        jx                  |$«      D ]4  } | ||«      \  }&}'|%j{                  |'t        jj                  «      |&z   |%|'<   Œ6 t        j|                  }(t        jj                  t        j|                  i})|%}*ddl?m@}+mA}, |(|"z  ‰2z
  jf                  rt |,||(«       |+|(«      z  }-|*D ].  }|)j{                  |t        jj                  «      |-|*|   z  z   |)|<   Œ0  |!|*|%«      }*|(t        j|                  z  }(|(|"z  ‰2z
  jf                  rŒtddlBmC}. |jˆ                  s¨|jX                  rœ|jf                  r�||z
  j‹                  ||«      }/ |.|/«      jf                  r | ||z  dd |z  z  z  |«      \  }0}1n_ |.|/«      jX                  r. |  || ||«      z  «      ja                  |||¬«      |«      \  }0}1n | ||z  |«      \  }0}1n | ||z  |«      \  }0}1t        jj                  }|)D ]  }'|'|1z   }||)|'   |0z  ||z  z  z  }Œ |jˆ                  r,|jl                  r ||"z  |z
  jŒ                  r|tc        | «      k(  s	 | |||z  |«      z  }|S |S # tF        tJ        t4        f$ r} |j7                  |tM        d|«      ||¬«      j                  «       }|j3                  t        jN                  t        jP                  «      r
tK        «       ‚|jI                  |«      \  }}Y �Œ]w xY w# tF        tJ        f$ r1  |||‰2z  z  |d«      dk(  r||z  |||z  z  |z  z   cY S tK        «       ‚w xY w# tJ        $ r'  || ||«      z  «      j7                  ||||¬«      cY S w xY w)!Nr   r�   )Úlimit)ÚOrder©Úsympify)r“   Úlogxr   )ÚpowsimpTr1   )rZ  Úcombine)Ú	powdenest)Ú_illegal)r.  )r“   rÀ  Úcdir)ÚWildzc, ex)rn   Úexclude)Ú	polygammar~   )Ú
logcombine©rÀ  rÅ  ©rÀ  c                óJ  — t         j                  t         j                  }}t        j                  | «      D ]E  }|j                  |«      r-|j                  «       \  }}||k7  sŒ-	 | j                  |«      c S ||z  }ŒG ||fS # t        $ r | t         j                  fcY c S w xY wr$   )	r
   rN   rP   rÓ   r^  r’  r…   Úleadtermrþ   )rý   r1  rÔ   r1   Úfactorr-   s         r(   Ú	coeff_expz$Pow._eval_nseries.<locals>.coeff_exp  s™   € ÜŸ™¤§¡�3ˆEÜŸ-™-¨Ó-ò 	$�Ø—:‘:˜a”=Ø &× 2Ñ 2Ó 4‘I�D˜#Ø˜q“yð0Ø#'§=¡=°Ó#3Ò3ð ˜V‘O‘Eð	$ð ˜#�:Ðøô	  *ò 0Ø#'¬¯© <Ô/ð0ús   Á$BÂB"Â!B"c                ó¨   •— i }t        | |«      D ]?  \  }}||z   }|‰k  sŒ|j                  |t        j                  «      | |   ||   z  z   ||<   ŒA |S r$   )r   r9  r
   rP   )Úd1Úd2ÚresÚe1Úe2rs   Úmaxpows         €r(   ÚmulzPow._eval_nseries.<locals>.mul"  sc   ø€ ØˆCÜ! " b›/ò B‘��BØ˜"‘W�Ø˜“;Ø!Ÿg™g b¬!¯&©&Ó1°B°r±F¸2¸b¹6±MÑA�C˜’GðBð ˆJr*   c                ó   — | j                   S r$   )Úis_Floatr0  s    r(   r2  z#Pow._eval_nseries.<locals>.<lambda>6  s
   €  A§J¡J€ r*   c                ó   — t        | «      S r$   )rÖ   r0  s    r(   r2  z#Pow._eval_nseries.<locals>.<lambda>6  s
   € ¼(À1»+€ r*   )Úceiling)Ú	factorialÚff©rD   r:   éþÿÿÿ)Grb   r1   rA   Úsympy.series.limitsr¼  Úsympy.series.orderr½  Úsympy.core.sympifyr¿  r-   r
   rS   Únseriesr_  ÚremoveOrÆ   rM   ÚrangeÚsympy.simplify.powsimprÁ  rÃ  ÚnumbersrÄ  Útrigsimpr…   r’  r   Ú_eval_nseriesÚsymbolrÆ  ru  ÚreplaceÚ'sympy.functions.special.gamma_functionsrÈ  Ú
EulerGammarþ   rÍ  ÚNotImplementedErrorrV   rL   rK   Úsympy.simplify.simplifyrÉ  Úcancelr¾   rZ   r¼   Ú_eval_as_leading_termÚas_leading_termr   r  rŸ   rÙ  rP   r©   Úsimplifyry  rž   rÛ  r  r^  r9  rN   Ú(sympy.functions.combinatorial.factorialsrÜ  rÝ  rh   rD   rX   Údirr°  )3r'   r1  r“   rÀ  rÅ  r1   rA   r¼  r½  r¿  Úe_seriesÚe0r„  Ú
exp_seriesrý   rÞ   rÁ  rÃ  rÄ  ro   rp   rÆ  rr   rs   rÈ  Ú_r°   rÉ  rÓ  ré   rg  r}  rÏ  r×  r”   rÛ  ÚgpolyÚgtermsÚco1rÔ  rh  rw  ÚtkrÜ  rÝ  rÔ   rD   ÚndirÚincoÚinexrÖ  s3                                                     @r(   ré  zPow._eval_nseries¶  sª  ø€ ÷ 	DÝ-Ý,Ý.Ø�9‰9œŸ™ÑØ—x‘x×'Ñ'¨¨Q°TÐ'Ó:ˆHØ× Ò Ø˜8‘|Ð#Ù�x×'Ñ'Ó)¨1¨aÓ0ˆBØ”Q×'Ñ'Ñ'Ù˜Q ™T 1“~Ð%Ø”Q—Z‘ZÑØ�Ø˜2‘ˆAÙ # B£Ð'ˆJ˜ä˜1˜a“[ò #�Ø˜˜!™‘�Ø—|‘| A¨°�|Ó6�Ø˜dÑ"‘
ð#ð ™%  1¡ a›.Ñ(ˆJÝ6Ù˜:¨D¸%Ô@Ð@Ý4Ý%Ù˜ TÔ*×3Ñ3Ó5ˆØ×ÑÓ!‰ˆˆ1àˆ1�5‰5�(ÑÜ“+Ðà�5‰5�Œ8Ù�q™˜Q›‘x“=×.Ñ.¨q°A¸DÀtÐ.Ó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Ø�t×1Ñ1°!¸$ÀTÐ1ÓJÒJÙ˜!™C ›F™(“m×1Ñ1°!°q¸tÈ$Ð1ÓO�Ø™#˜a¡ A£™h›-Ò'Ø�KØ�
à×Ñ˜a dÐÓ+ˆÜ�a‹[˜1‰_×$Ñ$Ó&ˆØˆa‰CˆØ�{Š{Ü%Ó'Ð'Ø�Q�q‘S‘ˆØ�:‰:”fÔÙ˜Q“ZˆFà×ÒÙ˜˜Q˜q™S™ 1Ó%Ð%à�9Š9Ø�1‘ˆAØ�DŠyØ‘U˜1˜a™4 “^Ñ#�ØˆHò	ô	ð	,Ø—:‘:˜a d�:Ó+‰DˆAˆqð �:Š:˜!œqŸv™vš+ð —	‘	Ñ.Ñ0EÓFˆAØ—:‘:˜a d�:Ó+‰DˆAˆqØ�}Š}Ø—
‘
“ˆAØ�yŠyØ˜!‘t�Ø—:‘:˜a d�:Ó+‰DˆAˆqØ—=’=Ø˜!‘e˜Q‘Y×&Ñ&Ó(�Ø—z‘z !¨$�zÓ/‘��1Ø—}’}Ü-Ó/Ð/å?Ø—‘ ¡W¨V£_¸4Àd�ÓK×SÑSÓUˆØˆä—M‘M %Ó(ò 	6ˆDÙ  aÓ(‰GˆC�ØŸ™ B¬¯©Ó/°#Ñ5ˆF�2ŠJð	6ô �E‰EˆÜ—‘œŸ™�ˆØˆçJà�‰s�V‰|×(Ò(Ù�q˜!“H™Y q›\Ñ)ˆEØò A�Ø!ŸI™I b¬!¯&©&Ó1°E¸"¸R¹&±LÑ@��b’	ðAá�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ÈTÐ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¸ÀÈ4Ð2ÓPÒPðQús8   ÈA\ Î&^) Ü_, ÜB^&Þ%^&Þ)3_)ß_)ß,-`à`c                ó²  — ddl m}m} | j                  }| j                  }| j                  t        j
                  u rx|j                  ||¬«      }|j                  |d«      }	|	t        j                  u r|j                  |d«      }	|	j                  du rt        j
                  |	z  S t        d| z  «      ‚|j                  |«      r% || ||«      z  «      }
|
j                  |||¬«      S ddlm} 	 |j                  |||¬«      }|j                  s¤|j                   r˜|j                  |«      s‡||z
  j#                  ||«      } ||«      j                   r| j%                  ||«      dd	|z  z  z  S  ||«      j&                  r3 ||«      j)                  |||¬«      }|j                  du r |||z  «      S | j%                  ||«      S # t        $ r | cY S w xY w)
Nr   r�   rË  FzCannot expand %s around 0rÊ  rÞ  r:   rß  )rb   r1   rA   r-   r
   rS   rò  r  rL   r¼  ra   r   r’  rh   rD   rX   rŸ   rõ  rË   r¾   rñ  )r'   r1  rÀ  rÅ  r1   rA   rp   ro   rq   Úarg0ÚltrD   ré   rþ  Úlog_leadterms                  r(   rñ  zPow._eval_as_leading_termr  sª  € ßCØ�H‰HˆØ�I‰IˆØ�9‰9œŸ™ÑØ×#Ñ# A¨DÐ#Ó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Ù�Q™˜Q›‘Z“ˆBØ×%Ñ% a¨d¸Ð%Ó>Ð>å?ðØ×%Ñ% a¨d¸Ð%Ó>�ð —<’< A§M¢M¸!¿%¹%À¼(Ø˜A™—{‘{ 1 dÓ+�Ù�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   Ã2G ÇGÇGc                óZ   — ddl m}  || j                  |«      | j                  ||«      z  S )Nr   )Úbinomial)rô  r  r1   rË   )r'   r“   r1  Úprevious_termsr  s        r(   Ú_taylor_termzPow._taylor_term”  s%   € åEÙ˜Ÿ™ !Ó$ t§y¡y°°A£Ñ6Ð6r*   c                ó  •— | j                   t        j                  urt        ‰| �  ||g|¢­Ž S |dk  rt        j
                  S |dk(  rt        j                  S ddlm}  ||«      }|r|d   }|�||z  |z  S ddlm	} ||z   ||«      z  S )Nr   r   r¾  r:   )rÜ  )
r-   r
   rS   ÚsuperÚtaylor_termrP   rN   r¿  rô  rÜ  )r'   r“   r1  r  r¿  r×   rÜ  rR   s          €r(   r  z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Øˆ}Ø˜1‘u˜q‘yÐ ÝFØ�!‰t‘I˜a“LÑ Ð r*   c                ó   — | j                   t        j                  u rrddlm}  |t        j
                  | j                  z  t        j                  dz  z   «      t        j
                   |t        j
                  | j                  z  «      z  z
  S y )Nr   )rp  r~   )r-   r
   rS   rx  rp  ri   r1   rj   )r'   r-   r1   r<  rp  s        r(   Ú_eval_rewrite_as_sinz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                ó   — | j                   t        j                  u rrddlm}  |t        j
                  | j                  z  «      t        j
                   |t        j
                  | j                  z  t        j                  dz  z   «      z  z   S y )Nr   )ro  r~   )r-   r
   rS   rx  ro  ri   r1   rj   )r'   r-   r1   r<  ro  s        r(   Ú_eval_rewrite_as_cosz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                óª   — | j                   t        j                  u r7ddlm} d || j
                  dz  «      z   d || j
                  dz  «      z
  z  S y )Nr   )Útanhr   r~   )r-   r
   rS   Ú%sympy.functions.elementary.hyperbolicr  r1   )r'   r-   r1   r<  r  s        r(   Ú_eval_rewrite_as_tanhzPow._eval_rewrite_as_tanh³  sI   € Ø�9‰9œŸ™ÑÝBØ™˜TŸX™X a™ZÓ(Ñ(¨1©t°D·H±H¸Q±JÓ/?Ñ+?Ñ@Ð@ð r*   c                ó–  — ddl m}m} |t        j                  ury |j
                  r¢|j                  t        j                  t        j                  z  «      }|ro|j                  rb |t        j                  |z  «       |t        j                  |z  «      }}t        ||«      s#t        ||«      s|t        j                  |z  z   S y y y y y )Nr   )rp  ro  )rx  rp  ro  r
   rS   r[   rÔ   rj   ri   rZ   rG   )	r'   r-   r1   r­  rp  ro  rÔ   ÚcosineÚsines	            r(   Ú_eval_rewrite_as_sqrtz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Ø!¤A§O¡O°DÑ$8Ñ8Ð8ð 8NÐ.ð )ˆuð r*   c           
     óÂ  — | j                  «       \  }}t        |j                  ||¬«      Ž }|j                  ||¬«      \  }}|j                  rË|j	                  «       \  }}|j                  r¬|t
        j                  k7  r™||z  }	| j                  ||	«      }
t
        j                  }|
j                  s5t        |	j                  |	j                  «      \  }}| j                  ||«      }
|
| j                  |t        ||||z  |	j                  z  z   «      «      fS t        ||«      }|j                  r�|j                  r�|j                  ||¬«      \  }}| j                  ||«      j                  «       \  }
}|j                  «       \  }}|t
        j                  u s||k(  r|
| j                  t        ||«      |«      fS t
        j                  | j                  ||«      fS )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.
        )rc  Úclear)r…   Ú_keep_coeffÚas_content_primitiverÑ   rÒ   r
   rP   rË   r   r×   r�   r[   rf   rN   )r'   rc  r  ro   rp   ÚceÚpeÚhr„  Úcehrr   r}  Úicehr°   Úmes                  r(   r  zPow.as_content_primitiveÃ  s˜  € ðV ×ÑÓ!‰ˆˆ1Ü˜×/Ñ/¸ÀuÐ/ÓMÐNˆØ×'Ñ'°¸uÐ'ÓE‰ˆˆBØ�=Š=ð —?‘?Ó$‰DˆAˆqØ�}Š} ¤a§f¡f¢Ø˜‘d�Ø—I‘I˜a Ó%�Ü—F‘F�Ø—}’}Ü$ S§U¡U¨C¯E©EÓ2‘G�D˜!ØŸ	™	 ! TÓ*�AØ˜$Ÿ)™) A¤{°2°q¸1¸R¹4ÀÇÁ¹:±~Ó'FÓGÐGÐGÜ˜˜BÓˆà�=Š=˜QŸXšXØ×)Ñ)°'ÀÐ)ÓG‰DˆAˆqØ—9‘9˜Q “?×/Ñ/Ó1‰DˆAˆqØ—M‘M“O‰EˆAˆrØ”A—E‘E‰z˜R 1šWð ˜$Ÿ)™)¤K°°1Ó$5°qÓ9Ð9Ð9Ü�u‰u�d—i‘i  1“oÐ%Ð%r*   c                ód  — | }|j                  dd«      r|j                  «       }|j                  «       \  }}|j                  d«      }|r||z  }||k7  r|j	                  «       S  |j                  |Ž } |j                  |Ž }	|	r|ry|j                  d«      }|du ry|	€y |j                  d«      S )Nró  Tr   F)r9  ró  r…   ÚequalsÚis_constant)
r'   ÚwrtÚflagsr{  ro   rp   Úbzr  ÚeconÚbcons
             r(   r$  zPow.is_constant  sµ   € ØˆØ�9‰9�Z Ô&Ø—=‘=“?ˆDØ×ÑÓ!‰ˆˆ1Ø�X‰X�a‹[ˆÙØ�Q‘$ˆCØ�dŠ{Ø—‘Ó(Ð(Øˆq�}‰}˜cÐ"ˆØˆq�}‰}˜cÐ"ˆÙÙØØ—‘˜!“ˆBØ�U‰{ØØˆ\Øà�x‰x˜‹{Ðr*   c                ó®   — | j                   \  }}|j                  |«      r5|j                  |«      s#|j                  |||z   «      }|||z
  z  dz
  | z  S y y r0   )r)   r’  r  )r'   r“   Ústepro   rp   Únew_es         r(   Ú_eval_difference_deltazPow._eval_difference_delta+  sW   € Ø�y‰y‰ˆˆ1Ø�5‰5�Œ8˜AŸE™E !œHØ—F‘F˜1˜a $™hÓ'ˆEØ˜ ™	‘N QÑ&¨$Ñ.Ð.ð %ˆ8r*   )Úreturnztuple[Expr, Expr])r.  r   r$   )ro   úExpr | complexrp   r/  r.  r   )r   )TrC  )r   )FT)BrJ   Ú
__module__Ú__qualname__Ú__doc__r  Ú	__slots__r   Úpropertyr)   r-   r1   r3   r	   rl   r{   Úclassmethodr€   rŠ   rk   r³   rµ   rº   rÀ   r¸   rÈ   rÍ   rß   rç   rî   rð   ræ   rõ   r÷   rù   r  r…   r$  r'  r*  r>  rA  r]  r`  r‹  r�  r”  r™  rž  r   r¢  r©  r®  r’   rµ  ré  rñ  r  r  r  r  r  r  r  r$  r-  Ú__classcell__)rR   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)r  )r­   rÖ   )rÓ   r  )r  rv  ru  N);Ú
__future__r   Útypingr   r   Ú	itertoolsr   r¿  r   Úcacher	   Ú	singletonr
   r{  r   r™   r   r7  r   r   r   r   r   Úlogicr   r   r   r   Ú
parametersr   rF   r   r   r3   r   r   Úsympy.utilities.iterablesr   Úsympy.utilities.exceptionsr   Úsympy.utilities.miscr   Úsympy.multipledispatchr   r    r7  ÚaddÚobjectr  rç  r­   rÖ   r×  rÓ   r  rê  r  rv  ru  r%   r*   r(   ú<module>rE     s   ðÝ "ß *Ý å Ý Ý Ý Ý %÷%õ %ç =Ó =Ý )ß $ß +Ý *Ý @Ý 'Ý -ôY/ˆ$ô Y/ñv8 	�7Ó€Ø ‡	�	ˆ6�6Ð
˜CÔ  å ß &ß !ß *Ò *r*   