
    sg                     F   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	m
Z
mZmZmZmZ d dlmZmZ d dlmZ d dlmZmZmZmZmZmZmZ d d	lmZmZmZm Z m!Z! d d
l"m#Z# d dl$m%Z%m&Z& d dl'm(Z( d dl)m*Z*m+Z+ d dl,m-Z-m.Z. d dl/m0Z0m1Z1m2Z2 d dl3m4Z4m5Z5m6Z6 d dl7m8Z8 d dl9m:Z: d dl;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZB d dlCmDZD d dlEmFZF d dlGmHZH d dlImJZJ d dlKmLZL d dlMmNZNmOZO d dlPmQZQmRZR d dlSmTZTmUZU d dlVmWZW d dlXmYZYmZZZ d dl[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZe d dlfmgZg d d lhmiZimjZjmkZk d d!llmmZmmnZnmoZompZpmqZqmrZrmsZsmtZtmuZumvZvmwZwmxZxmyZymzZz d" Z{d# Z|d$ Z}d% Z~d& Zekd'        Zd( Zd) Zd* Zd+ Zd, Zd- Zd. Zd/ Zekd0        Zd1 Zd2 Zd3 Zd4 Zd5 Zd6 Zd7 Zd8 Zd9 Zd: Zd; Zeid<        Zd= Zd> Zd? Zd@ ZdA ZdB ZdC ZdD ZdE ZdF ZdG ZdH ZdI ZdJ ZekdK        ZdL ZdM ZdN ZdO ZdP ZdQ ZejdR        ZdS ZdT ZdU ZdV ZdW ZeidX        ZeidY        ZdZ Zd[ Zd\ Zd] Zd^ Zd_ Zd` Zda Zdb Zdc Zyd)e    )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                      t        t        ddt        t        d            dz  z  z
        j	                         dz
        dk  sJ y )NgQ@g    @@g333333'@   grfa@g-q=)absrJ   r0   r7   evalf     U/var/www/html/venv/lib/python3.12/site-packages/sympy/simplify/tests/test_simplify.pytest_issue_7263rd   %   sK    7ST^Q->#>>?FFH  %& & &rb   c                      t        d      } t        t        |       | z        t        |       k(  sJ t        t        t        |                   t        t        |             k(  sJ y )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                     t        d      \	  } }}}}}}}}t        d      }	t        d t        t        t
        | |  t
         t         t         fD              sJ d| z  d|z  z   }
|
| |z   | |z  z  k7  sJ t        |
      | |z   | |z  z  k(  sJ |dz  |dz  z  dt        z  |z  |dz  z  z  }
t        |
      |
k(  sJ dd| z  z   ddd| z  z   z  z
  dd| z  z   z  }
t        |
      dk(  sJ d	| z  |dz  z  d|dz  z  z
  d| dz  z  |z  z
  | |z   dz  z  }
t        |
      d
|z  k(  sJ |  |z
  | |z   dz  |dz  z  z
  | |z   dz  | dz  z  z   }
t        |
      d
|z  k(  sJ | | |z  z   | z  }
t        |
      d|z   k(  sJ  |	|       | |	|       z  z    |	|       z  }
t        |
      d|z   k(  sJ dd|z  t        |t        z        |z  z
  z  t        z  }
t        |
      t        t        |z         dz   t        |z  z  dz  k(  sJ t        d| dz  dz   z  |       j                  |       }
t        |
      d| dz  dz   z  k(  sJ t        | | dz  d| z  z   dz   z  |       j                  |       }
t        |
      | | dz  d| z  z   dz   z  k(  sJ t        d      }	t        d|z  ||dz  z  z
  | g| |||dz  z  z
  gg      j                         }t        |t        d|	g      z  d   |	 d|z  ||dz  z  z
  z  |dz  |||dz  z  z
  d|z  ||dz  z  z
  z  z
  z  z
        dk(  sJ |  ||t        z   z  z   || z  |t        z   z  z   |t        z  |t        z   z  z   t        | z  |t        z   z  z   }	t        |	      |t        |z  z   |t        z   z  k(  sJ |  |dz  dz
  z  d|dz  z  | dz  dz
  z  t        | dz  |dz  z
  dz  z  z  | dz  dz
  t        | dz  |dz  z
  z  z  z   z  t        | dz  |dz  z
  z  z  | d
| dz  z  t!        | dz   |dz  z  | dz  z   |dz  z   dz
        z  t#        |      z  t        | dz  |dz  z
  dz  z  z  | dz  t!        | dz   |dz  z  | dz  z   |dz  z   dz
        z  t#        |      z  t        | dz  dz
  z  | dz  |dz  z
  z  z  z
  | dz  t!        | dz   dz   |dz  dz
  z        z  t!        | dz   |dz  z  | dz  z   |dz  z   dz
        z  t#        |      z  | dz  dz
  z  t!        | dz   dz   |dz  dz
  z        | |  |dz  z  | z   z  t!        | dz   |dz  z  | dz  z   |dz  z   dz
        z  t!        | dz   |dz  z  | dz  z   |dz  z   dz
        z   z  t#        |      z  z   t        t!        | dz   dz   |dz  dz
  z        z  | dz  |dz  z
  z  z  z   z  t!        | dz   |dz  z  | dz  z   |dz  z   dz
        z  t#        |      z  t        | dz  |dz  z
  z  z  z   | d
| dz  z  t!        | dz   |dz  z  | dz  z   |dz  z   dz
        z  t        |      z  t        | dz  |dz  z
  dz  z  z  | dz  t!        | dz   |dz  z  | dz  z   |dz  z   dz
        z  t        |      z  t        | dz  dz
  z  | dz  |dz  z
  z  z  z
  | dz  t!        | dz   dz   |dz  dz
  z        z  t!        | dz   |dz  z  | dz  z   |dz  z   dz
        z  t        |      z  | dz  dz
  z  | t!        | dz   dz   |dz  dz
  z        z  |  |dz  z  | z   z  t        |      z  t!        | dz   |dz  z  | dz  z   |dz  z   dz
        z  z   t!        | dz   dz   |dz  dz
  z        t!        | dz   |dz  z  | dz  z   |dz  z   dz
        z  t        |      z  z   t        t!        | dz   dz   |dz  dz
  z        z  | dz  |dz  z
  z  z  z   z  t!        | dz   |dz  z  | dz  z   |dz  z   dz
        z  t        |      z  t        | dz  |dz  z
  z  z  z   |t!        | dz   dz   |dz  dz
  z        z  |  |z  t!        | dz   |dz  z  | dz  z   |dz  z   dz
        z  t#        |      z  t        | dz  |dz  z
  z  |dz  dz
  z  z  d| z  |z  t!        | dz   |dz  z  | dz  z   |dz  z   dz
        z  t#        |      z  t        | dz  |dz  z
  dz  z  z  z   | |z  t!        | dz   dz   |dz  dz
  z        z  t!        | dz   |dz  z  | dz  z   |dz  z   dz
        z  t#        |      z  |dz  dz
  z  | t!        | dz   dz   |dz  dz
  z        z  | dz   |z  |z   z  t#        |      z  t!        | dz   |dz  z  | dz  z   |dz  z   dz
        z  z   t        t!        | dz   dz   |dz  dz
  z        z  | dz  |dz  z
  z  z  z   z  t#        |      z  t        | dz  |dz  z
  z  z  z
  || dz  dz
  z  d
| z  |z  | dz  dz
  z  t        | dz  |dz  z
  dz  z  z  d| z  |z  t        | dz  |dz  z
  z  z  z   z  t        | dz  |dz  z
  z  z  z   || dz  dz
  z  |dz  dz
  z  |  |z  t!        | dz   |dz  z  | dz  z   |dz  z   dz
        z  t        |      z  t        | dz  |dz  z
  z  |dz  dz
  z  z  d| z  |z  t!        | dz   |dz  z  | dz  z   |dz  z   dz
        z  t        |      z  t        | dz  |dz  z
  dz  z  z  z   | |z  t!        | dz   dz   |dz  dz
  z        z  t!        | dz   |dz  z  | dz  z   |dz  z   dz
        z  t        |      z  |dz  dz
  z  | t!        | dz   dz   |dz  dz
  z        z  | dz   |z  |z   z  t        |      z  t!        | dz   |dz  z  | dz  z   |dz  z   dz
        z  z   t        t!        | dz   dz   |dz  dz
  z        z  | dz  |dz  z
  z  z  z   z  t        |      z  t        t!        | dz   dz   |dz  dz
  z        z  | dz  |dz  z
  z  z  z   | t!        | dz   dz   |dz  dz
  z        z  t!        | dz   |dz  z  | dz  z   |dz  z   dz
        z  t#        |      dz  z  t        dz  | dz  dz
  z  | dz  |dz  z
  z  |dz  dz
  z  z  z
  | t!        | dz   dz   |dz  dz
  z        z  t!        | dz   |dz  z  | dz  z   |dz  z   dz
        z  t        |      dz  z  t        dz  | dz  dz
  z  | dz  |dz  z
  z  |dz  dz
  z  z  z
  }t        |      d| z  t        dz  | dz  |dz  z
  z  z  k(  sJ t        d      t%        t'        d      t'        d            k(  sJ t        dd      \  }}t        ||z  ||z  z
        ||z  ||z  z
  k(  sJ t        |d|| z  z   z        | |z  | |z   z  k(  sJ t        |d| z  d|z  z   z        || z  ||z  z   k(  sJ t        t)        d      t)        d      z         t)        d      k(  sJ t        t)        d| z        t)        d      z
        t)        |       k(  sJ t        t+        g g |             t-        |       k(  sJ y )Nzx,y,z,k,n,m,w,s,ArX   c              3   8   K   | ]  }t        |      |k(    y wNrJ   ).0tmps     rc   	<genexpr>z%test_simplify_expr.<locals>.<genexpr>5   s     Nx}#Ns      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   sM    '(; <Aq!Q1aAAN1b!aR"qb1"/MNNNN	!ac	AQ1A;1q51Q3-'''	1QT	1R46!Q$;AA;!	
