Ë
    7^(hÄ6 ã                   ó  — d 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
 ddlmZ ddlmZmZmZmZ ddlmZ dd	lmZ dd
lmZ ddlmZmZ ddlmZ ddlmZmZm Z  ddl!m"Z"m#Z#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l2m3Z3m4Z4m5Z5 ddl6m7Z7m8Z8 dBd„Z9 G d„ de«      Z: G d„ de«      Z; G d„ de«      Z< G d„ de«      Z= G d„ de«      Z> G d „ d!e«      Z? G d"„ d#e«      Z@ G d$„ d%e«      ZA G d&„ d'e«      ZBd(„ ZC G d)„ d*e«      ZD G d+„ d,e«      ZE G d-„ d.e«      ZF G d/„ d0eF«      ZG G d1„ d2eF«      ZH G d3„ d4eF«      ZI G d5„ d6eF«      ZJ G d7„ d8e«      ZK G d9„ d:eK«      ZL G d;„ d<eK«      ZM G d=„ d>e«      ZN G d?„ d@e«      ZOyA)Cz� This module contains various functions that are special cases
    of incomplete gamma functions. It should probably be renamed. é    )Ú
EulerGamma)ÚAdd)Úcacheit)ÚDefinedFunctionÚArgumentIndexErrorÚ
expand_mul)Úfuzzy_or)ÚIÚpiÚRationalÚInteger)Úis_eq)ÚPow)ÚS)ÚDummyÚuniquely_named_symbol)Úsympify)Ú	factorialÚ
factorial2ÚRisingFactorial)Ú
polar_liftÚreÚ
unpolarify)ÚceilingÚfloor)ÚsqrtÚroot)ÚexpÚlogÚ	exp_polar)ÚcoshÚsinh)ÚcosÚsinÚsinc)ÚhyperÚmeijergc                 óR  — | j                   d   j                  r<|r(d|d<    | j                  |fi |¤Žt        j                  fS | t        j                  fS |r2 | j                   d   j                  |fi |¤Žj                  «       \  }}n | j                   d   j                  «       \  }}| j                  |t        |z  z   «      | j                  |t        |z  z
  «      z   dz  }| j                  |t        |z  z   «      | j                  |t        |z  z
  «      z
  dt        z  z  }||fS )Nr   FÚcomplexé   )ÚargsÚis_extended_realÚexpandr   ÚZeroÚas_real_imagÚfuncr
   )ÚselfÚdeepÚhintsÚxÚyr   Úims          úe/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/functions/special/error_functions.pyÚreal_to_real_as_real_imagr8      s  € Ø‡y�y��|×$Ò$ÙØ$ˆE�)ÑØ�D—K‘K Ñ.¨Ñ.´·±Ð7Ð7àœ!Ÿ&™&�>Ð!ÙØ"ˆt�y‰y˜‰|×"Ñ" 4Ñ1¨5Ñ1×>Ñ>Ó@‰ˆ‰1à�y‰y˜‰|×(Ñ(Ó*‰ˆˆ1Ø
�)‰)�Aœ˜!™‘GÓ
˜tŸy™y¨¬Q¨q©S©Ó1Ñ
1°1Ñ	4€BØ
�)‰)�Aœ˜!™‘GÓ
˜tŸy™y¨¬Q¨q©S©Ó1Ñ
1°A´a±CÑ	8€BØ�ˆ8€Oó    c                   óÌ   ‡ — e Zd ZdZdZdd„Zdd„Zed„ «       Ze	e
d„ «       «       Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zdd„Zd„ Zd„ Zd„ Zˆ fd„ZeZˆ xZ S )Úerfa.  
    The Gauss error function.

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

    This function is defined as:

    .. math ::
        \mathrm{erf}(x) = \frac{2}{\sqrt{\pi}} \int_0^x e^{-t^2} \mathrm{d}t.

    Examples
    ========

    >>> from sympy import I, oo, erf
    >>> from sympy.abc import z

    Several special values are known:

    >>> erf(0)
    0
    >>> erf(oo)
    1
    >>> erf(-oo)
    -1
    >>> erf(I*oo)
    oo*I
    >>> erf(-I*oo)
    -oo*I

    In general one can pull out factors of -1 and $I$ from the argument:

    >>> erf(-z)
    -erf(z)

    The error function obeys the mirror symmetry:

    >>> from sympy import conjugate
    >>> conjugate(erf(z))
    erf(conjugate(z))

    Differentiation with respect to $z$ is supported:

    >>> from sympy import diff
    >>> diff(erf(z), z)
    2*exp(-z**2)/sqrt(pi)

    We can numerically evaluate the error function to arbitrary precision
    on the whole complex plane:

    >>> erf(4).evalf(30)
    0.999999984582742099719981147840

    >>> erf(-4*I).evalf(30)
    -1296959.73071763923152794095062*I

    See Also
    ========

    erfc: Complementary error function.
    erfi: Imaginary error function.
    erf2: Two-argument error function.
    erfinv: Inverse error function.
    erfcinv: Inverse Complementary error function.
    erf2inv: Inverse two-argument error function.

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Error_function
    .. [2] https://dlmf.nist.gov/7
    .. [3] https://mathworld.wolfram.com/Erf.html
    .. [4] https://functions.wolfram.com/GammaBetaErf/Erf

    Tc                 ó‚   — |dk(  r/dt        | j                  d   dz   «      z  t        t        «      z  S t	        | |«      ‚©Né   r*   r   ©r   r+   r   r   r   ©r1   Úargindexs     r7   Úfdiffz	erf.fdiff€   s>   € Ø�qŠ=Ø”S˜$Ÿ)™) A™,¨™/Ð)Ó*Ñ*¬4´«8Ñ3Ð3ä$ T¨8Ó4Ð4r9   c                 ó   — t         S ©z8
        Returns the inverse of this function.

        ©Úerfinvr@   s     r7   Úinversezerf.inverse‡   s	   € ô
 ˆr9   c                 ó  — |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        j                  S t        |t        «      r|j                  d   S t        |t        «      r t        j                  |j                  d   z
  S |j                  rt        j                  S t        |t        «      r(|j                  d   j                  r|j                  d   S |j                  t        «      }|t        j                  t        j
                  fv r|S |j!                  «       r
 | | «       S y ©Nr   r>   )Ú	is_Numberr   ÚNaNÚInfinityÚOneÚNegativeInfinityÚNegativeOneÚis_zeror.   Ú
isinstancerF   r+   ÚerfcinvÚerf2invÚextract_multiplicativelyr
   Úcould_extract_minus_sign©ÚclsÚargÚts      r7   Úevalzerf.evalŽ   s  € à�=Š=Ø”a—e‘e‰|Ü—u‘u�ØœŸ
™
Ñ"Ü—u‘u�Øœ×*Ñ*Ñ*Ü—}‘}Ð$Ø—’Ü—v‘v�ä�cœ6Ô"Ø—8‘8˜A‘;Ðä�cœ7Ô#Ü—5‘5˜3Ÿ8™8 A™;Ñ&Ð&à�;Š;Ü—6‘6ˆMô �cœ7Ô#¨¯©°©×(;Ò(;Ø—8‘8˜A‘;Ðð ×(Ñ(¬Ó+ˆØ”—‘œQ×/Ñ/Ð0Ñ0ØˆJð ×'Ñ'Ô)Ù˜˜“I�:Ðð *r9   c                 óH  — | dk  s| dz  dk(  rt         j                  S t        |«      }t        | dz
  t        d«      z  «      }t	        |«      dkD  r|d    |dz  z  | dz
  z  | |z  z  S dt         j
                  |z  z  || z  z  | t        |«      z  t        t        «      z  z  S ©Nr   r*   r>   éþÿÿÿ)	r   r.   r   r   ÚlenrO   r   r   r   ©Únr4   Úprevious_termsÚks       r7   Útaylor_termzerf.taylor_term°   s¦   € ð ˆqŠ5�A˜‘E˜Q’JÜ—6‘6ˆMä˜“
ˆAÜ�q˜1‘uœa ›d‘lÓ#ˆAÜ�>Ó" QÒ&Ø& rÑ*Ð*¨Q°©TÑ1°Q¸±UÑ;¸Q¸q¹SÑAÐAàœŸ™¨Ñ)Ñ)¨A¨q©DÑ0°!´I¸a³L±.ÄÄbÃÑ2IÑJÐJr9   c                 óZ   — | j                  | j                  d   j                  «       «      S ©Nr   ©r0   r+   Ú	conjugate©r1   s    r7   Ú_eval_conjugatezerf._eval_conjugate½   ó"   € Ø�y‰y˜Ÿ™ 1™×/Ñ/Ó1Ó2Ð2r9   c                 ó<   — | j                   d   j                  du ryy ©Nr   T©r+   r,   rh   s    r7   Ú_eval_is_realzerf._eval_is_realÀ   s    € Ø�9‰9�Q‰<×(Ñ(¨DÑ0Øð 1r9   c                 ó<   — | j                   d   j                  du ryy rl   )r+   Úis_imaginaryrh   s    r7   Ú_eval_is_imaginaryzerf._eval_is_imaginaryÆ   s    € Ø�9‰9�Q‰<×$Ñ$¨Ñ,Øð -r9   c                 ób   — | j                   d   }t        |j                  |j                  g«      S re   )r+   r	   Ú	is_finiter,   ©r1   Úzs     r7   Ú_eval_is_finitezerf._eval_is_finiteÊ   s)   € Ø�I‰I�a‰LˆÜ˜Ÿ™ a×&8Ñ&8Ð9Ó:Ð:r9   c                 ól   — | j                   d   j                  du r| j                   d   j                  S y rl   )r+   r,   rP   rh   s    r7   Ú_eval_is_zerozerf._eval_is_zeroÎ   s1   € Ø�9‰9�Q‰<×(Ñ(¨DÑ0Ø—9‘9˜Q‘<×'Ñ'Ð'ð 1r9   c                 ól   — | j                   d   j                  du r| j                   d   j                  S y rl   )r+   r,   Úis_extended_positiverh   s    r7   Ú_eval_is_positivezerf._eval_is_positiveÒ   ó1   € Ø�9‰9�Q‰<×(Ñ(¨DÑ0Ø—9‘9˜Q‘<×4Ñ4Ð4ð 1r9   c                 ól   — | j                   d   j                  du r| j                   d   j                  S y rl   )r+   r,   Úis_extended_negativerh   s    r7   Ú_eval_is_negativezerf._eval_is_negativeÖ   r|   r9   c                 ó¨   — ddl m} t        |dz  «      |z  t        j                   |t        j
                  |dz  «      t        t        «      z  z
  z  S ©Nr   ©Ú
uppergammar*   ©Ú'sympy.functions.special.gamma_functionsrƒ   r   r   rM   ÚHalfr   ©r1   ru   Úkwargsrƒ   s       r7   Ú_eval_rewrite_as_uppergammazerf._eval_rewrite_as_uppergammaÚ   s=   € ÝFÜ�A�q‘D‹z˜!‰|œQŸU™U¡Z´·±¸¸1¹Ó%=¼dÄ2»hÑ%FÑFÑGÐGr9   c                 óÂ   — t         j                  t        z
  |z  t        t        «      z  }t         j                  t        z   t        |«      t        t        |«      z  z
  z  S ©N©r   rM   r
   r   r   ÚfresnelcÚfresnels©r1   ru   rˆ   rX   s       r7   Ú_eval_rewrite_as_fresnelszerf._eval_rewrite_as_fresnelsÞ   ó@   € Ü�u‰u”q‰y˜!‰mœD¤›HÑ$ˆÜ—‘œ‘	œH S›M¬A¬h°s«m©OÑ;Ñ<Ð<r9   c                 óÂ   — t         j                  t        z
  |z  t        t        «      z  }t         j                  t        z   t        |«      t        t        |«      z  z
  z  S r‹   rŒ   r�   s       r7   Ú_eval_rewrite_as_fresnelczerf._eval_rewrite_as_fresnelcâ   r‘   r9   c           
      ó‚   — |t        t        «      z  t        t        j                  gg dgt        dd«      g|dz  «      z  S ©Nr   éÿÿÿÿr*   ©r   r   r'   r   r†   r   ©r1   ru   rˆ   s      r7   Ú_eval_rewrite_as_meijergzerf._eval_rewrite_as_meijergæ   s7   € Ø””b“‰zœ'¤1§6¡6 (¨B°°´h¸rÀ1³oÐ5FÈÈ1ÉÓMÑMÐMr9   c                 ó’   — d|z  t        t        «      z  t        t        j                  gdt        j                  z  g|dz   «      z  S ©Nr*   é   ©r   r   r&   r   r†   r˜   s      r7   Ú_eval_rewrite_as_hyperzerf._eval_rewrite_as_hyperé   s8   € Ø�‰s”4œ“8‰|œE¤1§6¡6 (¨Q¬q¯v©v©X¨J¸¸A¹¸Ó>Ñ>Ð>r9   c                 ó†   — t        |dz  «      |z  |t        t        j                  |dz  «      z  t        t        «      z  z
  S ©Nr*   ©r   Úexpintr   r†   r   r˜   s      r7   Ú_eval_rewrite_as_expintzerf._eval_rewrite_as_expintì   s6   € Ü�A�q‘D‹z˜!‰|˜a¤¤q§v¡v¨q°!©tÓ 4Ñ4´T¼"³XÑ=Ñ=Ð=r9   c                 ó  — ddl m} |rW |||t        j                  «      }|t        j                  u r-t        j
                  t        | «      t        |dz   «      z  z   S t        j                  t        |«      t        |dz   «      z  z
  S )Nr   )Úlimitr*   )	Úsympy.series.limitsr¥   r   rL   rN   rO   Ú_erfsr   rM   )r1   ru   Úlimitvarrˆ   r¥   Úlims         r7   Ú_eval_rewrite_as_tractablezerf._eval_rewrite_as_tractableï   sn   € Ý-ÙÙ˜˜8¤Q§Z¡ZÓ0ˆCØ”a×(Ñ(Ñ(Ü—}‘}¤u¨a¨R£y´°a¸±d°U³Ñ';Ñ;Ð;Ü�u‰u”u˜Q“x¤ Q¨¡T E£
Ñ*Ñ*Ð*r9   c                 ó:   — t         j                  t        |«      z
  S r‹   )r   rM   Úerfcr˜   s      r7   Ú_eval_rewrite_as_erfczerf._eval_rewrite_as_erfc÷   s   € Ü�u‰u”t˜A“w‰Ðr9   c                 ó6   — t          t        t         |z  «      z  S r‹   ©r
   Úerfir˜   s      r7   Ú_eval_rewrite_as_erfizerf._eval_rewrite_as_erfiú   s   € Üˆr”$”q˜‘s“)‰|Ðr9   c                 óB  — | j                   d   j                  |||¬«      }|j                  |d«      }|t        j                  u r|j                  |d|dk(  rdnd¬«      }||j                  v r!|j                  rd|z  t        t        «      z  S | j                  |«      S )Nr   ©ÚlogxÚcdirr–   ú-ú+©Údirr*   )r+   Úas_leading_termÚsubsr   ÚComplexInfinityr¥   Úfree_symbolsrP   r   r   r0   ©r1   r4   r´   rµ   rX   Úarg0s         r7   Ú_eval_as_leading_termzerf._eval_as_leading_termý   sŽ   € Ø�i‰i˜‰l×*Ñ*¨1°4¸dÐ*ÓCˆØ�x‰x˜˜1‹~ˆà”1×$Ñ$Ñ$Ø—9‘9˜Q ¨d°bªj¡s¸c�9ÓBˆDØ�× Ñ Ñ  T§\¢\Ø�S‘5œœb›‘>Ð!à—9‘9˜T“?Ð"r9   c                 ót  •— ddl m} |d   }|t        j                  t        j                  fv rÙ| j
                  d   }	 |j                  |«      \  }}	|	 }	|	j                  r¦t        ||	z  «      }
t        |
«      D �cg c]9  }t        j                  |z  t        d|z  dz
  «      z  |d|z  dz   z  d|z  z  z  ‘Œ; c} |d||
z  z  |«      gz   }t        j                  t        |dz   «      t!        t"        «      z  t%        |Ž z  z
  S t&        t(        | �W  ||||«      S # t        t        f$ r | cY S w xY wc c}w ©Nr   ©ÚOrderr*   r>   )Úsympy.series.orderrÄ   r   rL   rN   r+   ÚleadtermÚ
ValueErrorÚNotImplementedErrorÚis_positiver   ÚrangerO   r   rM   r   r   r   r   Úsuperr;   Ú_eval_aseries)r1   r`   Úargs0r4   r´   rÄ   Úpointru   Ú_ÚexÚnewnrb   ÚsÚ	__class__s                €r7   rÌ   zerf._eval_aseries  s6  ø€ Ý,Ø�a‘ˆà”Q—Z‘Z¤×!3Ñ!3Ð4Ñ4Ø—	‘	˜!‘ˆAðØŸ
™
 1›‘��2ð �ˆBØ�~Š~Ü˜q ™t“}�ä# D›kö+Øô —]‘] AÑ%¬
°1°Q±3¸±7Ó(;Ñ;¸qÀ1ÀQÁ3ÈÁ7¹|ÈaÐQRÉdÑ?RÓSò +Ù.3°A°a¸±g±I¸qÓ.AÐ-BñC�ä—u‘u¤ Q¨¡T E£
¬4´«8Ñ 3´s¸A°wÑ>Ñ>Ð>ä”S˜$Ñ-¨a°¸¸4Ó@Ð@øô Ô 3Ð4ò Ø’ðüò+s   ¿D Á=>D5ÄD2Ä1D2©r>   r‹   )!Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú
unbranchedrB   rG   ÚclassmethodrZ   Ústaticmethodr   rc   ri   rn   rq   rv   rx   r{   r   r‰   r�   r“   r™   rž   r£   rª   r­   r±   rÀ   rÌ   r8   r/   Ú__classcell__©rÓ   s   @r7   r;   r;   1   s²   ø„ ñJðX €Jó5óð ñó ððB Øñ	Kó ó ð	Kò3òòò;ò(ò5ò5òHò=ò=òNò?ò>ó+òòò	#ôAð* -„Lr9   r;   c                   ó¨   — e Zd ZdZdZdd„Zdd„Zed„ «       Ze	e
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eZd„ Zy	)r¬   a&  
    Complementary Error Function.

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

    The function is defined as:

    .. math ::
        \mathrm{erfc}(x) = \frac{2}{\sqrt{\pi}} \int_x^\infty e^{-t^2} \mathrm{d}t

    Examples
    ========

    >>> from sympy import I, oo, erfc
    >>> from sympy.abc import z

    Several special values are known:

    >>> erfc(0)
    1
    >>> erfc(oo)
    0
    >>> erfc(-oo)
    2
    >>> erfc(I*oo)
    -oo*I
    >>> erfc(-I*oo)
    oo*I

    The error function obeys the mirror symmetry:

    >>> from sympy import conjugate
    >>> conjugate(erfc(z))
    erfc(conjugate(z))

    Differentiation with respect to $z$ is supported:

    >>> from sympy import diff
    >>> diff(erfc(z), z)
    -2*exp(-z**2)/sqrt(pi)

    It also follows

    >>> erfc(-z)
    2 - erfc(z)

    We can numerically evaluate the complementary error function to arbitrary
    precision on the whole complex plane:

    >>> erfc(4).evalf(30)
    0.0000000154172579002800188521596734869

    >>> erfc(4*I).evalf(30)
    1.0 - 1296959.73071763923152794095062*I

    See Also
    ========

    erf: Gaussian error function.
    erfi: Imaginary error function.
    erf2: Two-argument error function.
    erfinv: Inverse error function.
    erfcinv: Inverse Complementary error function.
    erf2inv: Inverse two-argument error function.

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Error_function
    .. [2] https://dlmf.nist.gov/7
    .. [3] https://mathworld.wolfram.com/Erfc.html
    .. [4] https://functions.wolfram.com/GammaBetaErf/Erfc

    Tc                 ó‚   — |dk(  r/dt        | j                  d   dz   «      z  t        t        «      z  S t	        | |«      ‚)Nr>   r]   r   r*   r?   r@   s     r7   rB   z
erfc.fdiffo  s>   € Ø�qŠ=Ø”c˜4Ÿ9™9 Q™<¨™?Ð*Ó+Ñ+¬D´«HÑ4Ð4ä$ T¨8Ó4Ð4r9   c                 ó   — t         S rD   ©rR   r@   s     r7   rG   zerfc.inverseu  s	   € ô
 ˆr9   c                 ó^  — |j                   r`|t        j                  u rt        j                  S |t        j                  u rt        j                  S |j
                  rt        j                  S t        |t        «      r t        j                  |j                  d   z
  S t        |t        «      r|j                  d   S |j
                  rt        j                  S |j                  t        «      }|t        j                  t        j                  fv r| S |j                  «       rd | | «      z
  S y ©Nr   r*   )rJ   r   rK   rL   r.   rP   rM   rQ   rF   r+   rR   rT   r
   rN   rU   rV   s      r7   rZ   z	erfc.eval|  sÞ   € à�=Š=Ø”a—e‘e‰|Ü—u‘u�ØœŸ
