
    \hȣ                     L   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
JrJrJrJr  S SKJrJr  S SKJr  S SKJrJrJrJrJrJrJr  S S	KJrJrJrJ r J!r!  S S
K"J#r#  S SK$J%r%J&r&  S SK'J(r(  S SK)J*r*J+r+  S SK,J-r-J.r.  S SK/J0r0J1r1J2r2  S SK3J4r4J5r5J6r6  S SK7J8r8  S SK9J:r:  S SK;J<r<J=r=J>r>J?r?J@r@JArAJBrB  S SKCJDrD  S SKEJFrF  S SKGJHrH  S SKIJJrJ  S SKKJLrL  S SKMJNrNJOrO  S SKPJQrQJRrR  S SKSJTrTJUrU  S SKVJWrW  S SKXJYrYJZrZ  S SK[J\r\J]r]J^r^J_r_J`r`JaraJbrbJcrcJdrdJere  S SKfJgrg  S S KhJiriJjrjJkrk  S S!KlJmrmJnrnJoroJprpJqrqJrrrJsrsJtrtJuruJvrvJwrwJxrxJyryJzrz  S" r{S# r|S$ r}S% r~S& r\kS' 5       rS( rS) rS* rS+ rS, rS- rS. rS/ rS0 r\kS1 5       rS2 rS3 rS4 rS5 rS6 rS7 rS8 rS9 rS: rS; rS< r\iS= 5       rS> rS? rS@ rSA rSB rSC rSD rSE rSF rSG rSH rSI rSJ rSK r\kSL 5       rSM rSN rSO rSP rSQ rSR r\jSS 5       rST rSU rSV rSW rSX r\iSY 5       r\iSZ 5       rS[ rS\ rS] rS^ rS_ rS` rSa rSb rSc rSd rge)f    )Sum)Add)Basic)	unchanged)	count_opsdiffexpandexpand_multinomialFunction
Derivative)Mul_keep_coeff)GoldenRatio)EFloatIoopiRationalzoo)EqLtGtGeLe)S)Symbolsymbols)sympify)binomial	factorial)Abssign)exp	exp_polarlog)coshcschsinh)sqrt)	Piecewise)acosasinatancossinsinctan)erf)gamma)hyper)KroneckerDelta)rad)Integral	integrate)AndOr)Matrixeye)MatrixSymbol)factorPoly)

