U
    L?hÖt  ã                   @   s(  d dl mZmZ d dlmZ d dlmZmZ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 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 d dl m!Z! d dl"m#Z#m$Z$m%Z% d dl&m'Z'm(Z(m)Z) d dl*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2 d dl3m4Z4 d dl5m6Z6 d dl7m8Z8 d dl m9Z9 d dl:m;Z; d dl<m=Z>m?Z@mAZB edƒZCedƒZDedddZEedddZFdd„ ZGdd„ ZHd d!„ ZId"d#„ ZJd$d%„ ZKd&d'„ ZLd(d)„ ZMd*d+„ ZNd,d-„ ZOd.d/„ ZPd0d1„ ZQd2d3„ ZRd4d5„ ZSd6d7„ ZTd8d9„ ZUd:d;„ ZVd<d=„ ZWd>d?„ ZXd@dA„ ZYdBdC„ ZZdDdE„ Z[dFS )Gé    )Úexpand_funcÚSubs)Ú
EulerGamma)ÚIÚRationalÚnanÚooÚpiÚzoo)ÚS)ÚDummyÚSymbol)Ú	factorial)Úharmonic)ÚAbsÚ	conjugateÚimÚre)ÚexpÚ	exp_polarÚlog)Útanh)Úsqrt)ÚcosÚsinÚatan)ÚEiÚerfÚerfc)ÚdigammaÚgammaÚloggammaÚ
lowergammaÚ
multigammaÚ	polygammaÚtrigammaÚ
uppergamma)Úzeta)ÚO)Ú	unchanged)ÚArgumentIndexError)Úraises)Útest_derivative_numericallyÚrandom_complex_numberÚverify_numericallyÚxÚyÚnT©ÚintegerÚw©Úrealc                  C   s²  t tƒtkst‚t tƒtks t‚t dƒtks0t‚t dƒtks@t‚t dƒtksPt‚t dƒdks`t‚t dƒdkspt‚t dƒdks€t‚t dƒtdƒks”t‚t tjƒtt	ƒksªt‚t t
ddƒƒtt	ƒtj ksÊt‚t t
d	dƒƒtt	ƒt
dd
ƒ ksît‚t t
ddƒƒtt	ƒt
ddƒ kst‚t t
ddƒƒdtt	ƒ ks4t‚t t
ddƒƒtt	ƒt
d
dƒ ksZt‚t t
ddƒƒtt	ƒt
ddƒ ks€t‚t t
ddƒƒtt	ƒt
ddƒ ks¦t‚t t
ddƒƒjddt
ddƒt t
d	dƒƒ ksÚt‚t t
ddƒƒjddt
ddƒt t
ddƒƒ kst‚t t
ddƒƒjddt
ddƒt t
ddƒƒ ksBt‚t t
d dƒƒjddt
d!d"ƒt t
ddƒƒ ksvt‚t t
d#dƒƒjddt
ddƒt t
ddƒƒ ksªt‚t tƒ t¡t tƒtdtƒ ksÐt‚t td ƒjddt tƒtd  ksút‚t td ƒjdd$d%ttd  t tƒ ks*t‚tt tƒƒt ttƒƒksHt‚tt tt
ddƒ ƒƒttj t ttj ƒ ks|t‚tt ttj ƒƒt tjt ƒttj  ks¬t‚tt tt
dd
ƒ ƒƒt tt
dd
ƒ ƒksÚt‚t dttt	 ƒ d
 ƒjd$ksþt‚t dttt	 ƒ d
 ƒjdks"t‚td&ddd'} t | ƒjd$ksDt‚td&ddd(} t | ƒjdksft‚t d)d$d*jd$ks~t‚t dd$d*jd$ks–t‚t dd$d*jd$ks®t‚d S )+Niœÿÿÿr   g      YÀé   é   é   éf   ée   é   é   é   é   é   éÿÿÿÿéþÿÿÿéýÿÿÿéûÿÿÿiøÿÿÿiñÿÿÿé   iî iõÿÿÿT©Úfuncé@   é!   iöÿÿÿéQ   i  é   ip  é   é   é1   é   F©rG   Úmulr0   )Únonpositiver3   )ÚpositiveZ
nonintegerç      ð¿©Úevaluate)r    r   ÚAssertionErrorr   r
   r   r   ÚHalfr   r	   r   Úexpandr/   Údiffr$   r   r   r   r   Zis_nonnegativeZis_extended_nonpositiver   Úis_real)r0   © r\   úd/var/www/html/venv/lib/python3.8/site-packages/sympy/functions/special/tests/test_gamma_functions.pyÚ
test_gamma   sš     $& &&& ÿÿÿ
 ÿÿÿ
 ÿÿÿ
 ÿÿÿ
 ÿÿÿ
&*0ÿ
ÿ
.$$r^   c                   C   s"   t tƒ t¡ttd ƒkst‚d S )Nr7   )r    r1   Úrewriter   rW   r\   r\   r\   r]   Útest_gamma_rewriteb   s    r`   c                   C   s  t td ƒ tdd¡dtt  td td d td d    ttd ƒ ksRt‚t tƒ tdd¡dtd  t d td dtd d  td d  t   td d dtd d  td d  td d  tddƒd  ttd  d  t   ttd d tdfƒ kst‚d S )Nr7   r   r9   r8   é   rA   é   )r    r/   Úseriesr   r	   r(   rW   r$   r\   r\   r\   r]   Útest_gamma_seriesf   s$    6ÿ2ÿ0ÿÿÿÿþÿrd   c                 C   s”   ddl m} |ddƒ}|| |ttt ƒ ƒ|| |tt t ƒ ƒ }d}|| | | |t  ƒ|| | | |t  ƒ }t| ¡ | ¡  ƒ ¡ dk S )Nr   )Úuniformr7   r<   gVçž¯Ò<ç»½×Ùß|Û=)Úsympy.core.randomre   r   r   r	   Úabsr1   )ÚsrG   re   ÚcÚexprÚepsZexpr2r\   r\   r]   Ú	tn_brancho   s    
.0rm   c                  C   s$  ddl m}  ddlm} ttdƒdks*t‚tttƒ t¡ttd  t	t ƒ ksTt‚t
ttƒ tƒtƒsjt‚t
tttƒ ƒtƒs€t‚tttƒ t¡ttƒttƒ tttƒttƒ  |g ddgddtgg tƒ ksÐt‚ttjtƒttƒtttƒƒ ksôt‚ttjd tƒ t¡rt‚ttjd tƒ t¡r,t‚ttjtdd t¡sHt‚tttjd tddttjd tƒtƒsvt‚tttjd tddttjd tƒtƒs¤t‚tdtƒs´t‚td	tƒsÄt‚ttddƒtƒsÚt‚tttƒsêt‚tdtd
t t ƒt ƒtdtƒkst‚tttdt t ƒt ƒt	d
t t t ƒtttttt ƒ ƒ ks^t‚tdtdt t ƒt ƒtdtttt ƒ ƒdt t  ks t‚ttttƒƒtttƒttƒƒksÆt‚tttdƒƒdksÞt‚ttttt ƒƒsöt‚tdtƒ td¡dkst‚ttdƒd tƒ td¡dks6t‚tdtdd td¡dksVt‚tttƒ td¡dksrt‚ttd tƒ td¡dks’t‚tdt tƒ td¡dks²t‚tdtd ƒ td¡dksÒt‚ttdƒd td ƒ td¡dksút‚tdtd dd td¡dkst‚tttd ƒ td¡dks>t‚ttd td ƒ td¡dksbt‚tdt td ƒ td¡dks†t‚tddt ƒ td¡dks¦t‚ttdƒd dt ƒ td¡dksÎt‚tddt dd td¡dksòt‚ttdt ƒ td¡dkst‚ttd dt ƒ td¡dks6t‚tdt dt ƒ td¡dksZt‚ttdƒ ttd¡dt ddtd    t	dƒ t t t	ttdƒ ƒtd  ttfƒ ksºt‚tttƒ !| ¡tt  | t d tƒ ttƒ ksòt‚t"ddd}t|tƒ !| ¡t|  | | d tƒ t|ƒ ks6t‚t"dddd}t|tƒ !| ¡t|tƒksdt‚tttƒ !t¡ttƒtttƒ ksŒt‚tddƒt#dƒdt	dƒ  ks°t‚ttdƒd dƒttdƒd ddd  $¡ dk sæt‚ttdƒ d dƒttdƒ d ddd  $¡ dk s t‚d S )Nr   ©Úexpint©Úmeijergr7   r9   FrU   rC   éüÿÿÿr=   r<   rB   r8   TÚkr2   ©r3   rS   éF   rb   éE   ì           ÀÊu™iÑeßXQ|e?ˆIëCò*K;p~•Ô2ÛL¬+	H éúÿÿÿéM   ç¼‰Ø—²Òœ<)%Ú'sympy.functions.special.error_functionsro   Úsympy.functions.special.hyperrq   r"   r/   rW   r0   rZ   r   ÚtdÚrandcplxr    r   r&   r   r   rX   r   r	   r   ÚhasÚtnrm   r   r   r   r   r)   r   Z_eval_is_meromorphicrc   r(   r_   r   r   Úevalf)ro   rq   rs   r\   r\   r]   Útest_lowergammax   s¢    * ÿÿ$ ÿ
 ÿ
