Ë
    7^(héÄ ã                  ó  — 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 d dlmZmZmZ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 d dl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,m-Z-m.Z. d dl/m0Z0m1Z1 d dl2m3Z3 d dl4m5Z5m6Z6m7Z7 d dl8m9Z9 d dl:m;Z;m<Z<m=Z= d dl>m?Z? d dl@mAZA d dlBmCZC d dlDmEZE d„ ZF G d„ de	«      ZGed„ «       ZHd„ ZId@dAd„ZJ G d„ d eG«      ZK G d!„ d"eG«      ZL G d#„ d$eG«      ZM G d%„ d&eG«      ZN G d'„ d(eG«      ZO G d)„ d*eO«      ZP G d+„ d,eO«      ZQ G d-„ d.e	«      ZR G d/„ d0e	«      ZS G d1„ d2eS«      ZT G d3„ d4eS«      ZU G d5„ d6eS«      ZV G d7„ d8eS«      ZW G d9„ d:eS«      ZX G d;„ d<eS«      ZY G d=„ d>eS«      ZZy?)Bé    )Úannotations)ÚAdd)Úcacheit)ÚExpr)ÚDefinedFunctionÚArgumentIndexErrorÚ	PoleErrorÚ
expand_mul)Ú	fuzzy_notÚfuzzy_orÚ	FuzzyBoolÚ	fuzzy_and)ÚMod)ÚRationalÚpiÚIntegerÚFloatÚequal_valued)ÚNeÚEq)ÚS)ÚSymbolÚDummy)Úsympify)Ú	factorialÚRisingFactorial)Ú	bernoulliÚeuler)ÚargÚimÚre)ÚlogÚexp)Úfloor)ÚsqrtÚMinÚMax)Ú	Piecewise)Ú	cos_tableÚ	ipartfracÚfermat_coords)ÚAnd)Ú	factorint)Úsymmetric_poly)Únumbered_symbolsc                ób   — t        | t        «      ry| j                  t        j                  «      S )z; Helper to extract symbolic coefficient for imaginary unit N)Ú
isinstancer   Úas_coefficientr   ÚImaginaryUnit)r   s    úf/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/functions/elementary/trigonometric.pyÚ_imaginary_unit_as_coefficientr5   !   s$   € ä�#”uÔØà×!Ñ!¤!§/¡/Ó2Ð2ó    c                  óR   — e Zd ZdZdZej                  fZd„ Zd„ Z	d	d„Z
d	d„Zd
d„Zy)ÚTrigonometricFunctionz(Base class for trigonometric functions. Tc                óú   —  | j                   | j                  Ž }|j                   | j                   k(  r>|j                  d   j                  r$t        |j                  d   j                  «      ryy y |j                  S ©Nr   F)ÚfuncÚargsÚis_rationalr   Úis_zero©ÚselfÚss     r4   Ú_eval_is_rationalz'TrigonometricFunction._eval_is_rational3   sd   € ØˆD�I‰I�t—y‘yÐ!ˆØ�6‰6�T—Y‘YÒØ�v‰v�a‰y×$Ò$¬°1·6±6¸!±9×3DÑ3DÔ)EØð *FÐ$ð —=‘=Ð r6   c                óH  —  | j                   | j                  Ž }|j                   | j                   k(  ret        | j                  d   j                  «      r| j                  d   j                  ryt        | j                  d   «      }|�|j                  ryy y |j                  S ©Nr   FT)r;   r<   r   r>   Úis_algebraicÚ	_pi_coeffr=   )r@   rA   Úpi_coeffs      r4   Ú_eval_is_algebraicz(TrigonometricFunction._eval_is_algebraic;   s†   € ØˆD�I‰I�t—y‘yÐ!ˆØ�6‰6�T—Y‘YÒÜ˜Ÿ™ 1™×-Ñ-Ô.°4·9±9¸Q±<×3LÒ3LØÜ  §¡¨1¡Ó.ˆHØÐ#¨×(<Ò(<Øð )=Ð#ð —>‘>Ð!r6   c                ó\   —  | j                   dd|i|¤Ž\  }}||t        j                  z  z   S )NÚdeep© )Úas_real_imagr   r3   )r@   rJ   ÚhintsÚre_partÚim_parts        r4   Ú_eval_expand_complexz*TrigonometricFunction._eval_expand_complexF   s5   € Ø,˜4×,Ñ,Ñ@°$Ð@¸%Ñ@Ñˆ�Ø˜¤§¡Ñ0Ñ0Ð0r6   c                ó–  — | j                   d   j                  rV|r5d|d<    | j                   d   j                  |fi |¤Žt        j                  fS | j                   d   t        j                  fS |r5 | j                   d   j                  |fi |¤Žj                  «       \  }}||fS | j                   d   j                  «       \  }}||fS )Nr   FÚcomplex)r<   Úis_extended_realÚexpandr   ÚZerorL   )r@   rJ   rM   r!   r    s        r4   Ú_as_real_imagz#TrigonometricFunction._as_real_imagJ   s¿   € Ø�9‰9�Q‰<×(Ò(ÙØ#(��iÑ Ø+˜Ÿ	™	 !™×+Ñ+¨DÑ:°EÑ:¼A¿F¹FÐCÐCàŸ	™	 !™¤a§f¡fÐ-Ð-ÙØ(�T—Y‘Y˜q‘\×(Ñ(¨Ñ7°Ñ7×DÑDÓF‰FˆB�ð �Bˆxˆð —Y‘Y˜q‘\×.Ñ.Ó0‰FˆB�Ø�Bˆxˆr6   Nc                óà  — t        | j                  d   «      }|€t        |j                  «      d   }|j	                  |«      st
        j                  S ||k(  r|S ||j                  v r||j                  r'|j                  |«      \  }}||k(  r|t        |«      z  S |j                  r=|j                  |«      \  }}|j                  |d¬«      \  }}||k(  r|t        |«      z  S t        d«      ‚)Nr   F)Úas_Addz%Use the periodicity function instead.)r
   r<   ÚtupleÚfree_symbolsÚhasr   rU   Úis_MulÚas_independentÚabsÚis_AddÚNotImplementedError)r@   Úgeneral_periodÚsymbolÚfÚgÚhÚas          r4   Ú_periodzTrigonometricFunction._periodW   sà   € Ü�t—y‘y ‘|Ó$ˆØˆ>Ü˜1Ÿ>™>Ó*¨1Ñ-ˆFà�u‰u�VŒ}Ü—6‘6ˆMà�Š;Ø!Ð!à�Q—^‘^Ñ#Ø�xŠxØ×'Ñ'¨Ó/‘��1Ø˜’;Ø)¬#¨a«&Ñ0Ð0à�xŠxØ×'Ñ'¨Ó/‘��1Ø×'Ñ'¨°uÐ'Ó=‘��1Ø˜’;Ø)¬#¨a«&Ñ0Ð0ä!Ð"IÓJÐJr6   ©T©N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú
unbranchedr   ÚComplexInfinityÚ_singularitiesrB   rH   rP   rV   rg   rK   r6   r4   r8   r8   -   s2   „ Ù2à€JØ×'Ñ'Ð)€Nò!ò	"ó1óôKr6   r8   c            	     ó   — ddddddddd	œS )
N)é   é   )rs   é   )rt   é   )ru   é
   )ru   é   )rw   rv   )é   é   )é(   é<   )é   rx   ry   é   é   rz   r{   éx   rK   rK   r6   r4   Ú_table2r€   q   s&   € ð ØØØØØØØñ	ð 	r6   c                óæ  — t         j                  }g }t        j                  | «      D ]<  }|j	                  t
        «      }|r|j                  r||z  }Œ,|j                  |«       Œ> |t         j                  u r| t         j                  fS |t         j                  z  }||z
  }|j                  sd|z  j                  r#|j                  du rt        ||t
        z  gz   Ž |fS | t         j                  fS )aË  
    Split ARG into two parts, a "rest" and a multiple of $\pi$.
    This assumes ARG to be an Add.
    The multiple of $\pi$ returned in the second position is always a Rational.

    Examples
    ========

    >>> from sympy.functions.elementary.trigonometric import _peeloff_pi
    >>> from sympy import pi
    >>> from sympy.abc import x, y
    >>> _peeloff_pi(x + pi/2)
    (x, 1/2)
    >>> _peeloff_pi(x + 2*pi/3 + pi*y)
    (x + pi*y + pi/6, 1/2)

    é   F)r   rU   r   Ú	make_argsÚcoeffr   r=   ÚappendÚHalfÚ
is_integerÚis_even)r   rG   Ú
rest_termsrf   ÚKÚm1Úm2s          r4   Ú_peeloff_pir�   ƒ   sÑ   € ô$ �v‰v€HØ€JÜ�]‰]˜3Óò !ˆØ�G‰G”B‹KˆÙ�—’Ø˜‰M‰Hà×Ñ˜aÕ ð!ð ”1—6‘6ÑØ”A—F‘Fˆ{Ðà
”Q—V‘VÑ
€BØ	�B‰€BØ	‡}‚}˜!˜B™$×*Ò*¨r¯z©z¸UÑ/BÜ�Z 2¤b¡5 'Ñ)Ð+¨RÐ/Ð/Ø”—‘ˆ;Ðr6   c                óÀ  — | t         u rt        j                  S | st        j                  S | j                  �r| j                  t         «      }|ró|j                  «       \  }}|j                  rŒt        |«      dz  }|dk7  r`t        t        t        |d«      j                  «       «      «       }d|z  }||z  }t        |«      }	t        |	|«      r+t        |	|«      }||z  }nt        t        |«      «      }||z  }|j                  r:|dz  }
|
dk(  r|S |
s'|j                   �t        j                  S t#        d«      S |
|z  S |S y| j$                  rt        j                  S y)a6  
    When arg is a Number times $\pi$ (e.g. $3\pi/2$) then return the Number
    normalized to be in the range $[0, 2]$, else `None`.

    When an even multiple of $\pi$ is encountered, if it is multiplying
    something with known parity then the multiple is returned as 0 otherwise
    as 2.

    Examples
    ========

    >>> from sympy.functions.elementary.trigonometric import _pi_coeff
    >>> from sympy import pi, Dummy
    >>> from sympy.abc import x
    >>> _pi_coeff(3*x*pi)
    3*x
    >>> _pi_coeff(11*pi/7)
    11/7
    >>> _pi_coeff(-11*pi/7)
    3/7
    >>> _pi_coeff(4*pi)
    0
    >>> _pi_coeff(5*pi)
    1
    >>> _pi_coeff(5.0*pi)
    1
    >>> _pi_coeff(5.5*pi)
    3/2
    >>> _pi_coeff(2 + pi)

    >>> _pi_coeff(2*Dummy(integer=True)*pi)
    2
    >>> _pi_coeff(2*Dummy(even=True)*pi)
    0

    é   r   r‚   N)r   r   ÚOnerU   r\   r„   Úas_coeff_MulÚis_Floatr^   ÚintÚroundr"   Úevalfr   r   r‡   rˆ   r   r>   )r   ÚcyclesÚcxÚcÚxrc   ÚpÚmÚcmÚiÚc2s              r4   rF   rF   ¨   s6  € ðJ Œb�yÜ�u‰uˆÙÜ�v‰vˆØ	�‹Ø�Y‰Y”r‹]ˆÙØ—?‘?Ó$‰DˆAˆqØ�zŠzä˜“F˜Q‘J�Ø˜’6ÜœU¤3 q¨!£9§?¡?Ó#4Ó5Ó6Ð6�AØ˜1™�AØ˜1™�BÜ˜B›�AÜ# A rÔ*Ü$ Q¨›N˜Ø˜q™S™ä ¤ Q£Ó(�AØ˜1™�BØ�|Š|Ø˜‘U�Ø˜’7Ø�HÙØ—y‘yÐ,Ü Ÿv™v˜Ü" 1›:Ð%à˜a™4�KØˆIð ð 
�ŠÜ�v‰vˆØr6   c                  óØ   ‡ — e Zd ZdZdd„Zdd„Zed„ «       Zee	d„ «       «       Z
dˆ f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ˆ xZ S )Úsina»  
    The sine function.

    Returns the sine of x (measured in radians).

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

    This function will evaluate automatically in the
    case $x/\pi$ is some rational number [4]_.  For example,
    if $x$ is a multiple of $\pi$, $\pi/2$, $\pi/3$, $\pi/4$, and $\pi/6$.

    Examples
    ========

    >>> from sympy import sin, pi
    >>> from sympy.abc import x
    >>> sin(x**2).diff(x)
    2*x*cos(x**2)
    >>> sin(1).diff(x)
    0
    >>> sin(pi)
    0
    >>> sin(pi/2)
    1
    >>> sin(pi/6)
    1/2
    >>> sin(pi/12)
    -sqrt(2)/4 + sqrt(6)/4


    See Also
    ========

    csc, cos, sec, tan, cot
    asin, acsc, acos, asec, atan, acot, atan2

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Trigonometric_functions
    .. [2] https://dlmf.nist.gov/4.14
    .. [3] https://functions.wolfram.com/ElementaryFunctions/Sin
    .. [4] https://mathworld.wolfram.com/TrigonometryAngles.html

    c                ó4   — | j                  dt        z  |«      S ©Nr‚   ©rg   r   ©r@   rb   s     r4   Úperiodz
sin.period#  ó   € Ø�|‰|˜Aœb™D &Ó)Ð)r6   c                óT   — |dk(  rt        | j                  d   «      S t        | |«      ‚©Nr�   r   )Úcosr<   r   ©r@   Úargindexs     r4   Úfdiffz	sin.fdiff&  s)   € Ø�qŠ=Ü�t—y‘y ‘|Ó$Ð$ä$ T¨8Ó4Ð4r6   c           
     óR  — ddl m} ddlm} |j                  ri|t
        j                  u rt
        j                  S |j                  rt
        j                  S |t
        j                  t
        j                  fv r	 |dd«      S |t
        j                  u rt
        j                  S t        ||«      �r9ddlm} |j                  |j                   }}t#        |dt$        z  z  «      }|t
        j                  ur||dz  t$        z  z
  }|t
        j                  ur||dz  t$        z  z
  } |||«      j'                   |t$        dz  t$        t)        dd«      z  «      «      t
        j*                  urZ |||«      j'                   |t$        t)        d	d«      z  t$        t)        d
d«      z  «      «      t
        j*                  ur	 |dd«      S  |||«      j'                   |t$        dz  t$        t)        dd«      z  «      «      t
        j*                  ur% |t-        t/        |«      t/        |«      «      d«      S  |||«      j'                   |t$        t)        d	d«      z  t$        t)        dd«      z  «      «      t
        j*                  ur% |dt1        t/        |«      t/        |«      «      «      S  |t-        t/        |«      t/        |«      «      t1        t/        |«      t/        |«      «      «      S t        ||«      r|j3                  | «      S |j5                  «       r
 | | «       S t7        |«      }|�ddlm}	 t
        j<                   |	|«      z  S t?        |«      }
|
��|
j@                  rt
        j                  S d|
z  j@                  r2|
jB                  du r$t
        jD                  |
t
        jF                  z
  z  S |
jH                  s|
t$        z  }||k7  r | |«      S y |
jH                  r‰|
dz  }|dkD  r | |dz  t$        z  «       S d|z  dkD  r | d|z
  t$        z  «      S |
t)        d	d«      z   dz  t$        z  }tK        |«      }t        |tJ        «      s|S |
t$        z  |k7  r | |
t$        z  «      S y |jL                  rHtO        |«      \  }}|r8|t$        z  }t/        |«      tK        |«      z  tK        |«      t/        |«      z  z   S |j                  rt
        j                  S t        |tP        «      r|jR                  d   S t        |tT        «      r#|jR                  d   }|tW        d|dz  z   «      z  S t        |tX        «      r&|jR                  \  }}|tW        |dz  |dz  z   «      z  S t        |tZ        «      r |jR                  d   }tW        d|dz  z
  «      S t        |t\        «      r)|jR                  d   }dtW        dd|dz  z  z   «      |z  z  S t        |t^        «      r|jR                  d   }d|z  S t        |t`        «      r#|jR                  d   }tW        dd|dz  z  z
  «      S y )Nr   ©ÚAccumBounds©ÚSetExpréÿÿÿÿr�   ©Ú	FiniteSetr‚   rt   rr   é   rw   )ÚsinhF)1Ú!sympy.calculus.accumulationboundsr¯   Úsympy.sets.setexprr±   Ú	is_Numberr   ÚNaNr>   rU   ÚInfinityÚNegativeInfinityro   r1   Úsympy.sets.setsr´   ÚminÚmaxr$   r   Úintersectionr   ÚEmptySetr&   r    r'   Ú
_eval_funcÚcould_extract_minus_signr5   Ú%sympy.functions.elementary.hyperbolicr¶   r3   rF   r‡   rˆ   ÚNegativeOner†   Úis_Rationalr©   r_   r�   Úasinr<   Úatanr%   Úatan2ÚacosÚacotÚacscÚasec)Úclsr   r¯   r±   r´   r¾   r¿   ÚdÚi_coeffr¶   rG   Únargr™   Úresultr›   Úys                   r4   Úevalzsin.eval,  s:  € åAÝ.Ø�=Š=Ø”a—e‘e‰|Ü—u‘u�Ø—’Ü—v‘v�ØœŸ™¤Q×%7Ñ%7Ð8Ñ8Ù" 2 qÓ)Ð)à”!×#Ñ#Ñ#Ü—5‘5ˆLä�c˜;Õ'Ý1Ø—w‘w §¡�ˆCÜ�c˜1œR™4‘jÓ!ˆAØœ!×,Ñ,Ñ,Ø˜A˜a™C¤™F‘l�Øœ!Ÿ*™*Ñ$Ø˜A˜a™C¤™F‘l�Ù˜3 Ó$×1Ñ1±)¼B¸q¹DÄ"ÄXÈaÐQRÃ^ÑBSÓ2TÓUÜŸ:™:ñ&á  SÓ)×6Ñ6±yÄÄHÈQÐPQÃNÑARÜœ8 A q›>Ñ)ó8+ó ,Ü34·:±:ñ>á" 2 qÓ)Ð)Ù˜S #Ó&×3Ñ3±I¼bÀ¹dÄBÄxÐPQÐSTÃ~ÑDUÓ4VÓWÜŸ:™:ñ&á"¤3¤s¨3£x´°S³Ó#:¸AÓ>Ð>Ù˜S #Ó&×3Ñ3±I¼bÄÈ!ÈQÃÑ>OÔQSÔT\Ð]^Ð`aÓTbÑQbÓ4cÓdÜ Ÿz™zñ*á" 2¤s¬3¨s«8´S¸³XÓ'>Ó?Ð?á"¤3¤s¨3£x´°S³Ó#:Ü #¤C¨£H¬c°#«hÓ 7ó9ð 9ä˜˜WÔ%Ø—>‘> #Ó&Ð&à×'Ñ'Ô)Ù˜˜“I�:Ðä0°Ó5ˆØÐÝBÜ—?‘?¡4¨£=Ñ0Ð0ä˜S“>ˆØÑØ×"Ò"Ü—v‘v�à�(‘
×&Ò&ð ×#Ñ# uÑ,ÜŸ=™=¨8´a·f±fÑ+<Ñ=Ð=à×'Ò'Ø¤‘{�Ø˜3’;Ù˜t›9Ð$Øð ×#Ò#Ø˜q‘L�Ø�q’5Ù  Q¡¬¡
›OÐ+Ð+Ø�Q‘3˜’7Ù  A¡¤r™z›?Ð*Ø!¤H¨Q°£NÑ2°aÑ7¼Ñ;�Ü˜T›�Ü! &¬#Ô.Ø!�MØœB‘; #Ò%Ù˜x¬™{Ó+Ð+Øà�:Š:Ü˜sÓ#‰DˆAˆqÙØ”b‘D�Ü˜1“vœc !›f‘}¤s¨1£v¬c°!«f¡}Ñ4Ð4à�;Š;Ü—6‘6ˆMä�cœ4Ô Ø—8‘8˜A‘;Ðä�cœ4Ô Ø—‘˜‘ˆAØ”T˜!˜a ™d™(“^Ñ#Ð#ä�cœ5Ô!Ø—8‘8‰DˆAˆqØ”T˜!˜Q™$  A¡™+Ó&Ñ&Ð&ä�cœ4Ô Ø—‘˜‘ˆAÜ˜˜A˜q™D™“>Ð!ä�cœ4Ô Ø—‘˜‘ˆAØ”d˜1˜q  A¡™v™:Ó& qÑ(Ñ)Ð)ä�cœ4Ô Ø—‘˜‘ˆAØ�Q‘3ˆJä�cœ4Ô Ø—‘˜‘ˆAÜ˜˜A˜a ™d™F™
Ó#Ð#ð !r6   c                óì   — | dk  s| dz  dk(  rt         j                  S t        |«      }t        |«      dkD  r|d   }| |dz  z  | | dz
  z  z  S t         j                  | dz  z  || z  z  t        | «      z  S ©Nr   r‚   éþÿÿÿr�   ©r   rU   r   ÚlenrÅ   r   ©Únr™   Úprevious_termsrš   s       r4   Útaylor_termzsin.taylor_term¡  ó€   € ð ˆqŠ5�A˜‘E˜Q’JÜ—6‘6ˆMä˜“
ˆAä�>Ó" QÒ&Ø" 2Ñ&�Ø�r˜!˜Q™$‘w  1 q¡5¡	Ñ*Ð*ä—}‘} q¨!¡tÑ,¨Q°©TÑ1´)¸A³,Ñ>Ð>r6   c                ó  •— | j                   d   }|�|j                  t        |«      |«      }|j                  |d«      j                  t        j
                  t        j                  «      rt        d| z  «      ‚t        ‰| �%  ||||¬«      S ©Nr   zCannot expand %s around 0)rÛ   ÚlogxÚcdir©
r<   Úsubsr"   r[   r   rº   ro   r	   ÚsuperÚ_eval_nseries©r@   r™   rÛ   rá   râ   r   Ú	__class__s         €r4   ræ   zsin._eval_nseries¯  óx   ø€ Ø�i‰i˜‰lˆØÐØ—(‘(œ3˜q›6 4Ó(ˆCØ�8‰8�A�q‹>×ÑœaŸe™e¤Q×%6Ñ%6Ô7ÜÐ7¸4Ñ@ÓAÐAÜ‰wÑ$ Q¨!°$¸TÐ$ÓBÐBr6   c                óü   — ddl m} t        j                  }t	        |t
        |f«      r1|j                  |j                  d   «      j                  t        «      }t        ||z  «      t        | |z  «      z
  d|z  z  S ©Nr   ©ÚHyperbolicFunctionr‚   ©
rÄ   rí   r   r3   r1   r8   r;   r<   Úrewriter#   )r@   r   Úkwargsrí   ÚIs        r4   Ú_eval_rewrite_as_expzsin._eval_rewrite_as_exp·  sf   € ÝLÜ�O‰OˆÜ�cÔ1Ð3EÐFÔGØ—(‘(˜3Ÿ8™8 A™;Ó'×/Ñ/´Ó4ˆCÜ�C˜‘E“
œS #  a¡›[Ñ(¨1¨Q©3Ñ/Ð/r6   c                ó’   — t        |t        «      r7t        j                  }|j                  d   }||| z  z  dz  |||z  z  dz  z
  S y ©Nr   r‚   ©r1   r"   r   r3   r<   ©r@   r   rð   rñ   r™   s        r4   Ú_eval_rewrite_as_Powzsin._eval_rewrite_as_Pow¾  sL   € Ü�cœ3ÔÜ—‘ˆAØ—‘˜‘ˆAØ�Q˜˜‘U‘7˜1‘9˜q  A¡™v q™yÑ(Ð(ð  r6   c                ó0   — t        |t        dz  z
  d¬«      S ©Nr‚   F©Úevaluate©r©   r   ©r@   r   rð   s      r4   Ú_eval_rewrite_as_coszsin._eval_rewrite_as_cosÄ  ó   € Ü�3œ˜A™‘:¨Ô.Ð.r6   c                óV   — t        t        j                  |z  «      }d|z  d|dz  z   z  S ©Nr‚   r�   ©Útanr   r†   ©r@   r   rð   Útan_halfs       r4   Ú_eval_rewrite_as_tanzsin._eval_rewrite_as_tanÇ  s*   € Ü”q—v‘v˜c‘z“?ˆØ�‰z˜1˜x¨™{™?Ñ+Ð+r6   c                óH   — t        |«      t        |«      z  t        |«      z  S ri   ©r    r©   rý   s      r4   Ú_eval_rewrite_as_sincoszsin._eval_rewrite_as_sincosË  ó   € Ü�3‹xœ˜C›Ñ ¤ S£Ñ)Ð)r6   c                óÜ   — t        t        j                  |z  «      }t        dt	        t        t        |«      d«      t        t        |t        «      d«      «      fd|z  d|dz  z   z  df«      S )Nr   r‚   r�   T©	Úcotr   r†   r(   r,   r   r    r   r   ©r@   r   rð   Úcot_halfs       r4   Ú_eval_rewrite_as_cotzsin._eval_rewrite_as_cotÎ  s^   € Ü”q—v‘v˜c‘z“?ˆÜ˜!œS¤¤B s£G¨Q£´´C¸¼R³LÀ!Ó1DÓEÐFØ˜H™* a¨(°A©+¡oÑ6¸Ð=ó?ð 	?r6   c                óZ   —   | j                   t        fi |¤Žj                   t        fi |¤ŽS ri   )rï   r©   Úpowrý   s      r4   Ú_eval_rewrite_as_powzsin._eval_rewrite_as_powÓ  s*   € Ø2ˆ|ˆt�|‰|œCÑ* 6Ñ*×2Ñ2´3ÑA¸&ÑAÐAr6   c                óZ   —   | j                   t        fi |¤Žj                   t        fi |¤ŽS ri   )rï   r©   r%   rý   s      r4   Ú_eval_rewrite_as_sqrtzsin._eval_rewrite_as_sqrtÖ  s*   € Ø2ˆ|ˆt�|‰|œCÑ* 6Ñ*×2Ñ2´4ÑB¸6ÑBÐBr6   c                ó   — dt        |«      z  S ©Nr�   ©Úcscrý   s      r4   Ú_eval_rewrite_as_csczsin._eval_rewrite_as_cscÙ  ó   € Ø”�S“‰zÐr6   c                ó6   — dt        |t        dz  z
  d¬«      z  S )Nr�   r‚   Frú   ©Úsecr   rý   s      r4   Ú_eval_rewrite_as_seczsin._eval_rewrite_as_secÜ  s   € Ø”�Sœ2˜a™4‘Z¨%Ô0Ñ0Ð0r6   c                ó   — |t        |«      z  S ri   )Úsincrý   s      r4   Ú_eval_rewrite_as_sinczsin._eval_rewrite_as_sincß  s   € Ø”4˜“9‰}Ðr6   c                óh   — ddl m} t        t        |z  dz  «       |t        j
                  |«      z  S )Nr   ©Úbesseljr‚   ©Úsympy.functions.special.besselr%  r%   r   r   r†   ©r@   r   rð   r%  s       r4   Ú_eval_rewrite_as_besseljzsin._eval_rewrite_as_besseljâ  s'   € Ý:Ü”B�s‘F˜1‘H‹~™g¤a§f¡f¨cÓ2Ñ2Ð2r6   c                óZ   — | j                  | j                  d   j                  «       «      S ©Nr   ©r;   r<   Ú	conjugate©r@   s    r4   Ú_eval_conjugatezsin._eval_conjugateæ  ó"   € Ø�y‰y˜Ÿ™ 1™×/Ñ/Ó1Ó2Ð2r6   c                ó�   — ddl m}m}  | j                  dd|i|¤Ž\  }}t	        |«       ||«      z  t        |«       ||«      z  fS ©Nr   ©Úcoshr¶   rJ   rK   )rÄ   r4  r¶   rV   r    r©   ©r@   rJ   rM   r4  r¶   r!   r    s          r4   rL   zsin.as_real_imagé  sH   € ßDØ#�×#Ñ#Ñ7¨Ð7°Ñ7‰ˆˆBÜ�B“™˜R›Ñ ¤# b£'©$¨r«(Ñ"2Ð3Ð3r6   c           	     óÌ  — ddl m}m} | j                  d   }d }|j                  rŠ|j                  «       \  }}t        |d¬«      j                  «       }t        |d¬«      j                  «       }t        |d¬«      j                  «       }	t        |d¬«      j                  «       }
||
z  ||	z  z   S |j                  rŸ|j                  d¬«      \  }}|j                  r~|j                  r,t        j                  |dz
  dz  z   ||t        |«      «      z  S t        t        j                  |dz  dz
  z  t        |«      z   ||dz
  t        |«      «      z  d¬	«      S t        |«      S )
