U
    ZÊ¹jR  ã                   @   s�  d dl mZ d dlmZmZmZmZ d dlmZ d dl	m
Z
 d dlmZmZmZmZ d dlmZmZmZ d dlmZmZmZ d dlmZ d d	lmZmZ d d
lmZmZm Z m!Z! d dl"m#Z#m$Z$ d dl%m&Z&m'Z' d dl(m)Z)m*Z* d dl+m,Z,m-Z- d dl.m/Z/ d dl0m1Z1 d dl2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9 d dl:m;Z; d dl<m=Z=m>Z? d dl@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZI dd„ ZJdd„ ZKdd„ ZLdd„ ZMdd„ ZNdd „ ZOe;d!d"„ ƒZPd#d$„ ZQd%d&„ ZRd'd(„ ZSd)d*„ ZTe;d+d,„ ƒZUd-d.„ ZVd/d0„ ZWe;d1d2„ ƒZXe;d3d4„ ƒZYd5d6„ ZZd7d8„ Z[d9d:„ Z\d;d<„ Z]d=d>„ Z^d?d@„ Z_dAdB„ Z`dCdD„ ZadEdF„ ZbdGdH„ ZcdIdJ„ ZddKdL„ ZedMdN„ ZfdOdP„ ZgdQdR„ ZhdSdT„ ZidUdV„ ZjdWS )Xé    )Úexpand_func)ÚIÚRationalÚooÚpi)ÚS)Údefault_sort_key)ÚAbsÚargÚreÚ
unpolarify)ÚexpÚ	exp_polarÚlog)ÚcoshÚacoshÚsinh)Úsqrt)Ú	PiecewiseÚpiecewise_fold)ÚcosÚsinÚsincÚasin)ÚerfÚerfc)ÚgammaÚ	polygamma)ÚhyperÚmeijerg)ÚIntegralÚ	integrate©Úhyperexpand©Úsimplify)Ú_rewrite_singleÚ	_rewrite1Úmeijerint_indefiniteÚ
_inflate_gÚ_create_lookup_tableÚmeijerint_definiteÚmeijerint_inversion)Úslow)Úverify_numericallyÚrandom_complex_number)	ÚxÚyÚaÚbÚcÚdÚsÚtÚzc                  C   s"  dd„ } dd„ }| t dt ƒ | t d dt d ƒ | t d tt d   td t d ƒ |t d t  ƒ |t t ƒ dd„ }|tt  ƒtt ƒ t ƒ ttt ƒtt ƒ t ƒtdƒ dttƒ  d	ttd
dƒd	tddƒt	j
tddƒfdfdtd
dƒd	ffdtdt t ƒ t d  ƒfgdfk�st‚d S )Nc                 S   sn   t ttgtg|gtg| ƒtƒ}|d k	s*t‚t|d d d tƒsDt‚|d d d j 	t¡||ffksjt‚d S )Nr   é   )
r&   r   r2   r3   r5   r0   ÚAssertionErrorÚ
isinstanceÚargumentZas_coeff_mul)Úexprr4   ÚmÚe© r@   úc/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sympy/integrals/tests/test_meijerint.pyr7      s    ztest_rewrite_single.<locals>.tc                 S   s*   t ttgtgtgtg| ƒtƒd ks&t‚d S ©N)r&   r   r2   r3   r4   r5   r0   r:   ©r=   r@   r@   rA   Útn!   s    ztest_rewrite_single.<locals>.tné   r9   c                 S   sH   ddl m} t| |ƒ}|dd„ |d D ƒŽ  tt¡}t|| |ƒsDt‚d S )Nr   ©ÚAddc                 S   s   g | ]}|d  |d  ‘qS )r   r9   r@   )Ú.0Úresr@   r@   rA   Ú
<listcomp>-   s     z2test_rewrite_single.<locals>.u.<locals>.<listcomp>)Úsympy.core.addrG   r&   Úreplacer   r   r.   r:   )r=   r0   rG   Úrr?   r@   r@   rA   Úu*   s    
 ÿztest_rewrite_single.<locals>.ur   éÿÿÿÿé   é   )rE   r@   é@   éüÿÿÿT)r0   r1   r   r   r&   r   r   r   r   r   ÚHalfr   r   r:   )r7   rD   rN   r@   r@   rA   Útest_rewrite_single   s&    $& ÿÿþÿrU   c                   C   sz   t td ttgtgtgtgtd ttd   ƒ d tƒdtd ddttgtgtgtgtd td  ƒfgdfksvt‚d S )NrQ   r9   é   rE   r   T)	r'   r0   r   r2   r3   r4   r5   r1   r:   r@   r@   r@   rA   Útest_rewrite1C   s    86ÿrW   c                  C   s~   dd„ } | dt ƒ | dt ƒ | ddt  ƒ | dt d ƒ | dt tdƒ ƒ | t d t ƒ | dt tdƒ  dt td	ƒ  ƒ d S )