*(ÿ
 ÿ
&$    ($ $$ ($ $$Dÿ
 ÿÿ ÿ
 ÿÿ ÿ
 ($6r‚   c                  C   s\  ddl m}  ddlm} tddƒdks*t‚tttƒ t¡ttd   t	t ƒ ksVt‚t
ttƒ tƒtƒslt‚tttƒ t¡tttƒttƒ |g ddgddtgg tƒ ks¬t‚t
tttƒ ƒtƒsÂt‚tddd	}td|ƒt| ƒ ksèt‚t|dƒt|ƒksþt‚ttjtƒttƒtttƒƒ ks$t‚ttjd
 tƒ t¡r@t‚ttjd
 tƒ t¡r\t‚ttjtdd t¡sxt‚tttjd
 tddttjd
 tƒtƒs¦t‚tttjd
 tddttjd
 tƒtƒsÔt‚tttt ƒsèt‚tttdƒsút‚tdtƒs
t‚tdtƒst‚ttdd
ƒtƒs0t‚tttƒs@t‚td
tdt t ƒt ƒtd
tƒksjt‚tttdt t ƒt ƒt	dt t t ƒtttttt ƒ ƒ ttƒdt	dt t t ƒ   ksÔt‚tdtdt t ƒt ƒtdtttt ƒ ƒdt t  kst‚tdtƒ| d
tƒtd  ks8t‚ttttƒƒtttƒttƒƒks^t‚ttttt ƒƒsvt‚tttƒ | ¡tt | t d tƒ ks¤t‚tttƒ t¡ttƒtttƒ ksÌt‚tddƒdt	dƒ ksèt‚ttdƒd dƒttdƒd ddd   ¡ dk st‚ttdƒ d dƒttdƒ d ddd   ¡ dk sXt‚d S )Nr   rn   rp   r=   rb   r7   ÚpT©rS   r9   FrU   rC   rr   r<   rB   r8   ru   rw   rx   ry   rz   )!r{   ro   r|   rq   r&   rW   r/   r0   rZ   r   r}   r~   r   r   r   r    r   rX   r   r	   r   r   r€   r)   r   rm   r   r   r   r   r_   r"   r   )ro   rq   rƒ   r\   r\   r]   Útest_uppergamma¾   s^    ,*ÿ& ÿ
 ÿ