besselsimp	hypersimpinversecombine
logcombine	nsimplifynthrootposifyseparatevarssignsimpsimplify)solve)XFAILslow_both_exp_pow)xyztabcdefghinc                      [        [        SS[        [        S5      5      S-  -  -
  5      R	                  5       S-
  5      S:  d   eg )NgQ@g    @@g333333'@   grfa@g-q=)absrJ   r0   r7   evalf     Z/var/www/auris/envauris/lib/python3.13/site-packages/sympy/simplify/tests/test_simplify.pytest_issue_7263rd   %   sK    7ST^Q->#>>?FFH  %& & &rb   c                      [        S5      n [        [        U 5      U -  5      [        U 5      :X  d   e[        [        [        U 5      5      5      [        [        U 5      5      :X  d   eg )NrO   )r   rJ   r!   r4   rO   s    rc   test_factorial_simplifyrg   *   sO    sAIaLN#uQx///Iil+,	)A,0GGGGrb   c                     [        S5      u	  pp#pEpgn[        S5      n	[        S [        [        [
        X * [
        * [        * [        * 4 5       5      (       d   eSU -  SU-  -   n
XU-   X-  -  :w  d   e[        U
5      X-   X-  -  :X  d   eUS-  US-  -  S[        -  U-  US-  -  -  n
[        U
5      U
:X  d   eSSU -  -   SSSU -  -   -  -
  SSU -  -   -  n
[        U
5      S:X  d   eS	U -  US-  -  SUS-  -  -
  SU S-  -  U-  -
  X-   S-  -  n
[        U
5      S
U-  :X  d   eU * U-
  X-   S-  US-  -  -
  X-   S-  U S-  -  -   n
[        U
5      S
U-  :X  d   eX U-  -   U -  n
[        U
5      SU-   :X  d   eU	" U 5      X" U 5      -  -   U	" U 5      -  n
[        U
5      SU-   :X  d   eSSU-  [        U[        -  5      U-  -
  -  [        -  n
[        U
5      [        [        U-  5      * S-   [        U-  -  S-  :X  d   e[        SU S-  S-   -  U 5      R                  U 5      n
[        U
5      SU S-  S-   -  :X  d   e[        X S-  SU -  -   S-   -  U 5      R                  U 5      n
[        U
5      X S-  SU -  -   S-   -  :X  d   e[        S5      n	[        SU-  XVS-  -  -
  U* /U* X5US-  -  -
  //5      R                  5       n[        U[        SU	/5      -  S   U	* SU-  XVS-  -  -
  -  US-  X5US-  -  -
  SU-  XVS-  -  -
  -  -
  -  -
  5      S:X  d   eU * X[        -   -  -   X -  U[        -   -  -   U[        -  U[        -   -  -   [        U -  U[        -   -  -   n	[        U	5      U[        U-  -   U[        -   -  :X  d   eU * US-  S-
  -  SUS-  -  U S-  S-
  -  [        U S-  US-  -
  S-  -  -  U S-  S-
  [        U S-  US-  -
  -  -  -   -  [        U S-  US-  -
  -  -  U S
U S-  -  [!        U S-  * US-  -  U S-  -   US-  -   S-
  5      -  [#        U5      -  [        U S-  US-  -
  S-  -  -  U S-  [!        U S-  * US-  -  U S-  -   US-  -   S-
  5      -  [#        U5      -  [        U S-  S-
  -  U S-  US-  -
  -  -  -
  U S-  [!        U S-  * S-   US-  S-
  -  5      -  [!        U S-  * US-  -  U S-  -   US-  -   S-
  5      -  [#        U5      -  U S-  S-
  -  [!        U S-  * S-   US-  S-
  -  5      X * US-  -  U -   -  [!        U S-  * US-  -  U S-  -   US-  -   S-
  5      -  [!        U S-  * US-  -  U S-  -   US-  -   S-
  5      -   -  [#        U5      -  -   [        [!        U S-  * S-   US-  S-
  -  5      -  U S-  US-  -
  -  -  -   -  [!        U S-  * US-  -  U S-  -   US-  -   S-
  5      -  [#        U5      -  [        U S-  US-  -
  -  -  -   U S
U S-  -  [!        U S-  * US-  -  U S-  -   US-  -   S-
  5      -  [        U5      -  [        U S-  US-  -
  S-  -  -  U S-  [!        U S-  * US-  -  U S-  -   US-  -   S-
  5      -  [        U5      -  [        U S-  S-
  -  U S-  US-  -
  -  -  -
  U S-  [!        U S-  * S-   US-  S-
  -  5      -  [!        U S-  * US-  -  U S-  -   US-  -   S-
  5      -  [        U5      -  U S-  S-
  -  U [!        U S-  * S-   US-  S-
  -  5      -  U * US-  -  U -   -  [        U5      -  [!        U S-  * US-  -  U S-  -   US-  -   S-
  5      -  -   [!        U S-  * S-   US-  S-
  -  5      [!        U S-  * US-  -  U S-  -   US-  -   S-
  5      -  [        U5      -  -   [        [!        U S-  * S-   US-  S-
  -  5      -  U S-  US-  -
  -  -  -   -  [!        U S-  * US-  -  U S-  -   US-  -   S-
  5      -  [        U5      -  [        U S-  US-  -
  -  -  -   U[!        U S-  * S-   US-  S-
  -  5      -  U * U-  [!        U S-  * US-  -  U S-  -   US-  -   S-
  5      -  [#        U5      -  [        U S-  US-  -
  -  US-  S-
  -  -  SU -  U-  [!        U S-  * US-  -  U S-  -   US-  -   S-
  5      -  [#        U5      -  [        U S-  US-  -
  S-  -  -  -   X-  [!        U S-  * S-   US-  S-
  -  5      -  [!        U S-  * US-  -  U S-  -   US-  -   S-
  5      -  [#        U5      -  US-  S-
  -  U [!        U S-  * S-   US-  S-
  -  5      -  U S-  * U-  U-   -  [#        U5      -  [!        U S-  * US-  -  U S-  -   US-  -   S-
  5      -  -   [        [!        U S-  * S-   US-  S-
  -  5      -  U S-  US-  -
  -  -  -   -  [#        U5      -  [        U S-  US-  -
  -  -  -
  XS-  S-
  -  S
U -  U-  U S-  S-
  -  [        U S-  US-  -
  S-  -  -  SU -  U-  [        U S-  US-  -
  -  -  -   -  [        U S-  US-  -
  -  -  -   XS-  S-
  -  US-  S-
  -  U * U-  [!        U S-  * US-  -  U S-  -   US-  -   S-
  5      -  [        U5      -  [        U S-  US-  -
  -  US-  S-
  -  -  SU -  U-  [!        U S-  * US-  -  U S-  -   US-  -   S-
  5      -  [        U5      -  [        U S-  US-  -
  S-  -  -  -   X-  [!        U S-  * S-   US-  S-
  -  5      -  [!        U S-  * US-  -  U S-  -   US-  -   S-
  5      -  [        U5      -  US-  S-
  -  U [!        U S-  * S-   US-  S-
  -  5      -  U S-  * U-  U-   -  [        U5      -  [!        U S-  * US-  -  U S-  -   US-  -   S-
  5      -  -   [        [!        U S-  * S-   US-  S-
  -  5      -  U S-  US-  -
  -  -  -   -  [        U5      -  [        [!        U S-  * S-   US-  S-
  -  5      -  U S-  US-  -
  -  -  -   U [!        U S-  * S-   US-  S-
  -  5      -  [!        U S-  * US-  -  U S-  -   US-  -   S-
  5      -  [#        U5      S-  -  [        S-  U S-  S-
  -  U S-  US-  -
  -  US-  S-
  -  -  -
  U [!        U S-  * S-   US-  S-
  -  5      -  [!        U S-  * US-  -  U S-  -   US-  -   S-
  5      -  [        U5      S-  -  [        S-  U S-  S-
  -  U S-  US-  -
  -  US-  S-
  -  -  -
  n[        U5      SU -  [        S-  U S-  US-  -
  -  -  :X  d   e[        S5      [%        ['        S5      ['        S5      5      :X  d   e[        SSS9u  p[        X-  X-  -
  5      X-  X-  -
  :X  d   e[        USX-  -   -  5      X-  X-   -  :X  d   e[        USU -  SU-  -   -  5      X-  X-  -   :X  d   e[        [)        S5      [)        S5      -   5      [)        S5      :X  d   e[        [)        SU -  5      [)        S5      -
  5      [)        U 5      :X  d   e[        [+        / / U 5      5      [-        U 5      :X  d   eg )Nzx,y,z,k,n,m,w,s,ArX   c              3   >   #    U  H  n[        U5      U:H  v   M     g 7fNrJ   ).0tmps     rc   	<genexpr>%test_simplify_expr.<locals>.<genexpr>5   s     N/Mx}#/Ms      r^         r   z/((-1/2)*Boole(True)*Boole(False)-1)*Boole(True)z(2 + Boole(True)*Boole(False))z-Boole(True)/2zA,BFcommutative   )r   r   allr   r   r   rJ   r   r/   r9   r   r   r<   invrR   rS   r*   r0   r   r   r&   r5   r$   )rO   rP   rQ   kr\   mwsArX   rW   exprBs                rc   test_simplify_exprr   1   s    '(; <A!aAAN1b!R"qb1"/MNNNNN	!ac	AQA;1513-'''	1QT	1R46!Q$;AA;!	
QqS1a!A#g;	QqS)AA;!	AadQq!tV	a1fQh	&
2AA;"Q$	
Q!%2q!t##qumAqD&88AA;"Q$	
qS!AA;!a%	
1!A$!AA;!a%	
acCBKM!	"B&AA;C1I:>BqD1!3333!QTAX,"''*AA;!QTAX,&&&!TAaCZ!^$a(--a0AA;!TAaCZ!^,,,,sA1qAvr"aRq!tV$456::<AQvq!f~%q)R1qAv1adF
QqS1T6\'B BCE FIJK K K 
QAYa!e$qsAE{2QqS!a%[@AA;1qs7QU++++ 2q!tax=!AqD&!Q$(+Q1q!ta/?-?@AqD1H
QTAqD[/D  1q!t_.012ad74Aad
QPQT@Q
Q$AA < 4F4q!tad{Q..4023Q$tQTE!Q$JA<M	1== 8 3a&3QTAX,1q!t436469:AdQTEAI	
AD ? :!Q$q!tad*QT1A56:77:1v:>?@!tax:IKO
Q$QTAXL !"Bq!tGaKq!teAqDj1a46G!Q$6N	7
 2 "1a4%1*q!t#ad*Q./"0L114QL8:8 ;<D1a4%!)	1qB = ;qD1a4K;!9"4" 1# $(Aad
QT(9AqD(@1(D#E1F GJ!f1M OP	
A1O1 Bq!tGD!Q$q!tad):QT)AA)E$FFs1vMq	
A1qP qDq!teAqDj1a4&7!Q$&>&B!CCCFJA	
AMqD1a4KM! ""%&T$A	AqD1H/E*F%FtQPQTE	
AM1M!tMM  H! &!!$Q&()*A&356tadUQYA	J
 = 8 6R1Wq[6a&6!!%q!teAqDj1a4&7!Q$&>&B!C6D&DFJQPQTE
MdQhL Gq!teAqDj1a4/!Q$6:;G<<?FGC&C FGtaQRdU
NdQhM H FQ$A+F'%(( ) *.q!teAqDj1a4.?!Q$.F.J)KL MP	M q!tad{O  !1uqy1a4!8&<!==r!tD!Q$	1J!tJdJJ E  @  #A@'()1a4!Q$;A(B@DFGc!eD	
Aad
QTAqD 1$M& G&&)!fG-./A1q0@.@GB@BEFS	
A	AqD1HO J F#QTE!Q$JA$51$<q$@AFBBEa&FIJKQ$	K
FtadUQYA*++adU1Wq[9#a&@q!teAqDj
Q$GAGG B F tadUQYA$:;;QTAqD[IEK@K  L
 MP	M  q!tad{O *  !Q$(|RT!VQTAX->1a4!Q$;
C A .s1uaA1o&.'  ()*AqD1a4K :+:, =>!taxL!Q$	K
 =BqDq!teAqDj1a4'!Q$.233CF:Aq!tad{OQPQT
N = !AdAqD5A:1,q!t3a788Q?AqD1a4K
D B D1a4%!)adQh/00q!teAqDj1a46G!Q$6N	7
 2 q6a4!8 1uqy1a4!8&<!==1uQw{KC	M  Aad
QT!AqD(1,- ..01$A	AqD1H7M 3
 1
a4!Q$;1= a&=! #$D1a4%!)adQh)?$@"@!Q$A+"N=
-
: dQTEAI1q)**4Aad
QT0AAqD0H10L+MMc	OO !tQTAX1q!t,adQh79;9< <=TAqD519	1qC > <Aad
QT)AqD0145<669!fai<@ABAq!tax	1q!tBdQhB <!= !DB D>QqS!Q$1q!t"45555 EF897CS;TUV V V 5e,DAAC!#I!#)+++Aq13wK ACK///AqsQqSyM"acACi///CFSVO$A...C!Hs1v%&#a&000E"b!$%Q///rb   c                     [         [        -  [        [        -  -   [        [
        -  -   S-
  n [         [        -  [        [        -  -   [        [        -  -   S-
  n[         [        -  [        [        -  -   [        [        -  -   S-
  n[        XU/[         [        [        SS9n[        U[           5      [        [        -  [
        [        -  -   [        [        -  -   [        [        -  -
  [
        [        -  -
  [        [        -  -
  [        [        -  [        -  [        [        -  [        -  -   [
        [        -  [        -  -   [        [        -  [        -  -
  [        [        -  [        -  -
  [
        [        -  [        -  -
  -  :X  d   eg )Nrp   Frk   )rO   rS   rP   rT   rQ   rU   rV   rW   rX   rY   rZ   r[   rK   rJ   )f_1f_2f_3	solutionss       rc   test_issue_3557r      s   
A#!)ac/A
C
A#!)ac/A
C
A#!)ac/A
Csoq!Q?IIaL!	
1qsQqS1Q3	1	$qs	*	
1Q1Q1Q	1Q	&1Q	.1Q	6	88 8 8rb   c                  *   [        [        [        5      S-  [        [        5      S-  -   5      S:X  d   e[        [	        [        S-   5      [	        [        5      -  5      [        :X  d   e[        [        [        5      S-  [        [        5      S-  -   [        [        5      [	        [        5      -  -   5      S[        -   :X  d   e[        [        [        [        5      S-  [        [        5      S-  -   [        [        5      [	        [        5      -  5      5      [        [        S5      :X  d   e[        SSS9n [        [        [        U -  -   5      [        SU -   -  :X  d   e[        [        * [        -  [        [        [        -  [        SS5      -  [        [        S-  -  S[        -  -  -   5      -  [        [        [        [        [        -  [        SS5      -  5      -  S[        [        5      -  -  5      -  S[        [        5      -  -  [        [        -  [        [        [        -  [        SS5      -  [        [        S-  -  S[        -  -  -   5      -  S[        [        5      -  -  -   -  [        [        * [        S-  -  S[        -  -  5      -  [        [        5      [        -  -  [        [        [        5      -  [        [        [        [        [        -  S-  5      -  S[        [        5      -  -  5      * S-   -  [        [        [        -  S-  5      -  S[        [        5      -  -  -
  n[        U5      S[        S	S5      -  * [        [        5      -  [        [        5      -  :X  d   e[        SS[        -   -  S-  5      S[        -  :X  d   eg )
Nr^   rp   ncFrv   rq   ru   rr   )rJ   r0   rO   r/   r4   r!   r   r   r   r   r$   r   rR   r3   r*   )r   anss     rc   test_simplify_otherr      s   CFAIA	)*a///E!a%Lq)*a///CFAIA	)IaLq,AABa!eKKK
3q619s1vqy )A,uQx"78:=?1XF F F	5	)BA"HAF+++ bSU3qtHRO+a1facl:;;C#ad8TVXY?FZB[@[	
47A = Qi!#%a4AbD"a,@1QT61Q3<,O(P#P	
47$ !AqD!A#'()-b!578bz
aAbDFmQtAwY'
(	(1	,8..1!B$q&k8:;<T!W98FFC C=b8Aq>11$r(:47BBBBAAJqL!QT)))rb   c            	         [        [        5      R                  [        5      n [        [        5      R                  [        5      n[	        X-  5      [        [        5      :X  d   e[	        [        [        SS/SS//5      5      5      [        [        S5      [        S5      * /[        S5      [        S5      //5      :X  d   eg )Nr   ru   rp   )r/   rO   _eval_rewrite_as_expr2   rJ   r0   r$   r<   )cosAsExptanAsExps     rc   test_simplify_complexr      s    1v**1-H1v**1-HH%&#a&000 CB!Q0123vA	Q@q63q6"?$ 8% % % %rb   c                      / SQn U  HC  n[        U5      n[        [        USS95      [        U5      ::  d   e[        U[        S9ULa  MC   e   g )N)za(1/2 - sqrt(3)*I/2)*(sqrt(21)/2 + 5/2)**(1/3) + 1/((1/2 - sqrt(3)*I/2)*(sqrt(21)/2 + 5/2)**(1/3))za1/((1/2 + sqrt(3)*I/2)*(sqrt(21)/2 + 5/2)**(1/3)) + (1/2 + sqrt(3)*I/2)*(sqrt(21)/2 + 5/2)**(1/3)z8-(sqrt(21)/2 + 5/2)**(1/3) - 1/(sqrt(21)/2 + 5/2)**(1/3)rp   )ratio)r   r   rJ   r   )rootsrs     rc   test_simplify_ratior      sR    IE aD!1-.)A,>>>$A---	 rb   c                     S n S n[         S-   [         [        [         5      S-  -   [        [         5      S-  -   -  nU " [        X S95      U " U5      ::  d   eU" [        X!S95      U" U5      ::  d   e[	        [        [         5      S-  [        [         5      S-  -   S5      nU " [        X0S95      U " U5      ::  d   eU" [        X1S95      U" U5      ::  d   eg )Nc                 *    [        [        U 5      5      $ rj   )lenstrr   s    rc   <lambda>'test_simplify_measure.<locals>.<lambda>   s    CD	Nrb   c                     [        U 5      * $ rj   )r   r   s    rc   r   r      s    Yt_,rb   rp   r^   )measure)rO   r0   r/   rJ   r   )measure1measure2r   expr2s       rc   test_simplify_measurer      s    *H,HEAA	MCFAI-.DHT45$GGGHT45$GGGs1vqy3q619$a(EHU56(5/IIIHU56(5/IIIrb   c                      S[         -  S[        -  -  n [        U SS9S[         [        -   -  :X  d   e[        U S S9S[         [        -   -  :X  d   e[        U SS9U :X  d   e[        SSS9S:X  d   eg )Nr^          @TrationalFz0.9 - 0.8 - 0.1r   )rO   rP   rJ   r   s    rc   test_simplify_rationalr      sx    a4A:DDT*a!A#h666DT*cAaCj888DU+t333%$71<<<rb   c            	          [        [        [        SS5      5      [        [        SS5      5      -   5      S[        -   [        [        SS5      5      -  :X  d   eg )Nru   r^   r   rp   )rJ   r$   r   r   ra   rb   rc   test_simplify_issue_1308r      sK    CQ(3xA+??@	
QHRO$$% % %rb   c                      [        [        [        [        * 5      -   5      [        [        * 5      [        -   :X  d   e[        SSS9n [        X U * -  -   5      X U * -  -   :X  d   eg )Nr\   Frv   )rJ   r   r$   r   r\   s    rc   test_issue_5652r      sX    AQBK CGaK///'AAQBK AQBK///rb   c                  N    [        S[        S-   -  S[        -  -  5      S:X  d   eg )N      ?rp   rJ   rO   ra   rb   rc   test_issue_27380r      s&    C!A#JsAv%&#---rb   c                      [        S5      n [        S5      nX-   S-  SU -  US-  -  SUS-  -  -
  SU S-  -  U-  -
  -  n[        U5      SSU-  -  :X  d   eg )NrO   rP   r^   rs   rr   rp   rt   )r   rJ   )rO   rP   rW   s      rc   test_simplify_fail1r      sh    sAsA	

BqDAI!Q$&1a412AA;!r!t*$$$rb   c                  j   [        SS[        S5      -  -   S5      [        S5      S-   :X  d   eS[        S5      -   S[        S5      -  -
  [        S5      -   [        S5      -   n [        [        U S-  5      S5      U :X  d   e[        SS	[        S5      -  -   S
5      S[        S5      -   :X  d   e[        SS	[        S5      -  -
  S
5      S[        S5      -
  :X  d   eS[        S5      -  S-   S[        S5      -  -   S[        S5      -  -   n[        US
5      S[        S5      -   [        S5      -   :X  d   eS[        S5      -   [        S5      -   [        S
5      -   n [        [        [        U S
-  5      S
5      5      U :X  d   eS[        S5      -   S[        S5      -  -   S[        S5      -  -   n [        [        U S
-  5      S
S5      U :X  d   eS[        S5      -   S[        S5      -  -
  S[        S5      -  -   n [        [        U S-  5      S5      U :X  d   e[        [        U S-  5      S5      U :X  d   eg )NZ   "      rr   rp   r^   rx   )         iru   i(  
   ix  i
  ih        i  )rF   r*   r
   )qr   s     rc   test_nthrootr      s   247
?A&$q'A+555	DGaQi$q')DG3A%ad+Q/1444247
?A&!d1g+5553DG#Q'2Q<777R=4$tAw,.d2h>D4q47{T"X5555	DGd1gQ'Ag&8A&>BCqHHH	DGaQi!DH*,A%ad+Q2a777	DGaQi$tAw,.A%ad+Q/1444%ad+Q/1444rb   c                  <   S[        S5      -   [        S5      -   [        R                  S-  -   n [        U S-  5      n[	        US5      U :X  d   eS[        S5      -   [        S5      -   [        R                  S-  -   n [        U S-  5      n[	        US5      U :X  d   eg )Nrp   r^   rr   l      Fx:^V r   l       73Me')r*   r   Oner
   rF   )r   ps     rc   test_nthroot1r     s    	DGd1gf,A1a4 A1a=A	DGd1gf,A1a4 A1a=Arb   c            	         [        S5      u  pp#[        SU-  U -  U-  SU -  U-  U-  -   5      SU -  U-  X1-   -  :X  d   e[        X-  X-  U-  -   5      X-  SU-   -  :X  d   e[        [        U -  U-  [        U -  U-  U-  -   5      [        U -  U-  SU-   -  :X  d   e[        XS-  -  [        U 5      -  U [        U 5      -  [        U5      -  -   5      U [        U5      US-  -   -  [        U 5      -  :X  d   e[        U [	        X-   5      -  U [	        U 5      -  -   5      U S[	        U5      -   -  [	        U 5      -  :X  d   e[        XS-   -  U-  5      R
                  (       d   e[        SU -   U-   X-  -   5      U S-   US-   -  :X  d   e[        U[        -  [	        X -
  * [        U5      -  5      -  5      U[	        U [        U5      -  5      -  [	        U* [        U5      -  5      -  [        -  :X  d   e[        X-   X-
  -  US-  -   SU -  -   S-   5      U S-   S-  :X  d   e[        SSS9n[        [        US-  XS-  -  -   5      5      U[        SU -   5      -  :X  d   e[        [        XS-  XS-  -  -   -  5      5      U[        USU -   -  5      -  :X  d   e[        [        XS-  XS-  -  -   -  5      SS9U[        U5      -  [        SU -   5      -  :X  d   e[        [        X-  5      5      R
                  (       d   e[        [        X-  5      SS9[        U 5      [        U5      -  :X  d   e[        SU -  S-   U-  SSS	9S
SU SU -  S-   X0:X  d   e[        SU -  S-   U-  SU /S	9S
XSU -  S-   0:X  d   e[        SU -  S-   U-  S/ S	9S
SU SU -  S-   X0:X  d   e[        SU -  S-   U-  SS9S
SU SU -  S-   X0:X  d   e[        SU -  S-   U-  SS S	9S
USU -  S-   -  0:X  d   e[        SSS9b   e[        SU -  U-   SSS	9b   e[        SU -  U-   SS9b   e[        SU -  U-   SS S	9S
SU -  U-   0:X  d   e[        SSS9u  p5[        XSU-  -   5      SU-   U-  :X  d   e[        X U-  -   5      U SU-   -  :X  d   e[        S5      n[        U" U 5      X" U 5      -  -   5      U" U 5      X" U 5      -  -   :X  d   eU S[        SSX-  5      -   -  n[        U5      U:X  d   e[        [        X-  5      5      nU[        U 5      [        U5      -  :X  a  UR                  (       d   e[        S5      S-  [        S5      S-  -   S-
  n[        X-  5      n	[        U	5      nU	R                  (       d,  UR                  (       a  U[        U 5      [        U5      -  :X  d   e[        [        X-  U-  5      5      nU[        U 5      [        U5      -  [        U5      -  :X  d   e[        [        X-   U-  5      5      [        X-   U-  5      :X  d   eg )Nzx,y,z,nr^   rp   r   Tpositiveforcera   )dictr   coeff)r   rr   zn,mFrv   rX   )r   rH   r   r0   r$   is_Powr/   r   r*   r   r5   r_   is_Mul)
rO   rP   rQ   r\   r   r|   rX   eqr~   rS   s
             rc   test_separatevarsr     sv   #JA!!Aa!A#a%')*ac!eQUm;;;ac!e$QU3331QAa)*bd1fa!en<<<Q$s1v#a&Q78	3q6AqD=#a& ! ! !#ae*qQx/0Aq3q6zN3q64IIIIEQ'....A	AC(QUQUO;;;"S15#a&112	#aAh-QBs1vI&r)* * *!Q$.14q89a!eaZGGGsT"AQTAdF]+,$q1u+===Q1qAv./0Ad1a!e9o4EEEEQ1qAv./t<	$q'	$q1u+   QS	"))))QS	.$q'$q'/AAA !A#'1D"=	!Q!a&' ' ' !A#'1D1#>	!!a ! ! !!A#'1D"=	!Q!a&' ' '!A#'1D1	!Q!a&' ' '!A#'1D$?	!QqS1W+   %---!adB7???!ad+333!adD9gqsQw=OOOO5e,DAaC QUAI---aC Aq1uI---A!q1v&!A$1Q4-777	
Ab"ac""	#Br!!!SXAAs1v!((**A	CFAI!AACAQAxxAHHc!fSVm);;;SQZ AAs1vc!f$$$$ QS!G%ac1W555rb   c            	         [        S5      u  pn[        S[        U 5      [        U5      -  -   [        U 5      -   [        U5      -   5      [        U 5      S-   [        U5      S-   -  :X  d   e[        SU -   [        U5      -
  U [        U5      -  -
  [        U5      [        U5      -  -
  U [        U5      -  [        U5      -  -
  U [        U5      -  -   [        U5      -   5      U S-   [        U5      S-
  -  [        U5      S-   -  * :X  d   e[        SSS9u  p[        S[        U [        U5      -  5      -   [        X-  5      -   5      [        U 5      S-   [        U5      S-   -  :X  d   eg )Nzx,y,zrp   x,yTr   )r   rH   r&   r$   rO   rP   rQ   s      rc   !test_separatevars_advanced_factorr   Q  sX   gGA!CF3q6M)CF2SV;<	Q!c!fqj!" " "AA3q61CF3q6MA	#a&QCF(#%(V, -q53q6A:
A

+,- - - 54(DAC3q6	N*SX56	Q!c!fqj!" " "rb   c                     [        SSS9u  p[        [        U5      U5      US-   :X  d   e[        [        US-  5      U5      b   e[        S[        U5      -  U5      SUS-   -  :X  d   e[        SU-  [        U5      S-  -  U5      SUS-   S-  -  :X  d   e[        [        X5      U5      X-
  US-   -  :X  d   e[        [        U S-   U5      U5      X-
  S-   US-   -  :X  d   eSU-  S-   [        U5      -  [        SU-  S-   5      -  n[        X!5      [        R
                  SU-  S-   SS	U-  -   S
US-  -  -   -  -  :X  d   eSSU-  S-
  [        SU-  S-   5      -  -  n[        X!5      U[        R
                  -
  US-   SU-  S-   -  SU-  S-   -  -  :X  d   e[        X5      SU-  -  [        U5      -  n[        X!5      X-
  US-   S-  -  :X  d   eg )Nzn,kTintegerrp   r^   rq   r   rr      r   ru   )r   rB   r!   r    r   Half)r\   r{   terms      rc   test_hypersimpr   ]  s   5$'DAYq\1%Q...Yq!t_a(000Qy|^Q'1a!e9444QT)A,/)1-AEA:===Xa^Q'AEAE?:::Xa!eQ'+	AE/BBBBaC!GYq\!)AaC!G"44DT!A#'A1HqAv4E)F!GGGGqsQw	!A#'**+DT!aff*A!a/@!A#'/J!KKKKA>2'!)A,.DT!%!a%!!3333rb   c            	      V   [        S5      n [        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        SU -   5      SU -   :X  d   e[        S5      [        SS5      :X  d   e[        S[        -
  5      S[	        S5      -
  S	-  :X  d   e[        S[	        S5      -   S
-  [        /5      [        S	-  :X  d   e[        S	[        -  [        /5      S	[        -  S	-
  :X  d   e[        [        [        [        -  [        SS5      -  SS95      [        S5      :X  d   e[        [        [        [        SS5      -  SS95      [        S5      :X  d   e[        [	        [        SSS95      S	[        -   -  [        /5      [	        [        5      [	        [        5      S	-  [        -  -   :X  d   e[        S	[        S	[        S5      -  [        -  5      -   5      [        S5      :X  d   e[        [        SS9[        SS5      :X  d   e[        [        SS9[        SS5      :X  d   e[        SSS9[        SS5      :X  d   e[        SSS9[        SS5      :X  d   e[        SSSS 9S	[        SS5      -  :X  d   e[        U S!-   SS"9[        R                  U -   :X  d   e[        S#U -   SS"9[        SS5      U -   :X  d   e[        [        S5      R                  5       SS"9[        S$5      :X  d   e[        [        S%5      [        [        S	5      /5      [        [        S	5      -  S&-  :X  d   e[        [        S%5      R                  S5      [        [        S	5      /5      [        * S
-  [        S	5      -
  [        SS
5      -   :X  d   e[        U S'-  5      U S-  :X  d   e[        [        S(-  5      [        S)-  :X  d   e[        [        S(-  SS"9[        S(-  :X  d   e[        [        S*-  5      S+[        -  :X  d   e[        [!        S,["        S	-  -  ["        S	-  S--  -  S["        S	-  S.-  -  -   5      5      R%                  [        5      (       a   eU S/-  nUR&                  (       a  [        U S/-  5      S:X  d   e[        S0S1SS29[        SS5      :X  d   e[        S0SSS29[        SS5      :X  d   e[        S3S1SS29[        S4S5      :X  d   e[        S3SSS29[        S4S5      :X  d   e[        S5SSS29[        S55      :X  d   e[        S6SSS29[        S75      :X  d   e[        S8SSS29[        S95      :X  d   e[        S:5      [        S;S5      :X  d   e[        S<SS9[        SS5      :X  d   e[        S=SS9[        SS5      :X  d   e[        S>SS9[        S?S@5      :X  d   e[        SASS9[        SBS@5      :X  d   e[        [        SC5      5      [        SSD5      :X  d   e[        SESS"9S:w  d   e[        SF5      n[(        * [(        X"* 4nU H;  n[+        U5      [(        -  n[        U5      U:X  d   e[        X@-   5      X-   :X  a  M;   e   [        SGSSHSI9[        SG5      :X  d   e[        [        R,                  " S)5      U -  SHSJ9R-                  S)5      [        R,                  " S)5      U -  :X  d   eg )KNrO   r   ru   rp   g@   r   r   r^   rq   rr   Fevaluatez1/2 - sqrt(3)*I/2zsqrt(sqrt(5)/8 + 5/8)1z1/4z49/17 + 8*I/17g{Gz?)	tolerance   r   gMbP?ic  q   g1ZGU?g-C6?gr(?i{  i  T)r   full      ?r   g
@z109861228866811/100000000000000gAk?r         @g      Y@d   gHz>i g      g      g              gk}
@g?)r   r   gRTU@   !   g
ףp=@@   gzGB@(   g33333ciig?gɿg镲q?iW  i  g镲q̿ig:0yU>ig9(L67infgQUU?exact)r   rational_conversion)r   )r   rE   r   r   r*   r$   r   r   r   r0   r.   r   r   r&   r\   r   r?   rQ   atomsr   r   r#   r`   )rO   rW   r   infszir   s         rc   test_nsimplifyr   t  sg   sAQ<1R=BQ<1QUq1u$$$S>Xb"----Q_%!d1g+q888a$q'k1_{m4AEEEQ{][M2ama6GGGGSAhq!n,u=>#$% % %SHQN*U;<'() ) )T$sU34a!e<rdCR48A:a<     QQtE{]1_--.':J2KKKKR4(HRO;;;R5)Xc3-????W-!Q???[E2hsC6HHHH[E=	8Aq>  QVd+qvvz999TAX-"a11DDDDSVXXZ$/123 3 3U,-CF|<3q6	!KKKU,-//2RQLA	AA!Q'( ( (QsUqs"""RV3&&&RVe,5888RW",,,tAqDy!Q$$'!QTTN*::;==BU5\J J J	3A88	!S&)Q...Xt<QOOOX="aPPPXt<QOOOX="aPPPR25"EEEUb48HRLHHHUb48HRLHHHV 3333R1%!Q777SA&(2q/999Ua(HT4,@@@@Vq)XeT-BBBBQtW!X!6666UT*a///
,CCS$D2hrk}### AG+++ 
 Z$GLPXYcPdddd RXXc]1_'BHHMQSQYQYZ]Q^_`Q````rb   c                  X    [        S5      n [        U 5      [        R                  :X  d   eg )NzE1/(1 - (-1)**(2/3) - (-1)**(1/3)) + 1/(1 + (-1)**(2/3) + (-1)**(1/3)))r   rE   r   r   )rm   s    rc   test_issue_9448r     s#    
Y
ZCS>QVV###rb   c                     [        S5      n [        S5      n[        S5      n[        S5      n[        U * U* -  5      X-  :X  d   e[        U * U-  5      U * U-  :X  d   e[        X-  5      X-  :X  d   e[        X* -  5      U * U-  :X  d   e[        U * S-  5      [        U -  :X  d   e[        [        SS5      5      [        L d   e[        U* U -  U* U-
  -  5      X -  X1-   -  :X  d   eg )NrO   rP   rS   rT   r   )r   rJ   r   r   )rO   rP   rS   rT   s       rc   test_extract_minus_signr     s    sAsAsAsAQBrE?ac!!!QBqD>aRT!!!AC=ACAbD>aRT!!!QBqD>SU"""HRO$+++QBqD1"q&M"ac15k111rb   c                     [        S5      n [        S5      n[        S5      n[        S5      n[        U" U 5      R                  U 5      U" U 5      R                  U 5      -  U" U 5      R                  U 5      U" U 5      R                  U 5      -  -
  5      S:X  d   e[        SU" U 5      -  U" U 5      R                  U 5      -  [        U" U 5      S-  U 5      -
  5      S:X  d   e[        [        SU" U 5      -  U 5      U" U 5      R                  U 5      U" U 5      S-  -  -   5      S:X  d   e[        U" U 5      R                  X5      U" U 5      R                  X5      -
  5      S:X  d   eg )NrO   rP   rX   rY   r   r^   rp   )r   r   rJ   r   rO   rP   rX   rY   s       rc   	test_diffr     s'   sAsAAAAaDIIaL11-!		!QqTYYq\0IIJaOOOAadF1Q499Q<'$qtQw*::;q@@@D1Q4Oadiil1Q47&::;q@@@AaDIIaOadiio56!;;;rb   c            	         [        S5      u  p[        S5      n[        SSS9u  p4[        SSS9n[        [        U 5      S[        U5      -  -   5      [        U 5      S[        U5      -  -   :X  d   e[        [        U 5      S[        U5      -  -   SS	9[        XS-  -  5      :X  d   e[        U[        U5      -  [        U5      -   5      U[        U5      -  [        U5      -   :X  d   e[        U[        U5      -  U[        U 5      -  -   5      [        X5-  5      U[        U 5      -  -   :X  d   e[        U[        U5      -  [        U5      -
  5      [        X5-  U-  5      :X  d   e[        [        U 5      [        U5      -  5      [        U 5      [        U5      -  :X  d   e[        [        U5      [        U 5      -  5      [        U5      [        U 5      -  :X  d   e[        [	        S
[        U5      -  U[        U5      -  -   5      5      [	        [        XE-  US-  -  5      5      [	        [        US-  XE-  -  5      5      4;   d   e[        [        [        U 5      [        U5      -
  5      [        U5      -
  SS	9[        [        X-  5      U-  5      :X  d   e[        S[
        -   [        U 5      -  SS	9S[
        -   [        U 5      -  :X  d   e[        U S-  [        U 5      -   [        U5      -
  X-  -  SS	9U S-  [        X-  5      -   X-  -  :X  d   e[        [        U 5      S-  [        U5      -  [        U5      -   SS	9[        X1[        U S-  5      -  -  5      :X  d   e[        X-  [        U S-  US-  -   5      -   [        U 5      -   [        U5      -
  [        U [        SS5      -  -  [        U5      S-  -  -  SS	9X-  [        U S-  US-  -   5      -   [        X-  5      -   [        U [        SS5      -  -  U[        SS5      -  -  -  :X  d   e[        [        [        X-  5      * 5      [        [        X-  5      * 5      -  SS	9[        [        X-  5      * 5      [        [        X-  5      * 5      -  :X  d   e[        S[        U5      -  [        U5      -  [        U 5      -  [        U5      -   [        U5      -   5      [        U[        US-  5      -  5      [        U 5      -  [        XC-  5      -   :X  d   e[        S[        U5      -  S[        U5      -  -   5      [        US-  US-  -  5      :X  d   e[        XS-   -  [        S5      -   [        S5      -   5      XS-   -  [        S5      -   :X  d   e[        X-   [        U5      -  U * U-
  [        S5      -  -   5      X-   [        US-  5      -  :X  d   e[        [        U 5      [        S5      -   5      [        SU -  5      :X  d   e[        [        U 5      5      [        [        U5      5      -   n[        U5      U:X  d   eU SUS0n[        [        U 5      [        U5      -  5      R                  U5      UR                  U5      :w  d   eg )Nr   rS   zz,wTr   rT   realr^   r   rt   rq   rr   rp   rx   r   )r   r   rD   r&   r/   r   r*   r   r   r4   r,   r_   subs)rO   rP   rS   rQ   r}   rT   r   repss           rc   test_logcombine_1r     s   5>DAsA54(DAsAc!fqQx'(CFQs1vX,====c!fqQx't4AdFCCCaAhQ'(Ac!fHs1v,====aAh3q6)*c!$i!CF(.BBBBaAhQ'(CQK777c!fSVm$As1v555c!fSVm$As1v555c"SV)aAh./0SQT!Q$Y5H36s1a49~3F5H H H Hc#a&3q6/*SV34@CHQJ  q1uc!fnD1a!eSV^CCCq!tc!f}s1v-4DA	
AAC13      c!fQhs1voA.d;AQTlN  qsT!Q$A+..Q7#a&@2aRSUVFWCWGQJD #%C$q!tad{##c!#h.Ax1~4E1EaRSUVFW1W)YY Y Y eSXI&tSXI6dCc!#hYs13xi(() ) ) aAhs1voc!f,s1v5A>?As1a4yL#a& 3qs8+, , ,aAh3q6)*c!Q$q!t)n<<<aQi#a&(3q612aQi#a&6HHHHquc!fnQA67AE3qs8;KKKKc!fs1vo&#ac(222	SVs3q6{	"Bb>Rq!Q<Ds1vc!f}""4(BGGDM999rb   c                     [        [        [        S-  5      [        [        S-  5      -   [        -  [        5      n [	        U SS9U :X  d   e[	        U S[        [        5      -  -   SS9U [        [        S-  5      -   :X  d   eg )Nr^   rr   Tr   )r8   r0   rO   r/   rD   r&   )r[   s    rc   test_logcombine_complex_coeffr     sq    #ad)c!Q$i'*A.Aat$)))a!CF(l$/	C1I  rb   c                  p   [        SSS9u  p[        [        S5      [        S5      -
  5      [        [        SS5      SS9:X  d   e[        [        U 5      [        U5      -
  5      [        X-  5      :X  d   e[        [        [        SS5      SS9[        S5      -
  5      [        [        SS5      SS9:X  d   eg )	Nr   Tr   rr   r^   Fr   rq   )r   rD   r&   r   rO   rP   s     rc   test_issue_5950r    s    54(DAc!fs1vo&#hqme*LLLLc!fs1vo&#ac(222c(1Q-%83q6ABHQqME*+ + +rb   c            
         [        S5      n [        [        U [        SSS9-   [        SSS9-   5      5      S:X  d   e[        SU -  5      u  p[	        U5      R                  5       R                  U5      [	        U 5      * :X  d   e[        [        U SU -   /5      5      S	:X  d   e[        SSS9n[        SSS9nXU/n[        U5      u  pg[        U5      S
:X  d   eU Vs/ s H  oR                  U5      PM     snU:X  d   e[        [        [        SU -  [        -   5      S   [        SS45      R                  5       5      S:X  d   e[        [        [        SX-  -  5      S   USS45      R                  5       5      S:X  d   e[        / SQSSS[        U 5      -  //5      n	[        U	5      u  pXR                  " [        UR                  5       5      6 :X  d   e[        SSS9n[        U5      u  pUR                  0 SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_S S_S!S_S"S_S#S_S$S_S%S_S&S_SSS'.E:X  d   eg s  snf )(NrO   r   Tr   r\   negativez(_x + n + p, {_x: x})rp   z([_x, _x + 1], {_x: x})z
[_x, n, p]r   rr   z3Integral(1/_x, (y, 1, 3)) + Integral(_y, (y, 1, 3))zSum(_x**(-n), (n, 1, 3)))rp   r^   rr   rq   r   rx   r{   )finiter   zeroF	imaginarynonpositiverw   	hermitianr   nonzerononnegativer  complexr	  infiniteextended_realextended_negativeextended_nonnegativeextended_nonpositive)extended_nonzeroextended_positive)r   r   rG   r   r&   r	   r   r8   rP   r   r<   r"   reversedpopitemassumptions0)rO   r   repr   r\   origmodifiedr   r}   r   Apr{   s               rc   test_posifyr    s   Av	sT"	#sT"	#$ % )@@ @ @
 QqSkGBr7>>  %#a&000vq!a%j!"&????d#Ad#A!9DD\NHx=L((("*+(QFF4L(+t333xqsQw*Q1I6==?@=> > >s6!AD&>!$q1g.5578"# # # 		Aq!c!f*-./AQiGB#++-01111 	s4 AQiGB?? :z4 : :U :E:($:0;T:CI4:QZ\`:D:$e:-6:>F: : (: /B5: T	: $:5	:
 D: : : : ,s   H;c                      [        S5      n [        S[        -  SU " [        5      -  -   S[        -  SU " [        5      -  -   -  5      S:X  d   eg )NrX   rq   rx   r^   rr   )r   rJ   rO   rP   )rX   s    rc   test_issue_4194r!  6  sC    AQqS1QqT6\AaC!AaD&L12a777rb   c                      [        [        S-  [        S-  -
  5      S:X  d   e[        [        S-  [        S-  -
  5      S:X  d   eg )Nr   r^   r   r   ra   rb   rc   test_simplify_float_vs_integerr#  <  sB     AsFQTM"a'''AqD1c6M"a'''rb   c            	      r   [         S-  [        -   R                  5       [        R                  [         S[        -  -   4:X  d   e[         S-  [        -   R                  SS9[        R
                  [         S-  [        -   4:X  d   e[        [         S-  [        -   -  R                  5       [        R                  [        [         S[        -  -   -  4:X  d   e[        [         S-  [        -   -  R                  SS9[        R
                  [        [         S-  [        -   -  4:X  d   e[         SS[         -  -   -  S[         -  S-   S-  -  R                  5       S[         [         S-   S-  -  4:X  d   eSS[         -  -   S[        -  SS[        -  -   -  -   R                  5       S[         S[        -  [        S-   -  -   S-   4:X  d   eSS[         -  -   S-  R                  5       SS[         -  S-   S-  4:X  d   eSS[         -  -   S[        -  -  R                  5       S[        [        S5      S[         -  S-   5      S[        -  -  4:X  d   eS	S
[         -  -   S[        -  SS[        -  -   -  -   R                  5       SS
[         -  S[        -  [        S-   -  -   S	-   4:X  d   eS	[         S[        -   -  -  S[         -  SS[        -  -   -  -   R                  5       S[         [        S-   -  4:X  d   eS	[         S[        -   -  -  S[         -  SS[        -  -   -  -   S-  R                  5       S[         S-  [        S-   S-  -  4:X  d   e[        S-  R                  5       S[        S-  4:X  d   e[        R                  R                  5       S[        4:X  d   e[         S[        -   -  n U R                  5       SU 4:X  d   e[        R                  S[         -   -  R                  5       [        SS5      S[         * -  4:X  d   e[        SS5      S[         -   -  R                  5       [        SS5      [        SS5      [         -  4:X  d   e[        SS5      S[         -   -  R                  5       [        SS5      [        SS5      [         -  4:X  d   eSS[        -   S-  -  R                  5       SS[        S-  -  4:X  d   eSS[        -   S-  -  R                  5       SS[        [        R                  S[        -   SS9-  4:X  d   eS	[        SS5      -  R                  5       SS	[        SS5      -  4:X  d   eS	[        SS5      -  R                  5       S	S	[        SS5      -  4:X  d   e[        [        [        S	S5      -  S[         -  [        [        SS5      -  SS9R                  5       [        SS5      S[         -  S[        -  -   S
[        -  -   4:X  d   eS[        SS5      -  S[        SS5      -  [        S5      -  -   R                  SS9SS[        SS5      -  [        S5      [        S5      -   -  4:X  d   eg )Nr^   F)clearrr      rp   rx   rq   r   r   r   y   ru   r   r   r   r   r      T)radical)rO   rP   as_content_primitiver   r   r   r   Infinityr   r   r   r   rQ   r*   r   s    rc   test_as_content_primitiver-  D  s   aC!G))+AaC/@@@@aC!G)))6155!A#':JJJJqsQwK--/AFFAq1Q3wK3HHHHqsQwK--E-:quua1qk>RRRR
 q1Q3wK1q1$::<	QAz\  !Gac1qs7m#99;	
A!QUOa ! ! !1WqL..0	
QqS1WqL  1W!224	
[1!a)QqS123 3 31HqsA!G}$::<	
BqD1Q3A;"#$ $ $q!a%yMAaCQqSM)??A	QAY  1q5	]QqS!ac']*Q.DDF	adAEA:o  qD&&(	
AqD	  JJ,,.1b'999	
QUB$$&1b'111FFQUO113AA27NNNNROa!e$::<QNXb!_q012 2 2ROa!e$::<QNHROQ./0 0 0Q	N002q!ac(mCCCQ	N002q3qvvq1uu5678 8 8x1~335!QA=N9OOOOx1~335!QA=N9OOOOq!QQ(1a.(85I^^`2A1r!t 345 5 5x1~8Aq> 1$q' 99OOX\O]q(1a. $q'DG"3456 6 6rb   c                     [         [         * S-   -  [         [         S-
  -  -   n [        [        U S5      5      [        R                  L d   e[        [         S-
  5      [        S[         -
  5      :X  d   e[        [        [         -
  5      [        [         -
  :X  d   e[        [        [         -
  SS9[        S[         [        -
  SS9:X  d   eg )Nrp   r   Fr   ru   )rO   rI   r   r   truer"   rP   r   )rW   s    rc   test_signsimpr0  p  s    	A26
QAYABq!H'''q1u:QU###AE?a!e###AEE*c"a!ee.LLLLrb   c                     SSK Jn JnJn  SSKJn  [        [        [        * [        -  [        -  S-  5      U " [        [        [        [        [        -  S-  5      -  5      -  5      U" [        [        5      :X  d   e[        [        [        * [        -  [        -  S-  5      U " [        S[        [        5      -  [        [        [        -  S-  5      -  5      -  5      U" [        S[        [        5      -  5      :X  d   e[        [        S5      [        [        5      -  [        [!        SS5      -  -  [        [        [        -  S-  5      -  [        [        * [        -  [        -  S-  5      -  U " [!        SS5      [        [        5      [        [        [        -  S-  5      -  5      -  U " [        [        [        5      [        [        [        -  S-  5      -  5      -  S-  5      U" [        [        [        5      5      [#        [        [        5      5      -  :X  d   e[        U " [!        SS5      [        5      5      [        S5      [%        [        5      -  [        [        5      [        [        5      -  -  :X  d   e[        U " [        [        [        [        * [        -  S-  5      -  5      5      [        [        * [        -  [        -  S-  5      U" [        [        5      -  :X  d   eU" S[&        -  [)        [        [&        -  5      -  [&        [        5      [        S5      [        [        5      -  U" SS[        [        5      -  [        [        5      -  5      -  S-  :X  d   e[        [        S-  [        SU" S	[        -  [        5      -  U" SS	[        -  -   [        5      -   U" SS	[        -  -   [        5      -   -  [*        SU" S	[        -  [        5      -  U" SS	[        -  -   [        5      -   U" SS	[        -  -   [        5      -   -  -   -  S-  [        [        U" SS	[        -  -   [        5      S-  U" SS	[        -  -   [        5      S-  -
  -  [*        U" SS	[        -  -   [        5      S-  U" SS	[        -  -   [        5      S-  -
  -  -   -  -   [        S-  S
-   [        U" S	[        -  [        5      -  [*        U" S	[        -  [        5      -  -   -  -   5      S:X  d   e[        S[        S-  -  [        U" [!        SS5      S[        -  5      SU" [!        SS5      S[        -  5      -  -
  U" [!        SS5      S[        -  5      -   -  [*        U" [!        SS5      S[        -  5      SU" [!        SS5      S[        -  5      -  -
  U" [!        SS5      S[        -  5      -   -  -   -  S-  [        [        SU" [!        SS5      S[        -  5      -  S-  SU" [!        SS5      S[        -  5      -  S-  -
  -  [*        SU" [!        SS5      S[        -  5      -  S-  SU" [!        SS5      S[        -  5      -  S-  -
  -  -   -  -   S[        S-  -  [!        SS5      -
  [        U" [!        SS5      S[        -  5      -  [*        U" [!        SS5      S[        -  5      -  -   -  -   5      S:X  d   e[        U" [        S-
  [        5      U" [        S-   [        5      -   S[        -  U" [        [        5      -  [        -  -
  5      S:X  d   e[        U" [        S-
  [        5      U" [        S-   [        5      -   U" [        [        5      -   5      S[        -  [        -   U" [        [        5      -  [        -  :X  d   e[        [        S-  U" [        [        5      -  [        S-  U" [        S-   [        5      -  -   U" [        S-   [        5      -   5      S[        -  [        -  U" [        S-   [        5      -  [        S-  U" [        S-   [        5      -  -   [        S-  U" [        S-   [        5      -  -
  S[        -  U" [        S-   [        5      -  -   U" [        S-   [        5      -   :X  d   eg )Nr   )besselibesseljbessely)cosine_transformr^   rp   rq   ru   rt   r      Q   r   rr   	   r   )sympy.functions.special.besselr2  r3  r4  sympy.integrals.transformsr5  rA   r$   r   r   rP   rQ   r%   rS   r*   rO   r   r/   r'   rR   r0   rT   )r2  r3  r4  r5  s       rc   test_besselsimpr;  x  s   JJ;c1"R%'!)nWQ)AbDF2C0C%DDE1  c1"R%'!)nWQ$q'	)AbDF:K0K%LLM1T!W9  d1gd2h&q(1a.'88QrT!VDS!BqQR^Shr1otAwy2a7H/HIJaa1R46):!:;<<=> ? 	47c$q'l*+ + + ghr1oq12QQb$q')*+ + +ga9aRU1W#5!567QBrE!GAIwq!}$% % %AaCAaCL!Q/QRAd1gId1g$566q89 9 9 adAr'!A#q/1GB1Ha4HHA!GQ  b1a072!8Q3GGA!GQ  GB1Ha$8$:WQ1Wa=PQR=R$R!Sac1	a	'!ac'1"5a"7	78"9 :: >?TBY7STUVSVXY?IZ!QJ =  	   bAgq'(2q/1Q3"?!GHUVXYN\]^_\_D`B`"`cjkstuwxky{|}~{~c"   A"a!A#	&78Aq>1Q3+G)G	G'RZ[\^_R`bcdebeJf	fg h iijkmnpqstu|  ~F  GI  KL  ~M  OP  QR  OR  vS  tS  TU  tUA!$$Q&t' q(*+QwxA!/L-LQ-NQRSZ[cdegh[iklmnknSoQopqQq-q*rqs ntt 1Wx1~'(1a.!A#"> >78TUWX>[\]^[^C_A_ _`a b fgg g g
 gac!nwqsA61WQ]9J19LLMQRRRRgac!nwqsA6AFGAaCRSGU\]^`aUbKbcdKddddadGAaL(1a4!Q+??'!A#q/QRaCE'!a%
ad71q5!#444q!tGAE1<M7MMPQRSPST[\]`a\acdTePeehopqtupuwxhyyz z zrb   c                     [         [         [        -   -  [        [         [        -   -  -
  n [        [         5      S-  [        [         5      S-  -   n[	        [         [        -   [        -  [         -  5      n[        U 5      n[        U5      n[        U5      n[        [        U [         U:  4US45      5      [        U[         U:  4US45      :X  d   eg )Nr^   T)rO   rP   r0   r/   r	   rJ   r+   )e1e2e3s1s2s3s         rc   test_PiecewiserC    s    	
AEQAY	B	QSVQY	B	Q	!	B	"B	"B	"BIr1r6lRJ782q2v,T
+, , ,rb   c                  z     " S S[         5      n U " [        S5      [        S5      5      n[        U5      S:X  d   eg )Nc                       \ rS rSrS rSrg)test_polymorphism.<locals>.Ai  c                 "    [         R                  $ rj   )r   r   )rO   kwargss     rc   _eval_simplify+test_polymorphism.<locals>.A._eval_simplify  s    55Lrb   ra   N)__name__
__module____qualname____firstlineno__rI  __static_attributes__ra   rb   rc   r   rF    s    	rb   r   r   r^   rp   )r   r   rJ   )r   rS   s     rc   test_polymorphismrP    s5    E  	
!A$!AA;!rb   c                  v    [        SSS9u  pp#[        [        [        U 5      -  5      [        U * 5      * :X  d   eg )Nzn1 n2 n3 n4Tr  )r   rJ   r   r*   )n1n2n3n4s       rc   test_issue_from_PR1599rV    s5    ]T:NBBAd2hJD"I:---rb   c                  2   [         S[        -  -   S[         -  S-   -  n [        U 5      [         S-   [         S[        -  -   -  S-  :X  d   e[        U R                  5       5      S[         S-  -  S[         -  [        -  -   S[         -  -   S[        -  -   :X  d   eg )Nr^   rp   rq   )rO   rP   rJ   r	   r,  s    rc   test_issue_6811rX    s    
ac'AaC!G	BB<AEA!G,Q....BIIK 	!Q$1Q1qs"# # #rb   c                  2   [        [        5      [        [        [        5      -  -   [        [        5      [        [        [        5      -  -
  [	        [        5      [        [        5      -
  [	        [        5      [        [        5      -   /n [        [        [        -  5      [        [        * [        -  5      [        [        * 5      [        [        5      /n[        S5      nU  Vs/ s H!  n[        U" U5      5      R                  S   PM#     snU:X  d   eg s  snf )NrX   r   )
r/   rO   r   r0   r'   r)   r$   r   rJ   args)rW   okrX   eis       rc   test_issue_6920r]    s    	Q!CF(	CFQs1vX-Q$q'47T!W,	.A
ac(C1IsA2wA	/BA./0aHQrUO  #a0B6660s   "(Dc                  b   SSK Jn Jn  [        U [	        [
        [        SS5      -  X:*  4S[
        -  US-  -  SU S-  -  -  S45      -  S[	        [
        U -  [        SS5      -  X:*  4S[
        -  US-  -  SU S-  -  -  S45      -  -   * S[
        -  U -  -  5      [	        SX:*  4S	5      :X  d   eg )
Nr   r   Rrq   rr   iTr^   ru   r   T)	sympy.abcr   r`  rJ   r+   r   r   r_  s     rc   test_issue_7001rc    s    a	2hq!n#4af"=	Bq!tQq!tV	d#% %'(BqD!Q4G3P	
2adAadF	T"*$ ($$ %&'d1f. / 	2qv,	*+ + +rb   c                      [        [        5      S-  [        [        5      S-  -   n Sn[        XSS9nU[        R
                  Ld   e[        U5      (       d   eg )Nr^   Fr   )r/   rO   r0   r   r   r/  rJ   )lhsrhsrW   s      rc    test_inequality_no_auto_simplifyrg    sK    
a&!)c!fai
C
C
3e$AAFF??A;;;rb   c                     SSK Jn   SSKJn  U" S5      S:w  d   eU" S[        -  5      S:w  d   e[        S5      S:w  d   e[        S[        -  5      S:w  d   e[        U " S5      -  U " S5      U " S5      -  -  R                  5       S:w  d   eU" S5      S:w  d   eU" S[        -  5      S:w  d   e[        S5      S:w  d   e[        S[        -  5      S:w  d   eU" S	5      S:w  d   eU" S	[        -  5      S:w  d   e[        S	5      S:w  d   e[        S	[        -  5      S:w  d   e[        S
5      nU" U5      S:w  d   eU" U[        -  5      S:w  d   e[        U5      S:w  d   e[        U[        -  5      S:w  d   eg )Nr   )Number)cancelg+=r   r   ig#B;g0.++z1e-1000)sympy.core.numbersri  sympy.polys.polytoolsrj  r   rJ   r   )ri  rj  rX   s      rc   test_issue_9398rm    s   ),%=A%'?aE?aE!G!!!fRjLVC[00::<AAA%=A%'?aE?aE!G!!!&>Q&(q   Fq   F1H"""iA!9>>!A#;!A;!AaC=Arb   c                  \    [        SSS5      n U S   U S   -   S-   n[        U5      U:X  d   eg )NMr   )r   r   )r   rq   i  )r>   rJ   )ro  rW   s     rc   test_issue_9324_simplifyrp    s9    S"b!A	$!D'D AA;!rb   c                  @   SSK Jn Jn  [        SSS5      n[        SSS5      n[	        [        S5       Vs/ s H  oDS-   PM	     sn5      nU " S5      nUR                  U-  U-  n[        U" UR                  5       5      R                  X%X605      5      S:X  d   eg s  snf )Nr   )Identitytracevrr   rp   r   r   )
sympy.matrices.expressionsrr  rs  r>   r<   rangeTrJ   as_explicitxreplace)rr  rs  rt  r   r[   rO   X	quadratics           rc   test_issue_9817_simplifyr|    s     ;S!QAS!QAuQx(x!Ax()AAa!IU90023==qAjIJbPPP )s   Bc                      [        S5      n [        U [        [        S5      5      -   5      U [        [        S5      5      -   :X  d   eg )NrO   rp   )r   rJ   r(   r1   rf   s    rc   test_issue_13474r~  	  s8    sAAT!W%&!d47m*;;;;rb   c            
        ^ [        S5      u  p[        S5      m " U4S jS[        5      n[        U" T" U 5      5      5      U" T" U 5      5      :X  d   e[        U" T" U 5      5      5      U :X  d   e[        U" T" U 5      5      SS9U :X  d   e[        U" T" [	        U 5      S-  [        U 5      S-  -   5      5      SS9S:X  d   e[        U" T" X5      5      SS9U" T" X5      5      :X  d   e[        [        [	        U 5      5      (       d   e[        [        [	        U 5      5      5      [        [	        U 5      5      :X  d   e[        S[        [	        S	U -  5      5      -  SS9S
U -  :X  d   e[        [        [        U 5      5      5      [        [        U 5      5      :X  d   e[        [        [        U 5      5      SS9U :X  d   e[        [        [        U 5      5      SS9U :X  d   e[        [        [        U 5      S5      SS9U [        S5      -  :X  d   e[        [        [        U 5      SSS9SS9U [        S5      -  :X  d   eg )Nzx, yrY   c                   &   > \ rS rSrSU 4S jjrSrg))test_simplify_function_inverse.<locals>.fi  c                    > T$ rj   ra   )selfargindexrY   s     rc   inverse1test_simplify_function_inverse.<locals>.f.inverse  s    Hrb   ra   N)rp   )rK  rL  rM  rN  r  rO  )rY   s   rc   rX   r    s    	 	rb   rX   T)r  r^   rp   rr   rx   Fr   )
r   r   rJ   rC   r0   r/   r   r-   r&   r$   r   s      @rc   test_simplify_function_inverser    s   
 6?DAAH  AadG!A$'''!AaD'"a'''AadGT*a///AaA	CFAI-./>!CCCAagJ-1Q7;;;T3q6""""DQL!T#a&\111Ad3qs8n$d3qs:::CAK CAK///CAK.!333CAK.!333CAND1Qs1vX===CAE2DAQs1vXMMMrb   c                     SSK Jn   U " S[        -  S[        -  S-   -  5      [        S[        -  S-   -  S4:X  d   eU " S[        -  S[        -  S-   -  S-
  5      [        S[        -  S-   -  [	        SS5      4:X  d   eU " S[        -  S[        -  S-   -  S-
  [        5      [        S[        -  S-   -  [        S-  [	        SS5      -   4:X  d   eU " [        S5      S-
  5      [        S5      S4:X  d   eU " S[        S5      -  S-
  5      [        S5      [        R                  4:X  d   eU " [        S5      [        5      S[        S-
  4:X  d   eU " [        R                  [        5      [        R                  [        4:X  d   eU " [        R                  * [        5      [        R                  [        * 4:X  d   eU " S[        R                  S-  -
  [        5      [        S	[        -  S-   4:X  d   eg )
Nr   clear_coefficientsrq   rx   rr   r^   rp      r   )sympy.simplify.simplifyr  rP   rO   r   r*   r   r   r+  Pir   r  s    rc   test_clear_coefficientsr  )  s   :ac1Q37m,AaC!Ga0@@@@ac1Q37ma/0Q!a[(1a.4QQQQac1Q37ma/31Q37QrTHUVXYNEZ7[[[[d1gk*tAwl:::aQi!m,a!&&0AAAAadA&1a!e*444ajj!,Q???qtteQ'ADD1":555a!$$q&j!,RTAX>>>rb   c                  2  ^^^^^^^^^ SSK Jm  SSKJmJm  SSKJm  SSKJm  [        SSS9u  pp#[        S	5      m[        S
TT5      n[        STT5      n[        STT5      n[        STT5      nXXX&X70m[        S [        S 0mUUUUUUUU4S jmSUU4S jjnU" X-  U -  U-  U -  U-  U-  X-  S-  -  U-  X-  S-  U-  S-  5        U" X-  X-  S-  -  U -  U-  S5        U" U S-  U-  U -  U-  U -  U-  X-  S-  -  X U-  S-  -  SS9  U" X-  US-  -  U -  US-  -  U -  US-  -  XUS-  -  S-  -  5        U" X-  U S-  -  U-  U S-  -  U-  U S-  -  X-  U -  S-  U S-  -  5        U" U S-  U-  U S-  -  U-  U S-  -  U-  U S-  -  U S-  U-  U S-  -  S-  5        U" U S-  U-  U S-  -  U-  U S-  -  U-  U -  U S-  XS-  -  S-  -  U S-  -  5        U" X-  U -  U-  X-  U-  T-  U -  U-  U-  -   X-  S-  TX-  U-  S-  -  -   5        U" X-  U -  U-  U-  U -  U-  U -  U-  U-  X-  S-  U-  S-  5        U" US-  U S-  -  X-  S-  -  X-  5        U" U S-  U-  US-  -  X!S-  -  U -  S-  5        U S-  U-  U S-  -  U-  U S-  -  U-  U S-  -  U-  U S-  -  XS-  -  S-  -  U-  U S-  -  U-  U S-  -  n	[        S5       H
  n
XU-  -  n	M     U" XS-  XS-  -  S-  -  XS-  -  S-  -  X-  S-  -  5        U" X-  U -  U-  S-  X-  U -  U-  S-  SS9  U" X-  X#-  S-  -  X-  X#-  S-  -  5        US-  U S-  US-  -  U S-  U-  US-  -  -
  S-  -  U S-  -  n	T" U	5      SU-
  S-  :X  d   eT" STS-  -  5      STS-  -  :X  d   eg )Nr   )nc_simplify)MatPowrr  )Pow)reduceza b c dFrv   rO   r   r   CDc                 
    X-   $ rj   ra   r  s     rc   r   "test_nc_simplify.<locals>.<lambda>B  s    acrb   c                 
    X-  $ rj   ra   r  s     rc   r   r  B  s    ACrb   c           	      R  > U T;   a  TU    $ [        U T5      (       a)  T" T" U R                  S   5      U R                  S   5      $ [        U [        [        45      (       a7  T" TU R                     U R                   Vs/ s H  nT" U5      PM     sn5      $ U T" T	5      -  $ s  snf )Nr   rp   )
isinstancerZ  r   r   func)
r   rS   rr  r  r  
_to_matrixfuncsr  substrO   s
     rc   r  $test_nc_simplify.<locals>._to_matrixD  s    5=;dC  *TYYq\2DIIaLAAsCj))%		*499+M9aJqM9+MNN## ,Ns    B$
c                    > T" XS9U:X  d   e[        U 5      [        U5      :X  d   eU(       a)  T" U5      R                  SS9nT" T" U 5      US9U:X  d   eg g )NdeepF)
inv_expand)r	   doit)r   
simplifiedr  matrixm_simpr  r  s        rc   _check test_nc_simplify.<locals>._checkN  sg    4+z999d|vj1111
+00E0BFz$/d;vEEE rb   rr   r^   rt   rp   ru   )r  rq   r   r   rx   r  )TT)r  r  ru  r  rr  
sympy.corer  	functoolsr  r   r   r>   r   r   rv  )rS   rT   rU   rV   r   r   r  r  r  r   _rr  r  r  r  r  r  r  r  rO   s              @@@@@@@@@rc   test_nc_simplifyr  5  s   3; %8JA!sAS!QAS!QAS!QAS!QA1q#E/39E$ $F F 13q5719Q;q=!#!!#qsQhqj1_5
13by=?1a 
1a46!8A:a<>13)#Q!axZ>
13q!t8A:ad?1QT!11fq[=1
13q!t8A:ad?1QT!ACEA:ad?3
1a46!Q$;q=Aa1$q!tAvad{Q&67
1a46!Q$;q=Aa!1a4a4!#3ArE#9:
13q57QSU1WQYq[]"QS1Hq!#a%!|$;<
13q5719Q;q=?1Q!#!a0
1b5B;ax%
1b571b5=1U719r/*a46!Q$;q=Aa1$Q&q!t+Q!tVaK79!Q$>q@AED2Y! 
4AqAvk!1T6A+-qsRi78
ACE!Ga<!#a%'AE2
13ax<acAX&b5!R%2+2a2-221b58Dt1r	)))qAv!AqD&(((rb   c                     [        [        [        [        -  -  [        S[        45      n [        [        [        [        -  [        S[        45      -  n[        [        [        -  [        5      n[        S-  [        -  S-  n[        X-   5      X-   :X  d   e[        U 5      U:X  d   e[        U5      U:X  d   e[        USS9[        [        [        [        5      -  :X  d   eg )Nrp   r^   F)r  )r   rQ   rO   rP   rS   r8   rJ   )r   anewr   bdos       rc   test_issue_15965r  k  s    AadFQ1IASA1ay!!D1aA
Q$q&(CAE?dj(((A;$A;#AE"aA&6666rb   c                      [        [        [        5      [        -  5      [        [        5      [        -  :X  d   e[        [        [        5      SS[        -  -   -  5      [        [        5      SS[        -  -   -  :X  d   eg )Nr^   rr   )rJ   r/   rO   r   ra   rb   rc   test_issue_17137r  v  sZ    CFAI#a&!)+++CFQ1W%&#a&1qs7*;;;;rb   c            	         [        SSS9n [        SSS9n[        [        U S-  S5      [        X5      5      nUR	                  5       U:X  d   e[        [        U S-  S5      [        U S5      5      nUR	                  5       [        U S5      :X  d   e[        [        U S-  U S-  5      [        U S5      5      nUR	                  5       [        U S5      :X  d   e[        [        [        U 5      U S-  5      [        U S	5      5      nUR	                  5       [        U S	5      :X  d   e[        [        U S-  U S-  5      [        U S5      5      nUR	                  5       [        R                  :X  d   e[        [        XS-  5      [        U S5      5      nUR	                  5       [        [        US5      [        U S5      5      :X  d   e[        [        US-  S5      [        XS-  5      [        U S5      5      nUR	                  5       [        [        US5      [        U S5      5      :X  d   e[        [        US-  S5      [        USU S-  -  5      [        U S5      5      nUR	                  5       [        [        US5      [        U S5      5      :X  d   e[        [        US-  S5      [        XS-  5      [        U S5      5      nUR	                  5       [        R                  :X  d   eg )
NrO   Tr   rP   r^   rq   rr   rp   r   )r   r:   r   r   rJ   r0   r   false)rO   rP   r   s      rc   test_issue_21869r  {  sJ   sAsAr!Q${BqH%D==?d"""r!Q${Bq!H%D==?bAh&&&r!Q$1~r!Qx(D==?bAh&&&r#a&!Q$Aq*D==?bAh&&&r!Q$1~r!Qx(D==?agg%%%r!T{Bq!H%D==?c"Qq'2a84444r!Q${BqQ$KAq2D==?c"Qq'2a84444r!Q${Bq!AqD&M2a84D==?c"Qq'2a84444r!Q${BqQ$KAq2D==?agg%%%rb   c                  4   [        [        [        SS45      n U S:w  d   e[        U 5      [        R                  L d   e[        [        R                  5      [        R                  L d   e[        [        S5      5      n U [        R                  La  U S:X  d   eg )Nrp   r   r   )r8   rO   rJ   r   Zeror   )rQ   s    rc   test_issue_7971_21740r    sw    Q1IA6M6A;!&&   AFFqvv%%%qAAFF?qCx''xrb   c                      [        S[        [        S-   5      S-  -  R                  S5      5      S[        S[        -  [        S[        SS[        -  -
  5      -   [        -   5      -  -   S-  S-  -  :X  d   eg )Nr^   rp   r&   ru   rq   )rJ   r,   r   rewriter   r&   r*   ra   rb   rc   test_issue_17141_slowr    s     QQqS	1_--e45b1Q3s2AaC=L!#$L% H& D& ?&()>**+>, :- - - -rb   c                     [        [        S[        [        5      -  -  5      [        S[        S[        -  [        S[        S5      -   5      -  -
  -  -  :X  d   e[        [        [        * 5      S-  [        [        5      S-  -  5      [        S[        S5      -   5      S-  [        S-  [        S[        S5      -   5      S-  -  S-  -   [        S-  S-  -   :X  d   e[        S[        [        5      S-  -  5      S[        S[        -  [        S[        S5      -   5      -  -
  S-  S-  -  :X  d   eS[        [        S-   5      S-  -  n [        U 5      U :X  d   eg )Nrp   r^   rq      )rJ   rO   r,   r   r   r&   r*   )r   s    rc   test_issue_17141r    s/   ADG$%QQqSQa[9I5I0I-J)KKKKD!HaKQ
*+q47{QQs1tAw;'7':!:1!<<r1uRxGH H HAtAwzM"a2!CDG4D0D+Dq*H*J&KKKK	4!9a<AA;!rb   c                  R  ^^ [        S5      u  p[        m[        T" X5      5      T" X5      :X  d   e[        T" SU5      5      T" SU5      :X  d   e[        T" U S5      5      T" U S5      :X  d   e[        T" SU5      R                  [        5      T" SU5      -  5      S:X  d   e[        T" SU 5      [	        S[        US5      4S5      -   5      T" SU 5      T" SU5      -   :X  d   e[        T" SU5      T" SU5      -  5      S:X  d   e[        SSS9m[        T" ST5      T" ST5      -  5      S:X  d   e[        S	S	UU4S
 j5      n[        US-  5      [        T" ST5      ST" ST5      S/ST" ST5      ST" ST5      /SST" ST5      S/SSST" ST5      //5      :X  d   e[        [        S5      [        ST5      -  [        ST5      -  5      [        S//5      :X  d   e[        [        R                  [        ST5      -  [        ST5      -  5      [        R                  L d   eg )Nzi jr   rp   r^   ra  r\   Tr   rq   c                 (   > X::  a  T" X-
  T5      $ S$ )Nr   ra   )r[   jKr\   s     rc   r   .test_simplify_kroneckerdelta.<locals>.<lambda>  s    !AE1+">Q">rb   )r   r6   rJ   r  r+   r   r   r<   r=   r   r+  NaN)r[   r  ro  r  r\   s      @@rc   test_simplify_kroneckerdeltar    sA   5>DAAAaG!'''AaG!Q'''AaG!Q'''AaGOOI.1a89Q>>>AaGiBq!HyAABa1gPQRSUVPWFWWWW AaGa1g%&!+++sD!AAaGa1g%&!+++q!>?AAqD>Va1gq!Aq'1%=&'1a!Qq!W%=&'AaGQ%7&'AqAw%7%9 : : : : CF^Aq11"1a() *-3aSE]; ; ; AJJ1!55"1a() *-.UU3 3 3rb   c                     [        [        [        5      [        [        S-  5      -  5      S[        [        5      -  :X  d   e[        S[        [        S-  S-
  [        S-
  -  5      -  5      S[        [        S-   5      -  :X  d   eg )Nr^   rp   r   )rJ   r_   rO   r"   ra   rb   rc   test_issue_17292r    sh    CF3q!t9$%3q6111Ac1a4!8a!e,--.!CAJ,>>>rb   c                      [        [        [        S-
  S5      [        [        S5      5      n [        U 5      [        [        S5      :X  d   eg )Nr^   rp   rr   )r:   r   r\   rJ   r   s    rc   test_issue_19822r    s6    r!A#qz2a8$DD>R1X%%%rb   c                      [        [        [        S5      [        [        S5      5      n [	        U 5      [        [        S5      :X  d   e[        [        [        S5      [        [        S5      5      n [	        U 5      [        [        S5      :X  d   eg )Nrr   )r:   r   rO   r   rJ   r   r   s    rc   test_issue_18645r    sb    r!QxAq"DD>R1X%%%r!QxAq"DD>R1X%%%rb   c                      [        SSS9n [        SSS9n[        [        U SU-  5      [        U SU-  S-
  5      5      n[	        U5      [
        R                  :X  d   eg )Nr[   Tr   r\   r^   rp   )r   r:   r   r   rJ   r   r  )r[   r\   r   s      rc   test_issue_18642r    sT    sD!AsD!Ar!QU|R1Q36]+DD>QWW$$$rb   c                  r    [        SSS9n [        U S5      U S:  -  n[        U5      [        U S5      :X  d   eg )Nr\   Tr   r   rp   )r   r   rJ   r   )r\   r   s     rc   test_issue_18389r    s:    sD!Aa8qAvDD>R1X%%%rb   c                  v    [        SSS9n [        [        U S:  U S:  5      5      [        R                  :X  d   eg )NrO   Tr   rp   )r   rJ   r;   r   r/  rf   s    rc   test_issue_8373r    s4    sABq1ua1f%&!&&000rb   c                      [        [        [        S5      [        [        S5      5      n [        U 5      [        R
                  :X  d   eg )Nrp   r^   )r:   r   rO   rJ   r   r  r   s    rc   test_issue_7950r    s0    r!QxAq"DD>QWW$$$rb   c                  T    [         [        -  S-  [        -
  n [        U 5      U :X  d   eg Nr^   )r   r   r   rJ   r   s    rc   test_issue_22020r    s%    R462:DD>T!!!rb   c                  v   [        [        [        5      [        [        5      -  5      [        :X  d   e[        [        [        [        S-  -   5      -   n [        [        [        [        S-  -   5      U -  5      [        S-  [        [        [        S-  [        -   5      -  -   [        -   :X  d   e[        S-  [        [        S-  S-   5      -   n [        [        [        S-  S-   5      U -  5      [        S-  [        S-  [        [        S-  S-   5      -  -   S-   :X  d   e[	        S5      n[        [        [        U" [        5      S-  -   5      -   n [        [        [        U" [        5      S-  -   5      U -  5      [        [        [        U" [        5      S-  -   5      -  [        -   U" [        5      S-  -   :X  d   eg )Nrr   r^   rp   rX   )rJ   r#   rO   r"   r   )rW   rX   s     rc   test_issue_19484r    sO   DGc!f$%***	DQTNACAqDM!O$1qQTAX(>(BBBB	1tAqD1H~AC1qMA%&!Q$Ac!Q$(m1C*Ca*GGGGA	DQqT1WACAaD!G$q()Qs1qtQw;/?-?!-CadAg-MMMMrb   c                  r    [        SSS9u  pnXUS-  -   -  R                  5       U SU-  U-   -  S-  :X  d   eg )Nzx y zFrv   r^   )r   rJ   r   s      rc   test_issue_23543r    sC    g51GA!1Q3wK!!#q!A#'{1}444rb   c                    ^^ S mU4S jmU4S jn [        S5      u  p[        SS5      n[        U " [        U5      U " [        US-   5      -  5      R	                  SS	9n[        UR                  " [        U5      R                  S5      5      nUX2-  [        U5      -  X2-  [        US-   5      -  -
  U[        U5      -  -   U[        US-   5      -  -
  [        S
S5      -   :X  d   eg )Nc                 F    [        S[        -  U -  5      U [        -  U -  -  $ r  )r*   r   r   r   s    rc   rX   test_issue_11004.<locals>.f  s!    AbDF|qsQh&&rb   c                 0   > T" U 5      T" X-  5      U-  -  $ rj   ra   )r\   r{   rX   s     rc   r|   test_issue_11004.<locals>.m  s    !!#	""rb   c                    > T" X5      X-  -  $ rj   ra   )r\   r{   r|   s     rc   r   test_issue_11004.<locals>.p  s    w!$rb   zN kz0.5rq   rp   Tr   gg?)r   r   r&   r\   r	   rJ   r   )r   Nr{   halfrQ   r   rX   r|   s         @@rc   test_issue_11004r    s    '#  5>DA?DAaGa1q5k!")))5A1"#As1v
&QU
	
s1v+	 s1q5z/	 	1
		  rb   c                  v    [        S5      R                  5       n U [        S-  -
  R                  5       S:X  d   eg )Nzx**2r^   r   )r@   rJ   rO   )
polynomials    rc   test_issue_19161r  .  s3    f&&(Jq!tO%%'1,,,rb   c                      [        SSS9n S[        [        [        5      [        U 45      -  nUR	                  5       U:X  d   eg )NrV   Tr   r^   )r   r   r0   rO   rJ   )rV   r   s     rc   test_issue_22210r  3  s;    sD!AZAA''D==?d"""rb   c                  N   [        SSS9u  p[        SSS9n[        SU-  X-  -  5      SU-  X-  -  :X  d   e[        X-  X-  -  5      X-  X-  -  :X  d   e[        SSS9u  p[        X-  U-  5      X-  X-  -  :X  d   e[        X-  X-  -  5      [        X-  U-  5      :X  d   eg )Nzx yTrv   ZFr^   r   )r   rJ   r	   )rO   rP   r  s      rc   test_reduce_inverses_nc_powr  9  s    5d+DA'AAqD14K AqD14K///AD14K AD14K///54(DA13(qtad{***AD14K FAC!8$4444rb   c                      [        SSS9n S[        [        S-  5      -  U -  R                  5       U :X  d   eS[        [        S-  5      -  U -  R                  5       U :X  d   eg )Nrz  Frv   r^   rr   r   )r   r/   r   rJ   )rz  s    rc   test_nc_recursion_coeffr  B  s^    5)ABqD	MA'')Q...#bd)Oa))+q000rb   N)sympy.concrete.summationsr   sympy.core.addr   sympy.core.basicr   sympy.core.exprr   sympy.core.functionr   r   r	   r
   r   r   sympy.core.mulr   r   r  r   rk  r   r   r   r   r   r   r   sympy.core.relationalr   r   r   r   r   sympy.core.singletonr   sympy.core.symbolr   r   sympy.core.sympifyr   (sympy.functions.combinatorial.factorialsr    r!   $sympy.functions.elementary.complexesr"   r#   &sympy.functions.elementary.exponentialr$   r%   r&   %sympy.functions.elementary.hyperbolicr'   r(   r)   (sympy.functions.elementary.miscellaneousr*   $sympy.functions.elementary.piecewiser+   (sympy.functions.elementary.trigonometricr,   r-   r.   r/   r0   r1   r2   'sympy.functions.special.error_functionsr3   'sympy.functions.special.gamma_functionsr4   sympy.functions.special.hyperr5   (sympy.functions.special.tensor_functionsr6   sympy.geometry.polygonr7   sympy.integrals.integralsr8   r9   sympy.logic.boolalgr:   r;   sympy.matrices.denser<   r=   "sympy.matrices.expressions.matexprr>   rl  r?   r@   r  rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   sympy.solvers.solversrK   sympy.testing.pytestrL   rM   rN   rb  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   rd   rg   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-  r0  r;  rC  rP  rV  rX  r]  rc  rg  rm  rp  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  ra   rb   rc   <module>r     sf   )  " % c c + " C C C 6 6 " / & J < H H D D 9 : \ \ \ 7 9 / C & ; ) . ; 0 V  V  V ' ; ; > > > >&
H^0B	8*( % %.
J=%
0
.%5" >6 >6B	"4.AaH$
2<':T+$:N8 ( ()6XM"zH,.
#7+>
Q<
 N N4
?4)l7<
&>( - -3:?&
& % % & &1
%
"N50-
#51rb   