Nc                 S   s€   t tgtgtgtg|ƒ|  }ttƒ d ttƒ d t ttƒ ttƒ i}t|tƒ}|d k	sZt	‚t
| |¡| t¡ |¡tƒs|t	‚d S )Né
   )r   r2   r3   r4   r5   Úrandcplxr   r(   r0   r:   r.   ÚsubsÚdiff)Zfacr
   ÚgrZ   Zintegralr@   r@   rA   r7   I   s       ÿ
z0test_meijerint_indefinite_numerically.<locals>.trE   r9   rV   ú3/2rQ   rP   z7/3)r0   r   ©r7   r@   r@   rA   Ú%test_meijerint_indefinite_numericallyH   s    

r_   c                  C   sL   t ttddƒ\} }| jr |dks$t‚t ttttƒ\} }| jrD|dksHt‚d S )Nr   T)r+   r0   Úis_zeror:   r   )Úvr3   r@   r@   rA   Útest_meijerint_definiteY   s    rb   c                     s´   t tƒ d ttƒ d t ttƒ ttƒ ttƒ d i‰ ‡ fdd„} | t gtggtgtggtdƒs`t‚| t tgtggtgtggtdƒs„t‚| t gtggttgtggdtd  dƒs°t‚d S )NrX   c                    sD   ddl m} t| ||ƒ}|t||ƒŽ }t| ˆ ¡| ˆ ¡tddd�S )Nr   )ÚMulgš™™™™™¹?gš™™™™™¹¿)r3   r5   )Zsympy.core.mulrc   r   r)   r.   rZ   r0   )r2   r3   r
   Únrc   Úm1Úm2©rZ   r@   rA   r7   d   s    ztest_inflate.<locals>.trQ   r9   )	r2   rY   r3   r   r4   r5   r1   r0   r:   r^   r@   rg   rA   Útest_inflate`   s       ÿ"$rh   c                  C   s$  ddl m}  | ddd�\}}}tt| d  ƒtt| d  ƒ }t|tdtfdd�}t| ¡ ƒtdƒtt	ƒ t
tdƒ||  d ƒd t|d  d ||  |d d  ƒ  d	 ks¼t‚ttt| d  ƒtt| d  ƒ t|t ƒ tdtfdd�}t|ƒtdƒtt	ƒ t
tdƒd| d|  |  d	 ƒd  t|d  |d  d| d|  | d d
  ƒ d	 k�sxt‚tttt| | | d  ƒtdtfdd�ƒtt	ƒd dt
|| | ƒ  k�sÌt‚tttt| | | d  ƒtdtfdd�ƒtt	ƒd dt
|| | ƒ  k�s t‚d S )Nr   ©Úsymbolsza b cT©Úpositiver9   ©r   rE   rP   é   )Úsympy.core.symbolrj   r   r0   r!   r   r%   Úexpandr   r   r   r:   )rj   r2   r3   r4   rM   r?   r@   r@   rA   Útest_recursivep   s2    $
@ÿÿÿ@Hÿÿÿ
,ÿ
,ÿrq   c               	   C   s.  ddl m}  ddlm} |ddd�\}}}ttg g dgg || ƒtg g |d g| d g|d d ƒ |dtfƒjsxt‚|d	dd
�}tt	| tg g gdgg gt	ƒ t	dtfƒt
|d ƒks¾t‚tt	| tg g gdgg gt	ƒ t	dtfdd�t
|d ƒksüt‚ttt	| tg g gdgg gt	ƒ t	dtfdd�tƒ�s6t‚ttt	ƒt	ƒtt	ƒk�sRt‚|ddd
�\}}ttt	| t	d|ƒd ƒ||d  |d  k�s–t‚tt	d d tt	 ƒ t	dtƒdk�sÀt‚|ddd
�\}}ttt	| d|  d  ƒt	dtƒ\}}	t|ƒttƒ| dt|d|  ƒ  k�s&t‚|	dk�s4t‚tt| t	 ƒt|t	 ƒ t	dtƒ\}}
t|ƒd||  k�svt‚ttt	ƒt	t dƒtdƒdfk�sœt‚| ttt	ƒt	dtƒd ƒttƒd k�sÈt‚| ttt	 ƒt	dt	ƒd ƒdttttt	ƒ ƒ tt	ƒ ƒ k�st‚ttt	d  ƒt	t tƒttƒdfk�s8t‚tttt	ƒ ƒt	t tƒdk�s\t‚ttdt	 d d  ƒt	t tƒttƒd dfk�s”t‚tttdt	 d ƒ ƒt	t tƒdk�sÀt‚ttt	| | d  d ƒtdt |d  ƒ t	t tƒdk�st‚ttt	ƒd t	t tƒtdfk�s*t‚ttt	 ƒtt	ƒ t	dtƒtjdfk�sVt‚dd„ }tdƒD ]>}ttt	 ƒtt	ƒ t	|  t	dtfdd�||ƒk�sft‚�qftttt	 ƒtt	| ƒ t	dtfdd�ƒtdƒt|td  ƒ d k�sòt‚|dƒ\}}}ttg g |d g| d gt	d ƒtg g |d g| d gt	d ƒ t	|d   t	dtƒddd| d   t
d| d ƒ t
|d |d  | ƒ t
| d |d  | d ƒt
|d |d  | d ƒ t
|d |d  | d ƒ  t|ƒdk t|ƒtdƒd k @ t|ƒd t|ƒd  t|ƒ dk@ fk�s6t‚ttt	| ƒtt	| ƒ t	dtfdd�ttt	| ƒtt	| ƒ t	dtfƒk�sˆt‚ttt	d  ƒtt	ƒ t	dtfdd�ttƒtdtjƒ d  ¡ k�sÐt‚ddlm } |ddd�}tttt	 ƒt	|  t	dd�ƒ||d t	ƒk�st‚|ddd
�}tdt	 | t|t	 ƒ t	ddƒttƒ| t
|d ƒ td|d tj |d d ffddtjft!ddƒff|d d ƒ d dfk�s²t‚|d dd
�\}}ttt	| t| t	d  ƒ t	t tfƒƒ|| d tj  d| d  t
|d tj ƒ d k�s*t‚d S )!Nr   )rp   ri   zs t muT©Úrealr9   rP   r6   rk   rE   rm   Fúa brQ   )é   Tzsigma mu)r9   T)rE   Tc                 S   s(   ddt d    t | ¡ t d¡d|   S ©NrE   r9   rO   )r0   r[   rZ   )rd   r@   r@   rA   rI   ½   s    ztest_meijerint.<locals>.resé   za b séþÿÿÿ©Ú
lowergammard   )ÚintegerÚalphar@   rO   ru   za s)"Úsympy.core.functionrp   ro   rj   r!   r   r   Úis_Piecewiser:   r0   r   r;   r    r(   r   r%   r+   r   r   r   r   r
   Úabsr   r   r   rT   Úranger   r   r   Ú'sympy.functions.special.gamma_functionsrz   r   )rp   rj   r6   r7   Úmur2   r3   ÚsigmaÚir4   Ú_rI   rd   rz   r|   r@   r@   rA   Útest_meijerint‚   sÚ    $ÿþ
