
    sgy                        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	 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mZmZmZmZmZ d dlmZ d dlmZmZm Z m!Z! d dl"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+ d dl,m-Z- d dl.m/Z/ d dl0m1Z1m2Z2m3Z3 d dl4m5Z5 d dl6m7Z7m8Z8m9Z9m:Z: d dl;m<Z<m=Z=m>Z> d dl?m@Z@ d dlAmBZB d dlCmDZD d dlEmFZFmGZG d dlHmIZI d dlJmKZK d dlLmMZM d dlNmOZOmPZPmQZQmRZR d dlSmTZT d dlUmVZV d dlWmXZX d dlYmZZZ d d l[m\Z\ d d!l]m^Z^ d d"l_m`Z` d d#lambZb d d$lcmdZdmeZemfZfmgZg d d%lhmiZimjZjmkZkmlZl d d&lmmnZn d d'lompZp d d(lqmrZrmsZsmtZtmuZumvZvmwZwmxZxmyZy d d)lzm{Z{m|Z| d d*l}m~Z~mZmZmZmZmZmZmZmZmZmZmZ d d+lmZmZmZmZmZ d d,lmZ d d-lmZmZ d d.lmZmZ d d/lmZmZmZ d d0lmZ  e:d1      \  ZZZZZ e7d2      Zd3 Zd4 Zd5 Zd6 Zd7 Zd8 Zd9 Zd: Zd; Zd< Zd= Zd> Zd? Zd@ ZdA ZdB ZdC ZdD ZdE ZdF ZdG ZdH ZdI ZdJ ZdK ZdL ZdM ZdN ZdO ZdP ZdQ ZdR ZdS ZdT ZdU ZdV ZdW ZdX ZdY ZdZ Zd[ Zd\ Zd] Zd^ Zd_ Zd` Zda Zdb Zdc Zdd Zde Zdf Zdg Zdh Zdi Zdj Zdk Zdl Zdm Zdn Zdo Zdp Zdq Zdr Zds Zdt Zdu Zdv Zdw Zdx Zdy Zdz Zd{ Zd| Zd} Zd~ Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d Zd Zd Zd Zd Zd Zy)    )MatAdd)
