§
    «³Ùgà©  ã                   ó  — d dl mZ d dlmZmZmZmZmZm	Z	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 d dlmZ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$ G d„ de¦  «        Z% G d„ de¦  «        Z& G d„ de¦  «        Z' G d„ de¦  «        Z( G d„ de¦  «        Z) G d„ de¦  «        Z* G d„ de¦  «        Z+ G d„ de¦  «        Z, G d„ de¦  «        Z-d „ Z. G d!„ d"e¦  «        Z/d*d$„Z0d+d&„Z1d*d'„Z2d,d)„Z3d(S )-é    )ÚTuple)ÚSÚAddÚMulÚsympifyÚSymbolÚDummyÚBasic)ÚExpr)Úfactor_terms)ÚFunctionÚ
DerivativeÚArgumentIndexErrorÚAppliedUndefÚ
expand_mul)Ú	fuzzy_notÚfuzzy_or)ÚpiÚIÚoo)ÚPow)ÚEq)Úsqrt)Ú	Piecewisec                   óx   — e Zd ZU dZee         ed<   dZdZdZ	e
d„ ¦   «         Zdd„Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ ZdS )Úrea÷  
    Returns real part of expression. This function performs only
    elementary analysis and so it will fail to decompose properly
    more complicated expressions. If completely simplified result
    is needed then use ``Basic.as_real_imag()`` or perform complex
    expansion on instance of this function.

    Examples
    ========

    >>> from sympy import re, im, I, E, symbols
    >>> x, y = symbols('x y', real=True)
    >>> re(2*E)
    2*E
    >>> re(2*I + 17)
    17
    >>> re(2*I)
    0
    >>> re(im(x) + x*I + 2)
    2
    >>> re(5 + I + 2)
    7

    Parameters
    ==========

    arg : Expr
        Real or complex expression.

    Returns
    =======

    expr : Expr
        Real part of expression.

    See Also
    ========

    im
    ÚargsTc                 óÄ  — |t           j        u rt           j        S |t           j        u rt           j        S |j        r|S |j        st
          |z  j        rt           j        S |j        r|                     ¦   «         d         S |j	        r/t          |t          ¦  «        rt          |j        d         ¦  «        S g g g }}}t          j        |¦  «        }|D ]»}|                     t
          ¦  «        }|�|j        s|                     |¦  «         Œ;|                     t
          ¦  «        s|j        r|                     |¦  «         Œr|                     |¬¦  «        }|r|                     |d         ¦  «         Œ¦|                     |¦  «         Œ¼t'          |¦  «        t'          |¦  «        k    r1d„ |||fD ¦   «         \  }	}
} | |	¦  «        t)          |
¦  «        z
  |z   S d S )Nr   ©Úignorec              3   ó(   K  — | ]}t          |Ž V — Œd S ©N©r   ©Ú.0Úxss     úZ/granary/edev/quantum/lib/python3.11/site-packages/sympy/functions/elementary/complexes.pyú	<genexpr>zre.eval.<locals>.<genexpr>i   ó&   è è € ÐMÐM¨�3 ˜8ÐMÐMÐMÐMÐMÐMó    )r   ÚNaNÚComplexInfinityÚis_extended_realÚis_imaginaryr   ÚZeroÚ	is_MatrixÚas_real_imagÚis_FunctionÚ
isinstanceÚ	conjugater   r   r   Ú	make_argsÚas_coefficientÚappendÚhasÚlenÚim©ÚclsÚargÚincludedÚrevertedÚexcludedr   ÚtermÚcoeffÚ	real_imagÚaÚbÚcs               r'   Úevalzre.evalD   sæ  € à•!”%ˆ<ˆ<Ý”5ˆLØ•AÔ%Ð%Ð%Ý”5ˆLØÔ!ð !	*ØˆJØÔð 	*¥! C¡%Ô!9ð 	*Ý”6ˆMØŒ]ð 	*Ø×#Ò#Ñ%Ô% aÔ(Ð(ØŒ_ð 	*¥¨CµÑ!;Ô!;ð 	*Ý�c”h˜q”k‘?”?Ð"ð ,.¨r°2 �hˆHÝ”= Ñ%Ô%ˆDØð .ð .�Ø×+Ò+­AÑ.Ô.�àÐ$Ø Ô1ð /Ø Ÿš¨Ñ.Ô.Ð.øØŸš¥!™œð 
.¨Ô)>ð 
.Ø—O’O DÑ)Ô)Ð)Ð)ð
 !%× 1Ò 1¸Ð 1Ñ =Ô =�IØ ð .Ø Ÿš¨	°!¬Ñ5Ô5Ð5Ð5à Ÿš¨Ñ-Ô-Ð-Ð-å�4‰yŒy�C ™MœMÒ)Ð)ØMÐM¨x¸À8Ð.LÐMÑMÔM‘��1�aà�s˜1‘v”v¥ 1¡¤‘~¨Ñ)Ð)ð *Ð)r*   c                 ó   — | t           j        fS )zF
        Returns the real number with a zero imaginary part.

        ©r   r/   ©ÚselfÚdeepÚhintss      r'   r1   zre.as_real_imagm   ó   € ð
 •a”fˆ~Ðr*   c                 ó$  — |j         s| j        d         j         r*t          t          | j        d         |d¬¦  «        ¦  «        S |j        s| j        d         j        r3t
           t          t          | j        d         |d¬¦  «        ¦  «        z  S d S ©Nr   T©Úevaluate)r-   r   r   r   r.   r   r:   ©rK   Úxs     r'   Ú_eval_derivativezre._eval_derivativet   ó›   € ØÔð 	B ¤¨1¤Ô!>ð 	BÝ•j ¤¨1¤¨q¸4Ð@Ñ@Ô@ÑAÔAÐAØŒ>ð 	A˜TœY qœ\Ô6ð 	AÝ�2Ý•Z ¤	¨!¤¨a¸$Ð?Ñ?Ô?Ñ@Ô@ñAð Að	Að 	Ar*   c                 ób   — | j         d         t          t          | j         d         ¦  «        z  z
  S ©Nr   )r   r   r:   ©rK   r=   Úkwargss      r'   Ú_eval_rewrite_as_imzre._eval_rewrite_as_im{   s&   € ØŒy˜Œ|�a¥ 4¤9¨Q¤<Ñ 0Ô 0Ñ0Ñ0Ð0r*   c                 ó&   — | j         d         j        S rX   ©r   Úis_algebraic©rK   s    r'   Ú_eval_is_algebraiczre._eval_is_algebraic~   ó   € ØŒy˜Œ|Ô(Ð(r*   c                 ód   — t          | j        d         j        | j        d         j        g¦  «        S rX   )r   r   r.   Úis_zeror_   s    r'   Ú_eval_is_zerozre._eval_is_zero�   s'   € å˜œ 1œÔ2°D´I¸a´LÔ4HÐIÑJÔJÐJr*   c                 ó.   — | j         d         j        rdS d S ©Nr   T©r   Ú	is_finiter_   s    r'   Ú_eval_is_finitezre._eval_is_finite…   ó"   € ØŒ9�QŒ<Ô!ð 	Ø�4ð	ð 	r*   c                 ó.   — | j         d         j        rdS d S rf   rg   r_   s    r'   Ú_eval_is_complexzre._eval_is_complex‰   rj   r*   N©T)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚtTupler   Ú__annotations__r-   Ú