Nr   )Ú
chebyshevtÚ
chebyshevuFrú   T©Úrationalr�   r‚   )rJ   )Ú#sympy.functions.special.polynomialsr7  r8  r<   r_   Úas_two_termsr    Ú_eval_expand_trigr©   r\   r‘   Ú
is_IntegerÚis_oddr   rÅ   r
   )r@   rM   r7  r8  r   r™   rÓ   ÚsxÚsyr—   ÚcyrÛ   s               r4   r=  zsin._eval_expand_trigî  s:  € ßNØ�i‰i˜‰lˆØˆØ�:Š:à×#Ñ#Ó%‰DˆAˆqÜ�Q Ô'×9Ñ9Ó;ˆBÜ�Q Ô'×9Ñ9Ó;ˆBÜ�Q Ô'×9Ñ9Ó;ˆBÜ�Q Ô'×9Ñ9Ó;ˆBØ�b‘5˜2˜b™5‘=Ð Ø�ZŠZØ×#Ñ#¨TÐ#Ó2‰DˆAˆqØ�|Š|ð —8’8ÜŸ=™=¨A°©E°1©9Ñ5±jÀÄCÈÃFÓ6KÑKÐKä%¤a§m¡m°a¸±c¸A±gÑ&>¼sÀ1»vÑ&EÙ&0°°Q±¼¸A»Ó&?ñ'@ØFKôMð Mä�3‹xˆr6   c                ó  — ddl m} | j                  d   }|j                  |d«      j	                  «       }|t
        z  }|j                  r1||t
        z  z
  j                  |«      }t        j                  |z  |z  S |t        j                  u r+|j                  |dt        |«      j                  rdnd¬«      }|t        j                  t        j                  fv r	 |dd«      S |j                   r| j#                  |«      S | S )Nr   r®   ú-ú+©Údirr²   r�   ©r·   r¯   r<   rä   Úcancelr   r‡   Úas_leading_termr   rÅ   ro   Úlimitr!   Úis_negativer»   r¼   Ú	is_finiter;   ©	r@   r™   rá   râ   r¯   r   Úx0rÛ   Últs	            r4   Ú_eval_as_leading_termzsin._eval_as_leading_term  sÓ   € ÝAØ�i‰i˜‰lˆØ�X‰X�a˜‹^×"Ñ"Ó$ˆØŒr‰EˆØ�<Š<Ø˜œ"™‘*×-Ñ-¨aÓ0ˆBÜ—M‘M 1Ñ$ bÑ(Ð(Ø”×"Ñ"Ñ"Ø—‘˜1˜a¬B¨t«H×,@Ò,@¡SÀc�ÓJˆBØ”!—*‘*œa×0Ñ0Ð1Ñ1Ù˜r 1Ó%Ð%Ø "§¢ˆt�y‰y˜‹}Ð6°$Ð6r6   c                ó8   — | j                   d   j                  ryy ©Nr   T©r<   rS   r.  s    r4   Ú_eval_is_extended_realzsin._eval_is_extended_real  ó   € Ø�9‰9�Q‰<×(Ò(Øð )r6   c                ó<   — | j                   d   }|j                  ryy rS  rT  ©r@   r   s     r4   Ú_eval_is_finitezsin._eval_is_finite  s    € Ø�i‰i˜‰lˆØ×ÒØð  r6   c                ój   — t        | j                  d   «      \  }}|j                  r|j                  S y r+  ©r�   r<   r>   r‡   ©r@   ÚrestÚpi_mults      r4   Ú_eval_is_zerozsin._eval_is_zero  ó0   € Ü# D§I¡I¨a¡LÓ1‰ˆˆgØ�<Š<Ø×%Ñ%Ð%ð r6   c                ój   — | j                   d   j                  s| j                   d   j                  ryy rS  ©r<   rS   Ú
is_complexr.  s    r4   Ú_eval_is_complexzsin._eval_is_complex#  s,   € Ø�9‰9�Q‰<×(Ò(Ø—9‘9˜Q‘<×*Ò*Øð +r6   ri   ©r�   ©r   rh   )!rj   rk   rl   rm   r¥   r¬   ÚclassmethodrÔ   Ústaticmethodr   rÝ   ræ   rò   r÷   rþ   r  r	  r  r  r  r  r  r"  r)  r/  rL   r=  rQ  rU  rY  r_  rd  Ú__classcell__©rè   s   @r4   r    r    ó   s²   ø„ ñ-ó^*ó5ð ñr$ó ðr$ðh Øñ
?ó ó ð
?õCò0ò)ò/ò,ò*ò?ò
BòCòò1òò3ò3ó4ò
ò27òòò
&ö
r6   r    c                  óÔ   ‡ — e Zd ZdZdd„Zdd„Zed„ «       Zee	d„ «       «       Z
dˆ f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d„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zˆ xZS )r©   aþ  
    The cosine function.

    Returns the cosine of x (measured in radians).

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

    See :func:`sin` for notes about automatic evaluation.

    Examples
    ========

    >>> from sympy import cos, pi
    >>> from sympy.abc import x
    >>> cos(x**2).diff(x)
    -2*x*sin(x**2)
    >>> cos(1).diff(x)
    0
    >>> cos(pi)
    -1
    >>> cos(pi/2)
    0
    >>> cos(2*pi/3)
    -1/2
    >>> cos(pi/12)
    sqrt(2)/4 + sqrt(6)/4

    See Also
    ========

    sin, csc, sec, tan, cot
    asin, acsc, acos, asec, atan, acot, atan2

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Trigonometric_functions
    .. [2] https://dlmf.nist.gov/4.14
    .. [3] https://functions.wolfram.com/ElementaryFunctions/Cos

    c                ó4   — | j                  dt        z  |«      S r¢   r£   r¤   s     r4   r¥   z
cos.periodU  r¦   r6   c                óV   — |dk(  rt        | j                  d   «       S t        | |«      ‚r¨   )r    r<   r   rª   s     r4   r¬   z	cos.fdiffX  s,   € Ø�qŠ=Ü˜Ÿ	™	 !™Ó%Ð%Ð%ä$ T¨8Ó4Ð4r6   c                ó
  — ddl m} ddlm} ddlm} |j                  ri|t        j                  u rt        j                  S |j                  rt        j                  S |t        j                  t        j                  fv r	 |dd«      S |t        j                  u rt        j                  S t        ||«      rt        |t         dz  z   «      S t        ||«      r|j#                  | «      S |j$                  r|j&                  du r	 |dd«      S |j)                  «       r	 | | «      S t+        |«      }|�dd	lm}  ||«      S t1        |«      }|�� |j2                  rt        j4                  |z  S d|z  j2                  r|j6                  du rt        j8                  S |j:                  s|t         z  }||k7  r | |«      S y |j:                  �rƒ|j<                  }	|j>                  d|	z  z  }
|
|	kD  r|dz
  t         z  } | |«       S d|
z  |	kD  rd|z
  t         z  } | |«       S tA        «       }|	|v rb||	   \  }}|
t         z  |z  |
t         z  |z  }} | |«       | |«      }}d ||fv ry ||z   | t         dz  |z
  «       | t         dz  |z
  «      z  z   S |	d