™
Ñ"Ü—v‘v�Ø—’Ü—u‘u�ä�cœ6Ô"Ü—5‘5˜3Ÿ8™8 A™;Ñ&Ð&ä�cœ7Ô#Ø—8‘8˜A‘;Ðà�;Š;Ü—5‘5ˆLð ×(Ñ(¬Ó+ˆØ”—‘œQ×/Ñ/Ð0Ñ0Ø�4ˆKð ×'Ñ'Ô)Ø‘s˜C˜4“y‘=Ð ð *r9   c                 ór  — | dk(  rt         j                  S | dk  s| dz  dk(  rt         j                  S t        |«      }t	        | dz
  t        d«      z  «      }t        |«      dkD  r|d    |dz  z  | dz
  z  | |z  z  S dt         j                  |z  z  || z  z  | t        |«      z  t        t        «      z  z  S r\   )
r   rM   r.   r   r   r^   rO   r   r   r   r_   s       r7   rc   zerfc.taylor_term˜  s¶   € ð �Š6Ü—5‘5ˆLØ�ŠU�a˜!‘e˜q’jÜ—6‘6ˆMä˜“
ˆAÜ�q˜1‘uœa ›d‘lÓ#ˆAÜ�>Ó" QÒ&Ø& rÑ*Ð*¨Q°©TÑ1°Q¸±UÑ;¸Q¸q¹SÑAÐAàœ!Ÿ-™-¨Ñ*Ñ*¨Q°©TÑ1°1´Y¸q³\±>Ä$ÄrÃ(Ñ3JÑKÐKr9   c                 óZ   — | j                  | j                  d   j                  «       «      S re   rf   rh   s    r7   ri   zerfc._eval_conjugate§  rj   r9   c                 ót   — | j                   d   j                  du ry| j                   d   j                  du ryy )Nr   TF)r+   r,   rp   rh   s    r7   rn   zerfc._eval_is_realª  s9   € Ø�9‰9�Q‰<×(Ñ(¨DÑ0ØØ�9‰9�Q‰<×$Ñ$¨Ñ,Øð -r9   Nc                 óP   — | j                  t        «      j                  dd|¬«      S ©NÚ	tractableT)r2   r¨   ©Úrewriter;   ©r1   ru   r¨   rˆ   s       r7   rª   zerfc._eval_rewrite_as_tractable°  ó#   € Ø�|‰|œCÓ ×(Ñ(¨¸4È(Ð(ÓSÐSr9   c                 ó:   — t         j                  t        |«      z
  S r‹   )r   rM   r;   r˜   s      r7   Ú_eval_rewrite_as_erfzerfc._eval_rewrite_as_erf³  s   € Ü�u‰u”s˜1“v‰~Ðr9   c                 óV   — t         j                  t        t        t        |z  «      z  z   S r‹   )r   rM   r
   r°   r˜   s      r7   r±   zerfc._eval_rewrite_as_erfi¶  s   € Ü�u‰u”qœœa ™c›‘{Ñ"Ð"r9   c                 óä   — t         j                  t        z
  |z  t        t        «      z  }t         j                  t         j                  t        z   t        |«      t        t        |«      z  z
  z  z
  S r‹   rŒ   r�   s       r7   r�   zerfc._eval_rewrite_as_fresnels¹  sI   € Ü�u‰u”q‰y˜!‰mœD¤›HÑ$ˆÜ�u‰uœŸ™¤™	¤H¨S£M´A´h¸s³m±OÑ$CÑDÑDÐDr9   c                 óä   — t         j                  t        z
  |z  t        t        «      z  }t         j                  t         j                  t        z   t        |«      t        t        |«      z  z
  z  z
  S r‹   rŒ   r�   s       r7   r“   zerfc._eval_rewrite_as_fresnelc½  sI   € Ü�u‰u”Q‰w˜‰kœ$œr›(Ñ"ˆÜ�u‰uœŸ™¤™	¤H¨S£M´A´h¸s³m±OÑ$CÑDÑDÐDr9   c                 ó¤   — t         j                  |t        t        «      z  t	        t         j
                  gg dgt        dd«      g|dz  «      z  z
  S r•   )r   rM   r   r   r'   r†   r   r˜   s      r7   r™   zerfc._eval_rewrite_as_meijergÁ  sC   € Ü�u‰u�qœœb›‘z¤'¬1¯6©6¨(°B¸¸¼hÀrÈ1»oÐ=NÐPQÐSTÑPTÓ"UÑUÑUÐUr9   c                 ó´   — t         j                  d|z  t        t        «      z  t	        t         j
                  gdt         j
                  z  g|dz   «      z  z
  S r›   )r   rM   r   r   r&   r†   r˜   s      r7   rž   zerfc._eval_rewrite_as_hyperÄ  sA   € Ü�u‰u�q˜‘sœ4¤›8‘|¤E¬1¯6©6¨(°Q´q·v±v±X°JÀÀAÁÀÓ$FÑFÑFÐFr9   c                 óÊ   — ddl m} t        j                  t	        |dz  «      |z  t        j                   |t        j
                  |dz  «      t	        t        «      z  z
  z  z
  S r�   )r…   rƒ   r   rM   r   r†   r   r‡   s       r7   r‰   z erfc._eval_rewrite_as_uppergammaÇ  sF   € ÝFÜ�u‰u”t˜A˜q™D“z !‘|¤Q§U¡U©Z¼¿¹ÀÀ1ÁÓ-EÄdÌ2ÃhÑ-NÑ%NÑOÑOÐOr9   c                 ó¨   — t         j                  t        |dz  «      |z  z
  |t        t         j                  |dz  «      z  t        t
        «      z  z   S r    )r   rM   r   r¢   r†   r   r˜   s      r7   r£   zerfc._eval_rewrite_as_expintË  s?   € Ü�u‰u”t˜A˜q™D“z !‘|Ñ# a¬¬q¯v©v°q¸!±tÓ(<Ñ&<¼TÄ"»XÑ&EÑEÐEr9   c                 ó,   — | j                  t        «      S r‹   rê   ©r1   r3   s     r7   Ú_eval_expand_funczerfc._eval_expand_funcÎ  ó   € Ø�|‰|œCÓ Ð r9   c                 ó  — | j                   d   j                  |||¬«      }|j                  |d«      }|t        j                  u r|j                  |d|dk(  rdnd¬«      }|j                  rt        j                  S | j                  |«      S )Nr   r³   r–   r¶   r·   r¸   )	r+   rº   r»   r   r¼   r¥   rP   rM   r0   r¾   s         r7   rÀ   zerfc._eval_as_leading_termÑ  sx   € Ø�i‰i˜‰l×*Ñ*¨1°4¸dÐ*ÓCˆØ�x‰x˜˜1‹~ˆà”1×$Ñ$Ñ$Ø—9‘9˜Q ¨d°bªj¡s¸c�9ÓBˆDØ�<Š<Ü—5‘5ˆLà—9‘9˜T“?Ð"r9   c                 ól   — t         j                  t        | j                  Ž j	                  ||||«      z
  S r‹   )r   rM   r;   r+   rÌ   )r1   r`   rÍ   r4   r´   s        r7   rÌ   zerfc._eval_aseriesÞ  s*   € Ü�u‰u”s˜DŸI™I�×4Ñ4°Q¸¸qÀ$ÓGÑGÐGr9   rÔ   r‹   )rÕ   rÖ   r×   rØ   rÙ   rB   rG   rÚ   rZ   rÛ   r   rc   ri   rn   rª   rï   r±   r�   r“   r™   rž   r‰   r£   rù   rÀ   r8   r/   rÌ   © r9   r7   r¬   r¬      s¡   „ ñJðX €Jó5óð ñ!ó ð!ð6 ØñLó ó ðLò3òóTòò#òEòEòVòGòPòFò!ò	#ð -€LóHr9   r¬   c                   ó²   ‡ — e Zd ZdZdZdd„Zed„ «       Zee	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„ ZeZd„ Zˆ fd„Zˆ xZS )r°   aí  
    Imaginary error function.

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

    The function erfi is defined as:

    .. math ::
        \mathrm{erfi}(x) = \frac{2}{\sqrt{\pi}} \int_0^x e^{t^2} \mathrm{d}t

    Examples
    ========

    >>> from sympy import I, oo, erfi
    >>> from sympy.abc import z

    Several special values are known:

    >>> erfi(0)
    0
    >>> erfi(oo)
    oo
    >>> erfi(-oo)
    -oo
    >>> erfi(I*oo)
    I
    >>> erfi(-I*oo)
    -I

    In general one can pull out factors of -1 and $I$ from the argument:

    >>> erfi(-z)
    -erfi(z)

    >>> from sympy import conjugate
    >>> conjugate(erfi(z))
    erfi(conjugate(z))

    Differentiation with respect to $z$ is supported:

    >>> from sympy import diff
    >>> diff(erfi(z), z)
    2*exp(z**2)/sqrt(pi)

    We can numerically evaluate the imaginary error function to arbitrary
    precision on the whole complex plane:

    >>> erfi(2).evalf(30)
    18.5648024145755525987042919132

    >>> erfi(-2*I).evalf(30)
    -0.995322265018952734162069256367*I

    See Also
    ========

    erf: Gaussian error function.
    erfc: Complementary error function.
    erf2: Two-argument error function.
    erfinv: Inverse error function.
    erfcinv: Inverse Complementary error function.
    erf2inv: Inverse two-argument error function.

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Error_function
    .. [2] https://mathworld.wolfram.com/Erfi.html
    .. [3] https://functions.wolfram.com/GammaBetaErf/Erfi

    Tc                 ó€   — |dk(  r.dt        | j                  d   dz  «      z  t        t        «      z  S t	        | |«      ‚r=   r?   r@   s     r7   rB   z
erfi.fdiff.  s;   € Ø�qŠ=Ø”S˜Ÿ™ 1™ q™Ó)Ñ)¬$¬r«(Ñ2Ð2ä$ T¨8Ó4Ð4r9   c                 óâ  — |j                   r`|t        j                  u rt        j                  S |j                  rt        j                  S |t        j
                  u rt        j
                  S |j                  rt        j                  S |j                  «       r
 | | «       S |j                  t        «      }|�¶|t        j
                  u rt        S t        |t        «      rt        |j                  d   z  S t        |t        «      r't        t        j                  |j                  d   z
  z  S t        |t        «      r0|j                  d   j                  rt        |j                  d   z  S y y y rI   )rJ   r   rK   rP   r.   rL   rU   rT   r
   rQ   rF   r+   rR   rM   rS   ©rW   ru   Únzs      r7   rZ   z	erfi.eval4  s  € à�;Š;Ø”A—E‘E‰zÜ—u‘u�Ø—’Ü—v‘v�Ø”a—j‘j‘Ü—z‘zÐ!à�9Š9Ü—6‘6ˆMð ×%Ñ%Ô'Ù˜˜“G�8ˆOð ×'Ñ'¬Ó*ˆØˆ>Ø”Q—Z‘ZÑÜ�Ü˜"œfÔ%Ü˜Ÿ™ ™‘|Ð#Ü˜"œgÔ&Üœ!Ÿ%™% "§'¡'¨!¡*Ñ,Ñ-Ð-ä˜"œgÔ&¨2¯7©7°1©:×+=Ò+=Ü˜Ÿ™ ™‘|Ð#ð ,>Ð&ð r9   c                 ó  — | dk  s| dz  dk(  rt         j                  S t        |«      }t        | dz
  t        d«      z  «      }t	        |«      dkD  r|d   |dz  z  | dz
  z  | |z  z  S d|| z  z  | t        |«      z  t        t        «      z  z  S r\   )r   r.   r   r   r^   r   r   r   r_   s       r7   rc   zerfi.taylor_termR  s”   € ð ˆqŠ5�A˜‘E˜Q’JÜ—6‘6ˆMä˜“