unbranchedÚ_singularitiesÚclassmethodrG   r1   rU   r[   r`   rd   ri   rl   © r*   r'   r   r      sÑ   € € € € € € ð'ð 'ðR �Œ,ÐÐÑàÐØ€JØ€Nàð&*ð &*ñ „[ð&*ðPð ð ð ðAð Að Að1ð 1ð 1ð)ð )ð )ðKð Kð Kðð ð ðð ð ð ð r*   r   c                   óx   — e Zd ZU dZee         ed<   dZdZdZ	e
d„ ¦   «         Zdd„Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ ZdS )r:   aï  
    Returns imaginary part of expression. This function performs only
    elementary analysis and so it will fail to decompose properly more
    complicated expressions. If completely simplified result is needed then
    use ``Basic.as_real_imag()`` or perform complex expansion on instance of
    this function.

    Examples
    ========

    >>> from sympy import re, im, E, I
    >>> from sympy.abc import x, y
    >>> im(2*E)
    0
    >>> im(2*I + 17)
    2
    >>> im(x*I)
    re(x)
    >>> im(re(x) + y)
    im(y)
    >>> im(2 + 3*I)
    3

    Parameters
    ==========

    arg : Expr
        Real or complex expression.

    Returns
    =======

    expr : Expr
        Imaginary part of expression.

    See Also
    ========

    re
    r   Tc                 óØ  — |t           j        u rt           j        S |t           j        u rt           j        S |j        rt           j        S |j        st          |z  j        rt           |z  S |j        r|                     ¦   «         d         S |j	        r0t          |t          ¦  «        rt          |j        d         ¦  «         S g g g }}}t          j        |¦  «        }|D ]»}|                     t          ¦  «        }|�3|j        s|                     |¦  «         Œ;|                     |¦  «         ŒQ|                     t          ¦  «        s|j        sI|                     |¬¦  «        }|r|                     |d         ¦  «         Œ¦|                     |¦  «         Œ¼t'          |¦  «        t'          |¦  «        k    r1d„ |||fD ¦   «         \  }	}
} | |	¦  «        t)          |
¦  «        z   |z   S d S )Né   r   r   c              3   ó(   K  — | ]}t          |Ž V — Œd S r"   r#   r$   s     r'   r(   zim.eval.<locals>.<genexpr>â   r)   r*   )r   r+   r,   r-   r/   r.   r   r0   r1   r2   r3   r4   r:   r   r   r5   r6   r7   r8   r9   r   r;   s               r'   rG   zim.eval¾   sí  € à•!”%ˆ<ˆ<Ý”5ˆLØ•AÔ%Ð%Ð%Ý”5ˆLØÔ!ð  	*Ý”6ˆMØÔð 	*¥! C¡%Ô!9ð 	*Ý�2˜‘8ˆOØŒ]ð 	*Ø×#Ò#Ñ%Ô% aÔ(Ð(ØŒ_ð 	*¥¨CµÑ!;Ô!;ð 	*Ý�s”x ”{‘O”OÐ#Ð#à+-¨r°2 �hˆHÝ”= Ñ%Ô%ˆDØð .ð .�Ø×+Ò+­AÑ.Ô.�àÐ$Ø Ô1ð /Ø Ÿš¨Ñ.Ô.Ð.Ð.à Ÿš¨Ñ.Ô.Ð.Ð.Ø—X’X�a‘[”[ð .¨Ô(=ð .ð !%× 1Ò 1¸Ð 1Ñ =Ô =�IØ ð .Ø Ÿš¨	°!¬Ñ5Ô5Ð5Ð5à Ÿš¨Ñ-Ô-Ð-øå�4‰yŒy�C ™MœMÒ)Ð)ØMÐM¨x¸À8Ð.LÐMÑMÔM‘��1�aà�s˜1‘v”v¥ 1¡¤‘~¨Ñ)Ð)ð *Ð)r*   c                 ó   — | t           j        fS )zC
        Return the imaginary part with a zero real part.

        rI   rJ   s      r'   r1   zim.as_real_imagæ   rN   r*   c                 ó$  — |j         s| j        d         j         r*t          t          | j        d         |d¬¦  «        ¦  «        S |j        s| j        d         j        r3t
           t          t          | j        d         |d¬¦  «        ¦  «        z  S d S rP   )r-   r   r:   r   r.   r   r   rS   s     r'   rU   zim._eval_derivativeí   rV   r*   c                 ód   — t            | j        d         t          | j        d         ¦  «        z
  z  S rX   )r   r   r   rY   s      r'   Ú_eval_rewrite_as_rezim._eval_rewrite_as_reô   s(   € Ýˆr�4”9˜Q”<¥" T¤Y¨q¤\Ñ"2Ô"2Ñ2Ñ3Ð3r*   c                 ó&   — | j         d         j        S rX   r]   r_   s    r'   r`   zim._eval_is_algebraic÷   ra   r*   c                 ó&   — | j         d         j        S rX   ©r   r-   r_   s    r'   rd   zim._eval_is_zeroú   ó   € ØŒy˜Œ|Ô,Ð,r*   c                 ó.   — | j         d         j        rdS d S rf   rg   r_   s    r'   ri   zim._eval_is_finiteý   rj   r*   c                 ó.   — | j         d         j        rdS d S rf   rg   r_   s    r'   rl   zim._eval_is_complex  rj   r*   Nrm   )rn   ro   rp   rq   rr   r   rs   r-   rt   ru   rv   rG   r1   rU   r   r`   rd   ri   rl   rw   r*   r'   r:   r:   Ž   sÎ   € € € € € € ð'ð 'ðR �Œ,ÐÐÑàÐØ€JØ€Nàð%*ð %*ñ „[ð%*ðNð ð ð ðAð Að Að4ð 4ð 4ð)ð )ð )ð-ð -ð -ðð ð ðð ð ð ð r*   r:   c                   ó–   ‡ — e Zd ZdZdZdZˆ fd„Ze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ˆ xZS )Úsignaæ  
    Returns the complex sign of an expression:

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

    If the expression is real the sign will be:

        * $1$ if expression is positive
        * $0$ if expression is equal to zero
        * $-1$ if expression is negative

    If the expression is imaginary the sign will be:

        * $I$ if im(expression) is positive
        * $-I$ if im(expression) is negative

    Otherwise an unevaluated expression will be returned. When evaluated, the
    result (in general) will be ``cos(arg(expr)) + I*sin(arg(expr))``.

    Examples
    ========

    >>> from sympy import sign, I

    >>> sign(-1)
    -1
    >>> sign(0)
    0
    >>> sign(-3*I)
    -I
    >>> sign(1 + I)
    sign(1 + I)
    >>> _.evalf()
    0.707106781186548 + 0.707106781186548*I

    Parameters
    ==========

    arg : Expr
        Real or imaginary expression.

    Returns
    =======

    expr : Expr
        Complex sign of expression.

    See Also
    ========

    Abs, conjugate
    Tc                 óÌ   •— t          ¦   «                              ¦   «         }|| k    r<| j        d         j        du r(| j        d         t	          | j        d         ¦  «        z  S |S )Nr   F)ÚsuperÚdoitr   rc   ÚAbs)rK   rM   ÚsÚ	__class__s      €r'   rŠ   z	sign.doitC  sT   ø€ Ý‰GŒG�LŠL‰NŒNˆØ�Š9ˆ9˜œ 1œÔ-°Ð6Ð6Ø”9˜Q”<¥# d¤i°¤lÑ"3Ô"3Ñ3Ð3Øˆr*   c                 ó`  — |j         rã|                     ¦   «         \  }}g }t          |¦  «        }|D ]r}|j        r| }Œ|j        rŒ|j        rAt          |¦  «        }|j        r|t          z  }|j        r| }ŒG| 	                    |¦  «         Œ]| 	                    |¦  «         Œs|t          j        u r"t          |¦  «        t          |¦  «        k    rd S | |  |j        |Ž ¦  «        z  S |t          j        u rt          j        S |j        rt          j        S |j        rt          j        S |j        rt          j        S |j        rt'          |t          ¦  «        r|S |j        rI|j        r|j        t          j        u rt          S t           |z  }|j        rt          S |j        r
t           S d S d S r"   )Úis_MulÚas_coeff_mulr‡   Úis_extended_negativeÚis_extended_positiver.   r:   Úis_comparabler   r7   r   ÚOner9   Ú_new_rawargsr+   rc   r/   ÚNegativeOner2   r3   Úis_PowÚexpÚHalf)	r<   r=   rF   r   ÚunkrŒ   rD   ÚaiÚarg2s	            r'   rG   z	sign.evalI  sÞ  € ð Œ:ð 	3Ø×&Ò&Ñ(Ô(‰GˆAˆtØˆCÝ�Q‘”ˆAØð &ð &�ØÔ)ð &Ø˜�A�AØÔ+ð &Øà”~ð &Ý ™UœU˜ØÔ+ð *Ø¥™F˜AØ!Ô6ð 'ð &' B øàŸJšJ q™MœM˜M˜MàŸ
š
 1™œ˜˜Ø•A”Eˆzˆz�c #™hœh­#¨d©)¬)Ò3Ð3Ø�tØ�s�sÐ+˜3Ô+¨SÐ1Ñ2Ô2Ñ2Ð2Ø•!”%ˆ<ˆ<Ý”5ˆLØŒ;ð 	Ý”6ˆMØÔ#ð 	Ý”5ˆLØÔ#ð 	!Ý”=Ð ØŒ?ð 	Ý˜#�tÑ$Ô$ð Ø�
ØÔð 		ØŒzð ˜cœg­¬Ð/Ð/õ �Ý�2˜‘8ˆDØÔ(ð Ý�ØÔ(ð Ý�r�	ð		ð 		ðð r*   c                 ó\   — t          | j        d         j        ¦  «        rt          j        S d S rX   )r   r   rc   r   r”   r_   s    r'   Ú	_eval_Abszsign._eval_Abs{  s,   € Ý�T”Y˜q”\Ô)Ñ*Ô*ð 	Ý”5ˆLð	ð 	r*   c                 óP   — t          t          | j        d         ¦  «        ¦  «        S rX   )r‡   r4   r   r_   s    r'   Ú_eval_conjugatezsign._eval_conjugate  s   € Ý•I˜dœi¨œlÑ+Ô+Ñ,Ô,Ð,r*   c                 óT  — | j         d         j        r=ddlm} dt	          | j         d         |d¬¦  «        z   || j         d         ¦  «        z  S | j         d         j        rFddlm} dt	          | j         d         |d¬¦  «        z   |t           | j         d         z  ¦  «        z  S d S )Nr   )Ú
DiracDeltaé   TrQ   )r   r-   Ú'sympy.functions.special.delta_functionsr¢   r   r.   r   )rK   rT   r¢   s      r'   rU   zsign._eval_derivative‚  sÍ   € ØŒ9�QŒ<Ô(ð 	0ØJÐJÐJÐJÐJÐJØ•z $¤)¨A¤,°¸DÐAÑAÔAÑAØ�*˜TœY qœ\Ñ*Ô*ñ+ð +àŒY�qŒ\Ô&ð 	0ØJÐJÐJÐJÐJÐJØ•z $¤)¨A¤,°¸DÐAÑAÔAÑAØ�*�a˜R $¤)¨A¤,Ñ.Ñ/Ô/ñ0ð 0ð	0ð 	0r*   c                 ó.   — | j         d         j        rdS d S rf   )r   Úis_nonnegativer_   s    r'   Ú_eval_is_nonnegativezsign._eval_is_nonnegativeŒ  ó"   € ØŒ9�QŒ<Ô&ð 	Ø�4ð	ð 	r*   c                 ó.   — | j         d         j        rdS d S rf   )r   Úis_nonpositiver_   s    r'   Ú_eval_is_nonpositivezsign._eval_is_nonpositive�  r¨   r*   c                 ó&   — | j         d         j        S rX   )r   r.   r_   s    r'   Ú_eval_is_imaginaryzsign._eval_is_imaginary”  ra   r*   c                 ó&   — | j         d         j        S rX   r‚   r_   s    r'   Ú_eval_is_integerzsign._eval_is_integer—  rƒ   r*   c                 ó&   — | j         d         j        S rX   )r   rc   r_   s    r'   rd   zsign._eval_is_zeroš  s   € ØŒy˜Œ|Ô#Ð#r*   c                 ó€   — t          | j        d         j        ¦  «        r|j        r|j        rt
          j        S d S d S d S rX   )r   r   rc   Ú
is_integerÚis_evenr   r”   )rK   Úothers     r'   Ú_eval_powerzsign._eval_power�  sY   € å�d”i ”lÔ*Ñ+Ô+ð	àÔð	ð ŒMð	õ
 ”5ˆLð	ð 	ð 	ð 	ð 	ð 	r*   r   c                 ó  — | j         d         }|                     |d¦  «        }|dk    r|                      |¦  «        S |dk    r|                     ||¦  «        }t	          |¦  «        dk     rt
          j         nt
          j        S rX   )r   ÚsubsÚfuncÚdirr   r   r”   )rK   rT   ÚnÚlogxÚcdirÚarg0Úx0s          r'   Ú_eval_nserieszsign._eval_nseries¥  sq   € ØŒy˜Œ|ˆØ�YŠY�q˜!‰_Œ_ˆØ�Š7ˆ7Ø—9’9˜R‘=”=Ð Ø�1Š9ˆ9Ø—8’8˜A˜tÑ$Ô$ˆDÝ˜D™œ Aš˜•”ˆvˆv­1¬5Ð0r*   c                 óN   — |j         rt          d|dk    fd|dk     fd¦  «        S d S )Nrz   r   éÿÿÿÿ)r   T)r-   r   rY   s      r'   Ú_eval_rewrite_as_Piecewisezsign._eval_rewrite_as_Piecewise®  s<   € ØÔð 	EÝ˜a  q¢˜\¨B°°a²¨=¸)ÑDÔDÐDð	Eð 	Er*   c                 óB   — ddl m} |j        r ||¦  «        dz  dz
  S d S )Nr   ©Ú	Heavisider£   rz   ©r¤   rÅ   r-   ©rK   r=   rZ   rÅ   s       r'   Ú_eval_rewrite_as_Heavisidezsign._eval_rewrite_as_Heaviside²  sA   € ØEÐEÐEÐEÐEÐEØÔð 	*Ø�9˜S‘>”> AÑ%¨Ñ)Ð)ð	*ð 	*r*   c                 óf   — t          dt          |d¦  «        f|t          |¦  «        z  df¦  «        S rf   )r   r   r‹   rY   s      r'   Ú_eval_rewrite_as_Abszsign._eval_rewrite_as_Abs·  s-   € Ý˜!�R  Q™ZœZ˜¨3µ°S±´©>¸4Ð*@ÑAÔAÐAr*   c                 ó\   — |                       t          | j        d         ¦  «        ¦  «        S rX   )r¸   r   r   )rK   rZ   s     r'   Ú_eval_simplifyzsign._eval_simplifyº  s"   € Ø�yŠy� d¤i°¤lÑ3Ô3Ñ4Ô4Ð4r*   ©r   )rn   ro   rp   rq   Ú