*(ÿÿ
 ÿ
"&.(6r…   c               
   C   sF	  t ttƒtkst‚t dtƒtks$t‚t dt ƒtks8t‚t dtt ƒtksNt‚t dt t ƒtksft‚t dtƒdksxt‚t dtƒdksŠt‚t ddƒtksœt‚t ddƒtks®t‚t ddƒtksÀt‚t tddƒdƒtksØt‚t ddƒtksêt‚t ddƒt ksþt‚t ddƒtd	d
ƒt kst‚t ddƒt	d d ks8t‚t ddƒt	d d d ksXt‚t ddƒt	d d tddƒ ks~t‚t ddƒt	d d ksšt‚t ddƒdtddƒt	d d   ksÄt‚t ddƒdt	d  d ksät‚t dt
jƒt	d d kst‚t dt
jƒdtdƒ ks t‚t dt
jƒdt	d  ks>t‚dd„ } | ddƒsVt‚| ddƒsft‚| ddƒsvt‚| ddƒs†t‚| ddƒs–t‚| ddƒs¦t‚| ddƒs¶t‚| ddƒsÆt‚| ddƒsÖt‚| ddƒsæt‚t dtƒ t¡t dtƒkst‚t dtƒ t¡tdtƒks&t‚t dtƒ t¡dtdtƒ ksJt‚t tdƒ t¡t tdƒksjt‚tdƒ}tddd}td dd!}td"dd#}td$ddd%}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ƒ t¡d|d  t|ƒ t|d tƒ ks\t‚t ddt ƒ t¡dt ddt ƒ ksˆt‚t dtƒ t¡ttd ƒt ks®t‚t dtƒ t¡dttd dƒ dtdƒ  ksât‚td&dd!}t |tƒ t¡d|d  ttd |d ƒ t|d ƒ  t|ƒ ks8t‚td&ddd'}t |tdt t	 ƒt ƒt |tƒkspt‚td&dd!}t |tdt t	 ƒt ƒj|tdt t	 ƒt fks¶t‚t dtƒttƒtdt	 ƒd  ksÞt‚t dtƒjt ksôt‚t dt ƒjdd(t dt ƒkst‚t dd)ƒjd*ks0t‚t dd+ƒjd*ksFt‚t dd)ƒjdks\t‚t dd+ƒjdksrt‚t dd+ƒjd ksˆt‚t dd+ƒjd ksžt‚t dd)ƒjdks´t‚t dd)ƒjd*ksÊt‚t dd+ƒjd*ksàt‚t dd+ƒjdksöt‚t dd+ƒjd kst‚t dd+ƒjd ks"t‚t tdƒjd ks8t‚t tdƒjd ksNt‚tt tt	ƒ  ¡ tt tt	ƒƒ tt tt	ƒƒfks„t‚tt tdƒƒ t¡tt tdƒƒtt tdƒ ƒ tt tdƒƒtt tdƒ ƒ  ksÚt‚tt tdƒ  t¡ttt t tt tdƒƒtt tdƒƒ ƒ ƒ t!t tdƒƒ ks0t‚t"tt dtƒƒsFt‚t td,dd#td-dd#ƒj#dkslt‚t dtƒj#d ks‚t‚t$t t	dƒj%d.d/ƒd0ks¢t‚t$t d1d2ƒj%d.d/ƒd3ksÂt‚t$t ddƒj%d.d/ƒd4ksât‚t$t tdƒj%d.d/ƒd5k	st‚t$t dtƒj%d.d/ƒd6k	s"t‚t$t ttƒj%d.d/ƒd7k	sBt‚d S )8Nr   r7   r<   é÷ÿÿÿrA   r9   r8   r>   rN   é   rb   r=   r?   iŸ¨ÿÿi Q  éZ   r@   é?   iòÿÿÿé   i ³ ra   c                 S   sJ   t | ƒ| }td|ƒ}| t¡r$dS ttd| ¡ ƒ ¡ | ¡  ƒ ¡ dk S )Nr   Frf   )r   r$   r   rh   r1   ©Úmr1   r/   Úrr\   r\   r]   Út  s
    