(
ÿ&ÿ
ÿ  ÿþ
ÿ
*(.(&, ÿ
,$ ÿ
,.  ÿÿ
&,(ÿ(ÿ
" ÿ
ÿ  ÿ:8ÿÿBýý
	&"ÿ
$ÿ
ÿ
 &
ÿ 
ÿÿÿÿ
*4ÿr†   c                  C   sv  ddl m} m} tt|ttƒ|ttƒ t tdtfddd�ƒdt	t
td td   ƒ t
tt  tt   ksrt‚tt|ttƒ|ttƒ t tdtfddd�ƒddt  ks°t‚ttt	tt ƒtd d ttj    tdtfddd�d td t tt
ƒ ttjt ƒ  ƒ|ttƒk�s t‚tt|dtƒ tdd�t|dtƒ k�sLt‚tt| dtƒ tdd�t| dtƒ k�sxt‚t|dtƒtdd�|dtƒ k�sžt‚t|dtƒd t tdd�|dtƒd |dtƒd   d k�sât‚t|dtƒd td  tdd�d	t |dtƒd  dt |dtƒd   d|dtƒ |dtƒ  |dtƒd t  k�s^t‚t|dtƒ|dtƒ tdd�|dtƒd  d k�s–t‚ttd |dtƒ |dtƒ tdd�td |dtƒd  d k�sÜt‚t|dtƒ|dtƒ t tdd�t|dtƒd  t|dtƒd   |dtƒ|dtƒ  k�s<t‚t|dtd ƒt tdd�|dtd ƒ d k�srt‚d S )
Nr   ©ÚbesseliÚbesseljTÚnone©r   Úcondsr9   rE   rm   rx   )Úsympy.functions.special.besselrˆ   r‰   r%   r!   r2   r8   r3   r   r   r   r:   r0   r1   r   rT   r   r   r‡   r@   r@   rA   Útest_besselí   sf    " ÿ.þ" ÿ
ÿ&  ÿþ þý
,,& ÿ
*ÿÿÿ
ÿ
$ÿ
 "ÿÿ
ÿrŽ   c                  C   s&  ddl m}  ddlm} dd„ }|dtd d  ƒttƒ|tƒ ksHt‚|ttd d  ƒttƒ|tƒ kspt‚|t	t ƒt ƒ|td ƒks’t‚|dt
dtd  ƒ ƒ| dtƒ|tƒ ksÀt‚tt
tƒt
dtd  ƒ ttƒd ksèt‚|t	td ƒƒd k�st‚tt	td  ƒttƒd k�s"t‚d S )Nr   ©r‰   )Ú	Heavisidec                 S   s   t t| ttƒƒS rB   )r   r,   r6   r7   ©Úfr@   r@   rA   Úinv!  s    ztest_inversion.<locals>.invrE   r9   )r�   r‰   Ú'sympy.functions.special.delta_functionsr�   r6   r   r7   r:   r   r   r   r,   )r‰   r�   r“   r@   r@   rA   Útest_inversion  s    ((".(r•   c                  C   sø   ddl m}  ddlm} | ddd�}tt| ƒtdt|ƒ ttƒ ƒ }t|tt	ƒ}|j
r^t‚| ddd	�}| ||¡}t|tt	ƒ}|j
sŒt‚|jd d | ||¡ksªt‚|jd
 d s¼t‚||tt	d ƒ}|jd
 d |ksô|jd
 d |jksôt‚d S )Nr   ©ÚSymbol)ÚInverseLaplaceTransformr2   Trk   rx   r3   rr   rO   rE   )ro   r—   Úsympy.integrals.transformsr˜   r   r   r   r6   r,   r7   r~   r:   rZ   ÚargsZas_integral)r—   r˜   r2   ÚFr’   r3   Úf2ZILTr@   r@   rA   Ú!test_inversion_conditional_output.  s    $