Quaternion)Q)AccumBounds)	Partition)Sum	summation)Add)DictTuple)UnevaluatedExprExpr)
DerivativeFunctionLambdaSubsWildFunction)Mul)Catalan
EulerGammaGoldenRatioTribonacciConstant)	EFloatIIntegerRationalnanoopizoo)_exp_is_pow)Pow)EqRelNe)S)DummySymbolWildsymbols)	factorial
factorial2subfactorial)Abs)exp)sqrt)cossin)	Heaviside)zeta)Integral)
EquivalentfalsetrueXor)Matrix)MatrixSymbol)Identity)MatrixSlice)SparseMatrix)factor)Limit)O)
Complement	FiniteSetIntervalSymmetricDifference)
CovarianceExpectationProbabilityVariance)RandomSymbol)import_module)TransferFunctionSeriesParallelFeedbackTransferFunctionMatrix
MIMOSeriesMIMOParallelMIMOFeedback)secondjoule)PolyrootofRootSumgroebnerringfieldZZQQZZ_IQQ_Ilexgrlex)PointCirclePolygonEllipseTriangle)	NDimArray)ArraySymbolArrayElement)raiseswarns_deprecated_sympy)sstrsstrrepr
StrPrinter)Trz	x,y,z,w,tdc                       G d dt               } t         | t                    dk(  sJ  G d dt               } t         | t                    dk(  sJ y )Nc                       e Zd Zd Zy)test_printmethod.<locals>.Rc                 D    d|j                  | j                  d         z  S )Nzfoo(%s)r   )_printargsselfprinters     P/var/www/html/venv/lib/python3.12/site-packages/sympy/printing/tests/test_str.py	_sympystrz%test_printmethod.<locals>.R._sympystr<   s    w~~diil;;;    N__name__
__module____qualname__r|    r}   r{   Rrt   ;   s    	<r}   r   zfoo(x)c                       e Zd Zd Zy)rt   c                      y)Nfoor   rx   s     r{   r|   z%test_printmethod.<locals>.R._sympystrA   s    r}   Nr~   r   r}   r{   r   ztest_printmethod.<locals>.R@   s    	r}   r   )r/   rm   x)r   s    r{   test_printmethodr   :   sJ    <C < !:!!!C  !:r}   c                      t        t        t                    dk(  sJ t        t        t        dd                  dk(  sJ t        t        t        dd                  dk(  sJ y )NzAbs(x)      1/6)strr/   r   r   r   r}   r{   test_Absr   F   sT    s1v;("""s8Aq>"#u,,,s8B?#$---r}   c                     t        t        t        z         dk(  sJ t        t        dz         dk(  sJ t        t        t        dz  z         dk(  sJ t        t        ddd            d	k(  sJ t        t        dddd            d
k(  sJ t        dt        z        dk(  sJ t        dt        z   t        z   t        t        z  z   t        dz  z   t        dz  z         dk(  sJ t        dt        z   t        dz  dz  z   t        dz  dz  z         dk(  sJ t        dt        z  dt        dz  z  z
  dz   dt        z  z         dk(  sJ t        t        t        z
        dk(  sJ t        dt        z
        dk(  sJ t        t        dz
        dk(  sJ t        t        t        z
  t        z
  t
        z
        dk(  sJ t        t        t        t        dz  z  t        z  t
        z  z
        dk(  sJ t        t        dt        z  t        z  t        z  z
        dk(  sJ t        t        t              j                  t        dd            dk(  sJ t        t        t        t
         t        d      t        t         t        d      d            dk(  sJ t        t        t        t         t         d      t         d            dk(  sJ t        t        t        t        t         t         d      t         d      t         d            dk(  sJ y )Nzx + yr   x + 1   zx**2 + xr   Fevaluatez0 + 1z	0 + 0 + 1      ?1.0*x   zx**2 + x*y + x + y**2 + y + 5   zx**3/3 + x**2/2 + x + 1   z-7*x**2 + 2*x + 3*y + 2zx - yz2 - xzx - 2z-w + x - y - zz-w*y**2*z**2 + xz-x*y**2 + x   z^x - x**3/6 + x**5/120 - x**7/5040 + x**9/362880 - x**11/39916800 + x**13/6227020800 + O(x**15)z(-w + x) + (-y + z)z-z + (-x - y)z-t + (-z + (-x - y)))	r   r   yr
   zwr3   seriestr   r}   r{   test_Addr   L   s   q1u:   q1u:   q1a4x=J&&&s1a%()W444s1aU+,;;;s1u:   q1uqy1Q3A%1,-1PPPPq1uq!tAv~1Q&'+DDDDqsQq!tV|a!A#%&*CCCCq1u:   q1u:   q1u:   q1uqy1}!1111q1QT6!8A:~"4444q1Q3q57{},,,s1v}}Q2&'  ,L  L  L  Ls3r1u-sA2qE/JV[\]avvvvs3rA2.UCDWWWs3sA2rE2QBG!V[\]awwwwr}   c                  ,    t        t              dk(  sJ y )Nr   )r   r   r   r}   r{   test_Catalanr   b   s    w<9$$$r}   c                  ,    t        t              dk(  sJ y )Nr!   )r   r!   r   r}   r{   test_ComplexInfinityr   f       s8ur}   c                      t        t        t        t                    dk(  sJ t        t        t        dz  t        d            dk(  sJ t        t        t        dz  t        z  t        t        d            dk(  sJ y )NzDerivative(x, y)r   Fr   zDerivative(x**2, x)zDerivative(x**2/y, x, y))r   r   r   r   r   r}   r{   test_Derivativer   j   ss    z!Q $6666z!Q$E237LLLLz	1Q1u& '*DE E Er}   c                      t        ddt        z   i      t        ddt        z   i      cxk(  rdk(  sJ  J t        t        dz  t        t        z  d      dv sJ t        t        dz  t        t        z  d      dk(  sJ y Nr   z
{1: x + 1}r   r   r   ){1: x**2, 2: x*y}z{2: x*y, 1: x**2}r   r   r   rm   r   r   r}   r{   	test_dictr   q   sv    1q5z?dAq1u:.>,>>>>>1a4AaC !%OOOOAqDQqS!"&9999r}   c                  4   t        t        ddt        z   i            t        ddt        z   i      cxk(  rdk(  sJ  J t        t        t        dz  t        t        z  d            dv sJ t        t        t        dz  t        t        z  d            dk(  sJ y r   )r   r   r   rm   r   r   r}   r{   	test_Dictr   w   s    tQAJ D!QU$4DDDDDDt11%&' ,2 2 2 2A!A#&'(,????r}   c                  b    t        t              dk(  sJ t        t        t        z         dk(  sJ y )N_dz_d + x)r   rq   r   r   r}   r{   
test_Dummyr   ~   s(    q6T>>q1u:!!!r}   c                  ,    t        t              dk(  sJ y )Nr   )r   r   r   r}   r{   test_EulerGammar      s    z?l***r}   c                      t        t              dk(  sJ t        d      5  t        t        t                    dk(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr   TzE**x)r   r   r"   r0   r   r   r}   r{   test_Expr      sE    q6S==	T	 %3q6{f$$$% % %s   AAc                     t        dd      } t        t        d            dk(  sJ t        t        d            dk(  sJ t        t        d            d	k(  sJ t        t        |             d
k(  sJ t        t        d| z              dk(  sJ t        t        t        |                   dk(  sJ t        t        t        |                   dk(  sJ t        t        t        |                   dk(  sJ t        t        t        |                   dk(  sJ t        t	        d            dk(  sJ t        t	        |             dk(  sJ t        t	        d| z              dk(  sJ y )NnTintegerr!   r   1r   5040zfactorial(n)r   zfactorial(2*n)zfactorial(factorial(n))zfactorial(factorial2(n))zfactorial2(factorial(n))zfactorial2(factorial2(n))r   2zsubfactorial(n)zsubfactorial(2*n))r)   r   r,   r-   r.   )r   s    r{   test_factorialr      sF   sD!Ay}&&&y|###y|&&&y|...y1~"2222y1&'+DDDDyA'(,FFFFz)A,'(,FFFFz*Q-()-HHHH|A3&&&|A#4444|AaC !%8888r}   c                      t        d      }  | t              }t        d      }t        |       dk(  sJ t        |      dk(  sJ t        |      dk(  sJ y )Nfr   zf(x)w_)r   r   r   r   )r   fxr   s      r{   test_Functionr      sP    A	
1BSAq6S==r7fq6T>>r}   c                     t        t        dd            dk(  sJ t        t        t        dd      d            dk(  sJ t        t        t        dd      dd            dk(  sJ t        t	        t        dd      t        d	d
      t        dd                  dk(  sJ t        t        t        dd      t        dd      t        dd      t        dd	                  dk(  sJ t        t	        t        dd      t        dd      t        dd            d      dk(  sJ t        t        t        dd      dd      d      dk(  sJ y )Nr   zPoint2D(0, 0)r   zCircle(Point2D(0, 0), 3)r   r      zEllipse(Point2D(1, 2), 3, 4)r      r   z6Triangle(Point2D(1, 1), Point2D(7, 8), Point2D(0, -1))r   r   r   zEPolygon(Point2D(5, 6), Point2D(-2, -3), Point2D(0, 0), Point2D(4, 7))Tsympy_integerszGTriangle(Point2D(S(0), S(0)), Point2D(S(1), S(0)), Point2D(S(0), S(1)))z(Ellipse(Point2D(S(1), S(2)), S(3), S(4)))rm   rc   rd   rf   rg   re   r   r}   r{   test_Geometryr      s=   a///uQ{A&'+EEEEaQ*+/MMMMq!eAqk5B<@A@A A AaU2r]E!QKq!MNOP P Pq!eAqk5A;?PTUQR R RaQ*4@23 3 3r}   c                  ,    t        t              dk(  sJ y )Nr   )r   r   r   r}   r{   test_GoldenRatior      s    {},,,r}   c                      t        t        t                    t        t        t        t        j                              cxk(  rdk(  sJ  J t        t        t        d            dk(  sJ y )NzHeaviside(x)r   zHeaviside(x, 1))r   r4   r   r'   Halfr   r}   r{   test_Heavisider      sN    y|Ia$8 9K^KKKKKyA#4444r}   c                  ,    t        t              dk(  sJ y )Nr   )r   r   r   r}   r{   test_TribonacciConstantr      s    !"&::::r}   c                  ,    t        t              dk(  sJ y )Nr   )r   r   r   r}   r{   test_ImaginaryUnitr      s    q6S==r}   c                  b    t        t              dk(  sJ t        t        t        z        dk(  sJ y )Nr   oo*I)r   r   r   r   r}   r{   test_Infinityr      s(    r7d??r!t9r}   c                      t        t        d            dk(  sJ t        t        d            dk(  sJ t        t        d            dk(  sJ t        t        d            dk(  sJ t        t        d	            d
k(  sJ y )Nr   -1r   r   r   z-3r   0   25)r   r   r   r}   r{   test_Integerr      ss    wr{t###wqz?c!!!wr{t###wqz?c!!!wr{t###r}   c                      t        t        t        t              t                    dk(  sJ t        t        t        t              t        ddf            dk(  sJ y )NzIntegral(sin(x), y)r   r   zIntegral(sin(x), (y, 0, 1)))r   r6   r3   r   r   r   r}   r{   test_Integralr      sF    xA"#'<<<<xAAq	*+/LLLLr}   c            
      *   t         j                  ddt         j                  f} t        t	        |             D ]Z  }t        |dz   t	        |             D ]=  }dD ]6  }dD ]/  }t        | |   | |   ||      }t        t        |            |k(  r/J  8 ? \ y )Nr   r   )TF)r'   NegativeInfinityInfinityrangelenrE   r   )r   ijlrivals         r{   test_Intervalr      s    	
		Q1::.A3q6] 0q1uc!f% 	0A" 0& 0A#AaD!A$15DSY<4///00	00r}   c                      t        dd      } t        t        d|             dk(  sJ t        t        dd            dk(  sJ y )NaTrealr   zAccumBounds(0, a)r   zAccumBounds(0, 1))r)   r   r   )r   s    r{   test_AccumBoundsr      sD    sA{1a !%8888{1a !%8888r}   c                  |   t        t        t        t        dz              dk(  sJ t        t        dd            dk(  sJ t        t        dt                    dk(  sJ t        t        t        t        ft        t        z               dk(  sJ t        t        t        t        fft        t        z               dk(  sJ y )	Nr   zLambda(_d, _d**2)r   r   zLambda((), 1)zLambda((), x)zLambda((x, y), x + y)zLambda(((x, y),), x + y))r   r   rq   r   r   r   r}   r{   test_Lambdar      s    vaA#6666vb!}000vb!}000vq!fac"#'>>>>v1vi1%&*DDDDr}   c                  0   t        t        t        t              t        z  t        t                    dk(  sJ t        t        dt        z  t        d            dk(  sJ t        t        t        t              t        z  t        t        d            dk(  sJ y )NzLimit(sin(x)/x, x, y, dir='+')r   r   zLimit(1/x, x, 0, dir='+')-)dirzLimit(sin(x)/x, x, y, dir='-'))r   rA   r3   r   r   r   r}   r{   
test_Limitr      s{    uSVAXq!$%)IIIIuQqS!Q $????c!fQh1#&(+KL L Lr}   c                     t        t        g      t        t        g      cxk(  rdk(  sJ  J t        t        dz  t        t        z  dz   g      t        t        dz  t        t        z  dz   g      cxk(  rdk(  sJ  J t        t        dz  t        t        z   gg      t        t        dz  t        t        z   gg      cxk(  rdk(  sJ  J y )Nz[x]r   r   z[x**2, x*y + 1]z[x**2, [x + y]]r   r   r}   r{   	test_listr      s    s8tQCy)E)))))1acAg4AqsQw#8M<MMMMMM1q1ug4AAw#8M<MMMMMMr}   c                     t        t        dz  dgt        t        t        z   gg      } t        |       dk(  sJ t	        |       dk(  sJ t        dgg      } t        |       t	        |       cxk(  rdk(  sJ  J t        ddgg      } t        |       t	        |       cxk(  rdk(  sJ  J t               } t        |       t	        |       cxk(  rdk(  sJ  J t        ddd	       } t        |       t	        |       cxk(  rd
k(  sJ  J y )Nr   Matrix([[x, 1], [y, x + y]])!Matrix([
[x,     1],
[y, x + y]])zMatrix([[1]])r   zMatrix([[1, 2]])zMatrix(0, 0, [])r   c                      y)Nr   r   )r   r   s     r{   <lambda>z!test_Matrix_str.<locals>.<lambda>  s    r}   zMatrix(0, 1, []))r;   r   r   r   rm   Ms    r{   test_Matrix_strr      s    B
QAJ'(Aq633337;;;;uAq6T!W//////AxAq6T!W3!333333Aq6T!W2 222222q!^$Aq6T!W2 222222r}   c                     t        t        t        z        dk(  sJ t        t        t        z        dk(  sJ t        t        t        z  t        z        dk(  sJ t        t        dz   t        dz   z        dk(  sJ t        dt        z  dz        dk(  sJ t        d	t        z  dz        d
k(  sJ t        dt        z        dk(  sJ t        dt        z        dk(  sJ t        t	        ddd            dk(  sJ t        t	        ddd            dk(  sJ t        t	        ddd            dk(  sJ t        t	        dddd            dk(  sJ t        t	        ddd            dk(  sJ t        t	        dt
        j                  d            dk(  sJ t        t	        ddt
        j                  d            dk(  sJ t        t	        ddddt        d            dk(  sJ t        t	        ddd            dk(  sJ t        t	        ddd            dk(  sJ t        t	        dddddt        t        d            dk(  sJ t        t	        ddddt        z   dt        t        d            dk(  sJ t        t	        t        dd      t        d d!      d            d"k(  sJ t        t	        d	t        t        t	        t        t        d      dd      d            d#k(  sJ t        t	        t        t        dt        z  dd      d            d$k(  sJ ddl	m
}   | d      5  t        t	        t        t        d      t        d            t        t        d      t	        t        d      t        d                              d%k(  sJ 	 d d d         G d& d't              } G d( d)t              } |       } |       }t        t        d      |z        d*k(  sJ t        |t        d      z        d*k(  sJ t        |t        d+      z        d,k(  sJ t        |t        d      z        d-k(  sJ t        |t        d      z  |z        d.k(  sJ t        |t        d      z  |z        d.k(  sJ y # 1 sw Y   xY w)/Nzx/yzy/xzx/(y*z)r   r   z(x + 1)/(y + 2)r   z2*x/3r   z-2*x/3      z-1.0*xr   r   r   Fr   z0*1z1*0z1*1z1*1*1z1*2z1*(1/2)z	1*1*(1/2)z	1*1*2*3*xr   z1*(-1)z-1*1r   z4*3*2*1*0*y*xz4*3*2*(z + 1)*0*y*xr   r   z(2/3)*(5/7)z
-2*x/(y*y)zx/(1/y)z(-1 - 1*1)/2c                       e Zd ZdZy)test_Mul.<locals>.CustomClass1TNr   r   r   is_commutativer   r}   r{   CustomClass1r  ,      r}   r  c                       e Zd ZdZy)test_Mul.<locals>.CustomClass2TNr  r   r}   r{   CustomClass2r	  /  r  r}   r
  z2*CustomClass1()z1.5z1.5*CustomClass1()z2*CustomClass2()z2*CustomClass1()*CustomClass2())r   r   r   r   r   r'   r   r   r#   sympy.core.parametersr   r   r
   r   r   )r   r  r
  cc1cc2s        r{   test_Mulr    s   qs8uqs8uqs1u:"""AA#4444qs1u:   r!tAv;("""tAv;("""s1u:   s1a%()U222s1a%()U222s1a%()U222s1aU+,777s1a%()U222s1affu-.);;;s1a%01[@@@s1aAq512kAAAs1b5)*h666s2q5)*f444s1aAq!Q78OKKKs1aAaCAq59:>SSSSs8Aq>8Aq>EBC}TTTs2q#c!Au5rEJ9>@ ADPQ Q Q s1c!A#rE2UCD	QQQ /	% x3s71:wr{3Sc'RT+W^_`WaFb5cdeiwwwwxt t 
.C
.Cx{3#5555s8A;#5555s5< $8888s8A;#5555s8A;s"#'HHHHs8A;s"#'HHHHx xs   $A&Q..Q7c                  ,    t        t              dk(  sJ y )Nr   )r   r   r   r}   r{   test_NaNr  ;  r   r}   c                  .    t        t               dk(  sJ y )Nz-oo)r   r   r   r}   r{   test_NegativeInfinityr  ?  s    s8ur}   c                     t        t        t                    dk(  sJ t        t        t        dz              dk(  sJ t        t        t        t        z              dk(  sJ t        t        t        t                    dk(  sJ t        t        t        t        df            dk(  sJ t        t        t        t        t        f            dk(  sJ t        t        t        t        t                    dk(  sJ t        t        t        t        t                    dk(  sJ t        t        t        t        t        ft        t        f            dk(  sJ y )	NzO(x)r   zO(x**2)zO(x*y, x, y)r   zO(x, (x, oo))z
O(x, x, y)zO(x, (x, oo), (y, oo)))r   rB   r   r   r   r   r}   r{   
test_Orderr  B  s    qt9qAw<9$$$q1v;.(((qAw<6!!!qQF|&&&qQG}000qAqz?l***qAqz?l***qQGaW%&*BBBBr}   c                  D   ddl m} m}  |       df |d      df |dd      df    |dd      d      d	d
      d      df   |dd      dd      dd      dffD ]  \  }}t        |      |k(  rJ   | g       df | g d      df | g d      df | g d      df | g d      df | g d      df | g dd      dffD ]  \  }}t        |d      |k(  rJ   | g       df | g d      df | g d      df | g d      df | g d      df | g d      d f | g dd      d!f | g d"d      d#ffD ]  \  }}t        |      |k(  rJ  t	               5  | j
                  }d| _        t         | g d            dk(  sJ || _        d d d        y # 1 sw Y   y xY w)$Nr   )PermutationCyclez()r   z(2)r   z(1 2)r   r   r   
   z(1 2)(6 7)(10)r   r   z(1 2)(4)zPermutation([]))sizezPermutation([0])zPermutation([0, 1])zPermutation([], size=10))r   r   r   zPermutation([1, 0, 2]))r   r   r   r   r   r   zPermutation([1, 0], size=6)zPermutation([1, 0], size=10)F)perm_cyclicz(0)z(1)z(9)z(2)(0 1)z(5)(0 1)z(9)(0 1))r   r   r   r   r   r   z(9)(2 3))sympy.combinatoricsr  r  rm   rl   print_cyclic)r  r  psold_print_cyclics        r{   test_Permutation_Cycler   N  sS   6 
		q		q!		q!Q1	b	!		q!Q	1a	 	 1 Aw!|| 
R		Ra	 		Ra	 		Rb	!"	$	Y	 	"	'	(%	'	'b	1&	( /1  A5)Q...!/& 
R		Ra	 		Ra	 		Rb	!		Y			'	(		'b	1		'b	1	 1$ Aw!||%* 
 	! 4&33#( K	*+/GGGG#3 	4 4 4s   3FFc                  ,    t        t              dk(  sJ y )Nr    )r   r    r   r}   r{   test_Pir"    s    r7d??r}   c                  T   t        t        dt                    dk(  sJ t        t        dt                    dk(  sJ t        t        t        t                    dk(  sJ t        t        dt        z  dz   t                    dk(  sJ t        t        dt        z  dz
  t                    dk(  sJ t        t        d	t                    d
k(  sJ t        t        t         t                    dk(  sJ t        t        dt        z  dz   t                    dk(  sJ t        t        dt        z  dz
  t                    dk(  sJ t        t        t        dz
  t                    dk(  sJ t        t        dt        z  t        dz  z   t                    dk(  sJ t        t        ddt        z  z  dt        z              dk(  sJ t        t        t        dz  t        z              dk(  sJ t        t        t        t        z   dz  t        t        z   d            dk(  sJ t        t        t        dz
  dz  t        dz
  d            dk(  sJ t        t        t        dz  dz   t        z   t                    dk(  sJ t        t        t        dz  dz
  t        z   t                    dk(  sJ t        t        t        dz  t        t        z  z   t                    dk(  sJ t        t        t        dz  t        t        z  z
  t                    dk(  sJ t        t        t         t        z  t
        z  t        t        z  z   dz
  t        t        t
                    dk(  sJ t        t        t         t        dz  z  t        dz  z  t
        z  dt        z   t
        dz  z  z   dt        z  t
        z  z
  dz   t        t        t
                    d k(  sJ t        t        t        dz  dz   t        d!            d"k(  sJ t        t        dt        dz  z  dt        z  z   d#z   t        d$!            d%k(  sJ y )&Nr   zPoly(0, x, domain='ZZ')r   zPoly(1, x, domain='ZZ')zPoly(x, x, domain='ZZ')r   zPoly(2*x + 1, x, domain='ZZ')zPoly(2*x - 1, x, domain='ZZ')r   zPoly(-1, x, domain='ZZ')zPoly(-x, x, domain='ZZ')r   zPoly(-2*x + 1, x, domain='ZZ')zPoly(-2*x - 1, x, domain='ZZ')zPoly(x - 1, x, domain='ZZ')r   z Poly(x**5 + 2*x, x, domain='ZZ')r   z"Poly((3**x)**2, 3**x, domain='ZZ')z)Poly(((x**2)**x), (x**2)**x, domain='ZZ')F)expandz$Poly((x + y)**3, x + y, domain='ZZ')z$Poly((x - 1)**2, x - 1, domain='ZZ')z%Poly(x**2 + y + 1, x, domain='ZZ[y]')z%Poly(x**2 + y - 1, x, domain='ZZ[y]')z"Poly(x**2 + I*x, x, domain='ZZ_I')z"Poly(x**2 - I*x, x, domain='ZZ_I')z,Poly(-x*y*z + x*y - 1, x, y, z, domain='ZZ')   r   zIPoly(-w*x**21*y**7*z - 2*x*z + (w + 1)*z**3 + 1, x, y, z, domain='ZZ[w]'))moduluszPoly(x**2 + 1, x, modulus=2)r      z%Poly(2*x**2 + 3*x + 4, x, modulus=17))r   rW   r   r   r   r   r   r   r}   r{   	test_Polyr(    s   tAqz?7777tAqz?7777tAqz?7777tAaC!GQ $CCCCtAaC!GQ $CCCCtB{9999tQB{9999tBqD1Ha !%EEEEtBqD1Ha !%EEEEtAE1~"????tAaC!Q$J"#'IIIItA!Had#$(LLLLtQTAI#NNNNtQUQJQ6 ;< < <tQUQJQ6 ;< < < QTAX\1"IJ J JQTAX\1"IJ J J tAqD1Q3J"#'KKKKtAqD1Q3J"#'KKKKtQBqDFQqSL1$aA. BC C CtQBq"uHQTM!Oq1uadl2QqSU:Q>1aHIST T T tAqD1Ha+,0NNNNtAadFQqSL1$a459````r}   c                      t        t        dt        t              d         dk(  sJ t        t        dt        t
              d         dk(  sJ t        t        dt        d   t              d         dk(  sJ y )	Nr   r   z+Polynomial ring in x over ZZ with lex orderx,yz0Polynomial ring in x, y over QQ with grlex orderx,y,zr   z4Polynomial ring in x, y, z over ZZ[t] with lex order)r   r[   r]   ra   r^   rb   r   r}   r{   test_PolyRingr,    sl    tCS!!$%)VVVVtE2u%a()-____tGRWc*1-.2hhhhr}   c                      t        t        dt        t              d         dk(  sJ t        t        dt        t
              d         dk(  sJ t        t        dt        d   t              d         dk(  sJ y )	Nr   r   z3Rational function field in x over ZZ with lex orderr*  z8Rational function field in x, y over QQ with grlex orderr+  r   z<Rational function field in x, y, z over ZZ[t] with lex order)r   r\   r]   ra   r^   rb   r   r}   r{   test_FracFieldr.    sl    uS"c"1%&*____uUB&q)*.hhhhuWbgs+A./3qqqqr}   c                     t        dt              \  } }}t        d|       \  }}}}t        dt              \  }}t        ||z
        dk(  sJ t        |dz
        dk(  sJ t        |dz         dk(  sJ t        |dz        d	k(  sJ t        |d
z        dk(  sJ t        |t	        dd      z        dk(  sJ t        |dz  d|z  |z  z   dz   |dz  z  |z  |z   dz         dk(  sJ t        |dz  d|z  |z  z   dz   |dz  z  |z  |dz   |z  z         dk(  sJ t        |dz  d|z  |z  z   dz   |dz  z  |z  |dz   |z  z   dz         dk(  sJ t        |dz   d|z  |z  z   dz
  |dz  z  |z  |dz   |z  z
  dz
        dk(  sJ t        |dz  |z   dz    |z  d|z  |z  z   dz         dk(  sJ t        |dz  |z   dz    |z  d|z  |z  z
  dz         dk(  sJ t        dt
        z   |z  dz         dk(  sJ y )Nu,vr+  r   r   r   x - 1r   r   x**2r   x**(-2)zx**(1/2)r   z!(u**2 + 3*u*v + 1)*x**2*y + u + 1z%(u**2 + 3*u*v + 1)*x**2*y + (u + 1)*xz)(u**2 + 3*u*v + 1)*x**2*y + (u + 1)*x + 1z*-(u**2 - 3*u*v + 1)*x**2*y - (u + 1)*x - 1z-(v**2 + v + 1)*x + 3*u*v + 1z-(v**2 + v + 1)*x - 3*u*v + 1z(1 + 1*I)*x + (2 + 0*I))r[   r]   r_   r   r^   r   )	RuvuvRxyzr   r   r   Rx_zzixzs	            r{   test_PolyElementr:    sl   E2HC1w$KD!Aac4JFBq1u:q1u:   q1u:   q!t9q2w<9$$$q"Q({z)))1qs1uq !Q$&q(1,q015XXXX1qs1uq !Q$&q(AE19459````1qs1uq !Q$&q(AE194q89=hhhhA!A!1a4')QUAI59:>jjjjAAq 1Q3q5(1,-1PPPPAAq 1Q3q5(1,-1PPPP!Rx!| 9999r}   c                     t        dt              \  } }}t        d|       \  }}}}}t        dt              \  }}	t        dd      }
t        ||z
        dk(  sJ t        |dz
        dk(  sJ t        |dz         dk(  sJ t        |d	z        d
k(  sJ t        ||z        dk(  sJ t        ||z  |z        dk(  sJ t        |||z  z        dk(  sJ t        ||z  ||z  z        dk(  sJ t        |dz
  |z        dk(  sJ t        |dz   |z        dk(  sJ t        | dz
  |z        dk(  sJ t        |dz   ||z  z        dk(  sJ t        | |dz   z        dk(  sJ t        ||z  |dz   z        dk(  sJ t        |dz   |z  |z  dz   |dz
  |z  dz
  z        dk(  sJ t        |dz   |z  |z  dz   |dz
  |z  ||z  |z  z
  dz
  z        dk(  sJ t        d|
z   |	z        dk(  sJ t        d|
z   |	z  |
z
  |	z        dk(  sJ y )Nr0  zx,y,z,tr   r   r   r   r1  r   r   zx/3zx/zzx*y/zzx/(z*t)z	x*y/(z*t)z	(x - 1)/yz	(x + 1)/yz
(-x - 1)/yz(x + 1)/(y*z)z
-y/(x + 1)zy*z/(x + 1)z!((u + 1)*x*y + 1)/((v - 1)*z - 1)z)((u + 1)*x*y + 1)/((v - 1)*z - u*v*t - 1)z(1 + 1*I)/xz((1 + 1*I)*x + (0 + -1*I))/x)r\   r]   r`   r   )Fuvr5  r6  Fxyztr   r   r   r   r8  r9  r   s              r{   test_FracElementr>    sf   UBHC19c*NE1QqsD!JFBQ
Aq1u:q1u:   q1u:   qs8uqs8uqs1u:   q!A#w<9$$$qsAaCy>[(((Aqy>[(((Aqy>[(((Qz?l***A!}000r1q5z?l***qsAE{},,,Q	!a1q5!)a-015XXXXQ	!a1q5!)ac!e"3a"789=hhhh!Rx=M)))1b1b !%CCCCr}   c                     t        t        dd            dk(  sJ t        t        dd            dk(  sJ t        t        dd            dk(  sJ t        t        dd            dk(  sJ t        t        dd            d	k(  sJ t        t        dd
            dk(  sJ t        t        dd            dk(  sJ t        t        dd            dk(  sJ t        t        dd
            dk(  sJ y )Nr   r   r   r   r   r   z-Ir   z2*Ir   z-2*Iz1 + Iz-1 - Iz-1 - 2*I)r   r_   r   r}   r{   test_GaussianIntegerr@    s    tAqz?c!!!tB{t###tAqz?c!!!tAr{t###tAqz?e###tAr{v%%%tAqz?g%%%tB|(((tB|
***r}   c            	      $   t        t        dd            dk(  sJ t        t        t        dd      d            dk(  sJ t        t        dt        dd                  dk(  sJ t        t        t        dd      t        dd                  d	k(  sJ y )
Nr   r   r   r   r   z2/3z2*I/3r   z1/2 - 2*I/3)r   r`   r^   r   r}   r{   test_GaussianRationalrB  
  s    tAqz?c!!!tBq!Ha !U***tAr!Qx !W,,,tBq!HbQi()]:::r}   c                     t        t        dz        dk(  sJ t        t        dz        dk(  sJ t        t        dz        dk(  sJ t        t        t        z   dz        dk(  sJ t        t        t        z   dz        dk(  sJ t        t        t        z   dz        d	k(  sJ t        t        t        z   d
t        z   z        dk(  sJ t        t        t        d
d      z        dk(  sJ t        d
t        t        d
d      z  z        dk(  sJ t        t	        t	        t                          dk(  sJ t        t        dz        dk(  sJ t        t        t        d      dd            dk(  sJ y )Nr   z1/xr   r3  r   r2  z	1/(x + y)z(x + y)**(-2)z
(x + y)**2r   z(x + y)**(x + 1)r   zx**(1/3)z	x**(-1/3)zx**(1/4)r  z	x**(-1.0)Fr   z	2**(-1.0))r   r   r   r   r1   r#   r'   r   r}   r{   test_PowrD    sG   q"u:q"u:"""q!t9A{{***A{...Az?l***AQ $6666q(1a. !Z///qHQN""#{222tDG}+++q$w<;&&&s1Q4./;>>>r}   c                     t        t        t                    dk(  sJ t        t        t        dz              dk(  sJ t        dt        t              z        dk(  sJ t        dt        t        dz        z        dk(  sJ t        t        t        t              z        dk(  sJ t        t        dz        d	k(  sJ t        dt        dz  z        d
k(  sJ y )Nzsqrt(x)r   z
sqrt(x**2)r   z	1/sqrt(x)z1/sqrt(x**2)z	y/sqrt(x)g      ?zx**0.5z	x**(-0.5))r   r1   r   r   r   r}   r{   	test_sqrtrF  "  s    tAw<9$$$tAqDz?l***qay>[(((qad|...qay>[(((q#v;("""qCx=K'''r}   c            
         t        dd      } t        dd      }t        dd      }t        dd      }t        d      }t        d      }t        d      }t        | |z        dk(  sJ t        | |z        dk(  sJ t        |      d	k(  sJ t        | |z        d
k(  sJ t        | |z         dk(  sJ t        | |z         dk(  sJ t        | |z         dk(  sJ t        ||z        dk(  sJ t        ||z         dk(  sJ t        ||z         dk(  sJ t        ||z        dk(  sJ t        ||z         dk(  sJ t        | |z        dk(  sJ t        ||z        dk(  sJ t        ||z        dk(  sJ t        ||z        dk(  sJ t        t        d            dk(  sJ t        t        d            dk(  sJ t        t        d            dk(  sJ t        t        d            dk(  sJ t        t        d            dk(  sJ t        t        dd            dk(  sJ t        t        dd            d k(  sJ t        t        d!d            d"k(  sJ t        t        d#d            d$k(  sJ t        t        d%d            d&k(  sJ t        t        t        dd                  d	k(  sJ t        t        t        dd'                  d(k(  sJ t        d)d*z  t        dd*      z        d+k(  sJ t        d)d*z  dz   t        dd*      z        d+k7  sJ t        d)d*z  dz
  t        dd*      z        d+k7  sJ t        d)d*z  dz
  t        dd*      z        d,k7  sJ t        t        t        d-d'            dz        d.k(  sJ t        dt        t        d-d'            dz  z        d/k(  sJ t        t        d            t        dt        z        k(  sJ t        dt        dd0      z        d1k(  sJ t        t        dd      d23      d4k(  sJ t        d5      }t        |t        dd      z  d23      d6k(  sJ t        t        |t        dd            d23      d7k(  sJ t        t        ||t        d8d            d23      d9k(  sJ y ):Nr   r   r   r   r   r   z1/12z1/2z1/8z3/4z7/12z-1/4z1/4z-1/6z-1/2r   z1/64z1/2727z-25z1.25z5/4z-2.6e-2z-13/500z25/7z-123/569z0.1[23])rationalz61/495z5.1[666]z31/6z	-5.1[666]z-31/6z0.[9]r   z-0.[9]r   $   r   {   r   123122Q   z27/8z8/27l    d(	 z2**(1/10000000000)Tr   zS(2)/3r   zx**(S(2)/3)zEq(x, S(2)/3)r   zLimit(x, x, S(7)/2, dir='+'))	r   r   r'   r1   r   rm   r)   r$   rA   )n1n2n3n4n5n7n8r   s           r{   test_RationalrW  ,  s   	!QB	!QB	!QB	!RB	!B	!B	"Br"u:r"u:r7er"u:rBw<5   rBw<6!!!rBw<6!!!r"u:rBw<6!!!rBw<6!!!r"u:rBw<3r2v;&   r2v;&   r2v;$r2v;&   x5(((x E)))x	"#y000qy>V###q}+++qQ'(H444qa()V333qq)*g555q1%&#---qA&'4///tHQN#$---tHQO$%...RHQO+,555R!hq"o-.%777R!hq"o-.%777R!hq"o-.%777tHR$%q()V333qhr2&'**+v555tBx=C!H$$$q(1f%%&*>>>>At4@@@sA8Aq>!$7=HHH1hq!n%d;NNNaHQN+DA&' ' 'r}   c                  "   t        t        dd            dk(  sJ t        t        dd            dk(  sJ t        t        dd            dk(  sJ t        t        j                  d            dk(  sJ t        t        j                  d	            d
k(  sJ t        t        j                  d            dk(  sJ t        t        j                  d            dk(  sJ t        t        dz  t        dz  j	                  d      z
  j                  d            dk(  sJ t        t        d      ddd      dk(  sJ t        t        d      ddd      dk(  sJ t        t        d      ddd      dk(  sJ t        t        d      dd      dk(  sJ y )Nz1.23r   )dpsz
1.23456789	   z1.234567890123456789   z3.14r   z3.14159265358979A   zB3.1415926535897932384626433832795028841971693993751058209749445923r   z0.0i  r   r   z-0.e+88100Fr   )	full_precminmaxz1.0e+2z100.0z0.1z0.099)r_  r`  z9.90000000000000e-2)r   r   r    evalfroundr   rm   r   r}   r{   
test_Floatrc  e  s   uV'(F222u\u-.,>>>$&136LM M Mrxx6)))rxx $6666rxx  &J K K Krxx|%%%C2s7//!,,//23y@@@e21=IIIe21=HHHe21=FFFgBA.2GGGGr}   c                     t        t        t        t        d            dk(  sJ t        t        t        t        z   t        d            dk(  sJ t        t        t        t        d            dk(  sJ t        t	        t        d      t	        t        d      z        d	k(  sJ t        t        t        d      t        t        d      z        d
k(  sJ y )N<zx < yz==zEq(x + y, y)z!=zNe(x, y)r   r   zEq(x, 1) | Eq(x, 2)zNe(x, 1) & Ne(x, 2))r   r%   r   r   r$   r&   r   r}   r{   test_Relationalrf  w  s    s1a~')))s1q5!T"#~555s1a:---r!Qx"Q("#'<<<<r!Qx"Q("#'<<<<r}   c                      t        t        j                  t        t                    dk(  sJ t        t        j
                  t        t                    dk(  sJ y )Nz
Q.eq(x, y)z
Q.ne(x, y))r   r   eqr   r   ner   r}   r{   test_AppliedBinaryRelationrj    s:    qttAqz?l***qttAqz?l***r}   c                  `    t        t        t        dz  dt        z  z   dz
  d            dk(  sJ y )Nr   r   r   r   zCRootOf(x**5 + 2*x - 1, 0))r   rX   r   r   r}   r{   test_CRootOfrl    s-    vadQqSj1na()-IIIIr}   c            
          t         dz  dt         z  z   dz
  } t        t        | t        t        t              d            dk(  sJ t        t        | t        t        t        dz        d            dk(  sJ y )Nr   r   r   F)autozRootSum(x**5 + 2*x - 1)z(RootSum(x**5 + 2*x - 1, Lambda(z, z**2)))r   r   rY   r   r   )r   s    r{   test_RootSumro    s    	1qs
QA6!Q<e,.1JK K Kwq&	1a4 "LM M Mr}   c                  *   t        t        g t        t                    dk(  sJ t        dz  dt        z  z
  t        z
  dz   t        dz  dt        z  z
  t        z   dz
  g} t        t        | d            dk(  sJ t        t        | d            d	k(  sJ y )
Nz1GroebnerBasis([], x, y, domain='ZZ', order='lex')r   r   r   rb   )orderzYGroebnerBasis([x**2 - x - 3*y + 1, y**2 - 2*x + y - 1], x, y, domain='ZZ', order='grlex')ra   zfGroebnerBasis([2*x - y**2 - y + 1, y**4 + 2*y**3 - 3*y**2 - 16*y + 7], x, y, domain='ZZ', order='lex'))r   rZ   r   r   )Fs    r{   test_GroebnerBasisrs    s    x
Aq IJ J J 
A!a!	QTAaCZ!^a/0Ax)*cd d dx'(pq q qr}   c            
         t        t                     dk(  sJ t        t                     dk(  sJ t        dh      dk(  sJ t        t        dg            dk(  sJ t        h d      dk(  sJ t        t        g d            d	k(  sJ t        dt        t        d
z  t        dz  t        dz  h      dk(  sJ t        t        dt        t        d
z  t        dz  t        dz  g            dk(  sJ y )Nzset()zfrozenset()r   z{1}zfrozenset({1})>   r   r   r   z	{1, 2, 3})r   r   r   zfrozenset({1, 2, 3})r   r   r   z{1, x, x**2, x**3, x**4}z#frozenset({1, x, x**2, x**3, x**4}))rm   set	frozensetr   r   r}   r{   test_setrw    s    ;'!!!	---9	1##3333	?k)))	)$%)????	
Aq!tQT1a4 "%?@ @ @1aAq!tQT*+-0UV V Vr}   c                      t        t        dz  dgt        t        t        z   gg      } t        |       dk(  sJ t	        |       dk(  sJ y )Nr   r   r   )r?   r   r   r   rm   r   s    r{   test_SparseMatrixry    sG    q"uaj1a!e*-.Aq633337;;;;r}   c            	          t        t        t        dt        z        t        t        t
        f            dk(  sJ t        t        t        t
        dz  z  t        ddft
        ddf            dk(  sJ y )Nr   zSum(cos(3*z), (z, x, y))r   r   r   z#Sum(x*y**2, (x, -2, 2), (y, -5, 5)))r   r	   r2   r   r   r   r   r   r}   r{   test_Sumr|    sb    yQqSAq!9-.2LLLLs1QT6Ar1:2qz23-. . .r}   c                      t        t              dk(  sJ t        t              dk(  sJ t        } t        |       dk(  sJ y )Nr   r   )r   r   r   es    r{   test_Symbolr    s7    q6S==q6S==	Aq6S==r}   c                     t        t        f      t        t        f      cxk(  rdk(  sJ  J t        t        t        z   dt        z   f      t        t        t        z   dt        z   f      cxk(  rdk(  sJ  J t        t        t        z   dt        z   t        dz  ff      t        t        t        z   dt        z   t        dz  ff      cxk(  rdk(  sJ  J y )Nz(x,)r   z(x + y, x + 1)r   z(x + y, (x + 1, x**2))r   r   r}   r{   
test_tupler    s    t9aT
,f,,,,,Aq1u~$Aq1u~"6J:JJJJJJA	Aq!t  AAq!t}56S:RS S S S Sr}   c                     t        t        t        dz  z  t        z
  t        dz  t        dz  z
  t              } t        t        t        z
  t        t        z   t              }t        t        t        dz  z  t        t
        z  t        z  z
  t
        z   t        t        z
  t              }t        t        | |            dk(  sJ t        t        | ||            dk(  sJ t        t        | |             dk(  sJ y )Nr   r   zXSeries(TransferFunction(x*y**2 - z, -t**3 + y**3, y), TransferFunction(x - y, x + y, y))zSeries(TransferFunction(x*y**2 - z, -t**3 + y**3, y), TransferFunction(x - y, x + y, y), TransferFunction(t*x**2 - t**w*x + w, t - y, y))zYSeries(TransferFunction(-x + y, x + y, y), TransferFunction(x*y**2 - z, -t**3 + y**3, y)))rM   r   r   r   r   r   r   rN   tf1tf2tf3s      r{   test_Series_strr    s    
1QT6A:q!tad{A
6C
1q5!a%
+C
1QT6AqDF?Q.Aq
9Cvc3 bc c cvc3$% 	TT T TvsdC !cd d dr}   c                  8   t        t        t        dz  z  t        z
  t        dz  t        dz  z
  t              } t        t        t        z
  t        t        z   t              }t        | |g|| gg      }t        || g| |gg      }t        t        ||            dk(  sJ y )Nr   r   a  MIMOSeries(TransferFunctionMatrix(((TransferFunction(x*y**2 - z, -t**3 + y**3, y), TransferFunction(x - y, x + y, y)), (TransferFunction(x - y, x + y, y), TransferFunction(x*y**2 - z, -t**3 + y**3, y)))), TransferFunctionMatrix(((TransferFunction(x - y, x + y, y), TransferFunction(x*y**2 - z, -t**3 + y**3, y)), (TransferFunction(x*y**2 - z, -t**3 + y**3, y), TransferFunction(x - y, x + y, y))))))rM   r   r   r   r   rQ   r   rR   r  r  tfm_1tfm_2s       r{   test_MIMOSeries_strr    s    
1QT6A:q!tad{A
6C
1q5!a%
+C"S#Jc
#;<E"S#Jc
#;<Ez%'(	ll l lr}   c                  2   t        t        dz
  t        dz   t              } t        |       dk(  sJ t        t        dz   dt        z
  t              }t        |      dk(  sJ t        t        t        dz  dt        z  z   dz   t              }t        |      dk(  sJ y )Nr   z!TransferFunction(x - 1, x + 1, x)r   z!TransferFunction(x + 1, 2 - y, x)r   z&TransferFunction(y, y**2 + 2*y + 3, y))rM   r   r   r   r  s      r{   test_TransferFunction_strr    s    
1q5!a%
+Cs8::::
1q5!a%
+Cs8::::
1adQqSj1na
0Cs8????r}   c                     t        t        t        dz  z  t        z
  t        dz  t        dz  z
  t              } t        t        t        z
  t        t        z   t              }t        t        t        dz  z  t        t
        z  t        z  z
  t
        z   t        t        z
  t              }t        t        | |            dk(  sJ t        t        | ||            dk(  sJ t        t        | |             dk(  sJ y )Nr   r   zZParallel(TransferFunction(x*y**2 - z, -t**3 + y**3, y), TransferFunction(x - y, x + y, y))zParallel(TransferFunction(x*y**2 - z, -t**3 + y**3, y), TransferFunction(x - y, x + y, y), TransferFunction(t*x**2 - t**w*x + w, t - y, y))z[Parallel(TransferFunction(-x + y, x + y, y), TransferFunction(x*y**2 - z, -t**3 + y**3, y)))rM   r   r   r   r   r   r   rO   r  s      r{   test_Parallel_strr    s    
1QT6A:q!tad{A
6C
1q5!a%
+C
1QT6AqDF?Q.Aq
9CxS!"de e exS#&' 	VV V Vxc"#ef f fr}   c                  8   t        t        t        dz  z  t        z
  t        dz  t        dz  z
  t              } t        t        t        z
  t        t        z   t              }t        | |g|| gg      }t        || g| |gg      }t        t        ||            dk(  sJ y )Nr   r   a  MIMOParallel(TransferFunctionMatrix(((TransferFunction(x*y**2 - z, -t**3 + y**3, y), TransferFunction(x - y, x + y, y)), (TransferFunction(x - y, x + y, y), TransferFunction(x*y**2 - z, -t**3 + y**3, y)))), TransferFunctionMatrix(((TransferFunction(x - y, x + y, y), TransferFunction(x*y**2 - z, -t**3 + y**3, y)), (TransferFunction(x*y**2 - z, -t**3 + y**3, y), TransferFunction(x - y, x + y, y))))))rM   r   r   r   r   rQ   r   rS   r  s       r{   test_MIMOParallel_strr    s    
1QT6A:q!tad{A
6C
1q5!a%
+C"S#Jc
#;<E"S#Jc
#;<E|E5)*	ll l lr}   c            
         t        t        t        dz  z  t        z
  t        dz  t        dz  z
  t              } t        t        t        z
  t        t        z   t              }t        t        t        dz  z  t        t
        z  t        z  z
  t
        z   t        t        z
  t              }t        t        | |z  |            dk(  sJ t        t        | t        ddt              d            dk(  sJ y )Nr   r   zFeedback(Series(TransferFunction(x*y**2 - z, -t**3 + y**3, y), TransferFunction(x - y, x + y, y)), TransferFunction(t*x**2 - t**w*x + w, t - y, y), -1)r   zUFeedback(TransferFunction(x*y**2 - z, -t**3 + y**3, y), TransferFunction(1, 1, y), 1))rM   r   r   r   r   r   r   rP   r  s      r{   test_Feedback_strr    s    
1QT6A:q!tad{A
6C
1q5!a%
+C
1QT6AqDF?Q.Aq
9CxC%&	?? ? ? x-aA6:;_` ` `r}   c                  Z   t        t        dz  t        dz  z
  t        t        z
  t              } t        t        t        z
  t        t        z   t              }t	        || g| |gg      }t	        | |g|| gg      }t        t        ||            dk(  sJ t        t        ||d            dk(  sJ y )Nr   r   a  MIMOFeedback(TransferFunctionMatrix(((TransferFunction(-x + y, y + z, x), TransferFunction(x**2 - y**3, y - z, x)), (TransferFunction(x**2 - y**3, y - z, x), TransferFunction(-x + y, y + z, x)))), TransferFunctionMatrix(((TransferFunction(x**2 - y**3, y - z, x), TransferFunction(-x + y, y + z, x)), (TransferFunction(-x + y, y + z, x), TransferFunction(x**2 - y**3, y - z, x)))), -1)r   a  MIMOFeedback(TransferFunctionMatrix(((TransferFunction(-x + y, y + z, x), TransferFunction(x**2 - y**3, y - z, x)), (TransferFunction(x**2 - y**3, y - z, x), TransferFunction(-x + y, y + z, x)))), TransferFunctionMatrix(((TransferFunction(x**2 - y**3, y - z, x), TransferFunction(-x + y, y + z, x)), (TransferFunction(-x + y, y + z, x), TransferFunction(x**2 - y**3, y - z, x)))), 1))rM   r   r   r   rQ   r   rT   r  s       r{   test_MIMOFeedback_strr  	  s    
1a4!Q$;Aq
1C
1q5!a%
+C"S#Jc
#;<E"S#Jc
#;<EUE*+HH I H
 UE1-.bb c br}   c                     t        t        t        dz  z  t        z
  t        dz  t        dz  z
  t              } t        t        t        z
  t        t        z   t              }t        t        t        dz  z  t        t
        z  t        z  z
  t
        z   t        t        z
  t              }t        t        | g|gg            dk(  sJ t        t        | |g||gg            dk(  sJ y )Nr   r   zpTransferFunctionMatrix(((TransferFunction(x*y**2 - z, -t**3 + y**3, y),), (TransferFunction(x - y, x + y, y),)))zTransferFunctionMatrix(((TransferFunction(x*y**2 - z, -t**3 + y**3, y), TransferFunction(x - y, x + y, y)), (TransferFunction(t*x**2 - t**w*x + w, t - y, y), TransferFunction(x - y, x + y, y)))))rM   r   r   r   r   r   r   rQ   r  s      r{   test_TransferFunctionMatrix_strr    s    
1QT6A:q!tad{A
6C
1q5!a%
+C
1QT6AqDF?Q.Aq
9C%usen56z{ { {%SzC:&>?@ 	MM M Mr}   c                  4   t        t        t        t        t              } t        |       dk(  sJ t        t        t        t        t        t        z        } t        |       dk(  sJ t        t        t        t        t        t        z         } t        |       dk(  sJ y )Nzx + y*i + z*j + t*kzx + y*i + z*j + t*x*kzx + y*i + z*j + (t + x)*k)r   r   r   r   r   r   )qs    r{   test_Quaternion_str_printerr  $  ss    1aAAq6****1Qq1Aq6,,,,1Qq1Aq60000r}   c                      t        t        d      dk(  sJ t        t        d      dk(  sJ t        t              dk(  sJ t        t              dk(  sJ y )NT)abbrevr  JrU   rV   )rm   rU   rV   r   r   r}   r{   test_Quantity_strr  -  sP    t$+++d#s***v;("""u:   r}   c                  .   t        d      } t        | dz         dk(  sJ t        t        d| z        dz         dk(  sJ t        d| z  dz         dk(  sJ t        d| z  dz         d	k(  sJ t        | dz  dz         d
k(  sJ t        dd| z
  z        dk(  sJ y )Nr   r   zx_ + 1r   r   zexp(2**x_) + 5r   z3*x_ + 1z1 + 1/x_z	x_**2 + 1z
1/(1 - x_))r*   r   r0   )r   s    r{   test_wild_strr  4  s    S	Aq1u:!!!s1a4y1}!1111qsQw<:%%%qsQw<:%%%q!tax=K'''q!a%y>\)))r}   c                  X   ddl m} m}m} t	        d      }|y  | d      } |d      } |d      }t        |      dk(  sJ t        |      dk(  sJ t        |      dk(  sJ t        ||z  d|z  z         dk(  sJ t        t        |      t        |      z  t        |      z        d	k(  sJ y )
Nr   )WildDotWildPlusWildStarmatchpyr   w__w___r   z2**w_ + w__/w___zsqrt(w___)*sin(w_)*cos(w__))	!sympy.utilities.matchpy_connectorr  r  r  rL   r   r3   r2   r1   )r  r  r  r  wdwpwss          r{   test_wild_matchpyr  ?  s    MMI&G	B	%B	&	Br7d??r7er7fr"uq"u}!3333s2ws2wtBx'(,IIIIr}   c                  6    t        t        d            dk(  sJ y )Nr   zzeta(3))r   r5   r   r}   r{   	test_zetar  S  s    tAw<9$$$r}   c                  X    t         t        z
  } t        |       }t        |       }||k(  sJ y N)r   r   r   )r  r   bs      r{   test_issue_3101r  W  s(    	AAAAAA6M6r}   c                      dt        t              z  t        t        t              z  dz  z
  } t        |       dvsJ t        |       dk(  sJ y )Nr   r   )z(-2)*x**1/2(-1/2)*x**(-1/2)*yz-2*x**1/2(-1/2)*x**(-1/2)*yz-2*x**1/2-1/2*x**-1/2*wz-2*sqrt(x) - y/(2*sqrt(x)))r1   r   r   r   r~  s    r{   test_issue_3103r  ^  sR    
47
QtAwYq[ Aq6 F F F Fq61111r}   c                  R    t        t        t              dz   } t        |       dk(  sJ y )Nr   zIntegral(x, x) + 1)r6   r   r   r~  s    r{   test_issue_4021r  e  s%    AAq6))))r}   c                      t        d      dk(  sJ t        d      dk(  sJ dddt        g} t        |       dk(  sJ t        |       dk(  sJ y )Nabcz'abc'r   r  cz[a, b, c, x]z['a', 'b', 'c', x])rm   rn   r   r~  s    r{   test_sstrreprr  j  sY    ;%E?g%%%	c3A7n$$$A;....r}   c                  :    t        t        t        z        dk(  sJ y )Nr   )rm   r   r   r   r}   r{   test_infinityr  s  s    1:r}   c                  l   t        t        d      d      dk(  sJ t        t        d      d      dk(  sJ t        t        d      d      dk(  sJ t        t        d      t        z  d      dv sJ t        t        d      t        z  d      dv sJ t        t        d      t        z  d      dv sJ y )	Nz0.3Tr^  z0.300000000000000rn  F)z0.300000000000000*xzx*0.300000000000000)z0.3*xzx*0.3)rm   r'   r   r   r}   r{   test_full_precr  w  s    %D)-@@@@%F+/BBBB%E*e333%
d+ 0    %
f- 2    %
e, 1   r}   c                  &   t        dd      \  } }}t        | |z  |dz  z        dk(  sJ t        |dz  | z  |z        dk(  sJ t        | |dz  z  |z        dk(  sJ t        t        |             dk(  sJ t        d	t        |       z        d
k(  sJ y )NzA,B,CFcommutativer   zA*B*C**(-1)zC**(-1)*A*BzA*C**(-1)*Bzsqrt(A)r   z	A**(-1/2))r+   rm   r1   )ABCs      r{   test_noncommutativer    s    g51GAq!!ArE	?m+++2a	?m+++!R%	?m+++Q=I%%%$q'	?k)))r}   c                      t               } | j                  d      dk(  sJ | j                  t        t        z        dk(  sJ | j                  d      dk(  sJ y )Nr   zx*y    32)ro   emptyPrinterr   r   )str_printers    r{   test_empty_printerr    sX    ,K##E*e333##AaC(E111##B'4///r}   c                  &    t        t        d        y )Nc                  .    t        t        d      d      S )Nr   garbage)method)rm   r'   r   r}   r{   r   ztest_settings.<locals>.<lambda>  s    d1Q4	: r}   )rk   	TypeErrorr   r}   r{   test_settingsr    s    
9:;r}   c                  "   ddl m} m}m}m}m}  | ddd      }t         ||dkD              dk(  sJ  |dd      }t         ||dkD              d	k(  sJ  |d
d      } |dd      }t         |t        ||            j                        dk(  sJ y )Nr   )NormalDieExponentialpspacewherex1r   zDomain: (0 < x1) & (x1 < oo)d1r   r   zDomain: Eq(d1, 5) | Eq(d1, 6)r   r  z1Domain: (0 <= a) & (0 <= b) & (a < oo) & (b < oo))	sympy.statsr  r  r  r  r  r   r   domain)	r  r  r  r  r  XDr  r  s	            r{   test_RandomDomainr    s    CCtQAuQU| >>>>D!AuQU| ????CACAveAqk"))*.aaaar}   c            
      j   t        t        t        dd             dk(  sJ t        t        t        dd             dk(  sJ t        t        t        t        z  t        dz  g       dk(  sJ t        t        t        t        t        t              d      t        t        t              d            d	k(  sJ y )
Nr   3   z{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50}r   z{1, 2, 3, 4, 5}r   z{x**2, x*y}r   z*FiniteSet(5, FiniteSet(5, {x, y}), {x, y}))r   rD   r   r   r   r   r}   r{   test_FiniteSetr    s    y%2,'(	K  
 y%1+&'+<<<<y1Q31+&'=888y9Q?A6	!AJ @A A Ar}   c                  f    t        t        t        t        t              t
        h            dk(  sJ y )NzPartition({z}, {x, y}))r   r   rD   r   r   r   r   r}   r{   test_Partitionr    s%    y1a1#./3KKKKr}   c                  @    t        t        j                        dk(  sJ y )NUniversalSet)r   r'   r  r   r}   r{   test_UniversalSetr    s    q~~.000r}   c                  z   t        j                  t        t              } t         t        t        f   }t	        | j                  t        t        t        z   z              t	        t        t        t        z   z        k(  sJ t	        |j                  t        t        z               t	        t        t        z         k(  sJ y r  )r^   
frac_fieldr   r   rm   convert)rr  r   s     r{   test_PrettyPolyr    sw    
aA
1a4A		!QU)$%aQi888		!a% !T!a%[000r}   c                      ddl m} m}m}m}  | d      } | d      } |||d      } ||      } |d      }t        |      dk(  sJ t        |      dk(  sJ t        |      d	k(  sJ t        |      d
k(  sJ y )Nr   )ObjectNamedMorphismIdentityMorphismCategoryr  r  r   KzObject("A")z,NamedMorphism(Object("A"), Object("B"), "f")zIdentityMorphism(Object("A"))zCategory("K"))sympy.categoriesr  r  r  r  r   )	r  r  r  r  r  r  r   id_Ar  s	            r{   test_categoriesr    s    $ $ 	sAsAaC AADAq6]"""q6CCCCt97777q6_$$$r}   c                  `    t        dd      \  } }t        | |z        }t        |      dk(  sJ y )NzA BFr  zTr(A*B))r+   rp   r   )r  r  r   s      r{   test_Trr    s1    5e,DAq
1Q3Aq6Yr}   c                  J    t        t        dt        z  dz               dk(  sJ y )Ng      r   z-3.0*(1.0*z - 1.0))r   r@   r   r   r}   r{   test_issue_6387r    s#    vd1fqj!"&::::r}   c            	         t        ddd      t        ddd      }} t        d| |z   z        dk(  sJ t        t        | z        dk(  sJ t        t         | z        dk(  sJ t        dt        z   | z        dk(  sJ t        dt        z    | z        d	k(  sJ t        t        t        | |      t        | |                  d
k(  sJ y )Nr  r   Yz	2*X + 2*YzI*Xz-I*Xr   z	(1 + I)*Xz
(-1 - I)*Xz(X + Y) + (X + Y))r<   r   r   r   )r  r  s     r{   test_MatMul_MatAddr    s    Q"La$;qAq!a%y>[(((qs8ur!t9Aqy>[(((Qxz?l***vfQlF1aL126IIIIr}   c            	         t        dd      } t        d| |       }t        ddd      }t        ddd      }t        t        |dd            d	k(  sJ t        |t        t        d
z   t
        t
        d
z   f         dk(  sJ t        |t        t        d
z   dt
        t
        d
z   df         dk(  sJ t        |d t        t
        d f         dk(  sJ t        |d t        t
        d f         dk(  sJ t        |t        d d t
        f         dk(  sJ t        |t        t
        t        t        f         dk(  sJ t        |t        t
        t        t        t        t        f         dk(  sJ t        |t        d t
        t        d t        f         dk(  sJ t        |d t        t
        d t        t        f         dk(  sJ t        |d d t        d d t
        f         dk(  sJ t        t        |dd            d	k(  sJ t        t        |d | d fd | d f            d	k(  sJ t        t        |d| d fd| d f            d	k(  sJ t        t        |d| dfd| df            dk(  sJ t        |d
dddddf         dk(  sJ t        |d
dddddf         dk(  sJ t        |d
dd         dk(  sJ t        |d dd
d df         d!k(  sJ t        |d dd
ddf         d"k(  sJ t        |dd ddf         d#k(  sJ t        |dd
dd
f         d$k(  sJ t        |dd
ddd
df         d%k(  sJ t        ||z   dd dd f         d&k(  sJ y )'Nr   Tr   r  r  r  Z)NNNzX[:, :]r   zX[x:x + 1, y:y + 1]r   zX[x:x + 1:2, y:y + 1:2]z	X[:x, y:]z	X[x:, :y]zX[x:y, z:w]zX[x:y:t, w:t:x]zX[x::y, t::w]zX[:x:y, :t:w]zX[::x, ::y])r   NNr   zX[::2, ::2]r   r   r   r   zX[1:2:3, 4:5:6]r   zX[1:3:5, 4:6:8]zX[1:10:2, :]rZ  zY[:5, 1:9:2]zY[:5, 1::2]zY[5:6, :5:2]z	X[:1, :1]zX[:1:2, :1:2]z(Y + Z)[2:, 2:])	r)   r<   r   r>   r   r   r   r   r   )r   r  r  r  s       r{   test_MatrixSlicer     s   sD!AS!QAS"b!AS"b!A{102DEF)SSSq1q5!AE'!"#'<<<<q1q5Aa!eAI%&'+DDDDq!QRy>[(((q!QRy>[(((qRaRy>[(((q1ac{},,,q1Q!A#4444qAqt!t}000q!At!t}000q1cc{},,,{1o?@IMMM{1tQoa?@IMMM{1q!TlQ4L9:iGGG{1q!Qi!Q34EEEq1Q!A#4444q1Q!A#4444q2ay>^+++q!QqU|...q!Qr!V}...qDQqDz?n,,,q1ac{{***q1Q!A?222Aqr12v#4444r}   c                      t        t              t        t              cxk(  rt        t              cxk(  rdk(  sJ  J t        t              t        t              cxk(  rt        t              cxk(  rdk(  sJ  J y )NTrueFalse)r   r9   reprrm   r8   r   r}   r{   test_true_falser    sV    t9T
:d4j:F:::::u:e>U>w>>>>>r}   c                  H    t        t        t        t                    dk(  sJ y )NzEquivalent(x, y))r   r7   r   r   r   r}   r{   test_Equivalentr    s    z!Q $6666r}   c                  L    t        t        t        t        d            dk(  sJ y )NFr   zx ^ y)r   r:   r   r   r   r}   r{   test_Xorr	    s    s1a%()W444r}   c                  p    t        t        t        j                  t        j                              dk(  sJ y )NzComplement(Reals, Naturals))r   rC   r'   RealsNaturalsr   r}   r{   test_Complementr    s%    z!''1::./3PPPPr}   c            	      d    t        t        t        dd      t        dd      d            dk(  sJ y )Nr   r   r   Fr   z3SymmetricDifference(Interval(2, 3), Interval(3, 4)))r   rF   rE   r   r}   r{   test_SymmetricDifferencer    s5    "8Aq>8Aq>5QR@A A Ar}   c                  b    t        d      \  } }dt        | |z         z  }t        |      dk(  sJ y )Nza br   z	2*(a + b))r+   r   r   )r   r  expr1s      r{   test_UnevaluatedExprr    s4    5>DAqoac""Eu:$$$r}   c                      t        ddd      } t        ddd      }t        ddd      }t        | d         dk(  sJ t        d| d   z        dk(  sJ |d   j                  || |z
        }t        |      d	k(  sJ y )
Nr  r   r   r  r  )r   r   zA[0, 0]z	3*A[0, 0]z(A - B)[0, 0])r<   r   subs)r  r  r  rr  s       r{   test_MatrixElement_printingr  $  s    S!QAS!QAS!QAqw<9$%$q1T7{{*+*	$QAAq6_$$$r}   c                      t        ddd      } t        ddd      }t        | | |z  z
  |z
        dk(  sJ t        | |z  | |z   z
        dk(  sJ t        | dz        dk(  sJ t        | dz        dk(  sJ y )	Nr  r   r  zA - A*B - Bz-A + A*B - Br   zA**(-1)zA**3)r<   r   )r  r  s     r{   test_MatrixSymbol_printingr  1  s    S!QAS!QAq1Q3w{},,,qsac{~---q2w<9$$$q!t9r}   c                  2   t        dd      } t        d| |       }t        |      dk(  sJ |j                  |z  j	                  t
              }t        |      dk(  sJ t        t        dt        z        }| |z  j	                  |      }t        |      dk(  sJ y )Nr   Tr   r  zLambda(_d, sin(_d)).(X.T*X)r   zLambda(x, 1/x).(n*X))r)   r<   r   T	applyfuncr3   r   r   )r   r  exprlamdas       r{   test_MatrixExpressionsr  ;  s    sD!AS!QAq6S== CCES!Dt955551acNEaC??5!Dt9....r}   c                      t        t        t        t        fd            dk(  sJ t        t        t        t        z   t        t        fd            dk(  sJ y )Nr   zSubs(x, x, 1)r   zSubs(x + y, (x, y), (1, 2)))r   r   r   r   r   r}   r{   test_Subs_printingr   K  sE    tAtT"#666tAEAq66*+/LLLLr}   c                      t        t        t              t        t         t        f      } | j	                         | dfg| gfk(  sJ y )N))r   g        r  r   )r6   r,   r   r   as_termsr~  s    r{   test_issue_15716r#  P  s>    1B3|,A::<a!789A3????r}   c                      ddl m} m}m} t	         | d            dk(  sJ t	         |dd            dk(  sJ t	         |dd            dk(  sJ y )Nr   r=   
ZeroMatrix	OneMatrixr   r   r   r   r   )sympy.matricesr=   r&  r'  r   r%  s      r{   test_str_special_matricesr)  U  sR    >>x{s"""z!Q C'''yA3&&&r}   c                  N    t        t        dt        ddf            t        z   sJ y )Nr   r   )r,   r   r   r   r   r}   r{   test_issue_14567r+  \  s"    SaAY'(1,,,r}   c                  p    t        t        ddg            dk(  sJ t        t        ddh            dk(  sJ y )Nr   r   zPartition({1, 2}))r   r   r   r}   r{   test_issue_21823r-  `  s<    y!Q !%8888y!Q !%8888r}   c            
      t    t        t        t        t        dd      t        ddd      d            dk(  sJ y )Nr   Fr   r   r   z
1/(x**2*3))r   r   r#   r   r   r}   r{   test_issue_22689r/  e  s2    s3qe,c!B.FQVWX\hhhhr}   c                     d }  | d      dk(  sJ  | d      dk(  sJ  | d      dk(  sJ  | d      dk(  sJ  | d      d	k(  sJ  | d
      dk(  sJ  | d      dk(  sJ  | d      dk(  sJ  | d      dk(  sJ  | d      dk(  sJ y )Nc                 .    t        t        | d            S )NFr   )r   r'   )r   s    r{   r   z(test_issue_21119_21460.<locals>.<lambda>j  s    3qU+, r}   z4/2z4/-2z4/(-2)z-4/2z-4/-2z-4/(-2)z-2*3/-1z	-2*3/(-1)z	-2*3/-1/2z-2*3/(-1*2)z4/2/1z4/(2*1)z-2/-1/2z	-2/(-1*2)z2*3*4**(-2*3)z2*3/4**(2*3)z2*3*1*4**(-2*3)z2*3*1/4**(2*3)r   )sss    r{   test_issue_21119_21460r3  i  s    	,Be9f:!!!f:g;)###i=K'''k?m+++g;)###i=K'''o.000 $4444r}   c                  h    ddl m}  t         | d            dk(  sJ t         | d            dk(  sJ y )Nr   Strr   zStr('x'))sympy.core.symbolr6  r   rn   r5  s    r{   test_Strr8  w  s2    %s3x=CCH+++r}   c                  
   ddl m} m}m}m} t        dd      \  }} | dd      }t        |      dk(  sJ  |d|      }t        |      dk(  sJ  |d	|||g      }t        |      d	k(  sJ  ||d      }	t        |	      d