QqS1a!A#g;	QqS)AA;!	AadQq!tV	a1fQh	&Q
2AA;"Q$	
Q!a%2q!t##q1umAqD&88AA;"Q$	
QqS!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,&&&!QTAaCZ!^$a(--a0AA;!QTAaCZ!^,,,,sA1qAvr"aRQq!tV$456::<AQvq!f~%q)R1qAv1AadF
QqS1QT6\'B BCE FIJK K K 
QAY1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 !"QBq!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EFqS	
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 :+:, =>q!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,DAqAaC!A#I!A#!)+++Aq1Q3wK AaCQK///AqsQqSyM"acAaCi///CFSVO$A...C!Hs1v%&#a&000E"b!$%Q///rb   c                     t         t        z  t        t        z  z   t        t
        z  z   dz
  } t         t        z  t        t        z  z   t        t        z  z   dz
  }t         t        z  t        t        z  z   t        t        z  z   dz
  }t        | ||gt         t        t        d      }t        |t                 t        t        z  t
        t        z  z   t        t        z  z   t        t        z  z
  t
        t        z  z
  t        t        z  z
  t        t        z  t        z  t        t        z  t        z  z   t
        t        z  t        z  z   t        t        z  t        z  z
  t        t        z  t        z  z
  t
        t        z  t        z  z
  z  k(  sJ y )Nro   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sC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                  "   t        t        t              dz  t        t              dz  z         dk(  sJ t        t	        t        dz         t	        t              z        t        k(  sJ t        t        t              dz  t        t              dz  z   t        t              t	        t              z  z         dt        z   k(  sJ t        t        t        t              dz  t        t              dz  z   t        t              t	        t              z              t        t        d      k(  sJ t        dd      } t        t        t        | z  z         t        d| z   z  k(  sJ t        t         t        z  t        t        t        z  t        dd      z  t        t        dz  z  dt        z  z  z         z  t        t        t        t        t        z  t        dd      z        z  dt        t              z  z        z  dt        t              z  z  t        t        z  t        t        t        z  t        dd      z  t        t        dz  z  dt        z  z  z         z  dt        t              z  z  z   z  t        t         t        dz  z  dt        z  z        z  t        t              t        z  z  t        t        t              z  t        t        t        t        t        z  dz        z  dt        t              z  z         dz   z  t        t        t        z  dz        z  dt        t              z  z  z
  }t        |      dt        d	d      z   t        t              z  t        t              z  k(  sJ t        ddt        z   z  dz        dt        z  k(  sJ y )
Nr^   ro   ncFru   rp   rt   rq   )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            	         t        t              j                  t              } t        t              j                  t              }t	        | |z        t        t              k(  sJ t	        t        t        ddgddgg                  t        t        d      t        d       gt        d      t        d      gg      k(  sJ y )Nr   rt   ro   )r/   rO   _eval_rewrite_as_expr2   rJ   r0   r$   r<   )cosAsExptanAsExps     rc   test_simplify_complexr      s    1v**1-H1v**1-HHX%&#a&000 CB!Q0123vA	Q@q63q6"?$ 8% % % %rb   c                      g d} | D ]F  }t        |      }t        t        |d            t        |      k  sJ t        |t              |urFJ  y )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)ro   )ratio)r   r   rJ   r   )rootsrs     rc   test_simplify_ratior      sW    IE  .aD!1-.)A,>>>$A---	.rb   c                     d } d }t         dz   t         t        t               dz  z   t        t               dz  z   z  } | t        ||              | |      k  sJ  |t        ||             ||      k  sJ t	        t        t               dz  t        t               dz  z   d      } | t        ||              | |      k  sJ  |t        ||             ||      k  sJ y )Nc                 *    t        t        |             S rj   )lenstrr   s    rc   <lambda>z'test_simplify_measure.<locals>.<lambda>   s    CD	N rb   c                     t        |        S rj   )r   r   s    rc   r   z'test_simplify_measure.<locals>.<lambda>   s    Yt_, rb   ro   r^   )measure)rO   r0   r/   rJ   r   )measure1measure2r   expr2s       rc   test_simplify_measurer      s    *H,HEAA	MCFAI-.DHT845$GGGHT845$GGGs1vqy3q619$a(EHUH56(5/IIIHUH56(5/IIIrb   c                      dt         z  dt        z  z  } t        | d      dt         t        z   z  k(  sJ t        | d       dt         t        z   z  k(  sJ t        | d      | k(  sJ t        dd      dk(  sJ y )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            	          t        t        t        dd            t        t        dd            z         dt        z   t        t        dd            z  k(  sJ y )Nrt   r^   r   ro   )rJ   r$   r   r   ra   rb   rc   test_simplify_issue_1308r      sK    CQ(3xA+??@	
QHRO$$% % %rb   c                      t        t        t        t               z         t        t               t        z   k(  sJ t        dd      } t        | | |  z  z         | | |  z  z   k(  sJ y )Nr\   Fru   )rJ   r   r$   r   r\   s    rc   test_issue_5652r      s\    AQBK CGaK///'AAQBK AQBK///rb   c                      t        d      } t        d      }| |z   dz  d| z  |dz  z  d|dz  z  z
  d| dz  z  |z  z
  z  }t        |      dd|z  z  k(  sJ y )NrO   rP   r^   rr   rq   ro   rs   )r   rJ   )rO   rP   rW   s      rc   test_simplify_fail1r      sj    sAsA	