r�   c                  C   sÐ   ddl m}  ddlm} | ddd�}| ddd	�}d
dt  }| dƒ}tt|t ƒttƒj	r^t
‚tt|t ƒttƒd kszt
‚tt|t ƒttƒd ks–t
‚tt|t ƒttƒ}|j	s´t
‚t|jd d |ƒsÌt
‚d S )Nr   r–   )Ú
DiracDeltarM   Trr   r4   F)Zextended_realrE   r9   r8   )ro   r—   r”   rž   r   r,   r   r6   r7   r~   r:   r;   rš   )r—   rž   rM   r4   r2   r8   r’   r@   r@   rA   Ú%test_inversion_exp_real_nonreal_shiftC  s    
rŸ   c                  C   sb  ddl m} m} ddlm} ddlm} i }t|ƒ | ¡ D �]}t	|t
d�D �]
\}}}}	i }
t|jƒ|g D ]2}t|dƒr”|jr”|ddƒ|
|< qp| d	d
ƒ|
|< qpt|tƒs¶||
ƒ}dd„ |D ƒ}tdd„ |D ƒƒsÚt‚|dd„ |D ƒŽ }|j|
d�|j|
d� }}tt|ƒt|ƒƒ}|dk �r>t|| ƒ ¡ dk�sZt‚qNt|| ƒ|  ¡ dksNt‚qNq<d S )Nr   )ÚuniformÚ	randrangerF   )r8   )ÚkeyÚ
propertiesrE   rX   g      ø?g       @c                 S   s   g | ]\}}t |ƒ‘qS r@   r"   )rH   r…   r\   r@   r@   rA   rJ   f  s     z%test_lookup_table.<locals>.<listcomp>c                 s   s    | ]}|j p| t¡ V  qd S rB   )r~   Úhasr   )rH   r0   r@   r@   rA   Ú	<genexpr>g  s     z$test_lookup_table.<locals>.<genexpr>c                 S   s   g | ]\}}|| ‘qS r@   r@   )rH   r’   r0   r@   r@   rA   rJ   j  s     rg   g»½×Ùß|Û=)Úsympy.core.randomr    r¡   rK   rG   Úsympy.integrals.meijerintr8   r*   ÚvaluesÚsortedr   ÚlistZfree_symbolsÚhasattrr£   r;   Úallr:   rd   Úminr   )r    r¡   rG   Zz_dummyÚtableÚlZformulaZtermsZcondÚhintrZ   ZaiÚexpandedr2   r3   rM   r@   r@   rA   Útest_lookup_tableR  s,    

r²   c                  C   s  ddl m}  ddlm} |tttd ƒtdd� t¡dd�dttd ƒ tt	ddƒƒ d tt	d	dƒƒ kspt
‚tttd ƒtdd�dt ttd ƒ tt	ddƒƒ dtt	d	dƒƒ  dtt	ddƒƒ | t	ddƒtd
 ƒ dttƒ tt	d	dƒƒ   ksþt