ztest_polygamma.<locals>.trC   é{   rB   Ún1Ún2Tr5   Ún3r2   Ún4r„   Ún5)rS   r3   r1   )r3   ÚnonnegativerF   g      @Fg      ÀÚaÚbé
   ©r1   z0.1169314564gffffff@g      ð?z-3.003302909z-0.9189385332z-3.109856569 + 1.89089016*Iz-0.5369999034 - 0.7942335428*Iz6.332362889 + 45.92828268*I)&r$   r1   r   rW   r   r   r
   r   r   r	   r   rX   r'   r/   r_   r   r   rZ   r   r   Úargsr!   r   rG   rY   Úis_positiveÚis_negativeZas_real_imagr   r   r   r   r   r   r)   r[   Ústrr   )rŽ   r   r‘   r’   r“   r”   Únirs   r\   r\   r]   Útest_polygammaï   sÀ     &*   $     8,&4*
ÿÿ*:(&ÿ
:ÿ
:ÿ
&     rŸ   c                  C   sª  t dtƒjddt dtƒks t‚t ddt ƒjddt dtƒd t dtjt ƒd  tdƒ ksdt‚t ddt ƒjddt dtƒd t dtjt ƒd  ks t‚t dtƒjddt dtƒksÀt‚t ddt ƒjddt dtƒdtd   ksðt‚t ddt ƒjdddt t dtƒ kst‚t ddt ƒjdddt ddt   t dtƒ ksXt‚t ddt ƒjddt dtƒdt  ddt   ddt   ksžt‚t ddt ƒjddt dtƒdt  ddt   ddt   ddt   ksðt‚t ddt ƒjddt dtƒdtd   ks"t‚t ddt ƒjdd	d
t dtƒdtd   ddt d   ksft‚t ddt ƒjdd	d
t dtƒdtd   ddt d   ddt d   ksºt‚t ddt ƒjdd	d
t dtƒdtd   ddt d   ddt d   ddt d   kst‚t dtt ƒjddt dtt ƒksHt‚t dtt ƒjddt dtt ƒksrt‚t dddt  t ƒjdd	d
t dtdt  ƒdtdt  d   ddt dt  d   ddt dt  d   ksît‚t dddt  t ƒjdd	d
t dtdt  ƒdtdt  d   ddt dt  d   ddt dt  d   ksjt‚t ddt t d ƒjdd	d
t dtdt  ƒdtdt  d   ks¶t‚t ddt t tddƒ ƒ} | jdd| ksèt‚t dtt tddƒ ƒ} | jdd	d| kst‚t dtd	djddt	tƒtt
ƒd  tdƒd  ksTt‚t dtƒjddtd d  td  tdƒd  }t|tƒs–t‚|jdks¦t‚d S )Nr   TrF   r8   r7   r=   rA   r9   F©rG   Zmultinomialrb   )rG   ÚbasicrU   rB   ra   )rA   )r$   r/   rY   rW   r   rX   r   r0   r   r!   r	   Ú
isinstancer   Úpoint)ÚeZp2r\   r\   r]   Útest_polygamma_expand_funcn  s”     (ÿ ÿÿÿÿ
ÿ
(ÿ
4ÿ
ÿ
$ÿ
4ÿ
$ÿÿÿ
ÿ
ÿ
$ÿÿÿ
$ÿÿÿ
$ÿ
ÿ
2r¥   c                  C   sN  t tƒtkst‚t tƒtks t‚t t ƒtks2t‚t tt ƒtksFt‚t t t ƒtks\t‚t dƒtkslt‚t dƒtks|t‚t dƒtksŒt‚t dƒtksœt‚t dƒt ks®t‚t dƒtddƒt ksÈt‚dd	„ } | dd
ƒsÞt‚| dd
ƒsìt‚| dd
ƒsút‚| ddƒs
t‚| ddƒst‚| ddƒs*t‚| ddƒs:t‚| ddƒsJt‚| d
dƒsZt‚| ddƒsjt‚t tƒ 	t
¡tdtƒksˆt‚t tƒ 	t¡ttd ƒt ks¬t‚t tƒjd ksÀt‚t tdd ¡ tdtƒksàt‚t tddjd ksøt‚t tddjd kst‚t tddjd ks(t‚t tdd 	t¡tdtƒksJt‚d S )Nr†   rA   r   r7   r>   rN   r‡   c                 S   sF   t | ƒ| }t|ƒ}| t¡r"dS tt| ¡ ƒ ¡ | ¡  ƒ ¡ dk S )NFrf   )r   r   r   rh   r1   r‹   r\   r\   r]   rŽ   ³  s
    
