o
    GZŽ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u sJ ‚t tƒtu sJ ‚t dƒtu sJ ‚t dƒtu s J ‚t dƒtu s(J ‚t dƒdks0J ‚t dƒdks8J ‚t dƒdks@J ‚t dƒtdƒksJJ ‚t tjƒttƒksUJ ‚t t	ddƒƒttƒtj kseJ ‚t t	d	dƒƒttƒt	dd
ƒ kswJ ‚t t	ddƒƒttƒt	ddƒ ks‰J ‚t t	ddƒƒdttƒ ks˜J ‚t t	ddƒƒttƒt	d
dƒ ksªJ ‚t t	ddƒƒttƒt	ddƒ ks¼J ‚t t	ddƒƒttƒt	ddƒ ksÎJ ‚t t	ddƒƒj
ddt	ddƒt t	d	dƒƒ ksçJ ‚t t	ddƒƒj
ddt	ddƒt t	ddƒƒ ksJ ‚t t	ddƒƒj
ddt	ddƒt t	ddƒƒ ksJ ‚t t	d dƒƒj
ddt	d!d"ƒt t	ddƒƒ ks5J ‚t t	d#dƒƒj
ddt	ddƒt t	ddƒƒ ksOJ ‚t tƒ t¡t tƒtdtƒ ksbJ ‚t td ƒj
ddt tƒtd  kswJ ‚t td ƒj
dd$d%ttd  t tƒ ksJ ‚tt tƒƒt ttƒƒksžJ ‚tt tt	ddƒ ƒƒttj t ttj ƒ ks¸J ‚tt ttj ƒƒt tjt ƒttj  ksÐJ ‚tt tt	dd
ƒ ƒƒt tt	dd
ƒ ƒksçJ ‚t dttt ƒ d
 ƒjd$u sùJ ‚t dttt ƒ d
 ƒjdu sJ ‚td&ddd'} t | ƒjd$ksJ ‚td&ddd(} t | ƒjdks-J ‚t d)d$d*jd$ks9J ‚t dd$d*jd$ksEJ ‚t dd$d*jd$ksQJ ‚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   r   r
   r   r   ÚHalfr   r	   r   Úexpandr/   Údiffr$   r   r   r   r   Zis_nonnegativeZis_extended_nonpositiver   Úis_real)r0   © r[   úa/var/www/auris/lib/python3.10/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J ‚d S )Nr7   )r    r1   Úrewriter   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s)J ‚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ˆJ ‚d S )Nr7   r   r9   r8   é   rA   é   )r    r/   Úseriesr   r	   r(   r$   r[   r[   r[   r\   Útest_gamma_seriesf   s$   6ÿ2ÿ0ÿÿÿÿþÿrc   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.randomrd   r   r   r	   Úabsr1   )ÚsrG   rd   ÚcÚexprZepsZexpr2r[   r[   r\   Ú	tn_brancho   s   
.0rk   c                  C   s  ddl m}  ddlm} ttdƒdksJ ‚tttƒ t¡ttd  tt ƒ ks*J ‚t	tt
ƒ tƒtƒs5J ‚t	ttt
ƒ ƒtƒs@J ‚tttƒ t¡ttƒttƒ tttƒttƒ  |g ddgddtgg tƒ kshJ ‚ttjtƒttƒtttƒƒ kszJ ‚ttjd tƒ t¡r‡J ‚ttjd tƒ t¡r”J ‚ttjtdd t¡s¡J ‚tttjd tddttjd tƒtƒs·J ‚tttjd tddttjd tƒtƒsÍJ ‚tdtƒsÔJ ‚td	tƒsÛJ ‚ttddƒtƒsåJ ‚tttƒsìJ ‚tdtd
t t ƒt ƒtdtƒksJ ‚tttdt t ƒt ƒtd
t t t ƒtttttt ƒ ƒ ks&J ‚tdtdt t ƒt ƒtdtttt ƒ ƒdt t  ksGJ ‚ttttƒƒtttƒttƒƒksZJ ‚tttdƒƒdksfJ ‚ttttt ƒƒsrJ ‚tdtƒ td¡dks€J ‚ttdƒd tƒ td¡dks’J ‚tdtdd td¡dks¢J ‚tttƒ td¡dks°J ‚ttd tƒ td¡dksÀJ ‚tdt tƒ td¡dksÐJ ‚tdtd ƒ td¡dksàJ ‚ttdƒd td ƒ td¡dksôJ ‚tdtd dd td¡dksJ ‚tttd ƒ td¡dksJ ‚ttd td ƒ td¡dks(J ‚tdt td ƒ td¡dks:J ‚tddt ƒ td¡dksJJ ‚ttdƒd dt ƒ td¡dks^J ‚tddt dd td¡dkspJ ‚ttdt ƒ td¡dks€J ‚ttd dt ƒ td¡dks’J ‚tdt dt ƒ td¡dks¤J ‚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ÔJ ‚tttƒ  | ¡tt  | t d tƒ ttƒ ksðJ ‚t!ddd}t|tƒ  | ¡t|  | | d tƒ t|ƒ ksJ ‚t!dddd}t|tƒ  | ¡t|tƒks)J ‚tttƒ  t¡ttƒtttƒ ks=J ‚tddƒt"dƒdtdƒ  ksOJ ‚ttdƒd dƒttdƒd ddd  #¡ dk sjJ ‚ttdƒ d dƒttdƒ d ddd  #¡ dk s‡J ‚d S )Nr   ©Úexpint©Úmeijergr7   r9   FrU   rC   éüÿÿÿr=   r<   rB   r8   TÚkr2   ©r3   rS   éF   ra   éE   ì           ÀÊu™iÑeßXQ|e?ˆIëCò*K;p~•Ô2ÛL¬+	H éúÿÿÿéM   ç¼‰Ø—²Òœ<)$Ú'sympy.functions.special.error_functionsrm   Úsympy.functions.special.hyperro   r"   r/   r0   rY   r   ÚtdÚrandcplxr    r   r&   r   r   rW   r   r	   r   ÚhasÚtnrk   r   r   r   r   r)   r   Z_eval_is_meromorphicrb   r(   r^   r   r   Úevalf)rm   ro   rq   r[   r[   r\   Útest_lowergammax   s’   * ÿÿ$ÿÿ*(
ÿ 
ÿ&$    ($ $$ ($ $$D
ÿÿ&
ÿÿ&
ÿ ($6>r€   c                  C   sJ  ddl m}  ddlm} tddƒdksJ ‚tttƒ t¡ttd   tt ƒ ks+J ‚t	tt
ƒ tƒtƒs6J ‚tttƒ t¡tttƒttƒ |g ddgddtgg tƒ ksVJ ‚t	ttt
ƒ ƒtƒsaJ ‚tddd	}td|ƒt| ƒ kstJ ‚t|dƒt|ƒksJ ‚ttjtƒttƒtttƒƒ ks‘J ‚ttjd
 tƒ t¡ržJ ‚ttjd
 tƒ t¡r«J ‚ttjtdd t¡s¸J ‚tttjd
 tddttjd
 tƒtƒsÎJ ‚tttjd
 tddttjd
 tƒtƒsäJ ‚tttt ƒsíJ ‚tttdƒsõJ ‚tdtƒsüJ ‚tdtƒsJ ‚ttdd
ƒtƒsJ ‚tttƒsJ ‚td
tdt t ƒt ƒtd
tƒks,J ‚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saJ ‚tdtdt t ƒt ƒtdtttt ƒ ƒdt t  ks‚J ‚tdtƒ| d
tƒtd  ks“J ‚ttttƒƒtttƒttƒƒks¦J ‚ttttt ƒƒs²J ‚tttƒ | ¡tt | t d tƒ ksÉJ ‚tttƒ t¡ttƒtttƒ ksÝJ ‚tddƒdtdƒ ksëJ ‚ttdƒd dƒttdƒd ddd  ¡ dk sJ ‚ttdƒ d dƒttdƒ d ddd  ¡ dk s#J ‚d S )Nr   rl   rn   r=   ra   r7   ÚpT©rS   r9   FrU   rC   rp   r<   rB   r8   rs   ru   rv   rw   rx   ) ry   rm   rz   ro   r&   r/   r0   rY   r   r{   r|   r   r   r   r    r   rW   r   r	   r   r}   r~   r)   r   rk   r   r   r   r   r^   r"   r   )rm   ro   r   r[   r[   r\   Útest_uppergamma¾   sZ   ,*ÿ$ÿÿ*(ÿ
ÿ 
ÿ"&.(6>rƒ   c               
   C   s6	  t ttƒtu s	J ‚t dtƒtu sJ ‚t dt ƒtu sJ ‚t dtt ƒtu s'J ‚t dt t ƒtu s3J ‚t dtƒdks<J ‚t dtƒdksEJ ‚t ddƒtu sNJ ‚t ddƒtu sWJ ‚t ddƒtu s`J ‚t tddƒdƒtu slJ ‚t ddƒtu suJ ‚t ddƒt ksJ ‚t ddƒtd	d
ƒt ksJ ‚t ddƒtd d ksšJ ‚t ddƒtd d d ks©J ‚t ddƒtd d tddƒ ks»J ‚t ddƒtd d ksÈJ ‚t ddƒdtddƒtd d   ksÜJ ‚t ddƒdtd  d ksëJ ‚t dt	j
ƒtd d ksùJ ‚t dt	j
ƒdtdƒ ksJ ‚t dt	j
ƒdtd  ksJ ‚dd„ } | ddƒs#J ‚| ddƒs+J ‚| ddƒs3J ‚| ddƒs;J ‚| ddƒsCJ ‚| ddƒsKJ ‚| ddƒsSJ ‚| ddƒs[J ‚| ddƒscJ ‚| ddƒskJ ‚t dtƒ t¡t dtƒks{J ‚t dtƒ t¡tdtƒks‹J ‚t dtƒ t¡dtdtƒ ksJ ‚t tdƒ t¡t tdƒks­J ‚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ÚJ ‚t |tƒ t¡t |tƒksêJ ‚t |tƒ t¡t |tƒksúJ ‚t |tƒ t¡t |tƒks
J ‚t |tƒ t¡d|d  t|ƒ t|d tƒ ks&J ‚t ddt ƒ t¡dt ddt ƒ ks<J ‚t dtƒ t¡ttd ƒt ksOJ ‚t dtƒ t¡dttd dƒ dtdƒ  ksiJ ‚td&dd!}t |tƒ t¡d|d  ttd |d ƒ t|d ƒ  t|ƒ ks”J ‚td&ddd'}t |tdt t ƒt ƒt |tƒks°J ‚td&dd!}t |tdt t ƒt ƒj|tdt t ƒt fksÓJ ‚t dtƒttƒtdt ƒd  ksçJ ‚t dtƒjt u sòJ ‚t dt ƒjdd(t dt ƒksJ ‚t dd)ƒjd*ksJ ‚t dd+ƒjd*ksJ ‚t dd)ƒjdks&J ‚t dd+ƒjdu s1J ‚t dd+ƒjd u s<J ‚t dd+ƒjd u sGJ ‚t dd)ƒjdksRJ ‚t dd)ƒjd*ks]J ‚t dd+ƒjd*kshJ ‚t dd+ƒjdu ssJ ‚t dd+ƒjd u s~J ‚t dd+ƒjd u s‰J ‚t tdƒjd u s”J ‚t tdƒjd u sŸJ ‚tt ttƒ  ¡ tt ttƒƒ tt ttƒƒfksºJ ‚tt tdƒƒ t¡tt tdƒƒtt tdƒ ƒ tt tdƒƒtt tdƒ ƒ  ksåJ ‚tt tdƒ  t¡ttt ttt tdƒƒtt tdƒƒ ƒ ƒ t t tdƒƒ ksJ ‚t!tt dtƒƒsJ ‚t td,dd#td-dd#ƒj"du s.J ‚t dtƒj"d u s9J ‚t#t tdƒj$d.d/ƒd0ksIJ ‚t#t d1d2ƒj$d.d/ƒd3ksYJ ‚t#t ddƒj$d.d/ƒd4ksiJ ‚t#t tdƒj$d.d/ƒd5ksyJ ‚t#t dtƒj$d.d/ƒd6ks‰J ‚t#t ttƒj$d.d/ƒd7ks™J ‚d S )8Nr   r7   r<   é÷ÿÿÿrA   r9   r8   r>   rN   é   ra   r=   r?   iŸ¨ÿÿi Q  éZ   r@   é?   iòÿÿÿé   i ³ r`   c                 S   sJ   t | ƒ| }td|ƒ}| t¡rdS ttd| ¡ ƒ ¡ | ¡  ƒ ¡ dk S )Nr   Fre   )r   r$   r}   rg   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   r   r   r
   r   r   r	   r   rW   r'   r/   r^   r   r   rY   r   r   Úargsr!   r   rG   rX   Úis_positiveÚis_negativeZas_real_imagr   r   r   r   r   r   r)   rZ   Ústrr   )rŒ   rŽ   r   r   r‘   r’   Únirq   r[   r[   r\   Útest_polygammaï   sÀ   $(  $     8,&4*
ÿÿ*:(&
ÿ:
ÿ:
ÿ&     $r   c                  C   s¢  t dtƒjddt dtƒksJ ‚t ddt ƒjddt dtƒd t dtjt ƒd  tdƒ ks2J ‚t ddt ƒjddt dtƒd t dtjt ƒd  ksPJ ‚t dtƒjddt dtƒks`J ‚t ddt ƒjddt dtƒdtd   ksxJ ‚t ddt ƒjdddt t dtƒ ksŽJ ‚t ddt ƒjdddt ddt   t dtƒ ksªJ ‚t ddt ƒjddt dtƒdt  ddt   ddt   ksÌJ ‚t ddt ƒjddt dtƒdt  ddt   ddt   ddt   ksôJ ‚t ddt ƒjddt dtƒdtd   ksJ ‚t ddt ƒjdd	d
t dtƒdtd   ddt d   ks/J ‚t ddt ƒjdd	d
t dtƒdtd   ddt d   ddt d   ksYJ ‚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‹J ‚t dtt ƒjddt dtt ƒks J ‚t dtt ƒjddt dtt ƒksµJ ‚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óJ ‚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s1J ‚t ddt t d ƒjdd	d
t dtdt  ƒdtdt  d   ksWJ ‚t ddt t tddƒ ƒ} | jdd| kspJ ‚t dtt tddƒ ƒ} | jdd	d| ksˆJ ‚t dtd	djddttƒtt	ƒd  tdƒd  ks¦J ‚t dtƒjddtd d  td  tdƒd  }t
|tƒsÇJ ‚|jdksÏJ ‚d S )Nr   TrF   r8   r7   r=   rA   r9   F©rG   Zmultinomialra   )rG   ÚbasicrU   rB   r`   )rA   )r$   r/   rX   r   rW   r   r0   r   r!   r	   Ú
isinstancer   Úpoint)ÚeÚp2r[   r[   r\   Útest_polygamma_expand_funcn  s”    (ÿ ÿÿÿÿÿ(ÿ4ÿ
ÿ$
ÿ4
ÿ$ÿÿ
ÿ
ÿ
ÿ$ÿÿ
ÿ$ÿÿ
ÿ$
ÿ
ÿ2r¤   c                  C   s4  t tƒtksJ ‚t tƒtksJ ‚t t ƒtksJ ‚t tt ƒtks#J ‚t t t ƒtks.J ‚t dƒtks6J ‚t dƒtks>J ‚t dƒtksFJ ‚t dƒtksNJ ‚t dƒt ksWJ ‚t dƒtddƒt ksdJ ‚dd	„ } | dd
ƒsoJ ‚| dd
ƒsvJ ‚| dd
ƒs}J ‚| ddƒs„J ‚| ddƒs‹J ‚| ddƒs’J ‚| ddƒs™J ‚| ddƒs J ‚| d
dƒs§J ‚| ddƒs®J ‚t tƒ t	¡t
dtƒks¼J ‚t tƒ t¡ttd ƒt ksÍJ ‚t tƒjd u sÖJ ‚t tdd ¡ t
dtƒksåJ ‚t tddjd u sðJ ‚t tddjd u sûJ ‚t tddjd u sJ ‚t tdd t
¡t
dtƒksJ ‚d S )Nr„   rA   r   r7   r>   rN   r…   c                 S   sF   t | ƒ| }t|ƒ}| t¡rdS tt| ¡ ƒ ¡ | ¡  ƒ ¡ dk S )NFre   )r   r   r}   rg   r1   r‰   r[   r[   r\   rŒ   ³  s
   
$ztest_digamma.<locals>.tr8   r9   r=   rC   r   r<   FrU   )r   r   r   r   r
   r   r   r/   r^   r'   r$   r   rZ   Úfdiffr™   rš   )rŒ   r[   r[   r\   Útest_digamma¡  s<   "&r¦   c                   C   s¬  t tƒjddtdtƒksJ ‚t dt ƒjddtdtƒd tdtddƒt ƒd  tdƒ ks2J ‚t dt ƒjddtdtƒdtd   ksIJ ‚t dt ƒjdddt tdtƒ ks^J ‚t dt ƒjdddt ddt   tdtƒ ksyJ ‚t dt ƒjddtdtƒdt  ddt   ddt   ksšJ ‚t dt ƒjddtdtƒdt  ddt   ddt   ddt   ksÁJ ‚t tt ƒjddtdtt ƒksÔJ ‚d S )	NTrF   r   r8   r7   rA   r9   r=   )r   r/   rX   r$   r   r   r0   r[   r[   r[   r\   Útest_digamma_expand_funcÕ  s,   ,ÿÿÿÿ(ÿ4ÿÿr§   c                   C   sD  t tƒtksJ ‚t tƒdksJ ‚t dƒtd d ksJ ‚t dƒtd d d ks*J ‚t dƒtd d tddƒ ks;J ‚t tdd	 t¡tdtƒksKJ ‚t tdd	 t¡t tƒ t	¡ t¡ks`J ‚t tdd	 
¡ t	dtƒksoJ ‚t tdd	jd u szJ ‚t tdd	jd u s…J ‚t tdd	jd u sJ ‚t tdd	 t	¡t	dtƒks J ‚d S )
Nr   r7   r8   ra   r9   r<   r=   FrU   )r%   r   r   r	   r   r/   r^   r'   r   r$   r¥   rZ   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J ‚t dt ƒjddtdtƒdtd   ks6J ‚t dt ƒjdddtdtƒdtd   ddt d   ksVJ ‚t dt ƒjdddtdtƒdtd   ddt d   ddt d   ks~J ‚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®J ‚t tt ƒjddtdtt ƒksÁJ ‚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ýJ ‚d S )	Nr8   TrF   r7   r=   Frž   r9   )r%   r/   rX   r$   r   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u sJ ‚tdƒtu sJ ‚tdƒtu s&J ‚tdƒdks.J ‚tdƒdks6J ‚td	ƒtdƒks@J ‚td
ƒtdƒksJJ ‚tdddd} t| ƒtt| ƒƒks]J ‚t|  ƒtu sfJ ‚t| d ƒtd|  d  tt	ƒ t| ƒ t| d t
j ƒ ƒksˆJ ‚ttƒtu sJ ‚tt ƒtu s™J ‚ttt ƒtu s£J ‚tt t ƒtu s®J ‚ttƒtu s¶J ‚ttƒtu s¾J ‚ttdd	ƒƒ}dtd	ƒ ttdd	ƒƒ td
ƒ tdƒ tdƒ tdƒ }t|ƒ ¡ |ksìJ ‚| ¡ | ¡ ksöJ ‚ttdd
ƒƒ}dtd
ƒ ttd	d
ƒƒ td	ƒ tdƒ tdƒ tdƒ }t|ƒ ¡ |ks%J ‚| ¡ | ¡ ks0J ‚ttddƒƒ}dtdƒ tdƒ ttddƒƒ tdƒ tdƒ }t|ƒ ¡ |ks[J ‚| ¡ | ¡ ksfJ ‚ttdd
ƒd ƒ}tdƒ tdƒ ttd	d
ƒƒ d	td
ƒ  d	t t	  }t|ƒ ¡ |ks–J ‚| ¡ | ¡ ks¡J ‚ttddƒd ƒ}tdƒ tdƒ tdƒ ttddƒƒ d	tdƒ  d	t t	  }t|ƒ ¡ |ksÕJ ‚| ¡ | ¡ ksàJ ‚ttƒ t¡tdtƒksïJ ‚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sBJ ‚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‰J ‚ttƒ d"¡tttƒƒks™J ‚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àJ ‚|ttƒ d"¡ t¡ ¡ ksñJ ‚t ttƒƒtt tƒƒks J ‚t tdƒƒtu sJ ‚t tdƒƒtt dƒƒksJ ‚t tt ƒƒt tƒks(J ‚ttd$dd%ƒj!du s6J ‚ttd$dd&ƒj!d'u sDJ ‚ttd$dd(ƒj!d'u sRJ ‚ttd$dd)ƒj!d'u s`J ‚ttd$dd*ƒj!d u snJ ‚ttd$dd+ƒj!d u s|J ‚ttd$dd,ƒj!d u sŠJ ‚ttd$ƒƒj!d u s–J ‚tt
jƒj!du s¡J ‚tdƒj!d'u s«J ‚ttddƒƒj!d'u s¸J ‚ttƒj!d u sÂJ ‚tdd	t  ƒj!d u sÐJ ‚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>  s   
 ztest_loggamma.<locals>.<lambda>c                   S   s   t tƒ d¡S )Nr8   )r!   r/   r¥   r[   r[   r[   r\   rª     s    rA   rB   r   r7   r8   r9   r=   ra   r1   Trr   é   rD   r>   r–   é   rO   rp   rˆ   r?   é   rC   é	   r<   r`   r—   é   )Úforceih  iì  Zintractableéx   Úvr‚   )ÚzeroF©Únegative)rR   )r“   )Z	imaginaryr5   c                 S   s&   t dt ƒjt| d ¡ |ksJ ‚d S )Nr7   r—   )r!   r/   Z_eval_nseriesZgetn)ÚNÚMr[   r[   r\   ÚtNe  s   &ztest_loggamma.<locals>.tN)"r+   Ú	TypeErrorr*   r!   r   r   r   r    r   r	   r   rW   r
   r   r   r   r   Údoitr1   r/   rY   r$   r   r   Únseriesr(   rX   ZremoveOrb   r^   Úcancelr   r   rZ   )r1   ÚLÚEÚs1Ús2r¸   r[   r[   r\   Útest_loggamma  s´   D::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s#J ‚t ddt ƒjtddttd d  td d  ttd ƒ ksEJ ‚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swJ ‚d S )Nr   r7   r9   r—   r8   r`   r<   ra   rˆ   r=   r>   r®   )r$   r/   r»   r   r(   rb   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 J ‚d S )Nr7   r   )Zlogx)r   r/   r$   r   r   Úas_leading_termr0   )rj   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	u s#J ‚t|ƒjd u s,J ‚t|ƒjdu s5J ‚t|ƒjdu s>J ‚ttƒjd u sGJ ‚d S )