Q
BqDAI!Q$&1a412AA;!r!t*$$$rb   c                  X   t        ddt        d      z  z   d      t        d      dz   k(  sJ dt        d      z   dt        d      z  z
  t        d      z   t        d      z   } t        t        | dz        d      | k(  sJ t        dd	t        d      z  z   d
      dt        d      z   k(  sJ t        dd	t        d      z  z
  d
      dt        d      z
  k(  sJ dt        d      z  dz   dt        d      z  z   dt        d      z  z   }t        |d
      dt        d      z   t        d      z   k(  sJ dt        d      z   t        d      z   t        d
      z   } t        t        t        | d
z        d
            | k(  sJ dt        d      z   dt        d      z  z   dt        d      z  z   } t        t        | d
z        d
d      | k(  sJ dt        d      z   dt        d      z  z
  dt        d      z  z   } t        t        | dz        d      | k(  sJ t        t        | dz        d      | k(  sJ y )NZ   "      rq   ro   r^   rw   )         irt   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                  8   dt        d      z   t        d      z   t        j                  dz  z   } t        | dz        }t	        |d      | k(  sJ dt        d      z   t        d      z   t        j                  dz  z   } t        | dz        }t	        |d      | k(  sJ y )Nro   r^   rq   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            	      F   t        d      \  } }}}t        d|z  | z  |z  d| z  |z  |z  z         d| z  |z  ||z   z  k(  sJ t        | |z  | |z  |z  z         | |z  d|z   z  k(  sJ t        t        | z  |z  t        | z  |z  |z  z         t        | z  |z  d|z   z  k(  sJ t        | |dz  z  t        |       z  | t        |       z  t        |      z  z         | t        |      |dz  z   z  t        |       z  k(  sJ t        | t	        | |z         z  | t	        |       z  z         | dt	        |      z   z  t	        |       z  k(  sJ t        | |dz   z  |z        j
                  sJ t        d| z   |z   | |z  z         | dz   |dz   z  k(  sJ t        |t        z  t	        || z
   t        |      z        z        |t	        | t        |      z        z  t	        | t        |      z        z  t        z  k(  sJ t        | |z   | |z
  z  |dz  z   d| z  z   dz         | dz   dz  k(  sJ t        dd      }t        t        |dz  | |dz  z  z               |t        d| z         z  k(  sJ t        t        ||dz  | |dz  z  z   z              |t        |d| z   z        z  k(  sJ t        t        ||dz  | |dz  z  z   z        d      |t        |      z  t        d| z         z  k(  sJ t        t        | |z              j
                  sJ t        t        | |z        d      t        |       t        |      z  k(  sJ t        d| z  dz   |z  dd	      d
d| d| z  dz   ||ik(  sJ t        d| z  dz   |z  d| g	      d
|| d| z  dz   ik(  sJ t        d| z  dz   |z  dg 	      d
d| d| z  dz   ||ik(  sJ t        d| z  dz   |z  d      d
d| d| z  dz   ||ik(  sJ t        d| z  dz   |z  dd 	      d
|d| z  dz   z  ik(  sJ t        dd      J t        d| z  |z   dd	      J t        d| z  |z   d      J t        d| z  |z   dd 	      d
d| z  |z   ik(  sJ t        dd      \  }}t        |||z  z         d|z   |z  k(  sJ t        | | |z  z         | d|z   z  k(  sJ t        d      }t         ||       |  ||       z  z          ||       |  ||       z  z   k(  sJ | dt        dd||z        z   z  }t        |      |k(  sJ t        t        | |z              }|t        |       t        |      z  k(  r|j                  sJ t        d      dz  t        d      dz  z   dz
  }t        | |z        }	t        |	      }|	j                  s&|j                  r|t        |       t        |      z  k(  sJ t        t        | |z  |z              }|t        |       t        |      z  t        |      z  k(  sJ t        t        | |z   |z              t        | |z   |z        k(  sJ y )Nzx,y,z,nr^   ro   r   Tpositiveforcera   )dictr   coeff)r   rq   zn,mFru   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     s   #JAq!Q!Aa!A#a%')*ac!eQUm;;;!ac!e$!QU3331QAa)*bd1fa!en<<<!Q$s1v#a&Q78	3q6AqD=#a& ! ! !#a!e*qQx/0Aq3q6zN3q64IIIIAEQ'....A	AaC(QUQUO;;;"S1q5#a&112	#aAh-QBs1vI&r)* * *QQ!Q$.14q89a!eaZGGGsT"AQTAadF]+,$q1u+===Q1qAv./0Ad1a!e9o4EEEEQ1qAv./t<	$q'	$q1u+   QqS	"))))QqS	.$q'$q'/AAA !A#'1D"=	!Q!aA&' ' ' !A#'1D1#>	!Q!a ! ! !!A#'1D"=	!Q!aA&' ' '!A#'1D1	!Q!aA&' ' '!A#'1D$?	!QqS1W+   %---!adB7???!ad+333!adD9gqsQw=OOOO5e,DAqAaC QUAI---AaC Aq1uI---A!q1v&!A$1Q4-777	
Ab"ac""	#Br!!!S1XAAs1v!((**A	CFAI!AAaCAQAxxAHHc!fSVm);;;S1QZ AAs1vc!f$$$$ QqS!G%ac1W555rb   c            	         t        d      \  } }}t        dt        |       t        |      z  z   t        |       z   t        |      z         t        |       dz   t        |      dz   z  k(  sJ t        d| z   t        |      z
  | t        |      z  z
  t        |      t        |      z  z
  | t        |      z  t        |      z  z
  | t        |      z  z   t        |      z         | dz   t        |      dz
  z  t        |      dz   z   k(  sJ t        dd      \  } }t        dt        | t        |      z        z   t        | |z        z         t        |       dz   t        |      dz   z  k(  sJ y )Nzx,y,zro   x,yTr   )r   rH   r&   r$   rO   rP   rQ   s      rc   !test_separatevars_advanced_factorr   O  s^   gGAq!CF3q6M)CF2SV;<	Q!c!fqj!" " "AA3q61CF3q6MA	#a&QCF(#%(V, -q53q6A:
A

+,- - - 54(DAqC3q6	N*S1X56	Q!c!fqj!" " "rb   c                     t        dd      \  } }t        t        |      |      |dz   k(  sJ t        t        |dz        |      J t        dt        |      z  |      d|dz   z  k(  sJ t        d|z  t        |      dz  z  |      d|dz   dz  z  k(  sJ t        t        | |      |      | |z
  |dz   z  k(  sJ t        t        | dz   |      |      | |z
  dz   |dz   z  k(  sJ d|z  dz   t        |      z  t        d|z  dz         z  }t        ||      t        j
                  d|z  dz   dd	|z  z   d
|dz  z  z   z  z  k(  sJ dd|z  dz
  t        d|z  dz         z  z  }t        ||      |t        j
                  z
  |dz   d|z  dz   z  d|z  dz   z  z  k(  sJ t        | |      d|z  z  t        |      z  }t        ||      || z
  |dz   dz  z  k(  sJ y )Nzn,kTintegerro   r^   rp   r   rq      r   rt   )r   rB   r!   r    r   Half)r\   rz   terms      rc   test_hypersimpr   [  s   5$'DAqYq\1%Q...Yq!t_a(000Qy|^Q'1a!e9444QT)A,/)1-AEA:===Xa^Q'AEAE?:::Xa!eQ'+A	AE/BBBBaC!GYq\!)AaC!G"44DT1!A#'A1HqAv4E)F!GGGGqsQw	!A#'**+DT1!aff*A!a/@!A#'/J!KKKKAq>2'!)A,.DT1!a%!a%!!3333rb   c            	         t        d      } t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d| z         d| z   k(  sJ t        d      t        dd      k(  sJ t        dt        z
        dt	        d      z
  d	z  k(  sJ t        dt	        d      z   d
z  t        g      t        d	z  k(  sJ t        d	t        z  t        g      d	t        z  d	z
  k(  sJ t        t        t        t        z  t        dd      z  d            t        d      k(  sJ t        t        t        t        dd      z  d            t        d      k(  sJ t        t	        t        dd            d	t        z   z  t        g      t	        t              t	        t              d	z  t        z  z   k(  sJ t        d	t        d	t        d      z  t        z        z         t        d      k(  sJ t        t        d      t        dd      k(  sJ t        t        d      t        dd      k(  sJ t        dd      t        dd      k(  sJ t        dd      t        dd      k(  sJ t        ddd       d	t        dd      z  k(  sJ t        | d!z   d"      t        j                  | z   k(  sJ t        d#| z   d"      t        dd      | z   k(  sJ t        t        d      j                         d"      t        d$      k(  sJ t        t        d%      t        t        d	      g      t        t        d	      z  d&z  k(  sJ t        t        d%      j                  d      t        t        d	      g      t         d
z  t        d	      z
  t        dd
      z   k(  sJ t        | d'z        | dz  k(  sJ t        t        d(z        t        d)z  k(  sJ t        t        d(z  d"      t        d(z  k(  sJ t        t        d*z        d+t        z  k(  sJ t        t!        d,t"        d	z  z  t"        d	z  d-z  z  dt"        d	z  d.z  z  z               j%                  t              rJ | d/z  }|j&                  rt        | d/z        dk(  sJ t        d0d1d2      t        dd      k(  sJ t        d0dd2      t        dd      k(  sJ t        d3d1d2      t        d4d      k(  sJ t        d3dd2      t        d4d      k(  sJ t        d5dd2      t        d5      k(  sJ t        d6dd2      t        d7      k(  sJ t        d8dd2      t        d9      k(  sJ t        d:      t        d;d      k(  sJ t        d<d      t        dd      k(  sJ t        d=d      t        dd      k(  sJ t        d>d      t        d?d@      k(  sJ t        dAd      t        dBd@      k(  sJ t        t        dC            t        ddD      k(  sJ t        dEd"      dk7  sJ t        dF      }t(         t(        || f}|D ]:  }t+        |      t(        z  }t        |      |k(  sJ t        || z         | |z   k(  r:J  t        dGddHI      t        dG      k(  sJ t        t        j,                  d)      | z  dHJ      j-                  d)      t        j,                  d)      | z  k(  sJ y )KNrO   r   rt   ro   g@   r   r   r^   rp   rq   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   r  sr   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S3$D ,2hrk}###a AG+++,
 Z$GLPXYcPdddd RXXc]1_'BHHMQSQYQYZ]Q^_`Q````rb   c                  V    t        d      } t        |       t        j                  k(  sJ y )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                     t        d      } t        d      }t        d      }t        d      }t        |  | z        | |z  k(  sJ t        |  |z        |  |z  k(  sJ t        | |z        | |z  k(  sJ t        | | z        |  |z  k(  sJ t        |  dz        t        | z  k(  sJ t        t        dd            t        u sJ t        | | z  | |z
  z        || z  ||z   z  k(  sJ y )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?ac!!!QBqD>aRT!!!AaC=AaCAqbD>aRT!!!QBqD>SU"""HRO$+++QBqD1"q&M"ac1q5k111rb   c                     t        d      } t        d      }t        d      }t        d      }t         ||       j                  |        ||       j                  |       z   ||       j                  |        ||       j                  |       z  z
        dk(  sJ t        d ||       z   ||       j                  |       z  t         ||       dz  |       z
        dk(  sJ t        t        d ||       z  |        ||       j                  |        ||       dz  z  z         dk(  sJ t         ||       j                  | |       ||       j                  ||       z
        dk(  sJ y )NrO   rP   rX   rY   r   r^   ro   )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@@@AaDIIaOadii1o56!;;;rb   c            	         t        d      \  } }t        d      }t        dd      \  }}t        dd      }t        t        |       dt        |      z  z         t        |       dt        |      z  z   k(  sJ t        t        |       dt        |      z  z   d	      t        | |dz  z        k(  sJ t        |t        |      z  t        |      z         |t        |      z  t        |      z   k(  sJ t        |t        |      z  |t        |       z  z         t        ||z        |t        |       z  z   k(  sJ t        |t        |      z  t        |      z
        t        ||z  |z        k(  sJ t        t        |       t        |      z        t        |       t        |      z  k(  sJ t        t        |      t        |       z        t        |      t        |       z  k(  sJ t        t	        d
t        |      z  |t        |      z  z               t	        t        ||z  |dz  z              t	        t        |dz  ||z  z              fv sJ t        t        t        |       t        |      z
        t        |      z
  d	      t        t        | |z        |z        k(  sJ t        dt
        z   t        |       z  d	      dt
        z   t        |       z  k(  sJ t        | dz  t        |       z   t        |      z
  | |z  z  d	      | dz  t        | |z        z   | |z  z  k(  sJ t        t        |       dz  t        |      z  t        |      z   d	      t        ||t        | dz        z  z        k(  sJ t        | |z  t        | dz  |dz  z         z   t        |       z   t        |      z
  t        | t        dd      z  z  t        |      dz  z  z  d	      | |z  t        | dz  |dz  z         z   t        | |z        z   t        | t        dd      z  z  |t        dd      z  z  z  k(  sJ t        t        t        | |z               t        t        | |z               z  d	      t        t        | |z               t        t        | |z               z  k(  sJ t        dt        |      z  t        |      z  t        |       z  t        |      z   t        |      z         t        |t        |dz        z        t        |       z  t        ||z        z   k(  sJ t        dt        |      z  dt        |      z  z         t        |dz  |dz  z        k(  sJ t        | |dz   z  t        d      z   t        d      z         | |dz   z  t        d      z   k(  sJ t        | |z   t        |      z  |  |z
  t        d      z  z         | |z   t        |dz        z  k(  sJ t        t        |       t        d      z         t        d| z        k(  sJ t        t        |             t        t        |            z   }t        |      |k(  sJ | d|di}t        t        |       t        |      z        j                  |      |j                  |      k7  sJ y )Nr   rS   zz,wTr   rT   realr^   r   rs   rp   rq   ro   rw   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>DAqsA54(DAqsAc!fqQx'(CFQs1vX,====c!fqQx't4AadFCCCaAhQ'(Ac!fHs1v,====aAh3q6)*c!Q$i!CF(.BBBBaAhQ'(C1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QT!Q$Y5H36s1a41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AaC1Q3      c!fQhs1voA.d;AaQTlN  qsT!Q$A+..Q7#a&@2aRSUVFWCWGQJD #%aC$q!tad{##c!A#h.Ax1~4E1EaRSUVFW1W)YY Y Y eS1XI&tS1XI6dCc!A#hYs1Q3xi(() ) ) aAhs1voc!f,s1v5A>?As1a4yL#a& 3qs8+, , ,aAh3q6)*c!Q$q!t)n<<<aQi#a&(3q612aQi#a&6HHHHq1uc!fnQA67AE3q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                     t        t        t        dz        t        t        dz        z   t        z  t              } t	        | d      | k(  sJ t	        | dt        t              z  z   d      | t        t        dz        z   k(  sJ y )Nr^   rq   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                     t        dd      \  } }t        t        d      t        d      z
        t        t        dd      d      k(  sJ t        t        |       t        |      z
        t        | |z        k(  sJ t        t        t        dd      d      t        d      z
        t        t        dd      d      k(  sJ y )	Nr   Tr   rq   r^   Fr   rp   )r   rD   r&   r   rO   rP   s     rc   test_issue_5950r     s    54(DAqc!fs1vo&#hqme*LLLLc!fs1vo&#ac(222c(1Q-%83q6ABHQqME*+ + +rb   c            	         t        d      } t        t        | t        dd      z   t        dd      z               dk(  sJ t        d| z        \  }}t	        |      j                         j                  |      t	        |        k(  sJ t        t        | d| z   g            d	k(  sJ t        dd      }t        dd      }| ||g}t        |      \  }}t        |      d
k(  sJ |D cg c]  }|j                  |       c}|k(  sJ t        t        t        d| z  t        z         d   t        ddf      j                               dk(  sJ t        t        t        d| |z  z        d   |ddf      j                               dk(  sJ t        dd      }	t        |	      \  }}|j                  i ddddddddddddddddddddddddddddd dd!dd"dddd#k(  sJ y c c}w )$NrO   r   Tr   r\   negativez(_x + n + p, {_x: x})ro   z([_x, _x + 1], {_x: x})z
[_x, n, p]r   rq   z3Integral(1/_x, (y, 1, 3)) + Integral(_y, (y, 1, 3))zSum(_x**(-n), (n, 1, 3))rz   )finiter   zeroF	imaginarynonpositiverv   	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   assumptions0)
rO   r   repr   r\   origmodifiedr   r|   rz   s
             rc   test_posifyr    s   Av	sT"	#sT"	#$ % )@@ @ @
 QqSkGBr7>>  %#a&000vq!a%j!"&????d#Ad#Aq!9DD\NHdx=L((("*+QAFF4L+t333xqsQw*Q1I6==?@=> > >s6!AqD&>!$q1g.5578"# # # 	s4 AQiGB?? :z4 : :U :E:($:0;T:CI4:QZ\`:D:$e:-6:>F: : (: /B5: T	: $:5	:
 D: : : : ,s   (G/c                      t        d      } t        dt        z  d | t              z  z   dt        z  d | t              z  z   z        dk(  sJ y )NrX   rp   rw   r^   rq   )r   rJ   rO   rP   )rX   s    rc   test_issue_4194r  0  sC    AQqS1QqT6\AaC!AaD&L12a777rb   c                      t        t        dz  t        dz  z
        dk(  sJ t        t        dz  t        dz  z
        dk(  sJ y )Nr   r^   r   )rJ   rO   ra   rb   rc   test_simplify_float_vs_integerr  6  sB     AsFQTM"a'''AqD1c6M"a'''rb   c            	      b   t         dz  t        z   j                         t        j                  t         dt        z  z   fk(  sJ t         dz  t        z   j                  d      t        j
                  t         dz  t        z   fk(  sJ t        t         dz  t        z   z  j                         t        j                  t        t         dt        z  z   z  fk(  sJ t        t         dz  t        z   z  j                  d      t        j
                  t        t         dz  t        z   z  fk(  sJ t         ddt         z  z   z  dt         z  dz   dz  z  j                         dt         t         dz   dz  z  fk(  sJ ddt         z  z   dt        z  ddt        z  z   z  z   j                         dt         dt        z  t        dz   z  z   dz   fk(  sJ ddt         z  z   dz  j                         ddt         z  dz   dz  fk(  sJ ddt         z  z   dt        z  z  j                         dt        t        d      dt         z  dz         dt        z  z  fk(  sJ d	d
t         z  z   dt        z  ddt        z  z   z  z   j                         dd
t         z  dt        z  t        dz   z  z   d	z   fk(  sJ d	t         dt        z   z  z  dt         z  ddt        z  z   z  z   j                         dt         t        dz   z  fk(  sJ d	t         dt        z   z  z  dt         z  ddt        z  z   z  z   dz  j                         dt         dz  t        dz   dz  z  fk(  sJ t        dz  j                         dt        dz  fk(  sJ t        j                  j                         dt        fk(  sJ t         dt        z   z  } | j                         d| fk(  sJ t        j                  dt         z   z  j                         t        dd      dt          z  fk(  sJ t        dd      dt         z   z  j                         t        dd      t        dd      t         z  fk(  sJ t        dd      dt         z   z  j                         t        dd      t        dd      t         z  fk(  sJ ddt        z   dz  z  j                         ddt        dz  z  fk(  sJ ddt        z   dz  z  j                         ddt        t        j                  dt        z   d      z  fk(  sJ d	t        dd      z  j                         dd	t        dd      z  fk(  sJ d	t        dd      z  j                         d	d	t        dd      z  fk(  sJ t        t        t        d	d      z  dt         z  t        t        dd      z  d      j                         t        dd      dt         z  dt        z  z   d
t        z  z   fk(  sJ dt        dd      z  dt        dd      z  t        d      z  z   j                  d      ddt        dd      z  t        d      t        d      z   z  fk(  sJ y )Nr^   F)clearrq      ro   rw   rp   r   r   r   y   rt   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$  >  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                     t         t          dz   z  t         t         dz
  z  z   } t        t        | d            t        j                  u sJ t        t         dz
        t        dt         z
        k(  sJ t        t        t         z
        t        t         z
  k(  sJ t        t        t         z
  d      t        dt         t        z
  d      k(  sJ y )Nro   r   Fr   rt   )rO   rI   r   r   truer"   rP   r   )rW   s    rc   test_signsimpr'  j  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                     ddl m} m}m} ddlm} t        t        t         t        z  t        z  dz         | t        t        t        t        t        z  dz        z        z         |t        t              k(  sJ t        t        t         t        z  t        z  dz         | t        dt        t              z  t        t        t        z  dz        z        z         |t        dt        t              z        k(  sJ t        t        d      t        t              z  t        t!        dd      z  z  t        t        t        z  dz        z  t        t         t        z  t        z  dz        z   | t!        dd      t        t              t        t        t        z  dz        z        z   | t        t        t              t        t        t        z  dz        z        z  dz         |t        t        t                    t#        t        t                    z  k(  sJ t         | t!        dd      t                    t        d      t%        t              z  t        t              t        t              z  z  k(  sJ t         | t        t        t        t         t        z  dz        z              t        t         t        z  t        z  dz         |t        t              z  k(  sJ  |dt&        z  t)        t        t&        z        z  t&        t              t        d      t        t              z   |ddt        t              z  t        t              z        z  dz  k(  sJ t        t        dz  t        d |d	t        z  t              z   |dd	t        z  z   t              z    |dd	t        z  z   t              z   z  t*        d |d	t        z  t              z   |dd	t        z  z   t              z    |dd	t        z  z   t              z   z  z   z  dz  t        t         |dd	t        z  z   t              dz   |dd	t        z  z   t              dz  z
  z  t*         |dd	t        z  z   t              dz   |dd	t        z  z   t              dz  z
  z  z   z  z   t        dz  d
z   t         |d	t        z  t              z  t*         |d	t        z  t              z  z   z  z         dk(  sJ t        dt        dz  z  t         |t!        dd      dt        z        d |t!        dd      dt        z        z  z
   |t!        dd      dt        z        z   z  t*         |t!        dd      dt        z        d |t!        dd      dt        z        z  z
   |t!        dd      dt        z        z   z  z   z  dz  t        t        d |t!        dd      dt        z        z  dz  d |t!        dd      dt        z        z  dz  z
  z  t*        d |t!        dd      dt        z        z  dz  d |t!        dd      dt        z        z  dz  z
  z  z   z  z   dt        dz  z  t!        dd      z
  t         |t!        dd      dt        z        z  t*         |t!        dd      dt        z        z  z   z  z         dk(  sJ t         |t        dz
  t               |t        dz   t              z   dt        z   |t        t              z  t        z  z
        dk(  sJ t         |t        dz
  t               |t        dz   t              z    |t        t              z         dt        z  t        z    |t        t              z  t        z  k(  sJ t        t        dz   |t        t              z  t        dz   |t        dz   t              z  z    |t        dz   t              z         dt        z  t        z   |t        dz   t              z  t        dz   |t        dz   t              z  z   t        dz   |t        dz   t              z  z
  dt        z   |t        dz   t              z  z    |t        dz   t              z   k(  sJ y )Nr   )besselibesseljbessely)cosine_transformr^   ro   rp   rt   rs   r      Q   r   rq   	   r   )sympy.functions.special.besselr)  r*  r+  sympy.integrals.transformsr,  rA   r$   r   r   rP   rQ   r%   rS   r*   rO   r   r/   r'   rR   r0   rT   )r)  r*  r+  r,  s       rc   test_besselsimpr2  r  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                     t         t         t        z   z  t        t         t        z   z  z
  } t        t               dz  t        t               dz  z   }t	        t         t        z   t        z  t         z        }t        |       }t        |      }t        |      }t        t        | t         |k  f|df            t        |t         |k  f|df      k(  sJ y )Nr^   T)rO   rP   r0   r/   r	   rJ   r+   )e1e2e3s1s2s3s         rc   test_Piecewiser:    s    	
AEQAY	B	QSVQY	B	Q	!	B	"B	"B	"BIr1r6lRJ782q2v,T
+, , ,rb   c                  x     G d dt               }  | t        d      t        d            }t        |      dk(  sJ y )Nc                       e Zd Zd Zy)test_polymorphism.<locals>.Ac                 "    t         j                  S rj   )r   r   )rO   kwargss     rc   _eval_simplifyz+test_polymorphism.<locals>.A._eval_simplify  s    55Lrb   N)__name__
__module____qualname__r@  ra   rb   rc   r~   r=    s    	rb   r~   r   r^   ro   )r   r   rJ   )r~   rS   s     rc   test_polymorphismrD    s5    E  	
!A$!AA;!rb   c                  ~    t        dd      \  } }}}t        t        t        |       z        t        |         k(  sJ y )Nzn1 n2 n3 n4Tr  )r   rJ   r   r*   )n1n2n3n4s       rc   test_issue_from_PR1599rJ    s9    ]T:NBBAd2hJD"I:---rb   c                  .   t         dt        z  z   dt         z  dz   z  } t        |       t         dz   t         dt        z  z   z  dz  k(  sJ t        | j                               dt         dz  z  dt         z  t        z  z   dt         z  z   dt        z  z   k(  sJ y )Nr^   ro   rp   )rO   rP   rJ   r	   r#  s    rc   test_issue_6811rL    s    
ac'AaC!G	BB<AEA!G,Q....BIIK 	!Q$1Q1qs"# # #rb   c                  *   t        t              t        t        t              z  z   t        t              t        t        t              z  z
  t	        t              t        t              z
  t	        t              t        t              z   g} t        t        t        z        t        t         t        z        t        t               t        t              g}t        d      }| D cg c]   }t         ||            j                  d   " c}|k(  sJ y c c}w )NrX   r   )
r/   rO   r   r0   r'   r)   r$   r   rJ   args)rW   okrX   eis       rc   test_issue_6920rQ    s    	Q!CF(	CFQs1vX-Q$q'47T!W,	.A
ac(C1IsA2wA	/BA./0HQrUO  #0B6660s   "%Dc                  f   ddl m} m} t        | t	        t
        t        dd      z  | |k  fdt
        z  |dz  z  d| dz  z  z  df      z  dt	        t
        | z  t        dd      z  | |k  fdt
        z  |dz  z  d| dz  z  z  df      z  z    dt
        z  | z  z        t	        d| |k  fd	      k(  sJ y )
Nr   r   Rrp   rq   iTr^   rt   r   T)	sympy.abcr   rT  rJ   r+   r   r   rS  s     rc   test_issue_7001rW    s    a	2hq!n#4a1f"=	Bq!tQq!tV	d#% %'(BqD!Q4Ga3P	
2adAadF	T"*$ ($$ %&'d1f. / 	2qAv,	*+ + +rb   c                      t        t              dz  t        t              dz  z   } d}t        | |d      }|t        j
                  usJ t        |      sJ y )Nr^   Fr   )r/   rO   r0   r   r   r&  rJ   )lhsrhsrW   s      rc    test_inequality_no_auto_simplifyr[    sK    
a&!)c!fai
C
C
3e$AAFF??A;;rb   c                     ddl m}  ddlm}  |d      dk7  sJ  |dt        z        dk7  sJ t        d      dk7  sJ t        dt        z        dk7  sJ t         | d      z   | d       | d      z  z  j                         dk7  sJ  |d      dk7  sJ  |dt        z        dk7  sJ t        d      dk7  sJ t        dt        z        dk7  sJ  |d	      dk7  sJ  |d	t        z        dk7  sJ t        d	      dk7  sJ t        d	t        z        dk7  sJ t        d
      } ||      dk7  sJ  ||t        z        dk7  sJ t        |      dk7  sJ t        |t        z        dk7  sJ y )Nr   )Number)cancelg+=g      ?r   ig#B;g0.++z1e-1000)sympy.core.numbersr]  sympy.polys.polytoolsr^  r   rJ   r   )r]  r^  rX   s      rc   test_issue_9398ra    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                  Z    t        ddd      } | d   | d   z   dz   }t        |      |k(  sJ y )NMr   )r   r   )r   rp   i  )r>   rJ   )rc  rW   s     rc   test_issue_9324_simplifyrd    s9    S"b!A	$!D'D AA;!rb   c                  >   ddl m} m} t        ddd      }t        ddd      }t	        t        d      D cg c]  }|dz   	 c}      } | d      }|j                  |z  |z  }t         ||j                               j                  ||||i            dk(  sJ y c c}w )Nr   )Identitytracevrq   ro   r~   r   )
sympy.matrices.expressionsrf  rg  r>   r<   rangeTrJ   as_explicitxreplace)rf  rg  rh  r~   r[   rO   X	quadratics           rc   test_issue_9817_simplifyrp    s     ;S!QAS!QAuQx(!A()AAa!IU90023==qAajIJbPPP )s   Bc                      t        d      } t        | t        t        d            z         | t        t        d            z   k(  sJ y )NrO   ro   )r   rJ   r(   r1   rf   s    rc   test_issue_13474rr    s8    sAAT!W%&!d47m*;;;;rb   c            
         t        d      \  } }t        d       G fddt              }t         | |                    | |             k(  sJ t         | |                   | k(  sJ t         | |             d      | k(  sJ t         | t	        |       dz  t        |       dz  z               d      dk(  sJ t         | | |            d       | | |            k(  sJ t        t        t	        |             sJ t        t        t	        |                   t        t	        |             k(  sJ t        dt        t	        d	| z              z  d      d
| z  k(  sJ t        t        t        |                   t        t        |             k(  sJ t        t        t        |             d      | k(  sJ t        t        t        |             d      | k(  sJ t        t        t        |       d      d      | t        d      z  k(  sJ t        t        t        |       dd      d      | t        d      z  k(  sJ y )Nzx, yrY   c                       e Zd Zd fd	Zy))test_simplify_function_inverse.<locals>.fc                     S rj   ra   )selfargindexrY   s     rc   inversez1test_simplify_function_inverse.<locals>.f.inverse  s    Hrb   N)ro   )rA  rB  rC  ry  )rY   s   rc   rX   ru    s    	rb   rX   T)ry  r^   ro   rq   rw   Fr   )
r   r   rJ   rC   r0   r/   r   r-   r&   r$   r   s      @rc   test_simplify_function_inverserz    s   
 6?DAqAH  AadG!A$'''!AaD'"a'''AadGT*a///AaA	CFAI-./>!CCCAa1gJ-1Q7;;;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                     ddl m}   | dt        z  dt        z  dz   z        t        dt        z  dz   z  dfk(  sJ  | dt        z  dt        z  dz   z  dz
        t        dt        z  dz   z  t	        dd      fk(  sJ  | dt        z  dt        z  dz   z  dz
  t              t        dt        z  dz   z  t        dz  t	        dd      z   fk(  sJ  | t        d      dz
        t        d      dfk(  sJ  | dt        d      z  dz
        t        d      t        j                  fk(  sJ  | t        d      t              dt        dz
  fk(  sJ  | t        j                  t              t        j                  t        fk(  sJ  | t        j                   t              t        j                  t         fk(  sJ  | dt        j                  dz  z
  t              t        d	t        z  dz   fk(  sJ y )
Nr   clear_coefficientsrp   rw   rq   r^   ro      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                     ddl m ddlmm ddlm ddlm t        dd      \  } }}}t        d	      t        d
      }t        d      }t        d      }t        d      }| |||||||it        d t        d ifddfd	} || |z  | z  |z  | z  |z  |z  | |z  dz  z  |z  | |z  dz  |z  dz          || |z  | |z  dz  z  | z  |z  d        || dz  |z  | z  |z  | z  |z  | |z  dz  z  | | |z  dz  z  d        ||| z  |dz  z  | z  |dz  z  | z  |dz  z  || |dz  z  dz  z          || |z  | dz  z  |z  | dz  z  |z  | dz  z  | |z  | z  dz  | dz  z          || dz  |z  | dz  z  |z  | dz  z  |z  | dz  z  | dz  |z  | dz  z  dz          || dz  |z  | dz  z  |z  | dz  z  |z  | z  | dz  || dz  z  dz  z  | dz  z          || |z  | z  |z  | |z  |z  z  | z  |z  |z  z   | |z  dz  | |z  |z  dz  z  z           || |z  | z  |z  |z  | z  |z  | z  |z  |z  | |z  dz  |z  dz          ||dz  | dz  z  | |z  dz  z  | |z          || dz  |z  |dz  z  ||dz  z  | z  dz         | dz  |z  | dz  z  |z  | dz  z  |z  | dz  z  |z  | dz  z  || dz  z  dz  z  |z  | dz  z  |z  | dz  z  }	t        d      D ]
  }
|	| |z  z  }	  ||	| dz  || dz  z  dz  z  || dz  z  dz  z  | |z  dz  z          || |z  | z  |z  dz  | |z  | z  |z  dz  d        || |z  ||z  dz  z  | |z  ||z  dz  z         |dz  | dz  |dz  z  | dz  |z  |dz  z  z
  dz  z  | dz  z  }	 |	      d|z
  dz  k(  sJ  ddz  z        ddz  z  k(  sJ y )Nr   )nc_simplify)MatPowrf  )Pow)reduceza b c dFru   rO   r~   r   CDc                     | |z   S rj   ra   r   s     rc   r   z"test_nc_simplify.<locals>.<lambda><  s
    ac rb   c                     | |z  S rj   ra   r   s     rc   r   z"test_nc_simplify.<locals>.<lambda><  s
    AaC rb   c           	      4   | v r|    S t        |       r)  | j                  d         | j                  d         S t        | t        t        f      r4 | j                     | j                  D cg c]
  } |       c}      S |  	      z  S c c}w )Nr   ro   )
isinstancerN  r   r   func)
r   rS   rf  r  r  
_to_matrixfuncsr  substrO   s
     rc   r  z$test_nc_simplify.<locals>._to_matrix>  s    5=;dC *TYYq\2DIIaLAAsCj)%		*499+MaJqM+MNN## ,Ns   4B
c                      | |      |k(  sJ t        |       t        |      k(  sJ |r. |      j                  d      }  |       |      |k(  sJ y y )NdeepF)
inv_expand)r	   doit)r   
simplifiedr  matrixm_simpr  r  s        rc   _checkz test_nc_simplify.<locals>._checkH  si    4d+z999d|vj1111
+00E0BFz$/d;vEEE rb   rq   r^   rs   ro   rt   )r  rp   r   r   rw   r  )TT)r  r  ri  r  rf  
sympy.corer  	functoolsr  r   r   r>   r   r   rj  )rS   rT   rU   rV   r~   r   r  r  r  r   _rf  r  r  r  r  r  r  r  rO   s              @@@@@@@@@rc   test_nc_simplifyr  /  s   3; %8JAq!QsAS!QAS!QAS!QAS!QA1aAq#E/39E$ $F 1Q3q5719Q;q=!A#!!#qsQhqj1_5
1Q3!by=?1a 
1a46!8A:a<>1Q3)#Q!axZ>
1Q3q!t8A:ad?1QT!1a1fq[=1
1Q3q!t8A:ad?1QT!AaCEA:ad?3
1a46!Q$;q=Aa1$q!tAvad{Q&67
1a46!Q$;q=Aa!1a41a4!#3ArE#9:
1Q3q57QqSU1WQYq[]"QqS1Hq!A#a%!|$;<
1Q3q5719Q;q=?1Q!A#!a0
1b5B;!ax1%
1b571b5=1QU719r/*a46!Q$;q=Aa1$Q&q!t+Qq!tVaK79!Q$>q@AED2Y !
4AqAvk!1QT6A+-qsRi78
AaCE!Ga<!A#a%'AE2
1Q3!ax<1acAX&b5!R%2+2a2-221b58Dt1r	)))qAv!AqD&(((rb   c                     t        t        t        t        z  z  t        dt        f      } t        t        t        t        z  t        dt        f      z  }t        t        t        z  t              }t        dz  t        z  dz  }t        | |z         ||z   k(  sJ t        |       |k(  sJ t        |      |k(  sJ t        |d      t        t        t        t              z  k(  sJ y )Nro   r^   F)r  )r   rQ   rO   rP   rS   r8   rJ   )r~   anewr   bdos       rc   test_issue_15965r  e  s    AadFQ1IASA1ay!!D1aA
Q$q&(CAE?dSj(((A;$A;#AE"aA&6666rb   c                      t        t        t              t        z        t        t              t        z  k(  sJ t        t        t              ddt        z  z   z        t        t              ddt        z  z   z  k(  sJ y )Nr^   rq   )rJ   r/   rO   r   ra   rb   rc   test_issue_17137r  p  sZ    CFAI#a&!)+++CFQ1W%&#a&1qs7*;;;;rb   c            	         t        dd      } t        dd      }t        t        | dz  d      t        | |            }|j	                         |k(  sJ t        t        | dz  d      t        | d            }|j	                         t        | d      k(  sJ t        t        | dz  | dz        t        | d            }|j	                         t        | d      k(  sJ t        t        t        |       | dz        t        | d	            }|j	                         t        | d	      k(  sJ t        t        | dz  | dz        t        | d            }|j	                         t        j                  k(  sJ t        t        || dz        t        | d            }|j	                         t        t        |d      t        | d            k(  sJ t        t        |dz  d      t        || dz        t        | d            }|j	                         t        t        |d      t        | d            k(  sJ t        t        |dz  d      t        |d| dz  z        t        | d            }|j	                         t        t        |d      t        | d            k(  sJ t        t        |dz  d      t        || dz        t        | d            }|j	                         t        j                  k(  sJ y )
NrO   Tr   rP   r^   rp   rq   ro   r   )r   r:   r   r   rJ   r0   r   false)rO   rP   r   s      rc   test_issue_21869r  u  sR   sAsAr!Q${Bq!H%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!QT{Bq!H%D==?c"Qq'2a84444r!Q${Bq!Q$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${Bq!Q$KAq2D==?agg%%%rb   c                  *   t        t        t        ddf      } | dk7  sJ t        |       t        j                  u sJ t        t        j                        t        j                  u sJ t        t        d            } | t        j                  ur| dk(  sJ y )Nro   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                      t        dt        t        dz         dz  z  j                  d            dt        dt        z  t        dt        ddt        z  z
        z   t        z         z  z   dz  dz  z  k(  sJ y )Nr^   ro   r&   rt   rp   )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                     t        t        dt        t              z  z        t        dt        dt        z  t        dt        d      z         z  z
  z  z  k(  sJ t        t        t               dz  t        t              dz  z        t        dt        d      z         dz  t        dz  t        dt        d      z         dz  z  dz  z   t        dz  dz  z   k(  sJ t        dt        t              dz  z        dt        dt        z  t        dt        d      z         z  z
  dz  dz  z  k(  sJ dt        t        dz         dz  z  } t        |       | k(  sJ y )Nro   r^   rp      )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                  H   t        d      \  } }t        t         | |             | |      k(  sJ t         d|             d|      k(  sJ t         | d             | d      k(  sJ t         d|      j                  t               d|      z        dk(  sJ t         d|       t	        dt        |d      fd      z          d|        d|      z   k(  sJ t         d|       d|      z        dk(  sJ t        dd      t         d       d      z        dk(  sJ t        d	d	fd
      }t        |dz        t         d      d d      dgd d      d d      gdd d      dgddd d      gg      k(  sJ t        t        d      t        d      z  t        d      z        t        dgg      k(  sJ t        t        j                  t        d      z  t        d      z        t        j                  u sJ y )Nzi jr   ro   r^   rU  r\   Tr   rp   c                 *    | |k  r || z
        S dS )Nr   ra   )r[   jKr\   s     rc   r   z.test_simplify_kroneckerdelta.<locals>.<lambda>  s    a!AE1+ Q rb   )r   r6   rJ   r  r+   r   r   r<   r=   r   r"  NaN)r[   r  rc  r  r\   s      @@rc   test_simplify_kroneckerdeltar    sG   5>DAqAAaG!Q'''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                  
   t        t        t              t        t        dz        z        dt        t              z  k(  sJ t        dt        t        dz  dz
  t        dz
  z        z        dt        t        dz         z  k(  sJ y )Nr^   ro   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                      t        t        t        dz
  d      t        t        d            } t        |       t        t        d      k(  sJ y )Nr^   ro   rq   )r:   r   r\   rJ   r   s    rc   test_issue_19822r    s6    r!A#qz2a8$DD>R1X%%%rb   c                     t        t        t        d      t        t        d            } t	        |       t        t        d      k(  sJ t        t        t        d      t        t        d            } t	        |       t        t        d      k(  sJ y )Nrq   )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                      t        dd      } t        dd      }t        t        | d|z        t        | d|z  dz
              }t	        |      t
        j                  k(  sJ y )Nr[   Tr   r\   r^   ro   )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                  v    t        dd      } t        | d      | dk\  z  }t        |      t        | d      k(  sJ y )Nr\   Tr   r   ro   )r   r   rJ   r   )r\   r   s     rc   test_issue_18389r    s:    sD!Aa8qAvDD>R1X%%%rb   c                  z    t        dd      } t        t        | dk  | dk\              t        j                  k(  sJ y )NrO   Tr   ro   )r   rJ   r;   r   r&  rf   s    rc   test_issue_8373r    s4    sABq1ua1f%&!&&000rb   c                      t        t        t        d      t        t        d            } t        |       t        j
                  k(  sJ y )Nro   r^   )r:   r   rO   rJ   r   r  r   s    rc   test_issue_7950r    s0    r!QxAq"DD>QWW$$$rb   c                  R    t         t        z  dz  t        z
  } t        |       | k(  sJ y Nr^   )r   r   r   rJ   r   s    rc   test_issue_22020r    s%    R462:DD>T!!!rb   c                  n   t        t        t              t        t              z        t        k(  sJ t        t        t        t        dz  z         z   } t        t        t        t        dz  z         | z        t        dz  t        t        t        dz  t        z         z  z   t        z   k(  sJ t        dz  t        t        dz  dz         z   } t        t        t        dz  dz         | z        t        dz  t        dz  t        t        dz  dz         z  z   dz   k(  sJ t	        d      }t        t        t         |t              dz  z         z   } t        t        t         |t              dz  z         | z        t        t        t         |t              dz  z         z  t        z    |t              dz  z   k(  sJ y )Nrq   r^   ro   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                  z    t        dd      \  } }}| ||dz  z   z  j                         | d|z  |z   z  dz  k(  sJ y )Nzx y zFru   r^   )r   rJ   r   s      rc   test_issue_23543r  
  sG    g51GAq!q1Q3wK!!#q!A#'{1}444rb   c                     d fdfd} t        d      \  }}t        dd      }t         | t        |       | t        |dz         z        j	                  d	      }t         |j                  t        |      j                  d            }|||z  t        |      z  ||z  t        |dz         z  z
  |t        |      z  z   |t        |dz         z  z
  t        d
d      z   k(  sJ y )Nc                 F    t        dt        z  | z        | t        z  | z  z  S r  )r*   r   r   r   s    rc   rX   ztest_issue_11004.<locals>.f  s!    AbDF|qsQh&&rb   c                 2     |        | |z        |z  z  S rj   ra   )r\   rz   rX   s     rc   r{   ztest_issue_11004.<locals>.m  s    !!A#	""rb   c                 "     | |      || z  z  S rj   ra   )r\   rz   r{   s     rc   r   ztest_issue_11004.<locals>.p  s    Aw!Q$rb   zN kz0.5rp   ro   Tr   gg?)r   r   r&   r\   r	   rJ   r   )r   Nrz   halfrQ   r   rX   r{   s         @@rc   test_issue_11004r    s    '#  5>DAq?DAaGa1q5k!")))5A1"#AQs1v
q&QU
	
s1v+	 s1q5z/	 	1
		  rb   c                  t    t        d      j                         } | t        dz  z
  j                         dk(  sJ y )Nzx**2r^   r   )r@   rJ   rO   )
polynomials    rc   test_issue_19161r  (  s3    f&&(Jq!tO%%'1,,,rb   c                      t        dd      } dt        t        t              t        | f      z  }|j	                         |k(  sJ y )NrV   Tr   r^   )r   r   r0   rO   rJ   )rV   r   s     rc   test_issue_22210r  -  s;    sD!AZAA''D==?d"""rb   c                  t   t        dd      \  } }t        dd      }t        d|z  ||z  z        d|z  ||z  z  k(  sJ t        | |z  ||z  z        | |z  ||z  z  k(  sJ t        dd      \  } }t        | |z  |z        | |z  ||z  z  k(  sJ t        | |z  ||z  z        t        | |z  |z        k(  sJ y )Nzx yTru   ZFr^   r   )r   rJ   r	   )rO   rP   r  s      rc   test_reduce_inverses_nc_powr  3  s    5d+DAq'AAqD1a4K AqD1a4K///AqD1a4K AqD1a4K///54(DAq1Q3(q!tad{***AqD1a4K FAaC!8$4444rb   c                      t        dd      } dt        t        dz        z  | z  j                         | k(  sJ dt        t        dz        z  | z  j                         | k(  sJ y )Nrn  Fru   r^   rq   r   )r   r/   r   rJ   )rn  s    rc   test_nc_recursion_coeffr  <  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   r_  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>   r`  r?   r@   r  rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   sympy.solvers.solversrK   sympy.testing.pytestrL   rM   rN   rV  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'  r2  r:  rD  rJ  rL  rQ  rW  r[  ra  rd  rp  rr  rz  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     sa   )  " % 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+ :F8 ( ()6XM"zH,.
#7+>
Q<
 N N4
?4)l7<
&>( - -3:?&
& % % & &1
%
"N50-
#51rb   