ztest_digamma.<locals>.tr8   r9   r=   rC   r   r<   FrU   )r   r   rW   r   r   r
   r   r   r/   r_   r'   r$   r   r[   Úfdiffr›   rœ   )rŽ   r\   r\   r]   Útest_digamma¡  s<    $ r§   c                   C   s²  t tƒjddtdtƒkst‚t dt ƒjddtdtƒd tdtddƒt ƒd  tdƒ ksdt‚t dt ƒjddtdtƒdtd   ks’t‚t dt ƒjdddt tdtƒ ks¼t‚t dt ƒjdddt ddt   tdtƒ ksòt‚t dt ƒjddtdtƒdt  ddt   ddt   ks6t‚t dt ƒjddtdtƒdt  ddt   ddt   ddt   ks†t‚t tt ƒjddtdtt ƒks®t‚d S )	NTrF   r   r8   r7   rA   r9   r=   )r   r/   rY   r$   rW   r   r   r0   r\   r\   r\   r]   Útest_digamma_expand_funcÕ  s,    ,ÿÿÿÿ(ÿ
4ÿ
ÿr¨   c                   C   sJ  t tƒtkst‚t tƒdks t‚t dƒtd d ks8t‚t dƒtd d d ksTt‚t dƒtd d tddƒ ksvt‚t tdd	 t¡tdtƒks–t‚t tdd	 t	¡t tƒ t
¡ t	¡ksÀt‚t tdd	 ¡ t
dtƒksÞt‚t tdd	jd ksôt‚t tdd	jd kst‚t tdd	jd ks$t‚t tdd	 t
¡t
dtƒksFt‚d S )
Nr   r7   r8   rb   r9   r<   r=   FrU   )r%   r   rW   r   r	   r   r/   r_   r'   r   r$   r¦   r[   r›   rœ   r\   r\   r\   r]   Útest_trigammaæ  s    " ÿr©   c                   C   s  t dt ƒjddtdtƒd tdtddƒt ƒd  ks>t‚t dt ƒjddtdtƒdtd   kslt‚t dt ƒjdddtdtƒdtd   ddt d   ks¬t‚t dt ƒjdddtdtƒdtd   ddt d   ddt d   ksüt‚t dt ƒjdddtdtƒdtd   ddt d   ddt d   ddt d   ks^t‚t tt ƒjddtdtt ƒks†t‚t ddt  t ƒjdddtdtdt  ƒdtdt  d   ddt dt  d   ddt dt  d   ks t‚d S )	Nr8   TrF   r7   r=   Fr    r9   )r%   r/   rY   r$   r   rW   r0   r\   r\   r\   r]   Útest_trigamma_expand_funcý  s:    $ÿÿ$ÿ4ÿ$ÿÿÿ
ÿ
$ÿÿÿrª   c                  C   sú  t tdd„ ƒ t tdd„ ƒ tdƒtks,t‚tdƒtks<t‚tdƒtksLt‚tdƒdks\t‚tdƒdkslt‚td	ƒtdƒks€t‚td
ƒtdƒks”t‚tdddd} t| ƒtt| ƒƒksºt‚t|  ƒtksÌt‚t| d ƒtd|  d  t	t
ƒ t| ƒ t| d tj ƒ ƒkst‚ttƒtks$t‚tt ƒtks8t‚ttt ƒtksNt‚tt t ƒtksft‚ttƒtksxt‚ttƒtksŠt‚ttdd	ƒƒ}dtd	ƒ ttdd	ƒƒ td
ƒ tdƒ tdƒ tdƒ }t|ƒ ¡ |ksèt‚| ¡ | ¡ ksþt‚ttdd
ƒƒ}dtd
ƒ ttd	d
ƒƒ td	ƒ tdƒ tdƒ tdƒ }t|ƒ ¡ |ks\t‚| ¡ | ¡ ksrt‚ttddƒƒ}dtdƒ tdƒ ttddƒƒ tdƒ tdƒ }t|ƒ ¡ |ksÈt‚| ¡ | ¡ ksÞt‚ttdd
ƒd ƒ}tdƒ tdƒ ttd	d
ƒƒ d	td
ƒ  d	t t
  }t|ƒ ¡ |ks>t‚| ¡ | ¡ ksTt‚ttddƒd ƒ}tdƒ tdƒ tdƒ ttddƒƒ d	tdƒ  d	t t
  }t|ƒ ¡ |ks¼t‚| ¡ | ¡ ksÒt‚ttƒ t¡tdtƒksðt‚tdtttƒ  ttƒ ƒjtd