kD  ry t        jB                  tE        d«      dz   dz  dœ}|	|v r0||j<                     } ||j>                  |«      jG                  «       S d|	dz  k(  rZ|dz  t         z  } | |«      }d |k(  ry d|z  dz   dz  }d|dk  rdndtI        tK        |«      «      z  z  }|tE        d|z   dz  «      z  S y |jL                  rHtO        |«      \  }}|r8|t         z  }tQ        |«      tQ        |«      z  t        |«      t        |«      z  z
  S |j                  rt        j                  S t        |tR        «      r|jT                  d   S t        |tV        «      r#|jT                  d   }dtE        d|dz  z   «      z  S t        |tX        «      r&|jT                  \  }}|tE        |dz  |dz  z   «      z  S t        |tZ        «      r |jT                  d   }tE        d|dz  z
  «      S t        |t\        «      r&|jT                  d   }dtE        dd|dz  z  z   «      z  S t        |t^        «      r#|jT                  d   }tE        dd|dz  z  z
  «      S t        |t`        «      r|jT                  d   }d|z  S y )Nr   ©r7  r®   r°   r²   r�   r‚   F)r4  r|   rt   rs   )rr   rt   )1r;  r7  r·   r¯   r¸   r±   r¹   r   rº   r>   r�   r»   r¼   ro   r1   r    r   rÂ   rS   rM  rÃ   r5   rÄ   r4  rF   r‡   rÅ   rˆ   rU   rÆ   Úqrš   r€   r†   r%   rT   r“   r^   r_   r�   r©   rÊ   r<   rÈ   rÉ   rÇ   rË   rÌ   rÍ   )rÎ   r   r7  r¯   r±   rÐ   r4  rG   rÑ   rp  rš   Útable2rf   ÚbÚnvalaÚnvalbÚcst_table_someÚctsÚnvalr™   Úsign_cosr›   rÓ   s                          r4   rÔ   zcos.eval^  s¯  € åBÝAÝ.Ø�=Š=Ø”a—e‘e‰|Ü—u‘u�Ø—’Ü—u‘u�ØœŸ™¤Q×%7Ñ%7Ð8Ñ8ñ
 # 2 qÓ)Ð)à”!×#Ñ#Ñ#Ü—5‘5ˆLä�c˜;Ô'Ü�sœR ™T‘z“?Ð"Ü˜˜WÔ%Ø—>‘> #Ó&Ð&à×Ò C§M¡M°UÑ$:Ù˜r 1Ó%Ð%à×'Ñ'Ô)Ù˜�t“9Ðä0°Ó5ˆØÐÝBÙ˜“=Ð ä˜S“>ˆØÑØ×"Ò"ÜŸ™¨Ñ0Ð0à�(‘
×&Ò&ð ×#Ñ# uÑ,ÜŸ6™6�Mà×'Ò'Ø¤‘{�Ø˜3’;Ù˜t›9Ð$Øð ×#Ó#Ø—J‘J�Ø—J‘J ! A¡#Ñ&�Ø�q’5Ø$ q™L¬"Ñ,�DÙ ›I˜:Ð%Ø�Q‘3˜’7Ø ™L¬"Ñ,�DÙ ›I˜:Ð%ô !›�Ø˜‘;Ø! !™9‘D�A�qØœR™4 ™6 1¤R¡4¨¡6�q�AÙ#& q£6©3¨q«6˜5�EØ  u˜~Ñ-Ø#Ø  ™;©¬R°©T°A©X«±s¼2¸a¹4À!¹8³}Ñ)DÑDÐDà�r’6Øô —v‘vÜ˜Q› !™ qÑ(ñ"�ð ˜Ñ&Ø(¨¯©Ñ4�CÙ% h§j¡j°#Ó6×=Ñ=Ó?Ð?à˜˜A™’:Ø$ Q™J¬™?�DÙ˜t›9�DØ˜t’|Ø#Ø˜8™ a™¨Ñ*�AØ "¨Q°ªU¡r¸¼3¼sÀ1»v»;Ñ&FÑG�HØ#¤D¨1¨t©8°Q©,Ó$8Ñ8Ð8Øà�:Š:Ü˜sÓ#‰DˆAˆqÙØ”b‘D�Ü˜1“vœc !›f‘}¤s¨1£v¬c°!«f¡}Ñ4Ð4à�;Š;Ü—5‘5ˆLä�cœ4Ô Ø—8‘8˜A‘;Ðä�cœ4Ô Ø—‘˜‘ˆAØ”T˜!˜a ™d™(“^Ñ#Ð#ä�cœ5Ô!Ø—8‘8‰DˆAˆqØ”T˜!˜Q™$  A¡™+Ó&Ñ&Ð&ä�cœ4Ô Ø—‘˜‘ˆAÜ˜˜A ™F™
Ó#Ð#ä�cœ4Ô Ø—‘˜‘ˆAØ”T˜!˜a  1¡™f™*Ó%Ñ%Ð%ä�cœ4Ô Ø—‘˜‘ˆAÜ˜˜A˜a ™d™F™
Ó#Ð#ä�cœ4Ô Ø—‘˜‘ˆAØ�Q‘3ˆJð !r6   c                óì   — | dk  s| dz  dk(  rt         j                  S t        |«      }t        |«      dkD  r|d   }| |dz  z  | | dz
  z  z  S t         j                  | dz  z  || z  z  t        | «      z  S )Nr   r‚   r�   r×   rØ   rÚ   s       r4   rÝ   zcos.taylor_termê  rÞ   r6   c                ó  •— | j                   d   }|�|j                  t        |«      |«      }|j                  |d«      j                  t        j
                  t        j                  «      rt        d| z  «      ‚t        ‰| �%  ||||¬«      S rà   rã   rç   s         €r4   ræ   zcos._eval_nseriesø  ré   r6   c                óú   — t         j                  }ddlm} t	        |t
        |f«      r3 |j                  |j                  d   «      j                  t        fi |¤Ž}t        ||z  «      t        | |z  «      z   dz  S rë   ©
r   r3   rÄ   rí   r1   r8   r;   r<   rï   r#   )r@   r   rð   rñ   rí   s        r4   rò   zcos._eval_rewrite_as_exp   si   € Ü�O‰OˆÝLÜ�cÔ1Ð3EÐFÔGØ/�#—(‘(˜3Ÿ8™8 A™;Ó'×/Ñ/´Ñ>°vÑ>ˆCÜ�C˜‘E“
œS #  a¡›[Ñ(¨!Ñ+Ð+r6   c                ó†   — t        |t        «      r1t        j                  }|j                  d   }||z  dz  || z  dz  z   S y rô   rõ   rö   s        r4   r÷   zcos._eval_rewrite_as_Pow  sD   € Ü�cœ3ÔÜ—‘ˆAØ—‘˜‘ˆAØ�a‘4˜‘6˜A ˜r™E !™GÑ#Ð#ð  r6   c                ó0   — t        |t        dz  z   d¬«      S rù   )r    r   rý   s      r4   Ú_eval_rewrite_as_sinzcos._eval_rewrite_as_sin  rÿ   r6   c                óV   — t        t        j                  |z  «      dz  }d|z
  d|z   z  S r  r  r  s       r4   r  zcos._eval_rewrite_as_tan  s+   € Ü”q—v‘v˜c‘z“? AÑ%ˆØ�H‘˜q 8™|Ñ,Ð,r6   c                óH   — t        |«      t        |«      z  t        |«      z  S ri   r  rý   s      r4   r	  zcos._eval_rewrite_as_sincos  r
  r6   c                óâ   — t        t        j                  |z  «      dz  }t        dt	        t        t        |«      d«      t        t        |dt        z  «      d«      «      f|dz
  |dz   z  df«      S )Nr‚   r�   r   Tr  r  s       r4   r  zcos._eval_rewrite_as_cot  se   € Ü”q—v‘v˜c‘z“? AÑ%ˆÜ˜!œS¤¤B s£G¨Q£´´C¸¸Q¼r¹T³NÀAÓ1FÓGÐHØ# a™<¨(°Q©,Ñ7¸Ð>ó@ð 	@r6   c                ó(   —  | j                   |fi |¤ŽS ri   )r  rý   s      r4   r  zcos._eval_rewrite_as_pow  s   € Ø)ˆt×)Ñ)¨#Ñ8°Ñ8Ð8r6   c                ó  ‡— ddl m} t        |«      Š‰€y t        ‰t        «      ry t        ‰t
        «      sy t        «       }‰j                  |v rF |‰j                   |‰j                     «       «      }‰j                  dk  r|j                  «       }|S ‰j                  dz  sZ‰dz  } t        |t        z  «      j                  t        fi |¤Ž}|dz   dz  }t        |«      dz  rdnd}	|	t        d|z   dz  «      z  S t        ‰j                  «      }
|
r|
}n8t!        ‰j                  «      j#                  «       D ��cg c]
  \  }}||z  ‘Œ }}}t%        |Ž }ˆfd„t'        ||«      D «       }t'        |t)        d«      «      D �cg c]  }|d   |d   t        z  f‘Œ }}t        t+        d	„ |D «       «      «      j-                  «       j/                  |«      }|
rt1        |
«      dk(  r|S  |j                  t        fi |¤ŽS c c}}w c c}w )
Nr   ro  i  r‚   r�   r²   c              3  óV   •K  — | ]   \  }}‰j                   t        ||«      z  –— Œ" y ­wri   )rš   r   )Ú.0rÛ   rÏ   rG   s      €r4   ú	<genexpr>z,cos._eval_rewrite_as_sqrt.<locals>.<genexpr>B  s$   øè ø€ ÒM±$°!°Q�(—*‘*œx¨¨1›~Õ-ÑMùs   ƒ&)Úzc              3  ó&   K  — | ]	  }|d    –— Œ y­w)r   NrK   )r†  r™   s     r4   r‡  z,cos._eval_rewrite_as_sqrt.<locals>.<genexpr>D  s   è ø€ Ò' �q˜•tÑ'ùs   ‚)r;  r7  rF   r1   r   r   r)   rp  rš   rT   r©   r   rï   r%   r“   r+   r-   Úitemsr*   Úzipr/   Úsumr=  rä   rÙ   )r@   r   rð   r7  ru  ÚrvÚpico2rw  r™   rx  ÚFCÚdenomsrr  ÚeÚapartÚdecompÚXÚpclsrG   s                     @r4   r  zcos._eval_rewrite_as_sqrt  sÔ  ø€ ÝBä˜S“>ˆØÐØä�h¤Ô(Øä˜(¤HÔ-Øä"›ˆà�:‰:˜Ñ'Ù˜HŸJ™JÐ(B¨°x·z±zÑ(BÓ(DÓEˆBØ�z‰z˜CÒØ—Y‘Y“[�ØˆIà�z‰z˜AŠ~Ø˜q‘LˆEØ*”3�uœr‘z“?×*Ñ*¬4Ñ:°6Ñ:ˆDØ˜‘˜a‘ˆAÜ  ›V ašZ‘r¨QˆHØœd A¨¡H°¡>Ó2Ñ2Ð2ä˜8Ÿ:™:Ó&ˆÙØ‰Fä'0°·±Ó'<×'BÑ'BÓ'D×E™t˜q !�a˜“dÐEˆFÑEä˜6Ð"ˆÛM¼#¸eÀVÓ:LÔMˆÜ&)¨&Ô2BÀ3Ó2GÓ&HÖI ˆa�‰d�A�a‘Dœ‘GŠ_ÐIˆÐIÜ”3Ñ' QÔ'Ó'Ó(×:Ñ:Ó<×AÑAÀ!ÓDˆá”S˜“W ’\ØˆKØˆt�|‰|œDÑ+ FÑ+Ð+ùó Fùò Js   Ä?H ÆHc                ó   — dt        |«      z  S r  ©r  rý   s      r4   r  zcos._eval_rewrite_as_secJ  r  r6   c                óH   — d t        |«      j                  t        fi |¤Žz  S r  )r  rï   r  rý   s      r4   r  zcos._eval_rewrite_as_cscM  ó$   € ØÐ!”�S“×!Ñ!¤#Ñ0¨Ñ0Ñ0Ð0r6   c                ó–   — ddl m} t        t        t        |z  dz  «       |t
        j                   |«      z  t        |d«      fd«      S )Nr   r$  r‚   ©r�   T©r'  r%  r(   r%   r   r   r†   r   r(  s       r4   r)  zcos._eval_rewrite_as_besseljP  sA   € Ý:ÜÜ”b˜‘f˜Q‘h“¡¬¯©¨°Ó 5Ñ5´r¸#¸q³zÐBØóð 	r6   c                óZ   — | j                  | j                  d   j                  «       «      S r+  r,  r.  s    r4   r/  zcos._eval_conjugateW  r0  r6   c                ó’   — ddl m}m}  | j                  dd|i|¤Ž\  }}t	        |«       ||«      z  t        |«        ||«      z  fS r2  )rÄ   r4  r¶   rV   r©   r    r5  s          r4   rL   zcos.as_real_imagZ  sJ   € ßDØ#�×#Ñ#Ñ7¨Ð7°Ñ7‰ˆˆBÜ�B“™˜R›Ñ ¤3 r£7 (©4°«8Ñ"3Ð4Ð4r6   c                óð  — ddl m} | j                  d   }d }|j                  rŠ|j	                  «       \  }}t        |d¬«      j                  «       }t        |d¬«      j                  «       }t        |d¬«      j                  «       }t        |d¬«      j                  «       }	||	z  ||z  z
  S |j                  r3|j                  d¬«      \  }
}|
j                  r ||
t        |«      «      S t        |«      S )Nr   ro  Frú   Tr9  )r;  r7  r<   r_   r<  r    r=  r©   r\   r‘   r>  )r@   rM   r7  r   r™   rÓ   r@  rA  r—   rB  r„   Útermss               r4   r=  zcos._eval_expand_trig_  s×   € ÝBØ�i‰i˜‰lˆØˆØ�:Š:Ø×#Ñ#Ó%‰DˆAˆqÜ�Q Ô'×9Ñ9Ó;ˆBÜ�Q Ô'×9Ñ9Ó;ˆBÜ�Q Ô'×9Ñ9Ó;ˆBÜ�Q Ô'×9Ñ9Ó;ˆBØ�b‘5˜2˜b™5‘=Ð Ø�ZŠZØ×+Ñ+°TÐ+Ó:‰LˆE�5Ø×ÒÙ! %¬¨U«Ó4Ð4Ü�3‹xˆr6   c                ó.  — ddl m} | j                  d   }|j                  |d«      j	                  «       }|t
        dz  z   t
        z  }|j                  r;||t
        z  z
  t
        dz  z   j                  |«      }t        j                  |z  |z  S |t        j                  u r+|j                  |dt        |«      j                  rdnd¬«      }|t        j                  t        j                  fv r	 |dd«      S |j                   r| j#                  |«      S | S )	Nr   r®   r‚   rD  rE  rF  r²   r�   rH  rN  s	            r4   rQ  zcos._eval_as_leading_termp  sä   € ÝAØ�i‰i˜‰lˆØ�X‰X�a˜‹^×"Ñ"Ó$ˆØ”"�Q‘$‰Yœ‰NˆØ�<Š<Ø˜œ"™‘*œr !™tÑ#×4Ñ4°QÓ7ˆBÜ—M‘M 1Ñ$ bÑ(Ð(Ø”×"Ñ"Ñ"Ø—‘˜1˜a¬B¨t«H×,@Ò,@¡SÀc�ÓJˆBØ”!—*‘*œa×0Ñ0Ð1Ñ1Ù˜r 1Ó%Ð%Ø "§¢ˆt�y‰y˜‹}Ð6°$Ð6r6   c                ó8   — | j                   d   j                  ryy rS  rT  r.  s    r4   rU  zcos._eval_is_extended_real~  rV  r6   c                ó<   — | j                   d   }|j                  ryy rS  rT  rX  s     r4   rY  zcos._eval_is_finite‚  s    € Ø�i‰i˜‰lˆà×ÒØð  r6   c                ój   — | j                   d   j                  s| j                   d   j                  ryy rS  rb  r.  s    r4   rd  zcos._eval_is_complexˆ  s,   € Ø�9‰9�Q‰<×(Ò(Ø�y‰y˜‰|×&Ò&Øð 'r6   c                ó’   — t        | j                  d   «      \  }}|j                  r |r|t        j                  z
  j
                  S y y r+  ©r�   r<   r>   r   r†   r‡   r\  s      r4   r_  zcos._eval_is_zero�  s=   € Ü# D§I¡I¨a¡LÓ1‰ˆˆgØ�<Š<™GØœaŸf™fÑ$×0Ñ0Ð0ð $ˆ<r6   ri   re  rf  )r   r   rh   ) rj   rk   rl   rm   r¥   r¬   rg  rÔ   rh  r   rÝ   ræ   rò   r÷   r  r  r	  r  r  r  r  r  r)  r/  rL   r=  rQ  rU  rY  rd  r_  ri  rj  s   @r4   r©   r©   )  s­   ø„ ñ)óV*ó5ð ñIó ðIðV Øñ
?ó ó ð
?õCò,ò$ò/ò-ò*ò@ò
9ó),òVò1òò3ó5ò
ò"7òòòö
1r6   r©   c                  óà   ‡ — e Zd ZdZdd„Zdd„Zdd„Zed„ «       Ze	e
d„ «       «       Zdˆ fd„	Zd„ Zd	„ Zd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 ˆ xZ!S ) r  a¼  
    The tangent function.

    Returns the tangent of x (measured in radians).

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

    See :class:`sin` for notes about automatic evaluation.

    Examples
    ========

    >>> from sympy import tan, pi
    >>> from sympy.abc import x
    >>> tan(x**2).diff(x)
    2*x*(tan(x**2)**2 + 1)
    >>> tan(1).diff(x)
    0
    >>> tan(pi/8).expand()
    -1 + sqrt(2)

    See Also
    ========

    sin, csc, cos, sec, cot
    asin, acsc, acos, asec, atan, acot, atan2

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Trigonometric_functions
    .. [2] https://dlmf.nist.gov/4.14
    .. [3] https://functions.wolfram.com/ElementaryFunctions/Tan

    c                ó.   — | j                  t        |«      S ri   r£   r¤   s     r4   r¥   z
tan.period¹  ó   € Ø�|‰|œB Ó'Ð'r6   c                óP   — |dk(  rt         j                  | dz  z   S t        | |«      ‚©Nr�   r‚   )r   r�   r   rª   s     r4   r¬   z	tan.fdiff¼  s(   € Ø�qŠ=Ü—5‘5˜4 ™7‘?Ð"ä$ T¨8Ó4Ð4r6   c                ó   — t         S ©z7
        Returns the inverse of this function.
        ©rÈ   rª   s     r4   Úinverseztan.inverseÂ  ó	   € ô ˆr6   c           
     ó  — ddl m} |j                  r…|t        j                  u rt        j                  S |j
                  rt        j                  S |t        j                  t        j                  fv r% |t        j                  t        j                  «      S |t        j                  u rt        j                  S t        ||«      rã|j                  |j                  }}t        |t        z  «      }|t        j                  ur||t        z  z
  }|t        j                  ur||t        z  z
  }ddlm}  |||«      j#                   |t        dz  t        t%        dd«      z  «      «      r% |t        j                  t        j                  «      S  |t'        |«      t'        |«      «      S |j)                  «       r
 | | «       S t+        |«      }|�ddlm} t        j0                   ||«      z  S t3        |d«      }	|	��T|	j4                  rt        j                  S |	j6                  s|	t        z  }
|
|k7  r | |
«      S y |	j6                  �r|	j8                  }|	j:                  |z  }t=        ddt=        d«      z  dz  z
  «      t=        ddt=        d«      z  z
  «      t=        ddt=        d«      z  dz  z   «      t=        ddt=        d«      z  z   «      d	œ}|d
v rd|z  |z  }|dkD  rd|z
  }||    S ||   S |	j8                  dz  sl|	t        z  dz  }
t?        |
«      t?        |
t        dz  z
  «      }}t        |t>        «      s0t        |t>        «      s |dk(  rt        j                  S d|z  ||z  z
  S tA        «       }||v rA||   \  }} | |t        z  |z  «       | |t        z  |z  «      }}d ||fv ry ||z
  d||z  z   z  S |	t        jB                  z   dz  t        jB                  z
  t        z  }
t?        |
«      t?        |
t        dz  z
  «      }}t        |t>        «      s*t        |t>        «      s|dk(  rt        j                  S ||z  S |
|k7  r | |
«      S |jD                  rKtG        |«      \  }}|r;t'        |t        z  «      }|t        j                  u rtI        |«       S t'        |«      S |j
                  rt        j                  S t        |tJ        «      r|jL                  d   S t        |tN        «      r|jL                  \  }}||z  S t        |tP        «      r#|jL                  d   }|t=        d|dz  z
  «      z  S t        |tR        «      r#|jL                  d   }t=        d|dz  z
  «      |z  S t        |tT        «      r|jL                  d   }d|z  S t        |tV        «      r)|jL                  d   }dt=        dd|dz  z  z
  «      |z  z  S t        |tX        «      r&|jL                  d   }t=        dd|dz  z  z
  «      |z  S y )Nr   r®   r³   r‚   rr   )Útanhr�   rt   )r�   r‚   rr   rs   ©rt   rv   rv   )-r·   r¯   r¹   r   rº   r>   rU   r»   r¼   ro   r1   r¾   r¿   r$   r   r½   r´   rÀ   r   r  rÃ   r5   rÄ   r²  r3   rF   r‡   rÆ   rp  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²  rG   rÑ   rp  rš   Útable10rÛ   ÚcresultÚsresultrq  rf   rr  rs  rt  r™   r›   ÚtanmrÓ   s                             r4   rÔ   ztan.evalÈ  s:  € åAØ�=Š=Ø”a—e‘e‰|Ü—u‘u�Ø—’Ü—v‘v�ØœŸ™¤Q×%7Ñ%7Ð8Ñ8Ù"¤1×#5Ñ#5´q·z±zÓBÐBà”!×#Ñ#Ñ#Ü—5‘5ˆLä�c˜;Ô'Ø—w‘w §¡�ˆCÜ�cœ"‘f“ˆAØœ!×,Ñ,Ñ,Ø˜Aœb™D‘j�Øœ!Ÿ*™*Ñ$Ø˜Aœb™D‘j�Ý1Ù˜3 Ó$×1Ñ1±)¼B¸q¹DÄ"ÄXÈaÐQRÃ^ÑBSÓ2TÔUÙ"¤1×#5Ñ#5´q·z±zÓBÐBá"¤3 s£8¬S°«XÓ6Ð6à×'Ñ'Ô)Ù˜˜“I�:Ðä0°Ó5ˆØÐÝBÜ—?‘?¡4¨£=Ñ0Ð0ä˜S !Ó$ˆØÑØ×"Ò"Ü—v‘v�à×'Ò'Ø¤‘{�Ø˜3’;Ù˜t›9Ð$Øà×#Ó#Ø—J‘J�Ø—J‘J ‘N�ô ˜A ¤$ q£'¡	¨!¡™OÓ,Ü˜A ¤$ q£'¡	™MÓ*Ü˜A ¤$ q£'¡	¨!¡™OÓ,Ü˜A ¤$ q£'¡	™MÓ*ñ	�ð ˜‘<Ø˜1™˜Q™�AØ˜1’uØ ™F˜Ø '¨¡
˜{Ð*à& q™zÐ)Ø—z‘z A’~Ø#¤B™; q™=�DÜ'*¨4£y´#°d¼RÀ¹T±kÓ2B˜W�GÜ% g¬sÔ3Ü$.¨w¼Ô$<Ø" aš<Ü#$×#4Ñ#4Ð4Ø  ™y¨7°7©?Ñ:Ð:ä ›�Ø˜‘;Ø! !™9‘D�A�qÙ#& q¬¡t¨A¡v£;±°A´b±D¸±F³˜5�EØ  u˜~Ñ-Ø#Ø! E™M¨A°°e±©OÑ<Ð<Ø!¤A§F¡FÑ*¨aÑ/´!·&±&Ñ8¼"Ñ<�ô $' t£9¬c°$¼¸A¹±+Ó.>˜�Ü! '¬3Ô/Ü *¨7´CÔ 8Ø !’|Ü ×0Ñ0Ð0Ø# G™OÐ,Ø˜3’;Ù˜t›9Ð$à�:Š:Ü˜sÓ#‰DˆAˆqÙÜ˜1œR™4“y�Øœ1×,Ñ,Ñ,Ü ›F˜7�Nä˜q›6�Mà�;Š;Ü—6‘6ˆMä�cœ4Ô Ø—8‘8˜A‘;Ðä�cœ5Ô!Ø—8‘8‰DˆAˆqØ�Q‘3ˆJä�cœ4Ô Ø—‘˜‘ˆAØ”T˜!˜a ™d™(“^Ñ#Ð#ä�cœ4Ô Ø—‘˜‘ˆAÜ˜˜A˜q™D™“> !Ñ#Ð#ä�cœ4Ô Ø—‘˜‘ˆAØ�Q‘3ˆJä�cœ4Ô Ø—‘˜‘ˆAØ”d˜1˜q  A¡™v™:Ó& qÑ(Ñ)Ð)ä�cœ4Ô Ø—‘˜‘ˆAÜ˜˜A˜a ™d™F™
Ó# AÑ%Ð%ð !r6   c                óú   — | dk  s| dz  dk(  rt         j                  S t        |«      }| dz
  dz  d| dz   z  }}t        | dz   «      }t	        | dz   «      }t         j
                  |z  |z  |dz
  z  |z  |z  || z  z  S ©Nr   r‚   r�   )r   rU   r   r   r   rÅ   )rÛ   r™   rÜ   rf   rr  ÚBÚFs          r4   rÝ   ztan.taylor_termJ  sŒ   € ð ˆqŠ5�A˜‘E˜Q’JÜ—6‘6ˆMä˜“
ˆAà˜‘U˜Q‘J  Q¨¡U¡ˆqˆAä˜!˜a™%Ó ˆAÜ˜!˜a™%Ó ˆAä—=‘= !Ñ# AÑ% q¨1¡uÑ-¨aÑ/°Ñ1°!°Q±$Ñ6Ð6r6   c                óä   •— | j                   d   j                  |d«      dz  t        z  }|r3|j                  r'| j	                  t
        «      j                  |||¬«      S t        ‰| �  |||¬«      S )Nr   r‚   ©rÛ   rá   )r<   rK  r   r>  rï   r©   ræ   rå   )r@   r™   rÛ   rá   râ   r�   rè   s         €r4   ræ   ztan._eval_nseriesY  sh   ø€ Ø�I‰I�a‰L×Ñ˜q !Ó$ QÑ&¤rÑ)ˆÙ�—’Ø—<‘<¤Ó$×2Ñ2°1¸ÀÐ2ÓEÐEÜ‰wÑ$ Q¨!°$Ð$Ó7Ð7r6   c                óš   — t        |t        «      r;t        j                  }|j                  d   }||| z  ||z  z
  z  || z  ||z  z   z  S y r+  rõ   rö   s        r4   r÷   ztan._eval_rewrite_as_Pow_  sS   € Ü�cœ3ÔÜ—‘ˆAØ—‘˜‘ˆAØ�a˜!˜‘e˜a ™d‘lÑ# Q¨¨¡U¨Q°©T¡\Ñ2Ð2ð  r6   c                óZ   — | j                  | j                  d   j                  «       «      S r+  r,  r.  s    r4   r/  ztan._eval_conjugatee  r0  r6   c                óø   —  | j                   dd|i|¤Ž\  }}|rAddlm}m} t	        d|z  «       |d|z  «      z   }t        d|z  «      |z   |d|z  «      |z  fS | j                  |«      t        j                  fS ©NrJ   r   r3  r‚   rK   ©	rV   rÄ   r4  r¶   r©   r    r;   r   rU   ©r@   rJ   rM   r!   r    r4  r¶   Údenoms           r4   rL   ztan.as_real_imagh  s{   € Ø#�×#Ñ#Ñ7¨Ð7°Ñ7‰ˆˆBÙßHÜ˜˜"™“I¡ Q r¡T£
Ñ*ˆEÜ˜˜"™“I˜e‘O¡T¨!¨B©$£Z°Ñ%5Ð6Ð6à—I‘I˜b“M¤1§6¡6Ð*Ð*r6   c                ój  — | j                   d   }d }|j                  rít        |j                   «      }g }|j                   D ].  }t        |d¬«      j	                  «       }|j                  |«       Œ0 t        d«      }t        |«      D �cg c]  }t        |«      ‘Œ }	}ddg}
t        |dz   «      D ]+  }|
d|dz  z
  xx   t        ||	«      d|dz  dz  z  z  z  cc<   Œ- |
d   |
d   z  j                  t        t        |	|«      «      «      S |j                  rŽ|j                  d	¬
«      \  }}|j                  rm|dkD  rht         j"                  }t%        dd	¬«      }d||z  z   |z  j'                  «       }t)        |«      t+        |«      z  j                  |t        |«      fg«      S t        |«      S c c}w )Nr   Frú   ÚYr�   r‚   r²   rs   Tr9  Údummy©Úreal)r<   r_   rÙ   r  r=  r…   r/   ÚrangeÚnextr.   rä   Úlistr‹  r\   r‘   r>  r   r3   r   rT   r    r!   )r@   rM   r   r™   rÛ   ÚTXÚtxÚYgr�   rÆ  rš   r„   r   rñ   rˆ  ÚPs                   r4   r=  ztan._eval_expand_trigq  s“  € Ø�i‰i˜‰lˆØˆØ�:Š:Ü�C—H‘H“ˆAØˆBØ—X‘Xò �Ü˜ UÔ+×=Ñ=Ó?�Ø—	‘	˜"•ðô " #Ó&ˆBÜ$)¨!£HÖ.˜q”$�r•(Ð.ˆAÐ.à�A�ˆAÜ˜1˜q™5“\ò H�Ø�!�a˜!‘e‘)“¤¨q°!Ó 4°b¸QÀ¹UÀQ¹JÑ5GÑ GÑG”ðHà�a‘D˜˜1™‘I×#Ñ#¤D¬¨Q°«Ó$4Ó5Ð5à�ZŠZØ×+Ñ+°TÐ+Ó:‰LˆE�5Ø×Ò E¨A¢IÜ—O‘O�Ü˜7¨Ô.�Ø˜!˜A™#‘g Ñ%×-Ñ-Ó/�Ü˜1›œb ›e™×)Ñ)¨A¬s°5«z¨?Ð*;Ó<Ð<Ü�3‹xˆùò /s   Â
F0c                ó
  — t         j                  }ddlm} t	        |t
        |f«      r1|j                  |j                  d   «      j                  t        «      }t        | |z  «      t        ||z  «      }}|||z
  z  ||z   z  S ©Nr   rì   r|  )r@   r   rð   rñ   rí   Úneg_expÚpos_exps          r4   rò   ztan._eval_rewrite_as_expŒ  su   € Ü�O‰OˆÝLÜ�cÔ1Ð3EÐFÔGØ—(‘(˜3Ÿ8™8 A™;Ó'×/Ñ/´Ó4ˆCÜ ˜t A™v›;¬¨C°©E«
�ˆØ�'˜GÑ#Ñ$ g°Ñ&7Ñ8Ð8r6   c                óB   — dt        |«      dz  z  t        d|z  «      z  S r¢   ©r    ©r@   r™   rð   s      r4   r  ztan._eval_rewrite_as_sin”  s!   € Ø”�Q“˜‘‰{œ3˜q ™s›8Ñ#Ð#r6   c                óH   — t        |t        dz  z
  d¬«      t        |«      z  S rù   rü   r×  s      r4   rþ   ztan._eval_rewrite_as_cos—  s    € Ü�1”r˜!‘t‘8 eÔ,¬S°«VÑ3Ð3r6   c                ó0   — t        |«      t        |«      z  S ri   r  rý   s      r4   r	  ztan._eval_rewrite_as_sincosš  ó   € Ü�3‹xœ˜C›Ñ Ð r6   c                ó   — dt        |«      z  S r  ©r  rý   s      r4   r  ztan._eval_rewrite_as_cot�  r  r6   c                óŒ   —  t        |«      j                  t        fi |¤Ž} t        |«      j                  t        fi |¤Ž}||z  S ri   )r    rï   r  r©   )r@   r   rð   Úsin_in_sec_formÚcos_in_sec_forms        r4   r  ztan._eval_rewrite_as_sec   óC   € Ø*œ#˜c›(×*Ñ*¬3Ñ9°&Ñ9ˆØ*œ#˜c›(×*Ñ*¬3Ñ9°&Ñ9ˆØ˜Ñ.Ð.r6   c                óŒ   —  t        |«      j                  t        fi |¤Ž} t        |«      j                  t        fi |¤Ž}||z  S ri   )r    rï   r  r©   )r@   r   rð   Úsin_in_csc_formÚcos_in_csc_forms        r4   r  ztan._eval_rewrite_as_csc¥  rà  r6   c                óŠ   —   | j                   t        fi |¤Žj                   t        fi |¤Ž}|j                  t        «      ry |S ri   ©rï   r©   r  r[   ©r@   r   rð   rÓ   s       r4   r  ztan._eval_rewrite_as_powª  ó<   € Ø/ˆLˆD�L‰LœÑ' Ñ'×/Ñ/´Ñ>°vÑ>ˆØ�5‰5”Œ:ØØˆr6   c                óŠ   —   | j                   t        fi |¤Žj                   t        fi |¤Ž}|j                  t        «      ry |S ri   ©rï   r©   r%   r[   ræ  s       r4   r  ztan._eval_rewrite_as_sqrt°  ó<   € Ø/ˆLˆD�L‰LœÑ' Ñ'×/Ñ/´Ñ?¸Ñ?ˆØ�5‰5”Œ:ØØˆr6   c                ón   — ddl m}  |t        j                  |«       |t        j                   |«      z  S ©Nr   r$  ©r'  r%  r   r†   r(  s       r4   r)  ztan._eval_rewrite_as_besselj¶  s(   € Ý:Ù”q—v‘v˜sÓ#¡G¬Q¯V©V¨G°SÓ$9Ñ9Ð9r6   c                óJ  — ddl m} ddlm} | j                  d   }|j                  |d«      j                  «       }d|z  t        z  }|j                  r1||t        z  dz  z
  j                  |«      }	|j                  r|	S d|	z  S |t        j                  u r(|j                  |d ||«      j                  rdnd¬«      }|t        j                  t        j                   fv r% |t        j                   t        j                  «      S |j"                  r| j%                  |«      S | S )	Nr   r®   ©r!   r‚   r²   rD  rE  rF  ©r·   r¯   Ú$sympy.functions.elementary.complexesr!   r<   rä   rI  r   r‡   rJ  rˆ   r   ro   rK  rL  r»   r¼   rM  r;   ©
r@   r™   rá   râ   r¯   r!   r   rO  rÛ   rP  s
             r4   rQ  ztan._eval_as_leading_termº  sé   € ÝAÝ;Ø�i‰i˜‰lˆØ�X‰X�a˜‹^×"Ñ"Ó$ˆØˆb‰D”‰GˆØ�<Š<Ø˜œ"™˜Q™‘,×/Ñ/°Ó2ˆBØŸš�2Ð-¨¨2©Ð-Ø”×"Ñ"Ñ"Ø—‘˜1˜a©B¨t«H×,@Ò,@¡SÀc�ÓJˆBØ”!—*‘*œa×0Ñ0Ð1Ñ1Ùœq×1Ñ1´1·:±:Ó>Ð>Ø "§¢ˆt�y‰y˜‹}Ð6°$Ð6r6   c                ó4   — | j                   d   j                  S r+  rT  r.  s    r4   rU  ztan._eval_is_extended_realÉ  s   € à�y‰y˜‰|×,Ñ,Ð,r6   c                óŠ   — | j                   d   }|j                  r(|t        z  t        j                  z
  j
                  du ryy y rD   ©r<   Úis_realr   r   r†   r‡   rX  s     r4   Ú_eval_is_realztan._eval_is_realÍ  s:   € Ø�i‰i˜‰lˆØ�;Š;˜C¤™F¤Q§V¡V™O×7Ñ7¸5Ñ@Øð Aˆ;r6   c                ó¢   — | j                   d   }|j                  r'|t        z  t        j                  z
  j
                  du ry|j                  ryy rD   )r<   rö  r   r   r†   r‡   Úis_imaginaryrX  s     r4   rY  ztan._eval_is_finiteÒ  sC   € Ø�i‰i˜‰lˆà�;Š;˜C¤™F¤Q§V¡V™O×7Ñ7¸5Ñ@Øà×ÒØð r6   c                ój   — t        | j                  d   «      \  }}|j                  r|j                  S y r+  r[  r\  s      r4   r_  ztan._eval_is_zeroÛ  r`  r6   c                óŠ   — | j                   d   }|j                  r(|t        z  t        j                  z
  j
                  du ryy y rD   rõ  rX  s     r4   rd  ztan._eval_is_complexà  s:   € Ø�i‰i˜‰lˆà�;Š;˜C¤™F¤Q§V¡V™O×7Ñ7¸5Ñ@Øð Aˆ;r6   ri   re  rf  rh   )"rj   rk   rl   rm   r¥   r¬   r¯  rg  rÔ   rh  r   rÝ   ræ   r÷   r/  rL   r=  rò   r  rþ   r	  r  r  r  r  r  r)  rQ  rU  r÷  rY  r_  rd  ri  rj  s   @r4   r  r  “  s´   ø„ ñ#óJ(ó5óð ñ&ó ð&ðB Øñ7ó ó ð7õ8ò3ò3ó+òò69ò$ò4ò!òò/ò
/ò
òò:ò7ò-òò
ò&ö
r6   r  c                  óÚ   — e Zd ZdZdd„Zdd„Zdd„Zed„ «       Ze	e
d„ «       «       Zd d„Zd	„ Zd!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!y)"r  a¸  
    The cotangent function.

    Returns the cotangent of x (measured in radians).

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

    See :class:`sin` for notes about automatic evaluation.

    Examples
    ========

    >>> from sympy import cot, pi
    >>> from sympy.abc import x
    >>> cot(x**2).diff(x)
    2*x*(-cot(x**2)**2 - 1)
    >>> cot(1).diff(x)
    0
    >>> cot(pi/12)
    sqrt(3) + 2

    See Also
    ========

    sin, csc, cos, sec, tan
    asin, acsc, acos, asec, atan, acot, atan2

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Trigonometric_functions
    .. [2] https://dlmf.nist.gov/4.14
    .. [3] https://functions.wolfram.com/ElementaryFunctions/Cot

    Nc                ó.   — | j                  t        |«      S ri   r£   r¤   s     r4   r¥   z
cot.period  r©  r6   c                óP   — |dk(  rt         j                  | dz  z
  S t        | |«      ‚r«  )r   rÅ   r   rª   s     r4   r¬   z	cot.fdiff  s)   € Ø�qŠ=Ü—=‘= 4¨¡7Ñ*Ð*ä$ T¨8Ó4Ð4r6   c                ó   — t         S r­  ©rË   rª   s     r4   r¯  zcot.inverse  r°  r6   c                óŠ	  — ddl m} |j                  r…|t        j                  u rt        j                  S |j
                  rt        j                  S |t        j                  t        j                  fv r% |t        j                  t        j                  «      S |t        j                  u rt        j                  S t        ||«      rt        |t        dz  z   «       S |j                  «       r
 | | «       S t        |«      }|� ddlm} t        j                     ||«      z  S t#        |d«      }|��ã|j$                  rt        j                  S |j&                  s|t        z  }||k7  r | |«      S y |j&                  �r—|j(                  dv rt        t        dz  |z
  «      S |j(                  dkD  rf|j(                  dz  sW|t        z  dz  }t+        |«      t+        |t        dz  z
  «      }}t        |t*        «      st        |t*        «      sd|z  ||z  z   S |j(                  }	|j,                  |	z  }
t/        «       }|	|v rA||	   \  }} | |
t        z  |z  «       | |
t        z  |z  «      }}d ||fv ry d||z  z   ||z
  z  S |t        j0                  z   dz  t        j0                  z
  t        z  }t+        |«      t+        |t        dz  z
  «      }}t        |t*        «      s*t        |t*        «      s|dk(  rt        j                  S ||z  S ||k7  r | |«      S |j2                  rKt5        |«      \  }}|r;t7        |t        z  «      }|t        j                  u rt7        |«      S t        |«       S |j
                  rt        j                  S t        |t8        «      r|j:                  d   S t        |t<        «      r|j:                  d   }d|z  S t        |t>        «      r|j:                  \  }}||z  S t        |t@        «      r#|j:                  d   }tC        d|dz  z
  «      |z  S t        |tD        «      r#|j:                  d   }|tC        d|dz  z
  «      z  S t        |tF        «      r&|j:                  d   }tC        dd|dz  z  z
  «      |z  S t        |tH        «      r)|j:                  d   }dtC        dd|dz  z  z
  «      |z  z  S y )Nr   r®   r‚   )Úcothr³  r�   )%r·   r¯   r¹   r   rº   r>   ro   r»   r¼   r1   r  r   rÃ   r5   rÄ   r  r3   rF   r‡   rÆ   rp  r©   rš   r€   r†   r_   r�   r  rË   r<   rÈ   rÉ   rÇ   r%   rÊ   rÌ   rÍ   )rÎ   r   r¯   rÐ   r  rG   rÑ   rµ  r¶  rp  rš   rq  rf   rr  rs  rt  r™   r›   ÚcotmrÓ   s                       r4   rÔ   zcot.eval  s&  € åAØ�=Š=Ø”a—e‘e‰|Ü—u‘u�Ø�{Š{Ü×(Ñ(Ð(ØœŸ™¤Q×%7Ñ%7Ð8Ñ8Ù"¤1×#5Ñ#5´q·z±zÓBÐBà”!×#Ñ#Ñ#Ü—5‘5ˆLä�c˜;Ô'Ü˜œb ™d™
“OÐ#Ð#à×'Ñ'Ô)Ù˜˜“I�:Ðä0°Ó5ˆØÐÝBÜ—O‘OÐ#¡D¨£MÑ1Ð1ä˜S !Ó$ˆØÑØ×"Ò"Ü×(Ñ(Ð(à×'Ò'Ø¤‘{�Ø˜3’;Ù˜t›9Ð$Øà×#Ó#Ø—:‘: Ñ(Üœr !™t c™z›?Ð*Ø—:‘: ’>¨(¯*©*°qª.Ø#¤B™; q™=�DÜ'*¨4£y´#°d¼RÀ¹T±kÓ2B˜W�GÜ% g¬sÔ3Ü$.¨w¼Ô$<Ø  ™y¨7°7©?Ñ:Ð:Ø—J‘J�Ø—J‘J ‘N�Ü ›�Ø˜‘;Ø! !™9‘D�A�qÙ#& q¬¡t¨A¡v£;±°A´b±D¸±F³˜5�EØ  u˜~Ñ-Ø#Ø  e¡™O¨e°e©mÑ<Ð<Ø"¤Q§V¡VÑ+¨qÑ0´A·F±FÑ:¼BÑ>�ô $' t£9¬c°$¼¸A¹±+Ó.>˜�Ü! '¬3Ô/Ü *¨7´CÔ 8Ø !’|Ü ×0Ñ0Ð0Ø" 7™?Ð*Ø˜3’;Ù˜t›9Ð$à�:Š:Ü˜sÓ#‰DˆAˆqÙÜ˜1œR™4“y�Øœ1×,Ñ,Ñ,Ü˜q›6�Mä ›F˜7�Nà�;Š;Ü×$Ñ$Ð$ä�cœ4Ô Ø—8‘8˜A‘;Ðä�cœ4Ô Ø—‘˜‘ˆAØ�Q‘3ˆJä�cœ5Ô!Ø—8‘8‰DˆAˆqØ�Q‘3ˆJä�cœ4Ô Ø—‘˜‘ˆAÜ˜˜A˜q™D™“> !Ñ#Ð#ä�cœ4Ô Ø—‘˜‘ˆAØ”T˜!˜a ™d™(“^Ñ#Ð#ä�cœ4Ô Ø—‘˜‘ˆAÜ˜˜A˜a ™d™F™
Ó# AÑ%Ð%ä�cœ4Ô Ø—‘˜‘ˆAØ”d˜1˜q  A¡™v™:Ó& qÑ(Ñ)Ð)ð !r6   c                ó  — | dk(  rdt        |«      z  S | dk  s| dz  dk(  rt        j                  S t        |«      }t        | dz   «      }t	        | dz   «      }t        j
                  | dz   dz  z  d| dz   z  z  |z  |z  || z  z  S ©Nr   r�   r‚   )r   r   rU   r   r   rÅ   )rÛ   r™   rÜ   rº  r»  s        r4   rÝ   zcot.taylor_term…  s�   € ð �Š6Ø”W˜Q“Z‘<ÐØ�ŠU�a˜!‘e˜q’jÜ—6‘6ˆMä˜“
ˆAä˜!˜a™%Ó ˆAÜ˜!˜a™%Ó ˆAä—=‘= A¨¡E¨A¡:Ñ.¨q°1°q±5©zÑ9¸!Ñ;¸AÑ=¸aÀ¹dÑBÐBr6   c                ó  — | j                   d   j                  |d«      t        z  }|r3|j                  r'| j	                  t
        «      j                  |||¬«      S | j	                  t        «      j                  |||¬«      S )Nr   r½  )r<   rK  r   r>  rï   r©   ræ   r  )r@   r™   rÛ   rá   râ   r�   s         r4   ræ   zcot._eval_nseries”  sl   € Ø�I‰I�a‰L×Ñ˜q !Ó$¤RÑ'ˆÙ�—’Ø—<‘<¤Ó$×2Ñ2°1¸ÀÐ2ÓEÐEØ�|‰|œCÓ ×.Ñ.¨q°A¸DÐ.ÓAÐAr6   c                óZ   — | j                  | j                  d   j                  «       «      S r+  r,  r.  s    r4   r/  zcot._eval_conjugateš  r0  r6   c                óú   —  | j                   dd|i|¤Ž\  }}|rBddlm}m} t	        d|z  «       |d|z  «      z
  }t        d|z  «       |z   |d|z  «      |z  fS | j                  |«      t        j                  fS rÁ  rÂ  rÃ  s           r4   rL   zcot.as_real_imag�  s~   € Ø#�×#Ñ#Ñ7¨Ð7°Ñ7‰ˆˆBÙßHÜ˜˜"™“I¡ Q r¡T£