‚d S )Nr   ry   )Ú	powdenestrQ   Trm   ©Zpolarr9   rV   rw   )r�   rz   Úsympy.simplify.powsimpr³   r!   r   r0   r[   r   r   r:   r   r   )rz   r³   r@   r@   rA   Útest_branch_bugs  s    ÿ.ÿ2>ÿÿr¶   c                  C   sd   ddl m}  tttd ƒtdd�tdt ƒ ks4t‚t| dtd ƒtdd�| ddt ƒ ks`t‚d S )Nr   r�   rE   Trm   )r�   r‰   r!   r   r0   r   r:   r�   r@   r@   rA   Útest_linear_subs~  s    (r·   c            $         s.  ddl m‰  ddlm} m} ddlm} ddlm} |ddd�\‰}|d	dd
�\‰}| ddd
�‰dd„ ‰dd„ ‰t	ˆt
ˆˆƒt
t tfdd�dks–t‚t	t
ˆt
ˆˆƒ t
t tfdd�ˆksÀt‚t	t
d ˆt
ˆˆƒ t
t tfdd�ˆd ˆd  ksút‚t	t
d ˆt
ˆˆƒ t
t tfdd�ˆd dˆ ˆd   k�s>t‚t	ˆt
ˆˆƒˆt||ƒ t
t tftt tfdd�dk�s|t‚t	t
ˆt
ˆˆƒ ˆt||ƒ t
t tftt tfdd�ˆk�s¾t‚t	tˆt
ˆˆƒ ˆt||ƒ t
t tftt tfdd�|k�s t‚t	t
t ˆt
ˆˆƒ ˆt||ƒ t
t tftt tfdd�ˆ| k�sJt‚t	t
t d ˆt
ˆˆƒ ˆt||ƒ t
t tftt tfdd�dˆ | k�sœt‚t	t
t d ˆt
ˆˆƒ ˆt||ƒ t
t tftt tfdd�dˆ | k�sît‚t	t
d ˆt
ˆˆƒ ˆt||ƒ t
t tftt tfdd�}| t¡�r:t‚t|ƒˆd ˆd  k�sXt‚t	td ˆt
ˆˆƒ ˆt||ƒ t
t tftt tfdd�|d |d  k�sªt‚t	ˆt
ˆƒt
dtfdd�dk�sÎt‚t	t
ˆt
ˆƒ t
dtfdd�dˆ k�sút‚t	t
d ˆt
ˆƒ t
dtfdd�dˆd  k�s.t‚‡ ‡‡‡‡‡fdd„}|dƒdk�sVt‚|t
t ƒˆˆ k�spt‚|t
td  ƒˆd ˆ ˆd ˆ  k�sžt‚ˆd dˆd   }t|t
t d d ƒ|t
t d ƒd  ƒ|k�sèt‚t|t
t d d ƒ|t
t d ƒd  ƒ|k�st‚t|t
t d ƒ|t
t ƒd  ƒ|k�sLt‚|ddd
�\}	}
t
|	d  dt
 |	 |
   t|	|
 ƒ t|	ƒ t|
ƒ }t	|t
dtfdd�dk�s´t‚t	t
| t
dtfddd�}||d ƒ|d f|	|
d  d|
k fk�süt‚t	t
d | t
dtfddd�}|d |
dkk�s0t‚||d |d d  ƒ|	|
 d |	 |
d  |
d d  k�srt‚|ddd
�\}}t
|d  t
 d |d   t|| ƒ t|ƒt|ƒ  }tt	|t
ddfdd�ƒdk�sÞt‚tt	t
| t
ddfdd�ƒ|||  k�st‚tt	t
d | t
ddfdd�ƒ||d  ||  || d  k�sRt‚tt	t
t | t
ddfdd�ƒt|| ƒt|t ƒ t|ƒ t|| t ƒ k�s¨t‚| dddd�}dd|d   t
|d   tt
d  d ƒ t|d ƒ }|t	|t
dtfdd�ƒdk�st‚tt	t
| t
dtfdd�ƒtdƒt|d d ƒ t|d ƒ k�sXt‚tt	t
d | t
dtfdd�ƒ|k�s‚t‚d| d  t|d ƒ t
|d d   tt
 d ƒ }|t	|t
dtfdd�ƒdk�sÜt‚tt	t
| t
dtfdd�ƒ|k�	st‚tt	t
d | t
dtfdd�ƒ||d  k�	s4t‚|t	t
| td| ƒ d | t
dtfdd�ƒdtdƒ t|ƒ k�	s~t‚|ddd
�\}}}|| t
 t
| ||   dt
| ||   |d   }tt	|t
dtfdd�ƒdk�	sêt‚t
| }tt	|t
dtfddd�ƒ|| tdd|  ƒ t|d d|  ƒ || d t|ƒ  k�
sRt‚tt	t
| t
dtfddd�ƒ||d  tdd|  ƒ t|d d|  ƒ || d t|ƒ  k�
sºt‚|ddd
�\}}t|t
 | ||  |t
 | ||   ƒt
 t|d ƒ t|d ƒ t|| d ƒ }tt	|t
dtfdd�ƒdk�sDt‚tt	t
| t
dtfddd�ƒ||d  k�stt‚tt	t
d | t
dtfddd�ƒ|d |d  | |d   |d  k�sÀt‚|d!dd
�\}}t|d t ƒt
td"dƒ  t| t
| d  t
 d |d  ƒ }d#d$„ }|t	|t
dtfƒƒdk�s:t‚|t	t
| t
dtfƒƒ|k�s\t‚|t	t
| d | t
dtfƒƒ|d | k�sŽt‚|t	t
| d | t
dtfƒƒd|d%  |d  k�sÈt‚| d&dd
�}t	t|d t ƒt| d t
|  ƒ t
| td'ƒ  t
|tfƒdk�s t‚|ddd
�\}	}
|
|	 t
|
d   |	|
d   dt
|
 |	|
   d  }tt	|t
dtfƒƒdk�s†t‚tt	t
| t
dtfdd(�ƒt|	 |
 tt|
 ƒ k�sÀt‚tt	t
t | t
dtfdd(�ƒt|	t  t |
 ttt |
 ƒ k�s
t‚| ddd
�}| d)dd
�}|| t
| |d   tt
| |  ƒ }tt	|t
dtfƒƒdk�sjt‚tt	t
| | t
dtfƒƒ|| td||  ƒ k�s¤t‚dd*lm} |d+dd
�\} }!t
|!d  tt
d | d   d |!d  ƒ |dt
|  |!d  ƒ }"t	|"t
dtfdd�dk�s"t‚| d,dd-�}| d.dd
�}ttt
| ƒ | ƒd | }#t	|#t
t tfdd�dk�sxt‚t	t
|# t
t tfdd�|k�sœt‚t	t
d |# t
t tfdd�d|d  |d  k�sÔt‚| ddd
�}|ˆ t	tt
ƒt
|d   tt
 ƒ t|ƒ t
dtfƒƒƒtd|ƒk�s*t‚d S )/Nr   )Ú
expand_mul)r—   rj   )Ú	gammasimp)Úpowsimpzmu1 mu2T©Znonzerozsigma1 sigma2rk   Úlambdac                 S   s6   dt dt |d  ƒ t| | d  d |d  ƒ S ©NrE   r9   )r   r   r   )r0   r‚   rƒ   r@   r@   rA   Únormal�  s    z test_probability.<locals>.normalc                 S   s   |t | |  ƒ S rB   )r   )r0   Úrater@   r@   rA   Úexponential’  s    z%test_probability.<locals>.exponentialrm   rE   r9   rQ   rO   c                    s€   t | ˆtˆƒ ˆtˆˆƒ tdtftt tfdd�}t | ˆtˆƒ ˆtˆˆƒ tt tftdtfdd�}ˆ |ƒˆ |ƒks|t‚|S )Nr   Trm   )r!   r0   r1   r   r:   )r=   Zres1Zres2©r¸   rÀ   Zmu1r¾   r¿   Zsigma1r@   rA   ÚE¸  s     
 ÿ
  ÿztest_probability.<locals>.Ez
alpha betaZseparater‹   rt   Úk)r{   rl   za b prŠ   zd1 d2rP   zlamda muéýÿÿÿc                 S   s   t |  t¡ƒS rB   )r%   Úrewriter   rC   r@   r@   rA   Ú<lambda>  ó    z"test_probability.<locals>.<lambda>rV   r4   r]   )rŒ   rd   )rˆ   znu sigmar‚   rr   r3   )r}   r¸   ro   r—   rj   Zsympy.simplify.gammasimpr¹   rµ   rº   r!   r0   r   r:   r1   r¤   r	   r%   r   r   r   r   r   r   r   r�   rˆ   r   r   r   )$r—   rj   r¹   rº   Zmu2Zsigma2r„   rÂ   Úansr|   ÚbetaZbetadistÚjr2   r3   rÃ   ÚchiZ
chisquaredÚpZdagumr
   Zd1Zd2r’   Zlamdar‚   ÚdistZmysimpr4   Zdistnrd   rˆ   Únurƒ   ÚriceZlaplacer@   rÁ   rA   Útest_probability„  s¬   & ÿ$ÿ$ÿ

 
 ÿÿ

 
 ÿÿ

 
 ÿÿ
 
 
 ÿÿ
$
 
 ÿ
ÿ
$
 
 ÿ
þ
 
 
 ÿ 
 
 ÿþ
$ÿ
 
ÿ
.66.(ÿÿ.$ÿ
ÿ:"
ÿ
ÿ
.ÿ
:""ÿ
*8"&
ÿ
&ÿÿ
8"*ÿÿ
.ÿÿ
.
ÿ
ÿÿ"
ÿ
 "ÿ
D"2:6ÿÿ
ÿÿ
"ÿ
*ÿ
D $ÿ
*ÿÿrÐ   c            
      C   s  ddl m}  ddlm} ddlm}m}m}m}m	}m
} ttttt t ƒtt  tdtfddd� |¡jdd	�ƒƒ|ttƒks„t‚ttt t ƒt tdtfddd� |¡ ¡ |dtƒksÀt‚ttt t ƒtd
  tdtfddd� |¡ ¡ |d
tƒ |¡ |¡k�st‚ttt t ƒtd  tdtfddd� |¡ ¡ |dtƒ |¡ |¡ ¡ k�s`t‚| ddd�}tttƒ t t|tfdd� ¡ ||ƒk�sœt‚tttƒ t t|tfdd� ¡ ||ƒtd
  k�sÔt‚tttƒt tdtfdd�|tƒk�sþt‚t|tƒt tdtfdd�|tƒk�s(t‚ttt ƒt tdd� ¡  |¡tt |dtƒ k�sbt‚ttt ƒtd
  tdd� |¡ ¡ |dtƒtt ƒt  tt  k�s®t‚| ddd�}	tt|	ƒ|	 |	dd� ¡  |	¡d ||	ƒk�sìt‚tt|	ƒ|	 |	dd� ¡  |	¡d ||	ƒk�st‚t|dtƒtdd� |¡ ¡ t|dtƒ tt ƒ k�sZt‚t|d
