Ë
    O/æj  ã                  ó‚  — 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 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-m/Z/ ddl0m1Z1m2Z2 ddl3m4Z4m5Z5 ddl6m7Z7m8Z8m9Z9 y)é    )Úannotations)ÚCallable)Ú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U dZdZdZded<   ded<   ed=d„«       Zd>d„Z	e
d?d	„«       Ze
d?d
„«       Ze
d„ «       Zed„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ 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,„ Z/d-„ Z0d.„ Z1d/„ Z2d0„ Z3dAd1„Z4dBd2„Z5dCd3„Z6ed4„ «       Z7ˆ fd5„Z8d6„ Z9d7„ Z:d8„ Z;d9„ Z<dDd:„Z=d;„ Z>d<„ Z?ˆ xZ@S )EÚ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_commutativeztuple[Expr, Expr]ÚargsÚ_argsc                ó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)r3   Úim);r   Úevaluater   Ú
relationalr%   Ú
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/   r1   Úsympy.simplify.radsimpr2   Úas_coeff_Mulr"   Úis_AddÚ$sympy.functions.elementary.complexesr3   r4   ÚImaginaryUnitÚPiÚ_eval_powerÚ__new__Ú _exec_constructor_postprocessorsr!   )ÚclsÚbÚer5   r%   Úargr-   r.   r/   r1   r2   ÚcÚexÚnumÚdenr3   r4   ÚsÚobjs                      úS/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/sympy/core/power.pyr\   zPow.__new__v   sŽ  € àÐÜ(×1Ñ1ˆHä�Q‹KˆÜ�Q‹Kˆõ 	+Ü�a˜Ô$¬
°1°jÔ(AÜÐ>Ó?Ð?ð �q�6ò 	ˆCÜ˜c¤4Õ(Ü)ðä˜s›)×,Ñ,Ð/ð 0ðð .3Ø/IØ ö
ð	ò Ø”A×%Ñ%Ñ%Ü—u‘u�Ø”A—J‘J‰Ü˜œAŸE™E”?ÜŸ:™:Ð%Ü˜œAŸM™MÔ*¬u°Q¼¿¹¬ÜŸ6™6�MÜ˜œAŸM™MÔ*Ø—{’{Ü ×0Ñ0Ð0Ø—{‘{ eÑ+Ü Ÿu™u˜Ø”A—F‘F‰{Ü—u‘u�Ø”a—e‘e‘Ø�Ø�b’¡Ü×(Ñ(Ð(Ø—‘×%Ñ%Ð)=Ò=ØœŸ™’;ÝMÙ&¤s¨1¨a¯e©e£}´c¸!¸Q¿U¹U³mÓDÐDð —+’+ !§,¢,°!·,²,ØŸ;š;¨1¯8ª8°q·{²{Ø×4Ñ4Ô6Ø—9’9Ø˜‘AØ—X’XÜ   A›J˜;Ð&Ü�u‰u˜˜A˜‰Ü—u‘u�Ø”a—e‘e‘Ü�q“6×%Ò%ÜŸ5™5�LÜ—u‘u�õ MØ—y“y Q¬a¯f©f¡_¼ZÈÈ9Ô=UÝ7ÝJÝ?Ù(¨°Ô7×DÑDÓF‘E�A�rÙ'¨›|‘H�C˜Ü! # sÔ+°·±¸±¸qÒ0@Ü Ÿv™v¨¨#©™Ð.ØŸšßQÙ ¡ A£›K˜ØŸ;š;©1°Ù #¡\°!¸%Ô%@Ð$@Ó AÀAÄaÇoÁoÑDUÔVW×VZÑVZÑDZÑ Zò2[ä#$§6¡6¨A¨c©E¡?Ð2à—m‘m AÓ&�Ø�?Ø�JÜ�l‰l˜3  1Ó%ˆØ×2Ñ2°3Ó7ˆÜ˜#œsÔ#ØˆJØ×.Ñ.ÒC°1×3CÑ3CˆÔØˆ
ó    c                óN   — | j                   t        j                  k(  rddlm} |S y ©Nr   r0   )Úbaser	   rC   rR   r1   )ÚselfÚargindexr1   s      rh   ÚinversezPow.inverseÙ   s   € Ø�9‰9œŸ™ÒÝBØˆJØri   c                ó    — | j                   d   S ©Nr   ©r#   ©rm   s    rh   rl   zPow.baseß   ó   € à�z‰z˜!‰}Ðri   c                ó    — | j                   d   S ©Nr   rr   rs   s    rh   ÚexpzPow.expã   rt   ri   c                ór   — | j                   j                  t        u r| j                  j                  S t        S ©N)rw   Úkindr   rl   r   rs   s    rh   rz   zPow.kindç   s&   € à�8‰8�=‰=œJÑ&Ø—9‘9—>‘>Ð!ä Ð ri   c                ó    — dd| j                   fS )Né   é   )r:   ©r^   s    rh   Ú	class_keyzPow.class_keyî   s   € à�!�S—\‘\Ð!Ð!ri   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ÚintegerrM   Úevenr   Úodd)rm   Úassumptionsr�   r‚   r_   r`   s         rh   Ú_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Ð)ri   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   )ra   r4   Úrer3   ©rw   r1   )Ú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_denomrH   )r`   ÚnÚds      rh   Ú_halfzPow._eval_power.<locals>._half
  sA   € ô ˜1˜c 4Ó(¨AÒ-ØØ×'Ñ'Ó)‘��1Ø—<’< A¨¢FØð %+�<ri   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)ÚevalfrL   r   )r`   Úrvs     rh   Ú_n2zPow._eval_power.<locals>._n2  s<   € ðØŸ™ ¨4˜Ó0�BØ—|’|Ø!˜	ð $øä)ò Ùðús   ‚ $ ¤	0¯0r*   TFr}   )r„   r	   r<   rH   Úis_polarÚis_extended_realrX   ra   r4   r‹   r3   rR   rw   r1   Ú#sympy.functions.elementary.integersr�   Úis_negativer?   r   rN   rP   Úis_imaginaryrY   Úis_extended_nonnegativerZ   ÚHalfr   )rm   Úotherr_   r`   rf   ra   r4   r‹   r3   rw   r1   r�   r”   rš   s                 rh   r[   zPow._eval_powerû   sŒ  € Ø×ÑÓ!‰ˆˆ1Ø”—‘‰:Ø�q‘D˜5‘=Ð àˆØ×ÒØŠAØ�ZŠZØŠAØ×ÑÑ+ßNÓNßGÝAò òð ×!Ó!ð ˜’7á˜U”|ØŸ=™=¨DÑ0Ü#$§=¡=°%Ñ#7¼¸Q¸BÀÀ%ÁÓ8HÑ#HÐHØŸ]™]¨eÑ3Ü#& q¨5¨&£>Ð1Ø—Y’YØ×)Ò)Ü ›F˜Ø—~’~Ü¡ 1£›J¤q§¡Ñ6˜ä˜“F˜Q‘J 4Ò'¨1°ª6Ø’AØ×.Ò.Ø’AÙ˜“U×2Ò2¼¸A»À¹
ÀtÒ7KØ’AÙ˜5•\Ù˜AœaŸd™d™F¤1§?¡?Ñ2°5Ñ8¹ÜŸ™ ¡3 q£6¡¨1¬Q¯T©T©6Ñ!2Ñ2ó:4ñ 4ó 5�Aà×)Ò)©c±$°q³'¸A±+Ó.>À!Ò.CÙ  ›G™à ™ð

Ù˜AœaŸo™oÑ-¬a¯d©dÑ2°5Ñ8ÙœaŸf™f¡r¨!©C°«F©(£|°A¡~´a·d±dÑ':Ñ:Ó;ñ<ó =�Að ×)Ò)©c±$°q³'¸A±+Ó.>À!Ò.CÙ  ›G™à ˜ð ˆ=Ø”S˜˜A˜e™G“_Ñ$Ð$ð øô *ò Ø’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   r&   r   )ÚModF©r5   N)rl   rw   rH   Úis_positiver	   r@   Ú%sympy.functions.combinatorial.numbersr¤   rI   ÚintÚ
bit_lengthÚIntegerÚpowÚmodr¦   r7   r   rJ   )rm   r�   rl   rw   r¤   r_   r`   ÚmÚmbÚphir¦   r«   s               rh   Ú	_eval_ModzPow._eval_ModO  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¨Ð#ð) .ˆ>ri   c                óŠ   — | j                   j                  r-| j                   j                  r| j                  j                  S y y ry   )rw   rH   r¨   rl   rN   rs   s    rh   Ú_eval_is_evenzPow._eval_is_even‡  s3   € Ø�8‰8×Ò 4§8¡8×#7Ò#7Ø—9‘9×$Ñ$Ð$ð $8Ðri   c                óP   — t         j                  | «      }|du r| j                  S |S ©NT)r   Ú_eval_is_extended_negativerA   )rm   Úext_negs     rh   Ú_eval_is_negativezPow._eval_is_negative‹  s(   € Ü×0Ñ0°Ó6ˆØ�d‰?Ø—>‘>Ð!Øˆri   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 )NTFr&   r   r0   )rl   rw   r    r¨   Úis_realÚis_extended_negativerN   rO   Úis_zerorœ   Úis_extended_nonpositiverŸ   rH   rR   r1   )rm   r¯   r1   s      rh   Ú_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ð %ð $ri   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)rw   r	   r¡   rl   Ú
is_complexrœ   r¼   rO   rA   rN   Úis_extended_positiver½   r    r¾   rs   s    rh   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×ÒØð  ð (ri   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   )rl   r½   rw   rÃ   r¾   r	   rC   ÚNegativeInfinityrA   rž   rQ   Úis_nonnegativerœ   rP   r¼   rs   s    rh   Ú_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àð &:Ð ri   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_rationalrH   r¨   r	   r?   rÆ   rž   rA   r   r½   rL   ÚfuncrI   )rm   r_   r`   Úchecks       rh   Ú_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˜]ˆ=ri   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   )r1   rw   Fr§   r   ©ra   )$rl   r	   rC   rw   rœ   rŸ   rY   rZ   rN   rR   r1   rÊ   r   rÃ   r    rH   Úis_extended_nonzerorÆ   r¼   Úis_Rationalr½   rO   rW   Úas_coeff_AddrI   ÚMulr?   ÚcoeffrÉ   Ú
is_nonzeror7   ÚRationalÚprX   ra   rÂ   )rm   r1   rw   Úreal_bÚreal_eÚim_bÚim_erb   ÚaÚokra   Úis               rh   Ú_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Ø�|Š|Ø—|‘|Ð#ð ð  &ˆ?ri   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ry   )rÂ   )Ú.0rÛ   s     rh   ú	<genexpr>z'Pow._eval_is_complex.<locals>.<genexpr>?  s   è ø€ Ò/ ˆq�|�|Ñ/ùó   ‚T)
rl   r	   rC   r   rw   rÂ   r¼   Úallr"   Ú_eval_is_finiters   s    rh   Ú_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Ð/ri   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   r0   rÎ   )rl   r!   rŸ   rw   rH   rO   r	   rC   rZ   rY   rN   rR   r1   rœ   r¨   rÉ   rž   rX   ra   )
rm   r‡   Úfr1   ÚimlogÚratÚhalfra   rÝ   Úisodds
             rh   Ú_eval_is_imaginaryzPow._eval_is_imaginaryB  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ØÐ Ø�ð !ð	 /ri   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¶   )rw   rH   r¨   rl   rO   rÆ   r	   r?   rs   s    rh   Ú_eval_is_oddzPow._eval_is_odds  se   € Ø�8‰8×ÒØ�x‰x×#Ò#Ø—y‘y×'Ñ'Ð'Ø—‘×(Ò(¨T¯Y©Y×-=Ò-=ØØ—‘œaŸm™mÑ+Øð ,ð ri   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Á   )	rw   rž   rl   r½   rQ   rÔ   rA   rÆ   r   )rm   Úc1Úc2s      rh   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ð ˆ2ri   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)rl   rH   rw   r¨   rs   s    rh   Ú_eval_is_primezPow._eval_is_primeŒ  s<   € ð �9‰9×Ò D§H¡H×$7Ò$7¸T¿X¹XÈ¹\×<VÒ<VØð =WÐ$7Ðri   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)rl   rH   rw   r¨   rž   rN   rs   s    rh   Ú_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Ð ri   c                ó.   — | j                   j                  S ry   )rl   r›   rs   s    rh   Ú_eval_is_polarzPow._eval_is_polarœ  s   € Ø�y‰y×!Ñ!Ð!ri   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ry   )rH   )rá   Úterms     rh   râ   z1Pow._eval_subs.<locals>._check.<locals>.<genexpr>Ï  s   è ø€ ÒB°4˜tŸ�ÑBùrã   )FNNr   r   )r!   r   Ú