ˆAÜ�q˜1‘uœa ›d‘lÓ#ˆAÜ�>Ó" QÒ&Ø% bÑ)¨A¨q©DÑ0°A¸±EÑ:¸A¸a¹CÑ@Ð@à˜1˜a™4‘x ¤9¨Q£<¡´´R³Ñ!8Ñ9Ð9r9   c                 óZ   — | j                  | j                  d   j                  «       «      S re   rf   rh   s    r7   ri   zerfi._eval_conjugate_  rj   r9   c                 ó4   — | j                   d   j                  S re   rm   rh   s    r7   Ú_eval_is_extended_realzerfi._eval_is_extended_realb  ó   € Ø�y‰y˜‰|×,Ñ,Ð,r9   c                 ó4   — | j                   d   j                  S re   ©r+   rP   rh   s    r7   rx   zerfi._eval_is_zeroe  ó   € Ø�y‰y˜‰|×#Ñ#Ð#r9   c                 óP   — | j                  t        «      j                  dd|¬«      S rè   rê   rì   s       r7   rª   zerfi._eval_rewrite_as_tractableh  rí   r9   c                 ó6   — t          t        t         |z  «      z  S r‹   )r
   r;   r˜   s      r7   rï   zerfi._eval_rewrite_as_erfk  s   € Üˆr”#”a˜‘c“(‰{Ðr9   c                 óB   — t         t        t         |z  «      z  t         z
  S r‹   )r
   r¬   r˜   s      r7   r­   zerfi._eval_rewrite_as_erfcn  s   € Ü””a˜‘c“‰{œQ‰Ðr9   c                 óÂ   — t         j                  t        z   |z  t        t        «      z  }t         j                  t        z
  t        |«      t        t        |«      z  z
  z  S r‹   rŒ   r�   s       r7   r�   zerfi._eval_rewrite_as_fresnelsq  r‘   r9   c                 óÂ   — t         j                  t        z   |z  t        t        «      z  }t         j                  t        z
  t        |«      t        t        |«      z  z
  z  S r‹   rŒ   r�   s       r7   r“   zerfi._eval_rewrite_as_fresnelcu  r‘   r9   c           
      ó„   — |t        t        «      z  t        t        j                  gg dgt        dd«      g|dz   «      z  S r•   r—   r˜   s      r7   r™   zerfi._eval_rewrite_as_meijergy  s9   € Ø””b“‰zœ'¤1§6¡6 (¨B°°´h¸rÀ1³oÐ5FÈÈAÉÈÓNÑNÐNr9   c                 ó�   — d|z  t        t        «      z  t        t        j                  gdt        j                  z  g|dz  «      z  S r›   r�   r˜   s      r7   rž   zerfi._eval_rewrite_as_hyper|  s6   € Ø�‰s”4œ“8‰|œE¤1§6¡6 (¨Q¬q¯v©v©X¨J¸¸1¹Ó=Ñ=Ð=r9   c                 ó¬   — ddl m} t        |dz   «      |z   |t        j                  |dz   «      t        t
        «      z  t        j                  z
  z  S r�   )r…   rƒ   r   r   r†   r   rM   r‡   s       r7   r‰   z erfi._eval_rewrite_as_uppergamma  sA   € ÝFÜ�Q˜‘T�E‹{˜1‰}™j¬¯©°!°Q±$°Ó7¼¼R»Ñ@Ä1Ç5Á5ÑHÑIÐIr9   c                 óŠ   — t        |dz   «      |z  |t        t        j                  |dz   «      z  t        t        «      z  z
  S r    r¡   r˜   s      r7   r£   zerfi._eval_rewrite_as_expintƒ  s:   € Ü�Q˜‘T�E‹{˜1‰}˜q¤¬¯©°°A±°Ó!6Ñ6´t¼B³xÑ?Ñ?Ð?r9   c                 ó,   — | j                  t        «      S r‹   rê   rø   s     r7   rù   zerfi._eval_expand_func†  rú   r9   c                 ó"  — | j                   d   j                  |||¬«      }|j                  |d«      }||j                  v r!|j                  rd|z  t        t        «      z  S |j                  r| j                  |«      S | j                  |«      S )Nr   r³   r*   )	r+   rº   r»   r½   rP   r   r   rs   r0   r¾   s         r7   rÀ   zerfi._eval_as_leading_term‹  sy   € Ø�i‰i˜‰l×*Ñ*¨1°4¸dÐ*ÓCˆØ�x‰x˜˜1‹~ˆà�× Ñ Ñ  T§\¢\Ø�S‘5œœb›‘>Ð!Ø�^Š^Ø—9‘9˜T“?Ð"Ø�y‰y˜‹~Ðr9   c                 ó†  •— ddl m} |d   }|t        j                  u r‰| j                  d   }t        |«      D �cg c]%  }t        d|z  dz
  «      d|z  |d|z  dz   z  z  z  ‘Œ' c} |d||z  z  |«      gz   }	t         t        |dz  «      t        t        «      z  t        |	Ž z  z   S t        t        | �;  ||||«      S c c}w rÂ   )rÅ   rÄ   r   rL   r+   rÊ   r   r
   r   r   r   r   rË   r°   rÌ   ©r1   r`   rÍ   r4   r´   rÄ   rÎ   ru   rb   rÒ   rÓ   s             €r7   rÌ   zerfi._eval_aseries•  sÉ   ø€ Ý,Ø�a‘ˆà”A—J‘JÑØ—	‘	˜!‘ˆAä" 1›Xö'Øô ˜A˜a™C !™GÓ$¨¨1©¨q°1°Q±3¸±7©|Ñ(;Ó<ò 'Ù*/°°!°Q±$±¸Ó*:Ð);ñ<ˆAä�2œ˜Q ™T›¤4¬£8Ñ+¬s°A¨wÑ6Ñ6Ð6ä”T˜4Ñ.¨q°%¸¸DÓAÐAùò	's   »*B>rÔ   r‹   )rÕ   rÖ   r×   rØ   rÙ   rB   rÚ   rZ   rÛ   r   rc   ri   r  rx   rª   rï   r­   r�   r“   r™   rž   r‰   r£   rù   r8   r/   rÀ   rÌ   rÜ   rÝ   s   @r7   r°   r°   â  s£   ø„ ñGðR €Jó5ð ñ$ó ð$ð: Øñ	:ó ó ð	:ò3ò-ò$óTòòò=ò=òOò>òJò@ò!ð -€Lò÷
Bð 
Br9   r°   c                   ót   — e Zd ZdZd„ Zed„ «       Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)Úerf2a?  
    Two-argument error function.

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

    This function is defined as:

    .. math ::
        \mathrm{erf2}(x, y) = \frac{2}{\sqrt{\pi}} \int_x^y e^{-t^2} \mathrm{d}t

    Examples
    ========

    >>> from sympy import oo, erf2
    >>> from sympy.abc import x, y

    Several special values are known:

    >>> erf2(0, 0)
    0
    >>> erf2(x, x)
    0
    >>> erf2(x, oo)
    1 - erf(x)
    >>> erf2(x, -oo)
    -erf(x) - 1
    >>> erf2(oo, y)
    erf(y) - 1
    >>> erf2(-oo, y)
    erf(y) + 1

    In general one can pull out factors of -1:

    >>> erf2(-x, -y)
    -erf2(x, y)

    The error function obeys the mirror symmetry:

    >>> from sympy import conjugate
    >>> conjugate(erf2(x, y))
    erf2(conjugate(x), conjugate(y))

    Differentiation with respect to $x$, $y$ is supported:

    >>> from sympy import diff
    >>> diff(erf2(x, y), x)
    -2*exp(-x**2)/sqrt(pi)
    >>> diff(erf2(x, y), y)
    2*exp(-y**2)/sqrt(pi)

    See Also
    ========

    erf: Gaussian error function.
    erfc: Complementary error function.
    erfi: Imaginary error function.
    erfinv: Inverse error function.
    erfcinv: Inverse Complementary error function.
    erf2inv: Inverse two-argument error function.

    References
    ==========

    .. [1] https://functions.wolfram.com/GammaBetaErf/Erf2/

    c                 óÔ   — | j                   \  }}|dk(  r"dt        |dz   «      z  t        t        «      z  S |dk(  r"dt        |dz   «      z  t        t        «      z  S t	        | |«      ‚)Nr>   r]   r*   )r+   r   r   r   r   ©r1   rA   r4   r5   s       r7   rB   z
erf2.fdiffè  sd   € Ø�y‰y‰ˆˆ1Ø�qŠ=Ø”c˜1˜a™4˜%“j‘=¤¤b£Ñ)Ð)Ø˜Š]Ø”S˜!˜Q™$˜“Z‘<¤¤R£Ñ(Ð(ä$ T¨8Ó4Ð4r9   c                 óè  — t         j                  t         j                  t         j                  f}|t         j                  u s|t         j                  u rt         j                  S ||k(  rt         j                  S ||v s||v rt        |«      t        |«      z
  S t        |t        «      r!|j                  d   |k(  r|j                  d   S |j                  s<|j                  s0|j                  r|j                  s|j                  r#|j                  rt        |«      t        |«      z
  S |j                  «       }|j                  «       }|r|r | | | «       S |s|rt        |«      t        |«      z
  S y rI   )r   rL   rN   r.   rK   r;   rQ   rS   r+   rP   r,   Úis_infiniterU   )rW   r4   r5   ÚchkÚsign_xÚsign_ys         r7   rZ   z	erf2.evalñ  s  € ä�z‰zœ1×-Ñ-¬q¯v©vÐ6ˆØ”—‘‰:˜œaŸe™e™Ü—5‘5ˆLØ�!ŠVÜ—6‘6ˆMØ�#‰X˜˜c™Ü�q“6œC ›F‘?Ð"ä�aœÔ! a§f¡f¨Q¡i°1¢nØ—6‘6˜!‘9Ðà�9Š9˜Ÿ	š	 Q×%7Ò%7¸A¿MºMØ×"Ò" q§}¢}Ü�q“6œC ›F‘?Ð"ð ×+Ñ+Ó-ˆØ×+Ñ+Ó-ˆÙ‘vÙ˜˜˜Q˜B“K�<ÐÙ™Ü�q“6œ#˜a›&‘=Ð ð r9   c                 ó’   — | j                  | j                  d   j                  «       | j                  d   j                  «       «      S rI   rf   rh   s    r7   ri   zerf2._eval_conjugate
  s5   € Ø�y‰y˜Ÿ™ 1™×/Ñ/Ó1°4·9±9¸Q±<×3IÑ3IÓ3KÓLÐLr9   c                 ój   — | j                   d   j                  xr | j                   d   j                  S rI   rm   rh   s    r7   r  zerf2._eval_is_extended_real  s)   € Ø�y‰y˜‰|×,Ñ,ÒN°·±¸1±×1NÑ1NÐNr9   c                 ó0   — t        |«      t        |«      z
  S r‹   ©r;   ©r1   r4   r5   rˆ   s       r7   rï   zerf2._eval_rewrite_as_erf  s   € Ü�1‹vœ˜A›‰Ðr9   c                 ó0   — t        |«      t        |«      z
  S r‹   ©r¬   r%  s       r7   r­   zerf2._eval_rewrite_as_erfc  s   € Ü�A‹wœ˜a›Ñ Ð r9   c                 óZ   — t         t        t         |z  «      t        t         |z  «      z
  z  S r‹   r¯   r%  s       r7   r±   zerf2._eval_rewrite_as_erfi  s"   € Ü”$”q˜‘s“)œD¤ 1¡›IÑ%Ñ&Ð&r9   c                 ó|   — t        |«      j                  t        «      t        |«      j                  t        «      z
  S r‹   )r;   rë   rŽ   r%  s       r7   r�   zerf2._eval_rewrite_as_fresnels  ó'   € Ü�1‹v�~‰~œhÓ'¬#¨a«&¯.©.¼Ó*BÑBÐBr9   c                 ó|   — t        |«      j                  t        «      t        |«      j                  t        «      z
  S r‹   )r;   rë   r�   r%  s       r7   r“   zerf2._eval_rewrite_as_fresnelc  r*  r9   c                 ó|   — t        |«      j                  t        «      t        |«      j                  t        «      z
  S r‹   )r;   rë   r'   r%  s       r7   r™   zerf2._eval_rewrite_as_meijerg  s'   € Ü�1‹v�~‰~œgÓ&¬¨Q«¯©¼Ó)@Ñ@Ð@r9   c                 ó|   — t        |«      j                  t        «      t        |«      j                  t        «      z
  S r‹   )r;   rë   r&   r%  s       r7   rž   zerf2._eval_rewrite_as_hyper"  s'   € Ü�1‹v�~‰~œeÓ$¤s¨1£v§~¡~´eÓ'<Ñ<Ð<r9   c                 óD  — ddl m} t        |dz  «      |z  t        j                   |t        j
                  |dz  «      t        t        «      z  z
  z  t        |dz  «      |z  t        j                   |t        j
                  |dz  «      t        t        «      z  z
  z  z
  S r�   r„   )r1   r4   r5   rˆ   rƒ   s        r7   r‰   z erf2._eval_rewrite_as_uppergamma%  s{   € ÝFÜ�Q˜‘T“
˜1‘œaŸe™e¡j´·±¸¸A¹Ó&>¼tÄB»xÑ&GÑGÑHÜ��A‘‹J�q‰Lœ!Ÿ%™%¡*¬Q¯V©V°Q¸±TÓ":¼4Ä»8Ñ"CÑCÑDñEð 	Fr9   c                 ó|   — t        |«      j                  t        «      t        |«      j                  t        «      z
  S r‹   )r;   rë   r¢   r%  s       r7   r£   zerf2._eval_rewrite_as_expint*  s'   € Ü�1‹v�~‰~œfÓ%¬¨A«¯©´vÓ(>Ñ>Ð>r9   c                 ó,   — | j                  t        «      S r‹   rê   rø   s     r7   rù   zerf2._eval_expand_func-  rú   r9   c                 ó&   — t        | j                  Ž S r‹   )r   r+   rh   s    r7   rx   zerf2._eval_is_zero0  s   € Ü�d—i‘iÐ Ð r9   N)rÕ   rÖ   r×   rØ   rB   rÚ   rZ   ri   r  rï   r­   r±   r�   r“   r™   rž   r‰   r£   rù   rx   rý   r9   r7   r  r  ¢  si   „ ñBòJ5ð ñ!ó ð!ò0MòOòò!ò'òCòCòAò=òFò
?ò!ó!r9   r  c                   ó<   — e Zd ZdZdd„Zdd„Zed„ «       Zd„ Zd„ Z	y)	rF   aR  
    Inverse Error Function. The erfinv function is defined as:

    .. math ::
        \mathrm{erf}(x) = y \quad \Rightarrow \quad \mathrm{erfinv}(y) = x

    Examples
    ========

    >>> from sympy import erfinv
    >>> from sympy.abc import x

    Several special values are known:

    >>> erfinv(0)
    0
    >>> erfinv(1)
    oo

    Differentiation with respect to $x$ is supported:

    >>> from sympy import diff
    >>> diff(erfinv(x), x)
    sqrt(pi)*exp(erfinv(x)**2)/2

    We can numerically evaluate the inverse error function to arbitrary
    precision on [-1, 1]:

    >>> erfinv(0.2).evalf(30)
    0.179143454621291692285822705344

    See Also
    ========

    erf: Gaussian error function.
    erfc: Complementary error function.
    erfi: Imaginary error function.
    erf2: Two-argument error function.
    erfcinv: Inverse Complementary error function.
    erf2inv: Inverse two-argument error function.

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Error_function#Inverse_functions
    .. [2] https://functions.wolfram.com/GammaBetaErf/InverseErf/

    c                 óº   — |dk(  rKt        t        «      t        | j                  | j                  d   «      dz  «      z  t
        j                  z  S t        | |«      ‚©Nr>   r   r*   ©r   r   r   r0   r+   r   r†   r   r@   s     r7   rB   zerfinv.fdifff  sI   € Ø�qŠ=Üœ“8œC §	¡	¨$¯)©)°A©,Ó 7¸Ñ :Ó;Ñ;¼A¿F¹FÑBÐBä$ T¨8Ó4Ð4r9   c                 ó   — t         S rD   r$  r@   s     r7   rG   zerfinv.inversel  s	   € ô
 ˆ
r9   c                 óL  — |t         j                  u rt         j                  S |t         j                  u rt         j                  S |j                  rt         j
                  S |t         j                  u rt         j                  S t        |t        «      r(|j                  d   j                  r|j                  d   S |j                  rt         j
                  S |j                  d«      }|�;t        |t        «      r*|j                  d   j                  r|j                  d    S y y y ©Nr   r–   )r   rK   rO   rN   rP   r.   rM   rL   rQ   r;   r+   r,   rT   r  s      r7   rZ   zerfinv.evals  sÖ   € à”—‘‰:Ü—5‘5ˆLØ”!—-‘-ÑÜ×%Ñ%Ð%Ø�YŠYÜ—6‘6ˆMØ”!—%‘%‰ZÜ—:‘:Ðä�aœÔ !§&¡&¨¡)×"<Ò"<Ø—6‘6˜!‘9Ðà�9Š9Ü—6‘6ˆMð ×'Ñ'¨Ó+ˆØˆ>œz¨"¬cÔ2¸¿¹À¹
×7TÒ7TØ—G‘G˜A‘J�;Ðð 8UÐ2ˆ>r9   c                 ó   — t        d|z
  «      S ©Nr>   rá   r˜   s      r7   Ú_eval_rewrite_as_erfcinvzerfinv._eval_rewrite_as_erfcinv‰  s   € Ü�q˜‘s‹|Ðr9   c                 ó4   — | j                   d   j                  S re   r	  rh   s    r7   rx   zerfinv._eval_is_zeroŒ  r
  r9   NrÔ   )
rÕ   rÖ   r×   rØ   rB   rG   rÚ   rZ   r;  rx   rý   r9   r7   rF   rF   3  s0   „ ñ/ód5óð ñó ðò*ó$r9   rF   c                   óB   — e Zd ZdZd	d„Zd	d„Zed„ «       Zd„ Zd„ Z	d„ Z
y)
rR   a´  
    Inverse Complementary Error Function. The erfcinv function is defined as:

    .. math ::
        \mathrm{erfc}(x) = y \quad \Rightarrow \quad \mathrm{erfcinv}(y) = x

    Examples
    ========

    >>> from sympy import erfcinv
    >>> from sympy.abc import x

    Several special values are known:

    >>> erfcinv(1)
    0
    >>> erfcinv(0)
    oo

    Differentiation with respect to $x$ is supported:

    >>> from sympy import diff
    >>> diff(erfcinv(x), x)
    -sqrt(pi)*exp(erfcinv(x)**2)/2

    See Also
    ========

    erf: Gaussian error function.
    erfc: Complementary error function.
    erfi: Imaginary error function.
    erf2: Two-argument error function.
    erfinv: Inverse error function.
    erf2inv: Inverse two-argument error function.

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Error_function#Inverse_functions
    .. [2] https://functions.wolfram.com/GammaBetaErf/InverseErfc/

    c                 ó¼   — |dk(  rLt        t        «       t        | j                  | j                  d   «      dz  «      z  t
        j                  z  S t        | |«      ‚r4  r5  r@   s     r7   rB   zerfcinv.fdiff½  sK   € Ø�qŠ=Üœ“H�9œS §¡¨4¯9©9°Q©<Ó!8¸!Ñ!;Ó<Ñ<¼Q¿V¹VÑCÐCä$ T¨8Ó4Ð4r9   c                 ó   — t         S rD   r'  r@   s     r7   rG   zerfcinv.inverseÃ  s	   € ô
 ˆr9   c                 ó&  — |t         j                  u rt         j                  S |j                  rt         j                  S |t         j                  u rt         j
                  S |dk(  rt         j                  S |j                  rt         j                  S y r    )r   rK   rP   rL   rM   r.   rN   ©rW   ru   s     r7   rZ   zerfcinv.evalÊ  sd   € à”—‘‰:Ü—5‘5ˆLØ�YŠYÜ—:‘:ÐØ”!—%‘%‰ZÜ—6‘6ˆMØ�!ŠVÜ×%Ñ%Ð%à�9Š9Ü—:‘:Ðð r9   c                 ó   — t        d|z
  «      S r:  rE   r˜   s      r7   Ú_eval_rewrite_as_erfinvzerfcinv._eval_rewrite_as_erfinvØ  s   € Ü�a˜‘c‹{Ðr9   c                 ó:   — | j                   d   dz
  j                  S rI   r	  rh   s    r7   rx   zerfcinv._eval_is_zeroÛ  s   € Ø—	‘	˜!‘˜qÑ ×)Ñ)Ð)r9   c           	      ót   — | j                   d   }t        |j                  t        |t	        d«      «      g«      S rã   )r+   r	   rP   r   r   rt   s     r7   Ú_eval_is_infinitezerfcinv._eval_is_infiniteÞ  s.   € Ø�I‰I�a‰LˆÜ˜Ÿ™¤E¨!¬W°Q«ZÓ$8Ð9Ó:Ð:r9   NrÔ   )rÕ   rÖ   r×   rØ   rB   rG   rÚ   rZ   rC  rx   rF  rý   r9   r7   rR   rR   �  s5   „ ñ)óX5óð ñó ðòò*ó;r9   rR   c                   ó,   — e Zd ZdZd„ Zed„ «       Zd„ Zy)rS   a2  
    Two-argument Inverse error function. The erf2inv function is defined as:

    .. math ::
        \mathrm{erf2}(x, w) = y \quad \Rightarrow \quad \mathrm{erf2inv}(x, y) = w

    Examples
    ========

    >>> from sympy import erf2inv, oo
    >>> from sympy.abc import x, y

    Several special values are known:

    >>> erf2inv(0, 0)
    0
    >>> erf2inv(1, 0)
    1
    >>> erf2inv(0, 1)
    oo
    >>> erf2inv(0, y)
    erfinv(y)
    >>> erf2inv(oo, y)
    erfcinv(-y)

    Differentiation with respect to $x$ and $y$ is supported:

    >>> from sympy import diff
    >>> diff(erf2inv(x, y), x)
    exp(-x**2 + erf2inv(x, y)**2)
    >>> diff(erf2inv(x, y), y)
    sqrt(pi)*exp(erf2inv(x, y)**2)/2

    See Also
    ========

    erf: Gaussian error function.
    erfc: Complementary error function.
    erfi: Imaginary error function.
    erf2: Two-argument error function.
    erfinv: Inverse error function.
    erfcinv: Inverse complementary error function.

    References
    ==========

    .. [1] https://functions.wolfram.com/GammaBetaErf/InverseErf2/

    c                 ó  — | j                   \  }}|dk(  r$t        | j                  ||«      dz  |dz  z
  «      S |dk(  r?t        t        «      t
        j                  z  t        | j                  ||«      dz  «      z  S t        | |«      ‚©Nr>   r*   )r+   r   r0   r   r   r   r†   r   r  s       r7   rB   zerf2inv.fdiff  sx   € Ø�y‰y‰ˆˆ1Ø�qŠ=Ü�t—y‘y  1“~ qÑ(¨¨A©Ñ-Ó.Ð.Ø˜Š]Üœ“8œAŸF™F‘?¤3 t§y¡y°°1£~°qÑ'8Ó#9Ñ9Ð9ä$ T¨8Ó4Ð4r9   c                 ó¶  — |t         j                  u s|t         j                  u rt         j                  S |j                  r|j                  rt         j                  S |j                  r"|t         j                  u rt         j
                  S |t         j                  u r|j                  rt         j                  S |j                  rt        |«      S |t         j
                  u rt        | «      S |j                  r|S |t         j
                  u rt        |«      S |j                  r'|j                  rt         j                  S t        |«      S |j                  r|S y r‹   )r   rK   rP   r.   rM   rL   rF   rR   )rW   r4   r5   s      r7   rZ   zerf2inv.eval   sæ   € à”—‘‰:˜œaŸe™e™Ü—5‘5ˆLØ�YŠY˜1Ÿ9š9Ü—6‘6ˆMØ�YŠY˜1¤§¡™:Ü—:‘:ÐØ”!—%‘%‰Z˜AŸIšIÜ—5‘5ˆLØ�YŠYÜ˜!“9ÐØ”!—*‘*‰_Ü˜A˜2“;ÐØ�YŠYØˆHØ”!—*‘*‰_Ü˜!“9Ðà�9Š9Ø�yŠyÜ—v‘v�ä˜a“yÐ Ø�9Š9ØˆHð r9   c                 óV   — | j                   \  }}|j                  r|j                  ryy y )NTr	  )r1   r4   r5   s      r7   rx   zerf2inv._eval_is_zero;  s&   € Ø�y‰y‰ˆˆ1Ø�9Š9˜ŸšØð #ˆ9r9   N)rÕ   rÖ   r×   rØ   rB   rÚ   rZ   rx   rý   r9   r7   rS   rS   ã  s&   „ ñ0òf5ð ñó ðó4r9   rS   c                   óŒ   ‡ — e Zd ZdZed„ «       Zdd„Zˆ fd„Zd„ Zd„ Z	d„ Z
d„ ZeZeZeZdd	„Zd
„ Zˆ fd„Zdˆ fd„	Zˆ fd„Zˆ xZS )ÚEia	  
    The classical exponential integral.

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

    For use in SymPy, this function is defined as

    .. math:: \operatorname{Ei}(x) = \sum_{n=1}^\infty \frac{x^n}{n\, n!}
                                     + \log(x) + \gamma,

    where $\gamma$ is the Euler-Mascheroni constant.

    If $x$ is a polar number, this defines an analytic function on the
    Riemann surface of the logarithm. Otherwise this defines an analytic
    function in the cut plane $\mathbb{C} \setminus (-\infty, 0]$.

    **Background**

    The name exponential integral comes from the following statement:

    .. math:: \operatorname{Ei}(x) = \int_{-\infty}^x \frac{e^t}{t} \mathrm{d}t

    If the integral is interpreted as a Cauchy principal value, this statement
    holds for $x > 0$ and $\operatorname{Ei}(x)$ as defined above.

    Examples
    ========

    >>> from sympy import Ei, polar_lift, exp_polar, I, pi
    >>> from sympy.abc import x

    >>> Ei(-1)
    Ei(-1)

    This yields a real value:

    >>> Ei(-1).n(chop=True)
    -0.219383934395520

    On the other hand the analytic continuation is not real:

    >>> Ei(polar_lift(-1)).n(chop=True)
    -0.21938393439552 + 3.14159265358979*I

    The exponential integral has a logarithmic branch point at the origin:

    >>> Ei(x*exp_polar(2*I*pi))
    Ei(x) + 2*I*pi

    Differentiation is supported:

    >>> Ei(x).diff(x)
    exp(x)/x

    The exponential integral is related to many other special functions.
    For example:

    >>> from sympy import expint, Shi
    >>> Ei(x).rewrite(expint)
    -expint(1, x*exp_polar(I*pi)) - I*pi
    >>> Ei(x).rewrite(Shi)
    Chi(x) + Shi(x)

    See Also
    ========

    expint: Generalised exponential integral.
    E1: Special case of the generalised exponential integral.
    li: Logarithmic integral.
    Li: Offset logarithmic integral.
    Si: Sine integral.
    Ci: Cosine integral.
    Shi: Hyperbolic sine integral.
    Chi: Hyperbolic cosine integral.
    uppergamma: Upper incomplete gamma function.

    References
    ==========

    .. [1] https://dlmf.nist.gov/6.6
    .. [2] https://en.wikipedia.org/wiki/Exponential_integral
    .. [3] Abramowitz & Stegun, section 5: https://web.archive.org/web/20201128173312/http://people.math.sfu.ca/~cbm/aands/page_228.htm

    c                 ód  — |j                   rt        j                  S |t        j                  u rt        j                  S |t        j                  u rt        j                  S |j                   rt        j                  S |j                  «       \  }}|rt        |«      dt        z  t        z  |z  z   S y r    )	rP   r   rN   rL   r.   Úextract_branch_factorrM  r
   r   ©rW   ru   r  r`   s       r7   rZ   zEi.evalœ  s‰   € à�9Š9Ü×%Ñ%Ð%Ø”!—*‘*‰_Ü—:‘:ÐØ”!×$Ñ$Ñ$Ü—6‘6ˆMà�9Š9Ü×%Ñ%Ð%à×'Ñ'Ó)‰ˆˆAÙÜ�b“6˜Aœa™C¤™F 1™HÑ$Ð$ð r9   c                 óp   — t        | j                  d   «      }|dk(  rt        |«      |z  S t        | |«      ‚rI   )r   r+   r   r   ©r1   rA   rX   s      r7   rB   zEi.fdiff¬  s6   € Ü˜Ÿ™ 1™Ó&ˆØ�qŠ=Ü�s“8˜C‘<Ðä$ T¨8Ó4Ð4r9   c                 óÄ   •— | j                   d   t        d«      z  j                  r,t        ‰| �  |«      t
        t        z  j	                  |«      z   S t        ‰| �  |«      S r8  )r+   r   rÉ   rË   Ú_eval_evalfr
   r   )r1   ÚprecrÓ   s     €r7   rT  zEi._eval_evalf³  sQ   ø€ Ø�I‰I�a‰Lœ B›Ñ'×4Ò4Ü‘7Ñ& tÓ,´´"±×/AÑ/AÀ$Ó/GÑGÐGÜ‰wÑ" 4Ó(Ð(r9   c                 óV   — ddl m}  |dt        d«      |z  «       t        t        z  z
  S )Nr   r‚   r–   )r…   rƒ   r   r
   r   r‡   s       r7   r‰   zEi._eval_rewrite_as_uppergamma¸  s)   € ÝFñ ˜1œj¨›n¨QÑ.Ó/Ð/´!´B±$Ñ6Ð6r9   c                 óP   — t        dt        d«      |z  «       t        t        z  z
  S )Nr>   r–   )r¢   r   r
   r   r˜   s      r7   r£   zEi._eval_rewrite_as_expint¾  s$   € Ü�qœ* R›.¨Ñ*Ó+Ð+¬a´©dÑ2Ð2r9   c                 óz   — t        |t        «      rt        |j                  d   «      S t        t	        |«      «      S re   )rQ   r   Úlir+   r   r˜   s      r7   Ú_eval_rewrite_as_lizEi._eval_rewrite_as_liÁ  s.   € Ü�aœÔÜ�a—f‘f˜Q‘i“=Ð ô
 ”#�a“&‹zÐr9   c                 ó’   — |j                   r%t        |«      t        |«      z   t        t        z  z
  S t        |«      t        |«      z   S r‹   )Úis_negativeÚShiÚChir
   r   r˜   s      r7   Ú_eval_rewrite_as_SizEi._eval_rewrite_as_SiÊ  s6   € Ø�=Š=Ü�q“6œC ›F‘?¤Q¤r¡TÑ)Ð)ä�q“6œC ›F‘?Ð"r9   c                 ó0   — t        |«      t        |«      z  S r‹   )r   Ú_eisrì   s       r7   rª   zEi._eval_rewrite_as_tractableÓ  s   € Ü�1‹vœ˜Q›ÑÐr9   c                 óª   — ddl m} t        t        d|g«      j                  «      } |t
        j                  |z  |z  |t
        j                  |f«      S ©Nr   ©ÚIntegralrY   )Úsympy.integrals.integralsre  r   r   Únamer   ÚExp1rN   ©r1   ru   rˆ   re  rY   s        r7   Ú_eval_rewrite_as_IntegralzEi._eval_rewrite_as_IntegralÖ  sE   € Ý6ÜÔ'¨¨a¨SÓ1×6Ñ6Ó7ˆÙœŸ™ ™	 !™ a¬×);Ñ);¸QÐ%?Ó@Ð@r9   c                 óÈ  •— ddl m} | j                  d   j                  |d«      }| j                  d   j	                  ||¬«      }|j                  ||«      }|j                  rm|j                  |«      \  }}|€t        |«      n|}t        |«      ||z  z   t        z    ||«      j                  rt        t        z  z
  S t        j                  z
  S t        ‰	| �A  |||¬«      S )Nr   )r   )rµ   r³   )Úsympyr   r+   r¥   rº   r¹   rP   Úas_coeff_exponentr   r   r\  r
   r   r   r.   rË   rÀ   )