d}tdt ƒ d dt  ttt
 ƒd  d
tdt ƒ t d  ttd ƒ ttƒtd  d  }|| jdd ¡ dks–t‚tdt ƒ t¡}dt tj tdt ƒ dt  tdt
 ƒd  td  td	 d   td d!  ttd ƒ }|| jdd ¡ dks$t‚ttƒ d"¡tttƒƒksDt‚ttƒ t¡ ¡ }|ttƒ t t  t
d td  d  td	 tddƒ d  t
d
 td
  d   td td
dƒ d#  ttd ƒ ksÒt‚|ttƒ d"¡ t¡ ¡ ksôt‚t!ttƒƒtt!tƒƒkst‚t!tdƒƒtks(t‚t!tdƒƒtt!dƒƒksFt‚t!tt ƒƒt!tƒksbt‚ttd$dd%ƒj"dks~t‚ttd$dd&ƒj"d'ksšt‚ttd$dd(ƒj"d'ks¶t‚ttd$dd)ƒj"d'ksÒt‚ttd$dd*ƒj"d ksît‚ttd$dd+ƒj"d ks
t‚ttd$dd,ƒj"d ks&t‚ttd$ƒƒj"d ks>t‚ttjƒj"dksTt‚tdƒj"d'ksht‚ttddƒƒj"d'ks‚t‚ttƒj"d ks–t‚tdd	t  ƒj"d ks²t‚d-d.„ }|ddƒ |ddƒ |ddƒ |d	d	ƒ |d
d
ƒ |ddƒ d S )/Nc                   S   s
   t ddƒS )Nr8   r9   )r!   r\   r\   r\   r]   Ú<lambda>  ó    ztest_loggamma.<locals>.<lambda>c                   S   s   t tƒ d¡S )Nr8   )r!   r/   r¦   r\   r\   r\   r]   r«     r¬   rA   rB   r   r7   r8   r9   r=   rb   r1   Trt   é   rD   r>   r˜   é   rO   rr   rŠ   r?   é   rC   é	   r<   ra   r™   é   )Úforceih  iì  Zintractableéx   Úvr„   )ÚzeroF©Únegative)rR   )r•   )Z	imaginaryr5   c                 S   s&   t dt ƒjt| d ¡ |ks"t‚d S )Nr7   r™   )r!   r/   Z_eval_nseriesZgetnrW   )ÚNÚMr\   r\   r]   ÚtNe  s    ztest_loggamma.<locals>.tN)#r+   Ú	TypeErrorr*   r!   r   rW   r   r   r    r   r	   r   rX   r
   r   r   r   r   Údoitr1   r/   rZ   r$   r   r   Únseriesr(   rY   ZremoveOrc   r_   Úcancelr   r   r[   )r1   ÚLÚEÚs1Ús2rº   r\   r\   r]   Útest_loggamma  s´    F::28@&Lÿ0ÿ