tƒtdd� |¡ ¡ td
  |dtƒ d
 ttt ƒ d
  tt ƒd
  k�s¶t‚ttt|ttƒtdd� |¡jdd	�ƒƒ|td tƒ k�söt‚t|tƒtdd�t|tƒ ttƒ k�s"t‚t||	ƒ|	dd� ¡ |	||	ƒ t|	ƒ k�sRt‚t|tƒtdd�t|tƒ ttƒ k�s~t‚t||	ƒ|	dd� ¡ |	||	ƒ ||	ƒ k�s®t‚t|tƒtt ƒ tdtfdd�td k�sÞt‚t|dtƒttƒ tdtfdd�td
ƒd
 k�st‚dS )z% Test various exponential integrals. r   r–   )r   )ÚChiÚCiÚEiÚShiÚSiÚexpintrE   TrŠ   r‹   )Úfuncr9   rQ   r7   rk   rm   rN   r´   rP   N)ro   r—   Ú%sympy.functions.elementary.hyperbolicr   Ú'sympy.functions.special.error_functionsrÑ   rÒ   rÓ   rÔ   rÕ   rÖ   r%   r   r!   r   r8   r0   r1   r   rÅ   rp   r:   r   r   r   r   Zas_independentr   r   )
r—   r   rÑ   rÒ   rÓ   rÔ   rÕ   rÖ   r7   rN   r@   r@   rA   Útest_expintK  sž     " ÿþþþÿÿþ ÿÿþ
 ÿÿþ