r1   r4   r´   rµ   r   Úx0rX   ÚcÚerÓ   s
            €r7   rÀ   zEi._eval_as_leading_termÛ  sÐ   ø€ ÝØ�Y‰Y�q‰\×Ñ  1Ó%ˆØ�i‰i˜‰l×*Ñ*¨1°4Ð*Ó8ˆØ�w‰w�q˜$ÓˆØ�:Š:Ø×(Ñ(¨Ó+‰DˆAˆqØ!˜\”3�q”6¨tˆDÜ�q“6˜A˜d™F‘?¤ZÑ/Ù˜4›×,Ò,””"‘ñ:ð :Ü23·&±&ñ:ð :ä‰wÑ,¨Q°TÀÐ,ÓEÐEr9   c                 óÔ   •— | j                   d   j                  |d«      }|j                  r, | j                  | j                   Ž }|j	                  |||«      S t
        ‰| �  |||«      S re   )r+   r¥   rP   r_  Ú_eval_nseriesrË   ©r1   r4   r`   r´   rµ   rn  ÚfrÓ   s          €r7   rr  zEi._eval_nseriesç  sa   ø€ Ø�Y‰Y�q‰\×Ñ  1Ó%ˆØ�:Š:Ø(�×(Ñ(¨$¯)©)Ð4ˆAØ—?‘? 1 a¨Ó.Ð.Ü‰wÑ$ Q¨¨4Ó0Ð0r9   c                 óR  •— ddl m} |d   }|t        j                  t        j                  fv r_| j
                  d   }t        |«      D �cg c]  }t        |«      ||z  z  ‘Œ c} |d||z  z  |«      gz   }	t        |«      |z  t        |	Ž z  S t        t        | �3  ||||«      S c c}w ©Nr   rÃ   r>   )rÅ   rÄ   r   rL   rN   r+   rÊ   r   r   r   rË   rM  rÌ   r  s             €r7   rÌ   zEi._eval_aseriesî  s¢   ø€ Ý,Ø�a‘ˆà”Q—Z‘Z¤×!3Ñ!3Ð4Ñ4Ø—	‘	˜!‘ˆAÜ05°a³Ö9¨1”˜1“  Q¡Ó&Ò9Ù˜1˜Q ™T™6 1Ó%Ð&ñ'ˆAä˜“F˜1‘H¤ Q Ñ'Ð'ä”R˜Ñ,¨Q°°q¸$Ó?Ð?ùò	 :s   ÁB$rÔ   r‹   ©r   )rÕ   rÖ   r×   rØ   rÚ   rZ   rB   rT  r‰   r£   rZ  r_  Ú_eval_rewrite_as_CiÚ_eval_rewrite_as_ChiÚ_eval_rewrite_as_Shirª   rj  rÀ   rr  rÌ   rÜ   rÝ   s   @r7   rM  rM  D  sr   ø„ ñTðn ñ%ó ð%ó5ô)ò
7ò3òò#ð
 .ÐØ.ÐØ.Ðó òAô

Fõ1÷
@ð 
@r9   rM  c                   ón   ‡ — e Zd ZdZed„ «       Zd„ Zd„ Zd„ Zd„ Z	d„ Z
e
Ze
Ze
Zdˆ fd„	Zˆ fd	„Zd
„ Zˆ xZS )r¢   a£  
    Generalized exponential integral.

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

    This function is defined as

    .. math:: \operatorname{E}_\nu(z) = z^{\nu - 1} \Gamma(1 - \nu, z),

    where $\Gamma(1 - \nu, z)$ is the upper incomplete gamma function
    (``uppergamma``).

    Hence for $z$ with positive real part we have

    .. math:: \operatorname{E}_\nu(z)
              =   \int_1^\infty \frac{e^{-zt}}{t^\nu} \mathrm{d}t,

    which explains the name.

    The representation as an incomplete gamma function provides an analytic
    continuation for $\operatorname{E}_\nu(z)$. If $\nu$ is a
    non-positive integer, the exponential integral is thus an unbranched
    function of $z$, otherwise there is a branch point at the origin.
    Refer to the incomplete gamma function documentation for details of the
    branching behavior.

    Examples
    ========

    >>> from sympy import expint, S
    >>> from sympy.abc import nu, z

    Differentiation is supported. Differentiation with respect to $z$ further
    explains the name: for integral orders, the exponential integral is an
    iterated integral of the exponential function.

    >>> expint(nu, z).diff(z)
    -expint(nu - 1, z)

    Differentiation with respect to $\nu$ has no classical expression:

    >>> expint(nu, z).diff(nu)
    -z**(nu - 1)*meijerg(((), (1, 1)), ((0, 0, 1 - nu), ()), z)

    At non-postive integer orders, the exponential integral reduces to the
    exponential function:

    >>> expint(0, z)
    exp(-z)/z
    >>> expint(-1, z)
    exp(-z)/z + exp(-z)/z**2

    At half-integers it reduces to error functions:

    >>> expint(S(1)/2, z)
    sqrt(pi)*erfc(sqrt(z))/sqrt(z)

    At positive integer orders it can be rewritten in terms of exponentials
    and ``expint(1, z)``. Use ``expand_func()`` to do this:

    >>> from sympy import expand_func
    >>> expand_func(expint(5, z))
    z**4*expint(1, z)/24 + (-z**3 + z**2 - 2*z + 6)*exp(-z)/24

    The generalised exponential integral is essentially equivalent to the
    incomplete gamma function:

    >>> from sympy import uppergamma
    >>> expint(nu, z).rewrite(uppergamma)
    z**(nu - 1)*uppergamma(1 - nu, z)

    As such it is branched at the origin:

    >>> from sympy import exp_polar, pi, I
    >>> expint(4, z*exp_polar(2*pi*I))
    I*pi*z**3/3 + expint(4, z)
    >>> expint(nu, z*exp_polar(2*pi*I))
    z**(nu - 1)*(exp(2*I*pi*nu) - 1)*gamma(1 - nu) + expint(nu, z)

    See Also
    ========

    Ei: Another related function called exponential integral.
    E1: The classical case, returns expint(1, z).
    li: Logarithmic integral.
    Li: Offset logarithmic integral.
    Si: Sine integral.
    Ci: Cosine integral.
    Shi: Hyperbolic sine integral.
    Chi: Hyperbolic cosine integral.
    uppergamma

    References
    ==========

    .. [1] https://dlmf.nist.gov/8.19
    .. [2] https://functions.wolfram.com/GammaBetaErf/ExpIntegralE/
    .. [3] https://en.wikipedia.org/wiki/Exponential_integral

    c           	      ó˜  — ddl m}m} t        |«      }||k7  rt	        ||«      S |j
                  r|dk  s|j
                  s6d|z  j
                  r't        t        ||dz
  z   |d|z
  |«      z  «      «      S |j                  «       \  }}|t        j                  u ry |j                  r^|dkD  sy t	        ||«      dt        z  t        z  |z  t        j                  |dz
  z  z  t        |dz
  «      z  t        |«      |dz
  z  z  z
  S t        dt        z  t        z  |z  |z  «      dz
  ||dz
  z  z   |d|z
  «      z  t	        ||«      z   S )Nr   )Úgammarƒ   r*   r>   )r…   r}  rƒ   r   r¢   Ú
is_Integerr   rO  r   r.   Ú
is_integerr   r
   rO   r   r   )rW   Únuru   r}  rƒ   Únu2r`   s          r7   rZ   zexpint.evalc  s=  € çOÜ˜‹nˆØ�Š9Ü˜#˜q“>Ð!Ø�=Š=˜R 1šW¨R¯]ª]ÀÀ"Á×?PÒ?PÜœj¨¨R°!©V©±ZÀÀBÁÈÓ5JÑ)JÓKÓLÐLð ×&Ñ&Ó(‰ˆˆ1Ø”—‘‰;ØØ�=Š=Ø˜’6ØÜ˜"˜a“=Ø”B‘$”q‘&˜‘(œ1Ÿ=™=¨2°©6Ñ2Ñ2´9¸RÀ!¹VÓ3DÑDÄZÐPQÃ]ÐUWÐZ[ÑU[ÑE\Ñ\ñ]ð ]ô ˜œ!™œB™˜r™	 !™Ó$ qÑ(¨!¨b°1©f©+Ñ5±e¸AÀ¹F³mÑCÄfÈRÐQRÃmÑSÐSr9   c           	      ó®   — | j                   \  }}|dk(  r!||dz
  z   t        g ddgddd|z
  gg |«      z  S |dk(  rt        |dz
  |«       S t        | |«      ‚r4  )r+   r'   r¢   r   )r1   rA   r€  ru   s       r7   rB   zexpint.fdiffy  sn   € Ø—	‘	‰ˆˆAØ�qŠ=Ø˜˜Q™‘K�<¤¨¨Q°¨F°Q¸¸1¸r¹6°NÀBÈÓ JÑJÐJØ˜Š]Ü˜2 ™6 1Ó%Ð%Ð%ä$ T¨8Ó4Ð4r9   c                 ó8   — ddl m} ||dz
  z   |d|z
  |«      z  S )Nr   r‚   r>   )r…   rƒ   )r1   r€  ru   rˆ   rƒ   s        r7   r‰   z"expint._eval_rewrite_as_uppergamma‚  s#   € ÝFØ�2˜‘6‰{™: a¨"¡f¨aÓ0Ñ0Ð0r9   c                 óÊ  — |dk(  r2t        |t        t         t        z  «      z  «       t        t        z  z
  S |j                  rš|dkD  r•t        |«       }||dz
  z  t        |dz
  «      z  t        |«      j                  t         «      z  t        |«      t        |dz
  «      z  t        t        |dz
  «      D �cg c]  }t        ||z
  dz
  «      ||z  z  ‘Œ c}Ž z  z   S | S c c}w rI  )rM  r    r
   r   r~  r   r   ÚE1rë   r   r   rÊ   )r1   r€  ru   rˆ   r4   rb   s         r7   Ú_eval_rewrite_as_Eizexpint._eval_rewrite_as_Ei†  sØ   € Ø�Š7Ü�qœ¤A 2¤b¡5Ó)Ñ)Ó*Ð*¬Q¬r©TÑ1Ð1Ø�]Š]˜r Ašvä˜A“�ˆAØ�r˜A‘v‘;œy¨¨a©Ó0Ñ0´°A³·±¼rÓ1BÑBÜ�A“”y  a¡Ó(Ñ(Ü¼%ÀÀQÁ»-ÖH°Q”i  Q¡¨¡
Ó+¨A¨q©DÓ0ÒHÐIñJñJð Jð ˆKùò Is   Â8C c                 óV   —  | j                  t        «      j                   t        fi |¤ŽS r‹   )rë   rM  r¢   rø   s     r7   rù   zexpint._eval_expand_func’  s#   € Ø'ˆt�|‰|œBÓ×'Ñ'¬Ñ8°%Ñ8Ð8r9   c                 ó>   — |dk7  r| S t        |«      t        |«      z
  S r:  )r]  r^  )r1   r€  ru   rˆ   s       r7   r_  zexpint._eval_rewrite_as_Si•  s    € Ø�Š7ØˆKÜ�1‹vœ˜A›‰Ðr9   c                 ó\  •— | j                   d   j                  |«      s}| j                   d   }|dk(  r, | j                  | j                   Ž }|j                  |||«      S |j                  r1|dkD  r, | j
                  | j                   Ž }|j                  |||«      S t        ‰| �  |||«      S rI   )r+   Úhasr_  rr  r~  r†  rË   )r1   r4   r`   r´   rµ   r€  rt  rÓ   s          €r7   rr  zexpint._eval_nseries�  s    ø€ Ø�y‰y˜‰|×Ñ Ô"Ø—‘˜1‘ˆBØ�QŠwØ,�D×,Ñ,¨d¯i©iÐ8�Ø—‘ q¨!¨TÓ2Ð2Ø—’ 2¨¢6Ø,�D×,Ñ,¨d¯i©iÐ8�Ø—‘ q¨!¨TÓ2Ð2Ü‰wÑ$ Q¨¨4Ó0Ð0r9   c                 ó|  •— ddl m} |d   }| j                  d   }|t        j                  u ru| j                  d   }t        |«      D �	cg c](  }	t        j                  |	z  t        ||	«      z  ||	z  z  ‘Œ* c}	 |d||z  z  |«      gz   }
t        | «      |z  t        |
Ž z  S t        t        | �3  ||||«      S c c}	w rv  )rÅ   rÄ   r+   r   rL   rÊ   rO   r   r   r   rË   r¢   rÌ   )r1   r`   rÍ   r4   r´   rÄ   rÎ   r€  ru   rb   rÒ   rÓ   s              €r7   rÌ   zexpint._eval_aseries¨  s½   ø€ Ý,Ø�a‘ˆØ�Y‰Y�q‰\ˆà”A—J‘JÑØ—	‘	˜!‘ˆAÜKPÐQRË8ÖTÀa”—‘ Ñ!¤O°B¸Ó$:Ñ:¸QÀ¹TÓAÒTÑX]Ð^_Ð`aÐcdÑ`dÑ^dÐfgÓXhÐWiÑiˆAÜ˜˜“G˜A‘I¤ a Ñ(Ð(ä”V˜TÑ0°°E¸1¸dÓCÐCùò Us   Á
-B9c                 óÆ   — ddl m} | j                  \  }}t        t	        d|«      j
                  «      } ||| z  t        | |z  «      z  |dt        j                  f«      S ©Nr   rd  rY   r>   )	rf  re  r+   r   r   rg  r   r   rL   )r1   r+   rˆ   re  r`   r4   rY   s          r7   rj  z expint._eval_rewrite_as_Integral´  sW   € Ý6Ø�y‰y‰ˆˆ1ÜÔ'¨¨TÓ2×7Ñ7Ó8ˆÙ˜˜A˜2™¤ Q B q¡D£	Ñ)¨A¨q´!·*±*Ð+=Ó>Ð>r9   rw  )rÕ   rÖ   r×   rØ   rÚ   rZ   rB   r‰   r†  rù   r_  rx  ry  rz  rr  rÌ   rj  rÜ   rÝ   s   @r7   r¢   r¢   û  s]   ø„ ñdðN ñTó ðTò*5ò1ò
ò9òð .ÐØ.ÐØ.Ðõ	1ô
Dö?r9   r¢   c                 ó   — t        d| «      S )a+  
    Classical case of the generalized exponential integral.

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

    This is equivalent to ``expint(1, z)``.

    Examples
    ========

    >>> from sympy import E1
    >>> E1(0)
    expint(1, 0)

    >>> E1(5)
    expint(1, 5)

    See Also
    ========

    Ei: Exponential integral.
    expint: Generalised exponential integral.
    li: Logarithmic integral.
    Li: Offset logarithmic integral.
    Si: Sine integral.
    Ci: Cosine integral.
    Shi: Hyperbolic sine integral.
    Chi: Hyperbolic cosine integral.

    r>   )r¢   )ru   s    r7   r…  r…  »  s   € ô@ �!�Q‹<Ðr9   c                   óv   — e Zd ZdZed„ «       Zdd„Zd„ Zd„ Zd„ Z	d„ Z
d„ ZeZd	„ ZeZd
„ Zd„ Zdd„Zdd„Zd„ Zy)rY  aà	  
    The classical logarithmic integral.

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

    For use in SymPy, this function is defined as

    .. math:: \operatorname{li}(x) = \int_0^x \frac{1}{\log(t)} \mathrm{d}t \,.

    Examples
    ========

    >>> from sympy import I, oo, li
    >>> from sympy.abc import z

    Several special values are known:

    >>> li(0)
    0
    >>> li(1)
    -oo
    >>> li(oo)
    oo

    Differentiation with respect to $z$ is supported:

    >>> from sympy import diff
    >>> diff(li(z), z)
    1/log(z)

    Defining the ``li`` function via an integral:
    >>> from sympy import integrate
    >>> integrate(li(z))
    z*li(z) - Ei(2*log(z))

    >>> integrate(li(z),z)
    z*li(z) - Ei(2*log(z))


    The logarithmic integral can also be defined in terms of ``Ei``:

    >>> from sympy import Ei
    >>> li(z).rewrite(Ei)
    Ei(log(z))
    >>> diff(li(z).rewrite(Ei), z)
    1/log(z)

    We can numerically evaluate the logarithmic integral to arbitrary precision
    on the whole complex plane (except the singular points):

    >>> li(2).evalf(30)
    1.04516378011749278484458888919

    >>> li(2*I).evalf(30)
    1.0652795784357498247001125598 + 3.08346052231061726610939702133*I

    We can even compute Soldner's constant by the help of mpmath:

    >>> from mpmath import findroot
    >>> findroot(li, 2)
    1.45136923488338

    Further transformations include rewriting ``li`` in terms of
    the trigonometric integrals ``Si``, ``Ci``, ``Shi`` and ``Chi``:

    >>> from sympy import Si, Ci, Shi, Chi
    >>> li(z).rewrite(Si)
    -log(I*log(z)) - log(1/log(z))/2 + log(log(z))/2 + Ci(I*log(z)) + Shi(log(z))
    >>> li(z).rewrite(Ci)
    -log(I*log(z)) - log(1/log(z))/2 + log(log(z))/2 + Ci(I*log(z)) + Shi(log(z))
    >>> li(z).rewrite(Shi)
    -log(1/log(z))/2 + log(log(z))/2 + Chi(log(z)) - Shi(log(z))
    >>> li(z).rewrite(Chi)
    -log(1/log(z))/2 + log(log(z))/2 + Chi(log(z)) - Shi(log(z))

    See Also
    ========

    Li: Offset logarithmic integral.
    Ei: Exponential integral.
    expint: Generalised exponential integral.
    E1: Special case of the generalised exponential integral.
    Si: Sine integral.
    Ci: Cosine integral.
    Shi: Hyperbolic sine integral.
    Chi: Hyperbolic cosine integral.

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Logarithmic_integral
    .. [2] https://mathworld.wolfram.com/LogarithmicIntegral.html
    .. [3] https://dlmf.nist.gov/6
    .. [4] https://mathworld.wolfram.com/SoldnersConstant.html

    c                 óü   — |j                   rt        j                  S |t        j                  u rt        j                  S |t        j
                  u rt        j
                  S |j                   rt        j                  S y r‹   )rP   r   r.   rM   rN   rL   rA  s     r7   rZ   zli.evalB  sS   € à�9Š9Ü—6‘6ˆMØ”!—%‘%‰ZÜ×%Ñ%Ð%Ø”!—*‘*‰_Ü—:‘:ÐØ�9Š9Ü—6‘6ˆMð r9   c                 óz   — | j                   d   }|dk(  rt        j                  t        |«      z  S t	        | |«      ‚rI   ©r+   r   rM   r   r   rR  s      r7   rB   zli.fdiffM  ó6   € Ø�i‰i˜‰lˆØ�qŠ=Ü—5‘5œ3˜s›8Ñ#Ð#ä$ T¨8Ó4Ð4r9   c                 óx   — | j                   d   }|j                  s| j                  |j                  «       «      S y re   )r+   r~   r0   rg   rt   s     r7   ri   zli._eval_conjugateT  s2   € Ø�I‰I�a‰Lˆà×%Ò%Ø—9‘9˜QŸ[™[›]Ó+Ð+ð &r9   c                 ó0   — t        |«      t        d«      z   S r    )ÚLirY  r˜   s      r7   Ú_eval_rewrite_as_Lizli._eval_rewrite_as_LiZ  ó   € Ü�!‹u”r˜!“u‰}Ðr9   c                 ó*   — t        t        |«      «      S r‹   )rM  r   r˜   s      r7   r†  zli._eval_rewrite_as_Ei]  s   € Ü”#�a“&‹zÐr9   c           	      óú   — ddl m}  |dt        |«       «       t        j                  t        t        |«      «      t        t        j
                  t        |«      z  «      z
  z  z   t        t        |«       «      z
  S ©Nr   r‚   )r…   rƒ   r   r   r†   rM   r‡   s       r7   r‰   zli._eval_rewrite_as_uppergamma`  s`   € ÝFÙ˜A¤ A£˜wÓ'Ð'Ü—‘œœC ›F›¤c¬!¯%©%´°A³©,Ó&7Ñ7Ñ8ñ9Ü;>ÄÀAÃ¸w»<ñHð 	Ir9   c                 óN  — t        t        t        |«      z  «      t        t        t        t        |«      z  «      z  z
  t        j
                  t        t        j                  t        |«      z  «      t        t        |«      «      z
  z  z
  t        t        t        |«      z  «      z
  S r‹   )ÚCir
   r   ÚSir   r†   rM   r˜   s      r7   r_  zli._eval_rewrite_as_Sie  sp   € Ü”1”S˜“V‘8“œq¤¤A¤c¨!£f¡H£™~Ñ-Ü—‘œœAŸE™E¤# a£&™LÓ)¬C´°A³«KÑ7Ñ8ñ9Ü;>¼qÄÀQÃ¹x»=ñIð 	Jr9   c                 óì   — t        t        |«      «      t        t        |«      «      z
  t        j                  t        t        j
                  t        |«      z  «      t        t        |«      «      z
  z  z
  S r‹   )r^  r   r]  r   r†   rM   r˜   s      r7   rz  zli._eval_rewrite_as_Shik  sJ   € Ü”C˜“F“œc¤# a£&›kÑ)¬A¯F©F´C¼¿¹¼cÀ!»f¹Ó4EÌÌCÐPQËFËÑ4SÑ,TÑTÐUr9   c           	      óì   — t        |«      t        ddt        |«      «      z  t        j                  t        t        |«      «      t        t        j                  t        |«      z  «      z
  z  z   t
        z   S )N)r>   r>   )r*   r*   )r   r&   r   r†   rM   r   r˜   s      r7   rž   zli._eval_rewrite_as_hyperp  sY   € Ü�A“”u˜V V¬S°«VÓ4Ñ4Ü—‘œœC ›F›¤c¬!¯%©%´°A³©,Ó&7Ñ7Ñ8ñ9Ü;EñFð 	Gr9   c                 óö   — t        t        |«       «       t        j                  t        t        j                  t        |«      z  «      t        t        |«      «      z
  z  z
  t	        ddt        |«       «      z
  S )N)rý   rÔ   ))r   r   rý   )r   r   r†   rM   r'   r˜   s      r7   r™   zli._eval_rewrite_as_meijergt  sY   € Ü”c˜!“f�W“�¤§¡¬¬A¯E©E´#°a³&©LÓ(9¼CÄÀAÃ»KÑ(GÑ HÑHÜ˜* l´S¸³V°GÓ<ñ=ð 	>r9   Nc                 ó0   — |t        t        |«      «      z  S r‹   )ra  r   rì   s       r7   rª   zli._eval_rewrite_as_tractablex  s   € Ø”4œ˜A›“<ÑÐr9   c                 óÚ   — | j                   d   }t        d|«      D �cg c]  }t        |«      |z  t        |«      |z  z  ‘Œ! }}t        t        t        |«      «      z   t        |Ž z   S c c}w rI   )r+   rÊ   r   r   r   r   )r1   r4   r`   r´   rµ   ru   rb   rÒ   s           r7   rr  zli._eval_nseries{  s`   € Ø�I‰I�a‰LˆÜ7<¸QÀ³{ÖC°!Œc�!‹f�q‰[œI a›L¨1Ñ,Ó-ÐCˆÐCÜœC¤ A£›KÑ'¬#¨q¨'Ñ1Ð1ùò Ds   ž$A(c                 ó<   — | j                   d   }|j                  ryy rl   r	  rt   s     r7   rx   zli._eval_is_zero€  ó   € Ø�I‰I�a‰LˆØ�9Š9Øð r9   rÔ   r‹   rw  )rÕ   rÖ   r×   rØ   rÚ   rZ   rB   ri   r—  r†  r‰   r_  rx  rz  ry  rž   r™   rª   rr  rx   rý   r9   r7   rY  rY  Þ  sm   „ ñ`ðF ñó ðó5ò,òòòIò
Jð .ÐòVð 0ÐòGò>ó ó2ó
r9   rY  c                   óD   — e Zd ZdZed„ «       Zd	d„Zd„ Zd„ Zd
d„Z	dd„Z
y)r–  ab  
    The offset logarithmic integral.

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

    For use in SymPy, this function is defined as

    .. math:: \operatorname{Li}(x) = \operatorname{li}(x) - \operatorname{li}(2)

    Examples
    ========

    >>> from sympy import Li
    >>> from sympy.abc import z

    The following special value is known:

    >>> Li(2)
    0

    Differentiation with respect to $z$ is supported:

    >>> from sympy import diff
    >>> diff(Li(z), z)
    1/log(z)

    The shifted logarithmic integral can be written in terms of $li(z)$:

    >>> from sympy import li
    >>> Li(z).rewrite(li)
    li(z) - li(2)

    We can numerically evaluate the logarithmic integral to arbitrary precision
    on the whole complex plane (except the singular points):

    >>> Li(2).evalf(30)
    0

    >>> Li(4).evalf(30)
    1.92242131492155809316615998938

    See Also
    ========

    li: Logarithmic integral.
    Ei: Exponential integral.
    expint: Generalised exponential integral.
    E1: Special case of the generalised exponential integral.
    Si: Sine integral.
    Ci: Cosine integral.
    Shi: Hyperbolic sine integral.
    Chi: Hyperbolic cosine integral.

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Logarithmic_integral
    .. [2] https://mathworld.wolfram.com/LogarithmicIntegral.html
    .. [3] https://dlmf.nist.gov/6

    c                 ó„   — |t         j                  u rt         j                  S |t        d«      k(  rt         j                  S y r    )r   rL   r.   rA  s     r7   rZ   zLi.evalÆ  s0   € à”—
