
    sgt                        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      ZC ed      ZD edd      ZE edd      ZFd ZGd ZHd ZId ZJd  ZKd! ZLd" ZMd# ZNd$ ZOd% ZPd& ZQd' ZRd( ZSd) ZTd* ZUd+ ZVd, ZWd- ZXd. ZYd/ ZZd0 Z[y1)2    )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            	         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(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      t	        d      k(  sJ t        t
        j                        t        t              k(  sJ t        t        dd            t        t              t
        j                  z  k(  sJ t        t        d	d            t        t              t        dd
      z  k(  sJ t        t        dd            t        t              t        dd      z  k(  sJ t        t        dd            dt        t              z  k(  sJ t        t        dd            t        t              t        d
d      z  k(  sJ t        t        dd            t        t              t        dd      z  k(  sJ t        t        dd            t        t              t        dd      z  k(  sJ t        t        dd            j                  d      t        dd      t        t        d	d            z  k(  sJ t        t        dd            j                  d      t        dd      t        t        dd            z  k(  sJ t        t        dd            j                  d      t        dd      t        t        dd            z  k(  sJ t        t        d d            j                  d      t        d!d"      t        t        dd            z  k(  sJ t        t        d#d            j                  d      t        dd      t        t        dd            z  k(  sJ t        t              j                  t              t        t              t        dt              z  k(  sJ t        t        dz
        j                  d      t        t              t        dz
  z  k(  sJ t        t        dz         j                  dd$%      t        t        dz   z  t        t              z  k(  sJ t        t        t                    t        t        t                    k(  sJ t        t        t        t        dd      z               t        t
        j                  z   t        t        t
        j                  z         z  k(  sJ t        t        t        t
        j                  z
              t        t
        j                  t        z         t        t
        j                  z
  z  k(  sJ t        t        t        t        dd
      z               t        t        t        dd
      z         k(  sJ t        dt!        t"        t        z        z  d
z        j$                  d$u sJ t        dt!        t"        t        z        z  d
z        j&                  du sJ t)        d&dd'      } t        |       j*                  d$k(  sJ t)        d&dd(      } t        |       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$k(  sJ y )+Nir   g      Y         f   e                  ii   i iTfunc@   !   iQ   i     ip        1      FrI   mulr1   )nonpositiver4   )positive
noninteger      evaluate)r!   r   r	   r   r   r   Halfr   r
   r   expandr0   diffr%   r   r   r   r   is_nonnegativeis_extended_nonpositiver   is_real)r1   s    e/var/www/html/venv/lib/python3.12/site-packages/sympy/functions/special/tests/test_gamma_functions.py
test_gammara      s   :9??;#8s??=C8q==8q==8q==:3'''=DH$$$!Q DHQVVO333!Q DHXa^$;;;;!Q DHXb!_$<<<<"a!RR[000"a!T"Xhq!n%<<<<"a!T"Xhr2.>%>>>>#q!"d2hxW/E&EEEEQ T"hr2&6uXa^7L&LM M MQ T"hr3&7hq!n8M&MN N N
A D!Xc2%6uXa^7L%LM M M
A D!Xb"%5eHQN6K%KL L L
A D!Xb"%5eHQN6K%KL L L 8==uQx	!Q7777Q<D)U1Xq1u-====Q<De41q5	%(8JJJJU1X%	!"5555uQ!Q/01	
QVVU1qvv:&&' ' ' uQZ()affqj1qvv:&' ' ' uQ!Q/01U1x1~;M5NNNN 9QrT?"1$%44===9QrT?"1$%==EEEsd3A8u$$$sTd3A8t###&..%777U#++u444e$,,555    c                  r    t        t              j                  t              t        t        dz
        k(  sJ y )Nr9   )r!   r2   rewriter    rb   r`   test_gamma_rewriterf   b   s(    8I&)AE*::::rb   c                     t        t        dz         j                  t        dd      dt        t        z  z
  t        dz  t        dz  dz  t        dz  dz  z   z  z   t        t        dz        z   k(  sJ t        t              j                  t        dd      dt        dz   z  t        z   dz
  t        dz   dt        dz  dz  z
  t        dz  dz  z
  t        z   z  z   t        dz   dz  dt        dz  dz  z
  t        dz  dz  z
  t        dz  dz  z   t        dd      dz  z
  t        t        dz  z  dz  z   t        z   z  z   t        t        dz   dz  t        df      z   k(  sJ y )Nr9   r   r;   r:      rC      )r!   r0   seriesr   r
   r)   r%   re   rb   r`   test_gamma_seriesrk   f   sd   Q<q!Q'	JqL1a4Qq2q58!;<<qAwFG G G8??1b!$
AE
Z!#q1urBE"H}z1}Q/N0 ' 	!eaZb!eBhQq!@:q=QR?!RAq"%b!e+B."/1;"< =	=?@!a%!aQSW?U	VV V Vrb   c           	      |   ddl m}  |dd      } || |t        t        t        z        z         || |t        t         t        z        z        z
  }d} || |z   | |t        z  z          || |z   | |t        z  z
        z
  }t        |j                         |j                         z
        j                         dk  S )Nr   )uniformr9   r>   gV瞯<绽|=)sympy.core.randomrm   r   r   r
   absr2   )srI   rm   cexprepsexpr2s          r`   	tn_branchrv   o   s    )1A1Yqt_$%Q)QBrE2B0B(CCD
CS1"s1u*%QWqb3q5j(AAEtvvx%'')#$&&(500rb   c            
         ddl m}  ddlm} t	        t
        d      dk(  sJ t	        t
        t              j                  t              t        t
        dz
  z  t        t               z  k(  sJ t        t	        t               t              t              sJ t        t	        t
        t                     t
              sJ t	        t
        t              j                  t
              t        t
              t        t
              z  t        t
        t              t        t              z  z
   |g ddgddt
        gg t              z
  k(  sJ t	        t        j                   t
              t#        t$              t'        t#        t
                    z  k(  sJ t	        t        j                   dz
  t
              j)                  t              rJ t	        t        j                   dz   t
              j)                  t              rJ t	        t        j                   t
        d      j)                  t              sJ t+        t	        t        j                   dz   t
        d      t	        t        j                   dz   t
              t
              sJ t+        t	        t        j                   dz
  t
        d      t	        t        j                   dz
  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t1        d
t$        z  t2        z        t
        z        t	        dt
              k(  sJ t	        t        t1        dt$        z  t2        z        t
        z        t        d
t2        z  t$        z  t        z        t	        t        t
        t1        t$        t2        z        z        z  k(  sJ t	        dt1        dt$        z  t2        z        t
        z        t	        dt
        t1        t2        t$        z        z        dt$        z  t2        z  z   k(  sJ t5        t	        t
        t                    t	        t5        t
              t5        t                    k(  sJ t5        t	        t
        d            dk(  sJ t7        t4        t	        t
        t8                     sJ t	        dt
              j;                  t
        d      dk(  sJ t	        t        d      dz  t
              j;                  t
        d      dk(  sJ t	        dt
        d      j;                  t
        d      dk(  sJ t	        t
        t
              j;                  t
        d      dk(  sJ t	        t
        dz   t
              j;                  t
        d      dk(  sJ t	        dt
        z  t
              j;                  t
        d      dk(  sJ t	        dt
        dz         j;                  t
        d      dk(  sJ t	        t        d      dz  t
        dz         j;                  t
        d      dk(  sJ t	        dt
        dz   d      j;                  t
        d      dk(  sJ t	        t
        t
        dz         j;                  t
        d      dk(  sJ t	        t
        dz   t
        dz         j;                  t
        d      dk(  sJ t	        dt
        z  t
        dz         j;                  t
        d      dk(  sJ t	        ddt
        z        j;                  t
        d      dk(  sJ t	        t        d      dz  dt
        z        j;                  t
        d      dk(  sJ t	        ddt
        z  d      j;                  t
        d      dk(  sJ t	        t
        dt
        z        j;                  t
        d      dk(  sJ t	        t
        dz   dt
        z        j;                  t
        d      dk(  sJ t	        dt
        z  dt
        z        j;                  t
        d      dk(  sJ t	        t
        d      j=                  t
        t8        d      dt
        z  ddt
        dz   z  z   z  t        d      z  t
        z  t?        t        t
        t        d      z        t
        dz  z  t
        t8        f      z   k(  sJ t	        t
        t              jA                  |       t        t
        z    | t
         dz   t              z  t        t
              z   k(  sJ tC        dd      }t	        |t              jA                  |       t        |z    | | dz   t              z  t        |      z   k(  sJ tC        ddd      }t	        |t              jA                  |       t	        |t              k(  sJ t	        t
        t              jA                  t              t        t
              t        t
        t              z
  k(  sJ t	        dd      tE        d      dt        d      z  z
  k(  sJ t	        t        d      dz  d      t	        t        d      dz  dd      z
  jG                         dk  sJ t	        t        d       dz  d      t	        t        d       dz  dd      z
  jG                         dk  sJ y )Nr   expintmeijergr9   r;   FrX   rE   r?   r>   rD   r:   Tkr3   r4   rU   F   ri   E              uieXQ|e?IC*K;p~2L+	H M   缉ؗҜ<)$'sympy.functions.special.error_functionsry   sympy.functions.special.hyperr{   r#   r0   r1   r\   r   tdrandcplxr!   r    r'   r   r   rZ   r   r
   r   hastnrv   r   r   r   r   r*   r	   _eval_is_meromorphicrj   r)   rd   r   r   evalf)ry   r{   r}   s      r`   test_lowergammar   x   sy   >5aq   a  #q1q5z#qb''9999jQ'+++jHJ'+++a  #ajA.s1v55
"q!fq!QiQ
/	00 0 0 affa DHSa\$9999!&&1*a(,,Z888!&&1*a(,,Z888affa%044Z@@@j!Q7!Q', , ,j!Q7!Q', , , R$$$R$$$Xa^Z000R$$$a1R46*1,-Aq1AAAAa1R46*1,-AaCF1HjAi1o$5667 7 7b)AbDF+A-.2q1R4()AbDF23 3 3 Z1%&*Yq\9Q<*PPPPZ1%&!+++Y
1rc 2333a00A6%???ad1fa 55a;uDDDaU+@@AF$NNNa00A6%???a!eQ44Q:eCCCac1221a8EAAAaQ44Q:eCCCad1fa!e$99!Q?4GGGaQ/DDQJdRRRaQ44Q:dBBBa!eQU#88A>$FFFac1q5!66q!<EEEa1221a8EAAAad1fac"771=FFFa1u-BB1aHEQQQa1221a8EAAAa!eQqS!66q!<EEEac1Q344Q:eCCCa""1b!,	1a!QU)mSW$Q&3qQx=A+=2w)GGH H H 	1gfo!Q$vqb1fa'8!858!CD D DsD!A	1gfo!Q$vqb1fa'8!858!CD D DsD51Aa##F+z!Q/????a##J/58jA>N3NNNNb!	"  1V  Y\  ]_  Y`  1`  !`  `  `  `quqy!$z!B%!)Q'OOVVX[````"vz1%
AbE6A:q5(QQXXZ]bbbbrb   c            
      R   ddl m}  ddlm} t	        dd      dk(  sJ t	        t
        t              j                  t              t        t
        dz
  z   t        t               z  k(  sJ t        t	        t               t              t              sJ t	        t
        t              j                  t
              t	        t
        t              t        t              z   |g ddgddt
        gg t              z   k(  sJ t        t	        t
        t                     t
              sJ t        dd	      }t	        d|      t        |        k(  sJ t	        |d      t        |      k(  sJ t	        t        j                   t
              t#        t$              t'        t#        t
                    z  k(  sJ t	        t        j                   d
z
  t
              j)                  t              rJ t	        t        j                   d
z   t
              j)                  t              rJ t	        t        j                   t
        d      j)                  t              sJ t+        t	        t        j                   d
z   t
        d      t	        t        j                   d
z   t
              t
              sJ t+        t	        t        j                   d
z
  t
        d      t	        t        j                   d
z
  t
              t
              sJ t-        t        t
        t.               sJ t-        t        t
        d      sJ t1        dt              sJ t1        dt              sJ t1        t3        dd
      t              sJ t1        t$        t              sJ t	        d
t5        dt$        z  t6        z        t
        z        t	        d
t
              k(  sJ t	        t        t5        dt$        z  t6        z        t
        z        t        dt6        z  t$        z  t        z        t	        t        t
        t5        t$        t6        z        z        z  t        t              dt        dt$        z  t6        z  t        z        z
  z  z   k(  sJ t	        dt5        dt$        z  t6        z        t
        z        t	        dt
        t5        t6        t$        z        z        dt$        z  t6        z  z
  k(  sJ t	        dt
               | d
t
              t
        dz  z  k(  sJ t9        t	        t
        t                    t	        t9        t
              t9        t                    k(  sJ t-        t8        t	        t
        t.                     sJ t	        t
        t              j;                  |       t        t
        z   | t
         dz   t              z  k(  sJ t	        t
        t              j;                  t<              t        t
              t=        t
        t              z
  k(  sJ t	        dd      dt        d      z  k(  sJ t	        t        d      dz  d      t	        t        d      dz  dd      z
  j?                         dk  sJ t	        t        d       dz  d      t	        t        d       dz  dd      z
  j?                         dk  sJ y )Nr   rx   rz   r?   ri   r9   pTrU   r;   FrX   rE   r|   r>   rD   r:   r   r   r   r   r   ) r   ry   r   r{   r'   r0   r1   r\   r   r   r   r   r   r   r!   r   rZ   r   r
   r   r   r   r*   r	   rv   r   r   r   r   rd   r#   r   )ry   r{   r   s      r`   test_uppergammar      s   >5aq   a  #AE
{3r7'::::jQ'+++a  #1aQ'"q!fq!QiQ"GGH H HjHJ'+++sT"AaA2w&&&auQx'''affa DHT$q']$::::!&&1*a(,,Z888!&&1*a(,,Z888affa%044Z@@@j!Q7!Q', , ,j!Q7!Q', , , ZRC(((ZA&&&R$$$R$$$Xa^Z000R$$$a1R46*1,-Aq1AAAAa1R46*1,-AaCF1HjAi1o$566a!c!B$q&(m#$	%% % % b)AbDF+A-.2q1R4()AbDF23 3 3 b!q!QT 1111Z1%&*Yq\9Q<*PPPPY
1rc 2333a##F+q!tFA2614E/EEEEa##J/58jA>N3NNNNb!  !F  GJ  KM  GN  !N  N  N  Nquqy!$z!B%!)Q'OOVVX[````"vz1%
AbE6A:q5(QQXXZ]bbbbrb   c                     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        z        t        u sJ t        dt         t        z        t        u sJ t        dt              dk(  sJ t        dt              dk(  sJ t        dd      t
        u sJ t        dd      t
        u sJ t        dd      t
        u sJ t        t        dd      d      t
        u sJ t        dd      t
        u sJ t        dd      t         k(  sJ t        dd      t        d	d
      t        z
  k(  sJ t        dd      t        dz  dz  k(  sJ t        dd      t        dz  dz  dz
  k(  sJ t        dd      t        dz  dz  t        dd      z
  k(  sJ t        dd      t        dz  dz  k(  sJ t        dd      dt        dd      t        dz  dz  z   z  k(  sJ t        dd      dt        dz  z  dz  k(  sJ t        dt        j                        t        dz  dz  k(  sJ t        dt        j                        dt        d      z  k(  sJ t        dt        j                        dt        dz  z  k(  sJ d }  | 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  | dd      sJ  | dd      sJ t        dt              j                  t              t        dt              k(  sJ t        dt              j                  t              t        dt              k(  sJ t        dt              j                  t              dt        dt              z  k(  sJ t        t        d      j                  t              t        t        d      k(  sJ t        d      }t        dd      }t        dd       }t        d!d"      }t        d#dd$      }t        |t              j                  t              t        |t              k(  sJ t        |t              j                  t              t        |t              k(  sJ t        |t              j                  t              t        |t              k(  sJ t        |t              j                  t              t        |t              k(  sJ t        |t              j                  t              d|dz   z  t        |      z  t        |dz   t              z  k(  sJ t        ddt        z        j!                  t              dt        ddt        z        z  k(  sJ t        dt              j                  t"              t#        t        dz
        t        z
  k(  sJ t        dt              j                  t"              dt#        t        dz
  d      z  dt        d      z  z
  k(  sJ t        d%d       }t        |t              j                  t"              d|dz   z  t#        t        dz
  |dz          t        |dz         z   z  t        |      z  k(  sJ t        d%dd&      }t        |t%        dt        z  t        z        t        z        t        |t              k(  sJ t        d%d       }t        |t%        dt        z  t        z        t        z        j&                  |t%        dt        z  t        z        t        z  fk(  sJ t        dt              t)        t              t+        dt        z        dz  z
  k(  sJ t        dt              j,                  t         u sJ t        dt               j/                  d'      t        dt               k(  sJ t        dd(      j0                  d)k(  sJ t        dd*      j0                  d)k(  sJ t        dd(      j0                  dk(  sJ t        dd*      j0                  du sJ t        dd*      j0                  J t        dd*      j0                  J t        dd(      j2                  dk(  sJ t        dd(      j2                  d)k(  sJ t        dd*      j2                  d)k(  sJ t        dd*      j2                  du sJ t        dd*      j2                  J t        dd*      j2                  J t        t        d      j0                  J t        t        d      j2                  J t        t        t        t              z  j5                         t7        t        t        t                     t9        t        t        t                    fk(  sJ t;        t        t        d            j                  t<              t=        t        t        d            t=        t        t        d             z
  t=        t        t        d            t=        t        t        d             z   z  k(  sJ t        t        t        d      z  j                  t<              t        t=        t         t?        t7        t        t        d            t9        t        t        d            z        z        z  tA        t        t        d            z  k(  sJ tC        t6        t        dt                    sJ t        t        d+d"      t        d,d"            jD                  du sJ t        dt              jD                  J tG        t        t        d      jI                  d-.            d/k(  sJ tG        t        d0d1      jI                  d-.            d2k(  sJ tG        t        dd      jI                  d-.            d3k(  sJ tG        t        t        d      jI                  d-.            d4k(  sJ tG        t        dt              jI                  d-.            d5k(  sJ tG        t        t        t              jI                  d-.            d6k(  sJ y )7Nr   r9   r>   rC   r;   r:   r@   rP      ri   r?   rA   ii Q  Z   rB   ?   i   i  rh   c                    t        |       |z  }t        d|      }|j                  t              ryt        t        d|j	                               j	                         |j	                         z
        j	                         dk  S )Nr   Frn   )r   r%   r   rp   r2   mr2   r0   rs       r`   tztest_polygamma.<locals>.t  sc    aDFaO559Q&((*QSSU23557%??rb   rE   {   rD   n1n2Tr6   n3r3   n4r   n5)rU   r4   r2   )r4   nonnegativerH   g      @Fg      ab
   r2   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%   r2   r   r	   r   r   r   r   r
   r   rZ   r(   r0   rd   r   r   r\   r   r   argsr"   r   rI   r[   is_positiveis_negativeas_real_imagr   r   r   r   r   r   r*   r_   strr   )r   r   r   r   r   r   nir}   s           r`   test_polygammar      s
   Q###Qr!!!Q"""Q"###Q2"$$$Qq   Qq   Qs"""Qs"""Qs"""Xa^R(C///Q?c!!!Q?zk)))Q?hr2.;;;;Q?b!eAg%%%Q?b!eAgk)))Q?b!eAgA6666Q?b!ebj(((Q?a&%!82q58!CDDDDQ?a"a%i"n,,,Q2q519,,,Q3tAw;...R F2r6M111@ Q7N7Q7N7R8O8Q7N7R8O8Q7N7Q7N7Q7N7Q7N7S!99Q?""4(IaO;;;Q?""4(DAJ666Q?""4(BtAqzM999Q?""4(IaO;;;	B	4	 B	d	#B	t	$B	tT	2BR##D)Yr1-====R##D)Yr1-====R##D)Yr1-====R##D)Yr1-====R##D)bBF^im-KdSUXYSY[\o-]]]]Q!!!!$)Aqs*;(;;;;Q?""8,Q*0LLLLQ?""8,(1q5!2D0Dqay0PPPP	T	"BR##H-"Q(1q5RTWXRXBYAYCGQ<BP 2QQZ[]Q^2_ _ _ _ 	sDd3AQ	!A#b&)!+,	!Q??? 	sD!AQ	!A#b&)!+,11a1Q3r69J19L5MMMM Rx{S2Y]:::: R  I--- Q"""-1qb1AAAAQ((E111Q))U222Q((D000Q))T111R**222R**222Q((D000Q((E111Q))U222Q))T111R**222R**222Q?&&...Q?&&... i2,,.	!R !!2i2&6#789 9 91a!**3/	!Q 3	!Q'7#883yA;ORUW`abdeWfVfRg;ghi i i	!Q((-S!DIaO,R	!Q-@@AABB3yQRTUCWWX X X R1a)))VC$/d1KLTTX\\\\Q?""***yQ%%%+,>>>yc"((2(./>AAAyQ%%%+,???yA$$r$*+/LLLLyA$$r$*+/OOOOyA$$r$*+/LLLLrb   c                     t        dt              j                  d      t        dt              k(  sJ t        ddt        z        j                  d      t        dt              dz  t        dt        j                  t        z         dz  z   t        d      z   k(  sJ t        ddt        z        j                  d      t        dt              dz  t        dt        j                  t        z         dz  z   k(  sJ t        dt              j                  d      t        dt              k(  sJ t        ddt        z         j                  d      t        dt              dt        dz
  z  z
  k(  sJ t        ddt        z         j                  d      dt        z  t        dt              z   k(  sJ t        ddt        z         j                  d      dt        z  ddt        z   z  z   t        dt              z   k(  sJ t        ddt        z         j                  d      t        dt              dt        z  z   ddt        z   z  z   ddt        z   z  z   k(  sJ t        ddt        z         j                  d      t        dt              dt        z  z   ddt        z   z  z   ddt        z   z  z   ddt        z   z  z   k(  sJ t        ddt        z         j                  d      t        dt              dt        dz  z  z
  k(  sJ t        ddt        z         j                  dd	
      t        dt              dt        dz  z  z
  ddt        z   dz  z  z
  k(  sJ t        ddt        z         j                  dd	
      t        dt              dt        dz  z  z
  ddt        z   dz  z  z
  ddt        z   dz  z  z
  k(  sJ t        ddt        z         j                  dd	
      t        dt              dt        dz  z  z
  ddt        z   dz  z  z
  ddt        z   dz  z  z
  ddt        z   dz  z  z
  k(  sJ t        dt        t        z         j                  d      t        dt        t        z         k(  sJ t        dt        t        z         j                  d      t        dt        t        z         k(  sJ t        dddt        z  z   t        z         j                  dd	
      t        dt        dt        z  z         dt        dt        z  z   dz  z  z
  ddt        z   dt        z  z   dz  z  z
  ddt        z   dt        z  z   dz  z  z
  k(  sJ t        dddt        z  z   t        z         j                  dd	
      t        dt        dt        z  z         dt        dt        z  z   dz  z  z
  ddt        z   dt        z  z   dz  z  z
  ddt        z   dt        z  z   dz  z  z
  k(  sJ t        ddt        z  t        z   dz         j                  dd	
      t        dt        dt        z  z         dt        dt        z  z   dz  z  z
  k(  sJ t        ddt        z  t        z   t        dd      z         } | j                  d      | k(  sJ t        dt        t        z   t        dd      z         } | j                  dd	      | k(  sJ t        dt        d	      j                  d      t        t              t        t              dz  z
  t        d      dz  z
  k(  sJ t        dt              j                  d      t        dz  dz  z   t        dz  z
  t        d      dz  z   }t        |t              sJ |j                  dk(  sJ y )Nr   TrH   r:   r9   r?   rC   r;   FrI   multinomialri   )rI   basicrX   rD   rh   )rC   )r%   r0   r[   r   rZ   r   r1   r   r"   r
   
isinstancer   point)ep2s     r`   test_polygamma_expand_funcr   n  s    Q?!!t!,	!Q???Q!###.!QIa!4Q66Q?@ @ @Q!###.!QIa!4Q667 7 7Q?!!t!,!Q  QQ&&D&1!Q!QU)#$ $ $QA%%4%0	!i1  QA%%4%0	!aQi)Aq/)* * *QA%%4%0!Q!A#1q5	)Aq1uI56 6 6QA%%4%0!Q!A#1q5	)Aq1uI51q5	AB B BQA%%4%0!Q!AqD& ! ! !QA%%4U%C!Q!AqD& 1a!eaZ</0 0 0QA%%4U%C!Q!AqD& 1a!eaZ</!QUQJ,>? ? ?QA%%4U%C!Q!AqD& 1a!eaZ</	1q51*	!a%!|	$$ $ $ QA%%4%0!QU  QA%%4%0!QU  QAaC!$++5+I!Q1W1qs7Q,.	1q51Q3;
	A!a//	00 0 0 QAaC!$++5+I!Q1W1qs7Q,.	1q51Q3;
	A!a//	00 0 0 Q!a!$++5+I!Q1W1qs7Q,./ / /!QqS1Wx1~-.A888!###!QUXa^+,A88U8+q000RU+222=c"gai#a&(*+ + +	2q		 	 d	 	+ad1f	4qs	:QqT"W	DBb$88urb   c                     t        t              t        k(  sJ t        t              t        k(  sJ t        t               t        k(  sJ t        t        t        z        t        k(  sJ t        t         t        z        t        k(  sJ t        d      t        k(  sJ t        d      t        k(  sJ t        d      t        k(  sJ t        d      t        k(  sJ t        d      t
         k(  sJ t        d      t        dd      t
        z
  k(  sJ d }  | 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  | d	d
      sJ  | dd      sJ t        t              j                  t              t        dt              k(  sJ t        t              j                  t              t        t        dz
        t
        z
  k(  sJ t        t              j                  J t        t        d      j                         t        dt              k(  sJ t        t        d      j                  J t        t        d      j                  J t        t        d      j                  J t        t        d      j                  t              t        dt              k(  sJ y )Nr   rC   r   r9   r@   rP   r   c                    t        |       |z  }t        |      }|j                  t              ryt        t        |j	                               j	                         |j	                         z
        j	                         dk  S )NFrn   )r   r    r   rp   r2   r   s       r`   r   ztest_digamma.<locals>.t  s]    aDFAJ55>71335>##%-.002U::rb   r:   r;   r?   rE   r   r>   FrX   )r    r   r	   r   r   r   r   r0   rd   r(   r%   r   r_   fdiffr   r   )r   s    r`   test_digammar     sd   3<32;"B3<21R4=BA2b5>R2;#2;#2;#1:1:*$$$1:"b)J6666; Q7N7Q7N7R8O8Q7N7R8O8Q7N7Q7N7Q7N7Q7N7S!991:d#yA6661:h'8AE?Z+GGGG1:%%%1e$**,	!Q???1e$,,4441e$008881e$008881e$,,Y79Q?JJJrb   c            	         t        t              j                  d      t        dt              k(  sJ t        dt        z        j                  d      t        dt              dz  t        dt	        dd      t        z         dz  z   t        d      z   k(  sJ t        dt        z         j                  d      t        dt              dt        dz
  z  z
  k(  sJ t        dt        z         j                  d      dt        z  t        dt              z   k(  sJ t        dt        z         j                  d      dt        z  ddt        z   z  z   t        dt              z   k(  sJ t        dt        z         j                  d      t        dt              dt        z  z   ddt        z   z  z   ddt        z   z  z   k(  sJ t        dt        z         j                  d      t        dt              dt        z  z   ddt        z   z  z   ddt        z   z  z   ddt        z   z  z   k(  sJ t        t        t        z         j                  d      t        dt        t        z         k(  sJ y )	NTrH   r   r:   r9   rC   r;   r?   )r    r0   r[   r%   r   r   r1   re   rb   r`   test_digamma_expand_funcr     s3   1:$'9Q?:::1Q3<D)!QIa!Q!);<Q>>QGH H H26?!!t!,!Q!QU)#$ $ $1q5>  d +	!i1  1q5>  d +	!aQi)Aq/)* * *1q5>  d +!Q!A#1q5	)Aq1uI56 6 61q5>  d +!Q!A#1q5	)Aq1uI51q5	AB B B1q5>  d +!QU  rb   c                     t        t              t        k(  sJ t        t              dk(  sJ t        d      t        dz  dz  k(  sJ t        d      t        dz  dz  dz
  k(  sJ t        d      t        dz  dz  t	        dd      z
  k(  sJ t        t
        d	      j                  t              t        dt
              k(  sJ t        t
        d	      j                  t              t        t
              j                  t              j                  t              k(  sJ t        t
        d	      j                         t        dt
              k(  sJ t        t
        d	      j                  J t        t
        d	      j                  J t        t
        d	      j                  J t        t
        d	      j                  t              t        dt
              k(  sJ y )
Nr   r9   r:   ri   r;   r>   r?   FrX   )r&   r   r	   r
   r   r0   rd   r(   r   r%   r   r_   r   r   re   rb   r`   test_trigammar     s   C=CB<1A;"a%'!!!A;"a%'A+%%%A;"a%'HQN2222A&..t4Q
BBBA&..x8I&..x89 9 9 Au%++-1a@@@Au%--555Au%11999Au%11999Au%--i8IaOKKKrb   c            	      6   t        dt        z        j                  d      t        dt              dz  t        dt	        dd      t        z         dz  z   k(  sJ t        dt        z         j                  d      t        dt              dt        dz  z  z
  k(  sJ t        dt        z         j                  dd      t        dt              dt        dz  z  z
  ddt        z   dz  z  z
  k(  sJ t        dt        z         j                  dd      t        dt              dt        dz  z  z
  ddt        z   dz  z  z
  ddt        z   dz  z  z
  k(  sJ t        dt        z         j                  dd      t        dt              dt        dz  z  z
  ddt        z   dz  z  z
  ddt        z   dz  z  z
  ddt        z   dz  z  z
  k(  sJ t        t        t
        z         j                  d      t        dt        t
        z         k(  sJ t        ddt        z  z   t
        z         j                  dd      t        dt
        dt        z  z         dt
        dt        z  z   dz  z  z
  ddt
        z   dt        z  z   dz  z  z
  ddt
        z   dt        z  z   dz  z  z
  k(  sJ y )	Nr:   TrH   r9   r?   Fr   r;   )r&   r0   r[   r%   r   r1   re   rb   r`   test_trigamma_expand_funcr     s   AaC=T*!QIa!Q!);<Q>>? ? ?AE?!!t!,!Q!AqD& ! ! !AE?!!t!?!Q!AqD& 1a!eaZ</0 0 0AE?!!t!?!Q!AqD& 1a!eaZ</!QUQJ,>? ? ?AE?!!t!?!Q!AqD& 1a!eaZ</	1q51*	!a%!|	$$ $ $ AE?!!t!,!QU  A!GaK ''Tu'E!Q1W1qs7Q,.	1q51Q3;
	A!a//	00 0 0rb   c                     t        t        d        t        t        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(  sJ t        d      t        d      k(  sJ t        d	      t        d
      k(  sJ t        ddd      } t        |       t        t        |             k(  sJ t        |        t        u sJ t        | dz        t        d|  dz   z  t        t              z  t        |       z  t        | dz  t        j                  z         z        k(  sJ t        t              t        u sJ t        t               t        u sJ t        t        t        z        t        u sJ t        t         t        z        t        u sJ t        t              t        u sJ t        t              t        u sJ t        t        dd            }dt        d      z  t        t        dd            z   t        d	      z   t        d      z   t        d      z   t        d      z   }t!        |      j#                         |k(  sJ |j%                         |j%                         k(  sJ t        t        dd	            }dt        d	      z  t        t        dd	            z   t        d      z   t        d      z   t        d      z   t        d      z   }t!        |      j#                         |k(  sJ |j%                         |j%                         k(  sJ t        t        dd            }dt        d      z  t        d      z   t        t        dd            z   t        d      z   t        d      z   }t!        |      j#                         |k(  sJ |j%                         |j%                         k(  sJ t        t        dd	      dz
        }t        d       t        d      z
  t        t        dd	            z   dt        d	      z  z   dt        z  t        z  z
  }t!        |      j#                         |k(  sJ |j%                         |j%                         k(  sJ t        t        dd      d
z
        }t        d       t        d      z
  t        d      z
  t        t        dd            z   dt        d      z  z   dt        z  t        z  z
  }t!        |      j#                         |k(  sJ |j%                         |j%                         k(  sJ t        t&              j)                  t&              t+        dt&              k(  sJ t        dt&        t-        t&              z   z  t/        t&              z         j1                  t&        d	      }t        dt&        z         dz
  dt&        z  z  t        t&        t        z        dz  z
  d	t        dt&        z        z
  t&        z  dz  z   t3        t&        dz        z   t        t&              t&        dz  z  dz  z   }||z
  j5                  d      j7                         dk(  sJ t        dt&        z        j9                  t&              }dt&        z  t        j                  z
  t        dt&        z        z  dt&        z  z
  t        dt        z        dz  z   t&        dz  z   t&        dz  dz  z
  t&        dz  d z  z   t3        t&        dz        z   }||z
  j5                  d      j7                         dk(  sJ t        t&              j;                  d!      t        t        t&                    k(  sJ t        t&              j9                  t&              j=                         }|t        t&               t>        t&        z  z
  t        dz  t&        dz  z  dz  z   t&        dz  t+        dd      z  d
z  z   t        d	z  t&        d	z  z  dz  z   t&        dz  t+        d	d      z  d"z  z   t3        t&        d
z        z   k(  sJ |t        t&              j;                  d!      j9                  t&              j=                         k(  sJ tA        t        t&                    t        tA        t&                    k(  sJ tA        t        d            t        u sJ tA        t        d            t        tA        d            k(  sJ tA        t        t                     tA        t              k(  sJ t        t        d#d$            jB                  du sJ t        t        d#d%            jB                  d&u sJ t        t        d#d'            jB                  d&u sJ t        t        d#d(            jB                  d&u sJ t        t        d#d)            jB                  J t        t        d#d*            jB                  J t        t        d#d+            jB                  J t        t        d#            jB                  J t        t        j                        jB                  du sJ t        d      jB                  d&u sJ t        t        dd            jB                  d&u sJ t        t              jB                  J t        ddt        z  z         jB                  J d, } |dd        |dd        |dd        |dd        |d	d	        |dd       y )-Nc                      t        dd      S )Nr:   r;   )r"   re   rb   r`   <lambda>ztest_loggamma.<locals>.<lambda>  s    hq!n rb   c                  >    t        t              j                  d      S )Nr:   )r"   r0   r   re   rb   r`   r   ztest_loggamma.<locals>.<lambda>  s    x{'8'8'; rb   rC   rD   r   r9   r:   r;   r?   ri   r2   Tr~      rF   r@   r      rQ   r|   r   rA      rE   	   r>   rh   r      )forceih  i  intractablex   vr   )zeroFnegative)rT   )r   )	imaginaryr6   c                 x    t        dt        z        j                  t        |       j                         |k(  sJ y )Nr9   r   )r"   r0   _eval_nseriesgetn)NMs     r`   tNztest_loggamma.<locals>.tNe  s1    !}**1*2779Q>>>rb   )"r,   	TypeErrorr+   r"   r	   r   r   r!   r   r
   r   rZ   r   r   r   r   r   doitr2   r0   r\   r%   r   r   nseriesr)   r[   removeOrj   rd   cancelr   r   r_   )r2   LEs1s2r   s         r`   test_loggammar     s	   
9,-
;<B<2B<2A;"A;!A;!A;#a&   A;#a&   sD40AA;#eAh-'''QB<2AaC=CQBFDH 4U1X =eAaC!&&L>Q QRRRRB<2RC=CAbD>S   QBrE?c!!!C=CC=C"a!A
3q6	HXa^,,s1v5A>RH3r7RAq> A%%%335ACCE>>"a!A
3q6	HXa^,,s1v5A>RH3r7RAq> A%%%335ACCE>>"a!A
3q6	CFXhq!n55A>RHAq> A%%%335ACCE>>"a1$%A	Q#a&8HQN33aAh>1RGAq> A%%%335ACCE>>"a1$%A	R3r7SV#hx1~&>>3q6IAaCPRFRAq> A%%%335ACCE>>A;A)Aq/111	!QQZ.3q6)	*	2	21	2	:Bqs8)a-!A#	QrT1	,C!Ha/?/B	BQq!tW	LAq!tA
BG$'//1Q666	!A#		a	 B
A#,AaC	 1Q3	&QrT1	4	"
!tCx
Q$t)
$&'1g
.B"W4(113q888A;}-U1X>>>	!		A		%	%	'B#a&:a<'"a%1*R-7!Q$yA:Nq:PP
Aad
3Ai1o-c1245adG< < < <!$$]3::1=DDFFFFXa[!Xil%;;;;Xa[!R'''Xa[!Xil%;;;;Xrc]#y~555F3./774???F3T*+33u<<<F3./775@@@F3D12::eCCCF3D12::BBBF3$/088@@@F3T*+33;;;F3K ((000AFF##t+++A;%'''HRO$,,555A;&&&A!G$$,,,?q!Hq!Hq!Hq!Hq!Hq!Hrb   c                     t        ddt        z        j                  t        d      t        t               t        dz  z
  t        dz  dz  z
  t	        t        dz        z   k(  sJ t        ddt        z        j                  t        d      t        t        dz  dz  z   t        dz  dz  z   t	        t        dz        z   k(  sJ t        ddt        z        j                  t        d	      dt        dz  z  dt        d
z  z  z   dt        dz  z  z   t        dz  z
  d
t        dz  z  dz  z   t	        t        d	z        z   k(  sJ y )Nr   r9   r;   r   r:   rh   r>   ri   r   r?   r@   r   )r%   r0   r   r   r)   rj   re   rb   r`   test_polygamma_expansionr   o  s(   Q!$$Q!$,	Q!A#1R!AqD')* * *Q!##A#+	AqDF
QT!Va1g%& & &Q!$$Q"$-	!Q$1a4!AqD& 1a4'!AqD&(2Qq"uX=> > >rb   c                      t        dt        z         t        dddt        z  z         z   t        j                  z   } | j                  t        t               t        j                  k(  sJ y )Nr9   r   )logx)r   r0   r%   r   r   as_leading_termr1   )rs   s    r`   test_polygamma_leading_termr   y  sR    1XI	!Q1W--<T  ! ,<<<rb   c                  j   t        ddd      } t        dd      }t        dd      }t        ddd	      }t        |       j                  d	u sJ t        |      j                  J t        |      j                  du sJ t        |      j                  du sJ t        t              j                  J y )
Nr2   T)r   r4   r   r3   or   r   F)r   r!   r_   r5   )r2   r   r   r   s       r`   test_issue_8657r   ~  s    sT40AsD!AsT"AsT51A8u$$$8###8t###8t###8###rb   c                  |   t        dd      } t        dd      }t        dd      }t        dd      }t        d	d
      }t        dd
      }t        ddd      }t        |       j                  du sJ t        |      j                  J t        |      j                  J t        |      j                  J t        |      j                  J t        |      j                  J t        |t        j                  z         j                  du sJ t        |t        j                  z
        j                  du sJ y )Nr0   Tr   r1   r   zFr   qr3   r   r   )evenr   )r   r!   r   r   rZ   )r0   r1   r   r   r   r   r   s          r`   test_issue_8524r     s    sT"AsT"AsU#AsU#AsD!AsE"As-A84'''8'''8'''8'''8'''8'''QVV((D000QVV((E111rb   c                     t        t        dd      t              j                         t        t        dd      t              k(  sJ t	        t        t        dd            j                         t	        t        t        dd            k(  sJ t        t        t        dd      d      j                         dz
        dk  sJ t        t	        t        dd      d      j                         dz
        dk  sJ y )Nr;   rB   r:   gs?0?g&.>g`P
!e@)r'   r   r0   r   r#   rp   re   rb   r`   test_issue_14450r     s    hq!na(..0Jx1~q4QQQQa!Q(..0Jq(1a.4QQQQz(1a.!,224}DELLLz(1a.!,224|CDtKKKrb   c                  V    t        ddd      } t        t        |       t              sJ y )Nr}   T)r4   rT   )r   r   r!   )r}   s    r`   test_issue_14528r     s$    sDd3AeAh&&&rb   c                     ddl m}  t        d      }t        d      }t	        t
        |      j                  t        ||dz
  z  dz  z   | t        t
        d|z
  dz  z         |d|f      z        sJ t        t	        t
        |            j                  t        t        |      dz
  t        |      z  dz  z   | t        t        t
              dt        |      z
  dz  z         |d|f      z        sJ t        t	        t
        d            t        t        t
                    k(  sJ t        dd	      }t        t	        t
        |            j                  t        |dz
  |z  dz  z   | t        t        t
              dt        |      z
  dz  z         |d|f      z        sJ t	        t        d      t        u sJ t	        t        d      j                         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z  k(  sJ t	        dd
      t"        u sJ t	        dd
      t        dz  dz  k(  sJ t	        d
d
      d
t        dz  z  dz  k(  sJ t	        t
        d      j%                  t
              t        t
              t'        dt
              z  k(  sJ t	        t
        d      j%                  t
              t!        t              t        t
              z  t        t
        t        j                  z
        z  t'        dt
              z  t!        t              t        t
              z  t        t
        t        j                  z
        z  t'        dt
        t        j                  z
        z  z   k(  sJ t	        t
        dz
  d      j)                  d      t        t
              t
        dz
  z  k(  sJ t	        t
        dz   d      j)                  dd      t
        t
        dz   z  t        t
              z  k(  sJ t	        t
        dz
  d      j)                  d      t!        t              t        t
              z  t        t
        t        j                  z         z  t
        d
z  d
t
        dz  z  z
  t
        t+        dd      z  z   t+        d
d      z
  z  k(  sJ t	        t
        dz
  d
      j)                  d      t        t+        d
d      z  t        t
              dz  z  t        t
        t        j                  z         z  t
        dz  dt
        dz  z  z
  dt
        d
z  z  dz  z   dt
        dz  z  z
  t
        t+        dd      z  z   t+        d
d      z
  z  k(  sJ t	        t,        d      j/                  t              t        t,        dz
        k(  sJ t	        t,        d      j/                  t              t!        t              t        t,        t+        d
d      z
        z  t        t,        dz
        z  k(  sJ t	        t,        d
      j/                  t              t        t+        d
d      z  t        t,        dz
        z  t        t,        t+        d
d      z
        z  t        t,        dz
        z  k(  sJ t	        t+        dd      d
d      j0                  dk(  sJ t	        t        j                  d
d      j0                  dk(  sJ t	        ddd      j0                  dk(  sJ t	        dd
d      j0                  dk(  sJ t	        dd
d      j0                  dk(  sJ t	        dd
d      j0                  dk(  sJ t	        d
d
d      j0                  dk(  sJ y )Nr   )Productr   _kr9   r?   r:   Tr   r;   r<   r=   rH   FrR   r   r>   ri   7   rA      rC   rX   rW   gffffff?)sympy.concrete.productsr   r   r   r$   r0   dummy_eqr
   r!   r   r   r	   r   r   r   rZ   r   r   r\   r%   r[   r   r2   rd   r_   )r   r   r   s      r`   test_multigammar     s   /sA	tBa$$R!QU)A+%6a1r61*n%Aqz2&3 4 4 4 Z1%&//ilQ6F!66 1ila	"oq5H&H IBPQST:V1W X X XZ1%&%	!*====sT"AZ1%&//a!eQYq[0Aila	"oq%889B1:F1G H H H c1$$$b!!!#r)))aq   aq   aq   c13///affa DH,,,ar!!!ar!t###as"""ar1uQw&&&aqQwqy(((a  #uQx	!Q'????a  #tBxa'8q166z9J'J!Q(r(58+E!aff*,==i1qvv:>VV(W W W W a!eQ&&D&1U1Xq1u5EEEEa!eQ&&De&<1q5	aA   a!eQ&&D&1T"XeAh5Fa!&&j6a4!AqD&=1Xb!_+<<x1~M6O O O Oa!eQ&&D&1R!Q5GaRS5Sa!&&j6a4!AqD&=2ad7194r!Q$w>8BPQ?ARRU]^_abUcc6e e e e a##I.)AE2BBBBa##I.$r(!hq!n$%3&&/A&637 7 7 7a##I."hq!n2D!a%3"1x1~#56377@Q7G3H H H H hr1oq59AAUJJJaffa%088EAAAaU+33u<<<aU+33u<<<dA.66%???c1u-55===aU+33t;;;rb   c                     t        t              j                  t              dt        z  k(  sJ t        dt        z         j                  t              t        d      k(  sJ t        t	        t                    j                  t              t        d      k(  sJ t        t        t                    j                  t              dt        z  k(  sJ y )Nr9   r:   )r!   r0   r   r   r   r   re   rb   r`   test_gamma_as_leading_termr     s    8##A&!A#---Q<''*ad222Q=((+qt333Q=((+qs222rb   N)\sympy.core.functionr   r   
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   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,   ro   r-   r   r.   r   r/   r   r0   r1   r2   r5   ra   rf   rk   rv   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   re   rb   r`   <module>r     s   1 ! > > " - > : I I H H 6 9 E E C C H  H  H 7   % 2 '@ @ 3K
3K
3
3TA6H;V1CcL.cb|M~0f1Kh"L.0$]@>=
	$2"L'9<v3rb   