o
    *Î®cáq  ã                   @   s  d dl 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# d dl$m%Z%m&Z&m'Z' d dl(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 d dl1m2Z2 d dl3m4Z4 d dl5m6Z6 d dl m7Z7 d dl8m9Z9 d dl:m;Z<m=Z>m?Z@ edƒZAedƒZBedddZCedddZDdd„ ZEdd„ ZFd d!„ ZGd"d#„ ZHd$d%„ ZId&d'„ ZJd(d)„ ZKd*d+„ ZLd,d-„ ZMd.d/„ ZNd0d1„ ZOd2d3„ ZPd4d5„ ZQd6d7„ ZRd8d9„ ZSd:d;„ ZTd<d=„ ZUd>d?„ ZVd@dA„ ZWdBdC„ ZXdDS )Eé    )Úexpand_func)Ú
EulerGamma)ÚIÚRationalÚnanÚooÚpiÚzoo)ÚS)ÚDummyÚSymbol)Ú	factorial)Úharmonic)ÚAbsÚ	conjugateÚimÚre)ÚexpÚ	exp_polarÚlog)Útanh)Úsqrt)ÚcosÚsin)Ú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©rE   Úmulr.   )Únonpositiver1   )ÚpositiveÚ
nonintegerç      ð¿©Úevaluate)r   r   r   r	   r   r
   ÚHalfr   r   r   Úexpandr-   Údiffr"   r   r   r   r   Úis_nonnegativeÚis_extended_nonpositiver   Úis_real)r.   © r\   úY/tmp/pip-target-vg8gfxp4/lib/python/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 )Nr5   )r   r/   Ú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 )Nr5   r   r7   r6   é   r?   é   )r   r-   Úseriesr   r   r&   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   )Úuniformr5   r:   gVçž¯Ò<ç»½×Ùß|Û=)Úsympy.core.randomre   r   r   r   Úabsr/   )ÚsrE   re   ÚcÚexprÚepsÚexpr2r\   r\   r]   Ú	tn_brancho   s   
.0rn   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©Úmeijergr5   r7   FrT   rA   éüÿÿÿr;   r:   r@   r6   TÚkr0   ©r1   rQ   éF   rb   éE   ì           ÀÊu™iÑeßXQ|e?ˆIëCò*K;p~•Ô2ÛL¬+	H éúÿÿÿéM   ç¼‰Ø—²Òœ<)$Ú'sympy.functions.special.error_functionsrp   Úsympy.functions.special.hyperrr   r    r-   r.   rX   r   ÚtdÚrandcplxr   r   r$   r   r
   rV   r   r   r   ÚhasÚtnrn   r   r   r   r   r'   r   Ú_eval_is_meromorphicrc   r&   r_   r   r   Úevalf)rp   rr   rt   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   ro   rq   r;   rb   r5   ÚpT©rQ   r7   FrT   rA   rs   r:   r@   r6   rv   rx   ry   rz   r{   ) r|   rp   r}   rr   r$   r-   r.   rX   r   r~   r   r   r   r   r   r
   rV   r   r   r   r€   r   r'   r   rn   r   r   r   r   r_   r    rƒ   )rp   rr   r…   r\   r\   r]   Útest_uppergamma¾   sZ   ,*ÿ$ÿÿ*(ÿ
ÿ 
ÿ"&.(6>r‡   c                  C   sš  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 ddƒtu siJ ‚t ddƒt kssJ ‚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sJ ‚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	ƒs&J ‚| ddƒs.J ‚| ddƒs6J ‚| ddƒs>J ‚| ddƒsFJ ‚| ddƒsNJ ‚| d	dƒsVJ ‚| ddƒs^J ‚t dtƒ t¡t dtƒksnJ ‚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sBJ ‚t d	tƒ t¡d	ttd dƒ d	tdƒ  ks\J ‚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ƒ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 sJ ‚t dd+ƒjd u s'J ‚t dd+ƒjd u s2J ‚t d	d)ƒjdks=J ‚t dd)ƒjd*ksHJ ‚t dd+ƒjd*ksSJ ‚t d	d+ƒjdu s^J ‚t dd+ƒjd u siJ ‚t dd+ƒjd u stJ ‚t td	ƒjd u sJ ‚t tdƒjd u sŠJ ‚t tdƒ ¡ t tdƒk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dƒƒd	 tt tdƒƒd	  ƒ tt tdƒƒttt tdƒƒ  t t tdƒƒ  ksJ ‚t!t d,d-ƒ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 sKJ ‚d S )0Nr   r5   r:   é÷ÿÿÿr?   r<   rL   é   r6   rb   r7   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   r/   ©Úmr/   r-   Úrr\   r\   r]   Út  s
   