0 ÿ
** ÿ
$ÿ
"ÿ
"ÿ
ÿÿ
ÿ6þ
ÿÿÿþ
,0,00rÚ   c                  C   s®  ddl m} m} ddlm}m} ddlm} ddlm	}m
}m}m} ddlm}	m}
 |
|tƒttdd�|tƒ td	  t ddfksˆt‚|
|tƒttdd�|tƒt t td	 d
kfks¼t‚|
|tƒttdd�ttd ƒtd
d
td	   ƒ d	t  t td	 d
kfk�st‚|
|ttƒttƒd
d … dttƒdkttƒdk@ fk�sJt‚|	|d
tƒt ttdd�}|d jdd� ¡ |d
 ftdtd
d	t  ktdd	t  k B fd	tdtd	  td	  d
 ƒ dfƒtdkfk�sØt‚t|tƒ|dtƒ tdtfdd�td
td	ƒ ƒk�st‚t|tƒ|d
tƒ tdtfdd�ttjtd	ƒd	  ƒk�sNt‚td
t td
td	  ƒ tdd�t| d
t ƒ ttd ƒd
kft |d
t ƒ dfƒk�sªt‚d S )Nr   )r   Úacoth)r   Úatanr�   )rÑ   ÚE1rÔ   rÕ   )Úfourier_transformÚlaplace_transformTr$   r9   rE   rx   rO   F)Znoconds)ÚdeeprS   rm   )!rØ   r   rÛ   Ú(sympy.functions.elementary.trigonometricr   rÜ   r�   r‰   rÙ   rÑ   rÝ   rÔ   rÕ   r™   rÞ   rß   r0   r6   r   r:   r   r   r2   r   Úfactorrp   r   r   r!   r   rT   r   r   )r   rÛ   r   rÜ   r‰   rÑ   rÝ   rÔ   rÕ   rÞ   rß   rÈ   r@   r@   rA   Ú
test_messy‚  sL    ÿ
  
ÿ
&  
ÿÿ
$"ÿÿÿ
 ÿ
 ÿ
 2ÿrã   c                   C   sJ   t tt td  ƒtt tfdd�t ttƒ ttt d ƒ ksFt‚d S )Nr9   Trm   rP   )r!   r   r   r0   r   r   r   r:   r@   r@   r@   rA   Útest_issue_6122¨  s    "ÿrä   c                  C   s>   dt  ttt   tddƒ  } t| t dd�}| t¡r:t‚d S )NrE   rQ   Trm   )r0   r2   r3   r   r!   r¤   r   r:   )r=   Zantir@   r@   rA   Útest_issue_6252­  s    rå   c                   C   sD   t ttt ƒdtd   tt tfƒ ¡  t¡ttdƒ ks@t‚d S rv   )	r!   r   r   r0   r   r%   rÅ   r   r:   r@   r@   r@   rA   Útest_issue_6348µ  s    .