‘
‰?Ü—:‘:ÐØ”!�A“$ŠYÜ—6‘6ˆMð r9   c                 óz   — | j                   d   }|dk(  rt        j                  t        |«      z  S t	        | |«      ‚rI   r’  rR  s      r7   rB   zLi.fdiffÍ  r“  r9   c                 óJ   — | j                  t        «      j                  |«      S r‹   )rë   rY  Úevalf)r1   rU  s     r7   rT  zLi._eval_evalfÔ  s   € Ø�|‰|œBÓ×%Ñ% dÓ+Ð+r9   c                 ó0   — t        |«      t        d«      z
  S r    )rY  r˜   s      r7   rZ  zLi._eval_rewrite_as_li×  r˜  r9   Nc                 óN   — | j                  t        «      j                  dd¬«      S )Nré   T)r2   )rë   rY  rì   s       r7   rª   zLi._eval_rewrite_as_tractableÚ  s!   € Ø�|‰|œBÓ×'Ñ'¨¸$Ð'Ó?Ð?r9   c                 óZ   —  | j                   | j                  Ž }|j                  |||«      S r‹   )rZ  r+   rr  )r1   r4   r`   r´   rµ   rt  s         r7   rr  zLi._eval_nseriesÝ  s+   € Ø$ˆD×$Ñ$ d§i¡iÐ0ˆØ�‰˜q ! TÓ*Ð*r9   rÔ   r‹   rw  )rÕ   rÖ   r×   rØ   rÚ   rZ   rB   rT  rZ  rª   rr  rý   r9   r7   r–  r–  …  s6   „ ñ=ð@ ñó ðó5ò,òó@ô+r9   r–  c                   óH   ‡ — e Zd ZdZed„ «       Zdd„Zd„ Zd„ Zdˆ fd„	Z	ˆ xZ
S )	ÚTrigonometricIntegralz) Base class for trigonometric integrals. c                 óV  — |t         j                  u r| j                  S |t         j                  u r| j	                  «       S |t         j
                  u r| j                  «       S |j                  r| j                  S |j                  t        t        «      «      }|€)| j                  d«      dk(  r|j                  t        «      }|�| j                  |d«      S |j                  t        t         «      «      }|�| j                  |d«      S |j                  t        d«      «      }|€%| j                  d«      dk(  r|j                  d«      }|�| j                  |«      S |j                  «       \  }}|dk(  r||k(  ry dt        z  t        z  |z  | j                  d«      z   | |«      z   S )Nr   r>   r–   r*   )r   r.   Ú_atzerorL   Ú_atinfrN   Ú	_atneginfrP   rT   r   r
   Ú	_trigfuncÚ_IfactorÚ_minusfactorrO  r   rP  s       r7   rZ   zTrigonometricIntegral.evalé  sn  € à”—‘‰;Ø—;‘;ÐØ”!—*‘*‰_Ø—:‘:“<ÐØ”!×$Ñ$Ñ$Ø—=‘=“?Ð"à�9Š9Ø—;‘;Ðà×'Ñ'¬