Ñ*ˆEÜ˜˜2™“Y�J˜uÑ$¡d¨1¨R©4£j°Ñ&6Ð7Ð7à—I‘I˜b“M¤1§6¡6Ð*Ð*r6   c                ó  — ddl m} t        j                  }t	        |t
        |f«      r3 |j                  |j                  d   «      j                  t        fi |¤Ž}t        | |z  «      t        ||z  «      }}|||z   z  ||z
  z  S rÒ  rî   )r@   r   rð   rí   rñ   rÓ  rÔ  s          r4   rò   zcot._eval_rewrite_as_exp¦  s|   € ÝLÜ�O‰OˆÜ�cÔ1Ð3EÐFÔGØ/�#—(‘(˜3Ÿ8™8 A™;Ó'×/Ñ/´Ñ>°vÑ>ˆCÜ ˜t A™v›;¬¨C°©E«
�ˆØ�'˜GÑ#Ñ$ g°Ñ&7Ñ8Ð8r6   c                óœ   — t        |t        «      r<t        j                  }|j                  d   }| || z  ||z  z   z  || z  ||z  z
  z  S y r+  rõ   rö   s        r4   r÷   zcot._eval_rewrite_as_Pow®  sU   € Ü�cœ3ÔÜ—‘ˆAØ—‘˜‘ˆAØ�2�q˜1˜"‘u˜q !™t‘|Ñ$ a¨!¨¡e¨a°©d¡lÑ3Ð3ð  r6   c                óB   — t        d|z  «      dt        |«      dz  z  z  S r¢   rÖ  r×  s      r4   r  zcot._eval_rewrite_as_sin´  s!   € Ü�1�Q‘3‹x˜œC ›F A™I™Ñ'Ð'r6   c                óH   — t        |«      t        |t        dz  z
  d¬«      z  S rù   rü   r×  s      r4   rþ   zcot._eval_rewrite_as_cos·  s    € Ü�1‹v”c˜!œb ™d™(¨UÔ3Ñ3Ð3r6   c                ó0   — t        |«      t        |«      z  S ri   ©r©   r    rý   s      r4   r	  zcot._eval_rewrite_as_sincosº  rÚ  r6   c                ó   — dt        |«      z  S r  ©r  rý   s      r4   r  zcot._eval_rewrite_as_tan½  r  r6   c                óŒ   —  t        |«      j                  t        fi |¤Ž} t        |«      j                  t        fi |¤Ž}||z  S ri   )r©   rï   r  r    )r@   r   rð   rß  rÞ  s        r4   r  zcot._eval_rewrite_as_secÀ  rà  r6   c                óŒ   —  t        |«      j                  t        fi |¤Ž} t        |«      j                  t        fi |¤Ž}||z  S ri   )r©   rï   r  r    )r@   r   rð   rã  râ  s        r4   r  zcot._eval_rewrite_as_cscÅ  rà  r6   c                óŠ   —   | j                   t        fi |¤Žj                   t        fi |¤Ž}|j                  t        «      ry |S ri   rå  ræ  s       r4   r  zcot._eval_rewrite_as_powÊ  rç  r6   c                óŠ   —   | j                   t        fi |¤Žj                   t        fi |¤Ž}|j                  t        «      ry |S ri   ré  ræ  s       r4   r  zcot._eval_rewrite_as_sqrtÐ  rê  r6   c                ón   — ddl m}  |t        j                   |«       |t        j                  |«      z  S rì  rí  r(  s       r4   r)  zcot._eval_rewrite_as_besseljÖ  s(   € Ý:ÙœŸ™�w Ó$¡W¬Q¯V©V°SÓ%9Ñ9Ð9r6   c                óL  — ddl m} ddlm} | j                  d   }|j                  |d«      j                  «       }d|z  t        z  }|j                  r2||t        z  dz  z
  j                  |«      }	|j                  rd|	z  S |	 S |t        j                  u r(|j                  |d ||«      j                  rdnd¬«      }|t        j                  t        j                   fv r% |t        j                   t        j                  «      S |j"                  r| j%                  |«      S | S )	Nr   r®   rï  r‚   r�   rD  rE  rF  rð  rò  s
             r4   rQ  zcot._eval_as_leading_termÚ  së   € ÝAÝ;Ø�i‰i˜‰lˆØ�X‰X�a˜‹^×"Ñ"Ó$ˆØˆb‰D”‰GˆØ�<Š<Ø˜œ"™˜Q™‘,×/Ñ/°Ó2ˆBØŸ9š9�1�R‘4Ð-¨2¨#Ð-Ø”×"Ñ"Ñ"Ø—‘˜1˜a©B¨t«H×,@Ò,@¡SÀc�ÓJˆBØ”!—*‘*œa×0Ñ0Ð1Ñ1Ùœq×1Ñ1´1·:±:Ó>Ð>Ø "§¢ˆt�y‰y˜‹}Ð6°$Ð6r6   c                ó4   — | j                   d   j                  S r+  rT  r.  s    r4   rU  zcot._eval_is_extended_realé  ó   € Ø�y‰y˜‰|×,Ñ,Ð,r6   c                óh  — | j                   d   }d }|j                  rït        |j                   «      }g }|j                   D ].  }t        |d¬«      j	                  «       }|j                  |«       Œ0 t        d«      }t        |«      D �cg c]  }t        |«      ‘Œ }	}ddg}
t        |dd«      D ].  }|
||z
  dz  xx   t        ||	«      d||z
  dz  dz  z  z  z  cc<   Œ0 |
d   |
d   z  j                  t        t        |	|«      «      «      S |j                  r‹|j                  d	¬
«      \  }}|j                  rj|dkD  ret         j"                  }t%        dd	¬«      }||z   |z  j'                  «       }t)        |«      t+        |«      z  j                  |t        |«      fg«      S t        |«      S c c}w )Nr   Frú   rÆ  r²   r‚   rs   r�   Tr9  rÇ  rÈ  )r<   r_   rÙ   r  r=  r…   r/   rÊ  rË  r.   rä   rÌ  r‹  r\   r‘   r>  r   r3   r   rT   r!   r    )r@   rM   r   r™   rÛ   ÚCXr—   rÏ  r�   rÆ  rš   r„   r   rñ   rˆ  rÐ  s                   r4   r=  zcot._eval_expand_trigì  s”  € Ø�i‰i˜‰lˆØˆØ�:Š:Ü�C—H‘H“ˆAØˆBØ—X‘Xò �Ü˜ UÔ+×=Ñ=Ó?�Ø—	‘	˜"•ðô " #Ó&ˆBÜ$)¨!£HÖ.˜q”$�r•(Ð.ˆAÐ.à�A�ˆAÜ˜1˜b "Ó%ò P�Ø�1�q‘5˜A‘+“¤.°°AÓ"6¸ÀÀAÁÈ¹{ÈQÑ>NÑ7OÑ"OÑO”ðPà�a‘D˜˜1™‘I×#Ñ#¤D¬¨Q°«Ó$4Ó5Ð5Ø�ZŠZØ×+Ñ+°TÐ+Ó:‰LˆE�5Ø×Ò E¨A¢IÜ—O‘O�Ü˜7¨Ô.�Ø˜!‘e˜e‘^×+Ñ+Ó-�Ü˜1›œb ›e™×)Ñ)¨A¬s°5«z¨?Ð*;Ó<Ð<Ü�3‹xˆùò /s   Â
F/c                ó€   — | j                   d   }|j                  r|t        z  j                  du ry|j                  ryy rD   )r<   rö  r   r‡   rù  rX  s     r4   rY  zcot._eval_is_finite  s;   € Ø�i‰i˜‰lˆØ�;Š;˜C¤™F×.Ñ.°%Ñ7ØØ×ÒØð r6   c                óh   — | j                   d   }|j                  r|t        z  j                  du ryy y rD   ©r<   rö  r   r‡   rX  s     r4   r÷  zcot._eval_is_real  ó1   € Ø�i‰i˜‰lˆØ�;Š;˜C¤™F×.Ñ.°%Ñ7Øð 8ˆ;r6   c                óh   — | j                   d   }|j                  r|t        z  j                  du ryy y rD   r  rX  s     r4   rd  zcot._eval_is_complex  r  r6   c                ó’   — t        | j                  d   «      \  }}|r*|j                  r|t        j                  z
  j
                  S y y r+  r¦  )r@   r]  Úpimults      r4   r_  zcot._eval_is_zero  s<   € Ü" 4§9¡9¨Q¡<Ó0‰ˆˆfÙ�d—l’lØœQŸV™V‘O×/Ñ/Ð/ð #ˆ6r6   c                óª   — | j                   d   }|j                  ||«      }||k7  r#|t        z  j                  rt        j
                  S t        |«      S r+  )r<   rä   r   r‡   r   ro   r  )r@   ÚoldÚnewr   Úargnews        r4   Ú
_eval_subszcot._eval_subs  sH   € Ø�i‰i˜‰lˆØ—‘˜#˜sÓ#ˆØ�&Š=˜f¤R™i×3Ò3Ü×$Ñ$Ð$Ü�6‹{Ðr6   ri   re  rf  rh   )"rj   rk   rl   rm   r¥   r¬   r¯  rg  rÔ   rh  r   rÝ   ræ   r/  rL   rò   r÷   r  rþ   r	  r  r  r  r  r  r)  rQ  rU  r=  rY  r÷  rd  r_  r&  rK   r6   r4   r  r  ç  s»   „ ñ#óJ(ó5óð ñf*ó ðf*ðP ØñCó ó ðCóBò3ó+ò9ò4ò(ò4ò!òò/ò
/ò
òò:ò7ò-òò4òò
ò
0ó
r6   r  c                  óÔ   — e Zd ZU dZdZej                  fZdZde	d<   dZ
de	d<   e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„ Zd„ Zdd„Zd„ Zd„ Zd„ Zd„ Zdd„Zy)ÚReciprocalTrigonometricFunctionz@Base class for reciprocal functions of trigonometric functions. Nr   Ú_is_evenÚ_is_oddc                ó
  — |j                  «       r+| j                  r	 | | «      S | j                  r
 | | «       S t        |«      }|��d|z  j                  s�|j
                  ru|j                  }|j                  d|z  z  }||kD  r|dz
  t        z  } | |«       S d|z  |kD  r5d|z
  t        z  }| j                  r | |«      S | j                  r	 | |«       S t        |d«      r"|j                  «       | k(  r|j                  d   S | j                  j                  |«      }|€|S t        d„ || fD «       «      rd|z  j                  t         «      S t        d„ || fD «       «      rd|z  j                  t"        «      S d|z  S )Nr‚   r�   r¯  r   c              3  ó<   K  — | ]  }t        |t        «      –— Œ y ­wri   )r1   r©   ©r†  r�   s     r4   r‡  z7ReciprocalTrigonometricFunction.eval.<locals>.<genexpr>P  ó   è ø€ Ò5¨”˜Aœs×#Ñ5ùó   ‚c              3  ó<   K  — | ]  }t        |t        «      –— Œ y ­wri   )r1   r    r-  s     r4   r‡  z7ReciprocalTrigonometricFunction.eval.<locals>.<genexpr>R  r.  r/  )rÃ   r)  r*  rF   r‡   rÆ   rp  rš   r   Úhasattrr¯  r<   Ú_reciprocal_ofrÔ   Úanyrï   r  r  )rÎ   r   rG   rp  rš   rÑ   Úts          r4   rÔ   z$ReciprocalTrigonometricFunction.eval2  sp  € à×'Ñ'Ô)Ø�|Š|Ù˜C˜4“yÐ Ø�{Š{Ù˜S˜D›	�zÐ!ä˜S“>ˆØÐ Ø�x‘Z×+Ò+Ø×$Ò$Ø—J‘J�Ø—J‘J ! A¡#Ñ&�Ø�q’5Ø$ q™L¬"Ñ,�DÙ ›I˜:Ð%Ø�Q‘3˜’7Ø ™L¬"Ñ,�DØ—{’{Ù" 4›yÐ(ØŸšÙ # D£	˜zÐ)ä�3˜	Ô" s§{¡{£}¸Ò';Ø—8‘8˜A‘;Ðà×Ñ×#Ñ# CÓ(ˆØˆ9ØˆHÜÑ5¨a°!°¨WÔ5Ô5Ø�a‘C—=‘=¤Ó%Ð%ÜÑ5¨a°!°¨WÔ5Ô5Ø�a‘C—=‘=¤Ó%Ð%à�Q‘3ˆJr6   c                ób   — | j                  | j                  d   «      } t        ||«      |i |¤ŽS r+  )r2  r<   Úgetattr)r@   Úmethod_namer<   rð   Úos        r4   Ú_call_reciprocalz0ReciprocalTrigonometricFunction._call_reciprocalW  s3   € à×Ñ §	¡	¨!¡Ó-ˆØ&Œw�q˜+Ó&¨Ð7°Ñ7Ð7r6   c                ó@   —  | j                   |g|¢­i |¤Ž}|�d|z  S |S r  )r9  )r@   r7  r<   rð   r4  s        r4   Ú_calculate_reciprocalz5ReciprocalTrigonometricFunction._calculate_reciprocal\  s3   € ð "ˆD×!Ñ! +Ð?°Ò?¸Ñ?ˆØ�mˆq�‰sÐ*¨Ð*r6   c                ó`   — | j                  ||«      }|�|| j                  |«      k7  rd|z  S y y r  )r9  r2  )r@   r7  r   r4  s       r4   Ú_rewrite_reciprocalz3ReciprocalTrigonometricFunction._rewrite_reciprocalb  s=   € ð ×!Ñ! +¨sÓ3ˆØˆ=˜Q $×"5Ñ"5°cÓ":Ò:Ø�Q‘3ˆJð ;ˆ=r6   c                ór   — t        | j                  d   «      }| j                  |«      j                  |«      S r+  )r
   r<   r2  r¥   )r@   rb   rc   s      r4   rg   z'ReciprocalTrigonometricFunction._periodi  s0   € Ü�t—y‘y ‘|Ó$ˆØ×"Ñ" 1Ó%×,Ñ,¨VÓ4Ð4r6   c                ó4   — | j                  d|«       | dz  z  S )Nr¬   r‚   ©r;  rª   s     r4   r¬   z%ReciprocalTrigonometricFunction.fdiffm  s!   € Ø×*Ñ*¨7°HÓ=Ð=¸dÀA¹gÑEÐEr6   c                ó&   — | j                  d|«      S )Nrò   ©r=  rý   s      r4   rò   z4ReciprocalTrigonometricFunction._eval_rewrite_as_expp  ó   € Ø×'Ñ'Ð(>ÀÓDÐDr6   c                ó&   — | j                  d|«      S )Nr÷   rB  rý   s      r4   r÷   z4ReciprocalTrigonometricFunction._eval_rewrite_as_Pows  rC  r6   c                ó&   — | j                  d|«      S )Nr  rB  rý   s      r4   r  z4ReciprocalTrigonometricFunction._eval_rewrite_as_sinv  rC  r6   c                ó&   — | j                  d|«      S )Nrþ   rB  rý   s      r4   rþ   z4ReciprocalTrigonometricFunction._eval_rewrite_as_cosy  rC  r6   c                ó&   — | j                  d|«      S )Nr  rB  rý   s      r4   r  z4ReciprocalTrigonometricFunction._eval_rewrite_as_tan|  rC  r6   c                ó&   — | j                  d|«      S )Nr  rB  rý   s      r4   r  z4ReciprocalTrigonometricFunction._eval_rewrite_as_pow  rC  r6   c                ó&   — | j                  d|«      S )Nr  rB  rý   s      r4   r  z5ReciprocalTrigonometricFunction._eval_rewrite_as_sqrt‚  s   € Ø×'Ñ'Ð(?ÀÓEÐEr6   c                óZ   — | j                  | j                  d   j                  «       «      S r+  r,  r.  s    r4   r/  z/ReciprocalTrigonometricFunction._eval_conjugate…  r0  r6   c                óf   —  d| j                  | j                  d   «      z  j                  |fi |¤ŽS r¨   )r2  r<   rL   )r@   rJ   rM   s      r4   rL   z,ReciprocalTrigonometricFunction.as_real_imagˆ  s<   € ØA��$×%Ñ% d§i¡i°¡lÓ3Ñ3×AÑAÀ$ñ KØDIñKð 	Kr6   c                ó&   —  | j                   di |¤ŽS )N)r=  r@  )r@   rM   s     r4   r=  z1ReciprocalTrigonometricFunction._eval_expand_trigŒ  s   € Ø)ˆt×)Ñ)ÑGÀÑGÐGr6   c                óZ   — | j                  | j                  d   «      j                  «       S r+  )r2  r<   rU  r.  s    r4   rU  z6ReciprocalTrigonometricFunction._eval_is_extended_real�  s$   € Ø×"Ñ" 4§9¡9¨Q¡<Ó0×GÑGÓIÐIr6   c                óh   — d| j                  | j                  d   «      z  j                  |||¬«      S )Nr�   r   ©rá   râ   )r2  r<   rQ  )r@   r™   rá   râ   s       r4   rQ  z5ReciprocalTrigonometricFunction._eval_as_leading_term’  s4   € Ø�$×%Ñ% d§i¡i°¡lÓ3Ñ3×JÑJÈ1ÐSWÐ^bÐJÓcÐcr6   c                óX   — d| j                  | j                  d   «      z  j                  S r¨   )r2  r<   rM  r.  s    r4   rY  z/ReciprocalTrigonometricFunction._eval_is_finite•  s&   € Ø�$×%Ñ% d§i¡i°¡lÓ3Ñ3×>Ñ>Ð>r6   c                óf   — d| j                  | j                  d   «      z  j                  |||«      S r¨   )r2  r<   ræ   ©r@   r™   rÛ   rá   râ   s        r4   ræ   z-ReciprocalTrigonometricFunction._eval_nseries˜  s/   € Ø�$×%Ñ% d§i¡i°¡lÓ3Ñ3×BÑBÀ1ÀaÈÓNÐNr6   re  rh   rf  ) rj   rk   rl   rm   r2  r   ro   rp   r)  Ú__annotations__r*  rg  rÔ   r9  r;  r=  rg   r¬   rò   r÷   r  rþ   r  r  r  r/  rL   r=  rU  rQ  rY  ræ   rK   r6   r4   r(  r(  $  s­   … ÙJà€NØ×'Ñ'Ð)€Nð €HˆiÓØ€GˆYÓàñ"ó ð"òH8ò
+òò5óFòEòEòEòEòEòEòFò3óKòHòJòdò?ôOr6   r(  c                  óx   — e Zd ZdZeZdZdd„Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zdd„Zd„ Zd„ Zeed„ «       «       Zd„ Zy)r  a‹  
    The secant function.

    Returns the secant of x (measured in radians).

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

    See :class:`sin` for notes about automatic evaluation.

    Examples
    ========

    >>> from sympy import sec
    >>> from sympy.abc import x
    >>> sec(x**2).diff(x)
    2*x*tan(x**2)*sec(x**2)
    >>> sec(1).diff(x)
    0

    See Also
    ========

    sin, csc, cos, tan, cot
    asin, acsc, acos, asec, atan, acot, atan2

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Trigonometric_functions
    .. [2] https://dlmf.nist.gov/4.14
    .. [3] https://functions.wolfram.com/ElementaryFunctions/Sec

    TNc                ó$   — | j                  |«      S ri   ©rg   r¤   s     r4   r¥   z
sec.periodÃ  ó   € Ø�|‰|˜FÓ#Ð#r6   c                ó:   — t        |dz  «      dz  }|dz   |dz
  z  S r  rÜ  )r@   r   rð   Úcot_half_sqs       r4   r  zsec._eval_rewrite_as_cotÆ  s&   € Ü˜#˜a™%“j !‘mˆØ˜a‘ +°¡/Ñ2Ð2r6   c                ó   — dt        |«      z  S r  ©r©   rý   s      r4   rþ   zsec._eval_rewrite_as_cosÊ  ó   € Ø”#�c“(‘
Ðr6   c                óH   — t        |«      t        |«      t        |«      z  z  S ri   r  rý   s      r4   r	  zsec._eval_rewrite_as_sincosÍ  ó   € Ü�3‹xœ˜S›¤# c£(Ñ*Ñ+Ð+r6   c                óH   — d t        |«      j                  t        fi |¤Žz  S r  )r©   rï   r    rý   s      r4   r  zsec._eval_rewrite_as_sinÐ  ó$   € ØÐ"”#�c“(×"Ñ"¤3Ñ1¨&Ñ1Ñ1Ð2r6   c                óH   — d t        |«      j                  t        fi |¤Žz  S r  )r©   rï   r  rý   s      r4   r  zsec._eval_rewrite_as_tanÓ  r`  r6   c                ó0   — t        t        dz  |z
  d¬«      S rù   )r  r   rý   s      r4   r  zsec._eval_rewrite_as_cscÖ  ó   € Ü”2�a‘4˜#‘:¨Ô.Ð.r6   c                ó†   — |dk(  r1t        | j                  d   «      t        | j                  d   «      z  S t        | |«      ‚r¨   )r  r<   r  r   rª   s     r4   r¬   z	sec.fdiffÙ  s;   € Ø�qŠ=Ü�t—y‘y ‘|Ó$¤S¨¯©°1©Ó%6Ñ6Ð6ä$ T¨8Ó4Ð4r6   c                ó®   — ddl m} t        dt        t        |z  «      t        d«      z   |t
        j                   |«      z  z  t        |d«      fd«      S )Nr   r$  r�   r‚   r›  rœ  r(  s       r4   r)  zsec._eval_rewrite_as_besseljß  sK   € Ý:ÜØ”Dœ˜C™“L¤$ q£'Ñ*©7´A·F±F°7¸CÓ+@Ñ@ÑAÄ2ÀcÈ1Ã:ÐNØóð 	r6   c                óŠ   — | j                   d   }|j                  r(|t        z  t        j                  z
  j
                  du ryy y rD   )r<   rc  r   r   r†   r‡   rX  s     r4   rd  zsec._eval_is_complexæ  s:   € Ø�i‰i˜‰lˆà�>Š>˜s¤2™v¬¯©™×:Ñ:¸eÑCØð Dˆ>r6   c                óÐ   — | dk  s| dz  dk(  rt         j                  S t        |«      }| dz  }t         j                  |z  t	        d|z  «      z  t        d|z  «      z  |d|z  z  z  S r¹  )r   rU   r   rÅ   r   r   ©rÛ   r™   rÜ   Úks       r4   rÝ   zsec.taylor_termì  sf   € ð
 ˆqŠ5�A˜‘E˜Q’JÜ—6‘6ˆMä˜“
ˆAØ�1‘ˆAÜ—=‘= !Ñ#¤E¨!¨A©#£JÑ.¬y¸¸1¹«~Ñ=¸aÀ!ÀAÁ#¹hÑFÐFr6   c                ól  — ddl m} ddlm} | j                  d   }|j                  |d«      j                  «       }|t        dz  z   t        z  }|j                  r;||t        z  z
  t        dz  z   j                  |«      }	t        j                  |z  |	z  S |t        j                  u r(|j                  |d ||«      j                  rdnd¬«      }|t        j                  t        j                   fv r% |t        j                   t        j                  «      S |j"                  r| j%                  |«      S | S )Nr   r®   rï  r‚   rD  rE  rF  ©r·   r¯   rñ  r!   r<   rä   rI  r   r‡   rJ  r   rÅ   ro   rK  rL  r»   r¼   rM  r;   rò  s
             r4   rQ  zsec._eval_as_leading_termø  sñ   € ÝAÝ;Ø�i‰i˜‰lˆØ�X‰X�a˜‹^×"Ñ"Ó$ˆØ”"�Q‘$‰Yœ‰NˆØ�<Š<Ø˜œ"™‘*œr !™tÑ#×4Ñ4°QÓ7ˆBÜ—M‘M 1Ñ$ bÑ(Ð(Ø”×"Ñ"Ñ"Ø—‘˜1˜a©B¨t«H×,@Ò,@¡SÀc�ÓJˆBØ”!—*‘*œa×0Ñ0Ð1Ñ1Ùœq×1Ñ1´1·:±:Ó>Ð>Ø "§¢ˆt�y‰y˜‹}Ð6°$Ð6r6   ri   re  )rj   rk   rl   rm   r©   r2  r)  r¥   r  rþ   r	  r  r  r  r¬   r)  rd  rh  r   rÝ   rQ  rK   r6   r4   r  r  œ  si   „ ñ!ðF €NØ€Hó$ò3òò,ò3ò3ò/ó5òòð ØñGó ó ðGó7r6   r  c                  óx   — e Zd ZdZeZdZdd„Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zdd„Zd„ Zeed„ «       «       Zd„ Zy)r  a�  
    The cosecant function.

    Returns the cosecant of x (measured in radians).

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

    See :func:`sin` for notes about automatic evaluation.

    Examples
    ========

    >>> from sympy import csc
    >>> from sympy.abc import x
    >>> csc(x**2).diff(x)
    -2*x*cot(x**2)*csc(x**2)
    >>> csc(1).diff(x)
    0

    See Also
    ========

    sin, cos, sec, tan, cot
    asin, acsc, acos, asec, atan, acot, atan2

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Trigonometric_functions
    .. [2] https://dlmf.nist.gov/4.14
    .. [3] https://functions.wolfram.com/ElementaryFunctions/Csc

    TNc                ó$   — | j                  |«      S ri   rV  r¤   s     r4   r¥   z
