U
    —9%e…  ã                   @   s˜  d dl mZ d dlmZ d dlmZmZ d dlmZm	Z	m
Z
mZ d dlmZ d dlmZmZ d dlmZmZ d dlmZmZmZ d d	lmZmZ d d
lmZ d dlmZmZ d dl m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+ d dl,m-Z-m.Z. d dl/m0Z0 d dl1m2Z2 d dl3m4Z4 d dl5m6Z6 d dl m7Z7m8Z8m9Z9m:Z:m;Z; d dl<m=Z>m?Z@mAZBmCZC d dlDmEZE d dlFmGZGmHZH d dlImJZJmKZKmLZLmMZM eCƒ ZNdd„ ZOdd„ ZPdd„ ZQdd„ ZRdd „ ZSd!d"„ ZTd#d$„ ZUd%d&„ ZVd'd(„ ZWd)d*„ ZXd+d,„ ZYd-d.„ ZZd/d0„ Z[eHd1d2„ ƒZ\d3d4„ Z]d5d6„ Z^d7d8„ Z_d9d:„ Z`d;d<„ ZadYd>d?„Zbd@dA„ ZcdBdC„ ZddDdE„ ZedFdG„ ZfdHdI„ ZgdJdK„ ZhdLdM„ ZidNdO„ ZjdPdQ„ ZkdRdS„ ZldTdU„ ZmdVdW„ ZndXS )Zé    )Úproduct)ÚSum)ÚdiffÚexpand_func)ÚIÚRationalÚooÚpi)ÚS)ÚSymbolÚsymbols)Ú	conjugateÚ
polar_lift)ÚexpÚ	exp_polarÚlog)ÚcoshÚsinh)Úsqrt)ÚcosÚsin)ÚbesseliÚbesseljÚbesselkÚbesselyÚhankel1Úhankel2Úhn1Úhn2ÚjnÚjn_zerosÚyn)ÚgammaÚ
uppergamma)Úhyper)ÚIntegral)ÚO)Úseries)ÚairyaiÚairybiÚairyaiprimeÚairybiprimeÚmarcumq)Úrandom_complex_numberÚverify_numericallyÚtest_derivative_numericallyÚ_randint)Ú
besselsimp)ÚraisesÚslow)ÚzÚnÚkÚxc                  C   s\   t tttttfD ]} t| tƒ tƒtƒst	‚qt
tttfD ]} t| tddƒtƒtƒs8t	‚q8d S )Niöÿÿÿé
   )r   r   r   r   r   r   ÚtdÚrandcplxr4   ÚAssertionErrorr   r!   r   r   Úrandint©Úf© r?   úh/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/sympy/functions/special/tests/test_bessel.pyÚtest_bessel_rand!   s    rA   c                      sB   t tttttttfD ](‰ tt	‡ fdd„ƒ tt	‡ fdd„ƒ qd S )Nc                      s   ˆ dƒS )Né   r?   r?   r=   r?   r@   Ú<lambda>+   ó    z'test_bessel_twoinputs.<locals>.<lambda>c                      s   ˆ dddƒS )NrB   é   é   r?   r?   r=   r?   r@   rC   ,   rD   )
r   r   r   r   r   r   r   r!   r2   Ú	TypeErrorr?   r?   r=   r@   Útest_bessel_twoinputs)   s    rH   c                   C   s”   t dtƒ t¡dkst‚t dttƒƒ t¡td ks8t‚t ddttƒ ƒ t¡ttƒks\t‚t ttƒtt   t¡ddt ttd ƒ  kst‚d S ©Nr   rB   rE   )r   r7   Úas_leading_termr;   r   r   r4   r"   r?   r?   r?   r@   Útest_besselj_leading_term/   s     $rK   c                   C   sŽ   t dtƒ t¡dttƒ dtdƒ  dtj  t ks:t‚t dttƒƒ t¡dtt  ks^t‚t ddt	tƒ ƒ t¡dtt	tƒ  ksŠt‚d S )Nr   rE   rB   éþÿÿÿéÿÿÿÿ)
r   r7   rJ   r   r
   Ú