´1«Ó6ˆØˆ:˜#Ÿ-™-¨Ó*¨aÒ/Ø×+Ñ+¬AÓ.ˆBØˆ>Ø—<‘<  AÓ&Ð&Ø×'Ñ'¬
´A°2«Ó7ˆØˆ>Ø—<‘<  BÓ'Ð'à×'Ñ'¬
°2«Ó7ˆØˆ:˜#Ÿ-™-¨Ó*¨aÒ/Ø×+Ñ+¨BÓ/ˆBØˆ>Ø×#Ñ# BÓ'Ð'à×'Ñ'Ó)‰ˆˆAØ�Š6�b˜A’gØØ”‰t”A‰v�a‰x˜Ÿ™ aÓ(Ñ(©3¨r«7Ñ2Ð2r9   c                 ó|   — t        | j                  d   «      }|dk(  r| j                  |«      |z  S t        | |«      ‚rI   )r   r+   r´  r   rR  s      r7   rB   zTrigonometricIntegral.fdiff	  s<   € Ü˜Ÿ™ 1™Ó&ˆØ�qŠ=Ø—>‘> #Ó& sÑ*Ð*ä$ T¨8Ó4Ð4r9   c                 óJ   — | j                  |«      j                  t        «      S r‹   )r£   rë   rM  r˜   s      r7   r†  z)TrigonometricIntegral._eval_rewrite_as_Ei  s   € Ø×+Ñ+¨AÓ.×6Ñ6´rÓ:Ð:r9   c                 óN   — ddl m} | j                  |«      j                  |«      S r›  )r…   rƒ   r£   rë   r‡   s       r7   r‰   z1TrigonometricIntegral._eval_rewrite_as_uppergamma  s!   € ÝFØ×+Ñ+¨AÓ.×6Ñ6°zÓBÐBr9   c                 óÄ  •— | j                   d   j                  |d«      dk7  rt        ‰| �  |||«      S | j	                  |«      j                  |||«      }| j	                  d«      dk7  r|dz  }|j                  t        d„ d¬«      }| j	                  d«      dk7  r|t        t        |«      z   z  }|j                  || j                   d   «      j                  |||«      S )Nr   r>   c                 ó   — | |z  |z  S r‹   rý   )rY   r`   s     r7   ú<lambda>z5TrigonometricIntegral._eval_nseries.<locals>.<lambda>  s   € ¸!¸Q¹$¸q¹&€ r9   F)Úsimultaneous)	r+   r»   rË   rr  r´  Úreplacer   r   r   )r1   r4   r`   r´   rµ   Ú
baseseriesrÓ   s         €r7   rr  z#TrigonometricIntegral._eval_nseries  sÏ   ø€ à�9‰9�Q‰<×Ñ˜Q Ó" aÒ'Ü‘7Ñ(¨¨A¨tÓ4Ð4Ø—^‘^ AÓ&×4Ñ4°Q¸¸4Ó@ˆ
Ø�>‰>˜!Ó Ò!Ø˜!‰OˆJØ×'Ñ'¬Ñ-@ÈuÐ'ÓUˆ
Ø�>‰>˜!Ó Ò!Øœ*¤s¨1£vÑ-Ñ-ˆJØ�‰˜q $§)¡)¨A¡,Ó/×=Ñ=¸aÀÀDÓIÐIr9   rÔ   rw  )rÕ   rÖ   r×   rØ   rÚ   rZ   rB   r†  r‰   rr  rÜ   rÝ   s   @r7   r¯  r¯  å  s6   ø„ Ù3ð ñ3ó ð3ó>5ò;òC÷
Jñ 
Jr9   r¯  c                   óš   ‡ — e Zd ZdZeZej                  Ze	d„ «       Z
e	d„ «       Ze	d„ «       Ze	d„ «       Zd„ Zd„ ZeZd„ Zˆ fd	„Zd
„ Zˆ xZS )rž  aø  
    Sine integral.

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

    This function is defined by

    .. math:: \operatorname{Si}(z) = \int_0^z \frac{\sin{t}}{t} \mathrm{d}t.

    It is an entire function.

    Examples
    ========

    >>> from sympy import Si
    >>> from sympy.abc import z

    The sine integral is an antiderivative of $sin(z)/z$:

    >>> Si(z).diff(z)
    sin(z)/z

    It is unbranched:

    >>> from sympy import exp_polar, I, pi
    >>> Si(z*exp_polar(2*I*pi))
    Si(z)

    Sine integral behaves much like ordinary sine under multiplication by ``I``:

    >>> Si(I*z)
    I*Shi(z)
    >>> Si(-z)
    -Si(z)

    It can also be expressed in terms of exponential integrals, but beware
    that the latter is branched:

    >>> from sympy import expint
    >>> Si(z).rewrite(expint)
    -I*(-expint(1, z*exp_polar(-I*pi/2))/2 +
         expint(1, z*exp_polar(I*pi/2))/2) + pi/2

    It can be rewritten in the form of sinc function (by definition):

    >>> from sympy import sinc
    >>> Si(z).rewrite(sinc)
    Integral(sinc(_t), (_t, 0, z))

    See Also
    ========

    Ci: Cosine integral.
    Shi: Hyperbolic sine integral.
    Chi: Hyperbolic cosine integral.
    Ei: Exponential integral.
    expint: Generalised exponential integral.
    sinc: unnormalized sinc function
    E1: Special case of the generalised exponential integral.
    li: Logarithmic integral.
    Li: Offset logarithmic integral.

    References
    ==========

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

    c                 ó0   — t         t        j                  z  S r‹   ©r   r   r†   ©rW   s    r7   r²  z	Si._atinfn  s   € ä”!—&‘&‰yÐr9   c                 ó2   — t          t        j                  z  S r‹   rÂ  rÃ  s    r7   r³  zSi._atneginfr  s   € äˆs”1—6‘6‰zÐr9   c                 ó   — t        |«       S r‹   )rž  rA  s     r7   r¶  zSi._minusfactorv  s   € ä�1“ˆvˆr9   c                 ó,   — t         t        |«      z  |z  S r‹   )r
   r]  ©rW   ru   Úsigns      r7   rµ  zSi._Ifactorz  s   € ä”�Q“‰x˜‰}Ðr9   c                 óš   — t         dz  t        t        t        «      |z  «      t        t        t         «      |z  «      z
  dz  t        z  z   S r    )r   r…  r   r
   r˜   s      r7   r£   zSi._eval_rewrite_as_expint~  s=   € ä�!‰t”rœ*¤Q›-¨™/Ó*¬R´
¼A¸2³¸qÑ0@Ó-AÑAÀ1ÑDÄQÑFÑFÐFr9   c                 óx   — ddl m} t        t        d|g«      j                  «      } |t        |«      |d|f«      S rc  )rf  re  r   r   rg  r%   ri  s        r7   rj  zSi._eval_rewrite_as_Integral‚  s6   € Ý6ÜÔ'¨¨a¨SÓ1×6Ñ6Ó7ˆÙœ˜Q› ! Q¨ Ó+Ð+r9   c                 ó<  — | j                   d   j                  |||¬«      }|j                  |d«      }|t        j                  u r+|j                  |dt        |«      j                  rdnd¬«      }|j                  r|S |j                  s| j                  |«      S | S ©Nr   r³   r¶   r·   r¸   ©r+   rº   r»   r   rK   r¥   r   r\  rP   r  r0   r¾   s         r7   rÀ   zSi._eval_as_leading_term‰  s…   € Ø�i‰i˜‰l×*Ñ*¨1°4¸dÐ*ÓCˆØ�x‰x˜˜1‹~ˆà”1—5‘5‰=Ø—9‘9˜Q ¬b°«h×.BÒ.B¡sÈ�9ÓLˆDØ�<Š<ØˆJØ×!Ò!Ø—9‘9˜T“?Ð"àˆKr9   c                 ór  •— ddl m} |d   }|t        j                  u rú| j                  d   }t        |dz  dz   «      D �cg c]0  }t        j                  |z  t        d|z  «      z  |d|z  dz   z  z  ‘Œ2 c} |d||z  z  |«      gz   }	t        |dz  «      D �cg c]3  }t        j                  |z  t        d|z  dz   «      z  |d|dz   z  z  z  ‘Œ5 c} |d||z  z  |«      gz   }
t        dz  t        |«      t        |	Ž z  z
  t        |«      t        |
Ž z  z
  S t        t        | �;  ||||«      S c c}w c c}w rÂ   )rÅ   rÄ   r   rL   r+   rÊ   rO   r   r   r#   r   r$   rË   rž  rÌ   )r1   r`   rÍ   r4   r´   rÄ   rÎ   ru   rb   ÚpÚqrÓ   s              €r7   rÌ   zSi._eval_aseries–  sH  ø€ Ý,Ø�a‘ˆð ”A—J‘JÑØ—	‘	˜!‘ˆAä" 1 a¡4¨!¡8›_ö.Øô —‘ Ñ!¤I¨a°©c£NÑ2°Q¸¸1¹¸q¹±\ÓAò .Ù16°q¸¸A¹±v¸qÓ1AÐ0BñCˆAô # 1 a¡4›[ö*Øô —‘ Ñ!¤I¨a°©c°A©gÓ$6Ñ6¸¸QÀÀAÁ¹Y¹ÓGò *Ù-2°1°Q¸±T±6¸1Ó-=Ð,>ñ?ˆAä�a‘4œ#˜a›&¤ a ™.Ñ(¬3¨q«6´#°q°'©>Ñ9Ð9ô ”R˜Ñ,¨Q°°q¸$Ó?Ð?ùò.ùò*s   Á5D/Â8D4c                 ó<   — | j                   d   }|j                  ryy rl   r	  rt   s     r7   rx   zSi._eval_is_zero¦  r¥  r9   )rÕ   rÖ   r×   rØ   r$   r´  r   r.   r±  rÚ   r²  r³  r¶  rµ  r£   rj  Ú_eval_rewrite_as_sincrÀ   rÌ   rx   rÜ   rÝ   s   @r7   rž  rž  $  s‹   ø„ ñDðL €IØ�f‰f€Gàñó ðð ñó ðð ñó ðð ñó ðòGò,ð
 7Ðòô@ö r9   rž  c                   ó�   ‡ — e Zd ZdZeZej                  Ze	d„ «       Z
e	d„ «       Ze	d„ «       Ze	d„ «       Zd„ Zd„ Zd„ Zˆ fd	„Zˆ xZS )
r�  aâ  
    Cosine integral.

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

    This function is defined for positive $x$ by

    .. math:: \operatorname{Ci}(x) = \gamma + \log{x}
                         + \int_0^x \frac{\cos{t} - 1}{t} \mathrm{d}t
           = -\int_x^\infty \frac{\cos{t}}{t} \mathrm{d}t,

    where $\gamma$ is the Euler-Mascheroni constant.

    We have

    .. math:: \operatorname{Ci}(z) =
        -\frac{\operatorname{E}_1\left(e^{i\pi/2} z\right)
               + \operatorname{E}_1\left(e^{-i \pi/2} z\right)}{2}

    which holds for all polar $z$ and thus provides an analytic
    continuation to the Riemann surface of the logarithm.

    The formula also holds as stated
    for $z \in \mathbb{C}$ with $\Re(z) > 0$.
    By lifting to the principal branch, we obtain an analytic function on the
    cut complex plane.

    Examples
    ========

    >>> from sympy import Ci
    >>> from sympy.abc import z

    The cosine integral is a primitive of $\cos(z)/z$:

    >>> Ci(z).diff(z)
    cos(z)/z

    It has a logarithmic branch point at the origin:

    >>> from sympy import exp_polar, I, pi
    >>> Ci(z*exp_polar(2*I*pi))
    Ci(z) + 2*I*pi

    The cosine integral behaves somewhat like ordinary $\cos$ under
    multiplication by $i$:

    >>> from sympy import polar_lift
    >>> Ci(polar_lift(I)*z)
    Chi(z) + I*pi/2
    >>> Ci(polar_lift(-1)*z)
    Ci(z) + I*pi

    It can also be expressed in terms of exponential integrals:

    >>> from sympy import expint
    >>> Ci(z).rewrite(expint)
    -expint(1, z*exp_polar(-I*pi/2))/2 - expint(1, z*exp_polar(I*pi/2))/2

    See Also
    ========

    Si: Sine integral.
    Shi: Hyperbolic sine integral.
    Chi: Hyperbolic cosine integral.
    Ei: Exponential integral.
    expint: Generalised exponential integral.
    E1: Special case of the generalised exponential integral.
    li: Logarithmic integral.
    Li: Offset logarithmic integral.

    References
    ==========

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

    c                 ó"   — t         j                  S r‹   )r   r.   rÃ  s    r7   r²  z	Ci._atinfÿ  s   € ä�v‰vˆr9   c                 ó   — t         t        z  S r‹   )r
   r   rÃ  s    r7   r³  zCi._atneginf  s   € ä”‰tˆr9   c                 ó4   — t        |«      t        t        z  z   S r‹   ©r�  r
   r   rA  s     r7   r¶  zCi._minusfactor  s   € ä�!‹u”qœ‘t‰|Ðr9   c                 ó@   — t        |«      t        t        z  dz  |z  z   S r    ©r^  r
   r   rÇ  s      r7   rµ  zCi._Ifactor  s   € ä�1‹vœœ"™˜Q™˜t™Ñ#Ð#r9   c                 óz   — t        t        t        «      |z  «      t        t        t         «      |z  «      z    dz  S r    )r…  r   r
   r˜   s      r7   r£   zCi._eval_rewrite_as_expint  s2   € Ü”Jœq“M !‘OÓ$¤r¬*´a°R«.¸Ñ*:Ó';Ñ;Ð<¸QÑ>Ð>r9   c                 ó¾   — ddl m} t        t        d|g«      j                  «      }t
        j                  t        |«      z    |dt        |«      z
  |z  |d|f«      z
  S r�  )	rf  re  r   r   rg  r   r   r   r#   ri  s        r7   rj  zCi._eval_rewrite_as_Integral  sP   € Ý6ÜÔ'¨¨a¨SÓ1×6Ñ6Ó7ˆÜ�|‰|œc !›fÑ$¡x°´3°q³6±¸1±¸qÀ!ÀQ¸iÓ'HÑHÐHr9   c                 ó®  — | j                   d   j                  |||¬«      }|j                  |d«      }|t        j                  u r+|j                  |dt        |«      j                  rdnd¬«      }|j                  r;|j                  |«      \  }}|€t        |«      n|}t        |«      ||z  z   t        z   S |j                  r| j                  |«      S | S rÌ  ©r+   rº   r»   r   rK   r¥   r   r\  rP   rm  r   r   rs   r0   ©r1   r4   r´   rµ   rX   r¿   ro  rp  s           r7   rÀ   zCi._eval_as_leading_term  ó¸   € Ø�i‰i˜‰l×*Ñ*¨1°4¸dÐ*ÓCˆØ�x‰x˜˜1‹~ˆà”1—5‘5‰=Ø—9‘9˜Q ¬b°«h×.BÒ.B¡sÈ�9ÓLˆDØ�<Š<Ø×(Ñ(¨Ó+‰DˆAˆqØ!˜\”3�q”6¨tˆDÜ�q“6˜A˜d™F‘?¤ZÑ/Ð/Ø�^Š^Ø—9‘9˜T“?Ð"àˆKr9   c                 óÈ  •— ddl m} |d   }|t        j                  t        j                  fv �r| j
                  d   }t        |dz  dz   «      D �cg c]0  }t        j                  |z  t        d|z  «      z  |d|z  dz   z  z  ‘Œ2 c} |d||z  z  |«      gz   }	t        |dz  «      D �cg c]3  }t        j                  |z  t        d|z  dz   «      z  |d|dz   z  z  z  ‘Œ5 c} |d||z  z  |«      gz   }