ValueErrorr„   r¨   r»   rÆ   r7   Útuplerä   ÚdivmodrÒ   )Úct1Úct2ÚoldÚcoeff1Úterms1Úcoeff2Úterms2r­   Úcombinesr_   r`   Ú	remainderÚremainder_pows                rh   Ú_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§   )rD   r-   r7   rw   rl   ÚsubsÚ__rpow__rÊ   rR   r1   r	   rC   Úis_Functionr   Ú_subsrL   r   rW   Úas_independentÚSymbolrÒ   Úas_coeff_mulr"   Úappendr!   rH   ÚAddÚis_Powrœ   r¨   )rm   r  Únewr-   r_   r`   rw   r1   r
  Úlr   r  rÜ   r­   r	  ÚresultÚoargÚnew_lÚo_alrÛ   ÚnewaÚexpos                         rh   Ú
_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 Zri   c                ó    — | j                   \  }}|j                  r0|j                  |j                  k  r|j                  dkD  rd|z  | 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�   )rm   r_   r`   s      rh   r„   zPow.as_base_exp   sH   € ð0 �y‰y‰ˆˆ1Ø�=Š=˜QŸS™S 1§3¡3šY¨1¯3©3°ª7Ø�Q‘3˜˜�7ˆNØ�!ˆtˆri   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)rX   r!  rw   rH   rl   r¨   r   )rm   r!  rÝ   rÖ   Úexpandeds        rh   Ú_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Ó(Ð(ð  ð %ˆ:ri   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)rX   r%  rw   rH   rl   r¨   r   rœ   )rm   rb   rÝ   rÖ   r"  s        rh   Ú_eval_conjugatezPow._eval_conjugateI  s’   € ÝGØ�x‰x×"Ñ" D§I¡I×$9Ñ$9ˆ1ˆÙÙ�T—Y‘Y“< §¡Ñ)Ð)ÙØ—9‘9™a §¡›kÑ)Ð)Ø�‰:˜!˜u™*Ü% dÓ+ˆHØ˜4ÒÙ˜“{Ð"Ø× Ò ØˆKð !ri   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)rX   r(  rl   r	   rC   rÊ   rw   rH   rÂ   rQ   r   )rm   r(  rÝ   rÖ   r"  s        rh   Ú_eval_transposezPow._eval_transposeW  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ÒÙ  Ó*Ð*ð  ð %ˆ:ri   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 ry   r    ©Úxs    rh   ú<lambda>z,Pow._eval_expand_power_exp.<locals>.<lambda>s  s   € ¨q×/?Ñ/?€ ri   T©Úbinary)rl   rw   r	   rC   Úsympy.concrete.summationsr+  r7   r!   Úsympy.concrete.productsr,  rÊ   ÚfunctionÚlimitsrW   Úgetr½   Ú_all_nonneg_or_nonpposrÒ   r"   r   r  Ú
_from_args)	rm   Úhintsr_   r`   r+  r,  r0  rb   Úncs	            rh   Ú_eval_expand_power_expzPow._eval_expand_power_expe  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œ   r/  s    rh   r1  z-Pow._eval_expand_power_base.<locals>.<lambda>›  s   € °!×2DÑ2DÈÐ2M€ ri   Tr2  c                ó”   — | t         j                  u rt         j                  S | j                  }|ry|€t        | j                  «      S y r¶   )r	   rY   r›   r   r    )r0  Úpolars     rh   Úpredz)Pow._eval_expand_power_base.<locals>.pred�  sB   € Ø”A—O‘OÑ#Ü—‘Ð&Ø—J‘JˆEÙØØˆ}Ü! !×";Ñ";Ó<Ð<ð ri   r&   r   r   r}   c                óz   — | j                   xr. | j                  j                  xr | j                  j                  S ry   )r  rw   rÐ   rl   rJ   r/  s    rh   r1  z-Pow._eval_expand_power_base.<locals>.<lambda>ë  s1   € °A·H±Hò 5;Ø—E‘E×%Ñ%ò5;Ø*+¯&©&×*:Ñ*:ð ri   © )r8  rl   rw   rK   Úargs_cncÚhasattrr@  rI   r¨   rÒ   rÊ   r   r	   rY   Úlenr  Úpopr>   r?   rH   rL   ÚextendrÐ   r"   )rm   r;  r-  r_   r`   Úcargsr<  rÝ   r™   r¢   Ú
maybe_realrE  ÚsiftedÚnonnegÚnegÚimagÚIÚnonnÚor’   Únpows                        rh   r@  zPow._eval_expand_power_basey  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Ö   rW   rI   r¬   r�   rÊ   r  Ú_eval_expand_multinomialr  Ú	make_argsr  rª   r!   Úis_Orderr   r   rJ   Úas_real_imagr	   rY   Úsympy.ntheory.multinomialrZ  Úsympy.polys.polyutilsr[  rJ  rP   rL   r8  r½   r9  rÒ   r:  )rm   r;  rl   rw   r  r’   ÚradicalÚexpanded_base_nrü   Úorder_termsÚother_termsr_   rè   rU  ÚgrÛ   Úkrb   r“   rS  rÖ   rZ  r[  Úexpansion_dictÚmultirÓ   Útails                              rh   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   )ÚpolyrX  za br~   r}   r   r&   r|   )Úatan2ÚcosÚsin©rw   )r4   r‹   FÚcomplexÚignore)!rw   rI   Úsympy.polys.polytoolsrl  rl   r_  r	   r@   ÚsymbolsÚDummyrL   r   rY   Útermsr  r  Ú(sympy.functions.elementary.trigonometricrm  rn  ro  rÐ   r½   r¡   r    r¾   rÊ   rC   rR   ÚexpandrX   r4   r‹   r8  )rm   rY  r;  rl  rw   Úre_erÚ   rÛ   r_   ÚexprÚmagrÝ   ÚrÚaaÚbbÚccÚre_partÚim_part1Úim_part3rm  rn  ro  ÚtÚrpÚtprb   rf   r4   r‹   r"  s                                 rh   r_  zPow.as_real_imagn  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 rk   )rR   r1   rl   Údiffrw   )rm   rf   r1   ÚdbaseÚdexps        rh   Ú_eval_derivativezPow._eval_derivativeÁ  sX   € Ý>Ø—	‘	—‘˜qÓ!ˆØ�x‰x�}‰}˜QÓˆØ�t™c $§)¡)›nÑ,¨u°t·x±xÑ/?ÀÇ	Á	Ñ/IÑIÑJÐJri   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   rp  Fr§   )r„   r	   rC   rR   rw   Ú_eval_evalfÚ_evalfrI   rž   rJ   rœ   r%  rÊ   rx  )rm   Úprecrl   rw   Úexp_functions        rh   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Ó#Ð#ri   c                ó  —  | j                   j                  |Ž ry | j                  j                  |Ž rMt        | j                  j	                  |«      xr' | j                   j
                  xr | j                   dk\  «      S y)NFr   T)rw   Úhasrl   ÚboolÚ_eval_is_polynomialrI   ©rm   Úsymss     rh   r“  zPow._eval_is_polynomialÖ  sn   € Øˆ4�8‰8�<‰<˜ÑØàˆ4�9‰9�=‰=˜$ÑÜ˜Ÿ	™	×5Ñ5°dÓ;ò 8Ø—‘×#Ñ#ò8Ø)-¯©°Q©ó9ð 9ð ri   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)rw   rH   rl   rÉ   r   r   rž   r½   rÊ   r„   r  rÐ   rÆ   Úis_irrationalr	   rC   rÔ   )rm   rÖ   r_   r`   s       rh   Ú_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Ð Ø”—‘‰;Ø�}Š} §¢Øð ".ˆ}ð ri   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ý   )rz  s    rh   Ú_is_onez'Pow._eval_is_algebraic.<locals>._is_oneü  s)   € ðØ˜q™×)Ñ)Ð)øÜò áðús   ‚ ‘	œTF)rl   r½   r	   rC   rÊ   r"   rw   rÔ   Úis_algebraicrZ   rÉ   rY   r¨   r   rH   r—  )rm   r›  rf   s      rh   Ú_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×+Ñ+Ð+ð +ð	 )>Ð#ri   c                óÐ   —  | j                   j                  |Ž ry | j                  j                  |Ž r3| j                  j                  |«      xr | j                   j                  S yrÁ   )rw   r‘  rl   Ú_eval_is_rational_functionrI   r”  s     rh   rŸ  zPow._eval_is_rational_function"  sW   € Øˆ4�8‰8�<‰<˜ÑØàˆ4�9‰9�=‰=˜$ÑØ—9‘9×7Ñ7¸Ó=ò $Ø—‘×#Ñ#ð$ð ri   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 rB  )	rl   Ú_eval_is_meromorphicrw   rI   r  r½   r   rA   r   )	rm   r0  rÛ   Ú
