
    \hr                       S r SSKJrJr  SSKJr  SSKJr  SSKJ	r	  SSK
Jr  SSKJrJrJrJrJrJrJr  SSKJr  SS	KJr  SS
KJrJrJrJrJrJrJrJ r   SSK!J"r"J#r#  SSK$J%r%  SSK&J'r'J(r(J)r)  SSK*J+r+J,r,J-r-J.r.  SSK/J0r0J1r1J2r2J3r3  SSK4J5r5J6r6J7r7J8r8  SSK9J:r:J;r;J<r<  SSK=J>r>J?r?J@r@JArA  SSKBJCrCJDrD  SSKEJFrFJGrGJHrH  SSKIJJrJ  SSKKJLrLJMrMJNrNJOrOJPrPJQrQJRrRJSrSJTrTJUrU  SSKVJWrW  SSKXJYrY  SSKZJ[r[J\r\  SSK]J^r^J_r_  SSK`Jara  SSKbJcrcJdrd  SSKeJfrf  SSKgJhrh  SSKiJjrj  SS KkJlrlJmrm  SS!KnJoro  SS"KpJqrrJsrtJurvJwrx  SS#KyJzrz  SS$K{J|r|  SS%K}J~r~  SS&KJr  SS'KJr  SS(KJrJrJrJr  SS)KJr  SS*KJr  SS+KJr  SS,KJr  SS-KJr  SS.KJrJrJrJr  SS/KJr  SS0KJr  SS1KJrJr  SS2KJr  SS3KJrJr  SS4KJr  SS5KJr  SS6KJr  SS7KrSS8K/Jr  SS9KXJr  SS:KJrJrJr  SS;KeJr  SS<KJrJrJrJrJr  SS=KJr  SS>KJrJr  SS?KJrJrJr  SS@KJrJr  SSAKJrJr  SSBKJr  SSCKJr  SSDKJr  SSEKJr  SSFKJr  SSGKJr  SSHKJr  SSIKJrJrJrJrJrJrJr  SSJKJr  SSKKJrJrJr  SSLKJr  SSMK!Jr  SSNKJrJr  SSOKJr  SSPKJr  SSQKJr  \%GR                  r\r\)" SR5      u  rrr\)" SSSTSU9u  rrrrrr\" SV5      r\" SW5      rSX rSY rSZ rS[ rS\ rS] rS^ rS_ Gr S` GrSa GrSb GrSc GrSd GrSe GrSf GrSg GrSh Gr	Si Gr
Sj GrSk GrSl GrSm Gr\Sn 5       GrSo GrSp Gr\Sq 5       GrSr Gr\Ss 5       GrSt GrSu GrSv GrSw Gr\Sx 5       Gr\Sy 5       Gr\Sz 5       Gr\S{ 5       Gr\S| 5       Gr\S} 5       Gr\S~ 5       Gr\S 5       Gr \S 5       Gr!S Gr"S Gr#\S 5       Gr$\S 5       Gr%\S 5       Gr&S Gr'S Gr(S Gr)S Gr*S Gr+\S 5       Gr,\S 5       Gr-S Gr.S Gr/S Gr0S Gr1\S 5       Gr2S Gr3\S 5       Gr4S Gr5S Gr6S Gr7S Gr8S\S-  -  S\S-  -  -
  S\S-  -  -
  S\S-  -  -
  S\S-  -  -
  S-
  Gr9S\S-  -  S\S-  -  -
  S\S-  -  -
  S\S-  -  -
  S\S-  -  -
  S\S-  -  -   S-   Gr:S\S-  -  S\S-  -  -
  S\S-  -  -   S\S-  -  -   S\-  -
  S-
  Gr;S Gr<S Gr=S Gr>S Gr?S Gr@S GrAS GrBS GrC\S 5       GrDS GrES GrFS GrGS GrH\S 5       GrIS GrJ\S 5       GrK\S 5       GrLS GrMS GrNS GrOS GrPS GrQS GrR\S 5       GrS\S 5       GrTS GrUS GrV\S 5       GrWS GrXS GrY\S 5       GrZS Gr[S Gr\\S 5       Gr]\S 5       Gr^\S 5       Gr_\S 5       Gr`\S 5       GraS Grb\" S5      \S 5       5       Grc\S 5       GrdS GreS Grf\S 5       GrgS GrhS GriS GrjS GrkS GrlS GrmS GrnS Gro\S 5       GrpS GrqS Grr\S 5       Grs\S 5       GrtS Gru\S 5       GrvS GrwS Grx\S 5       GryS GrzS Gr{S Gr|S Gr}S Gr~S GrS GrS GrS GrS GrS Gr\S 5       GrS Gr\S 5       Gr\GS  5       Gr\GS 5       Gr\GS 5       GrGS Gr\GS 5       GrGS GrGS Gr\GS 5       Gr\GS 5       GrGS	 Gr\GS
 5       GrGS Gr\GS 5       Gr\GS 5       GrGS Gr\GS 5       Gr\GS 5       Gr\GS 5       GrGS GrGS GrGS GrGS GrGS GrGS GrGS GrGS GrGS Gr\GS 5       GrGS GrGS GrGS Gr\GS 5       Gr\GS  5       Gr\GS! 5       GrGS" GrGS# GrGS$ GrGS% GrGS& GrGS' Gr\GS( 5       Gr\GS) 5       Gr\GS* 5       Gr\GS+ 5       Gr\\GS, 5       5       Gr\GS- 5       Gr\\GS. 5       5       GrGS/ GrGS0 GrGS1 GrGS2 GrGS3 Gr\GS4 5       GrGS5 GrGS6 Gr\GS7 5       GrGS8 GrGS9 Gr\GS: 5       GrGS; Gr\GS< 5       GrGS= GrGS> GrGS? GrGS@ Gr\GSA 5       GrGSB GrGSC GrGSD GrGSE GrGSF Gr\GSG 5       Gr\GSH 5       GrGSI GrGSJ GrGSK GrGSL GrGSM GrGSN GrGSO GrGSP GrGSQ Gr\GSR 5       GrGSS GrGST GrGSU GrGSV GrGSW GrGSX GrGSY Gr\GSZ 5       Gr\GS[ 5       GrGS\ Gr\GS] 5       GrGS^ GrGS_ Gr\GS` 5       Gr\GSa 5       Gr\GSb 5       GrGSc Gr\GSd 5       Gr\GSe 5       GrGSf GrGSg GrGSh GrGSi GrGSj GrGSk Gr\GSl 5       Gr\GSm 5       Gr\GSn 5       Gr\GSo 5       Gr\GSp 5       GrGSq GrGSr Gr\GSs 5       GrGSt Gr\GSu 5       Gr\GSv 5       Gr\GSw 5       Gr\GSx 5       Gr \GSy 5       Gr\GSz 5       GrGS{ GrGS| GrGS} Gr\\GS~ 5       5       Gr\GS 5       Gr\GS 5       Gr\GS 5       Gr	GS Gr
GS GrGS GrGS GrGS GrGS Gr\GS 5       Gr\GS 5       Gr\GS 5       Gr\GS 5       Gr\GS 5       GrGS GrGS GrGS GrGS GrGS GrGS GrGS GrGS Gr\GS 5       Gr\GS 5       Gr\GS 5       GrGS Gr GS Gr!GS Gr"GS Gr#GS Gr$GS Gr%\GS 5       Gr&GS Gr'GS Gr(\GS 5       Gr)GS Gr*GS Gr+GS Gr,\GS 5       Gr-\GS 5       Gr.GS Gr/\GS 5       Gr0\GS 5       Gr1\GS 5       Gr2\GS 5       Gr3GS Gr4GS Gr5GS Gr6GS Gr7\GS 5       Gr8\GS 5       Gr9GS Gr:\GS 5       Gr;GS Gr<GS Gr=GS Gr>\GS 5       Gr?\\GS 5       5       Gr@GS GrA\GS 5       GrB\GS 5       GrC\GS 5       GrD\GS 5       GrE\\GS 5       5       GrF\\GS 5       5       GrG\\GS 5       5       GrH\\GS 5       5       GrIGS GrJ\GS 5       GrK\\GS 5       5       GrL\GS 5       GrM\GS 5       GrNGS GrO\GS 5       GrPGS GrQ\GS 5       GrRGS GrSGS GrTGS GrU\GS 5       GrV\GS 5       GrWGS GrXGS GrY\GS 5       GrZGS Gr[\\GS 5       5       Gr\\\GS 5       5       Gr]GS Gr^GS Gr_GS Gr`GS GraGS GrbGS Grc\GS 5       GrdGS GreGS GrfGS GrgGS GrhGS GriGS Grj\GS 5       GrkGS Grl\GS 5       Grm\" GS5      GS 5       GrnGS Gro\GS 5       Grp\GS 5       Grq\GS 5       Grr\GS 5       GrsGS Grt\GS 5       GruGS GrvGS GrwGS GrxGS GryGS Grz\GS 5       Gr{\GS 5       Gr|GS Gr}GS Gr~\" GS5      \GS 5       5       Gr\GS 5       Gr\GS 5       Gr\GS 5       GrGS GrGS GrGS Gr\GS  5       Gr\GS 5       Gr\GS 5       Grg7(  zTests from Michael Wester's 1999 paper "Review of CAS mathematical
capabilities".

http://www.math.unm.edu/~wester/cas/book/Wester.pdf
See also http://math.unm.edu/~wester/cas_review.html for detailed output of
each tested system.
    )Qask)refine)product)