is_complexru   rŠ   rv   rG   rž   r    rU   r§   r«   r­   r¯   rd   rµ   r¿   rÂ   rÈ   rÊ   rÌ   Ú__classcell__)r�   s   @r'   r‡   r‡   	  sH  ø€ € € € € ð4ð 4ðl €JØ€Nðð ð ð ð ð ð/ð /ñ „[ð/ðbð ð ð-ð -ð -ð0ð 0ð 0ðð ð ðð ð ð)ð )ð )ð-ð -ð -ð$ð $ð $ðð ð ð1ð 1ð 1ð 1ðEð Eð Eð*ð *ð *ð
Bð Bð Bð5ð 5ð 5ð 5ð 5ð 5ð 5r*   r‡   c                   ó¾   — e Zd ZU dZee         ed<   dZdZdZ	dZ
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d„Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )r‹   ab  
    Return the absolute value of the argument.

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

    This is an extension of the built-in function ``abs()`` to accept symbolic
    values.  If you pass a SymPy expression to the built-in ``abs()``, it will
    pass it automatically to ``Abs()``.

    Examples
    ========

    >>> from sympy import Abs, Symbol, S, I
    >>> Abs(-1)
    1
    >>> x = Symbol('x', real=True)
    >>> Abs(-x)
    Abs(x)
    >>> Abs(x**2)
    x**2
    >>> abs(-x) # The Python built-in
    Abs(x)
    >>> Abs(3*x + 2*I)
    sqrt(9*x**2 + 4)
    >>> Abs(8*I)
    8

    Note that the Python built-in will return either an Expr or int depending on
    the argument::

        >>> type(abs(-1))
        <... 'int'>
        >>> type(abs(S.NegativeOne))
        <class 'sympy.core.numbers.One'>

    Abs will always return a SymPy object.

    Parameters
    ==========

    arg : Expr
        Real or complex expression.

    Returns
    =======

    expr : Expr
        Absolute value returned can be an expression or integer depending on
        input arg.

    See Also
    ========

    sign, conjugate
    r   TFrz   c                 ób   — |dk    rt          | j        d         ¦  «        S t          | |¦  «        ‚)zE
        Get the first derivative of the argument to Abs().

        rz   r   )r‡   r   r   )rK   Úargindexs     r'   Úfdiffz	Abs.fdiff   s1   € ð
 �qŠ=ˆ=Ý˜œ	 !œÑ%Ô%Ð%å$ T¨8Ñ4Ô4Ð4r*   c                 ó6
  ‡‡— ddl m} t          ‰d¦  «        r‰                     ¦   «         }|�|S t	          ‰t
          ¦  «        st          dt          ‰¦  «        z  ¦  «        ‚ |‰d¬¦  «        Š‰                     ¦   «         \  }}|j	        r|j	        s | |¦  «         | |¦  «        z  S ‰j
        �rg }g }‰j        D ]Æ}|j        rw|j        j        rk|j        j        r_ | |j        ¦  «        }	t	          |	| ¦  «        r|                     |¦  «         ŒW|                     t%          |	|j        ¦  «        ¦  «         Œ€ | |¦  «        }
t	          |
| ¦  «        r|                     |¦  «         Œ±|                     |
¦  «         ŒÇt'          |Ž }|r | t'          |Ž d¬¦  «        nt(          j        }||z  S ‰t(          j        u rt(          j        S ‰t(          j        u rt0          S ddlm}m} ‰j        �r‰                     ¦   «         \  }}|j        r“|j        r5|j        r‰S |t(          j        u rt(          j        S t?          |¦  «        |z  S |j         r|tC          |¦  «        z  S |j"        r5| tC          |¦  «        z   |tF           tI          |¦  «        z  ¦  «        z  S d S | %                    tL          ¦  «        sH ||¦  «         '                    ¦   «         \  }}|tP          |z  z   } |tC          ||z  ¦  «        ¦  «        S t	          ‰|¦  «        r# |tC          ‰j        d         ¦  «        ¦  «        S t	          ‰tR          ¦  «        r‰j*        r‰S ‰j        r‰ S d S ‰j+        rW‰ %                    t0          t(          j,        ¦  «        r2t[          d„ ‰ '                    ¦   «         D ¦   «         ¦  «        rt0          S ‰j.        rt(          j/        S ‰j         r‰S ‰j0        r‰ S ‰j1        rtP           ‰z  }|j         r|S ‰j        rd S  |‰ 2                    ¦   «         d¬¦  «        Š‰ 3                    td          ¦  «        ‰ 3                    td          ¦  «        z
  }|rti          ˆfd	„|D ¦   «         ¦  «        rd S ‰‰k    r�‰‰ k    rˆ‰ 3                    t>          ¦  «        }‰ 5                    d
