ó
    ‰*£h0 ã                   ó>  • S SK Jr  S SKJ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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  S SKJr  S SKJrJr  S SK J!r!J"r"J#r#J$r$  S SK%J&r&  S SK'J(r(J)r)  S SK*J+r+J,r,J-r-  S SK.J/r/J0r0J1r1J2r2J3r3  S SK4J5r5J6r6J7r7  S SK8J9r9  S SK:J;r;  S SK<J=r=J>r>   " S S\5      r? " S S\?5      r@ " S S\?5      rA " S S\?5      rB " S S\?5      rC " S  S!\?5      rD " S" S#\?5      rES$ rF " S% S&\?5      rGS' rHS( rI " S) S*\G5      rJ " S+ S,\G5      rK " S- S.\G5      rL " S/ S0\L5      rM " S1 S2\L5      rNSES3 jrO " S4 S5\5      rP " S6 S7\P5      rQ " S8 S9\P5      rR " S: S;\P5      rS " S< S=\P5      rT " S> S?\5      rU " S@ SA\5      rV " SB SC\5      rWgD)Fé    ©Úwraps)ÚS)ÚAdd)Úcacheit)ÚExpr)ÚDefinedFunctionÚArgumentIndexErrorÚ_mexpand)Úfuzzy_orÚ	fuzzy_not)ÚRationalÚpiÚI)ÚPow)ÚDummyÚuniquely_named_symbolÚWild)Úsympify)Ú	factorialÚRisingFactorial)ÚsinÚcosÚcscÚcot)Úceiling)ÚexpÚlog)ÚcbrtÚsqrtÚroot)ÚAbsÚreÚimÚ
polar_liftÚ
unpolarify)ÚgammaÚdigammaÚ
uppergamma)Úhyper)Úspherical_bessel_fn)ÚmpÚworkprecc                   ój   • \ rS rSrSr\S 5       r\S 5       r\S 5       r	SS jr
S rS rS	 rS
 rSrg)Ú
BesselBaseé$   aÌ  
Abstract base class for Bessel-type functions.

This class is meant to reduce code duplication.
All Bessel-type functions can 1) be differentiated, with the derivatives
expressed in terms of similar functions, and 2) be rewritten in terms
of other Bessel-type functions.

Here, Bessel-type functions are assumed to have one complex parameter.

To use this base class, define class attributes ``_a`` and ``_b`` such that
``2*F_n' = -_a*F_{n+1} + b*F_{n-1}``.