EulerGamma)N)
DerivativeFunctionLambdaSubsdiffexpandexpand_func)Muligcd)AlgebraicNumberEIRationalnanoopizoo)EqLt)S)DummySymbolsymbols)rfbinomial	factorial
factorial2)	bernoulli	fibonaccitotient	partition)	conjugateimresign)LambertWexplog)asinhcoshsinhtanh)ceilingfloor)MaxMinsqrt)	Piecewise)
acosacotasinatancoscotcscsecsintan)besselj)
DiracDelta)
elliptic_e
elliptic_f)gamma	polygamma)hyper)assoc_legendre
chebyshevt)polylog)idiff)And)hessian	wronskian)MatMul)continued_fraction_convergentscontinued_fraction_iteratorcontinued_fraction_periodiccontinued_fraction_reduce)	factorint)
primerange)ZZ)legendre_poly)apart)Polyfactorgcd	resultant)limit)O)residue)series)ImageSet)	FiniteSetIntersectionIntervalUnion)combsimp)hyperexpand)	powdenestpowsimp)radsimp)
logcombinesimplify)
sqrtdenest)trigsimp)solveNstirling)	Heaviside)CiSierf)zeta)XFAILslowSKIPtooslowraises)
partitions)mpimpc)MatrixGramSchmidteye)BlockMatrixblock_collapse)MatrixSymbol
ZeroMatrix)
Commutator)PolyRing)	FracField)solve_lin_sys)Sum)Product)	integrate)laplace_transforminverse_laplace_transformLaplaceTransformfourier_transformmellin_transformlaplace_correspondencelaplace_initial_conds)rsolve)solvesetsolveset_reallinsolve)dsolve)Equality)islice	takewhile)fps)fourier_series)minimumx y zzi j k l m nTintegerfgc                  
   [        [        [        [        [        [        [        5      [        [        [        [        5      -  [        [        [
        [        5      -  [        [        [        [        [        [
        5      :X  d   eg Nre   ijklm     Y/var/www/auris/envauris/lib/python3.13/site-packages/sympy/utilities/tests/test_wester.pytest_B1r   v   sR    aAq!Q')Aq!*<<aA#,Q1a#;< < <r   c                  .   [        [        [        [        [        [        [        5      [        [        [        [        5      -  [        [        [
        [        5      -  [        [        [
        1[        [        [        1[        [        [        15      :X  d   eg r   )re   r   r   r   r   r   rf   r   r   r   test_B2r   {   sa    aAq!Q')Aq!*<<aA#/AAq	Aq!9#MN N Nr   c                      [        [        [        [        [        [
        5      [        [        5      -
  [        [        [        [        [
        5      :X  d   eg r   r   r   r   r   test_B3r      s8    aAq!$y|3aAq!" # "r   c                      [        [        [        [        5      [        [        [        5      -  6 [        [        [        4[        [        4[        [        4[        [        45      :X  d   eg r   )re   r   r   r   r   r   r   r   test_B4r      sH    	!Q	!Q79q!fq!fq!fq!f56 7 6r   c                  &    [        S5      S:X  d   eg )N2   l         <:.kjFt=VfvaI= )r#   r   r   r   test_C1r      s    bMIJ K Jr   c                  X    [        [        S5      5      SSSSSSSSSS	S	S	S	S	S	S
.:X  d   eg )Nr   /                        )r   r                              %   )   +   r   )rW   r#   r   r   r   test_C2r      sB    im$B2"1!qaQ1!)   r   c                  <    [        S5      [        S5      4S:X  d   eg )N
   	   )i   i  )r$   r   r   r   test_C3r      s    rNJqM*k999r   c                      SS:X  d   eg )Ni
  r   r   r   r   test_C4r      s    D==r   c                  (    S[        SS5      :X  d   eg )N{   234r   intr   r   r   test_C5r      s    #eQ-r   c                  P    [        SS5      [        SS5      s=:X  a  S:X  d   e   eg )N677r   1BF   i  r   r   r   r   test_C6r      s'    ua=CrN1c11111r   c                  (    [        SS5      S:X  d   eg )Ni   r   r   )r/   r   r   r   test_C7r      s    ua=Ar   c                  x    [         R                  " SS5      S:X  d   e[         R                  " SS5      S:X  d   eg )Nr   r   r      )rY   invertr   r   r   test_C8r      s2    99Q?a99Q?ar   c                  <    [        [        SS5      S5      S:X  d   eg )N  i  iB  J   r   r   r   r   test_C9r      s    T4 $'2---r   c                  p    Sn [        SS5       H  nU [        SU5      -  n M     U [        SS5      :X  d   eg )Nr   r   r   r   i  i	  )rangeR)xns     r   test_C10r      s:    	A1b\	Qq!W $r   c                  :    [        SS5      [        S5      :X  d   eg )Nr   r   z
0.[142857])r   r   r   r   r   test_C11r      s    Q7ao%%%r   c                  B    [        SS5      [        SS5      -  S:X  d   eg )Nr   r   r   r   r   r   r   r   test_C12r      s!    Q8aAh!###r   c                      [        SS5      S[        SS5      -   [        SS5      -  -  n S[        SS5      -  nX:X  d   eg )Nr   r   r   r   i  r   r   testgoods     r   test_C13r      s@    R8q1R;1Q722D!Q<D<<r   c                  n    [        [        S[        S5      -  S-   5      5      S[        S5      -   :X  d   eg )Nr   r   r   r   rp   r8   r   r   r   test_C14r      s.    d1T!W9q=)*a$q'k999r   c                      [        [        SS[        SS[        SS[        SS[        S5      -  -
  5      -  -
  5      -  -   5      -  -   5      5      n [        S5      S-   nX:X  d   eg )N   r   r   r   r   r   r   s     r   test_C15r     sa    d2$q1T!ba!DG)m9L6L2L-M+M'M"N NNOPD7Q;D<<r   c            	          [        [        SS[        S5      -  -   S[        S5      -  -   S[        S5      -  -   5      5      n [        S5      [        S5      -   [        S5      -   nX:X  d   eg )Nr   r   r      r   r   r   r   s     r   test_C16r     s\    d2$q'	>Ad2hJ648CDED7T!WtAw&D<<r   c                      [        [        S5      [        S5      -   [        S5      [        S5      -
  -  5      n SS[        S5      -  -   nX:X  d   eg )Nr   r   r   r   )rm   r8   r   s     r   test_C17r     sF    DGd1g%$q'DG*;<=Dqay=D<<r   c            	          [        [        S[        S5      -   5      [        S[        S5      -
  5      -  R                  SS95      S:X  d   eg )NTcomplexr   )ro   r8   r   r   r   r   test_C18r     sC    T"tBx-(4T"X+>>FFtFTUYZZZZr   c            	          [        [        SS[        S5      -  -   [        SS5      -  5      5      S[        S5      -   :X  d   eg )NZ   "   r   r   r   )rm   ro   r8   r   r   r   r   test_C19r     s9    8R"T!W*_1a89:a$q'kIIIr   c                      SS[        S5      -  -   n [        U [        SS5      -  S-   [        S5      -  U [        SS5      -  -  5      n[        U5      [        S5      :X  d   eg )N   N   r   r   r   r   )r8   r   r   ro   )insider   s     r   test_C20r     s\    BtAwJFFAaGOa/47:VQq!W_LMDD>_R0000r   c            	          [        [        SS[        S5      -  -   [        SS5      -  5      5      [        S[        S5      -   5      :X  d   eg )Nr   r   r   r   r   )ro   r   r8   r   r   r   r   test_C21r     sE    OR"T!W*_1a$@ABDG$% % %r   c                  p   [        SS[        S5      -  -
  [        SS[        S5      -  -
  5      -  SS[        S5      -  -
  [        SS[        S5      -  -
  5      -  -   S-   S[        S5      -  -
  S	[        S5      -  S
-
  -  5      n [        S5      S-  [        [        S5      S-
  5      S-  -
  nX:X  d   eg )Nr   r   r   r   r   r          0   H   r   )ro   r8   r/   r   s     r   test_C22r     s    a!DG)mSQtAwY%771qay=#b
T!W*O K ; QZ(,.tAwJO= >D719s47Q;'))D<<r   c                  .    S[         -  S-
  [         L d   eg )Nr   r   )r   r   r   r   test_C23r     s    r6A:r   c                      [        S5      e)Nz2**aleph_null == aleph_1NotImplementedErrorr   r   r   test_C24r$    s    
8
99r   c                  ,    S[        S5      -  S:X  d   eg )N        r   r   )r8   r   r   r   test_D1r'    s    a=Ar   c                  T    [        [        S5      R                  5       5      S:X  d   eg )Niz3.29683147808856e-434295)strr.   evalfr   r   r   test_D2r+    s#    s8}""$%)CCCCr   c                      [        [        [        S5      -  5      R                  S5      R                  R                  S5      (       d   eg )N   r   l   h	a%)r.   r   r8   r*  numaer   r   r   test_D3r0    s8    r$s)|""2&**--.@AAAAr   c                  p    [        [        SS5      5      S:X  d   e[        [        SS5      5      S:X  d   eg )Nr
  r   r	  )r5   r   r4   r   r   r   test_D4r3    s3    2q?b   1R8"""r   c                      [        S5      e)Nz6cubic_spline([1, 2, 4, 5], [1, 4, 2, 3], x)(3) == 27/8r"  r   r   r   test_D5r5     s    
V
WWr   c                      [        S5      e)Nz,translate sum(a[i]*x**i, (i,1,n)) to FORTRANr"  r   r   r   test_D6r7  %      
L
MMr   c                      [        S5      e)Nz&translate sum(a[i]*x**i, (i,1,n)) to Cr"  r   r   r   test_D7r:  *      
F
GGr   c                      [        S5      e)Nz.apply Horner's rule to sum(a[i]*x**i, (i,1,5))r"  r   r   r   test_D8r=  /  s    
 N
OOr   c                      [        S5      e)Nztranslate D8 to FORTRANr"  r   r   r   test_D9r?  7  s    
7
88r   c                      [        S5      e)Nztranslate D8 to Cr"  r   r   r   test_D10rA  <  s    
1
22r   c                      [        S5      e)Nz.flops(sum(product(f[i][k], (i,1,k)), (k,1,n)))r"  r   r   r   test_D11rC  A  s     N
OOr   c                      [        SS5      [        -  [        SS5      -   S-  [        SS5      [        S-  -  [        SS5      [        -  -   [        SS	5      -   :X  d   eg )
Nr   r   r   r   r   r   )r   r   r   r   r   test_D12rH  G  sX    AJNSAY&1,BAqD0@3sB<PQ>0QTWXY[\T]0]]]]r   c                      [        S5      e)Nz:discretize a PDE: diff(f(x,t),t) == diff(diff(f(x,t),x),x)r"  r   r   r   test_D13rJ  L  s    
Z
[[r   c                  `    [        [        S5      [        S[        -   -  S[        -   -  :X  d   eg )Nr   r   r   )r!   r   r   r   r   test_F1rL  V  s'    a8q!a%y!a%((((r   c                  x    [        [        [        S5      5      [        [        S-
  -  [        S-
  -  S-  :X  d   eg )Nr   r   r   r   )r   r"   r   r   r   r   test_F2rN  Z  s1    x1~&!QU)QU*;A*====r   c                      [        S[        -  [        [        5      -  [        S[        -  S-
  5      -  5      [        S[        -  5      :X  d   eg Nr   r   )ri   r   r#   r$   r   r   r   test_F3rQ  ^  s<    AqD9Q<'*QqS1W*==>)AaC.PPPr   c            	          [        S[        -  [        [        5      -  [        S[        -  S-
  [        S[        45      -  5      [        S[        -  5      :X  d   eg rP  )ri   r   r#   r   r   r   r   r   test_F4rS  c  sG    AqD9Q<''!A#'Aq!9*EEF)TUVWTW.XXXr   c                      [        [        [        SS5      -   5      [        [        5      -  [        [        5      -  [        S[        -  5      SS[        -  -  -  [        [        5      S-  -  :X  d   eg Nr   r   )rH   r   r   r8   r   r#   r   r   r   test_F5rV  h  sY    Qq!WR(9Q<79QqS>!aPQc(;RS\]^S_abSb;bbbbr   c                      [        S5       V s/ s H  o R                  5       PM     nn SS0SSS.SS0SSS.SS0/nX:X  d   eg s  sn f )Nr   r   )r   r   r   )r   r   )r   copy)ppartTestpartDesireds      r   test_F6r\  m  sS    ",Q-0-Q-H0q6qQ<!QQ!q!fEK""" 1s   Ac                  &    [        S5      S:X  d   eg )Nr   r   )r(   r   r   r   test_F7r^  s  s    Q<1r   c                  &    [        SSSS9S:X  d   eg )Nr   r   T)signedirs   r   r   r   test_F8ra  w  s    Aq&#---r   c                  &    [        S5      S:X  d   eg )Nr   i@  )r'   r   r   r   test_F9rc  {  s    4=Cr   c                  >    [        [        SS5      5      SS/:X  d   eg )N/B iDB iCB )listrX   r   r   r   test_G1rg    s!    
67+,0AAAAr   c                      [        S5      e)Nz$find the primitive root of 191 == 19r"  r   r   r   test_G2ri    s    
D
EEr   c                      [        S5      e)Nz,(a+b)**p mod p == a**p + b**p mod p; p primer"  r   r   r   test_G3rk    r8  r   c                     [        [        S5      R                  5       5      R                  S5      [	        SS5      :X  d   e[        [        S [        [        [        S5      5      5      5      5      S   [	        SS5      :X  d   eg )Nr   r     c                      U R                   S:*  $ )Nr  )qr   s    r   <lambda>test_G15.<locals>.<lambda>  s    ACC2Ir   r2  )	r   r8   r*  limit_denominatorr   rf  r   cf_ccf_ir   r   r   test_G15rv    sj    DGMMO$66r:aBiGGG	-tDaM/BCDRH	"b	  r   c                  X    [        [        [        [        5      S5      5      / SQ:X  d   eg )Nr   )
r   r   r  r   i$  r   r   r   r   r   )rf  r   ru  r   r   r   r   test_G16rx    s!    tBx#$(IIIIr   c                  2    [        SSS5      S/ SQ/:X  d   eg )Nr   r   r   r   )r   r   r   r   )cf_pr   r   r   test_G17r{    s    1b>a....r   c                      [        SSS5      S//:X  d   e[        S//5      R                  5       [        R                  [        S5      S-  -   :X  d   eg )Nr   r   r   )rz  cf_rr   r   Halfr8   r   r   r   test_G18r    sL    1a=aSE!!!!;166DGAI#5555r   c                      [        SSSS9n [        [        SU -  5      S-
  [        SU -  5      S-   -  5      n[        [	        US5      5      SSU -  SU -  S	U -  S
U -  /:X  d   eg )NsTr   positiver   r   r   r   r   r   r  )r    ru  r.   rf  r   )r  its     r   test_G19r    sk    TD1A	s1Q3x!|c!A#hl+	,Br11ac1Q31bd";;;;r   c                  j    [        SSSS9n [        SU -  //5      U [        U S-  S-   5      -   :X  d   eg )Nr  Tr  r   r   )r    r}  r8   r  s    r   test_G20r    s;    TD1A!A#=AQTAX....r   c                  V    [        SSSS9n [        U SU S-  S-   5      SU -  //:X  d   eg )Nr  Tr  r   r   )r    rz  r  s    r   	test_G20br    s7    TD1A1adQhQqSE7***r   c                      [        SS[        -  -  5      [        S[        S-   -  5      :X  d   e[        SS[        -  -  5      [        S[        S-   -  5      :X  d   eg rP  )ro   r   rk   r   r   r   test_H1r    sR    AadFxAE
3333Qq!tVQU 4444r   c                  N    [        SS[        -  -  5      S[        S-   -  :X  d   eg )Nr   r   )rl   r   r   r   r   test_H2r    s%    1q!t8AE
***r   c                  6    S[         [         S-   -  -  S:X  d   eg Nr2  r   r   r   r   r   test_H3r    s    !QU)!!!r   c                      [        S[        -  S-
  5      n [        U 5      [        L d   eU R                  S   S:X  d   eU R                  S   S[        -  S-
  :X  d   eg )Nr   r   r   r   r   r   r   )r]   r   typer   args)exprs    r   test_H4r    sZ    !A#(D:99Q<199Q<1Q37"""r   @   r     r   ~   r   .   r   r   <   Q   r     r   r   r   '   S   4   6   r   F   r      r   [   V   c                  B    [        [        [        [        5      S:X  d   eg Nr   )r^   p1p2r   r   r   r   test_H5r    s    r2q>Qr   c                      [        [        [        [        -  5      [        [        [        -  5      5      [        :X  d   eg r   )r^   r   r  ro  r  r   r   r   test_H6r    s'    vb1f~vb1f~.!333r   c                     S[         -  [        S-  -  [        S-  -  S[         S-  -  [        S-  -  [        S-  -  -
  S[         S-  -  [        S	-  -  [        S
-  -  -   S[         S-  -  -
  S-   n S[         S-  -  [        S-  -  [        S-  -  S[         S-  -  [        S-  -  [        S-  -  -   S[         S	-  -  [        S-  -  [        S-  -  -   S[        S-  -  [        -  -   n[        X[         [        [        5      S:X  d   eg )Nr  r   r   r   r   r   r   r  r   r   r   r   r  r   r  r   r   r   r   P   r  r   r   yzr^   r  r  s     r   test_H7r    s    	AaeAqD2ae8AqD=A-	-!R%1QT0A	AAaeG	Ka	OB	AqDAae	bAgadl1a4/	/"QT'!R%-12D	Dr!R%xPQz	QBrq!Q1$$$r   c                     S[         -  [        S-  -  [        S-  -  S[         S-  -  [        S-  -  [        S-  -  -
  S[         S-  -  [        S	-  -  [        S
-  -  -   S[         S-  -  -
  S-   n S[         S-  -  [        S-  -  [        S-  -  S[         S-  -  [        S-  -  [        S-  -  -   S[         S	-  -  [        S-  -  [        S-  -  -   S[        S-  -  [        -  -   nS[         S-  -  [        S-  -  [        S-  -  S[         S
-  -  [        S-  -  [        S-  -  -
  S[         S-  -  [        S-  -  [        S-  -  -   n[        X-  X-  [         [        [        5      U:X  d   eg )Nr  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  ro  s      r   test_H8r    sN   	AaeAqD2ae8AqD=A-	-!R%1QT0A	AAaeG	Ka	OB	AqDAae	bAgadl1a4/	/"QT'!R%-12D	Dr!R%xPQz	QB
1b5AaebAgadl1b5002ae8AqD=A3EEArvrvq!Q'1,,,r   c                      [        SSS9n SU [        S-   -  -  U [        S-   -  -
  nSU [        S-   -  -  SU [        -  -  -   n[        X5      U [        -  :X  d   eg )Nr   F)zeror   r   r   r   )r   r   r^   )r   r  r  s      r   test_H9r    s`    sA	
1q1u:AE
	"B	
1q1u:!Q$	Br;!Q$r   c                      S[         S-  -  S[         S-  -  -   [         S-  -   [         -
  S-
  n [         S-  S[         S-  -  -
  [         -   S-   n[        X[         5      S:X  d   eg )Nr   r   r   r   r   )r   r_   r  s     r   test_H10r    sb    	
1a4!AqD&1a4	!	#a	'B	
A!Q$	Q	BRQ1$$$r   c                  ^    [        [        [        -  [        [        -  [        5      S:X  d   eg Nr   )r_   r  ro  r  r   r   r   r   test_H11r    s!    R!VR!VQ'1,,,r   c                      [         S-  S-
  n [         S-  S[         -  -   S-   n[        X-  5      [         S-
  [         S-   -  :X  d   eg )Nr   r   )r   ro   )r.  dens     r   test_H12r    sE    
Q$(C
Q$1*q.CCGQQ///r   c                      [        [        [        5      S-
  [        [        S-  5      S-   -  5      [        [        S-  5      S-
  :X  d   eg rU  )ro   r.   r   r   r   r   test_H13r    s:    SVaZC!HqL12c!A#hlBBBr   c                     [         S-   S-  n [        U 5      nUSS[         -  -   S[         S-  -  -   S[         S-  -  -   S[         S-  -  -   S	[         S
-  -  -   S[         S-  -  -   S[         S-  -  -   S[         S-  -  -   S[         S-  -  -   S[         S-  -  -   S[         S-  -  -   S[         S-  -  -   S[         S-  -  -   S[         S-  -  -   S	[         S-  -  -   S[         S-  -  -   S[         S-  -  -   S[         S-  -  -   S[         S-  -  -   [         S-  -   :X  d   e[        U[         5      nUSS[         -  -   S[         S-  -  -   S [         S-  -  -   S[         S-  -  -   S![         S
-  -  -   S"[         S-  -  -   S#[         S-  -  -   S$[         S-  -  -   S%[         S-  -  -   S%[         S-  -  -   S$[         S-  -  -   S#[         S-  -  -   S"[         S-  -  -   S![         S-  -  -   S[         S-  -  -   S [         S-  -  -   S[         S-  -  -   S[         S-  -  -   S[         S-  -  -   :X  d   e[        U5      SS[         -   S-  -  :X  d   eg )&Nr   r     r   it  r   i  r   i<  r   ih  r   i. r   i r   i r   i r   r   r   r   r  r  r   r      r   i|  i\  iK  ip iG i` i i1 )r   r   r   r]   )rY  epdeps      r   test_H14r    s   	
Q2A	B!bd(SAX%QT	1DAI=ad
J
1*QTz"$*1a4K028A+>@Fq"uM
B,2&(-ae46;ArEkBDI!R%KP q"u* ArEz" %(2I. 131b59 <=b5A B B B r1+C2A:QT	)E!Q$J6q!tC
A+q!t$&-adl35<QT\BDKAqDLQ
!R%-!!R%-(*1!R%-8:@B,G B, q"u% (-QU{3 6:!R%Z@ CFae)L QU(	   
 #;"a!eb[.(((r   c            	          [        [        [        [        S-  [        S-  -   S-
  5       V s/ s H  n [        U -
  PM     sn 6 5      [        S-  [        S-  -   S-
  :X  d   eg s  sn f )Nr   r   r   )ro   r   r   r   rs    r   test_H15r    s[    C!Q$A+/)BC)BA!a%)BCDEAPQSTPTWXXXXCs   A"c                  n   [        [        S-  S-
  5      [        S-
  [        S-   -  [        S-  S-   -  [        S-  [        S-  -
  [        S-  -   [        -
  S-   -  [        S-  [        S-  -   [        S-  -   [        -   S-   -  [        S-  [        S-  -
  [        S-  -   [        S-  -
  S-   -  [        S-  [        S	-  -
  [        S
-  -   [        S-  -
  S-   -  [        S-  [        S	-  -   [        S
-  -   [        S-  -   S-   -  [        S-  [        S-  -
  [        S-  -   [        S
-  -
  S-   -  :X  d   eg )Nd   r   r   r   r   r   r   r  r  r   r   (      r]   r   r   r   r   test_H16r    sL   !S&1*1q51q5/1a4!8"<adQTk
Q$??? #A1q!t+a/!3#567dQTkAqD6H
Q$77#UQU]QU*QT1A5#7892228M
Q$99# UQU]QU*QU2Q6#8 9 9 9r   c                  |    [        [        [        [        [        -  5      5      [        [        -  -
  5      S:X  d   eg r  )ro   r]   r   r  r  r   r   r   test_H17r    s+    F6"r'?+be34999r   c                  (   [        S[        S-  -  S[        S-  -  -   S[        S-  -  -   S[        -  -   S-   5      n S[        -  S[        -  -   S[        -  S[        -  -
  -  [        S-   S[        -  -
  -  [        S-   S[        -  -   -  nX:X  d   eg )	Nr   r   r   M   r   r     r   )r]   r   r   r   s     r   test_H18r  !  s     !AqD&1QT6/Bq!tG+bd2S89DaC!A#I!ac	"AEAaCK0!a%!A#+>D<<r   c                      [        S5      n [        U S-
  5      R                  [        U S-  S-
  5      5      U S-   :X  d   eg )Nar   r   )r    r\   r   r  s    r   test_H19r  )  s<    AA;d1a4!8n-Q666r   c                      [        S5      e)NzXlet a**2==2; (x**3 + (a-2)*x**2 - (2*a+3)*x - 3*a) / (x**2-2) = (x**2 - 2*x - 3) / (x-a)r"  r   r   r   test_H20r  /  s    
 C D Dr   c                      [        S5      e)Nzuevaluate (b+c)**4 assuming b**3==2, c**2==3.                               Answer is 2*b + 8*c + 18*b**2 + 12*b*c + 9r"  r   r   r   test_H21r  5  s    
 J K Kr   c                      [        [        S-  S[        S-  -  -
  S-   SS9[        S-
  S-  [        S-   S-  -  :X  d   eg )Nr   r   r   r   r   modulusr  r   r   r   test_H22r  ;  sA    !Q$1a4-!#Q/AEA:Q
3JJJJr   c                      [         S-  [         -   S-   n [         S-  [         -   S-   [         S-  [         S-  -
  [         S-  -   [         S-  -
  [         S-  -   [         S-  -
  S-   -  n[        U S	S
9U:X  d   eg )Nr   r   r   r   r   r   r   r   i  r  )r   r]   r   r   s     r   test_H23r  ?  ss    	2	AA	
AA!Q$A+1,q!t3ad:QTAAEFA!U#q(((r   c                      [        [        R                  R                  SS9SS9n [	        [
        S-  S[
        S-  -  -
  S-   U S	9[
        U -
  [
        S-   U -
  -  [
        S-
  U -   -  [
        U -   -  :X  d   eg )
NT)funcphi)aliasr   r   r   r   	extension)r   r   GoldenRatior   r]   r   )r  s    r   test_H24r  E  sx    
!--..D.9
GC!Q$1a4-!#s3	
S1q53;Q-q3w78 8 8r   c                  ~    [         S[        S-  -  -
  S[        S-  -  -   S-  n [        [	        U 5      5      U :X  d   eg )Nr   r   r  r   r  r  r]   r   )es    r   test_H25r  K  s<    	
Qq!tVa1f	#A&)!!!r   c                  ,   [        [        [        5      S[        [        5      S-  -  -
  S[        [        5      S-  -  -   S-  5      n [        U SS9[        [        5      * S[        [        5      S-  -  -   S[        [        5      S-  -  -
  S-  :X  d   eg )Nr   r   r  F)r   )r   rB   r   r>   r  rC   r  r]   )r   s    r   test_H26r  P  sy    A3q619$qQ{2R78A!E"Aw3q619'<qQ{'JR&OOOOr   c                     S[         -  [        S-  -  [        S-  -  S[         S-  -  [        S-  -  [        S-  -  -
  S[         S-  -  [        S	-  -  [        S
-  -  -   S[         S-  -  -
  S-   n S[         S-  -  [        S-  -  [        S-  -  S[         S-  -  [        S-  -  [        S-  -  -   S[         S	-  -  [        S-  -  [        S-  -  -   S[        S-  -  [        -  -   nS[        -  [        S-  -  S[         S	-  -  [        S	-  -  [        S-  -  S[         S-  -  [        S-  -  -   S[        -  [         S-  -  [        S-  -  -   S[        S-  -  -   -  S[         S-  -  S[         S-  -  [        S-  -  [        S-  -  -   S[         S-  -  [        S	-  -  [        S
-  -  -
  S[         -  [        S-  -  [        S-  -  -
  S-
  -  n[        [	        X-  5      5      U:X  d   eg )Nr  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   hs      r   test_H27r  U  s   
1QU
1a4"QU(1a4-1,,qBwq!t|AqD/@@1QU7JQNA
1a41QUR1WQT\!Q$..AqDBq!t1CCbBhqjPA
1QT	
AqD&A+ad
R1WQT\
)BqDAIaeO
;bAg
E	G
ArE'Bq"uHQTM!Q$&
&1b5Aad):
:RT!R%Z1_
Lq
P	RA &+!###r   c                      [        S5      e)Nzgexpand ((1 - c**2)**5 * (1 - s**2)**5 * (c**2 + s**2)**10) with c**2 + s**2 = 1. Answer is c**10*s**10.r"  r   r   r   test_H28r  ^  s    
 L M Mr   c                      [        S[        S-  -  S[        -  [        -  -
  S[        S-  -  -   SS9[        [        -   [        [        -
  -  :X  d   eg )Nr   r   r  r  r   r  )r]   r   r  r   r   r   test_H29r  d  sD    !AqD&2a46/Bq!tG+Q7AEAE?JJJr   c                  <   [        [        S-  [        S-  -   [        S5      S9n [        [        -   [        [        [	        SS5      * [        S5      S-  [
        -  -
  -  -   -  [        [        [	        SS5      * [        S5      S-  [
        -  -   -  -   -  nX:X  d   eg )Nr   r  r   r   )r]   r   r  r8   r   r   )r   answers     r   test_H30r  i  s    !Q$A+b2D!ea!a1gXQ	!3445q1qAwhaQRST>T;U7UVF>>r   c                      [         S-  S[         -  -   S-   [         S-  S[         S-  -  -   S[         -  -   S-   -  n S[         S-   S-  -  S[         S-   -  -
  S[         S-   -  -   n[        U 5      U:X  d   eg )Nr   r   r   r   r   )r   r[   r  s     r   test_H31r  o  su    	
A!a!Q$1a4-!A#-12A	QUQJa!e$qAE{2A8q==r   c                      [        S5      e)Nzp[A*B*C - (A*B*C)**(-1)]*A*C*B (product                               of a non-commuting product and its inverse)r"  r   r   r   test_H32r  u  s    
 K L Lr   c                      [        SSS9u  pn[        U [        X5      5      [        U[        X 5      5      -   [        U[        X5      5      -   R                  5       R                  5       S:X  d   eg )NzA, B, CF)commutativer   )r    r   doitr   )ABCs      r   test_H33r  {  sj    iU3GA!q*Q*+
Q
1(
)*
Q
1(
)*+/46&&(a@ @ @r   c                  z    [        [        [        SS5      -  5      [        SS[        S5      -  -   5      * :X  d   eg )Nr   r   r   r   r   )rC   r   r   r8   r   r   r   test_I1r    s3    r!Ar({Q47] 33333r   c                  X    [        S[        S5      -   S-  5      [        S5      * :X  d   eg )Nr   r   r   r   )r8   r>   r   r   r   test_I2r    s'    SVQCF7***r   c                      [        [        [        -  5      [        S[        -  S-
  [        -  S-  5      -   S[        -  S-
  :X  d   eg )Nr   r   r   r2  )r>   r   r   rB   r   r   r   test_I3r    s:    qt9sAaC!GR<>**rAgk999r   c            
         [        [        [        [        [        [        -  5      -  5      [	        [        S-  [        [        [        -  5      -  5      -   [
        R                  " [        5      5      S[        -  S-
  :X  d   eg )Nr   r2  r   )r   r>   r   r   rB   r   r   r   r   r   test_I4r    sT    #bQrTl#c"Q$s1R4y.&99199Q<HRRSGVWKWWWr   c                      [        [        S-  S-  [        S-  S-  -   [        S-  S-  -   [        S-  -
  [        -  5      S:X  d   eg )Nr   r   r   r   r  r   )rB   r   r   r   r   r   test_I5r    sD    1QAa!Q$q&(1R4/256!;;;r   c                      [        S5      e)NzHassuming -3*pi<x<-5*pi/2, abs(cos(x)) == -cos(x), abs(sin(x)) == -sin(x)r"  r   r   r   test_I6r    s    
h
iir   c                      [        S[        -  5      [        [        5      -  [        [        5      S-  S[        [        5      S-  -  -
  :X  d   eg Nr   r   r>   r   rB   r   r   r   test_I7r    s9    qs8CF?c!fai!CFAI+5555r   c                      [        S[        -  5      [        [        5      -  S[        S[        -  5      -  S-
  :X  d   eg )Nr   r   r   )r>   r   r   r   r   test_I8r    s0    qs8CF?aAaCj1n,,,r   c                      [        S[        -  5      [        [        5      -  [        [        5      S-  S[        [        5      S-  -  -
  :X  d   eg r  r  r   r   r   test_I9r     s;     qs8CF?c!fai!CFAI+5555r   c                      [        [        [        5      S-  S-   [        [        5      S-  -
  [	        [        5      S-  [        [        5      S-  -   S-
  -  5      [
        L d   eg Nr   r   r	  )rq   rC   r   r>   rB   r   r   r   r   test_I10r#    sN    SVQY]SVRZ/CFAIA	4IA4MNOSVVVVr   hangsc                      [        [        [        5      S-  S-   [        [        5      S-  -
  [	        [        5      S-  [        [        5      S-  -   S-
  -  [        S5      S:w  d   eg )Nr   r   r	  r   )r`   rC   r   r>   rB   r   r   r   test_I11r&    sU     #a&!)a-#a&"*,QSVQY1F1JKQPQRVWWWWr   c                      [        [        [        5      S-  S-   [        [        5      S-  -
  [	        [        5      S-  [        [        5      S-  -   S-
  -  [        5      n U [
        L d   eg r"  )r   rC   r   r>   rB   r   )ress    r   test_I12r)    sT     A	AA
*s1vqy3q619/Dq/HI1
MC#::r   c                  :    [        S5      [        SS5      :X  d   eg )Nr   ii  )r%   r   r   r   r   test_J1r+    s    R=AeSM)))r   c                      [        [        [        [        S-  5      [        5      [        [        [        S-  5      [	        [        [        S-  5      -
  [        -  :X  d   eg Nr   )r   rF   r   r  rG   r   r   r   test_J2r.    sF    
1ad#Q'Jq!Q$,?*QPQSTPTBU,UWX+XXXXr   c                      [        S5      e)NzDJacobi elliptic functions: diff(dn(u,k), u) == -k**2*sn(u,k)*cn(u,k)r"  r   r   r   test_J3r0    s    
d
eer   c                  Z    [        [        SS5      5      S[        [        5      -  :X  d   eg )Nr2  r   r	  )rH   r   r8   r   r   r   r   test_J4r2    s"    2q?bbk)))r   c                      [        S[        SS5      5      [        S5      * [        S5      [        -  S-  -
  [
        -
  [        [        S5      5      -
  :X  d   eg )Nr   r   r   r   )rI   r   r/   r8   r   r   r   r   r   test_J5r4    sG    Q!Q SVGd1gbjl$:Z$G#dSTg,$VVVVr   c                  r    [         R                  " SS5      R                  [        SS5      5      (       d   eg )Nr   y      ?      ?z0.04157988694396212z0.24739764151330632)mpmathrD   r/  r   r   r   r   test_J6r7    s-    >>!V$'',ACX(YZZZZr   c                  p    [        [        [        SS5      [        S-  5      5      S[        S-  -  :X  d   eg )Nr
  r   r   )ro   rD   r   r   r   r   r   test_J7r9    s.    GAbGRT*+r2q5z999r   c                      [        [        SS5      [        5      n [        [        5      [        -  [	        [        5      -
  [        [        [        -  S-  5      -  n[        [        U 5      U-
  5      S:X  d   eg Nr   r   r   )	rD   r   r  rB   r>   r8   r   ro   r   )rY  ro  s     r   test_J8r<    sW    !AA	QCF	DAaL(AKNA%&!+++r   c                  t    [        S[        5      R                  [        5      [        S[        5      * :X  d   eg )Nr   r   )rD   r  r   r   r   r   test_J9r>    s)    1a=a gamO333r   c                      [        SSS9u  p[        XS5      SU -  [        [        5      -  [	        X-
  S-  S-   5      -  [	        U* U -
  S-   S-  5      -  :X  d   eg )Nzmu, nuTr   r   r   r   )r    rK   r8   r   rH   )munus     r   test_J10rB    se    Xt,FB"!$2d2hubgq[1_7M(MeVXUX[]U]`aUacdTdNe(eeeer   c            	          [        [        SS[        5      5      [        [        SS5      * [	        S[        S-  -
  5      -  S[        S-  -  S-
  -  5      :X  d   eg )Nr   r   r   r   )ro   rK   r   r   r8   r   r   r   test_J11rD    sT    N1a+,!Aq'$q1a4x.9PRSTUWXTXRX[\R\9]0^^^^r   c                      [        [        S[        5      S[        -  [        S[        5      -  -
  [        S[        5      -   5      S:X  d   eg )Ni  r   i  i  r   )ro   rL   r   r   r   r   test_J12rF    s?    JtQ'!A#jq.A*AAJtUVDWWX\]]]]r   c                  D    [        SSSS9n [        U S5      SU -  :X  d   eg )Nr  TF)r   negativer2  )r    rL   r  s    r   test_J13rI    s)    TE2Aaa'''r   c                      [        [        R                  [        R                  /[        SS5      /[        S-  5      n [        U 5      [        [        5      [        -  :X  d   eg r  )rJ   r   r~  r   r  rj   r<   )rY  s    r   test_J14rK    sC    qvvqvv1a	1a40Aq>T!WQY&&&r   c                      [        S5      e)NzcF((n+2)/2,-(n-2)/2,R(3,2),sin(z)**2) == sin(n*z)/(n*sin(z)*cos(z)); F(.) is hypergeometric functionr"  r   r   r   test_J15rM    s    
  D  E  Er   c                      [        S5      e)Nz&diff(zeta(x), x) @ x=0 == -log(2*pi)/2r"  r   r   r   test_J16rO    r;  r   c            
      p   [        [        [        S-   S-  5      [        [        S-
  S-  5      -  [	        [        5      [        [        [        S-
  5      [        5      -  -
  [        SS45      S[        [        SS5      5      -  [        [        [	        [        5      [        5      [        S5      -   :X  d   eg )Nr   r   r   r   r   r   )	r   r   r   rE   r   r   r   r   r	   r   r   r   test_J17rQ    s    QAqy\*a!eQY"77!A$tJqSTuDUWX?Y:YY\]_`bc[deijklmnoprsmtkuiux|  ~H  IJ  KL  IM  OP  ~Q  ST  VW  yX  jX  X  X  Xr   c                      [        S5      e)Nz define an antisymmetric functionr"  r   r   r   test_J18rS    s    
@
AAr   c                      [        SSS9u  p[        U [        U-  -   5      [        U5      * [        U 5      -   :X  d   e[        U [        U-  -   5      [        U 5      [        U5      -   :X  d   eg )Nzz1, z2Tr  )r    r+   r   r*   )z1z2s     r   test_K1rW    s_    Xt,FBb1R4i=RVGbf,,,,b1R4i=BrFRVO+++r   c            
          [        S[        S5      -
  [        [        S[        S5      -  S-
  5      -  -   5      S:X  d   eg )Nr   r   r   r  r   )absr8   r   r   r   r   test_K2rZ    s8    q47{QtAd1gIN3334999r   c                      [        SSS9u  p[        [        SU [        U -  -   [        U-  -   -  5      5      S[	        U S-  [        U -  U-   S-  -   5      -  :X  d   eg )Nza, bTrealr   r   )r    ro   rY  r   r8   r  bs     r   test_K3r`     s\    6%DAC1qs7QqS=)*+qadacAg\6I1J/JJJJr   c            	          [        SS[        -  -   5      R                  SS9[        S5      [        [        [	        SS5      5      -  -   :X  d   eg )Nr   r   Tr  r   )r/   r   r   r=   r   r   r   r   test_K4rb  &  sA    q1Q3w<t,A4!Q=0HHHHr   c                  (   [        SSS9u  p[        U [        U-  -   5      R                  SS9[	        SU -  5      [        SU -  5      [        SU-  5      -   -  [        [        SU-  5      -  [        SU -  5      [        SU-  5      -   -  -   :X  d   eg )Nzx, yTr\  r  r   )r    rC   r   r   rB   r>   r1   r2   r   r  s     r   test_K5re  *  s    6%DAq1Q3w<t,QqS3qs8QqS	< 2tAaCy[#ac(T!A#Y"6728 9 9 9r   c                     [        [        [        -  [        [        5      S-  -  5      [        [        5      [        [        5      -  -  [        [        [        -  5      [        [        5      -  :X  d   e[        [        [        -  [        [        5      S-  -  5      [        [        5      [        [        5      -  -  [        [        5      :w  d   eg r-  )r8   r   r  rY  r  r   r   r   test_K6rg  0  s    !CFAIQA/4!9T!W3DDDD!CFAIQA/47:::r   c                      [        SSSS9n [        [        U -  [        [        5      S-  -  5      [        [        5      [        [        5      -  -  n[        U5      nU[        U 5      :X  d   eg )Nr  TF)r]  rH  r   )r    r8   r   rY  r  ro   )r  r  sexprs      r   test_K7rj  5  sV    $/A!CFAIQA/DTNEDGr   c                      [        SSS9n [        [        SU -  5      S[        U 5      -  -
  5      S:w  d   e[        SSSS9n [        [        SU -  5      S[        U 5      -  -
  5      S:X  d   eg )Nr  Tr  r   r   F)r  rH  r    ro   r8   r  s    r   test_K8rn  <  sl    T"AD1I$q'	)*a///TE2AD1I$q'	)*a///r   c                  p    [        SSS9n [        [        SU -  5      S[        U 5      -  -
  5      S:X  d   eg )Nr  Tr  r   r   rl  rm  s    r   test_K9rq  C  6    d#AD1I$q'	)*a///r   c                  p    [        SSS9n [        [        SU -  5      S[        U 5      -  -   5      S:X  d   eg )Nr  T)rH  r   r   rl  rm  s    r   test_K10rt  H  rr  r   c                  F    [        S5      S[        SS5      -  -
  S:X  d   eg )Ni  i;r   r   r   r8   r   r   r   r   test_L1rw  Q  s$    91a((A---r   c                  F    [        S5      S[        SS5      -  -
  S:X  d   eg )Nre  l   ^|E!or   r   r   rv  r   r   r   test_L2ry  U  s$    <9qAw..!333r   c            
          [        S[        SS5      -  S[        SS5      -  -   S-  SS[        SS5      -  S[        SS5      -  -   -  -
  S-
  5      S:X  d   eg )Nr   r   r   r   r   r   )ro   r   r   r   r   test_L3r{  Y  s]    Q!QZ!Qq!W*,q01a1aj1a1g:6M3NNQRRSWXXXXr   c                      [        [        [        5      S-  [        [        5      [        [        5      S-  -  -   [        [        5      -
  5      S:X  d   eg r;  )rq   r>   r   rB   r   r   r   test_L4r}  ]  s<    CFAIAs1vqy 003q69:a???r   c                      [        [        [        SS5      [        -  [        S-  -   5      5      [        [        [        5      5      -
  S:X  d   eg )Nr   r   r   r   )r/   rC   r   r   r   r0   r   r   r   test_L5r  a  s:    s1Q719r!t#$%c!f5:::r   c                      [        [        [        S-  [        S-  -   5      5      [	        [        [        5      5      -
  R                  [        5      R                  [        S05      S:X  d   eg )Nr   r   r   )r/   rC   r   r   r0   r   subsr   r   r   test_L6r  f  sL    AaC"Q$J 5Q=066q9>>1vF!KKKr   c                      [        [        S[        [        5      -  S-   [        S[        -  S[        [        5      -  -   S-   5      -  5      5      S:X  d   eg )Nr   r   r   r   )ro   r/   r8   r   r   r   r   test_L7r  j  sE    C47QacAd1gIo.A)BCDEJJJr   c            	      6   [        S[        -  S[        [        5      -  -   S-   [        [        5      S[        [        5      -  S-   -  -  S[        [        5      -  S-   SS[        [        5      -  S-   -  -  -  S[        [        5      -  -
  S-
  5      S:X  d   eg )Nr   r   r   r   )ro   r   r8   r   r   r   test_L8r  o  s    QqS1T!W9_q(DGQtAwY],CD
DG)a-1aQi!m,	-.01$q'	:<=> ?BCD D Dr   c                      [        SSS9n [        SSU -
  -  [        U 5      -  [        U 5      -  [	        U [
        -  S-  5      -  [
        S-  [        SU -
  5      -  -
  5      S:X  d   eg )Nr  Tr  r   r   r   )r    ro   rH   ry   r>   r   rm  s    r   test_L9r  u  sc    T"AAAJuQx'Q/AbDF;b!eDQK>OOPTUUUUr   c                  x    [        [        S5      S-  [        SS5      -   [        [        S-  S-   S5      :X  d   eg rP  )r   r   r   r   r   test_M1r  }  s5    Aq>!hq!n,1q!0DDDDr   c                      [        S[        S-  -  S[        S-  -  -
  S[        -  -   S-
  [        5      n [        S U  5       5      (       d   eg )Nr   r  r   !   r   c              3   R   #    U  H  oR                  S S9R                  v   M     g7f)Tr  N)r   is_real).0r  s     r   	<genexpr>test_M2.<locals>.<genexpr>  s     ;s!xxx%--ss   %')r   r   all)sols    r   test_M2r    sJ     1QT6Bq!tG#bd*R/
3C;s;;;;;r   c                  
   [        [        S-  S[        S-  -  -
  S[        S-  -  -
  S[        S-  -  -   S[        -  -
  S-
  [        5      [        S	[        S5      -   S	[        S5      -
  [        S5      7S
-
  [        [        S5      -  S-  -   [        S5      7S
-
  [        [        S5      -  S-  -
  [        S5      * S
-
  [        [        S5      -  S-  -   [        S5      * S
-
  [        [        S5      -  S-  -
  5      :X  d   eg )Nr   r   r   r      r   $   r   gr(?gr(?g<n=e?)r   r   re   r8   r   r   r   r   test_M5r    s   AqD1QT6MAadF*R1W4r!t;b@!D	RZ]abc]dRdfnquvwqxfx{  AB  |C  {C  FP  {P  ST  UY  Z[  U\  S\  ]e  Se  {e  hl  mn  ho  go  r|  g|  @  AE  FG  AH  H  IQ  Q  gQ  TX  YZ  T[  S[  ^h  Sh  kl  mq  rs  mt  kt  u}  k}  S}  @D  EF  @G  G  JT  T  WX  Y]  ^_  Y`  W`  ai  Wi  i  Ij  j  j  jr   c                     [        [        [        S-  S-
  [        5      5      [        SS5       V s1 s HI  n [	        U [
        -  [        SS5      -  5      [        [        U [
        -  [        SS5      -  5      -  -   iMK     sn :X  d   eg s  sn f )Nr   r   r   r   )	setr   r   r   r>   r   r   r   rB   r  s    r   test_M6r    sv    x1q!$%:?1+F+QQrT!Aq'\	Qs1R4!Q<00	0+FG G GFs   AB
c                     [        [        [        S-  S[        S-  -  -
  S[        S-  -  -   S[        S-  -  -
  S[        S-  -  -   S	[        S
-  -  -
  S[        S-  -  -   S[        -  -
  S-   [        5      5      S[        S5      [        -  [        [        SS[        S
5      -  -   5      * S
-   5      -  S-  -
  S[        S5      [        S[        [        S
S[        S
5      -  -   5      -  -   5      -  S-  -
  S[        S5      [        -  [        [        SS[        S
5      -  -   5      S
-   5      -  S-  -
  S[        S5      [        S[        [        S
S[        S
5      -  -   5      -  -
  5      -  S-  -
  S[        S5      [        -  [        [        SS[        S
5      -  -   5      S
-   5      -  S-  -   S[        S5      [        S[        [        S
S[        S
5      -  -   5      -  -
  5      -  S-  -   S[        S5      [        S[        [        S
S[        S
5      -  -   5      -  -   5      -  S-  -   S[        S5      [        -  [        [        SS[        S
5      -  -   5      * S
-   5      -  S-  -   1:X  d   eg )Nr   r   r  r   \   r      r      r      r      r  r   r  )r  rr   r   r8   r   r   r   r   test_M7r    sD   uQTAadF]R1W,r!Q$w6QTAC1HLAqDq5 " #	DGAIdDaQi001455a77	DGDaQ47] 33344Q66	DGAId4QtAwY/!344Q66	DGDaQ47] 33344Q66	DGAId4QtAwY/!344Q66	DGDaQ47] 33344Q66	DGDaQ47] 33344Q66	DGAIdDaQi001455a77	'


 

 

r   c                  >   [        S5      n [        SSS9n[        [        SU -  5      S[        U 5      -  -   S-   U-
  U [        R
                  5      [        [        SU-   S[        U5      -  -
  5      S-  [        SU-   S[        U5      -  -   5      S-  5      :X  d   eg )Nr   r  Tr  r   r   )	r   r    r   r.   r   Realsre   r/   r8   )r   r  s     r   test_M8r    s    sAT"AC!HqQx'!+a/AGG<#a!eaQi'(*CA$q'	0A,B1,DEF F Fr   c                      [        S5      e)Nz6solveset(exp(2-x**2)-exp(-x),x) has complex solutions.r"  r   r   r   test_M9r    s     V
WWr   c                  n    [        [        [        5      [        -
  [        5      [        S5      * /:X  d   eg )Nr2  )rr   r.   r   r-   r   r   r   test_M10r    s'    Q!QXb\M?222r   c                  h    [        [        [        -  [        -
  [        5      [        SS5      :X  d   eg r  )r   r   re   r   r   r   test_M11r    s&    AqD1Ha Ib!$4444r   c                     [        [        S-   [        [        5      S-  S-   S-  -  [        S[        -  5      S-  -  [        5      S[        S-  [        S-  [
        * [        S[        S5      -   5      -  [
        [        S[        S5      -   5      -  [        [
        [        S[        S5      -   5      -  -
  [        [
        [        S[        S5      -   5      -  -   /:X  d   eg )Nr   r   r   r2  r   )rr   r   rB   r>   r   r   r/   r8   r   r   r   test_M12r    s     !a%#a&!)a-!++C!HaK7;
BqD"Q$3s1tAw;aAQK(8&8
Qs1tAw;aAQK(8&8!8@   r   c                      [        S5      n [        [        [        5      [	        [        5      -
  [        5      [        [        X [        -  [        [        SS5      -  -
  5      [        R                  5      :X  d   eg )Nr   r   r   )r   r   rB   r   r>   rd   r   r   r   r   Integersr  s    r   test_M13r    sS    c
AQ#a&!,R4"QqRSW*CT9UWXWaWa0bbbbr   c            	          [        S5      n [        [        [        5      S-
  [        5      [	        [        X [        -  [        S-  -   5      [        R                  5      :X  d   eg )Nr   r   r   )	r   r   rC   r   rd   r   r   r   r  r  s    r   test_M14r    sD    c
AQ!Q'8F1dRTk4JAJJ+WWWWr   c                    ^ [        S5      n [        [        [        5      [        R
                  -
  5      m[        U4S j[        [        [        U SU -  [        -  [        S-  -   5      [        R                  5      [        [        U SU -  [        -  [        [        SS5      -  -   5      [        R                  5      5      [        [        [        U SU -  [        -  [        [        SS5      -  -   5      [        R                  5      [        [        U SU -  [        -  [        S-  -   5      [        R                  5      5      4 5       5      (       d   eg )Nr   c              3   F   >#    U  H  nTR                  U5      v   M     g 7fr   )dummy_eq)r  r   gots     r   r  test_M15.<locals>.<genexpr>  s#      : )91s||A )9s   !r   r   r   )r   r   rB   r   r   r~  anyrh   rd   r   r   r  r   )r   r  s    @r   test_M15r    s    c
A
3q6AFF?
#C :hva1R"Q$/<1Q3r6BqAwJ./<	>hva1R"Qq!W*!45qzzB1Q3r6BqD=)1::6	8)9 : : : : :r   c                      [        S5      n [        [        [        5      [	        [        5      -
  [        5      [        [        X [        -  5      [        R                  5      :X  d   eg )Nr   )
r   r   rB   r   rC   rd   r   r   r   r  r  s    r   test_M16r    s?    c
ACFSVOQ'8F1dOQZZ+PPPPr   c                  |    [        [        [        5      [        [        5      -
  [        5      [	        S5      :X  d   eg r  )r   r<   r   r=   re   r   r   r   test_M17r    s(    a47*A.)A,>>>r   c                      [        [        [        5      [        [        5      -
  [        5      [	        [        [        S5      S-
  S-  5      5      :X  d   eg )Nr   r   r   )r   r:   r   r=   re   r8   r   r   r   test_M18r    s:    a47*A.)D$q'A+q<Q2RRRRr   c                  h    [        [        S-
  [        [        SS5      -  -  [        5      S/:X  d   eg Nr   r   r   )rr   r   r   r   r   r   test_M19r    s,    !a%AaG#Q'A3...r   c                  r    [        [        [        S-  S-   5      [        -
  S-   [        5      [        :X  d   eg rP  )r   r8   r   EmptySetr   r   r   test_M20r    s-    DANQ&*A.(:::r   c                  f    [        [        [        [        5      -   S-
  5      [        S5      :X  d   eg rP  )r   r   r8   re   r   r   r   test_M21r    s%    AQK!O$	!444r   c            	          [        S[        [        5      -  S[        [        SS5      -  -  -   S-
  5      [	        [        SS5      5      :X  d   eg )Nr   r   r   r   r   )r   r8   r   r   re   r   r   r   test_M22r    s@    Ad1gI!Qq!W*,q01YqBx5HHHHr   c            	         [        SSS9n [        U S[        SU S-  -   5      -  -
  5      [        * [        [        R
                  [        S5      S-  -   5      -  [        [        SS5      [        S5      S-  -   5      /:X  d   eg )Nr   Tr  r   r   r   r2  )r    rr   r8   r   r   r~  r   rp  s    r   test_M23r    s~    T"AQtA1H~%%&	
4a"##T(2q/DGAI*E%F+H H H Hr   c                      [        S[        [        S5      S[        -  -  -
  [        5      n [	        S[        [        S-
  -  -  S5      nU S   R                  5       UR                  5       :X  d   eg Nr   r   r   )rr   r"   r   r   r/   r   )solutionr   s     r   test_M24r    s[    Q!Q1,,a0HAq1uI"FA;6==?222r   c                      [        SSS9u  pp#[        S5      n[        XU-  -  X#U-  -  -
  U5      S   R                  5       [        X -  5      [        X-  5      -  R                  5       :X  d   eg )Nz:dTrp  r   r   )r    rr   r   r/   )r  r_  cdr   s        r   test_M25r    sh    -JA!Aa4!qD&!$Q'..0SXc!#h5F4N4N4PPPPr   c                      [        [        [        [        5      5      [        [        [        5      5      -
  5      S[	        S5      /:X  d   eg )Nr   r   )rr   r8   r/   r   r.   r   r   r   test_M26r    s2    c!fDG,-!SV<<<r   c                     [        SSS9n [        SSS9n[        [        [        [	        U [        SS5      -  U-
  5      5      S-
  5      S-   U 5      U[        [        [        S5      S-   5      5      -   [        SS5      -  /:X  d   eg )	Nr   Tr\  r_  r   r   r   r	  )	r    rr   r/   r:   r<   r   rB   r>   r.   )r   r_  s     r   test_M27r     s    $A$A T$q!Aq'zA~./!34q8! 
3s3r7Q;'((1Q7234 4 4r   c                      [        S[        -  [        [        S-
  S-  5      -   S[        S-  -  -
  [        [        R                  " [        5      S9/ SQ:X  d   eg )Nr   r   r   r   )assume)gOqg0eg?)r   r   r.   r   r]  r   r   r   test_M28r  *  sD    1sAE19~-!Q$6!&&)LPppppr   c                      [        S5      n [        [        U S-
  5      S-
  [        R                  S9[        SS5      :X  d   eg )Nr   r   r   domainr2  r   )r    r   rY  r   r  re   rp  s    r   test_M29r  /  s7    ACAJN1773yQ7GGGGr   c                      [        [        S[        -  S-   5      [        [        S-
  5      -
  [        5      [        SS5      :X  d   eg )Nr   r   r2  )r   rY  r   re   r   r   r   test_M30r  4  s9     QqS1WAE
2A6)B:KKKKr   c                      [        S[        [        5      -
  [        [        * S-
  [        S-
  5      -
  [        5      [	        [        SS5      [        SS5      5      :X  d   eg )Nr   r   r  r   )r   rY  r   r6   re   r   r   r   r   test_M31r  ;  sO     SVc1"q&!a%&88!<	!BPQ(TUVWYZT[@\\\\r   c                      [        [        S[        S-  -
  [        5      [        [        * [        S-  S-  5      -
  [        5      [        SS5      :X  d   eg )Nr   r   r   r2  r   r6   r   re   r   r   r   test_M32r  B  sF     QAXq)3rAqD!8+<<a@IbRSDTTTTr   c                      [        [        S[        S-  -
  [        5      [        S-  S-  -
  [        5      [        SSS5      :X  d   eg )Nr   r   r   r  g,r  r   r   r   test_M33r  I  s?     QAXq)AqDF2A6)B	ST:UUUUr   c                      [        SSS9n [        S[        -   U -  S[        -
  [        U 5      -  -   S[        -  -   U 5      [	        SS[        -  -   5      :X  d   eg )Nr  Tr  r   r   r   )r    r   r   r)   re   rm  s    r   test_M34r  R  sX    T"AQUaK1q5IaL"881Q3>BiPQTUVWTWPWFXXXXr   c                      [        SSS9u  p[        SU -  SU-  -
  [        U-  -
  S[        -  -   R                  5       X5      [	        S5      :X  d   eg )Nx yTr\  r   r   )r   r   )r    r   r   as_real_imagre   rd  s     r   test_M35r  X  sP    5t$DAQqS1Q3Y1_qs*88:AAYvEVVVVr   c                      [        [        [        5      S-  [        [        5      -   S-
  [        [        5      5      [        SS5      :X  d   eg )Nr   r	  r   )r   r   r   re   r   r   r   test_M36r  ]  s9     AaD!GadNQ&!-2q1AAAAr   c                  
   [        [        [        -   [        -   S-
  S[        -  [        -   S[        -  -   S-
  [        S[        -  -   [        -   S-
  /[        [        [        5      [	        [        * S-   S[        45      :X  d   eg )Nr   r   r   r   r   )r   r   r  r  re   r   r   r   test_M37r  d  sm    QUQY]AaC!GacMB$6AaC!b8HJAqRSTA261a.!" " "r   c            1         [        S5      u  pn[        XU/[        5      R                  5       n[	        SU5      nUR
                  u1  pVpxpppnnnnnnnnnnnnnnnnnn n!n"n#n$n%n&n'n(n)n*n+n,n-n.n/n0n1n2n3n4n5/ U* U-  U -  X,-  U -  -   PU* U-  U -  X/-  U -  -   PU* U-  U -  X.-  U -  -   U-   PU* X-  U -  -
  X--  U -  -   PU* U-  U -  UU-  U -  -   PU* U-  U -  UU-  U -  -   PU* U-  U -  UU-  U -  -   U-
  PU* U-  U -  UU-  U -  -   PU* U-  U -  UU-  U -  -   U-   PU* U-  U -  UU-  U -  -   UU-  U -  -
  UU-  U -  -   X-  U -  -   X)-  U -  -
  PUU0-  U -  UU0-  U -  -
  PU* U1-  U -  UU1-  U -  -   PU* U-  U -  UU-  U -  -   PU* U0-  U -  UU0-  U -  -   PUU2-  U -  UU2-  U -  -
  PUS-  U3-  U S-  -  SU-  U-  U3-  U S-  -  -
  US-  U3-  U S-  -  -   PUPU* PU* U-  U -  UU-  U -  -   X
-  U-  -
  X*-  U-  -   PU* U-  U -  UU-  U -  -   X-  U-  -   X-  U-  -
  PUU1-  U -  UU1-  U -  -
  PU* U2-  U -  UU2-  U -  -   PU4* UU4-  U -  -   UU4-  U-  -   US-  U4-  X-  -  -
  PU5* UU5-  U -  -   UU5-  U-  -   US-  U5-  X-  -  -
  PX-  U-  X%-  U-  -
  PX-  U-  X(-  U-  -
  PX-  U-  X'-  U-  -
  U-   PU* X-  U-  -   X&-  U-  -
  PX-  U-  X+-  U-  -
  PU* PUPUU-  U -  UU-  U -  -
  X
-  U-  -   X*-  U-  -
  PU U-  U-  UU-  U-  -
  PXU-  U-  -   UU-  U-  -
  PU* U U-  U-  -   UU-  U-  -
  PU U-  U-  UU-  U-  -
  PU * U-  U-  UU-  U-  -   U U-  U-  -   UU-  U-  -
  X	-  U-  -   X)-  U-  -
  PU * U0-  U-  UU0-  U-  -   PU U1-  U-  UU1-  U-  -
  PU U-  U-  UU-  U-  -
  U U-  U-  -   UU-  U-  -
  PU U0-  U-  UU0-  U-  -
  PU * U2-  U-  UU2-  U-  -   PU3* UU3-  U -  -   UU3-  U-  -   US-  U3-  X-  -  -
  PU U-  U-  UU-  U-  -
  PU * U1-  U-  UU1-  U-  -   PU U2-  U-  UU2-  U-  -
  PU S-  U4-  US-  -  SU -  U-  U4-  US-  -  -
  US-  U4-  US-  -  -   PU5* U U5-  U-  -   U U5-  U-  -   U S-  U5-  X-  -  -
  PUPU* PU * U-  U-  X-  U-  -   PU* X-  U-  -
  X-  U-  -   PU * U-  U-  X-  U-  -   PUX-  U-  -
  X-  U-  -   PUU-  U -  UU-  U -  -
  X-  U-  -
  X-  U-  -   PU * U
-  U-  X-  U-  -   PU * U-  U-  X-  U-  -   PU * U-  U-  X-  U-  -   U-   PU * U-  U-  X-  U-  -   U-
  PU * U-  U-  X-  U-  -   PU * U-  U-  UU-  U-  -   U U-  U-  -
  UU-  U-  -   PU * U-  U-  UU-  U-  -   U U-  U-  -   UU-  U-  -
  X	-  U-  -
  X-  U-  -   PU U0-  U-  UU0-  U-  -
  PU * U1-  U-  UU1-  U-  -   PU * U0-  U-  UU0-  U-  -   PU U2-  U-  UU2-  U-  -
  PU3* UU3-  U -  -   UU3-  U-  -   US-  U3-  X-  -  -
  PU * U-  U-  UU-  U-  -   PU U1-  U-  UU1-  U-  -
  PU * U2-  U-  UU2-  U-  -   PU4* U U4-  U-  -   U U4-  U-  -   U S-  U4-  X-  -  -
  PU S-  U5-  US-  -  SU -  U-  U5-  US-  -  -
  US-  U5-  US-  -  -   PUPUPU* PUU-
  PU* PUPU* PU!* PUU$-
  PU* U-   U#-
  PU* U"-
  PU'* PU0PU1* PU(PUU-
  U+-   PU* U*-   PUU)-   PUU-  U -  UU-  U -  -
  U&-
  U.-   PSU0-  PU1PU2PUU3-  U -  UU3-  U -  -
  PU-PU0PU2* PU* U3-  U -  UU3-  U -  -   PUU-   PU* U-
  PU * U-  U-  UU-  U-  -   U%-
  PU1PU2* PU * U4-  U-  UU4-  U-  -   PU U -  U-  UU -  U-  -
  U,-   PU1* PU2PU U4-  U-  UU4-  U-  -
  PU U5-  U-  UU5-  U-  -
  PU * U5-  U-  UU5-  U-  -   PU* PU* PU* PUPUU-
  PUPUPUPUU-
  PUU"-   PUU-   U#-
  PU PU0* PU1PU"* U
-
  PUU$-   PUUU%-  U -  -   UU%-  U -  -
  PU0PU2* PU* U3-  U -  UU3-  U -  -   PU(* PU#U+-
  U	-
  PU$* U*-
  PUU)-
  PUU U&-  U-  -
  UU&-  U-  -   U.-
  PU0PSU1-  PU2PU U4-  U-  UU4-  U-  -
  PU U'-  U-  UU'-  U-  -
  U--
  PU0* PU2PUU3-  U -  UU3-  U -  -
  PU * U5-  U-  UU5-  U-  -   PU,* PU1PU2* PU * U4-  U-  UU4-  U-  -   PU U5-  U-  UU5-  U-  -
  PUPUPUPU* PU* PU* U-   PU* PU)U-   PU* U*-
  PU* PU* U)-
  PU* U
-   PU* U-
  U+-   PU * UU,-  U -  -   UU,-  U -  -
  PU0PU1* PU* PU0* PU2PUU3-  U -  UU3-  U -  -
  PU!PU$U*-   PU#U+-
  U	-   PU* U"-   PU'U U--  U-  -
  UU--  U-  -   PU0* PU1PU* U&-   U U.-  U-  -   UU.-  U-  -
  PU0PU1PSU2-  PU* U3-  U -  UU3-  U -  -   PU * U4-  U-  UU4-  U-  -   PU U5-  U-  UU5-  U-  -
  PU%PU1* PU2PU U4-  U-  UU4-  U-  -
  PU * U5-  U-  UU5-  U-  -   Pn60 U5S_U4S_U3S_U2S_U1S_U0S_U-S_U,S_U*S_U)S_U(S_U'S_U%S_U$S_U"S_U!S_U S_0 US_US_US_US_US_US_US_US_US_US_US_US_US_US_US_US_US_EUSUSU
SU	SUSUSUSUSU&X-  U.-  U#U+UX-  U.-  UU+0En7[        U6U5      U7:X  d   eg )Nza, b, czk1:50r   r	  r   )r    r   rY   	to_domainr   gensr   )8r  r_  r  r  ringk1k2k3k4k5k6k7k8k9k10k11k12k13k14k15k16k17k18k19k20k21k22k23k24k25k26k27k28k29k30k31k32k33k34k35k36k37k38k39k40k41k42k43k44k45k46k47k48k49systemr  s8                                                           r   test_M38r)  i  sY   i GA!ay"%//1FGV$D
 4899	1RRRRRc3S#sCc3S#sCc3S#sCc3S#sC(
	
2a!$q&(
"S&(QU1W,(
/0bfQhq.@2.E(
HJsQTRSV|VWVZ[\V\G\(
	
3q1S57(
BsF1HquQw.(
123q1S570BR0G(
JKCPQTUVYTYZ[T[I[(
 
3q1S57R(
 #$CAcE!G!3aeAg!=#a!G!$q&!PSTSWXYSY!Y(
 	
#a!C%'	(
 2c6!8aeAg-	(
 12r#vax!C%'/A	(
 EF2c6!8aPSeTUgCU	(

 	
#a!C%'(

 a48AqD=1Q3q59QT>9AqDHQTMI(

 LN(

 QSs(
 
3q1S57QT!V#ad1f,(
 01bfQh3q.@146.IADQRF.R(
 	
#a!C%'(
 2c6!8aeAg-(
 14taeAg~#a/G!Q$s(TUTW./X(
 
quQw3q 1a48QS>1(
 4546ADF?(
 EFDFQTRSVO(
 	
Qa"(
  #dQT!Vmad1f4(
 78d1fqtAvo(
 IKs(
 MP(
 	
#a!C%'ADF"QT!V+(
 ./sU1WquQw->(
 ADeAgPQRUPUVWPW@W(
 
quQw3q (
 #$C%'AcE!G"3(
 78RVAX#a5G!C%PQ'5QTUVYTYZ[T[5[^_^bcd^d5dghgklmgm5m(
 
3q1S57(
 cE!GaeAg-(
 01uQw3q/@1S57/JQsUSTW/T(
 	
#a!C%'(
 2c6!8aeAg-(
 14taeAg~#a/G!Q$s(TUTW./X(
 	
#a!C%'(
 2c6!8aeAg-(
 01uQw3q/@(
 CDQ$s(1a4-RSTURUVWRWX[R[\]_`\`R`B`cdfgcghkcklmoplpcpBp(
 
quQw3q 1a48QS>1(
 47(
 :=(
 @AbeAgQ>N(
  
qtAvQ!(
  "#2a!$q& 0!(
  36Q,a2G!(
  JK3qSTUXSXYZSZIZ]^]abc]cIcfgfjklflIl!(
" 
2a!$q&#(
" "R%'ADF*#(
" ./BsF1HquQw,>,D#(
" HIbfQhQRQVWXQXFX[^F^#(
$ 
2a!$q&%(
$ "S&(QsU1W,quQw63q@%(
$ DE"S&(QsUSTWBTWXY\W\]^W^B^abcfafghahBhklkopqkqBqtutxyztzBz%(
& 	
#a!C%''(
& 2c6!8aeAg-'(
& 12r#vax!C%'/A'(
& DES57QsUSTWCT'(
( 
quQw3q 1a48QS>1)(
( 562c6!8aeAg3E)(
( HIuQwQRSVQVWXQXGX)(
* 
3q1S57+(
* !D1S57NQsU1W4q!tCx~E+(
, 	
1SA!Ac	!Q$&Ac!Q$6-(
, 9;-(
, =@-(
, CF-(
, HKSy-(
. 
/(
. /(
. $/(
. /(
. "Ci/(
. +.c)9/(
. =@4#:/(
. ILt/(
. NQ/(
0 
1(
0 1(
0 9s?1(
0 &)D3J1(
0 14c	1(
0 <=S57QsU1W;Ls;RUX;X1(
2 	33(
2 3(
2 3(
2 C%'AcE!G+3(
2 .13(
2 363(
2 9<t3(
2 ?@RVAX#a=O3(
4 	c	5(
4 4#:5(
4 !"r#vax!C%'1C75(
4 :=5(
4 @Cd5(
4 FGBsF1HqQTuUVwDV5(
6 	
#a!C%'C7(
6 #&7(
6 (+7(
6 -.cE!GaeAg,=7(
6 @AuQw3q?P7(
8 
3q1S579(
8  C9(
8 #%9(
8 (*c9(
8 ,/9(
8 14b9(
8 ;>9(
8 @C9(
8 EH9(
8 JMr9(
: 	c	;(
: 9s?;(
: %(;(
: +.;(
: 03;(
: 69D2I;(
: @CSy;(
: KNPQRUPUVWPW-Z[\_Z_`aZaJa;(
< 	=(
< T=(
< 2c6!8aeAg%=(
< ),t=(
< .13Y^=(
< ?BTCZ=(
< JMs=(
> 	aeAg#a#%?(
> (+?(
> -/sF?(
> 58?(
> :;3q1S579J?(
@ 	
#a!C%'CA(
@ #&A(
@ (+A(
@ -.cE!GaeAg,=A(
@ ABr#vax!C%PQ'?QA(
B 
C(
B C(
B 4C(
B CAcE!G+C(
B ./sU1WquQw->C(
B ACC(
B EGC(
B IKC(
B NPCC(
D 
E(
D dRiE(
D E(
D "BhE(
D *-s
E(
D 69DE(
D <?$*E(
D HKdRiE(
F 
s
SG(
F $3q.1S572G(
F 58G(
F ;>G(
F ADtG(
F GJTG(
F LOG(
H 	
#a!C%'I(
H I(
H !$c	I(
H ,/9r>I(
H =@4#:I(
H HKQsUSTW}WXY\W\]^W^G^I(
J 
K(
J K(
J 4#:#a'!C%'1K(
J 47K(
J 9<K(
J >@VK(
J GHRVAXPQRUPUVWPWEWK(
L 
3q1S57M(
L cE!GaeAg-M(
L 03M(
L 69DM(
L ;>M(
L @AuQw3q?PM(
N 
3q1S57O(
FRQQQ #Q(+Q03Q8;Q@CQQQQ #Q(+Q03Q8;Q@CQ 	Q Q Q !$Q ),Q 14Q 9<Q ADQ 	Q	 Q	 Q	 !$Q	 ),Q	 14Q	 9<Q	 ADQ	
 	Q
 Q
 QQQQQQ
QQQSWc3QSWc3H &(222r   c                  t   [        SSS9u  pn[        U S-  U-  SU-  U-  -   S-
  SU S-  -  U-  SUS-  -  -   S-   SU-  US-  -  US-  -
  S-
  /5      USUSU S	0USUSU S0U[        S5      [        -  U[	        SS5      [        S5      [        -  S-  -
  U [        S	[        S5      [        -  -
  5      * 0U[        S5      [        -  U[	        SS5      [        S5      [        -  S-  -
  U [        S	[        S5      [        -  -
  5      0U[        S5      * [        -  U[	        SS5      [        S5      [        -  S-  -   U [        S	[        S5      [        -  -   5      * 0U[        S5      * [        -  U[	        SS5      [        S5      [        -  S-  -   U [        S	[        S5      [        -  -   5      0/:X  d   eg )
Nr   Tr  r   r   r   r  r   r2  )r    rr   r8   r   r   r   r  r  s      r   test_M39r,    s   gt,GA! !Q$q&1Q3q5.1$bAgai!AqD&&81&<ac!Q$hAoPQ>QSTAq!R 1aAq!"4aAq1vQ	!3Qb4719n9M8MNaAq1vQ	!3QR$q'!)^8LM$q'!Q!Aa1 4a$rDGAI~:N9NO$q'!Q!Aa1 4ab4719n9MN	PP P Pr   c                  Z    [        [        [        -  [        [        -  :  5      (       d   eg r   )r   r   r   r   r   r   test_N1r.    s    q"ur1u}r   c                      [        SSS9n [        U S-  U -
  S-   S:  5      SL d   e[        U S-  U -
  S-   S:  5      SL d   eg )Nr   Tr\  r   r   r   Fr    r   rp  s    r   test_N2r1    sV    $Aq!tax!|a D(((q!tax!|a E)))r   c            	          [        SSS9n [        [        [        SU 5      [        U S5      5      [	        U 5      S:  5      (       d   eg )Nr   Tr\  r2  r   )r    r   rO   r   rY  rp  s    r   test_N3r3    s<    $As2b!9bAh'Q!5555r   c                  l    [        SSS9u  p[        SU S-  -  SUS-  -  :  X:  US:  -  5      SL d   eg )Nr  Tr\  r   r   r0  rd  s     r   test_N4r5    sD    5t$DAqAv!Q$1q5 12d:::r   c                  v    [        SSS9u  pn[        X S-  -  X!S-  -  :  X:  US:  -  US:  -  5      SL d   eg )Nzx y kTr\  r   r   r0  )r   r  r   s      r   test_N5r7    sK    gD)GA!qAvQ$1q5 1QU ;<DDDr   c                      [        SSS9u  pp#[        X U-  -  X!U-  -  :  X:  US:  -  US:  -  US:  -  5      SL d   eg )Nzx y k nTr\  r   r0  )r   r  r   r   s       r   test_N6r9    sV     .JA!qAvQ$1q5 1QU ;q1u EF$NNNr   c                  Z    [        SSS9u  p[        US:  U S:  XS-
  :  -  5      SL d   eg )Nr  Tr\  r   r   r0  rd  s     r   test_N7r;    s8    5t$DAq1uq1u!e,-555r   c                      [        SSS9u  pn[        [        X5      [        X5      -  X:  X:  -  X :  -  5      (       d   eg )Nr   Tr\  )r    r   r   r+  s      r   test_N8r=    sM     gD)GA!r!x"Q("16"af-/ / / /r   c            	          [        S5      n [        [        U S-
  5      S:  [        R                  S9[        [        [        * SSS5      [        S[        S5      5      :X  d   eg )	Nr   r   r   r  r2  FTr   )r   r   rY  r   r  rh   rg   r   rp  s    r   test_N9r?    s[    sACAJN1773uXrc2uVZ=[-5aT-B8D D D Dr   c                     [        S5      n U S-
  U S-
  -  U S-
  -  U S-
  -  U S-
  -  n[        [        U5      S:  [        R                  S9[        [        [        * SS	S	5      [        SSS	S	5      [        SSS	S	5      5      :X  d   eg )
Nr   r   r   r   r   r   r   r  T)r   r   r   r   r  rh   rg   r   )r   rY  s     r   test_N10rA    s    sA	
QQQQ'Q/AF1IM!''2eHbS!TSW<X,4Q4,F,4Q4,F7H H H Hr   c            	          [        S5      n [        SU S-
  -  S:*  [        R                  S9[	        [        [        * SSS5      [        S[        5      5      :X  d   eg )Nr   r   r   r  Tr   )r   r   r   r  rh   rg   r   rp  s    r   test_N11rC    sO    sAAq1uIN1773uXrc1dTX=Y[cdegi[j7kkkkr   c                      [        S5      n [        [        U 5      S:  [        R                  S9[        SSSS5      :X  d   eg )Nr   r   r  r   r   FT)r   r   r8   r   r  rg   rp  s    r   test_N12rE    s7    sADGaK0HQ5$4OOOOr   c                      [        S5      n [        [        U 5      S:  [        R                  S9[        R                  :X  d   eg )Nr   r   r  )r   r   rB   r   r  rp  s    r   test_N13rG    s0    sACFQJqww/177:::r   c            
          [        S5      n [        [        U 5      S:  U [        R                  S9[        [        [        * [        S-  SS5      [        [        S-  [        SS5      5      :X  d   eg )Nr   r   r  r   T)	r   r   rB   r   r  rh   rg   r   r   rp  s    r   test_N14rI    sf    sA CFQJ!''2eHbS"Q$PTVZ<[)1"Q$D$)G7I I I Ir   c                      [        S5      u  p[        [        SU -  [        U5      S-
  -  S-   5      S:*  U [        R
                  5        g )Nr tr   r   )r    r   rY  r>   r   r  r  ts     r   test_N15rN    s=    5>DAS1c!fqj!A%&!+Q8r   c                      [        S5      u  p[        U S-  [        U5      S-
  S-  -  [        U5      S-  -  S:  U [        R
                  5        g )NrK  r   r   r   )r    r   r>   rB   r   r  rL  s     r   test_N16rP    sD    5>DAadc!fqj1_%c!fai/!3Q@r   c                      [        [        [        -   S:  [        [        -
  S:  4[        [        45      [        [        5      [        :  :X  d   eg r  )r   r   r  rY  r   r   r   test_N17rR    s:     QUQYA	*QF3A
CCCr   c                      [        S[        -   SS[        -  45      n [        [        U R	                  U R
                  5      5      5      [        S5      :X  d   eg )Nr   r	  r   r  )r   r   r8   r   dotHMs    r   test_O1rX    sC    Ar1Q3 AquuQSSz"#tBx///r   c                  t    [        S5      R                  [        S5      5      [        S/S/S//5      :X  d   eg )N)r   r   r  )r   r   r   r   r
  r   )r   crossr   r   r   test_O2r[  $  sI    *##F9$56&2$CE$CD#BG ;H H H Hr   c                      [        S5      eNzfThe vector module has no way of representing
        vectors symbolically (without respect to a basis)r"  r   r   r   test_O3r^  +        = > >r   c                     SSK Jn Jn  U " S5      nU" 5       nUR                  " 5       u  pEnUR                  " 5       u  pxn	XGU-  U	-  -  XWU-  U	-  S-  -  -   XhS-  U	S-  -  -  -   n
UR                  U
5      R                  5       SUS-  -  US-  -  U	-  SU-  U	S-  -  -   U-  Xx-  U-  -   SU-  US-  -  U	S-  -  Xy-  -
  U-  -   :X  d   eg )Nr   )
CoordSys3DDelr   r   r   r	  )sympy.vectorra  rb  base_vectorsbase_scalarsrZ  r  )ra  rb  r   delopr   r   r   r   r  r  Fs              r   test_O4rh  1  s    ,3AEEnnGA!nnGA!	Q3q5	A!AzN"QA1%66A;;q> R1WQT\!^ac!Q$h%>$AACE$IQqSQRTUQUXVWYZVZ]]^]`M`bcLc$ccccr   c                      [        S5      er]  r"  r   r   r   test_O5rj  :  r_  r   c                  J   [        / SQ5      [        / SQ5      [        / SQ5      /n [        U 5      [        S/S/S//5      [        [        SS5      /[        S	S5      /[        S
S5      //5      [        [        SS5      /[        SS5      /[        SS5      //5      /:X  d   eg )N)r   r   r   )r   r   r   )r   r   r   r   r   r   r   r   ?   ii  ia  ii  iY)r   r   r   )Ls    r   test_O10rn  C  s    			F9-vi/@AAq>f c c c&# $ % Ryk Ryk bzl&, - % s|n }o s|n&. /0 0 0 0r   c                  d    [        SSS 5      R                  S5      [        SSSS/5      :X  d   eg )Nr   c                 
    X-
  $ r   r   )r   r   s     r   rq  test_P1.<locals>.<lambda>T  s    QUr   r2  r   r   )r   diagonalr   r   r   test_P1rs  S  s;    !Q*+44R8F	1r2h=   r   c                      [        / SQ/ SQ/ SQ/5      n U R                  S5        U R                  S5        U [        SS/SS//5      :X  d   eg )N)r   r   r   )r   r   r   )r   r   r   r   r   r   r   )r   row_delcol_delrV  s    r   test_P2rw  X  sT    	9i01AIIaLIIaLAA  ! ! ! !r   c                  D  ^ [        / SQ/ SQ/ SQ/ SQ/5      n U SS2SS24   nU S	   nU nU SS
2S
S24   * nU S   * n[        XE//5      R                  nU* U/X6//m[        [        U4S j5        [        T5      nU[        / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5      :X  d   eg )N)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   c                     > [        T 5      $ r   )r   )rowss   r   rq  test_P3.<locals>.<lambda>n  s
    {40r   )r   r   r  )irG  r   r  r  )iiir   r   rz  )r   r   r   r  r  r  )r  r   r   r  r  rG  )r   r  r  r  r  )r   ry  r   rz  ir~  )r   r   Tr~   
ValueError)	r	  A11A12A21A221A222A22r
  r|  s	           @r   test_P3r  `  s    	 	A AaC1H+C
 
!C
Cac1Q3hK<DnD
|n
%
'
'CT3K#$D
:01tA###""""$ % % % %r   c                      [        S5      e)Nz*Block matrix diagonalization not supportedr"  r   r   r   test_P4r  z  s    
J
KKr   c                  Z    [        SS/SS//5      n U S-  [        SS/SS//5      :X  d   eg )Nr   r   r   r   r   r   r   )r   rV  s    r   test_P5r    sM    BA 	AEVaVV% & & & &r   c                  T   [        [        [        5      [        [        5      /[        [        5      * [        [        5      //5      n U R	                  [        S5      [        [        [        5      * [        [        5      * /[        [        5      [        [        5      * //5      :X  d   eg r-  )r   r>   r   rB   r   rV  s    r   test_P6r    s    QQ a&#a&!# 	$A66!Q<6SVGc!fW#5$'FSVG#4#6 7 7 7 7r   c            	         [        [        [        //5      [        [        / SQ/ SQ/5      -  [        / SQ/ SQ/5      -   -  n U [        [        [        S-   -  [        S[        -  S-
  -  -   [        S[        -  S	-
  -  [        S
[        -  S-   -  -   [        S[        -  S-   -  [        S[        -  S-
  -  -   //5      :X  d   eg )N)r   r   r   )r   r   r   )r   r   )rF  r   r~  r   r   r   r   r   r   r   r   r   r   r   )r   r   r  r  rV  s    r   test_P7r    s    Ax	&)  	 &(5(7 !8	8	9A AEQ!a[0!QqS1W+1Q382LAaC"H1Q3846 7 8 8 8 8r   c                      [        SS[        -  /S[        -  S//5      n U R                  [        R                  S9S:X  d   eg )Nr   r	  r  r   )ordr   )r   r   normr   InfinityrV  s    r   test_P8r    sC    BqD	Aq	 	A66ajj6!Q&&&r   c            	      4   [        SSS9u  pn[        XU-  -  SU-  SU-  /SU-  XU-  -  SU -  /SU-  SU -  X U-  -  //5      n[        UR                  S5      5      U S-  US-  -   US-  -   [	        U 5      [	        U5      -  [	        U5      -  -  :X  d   eg )Na b cT)nonzeror   fror   )r    r   r]   r  rY  r  r_  r  rW  s       r   test_P9r    s    gt,GA!aC!A#qs#1a1gqs#1ac1c7#% 	&A !&&- QTAqD[1a4%7#a&Q-A:N$OOOOr   c            	          [        SSS[        -  -   /[        SS[        -  -
  5      S//5      n U R                  [        S[        SS[        -  -   5      /SS[        -  -   S//5      :X  d   eg )Nr   r   r   r   r   r   )r   r   r   rU  rV  s    r   test_P10r    sw    A!G1qs7Q! 	"A 33&1aAaCj/qs7A,( ) ) ) )r   c                      [        [        [        /S[        [        -  //5      R                  5       S[        S-  S-
  -  [        [        S/S[        -  [        [        -  //5      -  :X  d   eg Nr   r   r2  )r   r   r  invr   r   r   test_P11r    sr     Aq6qs8 !ce1a4!8fq"g?A!tQqSk>K 7L (LL L Lr   c            	         [        [        [        /S[        [        -  //5      R                  S5      n [	        [        U 5      5      n[        XU-  SS9[        U[        [        [        -  [        * /S[        //5      SS9:X  d   eg )Nr   ADJF)evaluater2  )r   r   r  r  r^   tuplerR   )rW  r  s     r   test_P11_workaroundr    s     	AAaC!"&&u-AE!HA!qS5)VAv	
1qb	
q	? 8#.% % % %r   c                     [        S[        [        5      n [        S[        [        5      n[        S[        [        5      n[        X/[        [        [        5      U//5      n[	        UR
                  5      [        U R
                  SU R
                  -  U-  UR
                  -  /[        [        [        5      UR
                  //5      :X  d   eg )Nr  r  r  r2  )r   r   r   r   r   r   )r  r  r  r
  s       r   test_P12r    s    
ua
#C
ua
#C
ua
#CcZ A&,. 	/A!##+CEEz#~cee7K/L0:1a0@#%%/H/J #K K K Kr   c            	         [        S[        S-
  [        S-
  /[        S-
  [        S-  S[        -  -
  S-   [        S-  S[        -  -
  S-
  /[        S-
  [        S-  S-
  S[        S-  -  S[        -  -
  S-   //5      n U R                  5       u  pn[        U5      [        / SQ[        S-
  SS	/[        S-
  [        S-
  S//5      :X  d   e[        U5      [        S[        S-
  [        S-
  /S	S
[        S-
  /S	S	[        S-
  //5      :X  d   eg )Nr   r   r   r   r   r   r  )r   r   r   r   r   r   r   )r   r   LUdecompositionro   )rW  rm  U_s       r   test_P13r    s&   Aq1u=Q1qs
QadQqSj1n=Q1q1a42a4"(<=? 	@A !GA!A;&"3#$q5!"3#$q5!a%"3"5 6 6 6 6 A;&1a!eQU"3#$!QU"3#$!QU"3"5 6 6 6 6r   c                      [        / SQ/ SQ/ SQ/ SQ/5      n U R                  5       u  pU[        / SQ/ SQ/ SQ/ SQ/5      :X  d   eg )	N)r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   )r   r   r2  r   r   )r   r   r   r   r2  )r   r   r   r   r   )r   r   r   r   r   )r   rref)rW  r   r  s      r   test_P14r    sU    ! 	"A 668DA))))+ , , , ,r   c                  X    [        / SQ/ SQ/ SQ/5      n U R                  5       S:X  d   eg )N)r2  r   r   r
  )r   r	  r   r   )r   r   r  r  r   )r   rankrV  s    r   test_P15r    s-    ! 	"A 668q==r   c                      [        S[        S5      -  S/S[        S5      -  S[        S5      -  //5      n U R                  5       S:X  d   eg )Nr   r   r   r  r   r   )r   r8   r  rV  s    r   test_P16r    sI    47A47BtAwJ') 	*A668q==r   c            	         [        SSS9n [        [        SU -  5      [        SU -  5      /SS[        U 5      S-  -
  -  [        U 5      -  SS[        U 5      S-  -  -
  [        U 5      -  //5      nUR	                  5       S:X  d   eg )NrM  Tr\  r   r   )r    r   rB   r>   r  )rM  rW  s     r   test_P17r    s    $A	QqS3qs8	
AQO	SV	#a!SVQY-&7Q%?@B CA 668q==r   c                      [        / SQ/ SQ/ SQ/5      n U R                  5       [        S/S/S/S//5      [        S/S/S/S//5      /:X  d   eg )	N)r   r   r	  r   )r	  r   r   r   )r2  r   r   r   r   r   r   r  )r   	nullspacerV  s    r   test_P18r    sy      	!A ;;=VaS&'S&'S&'S%* + $aS&(T&'S&'S%* +	, , , ,r   c            
      r   [        S5      n [        / SQU [        [        [        /U S-  [        S-  [        S-  [        S-  /U S-  [        S-  [        S-  [        S-  //5      nUR                  5       U S-  [        S-  -  [        -  U S-  [        S-  -  [        -  -
  U S-  [        -  [        S-  -  -
  U S-  [        -  [        S-  -  -   U S-  [        S-  -  [        -  -   U S-  [        -  [        S-  -  -
  U S-  [        S-  -  [        -  -
  U S-  [        S-  -  [        -  -   U S-  [        -  [        S-  -  -   U S-  [        -  [        S-  -  -
  U S-  [        S-  -  [        -  -
  U S-  [        -  [        S-  -  -   U [        S-  -  [        S-  -  -   U [        S-  -  [        S-  -  -
  U [        S-  -  [        S-  -  -
  U [        S-  -  [        S-  -  -   U [        S-  -  [        S-  -  -   U [        S-  -  [        S-  -  -
  [        S-  [        S-  -  [        -  -
  [        S-  [        -  [        S-  -  -   [        S-  [        S-  -  [        -  -   [        S-  [        -  [        S-  -  -
  [        [        S-  -  [        S-  -  -
  [        [        S-  -  [        S-  -  -   :X  d   eg )Nw)r   r   r   r   r   r   )r    r   r   r  r  det)r  rW  s     r   test_P19r    s   A%qQ1%Aq!tQT1a4(Aq!tQT1a4(* 	+A 557q!tAqDy{q!tAqDy{2QT!VAqD[@1a46!Q$;NAad1%'(!tAvad{356T!Q$Yq[ACDa419Q;OAa1%'(!tAvad{356T!Q$Yq[ACDa46!Q$;O 1a41% ()Avad{3 67q!tVAqD[A DEQT6!Q$;O 1a41	% ()Avad{	3 67T!Q$Yq[	A DEa46!Q$;	O
 Aad1%
 ()!tAvad{3
 67q!tVAqD[A
 DEQT6!Q$;O   r   c                      [        S5      e)Nz'Matrix minimal polynomial not supportedr"  r   r   r   test_P20r    s    
G
HHr   c                      [        / SQ/ SQ/ SQ/5      n U R                  [        5      R                  5       [        S-  S[        S-  -  -
  S[        -  -
  S-   :X  d   eg )N)r   r  r  )r	  r   r   )r   r  rE  r   r   r   r   )r   charpolyr   as_exprrV  s    r   test_P21r    sX     	A ::a=  "adQq!tVmac&9A&====r   c                  r    Sn S[         -
  [        U 5      -  nUR                  5       [         * S-   U 0:X  d   eg )Nr  r   )r   r   	eigenvals)r  rW  s     r   test_P22r  !  s6    A	
QAA;;=aR!VQK'''r   c                      [        / SQ/ SQ/ SQ/ SQ/ SQ/5      n U R                  5       [        S5      S[        S5      S[        S	5      S[        S
5      S[        S5      S0:X  d   eg )N)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   1r   23zsqrt(3) + 2z-sqrt(3) + 2r   r  r   rV  s    r   test_P23r  '  sn     	A ;;=	#	#	#	-!	.1   r   c                     [        / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5      n U R                  5       [        S	5      S
[        S5      S
[        S5      S
[        S5      S[        S5      S
[        S5      S
[        S5      S
0:X  d   eg )Nc     @  rF  r   r    q   r  r  rF  r  r  r  r  =   1   r   r  r  r  r  r  r   rz  ;   r  rF  r  r  r        r  r  r  r  rz  r  r  r  r  r  rF  r   r  r  r  c   qr   r  r  r  r  r  r  r  0r   z10*sqrt(10405)z100*sqrt(26) + 5101000r   z-100*sqrt(26) + 510z-10*sqrt(10405)1020r  rV  s    r   test_P24r  6  s    ??@@@@@@B 	CA ;;=	#	
Q	
	&	1	
 !	
a	&	1   r   c                      [        [        / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5      5      n [        U R                  S	S
95      n[        / SQ5      n[	        X5       H  u  p4[        X4-
  5      S:  a  M   e   g )Nr  r  r  r  r  r  r  r  T)multiple)gMcdr&  gyP9?     @@r  gx5F27ߏ@g     @gMcd@g-q=)r   r   sortedr  ziprY  )MFev_1ev_2r   r  s        r   test_P25r  I  s    	
6CCCCCCCCE F 
GB ",,,-.D	89D D15zE!!!  r   c                      [        S5      u  pp#n[        U* U* U* U* U * SSSS/	/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ S	Q/ S
Q/	5      nUR                  SS9[        S5      S[        S5      S0:X  d   eg )Nza0 a1 a2 a3 a4r   )	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   r2  r2  r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r2  r2  )	r   r   r   r   r   r   r   r   r   F)error_when_incompletez-1/2 - sqrt(3)*I/2r   z-1/2 + sqrt(3)*I/2)r    r   r  r   )a0a1a2a3a4rW  s         r   test_P26r  \  s     !12BBB"rcB3bS1q1q999999999; 	<A ;;U;3	
	
8$ $ $ $r   c                  l   [        S5      n [        U SSSS// SQSSU SS/SSSU S// SQ/5      nUR                  5       U S[        / SQ5      [        / SQ5      [        / SQ5      /4S	[        -
  S	[        SS	[        -   S
-  SSS	/5      /4S	[        -   S	[        SS	[        -
  S
-  SSS	/5      /4/:X  d   eg )Nr  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   
eigenvectsr   )r  rW  s     r   test_P27r  l  s    AQ1a  Q1a Q1a  	" 	#A <<>	
A?#?#?#
 	
 
QAAqy!Q*+
 	 
QAAqy!Q*+
 	   r   c                      [        S5      eNzQGeneralized eigenvectors not supported https://github.com/sympy/sympy/issues/5293r"  r   r   r   test_P28r
        
 , - -r   c                      [        S5      er	  r"  r   r   r   test_P29r    r  r   c            	          [        / SQ/ SQ/ SQ/ SQ/ SQ/5      n U R                  5       u  pU[        / SQ/ SQ/ SQ/ S	Q/ S
Q/5      :X  d   eg )N)r   r   r   r   r2  )r   r   r	  r   r  )r   r   r2  r   r	  )r   r2  r   r   r   )r   r2  r   r2  r   )r2  r   r   r   r   )r   r   r   r   r   r  )r   r   r   r   r   r  )r   jordan_form)rW  r  Js      r   test_P30r    s\    #####	% 	&A
 ==?DA(((((	* + + + +r   c                      [        S5      e)Nz!Smith normal form not implementedr"  r   r   r   test_P31r    s    
A
BBr   c            	      *   [        SS/SS//5      n [        U 5      R                  [        5      R	                  5       [        [
        [        S5      -  [
        * [        S5      -  /[
        [        S5      -  [
        [        S5      -  //5      :X  d   eg )Nr   r	  r   )r   r.   rewriter>   ro   r   rB   rV  s    r   test_P32r    s    BA 	Aq6>>#'')VaAh3q6	5J67Ah3q65J5L .M M M Mr   c                     [        S5      u  p[        / SQSSSSU -  // SQSSU -  SU S-  -  S//5      n[        X!-  5      R                  [        5      R                  5       [        SS	U-  S
[        X-  5      -  U -  -   SU-  U -  S[        X-  5      -  -
  S[	        X-  5      -  U -  SU -  -   /SS
[	        X-  5      -  S-
  SU -  [	        X-  5      -  SU -  -   S[        X-  5      -  /SS[	        X-  5      -  U -  SU -  -
  S	[	        X-  5      -  S
-   [        X-  5      U -  /SS[        X-  5      -  SU -  [        X-  5      -  [	        X-  5      //5      :X  d   eg )Nzw t)r   r   r   r   r   r   )r   r   r   r   r	  r   r   r  r   r   r  )r    r   r.   r  r>   r   rB   )r  rM  rW  s      r   test_P33r    sz   5>DA&qq!A#&&BqD!AqD&A&( 	)A qs8C '')V	
BqD1SX:a<!A#a%!CH*"4bQSk!mac6IJ	
3qs8aAc!#h1!4qQSzJ	
Qs13xZ\AaCRAC[1_s13xzJ	
Bs13xK!CHQSJ	5L .M M M Mr   c                     [        SSS9u  pn[        U SSSSS/SU SSSS/SSUSSS/SSSUSS/SSSSUS/SSSSSU//5      n[        U5      [        [        U 5      [        U 5      SSSS/S[        U 5      SSSS/SS[        U5      SSS/SSS[        U5      [        U5      [        U5      * S-  /SSSS[        U5      [        U5      /SSSSS[        U5      //5      :X  d   eg )Nr  Tr\  r   r   r   )r    r   rB   r>   r  s       r   test_P34r    s1   gD)GA!Aq!Q"Aq!Q"Aq!Q"Aq!Q"Aq!Q"Aq!Q"$ 	%A q6Vc!fc!faAq9QAq!4CFAq!4As1vs1vAwqyAAq#a&#a&9Aq!SV46 7 7 7 7r   c                  t    [         S-  [        / SQ/ SQ/ SQ/5      -  n [        U 5      [        S5      :X  d   eg )Nr   )r   r   r   )r   r   r   )r   r   r   r   )r   r   rB   r   rV  s    r   test_P35r    s<    
1VY  ! 	!A
 q6SVr   c                  f    [        SS/SS//5      n [        U 5      [        SS/SS//5      :X  d   eg )Nr   r   r   r   r   r   )r   r8   rV  s    r   test_P36r    sM    QB 	A7fq!f !f& ' ' ' 'r   c                      [        / SQ/ SQ/ SQ/5      n U [        R                  -  [        S[        SS5      S// SQ/ SQ/5      :X  d   eg )N)r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r~  r   rV  s    r   test_P37r!    sU    	 	A aff9AaGQ(7(7 9 : : : :r   c                      [        / SQ/ SQ/ SQ/5      n [        [        5         U [        R                  -     e! , (       d  f       g = f)Nr   )r   r   r   )r   r~   AssertionErrorr   r~  rV  s    r   test_P38r$    s>    i A 
		166	 	t 
 	s	   :
Ac                      [        S5      e)z9
M=Matrix([
    [1, 1],
    [2, 2],
    [3, 3]])
M.SVD()
z,Singular value decomposition not implementedr"  r   r   r   test_P39r&    s     L
MMr   c            	         [        SSS9u  p[        U [        U5      -  U [        U5      -  /5      nUR	                  [        X/5      5      [        [        U5      U * [        U5      -  /[        U5      U [        U5      -  //5      :X  d   eg )NrK  Tr\  )r    r   r>   rB   jacobian)r  rM  rW  s      r   test_P40r)    s    5t$DA#a&!CF(#$A::faVn%#a&1"SV)1D25a&1SV81D1F *G G G Gr   c            	          [        SSS9u  p[        U S-  [        U5      -  X45      [        S[        U5      -  SU -  [	        U5      -  /SU -  [	        U5      -  U S-  * [        U5      -  //5      :X  d   eg )NrK  Tr\  r   )r    rP   rB   r   r>   rL  s     r   test_P41r+    s    5t$DA1a4A;u%Ac!fH!CF
1K23A#c!f*q!teCFl1K1M *N N N Nr   c                      [        [        [        5      [        [        5      /[        5      R	                  5       S:X  d   eg r  )rQ   r>   r   rB   ro   r   r   r   test_P42r-  
  s-    c!fc!f%q)224999r   c            	          S n [        SSS9u  p[        U[        U5      -  U[        U5      -  /5      nU " X1U/5      [        [        U5      U* [        U5      -  /[        U5      U[        U5      -  //5      :X  d   eg )Nc                     [        U Vs/ s H  o R                  U5      R                  PM     sn5      R                  $ s  snf r   r   r   r  )rW  Yvs      r   __my_jacobiantest_P43.<locals>.__my_jacobian  s/    A.Aqvvay{{A./111.s   $?rK  Tr\  )r    r   r>   rB   )r3  r  rM  rW  s       r   test_P43r5    s    25t$DA#a&!CF(#$Aa5!Vc!fqbQi-@.1!fqQx-@-B &C C C Cr   c            	          S n [        SSS9u  pU " US-  [        U5      -  X45      [        S[        U5      -  SU-  [        U5      -  /SU-  [        U5      -  US-  * [        U5      -  //5      :X  d   eg )Nc           	          [        U Vs/ s H  n[        X5      PM     sn5      n[        U Vs/ s H  o#R                  R                  U5      PM     sn5      $ s  snf s  snf r   r0  )r   r1  r2  Vs       r   __my_hessiantest_P44.<locals>.__my_hessian  sK    *1DJ*+Q/QQ/00 +/s
   A$ArK  Tr\  r   )r    rB   r   r>   )r9  r  rM  s      r   test_P44r;    s    1 5t$DA1SVaV,/0Qx1Q3s1v:,F-.qSQZ!Q$s1v,F8H 1I I I Ir   c                      S n U " [        [        5      [        [        5      /[        5      R                  5       S:X  d   eg )Nc           	          [        [        S[        U 5      5       Vs/ s H,  n[        U 5      R                  R	                  [
        U5      PM.     sn5      nUR                  5       $ s  snf r  )r   r   lenr  r   r   r  )r1  r2  r   rW  s       r   __my_wronskian test_P45.<locals>.__my_wronskian"  sN    E!SV4DE4DqF1IKK$$Q*4DEF Fs   3A'r   )r>   r   rB   ro   )r?  s    r   test_P45rA  !  s4     3q63q6*A.779Q>>>r   c            
          [        SSSS9u  pn[        SUS5      n[        X0S4   [        X1S4   USUS-
  45      U-  -
  S-  U SUS-
  45      nUR                  5         [	        S5      e)	Nzi j nTr  xnr   r   r   zUnknown result)r    r   r   r  r#  )r   r   r   rC  Sms        r   test_R1rE  *  s{    gtd;GA!	dAq	!B	bAhR1X1a!e}5a77!;aAE]	KB GGI
.
//r   c                     [        S5      u  p[        SSSS9u  p#[        SUS5      n[        SUS5      n[        XRS4   XUS4   -  -
  U-
  S	-  USUS-
  45      n[        X`5      n[        Xa5      n[	        Xx4X4[
        R                  S
9  g )Nzm bzi nTr  rC  r   ynr   r   r  )r    r   r   r   r   r   r  )	r   r_  r   r   rC  rG  r   f1f2s	            r   test_R2rJ  4  s    5>DA5$6DA	dAq	!B	dAq	!BR1XQT(
"Q&*Q1q5M:A	aB	aBbXvagg.r   c                      [        SSSS9u  pSU-  [        SU -  U5      S-  -  n[        X!S[        45      nUR	                  5       nUR                  5       nUSU -  [        SU -  U 5      -  :X  d   eg )Nn kTr  r2  r   r   )r    r"   r   r   r  ri   )r   r   skrD  r  T2s         r   test_R3rO  A  sz    5$6DA'hqsA&*	*B	RQ	B
	A	
B "q!A#q)))))r   c                      [        S5      e)NzIndefinite sum not supportedr"  r   r   r   test_R4rQ  M  s    & <
==r   c                  J   [        SSSS9u  pp#nSU-  [        X-   X-   5      [        X-   X-   5      -  [        X -   X$-   5      -  -  n[        XTS[        45      nUR	                  5       nU[        X-   U-   5      [        U 5      [        U5      -  [        U5      -  -  :X  d   eg )Nz	a b c n kTr  r2  r   )r    r"   r   r   r  r#   )r  r_  r  r   r   rM  rD  r  s           r   test_R5rS  c  s    KEMA!'HQUAE*aeQU+,,4QUAE,BC 
DB	RQ	B
	A	!#a% )A,y|";IaL"HIIIIr   c                      [        SSSS9u  p[        SU S-   S5      n[        X!S4   X!S-
  S4   -
  USU S-   45      nUR                  5       US   * X S-   S4   -   :X  d   eg )	NrL  Tr  gnr   r   r   )r   r   )r    r   r   r  )r   r   rU  rD  s       r   test_R6rV  m  sx    5$6DA	dAE1	%B	R1Xq5!8$q!QUm	4B779D	B1uaxL0000r   c                      [        SSSS9u  p[        US-  USU 45      R                  5       nUR                  5       U S-  U S-   S-  -  S-  :X  d   eg )NrL  Tr  r   r   r   r   )r    r   r  r]   )r   r   r  s      r   test_R7rX  t  sZ    5$6DAAqD!Aa A88:Aq1uqj****r   c                      [        SSSS9u  p[        US-  [        X5      -  USU 45      nUR                  5       nUR	                  5       X S-   -  SU S-
  -  -  :X  d   eg NrL  Tr  r   r   )r    r   r"   r  ri   r   r   rD  r  s       r   test_R8r\  y  sc    5$6DA	QT(1. 1a)	,B
	A::<1!e9QQZ////r   c                      [        SSSS9u  p[        [        XS-
  5      U-  USU S-   45      nUR                  5       R	                  5       SU S-   -  S-
  U S-   -  :X  d   eg NrL  Tr  r   r   )r    r   r"   r  ro   )r   r   rD  s      r   test_R9r_    sh    5$6DA	XaQ!Aq!a%=	1B779AAJNQU#;;;;r   c                     [        SSSS9u  pp#[        [        X5      [        XU-
  5      -  USU45      nUR                  5       nUR	                  5       R                  [        5      nU[        X-   5      [        U5      [        X-   U-
  5      -  -  :X  d   eU[        X-   U5      R                  [        5      :X  d   eUR                  [        5      nU[        X-   U5      :X  d   eg )Nzn m r kTr  r   )r    r   r"   r  ri   r  r#   )r   r   r  r   rD  r  rN  T3s           r   test_R10rb    s    D4@JA!	Xa^HQA..Aq		:B
	A	
		i	(B15!9Q<	!%!)0D#DEEEE!%#++I6666 
H	B!%####r   c                      [        SSSS9u  p[        X5      [        U5      -  n[        X!SU 45      nUR	                  5       nU[        SU -  5      :X  d   eg )NrL  Tr  r   r   )r    r"   r&   r   r  )r   r   rM  rD  r  s        r   test_R11rd    sW    5$6DA	!	!	$B	RQ	B
	A 	!A#r   c                      [        SSSS9u  p[        [        U5      S-  USU 45      nUR                  5       nU[        U 5      [        U S-   5      -  :X  d   eg )NrL  Tr  r   r   r   )r    r   r&   r  r[  s       r   test_R12rf    sW    5$6DA	Yq\1_q!Qi	(B
	A	!Yq1u-----r   c                  2   [        SSSS9u  p[        [        U[        -  5      USU 45      nUR	                  5       nUR                  5       [        [        S-  5      S-  [        [        SU -  S-   -  S-  5      S[        [        S-  5      -  -  -
  :X  d   eg r^  )r    r   rB   r   r  ro   r?   r>   r[  s       r   test_R13rh    s    5$6DA	S1X1ay	!B
	A::<3qs8A:AqsQwKM(:Ac!A#hJ(GGGGGr   c                      [        SSSS9u  p[        [        SU-  S-
  [        -  5      USU 45      nUR	                  5       nUR                  5       [        U [        -  5      S-  [        [        5      -  :X  d   eg rZ  )r    r   rB   r   r  ro   r[  s       r   test_R14rj    si    5$6DA	S!A#'11ay	)B
	A::<3qs8Q;s1v----r   c            	          [        SSSS9u  p[        [        X-
  U5      US[        U S-  5      45      nUR	                  5       nUR                  5       [        U S-   5      :X  d   eg )NrL  Tr  r   r   r   )r    r   r"   r5   r  ro   r&   r[  s       r   test_R15rl    s^    5$6DA	XaeQ!Qac
!3	4B
	A::<9QU++++r   c                      [        SSSS9n [        SU S-  -  SU S-  -  -   U S[        45      nUR                  5       [	        S5      [
        S-  S-  -   :X  d   eg )Nr   Tr  r   r   r   r   )r    r   r   r  ry   r   )r   rD  s     r   test_R16rn    s[    TD1A	Qq!tVa1f_q!Rj	)B779Q"a%'))))r   c            
          [        SSSS9n [        [        [        SU S-  -  SU S-  -  -   U S[        45      5      S-
  5      S:  d   eg )	Nr   Tr  r   r   r   g3@V瞯<)r    rY  floatr   r   r   s    r   test_R17rs    sZ    TD1AuS1a4!AqD&1a*56#$ %',- - -r   c                      [        SSSS9n [        SSU -  U S-  -  -  U S[        45      nUR                  5       nUR	                  5       [        S5      S-  * S-  [        S-  S-  -   :X  d   eg )Nr   Tr  r   r   r   )r    r   r   r  ro   r/   r   r   rD  r  s      r   test_R18rv    sl    TD1A	Q1QT	]Q2J	'B
	A::<CFAI:a<"a%(2222r   c                     [        SSSS9n [        SSU -  S-   SU -  S-   -  SU -  S-   -  -  U S[        45      nUR                  5       nUR	                  5       [        S5      * S-  [        S5      [        -  S	-  -   :X  d   eg )
Nr   Tr  r   r   r   r   r   r   )r    r   r   r  ro   r/   r8   r   ru  s      r   test_R19rx    s     	TD1A	Q1q1Q37#QqS1W-.Ar
	;B
	A::<CF719tAwrz"}4444r   c                      [        SSSS9u  p[        [        U SU-  5      US[        45      nUR	                  5       nUR                  5       SU S-  -  [        [        U -  S-  5      -  S-  SU S-
  -  S-  -   :X  d   eg )NrL  Tr  r   r   r   r   )r    r   r"   r   r  ro   r>   r   r[  s       r   test_R20rz    s}    5$6DA	Xa11bz	*B
	A::<1qs8C1QK/1AAJqL@@@@r   c            	          [        SSSS9n [        S[        X S-   -  5      [        U 5      [        U S-   5      -   -  -  U S[        45      nUR	                  5       nUR                  5       S:X  d   eg )Nr   Tr  r   )r    r   r8   r   r  ro   ru  s      r   test_R21r|    sf    TD1A	QQAY47T!a%[#89:Q2J	GB
	A::<1r   c                     [        SSSS9u  p[        [        [        U 5      [        U5      S-  [        U SU-  -
  5      -  -  [        [        -  U-  -  [        [        -  X-
  -  -  U SU-  [
        45      US[
        45      nUR                  5       nUS[        [        S-  [        S-  -  S[        S-  -  -
  S[        -  [        -  -
  S-   5      -  :X  d   eg )	NrL  Tr  r   r   r2  r   r   )r    r   r#   r   r  r   r  r8   r[  s       r   test_R23r~    s    5$6DA	S)A,	!a	!ac'0B BCA#Q3!%.)+,ac2,8:;Q
EB 		A41QT	AadF*QqSU2Q677777r   c                      [        SSSS9u  p[        [        USU-  S-
  -  USU 45      U S[        45      nUR	                  5       [
        S-  :X  d   eg )Nzm kTr  r   r   )r    r   r   r   r  r   )r   r   rD  s      r   test_R24r    sU    5$6DA	WQ!a[1a),q!Rj	9B7791r   c                      [        SSSS9n [        [        U S-  5      U SS45      nUR                  5       R	                  5       S[        S5      -  [        S-  -  S-  :X  d   eg )	Nr   Tr  r   r   r   i  i  )r    r   rH   r  ro   r8   r   )r   Prs     r   test_S1r    s]    TD1A	qsaAY	'B7793tAw;r1u#4T#9999r   c                  t    [        SSSS9u  p[        XSU 45      R                  5       [        U 5      :X  d   eg NrL  Tr  r   )r    r   r  r#   r   r   s     r   test_S2r  	  s8    5$6DA1!Qi %%'9Q<777r   c                      [        SSSS9u  p[        [        U-  USU 45      R                  5       R	                  5       [        X S-   -  S-  -  :X  d   eg r^  )r    r   r   r  ro   r  s     r   test_S3r    sR    5$6DA1a4!Q#((*335QAYq[9IIIIr   c                      [        SSSS9u  p[        SSU-  -   USU S-
  45      R                  5       R                  5       U :X  d   eg r  )r    r   r  ro   r  s     r   test_S4r    sK    5$6DA1qs7Q1a4L)..099;q@@@r   c                  
   [        SSSS9u  p[        SU-  S-
  SU-  -  USU 45      R                  5       R                  5       [	        U [
        R                  -   5      [        [        5      [	        U S-   5      -  -  :X  d   eg rZ  )	r    r   r  	gammasimprH   r   r~  r8   r   r  s     r   test_S5r    sy    5$6DAQqS1WqsOaAY/446@@B!aff*tBxa!e456 7 6r   c                     [        SSSS9u  p[        [        S-  S[        -  [        U[        -  U -  5      -  -
  S-   USU S-
  45      R                  5       R                  5       [        SU -  -  S-
  [        S-  S-
  -  :X  d   eg rZ  )r    r   r   r>   r   r  ro   r  s     r   test_S6r    s    5$6DAAqD!A#c!B$q&k/)A-1a!e}=BBDMMOAaC1q!tax() * )r   c                      [        SSSS9n [        U S-  S-
  U S-  S-   -  U S[        45      nUR                  5       nUR	                  5       [        SS5      :X  d   eg )Nr   Tr  r   r   r   )r    r   r   r  ro   r   r   r  r  s      r   test_S7r  &  s\    TD1A	!Q$(QTAX&Ar
	3B
	A::<1Q7"""r   c                      [        SSSS9n [        SSSU -  S-  -  -
  U S[        45      nUR                  5       nUR	                  5       S[
        -  :X  d   eg )Nr   Tr  r   r   )r    r   r   r  ro   r   r  s      r   test_S8r  .  sU    TD1A	Q!axZ!Q	,B
	A::<1R4r   c                      [        SSSS9n [        SSU S-   -  SU -  S-
  -  -   U S[        45      nUR                  5       nUR	                  5       [        S5      :X  d   eg )Nr   Tr  r   r2  r   )r    r   r   r  ro   r8   r  s      r   test_S9r  7  sa    TD1A	bAE]AaC!G,,q!Rj	9B
	A ::<47"""r   c                      [        SSSS9n [        X S-   -  S-   [        -   X S-   -  S-   [        -
  -  U S[        45      nUR	                  5       nUR                  5       S:X  d   eg )Nr   Tr  r   r   r2  )r    r   r   r   r  ro   r  s      r   test_S10r  A  sd    TD1A	!U)a-!#aQi!ma&781a*	EB
	A::<2r   c                      [        SS[        -  -   [        -  [        [        5      [        :X  d   e[        S[	        [
        5      -
  [
        S-  -  [
        S5      [        R                  :X  d   eg r  )r`   r   r   r   r>   r   r   r~  r   r   r   test_T1r  J  sQ    !ac'Aq"%***!c!f*ad"Aq)QVV333r   c                  p    [        S[        -  S[        -  -   S[        -  -  [        [        5      S:X  d   eg )Nr   r   r   )r`   r   r   r   r   r   test_T2r  O  s.    !Q$A+1%q"-222r   c                      [        [        [        5      [        [        5      [        [        5      -   -  [        [        5      S:X  d   eg r  )r`   r/   r   rB   r   r   r   r   test_T3r  S  s.    QQ#a&)1b1Q666r   c                     [        [        [        [        [        * 5      -  [        [        * 5      [        S[        S-  -  [        S-   -  5      -   -  5      [        [        5      -
  [        -  [        [        5      [        S5      * :X  d   eg )Nr	  r   r   )r`   r.   r   r   r   r   r   test_T4r  W  sq    #aQBiaR3r!Q$wA+?!?@Aq6%),Q0 0 0r   c                  l   [        [        [        [        5      -  [        [        [        [        5      -  [        S-  -
  5      S-  -  [        [        [        S-  S[        [        S[        S-  -  [        [        5      -  5      5      -  -   5      5      -  [        [        5      [        SS5      :X  d   eg )Nr   r   r   )r`   r   r/   r.   r   r   r   r   r   test_T5r  \  s    !CF(3qQx!Q$/223s1a4c#a1fSVm,--<. 8/ 40 012B8;<Q7C C Cr   c                      [        S[        -  [        [        5      S[        -  -  -  [        [        5      [	        S5      :X  d   eg Nr   r2  )r`   r   r#   r   r.   r   r   r   test_T6r  a  s3    1y|ac**Ar2c"g===r   c                  v    [        S[        -  [        [        S-   5      S[        -  -  -  [        [        5        g r  )r`   r   rH   r   r   r   r   test_T7r  e  s(    	!A#a!eqs#
#Q+r   c            	          [        SSS9u  p[        [        X-   5      [        U5      -  [        U * [	        U5      -  5      -  U[
        5      S:X  d   eg )Nza zTrp  r   )r    r`   rH   r.   r/   r   )r  r  s     r   test_T8r  i  sI    54(DAqueAh&sA2c!f9~5q"=BBBr   c                  z    [        SSS9u  p[        [        SU4SX-  5      U[        5      [	        U 5      :X  d   eg )Nzz kTrp  r   )r   )r    r`   rJ   r   r.   )r  r   s     r   test_T9r  n  s<    54(DA 1vtQS)1b1SV;;;r   c                      [        [        [        5      S[        S-
  -  -
  [        S5      [        S[        -  S[	        [        5      -  -   [        S[
        45      :X  d   eg r  )r`   ry   r   r   r5   r   r   r   r   test_T10r  v  sL     a1a!e9$a+yA%(
9JQPQSUJ/WWWWr   c            
          [        SSSS9u  p[        U [        -  [        [        S[        U-  -   USU 45      -  -  U [        5      [        [        5      :X  d   eg r  )r    r`   r   r   r   rH   r  s     r   test_T11r  {  sP    5$6DAAq!ac'Q1I667B?58KKKr   c            	          [        SSS9u  p[        U [        [        US-  * 5      USU 45      -  S[        U S-  * 5      -
  -  U S5      S:X  d   eg )Nx tTr\  r   r   r   )r    r`   r   r.   )r   rM  s     r   test_T12r    s`    5t$DAYsAqD5zAq!955q31u:~FA  r   c                      [        SSS9n [        U [        U 5      -  U SSS9[        U [        U 5      -  U SSS9/SS	/:X  d   eg )
Nr   Tr\  r   -dir+r2  r   )r    r`   rY  rp  s    r   test_T13r    sU    $A!CF(Aqc*!CF(Aqc*,02Aw7 7 7r   c                  p    [        SSS9n [        [        [        U 5      * 5      U SSS9[        S-  :X  d   eg )Nr   Tr\  r   r  r  r   )r    r`   r=   r/   r   rp  s    r   test_T14r    s5    $As1vg1#."Q$666r   c                  `    [        SSS9n [        [        U 5      U 5      [        U 5      :X  d   eg )Nr   Tr\  )r    r   rY  r,   rp  s    r   test_U1r    s*    $AA?d1g%%%r   c            	          [        [        [        [        * [        S:  4[        [        S:  45      5      n [        U " [        5      [        5      [        S[        S:  4S[        S:  45      :X  d   eg )Nr   r2  r   r   r   r9   r   )r   s    r   test_U2r    sV    q)aRQK!Q!V56A!a=Ir1q5kAqAv;????r   c            	      "   [        [        [        [        S-  S-
  [        S:H  4[        S-  [        S:g  45      5      n [        [        [        U " [        5      [        5      5      nU" [        5      S[        S-  -  :X  d   eU" S5      S:X  d   eg r  r  )r   rH  s     r   test_U3r    sp    q)QTAXqAv.AqAv?@A	4!a=	!Ba5AadF??a5A::r   c                      [        SSSS9n [        SSS9n[        X-  X5      nUR                  [        5      [        U 5      :X  d   eg )Nr   Tr  r   r\  )r    r   r  r#   )r   r   r  s      r   test_U4r    sE    TD1A$AQT1A99Y9Q<///r   c                     [        S5      n [        [        [        U 5      5      [        U 5      5      [        [        U 5      U S45      -  [        [        [        U 5      5      [        U 5      S45      [        [        U 5      U 5      S-  -  -   n[        [        U 5      5      R	                  U S5      U:X  d   eUR                  5       U:X  d   eg )NrM  r   )r    r	   r   r   r   r  )rM  anss     r   test_U5r    s    A1QqT7AaD!*QqTAq6"::1QqT7QqT1I&z!A$':A'==	>  QqT7<<1$$$88:r   c                     [        S5      n [        [        [        5      [        U " [        5      [        [        5      45      nUR                  [        5      [        [        [        5      5      [        [        [        5      [        5      -  [        U " [        5      5      [        U " [        5      [        5      -  -
  :X  d   eg )Nr  )r
   r   r   r  r   r   r   r	   )r  r  s     r   test_U6r    s~    A!A$AaD!A$(A66!9	!A$
1Q4##a!gj1q.A&AAC C Cr   c                  D    [        SSS9u  p[        [        X5      5        g )Nzp tTr\  )r    r   r   )rY  rM  s     r   test_U7r    s    5t$DA
 	1Mr   c                      [        SSS9u  p[        X-  5      U -   n[        X-
  X5      U* [        X-  5      -  S-   U [        X-  5      -  S-   -  :X  d   eg )Nr  Tr\  r   )r    r>   rN   rB   )r   r  eqs      r   test_U8r    s[    5t$DA	QSAB A2c!#h;?Qs13xZ!^"DDDDr   c            	      t   [        SSS9u  p[        [        X5      U 5      [        [        X5      U5      -   nUR                  [        X5      [	        U S-  US-  -   5      5      nUR                  5       R                  5       nX@U-   [        [        [	        U 5      U 5      X S-  US-  -   5      -  S-  :X  d   eg )Nr  Tr\  r   )	r    r   r   r  r   r  r]   r   r	   )r   r  sus2s3s        r   test_U9r    s     5t$DA	agq	D1!,	,B	1!AqD1a4K.	)B				B a%j1q11dQTkBB1DDDDr   c                      [        [        S-  S-   [        S-  S-
  [        S-   -  -  [        S5      [        SS5      :X  d   eg )Nr   r   r   r   r2  r  )rb   r  r   r   r   r   test_U10r    s=    AqD1H1q1q512Ar:aAhFFFr   c                      [         er   r"  r   r   r   test_U11r    s
     r   c                      [        S5      e)Nz0External diff of differential form not supportedr"  r   r   r   test_U12r    s     :< <r   c                  ~    [        [        S-  [        -
  S-   [        5      SS[        SS5      -  -  S-  S-   :X  d   eg )Nr   r   r  r   r   r   )r   r   r   r   r   r   test_U13r    s:    1a4!8a<#r!QqV)|A~'9999r   c                      [        S5      e)Nz$minimize(), maximize() not supportedr"  r   r   r   test_U14r  	  s     D
EEr   c                      [        S5      e)NzRminimize() not supported and also solve does not support multivariate inequalitiesr"  r   r   r   test_U15r  
	  s    
 ' ( (r   c                      [        S5      e)Nz[minimize() not supported in SymPy and also solve does not support multivariate inequalitiesr"  r   r   r   test_U16r  	  s    
 2 3 3r   c                      [        S5      e)Nz;Linear programming, symbolic simplex not supported in SymPyr"  r   r   r   test_U17r  	  s    
   r   c                      [        SSS9n [        [        U 5      U 5      [        U S-  * S-  U S:*  4U S-  S-  S45      :X  d   eg )Nr   Tr\  r   r   )r    r   rY  r9   rp  s    r   test_V1r  	  sM    $ASVQ9q!teAgqAv->Aa#OOOOr   c                      [        [        [        * [        S:  4[        [        S:  45      [        5      [        [        S-  * S-  [        S:  4[        S-  S-  S45      :X  d   eg )Nr   r   T)r   r9   r   r   r   r   test_V2r  !	  s_    YAE{QQK8! 
AaQ'!Q$q&$89 9 9r   c                      [        S[        S-  S-   -  [        5      R                  5       R                  5       S[        S-  S-   -  :X  d   eg )Nr   r   r   )r   r   r   ro   r   r   r   test_V3r  &	  sA    Q1q\!$))+446!QTAX,FFFr   c                      [        S[        -  [        SS[        -  -   5      -  [        5      [        S[        -  5      [	        S5      -  :X  d   eg )Nr   r   r   )r   r   r8   r0   r/   r   r   r   test_V4r  *	  s=    QT$q1a4x.(!,adCF0BBBBr   c                     [        S[        -  S-
  S-  S[        -  S-
  [        SS5      -  -  [        5      R                  5       SS[        -  -   S[        S-  -  -
  SS[        -  S-
  [        SS5      -  -  -  :X  d   eg )	Nr   r   r   r   r   ir  -   )r   r   r   ro   r   r   r   test_V5r  .	  s     qsQwlAaC!Ga1g#55q9BBD2a4Z"QT'!AqsQw1a&8$89: ; :r   c            
      |   [        SS[        [        [        -  5      -  S[        [        * [        -  5      -  -
  -  [        5      [	        S5      [        S[        [        [        -  5      -  [	        S5      -
  5      [        S[        [        [        -  5      -  [	        S5      -   5      -
  -  S[        -  -  :X  d   eg )Nr   r   r   r   r  )r   r.   r   r   r8   r/   r   r   r   test_V6r  5	  s     a3qs8aQBqD	k12A6$r(#ac(
T"X%&Qs1Q3xZ$r(-B)CC;EFHd;L L M Lr   c                  &   [        [        [        5      S-  [        [        5      S-  -  5      n U R	                  5       [        [        SS5      -  [        [        5      S-  S[        [        5      -  -  -   S[        [        5      -  S-  -   :X  d   eg )Nr   r   r  r   )r   r2   r   r1   ro   r   r3   r1s    r   test_V7r  <	  sj    	47A:d1gqj(	)B;;=AaAhJa!QtAwY)??!DG)A+MMMMr   c                      [        S5      e)Nz'Integrate with assumption not supportedr"  r   r   r   
test_V8_V9r  A	  s     13 3r   c                      [        SSS[        [        5      -  -   S[        [        5      -  -   -  [        5      [	        S[        [        S-  5      -  S-   5      S-  :X  d   eg )Nr   r   r   r   )r   r>   r   rB   r/   rC   r   r   r   test_V10r  R	  sO    QAc!fHqQx/0!4Ac!A#hJN8KA8MMMMr   c                  *   [        SSS[        [        5      -  -   S[        [        5      -  -   -  [        5      n [	        U 5      n[        USS9[        [        [        S-  5      S-   [        [        S-  5      S-   -  [        SS5      -  5      :X  d   eg )Nr   r   r   T)forcer   r   )	r   r>   r   rB   r]   rn   r/   rC   r   r  r2s     r   test_V11r  V	  s~    	1a!CF(lQs1vX-.	2B	Br&#ac(Q,QqSA.1a89: ; :r   c                      [        SSS[        [        5      -  -   S[        [        5      -  -   -  [        5      n U S[	        [        S-  5      S-   -  :X  d   eg )Nr   r   r   r   r2  r   )r   r>   r   rB   rC   r  s    r   test_V12r  ]	  sK    	1a!CF(lQs1vX-.	2BS1X\""""r   c            
      "   [        SSS[        [        5      -  -   S[        [        5      -  -   -  [        5      n U R	                  5       S[        S5      -  [        [        S5      S[        [        S-  5      -  S-   -  S-  5      -  S-  :X  d   eg )Nr   r   r   r   r   r   )r   r>   r   rB   ro   r8   r=   rC   r  s    r   test_V13r  b	  sw    	1a!CF(lQs1vX-.	2B ;;=Ad2hJtDHaAaCj1n,Eb,H'II"LLLLr   c            	      v   [        [        [        [        S-  [        S-  -
  5      5      [        5      n U R                  5       [        [        [        [        S-  [        S-  -
  5      5      -  [        [        [        [        -   5      -  -   [        [        [        [        -
  5      -  -
  S[        -  -
  :X  d   eg r-  )r   r/   rY  r   r  ro   r  s    r   test_V14r  j	  s     
3s1a4!Q$;'(!	,BKKMQs3q!tq!t|#455AE
l+-.s1q5z\:<=aC@ @ A @r   c            	          [        [        [        [        [        -  5      -  [        5      n [	        U [        [        -  [        S-  [        S-  -   [        [        [        -  5      -  -   S-  -
  5      S:X  d   eg Nr   r   )r   r   r;   r  ro   r  s    r   test_V15r  s	  sY    	1T!A#Y;	"BB!A#A1d1Q3i 77::;q@@@r   c                     [        [        S[        -  5      [        S[        -  5      -  [        5      [        S[        -  5      [	        S[        -  5      -  S-  [        S[        -  5      [        S[        -  5      -   S-  -
  :X  d   eg )Nr   r   r   r   r   )r   r>   r   rv   rB   rw   r   r   r   test_V16r  x	  sk     S1Xb1g%q)R!WS1X-=a-?2ac7RPQRSPSWCTVXBX-XXXXr   c            	         [        [        [        [        5      [        5      [	        [        5      -  [        [        5      [        [	        [        5      [        5      -  -
  [        [        5      S-  [	        [        5      S-  -
  -  [        5      n [        U [        [        5      [	        [        5      -
  [        [        5      [	        [        5      -   -  S-  -
  5      S:X  d   eg r  )r   r   r   r   r   ro   r  s    r   test_V17r
  }	  s    	D1qM!A$&qT$qtQ-'(*+A$'AaD!G*;=>?
AB B!A$1+!qt4Q6671<<<r   c                  n    [        S[        [        -
  -  [        [        S-
  [        S-   45      S:X  d   eg )Nr   r   )r   r   r  r   r   r   test_W1r  	  s0    
 QAYAE1q5 12a777r   c                  z    [        S[        [        -
  S-  -  [        [        S-
  [        S-   45      [        L d   eg rU  )r   r   r  r   r   r   r   test_W2r  	  s4     QAz\Aq1ua!e#45<<<r   c                  ~    [        [        [        S[        -  -   S-
  5      [        SS45      [        SS5      :X  d   eg Nr   r   r   r   r   r   r8   r   r   r   r   r   test_W3r  	  s6    
 T!ac'A+&Aq	2a1g===r   c                      [        [        [        S[        -  -   S-
  5      [        SS45      S[        S5      -  S-  [        SS5      -   :X  d   eg )Nr   r   r	  r   r   r  r   r   r   test_W4r  	  G     T!ac'A+&Aq	2bajlQq!W6LLLLr   c                      [        [        [        S[        -  -   S-
  5      [        SS45      S[        S5      -  S-  [        SS5      -   :X  d   eg )Nr   r   r   r	  r   r   r  r   r   r   test_W5r  	  r  r   c            
          [        [        SS[        S[        -  5      -  -
  5      S-  [        [        [        SS5      -  [        * S-  45      [        S5      :X  d   eg )Nr   r  r   )r   r8   r>   r   r   r   r   r   r   test_W6r  	  sN     T!aAaCj.)!+aAb!Hrc!e-DEaPPPr   c                      [        SSS9n [        [        [        5      [        S-  U S-  -   -  [        [        * [        45      nUR                  5       [        [        U * 5      -  U -  :X  d   eg )Nr  Trp  r   )r    r   r>   r   r   ro   r   r.   )r  r  s     r   test_W7r  	  sY    d#A	3q61a4!Q$;'!bS"	6B;;=BsA2wJqL(((r   c                      [        S5      e)Nz1Integrate with assumption 0 < a < 1 not supportedr"  r   r   r   test_W8r  	  s     ;= =r   c                  L   [        S[        S-  -  S[        -   [        S-  -   [        S-  -   [        S-  -   -  [        [        * [        45      n U R                  5       nUS[        -  [        [        S5      * S-  S-   5      [        [        S5      S-  S-   5      -   -  :X  d   eg )	Nr   r   r   r   r   r	  r   g      ?)r   r   r   r  r   r8   r  s     r   test_W9r  	  s    
 
1QT61q51a4<!Q$.A56RC	EB	BBd1gXaZ#-.d1gai#o1FFGGGGr   c            	      "   [        [        S[        -   [        S-  -   [        S-  -   -  [        [        * [        45      n U R                  5       nUS[        -  [        S5      S-  S-   -  [        [        [        SS5      -  5      -  S-  :X  d   eg )Nr   r   r   r   g      ?)r   r   r   r  r   r8   r@   r   r  s     r   test_W10r!  	  sx    
 
1a!eadlQT)*QRL	9B	B2tAwqy3'BqAwJ79999r   c                      [        [        S[        S-  -
  5      S[        S-  -   -  [        SS45      [        S[        S5      -   -  :X  d   eg r  )r   r8   r   r   r   r   r   test_W11r#  	  sL     d1q!t8na!Q$h/!R<T!W  r   c                  D   [        SSS9n [        SSS9n[        [        [        U * [        S-  -  SU-  [        -  -   5      -  [        [        * [        45      nUR                  5       [        [        5      U-  [        US-  U -  5      -  U [        SS5      -  -  :X  d   eg )NrY  Trp  ro  r\  r   r   )	r    r   r   r.   r   ro   r8   r   r   )rY  ro  r  s      r   test_W12r%  	  s    d#A$A	1S!AqD1Q3q5))AsB<	8B;;=DHQJs1a46{21a1g:====r   c            	          [        S[        [        5      -  SS[        -
  -  -   [        [        S[        -  5      5      -
  [        SS45      n U S[        -  :X  d   eg )Nr   r   r   )r   r/   r   r   r  s    r   test_W13r'  	  sN     
1SV8aQi'#c!A#h-7!Q	CB:r   c                      [        [        [        5      [        -  [        S[        -  [        -  5      -  [        [
        * [
        45      S:X  d   eg r  )r   rB   r   r.   r   r   r   r   r   test_W14r)  	  s8    SVAXc!A#a%j(1rc2,71<<<r   c                      [        [        [        [        5      5      [	        S[
        -  [        -  5      -  [        SS45      [        SS5      :X  d   eg )Nr   r   r   r   )r   r/   rH   r   r>   r   r   r   r   r   test_W15r+  	  s>     Sq]3qtAv;.Aq	:a2hFFFr   c                      [        S[        -   S-  [        S[        5      -  [        S[        5      -  [        SS45      [        SS5      :X  d   eg )Nr   r   r   r2  r  #   )r   r   rZ   r   r   r   r   test_W16r.  	  sM    a!eaZa 33M!Q4GGQZ!$%b"I. . .r   c                      [        SSS9u  p[        [        U * [        -  5      [	        SU[        -  5      -  [        S[
        45      SU[        U S-  US-  -  S-   5      -  -  :X  d   eg )Na bTrp  r   r   r   )r    r   r.   r   rD   r   r8   r^  s     r   test_W17r1  	  sm    54(DAS!AYwq!A#.Q !1T!Q$q!t)a-%8#8 9: : :r   c                      [        [        S[        5      [        -  S-  [        S[        45      SS[        -  -  :X  d   eg r  )r   rD   r   r   r   r   r   r   test_W18r3  
  s4    gamAo)Aq":6!QrT(BBBr   c                      [        [        [        5      [        SS[	        S[        -  5      -  5      -  [        S[
        45      [        S5      S-
  S-  :X  d   eg )Nr   r   r   r   )r   rv   r   rD   r8   r   r>   r   r   r   test_W19r5  
  sH     RU71aQqS	k22Q2J?CFQJPQ>QQQr   c            	      <   [        [        S-  [        SS[        S-   -  5      -  [        SS45      [        S-  * S-  [	        SS5      -
  [        S5      S-  -   [        S-  * S-  S[        S5      -  -
  [        S5      S-  -   S	-   [        S5      -  S
-  -   :X  d   eg )Nr   r   r   r   r  r   l   r   gUUUUUU'@r   )r   r   rM   r   r   ry   r/   r   r   r   test_W20r8  
  s     ad71aQi001a)<UF2I"c
"T!WQY.!eVAX#a& 3q619,t3SV;A=>> ? >r   c                      [        [        [        [        S-  [	        SS[        S-   -  5      -  [        SS45      5      S-
  5      S:  d   eg )Nr   r   r   r   g5?rp  )rY  r   r   r   rM   r   r   r   test_W21r:  
  sP    q1a41a!e9 551ayAB
 $% % %r   c                  H   [        SSS9u  p[        [        [        S[	        [        S:  [        S:*  5      4S5      5      n[        U" U 5      [        U 5      -  U SU45      [        SUS:  4[        [        SU5      5      * [        [        SU5      5      -   S45      :X  d   eg )Nzt uTr\  r   r   )r   Tr   )	r    r   r   r9   rO   r   r>   rB   r7   )rM  ur  s      r   test_W22r=  
  s    5t$DAq)QAFAF 34i@AAQqT#a&[1a),		
AE

c!Qi.3s1ay>	)4012 2 2 2r   c                     [        SSS9u  p[        [        [        [        S-  [        S-  -   -  [        X45      [        [        * [        45      nUR                  [        5      R                  5       [        * U -  [        U-  -   :X  d   eg Nr0  Trp  r   )r    r   r   r  r   collectr   cancel)r  r_  r  s      r   test_W23rB  #
  sl    54(DA	9Q1q!t_q!i81rc2,	GB::b>  "rc!ebdl222r   c                      [        SSS9u  p[        [        [        [        S-  [        S-  -   -  [        [        * [        45      [        X45      nUR                  [        5      [        U * U-   -  :X  d   eg r?  )r    r   r   r  r   r@  r   )r  r_  r  s      r   	test_W23brD  *
  s_    54(DA	9Q1q!t_q2#rl;aY	GB::b>R!a[(((r   c            	          [        SSS9u  p[        [        [        U S-  US-  -   5      U SS45      USS45      nU[        S5      [        S5      -   S-  -
  R	                  5       S:X  d   eg )Nr  Tr\  r   r   r   r   )r    r   r8   r0   ro   )r   r  r  s      r   test_W24rF  1
  sp    
 5t$DA	9T!Q$A+.Aq	:Q1I	FB$q'E!H$a''113q888r   c            
      V   [        SSS9u  pn[        [        U 5      [        U5      -  [        S[        U 5      S-  [        U5      S-  -  [        U5      S-  -  -
  5      -  US[        S-  45      n[        X2S[        S-  45      nU[        U -  S-  -
  R                  5       S:X  d   eg )Nza x yTr\  r   r   r   )r    r   rB   r8   r   ro   )r  r   r  i1i2s        r   test_W25rJ  ;
  s     gD)GA!	As1vd1s1vqyQ23q619<<==	
Ar!t
B 
21bd|	$BAaK!!#q(((r   c            	          [        SSS9u  p[        [        [        XS-  -
  5      USS45      U SS45      [        SS	5      :X  d   eg )
Nr  Tr\  r   r   r2  r   r  r  )r    r   rY  r   rd  s     r   test_W26rL  F
  sR    5t$DAYs1!t8}q!Qi8QZ!$%b"I. . .r   c                      [        S5      u  pn[        [        [        S[        SUS[        U -  -
  [        U-  -
  -  45      [        SUS[        U -  -
  -  45      [        SU 45      X-  U-  S-  :X  d   eg )Nr  r   r   r   )r    r   r  r   r  )r  r_  r  s      r   test_W27rN  L
  s    gGA!YyQ1a!A#g!m3D,EF !1aQqSk24AY #$3q57+ + +r   c                      [        SSS9u  p[        S[        SX-  S-  -
  5      -  U SSS9S	U S
-  -  SUS
-  -  -  SU S-  -  SUS-  -  -  -   U S-  SUS-  -  -  -   S-   [        U S-  5      -   :X  d   eg )Nv cTr\  r   r   r   r   x0r   r   r   r   r   r   r    rc   r8   ra   )r2  r  s     r   test_X1rT  S
  s    5t$DA1T!qsQh,''qA6adFBq!tGqAvqAv.AqAv>BQq!tWLM N Mr   c                      [        SSS9u  p[        S[        SX-  S-  -
  5      -  U SSS9nSUS-  -  R                  U SSS9U S-  * US-  -  S-   [        U S-  5      -   :X  d   eg )	NrP  Tr\  r   r   r   r   rQ  rS  )r2  r  s1s      r   test_X2rW  Y
  s{    5t$DA	$qAC!8|$$aA	3Bb!eGA!q)adU1a4Z!^a1g-EEEEr   c                  V   [        [        5      R                  5       [        [        5      R                  5       -  R                  5       n [	        [        5      R                  5       nU[        [        S-  S-  -   S[        S-  -  S-  -   [        [        S-  5      -   :X  d   eX:X  d   eg )Nr   r   r   r  r   )rB   r   rc   r>   rC   ra   )rV  r  s     r   test_X3rY  _
  sy    
a&--/#a&--/
)	1	1	3B	QBQT!Va1fRi'!AqD'11118O8r   c                  <   [        [        [        5      [        -  5      R                  5       n U [        S-  * S-  [        S-  S-  -
  [	        [        S-  5      -   :X  d   e[        [        [        [        5      [        -  5      5      R                  5       U :X  d   eg )Nr   r   r      )r/   rB   r   rc   ra   )rV  s    r   test_X4r\  f
  sw    	SVAX			B!Q$q1a48#a1g----vc!fQh '')R///r   c            	          [        S5      n [        SSS9u  pp4[        [        [	        U[
        -  5      [
        5      [        U[
        -  5      -   [        U " U[        -  5      [        S[
        45      -   [
        USS9  g )Nr  za b c dTr\  r   r   rQ  )	r
   r    rc   r   r   r   r   r   r  )r  r  r_  r  r  s        r   test_X5r^  l
  se     	A.JA! 4!A#?QqsV#i!A#Aq	&BBar   c                     [        SSSS9u  p[        [        X-   [        -  5      [        U [        -  5      [        U[        -  5      -  -
  [        SSS9[        S-  U * U-  S-  X-  S-  -   -  [	        [        S-  5      -   :X  d   eg )Nr0  F)r  scalarr   r   rQ  r   )r    rc   r.   r   ra   r^  s     r   test_X6ra  
  s     5eE:DA3qy>C!Hs1Q3x$77qAFdQBqDFQSUN#a1g-. / .r   c                     [        S[        [        [        5      S-
  -  -  [        SS5      [        S-  SS[        -  -  -
  [        SS5      -   [        S-  S-  -
  [        S-  S	-  -   [        S
-  S-  -
  [	        [        S-  5      -   :X  d   eg )Nr   r   r   r	  r   r   i  r   i v  r   i u )rc   r   r.   r   ra   r   r   r   test_X7rc  
  s     1aQ!n%q!Q/1r7Q!W3DaH4!tCx4 "#Q$u*4-/0!tG|4<>?1g4F F G Fr   c                     [        SSS9n [        [        [        U 5      5      U [        S-  S-  SS9S[        U [        [        SS5      -  -
  5      -  U [        [        SS5      -  -
  [        SS5      -  S	-  -   U [        [        SS5      -  -
  [        S
S5      -  S-  -   [        U [        [        SS5      -  -
  S-  U [        [        SS5      -  45      -   :X  d   eg )Nr   Tr\  r   r   r   rQ  r   r   r      )r    rc   r8   rA   r   r   ra   rp  s    r   test_X8rf  
  s    
 	$A4A<r!tAv3d1r!Aq'z>""a"Qq!W*nqAw%>r%AAAaG^a1g%c)*,-q2a1g:~.AAr!Aq'z?,STT U Tr   c                  @   [        [        [        -  [        SSS9S[        [        [        5      -  -   [        S-  [        [        5      S-  -  S-  -   [        S-  [        [        5      S-  -  S-  -   [        [        S-  [        [        5      S-  -  5      -   :X  d   eg )Nr   r   rQ  r   r   r   r   )rc   r   r/   ra   r   r   r   test_X9rh  
  s    1a4qA&!aAh,Ac!fai9I*IqDQN1+ Ac!fai0+1 1 2 1r   c            	      $   [        S5      u  p[        [        [        U 5      5      [        [	        X-   5      5      -   U SSS9[        [	        U5      5      [        U 5      -   U [        U5      -  [	        U5      -  -   [        U S-  5      -   :X  d   eg Nzz wr   r   rQ  r    rc   r/   r2   r1   ra   r  r  s     r   test_X10rm  
  s|    5>DA3tAw<#d15k"22A!qAQL3q6!Ad1gId1g$55!Q$?@ A @r   c            	         [        S5      u  p[        [        [        U 5      [	        X-   5      -  5      U SSS9[        [	        U5      5      [        U 5      -   U [        U5      -  [	        U5      -  -   [        U S-  5      -   :X  d   eg rj  rk  rl  s     r   test_X11ro  
  sx    5>DA3tAwae,-qQ!<QL3q6!Ad1gId1g$55!Q$?@ A @r   c                      [        SSS9u  pn[        [        U5      U -  [        U* U-  5      -  USSS9US-
  U -  [        U5      -  SU SU-  -   US-
  -  S-  -
  [	        US-
  S-  5      -   -  :X  d   eg )Nza b xTr\  r   r   rQ  )r    rc   r/   r.   ra   )r  r_  r   s      r   test_X12rq  
  s     gD)GA! 3q619S!AY&a15UQJs1vqA!Ga!e#4Q#66AEA:FGH I Hr   c                      [        [        S[        S-  -  S-   5      [        [        SS9[        S5      [        -  [	        S[        -  [        [        45      -   :X  d   eg )Nr   r   rQ  )rc   r8   r   r   ra   r   r   r   test_X13rs  
  sG    $qAvz"A"2d1gai!AaC!R/6QQQQr   c                     [        SSS[        -  -  -  [        S[        -  [        5      -  [        [        [        :H  SS9S[        [        5      [        [        5      -  -  [        S[        -  [        [        45      -   :X  d   eg )Nr   r   r  )rc   r   r"   r   r   r8   r   ra   r   r   r   test_X14ru  
  so     !A!H*Xac1--QUa!$%tBxQ'7$81QqS1b'?$JK K Kr   z*https://github.com/sympy/sympy/issues/7164c                      [        SSS9u  p[        [        U* 5      U-  X[        45      n[	        X [        SS9SU S-  -  SU S	-  -  -   S
U S-  -  -
  S
U -  -   [        U S-  U [        45      -   :X  d   eg )Nr  Tr\  r   rQ  r   r   r   r   r   r
  )r    r   r.   r   rc   ra   )r   rM  e1s      r   test_X15rx  
  s     5t$DA 
3r719qRj	)B2R1%adFQq!tVOa1f$qs*Qq2wB-@@A B Ar   c                  H   [        [        [        [        -   5      [        [        -   SSS9S[        [        -   S-  S-  -
  [	        [        S-  [        S-  [        -  -   [        S-  [        S-  -  -   [        [        S-  -  -   [        S-  -   [        [        5      -   :X  d   eg )Nr   r   rQ  r   r   r   )rc   r>   r   r  ra   r   r   r   test_X16rz  
  s    3q1u:q1ua0AQ
14DadQT!Vmad1a4i'!AqD&01a47A>5? ? @ ?r   c            	      4   [        [        [        [        5      [        -  5      5      [	        S[
        -  SS[
        -  S-
  -  -  [        S[
        -  5      -  [        S[
        -  -  -  [
        [        S[
        -  5      -  -  [
        S[        45      :X  d   eg )Nr2  r   r   )	r   r/   rB   r   r   r   r%   r#   r   r   r   r   test_X17r|  
  s}     s3q6!8}R!GA!aL 1Q3/AaC8!IacN:JKaQRTVZXY Y Yr   c            
      .   [        S5      n [        [        [        * 5      [	        [        5      -  5      [        S[        R                  U -  -  [	        [        SS5      U -  [        -  5      -  [        U -  -  [        U 5      -  U S[        45      :X  d   eg )Nr   r   r   r   r   )r   r   r.   r   rB   r   r   r~  r   r   r#   r   rr  s    r   test_X18r~  
  s{    . 	c
AsA2ws1v~AqM#a1gail++AqD01=1bzJK K Kr   c                      [        S5      e)NzTSolve using series not supported. Inverse Taylor series expansion also not supportedr"  r   r   r   test_X19r    s      4 5 5r   c                      [        S5      e)Nz'Symbolic Pade approximant not supportedr"  r   r   r   test_X20r    s     G
HHr   c                     [        SSS9n [        SSSS9n[        [        [        U * U 45      nUR                  R                  S:X  d   eUR
                  R                  R                  UR
                  R                  S   S5      S:X  d   eUR
                  R                  R                  UR
                  R                  S   U5      SU -  [        -  SU-  -  U-  [        U[        -  [        -  U -  5      -  :X  d   eg	)
z
Test whether `fourier_series` of x periodical on the [-p, p] interval equals
`- (2 p / pi) sum( (-1)^n / n sin(n pi x / p), n = 1..infinity )`.
rY  Trp  r   )r  r   r   r	  r2  N)
r    r   r   anformulabnr  	variablesr   rB   )rY  r   r  s      r   test_X21r  "  s    
 	d#AdD1Aq1qb!*%A 44<<1 44<<QTT^^A.2a77744<<QTT^^A.2
1R2'AAbDF1H-. . .r   c                      [        S5      e)NzFourier series not supportedr"  r   r   r   test_X22r  4  s    < <
==r   c                      [        SSS9n [        SSS9n[        S5      n[        [        US-
  U -  5      X5      u  n  nX2US-  US-
  S-  -   -  :X  d   eg )	NrM  Trp  r  r\  r  r   r   )r    r   r>   rM  r  r  rg  r  s        r   test_Y1r  U  sc    d#A$AAQUAI5GAq!1a41q51*$%%%%r   c                      [        SSS9n [        SSS9n[        S5      n[        X"S-  US-
  S-  -   -  X SS	9nU[        XS-
  -  5      :X  d   eg )
NrM  Trp  r  r\  r  r   r   ro   )r    r   r>   )rM  r  r  r   s       r   test_Y2r  ]  s]    d#A$AA!!TQUQJ%6"7MAA1uIr   c                      [        SSS9n [        SSS9n[        S5      n[        [        X-  5      [        X-  5      -  XSS9u  n  nX1US-  S	US-  -  -
  -  :X  d   eg )
NrM  Trp  r  r\  r  r  r   r   )r    r   r2   r1   r  s        r   test_Y3r  e  si    d#A$AAQS	$qs) 3QDIGAq!1a4!AqD&=!!!!r   c                      [        SSS9n [        S5      n[        [        S[        U 5      -  5      XSS9u  n  nUSU-  [	        S[        U5      -  5      U-  -
  :X  d   eg )	NrM  Trp  r  r   r  r   r  )r    r   rx   r8   r.   )rM  r  rg  r  s       r   test_Y4r  m  s_    d#AAAd1gItDGAq!!c"T!W*oa'''''r   c                     [        SSS9n [        S5      n[        S5      n[        S5      n[        [        [	        U" U 5      U S5      U" U 5      -   S[        U S	-
  5      [        U S-
  5      -
  -  -
  XSS
9X#05      nU* US-  U" U5      -  -   X" S5      -  -
  U" U5      -   [        [        U" U 5      U 5      U S5      -
  S[        U* 5      -  U-  -
  S[        SU-  5      -  U-  -   nUS:X  d   e[        XC" U5      5      S   n[        X`US	S/05      nXaS-  [        SU-  5      -  S[        U5      -  -   S-
  [        SU-  5      -  XS-  S	-   -  -  :X  d   e[        XaU 5      nUR                  [        U S	-
  5      5      R                  [        U S-
  5      5      nUSS[        U S	-
  5      -  -
  [        U S	-
  5      -  S[        U S-
  5      -  S-
  [        U S-
  5      -  -   [        U 5      [        U 5      -  -   :X  d   eg )NrM  Tr\  r  r  r1  r   r   r   )nocondsr   r	  )r    r
   r   r   r   ru   r   r	   r.   rr   r   r   r@  r>   )rM  r  r  r1  rg  DYfyfs           r   
test_Y5_Y6r  t  s#    	$AAAA0adAq1AAaD1H"#Yq1u%5	!a%8H%H"I2J !d 467V	=A 
QT!A$Y1Q4!A$&j1q.A1a)HH	#qb'	!	BqD	k!m	$  6M6 
q!A$	B	rq1a&k	2BQ$s1Q3x-!CF(*Q.BqD	91dQh<HHHH	"2!	,B	IacN	#	+	+IacN	;B	
Qs1q5z\	9QU++	
3q1u:	9QU++	,Ay|	  r   c                  `   [        SSS9n [        SSS9n[        S5      n[        SS[        S	[        -  [	        U [        U-  -
  5      -  [        S[
        45      -  -   X5      u  n  nUS[        S	[        -  [        U* [        -  U-  5      -  U-  [        S[
        45      -  SU-  -   :X  d   eg )
NrM  Trp  r  r\  r  r   r   r2  )r    r   r   r   ru   r   r.   )rM  r  r  rg  r  s        r   test_Y7r    s    
 	d#A$AAAc2')A!G2D*D+,a*'6 %6 !678=GAq!
 #rAgc1"Q$q&k)!+aBZ881Q3>>>>r   c                  T    [        S[        [        5      [        [        5      :X  d   eg r  )r   r   r  rE   r   r   r   test_Y8r    s    Q1%A666r   c                      [        [        S[        S-  -  5      [        [        5      [	        [
        5      [        [
        S-  * [        S-  -  S-  5      -  S-  :X  d   eg )Nr  r   r   r   )r   r.   r   r  r8   r   r   r   r   test_Y9r    sQ    c"QT'lAq1HS"a%1Q'')* + *r   c            	      8   [        [        [        5      [        S[        [        5      -  5      -  [        [        5      R                  5       S[        S-  -  [        S-  -  S-   S[        S-  -  [        S-  -  S[        S-  -  [        S-  -  -   S-   -  :X  d   eg )	Nr  rF  r   r  r   r   r  r  )r   rY  r   r.   r  rA  r   r   r   r   test_Y10r    s    c!fSCF^3Q:AACAXad]R"RU(1a4-"RU(1a4-"?""DEF G Fr   z*https://github.com/sympy/sympy/issues/7181c                      [        S5      u  p[        SSU -
  -  X5      u  n  nU[        [        [        U-  5      -  :X  d   eg )Nx sr   )r    r   r   r?   r   r  rg  r  s       r   test_Y11r    sE     5>DA
  1q5	10GAq!3r!t9r   c                      [        S5      u  p[        [        SU 5      U S-  -  X5      u  n  nUSUS-
  -  * [        US-  5      -  [        U* S-  S-   5      -  :X  d   eg )Nr  r   r   r   )r    r   rD   rH   r  s       r   test_Y12r    sj     5>DA wq!}QT118GAq!QUE!A#J&uaRTAX6666r   c                      [        S5      eNzz-transform not supportedr"  r   r   r   test_Y13r         9
::r   c                      [        S5      er  r"  r   r   r   test_Y14r    r  r   c            	      .   [        S5      n [        U " [        S-   5      SU " [        S-   5      -  -
  U " [        5      -   S-
  U " [        5      U " S5      SU " S5      [        05      R	                  5       [        S-  [        [        S-
  -  -   S-   :X  d   eg )Nr  r   r   r   )r
   r   r   r   ro   r  s    r   test_Z1r    s    A1QU8a!a%j(1Q4/!3QqTaD!QqT1%''/xzQTAq1uI5E5IJ K Jr   c            	          [        S5      n [        U " [        5      SU " [        S-
  5      -  SU " [        S-
  5      -  -
  -
  U " [        5      U " S5      SU " S5      S05      S[        -  * S[        -  -   :X  d   eg )Nr  r   r   r   r   r   r   )r
   r   r   r  s    r   test_Z2r    sr    A1Q41Qq1uX:!AE(
23QqTAaD!QqT1;MN1uq!t|  r   c            	         [        S5      n [        S5      S-  [        S5      S-  -
  [        -  [        S5      S-  [        S5      S-  -
  -  [        S5      S-  [        S5      S-  -   [        -  [        S5      S-  [        S5      S-  -   -  -   n[	        U " [        5      U " [        S-
  5      U " [        S-
  5      -   -
  U " [        5      U " S5      SU " S5      S05      nX!:X  d   eg )Nr  r   r   r   r   )r
   r   r8   r   r   )r  expectedr  s      r   test_Z3r    s    A 1a$q'!)#a'1a$q'"*)<=1a$q'!)#a'aad1f)<=>H
11q5Aa!eH,-qtadAqtQ5G
HC??r   c            
      H   [        S5      n [        S5      n[        U " [        5      SU-   U[        S-
  -  -
  U[        S-   -  -
  SU[        -  -
  -  U " [        S-
  5      -  USU[        S-
  -  -
  -  SU[        S-
  -  -
  -  U " [        S-
  5      -  -
  S-   -
  U " [        5      U " S5      SU " S5      SSU-  -   US-  -   SU-   -  05      nX![        S-   -  U[        S-   -  SU-  -
  S-
  -  [        S-   US-  -  -   SU-  -   [        -
  US-
  S-  US-   -  -  -
  S:X  d   eg )Nr  r  r   r   r   r   )r
   r    r   r   )r  r  r  s      r   test_Z4r    sY    	AA 	qtAAaC(1qs83a!Q$h?!a%HA!H%q1qs8|4Qq1uX=>@AB CQ4!A$1Q4!ac'AqD.1q5!9:	<A AEAq1uI!Oa/0!eQT\aC "#$'(sQh!n6 69:; < ;r   c                     [        S5      u  p[        [        [        5      [        S5      S[        [        5      -  -   [	        S[        -  5      -
  n[        U[        [        5      5      n[        [        UR                  5      nU" [        5      U[	        S[        -  5      -  U [        S-  -
  [        S[        -  5      -  -   :X  d   e[        [        [        U" [        5      [        5      5      n[        U" S5      U" S5      45      nU" [        5      R                  XU    5      R                  XU   5      nU[        * [        S[        -  5      -  S-  [	        S[        -  5      S-  -   :X  d   e[        S5      e)NzC1 C2r   r   r   r   z1ODE solving with initial conditions not supported)r    r	   r   r   rB   r   r   rhsr>   r   rr   r  r#  )C1C2r  r  f0rH  
const_dictresults           r   test_Z5r    s,    WFB 
AaD!Q	!AaD&	(3qs8	3B
QqT
C	377	Ba5Bs1Q3xK2!8S1X"55555	41q>	"B1r!u~&JUZZrN+00^DFaRAaC[]S1XaZ////    r   c                  @   [        SSS9n [        S5      n[        [        U 5      U S5      S[        U 5      -  -   [        SU -  5      -
  n[	        X U5      u  n  nX1S-  [        [        U 5      X5      -  S[        [        U 5      X5      -  -   SUS-  S-   -  -
  :X  d   eg )NrM  Trp  r  r   r   )r    r	   r   rB   r   r   )rM  r  r  rg  r  s        r   test_Z6r    s     	d#AA	AaD!Q	!AaD&	(3qs8	3Bq)GAq! A&qtQ22qtQ**+-.1q\: : ; :r   (  __doc__sympy.assumptions.askr   r   sympy.assumptions.refiner   sympy.concrete.productsr   
sympy.corer   sympy.core.evalfr   sympy.core.functionr	   r
   r   r   r   r   r   sympy.core.mulr   sympy.core.intfuncr   sympy.core.numbersr   r   r   r   r   r   r   r   sympy.core.relationalr   r   sympy.core.singletonr   sympy.core.symbolr   r   r    (sympy.functions.combinatorial.factorialsr!   r"   r#   r$   %sympy.functions.combinatorial.numbersr%   r&   r'   r(   $sympy.functions.elementary.complexesr)   r*   r+   r,   &sympy.functions.elementary.exponentialr-   r.   r/   %sympy.functions.elementary.hyperbolicr0   r1   r2   r3   #sympy.functions.elementary.integersr4   r5   (sympy.functions.elementary.miscellaneousr6   r7   r8   $sympy.functions.elementary.piecewiser9   (sympy.functions.elementary.trigonometricr:   r;   r<   r=   r>   r?   r@   rA   rB   rC   sympy.functions.special.besselrD   'sympy.functions.special.delta_functionsrE   *sympy.functions.special.elliptic_integralsrF   rG   'sympy.functions.special.gamma_functionsrH   rI   sympy.functions.special.hyperrJ   #sympy.functions.special.polynomialsrK   rL   &sympy.functions.special.zeta_functionsrM   sympy.geometry.utilrN   sympy.logic.boolalgrO   sympy.matrices.denserP   rQ   !sympy.matrices.expressions.matmulrR    sympy.ntheory.continued_fractionrS   rt  rT   ru  rU   rz  rV   r}  sympy.ntheory.factor_rW   sympy.ntheory.generaterX   sympy.polys.domains.integerringrY   sympy.polys.orthopolysrZ   sympy.polys.partfracr[   sympy.polys.polytoolsr\   r]   r^   r_   sympy.series.limitsr`   sympy.series.orderra   sympy.series.residuesrb   sympy.series.seriesrc   sympy.sets.fancysetsrd   sympy.sets.setsre   rf   rg   rh   sympy.simplify.combsimpri   sympy.simplify.hyperexpandrj   sympy.simplify.powsimprk   rl   sympy.simplify.radsimprm   sympy.simplify.simplifyrn   ro   sympy.simplify.sqrtdenestrp   sympy.simplify.trigsimprq   sympy.solvers.solversrr   r6  rt   ru   'sympy.functions.special.error_functionsrv   rw   rx   ry   sympy.testing.pytestrz   r{   r|   r}   r~   sympy.utilities.iterablesr   r   r   sympy.matricesr   r   r   &sympy.matrices.expressions.blockmatrixr   r   sympy.matrices.expressionsr   r   sympy.physics.quantumr   sympy.polys.ringsr   sympy.polys.fieldsr   sympy.polys.solversr   sympy.concreter   r   sympy.integralsr   sympy.integrals.transformsr   r   r   r   r   r   r   sympy.solvers.recurrr   sympy.solvers.solvesetr   r   r   sympy.solvers.oder   r   	itertoolsr   r   sympy.series.formalr   sympy.series.fourierr   sympy.calculus.utilr   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+  r0  r3  r5  r7  r:  r=  r?  rA  rC  rH  rJ  rL  rN  rQ  rS  rV  r\  r^  ra  rc  rg  ri  rk  rv  rx  r{  r  r  r  r  r  r  r  r  r  r  ro  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.  r0  r2  r4  r7  r9  r<  r>  rB  rD  rF  rI  rK  rM  rO  rQ  rS  rW  rZ  r`  rb  re  rg  rj  rn  rq  rt  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.  r1  r3  r5  r7  r9  r;  r=  r?  rA  rC  rE  rG  rI  rN  rP  rR  rX  r[  r^  rh  rj  rn  rs  rw  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-  r5  r;  rA  rE  rJ  rO  rQ  rS  rV  rX  r\  r_  rb  rd  rf  rh  rj  rl  rn  rs  rv  rx  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  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)  r+  r.  r1  r3  r5  r8  r:  r=  rB  rD  rF  rJ  rL  rN  rT  rW  rY  r\  r^  ra  rc  rf  rh  rm  ro  rq  rs  ru  rx  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  r  r   r   r   <module>r     s   ) + + !     #   ( " 4 4  Z Z
 
 E E
 
 > C C :( ( ( 2 > D / : % # 3 4- - , - . 0 & > > %   ) & ) D D , 2 5 * 8 0 , '  : = ? ? 7 E E 0  3 3 N ? , & ( -  + %D D D ( D D $ * ' # / ' ::
'
1a=$7 1aAqSMSM<
N#
7K
: 2 .&$:[ J J1%
   : :DB#
 X X N N H H P P 9 9 3 3 P P
 ^ ^ \ \)> Q Q Y Y c c#. B F F N N
J/6
 < </ + +5
+"# 2X1b53q!t8#bAg-1b582=2X1b52ae8#bBh.ArE9Bq"uHDrIq"uHr!R%x"QT'!Bq!tG+bd2R74%-%-0 C C) Y9:  7 D D
 K K
K)8"
P
$ M M
 K K L L
@4 + +:X < < j j 6 6 - - 6 6
W gX  X  *Y f f*W[:,4f
_ ^ ^(
'
 E E H HX B B,: K K
I9;
00
0.4Y@ ; ;L K K D D
 V V E E< j jG
 F F X X3
 5 5 c c
 X X
: Q Q
 ? ? S S/
;5IH3Q=
4 q qH
L] U U V V Y Y
W
B"
<3~	P * * 6 6 ; ;
 E E
 O  O
 6 6
 /  /DHl
P
;
 I I9A
 D D
0
H > >
d > >0 
!%4 L L&78'P ) ) L L%K
6	,, I I>(&"&$ . - -
 - -
+ C CM
M 7 7$   ' ': 
 
 N NGN:CI? 0 0 	/ 	/ * * > >* J J1+
 0 0< 
$ 
$   . . H H . . , ,*-3 5  5 A A   8 8:8
J
A
7 * * # #     # #  4
370
C
>,C
 < < X X L L77
&
@
 0 0C  EE2G  
 < <: F F ( (
 3 3
  
P
9
GC ; ; M MN
 3 3 N;#
 M M A  AA
 Y Y = = 8 8 = = >  > M  M
 M  M
 Q  Q
) = = H  H : :  >  = G G
.
:C R R ? ?%
2 3 3) 9 	 9 ) 	 ).+NF0  (/GU2
AA I IR K K 23
B 4
B@ Y Y  K K6 5 5 
I 
I.$ > >@&"(B ? ? 7 7+
G
 23  4 7 7 ; ;
 ; ;
K < <  * 
; 
;r   