„ |D ¦   «         ¦  «        }d„ |j	        D ¦   «         }|rti          ˆfd„|D ¦   «         ¦  «        s#tm          to          ‰‰z  ¦  «        ¦  «        S d S d S d S )Nr   )Úsignsimprž   zBad argument type for Abs(): %sFrQ   )r˜   Úlogc              3   ó$   K  — | ]}|j         V — Œd S r"   )Úis_infinite©r%   rD   s     r'   r(   zAbs.eval.<locals>.<genexpr>P  s$   è è € Ð=Ð= Q�1”=Ð=Ð=Ð=Ð=Ð=Ð=r*   c              3   óX   •K  — | ]$}‰                      |j        d          ¦  «        V — Œ%dS )r   N)r8   r   )r%   Úir=   s     €r'   r(   zAbs.eval.<locals>.<genexpr>b  s5   øè è € ÐAÐA°1˜CŸGšG A¤F¨1¤IÑ.Ô.ÐAÐAÐAÐAÐAÐAr*   c                 ó0   — i | ]}|t          d ¬¦  «        “ŒS )T)Úreal)r	   ©r%   rÛ   s     r'   ú
<dictcomp>zAbs.eval.<locals>.<dictcomp>f  s%   € Ð(MÐ(MÐ(MÀ¨­E°tÐ,<Ñ,<Ô,<Ð(MÐ(MÐ(Mr*   c                 ó    — g | ]}|j         ­	|‘ŒS r"   )r-   rÙ   s     r'   ú
<listcomp>zAbs.eval.<locals>.<listcomp>g  s    € ÐVÐVÐV˜¸1Ô;MÐ;U�1Ð;UÐ;UÐ;Ur*   c              3   ó\   •K  — | ]&}‰                      t          |¦  «        ¦  «        V — Œ'd S r"   )r8   r4   )r%   ÚuÚconjs     €r'   r(   zAbs.eval.<locals>.<genexpr>h  s5   øè è € Ð!FÐ!F¸Q $§(¢(­9°Q©<¬<Ñ"8Ô"8Ð!FÐ!FÐ!FÐ!FÐ!FÐ!Fr*   )8Úsympy.simplify.simplifyrÕ   Úhasattrrž   r3   r   Ú	TypeErrorÚtypeÚas_numer_denomÚfree_symbolsr�   r   r—   r˜   r²   Úis_negativeÚbaser7   r   r   r   r”   r+   r,   r   Ú&sympy.functions.elementary.exponentialrÖ   Úas_base_expr-   r³   r–   r‹   Úis_extended_nonnegativer   r‘   r   r:   r8   r   r1   r   r   Úis_positiveÚis_AddÚNegativeInfinityÚanyrc   r/   Úis_extended_nonpositiver.   r4   ÚatomsÚallÚxreplacer   r   )r<   r=   rÕ   Úobjrº   ÚdÚknownrš   ÚtÚbnewÚtnewr˜   rÖ   rì   ÚexponentrD   rE   Úzrœ   Únew_conjr    Úabs_free_argrä   s    `                    @r'   rG   zAbs.eval
  sw  øø€ à4Ð4Ð4Ð4Ð4Ð4å�3˜Ñ$Ô$ð 	Ø—-’-‘/”/ˆCØˆØ�
Ý˜#�tÑ$Ô$ð 	KÝÐ=ÅÀSÁ	Ä	ÑIÑJÔJÐJð ˆh�s UÐ+Ñ+Ô+ˆØ×!Ò!Ñ#Ô#‰ˆˆ1ØŒ>ð 	! !¤.ð 	!Ø�3�q‘6”6˜#˜#˜a™&œ&‘=Ð àŒ:ñ 	ØˆEØˆCØ”Xð +ð +�Ø”8ð + ¤Ô 0ð +°Q´UÔ5Fð +Ø˜3˜qœv™;œ;�DÝ! $¨Ñ,Ô,ð 7ØŸ
š
 1™œ˜˜àŸš¥S¨¨q¬uÑ%5Ô%5Ñ6Ô6Ð6Ð6à˜3˜q™6œ6�DÝ! $¨Ñ,Ô,ð +ØŸ
š
 1™œ˜˜àŸš TÑ*Ô*Ð*Ð*Ý˜�KˆEØ47ÐB�#�#•c˜3�i¨%Ð0Ñ0Ô0Ð0½Q¼UˆCØ˜‘9ÐØ•!”%ˆ<ˆ<Ý”5ˆLØ•!Ô#Ð#Ð#ÝˆIØCÐCÐCÐCÐCÐCÐCÐCàŒ:ñ 	+Ø Ÿ_š_Ñ.Ô.‰NˆD�(ØÔ$ð +ØÔ&ð /ØÔ'ð #Ø"˜
Ø�qœ}Ð,Ð,Ý œu˜Ý˜t™9œ9 hÑ.Ð.ØÔ/ð .Ø¥ H¡¤Ñ-Ð-ØÔ,ð GØ!˜E¥B x¡L¤LÑ0°°µb°S½¸H¹¼Ñ5EÑ1FÔ1FÑFÐFØ�Ø—X’X�fÑ%Ô%ð +à�s˜4‘y”y×-Ò-Ñ/Ô/‘��1Ø�˜!™‘G�Ø�s�2˜h q™j™>œ>Ñ*Ô*Ð*Ý�c˜3ÑÔð 	(Ø�3•r˜#œ( 1œ+‘”Ñ'Ô'Ð'Ý�c�<Ñ(Ô(ð 	ØŒð Ø�
Ø”ð Ø�t�ØˆFØŒ:ð 	˜#Ÿ'š'¥"¥aÔ&8Ñ9Ô9ð 	ÝÐ=Ð=¨#×*:Ò*:Ñ*<Ô*<Ð=Ñ=Ô=Ñ=Ô=ð Ý�	ØŒ;ð 	Ý”6ˆMØÔ&ð 	ØˆJØÔ&ð 	Ø�4ˆKØÔð 	Ý�2˜‘8ˆDØÔ+ð Ø�ØÔð 	ØˆFð ˆx˜Ÿš™œ°%Ð8Ñ8Ô8ˆØ—:’:�iÑ(Ô(¨3¯9ª9µYÑ+?Ô+?Ñ?ˆØð 	�ÐAÐAÐAÐA¸ÐAÑAÔAÑAÔAð 	ØˆFØ�$Š;ˆ;˜3 4 %š<˜<Ø—Y’Y�s‘^”^ˆFØŸ<š<Ð(MÐ(MÀfÐ(MÑ(MÔ(MÑNÔNˆLØVÐV˜lÔ7ÐVÑVÔVˆCØð 2�cÐ!FÐ!FÐ!FÐ!FÀ#Ð!FÑ!FÔ!FÑFÔFð 2Ý�J s¨4¡xÑ0Ô0Ñ1Ô1Ð1ð ˆ;˜<˜<ð2ð 2r*   c                 ó.   — | j         d         j        rdS d S rf   rg   r_   s    r'   Ú_eval_is_realzAbs._eval_is_realk  rj   r*   c                 óN   — | j         d         j        r| j         d         j        S d S rX   )r   r-   r²   r_   s    r'   r¯   zAbs._eval_is_integero  s,   € ØŒ9�QŒ<Ô(ð 	+Ø”9˜Q”<Ô*Ð*ð	+ð 	+r*   c                 ó@   — t          | j        d         j        ¦  «        S rX   ©r   Ú_argsrc   r_   s    r'   Ú_eval_is_extended_nonzerozAbs._eval_is_extended_nonzeros  ó   € Ý˜œ AœÔ.Ñ/Ô/Ð/r*   c                 ó&   — | j         d         j        S rX   )r  rc   r_   s    r'   rd   zAbs._eval_is_zerov  s   € ØŒz˜!Œ}Ô$Ð$r*   c                 ó@   — t          | j        d         j        ¦  «        S rX   r  r_   s    r'   Ú_eval_is_extended_positivezAbs._eval_is_extended_positivey  r	  r*   c                 óN   — | j         d         j        r| j         d         j        S d S rX   )r   r-   Úis_rationalr_   s    r'   Ú_eval_is_rationalzAbs._eval_is_rational|  s,   € ØŒ9�QŒ<Ô(ð 	,Ø”9˜Q”<Ô+Ð+ð	,ð 	,r*   c                 óN   — | j         d         j        r| j         d         j        S d S rX   )r   r-   r³   r_   s    r'   Ú_eval_is_evenzAbs._eval_is_even€  s,   € ØŒ9�QŒ<Ô(ð 	(Ø”9˜Q”<Ô'Ð'ð	(ð 	(r*   c                 óN   — | j         d         j        r| j         d         j        S d S rX   )r   r-   Úis_oddr_   s    r'   Ú_eval_is_oddzAbs._eval_is_odd„  s,   € ØŒ9�QŒ<Ô(ð 	'Ø”9˜Q”<Ô&Ð&ð	'ð 	'r*   c                 ó&   — | j         d         j        S rX   r]   r_   s    r'   r`   zAbs._eval_is_algebraicˆ  ra   r*   c                 ó¼   — | j         d         j        rI|j        rB|j        r| j         d         |z  S |t          j        ur|j        r| j         d         |dz
  z  | z  S d S )Nr   rz   )r   r-   r²   r³   r   r–   Ú
is_Integer)rK   rþ   s     r'   rµ   zAbs._eval_power‹  sm   € ØŒ9�QŒ<Ô(ð 	9¨XÔ-@ð 	9ØÔð 9Ø”y ”| XÑ-Ð-Ø¥¤Ð.Ð.°8Ô3FÐ.Ø”y ”| h°¡lÑ3°DÑ8Ð8Øˆr*   r   c                 ób  — ddl m} | j        d                              |¦  «        d         }|                      ||¦  «        ¦  «        r|                      ||¦  «        |¦  «        }| j        d                              |||¬¦  «        }t          |¦  «        |z                       ¦   «         S )Nr   )rÖ   )rº   r»   )	rí   rÖ   r   Úleadtermr8   r·   r¿   r‡   Úexpand)rK   rT   rº   r»   r¼   rÖ   Ú	directionrŒ   s           r'   r¿   zAbs._eval_nseries“  s¦   € Ø>Ð>Ð>Ð>Ð>Ð>Ø”I˜a”L×)Ò)¨!Ñ,Ô,¨QÔ/ˆ	Ø�=Š=˜˜˜Q™œÑ Ô ð 	5Ø!Ÿš s s¨1¡v¤v¨tÑ4Ô4ˆIØŒI�aŒL×&Ò& q¨A°DÐ&Ñ9Ô9ˆÝ�Y‘” Ñ!×)Ò)Ñ+Ô+Ð+r*   c                 óT  — | j         d         j        s| j         d         j        rEt          | j         d         |d¬¦  «        t	          t          | j         d         ¦  «        ¦  «        z  S t          | j         d         ¦  «        t          t          | j         d         ¦  «        |d¬¦  «        z  t          | j         d         ¦  «        t          t          | j         d         ¦  «        |d¬¦  «        z  z   t          | j         d         ¦  «        z  }| 	                    t          ¦  «        S rP   )
r   r-   r.   r   r‡   r4   r   r:   r‹   Úrewrite)rK   rT   Úrvs      r'   rU   zAbs._eval_derivative›  s  € ØŒ9�QŒ<Ô(ð 	0¨D¬I°a¬LÔ,Eð 	0Ý˜dœi¨œl¨A¸Ð=Ñ=Ô=Ý•y ¤¨1¤Ñ.Ô.Ñ/Ô/ñ0ð 0å�”˜1”ÑÔ¥­B¨t¬y¸¬|Ñ,<Ô,<¸aØð"ñ "ô "ñ Ý ¤	¨!¤Ñ-Ô-µ
½2¸d¼iÈ¼lÑ;KÔ;KØ˜Dð1"ñ 1"ô 1"ñ "ñ"å%(¨¬°1¬Ñ%6Ô%6ñ7ˆð �zŠz�$ÑÔÐr*   c                 óV   — ddl m} |j        r| ||¦  «         || ¦  «        z
  z  S d S )Nr   rÄ   rÆ   rÇ   s       r'   rÈ   zAbs._eval_rewrite_as_Heaviside¤  sN   € ð 	FÐEÐEÐEÐEÐEØÔð 	:Ø˜	˜	 #™œ¨¨°C°4©¬Ñ8Ñ9Ð9ð	:ð 	:r*   c                 ó¶   — |j         rt          ||dk    f| df¦  «        S |j        r1t          t          |z  t          |z  dk    ft           |z  df¦  «        S d S rf   )r-   r   r.   r   rY   s      r'   rÂ   zAbs._eval_rewrite_as_Piecewise«  so   € ØÔð 	BÝ˜c 3¨!¢8˜_°¨t°T¨lÑ;Ô;Ð;ØÔð 	BÝ�a ™e¥Q s¡U¨a¢ZÐ0µA°2°c±6¸4°.ÑAÔAÐAð	Bð 	Br*   c                 ó&   — |t          |¦  «        z  S r"   ©r‡   rY   s      r'   Ú_eval_rewrite_as_signzAbs._eval_rewrite_as_sign±  s   € Ø•4˜‘9”9‰}Ðr*   c                 ó@   — t          |t          |¦  «        z  ¦  «        S r"   )r   r4   rY   s      r'   Ú_eval_rewrite_as_conjugatezAbs._eval_rewrite_as_conjugate´  s   € Ý�C�	 #™œÑ&Ñ'Ô'Ð'r*   N)rz   rÍ   )rn   ro   rp   rq   rr   r   rs   r-   r‘   rï   rt   ru   rÓ   rv   rG   r  r¯   r  rd   r  r  r  r  r`   rµ   r¿   rU   rÈ   rÂ   r#  r%  rw   r*   r'   r‹   r‹   ¾  sz  € € € € € € ð7ð 7ðr �Œ,ÐÐÑàÐØ ÐØ"ÐØ€JØ€Nð5ð 5ð 5ð 5ð ð^2ð ^2ñ „[ð^2ð@ð ð ð+ð +ð +ð0ð 0ð 0ð%ð %ð %ð0ð 0ð 0ð,ð ,ð ,ð(ð (ð (ð'ð 'ð 'ð)ð )ð )ðð ð ð,ð ,ð ,ð ,ð ð  ð  ð:ð :ð :ðBð Bð Bðð ð ð(ð (ð (ð (ð (r*   r‹   c                   óD   — e Zd ZdZdZdZdZdZed„ ¦   «         Z	d„ Z
d„ ZdS )r=   a©  
    Returns the argument (in radians) of a complex number. The argument is
    evaluated in consistent convention with ``atan2`` where the branch-cut is
    taken along the negative real axis and ``arg(z)`` is in the interval
    $(-\pi,\pi]$. For a positive number, the argument is always 0; the
    argument of a negative number is $\pi$; and the argument of 0
    is undefined and returns ``nan``. So the ``arg`` function will never nest
    greater than 3 levels since at the 4th application, the result must be
    nan; for a real number, nan is returned on the 3rd application.

    Examples
    ========

    >>> from sympy import arg, I, sqrt, Dummy
    >>> from sympy.abc import x
    >>> arg(2.0)
    0
    >>> arg(I)
    pi/2
    >>> arg(sqrt(2) + I*sqrt(2))
    pi/4
    >>> arg(sqrt(3)/2 + I/2)
    pi/6
    >>> arg(4 + 3*I)
    atan(3/4)
    >>> arg(0.8 + 0.6*I)
    0.643501108793284
    >>> arg(arg(arg(arg(x))))
    nan
    >>> real = Dummy(real=True)
    >>> arg(arg(arg(real)))
    nan

    Parameters
    ==========

    arg : Expr
        Real or complex expression.

    Returns
    =======

    value : Expr
        Returns arc tangent of arg measured in radians.

    Tc                 ó�  — |}t          d¦  «        D ]<}t          || ¦  «        r|j        d         }Œ |dk    r|j        rt          j        c S  nt          j        S ddlm}m} t          ||¦  «        rt          |t          ¦  «        S t          ||¦  «        rWt          |j        d         ¦  «        }|j        r6|dt          j        z  z  }|t          j        k    r|dt          j        z  z  }|S |j        sVt          |¦  «                             ¦   «         \  }}|j        rt%          d„ |j        D ¦   «         Ž }t'          |¦  «        |z  }n|}t)          d„ |                     t,          ¦  «        D ¦   «         ¦  «        rd S ddlm}	 |                     ¦   «         \  }
} |	||
¦  «        }|j        r|S ||k    r | |d¬	¦  «        S d S )
Né   r   r£   ©r˜   Ú	exp_polarc                 óR   — g | ]$}t          |¦  «        d vr|nt          |¦  «        ‘Œ%S ))rÁ   rz   r"  rÙ   s     r'   rá   zarg.eval.<locals>.<listcomp>  sC   € ð 0ð 0ð 0Ø !õ $(¨¡7¤7°'Ð#9Ð#9˜Q˜QÝ˜‘G”Gð0ð 0ð 0r*   c              3   ó(   K  — | ]}|j         d u V — Œd S r"   )r’   rÞ   s     r'   r(   zarg.eval.<locals>.<genexpr>  s*   è è € ÐPÐP°!ˆqÔ%¨Ð-ÐPÐPÐPÐPÐPÐPr*   ©Úatan2FrQ   )Úranger3   r   r-   r   r+   rí   r˜   r*  Úperiodic_argumentr   r:   r“   ÚPiÚis_Atomr   Úas_coeff_Mulr�   r   r‡   ró   rõ   r   Ú(sympy.functions.elementary.trigonometricr.  r1   Ú	is_number)r<   r=   rD   rÛ   r˜   r*  Úi_rF   Úarg_r.  rT   Úyr  s                r'   rG   zarg.evalí  s  € àˆÝ�q‘”ð 	ð 	ˆAÝ˜!˜SÑ!Ô!ð Ø”F˜1”I��à˜’6�6˜aÔ0�6Ýœ5�L�L�LØ�å”5ˆLØIÐIÐIÐIÐIÐIÐIÐIÝ�c˜9Ñ%Ô%ð 	Ý$ S­"Ñ-Ô-Ð-Ý˜˜SÑ!Ô!ð 	Ý�C”H˜Q”K‘”ˆBØÔð Ø�a�œ‘f‘�Ø�œ’9�9Ø˜!�AœD™&‘L�BØ�	àŒ{ð 	Ý" 3Ñ'Ô'×4Ò4Ñ6Ô6‰GˆAˆtØŒ{ð 1Ýð 0ð 0Ø%)¤Yð0ñ 0ô 0ð 1�å˜‘7”7˜4‘<ˆDˆDàˆDÝÐPÐP°t·z²zÅ,Ñ7OÔ7OÐPÑPÔPÑPÔPð 	ØˆFØBÐBÐBÐBÐBÐBØ× Ò Ñ"Ô"‰ˆˆ1ØˆU�1�a‰[Œ[ˆØŒ<ð 	ØˆIØ�3Š;ˆ;Ø�3�t eÐ,Ñ,Ô,Ð,ð ˆ;r*   c                 ó´   — | j         d                              ¦   «         \  }}|t          ||d¬¦  «        z  |t          ||d¬¦  «        z  z
  |dz  |dz  z   z  S )Nr   TrQ   r£   )r   r1   r   )rK   rû   rT   r8  s       r'   rU   zarg._eval_derivative  sm   € ØŒy˜Œ|×(Ò(Ñ*Ô*‰ˆˆ1Ø•J˜q !¨dÐ3Ñ3Ô3Ñ3°aÝ˜q !¨dÐ3Ñ3Ô3ñ74ñ 4Ø89¸1¹¸qÀ!¹t¹ñEð 	Er*   c                 ój   — ddl m} | j        d                              ¦   «         \  }} |||¦  «        S )Nr   r-  )r4  r.  r   r1   )rK   r=   rZ   r.  rT   r8  s         r'   Ú_eval_rewrite_as_atan2zarg._eval_rewrite_as_atan2  s?   € ØBÐBÐBÐBÐBÐBØŒy˜Œ|×(Ò(Ñ*Ô*‰ˆˆ1Øˆu�Q˜‰{Œ{Ðr*   N)rn   ro   rp   rq   r-   Úis_realrh   ru   rv   rG   rU   r;  rw   r*   r'   r=   r=   ¸  sq   € € € € € ð-ð -ð^ ÐØ€GØ€IØ€Nàð&-ð &-ñ „[ð&-ðPEð Eð Eð
ð ð ð ð r*   r=   c                   óV   — e Zd ZdZdZed„ ¦   «         Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ ZdS )r4   a>  
    Returns the *complex conjugate* [1]_ of an argument.
    In mathematics, the complex conjugate of a complex number
    is given by changing the sign of the imaginary part.

    Thus, the conjugate of the complex number
    :math:`a + ib` (where $a$ and $b$ are real numbers) is :math:`a - ib`

    Examples
    ========

    >>> from sympy import conjugate, I
    >>> conjugate(2)
    2
    >>> conjugate(I)
    -I
    >>> conjugate(3 + 2*I)
    3 - 2*I
    >>> conjugate(5 - I)
    5 + I

    Parameters
    ==========

    arg : Expr
        Real or complex expression.

    Returns
    =======

    arg : Expr
        Complex conjugate of arg as real, imaginary or mixed expression.

    See Also
    ========

    sign, Abs

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Complex_conjugation
    Tc                 ó6   — |                      ¦   «         }|�|S d S r"   )r    ©r<   r=   rø   s      r'   rG   zconjugate.evalO  ó$   € à×!Ò!Ñ#Ô#ˆØˆ?ØˆJð ˆ?r*   c                 ó   — t           S r"   )r4   r_   s    r'   Úinversezconjugate.inverseU  s   € ÝÐr*   c                 ó:   — t          | j        d         d¬¦  «        S rP   ©r‹   r   r_   s    r'   rž   zconjugate._eval_AbsX  ó   € Ý�4”9˜Q”<¨$Ð/Ñ/Ô/Ð/r*   c                 ó6   — t          | j        d         ¦  «        S rX   ©Ú	transposer   r_   s    r'   Ú_eval_adjointzconjugate._eval_adjoint[  ó   € Ý˜œ 1œÑ&Ô&Ð&r*   c                 ó   — | j         d         S rX   ©r   r_   s    r'   r    zconjugate._eval_conjugate^  ó   € ØŒy˜Œ|Ðr*   c                 óÌ   — |j         r*t          t          | j        d         |d¬¦  «        ¦  «        S |j        r+t          t          | j        d         |d¬¦  «        ¦  «         S d S rP   )r<  r4   r   r   r.   rS   s     r'   rU   zconjugate._eval_derivativea  sm   € ØŒ9ð 	JÝ�Z¨¬	°!¬°aÀ$ÐGÑGÔGÑHÔHÐHØŒ^ð 	JÝ�j¨¬°1¬°qÀ4ÐHÑHÔHÑIÔIÐIÐIð	Jð 	Jr*   c                 ó6   — t          | j        d         ¦  «        S rX   ©Úadjointr   r_   s    r'   Ú_eval_transposezconjugate._eval_transposeg  ó   € Ý�t”y ”|Ñ$Ô$Ð$r*   c                 ó&   — | j         d         j        S rX   r]   r_   s    r'   r`   zconjugate._eval_is_algebraicj  ra   r*   N)rn   ro   rp   rq   ru   rv   rG   rB  rž   rI  r    rU   rR  r`   rw   r*   r'   r4   r4   !  s«   € € € € € ð*ð *ðV €Nàðð ñ „[ðð
ð ð ð0ð 0ð 0ð'ð 'ð 'ðð ð ðJð Jð Jð%ð %ð %ð)ð )ð )ð )ð )r*   r4   c                   ó:   — e Zd ZdZed„ ¦   «         Zd„ Zd„ Zd„ ZdS )rH  aŒ  
    Linear map transposition.

    Examples
    ========

    >>> from sympy import transpose, Matrix, MatrixSymbol
    >>> A = MatrixSymbol('A', 25, 9)
    >>> transpose(A)
    A.T
    >>> B = MatrixSymbol('B', 9, 22)
    >>> transpose(B)
    B.T
    >>> transpose(A*B)
    B.T*A.T
    >>> M = Matrix([[4, 5], [2, 1], [90, 12]])
    >>> M
    Matrix([
    [ 4,  5],
    [ 2,  1],
    [90, 12]])
    >>> transpose(M)
    Matrix([
    [4, 2, 90],
    [5, 1, 12]])

    Parameters
    ==========

    arg : Matrix
         Matrix or matrix expression to take the transpose of.

    Returns
    =======

    value : Matrix
        Transpose of arg.

    c                 ó6   — |                      ¦   «         }|�|S d S r"   )rR  r?  s      r'   rG   ztranspose.eval—  r@  r*   c                 ó6   — t          | j        d         ¦  «        S rX   ©r4   r   r_   s    r'   rI  ztranspose._eval_adjoint�  rJ  r*   c                 ó6   — t          | j        d         ¦  «        S rX   rP  r_   s    r'   r    ztranspose._eval_conjugate   rS  r*   c                 ó   — | j         d         S rX   rL  r_   s    r'   rR  ztranspose._eval_transpose£  rM  r*   N)	rn   ro   rp   rq   rv   rG   rI  r    rR  rw   r*   r'   rH  rH  n  sg   € € € € € ð&ð &ðP ðð ñ „[ðð
'ð 'ð 'ð%ð %ð %ðð ð ð ð r*   rH  c                   óH   — e Zd ZdZed„ ¦   «         Zd„ Zd„ Zd„ Zd	d„Z	d„ Z
dS )
rQ  aµ  
    Conjugate transpose or Hermite conjugation.

    Examples
    ========

    >>> from sympy import adjoint, MatrixSymbol
    >>> A = MatrixSymbol('A', 10, 5)
    >>> adjoint(A)
    Adjoint(A)

    Parameters
    ==========

    arg : Matrix
        Matrix or matrix expression to take the adjoint of.

    Returns
    =======

    value : Matrix
        Represents the conjugate transpose or Hermite
        conjugation of arg.

    c                 ó€   — |                      ¦   «         }|�|S |                     ¦   «         }|�t          |¦  «        S d S r"   )rI  rR  r4   r?  s      r'   rG   zadjoint.evalÂ  sF   € à×ÒÑ!Ô!ˆØˆ?ØˆJØ×!Ò!Ñ#Ô#ˆØˆ?Ý˜S‘>”>Ð!ð ˆ?r*   c                 ó   — | j         d         S rX   rL  r_   s    r'   rI  zadjoint._eval_adjointË  rM  r*   c                 ó6   — t          | j        d         ¦  «        S rX   rG  r_   s    r'   r    zadjoint._eval_conjugateÎ  rJ  r*   c                 ó6   — t          | j        d         ¦  «        S rX   rX  r_   s    r'   rR  zadjoint._eval_transposeÑ  rJ  r*   Nc                 óf   — |                      | j        d         ¦  «        }d|z  }|r	d|›d|›d�}|S )Nr   z%s^{\dagger}z\left(z	\right)^{Ú})Ú_printr   )rK   Úprinterr˜   r   r=   Útexs         r'   Ú_latexzadjoint._latexÔ  sG   € Ø�nŠn˜TœY qœ\Ñ*Ô*ˆØ Ñ#ˆØð 	7ð 	7Ø-0¨S¨S°#°#°#Ð6ˆCØˆ
r*   c                 óŒ   — ddl m}  |j        | j        d         g|¢R Ž }|j        r| |d¦  «        z  }n| |d¦  «        z  }|S )Nr   )Ú
prettyFormu   â€ ú+)Ú sympy.printing.pretty.stringpictrg  rb  r   Ú_use_unicode)rK   rc  r   rg  Úpforms        r'   Ú_prettyzadjoint._prettyÛ  sk   € Ø?Ð?Ð?Ð?Ð?Ð?Ø�”˜tœy¨œ|Ð3¨dÐ3Ð3Ð3ˆØÔð 	+Ø˜:˜: lÑ3Ô3Ñ3ˆEˆEà˜:˜: c™?œ?Ñ*ˆEØˆr*   r"   )rn   ro   rp   rq   rv   rG   rI  r    rR  re  rl  rw   r*   r'   rQ  rQ  §  s‰   € € € € € ðð ð4 ð"ð "ñ „[ð"ðð ð ð'ð 'ð 'ð'ð 'ð 'ðð ð ð ðð ð ð ð r*   rQ  c                   ó<   — e Zd ZdZdZdZed„ ¦   «         Zd„ Zd„ Z	dS )Ú
polar_lifta¢  
    Lift argument to the Riemann surface of the logarithm, using the
    standard branch.

    Examples
    ========

    >>> from sympy import Symbol, polar_lift, I
    >>> p = Symbol('p', polar=True)
    >>> x = Symbol('x')
    >>> polar_lift(4)
    4*exp_polar(0)
    >>> polar_lift(-4)
    4*exp_polar(I*pi)
    >>> polar_lift(-I)
    exp_polar(-I*pi/2)
    >>> polar_lift(I + 2)
    polar_lift(2 + I)

    >>> polar_lift(4*x)
    4*polar_lift(x)
    >>> polar_lift(4*p)
    4*p

    Parameters
    ==========

    arg : Expr
        Real or complex expression.

    See Also
    ========

    sympy.functions.elementary.exponential.exp_polar
    periodic_argument
    TFc                 ó  — ddl m} |j        rR ||¦  «        }|dt          dz  t           dz  t          fv r)ddlm}  |t          |z  ¦  «        t          |¦  «        z  S |j        r|j	        }n|g}g }g }g }|D ]$}|j
        r||gz  }Œ|j        r||gz  }Œ||gz  }Œ%t          |¦  «        t          |¦  «        k     rN|r#t          ||z   Ž t          t          |Ž ¦  «        z  S |rt          ||z   Ž S ddlm} t          |Ž  |d¦  «        z  S d S )Nr   ©r=   r£   ©r*  )Ú$sympy.functions.elementary.complexesr=   r5  r   rí   r*  r   Úabsr�   r   Úis_polarrð   r9   r   rn  )	r<   r=   ÚargumentÚarr*  r   r>   r@   Úpositives	            r'   rG   zpolar_lift.eval  sy  € àHÐHÐHÐHÐHÐHØŒ=ð 	0Ø�˜#‘”ˆBð
 �a�˜A™¥˜s 1™u¥bÐ)Ð)Ð)ØLÐLÐLÐLÐLÐLØ �y¥ 2¡‘”¥s¨3¡x¤xÑ/Ð/àŒ:ð 	Ø”8ˆDˆDà�5ˆDØˆØˆØˆØð 	"ð 	"ˆCØŒ|ð "Ø˜S˜EÑ!��Ø”ð "Ø˜S˜EÑ!��à˜S˜EÑ!��Ýˆx‰=Œ=�3˜t™9œ9Ò$Ð$Øð 3Ý˜X¨Ñ0Ð2µ:½cÀ8¸nÑ3MÔ3MÑMÐMØð 3Ý˜X¨Ñ0Ð2Ð2àLÐLÐLÐLÐLÐLÝ˜H�~ i i°¡l¤lÑ2Ð2ð %Ð$r*   c                 óB   — | j         d                              |¦  «        S )z. Careful! any evalf of polar numbers is flaky r   )r   Ú_eval_evalf)rK   Úprecs     r'   ry  zpolar_lift._eval_evalf6  s   € àŒy˜Œ|×'Ò'¨Ñ-Ô-Ð-r*   c                 ó:   — t          | j        d         d¬¦  «        S rP   rD  r_   s    r'   rž   zpolar_lift._eval_Abs:  rE  r*   N)
rn   ro   rp   rq   rt  r“   rv   rG   ry  rž   rw   r*   r'   rn  rn  é  sc   € € € € € ð#ð #ðJ €HØ€Màð!3ð !3ñ „[ð!3ðF.ð .ð .ð0ð 0ð 0ð 0ð 0r*   rn  c                   óD   — e Zd ZdZed„ ¦   «         Zed„ ¦   «         Zd„ ZdS )r0  aÅ  
    Represent the argument on a quotient of the Riemann surface of the
    logarithm. That is, given a period $P$, always return a value in
    $(-P/2, P/2]$, by using $\exp(PI) = 1$.

    Examples
    ========

    >>> from sympy import exp_polar, periodic_argument
    >>> from sympy import I, pi
    >>> periodic_argument(exp_polar(10*I*pi), 2*pi)
    0
    >>> periodic_argument(exp_polar(5*I*pi), 4*pi)
    pi
    >>> from sympy import exp_polar, periodic_argument
    >>> from sympy import I, pi
    >>> periodic_argument(exp_polar(5*I*pi), 2*pi)
    pi
    >>> periodic_argument(exp_polar(5*I*pi), 3*pi)
    -pi
    >>> periodic_argument(exp_polar(5*I*pi), pi)
    0

    Parameters
    ==========

    ar : Expr
        A polar number.

    period : Expr
        The period $P$.

    See Also
    ========

    sympy.functions.elementary.exponential.exp_polar
    polar_lift : Lift argument to the Riemann surface of the logarithm
    principal_branch
    c           	      ó
  — ddl m}m} |j        r|j        }n|g}d}|D ]ã}|j        s|t          |¦  «        z  }Œt          ||¦  «        r#||j         	                    ¦   «         d         z  }ŒO|j
        rX|j         	                    ¦   «         \  }}||t          |j        ¦  «        z  | |t          |j        ¦  «        ¦  «        z  z   z  }Œ®t          |t          ¦  «        r|t          |j        d         ¦  «        z  }Œá d S |S )Nr   )r*  rÖ   rz   )rí   r*  rÖ   r�   r   rt  r=   r3   r˜   r1   r—   Úunbranched_argumentrì   rs  rn  )	r<   rv  r*  rÖ   r   rt   rD   r   r:   s	            r'   Ú_getunbranchedz periodic_argument._getunbranchedg  s1  € àIÐIÐIÐIÐIÐIÐIÐIØŒ9ð 	Ø”7ˆDˆDà�4ˆDØˆ
Øð 	ð 	ˆAØ”:ð Ø�c !™fœfÑ$�
�
Ý˜A˜yÑ)Ô)ð 	Ø˜aœe×0Ò0Ñ2Ô2°1Ô5Ñ5�
�
Ø”ð Øœ×+Ò+Ñ-Ô-‘��BØ˜bÕ!4Ø”Fñ"ô "ñ Ø   ¥S¨¬¡[¤[Ñ!1Ô!1Ñ1ñ2ñ 2�
�
å˜A�zÑ*Ô*ð Ø�c !¤&¨¤)™nœnÑ,�
�
à�t�tØÐr*   c                 óÆ  — |j         sd S |t          k    r#t          |t          ¦  «        rt	          |j        Ž S t          |t          ¦  «        r)|dt          z  k    rt	          |j        d         |¦  «        S |j        rMd„ |j        D ¦   «         }t          |¦  «        t          |j        ¦  «        k    rt	          t          |Ž |¦  «        S |                      |¦  «        }|€d S ddlm}m} |                     t          ||¦  «        rd S |t          k    r|S |t          k    r>ddlm}  |||z  t$          j        z
  ¦  «        |z  }|                     |¦  «        s||z
  S d S d S )Nr£   r   c                 ó    — g | ]}|j         °	|‘ŒS rw   )rð   )r%   rT   s     r'   rá   z*periodic_argument.eval.<locals>.<listcomp>‹  s   € Ð?Ð?Ð?˜Q°´Ð?�qÐ?Ð?Ð?r*   )Úatanr.  ©Úceiling)r’   r   r3   Úprincipal_branchr0  r   rn  r   r�   r9   r   r  r4  r‚  r.  r8   Ú#sympy.functions.elementary.integersr„  r   r™   )	r<   rv  ÚperiodÚnewargsrt   r‚  r.  r„  rº   s	            r'   rG   zperiodic_argument.eval~  s…  € ð Ô*ð 	Ø�4Ø•RŠ<ˆ<�J rÕ+;Ñ<Ô<ˆ<Ý$ b¤gÐ.Ð.Ý�b�*Ñ%Ô%ð 	9¨&°Aµb±Dª.¨.Ý$ R¤W¨Q¤Z°Ñ8Ô8Ð8ØŒ9ð 	@Ø?Ð? "¤'Ð?Ñ?Ô?ˆGÝ�7‰|Œ|�s 2¤7™|œ|Ò+Ð+Ý(­¨g¨¸Ñ?Ô?Ð?Ø×'Ò'¨Ñ+Ô+ˆ
ØÐØ�4ØHÐHÐHÐHÐHÐHÐHÐHØ�>Š>Õ+¨U°DÑ9Ô9ð 	Ø�4Ø•RŠ<ˆ<ØÐØ•RŠ<ˆ<ØCÐCÐCÐCÐCÐCØ�˜
 6Ñ)­A¬FÑ2Ñ3Ô3°FÑ:ˆAØ—5’5˜‘>”>ð &Ø! A‘~Ð%ð	 ˆ<ð&ð &r*   c                 óV  — | j         \  }}|t          k    r3t                               |¦  «        }|€| S |                     |¦  «        S t          |t          ¦  «                             |¦  «        }ddlm} | |||z  t          j        z
  ¦  «        |z  z
                       |¦  «        S )Nr   rƒ  )	r   r   r0  r  ry  r†  r„  r   r™   )rK   rz  rÿ   r‡  rt   Úubr„  s          r'   ry  zperiodic_argument._eval_evalfœ  sª   € Ø”I‰	ˆˆ6Ø•RŠ<ˆ<Ý*×9Ò9¸!Ñ<Ô<ˆJØÐ!Ø�Ø×)Ò)¨$Ñ/Ô/Ð/Ý˜q¥"Ñ%Ô%×1Ò1°$Ñ7Ô7ˆØ?Ð?Ð?Ð?Ð?Ð?Ø�W�W˜R ™Y­¬Ñ/Ñ0Ô0°Ñ7Ñ7×DÒDÀTÑJÔJÐJr*   N)rn   ro   rp   rq   rv   r  rG   ry  rw   r*   r'   r0  r0  >  si   € € € € € ð&ð &ðP ðð ñ „[ðð, ð&ð &ñ „[ð&ð:	Kð 	Kð 	Kð 	Kð 	Kr*   r0  c                 ó,   — t          | t          ¦  «        S )a\  
    Returns periodic argument of arg with period as infinity.

    Examples
    ========

    >>> from sympy import exp_polar, unbranched_argument
    >>> from sympy import I, pi
    >>> unbranched_argument(exp_polar(15*I*pi))
    15*pi
    >>> unbranched_argument(exp_polar(7*I*pi))
    7*pi

    See also
    ========

    periodic_argument
    )r0  r   rp  s    r'   r~  r~  ¨  s   € õ& ˜S¥"Ñ%Ô%Ð%r*   c                   ó6   — e Zd ZdZdZdZed„ ¦   «         Zd„ ZdS )r…  aÎ  
    Represent a polar number reduced to its principal branch on a quotient
    of the Riemann surface of the logarithm.

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

    This is a function of two arguments. The first argument is a polar
    number `z`, and the second one a positive real number or infinity, `p`.
    The result is ``z mod exp_polar(I*p)``.

    Examples
    ========

    >>> from sympy import exp_polar, principal_branch, oo, I, pi
    >>> from sympy.abc import z
    >>> principal_branch(z, oo)
    z
    >>> principal_branch(exp_polar(2*pi*I)*3, 2*pi)
    3*exp_polar(0)
    >>> principal_branch(exp_polar(2*pi*I)*3*z, 2*pi)
    3*principal_branch(z, 2*pi)

    Parameters
    ==========

    x : Expr
        A polar number.

    period : Expr
        Positive real number or infinity.

    See Also
    ========

    sympy.functions.elementary.exponential.exp_polar
    polar_lift : Lift argument to the Riemann surface of the logarithm
    periodic_argument
    TFc                 óZ  — ddl m} t          |t          ¦  «        rt	          |j        d         |¦  «        S |t          k    r|S t          |t          ¦  «        }t          ||¦  «        }||k    rÞ|                     t          ¦  «        sÄ|                     t          ¦  «        sªt          |¦  «        }d„ }| 	                    t          |¦  «        }t          |t          ¦  «        }|                     t          ¦  «        sN||k    r |t          ||z
  z  ¦  «        |z  }n|}|j        s#|                     |¦  «        s| |d¦  «        z  }|S |j        s|d}
}	n |j        |j        Ž \  }	}
g }|
D ]}|j        r|	|z  }	Œ||gz  }Œt          |¦  «        }
t          |	|¦  «        }|                     t          ¦  «        rd S |j        r�t#          |	¦  «        |k    s|dk    rt|
dk    rn|	dk    rh|dk    r't%          |	¦  «        t	          t'          |
Ž |¦  «        z  S t	           |t          |z  ¦  «        t'          |
Ž z  |¦  «        t%          |	¦  «        z  S |j        rLt%          |¦  «        |dz  k     dk    s	||dz  k    r-|
dk    r% ||t          z  ¦  «        t%          |	¦  «        z  S d S d S d S )Nr   rq  c                 óN   — t          | t          ¦  «        st          | ¦  «        S | S r"   )r3   r   rn  )Úexprs    r'   Úmrz!principal_branch.eval.<locals>.mr÷  s'   € Ý! $­Ñ/Ô/ð ,Ý% dÑ+Ô+Ð+Ø�r*   rw   rz   r£   T)rí   r*  r3   rn  r…  r   r   r0  r8   Úreplacer   rt  rê   r�   rð   Útupler5  r~  rs  r   )rK   rT   r‡  r*  rŠ  ÚbargÚplr�  ÚresrF   ÚmÚothersr8  r=   s                 r'   rG   zprincipal_branch.evalê  sÝ  € àDÐDÐDÐDÐDÐDÝ�a�Ñ$Ô$ð 	7Ý# A¤F¨1¤I¨vÑ6Ô6Ð6Ø•RŠ<ˆ<ØˆHÝ˜q¥"Ñ%Ô%ˆÝ   FÑ+Ô+ˆØ�Š:ˆ:˜bŸfšfÕ%6Ñ7Ô7ˆ:ØŸšÕ!2Ñ3Ô3ð å˜A‘”ˆBðð ð ð —’�J¨Ñ+Ô+ˆBå" 2¥rÑ*Ô*ˆBØ—6’6�*Ñ%Ô%ð Ø˜’:�:Ø#˜)¥A t¨b¡y¡MÑ2Ô2°2Ñ5�C�Cà�CØ”|ð (¨C¯GªG°IÑ,>Ô,>ð (Ø˜9˜9 Q™<œ<Ñ'�CØ�
àŒ~ð 	3Ø�bˆqˆAˆAà!�1”> 1¤>Ð2‰DˆAˆqØˆØð 	ð 	ˆAØŒ}ð Ø�Q‘��à˜1˜#‘��Ý�&‰MŒMˆÝ  6Ñ*Ô*ˆØ�7Š7Õ$Ñ%Ô%ð 	Ø�4ØŒ=ð 	MÕ1°!Ñ4Ô4¸Ò;Ð;Ø" ašx˜x¨A°ªG¨G¸¸Qº¸Ø�aŠxˆxÝ˜1‘v”vÕ.­s°A¨w¸Ñ?Ô?Ñ?Ð?Ý# I I­a°©eÑ$4Ô$4µS¸!°WÑ$<¸fÑEÔEÅcÈ!ÁfÄfÑLÐLØŒ=ð 	+�s 3™xœx¨&°©(Ò2°tÒ;Ð;¸sÀfÈQÁhº¸Ø˜’G�GØ�9˜S¥™UÑ#Ô#¥C¨¡F¤FÑ*Ð*ð	+ð 	+Ø�Gð @O¸r*   c                 ó   — | j         \  }}t          ||¦  «                             |¦  «        }t          |¦  «        t          k    s|t           k    r| S ddlm} t          |¦  «         |t          |z  ¦  «        z                       |¦  «        S )Nr   )r˜   )r   r0  ry  rs  r   rí   r˜   r   )rK   rz  rÿ   r‡  Úpr˜   s         r'   ry  zprincipal_branch._eval_evalf  s„   € Ø”I‰	ˆˆ6Ý˜a Ñ(Ô(×4Ò4°TÑ:Ô:ˆÝˆq‰6Œ6•BŠ;ˆ;˜!¥˜sš(˜(ØˆKØ>Ð>Ð>Ð>Ð>Ð>Ý�A‘”�s�s�1˜Q™3‘x”x‘×,Ò,¨TÑ2Ô2Ð2r*   N)	rn   ro   rp   rq   rt  r“   rv   rG   ry  rw   r*   r'   r…  r…  ¾  sT   € € € € € ð&ð &ðP €HØ€Màð1+ð 1+ñ „[ð1+ðf3ð 3ð 3ð 3ð 3r*   r…  Fc                 óv  ‡‡— ddl m} | j        r| S | j        r‰st	          | ¦  «        S t          | t          ¦  «        r‰s‰rt	          | ¦  «        S | j        r| S | j        r. | j	        ˆfd„| j
        D ¦   «         Ž }‰rt	          |¦  «        S |S | j        rJ| j        t          j        k    r5|  	                    t          j        t          | j        ‰d¬¦  «        ¦  «        S | j        r | j	        ˆfd„| j
        D ¦   «         Ž S t          | |¦  «        rŒt          | j        ‰‰¬¦  «        }g }| j
        dd …         D ]M}t          |d         d‰¬¦  «        }t          |dd …         ‰‰¬¦  «        }	|                     |f|	z   ¦  «         ŒN ||ft)          |¦  «        z   Ž S  | j	        ˆˆfd	„| j
        D ¦   «         Ž S )
Nr   )ÚIntegralc                 ó4   •— g | ]}t          |‰d ¬¦  «        ‘ŒS )T©Úpause©Ú	_polarify©r%   r=   Úlifts     €r'   rá   z_polarify.<locals>.<listcomp>2  s(   ø€ ÐJÐJÐJ¸3•i  T°Ð6Ñ6Ô6ÐJÐJÐJr*   Fr�  c                 ó4   •— g | ]}t          |‰d ¬¦  «        ‘ŒS )Fr�  rŸ  r¡  s     €r'   rá   z_polarify.<locals>.<listcomp>9  s(   ø€ ÐNÐNÐN¸s� 3¨°EÐ:Ñ:Ô:ÐNÐNÐNr*   rz   )r¢  rž  c                 ób   •— g | ]+}t          |t          ¦  «        rt          |‰‰¬ ¦  «        n|‘Œ,S )r�  )r3   r   r   )r%   r=   r¢  rž  s     €€r'   rá   z_polarify.<locals>.<listcomp>D  sR   ø€ ð Oð Oð OØ?B�J s­DÑ1Ô1ð;� 3¨°EÐ:Ñ:Ô:Ð:Ø7:ðOð Oð Or*   )Úsympy.integrals.integralsr›  rt  r5  rn  r3   r   r2  rñ   r¸   r   r—   rì   r   ÚExp1r   r˜   r2   Úfunctionr7   r’  )
Úeqr¢  rž  r›  Úrr¸   ÚlimitsÚlimitÚvarÚrests
    ``       r'   r   r   '  s3  øø€ Ø2Ð2Ð2Ð2Ð2Ð2Ø	„{ð Øˆ	Ø	„|ð ˜Eð Ý˜"‰~Œ~ÐÝ�"•fÑÔð P eð P°ð PÝ˜"‰~Œ~ÐØ	Œð PØˆ	Ø	Œð PØˆBŒGÐJÐJÐJÐJÀ"Ä'ÐJÑJÔJÐKˆØð 	!Ý˜a‘=”=Ð ØˆØ	Œð P�r”w¥!¤&Ò(Ð(Ø�wŠw•q”v�y¨¬°¸UÐCÑCÔCÑDÔDÐDØ	Œð PØˆrŒwÐNÐNÐNÐNÀbÄgÐNÑNÔNÐOÐOÝ	�B˜Ñ	!Ô	!ð På˜œ d°%Ð8Ñ8Ô8ˆØˆØ”W˜Q˜R˜R”[ð 	)ð 	)ˆEÝ˜E !œH¨5¸Ð>Ñ>Ô>ˆCÝ˜U 1 2 2œY¨T¸Ð?Ñ?Ô?ˆDØ�MŠM˜3˜& 4™-Ñ(Ô(Ð(Ð(Øˆx˜4˜'¥E¨&¡M¤MÑ1Ð3Ð3àˆrŒwð Oð Oð Oð Oð OØFHÄgðOñ Oô Oð Pð 	Pr*   Tc                 óØ   — |rd}t          t          | ¦  «        |¦  «        } |s| S d„ | j        D ¦   «         }|                      |¦  «        } | d„ |                     ¦   «         D ¦   «         fS )aÓ  
    Turn all numbers in eq into their polar equivalents (under the standard
    choice of argument).

    Note that no attempt is made to guess a formal convention of adding
    polar numbers, expressions like $1 + x$ will generally not be altered.

    Note also that this function does not promote ``exp(x)`` to ``exp_polar(x)``.

    If ``subs`` is ``True``, all symbols which are not already polar will be
    substituted for polar dummies; in this case the function behaves much
    like :func:`~.posify`.

    If ``lift`` is ``True``, both addition statements and non-polar symbols are
    changed to their ``polar_lift()``ed versions.
    Note that ``lift=True`` implies ``subs=False``.

    Examples
    ========

    >>> from sympy import polarify, sin, I
    >>> from sympy.abc import x, y
    >>> expr = (-x)**y
    >>> expr.expand()
    (-x)**y
    >>> polarify(expr)
    ((_x*exp_polar(I*pi))**_y, {_x: x, _y: y})
    >>> polarify(expr)[0].expand()
    _x**_y*exp_polar(_y*I*pi)
    >>> polarify(x, lift=True)
    polar_lift(x)
    >>> polarify(x*(1+y), lift=True)
    polar_lift(x)*polar_lift(y + 1)

    Adds are treated carefully:

    >>> polarify(1 + sin((1 + I)*x))
    (sin(_x*polar_lift(1 + I)) + 1, {_x: x})
    Fc                 ó<   — i | ]}|t          |j        d ¬¦  «        “ŒS )T)Úpolar)r	   Úname)r%   rŒ   s     r'   rß   zpolarify.<locals>.<dictcomp>u  s)   € ÐBÐBÐB¨QˆA�u�Q”V 4Ð(Ñ(Ô(ÐBÐBÐBr*   c                 ó   — i | ]\  }}||“Œ	S rw   rw   )r%   rŒ   r©  s      r'   rß   zpolarify.<locals>.<dictcomp>w  s   € Ð.Ð.Ð.™˜˜A��1Ð.Ð.Ð.r*   )r   r   rê   r·   Úitems)r¨  r·   r¢  Úrepss       r'   Úpolarifyrµ  H  sz   € ðP ð ØˆÝ	•7˜2‘;”; Ñ	%Ô	%€BØð Øˆ	ØBÐB°"´/ÐBÑBÔB€DØ	�Š�‰Œ€BØÐ.Ð. §¢¡¤Ð.Ñ.Ô.Ð.Ð.r*   c                 ón  ‡— t          | t          ¦  «        r| j        r| S |�sddlm}m} t          | |¦  «        r |t          | j        ‰¦  «        ¦  «        S t          | t          ¦  «        r4| j        d         dt          z  k    rt          | j        d         ‰¦  «        S | j
        s0| j        s)| j        s"| j        r6| j        dv r	d| j        v s	| j        dvr | j        ˆfd„| j        D ¦   «         Ž S t          | t           ¦  «        rt          | j        d         ‰¦  «        S | j        r9t          | j        ‰¦  «        }t          | j        ‰|j        o|  ¦  «        }||z  S | j        r1t+          | j        dd¦  «        r | j        ˆfd	„| j        D ¦   «         Ž S  | j        ˆfd
„| j        D ¦   «         Ž S )Nr   r)  rz   r£   )z==z!=c                 ó0   •— g | ]}t          |‰¦  «        ‘ŒS rw   ©Ú_unpolarify©r%   rT   Úexponents_onlys     €r'   rá   z_unpolarify.<locals>.<listcomp>Š  s#   ø€ ÐMÐMÐMÀ�[¨¨NÑ;Ô;ÐMÐMÐMr*   rt   Fc                 ó2   •— g | ]}t          |‰‰¦  «        ‘ŒS rw   r¸  rº  s     €r'   rá   z_unpolarify.<locals>.<listcomp>•  s5   ø€ ð ð ð Øõ % Q¨¸ÑGÔGð ð ð r*   c                 ó2   •— g | ]}t          |‰d ¦  «        ‘ŒS rm   r¸  rº  s     €r'   rá   z_unpolarify.<locals>.<listcomp>˜  s%   ø€ ÐKÐKÐK¸a•[  N°DÑ9Ô9ÐKÐKÐKr*   )r3   r
   r2  rí   r˜   r*  r¹  r…  r   r   rñ   r�   Ú
is_BooleanÚis_RelationalÚrel_opr¸   rn  r—   rì   r²   r2   Úgetattr)r¨  r»  rž  r˜   r*  Úexporì   s    `     r'   r¹  r¹  z  s  ø€ Ý�b�%Ñ Ô ð  B¤Jð Øˆ	àñ ;ØIÐIÐIÐIÐIÐIÐIÐIÝ�b˜)Ñ$Ô$ð 	<Ø�3•{ 2¤6¨>Ñ:Ô:Ñ;Ô;Ð;Ý�bÕ*Ñ+Ô+ð 	;°´¸´
¸aÅ¹dÒ0BÐ0BÝ˜rœw qœz¨>Ñ:Ô:Ð:àŒIð	OØœð	OØ&(¤mð	OàÔð	Oð ”	˜\Ð)Ð)¨a°2´7¨l¨lØ”	 Ð-Ð-à�2”7ÐMÐMÐMÐMÀRÄWÐMÑMÔMÐNÐNÝ�b�*Ñ%Ô%ð 	;Ý˜rœw qœz¨>Ñ:Ô:Ð:à	„yð Ý˜2œ6 >Ñ2Ô2ˆÝ˜2œ7 NØ”Ð.¨ YÐ/ñ1ô 1ˆà�T‰zÐà	„~ð �' "¤'¨<¸Ñ?Ô?ð ØˆrŒwð ð ð ð Ø”Wðñ ô ð ð 	ð ˆ2Œ7ÐKÐKÐKÐKÀ2Ä7ÐKÑKÔKÐLÐLr*   Nc                 ó€  — t          | t          ¦  «        r| S t          | ¦  «        } |�"t          |                      |¦  «        ¦  «        S d}d}|rd}|r6d}t          | ||¦  «        }|| k    rd}|} t          |t          ¦  «        r|S |°6ddlm} |                      |d¦  «        dt          d¦  «        di¦  «        S )a  
    If `p` denotes the projection from the Riemann surface of the logarithm to
    the complex line, return a simplified version `eq'` of `eq` such that
    `p(eq') = p(eq)`.
    Also apply the substitution subs in the end. (This is a convenience, since
    ``unpolarify``, in a certain sense, undoes :func:`polarify`.)

    Examples
    ========

    >>> from sympy import unpolarify, polar_lift, sin, I
    >>> unpolarify(polar_lift(I + 2))
    2 + I
    >>> unpolarify(sin(polar_lift(I + 7)))
    sin(7 + I)
    NTFr   rq  rz   )	r3   Úboolr   Ú