t        |«      t        |	Ž z  t        |«      t        |
Ž z  z
  }|t        j                  u r|t        t        z  z  }|S t        t        | �C  ||||«      S c c}w c c}w rÂ   )rÅ   rÄ   r   rL   rN   r+   rÊ   rO   r   r$   r   r#   r
   r   rË   r�  rÌ   )r1   r`   rÍ   r4   r´   rÄ   rÎ   ru   rb   rÏ  rÐ  ÚresultrÓ   s               €r7   rÌ   zCi._eval_aseries&  sg  ø€ Ý,Ø�a‘ˆà”Q—Z‘Z¤×!3Ñ!3Ð4Ò4Ø—	‘	˜!‘ˆAä" 1 a¡4¨!¡8›_ö.Øô —‘ Ñ!¤I¨a°©c£NÑ2°Q¸¸1¹¸q¹±\ÓAò .Ù16°q¸¸A¹±v¸qÓ1AÐ0BñCˆAô # 1 a¡4›[ö*Øô —‘ Ñ!¤I¨a°©c°A©gÓ$6Ñ6¸¸QÀÀAÁ¹Y¹ÓGò *Ù-2°1°Q¸±T±6¸1Ó-=Ð,>ñ?ˆAä˜“VœS !˜WÑ%¬¨A«´°Q°Ñ(8Ñ8ˆFàœ×*Ñ*Ñ*Øœ!œB™$‘�ØˆMä”R˜Ñ,¨Q°°q¸$Ó?Ð?ùò.ùò*s   Á5EÂ+8E)rÕ   rÖ   r×   rØ   r#   r´  r   r¼   r±  rÚ   r²  r³  r¶  rµ  r£   rj  rÀ   rÌ   rÜ   rÝ   s   @r7   r�  r�  ¬  s†   ø„ ñMð^ €IØ×Ñ€Gàñó ðð ñó ðð ñó ðð ñ$ó ð$ò?òIò
÷@ð @r9   r�  c                   ó~   — e Zd ZdZeZej                  Ze	d„ «       Z
e	d„ «       Ze	d„ «       Ze	d„ «       Zd„ Zd„ Zd„ Zy	)
r]  a  
    Sinh integral.

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

    This function is defined by

    .. math:: \operatorname{Shi}(z) = \int_0^z \frac{\sinh{t}}{t} \mathrm{d}t.

    It is an entire function.

    Examples
    ========

    >>> from sympy import Shi
    >>> from sympy.abc import z

    The Sinh integral is a primitive of $\sinh(z)/z$:

    >>> Shi(z).diff(z)
    sinh(z)/z

    It is unbranched:

    >>> from sympy import exp_polar, I, pi
    >>> Shi(z*exp_polar(2*I*pi))
    Shi(z)

    The $\sinh$ integral behaves much like ordinary $\sinh$ under
    multiplication by $i$:

    >>> Shi(I*z)
    I*Si(z)
    >>> Shi(-z)
    -Shi(z)

    It can also be expressed in terms of exponential integrals, but beware
    that the latter is branched:

    >>> from sympy import expint
    >>> Shi(z).rewrite(expint)
    expint(1, z)/2 - expint(1, z*exp_polar(I*pi))/2 - I*pi/2

    See Also
    ========

    Si: Sine integral.
    Ci: Cosine integral.
    Chi: Hyperbolic cosine integral.
    Ei: Exponential integral.
    expint: Generalised exponential integral.
    E1: Special case of the generalised exponential integral.
    li: Logarithmic integral.
    Li: Offset logarithmic integral.

    References
    ==========

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

    c                 ó"   — t         j                  S r‹   ©r   rL   rÃ  s    r7   r²  z
Shi._atinf{  ó   € ä�z‰zÐr9   c                 ó"   — t         j                  S r‹   )r   rN   rÃ  s    r7   r³  zShi._atneginf  s   € ä×!Ñ!Ð!r9   c                 ó   — t        |«       S r‹   )r]  rA  s     r7   r¶  zShi._minusfactorƒ  s   € ä�A“ˆwˆr9   c                 ó,   — t         t        |«      z  |z  S r‹   )r
   rž  rÇ  s      r7   rµ  zShi._Ifactor‡  s   € ä”�A“‰w�t‰|Ðr9   c                 ó†   — t        |«      t        t        t        t        z  «      |z  «      z
  dz  t        t        z  dz  z
  S r    )r…  r    r
   r   r˜   s      r7   r£   zShi._eval_rewrite_as_expint‹  s5   € ä�1“œœ9¤Q¤r¡T›?¨1Ñ,Ó-Ñ-¨qÑ0´1´R±4¸±6Ñ9Ð9r9   c                 ó<   — | j                   d   }|j                  ryy rl   r	  rt   s     r7   rx   zShi._eval_is_zero�  r¥  r9   c                 ó6  — | j                   d   j                  |«      }|j                  |d«      }|t        j                  u r+|j                  |dt        |«      j                  rdnd¬«      }|j                  r|S |j                  s| j                  |«      S | S )Nr   r¶   r·   r¸   rÍ  r¾   s         r7   rÀ   zShi._eval_as_leading_term”  s~   € Ø�i‰i˜‰l×*Ñ*¨1Ó-ˆØ�x‰x˜˜1‹~ˆà”1—5‘5‰=Ø—9‘9˜Q ¬b°«h×.BÒ.B¡sÈ�9ÓLˆDØ�<Š<ØˆJØ×!Ò!Ø—9‘9˜T“?Ð"àˆKr9   N)rÕ   rÖ   r×   rØ   r"   r´  r   r.   r±  rÚ   r²  r³  r¶  rµ  r£   rx   rÀ   rý   r9   r7   r]  r]  8  su   „ ñ=ð~ €IØ�f‰f€Gàñó ðð ñ"ó ð"ð ñó ðð ñó ðò:òó
r9   r]  c                   óx   — e Zd ZdZeZej                  Ze	d„ «       Z
e	d„ «       Ze	d„ «       Ze	d„ «       Zd„ Zd„ Zy)	r^  a   
    Cosh integral.

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

    This function is defined for positive $x$ by

    .. math:: \operatorname{Chi}(x) = \gamma + \log{x}
                         + \int_0^x \frac{\cosh{t} - 1}{t} \mathrm{d}t,

    where $\gamma$ is the Euler-Mascheroni constant.

    We have

    .. math:: \operatorname{Chi}(z) = \operatorname{Ci}\left(e^{i \pi/2}z\right)
                         - i\frac{\pi}{2},

    which holds for all polar $z$ and thus provides an analytic
    continuation to the Riemann surface of the logarithm.
    By lifting to the principal branch we obtain an analytic function on the
    cut complex plane.

    Examples
    ========

    >>> from sympy import Chi
    >>> from sympy.abc import z

    The $\cosh$ integral is a primitive of $\cosh(z)/z$:

    >>> Chi(z).diff(z)
    cosh(z)/z

    It has a logarithmic branch point at the origin:

    >>> from sympy import exp_polar, I, pi
    >>> Chi(z*exp_polar(2*I*pi))
    Chi(z) + 2*I*pi

    The $\cosh$ integral behaves somewhat like ordinary $\cosh$ under
    multiplication by $i$:

    >>> from sympy import polar_lift
    >>> Chi(polar_lift(I)*z)
    Ci(z) + I*pi/2
    >>> Chi(polar_lift(-1)*z)
    Chi(z) + I*pi

    It can also be expressed in terms of exponential integrals:

    >>> from sympy import expint
    >>> Chi(z).rewrite(expint)
    -expint(1, z)/2 - expint(1, z*exp_polar(I*pi))/2 - I*pi/2

    See Also
    ========

    Si: Sine integral.
    Ci: Cosine integral.
    Shi: Hyperbolic sine integral.
    Ei: Exponential integral.
    expint: Generalised exponential integral.
    E1: Special case of the generalised exponential integral.
    li: Logarithmic integral.
    Li: Offset logarithmic integral.

    References
    ==========

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

    c                 ó"   — t         j                  S r‹   rä  rÃ  s    r7   r²  z
Chi._atinfð  rå  r9   c                 ó"   — t         j                  S r‹   rä  rÃ  s    r7   r³  zChi._atneginfô  rå  r9   c                 ó4   — t        |«      t        t        z  z   S r‹   rÙ  rA  s     r7   r¶  zChi._minusfactorø  s   € ä�1‹vœœ"™‰}Ðr9   c                 ó@   — t        |«      t        t        z  dz  |z  z   S r    r×  rÇ  s      r7   rµ  zChi._Ifactorü  s   € ä�!‹u”qœ‘t˜A‘v˜d‘{Ñ"Ð"r9   c                 óˆ   — t          t        z  dz  t        |«      t        t        t         t        z  «      |z  «      z   dz  z
  S r    )r
   r   r…  r    r˜   s      r7   r£   zChi._eval_rewrite_as_expint 	  s7   € Üˆr”"‰u�Q‰wœ"˜Q›%¤"¤Y¬q´©t£_°QÑ%6Ó"7Ñ7¸Ñ:Ñ:Ð:r9   c                 ó®  — | j                   d   j                  |||¬«      }|j                  |d«      }|t        j                  u r+|j                  |dt        |«      j                  rdnd¬«      }|j                  r;|j                  |«      \  }}|€t        |«      n|}t        |«      ||z  z   t        z   S |j                  r| j                  |«      S | S rÌ  rÝ  rÞ  s           r7   rÀ   zChi._eval_as_leading_term	  rß  r9   N)rÕ   rÖ   r×   rØ   r!   r´  r   r¼   r±  rÚ   r²  r³  r¶  rµ  r£   rÀ   rý   r9   r7   r^  r^  ¢  ss   „ ñHðT €IØ×Ñ€Gàñó ðð ñó ðð ñó ðð ñ#ó ð#ò;ór9   r^  c                   óF   — e Zd ZdZdZed„ «       Zd	d„Zd„ ZeZ	d„ Z
d„ ZeZy)
ÚFresnelIntegralz& Base class for the Fresnel integrals.Tc                 óX  — |t         j                  u rt         j                  S |j                  rt         j                  S t         j
                  }|}d}|j                  d«      }|�| }|}d}|j                  t        «      }|�| j                  t        z  |z  }|}d}|r| | |«      z  S y )NFr–   T)	r   rL   r†   rP   r.   rM   rT   r
   Ú_sign)rW   ru   ÚprefactÚnewargÚchangedr  s         r7   rZ   zFresnelIntegral.eval	  s­   € ð ”—
‘
‰?Ü—6‘6ˆMð �9Š9Ü—6‘6ˆMô —%‘%ˆØˆØˆà×,Ñ,¨RÓ0ˆØˆ>Ø�hˆGØˆFØˆGà×,Ñ,¬QÓ/ˆØˆ>Ø—i‘i¤‘k 'Ñ)ˆGØˆFØˆGáØ™3˜v›;Ñ&Ð&ð r9   c                 ó–   — |dk(  r9| j                  t        j                  t        z  | j                  d   dz  z  «      S t        | |«      ‚r4  )r´  r   r†   r   r+   r   r@   s     r7   rB   zFresnelIntegral.fdiff;	  s>   € Ø�qŠ=Ø—>‘>¤!§&¡&¬¡)¨D¯I©I°a©L¸!©OÑ";Ó<Ð<ä$ T¨8Ó4Ð4r9   c                 ó4   — | j                   d   j                  S re   rm   rh   s    r7   r  z&FresnelIntegral._eval_is_extended_realA	  r  r9   c                 ó4   — | j                   d   j                  S re   r	  rh   s    r7   rx   zFresnelIntegral._eval_is_zeroF	  r
  r9   c                 óZ   — | j                  | j                  d   j                  «       «      S re   rf   rh   s    r7   ri   zFresnelIntegral._eval_conjugateI	  rj   r9   NrÔ   )rÕ   rÖ   r×   rØ   rÙ   rÚ   rZ   rB   r  rv   rx   ri   r8   r/   rý   r9   r7   rô  rô  	  s>   „ Ù0à€Jàñ'ó ð'ó<5ò-ð -€Oò$ò3ð -�Lr9   rô  c                   óx   ‡ — e Zd ZdZeZej                   Ze	e
d„ «       «       Zd„ Zd„ Zd„ Zd„ Zd„ Zˆ fd„Zˆ xZS )	rŽ   ay  
    Fresnel integral S.

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

    This function is defined by

    .. math:: \operatorname{S}(z) = \int_0^z \sin{\frac{\pi}{2} t^2} \mathrm{d}t.

    It is an entire function.

    Examples
    ========

    >>> from sympy import I, oo, fresnels
    >>> from sympy.abc import z

    Several special values are known:

    >>> fresnels(0)
    0
    >>> fresnels(oo)
    1/2
    >>> fresnels(-oo)
    -1/2
    >>> fresnels(I*oo)
    -I/2
    >>> fresnels(-I*oo)
    I/2

    In general one can pull out factors of -1 and $i$ from the argument:

    >>> fresnels(-z)
    -fresnels(z)
    >>> fresnels(I*z)
    -I*fresnels(z)

    The Fresnel S integral obeys the mirror symmetry
    $\overline{S(z)} = S(\bar{z})$:

    >>> from sympy import conjugate
    >>> conjugate(fresnels(z))
    fresnels(conjugate(z))

    Differentiation with respect to $z$ is supported:

    >>> from sympy import diff
    >>> diff(fresnels(z), z)
    sin(pi*z**2/2)

    Defining the Fresnel functions via an integral:

    >>> from sympy import integrate, pi, sin, expand_func
    >>> integrate(sin(pi*z**2/2), z)
    3*fresnels(z)*gamma(3/4)/(4*gamma(7/4))
    >>> expand_func(integrate(sin(pi*z**2/2), z))
    fresnels(z)

    We can numerically evaluate the Fresnel integral to arbitrary precision
    on the whole complex plane:

    >>> fresnels(2).evalf(30)
    0.343415678363698242195300815958

    >>> fresnels(-2*I).evalf(30)
    0.343415678363698242195300815958*I

    See Also
    ========

    fresnelc: Fresnel cosine integral.

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Fresnel_integral
    .. [2] https://dlmf.nist.gov/7
    .. [3] https://mathworld.wolfram.com/FresnelIntegrals.html
    .. [4] https://functions.wolfram.com/GammaBetaErf/FresnelS
    .. [5] The converging factors for the fresnel integrals
            by John W. Wrench Jr. and Vicki Alley

    c                 ón  — | dk  rt         j                  S t        |«      }t        |«      dkD  r9|d   }t        dz   |dz  z  d| z  dz
  z  d| z  d| z  dz   z  d| z  dz   z  z  |z  S |dz  |dz   | z  z  t        d«      d| z  dz
  z  t        d| z  dz   z  z  z  d| z  dz   t        d| z  dz   «      z  z  S )	Nr   r>   r–   r*   é   é   rœ   r]   ©r   r.   r   r^   r   r   ©r`   r4   ra   rÏ  s       r7   rc   zfresnels.taylor_term§	  sæ   € ð ˆqŠ5Ü—6‘6ˆMä˜“
ˆAÜ�>Ó" QÒ&Ø" 2Ñ&�Ü˜Q™˜˜q !™t™ Q q¡S¨1¡WÑ-¨q°©s°A°a±C¸!±G©}¸aÀ¹cÀA¹gÑ/FÑGÈ1ÑLÐLà˜!‘t  1¡˜u q™jÑ(¬A¨a«D°2°a±4¸!±8Ñ,<¼RÀ!ÀAÁ#ÈÁ'¹]Ñ,JÑKÐPQÐRSÑPSÐVWÑPWÔYbÐcdÐefÑcfÐijÑcjÓYkÑOkÑlÐlr9   c           	      ó   — t         j                  t        z   dz  t        t         j                  t        z   dz  t	        t
        «      z  |z  «      t        t        t         j                  t        z
  dz  t	        t
        «      z  |z  «      z  z
  z  S ©Nr   r*   ©r   rM   r
   r;   r   r   r˜   s      r7   rï   zfresnels._eval_rewrite_as_erf´	  óf   € Ü—‘œ‘	˜1‰}¤¤Q§U¡U¬Q¡Y°¡M´$´r³(Ñ$:¸1Ñ$<Ó =ÄÄ#ÄqÇuÁuÌqÁyÐRSÁmÔTXÔY[ÓT\ÑF\Ð]^ÑF^ÓB_Ñ@_Ñ _Ñ`Ð`r9   c           	      ó    — t         |dz  z  dz  t        t        dd«      gt        dd«      t        dd«      gt         dz   |dz  z  dz  «      z  S )Nrœ   é   r   r*   é   é   )r   r&   r   r˜   s      r7   rž   zfresnels._eval_rewrite_as_hyper·	  sY   € Ü�!�Q‘$‰w�q‰yœ5¤(¨1¨a£.Ð!1´H¸QÀ³NÄHÈQÐPQÃNÐ3SÔVXÐZ[ÑV[ÐU[Ð\]Ð_`Ñ\`ÑU`ÐacÑUcÓdÑdÐdr9   c           
      ó   — t         |t        dd«      z  z  t        d«      |dz  t        dd«      z  z  | t        dd«      z  z  z  t        g dgt        dd«      gt        dd«      dgt         dz   |dz  z  dz  «      z  S )Né	   r   r*   rœ   r>   r   r  )r   r   r   r'   r˜   s      r7   r™   z!fresnels._eval_rewrite_as_meijergº	  sŽ   € Ü�1”h˜q !“nÑ$Ñ$¬¨Q«°°A±¼ÀÀA»Ñ0FÑ(FÈÈÌXÐVWÐYZË^ÑG[Ñ([Ñ\Ü˜"˜q˜c¤H¨Q°£NÐ#3´h¸qÀ!³nÀaÐ5HÌ2ÈqÉ5È&ÐQRÐTUÑQUÉ+ÐVXÉ.ÓYñZð 	[r9   c                 ó’   — ddl m} t        t        d|g«      j                  «      } |t        t        |dz  z  dz  «      |d|f«      S ©Nr   rd  rY   r*   )rf  re  r   r   rg  r$   r   ri  s        r7   rj  z"fresnels._eval_rewrite_as_Integral¾	  óB   € Ý6ÜÔ'¨¨a¨SÓ1×6Ñ6Ó7ˆÙœœB˜q !™t™G A™I›¨¨A¨q¨	Ó2Ð2r9   c                 óð  — ddl m} | j                  d   j                  |||¬«      }|j	                  |d«      }|t
        j                  u r+|j                  |dt        |«      j                  rdnd¬«      }|j                  rt        |dz  z  dz  S |t
        j                  t
        j                  fv r3|t
        j                  u rd	nd
}|t
        j                  z   |||«      z   S | j                  |«      S )Nr   rÃ   r³   r¶   r·   r¸   rœ   r	  r>   r–   )rÅ   rÄ   r+   rº   r»   r   r¼   r¥   r   r\  rP   r   rL   rN   r†   r0   ©r1   r4   r´   rµ   rÄ   rX   r¿   rÒ   s           r7   rÀ   zfresnels._eval_as_leading_termÃ	  sÌ   € Ý,Ø�i‰i˜‰l×*Ñ*¨1°4¸dÐ*ÓCˆØ�x‰x˜˜1‹~ˆà”1×$Ñ$Ñ$Ø—9‘9˜Q ¬b°«h×.BÒ.B¡sÈ�9ÓLˆDØ�<Š<Ü�c˜1‘f‘9˜Q‘;ÐØ”a—j‘j¤!×"4Ñ"4Ð5Ñ5ØœQŸZ™ZÑ'‘¨RˆAØ”Q—V‘V‘8™e A q›kÑ)Ð)à—9‘9˜T“?Ð"r9   c           
      ón  •— ddl m} |d   }|t        j                  t        j                   fv �rà| j                  d   }t        d|«      D �cg c]b  }d|z  dz   |k  rUt        j                  |z  t        d|z  dz   «      z  dd|z  dz   z  |d|z  dz   z  z  dd|z  z  z  t        d|z  «      z  z  ‘Œd }	}dd|z  z  gt        d|«      D �cg c]h  }d|z  dz   |k  r[t        j                  |z  t        d|z  dz
  «      z  dd|z  dz   z  |d|z  dz   z  z  dd|z  dz
  z  z  t        d|z  dz
  «      z  z  ‘Œj c}z   }
|	D �cg c]  }t        dt        z  «       |z  ‘Œ }	}|
D �cg c]  }t        dt        z  «       |z  ‘Œ }
}|t        j                  u rdnd}|t        j                  z  t        |dz  «      t        |	Ž z  t        |dz  «      t        |
Ž z  z   j                  |t        dt        z  «      |z  «      z    |d||z  z  |«      z   S t        ‰| �A  ||||«      S c c}w c c}w c c}w c c}w ©Nr   rÃ   r   rœ   r>   r*   r–   )rÅ   rÄ   r   rL   r+   rÊ   rO   r   r   r   r†   r$   r   r#   r»   rË   rÌ   ©r1   r`   rÍ   r4   r´   rÄ   rÎ   ru   rb   rÏ  rÐ  rY   rÒ   rÓ   s                €r7   rÌ   zfresnels._eval_aseriesÒ	  sV  ø€ Ý,Ø�a‘ˆð ”Q—Z‘Z¤!§*¡* Ð-Ò-Ø—	‘	˜!‘ˆAô    1›+ö6à¨¨1©¨q©°1ªô —‘ Ñ!¤I¨a°©c°A©gÓ$6Ñ6Ø�a˜‘c˜A‘g‘,  Q q¡S¨1¡W¡Ñ-°°A°a±C±Ñ8¼À1ÀQÁ3»ÑGóIð 6ˆAð 6ð �A�a‘C‘�	ä  1›+ö6à¨¨1©¨q©°1ªô Ÿ]™]¨AÑ-´	¸!¸A¹#À¹'Ó0BÑBØ�a˜‘c˜A‘g‘,  Q q¡S¨1¡W¡Ñ-°°A°a±C¸!±G±Ñ<¼YÀqÈÁsÈQÁwÓ=OÑOóQò 6ñ 6ˆAð )*Ö* 1”$�qœ‘t“*�˜Q“Ð*ˆAÐ*Ø()Ö* 1”$�qœ‘t“*�˜Q“Ð*ˆAÐ*ØœaŸj™jÑ(‘¨bˆAð ”Q—V‘V‘8œs 1 a¡4›y¬¨a¨Ñ0´3°q¸!±t³9¼SÀ!¸WÑ3DÑDß‘$�qœ$˜q¤™t›* Q™,Ó'ñ(Ù*/°°!°Q±$±¸Ó*:ñ;ð ;ô ‰wÑ$ Q¨¨q°$Ó7Ð7ùò#6ùò6ùò +ùÚ*s   ÁA'H#ÃA-H(ÅH-Å&H2)rÕ   rÖ   r×   rØ   r$   r´  r   rM   rö  rÛ   r   rc   rï   rž   r™   rj  rÀ   rÌ   rÜ   rÝ   s   @r7   rŽ   rŽ   O	  s^   ø„ ñSðh €IØ�U‰UˆF€EàØñ	mó ó ð	mòaòeò[ò3ò
#÷8ð 8r9   rŽ   c                   óv   ‡ — e Zd ZdZeZej                  Ze	e
d„ «       «       Zd„ Zd„ Zd„ Zd„ Zd„ Zˆ fd„Zˆ xZS )	r�   au  
    Fresnel integral C.

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

    This function is defined by

    .. math:: \operatorname{C}(z) = \int_0^z \cos{\frac{\pi}{2} t^2} \mathrm{d}t.

    It is an entire function.

    Examples
    ========

    >>> from sympy import I, oo, fresnelc
    >>> from sympy.abc import z

    Several special values are known:

    >>> fresnelc(0)
    0
    >>> fresnelc(oo)
    1/2
    >>> fresnelc(-oo)
    -1/2
    >>> fresnelc(I*oo)
    I/2
    >>> fresnelc(-I*oo)
    -I/2

    In general one can pull out factors of -1 and $i$ from the argument:

    >>> fresnelc(-z)
    -fresnelc(z)
    >>> fresnelc(I*z)
    I*fresnelc(z)

    The Fresnel C integral obeys the mirror symmetry
    $\overline{C(z)} = C(\bar{z})$:

    >>> from sympy import conjugate
    >>> conjugate(fresnelc(z))
    fresnelc(conjugate(z))

    Differentiation with respect to $z$ is supported:

    >>> from sympy import diff
    >>> diff(fresnelc(z), z)
    cos(pi*z**2/2)

    Defining the Fresnel functions via an integral:

    >>> from sympy import integrate, pi, cos, expand_func
    >>> integrate(cos(pi*z**2/2), z)
    fresnelc(z)*gamma(1/4)/(4*gamma(5/4))
    >>> expand_func(integrate(cos(pi*z**2/2), z))
    fresnelc(z)

    We can numerically evaluate the Fresnel integral to arbitrary precision
    on the whole complex plane:

    >>> fresnelc(2).evalf(30)
    0.488253406075340754500223503357

    >>> fresnelc(-2*I).evalf(30)
    -0.488253406075340754500223503357*I

    See Also
    ========

    fresnels: Fresnel sine integral.

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Fresnel_integral
    .. [2] https://dlmf.nist.gov/7
    .. [3] https://mathworld.wolfram.com/FresnelIntegrals.html
    .. [4] https://functions.wolfram.com/GammaBetaErf/FresnelC
    .. [5] The converging factors for the fresnel integrals
            by John W. Wrench Jr. and Vicki Alley

    c                 óV  — | dk  rt         j                  S t        |«      }t        |«      dkD  r9|d   }t        dz   |dz  z  d| z  dz
  z  d| z  d| z  dz
  z  d| z  dz   z  z  |z  S ||dz   | z  z  t        d«      d| z  z  t        d| z  z  z  z  d| z  dz   t        d| z  «      z  z  S )	Nr   r>   r–   r*   r   rœ   r  r]   r  r  s       r7   rc   zfresnelc.taylor_termH
  sË   € ð ˆqŠ5Ü—6‘6ˆMä˜“