ÿræ   c                  C   sh   ddl m} m} tttttd  d ƒtƒƒ|tƒks:t‚ttt	ttd  d ƒtƒƒ| tƒksdt‚d S )Nr   ©ÚfresnelcÚfresnelsr9   )
rÙ   rè   ré   r   r!   r   r   r0   r:   r   rç   r@   r@   rA   Útest_fresnelº  s    *rê   c                   C   s   t ttt  tƒd kst‚d S rB   )r(   r0   r:   r@   r@   r@   rA   Útest_issue_6860Á  s    rë   c                  C   sr   t ttdt d ƒ tƒ ¡ } | tdt d ƒdtd  t d  d ksNt‚|  ttjtj¡t	ddƒksnt‚d S )Nr9   rQ   rV   )
r(   r0   r   Ztogetherr:   Z_eval_intervalr   ZNegativeOneZOner   r‘   r@   r@   rA   Útest_issue_7337Å  s    0rì   c                   C   sh   t ttƒtt t ƒ tƒt d ttƒ t d tt ƒ  tt t ƒ d td d  ksdt‚d S r½   )r(   r   r0   r   r7   r:   r@   r@   r@   rA   Útest_issue_8368Ë  s    $ ÿÿ
ÿrí   c                  C   st   ddl m} m} tdttt d | d  ƒd  td|ftd|fƒdtd|d | d   ƒ |  d|   kspt‚d S )Nr   ©ÚhÚwrE   r9   rQ   )Ú	sympy.abcrï   rð   r!   r   r1   r0   r:   rî   r@   r@   rA   Útest_issue_10211Ð  s    2&ÿrò   c                  C   sr   ddl m}  | ddd�\}}tdttd |d  ƒd  t| |fƒd| |d t|d |d  ƒ  ksnt‚d S )	Nr   ri   zy LTrk   rE   r9   rQ   )ro   rj   r!   r   r0   r:   )rj   r1   ÚLr@   r@   rA   Útest_issue_11806Ö  s
    ("ÿrô   c                  C   s®   ddl m}  ddlm}m} t|d |d |d  d  |dd�}d|d	  |d
  tdtd
dƒftddƒf|d tdt	 t
 ƒ |d  ƒ }|  ||  ¡ d	d¡sªt‚d S )Nr   )ÚRR)ÚRrM   r9   g      à?Trm   gUUUUUUÕ?g      ð?rQ   g      à¿rV   gê-�™—q=)Zsympy.polys.domains.realfieldrõ   rñ   rö   rM   r!   r   r   r   r   r   Zalmosteqrd   r:   )rõ   rö   rM   r’   r\   r@   r@   rA   Útest_issue_10681Ü  s    &*ÿr÷   c                  C   s@   ddl m}  | ddd�}tdtd  tt|fƒd| ks<t‚d S )	Nr   r–   r2   Trk   rE   r9   rO   )ro   r—   r!   r0   r   r:   )r—   r2   r@   r@   rA   Útest_issue_13536ä  s    rø   c                  C   sj   ddl m}  | dƒ}| dƒ}tt|| ƒ||  |dd� |d¡ tt|d ƒ|d  |dd�¡sft‚d S )Nr   r–   r0   rd   Trm   r9   )ro   r—   r!   r   rZ   Úequalsr:   )r—   r0   rd   r@   r@   rA   Útest_issue_6462ê  s    &ÿrú   c                   C   sN   t tt t  tdd�t dtt  dt   ttt  tt   ksJt‚d S )NTrm   rE   )r!   r3   r7   r2   r:   r@   r@   r@   rA   Útest_indefinite_1_bugô  s    rû   c                   C   s`   t dttt d d ƒ dd�tttt ƒttt d ƒdkft ttt ƒ dfƒks\t‚d S )NrE   r9   Trm   )	r!   r   r0   r   r   r   r	   r   r:   r@   r@   r@   rA   Útest_pr_23583ø  s    6ÿrü   c                   C   s:   t ttd  ƒtddfdd�ttƒd tdƒ ks6t‚d S )Nr9   éûÿÿÿr   Trm   rV   )r!   r   r0   r   r   r   r:   r@   r@   r@   rA   Ú0test_integrate_function_of_square_over_negativesÿ  s    rþ   c                  C   sP   ddl m}  | ddd�}tt|td  ƒtddfdd	�td
| ƒ| ksLt‚d S )Nr   ri   r1   Tr»   rE   rO   g      Ð¿rm   g      è?)ro   rj   r!   r   r0   r   r:   )rj   r1   r@   r@   rA   Útest_issue_25949  s    rÿ   N)kr}   r   Zsympy.core.numbersr   r   r   r   Zsympy.core.singletonr   Zsympy.core.sortingr   Z$sympy.functions.elementary.complexesr	   r
   r   r   Z&sympy.functions.elementary.exponentialr   r   r   rØ   r   r   r   Z(sympy.functions.elementary.miscellaneousr   Z$sympy.functions.elementary.piecewiser   r   rá   r   r   r   r   rÙ   r   r   r�   r   r   Zsympy.functions.special.hyperr   r   Zsympy.integrals.integralsr    r!   Zsympy.simplify.hyperexpandr#   Zsympy.simplify.simplifyr%   r§   r&   r'   r(   r)   r*   r+   r,   Zsympy.testing.pytestr-   r¦   r.   r/   rY   rñ   r0   r1   r2   r3   r4   r5   r6   r7   r8   rU   rW   r_   rb   rh   rq   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ÿ   r@   r@   r@   rA   Ú<module>   sr   $,)
j0
 
 G
6&