k(  sJ y )Nr   )ManifoldPatchCoordSystemBaseScalarFieldzx yTr   r   r   Prectr   )sympy.diffgeomr:  r;  r<  r=  r+   r   )
r:  r;  r<  r=  r   r   mr  r?  r  s
             r{   test_diffgeomrB  }  s    LL
%d
#CAaaAq6S==c1Aq6S==vq1a&)Dt9a Aq6S==r}   c                      t        t        d      d      dk(  sJ t        t        d      d      dk(  sJ t        t        ddg      d      dk(  sJ t        t        ddg      d      d	k(  sJ y )
Nr   Tr  z1.00000000000000Fz1.0g       @z$[1.00000000000000, 2.00000000000000]z
[1.0, 2.0])rm   rh   r   r}   r{   test_NDimArrayrD    sr    	#$/3EEEE	#%0E999	3*%6:````	3*%7<GGGr}   c                  @    t        t        j                        dk(  sJ y )NzQ.even)rm   r   evenr   r}   r{   test_PredicaterG    s    <8###r}   c                  R    t        t        j                  t                    dk(  sJ y )Nz	Q.even(x))rm   r   rF  r   r   r}   r{   test_AppliedPredicaterI    s    q	?k)))r}   c            	          t        t        dd            dk(  sJ t        t        ddddt        z
  z  df            dk(  sJ t	        ddd      } t	        d	dd      }t        t        | |z  t        dg            d