ˆAÜ�>Ó" QÒ&Ø" 2Ñ&�Ü˜Q™˜˜q !™t™ Q q¡S¨1¡WÑ-¨q°©s°A°a±C¸!±G©}¸aÀ¹cÀA¹gÑ/FÑGÈ1ÑLÐLà˜Q ™T˜E A™:‘~¬¨1«°°1±©´b¸1¸Q¹3±iÑ)?Ñ@ÀQÀqÁSÈ1ÁWÌiÐXYÐZ[ÑX[ËnÑD\Ñ]Ð]r9   c           	      ó   — t         j                  t        z
  dz  t        t         j                  t        z   dz  t	        t
        «      z  |z  «      t        t        t         j                  t        z
  dz  t	        t
        «      z  |z  «      z  z   z  S r  r  r˜   s      r7   rï   zfresnelc._eval_rewrite_as_erfU
  r  r9   c           	      óŽ   — |t        t        dd«      gt        j                  t        dd«      gt        dz   |dz  z  dz  «      z  S )Nr>   r   é   r*   r  )r&   r   r   r†   r   r˜   s      r7   rž   zfresnelc._eval_rewrite_as_hyperX
  sA   € Ø”5œ( 1 a›.Ð)¬A¯F©F´H¸QÀ³NÐ+CÄbÈ!ÁeÀVÈAÈqÉDÁ[ÐQSÁ^ÓTÑTÐTr9   c           
      óô   — t         |t        dd«      z  z  t        d«      t        |dz  d«      z  t        | d«      z  z  t	        g dgt        dd«      gt        dd«      dgt         dz   |dz  z  dz  «      z  S )Nrœ   r   r*   r>   r   r  )r   r   r   r   r'   r˜   s      r7   r™   z!fresnelc._eval_rewrite_as_meijerg[
  s‚   € Ü�1”h˜q !“nÑ$Ñ$¬¨Q«´°Q¸±T¸1³Ñ(=¼dÀAÀ2Àq»kÑ(IÑJÜ˜"˜q˜c¤H¨Q°£NÐ#3´h¸qÀ!³nÀaÐ5HÌ2ÈqÉ5È&ÐQRÐTUÑQUÉ+ÐVXÉ.ÓYñZð 	[r9   c                 ó’   — ddl m} t        t        d|g«      j                  «      } |t        t        |dz  z  dz  «      |d|f«      S r  )rf  re  r   r   rg  r#   r   ri  s        r7   rj  z"fresnelc._eval_rewrite_as_Integral_
  r  r9   c                 óÖ  — ddl m} | j                  d   j                  |||¬«      }|j	                  |d«      }|t
        j                  u r+|j                  |dt        |«      j                  rdnd¬«      }|j                  r|S |t
        j                  t
        j                  fv r3|t
        j                  u rdnd}|t
        j                  z   |||«      z   S | j                  |«      S )	Nr   rÃ   r³   r¶   r·   r¸   r>   r–   )rÅ   rÄ   r+   rº   r»   r   r¼   r¥   r   r\  rP   rL   rN   r†   r0   r  s           r7   rÀ   zfresnelc._eval_as_leading_termd
  s¿   € Ý,Ø�i‰i˜‰l×*Ñ*¨1°4¸dÐ*ÓCˆØ�x‰x˜˜1‹~ˆà”1×$Ñ$Ñ$Ø—9‘9˜Q ¬b°«h×.BÒ.B¡sÈ�9ÓLˆDØ�<Š<ØˆJØ”a—j‘j¤!×"4Ñ"4Ð5Ñ5ØœQŸZ™ZÑ'‘¨RˆAØ”Q—V‘V‘8™e A q›kÑ)Ð)à—9‘9˜T“?Ð"r9   c           
      ój  •— ddl m} |d   }|t        j                  t        j                   fv �rÞ| j                  d   }t        |«      D �cg c]b  }d|z  dz   |k  rUt        j                  |z  t        d|z  dz   «      z  dd|z  dz   z  |d|z  dz   z  z  dd|z  z  z  t        d|z  «      z  z  ‘Œd }	}dd|z  z  gt        d|«      D �cg c]h  }d|z  dz   |k  r[t        j                  |z  t        d|z  dz
  «      z  dd|z  dz   z  |d|z  dz   z  z  dd|z  dz
  z  z  t        d|z  dz
  «      z  z  ‘Œj c}z   }
|	D �cg c]  }t        dt        z  «       |z  ‘Œ }	}|
D �cg c]  }t        dt        z  «      |z  ‘Œ }
}|t        j                  u rdnd}|t        j                  z  t        |dz  «      t        |	Ž z  t        |dz  «      t        |
Ž z  z   j                  |t        dt        z  «      |z  «      z    |d||z  z  |«      z   S t        ‰| �A  ||||«      S c c}w c c}w c c}w c c}w r  )rÅ   rÄ   r   rL   r+   rÊ   rO   r   r   r   r†   r#   r   r$   r»   rË   rÌ   r  s                €r7   rÌ   zfresnelc._eval_aseriess
  sR  ø€ Ý,Ø�a‘ˆð ”Q—Z‘Z¤!§*¡* Ð-Ò-Ø—	‘	˜!‘ˆAô   ›(ö3à a¨¡c¨A¡g°¢kô —‘ Ñ!¤I¨a°©c°A©gÓ$6Ñ6Ø�a˜‘c˜A‘g‘,  Q q¡S¨1¡W¡Ñ-°°A°a±C±Ñ8¼À1ÀQÁ3»ÑGóIð 3ˆAð 3ð �A�a‘C‘�	ä  1›+ö6à¨¨1©¨q©°1ªô Ÿ]™]¨AÑ-´	¸!¸A¹#À¹'Ó0BÑBØ�a˜‘c˜A‘g‘,  Q q¡S¨1¡W¡Ñ-°°A°a±C¸!±G±Ñ<¼YÀqÈÁsÈQÁwÓ=OÑOóQò 6ñ 6ˆAð )*Ö* 1”$�qœ‘t“*�˜Q“Ð*ˆAÐ*Ø()Ö* 1”$�qœ‘t“*˜Q“,Ð*ˆAÐ*ØœaŸj™jÑ(‘¨bˆAð ”Q—V‘V‘8œs 1 a¡4›y¬¨a¨Ñ0´3°q¸!±t³9¼SÀ!¸WÑ3DÑDß‘$�qœ$˜q¤™t›* Q™,Ó'ñ(Ù*/°°!°Q±$±¸Ó*:ñ;ð ;ô ‰wÑ$ Q¨¨q°$Ó7Ð7ùò#3ùò6ùò +ùÚ*s   ÁA'H!ÃA-H&ÅH+Å%H0)rÕ   rÖ   r×   rØ   r#   r´  r   rM   rö  rÛ   r   rc   rï   rž   r™   rj  rÀ   rÌ   rÜ   rÝ   s   @r7   r�   r�   ð	  s\   ø„ ñSðh €IØ�E‰E€EàØñ	^ó ó ð	^òaòUò[ò3ò
#÷8ð 8r9   r�   c                   ó@   ‡ — e Zd ZdZed„ «       Zˆ fd„Zdd„Zd„ Zˆ xZ	S )r§   zi
    Helper function to make the $\mathrm{erf}(z)$ function
    tractable for the Gruntz algorithm.

    c                 ó<   — |j                   rt        j                  S y r‹   )rP   r   rM   )rW   rX   s     r7   rZ   z
_erfs.evalœ
  s   € à�;Š;Ü—5‘5ˆLð r9   c                 óP  •— ddl m} |d   }|t        j                  u r£| j                  d   }t        |«      D �cg c]O  }dt        t        «      z  t        d|z  «      z  t        d«       | z  z  t        |«      z  d|z  d|z  dz   z  z  ‘ŒQ }	} |d|d|z  dz   z  z  |«      }
t        |	Ž j                  |||«      |
z   S |j                  t        «      }|t        j                  u r£| j                  d   }t        |«      D �cg c]O  }dt        t        «      z  t        d|z  «      z  t        d«       | z  z  t        |«      z  d|z  d|z  dz   z  z  ‘ŒQ }	} |d|d|z  dz   z  z  |«      }
t        |	Ž j                  |||«      |
z   S t        ‰| �9  ||||«      S c c}w c c}w )Nr   rÃ   r>   r*   r   )rÅ   rÄ   r   rL   r+   rÊ   r   r   r   r   rr  rT   r
   rË   rÌ   )r1   r`   rÍ   r4   r´   rÄ   rÎ   ru   rb   ÚlÚorY   rÓ   s               €r7   rÌ   z_erfs._eval_aseries¡
  sè  ø€ Ý,Ø�a‘ˆð ”A—J‘JÑØ—	‘	˜!‘ˆAäDIÈ!ÃHöNØ?@ð ”4œ“8‘œi¨¨!©›nÑ,¬qØó0ð /Ø�rñ.ñ Ü$ Q›<ñ(Ø+,¨Q©3°!°A±#¸±'Ñ*:ó;ð NˆAð Ná�a˜˜A˜a™C !™G™‘n aÓ(ˆAä˜�G×*Ñ*¨1¨a°Ó6¸Ñ:Ð:ð ×*Ñ*¬1Ó-ˆØ”—
‘
‰?Ø—	‘	˜!‘ˆAô EJÈ!ÃHöNØ?@ð ”4œ“8‘œi¨¨!©›nÑ,¬qØó0ð /Ø�rñ.ñ Ü$ Q›<ñ(Ø+,¨Q©3°!°A±#¸±'Ñ*:ó;ð NˆAð Ná�a˜˜A˜a™C !™G™‘n aÓ(ˆAä˜�G×*Ñ*¨1¨a°Ó6¸Ñ:Ð:ô ‰wÑ$ Q¨¨q°$Ó7Ð7ùò%NùòNs   »AFÄAF#c                 óŠ   — |dk(  r3| j                   d   }dt        t        «      z  d|z  t        |«      z  z   S t	        | |«      ‚)Nr>   r   r]   r*   )r+   r   r   r§   r   ©r1   rA   ru   s      r7   rB   z_erfs.fdiff¼
  sB   € Ø�qŠ=Ø—	‘	˜!‘ˆAØ”dœ2“h‘;  1¡¤U¨1£X¡Ñ-Ð-ä$ T¨8Ó4Ð4r9   c                 óX   — t         j                  t        |«      z
  t        |dz  «      z  S r    )r   rM   r;   r   r˜   s      r7   Ú_eval_rewrite_as_intractablez"_erfs._eval_rewrite_as_intractableÃ
  s!   € Ü—‘œ˜A›‘¤ A q¡D£	Ñ)Ð)r9   rÔ   )
rÕ   rÖ   r×   rØ   rÚ   rZ   rÌ   rB   r'  rÜ   rÝ   s   @r7   r§   r§   –
  s+   ø„ ñð
 ñó ðô8ó65ö*r9   r§   c                   óF   ‡ — e Zd ZdZˆ fd„Zdd„Zd„ Zˆ fd„Zdˆ fd„	Zˆ xZ	S )	ra  z~
    Helper function to make the $\mathrm{Ei}(z)$ and $\mathrm{li}(z)$
    functions tractable for the Gruntz algorithm.

    c                 ó\  •— ddl m} |d   t        j                  t        j                  fvrt
        ‰
| �  ||||«      S | j                  d   }t        |«      D �cg c]  }t        |«      d|z  |dz   z  z  ‘Œ }} |d||dz   z  z  |«      }	t        |Ž j                  |||«      |	z   S c c}w rv  )rÅ   rÄ   r   rL   rN   rË   rÌ   r+   rÊ   r   r   rr  )r1   r`   rÍ   r4   r´   rÄ   ru   rb   r"  r#  rÓ   s             €r7   rÌ   z_eis._eval_aseriesÏ
  s«   ø€ Ý,Ø�‰8œAŸJ™J¬×(:Ñ(:Ð;Ñ;Ü‘7Ñ(¨¨E°1°dÓ;Ð;à�I‰I�a‰LˆÜ49¸!³HÖ=¨qŒY�q‹\˜Q˜q™S A¨¡E™NÓ*Ð=ˆÐ=Ù�!�A˜˜A™‘J‘, Ó"ˆä�Q�×&Ñ& q¨!¨TÓ2°QÑ6Ð6ùò >s   ÁB)c                 ó€   — |dk(  r.| j                   d   }t        j                  |z  t        |«      z
  S t	        | |«      ‚)Nr>   r   )r+   r   rM   ra  r   r%  s      r7   rB   z
_eis.fdiffÛ
  s:   € Ø�qŠ=Ø—	‘	˜!‘ˆAÜ—5‘5˜1‘9œt A›wÑ&Ð&ä$ T¨8Ó4Ð4r9   c                 ó2   — t        | «      t        |«      z  S r‹   )r   rM  r˜   s      r7   r'  z!_eis._eval_rewrite_as_intractableâ
  s   € Ü�A�2‹w”r˜!“u‰}Ðr9   c                 óØ   •— | j                   d   j                  |d«      }|j                  r- | j                  | j                   Ž }|j	                  |||¬«      S t
        ‰| �  |||¬«      S )Nr   r³   )r+   r¥   rP   r'  rÀ   rË   )r1   r4   r´   rµ   rn  rt  rÓ   s         €r7   rÀ   z_eis._eval_as_leading_termå
  si   ø€ Ø�Y‰Y�q‰\×Ñ  1Ó%ˆØ�:Š:Ø1�×1Ñ1°4·9±9Ð=ˆAØ×*Ñ*¨1°4¸dÐ*ÓCÐCÜ‰wÑ,¨Q°TÀÐ,ÓEÐEr9   c                 óÔ   •— | j                   d   j                  |d«      }|j                  r, | j                  | j                   Ž }|j	                  |||«      S t
        ‰| �  |||«      S re   )r+   r¥   rP   r'  rr  rË   rs  s          €r7   rr  z_eis._eval_nseriesì
  sa   ø€ Ø�Y‰Y�q‰\×Ñ  1Ó%ˆØ�:Š:Ø1�×1Ñ1°4·9±9Ð=ˆAØ—?‘? 1 a¨Ó.Ð.Ü‰wÑ$ Q¨¨4Ó0Ð0r9   rÔ   rw  )
rÕ   rÖ   r×   rØ   rÌ   rB   r'  rÀ   rr  rÜ   rÝ   s   @r7   ra  ra  Ç
  s'   ø„ ñô	7ó5òôF÷1ñ 1r9   ra  N)T)PrØ   Ú
sympy.corer   Úsympy.core.addr   Úsympy.core.cacher   Úsympy.core.functionr   r   r   Úsympy.core.logicr	   Úsympy.core.numbersr
   r   r   r   Úsympy.core.relationalr   Úsympy.core.powerr   Úsympy.core.singletonr   Úsympy.core.symbolr   r   Úsympy.core.sympifyr   Ú(sympy.functions.combinatorial.factorialsr   r   r   Ú$sympy.functions.elementary.complexesr   r   r   Ú#sympy.functions.elementary.integersr   r   Ú(sympy.functions.elementary.miscellaneousr   r   Ú&sympy.functions.elementary.exponentialr   r   r    Ú%sympy.functions.elementary.hyperbolicr!   r"   Ú(sympy.functions.elementary.trigonometricr#   r$   r%   Úsympy.functions.special.hyperr&   r'   r8   r;   r¬   r°   r  rF   rR   rS   rM  r¢   r…  rY  r–  r¯  rž  r�  r]  r^  rô  rŽ   r�   r§   ra  rý   r9   r7   ú<module>rA     s£  ðñFõ "Ý Ý $ß OÑ OÝ %ß 7Ó 7Ý 'Ý  Ý "ß :Ý &ß [Ñ [ß LÑ Lß >ß ?ß FÑ Fß <ß CÑ Cß 8óô*l-ˆ/ô l-ô^Hˆ?ô HôD}Bˆ?ô }Bô@O!ˆ?ô O!ôbZ$ˆ_ô Z$ôzP;ˆô P;ôf[ˆoô [ôBt@ˆô t@ôn}?ˆ_ô }?ò@ ôFeˆô eôNZ+ˆô Z+ô@<J˜Oô <Jô~EÐ	ô EôPJ@Ð	ô J@ôXgÐ
ô gôTnÐ
ô nôj5-�oô 5-ôp^8ˆô ^8ôB^8ˆô ^8ôL.*ˆOô .*ôb*1ˆ?õ *1r9   