c                 ó    • U R                   S   $ )z'The order of the Bessel-type function. r   ©Úargs©Úselfs    Ú[/home/mande/repo/quber/.venv/lib/python3.13/site-packages/sympy/functions/special/bessel.pyÚorderÚBesselBase.order4   ó   € ð �y‰y˜‰|Ðó    c                 ó    • U R                   S   $ )z*The argument of the Bessel-type function. é   r2   r4   s    r6   ÚargumentÚBesselBase.argument9   r9   r:   c                 ó   • g ©N© ©ÚclsÚnuÚzs      r6   ÚevalÚBesselBase.eval>   s   € àr:   c                 ó
  • US:w  a  [        X5      eU R                  S-  U R                  U R                  S-
  U R                  5      -  U R
                  S-  U R                  U R                  S-   U R                  5      -  -
  $ ©Né   r<   )r
   Ú_bÚ	__class__r7   r=   Ú_a©r5   Úargindexs     r6   ÚfdiffÚBesselBase.fdiffB   sn   € Ø�q‹=Ü$ TÓ4Ð4Ø—‘˜‘	˜DŸN™N¨4¯:©:¸©>¸4¿=¹=ÓIÑIØ—‘˜‘	˜DŸN™N¨4¯:©:¸©>¸4¿=¹=ÓIÑIñJð 	Kr:   c                 óª   • U R                   nUR                  SL a8  U R                  U R                  R	                  5       UR	                  5       5      $ g ©NF)r=   Úis_extended_negativerL   r7   Ú	conjugate©r5   rE   s     r6   Ú_eval_conjugateÚBesselBase._eval_conjugateH   sB   € Ø�M‰MˆØ×!Ñ! UÒ*Ø—>‘> $§*¡*×"6Ñ"6Ó"8¸!¿+¹+»-ÓHÐHð +r:   c           	      óÎ  • U R                   U R                  pCUR                  U5      (       a  gUR                  X5      (       d  g UR	                  X5      nUR
                  (       aU  [        U [        [        [        [        [        [        45      (       d  UR                  (       d  [        UR                  5      $ [        [!        UR                  UR                  /5      5      $ rS   )r7   r=   ÚhasÚ_eval_is_meromorphicÚsubsÚ
is_integerÚ
isinstanceÚbesseljÚbesseliÚhn1Úhn2ÚjnÚynÚis_zeror   Úis_infiniter   )r5   ÚxÚarD   rE   Úz0s         r6   r[   ÚBesselBase._eval_is_meromorphicM   s•   € Ø—
‘
˜DŸM™MˆAà�6‰6�!�9‰9ØØ×%Ñ% a×+Ñ+ØØ�V‰V�A‹\ˆØ�=�=Ü˜$¤¬'´3¼¼RÄÐ D×EÑEÈRÏZÏZÜ  §¡Ó0Ð0Üœ 2§:¡:¨r¯~©~Ð">Ó?Ó@Ð@r:   c                 ó`  • U R                   U R                  U R                  pCnUR                  (       aù  US-
  R                  (       ai  U R
                  * U R                  -  U" US-
  U5      R                  5       -  SU R
                  -  US-
  -  U" US-
  U5      R                  5       -  U-  -   $ US-   R                  (       ah  SU R                  -  US-   -  U" US-   U5      R                  5       -  U-  U R
                  U R                  -  U" US-   U5      R                  5       -  -
  $ U $ ©Nr<   rJ   )	r7   r=   rL   Úis_realÚis_positiverM   rK   Ú_eval_expand_funcÚis_negative)r5   ÚhintsrD   rE   Úfs        r6   ro   ÚBesselBase._eval_expand_funcZ   s
  € Ø—:‘:˜tŸ}™}¨d¯n©nˆqˆØ�:�:Ø�Q‘×#×#ØŸ™˜ §¡Ñ(©¨2°©6°1«×)GÑ)GÓ)IÑIØ˜$Ÿ'™'™	 2¨¡6Ñ*©1¨R°!©V°Q«<×+IÑ+IÓ+KÑKÈAÑMñNð Oà�q‘&×%×%Ø˜$Ÿ'™'™	 2¨¡6Ñ*©1¨R°!©V°Q«<×+IÑ+IÓ+KÑKÈAÑMØŸ™ §¡™©¨"¨q©&°!«×(FÑ(FÓ(HÑHñIð Jàˆr:   c                 ó   • SSK Jn  U" U 5      $ )Nr   )Ú
besselsimp)Úsympy.simplify.simplifyru   )r5   Úkwargsru   s      r6   Ú_eval_simplifyÚBesselBase._eval_simplifye   s   € Ý6Ù˜$ÓÐr:   rA   N©rJ   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Úpropertyr7   r=   ÚclassmethodrF   rP   rW   r[   ro   rx   Ú__static_attributes__rA   r:   r6   r/   r/   $   s_   † ñð ñó ðð ñó ðð ñó ðôKòIò
Aò	õ r:   r/   c                   ó”   ^ • \ rS rSrSr\R                  r\R                  r\	S 5       r
S rS rS rU 4S jrS rSU 4S	 jjrS
rU =r$ )r_   éj   a€  
Bessel function of the first kind.

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

The Bessel $J$ function of order $\nu$ is defined to be the function
satisfying Bessel's differential equation

.. math ::
    z^2 \frac{\mathrm{d}^2 w}{\mathrm{d}z^2}
    + z \frac{\mathrm{d}w}{\mathrm{d}z} + (z^2 - \nu^2) w = 0,

with Laurent expansion

.. math ::
    J_\nu(z) = z^\nu \left(\frac{1}{\Gamma(\nu + 1) 2^\nu} + O(z^2) \right),

if $\nu$ is not a negative integer. If $\nu=-n \in \mathbb{Z}_{<0}$
*is* a negative integer, then the definition is

.. math ::
    J_{-n}(z) = (-1)^n J_n(z).

Examples
========

Create a Bessel function object:

>>> from sympy import besselj, jn
>>> from sympy.abc import z, n
>>> b = besselj(n, z)

Differentiate it:

>>> b.diff(z)
besselj(n - 1, z)/2 - besselj(n + 1, z)/2

Rewrite in terms of spherical Bessel functions:

>>> b.rewrite(jn)
sqrt(2)*sqrt(z)*jn(n - 1/2, z)/sqrt(pi)

Access the parameter and argument:

>>> b.order
n
>>> b.argument
z

See Also
========

bessely, besseli, besselk

References
==========

.. [1] Abramowitz, Milton; Stegun, Irene A., eds. (1965), "Chapter 9",
       Handbook of Mathematical Functions with Formulas, Graphs, and
       Mathematical Tables
.. [2] Luke, Y. L. (1969), The Special Functions and Their
       Approximations, Volume 1
.. [3] https://en.wikipedia.org/wiki/Bessel_function
.. [4] https://functions.wolfram.com/Bessel-TypeFunctions/BesselJ/

c                 ó|  • UR                   (       aÅ  UR                   (       a  [        R                  $ UR                  (       a  UR                   SL d  [	        U5      R
                  (       a  [        R                  $ [	        U5      R                  (       a  UR                  SLa  [        R                  $ UR                  (       a  [        R                  $ U[        R                  [        R                  4;   a  [        R                  $ UR                  5       (       a  X!-  U* U* -  -  [        X* 5      -  $ UR                  (       ah  UR                  5       (       a"  [        R                  U* -  [        U* U5      -  $ UR!                  ["        5      nU(       a  ["        U-  [%        X5      -  $ UR                  (       a  ['        U5      nX2:w  a  [        X5      $ OCUR)                  5       u  p4US:w  a+  [+        SU-  [,        -  U-  ["        -  5      [        X5      -  $ ['        U5      nX:w  a  [        XR5      $ g )NFTr   rJ   )re   r   ÚOner]   r#   rn   ÚZerorp   ÚComplexInfinityÚis_imaginaryÚNaNÚInfinityÚNegativeInfinityÚcould_extract_minus_signr_   ÚNegativeOneÚextract_multiplicativelyr   r`   r&   Úextract_branch_factorr   r   ©rC   rD   rE   ÚnewzÚnÚnnus         r6   rF   Úbesselj.eval²   s   € à�9�9Ø�z�zÜ—u‘u�Ø—-—- B§J¡J°%Ò$7¼B¸r»F×<N×<NÜ—v‘v�Ü�B“×#×#¨R¯]©]¸dÒ-BÜ×(Ñ(Ð(Ø——Ü—u‘u�Ø”—‘œQ×/Ñ/Ð0Ó0Ü—6‘6ˆMà×%Ñ%×'Ñ'Ø‘7˜Q˜B 2 #™;Ñ&¤w¨r°2£Ñ6Ð6Ø�=�=Ø×*Ñ*×,Ñ,Ü—}‘}¨ sÑ+¬G°R°C¸«OÑ;Ð;Ø×-Ñ-¬aÓ0ˆDÞÜ˜2‘wœw rÓ0Ñ0Ð0ð �=�=Ü˜a“=ˆDØ‹yÜ˜rÓ(Ð(ð ð ×-Ñ-Ó/‰GˆDØ�A‹vÜ˜1˜Q™3œr™6 "™9¤Q™;Ó'¬°Ó(9Ñ9Ð9Ü˜‹nˆØ‹9Ü˜3“?Ð"ð r:   c                 óv   • [        [        [        -  U-  S-  5      [        U[	        [        * 5      U-  5      -  $ ©NrJ   )r   r   r   r`   r%   ©r5   rD   rE   rw   s       r6   Ú_eval_rewrite_as_besseliÚ besselj._eval_rewrite_as_besseliÖ   s/   € Ü”1”R‘4˜‘7˜1‘9‹~œg b¬*´a°R«.¸Ñ*:Ó;Ñ;Ð;r:   c                 ó    • UR                   SL a?  [        [        U-  5      [        U* U5      -  [	        [        U-  5      [        X5      -  -
  $ g rS   )r]   r   r   Úbesselyr   r˜   s       r6   Ú_eval_rewrite_as_besselyÚ besselj._eval_rewrite_as_besselyÙ   sD   € Ø�=‰=˜EÒ!Ü”r˜"‘u“:œg r c¨1›oÑ-´´B°r±E³
¼7À2»>Ñ0IÑIÐIð "r:   c                 ó|   • [        SU-  [        -  5      [        U[        R                  -
  U R
                  5      -  $ r—   )r    r   rc   r   ÚHalfr=   r˜   s       r6   Ú_eval_rewrite_as_jnÚbesselj._eval_rewrite_as_jnÝ   s,   € Ü�A�a‘Cœ‘F‹|œB˜r¤A§F¡F™{¨D¯M©MÓ:Ñ:Ð:r:   c                 óê  >• U R                   u  pE UR                  U5      nUR                  U5      u  pxUR                  (       a  Xd-  SU-  [        US-   5      -  -  $ UR                  (       aa  US:X  a  SOUnXsU-  -  n	U	R                  (       d=  [        S5      [        U[        SU-  S-   -  S-  -
  5      -  [        [        U-  5      -  $ U $ [        [        U ]3  XUS9$ ! [         a    U s $ f = f)NrJ   r<   r   é   ©ÚlogxÚcdir)r3   Úas_leading_termÚNotImplementedErrorÚas_coeff_exponentrn   r'   rp   r    r   r   Úsuperr_   Ú_eval_as_leading_term©r5   rg   r¦   r§   rD   rE   ÚargÚcÚeÚsignrL   s             €r6   r¬   Úbesselj._eval_as_leading_termà   sî   ø€ Ø—	‘	‰ˆð	Ø×#Ñ# AÓ&ˆCð ×$Ñ$ QÓ'‰ˆà�=�=Ø‘7˜A˜r™E¤%¨¨Q©£-Ñ/Ñ0Ð0Ø�]�]Ø ›	‘1 tˆDØ˜1‘W‘9ˆDØ×#×#ô ˜A“wœs 1¤r¨1¨R©4°!©8¡}°Q¡Ñ#6Ó7Ñ7¼¼RÀ¹T»
ÑBÐBØˆKä”W˜dÑ9¸!ÈTÐ9ÐRÐRøô #ó 	ØŠKð	ús   ‘C# Ã#C2Ã1C2c                 óh   • U R                   u  pUR                  (       a  UR                  (       a  gg g ©NT©r3   r]   Úis_extended_real©r5   rD   rE   s      r6   Ú_eval_is_extended_realÚbesselj._eval_is_extended_realõ   ó&   € Ø—	‘	‰ˆØ�=�=˜Q×/×/Øð 0ˆ=r:   c                 ó–  >• SSK Jn  U R                  u  pg UR                  U5      u  p‰U	R                  (       aä  [        X)-  5      n
U" X-  U5      nUS-  R                  XX45      R                  5       nU[        R                  L a  U$ [        US-  5      U-   R                  5       nXÆ-  [        US-   5      -  nU/n[        SU
S-   S-  5       H>  nXí* UUU-   -  -  -  n[        U5      U-   R                  5       nUR                  U5        M@     [!        U6 U-   $ ["        [$        U ]#  XX45      $ ! [        [
        4 a    U s $ f = f©Nr   ©ÚOrderrJ   r<   )Úsympy.series.orderr¾   r3   ÚleadtermÚ
ValueErrorr©   rn   r   Ú_eval_nseriesÚremoveOr   r‡   r   r'   ÚrangeÚappendr   r«   r_   ©r5   rg   r“   r¦   r§   r¾   rD   rE   Ú_r   ÚnewnÚoÚrÚtÚtermÚsÚkrL   s                    €r6   rÂ   Úbesselj._eval_nseriesú   s>  ø€ õ 	-Ø—	‘	‰ˆð	Ø—Z‘Z “]‰FˆAð �?�?Ü˜1™5“>ˆDÙ�a‘d˜A“ˆAØ�1‘×#Ñ# A¨$Ó5×=Ñ=Ó?ˆAØ”A—F‘FŠ{Ø�Ü˜!˜Q™$“ !Ñ#×,Ñ,Ó.ˆAà‘5œ˜r A™v›Ñ&ˆDØ�ˆAÜ˜1˜t a™x¨!™mÖ,�Ø˜˜A˜r A™v™J™Ñ'�Ü  ›¨Ñ*×3Ñ3Ó5�Ø—‘˜–ñ -ô ˜�7˜Q‘;Ðä”W˜dÑ1°!¸ÓCÐCøô' Ô/Ð0ó 	ØŠKð	ús   —D3 Ä3EÅErA   ©r   )r{   r|   r}   r~   r   r   r†   rM   rK   r�   rF   r™   r�   r¡   r¬   r¸   rÂ   r‚   Ú__classcell__©rL   s   @r6   r_   r_   j   sX   ø† ñBðH 
�‰€BØ	
�‰€Bàñ!#ó ð!#òF<òJò;õSò*÷
Dõ Dr:   r_   c                   ó”   ^ • \ rS rSrSr\R                  r\R                  r\	S 5       r
S rS rS rU 4S jrS rSU 4S	 jjrS
rU =r$ )rœ   i  aø  
Bessel function of the second kind.

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

The Bessel $Y$ function of order $\nu$ is defined as

.. math ::
    Y_\nu(z) = \lim_{\mu \to \nu} \frac{J_\mu(z) \cos(\pi \mu)
                                        - J_{-\mu}(z)}{\sin(\pi \mu)},

where $J_\mu(z)$ is the Bessel function of the first kind.

It is a solution to Bessel's equation, and linearly independent from
$J_\nu$.

Examples
========

>>> from sympy import bessely, yn
>>> from sympy.abc import z, n
>>> b = bessely(n, z)
>>> b.diff(z)
bessely(n - 1, z)/2 - bessely(n + 1, z)/2
>>> b.rewrite(yn)
sqrt(2)*sqrt(z)*yn(n - 1/2, z)/sqrt(pi)

See Also
========

besselj, besseli, besselk

References
==========

.. [1] https://functions.wolfram.com/Bessel-TypeFunctions/BesselY/

c                 ó4  • UR                   (       as  UR                   (       a  [        R                  $ [        U5      R                   SL a  [        R                  $ [        U5      R                   (       a  [        R
                  $ U[        R                  [        R                  4;   a  [        R                  $ U[        [        R                  -  :X  a0  [        [        [        -  US-   -  S-  5      [        R                  -  $ U[        [        R                  -  :X  a1  [        [        * [        -  US-   -  S-  5      [        R                  -  $ UR                  (       a8  UR                  5       (       a"  [        R                  U* -  [        U* U5      -  $ g g )NFr<   rJ   )re   r   rŒ   r#   rˆ   rŠ   r‹   r‡   r   r   r   r]   r�   rŽ   rœ   rB   s      r6   rF   Úbessely.evalF  s  € à�9�9Ø�z�zÜ×)Ñ)Ð)Ü�B“—‘ 5Ò(Ü×(Ñ(Ð(Ü�B“——Ü—u‘u�Ø”—‘œQ×/Ñ/Ð0Ó0Ü—6‘6ˆMØ””!—*‘*‘ÓÜ”qœ‘t˜R !™V‘} Q‘Ó'¬!¯*©*Ñ4Ð4Ø””!×$Ñ$Ñ$Ó$Üœ�rœ"‘u˜b 1™f‘~ aÑ'Ó(¬1¯:©:Ñ5Ð5à�=�=Ø×*Ñ*×,Ñ,Ü—}‘}¨ sÑ+¬G°R°C¸«OÑ;Ð;ð -ð r:   c                 ó    • UR                   SL a?  [        [        U-  5      [        [        U-  5      [	        X5      -  [	        U* U5      -
  -  $ g rS   )r]   r   r   r   r_   r˜   s       r6   Ú_eval_rewrite_as_besseljÚ bessely._eval_rewrite_as_besseljZ  sD   € Ø�=‰=˜EÒ!Ü”r˜"‘u“:œs¤2 b¡5›z¬'°"«.Ñ8¼7ÀBÀ3È»?ÑJÑKÐKð "r:   c                 ón   • U R                   " U R                  6 nU(       a  UR                  [        5      $ g r@   )r×   r3   Úrewriter`   ©r5   rD   rE   rw   Úajs        r6   r™   Ú bessely._eval_rewrite_as_besseli^  ó-   € Ø×*Ò*¨D¯I©IÐ6ˆÞØ—:‘:œgÓ&Ð&ð r:   c                 ó|   • [        SU-  [        -  5      [        U[        R                  -
  U R
                  5      -  $ r—   )r    r   rd   r   r    r=   r˜   s       r6   Ú_eval_rewrite_as_ynÚbessely._eval_rewrite_as_ync  s,   € Ü�A�a‘Cœ‘F‹|œb ¤a§f¡f¡¨d¯m©mÓ<Ñ<Ð<r:   c                 ó¦  >• U R                   u  pE UR                  U5      nUR                  U5      u  pxUR                  (       aº  S[
        -  [        US-  5      -  [        XE5      -  n	UR                  (       a   US-  U* -  * [        US-
  5      -  [
        -  O[        R                  n
US-  U-  * [
        [        U5      -  -  [        US-   5      [        R                  -
  -  n[        XšU/6 R                  XS9nU$ UR                  (       až  US:X  a  SOUnXsU-  -  nUR                  (       dz  [        S5      [!        [
        U-  S-  U-
  [
        S-  -   5      * S[#        [
        U-  S-  U-
  [
        S-  -   5      -  SU-  -  -   -  [        SU-  5      -  [        [
        5      -  $ U $ [$        [&        U ]S  XUS9$ ! [         a    U s $ f = f)	NrJ   r<   ©r¦   r   r¤   é   é   r¥   )r3   r¨   r©   rª   rn   r   r   r_   r   r   r‡   r(   Ú
EulerGammar   rp   r    r   r   r«   rœ   r¬   )r5   rg   r¦   r§   rD   rE   r®   r¯   r°   Úterm_oneÚterm_twoÚ
term_threer±   rL   s                €r6   r¬   Úbessely._eval_as_leading_termf  s½  ø€ Ø—	‘	‰ˆð	Ø×#Ñ# AÓ&ˆCð ×$Ñ$ QÓ'‰ˆà�=�=Øœ2™œs 1 Q¡3›x™¬°«Ñ6ˆHØ>@×=M×=M˜˜1™  ™�}¤Y¨r°A©vÓ%6Ñ6´rÒ9ÔST×SYÑSYˆHØ˜Q™3 ™)˜¤R¬	°"«Ñ%5Ñ6¼ÀÀQÁ»Ì!Ï,É,Ñ8VÑWˆJÜ˜¨JÐ7Ð8×HÑHÈÐHÐVˆCØˆJØ�]�]Ø ›	‘1 tˆDØ˜1‘W‘9ˆDØ×#×#ô ˜A“w¤¤R¨¡U¨1¡W¨q¡[´2°a±4Ñ%7Ó!8Ð 8¸1¼SÄÀBÁÀqÁÈ1ÁÌrÐRSÉtÑASÓ=TÑ;TÐVWÐXYÑVYÑ;ZÑ ZÑ[Ô\`ÐabÐcdÑadÓ\eÑeÔfjÔkmÓfnÑnÐnØˆKä”W˜dÑ9¸!ÈTÐ9ÐRÐRøô' #ó 	ØŠKð	ús   ‘G ÇGÇGc                 óh   • U R                   u  pUR                  (       a  UR                  (       a  gg g r´   ©r3   r]   rn   r·   s      r6   r¸   Úbessely._eval_is_extended_real  ó$   € Ø—	‘	‰ˆØ�=�=˜QŸ]Ÿ]Øð +ˆ=r:   c                 óN  >• SSK Jn  U R                  u  pg UR                  U5      u  p‰U	R                  (       Ga?  UR                  (       Ga-  [        X)-  5      n
[        Xg5      nS[        -  [        US-  5      -  U-  R                  XX45      n/ / píU" X-  U5      nUS-  R                  XX45      R                  5       nU[        R                  L a  U$ [!        US-  5      U-   R                  5       nU[        R                  :”  aš  UU* -  [#        US-
  5      -  [        -  nUR%                  U5        ['        SU5       H]  nUU-
  U-  nU[        R                  :X  a	  UUU-  -  nOUUU-  -  n[!        U5      U-   R                  5       nUR%                  U5        M_     UU-  [        [#        U5      -  -  nU[)        US-   5      [        R*                  -
  -  nUR%                  U5        ['        SU
S-   S-  5       Hb  nUU* UUU-   -  -  -  n[!        U5      U-   R                  5       nU[)        UU-   S-   5      [)        US-   5      -   -  nUR%                  U5        Md     U[-        U6 -
  [-        U6 -
  $ [.        [0        U ]3  XX45      $ ! [        [
        4 a    U s $ f = fr¼   )r¿   r¾   r3   rÀ   rÁ   r©   rn   r]   r   r_   r   r   rÂ   rÃ   r   r‡   r   r   rÅ   rÄ   r(   ræ   r   r«   rœ   )r5   rg   r“   r¦   r§   r¾   rD   rE   rÇ   r   rÈ   Úbnrh   Úbr¯   rÉ   rÊ   rË   rÌ   rÎ   ÚdenomÚprL   s                         €r6   rÂ   Úbessely._eval_nseries„  sj  ø€ õ 	-Ø—	‘	‰ˆð	Ø—Z‘Z “]‰FˆAð �?�?ˆ?˜rŸ}Ÿ}˜}Ü˜1™5“>ˆDÜ˜“ˆBØ”B‘$œ˜A˜a™C›‘ Ñ#×2Ñ2°1¸ÓDˆAà�rˆqÙ�a‘d˜A“ˆAØ�1‘×#Ñ# A¨$Ó5×=Ñ=Ó?ˆAØ”A—F‘FŠ{Ø�Ü˜!˜Q™$“ !Ñ#×,Ñ,Ó.ˆAà”A—F‘F‹{Ø˜B˜3‘x¤	¨"¨q©&Ó 1Ñ1´"Ñ4�Ø—‘˜”Ü˜q "ž�AØ !™V Q™J�EØ¤§¡“Ø  !¡™™à  %¡™˜Ü$ T›N¨QÑ.×7Ñ7Ó9�DØ—H‘H˜T–Nñ &ð �2‘”rœ) B›-Ñ'Ñ(ˆAØ”g˜b 1™f“o¬¯©Ñ4Ñ5ˆDØ�H‰H�TŒNÜ˜1˜t a™x¨!™mÖ,�Ø�a�R˜˜A ™F™‘_Ñ$�Ü˜a“[ 1‘_×-Ñ-Ó/�Øœ' ! b¡&¨1¡*Ó-´¸¸A¹³Ñ>Ñ?�Ø—‘˜–ñ	 -ð
 ”s˜A�w‘;¤ a Ñ(Ð(ä”W˜dÑ1°!¸ÓCÐCøôK Ô/Ð0ó 	ØŠKð	ús   —J ÊJ$Ê#J$rA   rÐ   )r{   r|   r}   r~   r   r   r†   rM   rK   r�   rF   r×   r™   rà   r¬   r¸   rÂ   r‚   rÑ   rÒ   s   @r6   rœ   rœ     sV   ø† ñ&ðP 
�‰€BØ	
�‰€Bàñ<ó ð<ò&Lò'ò
=õSò2÷
/Dõ /Dr:   rœ   c                   ó¬   ^ • \ rS rSrSr\R                  * r\R                  r\	S 5       r
SS jrS rS rS rS rU 4S	 jrSU 4S
 jjrU 4S jrSrU =r$ )r`   i¶  a§  
Modified Bessel function of the first kind.

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

The Bessel $I$ function is a solution to the modified Bessel equation

.. math ::
    z^2 \frac{\mathrm{d}^2 w}{\mathrm{d}z^2}
    + z \frac{\mathrm{d}w}{\mathrm{d}z} + (z^2 + \nu^2)^2 w = 0.

It can be defined as

.. math ::
    I_\nu(z) = i^{-\nu} J_\nu(iz),

where $J_\nu(z)$ is the Bessel function of the first kind.

Examples
========

>>> from sympy import besseli
>>> from sympy.abc import z, n
>>> besseli(n, z).diff(z)
besseli(n - 1, z)/2 + besseli(n + 1, z)/2

See Also
========

besselj, bessely, besselk

References
==========

.. [1] https://functions.wolfram.com/Bessel-TypeFunctions/BesselI/

c                 ó   • UR                   (       aÅ  UR                   (       a  [        R                  $ UR                  (       a  UR                   SL d  [	        U5      R
                  (       a  [        R                  $ [	        U5      R                  (       a  UR                  SLa  [        R                  $ UR                  (       a  [        R                  $ [        U5      [        R                  [        R                  4;   a  [        R                  $ U[        R                  L a  [        R                  $ U[        R                  L a  SU-  [        R                  -  $ UR                  5       (       a  X!-  U* U* -  -  [        X* 5      -  $ UR                  (       aU  UR                  5       (       a  [        U* U5      $ UR!                  ["        5      nU(       a  ["        U* -  [%        X* 5      -  $ UR                  (       a  ['        U5      nX2:w  a  [        X5      $ OCUR)                  5       u  p4US:w  a+  [+        SU-  [,        -  U-  ["        -  5      [        X5      -  $ ['        U5      nX:w  a  [        XR5      $ g )NFTéÿÿÿÿr   rJ   )re   r   r†   r]   r#   rn   r‡   rp   rˆ   r‰   rŠ   r$   r‹   rŒ   r�   r`   r�   r   r_   r&   r�   r   r   r‘   s         r6   rF   Úbesseli.evalá  sÎ  € à�9�9Ø�z�zÜ—u‘u�Ø—-—- B§J¡J°%Ò$7¼B¸r»F×<N×<NÜ—v‘v�Ü�B“×#×#¨R¯]©]¸dÒ-BÜ×(Ñ(Ð(Ø——Ü—u‘u�Üˆa‹5”Q—Z‘Z¤×!3Ñ!3Ð4Ó4Ü—6‘6ˆMØ”—
‘
Š?Ü—:‘:ÐØ”×"Ñ"Ò"Ø˜‘8œAŸJ™JÑ&Ð&à×%Ñ%×'Ñ'Ø‘7˜Q˜B 2 #™;Ñ&¤w¨r°2£Ñ6Ð6Ø�=�=Ø×*Ñ*×,Ñ,Ü ˜s A“Ð&Ø×-Ñ-¬aÓ0ˆDÞÜ˜B˜3‘x¤¨¨EÓ 2Ñ2Ð2ð �=�=Ü˜a“=ˆDØ‹yÜ˜rÓ(Ð(ð ð ×-Ñ-Ó/‰GˆDØ�A‹vÜ˜1˜Q™3œr™6 "™9¤Q™;Ó'¬°Ó(9Ñ9Ð9Ü˜‹nˆØ‹9Ü˜3“?Ð"ð r:   c                 óT   • UR                   (       a  [        U5      [        X5      -  $ g r@   )r¶   r   Ú_besseli©r5   rD   rE   Úlimitvarrw   s        r6   Ú_eval_rewrite_as_tractableÚ"besseli._eval_rewrite_as_tractable	  s#   € Ø××Ü�q“6œ( 2›/Ñ)Ð)ð r:   c                 óv   • [        [        * [        -  U-  S-  5      [        U[	        [        5      U-  5      -  $ r—   )r   r   r   r_   r%   r˜   s       r6   r×   Ú besseli._eval_rewrite_as_besselj  s.   € Ü”A�2”b‘5˜‘8˜A‘:‹œw r¬:´a«=¸©?Ó;Ñ;Ð;r:   c                 ón   • U R                   " U R                  6 nU(       a  UR                  [        5      $ g r@   ©r×   r3   rÚ   rœ   rÛ   s        r6   r�   Ú besseli._eval_rewrite_as_bessely  rÞ   r:   c                 óZ   • U R                   " U R                  6 R                  [        5      $ r@   )r×   r3   rÚ   rc   r˜   s       r6   r¡   Úbesseli._eval_rewrite_as_jn  s"   € Ø×,Ò,¨d¯i©iÐ8×@Ñ@ÄÓDÐDr:   c                 óh   • U R                   u  pUR                  (       a  UR                  (       a  gg g r´   rµ   r·   s      r6   r¸   Úbesseli._eval_is_extended_real  rº   r:   c                 ó²  >• U R                   u  pE UR                  U5      nUR                  U5      u  pxUR                  (       a  Xd-  SU-  [        US-   5      -  -  $ UR                  (       aE  US:X  a  SOUnXsU-  -  n	U	R                  (       d!  [        U5      [        S[        -  U-  5      -  $ U $ [        [        U ]3  XUS9$ ! [         a    U s $ f = f)NrJ   r<   r   r¥   )r3   r¨   r©   rª   rn   r'   rp   r   r    r   r«   r`   r¬   r­   s             €r6   r¬   Úbesseli._eval_as_leading_term  sÓ   ø€ Ø—	‘	‰ˆð	Ø×#Ñ# AÓ&ˆCð ×$Ñ$ QÓ'‰ˆà�=�=Ø‘7˜A˜r™E¤%¨¨Q©£-Ñ/Ñ0Ð0Ø�]�]Ø ›	‘1 tˆDØ˜1‘W‘9ˆDØ×#×#ô ˜1“vœd 1¤R¡4¨¡6›lÑ*Ð*ØˆKä”W˜dÑ9¸!ÈTÐ9ÐRÐRøô #ó 	ØŠKð	ús   ‘C ÃCÃCc                 ó”  >• SSK Jn  U R                  u  pg UR                  U5      u  p‰U	R                  (       aã  [        X)-  5      n
U" X-  U5      nUS-  R                  XX45      R                  5       nU[        R                  L a  U$ [        US-  5      U-   R                  5       nXÆ-  [        US-   5      -  nU/n[        SU
S-   S-  5       H=  nXíUUU-   -  -  -  n[        U5      U-   R                  5       nUR                  U5        M?     [!        U6 U-   $ ["        [$        U ]#  XX45      $ ! [        [
        4 a    U s $ f = fr¼   )r¿   r¾   r3   rÀ   rÁ   r©   rn   r   rÂ   rÃ   r   r‡   r   r'   rÄ   rÅ   r   r«   r`   rÆ   s                    €r6   rÂ   Úbesseli._eval_nseries2  s<  ø€ õ 	-Ø—	‘	‰ˆð	Ø—Z‘Z “]‰FˆAð �?�?Ü˜1™5“>ˆDÙ�a‘d˜A“ˆAØ�1‘×#Ñ# A¨$Ó5×=Ñ=Ó?ˆAØ”A—F‘FŠ{Ø�Ü˜!˜Q™$“ !Ñ#×,Ñ,Ó.ˆAà‘5œ˜r A™v›Ñ&ˆDØ�ˆAÜ˜1˜t a™x¨!™mÖ,�Ø˜1˜b 1™f™:™Ñ&�Ü  ›¨Ñ*×3Ñ3Ó5�Ø—‘˜–ñ -ô ˜�7˜Q‘;Ðä”W˜dÑ1°!¸ÓCÐCøô' Ô/Ð0ó 	ØŠKð	ús   —D2 Ä2EÅEc           
      ó.  >• SSK Jn  SSKJn  US   nU[        R
                  [        R                  4;   aË  U R                  u  p‰[        U5       V
s/ s H^  n
U" [        SU-  S-
  S5      U
5      U" [        SU-  S-   S5      U
5      -  SU
-  U	[        SU
-  S-   S5      -  -  [        U
5      -  -  PM`     sn
U" SU	[        SU-  S-   S5      -  -  U5      /-   n[        U	5      [        S[        -  5      -  [        U6 -  $ [        TU ]A  XX45      $ s  sn
f ©Nr   ©r   r½   r<   rJ   ©Ú(sympy.functions.combinatorial.factorialsr   r¿   r¾   r   r‹   rŒ   r3   rÄ   r   r   r   r    r   r   r«   Ú_eval_aseries©r5   r“   Úargs0rg   r¦   r   r¾   ÚpointrD   rE   rÎ   rÍ   rL   s               €r6   r  Úbesseli._eval_aseriesQ  s+  ø€ ÝLÝ,Ø�a‘ˆà”Q—Z‘Z¤×!3Ñ!3Ð4Ó4Ø—I‘I‰EˆBäGLÈQÄxóQÚGOÀ!ñ "¤(¨1¨R©4°!©8°QÓ"7¸Ó;¹OÌHÐUVÐWYÑUYÐ\]ÑU]Ð_`ÓLaÐcdÓ<eÑeØ�1‰X�aœ( 1 Q¡3¨¡7¨AÓ.Ñ/Ñ/´	¸!³Ñ<ô>ÙGOñQÙTYÐZ[Ð\]Ô`hÐijÐklÑilÐopÑipÐrsÓ`tÑ\uÑZuÐwxÓTyÐSzñ{ˆAä�q“6œ$˜q¤™t›*Ñ$¬¨Q¨Ñ0Ð0ä‰wÑ$ Q¨qÓ7Ð7ùò	Qs   ÁA%DrA   r@   rÐ   )r{   r|   r}   r~   r   r   r†   rM   rK   r�   rF   rý   r×   r�   r¡   r¸   r¬   rÂ   r  r‚   rÑ   rÒ   s   @r6   r`   r`   ¶  sb   ø† ñ%ðN �%‰%ˆ€BØ	
�‰€Bàñ%#ó ð%#ôN*ò<ò'ò
Eòõ
S÷*D÷>8ó 8r:   r`   c                   ó¬   ^ • \ rS rSrSr\R                  r\R                  * r\	S 5       r
S rS rS rS rS rSS	 jrS
 rSU 4S jjrU 4S jrSrU =r$ )Úbesselki_  a´  
Modified Bessel function of the second kind.

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

The Bessel $K$ function of order $\nu$ is defined as

.. math ::
    K_\nu(z) = \lim_{\mu \to \nu} \frac{\pi}{2}
               \frac{I_{-\mu}(z) -I_\mu(z)}{\sin(\pi \mu)},

where $I_\mu(z)$ is the modified Bessel function of the first kind.

It is a solution of the modified Bessel equation, and linearly independent
from $Y_\nu$.

Examples
========

>>> from sympy import besselk
>>> from sympy.abc import z, n
>>> besselk(n, z).diff(z)
-besselk(n - 1, z)/2 - besselk(n + 1, z)/2

See Also
========

besselj, besseli, bessely

References
==========

.. [1] https://functions.wolfram.com/Bessel-TypeFunctions/BesselK/

c                 ó  • UR                   (       as  UR                   (       a  [        R                  $ [        U5      R                   SL a  [        R                  $ [        U5      R                   (       a  [        R
                  $ U[        R                  [        [        R                  -  [        [        R                  -  4;   a  [        R                  $ UR                  (       a#  UR                  5       (       a  [        U* U5      $ g g rS   )re   r   r‹   r#   rˆ   rŠ   r   rŒ   r‡   r]   r�   r  rB   s      r6   rF   Úbesselk.evalˆ  s§   € à�9�9Ø�z�zÜ—z‘zÐ!Ü�B“—‘ 5Ò(Ü×(Ñ(Ð(Ü�B“——Ü—u‘u�Ø”—‘œQœqŸz™z™\¬1¬Q×-?Ñ-?Ñ+?Ð@Ó@Ü—6‘6ˆMà�=�=Ø×*Ñ*×,Ñ,Ü ˜s A“Ð&ð -ð r:   c                 óŽ   • UR                   SL a6  [        [        [        U-  5      -  [        U* U5      [        X5      -
  -  S-  $ g )NFrJ   )r]   r   r   r`   r˜   s       r6   r™   Ú besselk._eval_rewrite_as_besseli˜  s@   € Ø�=‰=˜EÒ!Ü”cœ"˜R™%“j‘=¤'¨2¨#¨q£/´G¸B³NÑ"BÑCÀAÑEÐEð "r:   c                 ón   • U R                   " U R                  6 nU(       a  UR                  [        5      $ g r@   )r™   r3   rÚ   r_   )r5   rD   rE   rw   Úais        r6   r×   Ú besselk._eval_rewrite_as_besseljœ  rÞ   r:   c                 ón   • U R                   " U R                  6 nU(       a  UR                  [        5      $ g r@   r  rÛ   s        r6   r�   Ú besselk._eval_rewrite_as_bessely¡  rÞ   r:   c                 ón   • U R                   " U R                  6 nU(       a  UR                  [        5      $ g r@   )r�   r3   rÚ   rd   )r5   rD   rE   rw   Úays        r6   rà   Úbesselk._eval_rewrite_as_yn¦  s,   € Ø×*Ò*¨D¯I©IÐ6ˆÞØ—:‘:œb“>Ð!ð r:   c                 óh   • U R                   u  pUR                  (       a  UR                  (       a  gg g r´   rì   r·   s      r6   r¸   Úbesselk._eval_is_extended_real«  rî   r:   c                 óV   • UR                   (       a  [        U* 5      [        X5      -  $ g r@   )r¶   r   Ú_besselkrû   s        r6   rý   Ú"besselk._eval_rewrite_as_tractable°  s%   € Ø××Ü˜�r“7œ8 B›?Ñ*Ð*ð r:   c                 ór  • U R                   u  pE UR                  U5      nUR                  U5      u  pxUR                  (       a•  UR
                  (       a*  [        U5      * [        R                  -
  [        S5      -   n	OKUR                  (       a+  [        [        U5      5      US-  [        U5      * -  -  S-  n	O[        SU S35      eU	R                  XS9$ UR                  (       a+  [        [        5      [        U* 5      -  [        SU-  5      -  $ U R!                  XF5      $ ! [         a    U s $ f = f)NrJ   z"Cannot proceed without knowing if z is zero or not.rã   )r3   r¨   r©   rª   rn   re   r   r   ræ   Ú
is_nonzeror'   r"   rp   r    r   r   Úfunc)
r5   rg   r¦   r§   rD   rE   r®   rÇ   r°   rÌ   s
             r6   r¬   Úbesselk._eval_as_leading_term´  s  € Ø—	‘	‰ˆð	Ø×#Ñ# AÓ&ˆCð ×$Ñ$ QÓ'‰ˆà�=�=Ø�z�zä˜A›�w¤§¡Ñ-´°A³Ñ6‘Ø——äœS ›W“~ q¨¡s¬s°2«w¨hÑ&7Ñ7¸Ñ9‘ä)Ð,NÈrÈdÐRbÐ*cÓdÐdà×'Ñ'¨Ð'Ð5Ð5Ø�]�]äœ“8œC  ›IÑ%¤d¨1¨S©5£kÑ1Ð1à—9‘9˜RÓ%Ð%øô' #ó 	ØŠKð	ús   �D' Ä'D6Ä5D6c                 óR  >• SSK Jn  U R                  u  pg UR                  U5      u  p‰U	R                  (       GaA  US-  R                  XX45      R                  5       n
U
[        R                  L a  U" Xv* -  Xv-  -   U5      $ U" X-  U5      nUR                  (       Ga¸  [        X)-  5      n[        Xg5      nSUS-
  -  [        US-  5      -  U-  R                  XX45      n/ / nn[        U
S-  5      nU[        R                  :”  av  X¦* -  [!        US-
  5      -  S-  nUR#                  U5        [%        SU5       H>  nUUUU-
  U-  -  -  n[        U5      U-   R                  5       nUR#                  U5        M@     X¦-  SU-  -  S[!        U5      -  -  nU['        US-   5      [        R(                  -
  -  nUR#                  U5        [%        SUS-   S-  5       Ha  nUUUUU-   -  -  -  n[        U5      U-   R                  5       nU['        UU-   S-   5      ['        US-   5      -   -  nUR#                  U5        Mc     U[+        U6 -   [+        U6 -   U-   $ UR,                  (       Ga  [        X&-   U	-  5      n[        X&-
  U	-  5      n/ / pþ[%        US-   S-  5       HS  n[/        U5      U
SU-  U-
  -  -  S[1        SU-
  U5      -  [!        U5      -  -  nUR#                  [        U5      5        MU     [%        US-   S-  5       HT  n[/        U* 5      U
SU-  U-   -  -  S[1        US-   U5      -  [!        U5      -  -  nUR#                  [        U5      5        MV     [+        U6 [+        U6 -   U-   $ [        S5      e[2        [4        U ]  XX45      $ ! [        [
        4 a    U s $ f = f)Nr   r½   rJ   r÷   r<   z4besselk expansion is only implemented for real order)r¿   r¾   r3   rÀ   rÁ   r©   rn   rÂ   rÃ   r   r‡   r]   r   r`   r   r   r   rÅ   rÄ   r(   ræ   r   Úis_nonintegerr'   r   r«   r  )r5   rg   r“   r¦   r§   r¾   rD   rE   rÇ   r   rÊ   rÉ   rÈ   rð   rh   rñ   r¯   rË   rÌ   rÎ   ró   Únewn_aÚnewn_brL   s                          €r6   rÂ   Úbesselk._eval_nseriesÍ  s~  ø€ Ý,Ø—	‘	‰ˆð	Ø—Z‘Z “]‰FˆAð �?�?ˆ?Ø�1‘×#Ñ# A¨$Ó5×=Ñ=Ó?ˆAØ”A—F‘FŠ{Ù˜Q ™X¨©Ñ-¨qÓ1Ð1á�a‘d˜A“ˆAØ�}�}ˆ}ä˜q™u“~�Ü˜R“^�Ø˜B ™F‘^¤C¨¨!©£HÑ,¨RÑ/×>Ñ>¸qÀTÓP�à˜2�1�Ü˜Q ™T“N�àœŸ™“;Ø˜s™8¤I¨b°1©fÓ$5Ñ5°aÑ7�DØ—H‘H˜T”NÜ" 1 bž\˜Ø  A¨¡F¨A¡:¡Ñ.˜Ü (¨£°Ñ 2×;Ñ;Ó=˜ØŸ™ žñ *ð
 ‘E˜2 ™(‘N A¤i°£m¡OÑ4�Øœ' " q¡&›/¬A¯L©LÑ8Ñ9�Ø—‘˜”Ü˜q 4¨!¡8¨a¡-Ö0�AØ˜˜A˜q 2™v™J™Ñ'�AÜ! !› q™×1Ñ1Ó3�AØœg a¨"¡f¨q¡jÓ1´G¸AÀ¹E³NÑBÑC�DØ—H‘H˜T–Nñ	 1ð
 œ3 ˜7‘{¤S¨! WÑ,¨qÑ0Ð0Ø×!×!Ð!ô ! !¡$¨¡Ó,�Ü  !¡$¨¡Ó,�à˜2�1Ü  q¡¨1™}Ö-�AÜ  ›9 Q¨¨1©¨R©¡[Ñ0°!´OÀAÀbÁDÈ!Ó4LÑ2LÌYÐWXË\Ñ2YÑZ�DØ—H‘HœX d›^Ö,ñ .ô   q¡¨1™}Ö-�AÜ  " ›: a¨!¨A©#¨b©&¡kÑ1°1´_ÀRÈÁTÈ1Ó5MÑ3MÌiÐXYËlÑ3ZÑ[�DØ—H‘HœX d›^Ö,ñ .ô ˜A�w¤ a Ñ(¨1Ñ,Ð,ä)Ð*`ÓaÐaä”W˜dÑ1°!¸ÓCÐCøô{ Ô/Ð0ó 	ØŠKð	ús   —N ÎN&Î%N&c           
      ó0  >• SSK Jn  SSKJn  US   nU[        R
                  [        R                  4;   aÌ  U R                  u  p‰[        U5       V
s/ s H^  n
U" [        SU-  S-
  S5      U
5      U" [        SU-  S-   S5      U
5      -  SU
-  U	[        SU
-  S-   S5      -  -  [        U
5      -  -  PM`     sn
U" SU	[        SU-  S-   S5      -  -  U5      /-   n[        U	* 5      [        [        S-  5      -  [        U6 -  $ [        TU ]A  XX45      $ s  sn
f ©Nr   r  r½   r<   rJ   éþÿÿÿr  r  s               €r6   r  Úbesselk._eval_aseries  s-  ø€ ÝLÝ,Ø�a‘ˆà”Q—Z‘Z¤×!3Ñ!3Ð4Ó4Ø—I‘I‰EˆBäHMÈaÌóRÚHPÀ1ñ "¤(¨1¨R©4°!©8°QÓ"7¸Ó;¹OÌHÐUVÐWYÑUYÐ\]ÑU]Ð_`ÓLaÐcdÓ<eÑeØ�A‰Y�qœ8 A a¡C¨!¡G¨QÓ/Ñ0Ñ0´¸1³Ñ=ô?ÙHPñRÙTYÐZ[Ð\]Ô`hÐijÐklÑilÐopÑipÐrsÓ`tÑ\uÑZuÐwxÓTyÐSzñ{ˆAä˜˜“GœD¤ A¡›JÑ&¬¨Q¨Ñ/Ð/ä‰wÑ$ Q¨qÓ7Ð7ùò	Rs   ÁA%DrA   r@   rÐ   )r{   r|   r}   r~   r   r   r†   rM   rK   r�   rF   r™   r×   r�   rà   r¸   rý   r¬   rÂ   r  r‚   rÑ   rÒ   s   @r6   r  r  _  sg   ø† ñ#ðJ 
�‰€BØ
�%‰%ˆ€Bàñ'ó ð'òFò'ò
'ò
"ò
ô
+ò&÷2CD÷J8ó 8r:   r  c                   óN   • \ rS rSrSr\R                  r\R                  rS r	Sr
g)Úhankel1i   aL  
Hankel function of the first kind.

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

This function is defined as

.. math ::
    H_\nu^{(1)} = J_\nu(z) + iY_\nu(z),

where $J_\nu(z)$ is the Bessel function of the first kind, and
$Y_\nu(z)$ is the Bessel function of the second kind.

It is a solution to Bessel's equation.

Examples
========

>>> from sympy import hankel1
>>> from sympy.abc import z, n
>>> hankel1(n, z).diff(z)
hankel1(n - 1, z)/2 - hankel1(n + 1, z)/2

See Also
========

hankel2, besselj, bessely

References
==========

.. [1] https://functions.wolfram.com/Bessel-TypeFunctions/HankelH1/

c                 óž   • U R                   nUR                  SL a2  [        U R                  R	                  5       UR	                  5       5      $ g rS   )r=   rT   Úhankel2r7   rU   rV   s     r6   rW   Úhankel1._eval_conjugateH  ó>   € Ø�M‰MˆØ×!Ñ! UÒ*Ü˜4Ÿ:™:×/Ñ/Ó1°1·;±;³=ÓAÐAð +r:   rA   N©r{   r|   r}   r~   r   r   r†   rM   rK   rW   r‚   rA   r:   r6   r7  r7     s"   † ñ"ðH 
�‰€BØ	
�‰€BõBr:   r7  c                   óN   • \ rS rSrSr\R                  r\R                  rS r	Sr
g)r9  iN  az  
Hankel function of the second kind.

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

This function is defined as

.. math ::
    H_\nu^{(2)} = J_\nu(z) - iY_\nu(z),

where $J_\nu(z)$ is the Bessel function of the first kind, and
$Y_\nu(z)$ is the Bessel function of the second kind.

It is a solution to Bessel's equation, and linearly independent from
$H_\nu^{(1)}$.

Examples
========

>>> from sympy import hankel2
>>> from sympy.abc import z, n
>>> hankel2(n, z).diff(z)
hankel2(n - 1, z)/2 - hankel2(n + 1, z)/2

See Also
========

hankel1, besselj, bessely

References
==========

.. [1] https://functions.wolfram.com/Bessel-TypeFunctions/HankelH2/

c                 óž   • U R                   nUR                  SL a2  [        U R                  R	                  5       UR	                  5       5      $ g rS   )r=   rT   r7  r7   rU   rV   s     r6   rW   Úhankel2._eval_conjugatew  r;  r:   rA   Nr<  rA   r:   r6   r9  r9  N  s"   † ñ#ðJ 
�‰€BØ	
�‰€BõBr:   r9  c                 ó0   ^ • [        T 5      U 4S j5       nU$ )Nc                 ó:   >• UR                   (       a	  T" XU5      $ g r@   )r]   )r5   rD   rE   Úfns      €r6   ÚgÚassume_integer_order.<locals>.g~  s   ø€ à�=�=Ù�d “?Ð"ð r:   r   )rB  rC  s   ` r6   Úassume_integer_orderrE  }  s    ø€ Ü
ˆ2ƒYô#ó ð#ð €Hr:   c                   ó.   • \ rS rSrSrS rS rSS jrSrg)	ÚSphericalBesselBasei…  a  
Base class for spherical Bessel functions.

These are thin wrappers around ordinary Bessel functions,
since spherical Bessel functions differ from the ordinary
ones just by a slight change in order.

To use this class, define the ``_eval_evalf()`` and ``_expand()`` methods.

c                 ó   • [        S5      e)z?Expand self into a polynomial. Nu is guaranteed to be Integer. Ú	expansion©r©   ©r5   rq   s     r6   Ú_expandÚSphericalBesselBase._expand‘  s   € ä! +Ó.Ð.r:   c                 ó`   • U R                   R                  (       a  U R                  " S0 UD6$ U $ ©NrA   )r7   Ú
is_IntegerrL  rK  s     r6   ro   Ú%SphericalBesselBase._eval_expand_func•  s&   € Ø�:‰:× × Ø—<’<Ñ( %Ñ(Ð(Øˆr:   c                 ó´   • US:w  a  [        X5      eU R                  U R                  S-
  U R                  5      X R                  S-   -  U R                  -  -
  $ rI   )r
   rL   r7   r=   rN   s     r6   rP   ÚSphericalBesselBase.fdiffš  sO   € Ø�q‹=Ü$ TÓ4Ð4Ø�~‰~˜dŸj™j¨1™n¨d¯m©mÓ<Ø—J‘J ‘NÑ# D§M¡MÑ1ñ2ð 	2r:   rA   Nrz   )	r{   r|   r}   r~   r   rL  ro   rP   r‚   rA   r:   r6   rG  rG  …  s   † ñ	ò/ò÷
2r:   rG  c                 ó˜   • [        X5      [        U5      -  [        R                  U S-   -  [        U * S-
  U5      -  [	        U5      -  -   $ ©Nr<   )r+   r   r   rŽ   r   ©r“   rE   s     r6   Ú_jnrW  ¡  sK   € Ü Ó%¤c¨!£fÑ,Ü�M‰M˜A ™EÑ"Ô#6¸°r¸A±v¸qÓ#AÑAÄ#ÀaÃ&ÑHñIð Jr:   c                 ó˜   • [         R                  U S-   -  [        U * S-
  U5      -  [        U5      -  [        X5      [	        U5      -  -
  $ rU  )r   rŽ   r+   r   r   rV  s     r6   Ú_ynrY  ¦  sI   € ä�M‰M˜A ™EÑ"Ô%8¸!¸¸a¹ÀÓ%CÑCÄCÈÃFÑJÜ Ó%¤c¨!£fÑ,ñ-ð .r:   c                   óF   • \ rS rSrSr\S 5       rS rS rS r	S r
S rS	rg
)rc   i¬  aV  
Spherical Bessel function of the first kind.

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

This function is a solution to the spherical Bessel equation

.. math ::
    z^2 \frac{\mathrm{d}^2 w}{\mathrm{d}z^2}
      + 2z \frac{\mathrm{d}w}{\mathrm{d}z} + (z^2 - \nu(\nu + 1)) w = 0.

It can be defined as

.. math ::
    j_\nu(z) = \sqrt{\frac{\pi}{2z}} J_{\nu + \frac{1}{2}}(z),

where $J_\nu(z)$ is the Bessel function of the first kind.

The spherical Bessel functions of integral order are
calculated using the formula:

.. math:: j_n(z) = f_n(z) \sin{z} + (-1)^{n+1} f_{-n-1}(z) \cos{z},

where the coefficients $f_n(z)$ are available as
:func:`sympy.polys.orthopolys.spherical_bessel_fn`.

Examples
========

>>> from sympy import Symbol, jn, sin, cos, expand_func, besselj, bessely
>>> z = Symbol("z")
>>> nu = Symbol("nu", integer=True)
>>> print(expand_func(jn(0, z)))
sin(z)/z
>>> expand_func(jn(1, z)) == sin(z)/z**2 - cos(z)/z
True
>>> expand_func(jn(3, z))
(-6/z**2 + 15/z**4)*sin(z) + (1/z - 15/z**3)*cos(z)
>>> jn(nu, z).rewrite(besselj)
sqrt(2)*sqrt(pi)*sqrt(1/z)*besselj(nu + 1/2, z)/2
>>> jn(nu, z).rewrite(bessely)
(-1)**nu*sqrt(2)*sqrt(pi)*sqrt(1/z)*bessely(-nu - 1/2, z)/2
>>> jn(2, 5.2+0.3j).evalf(20)
0.099419756723640344491 - 0.054525080242173562897*I

See Also
========

besselj, bessely, besselk, yn

References
==========

.. [1] https://dlmf.nist.gov/10.47

c                 óT  • UR                   (       ac  UR                   (       a  [        R                  $ UR                  (       a1  UR                  (       a  [        R
                  $ [        R                  $ U[        R                  [        R                  4;   a  [        R
                  $ g r@   )	re   r   r†   r]   rn   r‡   rˆ   rŒ   r‹   rB   s      r6   rF   Újn.evalæ  sa   € à�9�9Ø�z�zÜ—u‘u�Ø——Ø—>—>ÜŸ6™6�Mä×,Ñ,Ð,Ø”×#Ñ#¤Q§Z¡ZÐ0Ó0Ü—6‘6ˆMð 1r:   c                 óh   • [        [        SU-  -  5      [        U[        R                  -   U5      -  $ r—   )r    r   r_   r   r    r˜   s       r6   r×   Újn._eval_rewrite_as_besseljó  s(   € Ü”B˜˜!™‘H‹~¤¨¬Q¯V©V©°QÓ 7Ñ7Ð7r:   c                 ó’   • [         R                  U-  [        [        SU-  -  5      -  [	        U* [         R
                  -
  U5      -  $ r—   )r   rŽ   r    r   rœ   r    r˜   s       r6   r�   Újn._eval_rewrite_as_besselyö  s8   € Ü�}‰}˜bÑ ¤4¬¨A¨a©C©£>Ñ1´G¸R¸CÄ!Ç&Á&¹LÈ!Ó4LÑLÐLr:   c                 óJ   • [         R                  U-  [        U* S-
  U5      -  $ rU  )r   rŽ   rd   r˜   s       r6   rà   Újn._eval_rewrite_as_ynù  s"   € Ü�}‰}˜rÑ"¤R¨¨¨a©°£^Ñ3Ð3r:   c                 óB   • [        U R                  U R                  5      $ r@   )rW  r7   r=   rK  s     r6   rL  Ú
jn._expandü  ó   € Ü�4—:‘:˜tŸ}™}Ó-Ð-r:   c                 ó‚   • U R                   R                  (       a$  U R                  [        5      R	                  U5      $ g r@   ©r7   rP  rÚ   r_   Ú_eval_evalf©r5   Úprecs     r6   rh  Újn._eval_evalfÿ  ó.   € Ø�:‰:× × Ø—<‘<¤Ó(×4Ñ4°TÓ:Ð:ð !r:   rA   N)r{   r|   r}   r~   r   r�   rF   r×   r�   rà   rL  rh  r‚   rA   r:   r6   rc   rc   ¬  s6   † ñ8ðr ñ
ó ð
ò8òMò4ò.õ;r:   rc   c                   óJ   • \ rS rSrSr\S 5       r\S 5       rS rS r	S r
Srg	)
rd   i  a%  
Spherical Bessel function of the second kind.

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

This function is another solution to the spherical Bessel equation, and
linearly independent from $j_n$. It can be defined as

.. math ::
    y_\nu(z) = \sqrt{\frac{\pi}{2z}} Y_{\nu + \frac{1}{2}}(z),

where $Y_\nu(z)$ is the Bessel function of the second kind.

For integral orders $n$, $y_n$ is calculated using the formula:

.. math:: y_n(z) = (-1)^{n+1} j_{-n-1}(z)

Examples
========

>>> from sympy import Symbol, yn, sin, cos, expand_func, besselj, bessely
>>> z = Symbol("z")
>>> nu = Symbol("nu", integer=True)
>>> print(expand_func(yn(0, z)))
-cos(z)/z
>>> expand_func(yn(1, z)) == -cos(z)/z**2-sin(z)/z
True
>>> yn(nu, z).rewrite(besselj)
(-1)**(nu + 1)*sqrt(2)*sqrt(pi)*sqrt(1/z)*besselj(-nu - 1/2, z)/2
>>> yn(nu, z).rewrite(bessely)
sqrt(2)*sqrt(pi)*sqrt(1/z)*bessely(nu + 1/2, z)/2
>>> yn(2, 5.2+0.3j).evalf(20)
0.18525034196069722536 + 0.014895573969924817587*I

See Also
========

besselj, bessely, besselk, jn

References
==========

.. [1] https://dlmf.nist.gov/10.47

c                 ó˜   • [         R                  US-   -  [        [        SU-  -  5      -  [	        U* [         R
                  -
  U5      -  $ rl   )r   rŽ   r    r   r_   r    r˜   s       r6   r×   Úyn._eval_rewrite_as_besselj3  s<   € ä�}‰}˜r !™tÑ$¤t¬B°°!±©H£~Ñ5¼ÀÀÄaÇfÁfÁÈaÓ8PÑPÐPr:   c                 óh   • [        [        SU-  -  5      [        U[        R                  -   U5      -  $ r—   )r    r   rœ   r   r    r˜   s       r6   r�   Úyn._eval_rewrite_as_bessely7  s(   € ä”B˜˜!™‘H‹~¤¨¬Q¯V©V©°QÓ 7Ñ7Ð7r:   c                 óP   • [         R                  US-   -  [        U* S-
  U5      -  $ rU  )r   rŽ   rc   r˜   s       r6   r¡   Úyn._eval_rewrite_as_jn;  s&   € Ü�}‰}˜r A™vÑ&¬¨R¨C°!©G°Q«Ñ7Ð7r:   c                 óB   • [        U R                  U R                  5      $ r@   )rY  r7   r=   rK  s     r6   rL  Ú
yn._expand>  re  r:   c                 ó‚   • U R                   R                  (       a$  U R                  [        5      R	                  U5      $ g r@   )r7   rP  rÚ   rœ   rh  ri  s     r6   rh  Úyn._eval_evalfA  rl  r:   rA   N)r{   r|   r}   r~   r   rE  r×   r�   r¡   rL  rh  r‚   rA   r:   r6   rd   rd     sA   † ñ-ð\ ñQó ðQð ñ8ó ð8ò8ò.õ;r:   rd   c                   óR   • \ rS rSr\S 5       r\S 5       rS rS rS r	S r
S rS	rg
)ÚSphericalHankelBaseiF  c                 ó   • U R                   n[        [        SU-  -  5      [        U[        R
                  -   U5      U[        -  [        R                  US-   -  -  [        U* [        R
                  -
  U5      -  -   -  $ rI   )Ú_hankel_kind_signr    r   r_   r   r    r   rŽ   ©r5   rD   rE   rw   Úhkss        r6   r×   Ú,SphericalHankelBase._eval_rewrite_as_besseljH  sq   € ð
 ×$Ñ$ˆÜ”B˜˜!™‘H‹~œw r¬A¯F©F¡{°AÓ6Ø"¤1™u¤Q§]¡]°R¸±TÑ%:Ñ:¼7ÀBÀ3ÌÏÉÁ<ÐQRÓ;SÑSñ Tñ Uð 	Ur:   c                 óú   • U R                   n[        [        SU-  -  5      [        R                  U-  [        U* [        R                  -
  U5      -  U[        -  [        U[        R                  -   U5      -  -   -  $ r—   )r{  r    r   r   rŽ   rœ   r    r   r|  s        r6   r�   Ú,SphericalHankelBase._eval_rewrite_as_besselyQ  si   € ð
 ×$Ñ$ˆÜ”B˜˜!™‘H‹~œqŸ}™}¨bÑ0´¸"¸¼q¿v¹v¹ÀqÓ1IÑIØ"¤1™u¤W¨R´!·&±&©[¸!Ó%<Ñ<ñ =ñ >ð 	>r:   c                 ó‚   • U R                   n[        X5      R                  [        5      U[        -  [        X5      -  -   $ r@   )r{  rc   rÚ   rd   r   r|  s        r6   rà   Ú'SphericalHankelBase._eval_rewrite_as_ynZ  s3   € Ø×$Ñ$ˆÜ�"‹y× Ñ ¤Ó$ s¬1¡u¬R°«Y¡Ñ6Ð6r:   c                 ó‚   • U R                   n[        X5      U[        -  [        X5      R	                  [        5      -  -   $ r@   )r{  rc   r   rd   rÚ   r|  s        r6   r¡   Ú'SphericalHankelBase._eval_rewrite_as_jn^  s4   € Ø×$Ñ$ˆÜ�"‹y˜3œq™5¤ B£×!2Ñ!2´2Ó!6Ñ6Ñ6Ð6r:   c                 óæ   • U R                   R                  (       a  U R                  " S0 UD6$ U R                   nU R                  nU R                  n[        X#5      U[        -  [        X#5      -  -   $ rO  )r7   rP  rL  r=   r{  rc   r   rd   )r5   rq   rD   rE   r}  s        r6   ro   Ú%SphericalHankelBase._eval_expand_funcb  sY   € Ø�:‰:× × Ø—<’<Ñ( %Ñ(Ð(à—‘ˆBØ—‘ˆAØ×(Ñ(ˆCÜ�b“9˜s¤1™u¤R¨£Y™Ñ.Ð.r:   c                 ó¨   • U R                   nU R                  nU R                  n[        X#5      U[        -  [        X#5      -  -   R                  5       $ r@   )r7   r=   r{  rW  r   rY  Úexpand)r5   rq   r“   rE   r}  s        r6   rL  ÚSphericalHankelBase._expandk  sE   € Ø�J‰JˆØ�M‰MˆØ×$Ñ$ˆô �A“	˜C¤™E¤# a£)™OÑ+×3Ñ3Ó5Ð5r:   c                 ó‚   • U R                   R                  (       a$  U R                  [        5      R	                  U5      $ g r@   rg  ri  s     r6   rh  ÚSphericalHankelBase._eval_evalfz  rl  r:   rA   N)r{   r|   r}   r~   rE  r×   r�   rà   r¡   ro   rL  rh  r‚   rA   r:   r6   ry  ry  F  sC   † àñUó ðUð ñ>ó ð>ò7ò7ò/ò6õ;r:   ry  c                   ó@   • \ rS rSrSr\R                  r\S 5       r	Sr
g)ra   i  a  
Spherical Hankel function of the first kind.

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

This function is defined as

.. math:: h_\nu^(1)(z) = j_\nu(z) + i y_\nu(z),

where $j_\nu(z)$ and $y_\nu(z)$ are the spherical
Bessel function of the first and second kinds.

For integral orders $n$, $h_n^(1)$ is calculated using the formula:

.. math:: h_n^(1)(z) = j_{n}(z) + i (-1)^{n+1} j_{-n-1}(z)

Examples
========

>>> from sympy import Symbol, hn1, hankel1, expand_func, yn, jn
>>> z = Symbol("z")
>>> nu = Symbol("nu", integer=True)
>>> print(expand_func(hn1(nu, z)))
jn(nu, z) + I*yn(nu, z)
>>> print(expand_func(hn1(0, z)))
sin(z)/z - I*cos(z)/z
>>> print(expand_func(hn1(1, z)))
-I*sin(z)/z - cos(z)/z + sin(z)/z**2 - I*cos(z)/z**2
>>> hn1(nu, z).rewrite(jn)
(-1)**(nu + 1)*I*jn(-nu - 1, z) + jn(nu, z)
>>> hn1(nu, z).rewrite(yn)
(-1)**nu*yn(-nu - 1, z) + I*yn(nu, z)
>>> hn1(nu, z).rewrite(hankel1)
sqrt(2)*sqrt(pi)*sqrt(1/z)*hankel1(nu, z)/2

See Also
========

hn2, jn, yn, hankel1, hankel2

References
==========

.. [1] https://dlmf.nist.gov/10.47

c                 óD   • [        [        SU-  -  5      [        X5      -  $ r—   )r    r   r7  r˜   s       r6   Ú_eval_rewrite_as_hankel1Úhn1._eval_rewrite_as_hankel1²  ó   € ä”B˜˜!™‘H‹~œg b›nÑ,Ð,r:   rA   N)r{   r|   r}   r~   r   r   r†   r{  rE  rŽ  r‚   rA   r:   r6   ra   ra     s&   † ñ.ð` Ÿ™Ðàñ-ó ó-r:   ra   c                   óB   • \ rS rSrSr\R                  * r\S 5       r	Sr
g)rb   i·  a  
Spherical Hankel function of the second kind.

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

This function is defined as

.. math:: h_\nu^(2)(z) = j_\nu(z) - i y_\nu(z),

where $j_\nu(z)$ and $y_\nu(z)$ are the spherical
Bessel function of the first and second kinds.

For integral orders $n$, $h_n^(2)$ is calculated using the formula:

.. math:: h_n^(2)(z) = j_{n} - i (-1)^{n+1} j_{-n-1}(z)

Examples
========

>>> from sympy import Symbol, hn2, hankel2, expand_func, jn, yn
>>> z = Symbol("z")
>>> nu = Symbol("nu", integer=True)
>>> print(expand_func(hn2(nu, z)))
jn(nu, z) - I*yn(nu, z)
>>> print(expand_func(hn2(0, z)))
sin(z)/z + I*cos(z)/z
>>> print(expand_func(hn2(1, z)))
I*sin(z)/z - cos(z)/z + sin(z)/z**2 + I*cos(z)/z**2
>>> hn2(nu, z).rewrite(hankel2)
sqrt(2)*sqrt(pi)*sqrt(1/z)*hankel2(nu, z)/2
>>> hn2(nu, z).rewrite(jn)
-(-1)**(nu + 1)*I*jn(-nu - 1, z) + jn(nu, z)
>>> hn2(nu, z).rewrite(yn)
(-1)**nu*yn(-nu - 1, z) - I*yn(nu, z)

See Also
========

hn1, jn, yn, hankel1, hankel2

References
==========

.. [1] https://dlmf.nist.gov/10.47

c                 óD   • [        [        SU-  -  5      [        X5      -  $ r—   )r    r   r9  r˜   s       r6   Ú_eval_rewrite_as_hankel2Úhn2._eval_rewrite_as_hankel2ê  r�  r:   rA   N)r{   r|   r}   r~   r   r   r†   r{  rE  r“  r‚   rA   r:   r6   rb   rb   ·  s(   † ñ.ð` Ÿ™˜Ðàñ-ó ó-r:   rb   c                 ó0  ^ ^^^^• SSK Jn  TS:X  at  SSKJn  SSKJn  U" U5      n[        SUS-   5       Vs/ s HE  n[        R                  " U" [        T S-   5      R                  U5      [        U5      5      U5      PMG     sn$ TS:X  a  SS	KJm   SS
KJm  U U4S jn	O[%        S5      eUU4S jn
T U-   nU
" X›5      nU/n[        US-
  5       H  nU
" X›U-   5      nUR'                  U5        M!     U$ s  snf ! [          a    SSKJm  U U4S jn	 Nhf = f)a1  
Zeros of the spherical Bessel function of the first kind.

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

This returns an array of zeros of $jn$ up to the $k$-th zero.

* method = "sympy": uses `mpmath.besseljzero
  <https://mpmath.org/doc/current/functions/bessel.html#mpmath.besseljzero>`_
* method = "scipy": uses the
  `SciPy's sph_jn <https://docs.scipy.org/doc/scipy/reference/generated/scipy.special.jn_zeros.html>`_
  and
  `newton <https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.newton.html>`_
  to find all
  roots, which is faster than computing the zeros using a general
  numerical solver, but it requires SciPy and only works with low
  precision floating point numbers. (The function used with
  method="sympy" is a recent addition to mpmath; before that a general
  solver was used.)

Examples
========

>>> from sympy import jn_zeros
>>> jn_zeros(2, 4, dps=5)
[5.7635, 9.095, 12.323, 15.515]

See Also
========

jn, yn, besselj, besselk, bessely

Parameters
==========

n : integer
    order of Bessel function

k : integer
    number of zeros to return


r   )r   Úsympy)Úbesseljzero)Údps_to_precr<   g      à?Úscipy)Únewton)Úspherical_jnc                 ó   >• T" TU 5      $ r@   rA   )rg   r“   r›  s    €€r6   Ú<lambda>Újn_zeros.<locals>.<lambda>)  s   ø€ ™, q¨!Ô,r:   )Úsph_jnc                 ó"   >• T" TU 5      S   S   $ )Nr   r÷   rA   )rg   r“   rŸ  s    €€r6   r�  rž  ,  s   ø€ ™&  A›, q™/¨"Ò-r:   úUnknown method.c                 ó:   >• TS:X  a
  T" X5      nU$ [        S5      e)Nr™  r¡  rJ  )rr   rg   r!   Úmethodrš  s      €€r6   ÚsolverÚjn_zeros.<locals>.solver0  s)   ø€ Ø�WÓÙ˜!“<ˆDð ˆô &Ð&7Ó8Ð8r:   )Úmathr   Úmpmathr—  Úmpmath.libmp.libmpfr˜  rÄ   r   Ú_from_mpmathr   Ú
_to_mpmathÚintÚscipy.optimizerš  Úscipy.specialr›  ÚImportErrorrŸ  r©   rÅ   )r“   rÎ   r£  ÚdpsÚmath_pir—  r˜  rj  Úlrr   r¤  r!   ÚrootsÚirš  rŸ  r›  s   ` `           @@@r6   Újn_zerosr´  ï  s  ü€ õZ #à�ÓÝ&Ý3Ù˜3Óˆô ˜q ! a¡%œó*â(�Aô ×!Ò!¡+¬a°°C±«j×.CÑ.CÀDÓ.IÜ.1°!«fó#6Ø7;ö=á(ñ*ð 	*ð 
�7Ó	Ý)ð	.Ý2Ý,‰Aô
 "Ð"3Ó4Ð4öð ˆw‰;€Dá�!‹?€DØˆF€EÜ�1�q‘5Ž\ˆá�a ™Ó(ˆØ�‰�TÖñ ð €Lùò=*øô ó 	.Ý,Ý-ŠAð	.ús   ·AC6ÂC; Ã;DÄDc                   ó8   • \ rS rSrSrS rS rS	S jrS	S jrSr	g)
ÚAiryBaseiC  z[
Abstract base class for Airy functions.

This class is meant to reduce code duplication.

c                 óZ   • U R                  U R                  S   R                  5       5      $ ©Nr   )r+  r3   rU   r4   s    r6   rW   ÚAiryBase._eval_conjugateK  s"   € Ø�y‰y˜Ÿ™ 1™×/Ñ/Ó1Ó2Ð2r:   c                 ó4   • U R                   S   R                  $ r¸  )r3   r¶   r4   s    r6   r¸   ÚAiryBase._eval_is_extended_realN  s   € Ø�y‰y˜‰|×,Ñ,Ð,r:   c                 ó¼   • U R                   S   nUR                  5       nU R                  nU" U5      U" U5      -   S-  n[        U" U5      U" U5      -
  -  S-  nXg4$ )Nr   rJ   )r3   rU   r+  r   )r5   Údeeprq   rE   Úzcrr   ÚuÚvs           r6   Úas_real_imagÚAiryBase.as_real_imagQ  sY   € Ø�I‰I�a‰LˆØ�[‰[‹]ˆØ�I‰IˆÙˆq‹T‘!�B“%‰Z˜‰NˆÜ‰q�‹u‘Q�q“T‰z‰N˜1ÑˆØˆtˆr:   c                 óD   • U R                   " SSU0UD6u  p4X4[        -  -   $ )Nr½  rA   )rÁ  r   )r5   r½  rq   Úre_partÚim_parts        r6   Ú_eval_expand_complexÚAiryBase._eval_expand_complexY  s*   € Ø×,Ò,Ñ@°$Ð@¸%Ñ@ÑˆØ¤™Ñ"Ð"r:   rA   N)T)
r{   r|   r}   r~   r   rW   r¸   rÁ  rÆ  r‚   rA   r:   r6   r¶  r¶  C  s   † ñò3ò-ô÷#r:   r¶  c                   ól   • \ rS rSrSrSrSr\S 5       rSS jr	\
\S 5       5       rS rS	 rS
 rS rSrg)Úairyaii^  až  
The Airy function $\operatorname{Ai}$ of the first kind.

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

The Airy function $\operatorname{Ai}(z)$ is defined to be the function
satisfying Airy's differential equation

.. math::
    \frac{\mathrm{d}^2 w(z)}{\mathrm{d}z^2} - z w(z) = 0.

Equivalently, for real $z$

.. math::
    \operatorname{Ai}(z) := \frac{1}{\pi}
    \int_0^\infty \cos\left(\frac{t^3}{3} + z t\right) \mathrm{d}t.

Examples
========

Create an Airy function object:

>>> from sympy import airyai
>>> from sympy.abc import z

>>> airyai(z)
airyai(z)

Several special values are known:

>>> airyai(0)
3**(1/3)/(3*gamma(2/3))
>>> from sympy import oo
>>> airyai(oo)
0
>>> airyai(-oo)
0

The Airy function obeys the mirror symmetry:

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

Differentiation with respect to $z$ is supported:

>>> from sympy import diff
>>> diff(airyai(z), z)
airyaiprime(z)
>>> diff(airyai(z), z, 2)
z*airyai(z)

Series expansion is also supported:

>>> from sympy import series
>>> series(airyai(z), z, 0, 3)
3**(5/6)*gamma(1/3)/(6*pi) - 3**(1/6)*z*gamma(2/3)/(2*pi) + O(z**3)

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

>>> airyai(-2).evalf(50)
0.22740742820168557599192443603787379946077222541710

Rewrite $\operatorname{Ai}(z)$ in terms of hypergeometric functions:

>>> from sympy import hyper
>>> airyai(z).rewrite(hyper)
-3**(2/3)*z*hyper((), (4/3,), z**3/9)/(3*gamma(1/3)) + 3**(1/3)*hyper((), (2/3,), z**3/9)/(3*gamma(2/3))

See Also
========

airybi: Airy function of the second kind.
airyaiprime: Derivative of the Airy function of the first kind.
airybiprime: Derivative of the Airy function of the second kind.

References
==========

.. [1] https://en.wikipedia.org/wiki/Airy_function
.. [2] https://dlmf.nist.gov/9
.. [3] https://encyclopediaofmath.org/wiki/Airy_functions
.. [4] https://mathworld.wolfram.com/AiryFunctions.html

r<   Tc                 ó  • UR                   (       a°  U[        R                  L a  [        R                  $ U[        R                  L a  [        R                  $ U[        R
                  L a  [        R                  $ UR                  (       a6  [        R                  S[        SS5      -  [        [        SS5      5      -  -  $ UR                  (       a6  [        R                  S[        SS5      -  [        [        SS5      5      -  -  $ g )Nrä   rJ   )
Ú	is_Numberr   rŠ   r‹   r‡   rŒ   re   r†   r   r'   ©rC   r®   s     r6   rF   Úairyai.evalº  s°   € à�=�=Ø”a—e‘eŠ|Ü—u‘u�ØœŸ
™
Ò"Ü—v‘v�Øœ×*Ñ*Ò*Ü—v‘v�Ø——Ü—u‘u ¤8¨A¨q£>Ñ 1´E¼(À1Àa».Ó4IÑ IÑJÐJØ�;�;Ü—5‘5˜Aœx¨¨1›~Ñ-´´h¸qÀ!³nÓ0EÑEÑFÐFð r:   c                 óT   • US:X  a  [        U R                  S   5      $ [        X5      e©Nr<   r   )Úairyaiprimer3   r
   rN   s     r6   rP   Úairyai.fdiffÈ  ó'   € Ø�q‹=Ü˜tŸy™y¨™|Ó,Ð,ä$ TÓ4Ð4r:   c           	      óX  • U S:  a  [         R                  $ [        U5      n[        U5      S:”  aÜ  US   n[	        S5      U-  U * -  [	        S5      U-  U S-   -  -  [        [        U [        SS5      -  [        SS5      -   -  5      -  [        U 5      -  [        U S-  [        SS5      -   5      -  [        [        U [        SS5      -  [        SS5      -   -  5      [        U S-   5      -  [        U S-  [        SS5      -   5      -  -  U-  $ [         R                  S[        SS5      -  [        -  -  [        U [         R                  -   [        S5      -  5      -  [        [        SS5      [        -  U [         R                  -   -  5      -  [        U 5      -  [	        S5      U-  U -  -  $ )Nr   r<   r÷   rä   rJ   r¤   )r   r‡   r   Úlenr   r   r   r   r   r'   r†   ©r“   rg   Úprevious_termsró   s       r6   Útaylor_termÚairyai.taylor_termÎ  sÆ  € ð ˆq‹5Ü—6‘6ˆMä˜“
ˆAÜ�>Ó" QÓ&Ø" 2Ñ&�Ü˜a› ™ q bÑ)¬4°«7°1©9¸¸A¹Ñ*>Ñ>¼sÄ2ÀqÌÐRSÐUVËÑGWÔZbÐcdÐfgÓZhÑGhÑCiÓ?jÑjÔktÐuvÓkwÑwÜ˜a ™c¤H¨Q°£NÑ2Ó3ñ4Ü58¼¸Q¼xÈÈ1»~Ñ=MÔPXÐYZÐ\]ÓP^Ñ=^Ñ9_Ó5`ÔajÐklÐopÑkpÓaqÑ5qÔrwÐxyÐz{Ñx{ô  Gð  HIð  KLó  Mñ  yMó  sNñ  6NñOð RSñSð Tô Ÿ™˜q¤(¨1¨a£.Ñ0´Ñ3Ñ4´u¸aÄÇÁ¹gÄqÈÃt¹^Ó7LÑLÌsÔS[Ð\]Ð_`ÓSaÔbdÑSdÐfgÔhi×hmÑhmÑfmÑSnÓOoÑoÜ! !›ñ%Ü(,¨Q«°©	°A¡~ñ6ð 7r:   c                 óò   • [        SS5      n[        SS5      n[        U* [        SS5      5      n[        U5      R                  (       a.  U[	        U* 5      -  [        U* XE-  5      [        X4U-  5      -   -  $ g ©Nr<   rä   rJ   ©r   r   r#   rp   r    r_   ©r5   rE   rw   ÚotÚttrh   s         r6   r×   Úairyai._eval_rewrite_as_besseljÝ  sl   € Ü�a˜‹^ˆÜ�a˜‹^ˆÜ��”H˜Q “NÓ#ˆÜˆa‹5××Ø”d˜A˜2“h‘;¤'¨2¨#¨r©tÓ"4´w¸rÀaÁ4Ó7HÑ"HÑIÐIð r:   c                 óf  • [        SS5      n[        SS5      n[        U[        SS5      5      n[        U5      R                  (       a-  U[	        U5      -  [        U* XE-  5      [        X4U-  5      -
  -  $ U[        XS5      [        U* XE-  5      -  U[        XS* 5      -  [        X4U-  5      -  -
  -  $ rÚ  ©r   r   r#   rn   r    r`   rÜ  s         r6   r™   Úairyai._eval_rewrite_as_besseliä  s¡   € Ü�a˜‹^ˆÜ�a˜‹^ˆÜ�”8˜A˜q“>Ó"ˆÜˆa‹5××Ø”d˜1“g‘:¤¨"¨¨b©dÓ!3´g¸bÀQÁ$Ó6GÑ!GÑHÐHà”s˜1“z¤'¨2¨#¨r©tÓ"4Ñ4°q¼¸QÀ»±}ÄWÈRÐTUÑQUÓEVÑ7VÑVÑWÐWr:   c           	      ó>  • [         R                  S[        SS5      -  [        [        SS5      5      -  -  nU[	        SS5      [        [        SS5      5      -  -  nU[        / [        SS5      /US-  S-  5      -  U[        / [        SS5      /US-  S-  5      -  -
  $ )Nrä   rJ   r<   é	   r¤   )r   r†   r   r'   r!   r*   ©r5   rE   rw   Úpf1Úpf2s        r6   Ú_eval_rewrite_as_hyperÚairyai._eval_rewrite_as_hyperí  s›   € Ü�e‰e�qœ( 1 a›.Ñ(¬¬x¸¸1«~Ó)>Ñ>Ñ?ˆØ”4˜˜1“:œe¤H¨Q°£NÓ3Ñ3Ñ4ˆØ”U˜2¤¨¨A£Ð/°°A±°a±Ó8Ñ8¸3ÄÀrÌHÐUVÐXYËNÐK[Ð]^Ð`aÑ]aÐbcÑ]cÓAdÑ;dÑdÐdr:   c                 ó^  • U R                   S   nUR                  n[        U5      S:X  Ga  UR                  5       n[	        SU/S9n[	        SU/S9n[	        SU/S9n[	        SU/S9nUR                  XVXH-  -  U-  -  5      n	U	b§  X—   nSU-  R                  (       aŽ  X•   nX–   nX˜   nXdU-  -  U-  Xg-  XGU-  -  -  -  n
XVU-  -  XGU-  -  -  n[        R                  U
[        R                  -   [        U5      -  U
[        R                  -
  [        S5      -  [        U5      -  -
  -  $ g g g ©	Nr   r<   r¯   )ÚexcludeÚdÚmr“   rä   )r3   Úfree_symbolsrÔ  Úpopr   Úmatchr]   r   r    r†   rÉ  r    Úairybi©r5   rq   r®   ÚsymbsrE   r¯   rí  rî  r“   ÚMÚpfÚnewargs               r6   ro   Úairyai._eval_expand_funcò  s<  € Ø�i‰i˜‰lˆØ× Ñ ˆäˆu‹:˜Œ?Ø—	‘	“ˆAÜ�S 1 #Ñ&ˆAÜ�S 1 #Ñ&ˆAÜ�S 1 #Ñ&ˆAÜ�S 1 #Ñ&ˆAØ—	‘	˜!˜q™t™V a™K™-Ó(ˆAØ‰}Ø‘D�ð �a‘C×#×#Ø™�AØ™�AØ™�AØ ™d™( Q™¨!©$°°q±S±©/Ñ:�BØ A¡™X¨¨a©C©Ñ0�FÜŸ6™6 b¬1¯5©5¡j´&¸³.Ñ%@ÀBÌÏÉÁJÔPTÐUVÓPWÑCWÔX^Ð_eÓXfÑCfÑ%fÑgÐgð $ð	 ð r:   rA   N©r<   ©r{   r|   r}   r~   r   ÚnargsÚ
unbranchedr�   rF   rP   Ústaticmethodr   r×  r×   r™   rè  ro   r‚   rA   r:   r6   rÉ  rÉ  ^  sb   † ñVðp €EØ€JàñGó ðGô5ð Øñ7ó ó ð7òJòXòeõ
hr:   rÉ  c                   ól   • \ rS rSrSrSrSr\S 5       rSS jr	\
\S 5       5       rS rS	 rS
 rS rSrg)rò  i
  aê  
The Airy function $\operatorname{Bi}$ of the second kind.

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

The Airy function $\operatorname{Bi}(z)$ is defined to be the function
satisfying Airy's differential equation

.. math::
    \frac{\mathrm{d}^2 w(z)}{\mathrm{d}z^2} - z w(z) = 0.

Equivalently, for real $z$

.. math::
    \operatorname{Bi}(z) := \frac{1}{\pi}
             \int_0^\infty
               \exp\left(-\frac{t^3}{3} + z t\right)
               + \sin\left(\frac{t^3}{3} + z t\right) \mathrm{d}t.

Examples
========

Create an Airy function object:

>>> from sympy import airybi
>>> from sympy.abc import z

>>> airybi(z)
airybi(z)

Several special values are known:

>>> airybi(0)
3**(5/6)/(3*gamma(2/3))
>>> from sympy import oo
>>> airybi(oo)
oo
>>> airybi(-oo)
0

The Airy function obeys the mirror symmetry:

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

Differentiation with respect to $z$ is supported:

>>> from sympy import diff
>>> diff(airybi(z), z)
airybiprime(z)
>>> diff(airybi(z), z, 2)
z*airybi(z)

Series expansion is also supported:

>>> from sympy import series
>>> series(airybi(z), z, 0, 3)
3**(1/3)*gamma(1/3)/(2*pi) + 3**(2/3)*z*gamma(2/3)/(2*pi) + O(z**3)

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

>>> airybi(-2).evalf(50)
-0.41230258795639848808323405461146104203453483447240

Rewrite $\operatorname{Bi}(z)$ in terms of hypergeometric functions:

>>> from sympy import hyper
>>> airybi(z).rewrite(hyper)
3**(1/6)*z*hyper((), (4/3,), z**3/9)/gamma(1/3) + 3**(5/6)*hyper((), (2/3,), z**3/9)/(3*gamma(2/3))

See Also
========

airyai: Airy function of the first kind.
airyaiprime: Derivative of the Airy function of the first kind.
airybiprime: Derivative of the Airy function of the second kind.

References
==========

.. [1] https://en.wikipedia.org/wiki/Airy_function
.. [2] https://dlmf.nist.gov/9
.. [3] https://encyclopediaofmath.org/wiki/Airy_functions
.. [4] https://mathworld.wolfram.com/AiryFunctions.html

r<   Tc                 ó  • UR                   (       a°  U[        R                  L a  [        R                  $ U[        R                  L a  [        R                  $ U[        R                  L a  [        R
                  $ UR                  (       a6  [        R                  S[        SS5      -  [        [        SS5      5      -  -  $ UR                  (       a6  [        R                  S[        SS5      -  [        [        SS5      5      -  -  $ g )Nrä   r<   é   rJ   )
rË  r   rŠ   r‹   rŒ   r‡   re   r†   r   r'   rÌ  s     r6   rF   Úairybi.evalh  s±   € à�=�=Ø”a—e‘eŠ|Ü—u‘u�ØœŸ
™
Ò"Ü—z‘zÐ!Øœ×*Ñ*Ò*Ü—v‘v�Ø——Ü—u‘u ¤8¨A¨q£>Ñ 1´E¼(À1Àa».Ó4IÑ IÑJÐJà�;�;Ü—5‘5˜Aœx¨¨1›~Ñ-´´h¸qÀ!³nÓ0EÑEÑFÐFð r:   c                 óT   • US:X  a  [        U R                  S   5      $ [        X5      erÏ  )Úairybiprimer3   r
   rN   s     r6   rP   Úairybi.fdiffw  rÒ  r:   c           
      óp  • U S:  a  [         R                  $ [        U5      n[        U5      S:”  aâ  US   n[	        S5      U-  [        [        [        SS5      [        -  U [         R                  -   -  5      5      -  [        U [         R                  -
  [        S5      -  5      -  U [         R                  -   [        [        [        SS5      [        -  U [         R                  -   -  5      5      -  [        U S-
  [        S5      -  5      -  -  U-  $ [         R                  [        SS5      [        -  -  [        U [         R                  -   [        S5      -  5      -  [        [        [        SS5      [        -  U [         R                  -   -  5      5      -  [        U 5      -  [	        S5      U-  U -  -  $ )Nr   r<   r÷   rä   rJ   r   )r   r‡   r   rÔ  r   r"   r   r   r   r†   r   r   r    r!   r'   rÕ  s       r6   r×  Úairybi.taylor_term}  sw  € ð ˆq‹5Ü—6‘6ˆMä˜“
ˆAÜ�>Ó" QÓ&Ø" 2Ñ&�Ü˜Q› ™	¤C¬¬H°Q¸«N¼2Ñ,=¸qÄ1Ç5Á5¹yÑ,IÓ(JÓ$KÑKÌiÐYZÔ]^×]bÑ]bÑYbÔdeÐfgÓdhÑXhÓNiÑiØœaŸe™e™)¤s¬3¬x¸¸1«~¼bÑ/@À!ÄaÇfÁfÁ*Ñ/MÓ+NÓ'OÑOÔR[Ð]^ÐabÑ]bÔdeÐfgÓdhÑ\hÓRiÑiñkØmnñoð pô Ÿ™œt A q›z¬"™}Ñ-´°q¼1¿5¹5±yÄ!ÀAÃ$Ñ6FÓ0GÑGÌ#ÌcÔRZÐ[\Ð^_ÓR`ÔacÑRcÐefÔij×inÑinÑenÑRoÓNpÓJqÑqÜ! !›ñ%Ü(,¨Q«°©	°A¡~ñ6ð 7r:   c                 óò   • [        SS5      n[        SS5      n[        U* [        SS5      5      n[        U5      R                  (       a.  [	        U* S-  5      [        U* XE-  5      [        X4U-  5      -
  -  $ g rÚ  rÛ  rÜ  s         r6   r×   Úairybi._eval_rewrite_as_besseljŒ  sl   € Ü�a˜‹^ˆÜ�a˜‹^ˆÜ��”H˜Q “NÓ#ˆÜˆa‹5××Ü˜˜˜1™“:¤¨"¨¨b©dÓ!3´g¸bÀQÁ$Ó6GÑ!GÑHÐHð r:   c                 ó�  • [        SS5      n[        SS5      n[        U[        SS5      5      n[        U5      R                  (       a6  [	        U5      [	        S5      -  [        U* XE-  5      [        X4U-  5      -   -  $ [        XS5      n[        XS* 5      n[	        U5      U[        U* XE-  5      -  X-  [        X4U-  5      -  -   -  $ rÚ  rá  ©r5   rE   rw   rÝ  rÞ  rh   rñ   r¯   s           r6   r™   Úairybi._eval_rewrite_as_besseli“  s¯   € Ü�a˜‹^ˆÜ�a˜‹^ˆÜ�”8˜A˜q“>Ó"ˆÜˆa‹5××Ü˜“7œ4 ›7‘?¤g¨r¨c°2±4Ó&8¼7À2È!ÁtÓ;LÑ&LÑMÐMä�A“
ˆAÜ�A�s“ˆAÜ˜“8˜Qœw¨ s¨B©DÓ1Ñ1°A±C¼ÀÀqÁDÓ8IÑ4IÑIÑJÐJr:   c           	      ó8  • [         R                  [        SS5      [        [	        SS5      5      -  -  nU[        SS5      -  [        [	        SS5      5      -  nU[        / [	        SS5      /US-  S-  5      -  U[        / [	        SS5      /US-  S-  5      -  -   $ )Nrä   r   rJ   r<   rä  r¤   )r   r†   r!   r'   r   r*   rå  s        r6   rè  Úairybi._eval_rewrite_as_hyperž  s•   € Ü�e‰e”t˜A˜q“z¤%¬°°A«Ó"7Ñ7Ñ8ˆØ”�Q˜“
‰lœU¤8¨A¨q£>Ó2Ñ2ˆØ”U˜2¤¨¨A£Ð/°°A±°a±Ó8Ñ8¸3ÄÀrÌHÐUVÐXYËNÐK[Ð]^Ð`aÑ]aÐbcÑ]cÓAdÑ;dÑdÐdr:   c                 ó^  • U R                   S   nUR                  n[        U5      S:X  Ga  UR                  5       n[	        SU/S9n[	        SU/S9n[	        SU/S9n[	        SU/S9nUR                  XVXH-  -  U-  -  5      n	U	b§  X—   nSU-  R                  (       aŽ  X•   nX–   nX˜   nXdU-  -  U-  Xg-  XGU-  -  -  -  n
XVU-  -  XGU-  -  -  n[        R                  [        S5      [        R                  U
-
  -  [        U5      -  [        R                  U
-   [        U5      -  -   -  $ g g g rë  )r3   rï  rÔ  rð  r   rñ  r]   r   r    r    r†   rÉ  rò  ró  s               r6   ro   Úairybi._eval_expand_func£  s:  € Ø�i‰i˜‰lˆØ× Ñ ˆäˆu‹:˜Œ?Ø—	‘	“ˆAÜ�S 1 #Ñ&ˆAÜ�S 1 #Ñ&ˆAÜ�S 1 #Ñ&ˆAÜ�S 1 #Ñ&ˆAØ—	‘	˜!˜q™t™V a™K™-Ó(ˆAØ‰}Ø‘D�ð �a‘C×#×#Ø™�AØ™�AØ™�AØ ™d™( Q™¨!©$°°q±S±©/Ñ:�BØ A¡™X¨¨a©C©Ñ0�FÜŸ6™6¤T¨!£W¬a¯e©e°b©jÑ%9¼&À».Ñ%HÌAÏEÉEÐTVÉJÔX^Ð_eÓXfÑKfÑ%fÑgÐgð $ð	 ð r:   rA   Nrù  rú  rA   r:   r6   rò  rò  
  sb   † ñXðt €EØ€JàñGó ðGô5ð Øñ7ó ó ð7òIò	Kòeõ
hr:   rò  c                   óX   • \ rS rSrSrSrSr\S 5       rSS jr	S r
S rS	 rS
 rS rSrg)rÐ  i»  aI  
The derivative $\operatorname{Ai}^\prime$ of the Airy function of the first
kind.

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

The Airy function $\operatorname{Ai}^\prime(z)$ is defined to be the
function

.. math::
    \operatorname{Ai}^\prime(z) := \frac{\mathrm{d} \operatorname{Ai}(z)}{\mathrm{d} z}.

Examples
========

Create an Airy function object:

>>> from sympy import airyaiprime
>>> from sympy.abc import z

>>> airyaiprime(z)
airyaiprime(z)

Several special values are known:

>>> airyaiprime(0)
-3**(2/3)/(3*gamma(1/3))
>>> from sympy import oo
>>> airyaiprime(oo)
0

The Airy function obeys the mirror symmetry:

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

Differentiation with respect to $z$ is supported:

>>> from sympy import diff
>>> diff(airyaiprime(z), z)
z*airyai(z)
>>> diff(airyaiprime(z), z, 2)
z*airyaiprime(z) + airyai(z)

Series expansion is also supported:

>>> from sympy import series
>>> series(airyaiprime(z), z, 0, 3)
-3**(2/3)/(3*gamma(1/3)) + 3**(1/3)*z**2/(6*gamma(2/3)) + O(z**3)

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

>>> airyaiprime(-2).evalf(50)
0.61825902074169104140626429133247528291577794512415

Rewrite $\operatorname{Ai}^\prime(z)$ in terms of hypergeometric functions:

>>> from sympy import hyper
>>> airyaiprime(z).rewrite(hyper)
3**(1/3)*z**2*hyper((), (5/3,), z**3/9)/(6*gamma(2/3)) - 3**(2/3)*hyper((), (1/3,), z**3/9)/(3*gamma(1/3))

See Also
========

airyai: Airy function of the first kind.
airybi: Airy function of the second kind.
airybiprime: Derivative of the Airy function of the second kind.

References
==========

.. [1] https://en.wikipedia.org/wiki/Airy_function
.. [2] https://dlmf.nist.gov/9
.. [3] https://encyclopediaofmath.org/wiki/Airy_functions
.. [4] https://mathworld.wolfram.com/AiryFunctions.html

r<   Tc                 ó@  • UR                   (       aF  U[        R                  L a  [        R                  $ U[        R                  L a  [        R                  $ UR
                  (       a6  [        R                  S[        SS5      -  [        [        SS5      5      -  -  $ g )Nrä   r<   )	rË  r   rŠ   r‹   r‡   re   rŽ   r   r'   rÌ  s     r6   rF   Úairyaiprime.eval  sh   € à�=�=Ø”a—e‘eŠ|Ü—u‘u�ØœŸ
™
Ò"Ü—v‘v�à�;�;Ü—=‘= A¤x°°1£~Ñ$5¼¼hÀqÈ!»nÓ8MÑ$MÑNÐNð r:   c                 ót   • US:X  a(  U R                   S   [        U R                   S   5      -  $ [        X5      erÏ  )r3   rÉ  r
   rN   s     r6   rP   Úairyaiprime.fdiff  ó4   € Ø�q‹=Ø—9‘9˜Q‘<¤ t§y¡y°¡|Ó 4Ñ4Ð4ä$ TÓ4Ð4r:   c                 óà   • U R                   S   R                  U5      n[        U5         [        R                  " USS9nS S S 5        [
        R                  " WU5      $ ! , (       d  f       N%= f©Nr   r<   )Ú
derivative)r3   rª  r-   r,   rÉ  r   r©  ©r5   rj  rE   Úress       r6   rh  Úairyaiprime._eval_evalf!  óQ   € Ø�I‰I�a‰L×#Ñ# DÓ)ˆÜ�d�^Ü—)’)˜A¨!Ñ,ˆC÷ ä× Ò   dÓ+Ð+÷ �^úó   ªAÁ
A-c                 óÆ   • [        SS5      n[        U* [        SS5      5      n[        U5      R                  (       a$  US-  [	        U* X4-  5      [	        X3U-  5      -
  -  $ g ©NrJ   rä   )r   r   r#   rp   r_   ©r5   rE   rw   rÞ  rh   s        r6   r×   Ú$airyaiprime._eval_rewrite_as_besselj'  s[   € Ü�a˜‹^ˆÜ��”H˜Q “NÓ#ˆÜˆa‹5××Ø�Q‘3œ' 2 # r¡tÓ,¬w°r¸a¹4Ó/@Ñ@ÑAÐAð r:   c                 óˆ  • [        SS5      n[        SS5      nU[        U[        SS5      5      -  n[        U5      R                  (       a  US-  [	        XE5      [	        U* U5      -
  -  $ [        U[        SS5      5      n[        XT5      n[        XT* 5      nX1S-  U-  [	        XDU-  5      -  U[	        U* XE-  5      -  -
  -  $ rÚ  )r   r   r#   rn   r`   r
  s           r6   r™   Ú$airyaiprime._eval_rewrite_as_besseli-  s¶   € Ü�a˜‹^ˆÜ�a˜‹^ˆØ”�Qœ  A›Ó'Ñ'ˆÜˆa‹5××Ø�Q‘3œ' "›.¬7°B°3¸«?Ñ:Ñ;Ð;ä�A”x  1“~Ó&ˆAÜ�A“
ˆAÜ�A�s“ˆAØ˜A™˜a™¤¨¨q©DÓ 1Ñ1°A´g¸r¸cÀ2Á4Ó6HÑ4HÑHÑIÐIr:   c           	      ó.  • US-  SS[        SS5      -  -  [        [        SS5      5      -  -  nS[        SS5      [        [        SS5      5      -  -  nU[        / [        SS5      /US-  S-  5      -  U[        / [        SS5      /US-  S-  5      -  -
  $ )NrJ   rä   r<   é   rä  )r   r'   r!   r*   rå  s        r6   rè  Ú"airyaiprime._eval_rewrite_as_hyper9  s    € Ø�‰d�a˜œ8 A q›>Ñ)Ñ)¬%´¸¸A³Ó*?Ñ?Ñ@ˆØ”4˜˜1“:œe¤H¨Q°£NÓ3Ñ3Ñ4ˆØ”U˜2¤¨¨A£Ð/°°A±°a±Ó8Ñ8¸3ÄÀrÌHÐUVÐXYËNÐK[Ð]^Ð`aÑ]aÐbcÑ]cÓAdÑ;dÑdÐdr:   c                 ó^  • U R                   S   nUR                  n[        U5      S:X  Ga  UR                  5       n[	        SU/S9n[	        SU/S9n[	        SU/S9n[	        SU/S9nUR                  XVXH-  -  U-  -  5      n	U	b§  X—   nSU-  R                  (       aŽ  X•   nX–   nX˜   nXg-  XHU-  -  -  XdU-  -  U-  -  n
XVU-  -  XHU-  -  -  n[        R                  U
[        R                  -   [        U5      -  U
[        R                  -
  [        S5      -  [        U5      -  -   -  $ g g g rë  )r3   rï  rÔ  rð  r   rñ  r]   r   r    r†   rÐ  r    r  ró  s               r6   ro   Úairyaiprime._eval_expand_func>  s=  € Ø�i‰i˜‰lˆØ× Ñ ˆäˆu‹:˜Œ?Ø—	‘	“ˆAÜ�S 1 #Ñ&ˆAÜ�S 1 #Ñ&ˆAÜ�S 1 #Ñ&ˆAÜ�S 1 #Ñ&ˆAØ—	‘	˜!˜q™t™V a™K™-Ó(ˆAØ‰}Ø‘D�ð
 �a‘C×#×#Ø™�AØ™�AØ™�AØ™$  q¡S¡™/¨a°Q±$©h¸©]Ñ:�BØ A¡™X¨¨a©C©Ñ0�FÜŸ6™6 b¬1¯5©5¡j´+¸fÓ2EÑ%EÈÌaÏeÉeÉÔUYÐZ[ÓU\ÑH\Ô]hÐioÓ]pÑHpÑ%pÑqÐqð $ð ð r:   rA   Nrù  ©r{   r|   r}   r~   r   rû  rü  r�   rF   rP   rh  r×   r™   rè  ro   r‚   rA   r:   r6   rÐ  rÐ  »  sK   † ñOðb €EØ€JàñOó ðOô5ò,òBò
Jòeõ
rr:   rÐ  c                   óX   • \ rS rSrSrSrSr\S 5       rSS jr	S r
S rS	 rS
 rS rSrg)r  iX  aR  
The derivative $\operatorname{Bi}^\prime$ of the Airy function of the first
kind.

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

The Airy function $\operatorname{Bi}^\prime(z)$ is defined to be the
function

.. math::
    \operatorname{Bi}^\prime(z) := \frac{\mathrm{d} \operatorname{Bi}(z)}{\mathrm{d} z}.

Examples
========

Create an Airy function object:

>>> from sympy import airybiprime
>>> from sympy.abc import z

>>> airybiprime(z)
airybiprime(z)

Several special values are known:

>>> airybiprime(0)
3**(1/6)/gamma(1/3)
>>> from sympy import oo
>>> airybiprime(oo)
oo
>>> airybiprime(-oo)
0

The Airy function obeys the mirror symmetry:

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

Differentiation with respect to $z$ is supported:

>>> from sympy import diff
>>> diff(airybiprime(z), z)
z*airybi(z)
>>> diff(airybiprime(z), z, 2)
z*airybiprime(z) + airybi(z)

Series expansion is also supported:

>>> from sympy import series
>>> series(airybiprime(z), z, 0, 3)
3**(1/6)/gamma(1/3) + 3**(5/6)*z**2/(6*gamma(2/3)) + O(z**3)

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

>>> airybiprime(-2).evalf(50)
0.27879516692116952268509756941098324140300059345163

Rewrite $\operatorname{Bi}^\prime(z)$ in terms of hypergeometric functions:

>>> from sympy import hyper
>>> airybiprime(z).rewrite(hyper)
3**(5/6)*z**2*hyper((), (5/3,), z**3/9)/(6*gamma(2/3)) + 3**(1/6)*hyper((), (1/3,), z**3/9)/gamma(1/3)

See Also
========

airyai: Airy function of the first kind.
airybi: Airy function of the second kind.
airyaiprime: Derivative of the Airy function of the first kind.

References
==========

.. [1] https://en.wikipedia.org/wiki/Airy_function
.. [2] https://dlmf.nist.gov/9
.. [3] https://encyclopediaofmath.org/wiki/Airy_functions
.. [4] https://mathworld.wolfram.com/AiryFunctions.html

r<   Tc                 óÐ  • UR                   (       aŸ  U[        R                  L a  [        R                  $ U[        R                  L a  [        R                  $ U[        R                  L a  [        R
                  $ UR                  (       a%  S[        SS5      -  [        [        SS5      5      -  $ UR                  (       a%  S[        SS5      -  [        [        SS5      5      -  $ g )Nrä   r<   r   )	rË  r   rŠ   r‹   rŒ   r‡   re   r   r'   rÌ  s     r6   rF   Úairybiprime.eval¯  sŸ   € à�=�=Ø”a—e‘eŠ|Ü—u‘u�ØœŸ
™
Ò"Ü—z‘zÐ!Øœ×*Ñ*Ò*Ü—v‘v�Ø——Øœ( 1 a›.Ñ(¬5´¸!¸Q³Ó+@Ñ@Ð@à�;�;Ø”h˜q !“nÑ$¤u¬X°a¸«^Ó'<Ñ<Ð<ð r:   c                 ót   • US:X  a(  U R                   S   [        U R                   S   5      -  $ [        X5      erÏ  )r3   rò  r
   rN   s     r6   rP   Úairybiprime.fdiff¿  r  r:   c                 óà   • U R                   S   R                  U5      n[        U5         [        R                  " USS9nS S S 5        [
        R                  " WU5      $ ! , (       d  f       N%= fr  )r3   rª  r-   r,   rò  r   r©  r  s       r6   rh  Úairybiprime._eval_evalfÅ  r  r  c                 óÖ   • [        SS5      nU[        U* [        SS5      5      -  n[        U5      R                  (       a)  U* [	        S5      -  [        U* U5      [        X45      -   -  $ g r  rÛ  r   s        r6   r×   Ú$airybiprime._eval_rewrite_as_besseljË  s^   € Ü�a˜‹^ˆØ”�a�Rœ ! Q›Ó(Ñ(ˆÜˆa‹5××Ø�2”d˜1“g‘:¤¨"¨¨a£´7¸2³>Ñ!AÑBÐBð r:   c                 ó®  • [        SS5      n[        SS5      nU[        U[        SS5      5      -  n[        U5      R                  (       a(  U[	        S5      -  [        U* U5      [        XE5      -   -  $ [        U[        SS5      5      n[        XT5      n[        XT* 5      n[	        U5      U[        U* XE-  5      -  US-  U-  [        XDU-  5      -  -   -  $ rÚ  rá  r
  s           r6   r™   Ú$airybiprime._eval_rewrite_as_besseliÑ  sÀ   € Ü�a˜‹^ˆÜ�a˜‹^ˆØ”�Qœ  A›Ó'Ñ'ˆÜˆa‹5××Ø”T˜!“W‘9¤¨¨¨Q£´'¸"³.Ñ @ÑAÐAä�A”x  1“~Ó&ˆAÜ�A“
ˆAÜ�A�s“ˆAÜ˜“8˜q¤¨"¨¨b©dÓ!3Ñ3°a¸±d¸1±f¼WÀRÈAÉÓ=NÑ6NÑNÑOÐOr:   c           	      ó"  • US-  S[        SS5      -  [        [        SS5      5      -  -  n[        SS5      [        [        SS5      5      -  nU[        / [        SS5      /US-  S-  5      -  U[        / [        SS5      /US-  S-  5      -  -   $ )NrJ   rä   r   r<   r%  rä  )r!   r'   r   r*   rå  s        r6   rè  Ú"airybiprime._eval_rewrite_as_hyperÝ  s•   € Ø�‰d�aœ˜Q ›
‘l¤5¬°!°Q«Ó#8Ñ8Ñ9ˆÜ�1�a‹jœ5¤¨!¨Q£Ó0Ñ0ˆØ”U˜2¤¨¨A£Ð/°°A±°a±Ó8Ñ8¸3ÄÀrÌHÐUVÐXYËNÐK[Ð]^Ð`aÑ]aÐbcÑ]cÓAdÑ;dÑdÐdr:   c                 ó^  • U R                   S   nUR                  n[        U5      S:X  Ga  UR                  5       n[	        SU/S9n[	        SU/S9n[	        SU/S9n[	        SU/S9nUR                  XVXH-  -  U-  -  5      n	U	b§  X—   nSU-  R                  (       aŽ  X•   nX–   nX˜   nXg-  XHU-  -  -  XdU-  -  U-  -  n
XVU-  -  XHU-  -  -  n[        R                  [        S5      U
[        R                  -
  -  [        U5      -  U
[        R                  -   [        U5      -  -   -  $ g g g rë  )r3   rï  rÔ  rð  r   rñ  r]   r   r    r    r†   rÐ  r  ró  s               r6   ro   Úairybiprime._eval_expand_funcâ  s?  € Ø�i‰i˜‰lˆØ× Ñ ˆäˆu‹:˜Œ?Ø—	‘	“ˆAÜ�S 1 #Ñ&ˆAÜ�S 1 #Ñ&ˆAÜ�S 1 #Ñ&ˆAÜ�S 1 #Ñ&ˆAØ—	‘	˜!˜q™t™V a™K™-Ó(ˆAØ‰}Ø‘D�ð
 �a‘C×#×#Ø™�AØ™�AØ™�AØ™$  q¡S¡™/¨a°Q±$©h¸©]Ñ:�BØ A¡™X¨¨a©C©Ñ0�FÜŸ6™6¤T¨!£W¨b´1·5±5©jÑ%9¼+ÀfÓ:MÑ%MÐQSÔVW×V[ÑV[ÑQ[Ô]hÐioÓ]pÑPpÑ%pÑqÐqð $ð ð r:   rA   Nrù  r)  rA   r:   r6   r  r  X  sI   † ñQðf €EØ€Jàñ=ó ð=ô5ò,òCò
Pòeõ
rr:   r  c                   óJ   • \ rS rSrSr\S 5       rSS jrS rS r	S r
S rS	rg
)Úmarcumqiü  a  
The Marcum Q-function.

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

The Marcum Q-function is defined by the meromorphic continuation of

.. math::
    Q_m(a, b) = a^{- m + 1} \int_{b}^{\infty} x^{m} e^{- \frac{a^{2}}{2} - \frac{x^{2}}{2}} I_{m - 1}\left(a x\right)\, dx

Examples
========

>>> from sympy import marcumq
>>> from sympy.abc import m, a, b
>>> marcumq(m, a, b)
marcumq(m, a, b)

Special values:

>>> marcumq(m, 0, b)
uppergamma(m, b**2/2)/gamma(m)
>>> marcumq(0, 0, 0)
0
>>> marcumq(0, a, 0)
1 - exp(-a**2/2)
>>> marcumq(1, a, a)
1/2 + exp(-a**2)*besseli(0, a**2)/2
>>> marcumq(2, a, a)
1/2 + exp(-a**2)*besseli(0, a**2)/2 + exp(-a**2)*besseli(1, a**2)

Differentiation with respect to $a$ and $b$ is supported:

>>> from sympy import diff
>>> diff(marcumq(m, a, b), a)
a*(-marcumq(m, a, b) + marcumq(m + 1, a, b))
>>> diff(marcumq(m, a, b), b)
-a**(1 - m)*b**m*exp(-a**2/2 - b**2/2)*besseli(m - 1, a*b)

References
==========

.. [1] https://en.wikipedia.org/wiki/Marcum_Q-function
.. [2] https://mathworld.wolfram.com/MarcumQ-Function.html

c                 óR  • U[         R                  L aa  U[         R                  L a#  U[         R                  L a  [         R                  $ [        XS-  [         R                  -  5      [	        U5      -  $ U[         R                  L a8  U[         R                  L a%  SS[        US-  [         R                  -  5      -  -
  $ X#:X  a­  U[         R                  L a3  S[        US-  * 5      [        SUS-  5      -  -   [         R                  -  $ US:X  aa  [         R                  [         R                  [        US-  * 5      -  [        SUS-  5      -  -   [        US-  * 5      [        SUS-  5      -  -   $ UR                  (       a]  UR                  (       a!  UR                  (       a  [         R                  $ [        XS-  [         R                  -  5      [	        U5      -  $ UR                  (       a7  UR                  (       a%  SS[        US-  [         R                  -  5      -  -
  $ g g )NrJ   r<   r   )	r   r‡   r)   r    r'   r   r†   r`   re   )rC   rî  rh   rñ   s       r6   rF   Úmarcumq.eval-  s�  € à”—‘Š;Ø”A—F‘FŠ{˜q¤A§F¡Fš{Ü—v‘v�Ü˜a A¡¬¯©¡Ó/´%¸³(Ñ:Ð:à”—‘Š;˜1¤§¡š;Ø�qœ3˜q !™t¤a§f¡f™}Ó-Ñ-Ñ-Ð-à‹6Ø”A—E‘EŠzØœC  A¡ ›J¬°°A°q±DÓ)9Ñ9Ñ9¼1¿6¹6ÑAÐAØ�A‹vÜ—v‘v¤§¡¬¨a°©d¨U«Ñ 3´g¸aÀÀAÁÓ6FÑ FÑFÌÈaÐQRÉdÈUËÔV]Ð^_ÐabÐdeÑaeÓVfÑIfÑfÐfà�9�9Ø�y�y˜QŸYŸYÜ—v‘v�Ü˜a A¡¤a§f¡f¡Ó-´°a³Ñ8Ð8à�9�9˜ŸŸØ�qœ3˜q !™t¤A§F¡F™{Ó+Ñ+Ñ+Ð+ð #ˆ9r:   c                 óþ   • U R                   u  p#nUS:X  a   U[        X#U5      * [        SU-   X45      -   -  $ US:X  a8  XB-  * X2S-
  -  -  [        US-  US-  -   * S-  5      -  [        US-
  X4-  5      -  $ [	        X5      e)NrJ   r<   rä   )r3   r:  r   r`   r
   )r5   rO   rî  rh   rñ   s        r6   rP   Úmarcumq.fdiffE  s‘   € Ø—)‘)‰ˆˆaØ�q‹=Øœ  qÓ)Ð)¬G°A°a±C¸Ó,>Ñ>Ñ?Ð?Ø˜‹]Ø‘T�E˜A !¡™HÑ$¬¨a°©d°Q¸±T©k¨N¸1Ñ,<Ó(=Ñ=ÄÈÈ!ÉÈQÉSÓ@QÑQÐQä$ TÓ4Ð4r:   c           	      ó  • SSK Jn  UR                  S[        [	        S5      R
                  5      5      nUSU-
  -  U" Xa-  [        US-  US-  -   * S-  5      -  [        US-
  X&-  5      -  Xc[        R                  /5      -  $ )Nr   )ÚIntegralrg   r<   rJ   )
Úsympy.integrals.integralsr@  Úgetr   r   Únamer   r`   r   r‹   )r5   rî  rh   rñ   rw   r@  rg   s          r6   Ú_eval_rewrite_as_IntegralÚ!marcumq._eval_rewrite_as_IntegralN  s„   € Ý6Ø�J‰J�sœEÔ"7¸Ó"<×"AÑ"AÓBÓCˆØ�Q˜‘U‰|Ù˜™œs Q¨¡T¨A¨q©D¡[ >°!Ñ#3Ó4Ñ4´w¸qÀ¹sÀAÁCÓ7HÑHÈ1ÔQR×Q[ÑQ[ÐJ\Ó]ñ^ð 	^r:   c           	      óØ   • SSK Jn  UR                  S[        S5      5      n[	        US-  US-  -   * S-  5      U" X#-  U-  [        XbU-  5      -  USU-
  [        R                  /5      -  $ )Nr   )ÚSumrÎ   rJ   r<   )Úsympy.concrete.summationsrG  rB  r   r   r`   r   r‹   )r5   rî  rh   rñ   rw   rG  rÎ   s          r6   Ú_eval_rewrite_as_SumÚmarcumq._eval_rewrite_as_SumT  sh   € Ý1Ø�J‰J�sœE #›JÓ'ˆÜ�Q˜‘T˜A˜q™D‘[�> AÑ%Ó&©¨a©c°A©X¼ÀÀQÁ3»Ñ-GÈ!ÈQÈqÉSÔRS×R\ÑR\ÐI]Ó)^Ñ^Ð^r:   c                 ód  ^• TU:X  a©  US:X  a%  S[        TS-  * 5      [        STS-  5      -  -   S-  $ UR                  (       al  US:¼  ae  [        U4S j[	        SU5       5       5      n[
        R                  [        TS-  * 5      [        STS-  5      -  S-  -   [        TS-  * 5      U-  -   $ g g g )Nr<   rJ   r   c              3   óB   >#   • U  H  n[        UTS -  5      v •  M     g7f)rJ   N)r`   )Ú.0r³  rh   s     €r6   Ú	<genexpr>Ú3marcumq._eval_rewrite_as_besseli.<locals>.<genexpr>^  s   øé € Ð>²+¨Qœ  1 a¡4×(Ð(²+ùs   ƒ)r   r`   rP  ÚsumrÄ   r   r    )r5   rî  rh   rñ   rw   rÍ   s     `   r6   r™   Ú marcumq._eval_rewrite_as_besseliY  s¬   ø€ Ø�‹6Ø�A‹vØœC  A¡ ›J¬°°A°q±DÓ)9Ñ9Ñ9¸QÑ>Ð>Ø�|�|  Q£ÜÔ>´%¸¸1´+Ó>Ó>�Ü—v‘v¤ Q¨¡T E£
¬W°Q¸¸1¹Ó-=Ñ =ÀÑ AÑAÄCÈÈAÉÈÃJÐQRÁNÑRÐRð !'ˆ|ð r:   c                 óH   • [        S U R                   5       5      (       a  gg )Nc              3   ó8   #   • U  H  oR                   v •  M     g 7fr@   )re   )rM  r®   s     r6   rN  Ú(marcumq._eval_is_zero.<locals>.<genexpr>b  s   é € Ð0¢i˜s�{Ž{¢iùs   ‚T)Úallr3   r4   s    r6   Ú_eval_is_zeroÚmarcumq._eval_is_zeroa  s   € ÜÑ0 d§i¢iÓ0×0Ñ0Øð 1r:   rA   Nrz   )r{   r|   r}   r~   r   r�   rF   rP   rD  rI  r™   rV  r‚   rA   r:   r6   r:  r:  ü  s8   † ñ.ð` ñ,ó ð,ô.5ò^ò_ò
Sõr:   r:  c                   óB   ^ • \ rS rSrSrU 4S jrS rSU 4S jjrSrU =r	$ )rú   ie  ze
Helper function to make the $\mathrm{besseli}(nu, z)$
function tractable for the Gruntz algorithm.

c           
      ó  >• SSK Jn  SSKJn  US   nU[        R
                  [        R                  4;   a½  U R                  u  p‰[        U5       V
s/ s H^  n
U" [        SU-  S-
  S5      U
5      U" [        SU-  S-   S5      U
5      -  SU
-  U	[        SU
-  S-   S5      -  -  [        U
5      -  -  PM`     nn
[        [        S-  5      [        U6 -  U" SU	[        SU-  S-   S5      -  -  U5      -   $ [        TU ]=  XX45      $ s  sn
f r  ©r  r   r¿   r¾   r   r‹   rŒ   r3   rÄ   r   r   r    r   r   r«   r  ©r5   r“   r  rg   r¦   r   r¾   r  rD   rE   rÎ   r±  rL   s               €r6   r  Ú_besseli._eval_aseriesl  s  ø€ ÝLÝ,Ø�a‘ˆà”Q—Z‘Z¤×!3Ñ!3Ð4Ó4Ø—I‘I‰EˆBäkpÐqrÔksóuÚksÐfgñ #¤8¨A¨b©D°1©H°aÓ#8¸!Ó<¹_Ü˜Q˜r™T A™X qÓ)¨1ó>.ñ .Ø12°a±¸¼XÀaÈÁcÈAÁgÈqÓ=QÑ9RÑ0RÔS\Ð]^ÓS_Ñ0_ôaÙksð ð uäœ˜A™“<¤ a Ñ)©E°!°A¼ÀÀ1ÁÀqÁÈ!Ó8LÑ4MÑ2MÈqÓ,QÑQÐQä‰wÑ$ Q¨qÓ7Ð7ùò	uó   ÁA%Dc                 ó2   • [        U* 5      [        X5      -  $ r@   )r   r`   r˜   s       r6   Ú_eval_rewrite_as_intractableÚ%_besseli._eval_rewrite_as_intractabley  s   € Ü�A�2‹w”w˜r“~Ñ%Ð%r:   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      $ r¸  ©r3   Úlimitre   r_  rÂ   r«   ©r5   rg   r“   r¦   r§   Úx0rr   rL   s          €r6   rÂ   Ú_besseli._eval_nseries|  ó[   ø€ Ø�Y‰Y�q‰\×Ñ  1Ó%ˆØ�:�:Ø×1Ò1°4·9±9Ð=ˆAØ—?‘? 1¨Ó.Ð.Ü‰wÑ$ Q¨4Ó0Ð0r:   rA   rÐ   ©
r{   r|   r}   r~   r   r  r_  rÂ   r‚   rÑ   rÒ   s   @r6   rú   rú   e  s   ø† ñõ8ò&÷1õ 1r:   rú   c                   óB   ^ • \ rS rSrSrU 4S jrS rSU 4S jjrSrU =r	$ )r'  i„  ze
Helper function to make the $\mathrm{besselk}(nu, z)$
function tractable for the Gruntz algorithm.

c           
      ó  >• SSK Jn  SSKJn  US   nU[        R
                  [        R                  4;   a½  U R                  u  p‰[        U5       V
s/ s H^  n
U" [        SU-  S-
  S5      U
5      U" [        SU-  S-   S5      U
5      -  SU
-  U	[        SU
-  S-   S5      -  -  [        U
5      -  -  PM`     nn
[        [        S-  5      [        U6 -  U" SU	[        SU-  S-   S5      -  -  U5      -   $ [        TU ]=  XX45      $ s  sn
f r3  rZ  r[  s               €r6   r  Ú_besselk._eval_aseries‹  s  ø€ ÝLÝ,Ø�a‘ˆà”Q—Z‘Z¤×!3Ñ!3Ð4Ó4Ø—I‘I‰EˆBälqÐrsÔltóvÚltÐghñ #¤8¨A¨b©D°1©H°aÓ#8¸!Ó<¹_Ü˜Q˜r™T A™X qÓ)¨1ó>.ñ .Ø13°q±	¸!¼hÀqÈÁsÈQÁwÐPQÓ>RÑ:SÑ0SÔT]Ð^_ÓT`Ñ0`ôbÙltð ð väœ˜A™“<¤ a Ñ)©E°!°A¼ÀÀ1ÁÀqÁÈ!Ó8LÑ4MÑ2MÈqÓ,QÑQÐQä‰wÑ$ Q¨qÓ7Ð7ùò	vr]  c                 ó0   • [        U5      [        X5      -  $ r@   )r   r  r˜   s       r6   r_  Ú%_besselk._eval_rewrite_as_intractable˜  s   € Ü�1‹v”g˜b“nÑ$Ð$r:   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      $ r¸  rb  rd  s          €r6   rÂ   Ú_besselk._eval_nseries›  rg  r:   rA   rÐ   rh  rÒ   s   @r6   r'  r'  „  s   ø† ñõ8ò%÷1õ 1r:   r'  N)r–  é   )XÚ	functoolsr   Ú
sympy.corer   Úsympy.core.addr   Úsympy.core.cacher   Úsympy.core.exprr   Úsympy.core.functionr	   r
   r   Úsympy.core.logicr   r   Úsympy.core.numbersr   r   r   Úsympy.core.powerr   Úsympy.core.symbolr   r   r   Úsympy.core.sympifyr   r  r   r   Ú(sympy.functions.elementary.trigonometricr   r   r   r   Ú#sympy.functions.elementary.integersr   Ú&sympy.functions.elementary.exponentialr   r   Ú(sympy.functions.elementary.miscellaneousr   r    r!   Ú$sympy.functions.elementary.complexesr"   r#   r$   r%   r&   Ú'sympy.functions.special.gamma_functionsr'   r(   r)   Úsympy.functions.special.hyperr*   Úsympy.polys.orthopolysr+   r§  r,   r-   r/   r_   rœ   r`   r  r7  r9  rE  rG  rW  rY  rc   rd   ry  ra   rb   r´  r¶  rÉ  rò  rÐ  r  r:  rú   r'  rA   r:   r6   Ú<module>r„     s¨  ðÝ å Ý Ý $Ý  ß MÑ Mß 0ß .Ñ .Ý  ß @Ñ @Ý &ß Oß GÓ GÝ 7ß ;ß EÑ Eß VÕ Vß NÑ NÝ /Ý 6ç ôC �ô C ôLmDˆjô mDô`YDˆjô YDôxf8ˆjô f8ôR~8ˆjô ~8ôB+Bˆjô +Bô\,Bˆjô ,Bò^ô2˜*ô 2ò8Jò
.ôU;Ð	ô U;ôp?;Ð	ô ?;ôD6;Ð-ô 6;ôr5-Ð
ô 5-ôp5-Ð
ô 5-ôpQôh#ˆô #ô6ihˆXô ihôXnhˆXô nhôbZr�(ô Zrôzar�(ô arôHgˆoô gôR1ˆô 1ô>1ˆõ 1r:   