
    \hS                        S SK Jr  S SKJrJrJrJrJrJrJ	r	J
r
JrJrJrJrJrJrJrJrJrJrJrJrJrJrJr  S SKJr  S SKJr  S SKJr  S SK J!r!  S SK"J#r#  S SK$J%r%  S S	K&J'r'  S S
K(J)r)  S SK*J+r+J,r,  S SK-J.r.J/r/J0r0J1r1  S SK2J3r3J4r4J5r5J6r6  S SK J7r8  S SK J9r9J:r:  S SK;J<r<J=r=J>r>  S SK?J@r@  S SKAJBrB  S SKCJDrDJErEJFrF  S SKGJHrH  S SKIJJrJ  S SKKJLrLJMrM  S rNS rOSKS jrPS rQ\3S 5       rRS rSS rTS rUS rVS  rWSLS! jrX\5S" 5       rYS# rZS$ r[S% r\S& r]S' r^S( r_S) r`SMS* jra\5S+ 5       rbS, rc\3S- 5       rd\5S. 5       reS/ rf\5S0 5       rgS1 rhS2 riS3 rjS4 rkS5 rl\5S6 5       rmS7 rn\5S8 5       roS9 rp\6S: 5       rq\5S; 5       rr\5S< 5       rs\5S= 5       rt\5S> 5       ru\5S? 5       rvS@ rw\5SA 5       rxSB rySC rz\5SD 5       r{\3SE 5       r|\3SF 5       r}\3SG 5       r~SH rSI rgJ)N    )	randrange)ShiftAShiftBUnShiftAUnShiftBMeijerShiftAMeijerShiftBMeijerShiftCMeijerShiftDMeijerUnShiftAMeijerUnShiftBMeijerUnShiftCMeijerUnShiftDReduceOrderreduce_orderapply_operatorsdevise_planmake_derivative_operatorFormulahyperexpandHyper_Function
G_Functionreduce_order_meijerbuild_hypergeometric_formula)Sum)Tuple)Expr)I)S)symbols)binomial)	Piecewise)hypermeijerg)zabc)XFAILraisesslowtooslow)verify_numerically)Rationalpi)exp	exp_polarlog)atanh)sqrt)asincossin)besseli)erf)gamma
lowergammac                  x   [        [        [        SS5      [        R                  4[        SS5      [        SS5      4[
        * 5      5      [
        [        S5      -  * [        [        [        [        -  5      S-  [
        5      -  S-  [        [        5      [        [        [
        5      5      -  S[        [
        5      -  -  -   :X  d   e[        [        [        SS5      S// [        SS5      /[        SS5      S	/[
        5      5      S[
        [        S
5      -  -  S[        [        5      -  [        [        [
        5      5      -  [        [
        5      -  S[        [        SS5      [
        5      -  [
        [        S
5      -  -  -
  -  [        [        SS5      5      -  [        [        SS5      5      -  :X  d   eg )N      z1/3            r   z2/3)r   r#   r.   r   Halfr%   r;   r1   r   r/   r4   r9   r$   r:        ]/var/www/auris/envauris/lib/python3.13/site-packages/sympy/simplify/tests/test_hyperexpand.pytest_branch_bugrH   #   ss   uhr1oqvv6!QRSUV8X[\Z\]^	
AeHZ	!B$ 1155a7
r(3tAw<
47
+	,, , , wA2B!Q8H8TUWX>[\J]_`ab	!QuX+qbz#d1g,.tAw6:1~q<* :**+QuX+:6 6 	77<Xa^7L	MMRS[\]_`SaMb	cc c crF   c            	      2   [        [        / / [        5      5      [        [        5      :X  d   e[        [        SS/S/[        * 5      [        -  5      [	        S[        -   5      :X  d   e[        [        / [
        R                  /[        S-  * S-  5      5      [        [        5      :X  d   e[        [        [        / [        S5      /[        S-  * S-  5      -  5      [        [        5      :X  d   e[        [        [        S5      [        S5      /[        S5      /[        S-  5      [        -  5      [        [        5      :X  d   e[        [        [        S[        5      [        S-  -  [        S[        45      R                  5       [        5      (       d   eg )NrC   r?      3/21/2r   )r   r#   r%   r0   r2   r   rD   r6   r7   r5   
isinstancer   r!   r&   doitr   rE   rF   rG   test_hyperexpandrO   ,   s5    uRQ'(CF222uaVaS1"-a/0CAJ>>>uR!&&AqD5734A>>>qrAeH:1uQw778CFBBBuah%1AeH:q!tDQFG7  c(1a.A-1ay9>>@$GGGGrF   c           
      <   [        [        X[        5      5      nUR                  [        5      (       a  gU(       d  g0 nUR                  [        1-
  nU(       aZ  [        U5       H  u  p[        U5      U-  Xi'   M     [        S [        U6 R                  U5       5       5      (       d  O	U(       a  MZ  / SQu  ppU(       a  / SQu  pp[        [        X[        5      R                  U5      UR                  [        [        5      R                  U5      [        XXS9$ )NFTc              3   P   #    U  H  oR                   =(       a    US :*  v   M     g7f)r   N)
is_Integer).0r'   s     rG   	<genexpr>can_do.<locals>.<genexpr>E   s      J4Iq<<*AF*4Is   $&)r?   r=   r>   rC   )r?   r>   r=   )r&   r'   r(   d)r   r#   r%   hasfree_symbols	enumeraterandcplxanyr   substnreplacer1   r0   )apbq	numericaldiv
lowerplanerreplrandsymsnair&   r'   r(   rW   s                 rG   can_dorj   9   s    E"!$%AuuU||D~~#H
x(EA{3DH )JE2JOOD4IJJJ ( !LQ1%qbad#			)S!&&t,	Qq rF   c                     [        [        R                  /[        SS5      /5      (       d   e[        / S[        SS5      S/5      (       d   e[        [        SS5      SS/SS/5      (       d   e[        [        SS5      /[        SS5      [        SS5      [        R                  S/5      (       d   e[        [        S	S5      [        SS5      /[        S
S5      S/5      (       d   e[        [        S	S5      /[        SS5      [        R                  /5      (       d   e[        [        S	S5      [        SS5      /S/5      (       d   eg )N	   r?   rC   r@   rJ   r=   r>   rV   )rj   r   rD   r.   rE   rF   rG   
test_roachro   P   s    166(Xa^,----"q(1a.!,----8B?Aq)Aq622228Aq>"Xb!_hr1oqvvq$QRRRR8B?HRO4xA6JKKKK8B?%Q'@AAAA8B?HRO4qc::::rF   c            	      8   [        [        SS5      S/[        SS5      [        R                  [        SS5      /5      (       d   e[        [        SS5      /[        SS5      S/5      (       d   e[        [        SS5      [        R                  S/[        SS5      [        SS5      /5      (       d   e[        / SQ[        R                  S/5      (       d   e[        [        R                  /[        SS5      [        SS5      [        SS5      /5      (       d   eg )	Nr=   r?   rC   rJ   r>   r@   rC   r?   r>   rV   )rj   r.   r   rD   rE   rF   rG   test_roach_failrr   \   s    8B?A&!Q!Q(PQQQQ8Aq>"Xa^Q$788888B?AFFA.!Q!Q0PQQQQ)affa[))))166(Xb!_hr1oxAOPPPPrF   c                     SSK Jn   [        [        / S/[        5      5      U L d   e[        [        S/S/[        5      5      U L d   e[        [        SS/S/[        5      5      S:X  d   e[        SS[        5       [        5       /S[        5       /5      (       d   e[        [        SS	[        5      5      S[        S
-  -   :X  d   eg )Nr   oor=   rV   rC   rn   i)r=   rC   )rV   r?   )sympy.core.numbersru   r   r#   r%   rj   r[   rt   s    rG   test_polynomialrw   g   s    %uR"q)*b000ubTB4+,222uaVbT1-.!3332r8:xz2S(*4EFFFFuWeQ/0A!G;;;rF   c            
      	   [        [        S/[        /[        5      5      [        [        [        * S-   -  [        S-  * S[        -  -   [        [        S-
  -  -   S-
  -  [	        [        5      -  [        [        S-
  [        5      -  -   S-
  :X  d   e[        [        SS/S/[        5      5      S[        -  S[        [        * S-   5      -  [        S-  -  -
  :X  d   e[        [        [        R                  S/[        SS5      /[        5      5      SS[        -  S-
  -  [        [        [        5      5      [        [        5      -  S-  -   :X  d   e[        [        [        R                  [        R                  /[        SS5      /[        5      5      S[        -  S-   S-  [        [        [        * S-   5      -  -  S	[        -  S-
  [        [        [        5      5      -  S[        [        SS5      -  -  -  -   :X  d   e[        [        SS/[        SS5      /[        5      5      SS[        -  S-
  -  [        [        [        5      5      [        [        5      S[        -  S-
  -  [        [        * S-   5      -  -  -
  :X  d   e[        [        [        SS5      S-
  SS/[        R                  S/[        5      5      [        [        5      [        [        S	S
5      -  [        S	S5      -
  -  [        [        [        5      5      -  S[        S-  -  S[        -  -   S	-
  S-  [        -  -   S	[        [        * S-   5      -  S[        S-  -  -  -
  :X  d   e[        [        S[        R                  -   SS/SS/[        5      5      S[        [        [        * S-   5      S-  [        R                  -   5      -  [        -  :X  d   e[        [        S/[        S/[        5      5      [        [        * S-  [        R                  -   -  [        [        S-
  S[        [        5      -  5      -  [        [        5      -  [        [        * S-  S-   -  [        [        S[        [        5      -  5      -  [        [        5      -  -   :X  d   eg )Nr?   rC   r>   rV   r=   r@   rm   rJ   rB   rA   i    #   )r   r#   r&   r%   r0   r;   r2   r   rD   r.   r3   r4   r5   r'   r8   r:   rE   rF   rG   test_hyperexpand_basesr|   p   s   uaS1#q)*	AQK!Q$1q!a%y0145c!f<1q5! 	 	!! ! ! uaVaS!,-A#qb1f+ad8J1JJJJuaffa[8Aq>*:A>?
AaC!GuT!W~d1g-a//0 0 0uaffaff-A/?CD	A1aaR!Vn%Q37DaM
!1QA%6#6
7	88 8 8 uaVhq!n%5q9:b!A#'l
tAw-a!A#'*4Q<7
8?9 9 9 9uhr1o11a81661+qIJQ8Aq>!HQN23E$q'NBq!t8bd?Q
"1
$	%'(aR!V}bAg'>	?? ? ? ua!&&j!Q/!Q;<
3tQBF|A~&'')* * * uaS1a&!,-	QBqD166M71q5!DG)44U1X=
qbdQh-1T!W9-
-eAh
6	77 7 7rF   c            	         [        [        [        [        R                  [        -   /[        R                  /[
        5      5      S[        [
        5      -   S[        -  -  S-  S[        [
        5      -
  S[        -  -  S-  -   :X  d   e[        [        [        [        SS5      [        -   /S[        -  /[
        5      5      SS[        -  S-
  -  [
        * S-   [        R                  -  S-   S[        -  S-   -  -  :X  d   eg )NrC   rV   r?   r=   )r   r#   r&   r   rD   r%   r4   r.   rE   rF   rG   test_hyperexpand_parametricr~      s    ua!_qvvh:;QK2a4 "a$q'kRT%:1%<<= = =ua"a1!45!ua@AqsQw<1"q&166)A-A::; ; ;rF   c                  >   SSK Jn   U " [        [        S-  [	        S/S[        S5      /[        S-  * 5      -  5      5      [        [        S[        -  5      -  [        S-  * [
        R                  -   [        S[        -  5      -  -   [
        R                  -
  :X  d   eg )Nr   simplifyrJ   r?   r>   rK   )	sympy.simplify.simplifyr   r   r%   r#   r   r7   rD   r6   r   s    rG   test_shifted_sumr      s{    0K1UA3AeH1u%E EFGS1X:!Q$QqS11AFF:; ; ;rF   c                  6    [        [        S5      S-   5      S-  $ )zSteer clear of integers.    
   2   )r   r   rE   rF   rG   _randratr      s    Yr]R ##rF   c                 T    [        5       [        [        5       -  -   [        SU -   -  -   $ )z*Polys is not good with real coefficients. rC   )r   r   )offsets    rG   r[   r[      s"    :(*$q!f*~55rF   c            	      N   SSK Jn   U " 5       R                  nU GH  nUR                  UR                  5      n0 n[        UR                  5       H  u  pV[        U5      XF'   M     UR                  U5      nUR                  R                  U5      R                  S5      nUR                  n[        X7R                  [        [        5      U5      (       d   eUR                  UR                   -  S   R                  U5      R                  S5      n	[        UR                  [        [        5      U	R                  [        [        5      U5      (       d   eXR                   R#                  S 5      R%                  U5      -  n
UR&                  UR                   -  n[)        X5       Hv  u  p[        UR                  U5      R                  [        [        5      UR                  U5      R                  S5      R                  [        [        5      U5      (       a  Mv   e   GM
     g )Nr   )FormulaCollectionnonrepsmallc                 $    U R                  S5      $ )Nr   )rewrite)ts    rG   <lambda>test_formulae.<locals>.<lambda>   s    2rF   )sympy.simplify.hyperexpandr   formulaefuncr%   rZ   r    r[   r]   closed_formr   r^   r_   r1   r0   CB	applyfuncdiffMzip)r   r   formulahreprh   symr   r%   clderiv1deriv2d1d2s                 rG   test_formulaer      s   < "++HLL#0FA{CH 1 FF3K))..s3;;MJII!((C8!<<<< ii'))#Q',,S199-H+%%sZZ	37< < 	< <99&& (  DG$WYY&&)FBbggcl**9c:ggcl**=9AA)SQSTV V V V *1 rF   c            	         SSK Jn   U " 5       R                  nU GH  nX    GH  n[        UR                  R
                  UR                  R                  UR                  R                  UR                  R                  UR                  5      n0 nUR                   H  n[        5       XV'   M     UR                  U5      nUR                  R                  U5      nUR                  n[        XGU5      (       d   eUR                  UR                   -  S   R                  U5      n	[        XyU5      (       d   eXR                   R#                  U5      -  n
UR$                  UR                   -  n['        X5       H7  u  p[        UR                  U5      UR                  U5      U5      (       a  M7   e   GM     GM     g )Nr   )MeijerFormulaCollection)r   r   r   r$   r   anr`   bmra   r%   r    r[   r]   r   r^   r   r   r   r   r   )r   r   sigr   gr   r   r   r%   r   r   r   r   r   s                 rG   test_meijerg_formulaer      sV   B&(11H}G		#A C#: ' sA!--2237K		Aaa(((( ))gii'+005Bkq))))yy~~a((FYY*Ff-"''#,a8888 .' % rF   c                 :    [         U R                  [         5      -  $ N)r%   r   )fs    rG   opr      s    QVVAY;rF   c                  p   [        [        S/S5      [        S/S5      [        5      / :X  d   e[        [        5         [        [        S/S5      [        SS5      [        5        S S S 5        [        [        5         [        [        S/S/5      [        S/S/5      [        5        S S S 5        [        [        5         [        [        S// 5      [        [        S5      // 5      [        5        S S S 5        S [        S5       5       u  pnUS[        -  -  n[        X/U/[        5      n[        U S-   U4U/[        5      n[        [        U[        [        U S-   U4U/5      [        X4U/5      [        5      [        5      U[        5      (       d   e[        U S-   US-
  4U/[        5      n[        [        U[        [        U S-   US-
  4U/5      [        X4U/5      [        5      [        5      U[        5      (       d   eg ! , (       d  f       GN= f! , (       d  f       GNv= f! , (       d  f       GN@= f)Nr   rE   rC   r?   rL   c              3   8   #    U  H  n[        U5      v   M     g 7fr   r[   rS   rh   s     rG   rT   test_plan.<locals>.<genexpr>        0x!(1++x   r>   )r   r   r%   r*   
ValueErrorr   ranger   r#   r^   r   r   )a1a2b1r   h2s        rG   	test_planr      s   ~qc2.A3#Q(+-. . .	
	NA3+^B-CQG 
	
	NA3,naS1#.FJ 
	
	NA3+^QuXJ-KQO 
 1uQx0JBB!A#IBrha A	Q|bT1	%BoaNBFB<"6B8bT*A	/024 	A   
 
QQ"q	)BoaNBFBF#3bT:B8bT*A	/024 	A   ' 
					s#   'H;*H<1H&
H
H#&
H5c                     SS[        S5      p!n S[        S5      pC[        XU4X445      n[        U S-   US-   US-   4US-   US-   45      n[        Xe[        5      n[	        U[        U" [        5      / 5      n[        UR                  [        5      n	[        [        UR                  Xy5      UR                  -  S   U" [        5      [        5      (       d   e[        XS-
  US-
  4US-
  US-
  45      n[        Xe[        5      n[        [        UR                  Xy5      UR                  -  S   U" [        5      [        5      (       d   eg )NrC   r?   rL   r>   z5/2r   )r   r   r   r%   r   r   r   r^   r   r   r   )
r   r   a3r   b2r   r   opsr   derivs
             rG   test_plan_derivativesr      s    AqxBB%|bX.A	aaa026262B	CB
bQ
C1adBA$QSS!,EqssC/3Q7ABBBB	!VR!V,rAvrAv.>	?B
bQ
CqssC/3Q7ABBBBrF   c                     S [        S5       5       u  pn[        U /U/[        5      n[        SS5      b   e[        SS5      b   e[        S[	        S5      5      b   e[        X4X!4[        5      n[        [        X5      R                  U[        5      U[        5      (       d   e[        XS-   4X!4[        5      n[        [        US-   U5      R                  U[        5      U[        5      (       d   e[        US-   U 4X!4[        5      n[        [        US-   U5      R                  U[        5      U[        5      (       d   eUS-   XS-   4nXU4n[        [        XV5      5      u  pxUR                  U 4:X  d   eUR                  U4:X  d   e[        [        X8[        5      [        XV[        5      [        5      (       d   eg )	Nc              3   8   #    U  H  n[        U5      v   M     g 7fr   r   r   s     rG   rT   +test_reduction_operators.<locals>.<genexpr>  r   r   r>   r?   r   r=   rC   rL   rJ   )r   r#   r%   r   r   r^   applyr   r   r   r`   ra   r   )	r   r   r   r   r   r`   ra   r   r   s	            rG   test_reduction_operatorsr     s   0uQx0JBBrdRD!Aq!$$$q"%%%q!E(#+++	x"1	%Bk"!''2.A6666	F|bXq	)Bk"q&"%++Ar2B::::	Q|bXq	)Bk"q&"%++Ar2B:::: q&"1f	B
"B^B34ID77re77reoab)5+;Q????rF   c            
         S [        S5       5       u  pp#n[        X4X#U4[        5      n[        [        S 5        [        [        S 5        [        [        U 5      R                  U[        5      [        U S-   U4X#U4[        5      [        5      (       d   e[        [        U5      R                  U[        5      [        XS-   4X#U4[        5      [        5      (       d   e[        [        U5      R                  U[        5      [        X4US-
  X44[        5      [        5      (       d   e[        [        U5      R                  U[        5      [        X4X#S-
  U4[        5      [        5      (       d   e[        [        U5      R                  U[        5      [        X4X#US-
  4[        5      [        5      (       d   eg )Nc              3   8   #    U  H  n[        U5      v   M     g 7fr   r   r   s     rG   rT   'test_shift_operators.<locals>.<genexpr>'       8x!(1++xr   r@   c                      [        S5      $ )Nr   )r   rE   rF   rG   r   &test_shift_operators.<locals>.<lambda>*      vayrF   c                      [        S5      $ )NrC   )r   rE   rF   rG   r   r   +  r   rF   rC   )
r   r#   r%   r*   r   r^   r   r   r   r   )r   r   r   r   b3r   s         rG   test_shift_operatorsr   &  sc   8uQx8BBBrha(A
:()
:()fRjq"%ub1fb\BB<'KQOOOOfRjq"%ubq&\BB<'KQOOOOfRjq"%ubXQ7G'KQOOOOfRjq"%ubXFB7G'KQOOOOfRjq"%ubXQ7G'KQOOOOrF   c            
      >   S [        S5       5       u  pp#n[        X4X#U4[        5      n[        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        X4X#U4S[        5      n[        UR                  U[        5      [        U S-
  U4X#U4[        5      [        5      (       d   e[        X4X#U4S[        5      n[        UR                  U[        5      [        XS-
  4X#U4[        5      [        5      (       d   e[        X4X#U4S[        5      n[        UR                  U[        5      [        X4US-   X44[        5      [        5      (       d   e[        X4X#U4S[        5      n[        UR                  U[        5      [        X4X#S-   U4[        5      [        5      (       d   e[        X4X#U4S	[        5      n[        UR                  U[        5      [        X4X#US-   4[        5      [        5      (       d   eg )
Nc              3   8   #    U  H  n[        U5      v   M     g 7fr   r   r   s     rG   rT   (test_ushift_operators.<locals>.<genexpr>5  r   r   r@   c                  &    [        SSS[        5      $ )NrC   rE   r   r   r%   rE   rF   rG   r   'test_ushift_operators.<locals>.<lambda>8  s    xb!Q7rF   c                  &    [        SSS[        5      $ )NrE   r=   r   r   r%   rE   rF   rG   r   r   9  s    xE1a8rF   c                  &    [        SSS[        5      $ )Nr   )r   r=   rC   r   r   rE   rF   rG   r   r   :  s    xj!Q?rF   c                  &    [        SSS[        5      $ )Nr   rC   r   r   r   rE   rF   rG   r   r   ;  s    xa;rF   r   rC   r?   )
r   r#   r%   r*   r   r   r^   r   r   r   )r   r   r   r   r   r   ss          rG   test_ushift_operatorsr   4  s   8uQx8BBBrha(A
:78
:89
:?@
:;<"BB<A.AagganeR!VRL22,BAFFFF"BB<A.AagganeRaL22,BAFFFF"BB<A.AagganeRHrAvr.>BAFFFF"BB<A.AagganeRHr62.>BAFFFF"BB<A.AagganeRHrrAv.>BAFFFFrF   c                    SSK Jn  SSKJn  [	        [        XX#[        5      5      nUR                  [
        5      (       a  gU" U" USSSSSSSS95      nU(       d  g0 n[        [        XX#[        5      R                  [        1-
  5       H  u  p[        U	5      X'   M     [        [        XX#[        5      R                  U5      UR                  U5      [        5      $ )aF  
This helper function tries to hyperexpand() the meijer g-function
corresponding to the parameters a1, a2, b1, b2.
It returns False if this expansion still contains g-functions.
If numeric is True, it also tests the so-obtained formula numerically
(at random values) and returns False if the test fails.
Else it returns True.
r   )expand)
unpolarifyFT)force
power_base	power_expmulr2   multinomialbasic)sympy.core.functionr   $sympy.functions.elementary.complexesr   r   r$   r%   rX   rZ   rY   r[   r^   r]   )r   r   r   r   numericr   r   re   rf   rh   ri   s              rG   can_do_meijerr   J  s     +?GBBA./AuuW~~ 	6!4DE#EP 	QA D72215BBaSHIA; Jgbba(--d3QVVD\1EErF   c                     SSK Jn   SSKJn  [	        [        / / /S// /[        * 5      5      [        [        5      :X  d   e[	        [        SS// /S/S//[        5      5      [        [        S-   5      :X  d   e[	        [        SS// /S/S//[        5      5      [        [        S-   -  :X  d   e[	        [        / / /[        R                  /S//[        S-  S-  5      5      [        [        5      [        [        5      -  :X  d   e[	        [        / / /S/[        R                  //[        S-  S-  5      5      [        [        5      [        [        5      -  :X  d   e[        / [         /[         S-
  [         [        R                  -
  // 5      (       d   e[        / / [         S-  /[         * S-  /S5      (       d   e[        [         /["        /[         /["        [         S-
  /5      (       d   e[	        [        S// / S/[        5      5      [%        S['        [        5      S:  4S['        S[        -  5      S:  4[        S// / S/[        5      S45      :X  d   e[	        [        / S/S// [        5      5      [%        S['        [        5      S:  4S['        S[        -  5      S:  4[        / S/S// [        5      S45      :X  d   e[        / / [         ["        S-  -   /[         [         ["        S-  -
  [         [        R                  -   /5      (       d   e[        / / [         /["        /S5      (       d   e[        / [        R                  /[         /[         * /5      (       d   e[        / / [         ["        // 5      (       d   e[        / / [         ["        // 5      (       d   e[        / / [         [         [        R                  -   /["        ["        [        R                  -   /5      (       d   e[        / / [         [         * /S[        R                  /S5      (       d   e[        / / [         [         [        R                  -   ["        ["        [        R                  -   // 5      (       d   e[        [        R                  // S/[         [         * /5      (       d   e[        [        R                  // [         /S[         * /S5      (       d   e[        / [         [        R                  -
  /[         ["        /[         [        R                  -
  /S5      (       d   e[        / [         [        R                  -   /[         ["        -   [         ["        -
  [         // S5      (       d   e[        [         [        R                  -   // ["        S[         -  ["        -
  [         // S5      (       d   e[        / / / [         ["        /5      (       d   e[	        [        SS// / SS/[        5      5      [%        S['        [        5      S:  4[        SS[        S-  -  -
  -  S-  ['        S[        -  5      S:  4[        SS// / SS/[        5      S45      :X  d   eU " U" [	        [        S/S[         -
  /[         * S-  [         * S-  [        R                  -   // S[        -  5      5      5      5      S	[        [        5      -  [        [        S-   5      S-   [         -  -  [         -  :X  d   e[	        [        S// [         /SS/[        5      5      [)        [         4[         S-   [         S-   4[        [+        [,        [        -  5      -  5      [        [         -  -  [/        [         5      -  [/        [         S-   5      S-  -  :X  d   e[        S
[        R                  4S4[        S-  5      n[	        U5      [        [        5      [        S[        S	-  -   5      -  :X  d   e[	        USS9[        [        5      [        -  [        [        S-  S-   5      -  :X  d   eg )Nr   	gammasimpr   rC   r?   FTr=   rV   )r   rE   r   )place)sympy.simplify.gammasimpr   r   r   r   r$   r%   r0   r2   r   rD   r7   r4   r/   r6   r   r&   r'   r"   absr#   r1   r   r:   )r   r   r   s      rG   test_meijerg_expandr   i  s   20wBx1#rQB78CFBBBwA|qcA3Z;<AE
  wA|qcA3Z;<	1q5	  wBx166(QC1Q3(CDq6$r(?  wBx1#x1Q3(CDq6$r(?  aS1q5!aff*"5r::::R!A#!A6666!qcA3AE
3333 wsBQC341c!fqj/As1Q3x!|#41#r2sA.5	77 7 7 wrA3R341c!fqj/As1Q3x!|#4"qcA3A.5	77 7 7
 R!ac'QAaCQVV,DEEEE
BaS%! ! ! !affXsaRD1111R!Q,,,,R!Q,,,,R!QZ1a!&&j/BBBBR!aR1aff+u====R!QZAJ!?DDDD!&&2sQG4444!&&2sQGU;;;;a!&&j\Aq6AJ<GGGGa!&&j\AE1q5!+<b%HHHH!aff*rAqsQw?BFFFF RaV,,,, w1vr2Aw:;1c!fqj/a!AqD&j>!#S1X\2Aq62rB7A6=	?? ? ? Xka!eWr!taRTAFF]3R1=? @ A
48T!a%[1_q((*+ + +
 wsBaVQ78E	
q1ua!ena	!B$/=112A=66;Ah=??DQU|Q=O O O O 	y$/A6Aq>T"Xd1q2w;&77777q"d2hqjadQh&????rF   c            
         SSK Jn Jn  SSKJn  [        [        [        // [        [        // [        5      5      [        [        -  [        [        5      -  [        [        * [        -   S-   5      -  U" [        [        -
  [        5      -  :X  d   e[        [        S// SS// [        5      5      [        [        5      U" S[        5      -  :X  d   e[        [        // [        [        S-   // 5      (       d   e[        [        // [        S-   [        // 5      (       d   e[        [        // [        S-
  [        // 5      (       d   e[        [        [        // [        [        [        [        R                  -
  // [        5      5      [        [         5      * [        [        [        R                  -
  -  -  S[#        S[        [        5      -  5      -  U" S[        [        5      -  5      [         S-  -
  -  S[%        S[        [        5      -  5      -  U " S[        [        5      -  5      -  -
  -  s=:X  a  [        [        [        // [        [        [        R                  -
  [        // [        5      5      s=:X  aF  [        [        [        // [        [        R                  -
  [        [        // [        5      5      :X  d   e   e[        [        S-
  // [        S-   [        ['        SS5      -
  [        S-   // 5      (       d   eg )Nr   )CiSi)
uppergammarC   r?   r>   )'sympy.functions.special.error_functionsr   r   'sympy.functions.special.gamma_functionsr   r   r$   r&   r'   r%   r0   r:   r   r   rD   r4   r/   r6   r7   r.   )r   r   r   s      rG   test_meijerg_lookupr     sV   @BwsBAA67	1SVE1"q&1*%%jQ&::; ; ;wsBAA67Az!Q     !b1a!e*b1111!b1q5!*b1111!b1q5!*b1111wsBAq166z(:BBC	b	!a!&&j/!1S47^#3R$q'	]RT5I#J%&s1T!W9~%5b47m%C$D 	EA 	GQCaQVVQ%7Q?@A 	GQCa!&&j!Q%7Q?@	A A A A A
 !a%"q1ua(1a..@!a%&H"MMMMrF   c            
         [        / / [        [        R                  -   /[        [        [        S-  -
  [        [        S-  -   /5      (       d   e[        / / S[        R                  /[        [        * /5      (       d   e[        / / S[        -  [        R                  -
  [        [        * [        R                  -
  /[        [        R                  -
  /5      (       d   e[        / / S[        [        R                  -
  [        * [        R                  -
  /[        R                  /5      (       d   e[        / / [        [        [        R                  -   [        /S[        -  [        -
  /5      (       d   e[        / / [        [        [        R                  -   [        S[        -  [        -
  /5      (       d   e[        [        R                  // [        * [        /S/5      (       d   eg )Nr?   r   r>   )r   r&   r   rD   r'   rE   rF   rG   test_meijerg_expand_failr    sX    R!aff*1qs7A!G/DEEEER!QVVq1"g6666R!A#,A2;!?!aff*NNNNR!QZ!aff!=xHHHHR!QZ!3acAgY????R!QZAaC!G!<====!&&2Aw4444rF   c            
         S [        S5       5       u  pS [        S5       5       u  p#S [        S5       5       u  pEpgp[        U /Xx/U/XE/[        5      n
[        R                  " SS5      b   e[        R
                  " SS5      b   e[        X/Xx/U/XEU/[        5      n[        [        R
                  " X5      R                  U
[        5      U[        5      (       d   e[        X/Xx/U/XEUS-   /[        5      n[        [        R
                  " XS-   5      R                  U
[        5      U[        5      (       d   e[        XS-
  /Xx/U/XEUS-   /[        5      n[        [        R
                  " US-
  US-   5      R                  U
[        5      U[        5      (       d   e[        U /XxUS-
  /X#S-   /XE/[        5      n[        [        R                  " US-   US-
  5      R                  U
[        5      U[        S	S
9(       d   eX/nXEUS-   /nXxUS-
  /nX#S-   /n[        [        XX5      5      u  nnUR                  U 4:X  d   e[        UR                  5      Xx1:X  d   eUR                  U4:X  d   e[        UR                  5      XE1:X  d   e[        [!        U
U[        5      [        XX[        5      [        5      (       d   eg )Nc              3   `   #    U  H$  n[        U5      S [        -  -
  U[        -  -
  v   M&     g7fr@   Nr[   r   r   s     rG   rT   test_meijerg.<locals>.<genexpr>  &     8x!hqkAaC!A#%x   ,.r?   c              3   `   #    U  H$  n[        U5      S [        -  -   U[        -  -   v   M&     g7fr  r  r   s     rG   rT   r    r  r  c              3   6   #    U  H  n[        5       v   M     g 7fr   r   r   s     rG   rT   r    s     ;(Qhjj(   rB   r>   rJ   rC   gư>)tol)r   r$   r%   r   meijer_minusmeijer_plusr^   r   r   r   r   r   setr`   r   ra   r   )r   r   r   r   r   b4b5r   a4a5r   g2r   ra   r`   r   niqr   s                     rG   test_meijergr    s   
 9uQx8FB8uQx8FB;%(;BBBrhrh2A##Aq)111""1a(000	"B8bTBB<	;Bk%%b-33Ar:BBBBB	"B8bTBBF+;Q	?Bk%%bq&1772>AFFFF	"1fx"Q/?	CBk%%b1fb1f5;;ArBBJJJJ	"Q'"1fx	CBk&&
QQab!7 7 7 B
"q&	B
"q&	B
1fB":bb#=>HC66bU??svv;2("""66bU??svv;2("""oab)7221+EqIIIIrF   c            
         S [        S5       5       u
  pp#pEpgp[        U /X#/U/Xx/[        5      n
[        [	        U5      R                  U
[        5      [        U /X#/US-   /Xx/[        5      [        5      (       d   e[        [        U 5      R                  U
[        5      [        U S-
  /X#/U/Xx/[        5      [        5      (       d   e[        [        U5      R                  U
[        5      [        U /X#/U/US-   U/[        5      [        5      (       d   e[        [        U5      R                  U
[        5      [        U /US-
  U/U/Xx/[        5      [        5      (       d   e[        U /X#/U/Xx/S[        5      n[        UR                  U
[        5      [        U /X#/US-
  /Xx/[        5      [        5      (       d   e[        U /X#/U/Xx/S[        5      n[        UR                  U
[        5      [        U /X#/U/US-
  U/[        5      [        5      (       d   e[        U /X#/U/Xx/S[        5      n[        UR                  U
[        5      [        U S-   /X#/U/Xx/[        5      [        5      (       d   e[        U /X#/U/Xx/S[        5      n[        UR                  U
[        5      [        U /US-   U/U/Xx/[        5      [        5      (       d   eg )Nc              3   8   #    U  H  n[        U5      v   M     g 7fr   r   r   s     rG   rT   /test_meijerg_shift_operators.<locals>.<genexpr>  s     -M9ahqkk9r   r   rC   r   )r   r$   r%   r^   r   r   r   r	   r
   r   r   r   r   r   )r   r   r   r  r  r   r   r   r  r  r   r   s               rG   test_meijerg_shift_operatorsr    s   -M59-M*BBBBBrhrh2Al2$$Q+rdRHrAvh!<aA A A Al2$$Q+rAvh2$!<aA A A Al2$$Q+rdRHrdR!VRL!<aA A A Al2$$Q+rdR!VRL2$!<aA A A A 	tbXtbXq!<A	2rha2(AFK K K K 	tbXtbXq!<A	2rhrAvrlAFK K K K 	tbXtbXq!<A	2a2(RD2(AFK K K K 	tbXtbXq!<A	2rAvrlRD2(AFK K K KrF   c                     S n U " [        / SS/SS// [        5      [        [        5      * S5      (       d   eU " [        / SS/SS// [        5      [        S-  * S-  [        -   [        [        5      S-  -
  [        SS5      -
  S5      (       d   eU " [        / SS/SS// [        5      [        S-  S-  [        S-  -
  [        [        5      S-  -   [        SS5      -   SS	[        -  -  -   S5      (       d   eU " [        / / S
Q/ SQ/ [        5      [        [        5      S-  * S	-  S5      (       d   eU " [        SS// / SS/[        5      S[        S[        -  5      * 5      (       d   eU " [        SS/SS/SS/SS/[        5      [        * [        [        5      -  S[        -  -   [        S[        -  5      * S-   5      (       d   eU " [        [        R
                  /SS/SS/[        SS5      /[        5      [        [        5      S-  S-
  S5      (       d   eS nU" / S/SS// 5      (       d   eU" SS// / S/5      (       d   eU" SS// SQ/ SQSS/5      (       d   eU" SS// SQ/ SQS/5      (       d   eg )Nc           	         SSK Jn  U" X/5      u  pU n[        U 5      n U [        U[	        [
        5      S:  4U[	        S[
        -  5      S:  4US45      :X  d  gU R                  S   R                  S   U:X  a   U R                  S   R                  S   U:X  d  g[        5       S-  n[	        U R                  [
        U5      R                  5       UR                  " [
        U5      R                  5       -
  5      R                  5       S:  a  g[	        U R                  [
        SU-  5      R                  5       UR                  " [
        SU-  5      R                  5       -
  5      R                  5       S:  a  gg)Nr   )sympifyrC   TFr   g|=)
sympy.core.sympifyr  r   r"   r   r%   argsr[   r]   rh   )mr&   r'   r  m_z0s         rG   r   "test_meijerg_confluence.<locals>.t  s#   .vNIq#a&1*o3qs8a</@2t*MMq	q!Q&166!9>>!+<+AZ]qvva} 166!R=??#445779EAqvva2  "QVVAqt_%6%6%889;;=ErF   rC   r   r>   r?   rJ   r=      rB   rC   rC   rC   rC   )r   r   r   r   c                     [        XX#[        5      n[        USS9nUR                  [         5      (       a+  UR                  (       a  [        UR                  5      S:X  d  g[        XE[        5      $ )NT)allow_hyperr>   F)r$   r%   r   rX   is_Piecewiselenr  r^   )r   r`   r   ra   r   m2s         rG   u"test_meijerg_confluence.<locals>.u1  sM    BBA&-66'??BOOBGG8I!|rF   )r?   r?   r@   )rC   rC   rB   )r$   r%   r2   r.   r   rD   )r   r+  s     rG   test_meijerg_confluencer-    s     WR!Q!QQ/#a&!<<<<W
QFQFB#%&TE!GaK#a&($:Xa^$KQP P P PWR!Q"a"a0T"Wqs]SVAX%A6AaC@!E E E EWR|R;c!faiZ\1MMMMWaVRaVQ/S1XI>>>>WaVaVaVaVQ7RAY1_s1Q3xi!m- - - -WaffX1v1vA/?CSVAXPQ\STUUUU R!q!fb!!!!aVRaS!!!!aVY	Aq62222aVY	A3////rF   c            
      d   SSK Jn   [        S[        SS5      4S4[        5      nSnU[        [        SS5      -  -  [        S[        SS5      4[        S	S5      4[        [        [        [        -  5      -  5      -  nU R                  [        U5      U-  R                  5       S
S5      (       d   eg )Nr   )RR))g      @rC   rE   r>   r?   r   gwg      r@   g      ?g-q=)sympy.polys.domains.realfieldr/  r$   r.   r%   r#   r1   r   r/   almosteqr   rh   )r/  r   r&   r   s       rG   test_meijerg_with_Floatsr2  =  s    0(1a.!2D 91=AA	!Xa^
E4!Q"88Aq>:KQyYZ[]Y]M^__A;;Aq(++-sE::::rF   c                   
   SSK Jn Jn  SSKJn  [        [        S[        /[        S-   /[        5      [        -  5      U " [        S[        5      :X  d   e[        [        S[        [        /[        S-   [        S-   /[        5      [        S-  -  5      U " [        S[        5      :X  d   e[        [        S[        [        [        /[        S-   [        S-   [        S-   /[        5      [        S-  -  5      U " [        S[        5      :X  d   e[        [        S/[        /S-  -   [        S-   /S-  [        5      [        S-  -  5      U " [        S[        5      :X  d   eU" [        [        SS[        -
  // S/[        * /[        [        * [        -  5      [        -  5      5      5      U " [        S[        5      :X  d   eU" [        [        SS[        -
  S[        -
  // S/[        * [        * /[        [        * [        -  5      [        -  5      5      5      U " [        S[        5      :X  d   eU" [        [        SS[        -
  S[        -
  S[        -
  // S/[        * [        * [        * /[        [        * [        -  5      [        -  5      5      5      U " [        S[        5      :X  d   e[        [        [        SS/S/[        5      -  5      [        S[        * -   5      * :X  d   e[        [        [        / SQSS/[        5      -  5      U" S[        5      :X  d   e[        [        [        / S	Q/ S
Q[        5      -  5      U" S[        5      :X  d   e[        [        S[        S[        R                  -   /[        S-   [        R                  /[        5      5      S[        -  [        S-
  -  S[        S-  -  [        -   U " [        S[        5      -  -   :X  d   e[!        / S
QSS/5      (       d   e[!        SSS["        S-   /SS["        /SS9(       d   e[!        S[        [        [        ["        S-   /[        S-   [        S-   [        S-   ["        /SS9(       d   eSSKJn  [        [        [        R                  [        R                  [        R                  S/[)        SS5      [)        SS5      [)        SS5      /[)        SS5      5      5      U" U" S[        [        [        -  5      S-  5      * U" S[        R                  5      -   5      :X  d   eg )Nr   )lerchphipolylogr   rC   r?   r>   r   )rC   rC   rC   r%  )r?   r?   r?   rV   r@   )rc   Frb   )AbsrJ   )&sympy.functions.special.zeta_functionsr4  r5  r   r   r   r#   r&   r%   r$   r1   r   r/   r2   r   rD   rj   r'   r   r7  r.   )r4  r5  r   r7  s       rG   test_lerchphir9  F  s[   J2uaVa!eWa023x1a7HHHHq!Qi!a%Q+AqD025=aA5FG G GuaAq\AE1q5!a%+@!DQTIJAq  uaSA3r6\AE72:q9!R%?@B  [!QUR!
i2q "" # $'/1a'89 9 9[!QUAE):B
aR)QBrE"1$"& ' (+3Aq!+<= = =[!QUAE1q5)A2s
aR!i2&q("* + ,/71a/@A A A q1vsA../CQBK<???qy1a&!445AFFFq|Y::;wq!}LLLuaAJ/!a%!DE
1a!e1a4!XaA%6667 7 7 )aV$$$$ 1aAE"Q1I2666 	
Aq!QUa!eQUAE15H H H 9uaffaffaffa8&q!nhq!nhq!nMxXY[\~_ `WQ	!B$)**WQ-??@A A ArF   c            
      F   S [        S5       5       u  pp#n[        XU/X4/5      [        / XX#U/5      4 H  n[        U5      nUR                  nUR                  U" U5      :X  d   eUR
                  R                  U5      U-  nUR                  UR
                  -  n	[        X5       H  u  p[        XU5      (       a  M   e   M     [        S5      u  pn[        [        SU /SU/U5      5      U * U-  S-  X-  S-  -   SU -  -   [        U S-   /U/U5      -  X-  S-  SU -  -
  S-   [        U /U/U5      -  -   :X  d   e[        [        [        SU/SU/U5      5      [        SU/SU/U5      U5      (       d   e[        [        S/SX/U5      5      [        SX4U5      U[        SU S-   U4U5      -  SU -  -  -   XqS-
  -  [        SU S-   US-   4U5      -  SU -  U-  -  -
  :X  d   e[        [        [        S/SX4/U5      5      [        S/SX4/U5      U5      (       d   eg )	Nc              3   6   #    U  H  n[        5       v   M     g 7fr   r   )rS   _s     rG   rT   $test_partial_simp.<locals>.<genexpr>v  s     2AXZZr  r@   za b zr>   rC   r?   rE   rJ   )r   r   r   r%   r   r   r   r   r   r^   r    r   r#   )r&   r'   r(   rW   er   r   r%   r   r   func1func2s               rG   test_partial_simprA  t  sq   2q2MA!q	A622aA/1(.CC}}Q'''!QQSS/LEeA&&&& 01 gGA!uaVaVQ/0
Aa!#a%!A#	ua!eWqc1553q51Q3;?E1#sA.
.	// / / E1a&1a&!,-uaVaVQ/GL L L LuaS1a)Q/0b1&!
E"q1uaj!$
$ac
*	+
U)E"q1ua!ena0
0!A#a%
8	99 9 9 E1#1y!,-uaS1a)Q/GL L L LrF   c            	         [        [        [        [        /[        /S5      5      [        [        5      [        [        [        -
  [        -
  5      -  [        [        [        -
  5      -  [        [        [        -
  5      -  :X  d   e[        [        [        [        /S[        -   [        -
  /S5      5      [        S[        S-  -   5      [        S[        -   [        -
  5      -  [        S[        -   5      -  [        S[        S-  -   [        -
  5      -  :X  d   e[        [        [        [        /S[        -   [        -
  /S5      5      [        S[        S-  -   5      [        S[        -   [        -
  5      -  [        S[        -   5      -  [        S[        S-  -   [        -
  5      -  :X  d   e[        [        S[        -
  [        S-  -
  /S[        -
  [        S-  -   /[        S-  /[        * S-  /S5      5      [        SS[        -  -
  5      [        [        [        S-  -   [        S-  -   5      -  [        S[        -
  [        S-  -   [        S-  -
  5      -  [        S[        -
  [        S-  -
  [        S-  -   5      -  [        S[        -
  [        S-  -   [        S-  -   5      -  :X  d   e[        [        [        /[        /S5      5      S:X  d   e[        [        /[        /S5      S:w  d   eg )NrC   r=   r?   r   )r   r#   r&   r'   r(   r:   r$   r%   rE   rF   rG   test_hyperexpand_specialrC    s\   uaVaS!,-aq1uqy!!%A,.uQU|;< < <uaVa!eai["56a!A#guQUQY''a!e4U1qs7Q;5GGH H HuaVa!eai["56a!A#guQUQY''a!e4U1qs7Q;5GGH H HwA!}q1uqs{macUaRTFANOa!A#guQ1Wqs]++E!a%!A#+!2C,DD	q1uqs{QqS 	!	""'A!ac(9":	;; ; ; uaS1#q)*a///!qc1"""rF   c                      SSK Jn   SSKJn  U " SSS9nU" [	        [        S// US-   /S/[        5      5      5      [        US-   [        5      :X  d   eg )Nr   )Symbolr   rh   T)integerrC   )sympy.core.symbolrE  r   r   r   r$   r%   r;   )rE  r   rh   s      rG   test_Mod1_behaviorrH    sU    (0sD!AKR!a%1#q ABC1q5!  rF   c                     [        SS[        -   S-  S[        -
  S-  /[        SS5      S/5      (       d   e[        [        R                  [
        S-
  /[        SS5      [
        S-   /SS9(       d   e[        / [        S-   /5      (       d   e[        [
        /[
        S-
  [        S-   /5      (       d   e[        [
        /[
        [        R                  -
  S[
        -  /5      (       d   e[        [
        /[
        [        R                  -
  S[
        -  S-   /5      (       d   e[        [
        /[
        [        R                  -
  S[
        -  S-
  /5      (       d   e[        [
        /[
        [        R                  -   S[
        -  /5      (       d   e[        [
        /[
        [        R                  -   S[
        -  S-   /5      (       d   e[        [
        /[
        [        R                  -   S[
        -  S-
  /5      (       d   e[        [        R                  /[        S[        -
  /5      (       d   e[        [        R                  /[        S[        -
  /5      (       d   e[        S/S[        /5      (       d   e[        [
        [
        [        R                  -   /S[
        -  [        S[
        -  [        -
  S-   /5      (       d   e[        [
        [
        [        R                  -   /[        R                  S[
        -  S[
        -  [        R                  -   /5      (       d   e[        [
        /[
        S-   /SS9(       d   eg )NrC   r>   r?   T)rd   )rj   r   r.   r   rD   r&   r'   rE   rF   rG   test_prudnikov_miscrJ    sw   1q1uai!a%+hq!na-@AAAA1661q5/HQNAE#:tLLL"q1ug1#Aq1u~&&&&1#AFF
AaC())))1#AFF
AaC!G,----1#AFF
AaC!G,----1#AFF
AaC())))1#AFF
AaC!G,----1#AFF
AaC!G,----166(QAJ''''166(QAJ''''1#1v1a!&&j/AaCAaC!GaK#899991a!&&j/AFFAaC1qvv#>????1#Aw4000rF   c                     [        [        [        * /[        R                  /5      (       d   e[        [        S[        -
  /[        R                  /5      (       d   e[        [        S[        -
  /[	        SS5      /5      (       d   e[        [        S[        -
  /[        R                  /5      (       d   e[        [        S[        -
  /[	        SS5      /5      (       d   e[        [        S[        -
  /[	        SS5      /5      (       d   e[        [        [        [        R                  -   /S[        -  S-
  /5      (       d   e[        [        [        [        R                  -   /S[        -  /5      (       d   e[        [        [        [        R                  -   /S[        -  S-   /5      (       d   e[        [        [        [        R                  -   /[        R                  /5      (       d   e[        [        [        [        R                  -   /[	        SS5      /5      (       d   e[        [        [        S-  S-   /[        S-  /5      (       d   e[        S[
        /S/5      (       d   e[        S[
        /[
        S-   /SS9(       d   e[        [        /S[        -  /5      (       d   e[        [        /S[        -  S-   /5      (       d   e[        [        /S[        -  S-
  /5      (       d   eg )NrC   r>   r?   Fr6  )rj   r&   r   rD   r.   r'   rE   rF   rG   test_prudnikov_1rL    sJ    1qb'AFF8$$$$1a!e*qvvh''''1a!e*x1~.////1a!e*qvvh''''1a!e*x1~.////1a!e*x1~.////1a!&&j/AaC!G9----1a!&&j/AaC5))))1a!&&j/AaC!G9----1a!&&j/AFF8,,,,1a!&&j/HQN#344441acAg,1&&&&1a&1#1a&1q5'U333 1#!u1#!ay!!!!1#!ay!!!!rF   c            
         [         R                  n [        U * U * /U /5      (       d   e[        U * U /SU -  /5      (       d   e[        U * U /SU -  /5      (       d   e[        U * U /SU -  /5      (       d   e[        U * S/U /5      (       d   eU * U 4 Hs  nU * U SSU -  SSU -  SSU -  S4	 H0  nU * U SU -  SU -  SU -  4 H  n[        X/U/5      (       a  M   e   M2     S H!  nS H  n[        X/U/5      (       a  M   e   M#     Mu     g )Nr>   r@   rA   rC   r?   rJ   rC   r?   r>   rJ   r   rD   rj   r   prh   r   s       rG   test_prudnikov_2rR    sB   	AA2r(QC    A2q'AaC5!!!!A2q'AaC5!!!!A2q'AaC5!!!!A2q'A3b!W"aAaCAaCAaC3Ab!QqS!A#qs+qfqc**** , 4 A!qfqc**** " 	 rF   c                     [         R                  n [        [        SS5      [        SS5      /U /5      (       d   e[        [        SS5      [        SS5      /SU -  /5      (       d   e[        [        SS5      [        SS5      /SU -  /5      (       d   e[        [        SS5      [        SS5      /U /5      (       d   e[        [        SS5      [        SS5      /SU -  /5      (       d   eg )NrC   rJ   r>   r?   r@   )r   rD   rj   r.   r   s    rG   test_prudnikov_3rU    s    	A8Aq>8Aq>2QC88888Aq>8Aq>2QqSE::::8Aq>8Aq>2QqSE::::8Aq>8Aq>2QC88888Aq>8Aq>2QqSE::::rF   c                      [         R                  n S HQ  nU * U SSU -  SSU -  SSU -  SSU -  4
 H1  nSSU -  SSU -  SSU -  S4 H  n[        X/U/5      (       a  M   e   M3     MS     g )	NrN  rC   r>   r?   r@   rA   rJ   rl   rO  rP  s       rG   test_prudnikov_3_slowrW    s     	
A"aAaCAaCAaCAaC8A1a1a1a0qfqc**** 1 9 rF   c                  &   [         R                  n SU -  SU -  SU -  4 Ho  nU * U SU -  SU -  SU -  4 H0  nSU -  SSU -  SSU -  S4 H  n[        X/U/5      (       a  M   e   M2     S H!  nS H  n[        X/U/5      (       a  M   e   M#     Mq     g )Nr>   r@   rA   r?   rJ   rN  )r?   r>   rJ   rO  rP  s       rG   test_prudnikov_4rY     s    	Ac1Q3!_"a1ac1Q3'Ac1ac1ac1-qfqc**** . ( Aqfqc****  	 rF   c            	      B   [         R                  n S HI  n[        US5       H6  nS H-  n[        US5       H  n[        U * X/X4/5      (       a  M   e   M/     M8     MK     U SSU -  SSU -  S4 H^  nU SU -  SU -  4 HL  nU SU -  SU -  4 H:  nU SU -  SU -  4 H(  nXB::  d  M
  XC::  d  M  [        U * X/X4/5      (       a  M(   e   M<     MN     M`     U SSU -  SSU -  S4 H>  nS H5  nU SU -  SU -  4 H#  nS H  n[        U * X/X4/5      (       a  M   e   M%     M7     M@     g )Nrq   rJ   rC   r>   r?   r@   r   rD   r   rj   )r   rQ  qre   r   s        rG   test_prudnikov_5r]    sO   	Aq!Aq!A!A2q*qf5555 %    AaCAaC#QqS!A#A1ac]QqS!A#Av!&%r1j1&9999 ' #  $ AaCAaC#A1ac]"A!A2q*qf5555 # #  $rF   c            	      4   [         R                  n SU -  SU -  4 Hg  nS H^  nU SS4 H"  nS H  n[        XU/X/5      (       a  M   e   M$     S H*  nSU -  SU -  4 H  n[        XU/X/5      (       a  M   e   M,     M`     Mi     S H4  nS H+  nS H"  nS H  n[        XU/X/5      (       a  M   e   M$     M-     M6     [        X SU -  /SU -  SU -  /5      (       d   e[        U SSU -  /SU -  SU -  /5      (       d   e[        U SS/SS/5      (       d   eg )Nr>   r@   rq   rC   r?   )rC   r?   rO  )r   r   rh   r\  rQ  s        rG   test_prudnikov_6r_  $  sK   	Ac1Q3ZAAY"A!1)aV4444 #  A#qsA!1)aV4444 $ 	   A"A!1)aV4444 #    11+!QqSz****1a1+!QqSz****1a)aV$$$$rF   c            
      @   [        S/S/5      (       d   e[        R                  n U SU -  SU -  SU -  4 H  n[        U * /U/5      (       a  M   e   U * U SSU -  SSU -  SSU -  S4	 H4  nU * U SU -  SU -  SU -  SSSS4	 H  n[        U/U/5      (       a  M   e   M6     g )Nr>   rB   r@   rA   rC   r?   rJ   )rj   r   rD   )r   rh   r   s      rG   test_prudnikov_7ra  >  s    1#s	A1ac1Q3rdQC      b!Q!Q!Q!Q/"a1ac1Q31a3A1#s#### 4 0rF   c            	         [         R                  n S H  nS HC  n[        SUS-   5       H-  nU SSU -  SSU -  S4 H  n[        X/X4/5      (       a  M   e   M/     ME     SU -  SU -  4 H6  nU SSU -  SSU -  S4 H!  nS H  n[        X/X4/5      (       a  M   e   M#     M8     M     U * U SU -  SU -  4 H  nS H6  nU SSU -  SSU -  S4 H!  nS H  n[        X/X4/5      (       a  M   e   M#     M8     U SU -  SU -  4 HG  nU SU -  SU -  S4 H4  nU SSU -  SSU -  S4 H  nX2::  d  M
  [        X/X4/5      (       a  M   e   M6     MI     M     g )Nrq   rC   r>   r?   r@   r[  )r   ri   bicidis        rG   test_prudnikov_8rf  J  s   	A BArAv&a1a1a0B!2(RH5555 1 '  Q3!*B!QqS!QqS!,#B!2(RH5555 $ -   r1ac1Q3B!QqS!QqS!,#B!2(RH5555 $ -  ac1Q3-B!A#qsA&a1a1a0Bx%rh9999 1 '    rF   c                      [        S5       H&  n [        / [        U 5      S-   S-  /5      (       a  M&   e   [        S5       H*  n [        / S[        U 5      -  S-   * S-  /5      (       a  M*   e   g )Nrl   rC   r?   r@   )r   rj   r   )is    rG   test_prudnikov_9ri  e  sg    1XbAaD1Ha<.)))) 1XbQqtVaZ=?+,,,, rF   c            	         [         R                  n U * U SSU -  SSU -  SSU -  S4	 H4  nS H+  n[        US5       H  n[        U/X#/5      (       a  M   e   M-     M6     S H7  nU SU -  SU -  SU -  4 H!  nS H  n[        U/X2/5      (       a  M   e   M#     M9     SU -  SU -  SU -  4 HG  nU SSSU -  SSU -  S4 H1  n[        U/X/5      (       d   e[        U/SU -  U/5      (       a  M1   e   MI     U SSSU -  SSU -  S4 H  n[        SU -  /SU -  U/5      (       a  M   e   [        [	        SS5      /[         R                  [         R                  /5      (       d   eg )	NrC   r>   r?   r@   rA   rJ   rN  r=   )r   rD   r   rj   r.   r   rQ  r   rh   s       rG   test_prudnikov_10rl  m  s    	
Ab!Q!Q!Q!Q/A1a[qcA6**** !  0
 QqS!A#qs#A!qcA6**** " $ 
 c1Q3!_Q1Q31Q3*A1#v&&&&1#!Qx(((( + 
 AqsAqsA&qseac1X&&&& ' 8B?#affaff%56666rF   c                     [        [        [        [        R                  -   /S[        -  [        S[        -  [        -
  /5      (       d   e[        [        [        [        R                  -   /[        SS5      S[        -  S[        -  [        R                  -
  /5      (       d   e[        [        SS5      [        SS5      /[        R                  [        R                  S/5      (       d   e[        [        SS5      [        SS5      /[        SS5      [        R                  S/5      (       d   e[        [        SS5      [        SS5      /[        SS5      [        SS5      S/5      (       d   e[        [        SS5      [        SS5      /[        SS5      [        SS5      S/5      (       d   e[        SS/[        SS5      SS/5      (       d   eg )Nr?   r>   rC   rJ   r@   rA   )rj   r&   r   rD   r'   r.   rE   rF   rG   test_prudnikov_11rn    sn   1a!&&j/AaCAaC!G#455551a!&&j/HQNAaC1qvv#FGGGG8Aq>8Aq>2QVVQVVQ4GHHHH8Aq>8Aq>2Xa^QVVQ4OPPPP8Aq>8Aq>2Xa^XaQR^UV4WXXXX8Aq>8Aq>2Xa^XaQR^UV4WXXXX1a&8Aq>1a01111rF   c            	         [        / [        [        [        R                  -   S[        -  /S5      (       d   e[        / [        [        [        R                  -   S[        -  S-   /S5      (       d   e[        / [        R                  [        [        [        R                  -   /5      (       d   e[        / [	        SS5      [        [        [        R                  -   /5      (       d   e[        / [	        SS5      [        R                  [	        SS5      /5      (       d   e[        / [        R                  [        R                  S/5      (       d   e[        / [        R                  [	        SS5      S/5      (       d   e[        / [	        SS5      [	        SS5      [	        SS5      /5      (       d   e[        / SS[	        SS5      /5      (       d   e[        / SS[	        SS5      /5      (       d   e[        / S[	        SS5      [	        SS5      /5      (       d   e[        / [	        SS5      [	        SS5      [	        SS5      /5      (       d   e[        / S[	        SS5      [	        SS5      /5      (       d   eg )Nr?   FrC   r>   rJ   r@   rA   )rj   r&   r   rD   r.   rE   rF   rG   test_prudnikov_12rp    s   
QAFF
AaC %) ) ) )"q!aff*acAg.6666"qvvq!aff*-...."x1~q!aff*56666"x1~qvvx1~>????"qvvqvvq)****"qvvx1~q12222"x1~x1~x1~FGGGG"q!Xa^,----"q!Xa^,----"q(1a.(1a.9::::"x1~x1~x1~FGGGG"q(1a.(1a.9::::rF   c                      [         R                  n U * U 4 H7  nU SU -  SU -  SU -  4 H!  nS H  n[        X/U/5      (       a  M   e   M#     M9     g )Nr>   r@   rA   rN  rO  rk  s       rG   test_prudnikov_2F1rr    s[    	Ab!WQqS!A#qs#A!qfqc**** " $ rF   c                     [        [        [        /[        S-   /5      (       d   e[        S[        /[        /5      (       d   e[        [        [        /[        [        -   [        R
                  -   /5      (       d   e[        [        [        /[        [        -   [        R
                  -
  /5      (       d   e[        [        [        /[        [        -   [        SS5      -   /5      (       d   e[        [        [        /[        [        -   S-   S-  /5      (       d   e[        [        [        /[        [        -   S-  S-   /5      (       d   e[        [        [        /[        [        -
  S-   /5      (       d   e[        [        [        /[        [        -
  S-   /5      (       d   e[        [        [        /S[        -  /5      (       d   e[        [        [        /[        R
                  /5      (       d   e[        [        [        /[        SS5      /5      (       d   e[        [        S[        -
  /[        /5      (       d   e[        [        S[        -
  /[        /5      (       d   e[        [        S[        -
  /[        /5      (       d   e[        [        [        [        R
                  -   /[        /5      (       d   e[        S[        /[        /5      (       d   e[        S[        /[        SS5      /5      (       d   e[        [        SS5      [        SS5      /S/5      (       d   e[        R                  n [        U S-  S/U S-  S-  /5      (       d   e[        U S-  S/U S-  S	-  /5      (       d   e[        U S-  S/U S-  S
-  /5      (       d   e[        U S-  S/U S-  S-  /5      (       d   e[        U S-  S/U S-  S-  /5      (       d   e[        U S-  S/U S-  S-  /5      (       d   e[        U S-  S/U S-  S-  /5      (       d   e[        U S-  S/U S-  S-  /5      (       d   e[        U S-  S/U S-  S	-  /5      (       d   e[        U S-  S-  S/U S-  S-  /5      (       d   e[        U S-  S-  S/U S-  S	-  /5      (       d   e[        U S-  S-  S/U S-  S-  /5      (       d   e[        U S-  S-  S/U S-  S-  /5      (       d   e[        U S-  S-  S/U S-  S
-  /5      (       d   e[        U S-  S-  S/U S-  S
-  /5      (       d   e[        U S-  S-  S/U S-  S	-  /5      (       d   e[        U S-  S-  S/U S-  S-  /5      (       d   e[        U S-  S-  S/U S-  S-  /5      (       d   e[        U S-  S-  S/U S-  S-  /5      (       d   e[        U S-  S-  S/U S-  S-  /5      (       d   e[        U S-  S-  S/U S-  S-  /5      (       d   e[        U S-  S-  S/U S-  S-  /5      (       d   e[        U S-  S-  S/U S-  S-  /5      (       d   e[        U S-  S	-  S/U S-  S-  /5      (       d   eg )NrC   r=   r>   r?   rJ      rl   rB   rA      r@      r$           )rj   r&   r'   r(   r   rD   r.   One)os    rG   test_prudnikov_fail_2F1r|    s+   1a&1q5'""""2q'A3
 1a&1q5166>*++++1a&1q5166>*++++1a&1q58Aq>1233331a&AEAIq=/****1a&AE19q=/****1a&1q519+&&&&1a&1q519+&&&&1a&1Q3%    1a&166(####1a&8Aq>*++++1a!e*qc""""1a!e*qc""""1a!e*qc""""1a!&&j/A3''''1a&1#1a&8Aq>*++++8Aq>8Aq>2QC8888 	
A1Q3(QqSUG$$$$1Q3(QqSUG$$$$1Q3(QqSVH%%%%1Q3(QqSUG$$$$1Q3(QqSVH%%%%1Q3(QqSUG$$$$1Q3(QqSUG$$$$1Q3(QqSUG$$$$1Q3(QqSUG$$$$1Q3q5!*qs2vh''''1Q3q5!*qs1ug&&&&1Q3q5!*qs2vh''''1Q3q5!*qs1ug&&&&1Q3q5!*qs2vh''''1Q3q5!*qs2vh''''1Q3q5!*qs1ug&&&&1Q3q5!*qs2vh''''1Q3q5!*qs1ug&&&&1Q3q5!*qs1ug&&&&1Q3q5!*qs1ug&&&&1Q3q5!*qs2vh''''1Q3q5!*qs2vh''''1Q3q5!*qs2vh''''1Q3q5!*qs2vh''''rF   c            	          [        [        [        [        SS5      -   [        [        SS5      -   /[        SS5      [        SS5      /5      (       d   e[        [        [        [        SS5      -   [        [        SS5      -   /[        SS5      [        SS5      /5      (       d   e[        [        [        [        SS5      -   [        [        SS5      -   /[        SS5      [        SS5      /5      (       d   e[        [        [        [        SS5      -   [        [        SS5      -   /[        [        SS5      -  S[        -  S-   S-  /5      (       d   e[        [        SS5      [        R                  [        R                  /SS/5      (       d   e[        [        SS5      [        R                  S/[        SS5      [        SS5      /5      (       d   e[        [        SS5      [        SS5      S/[        SS5      [        S	S5      /5      (       d   e[        [        SS5      [        SS5      S/[        SS5      [        S
S5      /5      (       d   e[        [        SS5      [        SS5      S/[        SS5      [        SS5      /5      (       d   e[        [        SS5      [        SS5      S/[        SS5      [        SS5      /5      (       d   e[        [        SS5      [        SS5      S/[        SS5      [        SS5      /5      (       d   e[        [        SS5      [        SS5      S/[        SS5      [        S
S5      /5      (       d   e[        [        R                  SS/[        SS5      [        SS5      /5      (       d   eg )NrC   r>   r?   rJ   r@   r=   rt  rl   rv  ru  rA   ry  rB   )rj   r&   r.   r   rD   rE   rF   rG   test_prudnikov_fail_3F2r~    s   1a(1a.(!hq!n*<=APXYZ\]P^?_````1a(1a.(!hq!n*<=APXYZ\]P^?_````1a(1a.(!hq!n*<=APXYZ\]P^?_```` 1a(1a.(!hq!n*<=(1a.@PSTUVSVYZSZ\]R]?^____ 8B?AFFAFF3aV<<<<8B?AFFA.!Q!Q0PQQQQ 8Aq>8Aq>15AQSUV7XYYYY8Aq>8Aq>15AQSUV7XYYYY8Aq>8Aq>15AQSUV7XYYYY8Aq>8Aq>15AQRTU7WXXXX8Aq>8Aq>15AQRTU7WXXXX8Aq>8Aq>15AQSUV7XYYYY1661a.8Aq>8Aq>"BCCCCrF   c            	      j   [        S[        /[        SS[        -  -
  [        -   /5      (       d   e[        [        SS5      /[        R
                  S/5      (       d   e[        S/[        R
                  [        R
                  /5      (       d   e[        [        SS5      /[        R
                  [        SS5      /5      (       d   e[        [        SS5      /[        SS5      [        SS5      /5      (       d   e[        S/[        SS5      [        SS5      /5      (       d   e[        S/[        SS5      [        SS5      /5      (       d   e[        S/[        SS5      [        SS5      /5      (       d   e[        [        R
                  S/[        SS5      [        SS5      [        SS5      /5      (       d   e[        [        R
                  S/[        SS5      [        SS5      [        SS5      /5      (       d   e[        / [        SS5      [	        S5      /5      (       d   e[        / [        SS5      [	        S	5      /5      (       d   e[        / [        SS5      [	        S	5      /5      (       d   e[        / [        [        [        R
                  -   S[        -  S-
  /5      (       d   eg )
NrC   r?   r=   rJ   r@   r>   rA   gUUUUUU?gUUUUUU?)rj   r&   r'   r.   r   rD   rE   rF   rG   test_prudnikov_fail_otherr     s<   
 1a&1a!A#gk*++++ 8B?#affa[11111#'((((8Aq>"QVVXa^$<====8Aq>"Xa^Xa^$DEEEE1#AA788881#AA788881#AA78888 1661+AAAOPPPP1661+AAAOPPPP "x1~qv.////"x1~qv.////"x1~qv.//// "q!aff*acAg.////rF   c                  j    [        SS/[        /S5      n [        U 5      [        S-   [        -  :X  d   eg )Nr=   rC   )r#   r%   r   rT  s    rG   test_bugr    s0    r1gsBAq>a!eQY&&&rF   c                      [        SSS5      n [        U 5      [        SS5      :X  d   e[        SSS5      n [        U 5      [        SS5      :X  d   eg )N)rn   rm   r{   )r  rC      )r  irn   r=   rB   )r#   r   r.   rT  s    rG   test_omgissue_203r  #  sN    lHa(Aq>Xa_,,,lHa(Aq>Xb!_,,,rF   N)TrC   Fr   )T)sympy.core.randomr   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   sympy.concrete.summationsr   sympy.core.containersr   sympy.core.exprr   rv   r   sympy.core.singletonr   rG  r    (sympy.functions.combinatorial.factorialsr!   $sympy.functions.elementary.piecewiser"   sympy.functions.special.hyperr#   r$   	sympy.abcr%   r&   r'   r(   sympy.testing.pytestr)   r*   r+   r,   r-   r^   r.   r/   &sympy.functions.elementary.exponentialr0   r1   r2   %sympy.functions.elementary.hyperbolicr3   (sympy.functions.elementary.miscellaneousr4   (sympy.functions.elementary.trigonometricr5   r6   r7   sympy.functions.special.besselr8   r   r9   r   r:   r;   rH   rO   rj   ro   rr   rw   r|   r~   r   r   r[   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r-  r2  r9  rA  rC  rH  rJ  rL  rR  rU  rW  rY  r]  r_  ra  rf  ri  rl  rn  rp  rr  r|  r~  r  r  r  rE   rF   rG   <module>r     s   '5 5 5 5 5 5 5 * '     " % = : :     = = 6 - H H 7 9 E E 2 7 Gc
H.	; Q Q<74;;$
6
 V V@968C@4PG,F> ?@ ?@DN& 5 5 #J #JLK> %0 %0P;+A\L8# 1 1*"6 + +"; 		+ 		+ + + 6 6. % %2 $ $ : :4- 7 70
2;& + + 3( 3(l D D0 0 0:'
-rF   