csc.period/  rW  r6   c                ó   — dt        |«      z  S r  rÖ  rý   s      r4   r  zcsc._eval_rewrite_as_sin2  r\  r6   c                óH   — t        |«      t        |«      t        |«      z  z  S ri   r  rý   s      r4   r	  zcsc._eval_rewrite_as_sincos5  r^  r6   c                ó:   — t        |dz  «      }d|dz  z   d|z  z  S r  rÜ  r  s       r4   r  zcsc._eval_rewrite_as_cot8  s&   € Ü�s˜1‘u“:ˆØ�H˜a‘K‘ ! H¡*Ñ-Ð-r6   c                óH   — d t        |«      j                  t        fi |¤Žz  S r  )r    rï   r©   rý   s      r4   rþ   zcsc._eval_rewrite_as_cos<  r™  r6   c                ó0   — t        t        dz  |z
  d¬«      S rù   r  rý   s      r4   r  zcsc._eval_rewrite_as_sec?  rc  r6   c                óH   — d t        |«      j                  t        fi |¤Žz  S r  )r    rï   r  rý   s      r4   r  zcsc._eval_rewrite_as_tanB  r`  r6   c                ó€   — ddl m} t        dt        z  «      dt        |«       |t        j
                  |«      z  z  z  S )Nr   r$  r‚   r�   r&  r(  s       r4   r)  zcsc._eval_rewrite_as_besseljE  s1   € Ý:Ü�A”b‘D‹z˜1œd 3›i©´·±¸Ó(<Ñ<Ñ=Ñ>Ð>r6   c                óˆ   — |dk(  r2t        | j                  d   «       t        | j                  d   «      z  S t        | |«      ‚r¨   )r  r<   r  r   rª   s     r4   r¬   z	csc.fdiffI  s>   € Ø�qŠ=Ü˜Ÿ	™	 !™Ó%Ð%¤c¨$¯)©)°A©,Ó&7Ñ7Ð7ä$ T¨8Ó4Ð4r6   c                óh   — | j                   d   }|j                  r|t        z  j                  du ryy y rD   r  rX  s     r4   rd  zcsc._eval_is_complexO  r  r6   c                ó,  — | dk(  rdt        |«      z  S | dk  s| dz  dk(  rt        j                  S t        |«      }| dz  dz   }t        j                  |dz
  z  dz  dd|z  dz
  z  dz
  z  t	        d|z  «      z  |d|z  dz
  z  z  t        d|z  «      z  S r  )r   r   rU   rÅ   r   r   rh  s       r4   rÝ   zcsc.taylor_termT  s®   € ð �Š6Ø”W˜Q“Z‘<ÐØ�ŠU�a˜!‘e˜q’jÜ—6‘6ˆMä˜“
ˆAØ�1‘�q‘ˆAÜ—M‘M A¨¡EÑ*¨1Ñ,¨a°!°A±#¸±'©l¸QÑ.>Ñ?Ü˜a ™c“Nñ#Ø#$ q¨¡s¨Q¡w¡<ñ0Ü09¸!¸A¹#³ñ?ð @r6   c                óD  — ddl m} ddlm} | j                  d   }|j                  |d«      j                  «       }|t        z  }|j                  r1||t        z  z
  j                  |«      }	t        j                  |z  |	z  S |t        j                  u r(|j                  |d ||«      j                  rdnd¬«      }|t        j                  t        j                   fv r% |t        j                   t        j                  «      S |j"                  r| j%                  |«      S | S )Nr   r®   rï  rD  rE  rF  rk  rò  s
             r4   rQ  zcsc._eval_as_leading_terma  sà   € ÝAÝ;Ø�i‰i˜‰lˆØ�X‰X�a˜‹^×"Ñ"Ó$ˆØŒr‰EˆØ�<Š<Ø˜œ"™‘*×-Ñ-¨aÓ0ˆBÜ—M‘M 1Ñ$ bÑ(Ð(Ø”×"Ñ"Ñ"Ø—‘˜1˜a©B¨t«H×,@Ò,@¡SÀc�ÓJˆBØ”!—*‘*œa×0Ñ0Ð1Ñ1Ùœq×1Ñ1´1·:±:Ó>Ð>Ø "§¢ˆt�y‰y˜‹}Ð6°$Ð6r6   ri   re  )rj   rk   rl   rm   r    r2  r*  r¥   r  r	  r  rþ   r  r  r)  r¬   rd  rh  r   rÝ   rQ  rK   r6   r4   r  r    si   „ ñ!ðF €NØ€Gó$òò,ò.ò1ò/ò3ò?ó5òð
 Øñ	@ó ó ð	@ó7r6   r  c                  óf   — e Zd ZdZej
                  fZd
d„Zed„ «       Z	dd„Z
d„ Zd„ Zd„ Zd„ ZeZy	)r!  a  
    Represents an unnormalized sinc function:

    .. math::

        \operatorname{sinc}(x) =
        \begin{cases}
          \frac{\sin x}{x} & \qquad x \neq 0 \\
          1 & \qquad x = 0
        \end{cases}

    Examples
    ========

    >>> from sympy import sinc, oo, jn
    >>> from sympy.abc import x
    >>> sinc(x)
    sinc(x)

    * Automated Evaluation

    >>> sinc(0)
    1
    >>> sinc(oo)
    0

    * Differentiation

    >>> sinc(x).diff()
    cos(x)/x - sin(x)/x**2

    * Series Expansion

    >>> sinc(x).series()
    1 - x**2/6 + x**4/120 + O(x**6)

    * As zero'th order spherical Bessel Function

    >>> sinc(x).rewrite(jn)
    jn(0, x)

    See also
    ========

    sin

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Sinc_function

    c                ó‚   — | j                   d   }|dk(  r t        |«      |z  t        |«      |dz  z  z
  S t        | |«      ‚r  )r<   r©   r    r   )r@   r«   r™   s      r4   r¬   z
sinc.fdiff¨  sD   € Ø�I‰I�a‰LˆØ�qŠ=ô �q“6˜!‘8œc !›f Q¨¡T™kÑ)Ð)ä$ T¨8Ó4Ð4r6   c                ó^  — |j                   rt        j                  S |j                  rT|t        j                  t        j
                  fv rt        j                  S |t        j                  u rt        j                  S |t        j                  u rt        j                  S |j                  «       r	 | | «      S t        |«      }|�i|j                  r&t        |j                   «      rt        j                  S y d|z  j                  r't        j                  |t        j                  z
  z  |z  S y y r¢   )r>   r   r�   r¹   r»   r¼   rU   rº   ro   rÃ   rF   r‡   r   rÅ   r†   )rÎ   r   rG   s      r4   rÔ   z	sinc.evalµ  sâ   € à�;Š;Ü—5‘5ˆLØ�=Š=Ø”q—z‘z¤1×#5Ñ#5Ð6Ñ6Ü—v‘v�ØœŸ™‘Ü—u‘u�à”!×#Ñ#Ñ#Ü—5‘5ˆLà×'Ñ'Ô)Ù˜�t“9Ðä˜S“>ˆØÐØ×"Ò"Ü˜SŸ[™[Ô)ÜŸ6™6�Mð *à�H‘*×(Ò(Ü—}‘} x´!·&±&Ñ'8Ñ9¸#Ñ=Ð=ð )ð	  r6   c                ó^   — | j                   d   }t        |«      |z  j                  |||«      S r+  )r<   r    ræ   rR  s        r4   ræ   zsinc._eval_nseriesÍ  s,   € Ø�I‰I�a‰LˆÜ�A“�q‘×'Ñ'¨¨1¨dÓ3Ð3r6   c                ó    — ddl m}  |d|«      S )Nr   )Újn)r'  r~  )r@   r   rð   r~  s       r4   Ú_eval_rewrite_as_jnzsinc._eval_rewrite_as_jnÑ  s   € Ý5Ù�!�S‹zÐr6   c                ó¢   — t        t        |«      |z  t        |t        j                  «      ft        j
                  t        j                  f«      S ri   )r(   r    r   r   rU   r�   Útruerý   s      r4   r  zsinc._eval_rewrite_as_sinÕ  s2   € Üœ#˜c›( 3™,¬¨3´·±«Ð8¼1¿5¹5Ä!Ç&Á&¸/ÓJÐJr6   c                óü   — | j                   d   j                  ryt        | j                   d   «      \  }}|j                  r!t	        |j
                  |j                  g«      S |j                  r|j
                  ryy y )Nr   TF)r<   Úis_infiniter�   r>   r   r‡   Ú
is_nonzeror¹   r\  s      r4   r_  zsinc._eval_is_zeroØ  sh   € Ø�9‰9�Q‰<×#Ò#ØÜ# D§I¡I¨a¡LÓ1‰ˆˆgØ�<Š<Ü˜g×0Ñ0°'×2DÑ2DÐEÓFÐFØ�>Š>˜g×0Ò0Øð 1ˆ>r6   c                ój   — | j                   d   j                  s| j                   d   j                  ryy rS  )r<   rS   rù  r.  s    r4   r÷  zsinc._eval_is_realá  s,   € Ø�9‰9�Q‰<×(Ò(¨D¯I©I°a©L×,EÒ,EØð -Fr6   Nre  rf  )rj   rk   rl   rm   r   ro   rp   r¬   rg  rÔ   ræ   r  r  r_  r÷  rY  rK   r6   r4   r!  r!  q  sR   „ ñ3ðh ×'Ñ'Ð)€Nó5ð ñ>ó ð>ó.4òòKòòð $�Or6   r!  c                  óÆ   — e Zd ZU dZej
                  ej                  ej                  ej                  fZ	de
d<   eed„ «       «       Zeed„ «       «       Zeed„ «       «       Zy)ÚInverseTrigonometricFunctionz/Base class for inverse trigonometric functions.ztuple[Expr, ...]rp   c                 ó  — i t        d«      dz  t        dz  “t        d«      dz  t        dz  “dt        d«      z  t        dz  “t        dt        d«      z
  dz  «      t        dz  “t        d«      t        dt        d«      z
  «      z  dz  t        dz  “t        dt        d«      z   dz  «      t        t        dd«      z  “t        d«      t        dt        d«      z   «      z  dz  t        t        dd«      z  “t        j                  t        dz  “t        dt        d«      z
  «      dz  t        dz  “t        t        j                  t        d«      dz  z
  «      t        dz  “t        dt        d«      z   «      dz  t        t        dd«      z  “t        t        j                  t        d«      dz  z   «      t        t        dd«      z  “t        d«      dz
  dz  t        dz  “dt        d«      z
  dz  t         dz  “t        d«      dz   dz  t        t        dd«      z  “t        d«      dz  t        d«      dz  z
  t        d	z  “t        d«       dz  t        d«      dz  z   t         d	z  “t        d«      dz
  t        d«      z  t        d	z  dt        d«      z
  t        d«      z  t         d	z  t        d«      dz  t        d«      dz  z   t        t        dd	«      z  dt        d«      z   t        d«      z  t        t        dd	«      z  i¥S )
Nrr   r‚   rs   r�   rt   rw   ru   rv   r|   )r%   r   r   r   r†   rK   r6   r4   Ú_asin_tablez(InverseTrigonometricFunction._asin_tableñ  sÖ  € ð

Ü�‹G�A‰I”r˜!‘tð
ä�‹G�A‰I”r˜!‘tð
ð Œd�1‹g‰I”r˜!‘tð
ô �!”d˜1“g‘+˜q‘Ó!¤2 a¡4ð	
ô
 �‹G”D˜œT !›W™Ó%Ñ% aÑ'¬¨A©ð
ô �!”d˜1“g‘+˜q‘Ó!¤2¤h¨q°!£nÑ#4ð
ô �‹G”D˜œT !›W™Ó%Ñ% aÑ'¬¬H°Q¸«NÑ):ð
ô �F‰F”B�q‘Dð
ô �”T˜!“W‘Ó˜aÑ¤ A¡ð
ô ”—‘œ$˜q›' !™)Ñ#Ó$¤b¨¡dð
ô �”T˜!“W‘Ó˜aÑ¤¤H¨Q°£NÑ!2ð
ô ”—‘œ$˜q›' !™)Ñ#Ó$¤b¬°!°Q«Ñ&7ð
ô �!‹W�q‰[˜!‰OœR ™Uð
ð ”�a“‰[˜!‰Oœb˜S ™Vð
ô �!‹W�q‰[˜!‰OœR¤¨¨B£Ñ/ð
ô  �‹G�A‰Iœ˜Q› ™	Ñ!¤2 b¡5ð!
ô" �!‹WˆH�Q‰Jœ˜a› ™Ñ"¤R C¨¡Fð#
ô$ �!‹W�q‰[œ$˜q›'Ñ!¤2 b¡5Ø”�a“‰[œ$˜q›'Ñ!¤B 3 r¡6Ü�‹G�A‰Iœ˜Q› ™	Ñ!¤2¤h¨q°"£oÑ#5Ø”�a“‰[œ$˜q›'Ñ!¤2¤h¨q°"£oÑ#5ñ+
ð 	
r6   c                 óâ  — t        d«      dz  t        dz  dt        d«      z  t        dz  t        d«      t        dz  t        d«      dz
  t        dz  dt        d«      z
  t         dz  dt        d«      z   t        t        dd«      z  t        ddt        d«      z  z
  «      t        dz  t        ddt        d«      z  z   «      t        t        dd«      z  t        ddt        d«      z  dz  z
  «      t        dz  t        ddt        d«      z  dz  z   «      t        t        dd«      z  dt        d«      z
  t        dz  d	t        d«      z   t         dz  dt        d«      z   t        t        dd«      z  iS )
Nrr   ru   r�   r‚   rw   rt   rv   r|   r×   ©r%   r   r   rK   r6   r4   Ú_atan_tablez(InverseTrigonometricFunction._atan_table  s3  € ô �‹G�A‰I”r˜!‘tØŒd�1‹g‰I”r˜!‘tÜ�‹G”R˜‘TÜ�‹G�a‰Kœ˜A™Ø”�Q“‰Kœ"˜˜Q™Ø”�Q“‰KœœH Q¨›NÑ*Ü��Q”t˜A“w‘Y‘Ó¤ A¡Ü��Q”t˜A“w‘Y‘Ó¤¤H¨Q°£NÑ!2Ü��Q”t˜A“w‘Y˜q‘[‘Ó!¤2 b¡5Ü��Q”t˜A“w‘Y˜q‘[‘Ó!¤2¤h¨q°"£oÑ#5Ø”�Q“‰Kœ˜B™Ø”�a“‰Lœ2˜#˜b™&Ø”�Q“‰KœœH Q¨›OÑ+ð
ð 	
r6   c                 ó´  — i dt        d«      z  dz  t        dz  “t        d«      t        dz  “t        ddt        d«      z  dz  z   «      t        dz  “dt        t        dd«      t        d«      dz  z
  «      z  t        dz  “t        ddt        d«      z  dz  z
  «      t        t        dd«      z  “dt        t        dd«      t        d«      dz  z   «      z  t        t        dd«      z  “dt        dz  “t        ddt        d«      z  z   «      t        dz  “dt        dt        d«      z
  «      z  t        dz  “t        ddt        d«      z  z
  «      t        t        dd«      z  “dt        dt        d«      z   «      z  t        t        dd«      z  “dt        d«      z   t        dz  “t        d«      dz
  t        t        dd«      z  “t        d«      dz
   t        t        d	d«      z  “t        d«      t        d«      z   t        d
z  “t        d«      t        d«      z
  t        t        dd
«      z  “t        d«      t        d«      z
   t        t        dd
«      z  “S )Nr‚   rr   rs   rt   r�   rw   ru   rv   éýÿÿÿr|   éûÿÿÿr‹  rK   r6   r4   Ú_acsc_tablez(InverseTrigonometricFunction._acsc_table$  sP  € ð

ØŒd�1‹g‰I�a‰Kœ˜A™ð
ä�‹G”R˜‘Tð
ô ��Q”t˜A“w‘Y˜q‘[‘Ó!¤2 a¡4ð
ð Œd”8˜A˜q“>¤D¨£G¨A¡IÑ-Ó.Ñ.´°1±ð	
ô
 ��Q”t˜A“w‘Y˜q‘[‘Ó!¤2¤h¨q°!£nÑ#4ð
ð Œd”8˜A˜q“>¤D¨£G¨A¡IÑ-Ó.Ñ.´´8¸A¸q³>Ñ0Að
ð Œr�!‰tð
ô ��Q”t˜A“w‘Y‘Ó¤ A¡ð
ð Œd�1”t˜A“w‘;ÓÑ¤ A¡ð
ô ��Q”t˜A“w‘Y‘Ó¤¤H¨Q°£NÑ!2ð
ð Œd�1”t˜A“w‘;ÓÑ¤¤H¨Q°£NÑ!2ð
ð ”�Q“‰Kœ˜B™ð
ô �‹G�a‰KœœH Q¨›OÑ+ð
ô �1‹g˜‰kˆNœBœx¨¨BÓ/Ñ/ð
ô �‹G”d˜1“gÑœr "™uð
ô  �‹G”d˜1“gÑœr¤(¨1¨b£/Ñ1ð!
ô" �1‹gœ˜Q›ÑÐ ¤"¤X¨b°"Ó%5Ñ"5ð#
ð 	
r6   N)rj   rk   rl   rm   r   r�   rÅ   rU   ro   rp   rS  rh  r   r‰  rŒ  r�  rK   r6   r4   r‡  r‡  í  s}   … Ù9Ø()¯©¨q¯}©}¸a¿f¹fÀa×FWÑFWÐ'X€NÐ$ÓXàØñ
ó ó ð
ð8 Øñ
ó ó ð
ð& Øñ
ó ó ñ
r6   r‡  c                  ó¤   ‡ — e Zd ZdZdd„Zd„ Zd„ Zd„ Zed„ «       Z	e
ed„ «       «       Zd„ Zdˆ fd	„	Zd
„ Zd„ Zd„ ZeZd„ Zd„ Zd„ Zd„ Zdd„Zˆ xZS )rÇ   ad  
    The inverse sine function.

    Returns the arcsine of x in radians.

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

    ``asin(x)`` will evaluate automatically in the cases
    $x \in \{\infty, -\infty, 0, 1, -1\}$ and for some instances when the
    result is a rational multiple of $\pi$ (see the ``eval`` class method).

    A purely imaginary argument will lead to an asinh expression.

    Examples
    ========

    >>> from sympy import asin, oo
    >>> asin(1)
    pi/2
    >>> asin(-1)
    -pi/2
    >>> asin(-oo)
    oo*I
    >>> asin(oo)
    -oo*I

    See Also
    ========

    sin, csc, cos, sec, tan, cot
    acsc, acos, asec, atan, acot, atan2

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Inverse_trigonometric_functions
    .. [2] https://dlmf.nist.gov/4.23
    .. [3] https://functions.wolfram.com/ElementaryFunctions/ArcSin

    c                óf   — |dk(  r!dt        d| j                  d   dz  z
  «      z  S t        | |«      ‚©Nr�   r   r‚   ©r%   r<   r   rª   s     r4   r¬   z
asin.fdiffi  s7   € Ø�qŠ=Ø”T˜!˜dŸi™i¨™l¨A™oÑ-Ó.Ñ.Ð.ä$ T¨8Ó4Ð4r6   c                ó´   —  | j                   | j                  Ž }|j                   | j                   k(  r|j                  d   j                  ryy |j                  S r:   ©r;   r<   r=   r?   s     r4   rB   zasin._eval_is_rationalo  óK   € ØˆD�I‰I�t—y‘yÐ!ˆØ�6‰6�T—Y‘YÒØ�v‰v�a‰y×$Ò$Øð %ð —=‘=Ð r6   c                óX   — | j                  «       xr | j                  d   j                  S r+  )rU  r<   Úis_positiver.  s    r4   Ú_eval_is_positivezasin._eval_is_positivew  ó$   € Ø×*Ñ*Ó,ÒI°·±¸1±×1IÑ1IÐIr6   c                óX   — | j                  «       xr | j                  d   j                  S r+  )rU  r<   rL  r.  s    r4   Ú_eval_is_negativezasin._eval_is_negativez  r›  r6   c                ó”  — |j                   rÛ|t        j                  u rt        j                  S |t        j                  u r!t        j                  t        j
                  z  S |t        j                  u r!t        j                  t        j
                  z  S |j                  rt        j                  S |t        j                  u r	t        dz  S |t        j                  u r
t         dz  S |t        j                  u rt        j                  S |j                  «       r
 | | «       S |j                  r| j                  «       }||v r||   S t        |«      }|�ddlm} t        j
                   ||«      z  S |j                  rt        j                  S t%        |t&        «      rg|j(                  d   }|j*                  rL|dt        z  z  }|t        kD  r	t        |z
  }|t        dz  kD  r	t        |z
  }|t         dz  k  r
t         |z
  }|S t%        |t,        «      r1|j(                  d   }|j*                  rt        dz  t/        |«      z
  S y y )Nr‚   r   )Úasinh)r¹   r   rº   r»   r¼   r3   r>   rU   r�   r   rÅ   ro   rÃ   Ú	is_numberr‰  r5   rÄ   rŸ  r1   r    r<   Úis_comparabler©   rÊ   )rÎ   r   Ú
asin_tablerÐ   rŸ  Úangs         r4   rÔ   z	asin.eval}  sÖ  € à�=Š=Ø”a—e‘e‰|Ü—u‘u�ØœŸ
™
Ñ"Ü×)Ñ)¬!¯/©/Ñ9Ð9Øœ×*Ñ*Ñ*Ü—z‘z¤!§/¡/Ñ1Ð1Ø—’Ü—v‘v�ØœŸ™‘Ü˜!‘t�ØœŸ™Ñ%Ü�s˜1‘u�à”!×#Ñ#Ñ#Ü×$Ñ$Ð$à×'Ñ'Ô)Ù˜˜“I�:Ðà�=Š=ØŸ™Ó*ˆJØ�jÑ Ø! #‘Ð&ä0°Ó5ˆØÐÝCÜ—?‘?¡5¨£>Ñ1Ð1à�;Š;Ü—6‘6ˆMä�cœ3ÔØ—(‘(˜1‘+ˆCØ× Ò Ø�qœ‘t‘�Øœ’8Ü˜s™(�Cð œ˜A™’:Ü˜s™(�CØœ"˜˜Q™’;Ü˜# ™)�Cà�
ä�cœ3ÔØ—(‘(˜1‘+ˆCØ× Ò Ü˜!‘tœd 3›iÑ'Ð'ð !ð  r6   c                ó,  — | dk  s| dz  dk(  rt         j                  S t        |«      }t        |«      dk\  r$| dkD  r|d   }|| dz
  dz  z  | | dz
  z  z  |dz  z  S | dz
  dz  }t	        t         j
                  |«      }t        |«      }||z  || z  z  | z  S rÖ   )r   rU   r   rÙ   r   r†   r   ©rÛ   r™   rÜ   rš   ri  ÚRr»  s          r4   rÝ   zasin.taylor_term´  s¨   € ð ˆqŠ5�A˜‘E˜Q’JÜ—6‘6ˆMä˜“
ˆAÜ�>Ó" aÒ'¨A°ªEØ" 2Ñ&�Ø˜!˜a™% !™‘| Q¨¨A©¡YÑ/°°1±Ñ4Ð4à˜‘U˜q‘L�Ü#¤A§F¡F¨AÓ.�Ü˜a“L�Ø˜‘s˜1˜a™4‘x ‘zÐ!r6   c                óŽ  — | j                   d   }|j                  |d«      j                  «       }|t        j                  u r | j                  |j                  |«      «      S |j                  r|j                  |«      S |t        j                   t        j                  t        j                  fv r5| j                  t        «      j                  |||¬«      j                  «       S d|dz  z
  j                  r¾|j                  ||r|nd«      }t!        |«      j                  r%|j                  r‡t"         | j                  |«      z
  S t!        |«      j$                  r$|j$                  rMt"        | j                  |«      z
  S | j                  t        «      j                  |||¬«      j                  «       S | j                  |«      S ©Nr   rO  r�   r‚   )r<   rä   rI  r   rº   r;   rJ  r>   r�   ro   rï   r"   rQ  rT   rL  rG  r    r   r™  ©r@   r™   rá   râ   r   rO  Úndirs          r4   rQ  zasin._eval_as_leading_termÄ  s]  € Ø�i‰i˜‰lˆØ�X‰X�a˜‹^×"Ñ"Ó$ˆØ”—‘‰;Ø—9‘9˜S×0Ñ0°Ó3Ó4Ð4Ø�:Š:Ø×&Ñ& qÓ)Ð)ð ”1—5‘5�&œ!Ÿ%™%¤×!2Ñ!2Ð3Ñ3Ø—<‘<¤Ó$×:Ñ:¸1À4ÈdÐ:ÓS×ZÑZÓ\Ð\à��A‘‰I×"Ò"Ø—7‘7˜1¡d™d°Ó2ˆDÜ�$‹x×#Ò#Ø—>’>Ü˜3 §¡¨2£Ñ.Ð.Ü�D“×%Ò%Ø—>’>Ü §	¡	¨"£Ñ-Ð-à—|‘|¤CÓ(×>Ñ>¸qÀtÐRVÐ>ÓW×^Ñ^Ó`Ð`Ø�y‰y˜‹}Ðr6   c                óô  •— ddl m} | j                  d   j                  |d«      }|t        j
                  u �rgt        dd¬«      }t        t        j
                  |dz  z
  «      j                  t        «      j                  |dd|z  «      }t        j
                  | j                  d   z
  }	|	j                  |«      }
|	|
z
  |
z  }|j                  |d«      s(|dk(  r |d«      S t        dz   |t        |«      «      z   S t        t        j
                  |z   «      j                  |||¬«      }|j!                  «       t        |
«      z  j#                  «       }|j!                  «       j                  ||«      j#                  «       j%                  «        |||z  |«      z   S |t        j&                  u �rht        dd¬«      }t        t        j&                  |dz  z   «      j                  t        «      j                  |dd|z  «      }t        j
                  | j                  d   z   }	|	j                  |«      }
|	|
z
  |
z  }|j                  |d«      s)|dk(  r |d«      S t         dz   |t        |«      «      z   S t        t        j
                  |z   «      j                  |||¬«      }|j!                  «       t        |
«      z  j#                  «       }|j!                  «       j                  ||«      j#                  «       j%                  «        |||z  |«      z   S t(        ‰| �=  |||¬«      }|t        j*                  u r|S d|dz  z
  j,                  r¤| j                  d   j/                  ||r|nd«      }t1        |«      j,                  r|j,                  r
t         |z
  S |S t1        |«      j2                  r|j2                  r	t        |z
  S |S | j                  t        «      j                  ||||¬	«      S |S ©
Nr   ©ÚOr4  T©Úpositiver‚   r�   r½  rO  )Úsympy.series.orderr®  r<   rä   r   r�   r   rÇ   rï   r"   ÚnseriesrJ  Úis_meromorphicr   r%   ræ   ÚremoveOrT   ÚpowsimprÅ   rå   ro   rL  rG  r    r™  ©r@   r™   rÛ   rá   râ   r®  Úarg0r4  ÚserÚarg1rc   rd   Úres1Úresrª  rè   s                  €r4   ræ   zasin._eval_nseriesÜ  sS  ø€ Ý(Ø�y‰y˜‰|× Ñ   AÓ&ˆà”1—5‘5Š=Ü�c DÔ)ˆAÜ”q—u‘u˜q !™t‘|Ó$×,Ñ,¬SÓ1×9Ñ9¸!¸QÀÀ!ÁÓDˆCÜ—5‘5˜4Ÿ9™9 Q™<Ñ'ˆDØ×$Ñ$ QÓ'ˆAØ˜‘˜A‘ˆAØ×#Ñ# A qÔ)Ø  Ašv‘q˜“tÐ<¬2¨a©4±!´D¸³G³*Ñ+<Ð<ÜœŸ™ ™	“?×0Ñ0°°a¸dÐ0ÓCˆDØ—<‘<“>¤$ q£'Ñ)×1Ñ1Ó3ˆCØ—;‘;“=×%Ñ% a¨Ó-×4Ñ4Ó6×>Ñ>Ó@Á1ÀQÈÁTÈ1Ã:ÑMÐMà”1—=‘=Ò Ü�c DÔ)ˆAÜ”q—}‘} q¨!¡tÑ+Ó,×4Ñ4´SÓ9×AÑAÀ!ÀQÈÈ!ÉÓLˆCÜ—5‘5˜4Ÿ9™9 Q™<Ñ'ˆDØ×$Ñ$ QÓ'ˆAØ˜‘˜A‘ˆAØ×#Ñ# A qÔ)Ø  Ašv‘q˜“tÐ=¬B¨3¨q©5±1´T¸!³W³:Ñ+=Ð=ÜœŸ™ ™	“?×0Ñ0°°a¸dÐ0ÓCˆDØ—<‘<“>¤$ q£'Ñ)×1Ñ1Ó3ˆCØ—;‘;“=×%Ñ% a¨Ó-×4Ñ4Ó6×>Ñ>Ó@Á1ÀQÈÁTÈ1Ã:ÑMÐMä‰gÑ# A¨°Ð#Ó6ˆØ”1×$Ñ$Ñ$ØˆJà��a‘‰K×$Ò$Ø—9‘9˜Q‘<×#Ñ# A©t¡t¸Ó;ˆDÜ�$‹x×#Ò#Ø×#Ò#Ü˜3 ™9Ð$ð ˆ
ô �D“×%Ò%Ø×#Ò#Ü ™8�Oð ˆ
ð —|‘|¤CÓ(×6Ñ6°q¸!À$ÈTÐ6ÓRÐRØˆ
r6   c                ó,   — t         dz  t        |«      z
  S r¢   ©r   rÊ   r×  s      r4   Ú_eval_rewrite_as_acoszasin._eval_rewrite_as_acos	  ó   € Ü�!‰t”d˜1“g‰~Ðr6   c           
     óH   — dt        |dt        d|dz  z
  «      z   z  «      z  S r  )rÈ   r%   r×  s      r4   Ú_eval_rewrite_as_atanzasin._eval_rewrite_as_atan	  s(   € Ø”�a˜œT ! a¨¡d¡(›^Ñ+Ñ,Ó-Ñ-Ð-r6   c           	     ó‚   — t         j                   t        t         j                  |z  t        d|dz  z
  «      z   «      z  S r«  ©r   r3   r"   r%   r×  s      r4   Ú_eval_rewrite_as_logzasin._eval_rewrite_as_log	  s3   € Ü—‘Ð¤¤A§O¡O°AÑ$5¼¸QÀÀAÁ¹X»Ñ$FÓ GÑGÐGr6   c           	     óH   — dt        dt        d|dz  z
  «      z   |z  «      z  S r  )rË   r%   rý   s      r4   Ú_eval_rewrite_as_acotzasin._eval_rewrite_as_acot	  s)   € Ø”�qœ4  C¨¡F¡
Ó+Ñ+¨SÑ0Ó1Ñ1Ð1r6   c                ó2   — t         dz  t        d|z  «      z
  S r  ©r   rÍ   rý   s      r4   Ú_eval_rewrite_as_aseczasin._eval_rewrite_as_asec	  ó   € Ü�!‰t”d˜1˜S™5“kÑ!Ð!r6   c                ó   — t        d|z  «      S r  )rÌ   rý   s      r4   Ú_eval_rewrite_as_acsczasin._eval_rewrite_as_acsc	  ó   € Ü�A�c‘E‹{Ðr6   c                ól   — | j                   d   }|j                  xr dt        |«      z
  j                  S ©Nr   r�   ©r<   rS   r^   Úis_nonnegative©r@   r™   s     r4   rU  zasin._eval_is_extended_real	  ó.   € Ø�I‰I�a‰LˆØ×!Ñ!ÒA q¬3¨q«6¡z×&AÑ&AÐAr6   c                ó   — t         S r­  rÖ  rª   s     r4   r¯  zasin.inverse 	  ó	   € ô ˆ
r6   re  rf  )rj   rk   rl   rm   r¬   rB   rš  r�  rg  rÔ   rh  r   rÝ   rQ  ræ   r¾  rÁ  rÄ  Ú_eval_rewrite_as_tractablerÆ  rÉ  rÌ  rU  r¯  ri  rj  s   @r4   rÇ   rÇ   >  s�   ø„ ñ(óT5ò!òJòJð ñ4(ó ð4(ðl Øñ"ó ó ð"òõ0*òXò.òHð "6Ðò2ò"òòB÷r6   rÇ   c                  ó¤   ‡ — e Zd ZdZdd„Zd„ Zed„ «       Zee	d„ «       «       Z
d„ Zd„ Zd„ Zdˆ fd	„	Zd
„ ZeZd„ Zd„ Zdd„Zd„ Zd„ Zd„ Zd„ Zˆ xZS )rÊ   aº  
    The inverse cosine function.

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

    Returns the arc cosine of x (measured in radians).

    ``acos(x)`` will evaluate automatically in the cases
    $x \in \{\infty, -\infty, 0, 1, -1\}$ and for some instances when
    the result is a rational multiple of $\pi$ (see the eval class method).

    ``acos(zoo)`` evaluates to ``zoo``
    (see note in :class:`sympy.functions.elementary.trigonometric.asec`)

    A purely imaginary argument will be rewritten to asinh.

    Examples
    ========

    >>> from sympy import acos, oo
    >>> acos(1)
    0
    >>> acos(0)
    pi/2
    >>> acos(oo)
    oo*I

    See Also
    ========

    sin, csc, cos, sec, tan, cot
    asin, acsc, asec, atan, acot, atan2

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Inverse_trigonometric_functions
    .. [2] https://dlmf.nist.gov/4.23
    .. [3] https://functions.wolfram.com/ElementaryFunctions/ArcCos

    c                óf   — |dk(  r!dt        d| j                  d   dz  z
  «      z  S t        | |«      ‚©Nr�   r²   r   r‚   r”  rª   s     r4   r¬   z
acos.fdiffS	  s7   € Ø�qŠ=Ø”d˜1˜tŸy™y¨™|¨Q™Ñ.Ó/Ñ/Ð/ä$ T¨8Ó4Ð4r6   c                ó´   —  | j                   | j                  Ž }|j                   | j                   k(  r|j                  d   j                  ryy |j                  S r:   r–  r?   s     r4   rB   zacos._eval_is_rationalY	  r—  r6   c                óÔ  — |j                   r×|t        j                  u rt        j                  S |t        j                  u r!t        j                  t        j                  z  S |t        j
                  u r!t        j
                  t        j                  z  S |j                  r	t        dz  S |t        j                  u rt        j                  S |t        j                  u rt        S |t        j                  u rt        j                  S |j                  r8| j                  «       }||v rt        dz  ||   z
  S | |v rt        dz  ||    z   S t        |«      }|�t        dz  t        |«      z
  S |j                   r<t#        |j$                  «      dk(  r$|j$                  d   dk(  r|j$                  d   }d}n|}d}t'        |t(        «      rI|j$                  d   }|j*                  r.|r	t        |z
  }|dt        z  z  }|t        kD  rdt        z  |z
  }|S t'        |t,        «      rH|j$                  d   }|j*                  r,|rt        dz  t        |«      z   S t        dz  t        |«      z
  S y y ©Nr‚   r   r²   r�   TF)r¹   r   rº   r»   r3   r¼   r>   r   r�   rU   rÅ   ro   r   r‰  r5   rÇ   r\   rÙ   r<   r1   r©   r¡  r    )rÎ   r   r¢  rÐ   rÑ   Úminusr£  s          r4   rÔ   z	acos.evala	  s  € à�=Š=Ø”a—e‘e‰|Ü—u‘u�ØœŸ
™
Ñ"Ü—z‘z¤!§/¡/Ñ1Ð1Øœ×*Ñ*Ñ*Ü×)Ñ)¬!¯/©/Ñ9Ð9Ø—’Ü˜!‘t�ØœŸ™‘Ü—v‘v�ØœŸ™Ñ%Ü�	à”!×#Ñ#Ñ#Ü×$Ñ$Ð$à�=Š=ØŸ™Ó*ˆJØ�jÑ Ü˜!‘t˜j¨™oÑ-Ð-Ø�˜Ñ#Ü˜!‘t˜j¨#¨Ñ.Ñ.Ð.ä0°Ó5ˆØÐÜ�a‘4œ$˜s›)Ñ#Ð#à�:Š:œ#˜cŸh™h›-¨1Ò,°·±¸!±ÀÒ1BØ—8‘8˜A‘;ˆDØ‰EàˆDØˆEä�dœCÔ à—)‘)˜A‘,ˆCØ× Ò ÙÜ˜s™(�CØ�qœ‘t‘�Øœ’8ØœB™$ ™*�CØ�
ä�dœCÔ Ø—)‘)˜A‘,ˆCØ× Ò ÙÜ˜a™4¤$ t£*Ñ,Ð,Ü˜!‘tœd 4›jÑ(Ð(ð !ð !r6   c                óJ  — | dk(  r	t         dz  S | dk  s| dz  dk(  rt        j                  S t        |«      }t	        |«      dk\  r$| dkD  r|d   }|| dz
  dz  z  | | dz
  z  z  |dz  z  S | dz
  dz  }t        t        j                  |«      }t        |«      }| |z  || z  z  | z  S rÖ   )r   r   rU   r   rÙ   r   r†   r   r¥  s          r4   rÝ   zacos.taylor_term˜	  sº   € ð �Š6Ü�a‘4ˆKØ�ŠU�a˜!‘e˜q’jÜ—6‘6ˆMä˜“
ˆAÜ�>Ó" aÒ'¨A°ªEØ" 2Ñ&�Ø˜!˜a™% !™‘| Q¨¨A©¡YÑ/°°1±Ñ4Ð4à˜‘U˜q‘L�Ü#¤A§F¡F¨AÓ.�Ü˜a“L�Ø�r˜!‘t˜A˜q™D‘y ‘{Ð"r6   c                óŠ  — | j                   d   }|j                  |d«      j                  «       }|t        j                  u r | j                  |j                  |«      «      S |dk(  r7t        d«      t        t        j                  |z
  j                  |«      «      z  S |t        j                   t        j                  fv r'| j                  t        «      j                  |||¬«      S d|dz  z
  j                  rº|j                  ||r|nd«      }t        |«      j                  r'|j                  rƒdt         z  | j                  |«      z
  S t        |«      j"                  r|j"                  rG| j                  |«       S | j                  t        «      j                  |||¬«      j%                  «       S | j                  |«      S ©Nr   r�   r‚   rO  )r<   rä   rI  r   rº   r;   rJ  r%   r�   ro   rï   r"   rQ  rL  rG  r    r   r™  rT   r©  s          r4   rQ  zacos._eval_as_leading_termª	  sa  € Ø�i‰i˜‰lˆØ�X‰X�a˜‹^×"Ñ"Ó$ˆØ”—‘‰;Ø—9‘9˜S×0Ñ0°Ó3Ó4Ð4à�Š7Ü˜“7œ4¤§¡¨¡× =Ñ =¸aÓ @ÓAÑAÐAØ”1—5‘5�&œ!×+Ñ+Ð,Ñ,Ø—<‘<¤Ó$×:Ñ:¸1À4ÈdÐ:ÓSÐSà��A‘‰I×"Ò"Ø—7‘7˜1¡d™d°Ó2ˆDÜ�$‹x×#Ò#Ø—>’>ØœR™4 $§)¡)¨B£-Ñ/Ð/Ü�D“×%Ò%Ø—>’>Ø ŸI™I b›M˜>Ð)à—|‘|¤CÓ(×>Ñ>¸qÀtÐRVÐ>ÓW×^Ñ^Ó`Ð`Ø�y‰y˜‹}Ðr6   c                ól   — | j                   d   }|j                  xr dt        |«      z
  j                  S rÏ  rÐ  rÒ  s     r4   rU  zacos._eval_is_extended_realÁ	  rÓ  r6   c                ó"   — | j                  «       S ri   )rU  r.  s    r4   Ú_eval_is_nonnegativezacos._eval_is_nonnegativeÅ	  s   € Ø×*Ñ*Ó,Ð,r6   c                óÐ  •— ddl m} | j                  d   j                  |d«      }|t        j
                  u �r]t        dd¬«      }t        t        j
                  |dz  z
  «      j                  t        «      j                  |dd|z  «      }t        j
                  | j                  d   z
  }	|	j                  |«      }
|	|
z
  |
z  }|j                  |d«      s|dk(  r |d«      S  |t        |«      «      S t        t        j
                  |z   «      j                  |||¬«      }|j                  «       t        |
«      z  j!                  «       }|j                  «       j                  ||«      j!                  «       j#                  «        |||z  |«      z   S |t        j$                  u �rdt        dd¬«      }t        t        j$                  |dz  z   «      j                  t        «      j                  |dd|z  «      }t        j
                  | j                  d   z   }	|	j                  |«      }
|	|
z
  |
z  }|j                  |d«      s%|dk(  r |d«      S t&         |t        |«      «      z   S t        t        j
                  |z   «      j                  |||¬«      }|j                  «       t        |
«      z  j!                  «       }|j                  «       j                  ||«      j!                  «       j#                  «        |||z  |«      z   S t(        ‰| �9  |||¬«      }|t        j*                  u r|S d|dz  z
  j,                  r | j                  d   j/                  ||r|nd«      }t1        |«      j,                  r|j,                  rdt&        z  |z
  S |S t1        |«      j2                  r|j2                  r| S |S | j                  t        «      j                  ||||¬	«      S |S r¬  )r±  r®  r<   rä   r   r�   r   rÊ   rï   r"   r²  rJ  r³  r%   ræ   r´  rT   rµ  rÅ   r   rå   ro   rL  rG  r    r™  r¶  s                  €r4   ræ   zacos._eval_nseriesÈ	  sC  ø€ Ý(Ø�y‰y˜‰|× Ñ   AÓ&ˆà”1—5‘5Š=Ü�c DÔ)ˆAÜ”q—u‘u˜q !™t‘|Ó$×,Ñ,¬SÓ1×9Ñ9¸!¸QÀÀ!ÁÓDˆCÜ—5‘5˜4Ÿ9™9 Q™<Ñ'ˆDØ×$Ñ$ QÓ'ˆAØ˜‘˜A‘ˆAØ×#Ñ# A qÔ)Ø  Ašv‘q˜“tÐ5©1¬T°!«W«:Ð5ÜœŸ™ ™	“?×0Ñ0°°a¸dÐ0ÓCˆDØ—<‘<“>¤$ q£'Ñ)×1Ñ1Ó3ˆCØ—;‘;“=×%Ñ% a¨Ó-×4Ñ4Ó6×>Ñ>Ó@Á1ÀQÈÁTÈ1Ã:ÑMÐMà”1—=‘=Ò Ü�c DÔ)ˆAÜ”q—}‘} q¨!¡tÑ+Ó,×4Ñ4´SÓ9×AÑAÀ!ÀQÈÈ!ÉÓLˆCÜ—5‘5˜4Ÿ9™9 Q™<Ñ'ˆDØ×$Ñ$ QÓ'ˆAØ˜‘˜A‘ˆAØ×#Ñ# A qÔ)Ø  Ašv‘q˜“tÐ:¬2±´$°q³'³
©?Ð:ÜœŸ™ ™	“?×0Ñ0°°a¸dÐ0ÓCˆDØ—<‘<“>¤$ q£'Ñ)×1Ñ1Ó3ˆCØ—;‘;“=×%Ñ% a¨Ó-×4Ñ4Ó6×>Ñ>Ó@Á1ÀQÈÁTÈ1Ã:ÑMÐMä‰gÑ# A¨°Ð#Ó6ˆØ”1×$Ñ$Ñ$ØˆJà��a‘‰K×$Ò$Ø—9‘9˜Q‘<×#Ñ# A©t¡t¸Ó;ˆDÜ�$‹x×#Ò#Ø×#Ò#ØœR™4 #™:Ð%ð ˆ
ô �D“×%Ò%Ø×#Ò#Ø˜4�Kð ˆ
ð —|‘|¤CÓ(×6Ñ6°q¸!À$ÈTÐ6ÓRÐRØˆ
r6   c           
     ó”   — t         dz  t        j                  t        t        j                  |z  t	        d|dz  z
  «      z   «      z  z   S r  ©r   r   r3   r"   r%   r×  s      r4   rÄ  zacos._eval_rewrite_as_logô	  s@   € Ü�!‰t”a—o‘oÜ”—‘ Ñ!¤D¨¨Q°©T©£NÑ2Ó3ñ4ñ 4ð 	4r6   c                ó,   — t         dz  t        |«      z
  S r¢   ©r   rÇ   r×  s      r4   Ú_eval_rewrite_as_asinzacos._eval_rewrite_as_asinú	  r¿  r6   c           	     ó€   — t        t        d|dz  z
  «      |z  «      t        dz  d|t        d|dz  z  «      z  z
  z  z   S r«  )rÈ   r%   r   r×  s      r4   rÁ  zacos._eval_rewrite_as_ataný	  sA   € Ü”D˜˜Q ™T™“N 1Ñ$Ó%¬¨A©°°A´d¸1¸QÀ¹T¹6³l±NÑ0BÑ(CÑCÐCr6   c                ó   — t         S r­  r[  rª   s     r4   r¯  zacos.inverse 
  rÕ  r6   c           
     ó\   — t         dz  dt        dt        d|dz  z
  «      z   |z  «      z  z
  S r  )r   rË   r%   rý   s      r4   rÆ  zacos._eval_rewrite_as_acot
  s2   € Ü�!‰t�aœ˜a¤$ q¨3°©6¡zÓ"2Ñ2°CÑ7Ó8Ñ8Ñ8Ð8r6   c                ó   — t        d|z  «      S r  )rÍ   rý   s      r4   rÉ  zacos._eval_rewrite_as_asec	
  rÍ  r6   c                ó2   — t         dz  t        d|z  «      z
  S r  ©r   rÌ   rý   s      r4   rÌ  zacos._eval_rewrite_as_acsc
  rÊ  r6   c                óö   — | j                   d   }| j                  | j                   d   j                  «       «      }|j                  du r|S |j                  r"|dz   j                  r|dz
  j
                  r|S y y y ©Nr   Fr�   )r<   r;   r-  rS   rÑ  Úis_nonpositive)r@   rˆ  Úrs      r4   r/  zacos._eval_conjugate
  st   € Ø�I‰I�a‰LˆØ�I‰I�d—i‘i ‘l×,Ñ,Ó.Ó/ˆØ×Ñ Ñ&ØˆHØ×Ò Q¨¡U×$:Ò$:ÀÀAÁ×?UÒ?UØˆHð @VÐ$:Ðr6   re  rf  )rj   rk   rl   rm   r¬   rB   rg  rÔ   rh  r   rÝ   rQ  rU  rã  ræ   rÄ  rÖ  ré  rÁ  r¯  rÆ  rÉ  rÌ  r/  ri  rj  s   @r4   rÊ   rÊ   '	  s‹   ø„ ñ)óV5ò!ð ñ4)ó ð4)ðl Øñ#ó ó ð#ò ò.Bò-õ*òX4ð "6ÐòòDóò9òò"ör6   rÊ   c                  óò   ‡ — e Zd ZU dZded<   ej                  ej                   fZdd„Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zed
„ «       Zeed„ «       «       Zd„ Zdˆ fd„	Zd„ ZeZˆ fd„Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zˆ xZS )rÈ   a  
    The inverse tangent function.

    Returns the arc tangent of x (measured in radians).

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

    ``atan(x)`` will evaluate automatically in the cases
    $x \in \{\infty, -\infty, 0, 1, -1\}$ and for some instances when the
    result is a rational multiple of $\pi$ (see the eval class method).

    Examples
    ========

    >>> from sympy import atan, oo
    >>> atan(0)
    0
    >>> atan(1)
    pi/4
    >>> atan(oo)
    pi/2

    See Also
    ========

    sin, csc, cos, sec, tan, cot
    asin, acsc, acos, asec, acot, atan2

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Inverse_trigonometric_functions
    .. [2] https://dlmf.nist.gov/4.23
    .. [3] https://functions.wolfram.com/ElementaryFunctions/ArcTan

    ztuple[Expr]r<   c                óT   — |dk(  rdd| j                   d   dz  z   z  S t        | |«      ‚r“  ©r<   r   rª   s     r4   r¬   z
atan.fdiffC
  s2   € Ø�qŠ=Ø�a˜$Ÿ)™) A™,¨™/Ñ)Ñ*Ð*ä$ T¨8Ó4Ð4r6   c                ó´   —  | j                   | j                  Ž }|j                   | j                   k(  r|j                  d   j                  ryy |j                  S r:   r–  r?   s     r4   rB   zatan._eval_is_rationalI
  r—  r6   c                ó4   — | j                   d   j                  S r+  )r<   Úis_extended_positiver.  s    r4   rš  zatan._eval_is_positiveQ
  s   € Ø�y‰y˜‰|×0Ñ0Ð0r6   c                ó4   — | j                   d   j                  S r+  )r<   Úis_extended_nonnegativer.  s    r4   rã  zatan._eval_is_nonnegativeT
  s   € Ø�y‰y˜‰|×3Ñ3Ð3r6   c                ó4   — | j                   d   j                  S r+  )r<   r>   r.  s    r4   r_  zatan._eval_is_zeroW
  s   € Ø�y‰y˜‰|×#Ñ#Ð#r6   c                ó4   — | j                   d   j                  S r+  rT  r.  s    r4   r÷  zatan._eval_is_realZ
  r  r6   c                ó(  — |j                   r¬|t        j                  u rt        j                  S |t        j                  u r	t        dz  S |t        j
                  u r
t         dz  S |j                  rt        j                  S |t        j                  u r	t        dz  S |t        j                  u r
t         dz  S |t        j                  u rddlm}  |t         dz  t        dz  «      S |j                  «       r
 | | «       S |j                  r| j                  «       }||v r||   S t!        |«      }|�ddlm} t        j&                   ||«      z  S |j                  rt        j                  S t)        |t*        «      r;|j,                  d   }|j.                  r |t        z  }|t        dz  kD  r	|t        z  }|S t)        |t0        «      rH|j,                  d   }|j.                  r,t        dz  t3        |«      z
  }|t        dz  kD  r	|t        z  }|S y y )Nr‚   rs   r   r®   )Úatanh)r¹   r   rº   r»   r   r¼   r>   rU   r�   rÅ   ro   r·   r¯   rÃ   r   rŒ  r5   rÄ   rÿ  r3   r1   r  r<   r¡  r  rË   )rÎ   r   r¯   Ú
atan_tablerÐ   rÿ  r£  s          r4   rÔ   z	atan.eval]
  sº  € à�=Š=Ø”a—e‘e‰|Ü—u‘u�ØœŸ
™
Ñ"Ü˜!‘t�Øœ×*Ñ*Ñ*Ü�s˜1‘u�Ø—’Ü—v‘v�ØœŸ™‘Ü˜!‘t�ØœŸ™Ñ%Ü�s˜1‘u�à”!×#Ñ#Ñ#ÝEÙ¤˜s 1™u¤b¨¡dÓ+Ð+à×'Ñ'Ô)Ù˜˜“I�:Ðà�=Š=ØŸ™Ó*ˆJØ�jÑ Ø! #‘Ð&ä0°Ó5ˆØÐÝCÜ—?‘?¡5¨£>Ñ1Ð1à�;Š;Ü—6‘6ˆMä�cœ3ÔØ—(‘(˜1‘+ˆCØ× Ò Ø”r‘	�Øœ˜A™’:Øœ2‘I�Cà�
ä�cœ3ÔØ—(‘(˜1‘+ˆCØ× Ò Ü˜‘dœT #›YÑ&�Øœ˜A™’:Øœ2‘I�CØ�
ð	 !ð  r6   c                ó–   — | dk  s| dz  dk(  rt         j                  S t        |«      }t         j                  | dz
  dz  z  || z  z  | z  S r¹  )r   rU   r   rÅ   ©rÛ   r™   rÜ   s      r4   rÝ   zatan.taylor_term’
  sL   € ð ˆqŠ5�A˜‘E˜Q’JÜ—6‘6ˆMä˜“
ˆAÜ—=‘= A¨¡E¨A¡:Ñ.¨q°!©tÑ3°AÑ5Ð5r6   c                ó°  — | j                   d   }|j                  |d«      j                  «       }|t        j                  u r | j                  |j                  |«      «      S |j                  r|j                  |«      S |t        j                   t        j                  t        j                  fv r5| j                  t        «      j                  |||¬«      j                  «       S d|dz  z   j                  rÏ|j                  ||r|nd«      }t!        |«      j                  r-t#        |«      j$                  r�| j                  |«      t&        z
  S t!        |«      j$                  r-t#        |«      j                  rM| j                  |«      t&        z   S | j                  t        «      j                  |||¬«      j                  «       S | j                  |«      S r¨  )r<   rä   rI  r   rº   r;   rJ  r>   r3   ro   rï   r"   rQ  rT   rL  rG  r!   r    r™  r   r©  s          r4   rQ  zatan._eval_as_leading_term›
  sf  € Ø�i‰i˜‰lˆØ�X‰X�a˜‹^×"Ñ"Ó$ˆØ”—‘‰;Ø—9‘9˜S×0Ñ0°Ó3Ó4Ð4Ø�:Š:Ø×&Ñ& qÓ)Ð)à”1—?‘?Ð"¤A§O¡O´Q×5FÑ5FÐGÑGØ—<‘<¤Ó$×:Ñ:¸1À4ÈdÐ:ÓS×ZÑZÓ\Ð\à��A‘‰I×"Ò"Ø—7‘7˜1¡d™d°Ó2ˆDÜ�$‹x×#Ò#Ü�b“6×%Ò%ØŸ9™9 R›=¬2Ñ-Ð-Ü�D“×%Ò%Ü�b“6×%Ò%ØŸ9™9 R›=¬2Ñ-Ð-à—|‘|¤CÓ(×>Ñ>¸qÀtÐRVÐ>ÓW×^Ñ^Ó`Ð`Ø�y‰y˜‹}Ðr6   c                ó  •— | j                   d   j                  |d«      }|t        j                  t        j                  t        j                  z  fv r(| j                  t        «      j                  ||||¬«      S t        ‰| �  |||¬«      }| j                   d   j                  ||r|nd«      }|t        j                  u rt        |«      dkD  r	|t        z
  S |S d|dz  z   j                  r’t        |«      j                  r t        |«      j                  r	|t        z
  S |S t        |«      j                  r t        |«      j                  r	|t        z   S |S | j                  t        «      j                  ||||¬«      S |S ©Nr   rO  r½  r�   r‚   )r<   rä   r   r3   rÅ   rï   r"   ræ   rå   rG  ro   r!   r   rL  r    r™  ©	r@   r™   rÛ   rá   râ   r·  r»  rª  rè   s	           €r4   ræ   zatan._eval_nseries²
  sL  ø€ Ø�y‰y˜‰|× Ñ   AÓ&ˆð ”A—O‘O¤Q§]¡]´1·?±?Ñ%BÐCÑCØ—<‘<¤Ó$×2Ñ2°1°a¸dÈÐ2ÓNÐNä‰gÑ# A¨°Ð#Ó6ˆØ�y‰y˜‰|×Ñ ©4¡4°QÓ7ˆØ”1×$Ñ$Ñ$Ü�$‹x˜!Š|ØœR‘x�ØˆJà��a‘‰K×$Ò$Ü�$‹x×#Ò#Ü�d“8×'Ò'Ø¤™8�Oð ˆ
ô �D“×%Ò%Ü�d“8×'Ò'Ø¤™8�Oð ˆ
ð —|‘|¤CÓ(×6Ñ6°q¸!À$ÈTÐ6ÓRÐRØˆ
r6   c                óà   — t         j                  dz  t        t         j                  t         j                  |z  z
  «      t        t         j                  t         j                  |z  z   «      z
  z  S r¢   )r   r3   r"   r�   r×  s      r4   rÄ  zatan._eval_rewrite_as_logË
  sP   € Ü�‰˜qÑ ¤#¤a§e¡e¬a¯o©o¸aÑ.?Ñ&?Ó"@Ü”!—%‘%œ!Ÿ/™/¨!Ñ+Ñ+Ó,ñ#-ñ .ð 	.r6   c                óÞ   •— |d   t         j                  t         j                  fv r6t        dz  t	        d| j
                  d   z  «      z
  j                  |||«      S t        ‰| �!  ||||«      S r¹  )	r   r»   r¼   r   rÈ   r<   ræ   rå   Ú_eval_aseries©r@   rÛ   Úargs0r™   rá   rè   s        €r4   r	  zatan._eval_aseriesÑ
  sc   ø€ Ø�‰8œŸ
™
¤A×$6Ñ$6Ð7Ñ7Ü�q‘Dœ4  $§)¡)¨A¡,¡Ó/Ñ/×>Ñ>¸qÀ!ÀTÓJÐJä‘7Ñ(¨¨E°1°dÓ;Ð;r6   c                ó   — t         S r­  r  rª   s     r4   r¯  zatan.inverse×
  rÕ  r6   c           
     ót   — t        |dz  «      |z  t        dz  t        dt        d|dz  z   «      z  «      z
  z  S r  ©r%   r   rÇ   rý   s      r4   ré  zatan._eval_rewrite_as_asinÝ
  s:   € Ü�C˜‘F‹|˜CÑ¤ A¡¬¨Q¬t°A¸¸Q¹±JÓ/?Ñ-?Ó(@Ñ!@ÑAÐAr6   c           	     ó`   — t        |dz  «      |z  t        dt        d|dz  z   «      z  «      z  S r  ©r%   rÊ   rý   s      r4   r¾  zatan._eval_rewrite_as_acosà
  s1   € Ü�C˜‘F‹|˜CÑ¤ Q¤t¨A°°Q±©JÓ'7Ñ%7Ó 8Ñ8Ð8r6   c                ó   — t        d|z  «      S r  r   rý   s      r4   rÆ  zatan._eval_rewrite_as_acotã
  rÍ  r6   c                óZ   — t        |dz  «      |z  t        t        d|dz  z   «      «      z  S r  ©r%   rÍ   rý   s      r4   rÉ  zatan._eval_rewrite_as_asecæ
  s,   € Ü�C˜‘F‹|˜CÑ¤¤T¨!¨c°1©f©*Ó%5Ó 6Ñ6Ð6r6   c           	     ón   — t        |dz  «      |z  t        dz  t        t        d|dz  z   «      «      z
  z  S r  ©r%   r   rÌ   rý   s      r4   rÌ  zatan._eval_rewrite_as_acscé
  s5   € Ü�C˜‘F‹|˜CÑ¤ A¡¬¬T°!°c¸1±f±*Ó-=Ó(>Ñ!>Ñ?Ð?r6   re  rf  )rj   rk   rl   rm   rS  r   r3   rp   r¬   rB   rš  rã  r_  r÷  rg  rÔ   rh  r   rÝ   rQ  ræ   rÄ  rÖ  r	  r¯  ré  r¾  rÆ  rÉ  rÌ  ri  rj  s   @r4   rÈ   rÈ   
  s±   ø… ñ$ðL Óà—o‘o¨¯©Ð'7Ð8€Nó5ò!ò1ò4ò$ò-ð ñ2ó ð2ðh Øñ6ó ó ð6òõ.ò2.ð "6Ðô<óòBò9òò7ö@r6   rÈ   c                  óà   ‡ — e Zd ZdZej
                  ej
                   fZdd„Zd„ Zd„ Z	d„ Z