unpolarifyr·   r¹  rí   r*  rn  )r¨  r·   r»  Úchangedrž  r•  r*  s          r'   rÅ  rÅ  ›  së   € õ" �"•dÑÔð Øˆ	å	�‰Œ€BØÐÝ˜"Ÿ'š' $™-œ-Ñ(Ô(Ð(Ø€GØ€EØð ØˆØ
ð ØˆÝ˜"˜n¨eÑ4Ô4ˆØ�"Š9ˆ9ØˆGØˆBÝ�c�4Ñ Ô ð 	ØˆJð ð ð AÐ@Ð@Ð@Ð@Ð@Ø�8Š8�Y�Y˜q‘\”\ 1¥j°¡m¤m°QÐ7Ñ8Ô8Ð8r*   )F)TF)NF)4Útypingr   rr   Ú
sympy.corer   r   r   r   r   r	   r
   Úsympy.core.exprr   Úsympy.core.exprtoolsr   Úsympy.core.functionr   r   r   r   r   Úsympy.core.logicr   r   Úsympy.core.numbersr   r   r   Úsympy.core.powerr   Úsympy.core.relationalr   Ú(sympy.functions.elementary.miscellaneousr   Ú$sympy.functions.elementary.piecewiser   r   r:   r‡   r‹   r=   r4   rH  rQ  rn  r0  r~  r…  r   rµ  r¹  rÅ  rw   r*   r'   ú<module>rÒ     sÒ  ðØ "Ð "Ð "Ð "Ð "Ð "à AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AØ  Ð  Ð  Ð  Ð  Ð  Ø -Ð -Ð -Ð -Ð -Ð -ðð ð ð ð ð ð ð ð ð ð ð ð ð à 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø  Ð  Ð  Ð  Ð  Ð  Ø $Ð $Ð $Ð $Ð $Ð $Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø :Ð :Ð :Ð :Ð :Ð :ðwð wð wð wð wˆñ wô wð wðtuð uð uð uð uˆñ uô uð uðvr5ð r5ð r5ð r5ð r5ˆ8ñ r5ô r5ð r5ðjw(ð w(ð w(ð w(ð w(ˆ(ñ w(ô w(ð w(ðtfð fð fð fð fˆ(ñ fô fð fðRJ)ð J)ð J)ð J)ð J)�ñ J)ô J)ð J)ðZ6ð 6ð 6ð 6ð 6�ñ 6ô 6ð 6ðr;ð ;ð ;ð ;ð ;ˆhñ ;ô ;ð ;ðDR0ð R0ð R0ð R0ð R0�ñ R0ô R0ð R0ðjgKð gKð gKð gKð gK˜ñ gKô gKð gKðT&ð &ð &ð,f3ð f3ð f3ð f3ð f3�xñ f3ô f3ð f3ðRPð Pð Pð PðB//ð //ð //ð //ðdMð Mð Mð MðB&9ð &9ð &9ð &9ð &9ð &9r*   