ÿ
ÿ
ÿ <ÿÿ
ÿ"




rÃ   c                   C   sò   t ddt ƒjtddttƒ td  td d  ttd ƒ ksFt‚t ddt ƒjtddttd d  td d  ttd ƒ ksŠt‚t ddt ƒjtd	ddtd  dtd
   dtd   td  d
td  d  ttd	 ƒ ksît‚d S )Nr   r7   r9   r™   r8   ra   r<   rb   rŠ   r=   r>   r°   )r$   r/   r½   r   r(   rW   rc   r\   r\   r\   r]   Útest_polygamma_expansiono  s    (ÿ&ÿFÿrÄ   c                  C   sD   t dt ƒ tdddt  ƒ tj } | jtt dtjks@t‚d S )Nr7   r   )Zlogx)r   r/   r$   r   r   Úas_leading_termr0   rW   )rk   r\   r\   r]   Útest_polygamma_leading_termy  s    &rÆ   c                  C   s’   t dddd} t ddd}t ddd}t ddd	d}t| ƒjd	ksFt‚t|ƒjd ksXt‚t|ƒjdksjt‚t|ƒjdks|t‚ttƒjd ksŽt‚d S )
Nr1   T)r·   r3   rŒ   r2   Úor„   rƒ   F)r   r    r[   rW   r4   )r1   rŒ   rÇ   rƒ   r\   r\   r]   Útest_issue_8657~  s    rÈ   c                  C   sö   t ddd} t ddd}t ddd}t ddd}t d	dd
}t ddd
}t dddd}t| ƒjdksht‚t|ƒjd kszt‚t|ƒjd ksŒt‚t|ƒjd ksžt‚t|ƒjd ks°t‚t|ƒjd ksÂt‚t|tj ƒjdksÚt‚t|tj ƒjdksòt‚d S )Nr/   Tr„   r0   r¶   ÚzFrƒ   Úqr2   r   r¤   )Zevenr·   )r   r    r›   rW   r   rX   )r/   r0   rÉ   rƒ   rÊ   r   r¤   r\   r\   r]   Útest_issue_8524Š  s    rË   c                   C   sœ   t tddƒtƒ ¡ t tddƒtƒks(t‚tttddƒƒ ¡ tttddƒƒksPt‚tt tddƒdƒ ¡ d ƒdk stt‚tttddƒdƒ ¡ d ƒdk s˜t‚d S )Nr9   r@   r8   gs«?—Æ0²?g•Ö&è.>gÍ`P
!e@)r&   r   r/   r   rW   r"   rh   r\   r\   r\   r]   Útest_issue_14450›  s    (($rÌ   c                  C   s$   t dddd} tt| ƒtƒs t‚d S )Nrs   T)r3   rR   )r   r¢   r    rW   )rs   r\   r\   r]   Útest_issue_14528¢  s    rÍ   c               	   C   sœ  ddl m}  tdƒ}tdƒ}tt|ƒ t||d  d  | ttd| d  ƒ|d|fƒ ¡s`t	‚t
tt|ƒƒ tt
|ƒd t
|ƒ d  | tt
tƒdt
|ƒ d  ƒ|d|fƒ ¡s¸t	‚t
ttdƒƒtt
tƒƒksÖt	‚tddd	}t
tt|ƒƒ t|d | d  | tt
tƒdt
|ƒ d  ƒ|d|fƒ ¡s4t	‚ttdƒtksHt	‚ttdƒ ¡ tks`t	‚tddƒdkstt	‚tddƒdksˆt	‚td
dƒdksœt	‚tddƒtdƒks´t	‚ttjdƒttƒksÎt	‚tddƒtksât	‚tddƒtd ksút	‚tdd
ƒtkst	‚tdd
ƒtd d ks*t	‚td
d
ƒd
td  d ksJt	‚ttdƒ t¡ttƒtdtƒ ksrt	‚ttdƒ t¡ttƒttƒ tttj ƒ tdtƒ ttƒttƒ tttj ƒ tdttj ƒ  ksÞt	‚ttd dƒjddttƒtd  ks
t	‚ttd dƒjdddttd  ttƒ ks<t	‚ttd dƒjddttƒttƒ tttj ƒ td
 d
td   ttddƒ  td
dƒ  ks¢t	‚ttd d
ƒjddttd
dƒ ttƒd  tttj ƒ td dtd   dtd
  d  dtd   ttddƒ  td
dƒ  ks.t	‚ttdƒ t¡ttd ƒksPt	‚ttdƒ t¡ttƒtttd
dƒ ƒ ttd ƒ ksŒt	‚ttd
ƒ t¡ttd
dƒ ttd ƒ tttd
dƒ ƒ ttd ƒ ksÚt	‚ttddƒd
ddjdksút	‚ttjd
ddjdkst	‚tddddjdks0t	‚tdd
ddjdksJt	‚tdd
ddjdksdt	‚tdd
ddjdks~t	‚td
d
ddjdks˜t	‚d S )Nr   )ÚProductrƒ   Ú_kr7   r=   r8   Tr„   r9   r:   r;   rF   FrP   rŠ   r<   rb   é7   r?   é   rA   rU   rT   gffffffæ?)Zsympy.concrete.productsrÎ   r   r   r#   r/   Zdummy_eqr	   r    rW   r   r   r   r¼   r   r   rX   r   r
   rZ   r$   rY   r   r1   r_   r[   )rÎ   rƒ   rÏ   r\   r\   r]   Útest_multigamma¦  sŒ    ÿ
ÿÿ&ÿ
 &ÿ (*ÿ,ÿ, ÿ"ÿ*ÿ,ÿFÿ"ÿ
ÿ
ÿÿ
ÿ rÒ   c                   C   sx   t tƒ t¡dt kst‚t dt ƒ t¡tdƒks8t‚t ttƒƒ t¡tdƒksVt‚t ttƒƒ t¡dt kstt‚d S )Nr7   r8   )r    r/   rÅ   rW   r   r   r   r\   r\   r\   r]   Útest_gamma_as_leading_termá  s    rÓ   N)\Zsympy.core.functionr   r   Z
sympy.corer   Zsympy.core.numbersr   r   r   r   r	   r
   Zsympy.core.singletonr   Zsympy.core.symbolr   r   Z(sympy.functions.combinatorial.factorialsr   Z%sympy.functions.combinatorial.numbersr   Z$sympy.functions.elementary.complexesr   r   r   r   Z&sympy.functions.elementary.exponentialr   r   r   Z%sympy.functions.elementary.hyperbolicr   Z(sympy.functions.elementary.miscellaneousr   Z(sympy.functions.elementary.trigonometricr   r   r   r{   r   r   r   Z'sympy.functions.special.gamma_functionsr   r    r!   r"   r#   r$   r%   r&   Z&sympy.functions.special.zeta_functionsr'   Zsympy.series.orderr(   Zsympy.core.exprr)   r*   Zsympy.testing.pytestr+   rg   r,   r}   r-   r~   r.   r€   r/   r0   r1   r4   r^   r`   rd   rm   r‚   r…   rŸ   r¥   r§   r¨   r©   rª   rÃ   rÄ   rÆ   rÈ   rË   rÌ   rÍ   rÒ   rÓ   r\   r\   r\   r]   Ú<module>   sX    (D		F134`
;