d„ Zed„ «       Zeed„ «       «       Zd	„ Zdˆ fd
„	Zˆ fd„Zd„ ZeZdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zˆ xZS )rË   aÊ  
    The inverse cotangent function.

    Returns the arc cotangent of x (measured in radians).

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

    ``acot(x)`` will evaluate automatically in the cases
    $x \in \{\infty, -\infty, \tilde{\infty}, 0, 1, -1\}$
    and for some instances when the result is a rational multiple of $\pi$
    (see the eval class method).

    A purely imaginary argument will lead to an ``acoth`` expression.

    ``acot(x)`` has a branch cut along $(-i, i)$, hence it is discontinuous
    at 0. Its range for real $x$ is $(-\frac{\pi}{2}, \frac{\pi}{2}]$.

    Examples
    ========

    >>> from sympy import acot, sqrt
    >>> acot(0)
    pi/2
    >>> acot(1)
    pi/4
    >>> acot(sqrt(3) - 2)
    -5*pi/12

    See Also
    ========

    sin, csc, cos, sec, tan, cot
    asin, acsc, acos, asec, atan, atan2

    References
    ==========

    .. [1] https://dlmf.nist.gov/4.23
    .. [2] https://functions.wolfram.com/ElementaryFunctions/ArcCot

    c                óT   — |dk(  rdd| j                   d   dz  z   z  S t        | |«      ‚rÙ  rö  rª   s     r4   r¬   z
acot.fdiff  s2   € Ø�qŠ=Ø�q˜4Ÿ9™9 Q™<¨™?Ñ*Ñ+Ð+ä$ T¨8Ó4Ð4r6   c                ó´   —  | j                   | j                  Ž }|j                   | j                   k(  r|j                  d   j                  ryy |j                  S r:   r–  r?   s     r4   rB   zacot._eval_is_rational   r—  r6   c                ó4   — | j                   d   j                  S r+  )r<   rÑ  r.  s    r4   rš  zacot._eval_is_positive(  s   € Ø�y‰y˜‰|×*Ñ*Ð*r6   c                ó4   — | j                   d   j                  S r+  )r<   rL  r.  s    r4   r�  zacot._eval_is_negative+  s   € Ø�y‰y˜‰|×'Ñ'Ð'r6   c                ó4   — | j                   d   j                  S r+  rT  r.  s    r4   rU  zacot._eval_is_extended_real.  r  r6   c                ój  — |j                   r²|t        j                  u rt        j                  S |t        j                  u rt        j                  S |t        j
                  u rt        j                  S |j                  r	t        dz  S |t        j                  u r	t        dz  S |t        j                  u r