k(  sJ y )Nr  )r   r   r   r   r   r   zA[2, 1/(1 - x), 0]r   r   Nz(M*N)[x, 0])rm   ri   rj   r   r<   )r   rK  s     r{   #test_printing_str_array_expressionsrL    s    C+,333S1a1gq/237KKKKS!QAS!QAQqS1a&)*m;;;r}   c                  v   t        d      } t        d      }t        | dkD        t        d      z  }t        |       t        d      z  }t	        |       t        d      z  }t        | |      t        d      z  }t        |      dk(  sJ t        |      dk(  sJ t        |      dk(  sJ t        |      dk(  sJ |j                  d	k(  sJ |j                  d	k(  sJ |j                  d	k(  sJ |j                  d	k(  sJ |j                         d	k(  sJ |j                         d	k(  sJ |j                         d	k(  sJ y )
Nr   r   r   r   zProbability(x > 0)*IzExpectation(x)*IzVariance(x)*IzCovariance(x, y)*IF)	rK   rI   r=   rH   rJ   rG   r   r  _eval_is_commutative)r   r   z1z2z3z4s         r{   test_printing_statsrS    sF   SASA	QU	HQK	'B	Q	#B	!Xa[	 B	Aq	HQK	'Br7,,,,r7((((r7o%%%r7++++%%%%%%%%%%%%""$---""$---""$---r}   N(  sympyr   sympy.algebras.quaternionr   sympy.assumptions.askr   !sympy.calculus.accumulationboundsr   sympy.combinatorics.partitionsr   sympy.concrete.summationsr   r	   sympy.core.addr
   sympy.core.containersr   r   sympy.core.exprr   r   sympy.core.functionr   r   r   r   r   sympy.core.mulr   
sympy.corer   r   r   r   sympy.core.numbersr   r   r   r   r   r   r   r    r!   r  r"   sympy.core.powerr#   sympy.core.relationalr$   r%   r&   sympy.core.singletonr'   r7  r(   r)   r*   r+   (sympy.functions.combinatorial.factorialsr,   r-   r.   $sympy.functions.elementary.complexesr/   &sympy.functions.elementary.exponentialr0   (sympy.functions.elementary.miscellaneousr1   (sympy.functions.elementary.trigonometricr2   r3   'sympy.functions.special.delta_functionsr4   &sympy.functions.special.zeta_functionsr5   sympy.integrals.integralsr6   sympy.logic.boolalgr7   r8   r9   r:   sympy.matrices.denser;   "sympy.matrices.expressions.matexprr<   sympy.matrices.expressionsr=    sympy.matrices.expressions.slicer>   r(  r?   sympy.polys.polytoolsr@   sympy.series.limitsrA   sympy.series.orderrB   sympy.sets.setsrC   rD   rE   rF   r  rG   rH   rI   rJ   sympy.stats.rvrK   sympy.externalrL   sympy.physics.control.ltirM   rN   rO   rP   rQ   rR   rS   rT   sympy.physics.unitsrU   rV   sympy.polysrW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   sympy.geometryrc   rd   re   rf   rg   sympy.tensorrh   0sympy.tensor.array.expressions.array_expressionsri   rj   sympy.testing.pytestrk   rl   sympy.printingrm   rn   ro   sympy.physics.quantum.tracerp   r   r   r   r   r   rq   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   r  r  r  r  r   r"  r(  r,  r.  r:  r>  r@  rB  rD  rF  rW  rc  rf  rj  rl  ro  rs  rw  ry  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  r  r  r  r  r  r  r  r   r  r  r	  r  r  r  r  r  r  r   r#  r)  r+  r-  r/  r3  r8  rB  rD  rG  rI  rL  rS  r   r}   r{   <module>r     sA    0 # 9 4 6  / 1 R R  M M Q Q Q -   / / " < < Z Z 4 6 9 ? = 7 . > > ' ; / 8 ' ( %   R R H H ' (M M M -    D D " V ? 5 5 *$1aA	#J	.x,%E:@"
+%9 3-5
;
$M
09ELN3-I`	C?4B'aTir:.D<	+;?"(6'rH$=+
JM	qV<.S	d	l@	f	l`c"M1!*J(%2*
/ $*0<
b	AL11%&;J5>?75QA
%
%/ M
@
'-9
i5,
H$*<.r}   