ó
    ‰*£hÄ6 ã                   ó  • S r SSKJr  SSKJr  SSKJr  SSKJrJ	r	J
r
  SSKJr  SSKJrJrJrJr  SSKJr  SS	KJr  SS
KJr  SSKJrJr  SSKJr  SSKJrJrJ r   SSK!J"r"J#r#J$r$  SSK%J&r&J'r'  SSK(J)r)J*r*  SSK+J,r,J-r-J.r.  SSK/J0r0J1r1  SSK2J3r3J4r4J5r5  SSK6J7r7J8r8  SBS jr9 " S S\5      r: " S S\5      r; " S S\5      r< " S S\5      r= " S S\5      r> " S  S!\5      r? " S" S#\5      r@ " S$ S%\5      rA " S& S'\5      rBS( rC " S) S*\5      rD " S+ S,\5      rE " S- S.\5      rF " S/ S0\F5      rG " S1 S2\F5      rH " S3 S4\F5      rI " S5 S6\F5      rJ " S7 S8\5      rK " S9 S:\K5      rL " S; S<\K5      rM " S= S>\5      rN " S? S@\5      rOgA)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                 ój  • U R                   S   R                  (       aA  U(       a(  SUS'   U R                  " U40 UD6[        R                  4$ U [        R                  4$ U(       a1  U R                   S   R                  " U40 UD6R                  5       u  p4OU R                   S   R                  5       u  p4U R                  U[        U-  -   5      U R                  U[        U-  -
  5      -   S-  nU R                  U[        U-  -   5      U R                  U[        U-  -
  5      -
  S[        -  -  nXV4$ )Nr   FÚcomplexé   )ÚargsÚis_extended_realÚexpandr   ÚZeroÚas_real_imagÚfuncr
   )ÚselfÚdeepÚhintsÚxÚyr   Úims          Úd/home/mande/repo/quber/.venv/lib/python3.13/site-packages/sympy/functions/special/error_functions.pyÚreal_to_real_as_real_imagr8      sý   € Ø‡y�y��|×$×$ÞØ$ˆE�)ÑØ—K’K Ñ.¨Ñ.´·±Ð7Ð7àœ!Ÿ&™&�>Ð!ÞØ�y‰y˜‰|×"Ò" 4Ñ1¨5Ñ1×>Ñ>Ó@‰ˆˆ1à�y‰y˜‰|×(Ñ(Ó*‰ˆØ
�)‰)�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                   óÜ   ^ • \ rS rSrSrSrSS jrSS jr\S 5       r	\
\S 5       5       rS rS	 rS
 rS rS rS rS rS rS rS rS rS rS rSS jrS rS rS rU 4S jr\r Sr!U =r"$ )Úerfé1   aZ  
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                 ó‚   • US:X  a/  S[        U R                  S   S-  * 5      -  [        [        5      -  $ [	        X5      e©Né   r*   r   ©r   r+   r   r   r   ©r1   Úargindexs     r7   ÚfdiffÚ	erf.fdiff€   s<   € Ø�q‹=Ø”S˜$Ÿ)™) A™,¨™/Ð)Ó*Ñ*¬4´«8Ñ3Ð3ä$ TÓ4Ð4r9   c                 ó   • [         $ ©z(
Returns the inverse of this function.

©ÚerfinvrA   s     r7   ÚinverseÚerf.inverse‡   s	   € ô
 ˆr9   c                 óf  • UR                   (       aŠ  U[        R                  L a  [        R                  $ U[        R                  L a  [        R                  $ U[        R
                  L a  [        R                  $ UR                  (       a  [        R                  $ [        U[        5      (       a  UR                  S   $ [        U[        5      (       a   [        R                  UR                  S   -
  $ UR                  (       a  [        R                  $ [        U[        5      (       a-  UR                  S   R                  (       a  UR                  S   $ UR                  [        5      nU[        R                  [        R
                  4;   a  U$ UR!                  5       (       a
  U " U* 5      * $ g ©Nr   r?   )Ú	is_Numberr   ÚNaNÚInfinityÚOneÚNegativeInfinityÚNegativeOneÚis_zeror.   Ú
isinstancerH   r+   ÚerfcinvÚerf2invÚextract_multiplicativelyr
   Úcould_extract_minus_sign©ÚclsÚargÚts      r7   ÚevalÚ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                 óJ  • U S:  d	  U S-  S:X  a  [         R                  $ [        U5      n[        U S-
  [        S5      -  5      n[	        U5      S:”  a  US   * US-  -  U S-
  -  X-  -  $ S[         R
                  U-  -  X-  -  U [        U5      -  [        [        5      -  -  $ ©Nr   r*   r?   éþÿÿÿ)	r   r.   r   r   ÚlenrR   r   r   r   ©Únr4   Úprevious_termsÚks       r7   Útaylor_termÚ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¹SÑAÐAàœŸ™¨Ñ)Ñ)¨A©DÑ0°!´I¸a³L±.ÄÄbÃÑ2IÑJÐJr9   c                 óZ   • U R                  U R                  S   R                  5       5      $ ©Nr   ©r0   r+   Ú	conjugate©r1   s    r7   Ú_eval_conjugateÚerf._eval_conjugate½   ó"   € Ø�y‰y˜Ÿ™ 1™×/Ñ/Ó1Ó2Ð2r9   c                 ó>   • U R                   S   R                  SL a  gg ©Nr   T©r+   r,   rm   s    r7   Ú_eval_is_realÚerf._eval_is_realÀ   s    € Ø�9‰9�Q‰<×(Ñ(¨DÒ0Øð 1r9   c                 ó>   • U R                   S   R                  SL a  gg rr   )r+   Úis_imaginaryrm   s    r7   Ú_eval_is_imaginaryÚerf._eval_is_imaginaryÆ   s    € Ø�9‰9�Q‰<×$Ñ$¨Ò,Øð -r9   c                 ób   • U R                   S   n[        UR                  UR                  /5      $ rj   )r+   r	   Ú	is_finiter,   ©r1   Úzs     r7   Ú_eval_is_finiteÚerf._eval_is_finiteÊ   s)   € Ø�I‰I�a‰LˆÜ˜Ÿ™ a×&8Ñ&8Ð9Ó:Ð:r9   c                 ón   • U R                   S   R                  SL a  U R                   S   R                  $ g rr   )r+   r,   rS   rm   s    r7   Ú_eval_is_zeroÚerf._eval_is_zeroÎ   s1   € Ø�9‰9�Q‰<×(Ñ(¨DÒ0Ø—9‘9˜Q‘<×'Ñ'Ð'ð 1r9   c                 ón   • U R                   S   R                  SL a  U R                   S   R                  $ g rr   )r+   r,   Úis_extended_positiverm   s    r7   Ú_eval_is_positiveÚerf._eval_is_positiveÒ   ó1   € Ø�9‰9�Q‰<×(Ñ(¨DÒ0Ø—9‘9˜Q‘<×4Ñ4Ð4ð 1r9   c                 ón   • U R                   S   R                  SL a  U R                   S   R                  $ g rr   )r+   r,   Úis_extended_negativerm   s    r7   Ú_eval_is_negativeÚerf._eval_is_negativeÖ   r‡   r9   c                 ó¨   • SSK Jn  [        US-  5      U-  [        R                  U" [        R
                  US-  5      [        [        5      -  -
  -  $ ©Nr   ©Ú
uppergammar*   ©Ú'sympy.functions.special.gamma_functionsr�   r   r   rP   ÚHalfr   ©r1   r}   Úkwargsr�   s       r7   Ú_eval_rewrite_as_uppergammaÚerf._eval_rewrite_as_uppergammaÚ   s=   € ÝFÜ�A�q‘D‹z˜!‰|œQŸU™U¡Z´·±¸¸1¹Ó%=¼dÄ2»hÑ%FÑFÑGÐGr9   c                 óÂ   • [         R                  [        -
  U-  [        [        5      -  n[         R                  [        -   [        U5      [        [        U5      -  -
  -  $ ©N©r   rP   r
   r   r   ÚfresnelcÚfresnels©r1   r}   r”   r[   s       r7   Ú_eval_rewrite_as_fresnelsÚerf._eval_rewrite_as_fresnelsÞ   ó@   € Ü�u‰u”q‰y˜!‰mœD¤›HÑ$ˆÜ—‘œ‘	œH S›M¬A¬h°s«m©OÑ;Ñ<Ð<r9   c                 óÂ   • [         R                  [        -
  U-  [        [        5      -  n[         R                  [        -   [        U5      [        [        U5      -  -
  -  $ r˜   r™   rœ   s       r7   Ú_eval_rewrite_as_fresnelcÚerf._eval_rewrite_as_fresnelcâ   rŸ   r9   c           
      ó‚   • U[        [        5      -  [        [        R                  // S/[        SS5      /US-  5      -  $ ©Nr   éÿÿÿÿr*   ©r   r   r'   r   r’   r   ©r1   r}   r”   s      r7   Ú_eval_rewrite_as_meijergÚerf._eval_rewrite_as_meijergæ   s7   € Ø””b“‰zœ'¤1§6¡6 (¨B°°´h¸rÀ1³oÐ5FÈÈ1ÉÓMÑMÐMr9   c                 ó’   • SU-  [        [        5      -  [        [        R                  /S[        R                  -  /US-  * 5      -  $ ©Nr*   é   ©r   r   r&   r   r’   r§   s      r7   Ú_eval_rewrite_as_hyperÚerf._eval_rewrite_as_hyperé   s8   € Ø�‰s”4œ“8‰|œE¤1§6¡6 (¨Q¬q¯v©v©X¨J¸¸A¹¸Ó>Ñ>Ð>r9   c                 ó†   • [        US-  5      U-  U[        [        R                  US-  5      -  [        [        5      -  -
  $ ©Nr*   ©r   Úexpintr   r’   r   r§   s      r7   Ú_eval_rewrite_as_expintÚerf._eval_rewrite_as_expintì   s6   € Ü�A�q‘D‹z˜!‰|˜a¤¤q§v¡v¨q°!©tÓ 4Ñ4´T¼"³XÑ=Ñ=Ð=r9   c                 ó"  • SSK Jn  U(       aW  U" X[        R                  5      nU[        R                  L a-  [        R
                  [        U* 5      [        US-  * 5      -  -   $ [        R                  [        U5      [        US-  * 5      -  -
  $ )Nr   )Úlimitr*   )	Úsympy.series.limitsr·   r   rO   rQ   rR   Ú_erfsr   rP   )r1   r}   Úlimitvarr”   r·   Úlims         r7   Ú_eval_rewrite_as_tractableÚerf._eval_rewrite_as_tractableï   sl   € Ý-ÞÙ˜¤Q§Z¡ZÓ0ˆCØ”a×(Ñ(Ò(Ü—}‘}¤u¨a¨R£y´°a¸±d°U³Ñ';Ñ;Ð;Ü�u‰u”u˜Q“x¤ Q¨¡T E£
Ñ*Ñ*Ð*r9   c                 ó:   • [         R                  [        U5      -
  $ r˜   )r   rP   Úerfcr§   s      r7   Ú_eval_rewrite_as_erfcÚerf._eval_rewrite_as_erfc÷   s   € Ü�u‰u”t˜A“w‰Ðr9   c                 ó6   • [         * [        [         U-  5      -  $ r˜   ©r
   Úerfir§   s      r7   Ú_eval_rewrite_as_erfiÚerf._eval_rewrite_as_erfiú   s   € Üˆr”$”q˜‘s“)‰|Ðr9   c                 óD  • U R                   S   R                  XUS9nUR                  US5      nU[        R                  L a  UR                  USUS:X  a  SOSS9nXR                  ;   a&  UR                  (       a  SU-  [        [        5      -  $ U R                  U5      $ )Nr   ©ÚlogxÚcdirr¥   Ú-Ú+©Údirr*   )r+   Úas_leading_termÚsubsr   ÚComplexInfinityr·   Úfree_symbolsrS   r   r   r0   ©r1   r4   rÉ   rÊ   r[   Úarg0s         r7   Ú_eval_as_leading_termÚerf._eval_as_leading_termý   sŠ   € Ø�i‰i˜‰l×*Ñ*¨1¸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                 ó€  >• SSK Jn  US   nU[        R                  [        R                  4;   aÞ  U R
                  S   n UR                  U5      u  p‰U	* n	U	R                  (       a§  [        X-  5      n
[        U
5       Vs/ s H:  n[        R                  U-  [        SU-  S-
  5      -  USU-  S-   -  SU-  -  -  PM<     snU" SXz-  -  U5      /-   n[        R                  [        US-  * 5      [!        ["        5      -  [%        U6 -  -
  $ [&        [(        U ]W  XX45      $ ! [        [        4 a    U s $ f = fs  snf ©Nr   ©ÚOrderr*   r?   )Úsympy.series.orderrÚ   r   rO   rQ   r+   ÚleadtermÚ
ValueErrorÚNotImplementedErrorÚis_positiver   ÚrangerR   r   rP   r   r   r   r   Úsuperr;   Ú_eval_aseries)r1   rd   Úargs0r4   rÉ   rÚ   Úpointr}   Ú_ÚexÚnewnrf   ÚsÚ	__class__s                €r7   râ   Úerf._eval_aseries  s1  ø€ Ý,Ø�a‘ˆà”Q—Z‘Z¤×!3Ñ!3Ð4Ó4Ø—	‘	˜!‘ˆAðØŸ
™
 1›‘�ð �ˆ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¸Ó@Ð@øô Ô 3Ð4ó Ø’ðüò+s   ÁD# ÂAD;Ä#D8Ä7D8© ©r?   r˜   )#Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú
unbranchedrC   rI   Úclassmethodr]   Ústaticmethodr   rg   rn   rt   rx   r~   r�   r…   rŠ   r•   r�   r¡   r¨   r®   r´   r¼   rÀ   rÅ   rÕ   râ   r8   r/   Ú__static_attributes__Ú__classcell__©ré   s   @r7   r;   r;   1   s²   ø† ñJðX €Jô5ôð ñó ððB Øñ	Kó ó ð	Kò3òòò;ò(ò5ò5òHò=ò=òNò?ò>ô+òòò	#õAð* -†Lr9   r;   c                   ó¶   • \ rS rSrSrSrSS jrSS jr\S 5       r	\
\S 5       5       rS rS	 rSS jrS rS rS rS rS rS rS rS rS rS r\rS rSrg
)r¿   i   aR  
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                 ó‚   • US:X  a/  S[        U R                  S   S-  * 5      -  [        [        5      -  $ [	        X5      e)Nr?   ra   r   r*   r@   rA   s     r7   rC   Ú
erfc.fdiffo  s<   € Ø�q‹=Ø”c˜4Ÿ9™9 Q™<¨™?Ð*Ó+Ñ+¬D´«HÑ4Ð4ä$ TÓ4Ð4r9   c                 ó   • [         $ rF   ©rU   rA   s     r7   rI   Úerfc.inverseu  s	   € ô
 ˆr9   c                 ó¢  • UR                   (       ag  U[        R                  L a  [        R                  $ U[        R                  L a  [        R                  $ UR
                  (       a  [        R                  $ [        U[        5      (       a   [        R                  UR                  S   -
  $ [        U[        5      (       a  UR                  S   $ UR
                  (       a  [        R                  $ UR                  [        5      nU[        R                  [        R                  4;   a  U* $ UR                  5       (       a  SU " U* 5      -
  $ g ©Nr   r*   )rM   r   rN   rO   r.   rS   rP   rT   rH   r+   rU   rW   r
   rQ   rX   rY   s      r7   r]   Ú	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                 óv  • U S:X  a  [         R                  $ U S:  d	  U S-  S:X  a  [         R                  $ [        U5      n[	        U S-
  [        S5      -  5      n[        U5      S:”  a  US   * US-  -  U S-
  -  X-  -  $ S[         R                  U-  -  X-  -  U [        U5      -  [        [        5      -  -  $ r`   )
r   rP   r.   r   r   rb   rR   r   r   r   rc   s       r7   rg   Ú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¹SÑAÐAàœ!Ÿ-™-¨Ñ*Ñ*¨Q©TÑ1°1´Y¸q³\±>Ä$ÄrÃ(Ñ3JÑKÐKr9   c                 óZ   • U R                  U R                  S   R                  5       5      $ rj   rk   rm   s    r7   rn   Úerfc._eval_conjugate§  rp   r9   c                 óx   • U R                   S   R                  SL a  gU R                   S   R                  SL a  gg )Nr   TF)r+   r,   rw   rm   s    r7   rt   Úerfc._eval_is_realª  s9   € Ø�9‰9�Q‰<×(Ñ(¨DÒ0ØØ�9‰9�Q‰<×$Ñ$¨Ò,Øð -r9   Nc                 óJ   • U R                  [        5      R                  SSUS9$ ©NÚ	tractableT)r2   rº   ©Úrewriter;   ©r1   r}   rº   r”   s       r7   r¼   Úerfc._eval_rewrite_as_tractable°  ó#   € Ø�|‰|œCÓ ×(Ñ(¨¸4È(Ð(ÐSÐSr9   c                 ó:   • [         R                  [        U5      -
  $ r˜   )r   rP   r;   r§   s      r7   Ú_eval_rewrite_as_erfÚerfc._eval_rewrite_as_erf³  s   € Ü�u‰u”s˜1“v‰~Ðr9   c                 óV   • [         R                  [        [        [        U-  5      -  -   $ r˜   )r   rP   r
   rÄ   r§   s      r7   rÅ   Úerfc._eval_rewrite_as_erfi¶  s   € Ü�u‰u”qœœa ™c›‘{Ñ"Ð"r9   c                 óä   • [         R                  [        -
  U-  [        [        5      -  n[         R                  [         R                  [        -   [        U5      [        [        U5      -  -
  -  -
  $ r˜   r™   rœ   s       r7   r�   Ú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                 óä   • [         R                  [        -
  U-  [        [        5      -  n[         R                  [         R                  [        -   [        U5      [        [        U5      -  -
  -  -
  $ r˜   r™   rœ   s       r7   r¡   Ú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                 ó¤   • [         R                  U[        [        5      -  [	        [         R
                  // S/[        SS5      /US-  5      -  -
  $ r¤   )r   rP   r   r   r'   r’   r   r§   s      r7   r¨   Ú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                 ó´   • [         R                  SU-  [        [        5      -  [	        [         R
                  /S[         R
                  -  /US-  * 5      -  -
  $ r«   )r   rP   r   r   r&   r’   r§   s      r7   r®   Ú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                 óÊ   • SSK Jn  [        R                  [	        US-  5      U-  [        R                  U" [        R
                  US-  5      [	        [        5      -  -
  -  -
  $ r�   )r‘   r�   r   rP   r   r’   r   r“   s       r7   r•   Ú 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                 ó¨   • [         R                  [        US-  5      U-  -
  U[        [         R                  US-  5      -  [        [
        5      -  -   $ r±   )r   rP   r   r³   r’   r   r§   s      r7   r´   Ú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                 ó,   • U R                  [        5      $ r˜   r
  ©r1   r3   s     r7   Ú_eval_expand_funcÚerfc._eval_expand_funcÎ  ó   € Ø�|‰|œCÓ Ð r9   c                 ó  • U R                   S   R                  XUS9nUR                  US5      nU[        R                  L a  UR                  USUS:X  a  SOSS9nUR                  (       a  [        R                  $ U R                  U5      $ )Nr   rÈ   r¥   rË   rÌ   rÍ   )	r+   rÏ   rÐ   r   rÑ   r·   rS   rP   r0   rÓ   s         r7   rÕ   Úerfc._eval_as_leading_termÑ  sv   € Ø�i‰i˜‰l×*Ñ*¨1¸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                 óh   • [         R                  [        U R                  6 R	                  XX45      -
  $ r˜   )r   rP   r;   r+   râ   )r1   rd   rã   r4   rÉ   s        r7   râ   Úerfc._eval_aseriesÞ  s&   € Ü�u‰u”s˜DŸI™I�×4Ñ4°Q¸qÓGÑGÐGr9   rë   rì   r˜   )rí   rî   rï   rð   rñ   rò   rC   rI   ró   r]   rô   r   rg   rn   rt   r¼   r  rÅ   r�   r¡   r¨   r®   r•   r´   r"  rÕ   r8   r/   râ   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                   óÀ   ^ • \ rS rSrSrSrSS jr\S 5       r\	\
S 5       5       rS rS rS	 rSS
 jrS rS rS rS rS rS rS rS rS r\rS rU 4S jrSrU =r$ )rÄ   iâ  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                 ó€   • US:X  a.  S[        U R                  S   S-  5      -  [        [        5      -  $ [	        X5      er>   r@   rA   s     r7   rC   Ú
erfi.fdiff.  s9   € Ø�q‹=Ø”S˜Ÿ™ 1™ q™Ó)Ñ)¬$¬r«(Ñ2Ð2ä$ TÓ4Ð4r9   c                 ó:  • UR                   (       ag  U[        R                  L a  [        R                  $ UR                  (       a  [        R                  $ U[        R
                  L a  [        R
                  $ UR                  (       a  [        R                  $ UR                  5       (       a
  U " U* 5      * $ UR                  [        5      nUbË  U[        R
                  L a  [        $ [        U[        5      (       a  [        UR                  S   -  $ [        U[        5      (       a'  [        [        R                  UR                  S   -
  -  $ [        U[        5      (       a5  UR                  S   R                  (       a  [        UR                  S   -  $ g g g rL   )rM   r   rN   rS   r.   rO   rX   rW   r
   rT   rH   r+   rU   rP   rV   ©rZ   r}   Únzs      r7   r]   Ú	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                 ó   • U S:  d	  U S-  S:X  a  [         R                  $ [        U5      n[        U S-
  [        S5      -  5      n[	        U5      S:”  a  US   US-  -  U S-
  -  X-  -  $ SX-  -  U [        U5      -  [        [        5      -  -  $ r`   )r   r.   r   r   rb   r   r   r   rc   s       r7   rg   Ú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¹CÑ@Ð@à˜1™4‘x ¤9¨Q£<¡´´R³Ñ!8Ñ9Ð9r9   c                 óZ   • U R                  U R                  S   R                  5       5      $ rj   rk   rm   s    r7   rn   Úerfi._eval_conjugate_  rp   r9   c                 ó4   • U R                   S   R                  $ rj   rs   rm   s    r7   Ú_eval_is_extended_realÚerfi._eval_is_extended_realb  ó   € Ø�y‰y˜‰|×,Ñ,Ð,r9   c                 ó4   • U R                   S   R                  $ rj   ©r+   rS   rm   s    r7   r�   Úerfi._eval_is_zeroe  ó   € Ø�y‰y˜‰|×#Ñ#Ð#r9   c                 óJ   • U R                  [        5      R                  SSUS9$ r  r
  r  s       r7   r¼   Úerfi._eval_rewrite_as_tractableh  r  r9   c                 ó6   • [         * [        [         U-  5      -  $ r˜   )r
   r;   r§   s      r7   r  Úerfi._eval_rewrite_as_erfk  s   € Üˆr”#”a˜‘c“(‰{Ðr9   c                 óB   • [         [        [         U-  5      -  [         -
  $ r˜   )r
   r¿   r§   s      r7   rÀ   Úerfi._eval_rewrite_as_erfcn  s   € Ü””a˜‘c“‰{œQ‰Ðr9   c                 óÂ   • [         R                  [        -   U-  [        [        5      -  n[         R                  [        -
  [        U5      [        [        U5      -  -
  -  $ r˜   r™   rœ   s       r7   r�   Úerfi._eval_rewrite_as_fresnelsq  rŸ   r9   c                 óÂ   • [         R                  [        -   U-  [        [        5      -  n[         R                  [        -
  [        U5      [        [        U5      -  -
  -  $ r˜   r™   rœ   s       r7   r¡   Úerfi._eval_rewrite_as_fresnelcu  rŸ   r9   c           
      ó„   • U[        [        5      -  [        [        R                  // S/[        SS5      /US-  * 5      -  $ r¤   r¦   r§   s      r7   r¨   Úerfi._eval_rewrite_as_meijergy  s9   € Ø””b“‰zœ'¤1§6¡6 (¨B°°´h¸rÀ1³oÐ5FÈÈAÉÈÓNÑNÐNr9   c                 ó�   • SU-  [        [        5      -  [        [        R                  /S[        R                  -  /US-  5      -  $ r«   r­   r§   s      r7   r®   Úerfi._eval_rewrite_as_hyper|  s6   € Ø�‰s”4œ“8‰|œE¤1§6¡6 (¨Q¬q¯v©v©X¨J¸¸1¹Ó=Ñ=Ð=r9   c                 ó¬   • SSK Jn  [        US-  * 5      U-  U" [        R                  US-  * 5      [        [
        5      -  [        R                  -
  -  $ r�   )r‘   r�   r   r   r’   r   rP   r“   s       r7   r•   Ú erfi._eval_rewrite_as_uppergamma  sA   € ÝFÜ�Q˜‘T�E‹{˜1‰}™j¬¯©°!°Q±$°Ó7¼¼R»Ñ@Ä1Ç5Á5ÑHÑIÐIr9   c                 óŠ   • [        US-  * 5      U-  U[        [        R                  US-  * 5      -  [        [        5      -  -
  $ r±   r²   r§   s      r7   r´   Úerfi._eval_rewrite_as_expintƒ  s:   € Ü�Q˜‘T�E‹{˜1‰}˜q¤¬¯©°°A±°Ó!6Ñ6´t¼B³xÑ?Ñ?Ð?r9   c                 ó,   • U R                  [        5      $ r˜   r
  r!  s     r7   r"  Úerfi._eval_expand_func†  r$  r9   c                 ó0  • U R                   S   R                  XUS9nUR                  US5      nXR                  ;   a&  UR                  (       a  SU-  [        [        5      -  $ UR                  (       a  U R                  U5      $ U R                  U5      $ )Nr   rÈ   r*   )	r+   rÏ   rÐ   rÒ   rS   r   r   r{   r0   rÓ   s         r7   rÕ   Úerfi._eval_as_leading_term‹  su   € Ø�i‰i˜‰l×*Ñ*¨1¸dÐ*ÐCˆØ�x‰x˜˜1‹~ˆà× Ñ Ó  T§\§\Ø�S‘5œœb›‘>Ð!Ø�^�^Ø—9‘9˜T“?Ð"Ø�y‰y˜‹~Ðr9   c                 óˆ  >• SSK Jn  US   nU[        R                  L a‹  U R                  S   n[        U5       Vs/ s H&  n[        SU-  S-
  5      SU-  USU-  S-   -  -  -  PM(     snU" SXq-  -  U5      /-   n	[        * [        US-  5      [        [        5      -  [        U	6 -  -   $ [        [        U ];  XX45      $ s  snf rØ   )rÛ   rÚ   r   rO   r+   rà   r   r
   r   r   r   r   rá   rÄ   râ   ©r1   rd   rã   r4   rÉ   rÚ   rä   r}   rf   rè   ré   s             €r7   râ   Úerfi._eval_aseries•  sÈ   ø€ Ý,Ø�a‘ˆà”A—J‘JÒØ—	‘	˜!‘ˆAä" 1œXó'Ú%˜ô ˜A˜a™C !™GÓ$¨¨1©¨q°1°Q±3¸±7©|Ñ(;Ô<Ù%ñ'Ù*/°°!±$±¸Ó*:Ð);ñ<ˆAä�2œ˜Q ™T›¤4¬£8Ñ+¬s°A¨wÑ6Ñ6Ð6ä”T˜4Ñ.¨q¸ÓAÐAùò	's   ¼-B?rë   rì   r˜   )rí   rî   rï   rð   rñ   rò   rC   ró   r]   rô   r   rg   rn   r5  r�   r¼   r  rÀ   r�   r¡   r¨   r®   r•   r´   r"  r8   r/   rÕ   râ   rõ   rö   r÷   s   @r7   rÄ   rÄ   â  s£   ø† ñGðR €Jô5ð ñ$ó ð$ð: Øñ	:ó ó ð	:ò3ò-ò$ôTòòò=ò=òOò>òJò@ò!ð -€Lò÷
Bó 
Br9   rÄ   c                   ó|   • \ rS rSrSrS r\S 5       rS rS r	S r
S rS	 rS
 rS rS rS rS rS rS rS rSrg)Úerf2i¢  a  
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                 óÔ   • U R                   u  p#US:X  a"  S[        US-  * 5      -  [        [        5      -  $ US:X  a"  S[        US-  * 5      -  [        [        5      -  $ [	        X5      e)Nr?   ra   r*   )r+   r   r   r   r   ©r1   rB   r4   r5   s       r7   rC   Ú
erf2.fdiffè  s`   € Ø�y‰y‰ˆØ�q‹=Ø”c˜1˜a™4˜%“j‘=¤¤b£Ñ)Ð)Ø˜‹]Ø”S˜!˜Q™$˜“Z‘<¤¤R£Ñ(Ð(ä$ TÓ4Ð4r9   c                 ó`  • [         R                  [         R                  [         R                  4nU[         R                  L d  U[         R                  L a  [         R                  $ X:X  a  [         R                  $ X;   d  X#;   a  [        U5      [        U5      -
  $ [        U[        5      (       a"  UR                  S   U:X  a  UR                  S   $ UR                  (       dU  UR                  (       dD  UR                  (       a  UR                  (       d"  UR                  (       a(  UR                  (       a  [        U5      [        U5      -
  $ UR                  5       nUR                  5       nU(       a  U(       a  U " U* U* 5      * $ U(       d  U(       a  [        U5      [        U5      -
  $ g rL   )r   rO   rQ   r.   rN   r;   rT   rV   r+   rS   r,   Úis_infiniterX   )rZ   r4   r5   ÚchkÚsign_xÚsign_ys         r7   r]   Ú	erf2.evalñ  s  € ä�z‰zœ1×-Ñ-¬q¯v©vÐ6ˆØ”—‘Š:˜œaŸe™ešÜ—5‘5ˆLØ‹VÜ—6‘6ˆMØ‹X˜›Ü�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                 ó’   • U R                  U R                  S   R                  5       U R                  S   R                  5       5      $ rL   rk   rm   s    r7   rn   Úerf2._eval_conjugate
  s5   € Ø�y‰y˜Ÿ™ 1™×/Ñ/Ó1°4·9±9¸Q±<×3IÑ3IÓ3KÓLÐLr9   c                 ót   • U R                   S   R                  =(       a    U R                   S   R                  $ rL   rs   rm   s    r7   r5  Úerf2._eval_is_extended_real  s)   € Ø�y‰y˜‰|×,Ñ,×N°·±¸1±×1NÑ1NÐNr9   c                 ó0   • [        U5      [        U5      -
  $ r˜   ©r;   ©r1   r4   r5   r”   s       r7   r  Úerf2._eval_rewrite_as_erf  s   € Ü�1‹vœ˜A›‰Ðr9   c                 ó0   • [        U5      [        U5      -
  $ r˜   ©r¿   rf  s       r7   rÀ   Úerf2._eval_rewrite_as_erfc  s   € Ü�A‹wœ˜a›Ñ Ð r9   c                 óZ   • [         [        [         U-  5      [        [         U-  5      -
  -  $ r˜   rÃ   rf  s       r7   rÅ   Úerf2._eval_rewrite_as_erfi  s"   € Ü”$”q˜‘s“)œD¤ 1¡›IÑ%Ñ&Ð&r9   c                 ó|   • [        U5      R                  [        5      [        U5      R                  [        5      -
  $ r˜   )r;   r  r›   rf  s       r7   r�   Úerf2._eval_rewrite_as_fresnels  ó'   € Ü�1‹v�~‰~œhÓ'¬#¨a«&¯.©.¼Ó*BÑBÐBr9   c                 ó|   • [        U5      R                  [        5      [        U5      R                  [        5      -
  $ r˜   )r;   r  rš   rf  s       r7   r¡   Úerf2._eval_rewrite_as_fresnelc  ro  r9   c                 ó|   • [        U5      R                  [        5      [        U5      R                  [        5      -
  $ r˜   )r;   r  r'   rf  s       r7   r¨   Úerf2._eval_rewrite_as_meijerg  s'   € Ü�1‹v�~‰~œgÓ&¬¨Q«¯©¼Ó)@Ñ@Ð@r9   c                 ó|   • [        U5      R                  [        5      [        U5      R                  [        5      -
  $ r˜   )r;   r  r&   rf  s       r7   r®   Úerf2._eval_rewrite_as_hyper"  s'   € Ü�1‹v�~‰~œeÓ$¤s¨1£v§~¡~´eÓ'<Ñ<Ð<r9   c                 óD  • SSK Jn  [        US-  5      U-  [        R                  U" [        R
                  US-  5      [        [        5      -  -
  -  [        US-  5      U-  [        R                  U" [        R
                  US-  5      [        [        5      -  -
  -  -
  $ r�   r�   )r1   r4   r5   r”   r�   s        r7   r•   Ú 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                 ó|   • [        U5      R                  [        5      [        U5      R                  [        5      -
  $ r˜   )r;   r  r³   rf  s       r7   r´   Úerf2._eval_rewrite_as_expint*  s'   € Ü�1‹v�~‰~œfÓ%¬¨A«¯©´vÓ(>Ñ>Ð>r9   c                 ó,   • U R                  [        5      $ r˜   r
  r!  s     r7   r"  Úerf2._eval_expand_func-  r$  r9   c                 ó&   • [        U R                  6 $ r˜   )r   r+   rm   s    r7   r�   Úerf2._eval_is_zero0  s   € Ü�d—i‘iÐ Ð r9   rë   N)rí   rî   rï   rð   rñ   rC   ró   r]   rn   r5  r  rÀ   rÅ   r�   r¡   r¨   r®   r•   r´   r"  r�   rõ   rë   r9   r7   rV  rV  ¢  si   † ñBòJ5ð ñ!ó ð!ò0MòOòò!ò'òCòCòAò=òFò
?ò!õ!r9   rV  c                   óH   • \ rS rSrSrS
S jrS
S jr\S 5       rS r	S r
Srg	)rH   i3  aÎ  
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                 óº   • US:X  aK  [        [        5      [        U R                  U R                  S   5      S-  5      -  [
        R                  -  $ [        X5      e©Nr?   r   r*   ©r   r   r   r0   r+   r   r’   r   rA   s     r7   rC   Úerfinv.fdifff  sG   € Ø�q‹=Üœ“8œC §	¡	¨$¯)©)°A©,Ó 7¸Ñ :Ó;Ñ;¼A¿F¹FÑBÐBä$ TÓ4Ð4r9   c                 ó   • [         $ rF   re  rA   s     r7   rI   Úerfinv.inversel  s	   € ô
 ˆ
r9   c                 ó�  • U[         R                  L a  [         R                  $ U[         R                  L a  [         R                  $ UR                  (       a  [         R
                  $ U[         R                  L a  [         R                  $ [        U[        5      (       a-  UR                  S   R                  (       a  UR                  S   $ UR                  (       a  [         R
                  $ UR                  S5      nUbE  [        U[        5      (       a/  UR                  S   R                  (       a  UR                  S   * $ g g g ©Nr   r¥   )r   rN   rR   rQ   rS   r.   rP   rO   rT   r;   r+   r,   rW   r-  s      r7   r]   Úerfinv.evals  sÜ   € à”—‘Š:Ü—5‘5ˆLØ”!—-‘-ÒÜ×%Ñ%Ð%Ø�Y�YÜ—6‘6ˆMØ”!—%‘%ŠZÜ—:‘:Ðä�aœ×Ñ !§&¡&¨¡)×"<×"<Ø—6‘6˜!‘9Ðà�9�9Ü—6‘6ˆMð ×'Ñ'¨Ó+ˆØ‰>œz¨"¬c×2Ñ2¸¿¹À¹
×7T×7TØ—G‘G˜A‘J�;Ðð 8UÐ2ˆ>r9   c                 ó   • [        SU-
  5      $ ©Nr?   rü   r§   s      r7   Ú_eval_rewrite_as_erfcinvÚerfinv._eval_rewrite_as_erfcinv‰  s   € Ü�q˜‘s‹|Ðr9   c                 ó4   • U R                   S   R                  $ rj   r9  rm   s    r7   r�   Úerfinv._eval_is_zeroŒ  r;  r9   rë   Nrì   )rí   rî   rï   rð   rñ   rC   rI   ró   r]   rŠ  r�   rõ   rë   r9   r7   rH   rH   3  s0   † ñ/ôd5ôð ñó ðò*õ$r9   rH   c                   óN   • \ rS rSrSrSS jrSS jr\S 5       rS r	S r
S rS	rg
)rU   i�  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                 ó¼   • US:X  aL  [        [        5      * [        U R                  U R                  S   5      S-  5      -  [
        R                  -  $ [        X5      er€  r�  rA   s     r7   rC   Úerfcinv.fdiff½  sI   € Ø�q‹=Üœ“H�9œS §¡¨4¯9©9°Q©<Ó!8¸!Ñ!;Ó<Ñ<¼Q¿V¹VÑCÐCä$ TÓ4Ð4r9   c                 ó   • [         $ rF   ri  rA   s     r7   rI   Úerfcinv.inverseÃ  s	   € ô
 ˆr9   c                 ó@  • U[         R                  L a  [         R                  $ UR                  (       a  [         R                  $ U[         R                  L a  [         R
                  $ US:X  a  [         R                  $ UR                  (       a  [         R                  $ g r±   )r   rN   rS   rO   rP   r.   rQ   ©rZ   r}   s     r7   r]   Úerfcinv.evalÊ  sd   € à”—‘Š:Ü—5‘5ˆLØ�Y�YÜ—:‘:ÐØ”!—%‘%ŠZÜ—6‘6ˆMØ�!‹VÜ×%Ñ%Ð%à�9�9Ü—:‘:Ðð r9   c                 ó   • [        SU-
  5      $ r‰  rG   r§   s      r7   Ú_eval_rewrite_as_erfinvÚerfcinv._eval_rewrite_as_erfinvØ  s   € Ü�a˜‘c‹{Ðr9   c                 ó:   • U R                   S   S-
  R                  $ rL   r9  rm   s    r7   r�   Úerfcinv._eval_is_zeroÛ  s   € Ø—	‘	˜!‘˜qÑ ×)Ñ)Ð)r9   c           	      ót   • U R                   S   n[        UR                  [        U[	        S5      5      /5      $ rÿ   )r+   r	   rS   r   r   r|   s     r7   Ú_eval_is_infiniteÚerfcinv._eval_is_infiniteÞ  s.   € Ø�I‰I�a‰LˆÜ˜Ÿ™¤E¨!¬W°Q«ZÓ$8Ð9Ó:Ð:r9   rë   Nrì   )rí   rî   rï   rð   rñ   rC   rI   ró   r]   r—  r�   rœ  rõ   rë   r9   r7   rU   rU   �  s5   † ñ)ôX5ôð ñó ðòò*õ;r9   rU   c                   ó4   • \ rS rSrSrS r\S 5       rS rSr	g)rV   iã  a¢  
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                 ó  • U R                   u  p#US:X  a#  [        U R                  X#5      S-  US-  -
  5      $ US:X  a>  [        [        5      [
        R                  -  [        U R                  X#5      S-  5      -  $ [        X5      e©Nr?   r*   )r+   r   r0   r   r   r   r’   r   rX  s       r7   rC   Úerf2inv.fdiff  sp   € Ø�y‰y‰ˆØ�q‹=Ü�t—y‘y “~ qÑ(¨¨A©Ñ-Ó.Ð.Ø˜‹]Üœ“8œAŸF™F‘?¤3 t§y¡y°£~°qÑ'8Ó#9Ñ9Ð9ä$ TÓ4Ð4r9   c                 ó  • U[         R                  L d  U[         R                  L a  [         R                  $ UR                  (       a!  UR                  (       a  [         R                  $ UR                  (       a#  U[         R                  L a  [         R
                  $ U[         R                  L a!  UR                  (       a  [         R                  $ UR                  (       a  [        U5      $ U[         R
                  L a  [        U* 5      $ UR                  (       a  U$ U[         R
                  L a  [        U5      $ UR                  (       a,  UR                  (       a  [         R                  $ [        U5      $ UR                  (       a  U$ g r˜   )r   rN   rS   r.   rP   rO   rH   rU   )rZ   r4   r5   s      r7   r]   Ú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                 óh   • U R                   u  pUR                  (       a  UR                  (       a  gg g )NTr9  )r1   r4   r5   s      r7   r�   Úerf2inv._eval_is_zero;  s$   € Ø�y‰y‰ˆØ�9�9˜ŸŸØð #ˆ9r9   rë   N)
rí   rî   rï   rð   rñ   rC   ró   r]   r�   rõ   rë   r9   r7   rV   rV   ã  s&   † ñ0òf5ð ñó ðõ4r9   rV   c                   ó¢   ^ • \ rS rSrSr\S 5       rSS jrU 4S jrS r	S r
S rS	 r\r\r\rSS
 jrS rU 4S jrSU 4S jjrU 4S jrSrU =r$ )ÚEiiD  a   
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                 ó„  • UR                   (       a  [        R                  $ U[        R                  L a  [        R                  $ U[        R                  L a  [        R                  $ UR                   (       a  [        R                  $ UR                  5       u  p#U(       a  [        U5      S[        -  [        -  U-  -   $ g r±   )	rS   r   rQ   rO   r.   Úextract_branch_factorr§  r
   r   ©rZ   r}   r.  rd   s       r7   r]   ÚEi.evalœ  s‡   € à�9�9Ü×%Ñ%Ð%Ø”!—*‘*Š_Ü—:‘:ÐØ”!×$Ñ$Ò$Ü—6‘6ˆMà�9�9Ü×%Ñ%Ð%à×'Ñ'Ó)‰ˆÞÜ�b“6˜Aœa™C¤™F 1™HÑ$Ð$ð r9   c                 óp   • [        U R                  S   5      nUS:X  a  [        U5      U-  $ [        X5      erL   )r   r+   r   r   ©r1   rB   r[   s      r7   rC   ÚEi.fdiff¬  s4   € Ü˜Ÿ™ 1™Ó&ˆØ�q‹=Ü�s“8˜C‘<Ðä$ TÓ4Ð4r9   c                 óÎ   >• U R                   S   [        S5      -  R                  (       a,  [        TU ]  U5      [
        [        -  R	                  U5      -   $ [        TU ]  U5      $ r†  )r+   r   rß   rá   Ú_eval_evalfr
   r   )r1   Úprecré   s     €r7   r°  ÚEi._eval_evalf³  sQ   ø€ Ø�I‰I�a‰Lœ B›Ñ'×4×4Ü‘7Ñ& tÓ,´´"±×/AÑ/AÀ$Ó/GÑGÐGÜ‰wÑ" 4Ó(Ð(r9   c                 óV   • SSK Jn  U" S[        S5      U-  5      * [        [        -  -
  $ )Nr   rŽ   r¥   )r‘   r�   r   r
   r   r“   s       r7   r•   ÚEi._eval_rewrite_as_uppergamma¸  s)   € ÝFñ ˜1œj¨›n¨QÑ.Ó/Ð/´!´B±$Ñ6Ð6r9   c                 óP   • [        S[        S5      U-  5      * [        [        -  -
  $ )Nr?   r¥   )r³   r   r
   r   r§   s      r7   r´   ÚEi._eval_rewrite_as_expint¾  s$   € Ü�qœ* R›.¨Ñ*Ó+Ð+¬a´©dÑ2Ð2r9   c                 ó„   • [        U[        5      (       a  [        UR                  S   5      $ [        [	        U5      5      $ rj   )rT   r   Úlir+   r   r§   s      r7   Ú_eval_rewrite_as_liÚEi._eval_rewrite_as_liÁ  s1   € Ü�aœ×ÑÜ�a—f‘f˜Q‘i“=Ð ô
 ”#�a“&‹zÐr9   c                 óœ   • UR                   (       a%  [        U5      [        U5      -   [        [        -  -
  $ [        U5      [        U5      -   $ r˜   )Úis_negativeÚShiÚChir
   r   r§   s      r7   Ú_eval_rewrite_as_SiÚEi._eval_rewrite_as_SiÊ  s6   € Ø�=�=Ü�q“6œC ›F‘?¤Q¤r¡TÑ)Ð)ä�q“6œC ›F‘?Ð"r9   c                 ó0   • [        U5      [        U5      -  $ r˜   )r   Ú_eisr  s       r7   r¼   ÚEi._eval_rewrite_as_tractableÓ  s   € Ü�1‹vœ˜Q›ÑÐr9   c                 óª   • SSK Jn  [        [        SU/5      R                  5      nU" [
        R                  U-  U-  U[
        R                  U45      $ ©Nr   ©ÚIntegralr\   )Úsympy.integrals.integralsrÇ  r   r   Únamer   ÚExp1rQ   ©r1   r}   r”   rÇ  r\   s        r7   Ú_eval_rewrite_as_IntegralÚEi._eval_rewrite_as_IntegralÖ  sE   € Ý6ÜÔ'¨¨a¨SÓ1×6Ñ6Ó7ˆÙœŸ™ ™	 !™ a¬×);Ñ);¸QÐ%?Ó@Ð@r9   c                 óÈ  >• SSK Jn  U R                  S   R                  US5      nU R                  S   R	                  XS9nUR                  X5      nUR                  (       aq  UR                  U5      u  pxUc  [        U5      OUn[        U5      X‚-  -   [        -   U" U5      R                  (       a  [        [        -  -
  $ [        R                  -
  $ [        T	U ]A  XUS9$ )Nr   )r   )rÊ   rÈ   )Úsympyr   r+   r·   rÏ   rÎ   rS   Úas_coeff_exponentr   r   r¼  r
   r   r   r.   rá   rÕ   )
r1   r4   rÉ   rÊ   r   Úx0r[   ÚcÚeré   s
            €r7   rÕ   ÚEi._eval_as_leading_termÛ  sÆ   ø€ ÝØ�Y‰Y�q‰\×Ñ  1Ó%ˆØ�i‰i˜‰l×*Ñ*¨1Ð*Ð8ˆØ�w‰w�qÓˆØ�:�:Ø×(Ñ(¨Ó+‰DˆAØ!™\”3�q”6¨tˆDÜ�q“6˜A™F‘?¤ZÑ/Ù˜4›×,×,””"‘ñ:ð :Ü23·&±&ñ:ð :ä‰wÑ,¨QÀÐ,ÐEÐEr9   c                 óÚ   >• U R                   S   R                  US5      nUR                  (       a+  U R                  " U R                   6 nUR	                  XU5      $ [
        TU ]  XU5      $ rj   )r+   r·   rS   r¿  Ú_eval_nseriesrá   ©r1   r4   rd   rÉ   rÊ   rÑ  Úfré   s          €r7   rÖ  ÚEi._eval_nseriesç  s[   ø€ Ø�Y‰Y�q‰\×Ñ  1Ó%ˆØ�:�:Ø×(Ò(¨$¯)©)Ð4ˆAØ—?‘? 1¨Ó.Ð.Ü‰wÑ$ Q¨4Ó0Ð0r9   c                 óT  >• SSK Jn  US   nU[        R                  [        R                  4;   a`  U R
                  S   n[        U5       Vs/ s H  n[        U5      Xx-  -  PM     snU" SXq-  -  U5      /-   n	[        U5      U-  [        U	6 -  $ [        [        U ]3  XX45      $ s  snf ©Nr   rÙ   r?   )rÛ   rÚ   r   rO   rQ   r+   rà   r   r   r   rá   r§  râ   rS  s             €r7   râ   ÚEi._eval_aseriesî  sž   ø€ Ý,Ø�a‘ˆà”Q—Z‘Z¤×!3Ñ!3Ð4Ó4Ø—	‘	˜!‘ˆAÜ05°a´Ó9²¨1”˜1“ ¡Ô&±Ñ9Ù˜1˜Q™T™6 1Ó%Ð&ñ'ˆAä˜“F˜1‘H¤ Q Ñ'Ð'ä”R˜Ñ,¨Q°qÓ?Ð?ùò	 :s   ÁB%rë   rì   r˜   ©r   )rí   rî   rï   rð   rñ   ró   r]   rC   r°  r•   r´   r¹  r¿  Ú_eval_rewrite_as_CiÚ_eval_rewrite_as_ChiÚ_eval_rewrite_as_Shir¼   rÌ  rÕ   rÖ  râ   rõ   rö   r÷   s   @r7   r§  r§  D  sr   ø† ñTðn ñ%ó ð%ô5õ)ò
7ò3òò#ð
 .ÐØ.ÐØ.Ðô òAõ

F÷1÷
@ó 
@r9   r§  c                   ó|   ^ • \ rS rSrSr\S 5       rS rS rS r	S r
S r\r\r\rSU 4S	 jjrU 4S
 jrS rSrU =r$ )r³   iû  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           	      óº  • SSK JnJn  [        U5      nX:w  a  [	        XR5      $ UR
                  (       a  US::  d%  UR
                  (       d:  SU-  R
                  (       a&  [        [        X!S-
  -  U" SU-
  U5      -  5      5      $ UR                  5       u  p&U[        R                  L a  g UR                  (       a^  US:”  d  g [	        X5      S[        -  [        -  U-  [        R                  US-
  -  -  [        US-
  5      -  [        U5      US-
  -  -  -
  $ [        S[        -  [        -  U-  U-  5      S-
  X!S-
  -  -  U" SU-
  5      -  [	        X5      -   $ )Nr   )Úgammar�   r*   r?   )r‘   rã  r�   r   r³   Ú
is_Integerr   r©  r   r.   Ú
is_integerr   r
   rR   r   r   )rZ   Únur}   rã  r�   Únu2rd   s          r7   r]   Úexpint.evalc  s.  € çOÜ˜‹nˆØ‹9Ü˜#“>Ð!Ø�=�=˜R 1›W¨R¯]¯]ÀÀ"Á×?P×?PÜœj¨°!©V©±ZÀÀBÁÈÓ5JÑ)JÓKÓLÐLð ×&Ñ&Ó(‰ˆØ”—‘Š;ØØ�=�=Ø˜“6ØÜ˜"“=Ø”B‘$”q‘&˜‘(œ1Ÿ=™=¨2°©6Ñ2Ñ2´9¸RÀ!¹VÓ3DÑDÄZÐPQÃ]ÐUWÐZ[ÑU[ÑE\Ñ\ñ]ð ]ô ˜œ!™œB™˜r™	 !™Ó$ qÑ(¨!°1©f©+Ñ5±e¸AÀ¹F³mÑCÄfÈRÃmÑSÐSr9   c           	      ó¬   • U R                   u  p#US:X  a   X2S-
  -  * [        / SS/SSSU-
  // U5      -  $ US:X  a  [        US-
  U5      * $ [        X5      er€  )r+   r'   r³   r   )r1   rB   ræ  r}   s       r7   rC   Úexpint.fdiffy  sh   € Ø—	‘	‰ˆØ�q‹=Ø˜Q™‘K�<¤¨¨Q°¨F°Q¸¸1¸r¹6°NÀBÈÓ JÑJÐJØ˜‹]Ü˜2 ™6 1Ó%Ð%Ð%ä$ TÓ4Ð4r9   c                 ó6   • SSK Jn  X!S-
  -  U" SU-
  U5      -  $ )Nr   rŽ   r?   )r‘   r�   )r1   ræ  r}   r”   r�   s        r7   r•   Ú"expint._eval_rewrite_as_uppergamma‚  s!   € ÝFØ˜‘6‰{™: a¨"¡f¨aÓ0Ñ0Ð0r9   c                 óØ  • US:X  a2  [        U[        [        * [        -  5      -  5      * [        [        -  -
  $ UR                  (       a›  US:”  a•  [        U5      * nXAS-
  -  [        US-
  5      -  [        U5      R                  [         5      -  [        U5      [        US-
  5      -  [        [        US-
  5       Vs/ s H  n[        X-
  S-
  5      XE-  -  PM     sn6 -  -   $ U $ s  snf r   )r§  r    r
   r   rä  r   r   ÚE1r  r   r   rà   )r1   ræ  r}   r”   r4   rf   s         r7   Ú_eval_rewrite_as_EiÚexpint._eval_rewrite_as_Ei†  sÖ   € Ø�‹7Ü�qœ¤A 2¤b¡5Ó)Ñ)Ó*Ð*¬Q¬r©TÑ1Ð1Ø�]�]˜r A›vä˜A“�ˆAØ˜A‘v‘;œy¨¨a©Ó0Ñ0´°A³·±¼rÓ1BÑBÜ�A“”y  a¡Ó(Ñ(Ü¼%ÀÀQÁ¼-ÓHº-°Q”i ¡¨¡
Ó+¨A©DÔ0¹-ÑHÐIñJñJð Jð ˆKùò Is   Â>C'c                 óV   • U R                  [        5      R                   " [        40 UD6$ r˜   )r  r§  r³   r!  s     r7   r"  Úexpint._eval_expand_func’  s!   € Ø�|‰|œBÓ×'Ò'¬Ñ8°%Ñ8Ð8r9   c                 ó@   • US:w  a  U $ [        U5      [        U5      -
  $ r‰  )r½  r¾  )r1   ræ  r}   r”   s       r7   r¿  Úexpint._eval_rewrite_as_Si•  s    € Ø�‹7ØˆKÜ�1‹vœ˜A›‰Ðr9   c                 ón  >• U R                   S   R                  U5      (       d‚  U R                   S   nUS:X  a+  U R                  " U R                   6 nUR                  XU5      $ UR                  (       a1  US:”  a+  U R
                  " U R                   6 nUR                  XU5      $ [        TU ]  XU5      $ rL   )r+   Úhasr¿  rÖ  rä  rï  rá   )r1   r4   rd   rÉ   rÊ   ræ  rØ  ré   s          €r7   rÖ  Úexpint._eval_nseries�  s™   ø€ Ø�y‰y˜‰|×Ñ ×"Ñ"Ø—‘˜1‘ˆBØ�Q‹wØ×,Ò,¨d¯i©iÐ8�Ø—‘ q¨TÓ2Ð2Ø—— 2¨£6Ø×,Ò,¨d¯i©iÐ8�Ø—‘ q¨TÓ2Ð2Ü‰wÑ$ Q¨4Ó0Ð0r9   c                 óz  >• SSK Jn  US   nU R                  S   nU[        R                  L au  U R                  S   n[        U5       V	s/ s H'  n	[        R                  U	-  [        Xy5      -  X‰-  -  PM)     sn	U" SX�-  -  U5      /-   n
[        U* 5      U-  [        U
6 -  $ [        [        U ]3  XX45      $ s  sn	f rÛ  )rÛ   rÚ   r+   r   rO   rà   rR   r   r   r   rá   r³   râ   )r1   rd   rã   r4   rÉ   rÚ   rä   ræ  r}   rf   rè   ré   s              €r7   râ   Úexpint._eval_aseries¨  s¶   ø€ Ý,Ø�a‘ˆØ�Y‰Y�q‰\ˆà”A—J‘JÒØ—	‘	˜!‘ˆAÜKPÐQRÌ8ÓTÊ8Àa”—‘ Ñ!¤O°BÓ$:Ñ:¸Q¹TÔAÉ8ÑTÑX]Ð^_Ð`aÑ`dÑ^dÐfgÓXhÐWiÑiˆAÜ˜˜“G˜A‘I¤ a Ñ(Ð(ä”V˜TÑ0°¸1ÓCÐCùò Us   Á.B8c                 óÂ   • SSK Jn  U R                  u  pE[        [	        SU5      R
                  5      nU" Xd* -  [        U* U-  5      -  US[        R                  45      $ ©Nr   rÆ  r\   r?   )	rÈ  rÇ  r+   r   r   rÉ  r   r   rO   )r1   r+   r”   rÇ  rd   r4   r\   s          r7   rÌ  Ú expint._eval_rewrite_as_Integral´  sS   € Ý6Ø�y‰y‰ˆÜÔ'¨¨TÓ2×7Ñ7Ó8ˆÙ˜˜2™¤ Q B q¡D£	Ñ)¨A¨q´!·*±*Ð+=Ó>Ð>r9   rë   rÝ  )rí   rî   rï   rð   rñ   ró   r]   rC   r•   rï  r"  r¿  rÞ  rß  rà  rÖ  râ   rÌ  rõ   rö   r÷   s   @r7   r³   r³   û  sb   ø† ñdðN ñTó ðTò*5ò1ò
ò9òð .ÐØ.ÐØ.Ð÷	1õ
D÷?ð ?r9   r³   c                 ó   • [        SU 5      $ )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³   )r}   s    r7   rî  rî  »  s   € ô@ �!�Q‹<Ðr9   c                   ó„   • \ rS rSrSr\S 5       rSS jrS rS r	S r
S rS	 r\rS
 r\rS rS rSS jrSS jrS rSrg)r¸  iÞ  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                 ó  • UR                   (       a  [        R                  $ U[        R                  L a  [        R                  $ U[        R
                  L a  [        R
                  $ UR                   (       a  [        R                  $ g r˜   )rS   r   r.   rP   rQ   rO   r”  s     r7   r]   Úli.evalB  sS   € à�9�9Ü—6‘6ˆMØ”!—%‘%ŠZÜ×%Ñ%Ð%Ø”!—*‘*Š_Ü—:‘:ÐØ�9�9Ü—6‘6ˆMð r9   c                 óz   • U R                   S   nUS:X  a  [        R                  [        U5      -  $ [	        X5      erL   ©r+   r   rP   r   r   r­  s      r7   rC   Úli.fdiffM  ó4   € Ø�i‰i˜‰lˆØ�q‹=Ü—5‘5œ3˜s›8Ñ#Ð#ä$ TÓ4Ð4r9   c                 ó‚   • U R                   S   nUR                  (       d  U R                  UR                  5       5      $ g rj   )r+   r‰   r0   rl   r|   s     r7   rn   Úli._eval_conjugateT  s2   € Ø�I‰I�a‰Lˆà×%×%Ø—9‘9˜QŸ[™[›]Ó+Ð+ð &r9   c                 ó0   • [        U5      [        S5      -   $ r±   )ÚLir¸  r§   s      r7   Ú_eval_rewrite_as_LiÚli._eval_rewrite_as_LiZ  ó   € Ü�!‹u”r˜!“u‰}Ðr9   c                 ó*   • [        [        U5      5      $ r˜   )r§  r   r§   s      r7   rï  Úli._eval_rewrite_as_Ei]  s   € Ü”#�a“&‹zÐr9   c           	      óú   • SSK Jn  U" S[        U5      * 5      * [        R                  [        [        U5      5      [        [        R
                  [        U5      -  5      -
  -  -   [        [        U5      * 5      -
  $ ©Nr   rŽ   )r‘   r�   r   r   r’   rP   r“   s       r7   r•   Ú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  • [        [        [        U5      -  5      [        [        [        [        U5      -  5      -  -
  [        R
                  [        [        R                  [        U5      -  5      [        [        U5      5      -
  -  -
  [        [        [        U5      -  5      -
  $ r˜   )ÚCir
   r   ÚSir   r’   rP   r§   s      r7   r¿  Ú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                 óì   • [        [        U5      5      [        [        U5      5      -
  [        R                  [        [        R
                  [        U5      -  5      [        [        U5      5      -
  -  -
  $ r˜   )r¾  r   r½  r   r’   rP   r§   s      r7   rà  Ú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           	      óì   • [        U5      [        SS[        U5      5      -  [        R                  [        [        U5      5      [        [        R                  [        U5      -  5      -
  -  -   [
        -   $ )N)r?   r?   )r*   r*   )r   r&   r   r’   rP   r   r§   s      r7   r®   Ú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                 óö   • [        [        U5      * 5      * [        R                  [        [        R                  [        U5      -  5      [        [        U5      5      -
  -  -
  [	        SS[        U5      * 5      -
  $ )N)rë   rì   ))r   r   rë   )r   r   r’   rP   r'   r§   s      r7   r¨   Ú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   • U[        [        U5      5      -  $ r˜   )rÂ  r   r  s       r7   r¼   Úli._eval_rewrite_as_tractablex  s   € Ø”4œ˜A›“<ÑÐr9   c                 óà   • U R                   S   n[        SU5       Vs/ s H   n[        U5      U-  [        U5      U-  -  PM"     nn[        [        [        U5      5      -   [        U6 -   $ s  snf rL   )r+   rà   r   r   r   r   )r1   r4   rd   rÉ   rÊ   r}   rf   rè   s           r7   rÖ  Úli._eval_nseries{  sa   € Ø�I‰I�a‰LˆÜ7<¸QÀ´{ÓC²{°!Œc�!‹f�q‰[œI a›L¨1Ñ,Ô-±{ˆÐCÜœC¤ A£›KÑ'¬#¨q¨'Ñ1Ð1ùò Ds   ž'A+c                 óF   • U R                   S   nUR                  (       a  gg rr   r9  r|   s     r7   r�   Úli._eval_is_zero€  ó   € Ø�I‰I�a‰LˆØ�9�9Øð r9   rë   rì   r˜   rÝ  )rí   rî   rï   rð   rñ   ró   r]   rC   rn   r	  rï  r•   r¿  rÞ  rà  rß  r®   r¨   r¼   rÖ  r�   rõ   rë   r9   r7   r¸  r¸  Þ  sm   † ñ`ðF ñó ðô5ò,òòòIò
Jð .ÐòVð 0ÐòGò>ô ô2õ
r9   r¸  c                   óR   • \ rS rSrSr\S 5       rSS jrS rS r	SS jr
SS	 jrS
rg)r  i…  aº  
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                 óˆ   • U[         R                  L a  [         R                  $ U[        S5      :X  a  [         R                  $ g r±   )r   rO   r.   r”  s     r7   r]   ÚLi.evalÆ  s0   € à”—
‘
Š?Ü—:‘:ÐØ”!�A“$‹YÜ—6‘6ˆMð r9   c                 óz   • U R                   S   nUS:X  a  [        R                  [        U5      -  $ [	        X5      erL   r  r­  s      r7   rC   ÚLi.fdiffÍ  r  r9   c                 óJ   • U R                  [        5      R                  U5      $ r˜   )r  r¸  Úevalf)r1   r±  s     r7   r°  ÚLi._eval_evalfÔ  s   € Ø�|‰|œBÓ×%Ñ% dÓ+Ð+r9   c                 ó0   • [        U5      [        S5      -
  $ r±   )r¸  r§   s      r7   r¹  ÚLi._eval_rewrite_as_li×  r  r9   Nc                 óH   • U R                  [        5      R                  SSS9$ )Nr	  T)r2   )r  r¸  r  s       r7   r¼   ÚLi._eval_rewrite_as_tractableÚ  s!   € Ø�|‰|œBÓ×'Ñ'¨¸$Ð'Ð?Ð?r9   c                 óX   • U R                   " U R                  6 nUR                  XU5      $ r˜   )r¹  r+   rÖ  )r1   r4   rd   rÉ   rÊ   rØ  s         r7   rÖ  ÚLi._eval_nseriesÝ  s'   € Ø×$Ò$ d§i¡iÐ0ˆØ�‰˜q TÓ*Ð*r9   rë   rì   r˜   rÝ  )rí   rî   rï   rð   rñ   ró   r]   rC   r°  r¹  r¼   rÖ  rõ   rë   r9   r7   r  r  …  s6   † ñ=ð@ ñó ðô5ò,òô@÷+r9   r  c                   óV   ^ • \ rS rSrSr\S 5       rS	S jrS rS r	S
U 4S jjr
SrU =r$ )ÚTrigonometricIntegraliå  z(Base class for trigonometric integrals. c                 ót  • U[         R                  L a  U R                  $ U[         R                  L a  U R	                  5       $ U[         R
                  L a  U R                  5       $ UR                  (       a  U R                  $ UR                  [        [        5      5      nUc*  U R                  S5      S:X  a  UR                  [        5      nUb  U R                  US5      $ UR                  [        [        * 5      5      nUb  U R                  US5      $ UR                  [        S5      5      nUc&  U R                  S5      S:X  a  UR                  S5      nUb  U R                  U5      $ UR                  5       u  p#US:X  a  X!:X  a  g S[        -  [        -  U-  U R                  S5      -  U " U5      -   $ )Nr   r?   r¥   r*   )r   r.   Ú_atzerorO   Ú_atinfrQ   Ú	_atneginfrS   rW   r   r
   Ú	_trigfuncÚ_IfactorÚ_minusfactorr©  r   rª  s       r7   r]   ÚTrigonometricIntegral.evalé  sj  € à”—‘Š;Ø—;‘;ÐØ”!—*‘*Š_Ø—:‘:“<ÐØ”!×$Ñ$Ò$Ø—=‘=“?Ð"à�9�9Ø—;‘;Ðà×'Ñ'¬
´1«Ó6ˆØ‰:˜#Ÿ-™-¨Ó*¨aÓ/Ø×+Ñ+¬AÓ.ˆBØ‰>Ø—<‘<  AÓ&Ð&Ø×'Ñ'¬
´A°2«Ó7ˆØ‰>Ø—<‘<  BÓ'Ð'à×'Ñ'¬
°2«Ó7ˆØ‰:˜#Ÿ-™-¨Ó*¨aÓ/Ø×+Ñ+¨BÓ/ˆBØ‰>Ø×#Ñ# BÓ'Ð'à×'Ñ'Ó)‰ˆØ�‹6�b“gØØ”‰t”A‰v�a‰x˜Ÿ™ aÓ(Ñ(©3¨r«7Ñ2Ð2r9   c                 ó|   • [        U R                  S   5      nUS:X  a  U R                  U5      U-  $ [        X5      erL   )r   r+   r6  r   r­  s      r7   rC   ÚTrigonometricIntegral.fdiff	  s:   € Ü˜Ÿ™ 1™Ó&ˆØ�q‹=Ø—>‘> #Ó& sÑ*Ð*ä$ TÓ4Ð4r9   c                 óJ   • U R                  U5      R                  [        5      $ r˜   )r´   r  r§  r§   s      r7   rï  Ú)TrigonometricIntegral._eval_rewrite_as_Ei  s   € Ø×+Ñ+¨AÓ.×6Ñ6´rÓ:Ð:r9   c                 óN   • SSK Jn  U R                  U5      R                  U5      $ r  )r‘   r�   r´   r  r“   s       r7   r•   Ú1TrigonometricIntegral._eval_rewrite_as_uppergamma  s!   € ÝFØ×+Ñ+¨AÓ.×6Ñ6°zÓBÐBr9   c                 ó¼  >• U R                   S   R                  US5      S:w  a  [        TU ]  XU5      $ U R	                  U5      R                  XU5      nU R	                  S5      S:w  a  US-  nUR                  [        S SS9nU R	                  S5      S:w  a  U[        [        U5      -   -  nUR                  XR                   S   5      R                  XU5      $ )Nr   r?   c                 ó   • X-  U-  $ r˜   rë   )r\   rd   s     r7   Ú<lambda>Ú5TrigonometricIntegral._eval_nseries.<locals>.<lambda>  s
   € ¸!¹$¸qº&r9   F)Úsimultaneous)	r+   rÐ   rá   rÖ  r6  Úreplacer   r   r   )r1   r4   rd   rÉ   rÊ   Ú
baseseriesré   s         €r7   rÖ  Ú#TrigonometricIntegral._eval_nseries  sÇ   ø€ à�9‰9�Q‰<×Ñ˜Q Ó" aÓ'Ü‘7Ñ(¨¨tÓ4Ð4Ø—^‘^ AÓ&×4Ñ4°Q¸4Ó@ˆ
Ø�>‰>˜!Ó Ó!Ø˜!‰OˆJØ×'Ñ'¬Ñ-@ÈuÐ'ÐUˆ
Ø�>‰>˜!Ó Ó!Øœ*¤s¨1£vÑ-Ñ-ˆJØ�‰˜q§)¡)¨A¡,Ó/×=Ñ=¸aÀDÓIÐIr9   rë   rì   rÝ  )rí   rî   rï   rð   rñ   ró   r]   rC   rï  r•   rÖ  rõ   rö   r÷   s   @r7   r1  r1  å  s6   ø† Ù3ð ñ3ó ð3ô>5ò;òC÷
Jõ 
Jr9   r1  c                   ó¤   ^ • \ rS rSrSr\r\R                  r	\
S 5       r\
S 5       r\
S 5       r\
S 5       rS rS r\rS	 rU 4S
 jrS rSrU =r$ )r  i$  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   • [         [        R                  -  $ r˜   ©r   r   r’   ©rZ   s    r7   r4  Ú	Si._atinfn  s   € ä”!—&‘&‰yÐr9   c                 ó2   • [         * [        R                  -  $ r˜   rJ  rK  s    r7   r5  ÚSi._atneginfr  s   € äˆs”1—6‘6‰zÐr9   c                 ó   • [        U5      * $ r˜   )r  r”  s     r7   r8  ÚSi._minusfactorv  s   € ä�1“ˆvˆr9   c                 ó,   • [         [        U5      -  U-  $ r˜   )r
   r½  ©rZ   r}   Úsigns      r7   r7  ÚSi._Ifactorz  s   € ä”�Q“‰x˜‰}Ðr9   c                 óš   • [         S-  [        [        [        5      U-  5      [        [        [        * 5      U-  5      -
  S-  [        -  -   $ r±   )r   rî  r   r
   r§   s      r7   r´   ÚSi._eval_rewrite_as_expint~  s=   € ä�!‰t”rœ*¤Q›-¨™/Ó*¬R´
¼A¸2³¸qÑ0@Ó-AÑAÀ1ÑDÄQÑFÑFÐFr9   c                 óx   • SSK Jn  [        [        SU/5      R                  5      nU" [        U5      USU45      $ rÅ  )rÈ  rÇ  r   r   rÉ  r%   rË  s        r7   rÌ  ÚSi._eval_rewrite_as_Integral‚  s6   € Ý6ÜÔ'¨¨a¨SÓ1×6Ñ6Ó7ˆÙœ˜Q› ! Q¨ Ó+Ð+r9   c                 óN  • U R                   S   R                  XUS9nUR                  US5      nU[        R                  L a-  UR                  US[        U5      R                  (       a  SOSS9nUR                  (       a  U$ UR                  (       d  U R                  U5      $ U $ ©Nr   rÈ   rË   rÌ   rÍ   ©r+   rÏ   rÐ   r   rN   r·   r   r¼  rS   r[  r0   rÓ   s         r7   rÕ   ÚSi._eval_as_leading_term‰  sƒ   € Ø�i‰i˜‰l×*Ñ*¨1¸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                 óx  >• SSK Jn  US   nU[        R                  L aþ  U R                  S   n[        US-  S-   5       Vs/ s H1  n[        R                  U-  [        SU-  5      -  USU-  S-   -  -  PM3     snU" SXq-  -  U5      /-   n	[        US-  5       Vs/ s H4  n[        R                  U-  [        SU-  S-   5      -  USUS-   -  -  -  PM6     snU" SXq-  -  U5      /-   n
[        S-  [        U5      [        U	6 -  -
  [        U5      [        U
6 -  -
  $ [        [        U ];  XX45      $ s  snf s  snf rØ   )rÛ   rÚ   r   rO   r+   rà   rR   r   r   r#   r   r$   rá   r  râ   )r1   rd   rã   r4   rÉ   rÚ   rä   r}   rf   ÚpÚqré   s              €r7   râ   ÚSi._eval_aseries–  sJ  ø€ Ý,Ø�a‘ˆð ”A—J‘JÒØ—	‘	˜!‘ˆAä" 1 a¡4¨!¡8œ_ó.Ú,˜ô —‘ Ñ!¤I¨a°©c£NÑ2°Q¸¸1¹¸q¹±\ÔAÙ,ñ.Ù16°q¸¹±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   Á8D2Â;D7c                 óF   • U R                   S   nUR                  (       a  gg rr   r9  r|   s     r7   r�   ÚSi._eval_is_zero¦  r!  r9   rë   )rí   rî   rï   rð   rñ   r$   r6  r   r.   r3  ró   r4  r5  r8  r7  r´   rÌ  Ú_eval_rewrite_as_sincrÕ   râ   r�   rõ   rö   r÷   s   @r7   r  r  $  s�   ø† ñDðL €IØ�f‰f€Gàñó ðð ñó ðð ñó ðð ñó ðòGò,ð
 7Ðòõ@÷ ð r9   r  c                   óš   ^ • \ rS rSrSr\r\R                  r	\
S 5       r\
S 5       r\
S 5       r\
S 5       rS rS rS	 rU 4S
 jrSrU =r$ )r  i¬  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                 ó"   • [         R                  $ r˜   )r   r.   rK  s    r7   r4  Ú	Ci._atinfÿ  s   € ä�v‰vˆr9   c                 ó   • [         [        -  $ r˜   )r
   r   rK  s    r7   r5  ÚCi._atneginf  s   € ä”‰tˆr9   c                 ó4   • [        U5      [        [        -  -   $ r˜   ©r  r
   r   r”  s     r7   r8  ÚCi._minusfactor  s   € ä�!‹u”qœ‘t‰|Ðr9   c                 ó@   • [        U5      [        [        -  S-  U-  -   $ r±   ©r¾  r
   r   rR  s      r7   r7  ÚCi._Ifactor  s   € ä�1‹vœœ"™˜Q™˜t™Ñ#Ð#r9   c                 óz   • [        [        [        5      U-  5      [        [        [        * 5      U-  5      -   * S-  $ r±   )rî  r   r
   r§   s      r7   r´   ÚCi._eval_rewrite_as_expint  s2   € Ü”Jœq“M !‘OÓ$¤r¬*´a°R«.¸Ñ*:Ó';Ñ;Ð<¸QÑ>Ð>r9   c                 ó¾   • SSK Jn  [        [        SU/5      R                  5      n[
        R                  [        U5      -   U" S[        U5      -
  U-  USU45      -
  $ rû  )	rÈ  rÇ  r   r   rÉ  r   r   r   r#   rË  s        r7   rÌ  Ú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                 ó¾  • U R                   S   R                  XUS9nUR                  US5      nU[        R                  L a-  UR                  US[        U5      R                  (       a  SOSS9nUR                  (       a:  UR                  U5      u  pgUc  [        U5      OUn[        U5      Xr-  -   [        -   $ UR                  (       a  U R                  U5      $ U $ rZ  ©r+   rÏ   rÐ   r   rN   r·   r   r¼  rS   rÐ  r   r   r{   r0   ©r1   r4   rÉ   rÊ   r[   rÔ   rÒ  rÓ  s           r7   rÕ   ÚCi._eval_as_leading_term  ó²   € Ø�i‰i˜‰l×*Ñ*¨1¸dÐ*ÐCˆØ�x‰x˜˜1‹~ˆà”1—5‘5Š=Ø—9‘9˜Q ¬b°«h×.B×.B¡sÈ�9ÐLˆDØ�<�<Ø×(Ñ(¨Ó+‰DˆAØ!™\”3�q”6¨tˆDÜ�q“6˜A™F‘?¤ZÑ/Ð/Ø�^�^Ø—9‘9˜T“?Ð"àˆKr9   c                 óÒ  >• SSK Jn  US   nU[        R                  [        R                  4;   Ga  U R
                  S   n[        US-  S-   5       Vs/ s H1  n[        R                  U-  [        SU-  5      -  USU-  S-   -  -  PM3     snU" SXq-  -  U5      /-   n	[        US-  5       Vs/ s H4  n[        R                  U-  [        SU-  S-   5      -  USUS-   -  -  -  PM6     snU" SXq-  -  U5      /-   n
[        U5      [        U	6 -  [        U5      [        U
6 -  -
  nU[        R                  L a  U[        [        -  -  nU$ [        [        U ]C  XX45      $ s  snf s  snf rØ   )rÛ   rÚ   r   rO   rQ   r+   rà   rR   r   r$   r   r#   r
   r   rá   r  râ   )r1   rd   rã   r4   rÉ   rÚ   rä   r}   rf   r^  r_  Úresultré   s               €r7   râ   ÚCi._eval_aseries&  si  ø€ Ý,Ø�a‘ˆà”Q—Z‘Z¤×!3Ñ!3Ð4Ô4Ø—	‘	˜!‘ˆAä" 1 a¡4¨!¡8œ_ó.Ú,˜ô —‘ Ñ!¤I¨a°©c£NÑ2°Q¸¸1¹¸q¹±\ÔAÙ,ñ.Ù16°q¸¹±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   Á8EÂ/;E$rë   )rí   rî   rï   rð   rñ   r#   r6  r   rÑ   r3  ró   r4  r5  r8  r7  r´   rÌ  rÕ   râ   rõ   rö   r÷   s   @r7   r  r  ¬  s†   ø† ñMð^ €IØ×Ñ€Gàñó ðð ñó ðð ñó ðð ñ$ó ð$ò?òIò
÷@ó @r9   r  c                   ó†   • \ rS rSrSr\r\R                  r	\
S 5       r\
S 5       r\
S 5       r\
S 5       rS rS rS	 rS
rg)r½  i8  ai  
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                 ó"   • [         R                  $ r˜   ©r   rO   rK  s    r7   r4  Ú
Shi._atinf{  ó   € ä�z‰zÐr9   c                 ó"   • [         R                  $ r˜   )r   rQ   rK  s    r7   r5  ÚShi._atneginf  s   € ä×!Ñ!Ð!r9   c                 ó   • [        U5      * $ r˜   )r½  r”  s     r7   r8  ÚShi._minusfactorƒ  s   € ä�A“ˆwˆr9   c                 ó,   • [         [        U5      -  U-  $ r˜   )r
   r  rR  s      r7   r7  ÚShi._Ifactor‡  s   € ä”�A“‰w�t‰|Ðr9   c                 ó†   • [        U5      [        [        [        [        -  5      U-  5      -
  S-  [        [        -  S-  -
  $ r±   )rî  r    r
   r   r§   s      r7   r´   ÚShi._eval_rewrite_as_expint‹  s5   € ä�1“œœ9¤Q¤r¡T›?¨1Ñ,Ó-Ñ-¨qÑ0´1´R±4¸±6Ñ9Ð9r9   c                 óF   • U R                   S   nUR                  (       a  gg rr   r9  r|   s     r7   r�   ÚShi._eval_is_zero�  r!  r9   c                 óP  • U R                   S   R                  U5      nUR                  US5      nU[        R                  L a-  UR                  US[        U5      R                  (       a  SOSS9nUR                  (       a  U$ UR                  (       d  U R                  U5      $ U $ )Nr   rË   rÌ   rÍ   r[  rÓ   s         r7   rÕ   Ú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   rë   N)rí   rî   rï   rð   rñ   r"   r6  r   r.   r3  ró   r4  r5  r8  r7  r´   r�   rÕ   rõ   rë   r9   r7   r½  r½  8  su   † ñ=ð~ €IØ�f‰f€Gàñó ðð ñ"ó ð"ð ñó ðð ñó ðò:òõ
r9   r½  c                   ó€   • \ rS rSrSr\r\R                  r	\
S 5       r\
S 5       r\
S 5       r\
S 5       rS rS rS	rg
)r¾  i¢  aX  
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                 ó"   • [         R                  $ r˜   r}  rK  s    r7   r4  Ú
Chi._atinfð  r  r9   c                 ó"   • [         R                  $ r˜   r}  rK  s    r7   r5  ÚChi._atneginfô  r  r9   c                 ó4   • [        U5      [        [        -  -   $ r˜   rm  r”  s     r7   r8  ÚChi._minusfactorø  s   € ä�1‹vœœ"™‰}Ðr9   c                 ó@   • [        U5      [        [        -  S-  U-  -   $ r±   rj  rR  s      r7   r7  ÚChi._Ifactorü  s   € ä�!‹u”qœ‘t˜A‘v˜d‘{Ñ"Ð"r9   c                 óˆ   • [         * [        -  S-  [        U5      [        [        [         [        -  5      U-  5      -   S-  -
  $ r±   )r
   r   rî  r    r§   s      r7   r´   ÚChi._eval_rewrite_as_expint 	  s7   € Üˆr”"‰u�Q‰wœ"˜Q›%¤"¤Y¬q´©t£_°QÑ%6Ó"7Ñ7¸Ñ:Ñ:Ð:r9   c                 ó¾  • U R                   S   R                  XUS9nUR                  US5      nU[        R                  L a-  UR                  US[        U5      R                  (       a  SOSS9nUR                  (       a:  UR                  U5      u  pgUc  [        U5      OUn[        U5      Xr-  -   [        -   $ UR                  (       a  U R                  U5      $ U $ rZ  rt  ru  s           r7   rÕ   ÚChi._eval_as_leading_term	  rw  r9   rë   N)rí   rî   rï   rð   rñ   r!   r6  r   rÑ   r3  ró   r4  r5  r8  r7  r´   rÕ   rõ   rë   r9   r7   r¾  r¾  ¢  ss   † ñHðT €IØ×Ñ€Gàñó ðð ñó ðð ñó ðð ñ#ó ð#ò;õr9   r¾  c                   óP   • \ rS rSrSrSr\S 5       rSS jrS r	\	r
S rS r\rS	rg
)ÚFresnelIntegrali	  z%Base class for the Fresnel integrals.Tc                 óp  • U[         R                  L a  [         R                  $ UR                  (       a  [         R                  $ [         R
                  nUnSnUR                  S5      nUb  U* nUnSnUR                  [        5      nUb  U R                  [        -  U-  nUnSnU(       a
  X " U5      -  $ g )NFr¥   T)	r   rO   r’   rS   r.   rP   rW   r
   Ú_sign)rZ   r}   ÚprefactÚnewargÚchangedr.  s         r7   r]   Ú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                 ó–   • US:X  a9  U R                  [        R                  [        -  U R                  S   S-  -  5      $ [        X5      er€  )r6  r   r’   r   r+   r   rA   s     r7   rC   ÚFresnelIntegral.fdiff;	  s<   € Ø�q‹=Ø—>‘>¤!§&¡&¬¡)¨D¯I©I°a©L¸!©OÑ";Ó<Ð<ä$ TÓ4Ð4r9   c                 ó4   • U R                   S   R                  $ rj   rs   rm   s    r7   r5  Ú&FresnelIntegral._eval_is_extended_realA	  r7  r9   c                 ó4   • U R                   S   R                  $ rj   r9  rm   s    r7   r�   ÚFresnelIntegral._eval_is_zeroF	  r;  r9   c                 óZ   • U R                  U R                  S   R                  5       5      $ rj   rk   rm   s    r7   rn   ÚFresnelIntegral._eval_conjugateI	  rp   r9   rë   Nrì   )rí   rî   rï   rð   rñ   rò   ró   r]   rC   r5  r~   r�   rn   r8   r/   rõ   rë   r9   r7   rš  rš  	  s>   † Ù0à€Jàñ'ó ð'ô<5ò-ð -€Oò$ò3ð -ƒLr9   rš  c                   ó‚   ^ • \ rS rSrSr\r\R                  * r	\
\S 5       5       rS rS rS rS rS rU 4S	 jrS
rU =r$ )r›   iO	  a�  
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                 ór  • U S:  a  [         R                  $ [        U5      n[        U5      S:”  a9  US   n[        S-  * US-  -  SU -  S-
  -  SU -  SU -  S-   -  SU -  S-   -  -  U-  $ US-  US-  * U -  -  [        S5      SU -  S-
  -  [        SU -  S-   -  -  -  SU -  S-   [        SU -  S-   5      -  -  $ )	Nr   r?   r¥   r*   é   é   r¬   ra   ©r   r.   r   rb   r   r   ©rd   r4   re   r^  s       r7   rg   Ú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           	      ó   • [         R                  [        -   S-  [        [         R                  [        -   S-  [	        [
        5      -  U-  5      [        [        [         R                  [        -
  S-  [	        [
        5      -  U-  5      -  -
  -  $ ©Nr«  r*   ©r   rP   r
   r;   r   r   r§   s      r7   r  Ú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           	      ó    • [         US-  -  S-  [        [        SS5      /[        SS5      [        SS5      /[         S-  * US-  -  S-  5      -  $ )Nr¬   é   r«  r*   é   é   )r   r&   r   r§   s      r7   r®   Ú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           
      ó   • [         U[        SS5      -  -  [        S5      US-  [        SS5      -  -  U* [        SS5      -  -  -  [        / S/[        SS5      /[        SS5      S/[         S-  * US-  -  S-  5      -  $ )Né	   r«  r*   r¬   r?   r   r¸  )r   r   r   r'   r§   s      r7   r¨   Ú!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                 ó’   • SSK Jn  [        [        SU/5      R                  5      nU" [        [        US-  -  S-  5      USU45      $ ©Nr   rÆ  r\   r*   )rÈ  rÇ  r   r   rÉ  r$   r   rË  s        r7   rÌ  Ú"fresnels._eval_rewrite_as_Integral¾	  óB   € Ý6ÜÔ'¨¨a¨SÓ1×6Ñ6Ó7ˆÙœœB˜q !™t™G A™I›¨¨A¨q¨	Ó2Ð2r9   c                 óü  • SSK Jn  U R                  S   R                  XUS9nUR	                  US5      nU[
        R                  L a-  UR                  US[        U5      R                  (       a  SOSS9nUR                  (       a  [        US-  -  S-  $ U[
        R                  [
        R                  4;   a3  U[
        R                  L a  S	OS
nU[
        R                  -  U" X5      -   $ U R                  U5      $ )Nr   rÙ   rÈ   rË   rÌ   rÍ   r¬   r¶  r?   r¥   )rÛ   rÚ   r+   rÏ   rÐ   r   rÑ   r·   r   r¼  rS   r   rO   rQ   r’   r0   ©r1   r4   rÉ   rÊ   rÚ   r[   rÔ   rè   s           r7   rÕ   Úfresnels._eval_as_leading_termÃ	  sÈ   € Ý,Ø�i‰i˜‰l×*Ñ*¨1¸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›kÑ)Ð)à—9‘9˜T“?Ð"r9   c           
      ó’  >• SSK Jn  US   nU[        R                  [        R                  * 4;   Gaò  U R                  S   n[        SU5       Vs/ s Hf  nSU-  S-   U:  d  M  [        R                  U-  [        SU-  S-   5      -  SSU-  S-   -  USU-  S-   -  -  SSU-  -  -  [        SU-  5      -  -  PMh     n	nSSU-  -  /[        SU5       Vs/ s Hl  nSU-  S-   U:  d  M  [        R                  U-  [        SU-  S-
  5      -  SSU-  S-   -  USU-  S-   -  -  SSU-  S-
  -  -  [        SU-  S-
  5      -  -  PMn     sn-   n
U	 Vs/ s H  n[        S[        -  5      * U-  PM     n	nU
 Vs/ s H  n[        S[        -  5      * U-  PM     n
nU[        R                  L a  SOSnU[        R                  -  [        US-  5      [        U	6 -  [        US-  5      [        U
6 -  -   R                  U[        S[        -  5      U-  5      -   U" SXq-  -  U5      -   $ [        TU ]A  XX45      $ s  snf s  snf s  snf s  snf ©Nr   rÙ   r«  r¬   r?   r*   r¥   )rÛ   rÚ   r   rO   r+   rà   rR   r   r   r   r’   r$   r   r#   rÐ   rá   râ   ©r1   rd   rã   r4   rÉ   rÚ   rä   r}   rf   r^  r_  r\   rè   ré   s                €r7   râ   Úfresnels._eval_aseriesÒ	  s`  ø€ Ý,Ø�a‘ˆð ”Q—Z‘Z¤!§*¡* Ð-Ô-Ø—	‘	˜!‘ˆAô    1œ+ó6â%�Q¨¨1©¨q©°1©óI”—‘ Ñ!¤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�a‘C‘�	ä  1œ+ó6â%�Q¨¨1©¨q©°1©óQœQŸ]™]¨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™,Ó'ñ(Ù*/°°!±$±¸Ó*:ñ;ð ;ô ‰wÑ$ Q¨qÓ7Ð7ùò#6ùò6ùò +ùÚ*s&   ÁH5Á$AH5ÃH:Ã)AH:Å H?Å7 Irë   )rí   rî   rï   rð   rñ   r$   r6  r   rP   rœ  rô   r   rg   r  r®   r¨   rÌ  rÕ   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                   ó€   ^ • \ rS rSrSr\r\R                  r	\
\S 5       5       rS rS rS rS rS rU 4S	 jrS
rU =r$ )rš   ið	  a‰  
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                 óX  • U S:  a  [         R                  $ [        U5      n[        U5      S:”  a9  US   n[        S-  * US-  -  SU -  S-
  -  SU -  SU -  S-
  -  SU -  S-   -  -  U-  $ XS-  * U -  -  [        S5      SU -  -  [        SU -  -  -  -  SU -  S-   [        SU -  5      -  -  $ )	Nr   r?   r¥   r*   r«  r¬   r¬  ra   r­  r®  s       r7   rg   Ú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à ™T˜E A™:‘~¬¨1«°°1±©´b¸1¸Q¹3±iÑ)?Ñ@ÀQÀqÁSÈ1ÁWÌiÐXYÐZ[ÑX[ËnÑD\Ñ]Ð]r9   c           	      ó   • [         R                  [        -
  S-  [        [         R                  [        -   S-  [	        [
        5      -  U-  5      [        [        [         R                  [        -
  S-  [	        [
        5      -  U-  5      -  -   -  $ r±  r²  r§   s      r7   r  Úfresnelc._eval_rewrite_as_erfU
  r´  r9   c           	      óŽ   • U[        [        SS5      /[        R                  [        SS5      /[        S-  * US-  -  S-  5      -  $ )Nr?   r«  é   r*   r¸  )r&   r   r   r’   r   r§   s      r7   r®   Ú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           
      óô   • [         U[        SS5      -  -  [        S5      [        US-  S5      -  [        U* S5      -  -  [	        / S/[        SS5      /[        SS5      S/[         S-  * US-  -  S-  5      -  $ )Nr¬   r«  r*   r?   r   r¸  )r   r   r   r   r'   r§   s      r7   r¨   Ú!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                 ó’   • SSK Jn  [        [        SU/5      R                  5      nU" [        [        US-  -  S-  5      USU45      $ r¾  )rÈ  rÇ  r   r   rÉ  r#   r   rË  s        r7   rÌ  Ú"fresnelc._eval_rewrite_as_Integral_
  rÀ  r9   c                 óâ  • SSK Jn  U R                  S   R                  XUS9nUR	                  US5      nU[
        R                  L a-  UR                  US[        U5      R                  (       a  SOSS9nUR                  (       a  U$ U[
        R                  [
        R                  4;   a3  U[
        R                  L a  SOSnU[
        R                  -  U" X5      -   $ U R                  U5      $ )	Nr   rÙ   rÈ   rË   rÌ   rÍ   r?   r¥   )rÛ   rÚ   r+   rÏ   rÐ   r   rÑ   r·   r   r¼  rS   rO   rQ   r’   r0   rÂ  s           r7   rÕ   Úfresnelc._eval_as_leading_termd
  s»   € Ý,Ø�i‰i˜‰l×*Ñ*¨1¸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›kÑ)Ð)à—9‘9˜T“?Ð"r9   c           
      óŽ  >• SSK Jn  US   nU[        R                  [        R                  * 4;   Gað  U R                  S   n[        U5       Vs/ s Hf  nSU-  S-   U:  d  M  [        R                  U-  [        SU-  S-   5      -  SSU-  S-   -  USU-  S-   -  -  SSU-  -  -  [        SU-  5      -  -  PMh     n	nSSU-  -  /[        SU5       Vs/ s Hl  nSU-  S-   U:  d  M  [        R                  U-  [        SU-  S-
  5      -  SSU-  S-   -  USU-  S-   -  -  SSU-  S-
  -  -  [        SU-  S-
  5      -  -  PMn     sn-   n
U	 Vs/ s H  n[        S[        -  5      * U-  PM     n	nU
 Vs/ s H  n[        S[        -  5      U-  PM     n
nU[        R                  L a  SOSnU[        R                  -  [        US-  5      [        U	6 -  [        US-  5      [        U
6 -  -   R                  U[        S[        -  5      U-  5      -   U" SXq-  -  U5      -   $ [        TU ]A  XX45      $ s  snf s  snf s  snf s  snf rÅ  )rÛ   rÚ   r   rO   r+   rà   rR   r   r   r   r’   r#   r   r$   rÐ   rá   râ   rÆ  s                €r7   râ   Úfresnelc._eval_aseriess
  s\  ø€ Ý,Ø�a‘ˆð ”Q—Z‘Z¤!§*¡* Ð-Ô-Ø—	‘	˜!‘ˆAô   œ(ó3â"�Q a¨¡c¨A¡g°¡kóI”—‘ Ñ!¤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�a‘C‘�	ä  1œ+ó6â%�Q¨¨1©¨q©°1©óQœQŸ]™]¨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™,Ó'ñ(Ù*/°°!±$±¸Ó*:ñ;ð ;ô ‰wÑ$ Q¨qÓ7Ð7ùò#3ùò6ùò +ùÚ*s&   ÁH3Á#AH3ÃH8Ã(AH8Å H=Å6Irë   )rí   rî   rï   rð   rñ   r#   r6  r   rP   rœ  rô   r   rg   r  r®   r¨   rÌ  rÕ   râ   rõ   rö   r÷   s   @r7   rš   rš   ð	  s\   ø† ñSðh €IØ�E‰E€EàØñ	^ó ó ð	^òaòUò[ò3ò
#÷8ó 8r9   rš   c                   óL   ^ • \ rS rSrSr\S 5       rU 4S jrSS jrS r	Sr
U =r$ )	r¹   i–
  z]
Helper function to make the $\mathrm{erf}(z)$ function
tractable for the Gruntz algorithm.

c                 óF   • UR                   (       a  [        R                  $ g r˜   )rS   r   rP   )rZ   r[   s     r7   r]   Ú
_erfs.evalœ
  s   € à�;�;Ü—5‘5ˆLð r9   c                 óX  >• SSK Jn  US   nU[        R                  L a¥  U R                  S   n[        U5       Vs/ s HP  nS[        [        5      -  [        SU-  5      -  [        S5      * U* -  -  [        U5      -  SU-  SU-  S-   -  -  PMR     n	nU" SUSU-  S-   -  -  U5      n
[        U	6 R                  X1U5      U
-   $ UR                  [        5      nU[        R                  L a¥  U R                  S   n[        U5       Vs/ s HP  nS[        [        5      -  [        SU-  5      -  [        S5      * U* -  -  [        U5      -  SU-  SU-  S-   -  -  PMR     n	nU" SUSU-  S-   -  -  U5      n
[        U	6 R                  X1U5      U
-   $ [        TU ]9  XX45      $ s  snf s  snf )Nr   rÙ   r?   r*   r«  )rÛ   rÚ   r   rO   r+   rà   r   r   r   r   rÖ  rW   r
   rá   râ   )r1   rd   rã   r4   rÉ   rÚ   rä   r}   rf   ÚlÚor\   ré   s               €r7   râ   Ú_erfs._eval_aseries¡
  sä  ø€ Ý,Ø�a‘ˆð ”A—J‘JÒØ—	‘	˜!‘ˆAäDIÈ!ÄHóNÚDL¸qð ”4œ“8‘œi¨¨!©›nÑ,¬qØó0ð /Ø�rñ.ñ Ü$ Q›<ñ(Ø+,¨Q©3°!°A±#¸±'Ñ*:ô;ÙDLð ð Ná�a˜˜A˜a™C !™G™‘n aÓ(ˆAä˜�G×*Ñ*¨1°Ó6¸Ñ:Ð:ð ×*Ñ*¬1Ó-ˆØ”—
‘
Š?Ø—	‘	˜!‘ˆAô EJÈ!ÄHóNÚDL¸qð ”4œ“8‘œi¨¨!©›nÑ,¬qØó0ð /Ø�rñ.ñ Ü$ Q›<ñ(Ø+,¨Q©3°!°A±#¸±'Ñ*:ô;ÙDLð ð Ná�a˜˜A˜a™C !™G™‘n aÓ(ˆAä˜�G×*Ñ*¨1°Ó6¸Ñ:Ð:ô ‰wÑ$ Q¨qÓ7Ð7ùò%NùòNs   ¼AF"Ä	AF'c                 óŠ   • US:X  a3  U R                   S   nS[        [        5      -  SU-  [        U5      -  -   $ [	        X5      e)Nr?   r   ra   r*   )r+   r   r   r¹   r   ©r1   rB   r}   s      r7   rC   Ú_erfs.fdiff¼
  s@   € Ø�q‹=Ø—	‘	˜!‘ˆAØ”dœ2“h‘;  1¡¤U¨1£X¡Ñ-Ð-ä$ TÓ4Ð4r9   c                 óX   • [         R                  [        U5      -
  [        US-  5      -  $ r±   )r   rP   r;   r   r§   s      r7   Ú_eval_rewrite_as_intractableÚ"_erfs._eval_rewrite_as_intractableÃ
  s!   € Ü—‘œ˜A›‘¤ A q¡D£	Ñ)Ð)r9   rë   rì   )rí   rî   rï   rð   rñ   ró   r]   râ   rC   rã  rõ   rö   r÷   s   @r7   r¹   r¹   –
  s0   ø† ñð
 ñó ðõ8ô65÷*ð *r9   r¹   c                   óX   ^ • \ rS rSrSrU 4S jrS	S jrS rU 4S jrS
U 4S jjr	Sr
U =r$ )rÂ  iÇ
  zr
Helper function to make the $\mathrm{Ei}(z)$ and $\mathrm{li}(z)$
functions tractable for the Gruntz algorithm.

c                 ó^  >• SSK Jn  US   [        R                  [        R                  4;  a  [
        T
U ]  XX45      $ U R                  S   n[        U5       Vs/ s H  n[        U5      SU-  US-   -  -  PM     nnU" SXaS-   -  -  U5      n	[        U6 R                  X1U5      U	-   $ s  snf rÛ  )rÛ   rÚ   r   rO   rQ   rá   râ   r+   rà   r   r   rÖ  )r1   rd   rã   r4   rÉ   rÚ   r}   rf   rÜ  rÝ  ré   s             €r7   râ   Ú_eis._eval_aseriesÏ
  s¤   ø€ Ý,Ø�‰8œAŸJ™J¬×(:Ñ(:Ð;Ó;Ü‘7Ñ(¨°1Ó;Ð;à�I‰I�a‰LˆÜ49¸!´HÓ=²H¨qŒY�q‹\˜Q˜q™S A¨¡E™NÔ*±HˆÐ=Ù�!�A˜A™‘J‘, Ó"ˆä�Q�×&Ñ& q¨TÓ2°QÑ6Ð6ùò >s   Á!B*c                 ó€   • US:X  a.  U R                   S   n[        R                  U-  [        U5      -
  $ [	        X5      e)Nr?   r   )r+   r   rP   rÂ  r   rà  s      r7   rC   Ú
_eis.fdiffÛ
  s8   € Ø�q‹=Ø—	‘	˜!‘ˆAÜ—5‘5˜1‘9œt A›wÑ&Ð&ä$ TÓ4Ð4r9   c                 ó2   • [        U* 5      [        U5      -  $ r˜   )r   r§  r§   s      r7   rã  Ú!_eis._eval_rewrite_as_intractableâ
  s   € Ü�A�2‹w”r˜!“u‰}Ðr9   c                 óÒ   >• U R                   S   R                  US5      nUR                  (       a)  U R                  " U R                   6 nUR	                  XUS9$ [
        TU ]  XUS9$ )Nr   rÈ   )r+   r·   rS   rã  rÕ   rá   )r1   r4   rÉ   rÊ   rÑ  rØ  ré   s         €r7   rÕ   Ú_eis._eval_as_leading_termå
  sc   ø€ Ø�Y‰Y�q‰\×Ñ  1Ó%ˆØ�:�:Ø×1Ò1°4·9±9Ð=ˆAØ×*Ñ*¨1¸dÐ*ÐCÐCÜ‰wÑ,¨QÀÐ,ÐEÐEr9   c                 óÚ   >• U R                   S   R                  US5      nUR                  (       a+  U R                  " U R                   6 nUR	                  XU5      $ [
        TU ]  XU5      $ rj   )r+   r·   rS   rã  rÖ  rá   r×  s          €r7   rÖ  Ú_eis._eval_nseriesì
  s[   ø€ Ø�Y‰Y�q‰\×Ñ  1Ó%ˆØ�:�:Ø×1Ò1°4·9±9Ð=ˆAØ—?‘? 1¨Ó.Ð.Ü‰wÑ$ Q¨4Ó0Ð0r9   rë   rì   rÝ  )rí   rî   rï   rð   rñ   râ   rC   rã  rÕ   rÖ  rõ   rö   r÷   s   @r7   rÂ  rÂ  Ç
  s'   ø† ñõ	7ô5òõF÷1õ 1r9   rÂ  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Ä   rV  rH   rU   rV   r§  r³   rî  r¸  r  r1  r  r  r½  r¾  rš  r›   rš   r¹   rÂ  rë   r9   r7   Ú<module>r     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   