t         dz  S |t        j                  u rt        j                  S |j                  «       r
 | | «       S |j                  r:| j                  «       }||v r&t        dz  ||   z
  }|t        dz  kD  r	|t        z  }|S t        |«      }|� ddlm} t        j"                    ||«      z  S |j                  rt        t        j$                  z  S t'        |t(        «      r;|j*                  d   }|j,                  r |t        z  }|t        dz  kD  r	|t        z  }|S t'        |t.        «      rH|j*                  d   }|j,                  r,t        dz  t1        |«      z
  }|t        dz  kD  r	|t        z  }|S y y )Nr‚   rs   r   )Úacoth)r¹   r   rº   r»   rU   r¼   r>   r   r�   rÅ   ro   rÃ   r   rŒ  r5   rÄ   r  r3   r†   r1   r  r<   r¡  r  rÈ   )rÎ   r   r   r£  rÐ   r  s         r4   rÔ   z	acot.eval1  sÐ  € à�=Š=Ø”a—e‘e‰|Ü—u‘u�ØœŸ
™
Ñ"Ü—v‘v�Øœ×*Ñ*Ñ*Ü—v‘v�Ø—’Ü˜1‘u�ØœŸ™‘Ü˜!‘t�ØœŸ™Ñ%Ü�s˜1‘u�à”!×#Ñ#Ñ#Ü—6‘6ˆMà×'Ñ'Ô)Ù˜˜“I�:Ðà�=Š=ØŸ™Ó*ˆJØ�jÑ Ü˜‘d˜Z¨™_Ñ,�Øœ˜A™’:Øœ2‘I�CØ�
ä0°Ó5ˆØÐÝCÜ—O‘OÐ#¡E¨'£NÑ2Ð2à�;Š;Ü”a—f‘f‘9Ðä�cœ3ÔØ—(‘(˜1‘+ˆCØ× Ò Ø”r‘	�Øœ˜A™’:Øœ2‘I�CØ�
ä�cœ3ÔØ—(‘(˜1‘+ˆCØ× Ò Ü˜‘dœT #›YÑ&�Øœ˜A™’:Øœ2‘I�CØ�
ð	 !ð  r6   c                ó²   — | dk(  r	t         dz  S | dk  s| dz  dk(  rt        j                  S t        |«      }t        j                  | dz   dz  z  || z  z  | z  S r¹  )r   r   rU   r   rÅ   r  s      r4   rÝ   zacot.taylor_termg  s\   € ð �Š6Ü�a‘4ˆKØ�ŠU�a˜!‘e˜q’jÜ—6‘6ˆMä˜“
ˆAÜ—=‘= A¨¡E¨A¡:Ñ.¨q°!©tÑ3°AÑ5Ð5r6   c                óÚ  — | j                   d   }|j                  |d«      j                  «       }|t        j                  u r | j                  |j                  |«      «      S |t        j                  u rd|z  j                  |«      S |t        j                   t        j                  t        j                  fv r5| j                  t        «      j                  |||¬«      j                  «       S |j                  rád|dz  z   j                  rÏ|j!                  ||r|nd«      }t#        |«      j                  r-t%        |«      j                  r�| j                  |«      t&        z   S t#        |«      j(                  r-t%        |«      j(                  rM| j                  |«      t&        z
  S | j                  t        «      j                  |||¬«      j                  «       S | j                  |«      S )Nr   r�   rO  r‚   )r<   rä   rI  r   rº   r;   rJ  ro   r3   rU   rï   r"   rQ  rT   rù  r™  rG  r!   r    r   rL  r©  s          r4   rQ  zacot._eval_as_leading_termr  su  € Ø�i‰i˜‰lˆØ�X‰X�a˜‹^×"Ñ"Ó$ˆØ”—‘‰;Ø—9‘9˜S×0Ñ0°Ó3Ó4Ð4Ø”×"Ñ"Ñ"Ø�c‘E×*Ñ*¨1Ó-Ð-à”1—?‘?Ð"¤A§O¡O´Q·V±VÐ<Ñ<Ø—<‘<¤Ó$×:Ñ:¸1À4ÈdÐ:ÓS×ZÑZÓ\Ð\à�?Š?  B¨¡E¡	×6Ò6Ø—7‘7˜1¡d™d°Ó2ˆDÜ�$‹x×#Ò#Ü�b“6×%Ò%ØŸ9™9 R›=¬2Ñ-Ð-Ü�D“×%Ò%Ü�b“6×%Ò%ØŸ9™9 R›=¬2Ñ-Ð-à—|‘|¤CÓ(×>Ñ>¸qÀtÐRVÐ>ÓW×^Ñ^Ó`Ð`Ø�y‰y˜‹}Ðr6   c                ó8  •— | j                   d   j                  |d«      }|t        j                  t        j                  t        j                  z  fv r(| j                  t        «      j                  ||||¬«      S t        ‰| �  |||¬«      }|t        j                  u r|S | j                   d   j                  ||r|nd«      }|j                  rt        |«      dk  r	|t        z
  S |S |j                  r¤d|dz  z   j                  r’t        |«      j                  r t!        |«      j                  r	|t        z   S |S t        |«      j"                  r t!        |«      j"                  r	|t        z
  S |S | j                  t        «      j                  ||||¬«      S |S r  )r<   rä   r   r3   rÅ   rï   r"   ræ   rå   ro   rG  r>   r!   r   rù  r™  r    rL  r  s	           €r4   ræ   zacot._eval_nseries‰  s`  ø€ Ø�y‰y˜‰|× Ñ   AÓ&ˆð ”A—O‘O¤Q§]¡]´1·?±?Ñ%BÐCÑCØ—<‘<¤Ó$×2Ñ2°1°a¸dÈÐ2ÓNÐNä‰gÑ# A¨°Ð#Ó6ˆØ”1×$Ñ$Ñ$ØˆJØ�y‰y˜‰|×Ñ ©4¡4°QÓ7ˆØ�<Š<Ü�$‹x˜!Š|ØœR‘x�ØˆJà×Ò ! d¨A¡g¡+×!:Ò!:Ü�$‹x×#Ò#Ü�d“8×'Ò'Ø¤™8�Oð ˆ
ô �D“×%Ò%Ü�d“8×'Ò'Ø¤™8�Oð ˆ
ð —|‘|¤CÓ(×6Ñ6°q¸!À$ÈTÐ6ÓRÐRØˆ
r6   c                óÊ   •— |d   t         j                  t         j                  fv r,t        d| j                  d   z  «      j                  |||«      S t        ‰| �  ||||«      S rÏ  )r   r»   r¼   rÈ   r<   ræ   rå   r	  r
  s        €r4   r	  zacot._eval_aseries¤  sZ   ø€ Ø�‰8œŸ
™
¤A×$6Ñ$6Ð7Ñ7Ü˜˜$Ÿ)™) A™,™Ó'×5Ñ5°a¸¸DÓAÐAä‘7Ñ(¨¨E°1°dÓ;Ð;r6   c                ó¨   — t         j                  dz  t        dt         j                  |z  z
  «      t        dt         j                  |z  z   «      z
  z  S r  )r   r3   r"   r×  s      r4   rÄ  zacot._eval_rewrite_as_logª  sH   € Ü�‰˜qÑ ¤# a¬!¯/©/¸!Ñ*;Ñ&;Ó"<Ü�!”a—o‘o aÑ'Ñ'Ó(ñ#)ñ *ð 	*r6   c                ó   — t         S r­  rÜ  rª   s     r4   r¯  zacot.inverse°  rÕ  r6   c           	     ó–   — |t        d|dz  z  «      z  t        dz  t        t        |dz   «      t        |dz   dz
  «      z  «      z
  z  S r«  r  rý   s      r4   ré  zacot._eval_rewrite_as_asin¶  sP   € Ø”D˜˜3 ™6™“NÑ"Ü�A‘œœT 3¨¡6 '›]¬4°°a±°¸!±Ó+<Ñ<Ó=Ñ=ñ?ð 	@r6   c                ó‚   — |t        d|dz  z  «      z  t        t        |dz   «      t        |dz   dz
  «      z  «      z  S r«  r  rý   s      r4   r¾  zacot._eval_rewrite_as_acosº  sA   € Ø”4˜˜#˜q™&™“>Ñ!¤$¤t¨S°!©V¨G£}´T¸3À¹6¸'ÀA¹+Ó5FÑ'FÓ"GÑGÐGr6   c                ó   — t        d|z  «      S r  r®  rý   s      r4   rÁ  zacot._eval_rewrite_as_atan½  rÍ  r6   c                ól   — |t        d|dz  z  «      z  t        t        d|dz  z   |dz  z  «      «      z  S r«  r  rý   s      r4   rÉ  zacot._eval_rewrite_as_asecÀ  s9   € Ø”4˜˜#˜q™&™“>Ñ!¤$¤t¨Q°°a±©Z¸¸a¹Ñ,?Ó'@Ó"AÑAÐAr6   c           	     ó€   — |t        d|dz  z  «      z  t        dz  t        t        d|dz  z   |dz  z  «      «      z
  z  S r«  r  rý   s      r4   rÌ  zacot._eval_rewrite_as_acscÃ  sB   € Ø”4˜˜#˜q™&™“>Ñ!¤2 a¡4¬$¬t°Q¸¸a¹±ZÀÀaÁÑ4GÓ/HÓ*IÑ#IÑJÐJr6   re  rf  )rj   rk   rl   rm   r   r3   rp   r¬   rB   rš  r�  rU  rg  rÔ   rh  r   rÝ   rQ  ræ   r	  rÄ  rÖ  r¯  ré  r¾  rÁ  rÉ  rÌ  ri  rj  s   @r4   rË   rË   í
  s¨   ø„ ñ)ðT —o‘o¨¯©Ð'7Ð8€Nó5ò!ò+ò(ò-ð ñ3ó ð3ðj Øñ6ó ó ð6òõ.ô6<ò*ð "6Ðóò@òHòòBöKr6   rË   c                  ó’   ‡ — e Zd ZdZed„ «       Zdd„Zdd„Zee	d„ «       «       Z
d„ Zdˆ fd„	Zd„ Zd	„ ZeZd
„ Zd„ Zd„ Zd„ Zd„ Zˆ xZS )rÍ   aÊ  
    The inverse secant function.

    Returns the arc secant of x (measured in radians).

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

    ``asec(x)`` will evaluate automatically in the cases
    $x \in \{\infty, -\infty, 0, 1, -1\}$ and for some instances when the
    result is a rational multiple of $\pi$ (see the eval class method).

    ``asec(x)`` has branch cut in the interval $[-1, 1]$. For complex arguments,
    it can be defined [4]_ as

    .. math::
        \operatorname{sec^{-1}}(z) = -i\frac{\log\left(\sqrt{1 - z^2} + 1\right)}{z}

    At ``x = 0``, for positive branch cut, the limit evaluates to ``zoo``. For
    negative branch cut, the limit

    .. math::
        \lim_{z \to 0}-i\frac{\log\left(-\sqrt{1 - z^2} + 1\right)}{z}

    simplifies to :math:`-i\log\left(z/2 + O\left(z^3\right)\right)` which
    ultimately evaluates to ``zoo``.

    As ``acos(x) = asec(1/x)``, a similar argument can be given for
    ``acos(x)``.

    Examples
    ========

    >>> from sympy import asec, oo
    >>> asec(1)
    0
    >>> asec(-1)
    pi
    >>> asec(0)
    zoo
    >>> asec(-oo)
    pi/2

    See Also
    ========

    sin, csc, cos, sec, tan, cot
    asin, acsc, acos, atan, acot, atan2

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Inverse_trigonometric_functions
    .. [2] https://dlmf.nist.gov/4.23
    .. [3] https://functions.wolfram.com/ElementaryFunctions/ArcSec
    .. [4] https://reference.wolfram.com/language/ref/ArcSec.html

    c                ó,  — |j                   rt        j                  S |j                  r\|t        j                  u rt        j                  S |t        j
                  u rt        j                  S |t        j                  u rt        S |t        j                  t        j                  t        j                  fv r	t        dz  S |j                  r8| j                  «       }||v rt        dz  ||   z
  S | |v rt        dz  ||    z   S |j                  r	t        dz  S |j                  r<t        |j                   «      dk(  r$|j                   d   dk(  r|j                   d   }d}n|}d}t#        |t$        «      rI|j                   d   }|j&                  r.|r	t        |z
  }|dt        z  z  }|t        kD  rdt        z  |z
  }|S t#        |t(        «      rH|j                   d   }|j&                  r,|rt        dz  t+        |«      z    t        dz  t+        |«      z
  S y y rÜ  )r>   r   ro   r¹   rº   r�   rU   rÅ   r   r»   r¼   r   r�  rƒ  r\   rÙ   r<   r1   r  r¡  r  rÌ   )rÎ   r   Ú
acsc_tablerÑ   rÝ  r£  s         r4   rÔ   z	asec.eval  s¾  € à�;Š;Ü×$Ñ$Ð$Ø�=Š=Ø”a—e‘e‰|Ü—u‘u�ØœŸ™‘Ü—v‘v�ØœŸ™Ñ%Ü�	Ø”1—:‘:œq×1Ñ1´1×3DÑ3DÐEÑEÜ�a‘4ˆKà�=Š=ØŸ™Ó*ˆJØ�jÑ Ü˜!‘t˜j¨™oÑ-Ð-Ø�˜Ñ#Ü˜!‘t˜j¨#¨Ñ.Ñ.Ð.à�?Š?Ü�a‘4ˆKà�:Š:œ#˜cŸh™h›-¨1Ò,°·±¸!±ÀÒ1BØ—8‘8˜A‘;ˆDØ‰EàˆDØˆEä�dœCÔ à—)‘)˜A‘,ˆCØ× Ò ÙÜ˜s™(�CØ�qœ‘t‘�Øœ’8ØœB™$ ™*�CØ�
ä�dœCÔ Ø—)‘)˜A‘,ˆCØ× Ò ÙÜ�q‘Dœ4 ›:Ò%Ü˜!‘tœd 4›jÑ(Ð(ð !ð !r6   c                ó’   — |dk(  r7d| j                   d   dz  t        dd| j                   d   dz  z  z
  «      z  z  S t        | |«      ‚r“  ©r<   r%   r   rª   s     r4   r¬   z
asec.fdiff4  sM   € Ø�qŠ=Ø�d—i‘i ‘l A‘o¤d¨1¨q°·±¸1±¸q±Ñ/@Ñ+@Ó&AÑAÑBÐBä$ T¨8Ó4Ð4r6   c                ó   — t         S r­  r—  rª   s     r4   r¯  zasec.inverse:  rÕ  r6   c                ó¼  — | dk(  rt         j                  t        d|z  «      z  S | dk  s| dz  dk(  rt         j                  S t	        |«      }t        |«      dkD  r*| dkD  r%|d   }|| dz
  | dz
  z  z  |dz  z  d| dz  dz  z  z  S | dz  }t        t         j                  |«      | z  }t        |«      | z  dz  | z  dz  }t         j                   |z  |z  || z  z  dz  S ©Nr   r‚   r�   r×   rs   )	r   r3   r"   rU   r   rÙ   r   r†   r   r¥  s          r4   rÝ   zasec.taylor_term@  só   € ð �Š6Ü—?‘?¤3 q¨1¡u£:Ñ-Ð-Ø�ŠU�a˜!‘e˜q’jÜ—6‘6ˆMä˜“
ˆAÜ�>Ó" QÒ&¨1¨qª5Ø" 2Ñ&�Ø˜Q ™U Q q¡S™MÑ*¨Q°©TÑ1°1¸¸1¹¸q±y±=ÑAÐAà˜‘F�Ü#¤A§F¡F¨AÓ.°!Ñ3�Ü˜a“L 1Ñ$¨Ñ)¨AÑ-°Ñ2�ÜŸ™Ð'¨!Ñ+¨aÑ/°!°Q±$Ñ6¸Ñ:Ð:r6   c                ó¢  — | j                   d   }|j                  |d«      j                  «       }|t        j                  u r | j                  |j                  |«      «      S |dk(  r7t        d«      t        |t        j                  z
  j                  |«      «      z  S |t        j                   t        j                  fv r'| j                  t        «      j                  |||¬«      S |j                  rÌd|dz  z
  j                  rº|j                  ||r|nd«      }t!        |«      j"                  r|j                  rƒ| j                  |«       S t!        |«      j                  r'|j"                  rPdt$        z  | j                  |«      z
  S | j                  t        «      j                  |||¬«      j'                  «       S | j                  |«      S rà  )r<   rä   rI  r   rº   r;   rJ  r%   r�   rU   rï   r"   rQ  rö  r™  rG  r    rL  r   rT   r©  s          r4   rQ  zasec._eval_as_leading_termR  se  € Ø�i‰i˜‰lˆØ�X‰X�a˜‹^×"Ñ"Ó$ˆØ”—‘‰;Ø—9‘9˜S×0Ñ0°Ó3Ó4Ð4à�Š7Ü˜“7œ4 ¤q§u¡u¡× =Ñ =¸aÓ @ÓAÑAÐAØ”1—5‘5�&œ!Ÿ&™&Ð!Ñ!Ø—<‘<¤Ó$×:Ñ:¸1À4ÈdÐ:ÓSÐSà�:Š:˜1˜r 1™u™9×1Ò1Ø—7‘7˜1¡d™d°Ó2ˆDÜ�$‹x×#Ò#Ø—>’>Ø ŸI™I b›M˜>Ð)Ü�D“×%Ò%Ø—>’>ØœR™4 $§)¡)¨B£-Ñ/Ð/à—|‘|¤CÓ(×>Ñ>¸qÀtÐRVÐ>ÓW×^Ñ^Ó`Ð`Ø�y‰y˜‹}Ðr6   c                ó  •— ddl m} | j                  d   j                  |d«      }|t        j
                  u �r-t        dd¬«      }t        t        j
                  |dz  z   «      j                  t        «      j                  |dd|z  «      }t        j                  | j                  d   z   }	|	j                  |«      }
|	|
z
  |
z  }t        t        j
                  |z   «      j                  |||¬«      }|j                  «       t        |
«      z  j!                  «       }|j                  «       j                  ||«      j!                  «       j#                  «        |||z  |«      z   S |t        j                  u �r-t        dd¬«      }t        t        j                  |dz  z
  «      j                  t        «      j                  |dd|z  «      }t        j                  | j                  d   z
  }	|	j                  |«      }
|	|
z
  |
z  }t        t        j
                  |z   «      j                  |||¬«      }|j                  «       t        |
«      z  j!                  «       }|j                  «       j                  ||«      j!                  «       j#                  «        |||z  |«      z   S t$        ‰| �9  |||¬«      }|t        j&                  u r|S |j(                  r²d|dz  z
  j*                  r | j                  d   j-                  ||r|nd«      }t/        |«      j0                  r|j*                  r| S |S t/        |«      j*                  r|j0                  rdt2        z  |z
  S |S | j                  t        «      j                  ||||¬	«      S |S ©