Nr1   T)rµ   r3   rŠ   r2   Úor‚   r   F)r   r    rZ   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u s4J ‚t|ƒjd u s=J ‚t|ƒjd u sFJ ‚t|ƒjd u sOJ ‚t|ƒjd u sXJ ‚t|ƒjd u saJ ‚t|tj ƒjdu smJ ‚t|tj ƒjdu syJ ‚d S )Nr/   Tr‚   r0   r´   ÚzFr   Úqr2   r‹   r¢   )Zevenrµ   )r   r    r™   r   rW   )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J ‚tttddƒƒ ¡ tttddƒƒks(J ‚tt tddƒdƒ ¡ d ƒdk s:J ‚tttddƒdƒ ¡ d ƒdk sLJ ‚d S )Nr9   r@   r8   gs«?—Æ0²?g•Ö&è.>gÍ`P
!e@)r&   r   r/   r   r"   rg   r[   r[   r[   r\   Útest_issue_14450›  s   (($(rÊ   c                  C   s$   t dddd} tt| ƒtƒsJ ‚d S )Nrq   T)r3   rR   )r   r    r    )rq   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ƒ ¡s0J ‚t	tt|ƒƒ tt	|ƒd t	|ƒ d  | tt	tƒdt	|ƒ d  ƒ|d|fƒ ¡s\J ‚t	ttdƒƒtt	tƒƒkskJ ‚tddd	}t	tt|ƒƒ t|d | d  | tt	tƒdt	|ƒ d  ƒ|d|fƒ ¡s™J ‚tt
dƒt
u s¢J ‚ttdƒ ¡ tu s­J ‚tddƒdks¶J ‚tddƒdks¿J ‚td
dƒdksÈJ ‚tddƒtdƒksÓJ ‚ttjdƒttƒksßJ ‚tddƒtksèJ ‚tddƒtd ksóJ ‚tdd
ƒtu süJ ‚tdd
ƒtd d ks
J ‚td
d
ƒd
td  d ksJ ‚ttdƒ t¡ttƒtdtƒ ks.J ‚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sdJ ‚ttd dƒjddttƒtd  kszJ ‚ttd dƒjdddttd  ttƒ ks“J ‚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ÆJ ‚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J ‚ttdƒ t¡ttd ƒksJ ‚ttdƒ t¡ttƒtttd
dƒ ƒ ttd ƒ ks;J ‚ttd
ƒ t¡ttd
dƒ ttd ƒ tttd
dƒ ƒ ttd ƒ ksbJ ‚ttddƒd
ddjdksrJ ‚ttjd
ddjdks€J ‚tddddjdksJ ‚tdd
ddjdksšJ ‚tdd
ddjdks§J ‚tdd
ddjdks´J ‚td
d
ddjdksÁJ ‚d S )Nr   )ÚProductr   Ú_kr7   r=   r8   Tr‚   r9   r:   r;   rF   FrP   rˆ   r<   ra   é7   r?   é   rA   rU   rT   gffffffæ?)Zsympy.concrete.productsrÌ   r   r   r#   r/   Zdummy_eqr	   r    r   r   r   rº   r   r   rW   r   r
   rY   r$   rX   r   r1   r^   rZ   )rÌ   r   rÍ   r[   r[   r\   Útest_multigamma¦  sŒ   
ÿÿÿ&
ÿ &
ÿ (*ÿ,ÿ, ÿ"ÿ*ÿ,ÿFÿ"ÿ
ÿ
ÿÿ
ÿ rÐ   c                   C   sx   t tƒ t¡dt ksJ ‚t dt ƒ t¡tdƒksJ ‚t ttƒƒ t¡tdƒks+J ‚t ttƒƒ t¡dt ks:J ‚d S )Nr7   r8   )r    r/   rÃ   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   ry   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+   rf   r,   r{   r-   r|   r.   r~   r/   r0   r1   r4   r]   r_   rc   rk   r€   rƒ   r   r¤   r¦   r§   r¨   r©   rÁ   rÂ   rÄ   rÆ   rÉ   rÊ   rË   rÐ   rÑ   r[   r[   r[   r\   Ú<module>   sZ     (D		F134`
;