base_meromÚexp_integerÚ	exp_meromr_   Úb_zeroÚlog_defineds	            rh   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 Ó"×,Ñ,Ð,ri   c                óÐ   —  | j                   j                  |Ž ry | j                  j                  |Ž r3| j                  j                  |«      xr | j                   j                  S yrÁ   )rw   r‘  rl   Ú_eval_is_algebraic_exprrÐ   r”  s     rh   r¨  zPow._eval_is_algebraic_exprQ  sW   € Øˆ4�8‰8�<‰<˜ÑØàˆ4�9‰9�=‰=˜$ÑØ—9‘9×4Ñ4°TÓ:ò %Ø—‘×$Ñ$ð%ð ri   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§   )ra   ÚAbs)rR   rw   r1   r½   r‘  r  r   Ú
exp_is_powr   r	   rC   rX   ra   rª  rY   )	rm   rl   r  Úkwargsrw   r1   r5   ra   rª  s	            rh   Ú_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ÐIri   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 ry   )r!   r	   r>   r„   r‘   rž   rK   r¨   rM   rH   rœ   Úis_nonpositiverQ   rÊ   )rm   rl   rw   r’   r“   Úneg_expÚint_expÚdnonposs           rh   r‘   zPow.as_numer_denomo  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Ð3ri   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 rv   )r   r	   r>   rw   Úmatchesr@   r7   r
   r„   rG   rI   rÉ   Úcopyrl   Úxreplace)	rm   rz  Ú	repl_dictr  r“   r_   r`   ÚsbÚses	            rh   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Øˆri   c                ó8  ‡3— 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                  ||¬«      }||z  t        jb                  z
  jW                  d¬«      }|jZ                  s
tK        «       ‚|||z  z
  Š3‰3j3                  td        «      r |	|«      Š3‰3jf                  r ||||z  z  |«      S |jX                  r||z  }|| k7  r| |||z  |«      z  }|S d„ } ˆ3fd„}!	 |jI                  ||¬«      \  }}"|jh                  r5|"t        jj                  k(  r"ddl)m6}#  |#|«      jI                  ||¬«      \  }}"|"jn                  s…|jq                  «       }|jX                  r||z  S |jI                  ||¬«      \  }}"|"jn                  sB||z
  |z  js                  «       }|jI                  ||¬«      \  }}"|"jn                  s
tK        «       ‚ddl:m;}$ |j7                  | |$‰3«      ||¬«      j                  «       }%i }&ty        jz                  |%«      D ]4  } | ||«      \  }'}(|&j}                  |(t        jj                  «      |'z   |&|(<   Œ6 t        jb                  })t        jj                  t        jb                  i}*|&}+ddl?m@},mA}- |)|"z  ‰3z
  jf                  rt |-||)«       |,|)«      z  }.|+D ].  }|*j}                  |t        jj                  «      |.|+|   z  z   |*|<   Œ0  |!|+|&«      }+|)t        jb                  z  })|)|"z  ‰3z
  jf                  rŒtddlBmC}/ |jˆ                  s¨|jX                  rœ|jf                  r�||z
  j‹                  ||«      }0 |/|0«      jf                  r | ||z  d d!|z  z  z  |«      \  }1}2n_ |/|0«      jX                  r. |  || ||«      z  «      ja                  |||¬«      |«      \  }1}2n | ||z  |«      \  }1}2n | ||z  |«      \  }1}2t        jj                  }|*D ]  }(|(|2z   }||*|(   |1z  ||z  z  z  }Œ |jˆ                  r,|jn                  r ||"z  |z
  jŒ                  r|t�        | «      k(  s	 | |||z  |«      z  }|S |S # tF        tJ        t4        f$ r} |j7                  |tM        d|«      ||¬«      j                  «       }|j3                  t        jN                  t        jP                  «      r
tK        «       ‚|jI                  |«      \  }}Y �ŒZw xY w# tF        tJ        f$ r1  |||‰3z  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   )ÚpowsimpTrw   )rY  Úcombine)Ú	powdenest)Ú_illegal)r-  )r’   r¿  Úcdir)ÚWildzc, ex)r^   Úexclude)Ú	polygammar}   )Ú
logcombine©r¿  rÄ  ©r¿  F)rx  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ry   )	r	   r>   r@   rÒ   r]  r‘  r„   Úleadtermrý   )rü   r0  rÓ   rw   Úfactorrl   s         rh   Ú	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 ry   )r   r8  r	   r@   )Úd1Úd2ÚresÚe1Úe2rc   Úmaxpows         €rh   Ú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ð ˆJri   )Ú	nsimplify)Úceiling)Ú	factorialÚff©r4   r*   éþÿÿÿ)HrR   rw   r1   Úsympy.series.limitsr»  Úsympy.series.orderr¼  Úsympy.core.sympifyr¾  rl   r	   rC   Únseriesr^  ÚremoveOrÅ   r=   ÚrangeÚsympy.simplify.powsimprÀ  rÂ  ÚnumbersrÃ  Útrigsimpr„   r‘  r   Ú_eval_nseriesÚsymbolrÅ  rt  ÚreplaceÚ'sympy.functions.special.gamma_functionsrÇ  Ú
EulerGammarý   rÌ  ÚNotImplementedErrorrF   r<   r;   Úsympy.simplify.simplifyrÈ  Úcancelr½   rJ   r»   Ú_eval_as_leading_termÚas_leading_termr>   r  rž   Úis_Floatr@   r×  r¨   Úsimplifyrx  r�   rØ  r  r]  r8  Ú(sympy.functions.combinatorial.factorialsrÙ  rÚ  rX   r4   rH   Údirr¯  r   )4rm   r0  r’   r¿  rÄ  rw   r1   r»  r¼  r¾  Úe_seriesÚe0rƒ  Ú
exp_seriesrü   rÝ   rÀ  rÂ  rÃ  r_   r`   rÅ  rb   rc   rÇ  Ú_r¯   rÈ  rÒ  rè   rf  r|  rÎ  rÖ  r“   r×  rØ  ÚgpolyÚgtermsÚco1rÓ  rg  rv  ÚtkrÙ  rÚ  rÓ   r4   ÚndirÚincoÚinexrÕ  s4                                                      @rh   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ÐÓ+ˆØˆq‰S”1—5‘5‰[× Ñ ¨Ð Ó.ˆØ�{Š{Ü%Ó'Ð'Ø�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š+õ :Ù˜Q“<×(Ñ(¨°Ð(Ó6‰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ð		!ûôt Ô/Ð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Ü  )rR   rw   r1   rl   r	   rC   rï  r  r<   r»  rQ   r   r‘  rX   r4   rH   rž   ró  rÊ   r½   rî  )rm   r0  r¿  rÄ  rw   r1   r`   r_   ra   Úarg0Últr4   rè   rü  Úlog_leadterms                  rh   rî  zPow._eval_as_leading_termo  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  rw   rÊ   )rm   r’   r0  Úprevious_termsr  s        rh   Ú_taylor_termzPow._taylor_term‘  s%   € åEÙ˜Ÿ™ !Ó$ t§y¡y°°A£Ñ6Ð6ri   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Ù  )
rl   r	   rC   ÚsuperÚtaylor_termr@   r>   r¾  rò  rÙ  )rm   r’   r0  r  r¾  rÖ   rÙ  rB   s          €rh   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Ñ Ð ri   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   )ro  r}   )rl   r	   rC   rw  ro  rY   rw   rZ   )rm   rl   rw   r;  ro  s        rh   Ú_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ð ri   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   )rn  r}   )rl   r	   rC   rw  rn  rY   rw   rZ   )rm   rl   rw   r;  rn  s        rh   Ú_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ð ri   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}   )rl   r	   rC   Ú%sympy.functions.elementary.hyperbolicr  rw   )rm   rl   rw   r;  r  s        rh   Ú_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Ó/?Ñ+?Ñ@Ð@ð ri   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   )ro  rn  )rw  ro  rn  r	   rC   rK   rÓ   rZ   rY   rJ   r7   )	rm   rl   rw   r¬  ro  rn  rÓ   ÚcosineÚsines	            rh   Ú_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ð ri   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.
        )rb  Úclear)r„   Ú_keep_coeffÚas_content_primitiverÐ   rÑ   r	   r@   rÊ   rÿ   rÖ   r�   rK   rV   r>   )rm   rb  r  r_   r`   ÚceÚpeÚhrƒ  Úcehrb   r|  Úicehr¯   Úmes                  rh   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Ð%Ð%ri   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)r8  rñ  r„   ÚequalsÚis_constant)
rm   ÚwrtÚflagsrz  r_   r`   Úbzr  ÚeconÚbcons
             rh   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˜‹{Ðri   c                ó®   — | j                   \  }}|j                  |«      r5|j                  |«      s#|j                  |||z   «      }|||z
  z  dz
  | z  S y y rv   )r"   r‘  r  )rm   r’   Ústepr_   r`   Únew_es         rh   Ú_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Ñ&¨$Ñ.Ð.ð %ˆ8ri   ry   )r   )Úreturnr
   )TrB  )r   rq   )FT)Ar:   Ú