Nr   r­  r4  Tr¯  r‚   r½  r�   rO  )r±  r®  r<   rä   r   r�   r   rÍ   rï   r"   r²  rÅ   rJ  r%   ræ   r´  rT   rµ  rå   ro   rö  r™  rG  r    rL  r   r¶  s                  €r4   ræ   zasec._eval_nseriesi  së  ø€ Ý(Ø�y‰y˜‰|× Ñ   AÓ&ˆà”1—5‘5Š=Ü�c DÔ)ˆAÜ”q—u‘u˜q !™t‘|Ó$×,Ñ,¬SÓ1×9Ñ9¸!¸QÀÀ!ÁÓDˆCÜ—=‘= 4§9¡9¨Q¡<Ñ/ˆDØ×$Ñ$ QÓ'ˆAØ˜‘˜A‘ˆAÜœŸ™ ™	“?×0Ñ0°°a¸dÐ0ÓCˆDØ—<‘<“>¤$ q£'Ñ)×1Ñ1Ó3ˆCØ—;‘;“=×%Ñ% a¨Ó-×4Ñ4Ó6×>Ñ>Ó@Á1ÀQÈÁTÈ1Ã:ÑMÐMà”1—=‘=Ò Ü�c DÔ)ˆAÜ”q—}‘} q¨!¡tÑ+Ó,×4Ñ4´SÓ9×AÑAÀ!ÀQÈÈ!ÉÓLˆCÜ—=‘= 4§9¡9¨Q¡<Ñ/ˆDØ×$Ñ$ QÓ'ˆAØ˜‘˜A‘ˆAÜœŸ™ ™	“?×0Ñ0°°a¸dÐ0ÓCˆDØ—<‘<“>¤$ q£'Ñ)×1Ñ1Ó3ˆCØ—;‘;“=×%Ñ% a¨Ó-×4Ñ4Ó6×>Ñ>Ó@Á1ÀQÈÁTÈ1Ã:ÑMÐMä‰gÑ# A¨°Ð#Ó6ˆØ”1×$Ñ$Ñ$ØˆJà�<Š<˜Q  q¡™[×5Ò5Ø—9‘9˜Q‘<×#Ñ# A©t¡t¸Ó;ˆDÜ�$‹x×#Ò#Ø×#Ò#Ø˜4�Kð ˆ
ô �D“×%Ò%Ø×#Ò#ØœR™4 #™:Ð%ð ˆ
ð —|‘|¤CÓ(×6Ñ6°q¸!À$ÈTÐ6ÓRÐRØˆ
r6   c                óŽ   — | j                   d   }|j                  du ryt        |dz
  j                  | dz
  j                  f«      S rñ  )r<   rS   r   rÑ  rÒ  s     r4   rU  zasec._eval_is_extended_real‘  sF   € Ø�I‰I�a‰LˆØ×Ñ Ñ&ØÜ˜!˜a™%×/Ñ/°1°"°q±&×1HÑ1HÐIÓJÐJr6   c                óš   — t         dz  t        j                  t        t        j                  |z  t	        dd|dz  z  z
  «      z   «      z  z   S r  ræ  rý   s      r4   rÄ  zasec._eval_rewrite_as_log—  s?   € Ü�!‰t”a—o‘o¤c¬!¯/©/¸#Ñ*=ÄÀQÈÈ3ÐPQÉ6ÉÁ\Ó@RÑ*RÓ&SÑSÑSÐSr6   c                ó2   — t         dz  t        d|z  «      z
  S r  rè  rý   s      r4   ré  zasec._eval_rewrite_as_asinœ  rÊ  r6   c                ó   — t        d|z  «      S r  )rÊ   rý   s      r4   r¾  zasec._eval_rewrite_as_acosŸ  rÍ  r6   c                ó~   — t        |dz  «      |z  }t        dz  d|z
  z  |t        t        |dz  dz
  «      «      z  z   S r  ©r%   r   rÈ   ©r@   r™   rð   Úsx2xs       r4   rÁ  zasec._eval_rewrite_as_atan¢  s@   € Ü�A�q‘D‹z˜!‰|ˆÜ�!‰t�Q˜‘X‰ ¤d¬4°°1±°q±«>Ó&:Ñ!:Ñ:Ð:r6   c           	     ó„   — t        |dz  «      |z  }t        dz  d|z
  z  |t        dt        |dz  dz
  «      z  «      z  z   S r  ©r%   r   rË   r:  s       r4   rÆ  zasec._eval_rewrite_as_acot¦  sE   € Ü�A�q‘D‹z˜!‰|ˆÜ�!‰t�Q˜‘X‰ ¤d¨1¬T°!°Q±$¸±(«^Ñ+;Ó&<Ñ!<Ñ<Ð<r6   c                ó,   — t         dz  t        |«      z
  S r¢   rï  rý   s      r4   rÌ  zasec._eval_rewrite_as_acscª  ó   € Ü�!‰t”d˜3“iÑÐr6   re  rf  )rj   rk   rl   rm   rg  rÔ   r¬   r¯  rh  r   rÝ   rQ  ræ   rU  rÄ  rÖ  ré  r¾  rÁ  rÆ  rÌ  ri  rj  s   @r4   rÍ   rÍ   Ç  s|   ø„ ñ9ðv ñ.)ó ð.)ó`5óð Øñ;ó ó ð;ò õ.&òPKòTð "6Ðò"òò;ò=ö r6   rÍ   c                  óŒ   ‡ — e Zd ZdZed„ «       Zdd„Zdd„Zee	d„ «       «       Z
d„ Zdˆ fd„	Zd„ ZeZd	„ Zd
„ Zd„ Zd„ Zd„ Zˆ xZS )rÌ   aV  
    The inverse cosecant function.

    Returns the arc cosecant of x (measured in radians).

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

    ``acsc(x)`` will evaluate automatically in the cases
    $x \in \{\infty, -\infty, 0, 1, -1\}$` and for some instances when the
    result is a rational multiple of $\pi$ (see the ``eval`` class method).

    Examples
    ========

    >>> from sympy import acsc, oo
    >>> acsc(1)
    pi/2
    >>> acsc(-1)
    -pi/2
    >>> acsc(oo)
    0
    >>> acsc(-oo) == acsc(oo)
    True
    >>> acsc(0)
    zoo

    See Also
    ========

    sin, csc, cos, sec, tan, cot
    asin, acos, asec, atan, acot, atan2

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Inverse_trigonometric_functions
    .. [2] https://dlmf.nist.gov/4.23
    .. [3] https://functions.wolfram.com/ElementaryFunctions/ArcCsc

    c                ó®  — |j                   rt        j                  S |j                  rY|t        j                  u rt        j                  S |t        j
                  u r	t        dz  S |t        j                  u r
t         dz  S |t        j                  t        j                  t        j                  fv rt        j                  S |j                  «       r
 | | «       S |j                  rt        j                  S |j                  r| j                  «       }||v r||   S t        |t         «      rg|j"                  d   }|j$                  rL|dt        z  z  }|t        kD  r	t        |z
  }|t        dz  kD  r	t        |z
  }|t         dz  k  r
t         |z
  }|S t        |t&        «      r1|j"                  d   }|j$                  rt        dz  t)        |«      z
  S y y )Nr‚   r   )r>   r   ro   r¹   rº   r�   r   rÅ   r»   r¼   rU   rÃ   rƒ  r   r�  r1   r  r<   r¡  r  rÍ   )rÎ   r   r+  r£  s       r4   rÔ   z	acsc.evalÙ  s  € à�;Š;Ü×$Ñ$Ð$Ø�=Š=Ø”a—e‘e‰|Ü—u‘u�ØœŸ™‘Ü˜!‘t�ØœŸ™Ñ%Ü�s˜1‘u�Ø”1—:‘:œq×1Ñ1´1×3DÑ3DÐEÑEÜ—6‘6ˆMà×'Ñ'Ô)Ù˜˜“I�:Ðà�?Š?Ü—6‘6ˆMà�=Š=ØŸ™Ó*ˆJØ�jÑ Ø! #‘Ð&ä�cœ3ÔØ—(‘(˜1‘+ˆCØ× Ò Ø�qœ‘t‘�Øœ’8Ü˜s™(�Cð œ˜A™’:Ü˜s™(�CØœ"˜˜Q™’;Ü˜# ™)�Cà�
ä�cœ3ÔØ—(‘(˜1‘+ˆCØ× Ò Ü˜!‘tœd 3›iÑ'Ð'ð !ð  r6   c                ó’   — |dk(  r7d| j                   d   dz  t        dd| j                   d   dz  z  z
  «      z  z  S t        | |«      ‚rÙ  r-  rª   s     r4   r¬   z
acsc.fdiff  sM   € Ø�qŠ=Ø�t—y‘y ‘| Q‘¤t¨A°°$·)±)¸A±,À±/Ñ0AÑ,AÓ'BÑBÑCÐCä$ T¨8Ó4Ð4r6   c                ó   — t         S r­  r  rª   s     r4   r¯  zacsc.inverse  rÕ  r6   c                ó  — | dk(  rCt         dz  t        j                  t        d«      z  z
  t        j                  t        |«      z  z   S | dk  s| dz  dk(  rt        j                  S t        |«      }t        |«      dkD  r*| dkD  r%|d   }|| dz
  | dz
  z  z  |dz  z  d| dz  dz  z  z  S | dz  }t        t        j                  |«      | z  }t        |«      | z  dz  | z  dz  }t        j                  |z  |z  || z  z  dz  S r0  )
r   r   r3   r"   rU   r   rÙ   r   r†   r   r¥  s          r4   rÝ   zacsc.taylor_term  s  € ð �Š6Ü�a‘4œ!Ÿ/™/¬#¨a«&Ñ0Ñ0´1·?±?Ä3ÀqÃ6Ñ3IÑIÐIØ�ŠU�a˜!‘e˜q’jÜ—6‘6ˆMä˜“
ˆAÜ�>Ó" QÒ&¨1¨qª5Ø" 2Ñ&�Ø˜Q ™U Q q¡S™MÑ*¨Q°©TÑ1°1¸¸1¹¸q±y±=ÑAÐAà˜‘F�Ü#¤A§F¡F¨AÓ.°!Ñ3�Ü˜a“L 1Ñ$¨Ñ)¨AÑ-°Ñ2�Ü—‘¨Ñ*¨QÑ.°°A±Ñ5¸Ñ9Ð9r6   c                ó¸  — | j                   d   }|j                  |d«      j                  «       }|t        j                  u r | j                  |j                  |«      «      S |t        j                   t        j                  t        j                  fv r5| j                  t        «      j                  |||¬«      j                  «       S |t        j                  u rd|z  j                  |«      S |j                  rÐd|dz  z
  j                  r¾|j!                  ||r|nd«      }t#        |«      j$                  r$|j                  r‡t&        | j                  |«      z
  S t#        |«      j                  r%|j$                  rNt&         | j                  |«      z
  S | j                  t        «      j                  |||¬«      j                  «       S | j                  |«      S r¨  )r<   rä   rI  r   rº   r;   rJ  r�   rU   rï   r"   rQ  rT   ro   rö  r™  rG  r    rL  r   r©  s          r4   rQ  zacsc._eval_as_leading_term$  sj  € Ø�i‰i˜‰lˆØ�X‰X�a˜‹^×"Ñ"Ó$ˆØ”—‘‰;Ø—9‘9˜S×0Ñ0°Ó3Ó4Ð4à”1—5‘5�&œ!Ÿ%™%¤§¡Ð(Ñ(Ø—<‘<¤Ó$×:Ñ:¸1À4ÈdÐ:ÓS×ZÑZÓ\Ð\Ø”×"Ñ"Ñ"Ø�c‘E×*Ñ*¨1Ó-Ð-à�:Š:˜1˜r 1™u™9×1Ò1Ø—7‘7˜1¡d™d°Ó2ˆDÜ�$‹x×#Ò#Ø—>’>Ü §	¡	¨"£Ñ-Ð-Ü�D“×%Ò%Ø—>’>Ü˜3 §¡¨2£Ñ.Ð.à—|‘|¤CÓ(×>Ñ>¸qÀtÐRVÐ>ÓW×^Ñ^Ó`Ð`Ø�y‰y˜‹}Ðr6   c                ó"  •— ddl m} | j                  d   j                  |d«      }|t        j
                  u �r-t        dd¬«      }t        t        j
                  |dz  z   «      j                  t        «      j                  |dd|z  «      }t        j                  | j                  d   z   }	|	j                  |«      }
|	|
z
  |
z  }t        t        j
                  |z   «      j                  |||¬«      }|j                  «       t        |
«      z  j!                  «       }|j                  «       j                  ||«      j!                  «       j#                  «        |||z  |«      z   S |t        j                  u �r-t        dd¬«      }t        t        j                  |dz  z
  «      j                  t        «      j                  |dd|z  «      }t        j                  | j                  d   z
  }	|	j                  |«      }
|	|
z
  |
z  }t        t        j
                  |z   «      j                  |||¬«      }|j                  «       t        |
«      z  j!                  «       }|j                  «       j                  ||«      j!                  «       j#                  «        |||z  |«      z   S t$        ‰| �9  |||¬«      }|t        j&                  u r|S |j(                  r¶d|dz  z
  j*                  r¤| j                  d   j-                  ||r|nd«      }t/        |«      j0                  r|j*                  r	t2        |z
  S |S t/        |«      j*                  r|j0                  r
t2         |z
  S |S | j                  t        «      j                  ||||¬	«      S |S r3  )r±  r®  r<   rä   r   r�   r   rÌ   rï   r"   r²  rÅ   rJ  r%   ræ   r´  rT   rµ  rå   ro   rö  r™  rG  r    rL  r   r¶  s                  €r4   ræ   zacsc._eval_nseries;  së  ø€ Ý(Ø�y‰y˜‰|× Ñ   AÓ&ˆà”1—5‘5Š=Ü�c DÔ)ˆAÜ”q—u‘u˜q !™t‘|Ó$×,Ñ,¬SÓ1×9Ñ9¸!¸QÀÀ!ÁÓDˆCÜ—=‘= 4§9¡9¨Q¡<Ñ/ˆDØ×$Ñ$ QÓ'ˆAØ˜‘˜A‘ˆAÜœŸ™ ™	“?×0Ñ0°°a¸dÐ0ÓCˆDØ—<‘<“>¤$ q£'Ñ)×1Ñ1Ó3ˆCØ—;‘;“=×%Ñ% a¨Ó-×4Ñ4Ó6×>Ñ>Ó@Á1ÀQÈÁTÈ1Ã:ÑMÐMà”1—=‘=Ò Ü�c DÔ)ˆAÜ”q—}‘} q¨!¡tÑ+Ó,×4Ñ4´SÓ9×AÑAÀ!ÀQÈÈ!ÉÓLˆCÜ—=‘= 4§9¡9¨Q¡<Ñ/ˆDØ×$Ñ$ QÓ'ˆAØ˜‘˜A‘ˆAÜœŸ™ ™	“?×0Ñ0°°a¸dÐ0ÓCˆDØ—<‘<“>¤$ q£'Ñ)×1Ñ1Ó3ˆCØ—;‘;“=×%Ñ% a¨Ó-×4Ñ4Ó6×>Ñ>Ó@Á1ÀQÈÁTÈ1Ã:ÑMÐMä‰gÑ# A¨°Ð#Ó6ˆØ”1×$Ñ$Ñ$ØˆJà�<Š<˜Q  q¡™[×5Ò5Ø—9‘9˜Q‘<×#Ñ# A©t¡t¸Ó;ˆDÜ�$‹x×#Ò#Ø×#Ò#Ü ™8�Oð ˆ
ô �D“×%Ò%Ø×#Ò#Ü˜3 ™9Ð$ð ˆ
ð —|‘|¤CÓ(×6Ñ6°q¸!À$ÈTÐ6ÓRÐRØˆ
r6   c           
     óˆ   — t         j                   t        t         j                  |z  t        dd|dz  z  z
  «      z   «      z  S r«  rÃ  rý   s      r4   rÄ  zacsc._eval_rewrite_as_logc  s8   € Ü—‘Ð¤¤A§O¡O°CÑ$7¼$¸qÀ1ÀSÈ!ÁVÁ8¹|Ó:LÑ$LÓ MÑMÐMr6   c                ó   — t        d|z  «      S r  )rÇ   rý   s      r4   ré  zacsc._eval_rewrite_as_asinh  rÍ  r6   c                ó2   — t         dz  t        d|z  «      z
  S r  r½  rý   s      r4   r¾  zacsc._eval_rewrite_as_acosk  rÊ  r6   c                ón   — t        |dz  «      |z  t        dz  t        t        |dz  dz
  «      «      z
  z  S r  r9  r×  s      r4   rÁ  zacsc._eval_rewrite_as_atann  s3   € Ü�A�q‘D‹z˜!‰|œR ™T¤D¬¨a°©d°Q©h«Ó$8Ñ8Ñ9Ð9r6   c           	     ót   — t        |dz  «      |z  t        dz  t        dt        |dz  dz
  «      z  «      z
  z  S r  r=  rý   s      r4   rÆ  zacsc._eval_rewrite_as_acotq  s:   € Ü�C˜‘F‹|˜CÑ¤ A¡¬¨Q¬t°C¸±F¸Q±JÓ/?Ñ-?Ó(@Ñ!@ÑAÐAr6   c                ó,   — t         dz  t        |«      z
  S r¢   rÈ  rý   s      r4   rÉ  zacsc._eval_rewrite_as_asect  r?  r6   re  rf  )rj   rk   rl   rm   rg  rÔ   r¬   r¯  rh  r   rÝ   rQ  ræ   rÄ  rÖ  ré  r¾  rÁ  rÆ  rÉ  ri  rj  s   @r4   rÌ   rÌ   ®  sw   ø„ ñ(ðT ñ*(ó ð*(óX5óð Øñ:ó ó ð:ò õ.&òPNð "6Ðòò"ò:òBö r6   rÌ   c                  óV   ‡ — e Zd ZdZed„ «       Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zˆ fd	„Zˆ xZS )
rÉ   aÖ
  
    The function ``atan2(y, x)`` computes `\operatorname{atan}(y/x)` taking
    two arguments `y` and `x`.  Signs of both `y` and `x` are considered to
    determine the appropriate quadrant of `\operatorname{atan}(y/x)`.
    The range is `(-\pi, \pi]`. The complete definition reads as follows:

    .. math::

        \operatorname{atan2}(y, x) =
        \begin{cases}
          \arctan\left(\frac y x\right) & \qquad x > 0 \\
          \arctan\left(\frac y x\right) + \pi& \qquad y \ge 0, x < 0 \\
          \arctan\left(\frac y x\right) - \pi& \qquad y < 0, x < 0 \\
          +\frac{\pi}{2} & \qquad y > 0, x = 0 \\
          -\frac{\pi}{2} & \qquad y < 0, x = 0 \\
          \text{undefined} & \qquad y = 0, x = 0
        \end{cases}

    Attention: Note the role reversal of both arguments. The `y`-coordinate
    is the first argument and the `x`-coordinate the second.

    If either `x` or `y` is complex:

    .. math::

        \operatorname{atan2}(y, x) =
            -i\log\left(\frac{x + iy}{\sqrt{x^2 + y^2}}\right)

    Examples
    ========

    Going counter-clock wise around the origin we find the
    following angles:

    >>> from sympy import atan2
    >>> atan2(0, 1)
    0
    >>> atan2(1, 1)
    pi/4
    >>> atan2(1, 0)
    pi/2
    >>> atan2(1, -1)
    3*pi/4
    >>> atan2(0, -1)
    pi
    >>> atan2(-1, -1)
    -3*pi/4
    >>> atan2(-1, 0)
    -pi/2
    >>> atan2(-1, 1)
    -pi/4

    which are all correct. Compare this to the results of the ordinary
    `\operatorname{atan}` function for the point `(x, y) = (-1, 1)`

    >>> from sympy import atan, S
    >>> atan(S(1)/-1)
    -pi/4
    >>> atan2(1, -1)
    3*pi/4

    where only the `\operatorname{atan2}` function returns what we expect.
    We can differentiate the function with respect to both arguments:

    >>> from sympy import diff
    >>> from sympy.abc import x, y
    >>> diff(atan2(y, x), x)
    -y/(x**2 + y**2)

    >>> diff(atan2(y, x), y)
    x/(x**2 + y**2)

    We can express the `\operatorname{atan2}` function in terms of
    complex logarithms:

    >>> from sympy import log
    >>> atan2(y, x).rewrite(log)
    -I*log((x + I*y)/sqrt(x**2 + y**2))

    and in terms of `\operatorname(atan)`:

    >>> from sympy import atan
    >>> atan2(y, x).rewrite(atan)
    Piecewise((2*atan(y/(x + sqrt(x**2 + y**2))), Ne(y, 0)), (pi, re(x) < 0), (0, Ne(x, 0)), (nan, True))

    but note that this form is undefined on the negative real axis.

    See Also
    ========

    sin, csc, cos, sec, tan, cot
    asin, acsc, acos, asec, atan, acot

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Inverse_trigonometric_functions
    .. [2] https://en.wikipedia.org/wiki/Atan2
    .. [3] https://functions.wolfram.com/ElementaryFunctions/ArcTan2

    c           	     óÎ  — ddl m} |t        j                  u r4|j                  rt
        S dt
        z   |t        |«      «      z  t
        z
  S |t        j                  u rt        j                  S |j                  r:|j                  r.|j                  r"|j                  rt        |«      }t        |«      }|j                  rÇ|j                  r»|j                  rt        ||z  «      S |j                  rB|j                  rt        ||z  «      t
        z
  S |j                   rht        ||z  «      t
        z   S |j                  rG|j                  r	t
        dz  S |j                  r
t
         dz  S |j                  rt        j"                  S |j                  rs|j$                  r t
        t        j&                   ||«      z
  z  S |j                  r;t)        t
        t        |«      dk  fdt+        |d«      ft        j"                  df«      S |j                  rS|j                  rFt        j,                   t/        |t        j,                  |z  z   t1        |dz  |dz  z   «      z  «      z  S y y )Nr   )Ú	Heavisider‚   T)Ú'sympy.functions.special.delta_functionsrO  r   r¼   r>   r   r!   r»   rU   rù  r   r    rS   r™  rÈ   rL  rÑ  rº   Úis_extended_nonzeror�   r(   r   r3   r"   r%   )rÎ   rÓ   r™   rO  s       r4   rÔ   z
atan2.evalß  sÏ  € åEØ”×"Ñ"Ñ"Ø�yŠyä�	Ø”R‘4™¤2 a£5Ó)Ñ*¬RÑ/Ð/Ø”!—*‘*‰_Ü—6‘6ˆMØ�^Š^ §¢°1·;²;À1Ç;Â;Ü�1“ˆAÜ�1“ˆAà×Ò !×"4Ò"4Ø�}Š}Ü˜A˜a™C“yÐ Ø—’Ø—=’=Ü  !¡›9¤r™>Ð)Ø×%Ò%Ü  !¡›9¤r™>Ð)Ø—’Ø—=’=Ü˜a™4�KØ—]’]Ü˜3˜q™5�LØ—Y’YÜŸ5™5�LØ�9Š9Ø×$Ò$Üœ1Ÿ5™5¡9¨Q£<Ñ/Ñ0Ð0Ø�{Š{Ü ¤"¤b¨£e¨a¡i Ø"#¤R¨¨1£X Ü"#§%¡%¨ ó0ð 0ð �;Š;˜1Ÿ;š;Ü—O‘OÐ#¤CØ”Q—_‘_ QÑ&Ñ&¬¨Q°©T°A°q±D©[Ó(9Ñ9ó%;ñ ;ð ;ð 'ˆ;r6   c           	     óŽ   — t         j                   t        |t         j                  |z  z   t        |dz  |dz  z   «      z  «      z  S r¢   rÃ  ©r@   rÓ   r™   rð   s       r4   rÄ  zatan2._eval_rewrite_as_log  s=   € Ü—‘Ð¤ Q¬¯©¸Ñ):Ñ%:¼DÀÀAÁÈÈ1ÉÁÓ<MÑ$MÓ NÑNÐNr6   c                óÚ   — t        dt        ||t        |dz  |dz  z   «      z   z  «      z  t        |d«      ft        t        |«      dk  fdt        |d«      ft        j                  df«      S )Nr‚   r   T)r(   rÈ   r%   r   r   r!   r   rº   rS  s       r4   rÁ  zatan2._eval_rewrite_as_atan
  sh   € Ü˜!œD  A¬¨Q°©T°A°q±D©[Ó(9Ñ$9Ñ!:Ó;Ñ;¼RÀÀ1»XÐFÜœb ›e a™i˜ØœR  1›X˜ÜŸ%™% ˜ó(ð 	(r6   c           
     óV  — |j                   r+|j                   rt        ||t        j                  z  z   «      S |t        j                  |z  z   }|dz  |dz  z   }t        |t	        |«      z  «      t        j                  t        t        |«      t	        t        |«      «      z  «      z  z
  S r¢   )rS   Úarg_fr   r3   r%   r"   r^   )r@   rÓ   r™   rð   rÛ   rÏ   s         r4   Ú_eval_rewrite_as_argzatan2._eval_rewrite_as_arg  s‡   € Ø×Ò !×"4Ò"4Ü˜˜QœqŸ™Ñ.Ñ.Ó/Ð/Ø”—‘ Ñ!Ñ!ˆØˆq‰D�1�a‘4‰KˆÜ�Q”t˜A“w‘YÓ¤!§/¡/´#´c¸!³f¼TÄ#ÀaÃ&»\Ñ6IÓ2JÑ"JÑJÐJr6   c                ój   — | j                   d   j                  xr | j                   d   j                  S rÏ  rT  r.  s    r4   rU  zatan2._eval_is_extended_real  s)   € Ø�y‰y˜‰|×,Ñ,ÒN°·±¸1±×1NÑ1NÐNr6   c                ó’   — | j                  | j                  d   j                  «       | j                  d   j                  «       «      S rÏ  r,  r.  s    r4   r/  zatan2._eval_conjugate  s5   € Ø�y‰y˜Ÿ™ 1™×/Ñ/Ó1°4·9±9¸Q±<×3IÑ3IÓ3KÓLÐLr6   c                ó†   — | j                   \  }}|dk(  r||dz  |dz  z   z  S |dk(  r| |dz  |dz  z   z  S t        | |«      ‚r«  rö  )r@   r«   rÓ   r™   s       r4   r¬   zatan2.fdiff  sY   € Ø�y‰y‰ˆˆ1Ø�qŠ=à�a˜‘d˜Q ™T‘k‘?Ð"Ø˜Š]à�2�q˜!‘t˜a ™d‘{Ñ#Ð#ä$ T¨8Ó4Ð4r6   c                ót   •— | j                   \  }}|j                  r|j                  rt        ‰| �  |«      S y y ri   )r<   rS   rå   Ú_eval_evalf)r@   ÚprecrÓ   r™   rè   s       €r4   r\  zatan2._eval_evalf(  s9   ø€ Ø�y‰y‰ˆˆ1Ø×Ò !×"4Ò"4Ü‘7Ñ& tÓ,Ð,ð #5Ðr6   )rj   rk   rl   rm   rg  rÔ   rÄ  rÁ  rW  rU  r/  r¬   r\  ri  rj  s   @r4   rÉ   rÉ   x  sK   ø„ ñdðL ñ%;ó ð%;òNOò(òKòOòMò	5÷-ð -r6   rÉ   Nre  )r   r   r–   r“   ÚreturnzExpr | None)[Ú
__future__r   Úsympy.core.addr   Úsympy.core.cacher   Úsympy.core.exprr   Úsympy.core.functionr   r   r	   r
   Úsympy.core.logicr   r   r   r   Úsympy.core.modr   Úsympy.core.numbersr   r   r   r   r   Úsympy.core.relationalr   r   Úsympy.core.singletonr   Úsympy.core.symbolr   r   Úsympy.core.sympifyr   Ú(sympy.functions.combinatorial.factorialsr   r   Ú%sympy.functions.combinatorial.numbersr   r   rñ  r   rV  r    r!   Ú&sympy.functions.elementary.exponentialr"   r#   Ú#sympy.functions.elementary.integersr$   Ú(sympy.functions.elementary.miscellaneousr%   r&   r'   Ú$sympy.functions.elementary.piecewiser(   Ú1sympy.functions.elementary._trigonometric_specialr)   r*   r+   Úsympy.logic.boolalgr,   Úsympy.ntheoryr-   Úsympy.polys.specialpolysr.   Úsympy.utilities.iterablesr/   r5   r8   r€   r�   rF   r    r©   r  r  r(  r  r  r!  r‡  rÇ   rÊ   rÈ   rË   rÍ   rÌ   rÉ   rK   r6   r4   ú<module>rv     s�  ðÝ "Ý Ý $Ý  ß ZÓ Zß FÓ FÝ ß IÕ Iß (Ý "ß +Ý &ß Oß Bß EÑ Eß ;Ý 5ß CÑ CÝ :÷)ñ )å #Ý #Ý 3Ý 6ò3ôAK˜Oô AKðH 	ñó 	ðò""ôJHôVsÐ
ô sôl	g1Ð
ô g1ôTQÐ
ô Qôh
zÐ
ô zôz	uOÐ&;ô uOôpi7Ð
)ô i7ôXf7Ð
)ô f7ôRt$ˆ?ô t$ôxN
 ?ô N
ôbfÐ'ô fôRnÐ'ô nôbR@Ð'ô R@ôjWKÐ'ô WKôtd Ð'ô d ôNG Ð'ô G ôTs-Ð(õ s-r6   