EulerGammar	   r;   r   r   r?   r?   r?   r@   Útest_bessely_leading_term8   s    :$rO   c                   C   s`   t dtƒ t¡dkst‚t dttƒƒ t¡td ks8t‚t ddttƒ ƒ t¡ttƒks\t‚d S rI   )r   r7   rJ   r;   r   r   r?   r?   r?   r@   Útest_besseli_leading_term>   s     rP   c                   C   s|   t dtƒ t¡ttƒ tj tdƒ ks,t‚t dttƒƒ t¡dt ksLt‚t ddttƒ ƒ t¡ddttƒ  ksxt‚d S )Nr   rE   rB   )	r   r7   rJ   r   r
   rN   r;   r   r   r?   r?   r?   r@   Útest_besselk_leading_termD   s    , rQ   c                   C   sP  t dtƒ t¡dtd d  td d  ttd ƒ ks<t‚t dtd ƒ t¡dtd d  td	 d  ttd ƒ ks|t‚t dtd t ƒ t¡dtd d  td
 d  dtd  d  td d  ttd ƒ ksÜt‚t dttƒt ƒjtdddtd  dtd  d  dtd
  d  ttd
dƒ d  ttddƒ d  dttddƒ  d  ttd ƒ kspt‚t dtdt  ƒ t¡dtd d  td
 d  dtd  d  dtd  d  ttd ƒ ksÖt‚t dtdt ƒƒ t¡dtd d  td
 d  dtd  d  dtd  d  ttd ƒ ks<t‚t dttƒƒ t¡td dtd
  d  dtd  d  ttd ƒ ksŠt‚t ddttƒ ƒ t¡ttƒttd
dƒ d  ttddƒ d  ttddƒ d  ttddƒ d  ttd dƒ d!  ttd ƒ kst‚t d"ttƒƒjtddt dttƒƒjtddksLt‚d S )#Nr   rB   rE   é   é@   é   çš™™™™™ñ?çš™™™™™@çš™™™™™@rF   é   é   é   ©r5   é×   é 	  é   é   é€  é/   é)   éÀ   é   é`   é0   éI   é€  é   é   é	   é@  é   é€Q rL   )	r   r7   r'   r&   r;   r   r   r   r   r?   r?   r?   r@   Útest_besselj_seriesJ   sZ    <@0ÿ
ÿ
ÿ
4ÿÿÿþ
þ@ÿ
ÿ0ÿÿ
ÿN.ÿÿÿþ
þro   c                  C   s  dt j t dtdƒ t  dttƒ t  } tdtƒjtdd| td ttƒ dt  ddt j  dt   tdƒdt     ttd ttƒ ƒ ksžt‚tdtƒjtdddtt  tttƒt tdƒt  ddt j  dt     td ttƒ dt  t d	ƒd dt j  d
t   tdƒdt     ttd ttƒ ƒ ksRt‚tdtƒjtdddttd   dt  td ttƒdt  tdƒdt   t dƒd dt j  dt     ttd ttƒ ƒ ksÞt‚tdtƒjtdddttd   dtt   tdt   td ttƒdt  tdƒdt   t dƒd dt j  dt     ttd ttƒ ƒ kszt‚tdtd ƒjtdddt j t dtdƒ t  dttƒ t  td dttƒ t ddt j  dt   tdƒdt     ttd ttƒ ƒ kst‚tdtd t ƒjtdd| ddt j  td  dt  td dt     dt t  td ttƒ dt  dt  tdƒdt     td ttƒ t ddt   tdƒt    ttd ttƒ ƒ ksît‚tdtdt  ƒjtdd| dt t  td ttƒ dt  ddt j  dt   tdƒdt   dt    ttd ttƒ ƒ ks|t‚tdtdt ƒƒjtdd| tt  td ttƒ dt  ddt j  dt   tdƒdt   d	dt     ttd ttƒ ƒ ks
t‚tdt	tƒƒjtdddttd  d td    ddt j  td  d td   t  tttƒt tdƒt    td dttƒ dt  ddt   t d	ƒd dt j  d
t   dtdƒ dt     ttd ttƒ ƒ ksøt‚tddt
tƒ ƒjtdddtt
tƒ  t
tƒttƒt ddt j  t    tt dƒd  ttƒ dt  t d	ƒd dt j  dt     tt d	ƒd  ttƒdt  t dƒd dt j  dt     ttd ttƒ ƒ ksât‚tdt	tƒƒjtddtdt	tƒƒjtddkst‚d S )NrE   r   rR   r[   rB   rL   rF   é   rY   rZ   éüÿÿÿiðÿÿÿé   rm   rT   rf   rU   rW   gš™™™™™á¿ri   rM   éùÿÿÿr_   r8   )r
   rN   r	   r   r7   r   r'   r&   r;   r   r   ©Úconstr?   r?   r@   Útest_bessely_series]   sÐ    .*ÿÿÿ
4ÿÿÿÿþ<ÿÿÿ,
ÿ$ÿÿþ"ÿÿÿÿÿþ>0ÿ,þþÿ