__module__Ú__qualname__Ú__doc__r  Ú	__slots__Ú__annotations__r   r\   ro   Úpropertyrl   rw   rz   Úclassmethodr   r‰   r[   r²   r´   r¹   r¿   r·   rÇ   rÌ   rÞ   ræ   rí   rï   rå   rô   rö   rø   r  r„   r#  r&  r)  r=  r@  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__)rB   s   @rh   r   r      s¨  ø… ñWðp €Fà#€Ià
ÓØÓàò`ó ð`óDð òó ðð òó ðð ñ!ó ð!ð ñ"ó ð"ò#òR%òh6Bòp%òò3ò:ò2ò0ò*D$òLò/òbòò òò"òòBò:
)òò+òò(yòvxótQ*òfKò$òòò6%,òNò#-òJòJò(!4óF óDyóv #ðD ñ7ó ð7ô!ò jò
jò
Aò
	9óO&òbö./ri   r   Úpower)r  )r¬   rÕ   )rÒ   r  )r  ru  rt  N):Ú
__future__r   Útypingr   Ú	itertoolsr   r¾  r   Úcacher   Ú	singletonr	   rz  r
   r˜   r   r6  r   r   r   r   r   Úlogicr   r   r   r   Ú
parametersr   r6   r   r   rz   r   r   Úsympy.utilities.iterablesr   Úsympy.utilities.exceptionsr   Úsympy.utilities.miscr   Úsympy.multipledispatchr   r   r5  ÚaddÚobjectr  rä  r¬   rÕ   rÖ  rÒ   r  rç  r  ru  rt  rG  ri   rh   ú<module>rC     s   ðÝ "Ý Ý å Ý Ý Ý Ý %÷%õ %ç =Ó =Ý )ß $ß +Ý *Ý @Ý 'Ý -ôV/ˆ$ô V/ñp8 	�7Ó€Ø ‡	�	ˆ6�6Ð
˜CÔ  å ß &ß !ß *Ò *ri   