&ztest_polygamma.<locals>.trA   é{   r@   Ún1Ún2Tr3   Ún3r0   Ún4r†   Ún5)rQ   r1   r/   )r1   ÚnonnegativerD   g      @Fg      Àgffffff@g      ð?ÚaÚb)#r"   r/   r   r   r   r	   r   r   r   r
   rV   r%   r-   r_   r   r   rX   r   r   Úargsr   rE   rW   Úis_positiveÚis_negativerƒ   Úas_real_imagr   r   r   r   r   r   r'   r[   )r   r’   r“   r”   r•   r–   Únirt   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 ‚d S )Nr   TrD   r6   r5   r;   r?   r7   F©rE   Úmultinomialrb   )rE   Úbasic)r"   r-   rW   r
   rV   r   r.   r   )Úer\   r\   r]   Útest_polygamma_expand_funci  sˆ    (ÿ ÿÿÿÿÿ(ÿ4ÿ
ÿ$
ÿ4
ÿ$ÿÿ
ÿ
ÿ
ÿ$ÿÿ
ÿ$ÿÿ
ÿ$
ÿ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ˆ   r?   r   r5   r<   rL   r‰   c                 S   sF   t | ƒ| }t|ƒ}| t¡rdS tt| ¡ ƒ ¡ | ¡  ƒ ¡ dk S )NFrf   )r
   r   r€   rh   r/   r   r\   r\   r]   r   §  s
   
$ztest_digamma.<locals>.tr6   r7   r;   rA   r‘   r:   FrT   )r   r   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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 )	NTrD   r   r6   r5   r?   r7   r;   )r   r-   rW   r"   r   r   r.   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   r5   r6   rb   r7   r:   r;   FrT   )r#   r   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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 )	Nr6   TrD   r5   r;   Fr    r7   )r#   r-   rW   r"   r   r.   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 )Nr6   r7   )r   r\   r\   r\   r]   Ú<lambda>  s   
 ztest_loggamma.<locals>.<lambda>c                   S   s   t tƒ d¡S )Nr6   )r   r-   r¥   r\   r\   r\   r]   rª     s    r?   r@   r   r5   r6   r7   r;   rb   r/   Tru   é   rB   r<   é
   é   rM   rs   rŒ   r=   é   rA   é	   r:   ra   ©r/   é   )Úforceih  iì  Úintractableéx   Úvr†   )ÚzeroF©Únegative)rP   )r—   )Ú	imaginaryr3   c                 S   s&   t dt ƒjt| d ¡ |ksJ ‚d S )Nr5   r°   )r   r-   Ú_eval_nseriesÚgetn)ÚNÚMr\   r\   r]   ÚtNY  s   &ztest_loggamma.<locals>.tN)"r)   Ú	TypeErrorr(   r   r   r   r   r   r   r   r
   rV   r	   r   r   r   r   Údoitr/   r-   rX   r"   r   r   Únseriesr&   rW   ÚremoveOrc   r_   Úcancelr   r   r[   )r/   Ú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   r5   r7   r°   r6   ra   r:   rb   rŒ   r;   r<   r¯   )r"   r-   rÁ   r   r&   rc   r\   r\   r\   r]   Útest_polygamma_expansionc  s   (ÿ&ÿFÿ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 )
Nr/   T)r¸   r1   rŽ   r0   Úor†   r…   F)r   r   r[   r2   )r/   rŽ   rÊ   r…   r\   r\   r]   Útest_issue_8657m  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†   r.   r·   ÚzFr…   Úqr0   r   r£   )Úevenr¸   )r   r   r›   r
   rV   )r-   r.   rÌ   r…   rÍ   r   r£   r\   r\   r]   Útest_issue_8524y  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 )Nr7   r>   r6   gs«?—Æ0²?g•Ö&è.>gÍ`P
!e@)r$   r   r-   rƒ   r    rh   r\   r\   r\   r]   Útest_issue_14450Š  s   (($(rÐ   c                  C   s$   t dddd} tt| ƒtƒsJ ‚d S )Nrt   T)r1   rP   )r   Ú
isinstancer   )rt   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…   Ú_kr5   r;   r6   Tr†   r7   r8   r9   rD   FrN   rŒ   r:   rb   é7   r=   é   r?   rT   rS   gffffffæ?)Úsympy.concrete.productsrÓ   r   r   r!   r-   Údummy_eqr   r   r   r   r   rÀ   r   r
   rV   r   r	   rX   r"   rW   r   r/   r_   r[   )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 )Nr5   r6   )r   r-   Úas_leading_termr
   r   r   r\   r\   r\   r]   Útest_gamma_as_leading_termÐ  s   "rÛ   N)YÚsympy.core.functionr   Ú
sympy.corer   Úsympy.core.numbersr   r   r   r   r   r	   Úsympy.core.singletonr
   Úsympy.core.symbolr   r   Ú(sympy.functions.combinatorial.factorialsr   Ú%sympy.functions.combinatorial.numbersr   Ú$sympy.functions.elementary.complexesr   r   r   r   Ú&sympy.functions.elementary.exponentialr   r   r   Ú%sympy.functions.elementary.hyperbolicr   Ú(sympy.functions.elementary.miscellaneousr   Ú(sympy.functions.elementary.trigonometricr   r   r|   r   r   r   Ú'sympy.functions.special.gamma_functionsr   r   r   r    r!   r"   r#   r$   Ú&sympy.functions.special.zeta_functionsr%   Úsympy.series.orderr&   Úsympy.core.exprr'   r(   Úsympy.testing.pytestr)   rg   r*   r~   r+   r   r,   r   r-   r.   r/   r2   r^   r`   rd   rn   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z,4`
;