ÿ,ÿÿÿþÿ,ÿ
ÿÿþ2&ÿÿBÿþý($ÿÿÿÿþýrv   c                   C   s\  t dtƒ t¡dtd d  td d  ttd ƒ ks<t‚t dtd ƒ t¡dtd d  td	 d  ttd ƒ ks|t‚t dtd t ƒ t¡dtd d  td
 d  dtd  d  td d  ttd ƒ ksÜt‚t dttƒt ƒjtdddtd  dtd  d  dtd
  d  ttd
ƒd  d  ttdƒd  d  dttdƒd   d  ttd ƒ ksvt‚t dtdt  ƒ t¡dtd d  td
 d  dtd  d  dtd  d  ttd ƒ ksÜt‚t dtdt ƒƒ t¡dtd d  td
 d  dtd  d  dtd  d  ttd ƒ ksBt‚t dttƒƒ t¡td td
 d  dtd  d  ttd ƒ ksŒt‚t ddttƒ ƒ t¡ttƒttd
ƒd  d  ttdƒd  d  ttdƒd  d  ttdƒd  d  ttdƒd  d   ttd ƒ ks"t‚t d!ttƒƒjtddt dttƒƒjtddksXt‚d S )"Nr   rB   rE   rR   rS   rT   rU   rV   rW   rF   rd   rY   rZ   r[   éÙ   r]   é   r_   r`   é1   ra   rc   r^   re   rf   rh   ri   rj   rk   rl   rm   rn   rL   )	r   r7   r'   r&   r;   r   r
   r   r   r?   r?   r?   r@   Útest_besseli_series   sN    <@@
ÿ
ÿ
4ÿÿÿÿ
ÿ@ÿ
ÿ@ÿ
ÿJDÿÿÿ
ÿrz   c                  C   sÖ  t dƒtj t tƒ } tdtƒjtdd| td t tƒ d tjd  t dƒd  tdƒd    ttd t tƒ ƒ ks~t‚tdtƒjtdddt tt tƒd t dƒd  tdƒd  tjd    td t tƒd tdƒd	  t dƒd  tjd    ttd t tƒ ƒ kst‚tdtƒjtdddtd  tdƒd  td t tƒ d
 tjd
  t dƒd
  tdƒd    ttd t tƒ ƒ ksšt‚tdtd ƒjtddt dƒtj dt tƒ  td dt tƒ tjd  t dƒd  tdƒd    ttd t tƒ ƒ kst‚tdtd t ƒjtdd| ddtj  td d td d
    t td t tƒ d t dƒd  tdƒd    td t tƒ d tdƒd  t dƒd    ttd t tƒ ƒ ksÜt‚tdtdt  ƒjtdd| t td t tƒ d tdƒd  tjd  t dƒd    ttd t tƒ ƒ ksRt‚tdt dt ƒƒjtdd| td  td t tƒ d tjd  tdƒd  t dƒd    ttd t tƒ ƒ ksÌt‚tddttƒ ƒjtddddttƒ  ttƒt tƒd tdƒd  tj   ttdƒd  t tƒd tdƒd
  tjd    ttdƒd  t tƒd tdƒd  tjd    ttd t tƒ ƒ ksœt‚tdt	tƒƒjtddtdt	tƒƒjtddksÒt‚d S )NrE   r   rR   r[   rB   rF   rZ   rY   rS   rp   é    rU   rW   gš™™™™™Ñ¿r_   ri   rr   é$   rL   )
r   r
   rN   r7   r   r'   r&   r;   r   r   rt   r?   r?   r@   Útest_besselk_series’   sœ    6ÿÿ
0
ÿÿ(ÿÿþ:ÿ
ÿ
ÿÿ"
ÿ
ÿ
ÿÿþ$ÿÿ
ÿ
ÿÿ,þþ2
ÿÿ
ÿÿ$6ÿÿ($ÿ$ÿÿ0þþr}   c                   C   sZ  t ttƒ t¡t td tƒd t td tƒd  ks8t‚tttƒ t¡ttd tƒd ttd tƒd  kspt‚tttƒ t¡ttd tƒd ttd tƒd  ks¨t‚tttƒ t¡ttd tƒ d ttd tƒd  ksât‚tttƒ t¡ttd tƒd ttd tƒd  kst‚t	ttƒ t¡t	td tƒd t	td tƒd  ksVt‚d S )NrB   rE   )
r   r5   r4   r   r;   r   r   r   r   r   r?   r?   r?   r@   Ú	test_diff«   s    888::r~   c                  C   sØ  t ttƒ t¡tdt t ƒtttj tƒ ks4t	‚t
ttƒ t¡tdt t ƒtttj tƒ ksht	‚tttƒ t ¡tt t t d ƒt tttƒt ƒ ks¤t	‚t ttƒ t¡ttt t d ƒtttt ƒt ƒ ksàt	‚tƒ } tt | tƒt | tƒ t¡tƒs
t	‚tt | tƒt | tƒ t
¡tƒs.t	‚tt| tƒt| tƒ t ¡tƒsRt	‚tt| tƒt| tƒ t
¡tƒsvt	‚tt
| tƒt
| tƒ t ¡tƒsšt	‚tt
| tƒt
| tƒ t¡tƒs¾t	‚tt| tƒt| tƒ t ¡tƒsât	‚tt| tƒt| tƒ t¡tƒst	‚tt| tƒt| tƒ t
¡tƒs*t	‚t| tƒt| tƒ t¡ksJt	‚t| tƒt| tƒ t¡ksjt	‚t| tƒt| tƒ t¡ksŠt	‚t| tƒt| tƒ t¡ksªt	‚t| tƒt| tƒ t¡ksÊt	‚t| tƒt| tƒ t¡ksêt	‚| }t t
fD ]F}t|tƒt|tƒ |¡kst	‚t|tƒt|tƒ |¡ksöt	‚qöt|tƒ t ¡tdƒttƒ tdt ƒ t |tj tƒ d ks„t	‚t|tƒ t
¡d|  tdƒ ttƒ tdt ƒ t
| tj tƒ d ksÔt	‚tddd}tddƒ}||fD ]–}t t
fD ]†}t|tƒt|tƒ |¡ks"t	‚t|tƒt|tƒ |¡ksBt	‚t|tƒt|tƒ |¡ksbt	‚t|tƒt|tƒ |¡ksþt	‚qþqòtttttfttt t
fƒD ].\}}t||tƒ||tƒ |¡tƒs¤t	‚q¤d S )	NrE   rB   rM   r5   T©Úintegeréõÿÿÿr8   )r   r5   r4   Úrewriter   r   r	   r
   ÚHalfr;   r   r!   r   r   r   r   r:   Útnr   r   r   r   r<   r   )ÚnuÚorderr>   ÚNÚriÚfuncZrefuncr?   r?   r@   Útest_rewrite´   sT    44&ÿ&ÿ$$$$$$$$$       $FP
   (
ÿrŠ   c                  C   sD  t ttjtƒ t¡ƒtdƒttƒ tt	ƒttƒ  ks:t
‚t ttjtƒ t¡ƒtdƒ ttƒ tt	ƒttƒ  ksvt
‚tttjtƒƒtdƒttƒ tt	ƒttƒ  ksªt
‚tttddƒtƒƒtdƒttƒ tt	ƒttƒ  ksât
‚tttddƒtƒƒtdƒ td ttƒ dt ttƒ  dttƒ   tt	ƒttddƒ   ksHt
‚tttddƒtƒƒtdƒ td ttƒ dt ttƒ  dttƒ   tt	ƒttddƒ   ks®t
‚tttjtƒƒtdƒttƒ  tt	ƒttƒ  ksæt
‚tttddƒtƒƒtdƒttƒ tt	ƒttƒ  ks t
‚tttddƒtƒƒtdƒtd ttƒ dt ttƒ  dttƒ   tt	ƒttddƒ   ks„t
‚tttddƒtƒƒtdƒ td ttƒ dt ttƒ  dttƒ   tt	ƒttddƒ   ksêt
‚tttjtƒƒtdƒttƒ tt	ƒttƒ  ks t
‚tttddƒtƒƒtdƒttƒ tt	ƒttƒ  ksZt
‚tttddƒtƒƒtdƒtd ttƒ dt ttƒ  dttƒ   tt	ƒttddƒ   ks¾t
‚tttddƒtƒƒtdƒtd ttƒ dt ttƒ  dttƒ   tt	ƒttddƒ   ks"t
‚tttjtƒƒtttddƒtƒƒ  krttt	ƒtt ƒ tdƒttƒ  kszn t
‚tttddƒtƒƒtttddƒtƒƒ  krîtdƒtt	ƒ td dt  d  tt ƒ dttddƒ   ksôn t
‚tdddd} t t| d tƒƒt| tƒd	|  d d	|  t| tƒ t t| d
 tƒ  t  ksXt
‚t t| d tƒƒt| tƒ d|  d d|  t| tƒ t t| d
 tƒ  t  ks°t
‚t t| d tƒƒt| tƒd|  d d|  t| tƒ t t| d
 tƒ  t  kst
‚t t| d tƒƒt| tƒ d|  d d|  t| tƒ t t| d
 tƒ  t  ks^t
‚t t| tj tƒ t¡ƒtdƒttƒ tt t	 | tj  d ƒ ttt	 d ƒ t| tttt	 d ƒ ƒ tt	ƒ ksÜt
‚t t| tj tƒ t¡ƒtdƒttƒ t| tƒ tt	ƒ kst
‚tddd}tddd}tddd}ttttfD ]H}|||ƒjdksht
‚||tƒjd ks~t
‚|ttƒjd ksNt
‚qNttfD ]}|||ƒjdks t
‚q ttfD ]}|||ƒjd ksÆt
‚qÆttttfD ]N}t |ttƒƒ|ttddkst
‚t |t tƒƒ|t tddksðt
‚qðd S )NrE   rM   rY   rF   éûÿÿÿr5   T)r€   ÚpositiverL   rB   rR   Úr©ÚrealÚp©rŒ   Úir   F©Úevaluate)r   r   r
   rƒ   r4   r‚   r   r   r   r	   r;   r   r!   r   r1   r   r   r   r   r   r   r   r   r   Úis_extended_realr7   r   )r5   r   r   r’   Úbesselxr?   r?   r@   Útest_expandï   s¦    ÿ ÿ48Jÿ
Jÿ
 ÿ
:Hÿ
Jÿ
6ÿ
Hÿ
Hÿ
ÿ
 ÿÿ
>þ<ÿ
>ÿ
<ÿ
>ÿ
*ÿÿÿÿ
 ÿ
"r—   c                  C   sš  dd„ } t ddddd}ttttfD ]<}tdtddƒ d ƒd }tt||t	ƒƒ||t	ƒƒs$t
‚q$| tt|tƒƒt|d tƒd|d  t|d tƒ t  ƒs¢t
‚| tt| tƒƒt| d tƒd| d  t| d tƒ t  ƒsêt
‚| tt|tƒƒt|d tƒ d|d  t|d tƒ t  ƒs.t
‚| tt| tƒƒt| d tƒ d| d  t| d tƒ t  ƒszt
‚| tt|tƒƒt|d tƒd|d  t|d tƒ t  ƒs¼t
‚| tt| tƒƒt| d tƒd| d  t| d tƒ t  ƒst
‚| tt|tƒƒt|d tƒ d|d  t|d tƒ t  ƒsJt
‚| tt| tƒƒt| d tƒ d| d  t| d tƒ t  ƒs–t
‚d S )	Nc                 S   s   t | |ƒo| |kS ©N)r„   )ÚeqZansr?   r?   r@   Úcheck;  s    ztest_slow_expand.<locals>.checkrB   r   rE   )ÚaÚbÚdÚcr   r8   )r:   r   r   r   r   r
   r<   r„   r1   r4   r;   r   r7   )rš   Zrnr–   rˆ   r?   r?   r@   Útest_slow_expand9  s:     *ÿ0ÿ,ÿ
2ÿ
*ÿ
0ÿ
,ÿ
2ÿrŸ   c                 C   s   t t| |ƒƒS r˜   )r   r   ©r5   r4   r?   r?   r@   ÚmjnY  s    r¡   c                 C   s   t t| |ƒƒS r˜   )r   r!   r    r?   r?   r@   Úmyn]  s    r¢   c                  C   sæ  t dƒ} tddƒdkst‚tddƒdks,t‚tddƒtjks@t‚t| dƒt| dddks\t‚tdtƒdksnt‚tdt ƒdks‚t‚td| ƒt| ƒ|  ksœt‚td| ƒt| ƒ| d  t| ƒ|   ksÆt‚td| ƒd| d  d|   t| ƒ d| d  t| ƒ  kst‚td| ƒd	| d
  d| d   t| ƒ d|  d	| d   t| ƒ  ksRt‚td
| ƒd|  d| d   d| d   t| ƒ d| d
  d| d   t| ƒ  ksªt‚td| ƒd| d  d| d
   d	| d   t| ƒ d|  d| d   d| d   t| ƒ  kst‚td| ƒd|  d| d   d| d   d| d   t| ƒ d| d  d| d
   d| d   t| ƒ  ks~t‚t	tt
| ƒƒtt
| ƒksœt‚tddƒ ¡ tddƒksºt‚ttddƒ d¡gddt  gƒsât‚d S )Nr4   r   rB   rM   Fr“   rE   rF   rX   rR   rT   éi   rY   é-   i—ÿÿÿr8   i±  i¤  i›(  r_   iu  éÒ   ie×ÿÿiì  é   ù       @      @ùÍÌÌÌÌÌ@333333Ó?gM°»’s¹?gM™â¶ê«?)r   r   r;   r
   ÚComplexInfinityr   r¡   r   r   r   r5   Úevalfr™   r   ©r4   r?   r?   r@   Útest_jna  s2    *@L.ÿ2&ÿ:*ÿÿr¬   c                  C   sò   t dƒ} td| ƒt| ƒ |  ks$t‚td| ƒt| ƒ | d  t| ƒ|   ksPt‚td| ƒd| d  d|   t| ƒ d| d  t| ƒ   kst‚ttt| ƒƒtt| ƒks¬t‚tddƒ ¡ tddƒksÈt‚t	tddƒ d¡gd	d
t
  gƒsît‚d S )Nr4   r   rB   rE   rF   r§   r¨   r8   gˆ=;€H¶Ç?gÔLs’Ž?)r   r¢   r   r;   r   r   r!   r5   rª   r™   r   r«   r?   r?   r@   Útest_yn~  s    ,@ÿr­   c                   C   sD   t dƒtdtƒ ¡ kst‚tdtƒdtd  dtd   ks@t‚d S )NrX   rF   rR   rT   rE   )r
   r¢   r	   Zatomsr;   r?   r?   r?   r@   Útest_sympify_ynŒ  s    r®   çíµ ÷Æ°>c                 C   s.   t | |ƒD ]\}}t|| ƒ|k s
 dS q
dS )NFT)ÚzipÚabs)r›   rœ   ZtolÚuÚvr?   r?   r@   r™   ‘  s    r™   c                   C   s   t tddƒddddgƒst‚t tddƒdd	d
dgƒs8t‚t tddƒddddgƒsTt‚t tddƒddddgƒspt‚t tddƒddddgƒsŒt‚d S )Nr   rR   gz ‹üú!	@güÞ¦?û!@g/ö^|Ù"@güÞ¦?û!)@rB   gP5z5@ù@g°¹2¨æ@gî@òèÎ%@gÁr„ä!,@rE   góX32È@g@…#H¥0"@gö#EdX¥(@gÓØ^z/@rF   gÿ¯:r¤ó@gW%‘}Õ$@g,¶IEce+@gæmrì0@gÔ©¢x] @geqÿ‘éh'@g7¨ýÖN.@g©Á4M2@)r™   r    r;   r?   r?   r?   r@   Útest_jn_zeros˜  s
    r´   c                  C   sL  t dddt dƒt dddd  } }}ttfD ] }|ddƒtjksHt‚|d	dƒtjks\t‚|d
dƒtjkspt‚|ddƒtjks„t‚|ddt  dƒtjks t‚|d
t dƒtjks¸t‚|dt dƒtj	ksÐt‚|| dƒtjkrð|| dƒtjksôt‚||dƒtjkr||dƒtjkst‚||dƒtjks.t‚q.t
ddƒtjksHt‚tddƒtjks^t‚t
tfD ]6}|dt dƒtjks„t‚|tdƒtj	ksft‚qftt
fD ]6}||tjƒtjksÂt‚||tjƒtjks¦t‚q¦ttfD ]>}||ttj ƒtjkst‚||ttj ƒtjksæt‚qættfD ]r}|dtƒ|dtƒksLt‚|d
tƒ|dtƒksft‚||  tƒ|| tƒks‚t‚|| tƒ||tƒks.t‚q.tt
fD ]„}|dtƒ|dtƒksÈt‚|d
tƒ|dtƒ ksät‚||  tƒd|  || tƒ kst‚|| tƒd| ||tƒ ksªt‚qªttfD ]6}||t ƒt | t|   ||tƒ ks8t‚q8tdt ƒtdtƒksŒt‚tdt ƒtdtƒ ksªt‚tdt ƒtdtƒksÆt‚tdt ƒtdtƒ ksät‚tdtt ƒtdtƒkst‚tdtt ƒttdtƒ ks$t‚tdtt ƒt tdtƒ ksHt‚d S )Nr5   Tr   Úmr6   F)r€   Úzeror   gÍÌÌÌÌÌ @éýÿÿÿgffffff$ÀrB   rF   rL   rq   rR   rM   rE   )r   r   r   r
   ZOner;   ZZeror©   r   ÚNaNr   ÚNegativeInfinityr   ÚInfinityr4   )r5   rµ   r6   r>   r?   r?   r@   Útest_bessel_eval   sT    &$(  $(4"r»   c                  C   s>   t tttttttfD ]$} | dtj	ƒ| dtj	ddkst
‚qd S )NrB   Fr“   )r   r   r   r   r   r   r!   r   r
   r¸   r;   r=   r?   r?   r@   Útest_bessel_nan×  s    r¼   c                   C   sˆ  t dtƒ td¡dkst‚t dtƒ td¡dks4t‚t dtƒ tt¡dksNt‚t tdƒd tƒ td¡dkspt‚t tdƒd tƒ td¡dks’t‚t tdƒd tƒ tt¡dks´t‚t tdt ƒ td¡dksÒt‚tdtƒ td¡dksìt‚tdtƒ td¡dkst‚tdtƒ td¡dks$t‚tdtƒ td¡dks@t‚tdtƒ td¡dks\t‚tdtƒ td¡dksxt‚tdtƒ td¡dks”t‚t	dtd dt  ƒ td¡dks¼t‚t	dtƒ td¡dksØt‚t
ddƒ td	¡dksôt‚td
dtd  d ƒ td¡dkst‚tddt ƒ td¡dks<t‚td	dt d ƒ td¡dks`t‚tdtd d ƒ td
¡dks„t‚d S )NrE   rB   Tr   FrF   rm   rR   rY   rT   r_   rk   rp   )r   r7   Zis_meromorphicr;   r   r
   r   r   r   r   r   r   r   r   r!   r?   r?   r?   r@   Útest_meromorphicÝ  s*    """(( $r½   c                  C   sd  t dƒ} t ddd}t ddd}t ddd}t d	dd
}ttttttfD ]d}|| dƒ ¡ |t| ƒdƒkslt‚|| |ƒ ¡ |t| ƒ|ƒksŒt‚|| |ƒ ¡ |t| ƒ|ƒksHt‚qHt	dd}ttttfD ]Þ}|| dt
 ƒ ¡ |t| ƒdt
 ƒksðt‚|| dƒ ¡ |t| ƒdƒkst‚|| dƒ ¡ |t| ƒdƒks4t‚|| |ƒ ¡ |t| ƒt|ƒƒksZt‚|| |ƒ ¡ |t| ƒ|ƒks|t‚t|| |ƒ ¡ |t| ƒt|ƒƒƒsÄt‚qÄt| dt
 ƒ ¡ tt| ƒdt
 ƒksÎt‚t| dƒ ¡ tt| ƒdƒksðt‚t| dƒ ¡ tt| ƒdƒkst‚t| |ƒ ¡ tt| ƒ|ƒks4t‚t| |ƒ ¡ tt| ƒt|ƒƒksZt‚tt| |ƒ ¡ tt| ƒt|ƒƒƒs‚t‚t| dt
 ƒ ¡ tt| ƒdt
 ƒks¬t‚t| dƒ ¡ tt| ƒdƒksÎt‚t| dƒ ¡ tt| ƒdƒksðt‚t| |ƒ ¡ tt| ƒ|ƒkst‚t| |ƒ ¡ tt| ƒt|ƒƒks8t‚tt| |ƒ ¡ tt| ƒt|ƒƒƒs`t‚d S )Nr5   r4   F)Zextended_realr7   TÚyr‘   Út©ÚnegativerM   g      à?)rœ   rB   r   )r   r   r   r   r   r   r   r   r;   r:   r   r„   )r5   r4   r7   r¾   r¿   r>   Zrzr?   r?   r@   Útest_conjugateõ  s:      "
(""&"(*"""&(*"""&rÂ   c                  C   s¼  t ttƒtƒt ttƒkst‚tttƒtƒtttƒks8t‚tddd} t | tdt t	 ƒt ƒt | tƒkslt‚t | ttƒƒt | tƒksˆt‚t| tdt t	 ƒt ƒt| tƒks°t‚t| ttƒƒt| tƒksÌt‚dd„ }tdƒ}t |tdt t	 ƒt ƒt
dt t	 | ƒt |tƒ kst‚t|tdt t	 ƒt ƒt
dt t	 | ƒt|tƒ ksXt‚|t dƒsht‚|t tƒsxt‚|t t	ƒsˆt‚|tdƒs˜t‚|ttƒs¨t‚|tt	ƒs¸t‚d S )Nr5   Tr   rE   c                 S   s”   ddl m} |ddƒ}| ||ttt ƒ ƒ| ||tt t ƒ ƒ }d}| || | |t  ƒ| || | |t  ƒ }t| ¡ | ¡  ƒ ¡ dk S )Nr   )ÚuniformrB   rY   gVçž¯Ò<g»½×Ùß|Û=)Úsympy.core.randomrÃ   r   r   r	   r±   r5   )r‰   ÚsrÃ   rž   ÚexprZepsZexpr2r?   r?   r@   r„   $  s    
.0ztest_branching.<locals>.tnr…   )r   r   r6   r7   r;   r   r   r   r	   r   r   )r5   r„   r…   r?   r?   r@   Útest_branching  s"    ((>>rÇ   c                  C   s¶   t dƒ} t ddd}t ddd}tt| ƒƒtt| ƒƒks<t‚t|ƒjsJt‚t|t|  ƒ ¡ t|t|  ƒd t|t|  ƒd  tt|t|  ƒt|t|  ƒ  d fks²t‚d S )Nr4   r7   TrŽ   r¾   rE   )r   r   r(   r;   r•   r   Zas_real_imag)r4   r7   r¾   r?   r?   r@   Útest_airy_base7  s    &&þrÈ   c               
   C   sì  t ddd} t ddd}t ddd}tt| ƒtƒs6t‚td	ƒd
tdd
ƒ d
ttdd
ƒƒ  ksbt‚ttƒd	ksrt‚tt ƒd	ks„t‚tt| ƒ| ƒt| ƒksžt‚t	t| ƒ| d	d
ƒd
tddƒ ttdd
ƒƒ dt
  d
tddƒ |  ttdd
ƒƒ dt
   t| d
 ƒ kst‚t| ƒ t¡d
tdd
ƒ  |  tdtdd
ƒf| d
 d ƒ d
ttdd
ƒƒ  d
tdd
ƒ tdtdd
ƒf| d
 d ƒ d
ttdd
ƒƒ   ks t‚tt| ƒ t¡tƒsºt‚t|ƒ t¡t| ƒttdd
ƒd| td
dƒ  d
 ƒttdd
ƒd| td
dƒ  d
 ƒ  d
 ks$t‚t| ƒ t¡|  ttdd
ƒd| td
dƒ  d
 ƒ d
| td
dƒ tdd
ƒ   | td
dƒ tdd
ƒ ttdd
ƒd| td
dƒ  d
 ƒ d
  ksºt‚t|ƒ t¡t|ƒttdd
ƒd|td
dƒ  d
 ƒttdd
ƒd|td
dƒ  d
 ƒ  d
 kst‚ttdd
| d  tdd
ƒ  ƒƒtd
ƒ d| d tdd
ƒ | tdd
ƒ    tdd
tdd
ƒ  | tdd
ƒ  ƒ d d| d tdd
ƒ | tdd
ƒ   tdd
tdd
ƒ  | tdd
ƒ  ƒ d  ksèt‚d S )Nr4   FrŽ   r¿   TrÀ   r   r‘   r   rF   rB   rE   rY   rT   r?   rR   rk   rM   )r   Ú
isinstancer(   r;   r   r"   r   r   r*   r'   r	   r&   r‚   r$   r   r   r   r   r)   ©r4   r¿   r   r?   r?   r@   Útest_airyaiD  sR    ,Vÿ
@:ÿÿ
*"ÿÿÿ
B<ÿÿ
& ÿÿÿ
 TJÿÿrË   c                  C   sî  t ddd} t ddd}t ddd}tt| ƒtƒs6t‚td	ƒd
tddƒ d
ttdd
ƒƒ  ksbt‚ttƒtksrt‚tt ƒd	ks„t‚tt| ƒ| ƒt| ƒksžt‚t	t| ƒ| d	d
ƒd
tdd
ƒ ttdd
ƒƒ dt
  d
tdd
ƒ |  ttdd
ƒƒ dt
   t| d
 ƒ kst‚t| ƒ t¡d
tddƒ |  tdtdd
ƒf| d
 d ƒ ttdd
ƒƒ d
tddƒ tdtdd
ƒf| d
 d ƒ d
ttdd
ƒƒ   ksšt‚tt| ƒ t¡tƒs´t‚t|ƒ t¡t| ƒttdd
ƒd| td
dƒ  d
 ƒttdd
ƒd| td
dƒ  d
 ƒ  d
 kst‚t| ƒ t¡td
ƒ| ttdd
ƒd| td
dƒ  d
 ƒ | td
dƒ tdd
ƒ  | td
dƒ tdd
ƒ ttdd
ƒd| td
dƒ  d
 ƒ   d
 ks¶t‚t|ƒ t¡td
ƒt|ƒ ttdd
ƒd|td
dƒ  d
 ƒttdd
ƒd|td
dƒ  d
 ƒ  d
 ks"t‚ttdd
| d  tdd
ƒ  ƒƒtd
ƒd| d tdd
ƒ | tdd
ƒ    tdd
tdd
ƒ  | tdd
ƒ  ƒ d d| d tdd
ƒ | tdd
ƒ   tdd
tdd
ƒ  | tdd
ƒ  ƒ d  ksêt‚d S )Nr4   FrŽ   r¿   TrÀ   r   r‘   r   rF   rY   rT   rE   rB   r?   rR   rk   rM   )r   rÉ   r)   r;   r   r"   r   r   r+   r'   r	   r&   r‚   r$   r   r(   r   r   r   rÊ   r?   r?   r@   Útest_airybih  sV    ,Vÿ
::ÿÿ
*"ÿÿÿ
B8ÿÿÿ
. ÿÿÿ
 RJÿÿrÌ   c               
   C   sÜ  t ddd} t ddd}t ddd}tt| ƒtƒs6t‚td	ƒd
tdd
ƒ  d
ttdd
ƒƒ  ksdt‚ttƒd	kstt‚tt| ƒ| ƒ| t| ƒ ks’t‚t	t| ƒ| d	d
ƒd
tdd
ƒ  d
ttdd
ƒƒ  d
tdd
ƒ | d  dttdd
ƒƒ   t
| d
 ƒ ksþt‚t| ƒ t¡d
tdd
ƒ | d  tdtdd
ƒf| d
 d ƒ dttdd
ƒƒ  d
tdd
ƒ tdtdd
ƒf| d
 d ƒ d
ttdd
ƒƒ   ks’t‚tt| ƒ t¡tƒs¬t‚t|ƒ t¡t| ƒttdd
ƒd| td
dƒ  d
 ƒttdd
ƒd| td
dƒ  d
 ƒ  d
 kst‚t| ƒ t¡| d ttdd
ƒd| td
dƒ  d
 ƒ d
| td
dƒ tdd
ƒ   | td
dƒ tdd
ƒ ttdd
ƒd| td
dƒ  d
 ƒ d
  ks®t‚t|ƒ t¡|ttdd
ƒd|td
dƒ  d
 ƒ ttdd
ƒd|td
dƒ  d
 ƒ  d
 kst‚ttdd
| d  tdd
ƒ  ƒƒtd
ƒ| tdd
ƒ | d tdd
ƒ  d  tdd
tdd
ƒ  | tdd
ƒ  ƒ d | tdd
ƒ | d tdd
ƒ  d tdd
tdd
ƒ  | tdd
ƒ  ƒ d  ksØt‚d S )Nr4   FrŽ   r¿   TrÀ   r   r‘   r   rF   rE   rB   rT   r?   rY   rk   rM   rL   )r   rÉ   r*   r;   r   r"   r   r   r(   r'   r&   r‚   r$   r   r   r   r   r+   rÊ   r?   r?   r@   Útest_airyaiprimeŒ  sH    .TÿB:ÿÿ
*"ÿÿÿ
D<ÿÿ
Lÿ
 RJÿÿrÍ   c                  C   sê  t ddd} t ddd}t ddd}tt| ƒtƒs6t‚td	ƒd
tddƒ ttdd
ƒƒ ks^t‚ttƒtksnt‚tt ƒd	ks€t‚tt| ƒ| ƒ| t| ƒ ksžt‚t	t| ƒ| d	d
ƒd
tddƒ ttdd
ƒƒ d
tddƒ | d  dttdd
ƒƒ   t
| d
 ƒ kst‚t| ƒ t¡d
tddƒ | d  tdtdd
ƒf| d
 d ƒ dttdd
ƒƒ  d
tddƒ tdtdd
ƒf| d
 d ƒ ttdd
ƒƒ  ks–t‚tt| ƒ t¡tƒs°t‚t|ƒ t¡t| ƒttdd
ƒd| td
dƒ  d
 ƒttdd
ƒd| td
dƒ  d
 ƒ  d
 kst‚t| ƒ t¡td
ƒ| d ttdd
ƒd| td
dƒ  d
 ƒ | td
dƒ tdd
ƒ  | td
dƒ tdd
ƒ ttdd
ƒd| td
dƒ  d
 ƒ   d
 ks¶t‚t|ƒ t¡td
ƒ| ttdd
ƒd|td
dƒ  d
 ƒttdd
ƒd|td
dƒ  d
 ƒ  d
 kst‚ttdd
| d  tdd
ƒ  ƒƒtd
ƒ| tdd
ƒ | d tdd
ƒ  d  tdd
tdd
ƒ  | tdd
ƒ  ƒ d | tdd
ƒ | d tdd
ƒ  d tdd
tdd
ƒ  | tdd
ƒ  ƒ d  ksæt‚d S )Nr4   FrŽ   r¿   TrÀ   r   r‘   r   rF   rB   rT   rY   rE   r?   rk   rM   rL   )r   rÉ   r+   r;   r   r"   r   r   r)   r'   r&   r‚   r$   r   r(   r   r   r   r*   rÊ   r?   r?   r@   Útest_airybiprime®  sN    (Nÿ
B6ÿÿ
*"ÿÿÿ
F8ÿÿÿ
Rÿ
 RJÿÿrÎ   c                  C   s¢  t dƒ} t dƒ}t dƒ}tdddƒdks,t‚t| d|ƒt| |d d ƒt| ƒ ksVt‚tdddƒdttddƒƒ d ks|t‚td|dƒd	t|d  d ƒ ks¢t‚tdtdƒd	ttd  d ƒ ksÈt‚td	||ƒtj	t|d  ƒt
d|d ƒ d  ksþt‚td||ƒtj	t|d  ƒt
d|d ƒ d  t|d  ƒt
d	|d ƒ  ksRt‚ttd	|d
ƒ|ƒ|td	|d
ƒ td|d
ƒ  ksˆt‚ttdd
|ƒ|ƒ|d  t|d  d tddƒ ƒ t
d	d
| ƒ d
 ksØt‚t dƒ}tdd
dƒjt|dt|d t|d  d tddƒ ƒ t
d	d
| ƒ |dtfƒd
 ks>t‚ttddd
ƒ t¡ d¡gdgƒsft‚t dƒ}tdddƒjt|dtdƒttddƒ| t
|dƒ |dtfƒ ks¶t‚ttd	d
d	ƒ t¡ d¡gdgƒsÞt‚td	||dd t
¡tj	t|d  ƒt
d|d ƒ d  ks t‚td||dd t
¡tj	t|d  ƒt
d|d ƒ d  t|d  ƒt
d	|d ƒ  ks~t‚td
||ƒ t
¡t
d	|d ƒt
d|d ƒ t|d  ƒ tj	 t|d  ƒt
d|d ƒ d  ksæt‚tdddƒ t
¡tdƒt
ddƒ d t
ddƒt
d
dƒ t
ddƒ t
d	dƒ tdƒ  tj	 ksJt‚t| ||ƒ t
¡t| ||ƒksnt‚t dd d!}t|||ƒ t
¡t|||ƒksžt‚d S )"Nrµ   r›   rœ   r   rE   rY   é   içÿÿÿrB   rF   rk   r7   rR   )r7   rL   r8   gZp¤hLé?r6   r·   r‹   rs   )r6   iÛÿÿÿr_   é#   gyÏhÿH§ï?Fr“   rp   iÀÿÿÿrS   Tr   )r   r,   r;   r#   r"   r   r   r	   r
   rƒ   r   r   r‚   r%   r   r™   rª   r   )rµ   r›   rœ   r7   r6   r?   r?   r@   Útest_marcumqÑ  sV    *&&&6T6P@ÿ
ÿ
*ÿ
ÿ
B8ÿ8ÿÿ$.ÿÿ$rÑ   N)r¯   )oÚ	itertoolsr   Zsympy.concrete.summationsr   Zsympy.core.functionr   r   Zsympy.core.numbersr   r   r   r	   Zsympy.core.singletonr
   Zsympy.core.symbolr   r   Z$sympy.functions.elementary.complexesr   r   Z&sympy.functions.elementary.exponentialr   r   r   Z%sympy.functions.elementary.hyperbolicr   r   Z(sympy.functions.elementary.miscellaneousr   Z(sympy.functions.elementary.trigonometricr   r   Zsympy.functions.special.besselr   r   r   r   r   r   r   r   r   r    r!   Z'sympy.functions.special.gamma_functionsr"   r#   Zsympy.functions.special.hyperr$   Zsympy.integrals.integralsr%   Zsympy.series.orderr&   Zsympy.series.seriesr'   r(   r)   r*   r+   r,   rÄ   r-   r:   r.   r„   r/   r9   r0   Zsympy.simplifyr1   Zsympy.testing.pytestr2   r3   Z	sympy.abcr4   r5   r6   r7   r<   rA   rH   rK   rO   rP   rQ   ro   rv   rz   r}   r~   rŠ   r—   rŸ   r¡   r¢   r¬   r­   r®   r™   r´   r»   r¼   r½   rÂ   rÇ   rÈ   rË   rÌ   rÍ   rÎ   rÑ   r?   r?   r?   r@   Ú<module>   sn   4	$	;J

7%$$"#