
    sgr                       d Z ddlmZmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ ddlmZmZmZmZmZmZmZ ddlmZ dd	lmZ dd
lmZmZmZmZmZmZmZm Z  ddl!m"Z"m#Z# ddl$m%Z% ddl&m'Z'm(Z(m)Z) ddl*m+Z+m,Z,m-Z-m.Z. ddl/m0Z0m1Z1m2Z2m3Z3 ddl4m5Z5m6Z6m7Z7m8Z8 ddl9m:Z:m;Z;m<Z< ddl=m>Z>m?Z?m@Z@mAZA ddlBmCZCmDZD ddlEmFZFmGZGmHZH ddlImJZJ ddlKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZU ddlVmWZW ddlXmYZY ddlZm[Z[m\Z\ ddl]m^Z^m_Z_ ddl`maZa ddlbmcZcmdZd ddlemfZf ddlgmhZh ddlimjZj dd lkmlZlmmZm dd!lnmoZo dd"lpmqZrmsZtmuZvmwZx dd#lymzZz dd$l{m|Z| dd%l}m~Z~ dd&lmZ dd'lmZ dd(lmZmZmZmZ dd)lmZ dd*lmZ dd+lmZ dd,lmZ dd-lmZ dd.lmZmZmZmZ dd/lmZ dd0lmZ dd1lmZmZ dd2lmZ dd3lmZmZ dd4lmZ dd5lmZ dd6lmZ dd7lZdd8l/mZ dd9lXmZ dd:lmZmZmZ dd;lemZ dd<lmZmZmZmZmZ dd=lmZ dd>lmZmZ dd?lmZmZmZ dd@lmZmZ ddAlmZmZ ddBlmZ ddClmZ ddDlmZ ddElmZ ddFlmZ ddGlmZ ddHlmZ ddIlmZmZmZmZmZmZmZ ddJlmZ ddKlmZmZmZ ddLlmZ ddMl!mZ ddNlmZmZ ddOlmZ ddPlmZ ddQlmZ e%j                  ZeZ e)dR      \  ZZZ e)dSdTU      \  ZZZZZZ edV      Z edW      ZdX ZdY ZdZ Zd[ Zd\ Zd] Zd^ Zd_ Z d` Zda Zdb Zdc Zdd Zde Zdf Zdg Zdh Z	di Z
dj Zdk Zdl Zdm Zedn        Zdo Zdp Zedq        Zdr Zeds        Zdt Zdu Zdv Zdw Zedx        Zedy        Zedz        Zed{        Zed|        Zed}        Zed~        Zed        Z ed        Z!d Z"d Z#ed        Z$ed        Z%ed        Z&d Z'd Z(d Z)d Z*d Z+ed        Z,ed        Z-d Z.d Z/d Z0d Z1ed        Z2d Z3ed        Z4d Z5d Z6d Z7d Z8dedz  z  dedz  z  z
  dedz  z  z
  dedz  z  z
  dedz  z  z
  dz
  Z9dedz  z  dedz  z  z
  dedz  z  z
  dedz  z  z
  dedz  z  z
  dedz  z  z   dz   Z:dedz  z  dedz  z  z
  dedz  z  z   dedz  z  z   dez  z
  dz
  Z;d Z<d Z=d Z>d Z?d Z@d ZAd ZBd ZCed        ZDd ZEd ZFd ZGd ZHed        ZId ZJed        ZKedÄ        ZLdĄ ZMdń ZNdƄ ZOdǄ ZPdȄ ZQdɄ ZRedʄ        ZSed˄        ZTd̄ ZUd̈́ ZVed΄        ZWdτ ZXdЄ ZYedф        ZZd҄ Z[dӄ Z\edԄ        Z]edՄ        Z^edք        Z_edׄ        Z`ed؄        Zadل Zb edګ      edۄ               Zced܄        Zdd݄ Zedބ Zfed߄        Zgd Zhd Zid Zjd Zkd Zld Zmd Znd Zoed        Zpd Zqd Zred        Zsed        Ztd Zued        Zvd Zwd Zxed        Zyd Zzd Z{d Z|d Z}d Z~d Zd Zd Zd Zd Zd Zed        Zd Zed        Zed         Zed        Zed        Zd Zed        Zd Zd Zed        Zed        Zd	 Zed
        Zd Zed        Zed        Zd Zed        Zed        Zed        Zd Zd Zd Zd Zd Zd Zd Zd Zd Zed        Zd Zd Zd Zed        Zed         Zed!        Zd" Zd# Zd$ Zd% Zd& Zd' Zed(        Zed)        Zed*        Zed+        Zeed,               Zed-        Zeed.               Zd/ Zd0 Zd1 Zd2 Zd3 Zed4        Zd5 Zd6 Zed7        Zd8 Zd9 Zed:        Zd; Zed<        ZĐd= ZŐd> ZƐd? Zǐd@ ZedA        ZɐdB ZʐdC ZːdD Z̐dE Z͐dF ZedG        ZedH        ZАdI ZѐdJ ZҐdK ZӐdL ZԐdM ZՐdN Z֐dO ZאdP ZؐdQ ZedR        ZڐdS ZېdT ZܐdU ZݐdV ZސdW ZߐdX ZdY ZedZ        Zed[        Zd\ Zed]        Zd^ Zd_ Zed`        Zeda        Zedb        Zdc Zedd        Zede        Zdf Zdg Zdh Zdi Zdj Zdk Zedl        Zedm        Zedn        Zedo        Zedp        Zdq Zdr Zeds        Zdt Zedu        Zedv        Zedw        Zedx        Z edy        Zedz        Zd{ Zd| Zd} Zeed~               Zed        Zed        Zed        Z	d Z
d Zd Zd Zd Zd Zed        Zed        Zed        Zed        Zed        Zd Zd Zd Zd Zd Zd Zd Zd Zed        Zed        Zed        Zd Z d Z!d Z"d Z#d Z$d Z%ed        Z&d Z'd Z(ed        Z)d Z*d Z+d Z,ed        Z-ed        Z.d Z/ed        Z0ed        Z1ed        Z2ed        Z3d Z4d Z5d Z6d Z7ed        Z8ed        Z9d Z:ed        Z;d Z<d Z=d Z>ed        Z?eed               Z@d ZAed        ZBed        ZCed        ZDed        ZEeed               ZFeed               ZGeed               ZHeed               ZId ZJedÄ        ZKeedĄ               ZLedń        ZMedƄ        ZNdǄ ZOedȄ        ZPdɄ ZQedʄ        ZRd˄ ZSd̄ ZTd̈́ ZUed΄        ZVedτ        ZWdЄ ZXdф ZYed҄        ZZdӄ Z[eedԄ               Z\eedՄ               Z]dք Z^dׄ Z_d؄ Z`dل Zadڄ Zbdۄ Zced܄        Zdd݄ Zedބ Zfd߄ Zgd Zhd Zid Zjed        Zkd Zled        Zm ed      d        Znd Zoed        Zped        Zqed        Zred        Zsd Zted        Zud Zvd Zwd Zxd Zyd Zzed        Z{ed        Z|d Z}d Z~ ed      ed               Zed        Zed        Zed        Zd Zd Zd Zed         Zed        Zed        Zy7(  z Tests 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                     t        t        t        t        t        t        t              t        t        t        t              z  t        t        t
        t              z  t        t        t        t        t        t
              k(  sJ y Nre   ijklm     T/var/www/html/venv/lib/python3.12/site-packages/sympy/utilities/tests/test_wester.pytest_B1r   v   sR    aAq!Q')Aq!*<<aA#,Q1a#;< < <r   c                  ,   t        t        t        t        t        t        t              t        t        t        t              z  t        t        t
        t              z  t        t        t
        ht        t        t        ht        t        t        h      k(  sJ y 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                      t        t        t        t        t        t
              t        t              z
  t        t        t        t        t
              k(  sJ y r   r   r   r   r   test_B3r      s8    aAq!$y|3aAq!" # "r   c                      t        t        t        t              t        t        t              z   t        t        t        ft        t        ft        t        ft        t        f      k(  sJ y 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                  $    t        d      dk(  sJ y )N2   l         <:.kjFt=VfvaI= )r#   r   r   r   test_C1r      s    bMIJ K Jr   c                  V    t        t        d            dddddddddd	d	d	d	d	d	d
k(  sJ y )Nr   /                        )r   r                              %   )   +   r   )rW   r#   r   r   r   test_C2r      sB    im$B2"1!qaQ1!)   r   c                  :    t        d      t        d      fdk(  sJ y )N
   	   )i   i  )r$   r   r   r   test_C3r      s    rNJqM*k999r   c                      ddk(  sJ y )Ni
  r   r   r   r   test_C4r      s    D==r   c                  &    dt        dd      k(  sJ y )N{   234r   intr   r   r   test_C5r      s    #eQ-r   c                  L    t        dd      t        dd      cxk(  rdk(  sJ  J y )N677r   1BF   i  r   r   r   r   test_C6r      s'    ua=CrN1c11111r   c                  &    t        dd      dk(  sJ y )Ni   r   r   )r/   r   r   r   test_C7r      s    ua=Ar   c                  p    t        j                  dd      dk(  sJ t        j                  dd      dk(  sJ y )Nr   r   r      )rY   invertr   r   r   test_C8r      s2    99Q?a99Q?ar   c                  :    t        t        dd      d      dk(  sJ y )N  i  iB  J   r   r   r   r   test_C9r      s    T4 $'2---r   c                  j    d} t        dd      D ]  }| t        d|      z  }  | t        dd      k(  sJ y )Nr   r   r   r   i  i	  )rangeR)xns     r   test_C10r      s?    	A1b\ 	Qq!W$r   c                  8    t        dd      t        d      k(  sJ y )Nr   r   z
0.[142857])r   r   r   r   r   test_C11r      s    Q7ao%%%r   c                  @    t        dd      t        dd      z  dk(  sJ y )Nr   r   r   r   r   r   r   r   test_C12r      s!    Q8aAh!###r   c                      t        dd      dt        dd      z   t        dd      z  z  } dt        dd      z  }| |k(  sJ y )Nr   r   r   r   i  r   r   testgoods     r   test_C13r      sB    R8q1R;1Q722D!Q<D4<<r   c                  l    t        t        dt        d      z  dz               dt        d      z   k(  sJ y )Nr   r   r   r   rp   r8   r   r   r   test_C14r      s.    d1T!W9q=)*a$q'k999r   c                      t        t        ddt        ddt        ddt        ddt        d      z  z
        z  z
        z  z         z  z               } t        d      dz   }| |k(  sJ y )N   r   r   r   r   r   r   s     r   test_C15r     sc    d2$q1T!ba!DG)m9L6L2L-M+M'M"N NNOPD7Q;D4<<r   c            	          t        t        ddt        d      z  z   dt        d      z  z   dt        d      z  z               } t        d      t        d      z   t        d      z   }| |k(  sJ y )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4<<r   c                      t        t        d      t        d      z   t        d      t        d      z
  z        } ddt        d      z  z   }| |k(  sJ y )Nr   r   r   r   )rm   r8   r   s     r   test_C17r     sH    DGd1g%$q'DG*;<=Dqay=D4<<r   c            	          t        t        dt        d      z         t        dt        d      z
        z  j                  d            dk(  sJ y )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            	          t        t        ddt        d      z  z   t        dd      z              dt        d      z   k(  sJ y )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                      ddt        d      z  z   } t        | t        dd      z  dz   t        d      z  | t        dd      z  z        }t        |      t        d      k(  sJ y )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            	          t        t        ddt        d      z  z   t        dd      z              t        dt        d      z         k(  sJ y )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   t        ddt        d      z  z
  t        ddt        d      z  z
        z  ddt        d      z  z
  t        ddt        d      z  z
        z  z   dz   dt        d      z  z
  d	t        d      z  d
z
  z        } t        d      dz  t        t        d      dz
        dz  z
  }| |k(  sJ y )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4<<r   c                  ,    dt         z  dz
  t         u sJ y )Nr   r   )r   r   r   r   test_C23r     s    r6A:r   c                      t        d      )Nz2**aleph_null == aleph_1NotImplementedErrorr   r   r   test_C24r$    s    
8
99r   c                  *    dt        d      z  dk(  sJ y )N        r   )r8   r   r   r   test_D1r'    s    a=Cr   c                  R    t        t        d      j                               dk(  sJ y )Niz3.29683147808856e-434295)strr.   evalfr   r   r   test_D2r+    s#    s8}""$%)CCCCr   c                      t        t        t        d      z        j                  d      j                  j                  d      sJ y )N   r   l   h	a%)r.   r   r8   r*  numaer   r   r   test_D3r0    s5    r$s)|""2&**--.@AAAr   c                  l    t        t        dd            dk(  sJ t        t        dd            dk(  sJ y )Nr
  r   r	  )r5   r   r4   r   r   r   test_D4r3    s3    2q?b   1R8"""r   c                      t        d      )Nz6cubic_spline([1, 2, 4, 5], [1, 4, 2, 3], x)(3) == 27/8r"  r   r   r   test_D5r5     s    
V
WWr   c                      t        d      )Nz,translate sum(a[i]*x**i, (i,1,n)) to FORTRANr"  r   r   r   test_D6r7  %      
L
MMr   c                      t        d      )Nz&translate sum(a[i]*x**i, (i,1,n)) to Cr"  r   r   r   test_D7r:  *      
F
GGr   c                      t        d      )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                      t        d      )Nztranslate D8 to FORTRANr"  r   r   r   test_D9r?  7  s    
7
88r   c                      t        d      )Nztranslate D8 to Cr"  r   r   r   test_D10rA  <  s    
1
22r   c                      t        d      )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                      t        dd      t        z  t        dd      z   dz  t        dd      t        dz  z  t        dd      t        z  z   t        dd	      z   k(  sJ y )
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                      t        d      )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                  ^    t        t        d      t        dt        z   z  dt        z   z  k(  sJ y )Nr   r   r   )r!   r   r   r   r   test_F1rL  V  s'    a8q!a%y!a%((((r   c                  v    t        t        t        d            t        t        dz
  z  t        dz
  z  dz  k(  sJ y )Nr   r   r   r   )r   r"   r   r   r   r   test_F2rN  Z  s1    x1~&!QU)QU*;A*====r   c                      t        dt        z  t        t              z  t        dt        z  dz
        z        t        dt        z        k(  sJ y Nr   r   )ri   r   r#   r$   r   r   r   test_F3rQ  ^  s<    AqD9Q<'*QqS1W*==>)AaC.PPPr   c            	          t        dt        z  t        t              z  t        dt        z  dz
  t        dt        f      z        t        dt        z        k(  sJ y 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                      t        t        t        dd      z         t        t              z  t        t              z  t        dt        z        ddt        z  z  z  t        t              dz  z  k(  sJ y 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                      t        d      D  cg c]  } | j                          }} ddidddddidddddig}||k(  sJ y c c} w )Nr   r   )r   r   r   )r   r   )r   copy)ppartTestpartDesireds      r   test_F6r\  m  sV    ",Q-0Q0H0q6qQ<!QQ!q!fEK{""" 1s   Ac                  $    t        d      dk(  sJ y )Nr   r   )r(   r   r   r   test_F7r^  s  s    Q<1r   c                  *    t        ddd      dk(  sJ y )Nr   r   T)signedirs   r   r   r   test_F8ra  w  s    Aq&#---r   c                  $    t        d      dk(  sJ y )Nr   i@  )r'   r   r   r   test_F9rc  {  s    4=Cr   c                  <    t        t        dd            ddgk(  sJ y )N/B iDB iCB )listrX   r   r   r   test_G1rg    s!    
67+,0AAAAr   c                      t        d      )Nz$find the primitive root of 191 == 19r"  r   r   r   test_G2ri    s    
D
EEr   c                      t        d      )Nz,(a+b)**p mod p == a**p + b**p mod p; p primer"  r   r   r   test_G3rk    r8  r   c                  
   t        t        d      j                               j                  d      t	        dd      k(  sJ t        t        d t        t        t        d                              d   t	        dd      k(  sJ y )Nr   r     c                      | j                   dk  S )Nr  )qr   s    r   <lambda>ztest_G15.<locals>.<lambda>  s    ACC2I r   r2  )	r   r8   r*  limit_denominatorr   rf  r   cf_ccf_ir   r   r   test_G15ru    sj    DGMMO$66r:aBiGGG	-tDaM/BCDRH	"b	  r   c                  V    t        t        t        t              d            g dk(  sJ y )Nr   )
r   r   r  r   i$  r   r   r   r   r   )rf  r   rt  r   r   r   r   test_G16rw    s!    tBx#$(IIIIr   c                  0    t        ddd      dg dgk(  sJ y )Nr   r   r   r   )r   r   r   r   )cf_pr   r   r   test_G17rz    s    1b>a....r   c                      t        ddd      dggk(  sJ t        dgg      j                         t        j                  t        d      dz  z   k(  sJ y )Nr   r   r   )ry  cf_rr   r   Halfr8   r   r   r   test_G18r~    sL    1a=aSE!!!!;166DGAI#5555r   c                      t        ddd      } t        t        d| z        dz
  t        d| z        dz   z        }t        t	        |d            dd| z  d| z  d	| z  d
| z  gk(  sJ y )NsTr   positiver   r   r   r   r   r   r  )r    rt  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                  n    t        ddd      } t        d| z  gg      | t        | dz  dz         z   k(  sJ y )Nr  Tr  r   r   )r    r|  r8   r  s    r   test_G20r    s;    TD1A!A#=AQTAX....r   c                  Z    t        ddd      } t        | d| dz  dz         d| z  ggk(  sJ y )Nr  Tr  r   r   )r    ry  r  s    r   	test_G20br    s7    TD1A1adQhQqSE7***r   c                      t        ddt        z  z        t        dt        dz   z        k(  sJ t        ddt        z  z        t        dt        dz   z        k(  sJ y 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                  L    t        ddt        z  z        dt        dz   z  k(  sJ y )Nr   r   )rl   r   r   r   r   test_H2r    s%    1q!t8AE
***r   c                  4    dt         t         dz   z  z  dk(  sJ y Nr2  r   r   r   r   r   test_H3r    s    !QU)!!!r   c                      t        dt        z  dz
        } t        |       t        u sJ | j                  d   dk(  sJ | j                  d   dt        z  dz
  k(  sJ y )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                  @    t        t        t        t              dk(  sJ y Nr   )r^   p1p2r   r   r   r   test_H5r    s    r2q>Qr   c                  ~    t        t        t        t        z        t        t        t        z              t        k(  sJ y r   )r^   r   r  ro  r  r   r   r   test_H6r    s'    vb1f~vb1f~.!333r   c                     dt         z  t        dz  z  t        dz  z  dt         dz  z  t        dz  z  t        dz  z  z
  dt         dz  z  t        d	z  z  t        d
z  z  z   dt         dz  z  z
  dz   } dt         dz  z  t        dz  z  t        dz  z  dt         dz  z  t        dz  z  t        dz  z  z   dt         d	z  z  t        dz  z  t        dz  z  z   dt        dz  z  t        z  z   }t        | |t         t        t              dk(  sJ y )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r2q!Q1$$$r   c                     dt         z  t        dz  z  t        dz  z  dt         dz  z  t        dz  z  t        dz  z  z
  dt         dz  z  t        d	z  z  t        d
z  z  z   dt         dz  z  z
  dz   } dt         dz  z  t        dz  z  t        dz  z  dt         dz  z  t        dz  z  t        dz  z  z   dt         d	z  z  t        dz  z  t        dz  z  z   dt        dz  z  t        z  z   }dt         dz  z  t        dz  z  t        dz  z  dt         d
z  z  t        dz  z  t        dz  z  z
  dt         dz  z  t        dz  z  t        dz  z  z   }t        | |z  ||z  t         t        t              |k(  sJ y )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    sR   	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rAvrAvq!Q'1,,,r   c                      t        dd      } d| t        dz   z  z  | t        dz   z  z
  }d| t        dz   z  z  d| t        z  z  z   }t        ||      | t        z  k(  sJ y )Nr   F)zeror   r   r   r   )r   r   r^   )r   r  r  s      r   test_H9r    sb    sA	
1q1u:AE
	"B	
1q1u:!Q$	Br2;!Q$r   c                      dt         dz  z  dt         dz  z  z   t         dz  z   t         z
  dz
  } t         dz  dt         dz  z  z
  t         z   dz   }t        | |t               dk(  sJ y )Nr   r   r   r   r   )r   r_   r  s     r   test_H10r    sd    	
1a4!AqD&1a4	!	#a	'B	
A!Q$	Q	BRQ1$$$r   c                  \    t        t        t        z  t        t        z  t              dk(  sJ y Nr   )r_   r  ro  r  r   r   r   r   test_H11r    s!    R!VR!VQ'1,,,r   c                      t         dz  dz
  } t         dz  dt         z  z   dz   }t        | |z        t         dz
  t         dz   z  k(  sJ y )Nr   r   )r   ro   )r.  dens     r   test_H12r    sG    
Q$(C
Q$1*q.CCGQQ///r   c                      t        t        t              dz
  t        t        dz        dz   z        t        t        dz        dz
  k(  sJ y rU  )ro   r.   r   r   r   r   test_H13r    s:    SVaZC!HqL12c!A#hlBBBr   c                     t         dz   dz  } t        |       }|ddt         z  z   dt         dz  z  z   dt         dz  z  z   dt         dz  z  z   d	t         d
z  z  z   dt         dz  z  z   dt         dz  z  z   dt         dz  z  z   dt         dz  z  z   dt         dz  z  z   dt         dz  z  z   dt         dz  z  z   dt         dz  z  z   dt         dz  z  z   d	t         dz  z  z   dt         dz  z  z   dt         dz  z  z   dt         dz  z  z   dt         dz  z  z   t         dz  z   k(  sJ t        |t               }|ddt         z  z   dt         dz  z  z   d t         dz  z  z   dt         dz  z  z   d!t         d
z  z  z   d"t         dz  z  z   d#t         dz  z  z   d$t         dz  z  z   d%t         dz  z  z   d%t         dz  z  z   d$t         dz  z  z   d#t         dz  z  z   d"t         dz  z  z   d!t         dz  z  z   dt         dz  z  z   d t         dz  z  z   dt         dz  z  z   dt         dz  z  z   dt         dz  z  z   k(  sJ t        |      ddt         z   dz  z  k(  sJ y )&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            	          t        t        t        t        dz  t        dz  z   dz
        D  cg c]  } t        | z
   c}        t        dz  t        dz  z   dz
  k(  sJ y c c} w )Nr   r   r   )ro   r   r   r   rs    r   test_H15r    sU    C!Q$A+/)BCA!a%CDEAPQSTPTWXXXXCs   Ac                  l   t        t        dz  dz
        t        dz
  t        dz   z  t        dz  dz   z  t        dz  t        dz  z
  t        dz  z   t        z
  dz   z  t        dz  t        dz  z   t        dz  z   t        z   dz   z  t        dz  t        dz  z
  t        dz  z   t        dz  z
  dz   z  t        dz  t        d	z  z
  t        d
z  z   t        dz  z
  dz   z  t        dz  t        d	z  z   t        d
z  z   t        dz  z   dz   z  t        dz  t        dz  z
  t        dz  z   t        d
z  z
  dz   z  k(  sJ y )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                  z    t        t        t        t        t        z              t        t        z  z
        dk(  sJ y r  )ro   r]   r   r  r  r   r   r   test_H17r    s+    F6"r'?+be34999r   c                  (   t        dt        dz  z  dt        dz  z  z   dt        dz  z  z   dt        z  z   dz         } dt        z  dt        z  z   dt        z  dt        z  z
  z  t        dz   dt        z  z
  z  t        dz   dt        z  z   z  }| |k(  sJ y )	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4<<r   c                      t        d      } t        | dz
        j                  t        | dz  dz
              | dz   k(  sJ y )Nar   r   )r    r\   r   r  s    r   test_H19r  )  s<    AA;d1a4!8n-Q666r   c                      t        d      )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                      t        d      )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                      t        t        dz  dt        dz  z  z
  dz   d      t        dz
  dz  t        dz   dz  z  k(  sJ y )Nr   r   r   r   r   modulusr  r   r   r   test_H22r  ;  sA    !Q$1a4-!#Q/AEA:Q
3JJJJr   c                      t         dz  t         z   dz   } t         dz  t         z   dz   t         dz  t         dz  z
  t         dz  z   t         dz  z
  t         dz  z   t         dz  z
  dz   z  }t        | d	
      |k(  sJ y )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                     t        t        j                  j                  d      d      } t	        t
        dz  dt
        dz  z  z
  dz   | 	      t
        | z
  t
        dz   | z
  z  t
        dz
  | z   z  t
        | z   z  k(  sJ y )
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                  |    t         dt        dz  z  z
  dt        dz  z  z   dz  } t        t	        |             | k(  sJ y )Nr   r   r  r   r  r  r]   r   )es    r   test_H25r  K  s<    	
Qq!tVa1f	#A&)!!!r   c                  0   t        t        t              dt        t              dz  z  z
  dt        t              dz  z  z   dz        } t        | d      t        t               dt        t              dz  z  z   dt        t              dz  z  z
  dz  k(  sJ y )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                     dt         z  t        dz  z  t        dz  z  dt         dz  z  t        dz  z  t        dz  z  z
  dt         dz  z  t        d	z  z  t        d
z  z  z   dt         dz  z  z
  dz   } dt         dz  z  t        dz  z  t        dz  z  dt         dz  z  t        dz  z  t        dz  z  z   dt         d	z  z  t        dz  z  t        dz  z  z   dt        dz  z  t        z  z   }dt        z  t        dz  z  dt         d	z  z  t        d	z  z  t        dz  z  dt         dz  z  t        dz  z  z   dt        z  t         dz  z  t        dz  z  z   dt        dz  z  z   z  dt         dz  z  dt         dz  z  t        dz  z  t        dz  z  z   dt         dz  z  t        d	z  z  t        d
z  z  z
  dt         z  t        dz  z  t        dz  z  z
  dz
  z  }t        t	        | |z              |k(  sJ y )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 &1+!###r   c                      t        d      )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                      t        dt        dz  z  dt        z  t        z  z
  dt        dz  z  z   d      t        t        z   t        t        z
  z  k(  sJ y )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                  B   t        t        dz  t        dz  z   t        d            } t        t        z   t        t        t	        dd       t        d      dz  t
        z  z
  z  z   z  t        t        t	        dd       t        d      dz  t
        z  z   z  z   z  }|| k(  sJ y )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T>>r   c                      t         dz  dt         z  z   dz   t         dz  dt         dz  z  z   dt         z  z   dz   z  } dt         dz   dz  z  dt         dz   z  z
  dt         dz   z  z   }t        |       |k(  sJ y )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                      t        d      )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                      t        dd      \  } }}t        | t        ||            t        |t        ||             z   t        |t        | |            z   j                         j                         dk(  sJ y )NzA, B, CF)commutativer   )r    r   doitr   )ABCs      r   test_H33r  {  sr    iU3GAq!q*Q*+
Q
1a(
)*
Q
1a(
)*+/46&&(a@ @ @r   c                  x    t        t        t        dd      z        t        ddt        d      z  z          k(  sJ y )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                  V    t        dt        d      z   dz        t        d       k(  sJ y )Nr   r   r   r   )r8   r>   r   r   r   test_I2r    s'    SVQCF7***r   c                      t        t        t        z        t        dt        z  dz
  t        z  dz        z   dt        z  dz
  k(  sJ y )Nr   r   r   r2  )r>   r   r   rB   r   r   r   test_I3r    s:    qt9sAaC!GR<>**rAgk999r   c            
         t        t        t        t        t        t        z        z        t	        t        dz  t        t        t        z        z        z   t        j                  t                    dt        z  dz
  k(  sJ y )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                      t        t        dz  dz  t        dz  dz  z   t        dz  dz  z   t        dz  z
  t        z        dk(  sJ y )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                      t        d      )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                      t        dt        z        t        t              z  t        t              dz  dt        t              dz  z  z
  k(  sJ y Nr   r   r>   r   rB   r   r   r   test_I7r    s9    qs8CF?c!fai!CFAI+5555r   c                  ~    t        dt        z        t        t              z  dt        dt        z        z  dz
  k(  sJ y )Nr   r   r   )r>   r   r   r   r   test_I8r    s0    qs8CF?aAaCj1n,,,r   c                      t        dt        z        t        t              z  t        t              dz  dt        t              dz  z  z
  k(  sJ y r  r  r   r   r   test_I9r    s;     qs8CF?c!fai!CFAI+5555r   c                      t        t        t              dz  dz   t        t              dz  z
  t	        t              dz  t        t              dz  z   dz
  z        t
        u sJ y 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                      t        t        t              dz  dz   t        t              dz  z
  t	        t              dz  t        t              dz  z   dz
  z  t        d      dk7  sJ y )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                      t        t        t              dz  dz   t        t              dz  z
  t	        t              dz  t        t              dz  z   dz
  z  t              } | t
        u sJ y r!  )r   rC   r   r>   rB   r   )ress    r   test_I12r(    sT     A	AA
*s1vqy3q619/Dq/HI1
MC#::r   c                  8    t        d      t        dd      k(  sJ y )Nr   ii  )r%   r   r   r   r   test_J1r*    s    R=AeSM)))r   c                      t        t        t        t        dz        t              t        t        t        dz        t	        t        t        dz        z
  t        z  k(  sJ y Nr   )r   rF   r   r  rG   r   r   r   test_J2r-    sF    
1ad#Q'Jq!Q$,?*QPQSTPTBU,UWX+XXXXr   c                      t        d      )NzDJacobi elliptic functions: diff(dn(u,k), u) == -k**2*sn(u,k)*cn(u,k)r"  r   r   r   test_J3r/    s    
d
eer   c                  X    t        t        dd            dt        t              z  k(  sJ y )Nr2  r   r	  )rH   r   r8   r   r   r   r   test_J4r1    s"    2q?bbk)))r   c                      t        dt        dd            t        d       t        d      t        z  dz  z
  t
        z
  t        t        d            z
  k(  sJ y )Nr   r   r   r   )rI   r   r/   r8   r   r   r   r   r   test_J5r3    sG    Q!Q SVGd1gbjl$:Z$G#dSTg,$VVVVr   c                  f    t        j                  dd      j                  t        dd            sJ y )Nr   y      ?      ?z0.04157988694396212z0.24739764151330632)mpmathrD   r/  r   r   r   r   test_J6r6    s*    >>!V$'',ACX(YZZZr   c                  n    t        t        t        dd      t        dz              dt        dz  z  k(  sJ y )Nr
  r   r   )ro   rD   r   r   r   r   r   test_J7r8    s.    GAbGRT*+r2q5z999r   c                      t        t        dd      t              } t        t              t        z  t	        t              z
  t        t        t        z  dz        z  }t        t        |       |z
        dk(  sJ y 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                  r    t        dt              j                  t              t        dt               k(  sJ y )Nr   r   )rD   r  r   r   r   r   test_J9r=    s)    1a=a gamO333r   c                      t        dd      \  } }t        || d      d| z  t        t              z  t	        || z
  dz  dz         z  t	        | | z
  dz   dz        z  k(  sJ y )Nzmu, nuTr   r   r   r   )r    rK   r8   r   rH   )munus     r   test_J10rA    sk    Xt,FB"b!$2d2hub2gq[1_7M(MeVXUX[]U]`aUacdTdNe(eeeer   c            	          t        t        ddt                    t        t        dd       t	        dt        dz  z
        z  dt        dz  z  dz
  z        k(  sJ y )Nr   r   r   r   )ro   rK   r   r   r8   r   r   r   test_J11rC    sT    N1a+,!Aq'$q1a4x.9PRSTUWXTXRX[\R\9]0^^^^r   c                      t        t        dt              dt        z  t        dt              z  z
  t        dt              z         dk(  sJ y )Ni  r   i  i  r   )ro   rL   r   r   r   r   test_J12rE    s?    JtQ'!A#jq.A*AAJtUVDWWX\]]]]r   c                  H    t        ddd      } t        | d      d| z  k(  sJ y )Nr  TF)r   negativer2  )r    rL   r  s    r   test_J13rH    s)    TE2Aaa'''r   c                      t        t        j                  t        j                  gt        dd      gt        dz        } t        |       t        t              t        z  k(  sJ y r  )rJ   r   r}  r   r  rj   r<   )rY  s    r   test_J14rJ    sC    qvvqvv1a	1a40Aq>T!WQY&&&r   c                      t        d      )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_J15rL    s    
  D  E  Er   c                      t        d      )Nz&diff(zeta(x), x) @ x=0 == -log(2*pi)/2r"  r   r   r   test_J16rN    r;  r   c            
      n   t        t        t        dz   dz        t        t        dz
  dz        z  t	        t              t        t        t        dz
        t              z  z
  t        ddf      dt        t        dd            z  t        t        t	        t              t              t        d      z   k(  sJ y )Nr   r   r   r   r   r   )	r   r   r   rE   r   r   r   r   r	   r   r   r   test_J17rP    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                      t        d      )Nz define an antisymmetric functionr"  r   r   r   test_J18rR    s    
@
AAr   c                      t        dd      \  } }t        | t        |z  z         t        |       t        |       z   k(  sJ t        | t        |z  z         t        |       t        |      z   k(  sJ y )Nzz1, z2Tr  )r    r+   r   r*   )z1z2s     r   test_K1rV    sa    Xt,FBb1R4i=RVGbf,,,,b1R4i=BrFRVO+++r   c            
          t        dt        d      z
  t        t        dt        d      z  dz
        z  z         dk(  sJ y )Nr   r   r   r  r   )absr8   r   r   r   r   test_K2rY    s8    q47{QtAd1gIN3334999r   c                      t        dd      \  } }t        t        d| t        | z  z   t        |z  z   z              dt	        | dz  t        | z  |z   dz  z         z  k(  sJ y )Nza, bTrealr   r   )r    ro   rX  r   r8   r  bs     r   test_K3r_     s^    6%DAqC1qs7QqS=)*+qadacAg\6I1J/JJJJr   c            	          t        ddt        z  z         j                  d      t        d      t        t        t	        dd            z  z   k(  sJ y )Nr   r   Tr  r   )r/   r   r   r=   r   r   r   r   test_K4ra  &  sA    q1Q3w<t,A4!Q=0HHHHr   c                  4   t        dd      \  } }t        | t        |z  z         j                  d      t	        d| z        t        d| z        t        d|z        z   z  t        t        d|z        z  t        d| z        t        d|z        z   z  z   k(  sJ y )Nzx, yTr[  r  r   )r    rC   r   r   rB   r>   r1   r2   r   r  s     r   test_K5rd  *  s    6%DAqq1Q3w<t,QqS3qs8QqS	< 2tAaCy[#ac(T!A#Y"6728 9 9 9r   c                     t        t        t        z  t        t              dz  z        t        t              t        t              z  z  t        t        t        z        t        t              z  k(  sJ t        t        t        z  t        t              dz  z        t        t              t        t              z  z  t        t              k7  sJ y r,  )r8   r   r  rX  r  r   r   r   test_K6rf  0  s    !CFAIQA/4!9T!W3DDDD!CFAIQA/47:::r   c                      t        ddd      } t        t        | z  t        t              dz  z        t        t              t        t              z  z  }t        |      }|t        |       k(  sJ y )Nr  TF)r\  rG  r   )r    r8   r   rX  r  ro   )r  r  sexprs      r   test_K7ri  5  sV    $/A!CFAIQA/DTNEDGr   c                      t        dd      } t        t        d| z        dt        |       z  z
        dk7  sJ t        ddd      } t        t        d| z        dt        |       z  z
        dk(  sJ y )Nr  Tr  r   r   F)r  rG  r    ro   r8   r  s    r   test_K8rm  <  sl    T"AD1I$q'	)*a///TE2AD1I$q'	)*a///r   c                  t    t        dd      } t        t        d| z        dt        |       z  z
        dk(  sJ y )Nr  Tr  r   r   rk  rl  s    r   test_K9rp  C  6    d#AD1I$q'	)*a///r   c                  t    t        dd      } t        t        d| z        dt        |       z  z         dk(  sJ y )Nr  T)rG  r   r   rk  rl  s    r   test_K10rs  H  rq  r   c                  D    t        d      dt        dd      z  z
  dk(  sJ y )Ni  i;r   r   r   r8   r   r   r   r   test_L1rv  Q  s$    91a((A---r   c                  D    t        d      dt        dd      z  z
  dk(  sJ y )Nre  l   ^|E!or   r   r   ru  r   r   r   test_L2rx  U  s$    <9qAw..!333r   c            
          t        dt        dd      z  dt        dd      z  z   dz  ddt        dd      z  dt        dd      z  z   z  z
  dz
        dk(  sJ y )Nr   r   r   r   r   r   )ro   r   r   r   r   test_L3rz  Y  s]    Q!QZ!Qq!W*,q01a1aj1a1g:6M3NNQRRSWXXXXr   c                      t        t        t              dz  t        t              t        t              dz  z  z   t        t              z
        dk(  sJ y r:  )rq   r>   r   rB   r   r   r   test_L4r|  ]  s<    CFAIAs1vqy 003q69:a???r   c                      t        t        t        dd      t        z  t        dz  z               t        t        t                    z
  dk(  sJ y )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                      t        t        t        dz  t        dz  z               t	        t        t                    z
  j                  t              j                  t        di      dk(  sJ y )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                      t        t        dt        t              z  dz   t        dt        z  dt        t              z  z   dz         z              dk(  sJ y )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            	      4   t        dt        z  dt        t              z  z   dz   t        t              dt        t              z  dz   z  z  dt        t              z  dz   ddt        t              z  dz   z  z  z  dt        t              z  z
  dz
        dk(  sJ y )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                      t        dd      } t        dd| z
  z  t        |       z  t        |       z  t	        | t
        z  dz        z  t
        dz  t        d| z
        z  z
        dk(  sJ y )Nr  Tr  r   r   r   )r    ro   rH   ry   r>   r   rl  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                  v    t        t        d      dz  t        dd      z   t        t        dz  dz   d      k(  sJ y rP  )r   r   r   r   r   test_M1r  }  s5    Aq>!hq!n,1q!0DDDDr   c                      t        dt        dz  z  dt        dz  z  z
  dt        z  z   dz
  t              } t        d | D              sJ y )Nr   r  r   !   r   c              3   T   K   | ]   }|j                  d       j                   " yw)Tr  N)r   is_real).0r  s     r   	<genexpr>ztest_M2.<locals>.<genexpr>  s!     ;!qxxx%--;s   &()r   r   all)sols    r   test_M2r    sG     1QT6Bq!tG#bd*R/
3C;s;;;;r   c                     t        t        dz  dt        dz  z  z
  dt        dz  z  z
  dt        dz  z  z   dt        z  z
  dz
  t              t        d	t        d      z   d	t        d      z
  t        d      d
z
  t        t        d      z  dz  z   t        d      d
z
  t        t        d      z  dz  z
  t        d       d
z
  t        t        d      z  dz  z   t        d       d
z
  t        t        d      z  dz  z
        k(  sJ y )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                     t        t        t        dz  dz
  t                    t        dd      D  ch c]H  } t	        | t
        z  t        dd      z        t        t        | t
        z  t        dd      z        z  z   J c} k(  sJ y c c} w )Nr   r   r   r   )	setr   r   r   r>   r   r   r   rB   r  s    r   test_M6r    sr    x1q!$%:?1+FQQrT!Aq'\	Qs1R4!Q<00	0FG G GFs   ABc                     t        t        t        dz  dt        dz  z  z
  dt        dz  z  z   dt        dz  z  z
  dt        dz  z  z   d	t        d
z  z  z
  dt        dz  z  z   dt        z  z
  dz   t                    dt        d      t        z  t        t        ddt        d
      z  z          d
z         z  dz  z
  dt        d      t        dt        t        d
dt        d
      z  z         z  z         z  dz  z
  dt        d      t        z  t        t        ddt        d
      z  z         d
z         z  dz  z
  dt        d      t        dt        t        d
dt        d
      z  z         z  z
        z  dz  z
  dt        d      t        z  t        t        ddt        d
      z  z         d
z         z  dz  z   dt        d      t        dt        t        d
dt        d
      z  z         z  z
        z  dz  z   dt        d      t        dt        t        d
dt        d
      z  z         z  z         z  dz  z   dt        d      t        z  t        t        ddt        d
      z  z          d
z         z  dz  z   hk(  sJ y )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                  B   t        d      } t        dd      }t        t        d| z        dt        |       z  z   dz   |z
  | t        j
                        t        t        d|z   dt        |      z  z
        dz  t        d|z   dt        |      z  z         dz        k(  sJ y )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                      t        d      )Nz6solveset(exp(2-x**2)-exp(-x),x) has complex solutions.r"  r   r   r   test_M9r    s     V
WWr   c                  l    t        t        t              t        z
  t              t        d       gk(  sJ y )Nr2  )rr   r.   r   r-   r   r   r   test_M10r    s'    Q!QXb\M?222r   c                  f    t        t        t        z  t        z
  t              t        dd      k(  sJ y r  )r   r   re   r   r   r   test_M11r    s&    AqD1Ha Ib!$4444r   c                     t        t        dz   t        t              dz  dz   dz  z  t        dt        z        dz  z  t              dt        dz  t        dz  t
         t        dt        d      z         z  t
        t        dt        d      z         z  t        t
        t        dt        d      z         z  z
  t        t
        t        dt        d      z         z  z   gk(  sJ y )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                      t        d      } t        t        t              t	        t              z
  t              t        t        | | t        z  t        t        dd      z  z
        t        j                        k(  sJ y )Nr   r   r   )r   r   rB   r   r>   rd   r   r   r   r   Integersr  s    r   test_M13r    sU    c
AQ#a&!,1R4"QqRSW*CT9UWXWaWa0bbbbr   c            	          t        d      } t        t        t              dz
  t              t	        t        | | t        z  t        dz  z         t        j                        k(  sJ y )Nr   r   r   )	r   r   rC   r   rd   r   r   r   r  r  s    r   test_M14r    sF    c
AQ!Q'8F1adRTk4JAJJ+WWWWr   c                     t        d      } t        t        t              t        j
                  z
        t        fdt        t        t        | d| z  t        z  t        dz  z         t        j                        t        t        | d| z  t        z  t        t        dd      z  z         t        j                              t        t        t        | d| z  t        z  t        t        dd      z  z         t        j                        t        t        | d| z  t        z  t        dz  z         t        j                              fD              sJ y )Nr   c              3   @   K   | ]  }j                  |        y wr   )dummy_eq)r  r   gots     r   r  ztest_M15.<locals>.<genexpr>  s      :1s||A :s   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                      t        d      } t        t        t              t	        t              z
  t              t        t        | | t        z        t        j                        k(  sJ y )Nr   )
r   r   rB   r   rC   rd   r   r   r   r  r  s    r   test_M16r    sA    c
ACFSVOQ'8F1adOQZZ+PPPPr   c                  z    t        t        t              t        t              z
  t              t	        d      k(  sJ y r  )r   r<   r   r=   re   r   r   r   test_M17r    s(    a47*A.)A,>>>r   c                      t        t        t              t        t              z
  t              t	        t        t        d      dz
  dz              k(  sJ y )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                  f    t        t        dz
  t        t        dd      z  z  t              dgk(  sJ y Nr   r   r   )rr   r   r   r   r   r   test_M19r    s,    !a%AaG#Q'A3...r   c                  p    t        t        t        dz  dz         t        z
  dz   t              t        k(  sJ y rP  )r   r8   r   EmptySetr   r   r   test_M20r    s-    DANQ&*A.(:::r   c                  d    t        t        t        t              z   dz
        t        d      k(  sJ y rP  )r   r   r8   re   r   r   r   test_M21r    s%    AQK!O$	!444r   c            	          t        dt        t              z  dt        t        dd      z  z  z   dz
        t	        t        dd            k(  sJ y )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            	         t        dd      } t        | dt        d| dz  z         z  z
        t         t        t        j
                  t        d      dz  z         z  t        t        dd      t        d      dz  z         gk(  sJ y )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                      t        dt        t        d      dt        z  z  z
  t              } t	        dt        t        dz
  z  z  d      }| d   j                         |j                         k(  sJ y 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                      t        dd      \  } }}}t        d      }t        | ||z  z  |||z  z  z
  |      d   j                         t        || z        t        ||z        z  j                         k(  sJ y )Nz:dTro  r   r   )r    rr   r   r/   )r  r^  cdr   s        r   test_M25r    st    -JAq!QA1a4!AqD&!$Q'..0S1Xc!A#h5F4N4N4PPPPr   c                      t        t        t        t                    t        t        t                    z
        dt	        d      gk(  sJ y )Nr   r   )rr   r8   r/   r   r.   r   r   r   test_M26r    s2    c!fDG,-!SV<<<r   c                     t        dd      } t        dd      }t        t        t        t	        | t        dd      z  |z
              dz
        dz   |       |t        t        t        d      dz               z   t        dd      z  gk(  sJ y )	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                      t        dt        z  t        t        dz
  dz        z   dt        dz  z  z
  t        t        j                  t                    g dk(  sJ y )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                      t        d      } t        t        | dz
        dz
  t        j                        t        dd      k(  sJ y )Nr   r   r   domainr2  r   )r    r   rX  r   r  re   rp  s    r   test_M29r  /  s7    ACAJN1773yQ7GGGGr   c                      t        t        dt        z  dz         t        t        dz
        z
  t              t        dd      k(  sJ y )Nr   r   r2  )r   rX  r   re   r   r   r   test_M30r  4  s9     QqS1WAE
2A6)B:KKKKr   c                      t        dt        t              z
  t        t         dz
  t        dz
        z
  t              t	        t        dd      t        dd            k(  sJ y )Nr   r   r  r   )r   rX  r   r6   re   r   r   r   r   test_M31r  ;  sO     SVc1"q&!a%&88!<	!BPQ(TUVWYZT[@\\\\r   c                      t        t        dt        dz  z
  t              t        t         t        dz  dz        z
  t              t        dd      k(  sJ y )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                      t        t        dt        dz  z
  t              t        dz  dz  z
  t              t        ddd      k(  sJ y )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                      t        dd      } t        dt        z   | z  dt        z
  t        |       z  z   dt        z  z   |       t	        ddt        z  z         k(  sJ y )Nr  Tr  r   r   r   )r    r   r   r)   re   rl  s    r   test_M34r  R  sX    T"AQUaK1q5IaL"881Q3>BiPQTUVWTWPWFXXXXr   c                      t        dd      \  } }t        d| z  d|z  z
  t        |z  z
  dt        z  z   j                         ||       t	        d      k(  sJ y )Nx yTr[  r   r   )r   r   )r    r   r   as_real_imagre   rc  s     r   test_M35r  X  sT    5t$DAqQqS1Q3Y1_qs*88:AqAYvEVVVVr   c                      t        t        t              dz  t        t              z   dz
  t        t                    t        dd      k(  sJ y )Nr   r	  r   )r   r   r   re   r   r   r   test_M36r  ]  s9     AaD!GadNQ&!-2q1AAAAr   c                     t        t        t        z   t        z   dz
  dt        z  t        z   dt        z  z   dz
  t        dt        z  z   t        z   dz
  gt        t        t              t	        t         dz   dt        f      k(  sJ y )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      |   t        d      \  } }}t        | ||gt              j                         }t	        d|      }|j
                  \1  }}}}}	}
}}}}}}}}}}}}}}}}}}}}}} }!}"}#}$}%}&}'}(})}*}+},}-}.}/}0}1}2}3}4}5g | |z  | z  ||z  | z  z   | |z  | z  ||z  | z  z   | |z  | z  ||z  | z  z   |z   | ||z  | z  z
  ||z  | z  z   | |z  | z  ||z  | z  z   | |z  | z  ||z  | z  z   | |z  | z  ||z  | z  z   |z
  | |z  | z  ||z  | z  z   | |z  | z  ||z  | z  z   |z   | |z  | z  ||z  | z  z   ||z  | z  z
  ||z  | z  z   ||	z  | z  z   ||	z  | z  z
  ||0z  | z  ||0z  | z  z
  | |1z  | z  ||1z  | z  z   | |z  | z  ||z  | z  z   | |0z  | z  ||0z  | z  z   ||2z  | z  ||2z  | z  z
  |dz  |3z  | dz  z  d|z  |z  |3z  | dz  z  z
  |dz  |3z  | dz  z  z   || | |z  | z  ||z  | z  z   | |
z  |z  z
  ||
z  |z  z   | |z  | z  ||z  | z  z   | |z  |z  z   ||z  |z  z
  ||1z  | z  ||1z  | z  z
  | |2z  | z  ||2z  | z  z   |4 ||4z  | z  z   ||4z  |z  z   |dz  |4z  | |z  z  z
  |5 ||5z  | z  z   ||5z  |z  z   |dz  |5z  | |z  z  z
  | |z  |z  ||z  |z  z
  | |z  |z  ||z  |z  z
  | |z  |z  ||z  |z  z
  |z   | | |z  |z  z   ||z  |z  z
  | |z  |z  ||z  |z  z
  | |||z  | z  ||z  | z  z
  | |
z  |z  z   ||
z  |z  z
  | |z  |z  ||z  |z  z
  || |z  |z  z   ||z  |z  z
  | | |z  |z  z   ||z  |z  z
  | |z  |z  ||z  |z  z
  |  |z  |z  ||z  |z  z   | |z  |z  z   ||z  |z  z
  | |	z  |z  z   ||	z  |z  z
  |  |0z  |z  ||0z  |z  z   | |1z  |z  ||1z  |z  z
  | |z  |z  ||z  |z  z
  | |z  |z  z   ||z  |z  z
  | |0z  |z  ||0z  |z  z
  |  |2z  |z  ||2z  |z  z   |3 ||3z  | z  z   ||3z  |z  z   |dz  |3z  | |z  z  z
  | |z  |z  ||z  |z  z
  |  |1z  |z  ||1z  |z  z   | |2z  |z  ||2z  |z  z
  | dz  |4z  |dz  z  d| z  |z  |4z  |dz  z  z
  |dz  |4z  |dz  z  z   |5 | |5z  |z  z   | |5z  |z  z   | dz  |5z  ||z  z  z
  || |  |z  |z  ||z  |z  z   | | |z  |z  z
  ||z  |z  z   |  |z  |z  ||z  |z  z   || |z  |z  z
  ||z  |z  z   ||z  | z  ||z  | z  z
  | |z  |z  z
  ||z  |z  z   |  |
z  |z  ||
z  |z  z   |  |z  |z  ||z  |z  z   |  |z  |z  ||z  |z  z   |z   |  |z  |z  ||z  |z  z   |z
  |  |z  |z  ||z  |z  z   |  |z  |z  ||z  |z  z   | |z  |z  z
  ||z  |z  z   |  |z  |z  ||z  |z  z   | |z  |z  z   ||z  |z  z
  | |	z  |z  z
  ||	z  |z  z   | |0z  |z  ||0z  |z  z
  |  |1z  |z  ||1z  |z  z   |  |0z  |z  ||0z  |z  z   | |2z  |z  ||2z  |z  z
  |3 ||3z  | z  z   ||3z  |z  z   |dz  |3z  | |z  z  z
  |  |z  |z  ||z  |z  z   | |1z  |z  ||1z  |z  z
  |  |2z  |z  ||2z  |z  z   |4 | |4z  |z  z   | |4z  |z  z   | dz  |4z  ||z  z  z
  | dz  |5z  |dz  z  d| z  |z  |5z  |dz  z  z
  |dz  |5z  |dz  z  z   ||| ||z
  | || |! ||$z
  | |z   |#z
  | |"z
  |' |0|1 |(||z
  |+z   | |*z   ||)z   ||z  | z  ||z  | z  z
  |&z
  |.z   d|0z  |1|2||3z  | z  ||3z  | z  z
  |-|0|2 | |3z  | z  ||3z  | z  z   ||z   | |z
  |  |z  |z  ||z  |z  z   |%z
  |1|2 |  |4z  |z  ||4z  |z  z   | | z  |z  || z  |z  z
  |,z   |1 |2| |4z  |z  ||4z  |z  z
  | |5z  |z  ||5z  |z  z
  |  |5z  |z  ||5z  |z  z   | | | |||z
  |||||z
  ||"z   ||z   |#z
  | |0 |1|" |
z
  ||$z   |||%z  | z  z   ||%z  | z  z
  |0|2 | |3z  | z  ||3z  | z  z   |( |#|+z
  |	z
  |$ |*z
  ||)z
  || |&z  |z  z
  ||&z  |z  z   |.z
  |0d|1z  |2| |4z  |z  ||4z  |z  z
  | |'z  |z  ||'z  |z  z
  |-z
  |0 |2||3z  | z  ||3z  | z  z
  |  |5z  |z  ||5z  |z  z   |, |1|2 |  |4z  |z  ||4z  |z  z   | |5z  |z  ||5z  |z  z
  |||| | | |z   | |)|z   | |*z
  | | |)z
  | |
z   | |z
  |+z   |  ||,z  | z  z   ||,z  | z  z
  |0|1 | |0 |2||3z  | z  ||3z  | z  z
  |!|$|*z   |#|+z
  |	z   | |"z   |'| |-z  |z  z
  ||-z  |z  z   |0 |1| |&z   | |.z  |z  z   ||.z  |z  z
  |0|1d|2z  | |3z  | z  ||3z  | z  z   |  |4z  |z  ||4z  |z  z   | |5z  |z  ||5z  |z  z
  |%|1 |2| |4z  |z  ||4z  |z  z
  |  |5z  |z  ||5z  |z  z   }6i |5d|4d|3d|2d|1d|0d|-d|,d|*d|)d|(d|'d|%d|$d|"d|!d| di |d|d|d|d|d|d|d|d|d|d|d|d|d|d|d|d|d|d|d|
d|	d|d|d|d|d|&||z  |.z  |#|+|| |z  |.z  ||+i}7t        |6|      |7k(  sJ y )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  s   i GAq!1ay"%//1FGV$D
 4899	1RRRRRc3S#sCc3S#sCc3S#sCc3S#sC(
	
2a!B$q&(
"S&(QsU1W,(
/0bfQh3q.@2.E(
HJsQrTRSV|VWXZVZ[\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!B$q&!PSTUWSWXYSY!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QrT!V#ad1f,(
 01bfQh3q.@1R46.IAbDQRF.R(
 	
#a!C%'(
 2c6!8aeAg-(
 14taeAg~#a/G!Q$s(TUVWTW./X(
 
quQw3q 1a48QqS>1(
 45R46AbDF?(
 EFbDFQrTRSVO(
 	
"Q2a"(
  #dQrT!Vmad1f4(
 78d1fqtAvo(
 IKs(
 MP(
 	
#a!C%'AbDF"QrT!V+(
 ./sU1WquQw->(
 ADaeAgPQRUPUVWPW@W(
 
quQw3q (
 #$C%'AcE!G"3(
 78RVAX#a5G!C%PQ'5QTUVYTYZ[T[5[^_`b^bcd^d5dghikgklmgm5m(
 
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(TUVWTW./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8QqS>1(
 47(
 :=(
 @AbeAg"Q>N(
  
qtAv"Q!(
  "#2a!B$q& 0!(
  36"Q,2a2G!(
  JK3qSTUXSXYZSZIZ]^_a]abc]cIcfghjfjklflIl!(
" 
2a!B$q&#(
" "R%'AbDF*#(
" ./BsF1HquQw,>,D#(
" HIbfQhQRSVQVWXQXFX[^F^#(
$ 
2a!B$q&%(
$ "S&(QsU1W,quQw63q@%(
$ DE"S&(QsUSTWBTWXY\W\]^W^B^abcfafghahBhklmokopqkqBqtuvxtxyztzBz%(
& 	
#a!C%''(
& 2c6!8aeAg-'(
& 12r#vax!C%'/A'(
& DES57QsUSTWCT'(
( 
quQw3q 1a48QqS>1)(
( 562c6!8aeAg3E)(
( HIuQwQRSVQVWXQXGX)(
* 
3q1S57+(
* !D1S57NQsU1W4q!tCx1~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QqSWc3QqSWc3H &(222r   c                  z   t        dd      \  } }}t        | dz  |z  d|z  |z  z   dz
  d| dz  z  |z  d|dz  z  z   dz   d|z  |dz  z  |dz  z
  dz
  g      |d|d| d	i|d|d| di|t        d      t        z  |t	        dd      t        d      t        z  dz  z
  | t        d	t        d      t        z  z
         i|t        d      t        z  |t	        dd      t        d      t        z  dz  z
  | t        d	t        d      t        z  z
        i|t        d       t        z  |t	        dd      t        d      t        z  dz  z   | t        d	t        d      t        z  z          i|t        d       t        z  |t	        dd      t        d      t        z  dz  z   | t        d	t        d      t        z  z         igk(  sJ y )
Nr   Tr  r   r   r   r  r   r2  )r    rr   r8   r   r   r   r  r  s      r   test_M39r)    s   gt,GAq! !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                  P    t        t        t        z  t        t        z  kD        sJ y r   )r   r   r   r   r   r   test_N1r+    s    q"ur1u}r   c                      t        dd      } t        | dz  | z
  dz   dkD        du sJ t        | dz  | z
  dz   dkD        du sJ y )Nr   Tr[  r   r   r   Fr    r   rp  s    r   test_N2r.    sV    $Aq!tax!|a D(((q!tax!|a E)))r   c            	          t        dd      } t        t        t        d|       t        | d            t	        |       dk        sJ y )Nr   Tr[  r2  r   )r    r   rO   r   rX  rp  s    r   test_N3r0    s9    $As2b!9bAh'Q!555r   c                  t    t        dd      \  } }t        d| dz  z  d|dz  z  kD  | |kD  |dkD  z        du sJ y )Nr  Tr[  r   r   r-  rc  s     r   test_N4r2    sH    5t$DAqqAv!Q$Q1q5 12d:::r   c                      t        dd      \  } }}t        || dz  z  ||dz  z  kD  | |kD  |dkD  z  |dkD  z        du sJ y )Nzx y kTr[  r   r   r-  )r   r  r   s      r   test_N5r4    sS    gD)GAq!qAv!Q$Q1q5 1QU ;<DDDr   c                      t        dd      \  } }}}t        || |z  z  |||z  z  kD  | |kD  |dkD  z  |dkD  z  |dkD  z        du sJ y )Nzx y k nTr[  r   r-  )r   r  r   r   s       r   test_N6r6    s`     .JAq!QqAv!Q$Q1q5 1QU ;q1u EF$NNNr   c                  b    t        dd      \  } }t        |dkD  | dkD  || dz
  k\  z        du sJ y )Nr  Tr[  r   r   r-  rc  s     r   test_N7r8    s<    5t$DAqq1uq1ua!e,-555r   c                      t        dd      \  } }}t        t        | |      t        ||      z  | |k\  ||k\  z  || k\  z        sJ y )Nr   Tr[  )r    r   r   r(  s      r   test_N8r:    sT     gD)GAq!r!Qx"Q("Q16"a1f-/ / /r   c            	          t        d      } t        t        | dz
        dkD  t        j                        t        t        t         ddd      t        dt        d            k(  sJ y )	Nr   r   r   r  r2  FTr   )r   r   rX  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                     t        d      } | dz
  | dz
  z  | dz
  z  | dz
  z  | dz
  z  }t        t        |      dk  t        j                        t        t        t         dd	d	      t        ddd	d	      t        ddd	d	            k(  sJ y )
Nr   r   r   r   r   r   r   r  T)r   r   r   r   r  rh   rg   r   )r   rY  s     r   test_N10r>    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            	          t        d      } t        d| dz
  z  dk  t        j                        t	        t        t         ddd      t        dt                    k(  sJ y )Nr   r   r   r  Tr   )r   r   r   r  rh   rg   r   rp  s    r   test_N11r@    sO    sAAq1uIN1773uXrc1dTX=Y[cdegi[j7kkkkr   c                      t        d      } t        t        |       dk  t        j                        t        dddd      k(  sJ y )Nr   r   r  r   r   FT)r   r   r8   r   r  rg   rp  s    r   test_N12rB    s7    sADGaK0HQ5$4OOOOr   c                      t        d      } t        t        |       dk  t        j                        t        j                  k(  sJ y )Nr   r   r  )r   r   rB   r   r  rp  s    r   test_N13rD    s0    sACFQJqww/177:::r   c            
          t        d      } t        t        |       dk  | t        j                        t        t        t         t        dz  dd      t        t        dz  t        dd            k(  sJ y )Nr   r   r  r   T)	r   r   rB   r   r  rh   rg   r   r   rp  s    r   test_N14rF    sf    sA CFQJ!''2eHbS"Q$PTVZ<[)1"Q$D$)G7I I I Ir   c                      t        d      \  } }t        t        d| z  t        |      dz
  z  dz         dk  | t        j
                         y )Nr tr   r   )r    r   rX  r>   r   r  r  ts     r   test_N15rK    s?    5>DAqS1c!fqj!A%&!+Q8r   c                      t        d      \  } }t        | dz  t        |      dz
  dz  z  t        |      dz  z  dk  | t        j
                         y )NrH  r   r   r   )r    r   r>   rB   r   r  rI  s     r   test_N16rM    sF    5>DAqadc!fqj1_%c!fai/!3Q@r   c                      t        t        t        z   dkD  t        t        z
  dk  ft        t        f      t        t              t        k  k(  sJ y r  )r   r   r  rX  r   r   r   test_N17rO    s:     QUQYA	*QF3A
CCCr   c                      t        dt        z   ddt        z  f      } t        t        | j	                  | j
                                    t        d      k(  sJ y )Nr   r	  r   r  )r   r   r8   r   dotHMs    r   test_O1rU    sC    Ar1Q3 AquuQSSz"#tBx///r   c                  r    t        d      j                  t        d            t        dgdgdgg      k(  sJ y )N)r   r   r  )r   r   r   r   r
  r   )r   crossr   r   r   test_O2rX  $  sI    *##F9$56&2$CE$CD#BG ;H H H Hr   c                      t        d      NzfThe vector module has no way of representing
        vectors symbolically (without respect to a basis)r"  r   r   r   test_O3r[  +        = > >r   c                     ddl m} m}  | d      } |       } |j                         \  }}} |j                         \  }}}	|||z  |	z  z  |||z  |	z  dz  z  z   ||dz  |	dz  z  z  z   }
|j                  |
      j                         d|dz  z  |dz  z  |	z  d|z  |	dz  z  z   |z  ||z  |z  z   d|z  |dz  z  |	dz  z  ||	z  z
  |z  z   k(  sJ y )Nr   )
CoordSys3DDelr   r   r   r	  )sympy.vectorr^  r_  base_vectorsbase_scalarsrW  r  )r^  r_  r   delopr   r   r   r   r  r  Fs              r   test_O4re  1  s    ,3AEEannGAq!annGAq!	1Q3q5	A!AzN"QA1%66A;;q> R1WQT\!^ac!Q$h%>$AAaCE$IQqSQRTUQUXVWYZVZ]]^_`]`M`bcLc$ccccr   c                      t        d      rZ  r"  r   r   r   test_O5rg  :  r\  r   c                  H   t        g d      t        g d      t        g d      g} t        |       t        dgdgdgg      t        t        dd      gt        d	d      gt        d
d      gg      t        t        dd      gt        dd      gt        dd      gg      gk(  sJ y )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_O10rk  C  s    			F9-vi/@AAq>f c c c&# $ % Ryk Ryk bzl&, - % s|n }o s|n&. /0 0 0 0r   c                  b    t        ddd       j                  d      t        ddddg      k(  sJ y )Nr   c                     || z
  S r   r   )r   r   s     r   rq  ztest_P1.<locals>.<lambda>T  s
    QU r   r2  r   r   )r   diagonalr   r   r   test_P1ro  S  s;    !Q*+44R8F	1r2h=   r   c                      t        g dg dg dg      } | j                  d       | j                  d       | t        ddgddgg      k(  sJ y )N)r   r   r   )r   r   r   )r   r   r   r   r   r   r   )r   row_delcol_delrS  s    r   test_P2rs  X  sT    	9i01AIIaLIIaLAA  ! ! ! !r   c                  D   t        g dg dg dg dg      } | ddddf   }| d	   }| }| dd
d
df    }| d    }t        ||gg      j                  }| |g||ggt        t        fd       t              }|t        g dg dg dg dg dg dg dg      k(  sJ y )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               S r   )r   )rowss   r   rq  ztest_P3.<locals>.<lambda>n  s    {40 r   )r   r   r  )irG  r   r  r  )iiir   r   rv  )r   r   r   r  rz  r|  )r  r   r   r  r{  rG  )r   r  r  r  rz  )r   ru  r   rv  iry  )r   r   Tr~   
ValueError)	r  A11A12A21A221A222A22r	  rx  s	           @r   test_P3r  `  s    	 	A AaC1H+C
 
!C
Cac1Q3hK<DnD
d|n
%
'
'CT3K#s$D
:01tA###""""$ % % % %r   c                      t        d      )Nz*Block matrix diagonalization not supportedr"  r   r   r   test_P4r  z  s    
J
KKr   c                  X    t        ddgddgg      } | dz  t        ddgddgg      k(  sJ y )Nr   r   r   r   r   r   r   )r   rS  s    r   test_P5r    sM    BA 	AEVaVV% & & & &r   c                  R   t        t        t              t        t              gt        t               t        t              gg      } | j	                  t        d      t        t        t               t        t               gt        t              t        t               gg      k(  sJ y r,  )r   r>   r   rB   r   rS  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            	         t        t        t        gg      t        t        g dg dg      z  t        g dg dg      z   z  } | t        t        t        dz   z  t        dt        z  dz
  z  z   t        dt        z  d	z
  z  t        d
t        z  dz   z  z   t        dt        z  dz   z  t        dt        z  dz
  z  z   gg      k(  sJ y )N)r   r   r   )r   r   r   )r   r   )rF  r   ry  r   r   r   r   r   r   r   r   r   r   r   )r   r   r  r  rS  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                      t        ddt        z  gdt        z  dgg      } | j                  t        j                        dk(  sJ y )Nr   r	  r  r   )ordr   )r   r   normr   InfinityrS  s    r   test_P8r    sC    BqD	Aq	 	A66ajj6!Q&&&r   c            	      @   t        dd      \  } }}t        | ||z  z  d|z  d|z  gd|z  || |z  z  d| z  gd|z  d| z  || |z  z  gg      }t        |j                  d            | dz  |dz  z   |dz  z   t	        |       t	        |      z  t	        |      z  z  k(  sJ y )Na b cT)nonzeror   fror   )r    r   r]   r  rX  r  r^  r  rT  s       r   test_P9r    s    gt,GAq!AaC!A#qs#1a1gqs#1ac1ac7#% 	&A !&&- QTAqD[1a4%7#a&Q-A:N$OOOOr   c            	          t        dddt        z  z   gt        ddt        z  z
        dgg      } | j                  t        dt        ddt        z  z         gddt        z  z   dgg      k(  sJ y )Nr   r   r   r   r   r   )r   r   r   rR  rS  s    r   test_P10r    sw    A!G1qs7Q! 	"A 33&1aAaCj/qs7A,( ) ) ) )r   c                      t        t        t        gdt        t        z  gg      j                         dt        dz  dz
  z  t        t        dgdt        z  t        t        z  gg      z  k(  sJ y 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            	         t        t        t        gdt        t        z  gg      j                  d      } t	        t        |             }t        || |z  d      t        |t        t        t        z  t         gdt        gg      d      k(  sJ y )Nr   ADJF)evaluater2  )r   r   r  r  r^   tuplerR   )rT  r  s     r   test_P11_workaroundr    s     	AAaC!"&&u-AE!HA!QqS5)VAv	
1qb	
q	? 8#.% % % %r   c                     t        dt        t              } t        dt        t              }t        dt        t              }t        | |gt        t        t              |gg      }t	        |j
                        t        | j
                  d| j
                  z  |z  |j
                  z  gt        t        t              |j
                  gg      k(  sJ y )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c3Z A&,. 	/A!##+CEEz#~cee7K/L0:1a0@#%%/H/J #K K K Kr   c            	         t        dt        dz
  t        dz
  gt        dz
  t        dz  dt        z  z
  dz   t        dz  dt        z  z
  dz
  gt        dz
  t        dz  dz
  dt        dz  z  dt        z  z
  dz   gg      } | j                         \  }}}t        |      t        g dt        dz
  dd	gt        dz
  t        dz
  dgg      k(  sJ t        |      t        dt        dz
  t        dz
  gd	d
t        dz
  gd	d	t        dz
  gg      k(  sJ y )Nr   r   r   r   r   r   r  )r   r   r   r   r   r   r   )r   r   LUdecompositionro   )rT  rj  U_s       r   test_P13r    s(   Aq1u=Q1qs
QadQqSj1n=Q1q1a42a4"(<=? 	@A !GAq!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                      t        g dg dg dg dg      } | j                         \  }}|t        g dg dg dg dg      k(  sJ y )	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)rT  r   r  s      r   test_P14r    sW    ! 	"A 668DAq))))+ , , , ,r   c                  V    t        g dg dg dg      } | j                         dk(  sJ y )N)r2  r   r   r
  )r   r	  r   r   )r   r   r  r  r   )r   rankrS  s    r   test_P15r    s-    ! 	"A 668q==r   c                      t        dt        d      z  dgdt        d      z  dt        d      z  gg      } | j                         dk(  sJ y )Nr   r   r   r  r   r   )r   r8   r  rS  s    r   test_P16r    sI    47A47BtAwJ') 	*A668q==r   c            	         t        dd      } t        t        d| z        t        d| z        gddt        |       dz  z
  z  t        |       z  ddt        |       dz  z  z
  t        |       z  gg      }|j	                         dk(  sJ y )NrJ  Tr[  r   r   )r    r   rB   r>   r  )rJ  rT  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                      t        g dg dg dg      } | j                         t        dgdgdgdgg      t        dgdgdgdgg      gk(  sJ y )	N)r   r   r	  r   )r	  r   r   r   )r2  r   r   r   r   r   r   r  )r   	nullspacerS  s    r   test_P18r    sy      	!A ;;=VaS&'S&'S&'S%* + $aS&(T&'S&'S%* +	, , , ,r   c            
      p   t        d      } t        g d| t        t        t        g| dz  t        dz  t        dz  t        dz  g| dz  t        dz  t        dz  t        dz  gg      }|j                         | dz  t        dz  z  t        z  | dz  t        dz  z  t        z  z
  | dz  t        z  t        dz  z  z
  | dz  t        z  t        dz  z  z   | dz  t        dz  z  t        z  z   | dz  t        z  t        dz  z  z
  | dz  t        dz  z  t        z  z
  | dz  t        dz  z  t        z  z   | dz  t        z  t        dz  z  z   | dz  t        z  t        dz  z  z
  | dz  t        dz  z  t        z  z
  | dz  t        z  t        dz  z  z   | t        dz  z  t        dz  z  z   | t        dz  z  t        dz  z  z
  | t        dz  z  t        dz  z  z
  | t        dz  z  t        dz  z  z   | t        dz  z  t        dz  z  z   | t        dz  z  t        dz  z  z
  t        dz  t        dz  z  t        z  z
  t        dz  t        z  t        dz  z  z   t        dz  t        dz  z  t        z  z   t        dz  t        z  t        dz  z  z
  t        t        dz  z  t        dz  z  z
  t        t        dz  z  t        dz  z  z   k(  sJ y )Nw)r   r   r   r   r   r   )r    r   r   r  r  det)r  rT  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                      t        d      )Nz'Matrix minimal polynomial not supportedr"  r   r   r   test_P20r    s    
G
HHr   c                      t        g dg dg dg      } | j                  t              j                         t        dz  dt        dz  z  z
  dt        z  z
  dz   k(  sJ y )N)r   r  r  )r	  r   r   )r   r  rE  r   r   r   r   )r   charpolyr   as_exprrS  s    r   test_P21r    sX     	A ::a=  "adQq!tVmac&9A&====r   c                  p    d} dt         z
  t        |       z  }|j                         t          dz   | ik(  sJ y )Nr  r   )r   r   	eigenvals)r  rT  s     r   test_P22r  !  s6    A	
QAA;;=aR!VQK'''r   c                      t        g dg dg dg dg dg      } | j                         t        d      dt        d      dt        d	      dt        d
      dt        d      dik(  sJ y )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   rS  s    r   test_P23r  '  sn     	A ;;=	#	#	#	-!	.1   r   c                     t        g dg dg dg dg dg dg dg dg      } | j                         t        d	      d
t        d      d
t        d      d
t        d      dt        d      d
t        d      d
t        d      d
ik(  sJ y )Nc     @  rF  r   r    q   r  r}  rF  r  r  r  r  =   1   r   r  r  r  r  r  r   rv  ;   r|  rF  r  r  r        r  r  r}  r  rv  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  rS  s    r   test_P24r  6  s    ??@@@@@@B 	CA ;;=	#	
Q	
	&	1	
 !	
a	&	1   r   c                      t        t        g dg dg dg dg dg dg dg dg            } t        | j                  d	
            }t        g d      }t	        ||      D ]  \  }}t        ||z
        dk  rJ  y )Nr  r  r  r  r  r  r  r  T)multiple)gMcdr&  gyP9?     @@r  gx5F27ߏ@g     @gMcd@g-q=)r   r   sortedr  ziprX  )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$ "11q5zE!!!"r   c                      t        d      \  } }}}}t        | | | | |  ddddg	g dg dg dg dg dg dg d	g d
g	      }|j                  d      t        d      dt        d      dik(  sJ y )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a4rT  s         r   test_P26r  \  s     !12BBB"rcB3bS1q1q999999999; 	<A ;;U;3	
	
8$ $ $ $r   c                  j   t        d      } t        | ddddgg ddd| ddgddd| dgg dg      }|j                         | dt        g d      t        g d      t        g d      gfd	t        z
  d	t        dd	t        z   d
z  ddd	g      gfd	t        z   d	t        dd	t        z
  d
z  ddd	g      gfgk(  sJ y )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  rT  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                      t        d      NzQGeneralized eigenvectors not supported https://github.com/sympy/sympy/issues/5293r"  r   r   r   test_P28r        
 , - -r   c                      t        d      r  r"  r   r   r   test_P29r    r  r   c            	          t        g dg dg dg dg dg      } | j                         \  }}|t        g dg dg dg d	g d
g      k(  sJ y )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)rT  r  Js      r   test_P30r    s^    #####	% 	&A
 ==?DAq(((((	* + + + +r   c                      t        d      )Nz!Smith normal form not implementedr"  r   r   r   test_P31r    s    
A
BBr   c            	      (   t        ddgddgg      } t        |       j                  t              j	                         t        t
        t        d      z  t
         t        d      z  gt
        t        d      z  t
        t        d      z  gg      k(  sJ y )Nr   r	  r   )r   r.   rewriter>   ro   r   rB   rS  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                     t        d      \  } }t        g ddddd| z  gg ddd| z  d| dz  z  dgg      }t        ||z        j                  t              j                         t        dd	|z  d
t        || z        z  | z  z   d|z  | z  dt        || z        z  z
  dt	        || z        z  | z  d| z  z   gdd
t	        || z        z  dz
  d| z  t	        || z        z  d| z  z   dt        || z        z  gddt	        || z        z  | z  d| z  z
  d	t	        || z        z  d
z   t        || z        | z  gddt        || z        z  d| z  t        || z        z  t	        || z        gg      k(  sJ y )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  rJ  rT  s      r   test_P33r    s   5>DAq&qq!A#&&BqD!AqD&A&( 	)A qs8C '')V	
BqD1S1X:a<!A#a%!C!H*"4bQqSk!mac6IJ	
3qs8aAc!A#h1!4qQqSzJ	
Qs1Q3xZ\AaCRAaC[1_s1Q3xzJ	
Bs1Q3xK!C!HQqSJ	5L .M M M Mr   c                     t        dd      \  } }}t        | dddddgd| ddddgdd|dddgddd|ddgdddd|dgddddd|gg      }t        |      t        t        |       t        |       ddddgdt        |       ddddgddt        |      dddgdddt        |      t        |      t        |       dz  gddddt        |      t        |      gdddddt        |      gg      k(  sJ y )Nr  Tr[  r   r   r   )r    r   rB   r>   r  s       r   test_P34r    s3   gD)GAq!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                  r    t         dz  t        g dg dg dg      z  } t        |       t        d      k(  sJ y )Nr   )r   r   r   )r   r   r   )r   r   r   r   )r   r   rB   r   rS  s    r   test_P35r    s<    
1VY  ! 	!A
 q6SVr   c                  d    t        ddgddgg      } t        |       t        ddgddgg      k(  sJ y )Nr   r   r   r   r   r   )r   r8   rS  s    r   test_P36r    sM    QB 	A7fq!f !f& ' ' ' 'r   c                      t        g dg dg dg      } | t        j                  z  t        dt        dd      dgg dg dg      k(  sJ y )N)r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r}  r   rS  s    r   test_P37r    sU    	 	A aff9AaGQ(7(7 9 : : : :r   c                      t        g dg dg dg      } t        t              5  | t        j                  z   J # 1 sw Y   y xY w)Nr  )r   r   r   )r   r~   AssertionErrorr   r}  rS  s    r   test_P38r    sE    i A 
	 	166	 	t s	   :Ac                      t        d      )zQ
    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            	      $   t        dd      \  } }t        | t        |      z  | t        |      z  g      }|j	                  t        | |g            t        t        |      |  t        |      z  gt        |      | t        |      z  gg      k(  sJ y )NrH  Tr[  )r    r   r>   rB   jacobian)r  rJ  rT  s      r   test_P40r$    s    5t$DAq#a&!CF(#$A::faVn%#a&1"SV)1D25a&1SV81D1F *G G G Gr   c            	          t        dd      \  } }t        | dz  t        |      z  | |f      t        dt        |      z  d| z  t	        |      z  gd| z  t	        |      z  | dz   t        |      z  gg      k(  sJ y )NrH  Tr[  r   )r    rP   rB   r   r>   rI  s     r   test_P41r&    s    5t$DAq1a4A;!u%Ac!fH!CF
1K23A#c!f*q!teCFl1K1M *N N N Nr   c                      t        t        t              t        t              gt              j	                         dk(  sJ y r  )rQ   r>   r   rB   ro   r   r   r   test_P42r(  
  s-    c!fc!f%q)224999r   c            	         d } t        dd      \  }}t        |t        |      z  |t        |      z  g      } | |||g      t        t        |      | t        |      z  gt        |      |t        |      z  gg      k(  sJ y )Nc                     t        |D cg c]  }| j                  |      j                   c}      j                  S c c}w r   r   r   r~  )rT  Yvs      r   __my_jacobianztest_P43.<locals>.__my_jacobian  s-    A.qqvvay{{./111.s   "=rH  Tr[  )r    r   r>   rB   )r.  r  rJ  rT  s       r   test_P43r/    s    25t$DAq#a&!CF(#$AAa5!Vc!fqbQi-@.1!fqQx-@-B &C C C Cr   c            	          d } t        dd      \  }} | |dz  t        |      z  ||f      t        dt        |      z  d|z  t        |      z  gd|z  t        |      z  |dz   t        |      z  gg      k(  sJ y )Nc           	          t        |D cg c]  }t        | |       c}      }t        |D cg c]  }|j                  j                  |       c}      S c c}w c c}w r   r+  )r   r,  r-  Vs       r   __my_hessianztest_P44.<locals>.__my_hessian  sG    *1DAJ*+Q//00 +/s
   A"ArH  Tr[  r   )r    rB   r   r>   )r3  r  rJ  s      r   test_P44r4    s    1 5t$DAq1SVaV,/0Qx1Q3s1v:,F-.qSQZ!Q$s1v,F8H 1I I I Ir   c                      d }  | t        t              t        t              gt              j                         dk(  sJ y )Nc           	          t        t        dt        |             D cg c]+  }t        |       j                  j	                  t
        |      - c}      }|j                         S c c}w r  )r   r   lenr~  r   r   r  )r,  r-  r   rT  s       r   __my_wronskianz test_P45.<locals>.__my_wronskian"  sH    E!SV4DEqF1IKK$$Q*EF Fs   0A$r   )r>   r   rB   ro   )r8  s    r   test_P45r9  !  s4     3q63q6*A.779Q>>>r   c            
          t        ddd      \  } }}t        d|d      }t        || df   t        ||df   |d|dz
  f      |z  z
  dz  | d|dz
  f      }|j                          t	        d      )	Nzi j nTr  xnr   r   r   zUnknown result)r    r   r   r  r#  )r   r   r   r;  Sms        r   test_R1r=  *  s    gtd;GAq!	dAq	!B	bAhR1X1a!e}5a77!;aAE]	KB GGI
.
//r   c                  6   t        d      \  } }t        ddd      \  }}t        d|d      }t        d|d      }t        ||df   | ||df   z  z
  |z
  d	z  |d|dz
  f      }t        ||       }t        ||      }t	        ||f| |ft
        j                  
       y )Nzm bzi nTr  r;  r   ynr   r   r  )r    r   r   r   r   r   r  )	r   r^  r   r   r;  r?  r   f1f2s	            r   test_R2rB  4  s    5>DAq5$6DAq	dAq	!B	dAq	!BR1X"QT(
"Q&*Q1q5M:A	aB	aBb"X1vagg.r   c                      t        ddd      \  } }d|z  t        d| z  |      dz  z  }t        ||dt        f      }|j	                         }|j                         }|d| z  t        d| z  |       z  k(  sJ y )Nn kTr  r2  r   r   )r    r"   r   r   r  ri   )r   r   skr<  r~  T2s         r   test_R3rG  A  s~    5$6DAq'hqsA&*	*B	R!Q	B
	A	
B "q!A#q)))))r   c                      t        d      )NzIndefinite sum not supportedr"  r   r   r   test_R4rI  M  s    & <
==r   c                  b   t        ddd      \  } }}}}d|z  t        | |z   | |z         t        ||z   ||z         z  t        || z   ||z         z  z  }t        ||dt        f      }|j	                         }|t        | |z   |z         t        |       t        |      z  t        |      z  z  k(  sJ y )Nz	a b c n kTr  r2  r   )r    r"   r   r   r  r#   )r  r^  r  r   r   rE  r<  r~  s           r   test_R5rK  c  s    KEMAq!Q'HQUAE*a!eQU+,,4QUAE,BC 
DB	R!Q	B
	A	!A#a% )A,y|";IaL"HIIIIr   c                      t        ddd      \  } }t        d| dz   d      }t        ||df   ||dz
  df   z
  |d| dz   f      }|j                         |d    || dz   df   z   k(  sJ y )	NrD  Tr  gnr   r   r   )r   r   )r    r   r   r  )r   r   rM  r<  s       r   test_R6rN  m  s    5$6DAq	dAE1	%B	R1X1q5!8$q!QUm	4B779D	Bq1uaxL0000r   c                      t        ddd      \  } }t        |dz  |d| f      j                         }|j                         | dz  | dz   dz  z  dz  k(  sJ y )NrD  Tr  r   r   r   r   )r    r   r  r]   )r   r   r~  s      r   test_R7rP  t  s\    5$6DAqAqD!Aa A88:Aq1uqj****r   c                      t        ddd      \  } }t        |dz  t        | |      z  |d| f      }|j                         }|j	                         | | dz   z  d| dz
  z  z  k(  sJ y NrD  Tr  r   r   )r    r   r"   r  ri   r   r   r<  r~  s       r   test_R8rT  y  si    5$6DAq	QT(1a. 1a)	,B
	A::<1a!e9QQZ////r   c                      t        ddd      \  } }t        t        | |dz
        |z  |d| dz   f      }|j                         j	                         d| dz   z  dz
  | dz   z  k(  sJ y NrD  Tr  r   r   )r    r   r"   r  ro   )r   r   r<  s      r   test_R9rW    sl    5$6DAq	XaQ!Aq!a%=	1B779AAJNQU#;;;;r   c                     t        ddd      \  } }}}t        t        | |      t        |||z
        z  |d|f      }|j                         }|j	                         j                  t              }|t        || z         t        |      t        || z   |z
        z  z  k(  sJ |t        || z   |      j                  t              k(  sJ |j                  t              }|t        || z   |      k(  sJ y )Nzn m r kTr  r   )r    r   r"   r  ri   r  r#   )r   r   r  r   r<  r~  rF  T3s           r   test_R10rZ    s    D4@JAq!Q	Xa^HQA..Aq		:B
	A	
		i	(B1q5!9Q<	!a%!)0D#DEEEE!a%#++I6666 
H	B!a%####r   c                      t        ddd      \  } }t        | |      t        |      z  }t        ||d| f      }|j	                         }|t        d| z        k(  sJ y )NrD  Tr  r   r   )r    r"   r&   r   r  )r   r   rE  r<  r~  s        r   test_R11r\    s]    5$6DAq	!Q	!	$B	R!Q	B
	A 	!A#r   c                      t        ddd      \  } }t        t        |      dz  |d| f      }|j                         }|t        |       t        | dz         z  k(  sJ y )NrD  Tr  r   r   r   )r    r   r&   r  rS  s       r   test_R12r^    sY    5$6DAq	Yq\1_q!Qi	(B
	A	!Yq1u-----r   c                  8   t        ddd      \  } }t        t        |t        z        |d| f      }|j	                         }|j                         t        t        dz        dz  t        t        d| z  dz   z  dz        dt        t        dz        z  z  z
  k(  sJ y rV  )r    r   rB   r   r  ro   r?   r>   rS  s       r   test_R13r`    s    5$6DAq	S1X1ay	!B
	A::<3qs8A:AqsQwKM(:Ac!A#hJ(GGGGGr   c                      t        ddd      \  } }t        t        d|z  dz
  t        z        |d| f      }|j	                         }|j                         t        | t        z        dz  t        t              z  k(  sJ y rR  )r    r   rB   r   r  ro   rS  s       r   test_R14rb    sk    5$6DAq	S!A#'11ay	)B
	A::<3qs8Q;s1v----r   c            	          t        ddd      \  } }t        t        | |z
  |      |dt        | dz        f      }|j	                         }|j                         t        | dz         k(  sJ y )NrD  Tr  r   r   r   )r    r   r"   r5   r  ro   r&   rS  s       r   test_R15rd    sb    5$6DAq	Xa!eQ!Qac
!3	4B
	A::<9QU++++r   c                      t        ddd      } t        d| dz  z  d| dz  z  z   | dt        f      }|j                         t	        d      t
        dz  dz  z   k(  sJ y )Nr   Tr  r   r   r   r   )r    r   r   r  ry   r   )r   r<  s     r   test_R16rf    s[    TD1A	Qq!tVa1f_q!Rj	)B779Q"a%'))))r   c            
          t        ddd      } t        t        t        d| dz  z  d| dz  z  z   | dt        f            dz
        dk  sJ y )	Nr   Tr  r   r   r   g3@V瞯<)r    rX  floatr   r   r   s    r   test_R17rk    sZ    TD1AuS1a4!AqD&1a*56#$ %',- - -r   c                      t        ddd      } t        dd| z  | dz  z  z  | dt        f      }|j                         }|j	                         t        d      dz   dz  t        dz  dz  z   k(  sJ y )Nr   Tr  r   r   r   )r    r   r   r  ro   r/   r   r   r<  r~  s      r   test_R18rn    sl    TD1A	Q1QT	]Q2J	'B
	A::<CFAI:a<"a%(2222r   c                     t        ddd      } t        dd| z  dz   d| z  dz   z  d| z  dz   z  z  | dt        f      }|j                         }|j	                         t        d       dz  t        d      t        z  d	z  z   k(  sJ y )
Nr   Tr  r   r   r   r   r   r   )r    r   r   r  ro   r/   r8   r   rm  s      r   test_R19rp    s     	TD1A	Q1q1Q37#QqS1W-.Ar
	;B
	A::<CF719tAwrz"}4444r   c                     t        ddd      \  } }t        t        | d|z        |dt        f      }|j	                         }|j                         d| dz  z  t        t        | z  dz        z  dz  d| dz
  z  dz  z   k(  sJ y )NrD  Tr  r   r   r   r   )r    r   r"   r   r  ro   r>   r   rS  s       r   test_R20rr    s    5$6DAq	Xa11bz	*B
	A::<1qs8C1QK/1AAJqL@@@@r   c            	          t        ddd      } t        dt        | | dz   z        t        |       t        | dz         z   z  z  | dt        f      }|j	                         }|j                         dk(  sJ y )Nr   Tr  r   )r    r   r8   r   r  ro   rm  s      r   test_R21rt    sh    TD1A	QQAY47T!a%[#89:Q2J	GB
	A::<1r   c                     t        ddd      \  } }t        t        t        |       t        |      dz  t        | d|z  z
        z  z  t        t        z  |z  z  t        t        z  | |z
  z  z  | d|z  t
        f      |dt
        f      }|j                         }|dt        t        dz  t        dz  z  dt        dz  z  z
  dt        z  t        z  z
  dz         z  k(  sJ y )	NrD  Tr  r   r   r2  r   r   )r    r   r#   r   r  r   r  r8   rS  s       r   test_R23rv    s    5$6DAq	S)A,	!a	!ac'0B BCA#Q3!a%.)+,ac2,8:;Q
EB 		A41QT	AadF*QqSU2Q677777r   c                      t        ddd      \  } }t        t        |d|z  dz
  z  |d| f      | dt        f      }|j	                         t
        dz  k(  sJ y )Nzm kTr  r   r   )r    r   r   r   r  r   )r   r   r<  s      r   test_R24rx    sW    5$6DAq	WQ!a[1a),q!Rj	9B7791r   c                      t        ddd      } t        t        | dz        | ddf      }|j                         j	                         dt        d      z  t        dz  z  dz  k(  sJ y )	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        ddd      \  } }t        ||d| f      j                         t        |       k(  sJ y NrD  Tr  r   )r    r   r  r#   r   r   s     r   test_S2r  	  s<    5$6DAq1q!Qi %%'9Q<777r   c                      t        ddd      \  } }t        t        |z  |d| f      j                         j	                         t        | | dz   z  dz  z  k(  sJ y rV  )r    r   r   r  ro   r~  s     r   test_S3r    sV    5$6DAq1a4!Q#((*335QAYq[9IIIIr   c                      t        ddd      \  } }t        dd|z  z   |d| dz
  f      j                         j                         | k(  sJ y r}  )r    r   r  ro   r~  s     r   test_S4r    sM    5$6DAq1qs7Q1a4L)..099;q@@@r   c                     t        ddd      \  } }t        d|z  dz
  d|z  z  |d| f      j                         j                         t	        | t
        j                  z         t        t              t	        | dz         z  z  k(  sJ y rR  )	r    r   r  	gammasimprH   r   r}  r8   r   r~  s     r   test_S5r    s{    5$6DAqQqS1WqsOaAY/446@@B!aff*tBxa!e456 7 6r   c                     t        ddd      \  } }t        t        dz  dt        z  t        |t        z  | z        z  z
  dz   |d| dz
  f      j                         j                         t        d| z  z  dz
  t        dz  dz
  z  k(  sJ y rR  )r    r   r   r>   r   r  ro   r~  s     r   test_S6r    s    5$6DAqAqD!A#c!B$q&k/)A-1a!e}=BBDMMOAaC1q!tax() * )r   c                      t        ddd      } t        | dz  dz
  | dz  dz   z  | dt        f      }|j                         }|j	                         t        dd      k(  sJ y )Nr   Tr  r   r   r   )r    r   r   r  ro   r   r   rz  r~  s      r   test_S7r  &  s\    TD1A	!Q$(QTAX&Ar
	3B
	A::<1Q7"""r   c                      t        ddd      } t        ddd| z  dz  z  z
  | dt        f      }|j                         }|j	                         dt
        z  k(  sJ y )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                      t        ddd      } t        dd| dz   z  d| z  dz
  z  z   | dt        f      }|j                         }|j	                         t        d      k(  sJ y )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                      t        ddd      } t        | | dz   z  dz   t        z   | | dz   z  dz   t        z
  z  | dt        f      }|j	                         }|j                         dk(  sJ y )Nr   Tr  r   r   r2  )r    r   r   r   r  ro   r  s      r   test_S10r  A  sh    TD1A	!QU)a-!#aQi!ma&781a*	EB
	A::<2r   c                      t        ddt        z  z   t        z  t        t              t        k(  sJ t        dt	        t
              z
  t
        dz  z  t
        d      t        j                  k(  sJ y 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                  n    t        dt        z  dt        z  z   dt        z  z  t        t              dk(  sJ y )Nr   r   r   )r`   r   r   r   r   r   test_T2r  O  s.    !Q$A+1%q"-222r   c                      t        t        t              t        t              t        t              z   z  t        t              dk(  sJ y r  )r`   r/   r   rB   r   r   r   r   test_T3r  S  s.    QQ#a&)1b1Q666r   c                     t        t        t        t        t               z  t        t               t        dt        dz  z  t        dz   z        z   z        t        t              z
  t        z  t        t              t        d       k(  sJ y )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                  j   t        t        t        t              z  t        t        t        t              z  t        dz  z
        dz  z  t        t        t        dz  dt        t        dt        dz  z  t        t              z              z  z               z  t        t              t        dd      k(  sJ y )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                      t        dt        z  t        t              dt        z  z  z  t        t              t	        d      k(  sJ y Nr   r2  )r`   r   r#   r   r.   r   r   r   test_T6r  a  s3    1y|ac**Ar2c"g===r   c                  v    t        dt        z  t        t        dz         dt        z  z  z  t        t               y r  )r`   r   rH   r   r   r   r   test_T7r  e  s(    	!A#a!eqs#
#Q+r   c            	          t        dd      \  } }t        t        || z         t        |      z  t        |  t	        |      z        z  |t
              dk(  sJ y )Nza zTro  r   )r    r`   rH   r.   r/   r   )r  r  s     r   test_T8r  i  sM    54(DAqq1ueAh&sA2c!f9~5q"=BBBr   c                      t        dd      \  } }t        t        d|fd| |z        |t              t	        |       k(  sJ y )Nzz kTro  r   )r   )r    r`   rJ   r   r.   )r  r   s     r   test_T9r  n  s@    54(DAq 1vtQqS)1b1SV;;;r   c                      t        t        t              dt        dz
  z  z
  t        d      t        dt        z  dt	        t              z  z   t        dt
        f      k(  sJ y 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            
          t        ddd      \  } }t        | t        z  t        t        dt        |z  z   |d| f      z  z  | t              t        t              k(  sJ y r}  )r    r`   r   r   r   rH   r~  s     r   test_T11r  {  sR    5$6DAqAq!ac'Q1I667B?58KKKr   c            	          t        dd      \  } }t        | t        t        |dz         |d| f      z  dt        | dz         z
  z  | d      dk(  sJ y )Nx tTr[  r   r   r   )r    r`   r   r.   )r   rJ  s     r   test_T12r    sb    5t$DAqYsAqD5zAq!955q31u:~FA  r   c                      t        dd      } t        | t        |       z  | dd      t        | t        |       z  | dd      gdd	gk(  sJ y )
Nr   Tr[  r   -dir+r2  r   )r    r`   rX  rp  s    r   test_T13r    sU    $A!CF(Aqc*!CF(Aqc*,02Aw7 7 7r   c                  z    t        dd      } t        t        t        |              | dd      t        dz  k(  sJ y )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                  d    t        dd      } t        t        |       |       t        |       k(  sJ y )Nr   Tr[  )r    r   rX  r,   rp  s    r   test_U1r    s*    $AA?d1g%%%r   c            	          t        t        t        t         t        dk  ft        t        dk\  f            } t         | t              t              t        dt        dk  fdt        dk\  f      k(  sJ y )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            	         t        t        t        t        dz  dz
  t        dk(  ft        dz  t        dk7  f            } t        t        t         | t              t                    } |t              dt        dz  z  k(  sJ  |d      dk(  sJ y r  r  )r   r@  s     r   test_U3r    sp    q)QTAXqAv.AqAv?@A	4!a=	!Ba5AadF??a5A::r   c                      t        ddd      } t        dd      }t        || z  ||       }|j                  t              t        |       k(  sJ y )Nr   Tr  r   r[  )r    r   r  r#   )r   r   r  s      r   test_U4r    sI    TD1A$AQT1aA99Y9Q<///r   c                     t        d      } t        t        t        |             t        |             t        t        |       | df      z  t        t        t        |             t        |       df      t        t        |       |       dz  z  z   }t        t        |             j	                  | d      |k(  sJ |j                         |k(  sJ y )NrJ  r   )r    r	   r   r   r   r  )rJ  anss     r   test_U5r    s    A1QqT7AaD!*QqTAq6"::1QqT7QqT1I&z!A$':A'==	>  QqT7<<1$$$88:r   c                     t        d      } t        t        t              t         | t              t        t              f      }|j                  t              t        t        t                    t        t        t              t              z  t         | t                    t         | t              t              z  z
  k(  sJ y )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                  N    t        dd      \  } }t        t        | |             y )Nzp tTr[  )r    r   r   )rY  rJ  s     r   test_U7r    s!    5t$DAq
 	1aMr   c                      t        dd      \  } }t        | |z        | z   }t        ||z
  ||       | t        | |z        z  dz   | t        | |z        z  dz   z  k(  sJ y )Nr  Tr[  r   )r    r>   rN   rB   )r   r  eqs      r   test_U8r    sg    5t$DAq	QqSAB RAA2c!A#h;?Qs1Q3xZ!^"DDDDr   c            	         t        dd      \  } }t        t        | |      |       t        t        | |      |      z   }|j                  t        | |      t	        | dz  |dz  z               }|j                         j                         }|| |z   t        t        t	        |       |       | | dz  |dz  z         z  dz  k(  sJ y )Nr  Tr[  r   )	r    r   r   r  r   r  r]   r   r	   )r   r  sus2s3s        r   test_U9r    s     5t$DAq	a1gq	D1a!,	,B	1a!AqD1a4K.	)B				B !a%j1q11adQTkBB1DDDDr   c                      t        t        dz  dz   t        dz  dz
  t        dz   z  z  t        d      t        dd      k(  sJ y )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                      t         r   r"  r   r   r   test_U11r    s
     r   c                      t        d      )Nz0External diff of differential form not supportedr"  r   r   r   test_U12r    s     :< <r   c                  |    t        t        dz  t        z
  dz   t              ddt        dd      z  z  dz  dz   k(  sJ y )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                      t        d      )Nz$minimize(), maximize() not supportedr"  r   r   r   test_U14r  	  s     D
EEr   c                      t        d      )NzRminimize() not supported and also solve does not support multivariate inequalitiesr"  r   r   r   test_U15r  
	  s    
 ' ( (r   c                      t        d      )Nz[minimize() not supported in SymPy and also solve does not support multivariate inequalitiesr"  r   r   r   test_U16r  	  s    
 2 3 3r   c                      t        d      )Nz;Linear programming, symbolic simplex not supported in SymPyr"  r   r   r   test_U17r  	  s    
   r   c                      t        dd      } t        t        |       |       t        | dz   dz  | dk  f| dz  dz  df      k(  sJ y )Nr   Tr[  r   r   )r    r   rX  r9   rp  s    r   test_V1r  	  sM    $ASVQ9q!teAgqAv->Aa#OOOOr   c                      t        t        t         t        dk  ft        t        dk\  f      t              t        t        dz   dz  t        dk  ft        dz  dz  df      k(  sJ y )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                      t        dt        dz  dz   z  t              j                         j                         dt        dz  dz   z  k(  sJ y )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                      t        dt        z  t        ddt        z  z         z  t              t        dt        z        t	        d      z  k(  sJ y )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                      t        dt        z  dz
  dz  dt        z  dz
  t        dd      z  z  t              j                         ddt        z  z   dt        dz  z  z
  ddt        z  dz
  t        dd      z  z  z  k(  sJ y )	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            
      z   t        ddt        t        t        z        z  dt        t         t        z        z  z
  z  t              t	        d      t        dt        t        t        z        z  t	        d      z
        t        dt        t        t        z        z  t	        d      z         z
  z  dt        z  z  k(  sJ y )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                  $   t        t        t              dz  t        t              dz  z        } | j	                         t        t        dd      z  t        t              dz  dt        t              z  z  z   dt        t              z  dz  z   k(  sJ y )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                      t        d      )Nz'Integrate with assumption not supportedr"  r   r   r   
test_V8_V9r  A	  s     13 3r   c                      t        dddt        t              z  z   dt        t              z  z   z  t              t	        dt        t        dz        z  dz         dz  k(  sJ y )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                  .   t        dddt        t              z  z   dt        t              z  z   z  t              } t	        |       }t        |d      t        t        t        dz        dz   t        t        dz        dz   z  t        dd      z        k(  sJ y )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                      t        dddt        t              z  z   dt        t              z  z   z  t              } | dt	        t        dz        dz   z  k(  sJ y )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            
          t        dddt        t              z  z   dt        t              z  z   z  t              } | j	                         dt        d      z  t        t        d      dt        t        dz        z  dz   z  dz        z  dz  k(  sJ y )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            	      t   t        t        t        t        dz  t        dz  z
              t              } | j                         t        t        t        t        dz  t        dz  z
              z  t        t        t        t        z         z  z   t        t        t        t        z
        z  z
  dt        z  z
  k(  sJ y r,  )r   r/   rX  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            	          t        t        t        t        t        z        z  t              } t	        | t        t        z  t        dz  t        dz  z   t        t        t        z        z  z   dz  z
        dk(  sJ y 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                     t        t        dt        z        t        dt        z        z  t              t        dt        z        t	        dt        z        z  dz  t        dt        z        t        dt        z        z   dz  z
  k(  sJ y )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            	         t        t        t        t              t              t	        t              z  t        t              t        t	        t              t              z  z
  t        t              dz  t	        t              dz  z
  z  t              } t        | t        t              t	        t              z
  t        t              t	        t              z   z  dz  z
        dk(  sJ y 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                  l    t        dt        t        z
  z  t        t        dz
  t        dz   f      dk(  sJ y )Nr   r   )r   r   r  r   r   r   test_W1r  	  s0    
 QAYAE1q5 12a777r   c                  x    t        dt        t        z
  dz  z  t        t        dz
  t        dz   f      t        u sJ y rU  )r   r   r  r   r   r   r   test_W2r  	  s4     QAz\Aq1ua!e#45<<<r   c                  |    t        t        t        dt        z  z   dz
        t        ddf      t        dd      k(  sJ y Nr   r   r   r   r   r   r8   r   r   r   r   r   test_W3r
  	  s6    
 T!ac'A+&Aq	2a1g===r   c                      t        t        t        dt        z  z   dz
        t        ddf      dt        d      z  dz  t        dd      z   k(  sJ y )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                      t        t        t        dt        z  z   dz
        t        ddf      dt        d      z  dz  t        dd      z   k(  sJ y )Nr   r   r   r	  r   r   r	  r   r   r   test_W5r  	  r  r   c            
          t        t        ddt        dt        z        z  z
        dz  t        t        t        dd      z  t         dz  f      t        d      k(  sJ y )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                      t        dd      } t        t        t              t        dz  | dz  z   z  t        t         t        f      }|j                         t        t        |        z  | z  k(  sJ y )Nr  Tro  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                      t        d      )Nz1Integrate with assumption 0 < a < 1 not supportedr"  r   r   r   test_W8r  	  s     ;= =r   c                  J   t        dt        dz  z  dt        z   t        dz  z   t        dz  z   t        dz  z   z  t        t         t        f      } | j                         }|dt        z  t        t        d       dz  dz         t        t        d      dz  dz         z   z  k(  sJ y )	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            	          t        t        dt        z   t        dz  z   t        dz  z   z  t        t         t        f      } | j                         }|dt        z  t        d      dz  dz   z  t        t        t        dd      z        z  dz  k(  sJ y )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                      t        t        dt        dz  z
        dt        dz  z   z  t        ddf      t        dt        d      z   z  k(  sJ y r  )r   r8   r   r   r   r   r   test_W11r  	  sL     d1q!t8na!Q$h/!R<T!W  r   c                  N   t        dd      } t        dd      }t        t        t        |  t        dz  z  d|z  t        z  z         z  t        t         t        f      }|j                         t        t              |z  t        |dz  | z        z  | t        dd      z  z  k(  sJ y )NrY  Tro  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            	          t        dt        t              z  ddt        z
  z  z   t        t        dt        z              z
  t        ddf      } | dt        z  k(  sJ y )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                      t        t        t              t        z  t        dt        z  t        z        z  t        t
         t
        f      dk(  sJ y r  )r   rB   r   r.   r   r   r   r   r   test_W14r!  	  s8    SVAXc!A#a%j(1rc2,71<<<r   c                      t        t        t        t                    t	        dt
        z  t        z        z  t        ddf      t        dd      k(  sJ y )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                      t        dt        z   dz  t        dt              z  t        dt              z  t        ddf      t        dd      k(  sJ y )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                      t        dd      \  } }t        t        |  t        z        t	        d|t        z        z  t        dt
        f      d|t        | dz  |dz  z  dz         z  z  k(  sJ y )Na bTro  r   r   r   )r    r   r.   r   rD   r   r8   r]  s     r   test_W17r)  	  so    54(DAqS!AYwq!A#.Q !1T!Q$q!t)a-%8#8 9: : :r   c                      t        t        dt              t        z  dz  t        dt        f      ddt        z  z  k(  sJ y r  )r   rD   r   r   r   r   r   r   test_W18r+  
  s4    gamAo)Aq":6!QrT(BBBr   c                      t        t        t              t        ddt	        dt        z        z        z  t        dt
        f      t        d      dz
  dz  k(  sJ y )Nr   r   r   r   )r   rv   r   rD   r8   r   r>   r   r   r   test_W19r-  
  sH     RU71aQqS	k22Q2J?CFQJPQ>QQQr   c            	      :   t        t        dz  t        ddt        dz   z        z  t        ddf      t        dz   dz  t	        dd      z
  t        d      dz  z   t        dz   dz  dt        d      z  z
  t        d      dz  z   d	z   t        d      z  d
z  z   k(  sJ y )Nr   r   r   r   r  r   l   r   gUUUUUU'@r   )r   r   rM   r   r   ry   r/   r   r   r   test_W20r0  
  s     ad71aQi001a)<UF2I"c
"T!WQY.!eVAX#a& 3q619,t3SV;A=>> ? >r   c                      t        t        t        t        dz  t	        ddt        dz   z        z  t        ddf            dz
        dk  sJ y )Nr   r   r   r   g5?rh  )rX  r   r   r   rM   r   r   r   test_W21r2  
  sP    q1a41a!e9 551ayAB
 $% % %r   c                  N   t        dd      \  } }t        t        t        dt	        t        dk\  t        dk        fd            }t         ||       t        |       z  | d|f      t        d|dk  ft        t        d|             t        t        d|            z   df      k(  sJ y )Nzt uTr[  r   r   )r   Tr   )	r    r   r   r9   rO   r   r>   rB   r7   )rJ  ur  s      r   test_W22r5  
  s    5t$DAqq)QAFAF 34i@AAQqT#a&[1a),		
AE

c!Qi.3s1ay>	)4012 2 2 2r   c                  "   t        dd      \  } }t        t        t        t        dz  t        dz  z   z  t        | |f      t        t         t        f      }|j                  t              j                         t         | z  t        |z  z   k(  sJ y Nr(  Tro  r   )r    r   r   r  r   collectr   cancel)r  r^  r  s      r   test_W23r:  #
  sp    54(DAq	9Q1q!t_q!Qi81rc2,	GB::b>  "rc!ebdl222r   c                      t        dd      \  } }t        t        t        t        dz  t        dz  z   z  t        t         t        f      t        | |f      }|j                  t              t        |  |z   z  k(  sJ y r7  )r    r   r   r  r   r8  r   )r  r^  r  s      r   	test_W23br<  *
  sc    54(DAq	9Q1q!t_q2#rl;aAY	GB::b>R!a[(((r   c            	          t        dd      \  } }t        t        t        | dz  |dz  z         | ddf      |ddf      }|t        d      t        d      z   dz  z
  j	                         dk(  sJ y )Nr  Tr[  r   r   r   r   )r    r   r8   r0   ro   )r   r  r  s      r   test_W24r>  1
  sr    
 5t$DAq	9T!Q$A+.Aq	:Q1I	FB$q'E!H$a''113q888r   c            
      ^   t        dd      \  } }}t        t        |       t        |      z  t        dt        |       dz  t        |      dz  z  t        |      dz  z  z
        z  |dt        dz  f      }t        ||dt        dz  f      }|t        | z  dz  z
  j                         dk(  sJ y )Nza x yTr[  r   r   r   )r    r   rB   r8   r   ro   )r  r   r  i1i2s        r   test_W25rB  ;
  s     gD)GAq!	As1vd1s1vqyQ23q619<<==	
Ar!t
B 
21bd|	$BAaK!!#q(((r   c            	          t        dd      \  } }t        t        t        || dz  z
        |ddf      | ddf      t        dd	      k(  sJ y )
Nr  Tr[  r   r   r2  r   r  r  )r    r   rX  r   rc  s     r   test_W26rD  F
  sV    5t$DAqYs1q!t8}q!Qi8QZ!$%b"I. . .r   c                      t        d      \  } }}t        t        t        dt        d|dt        | z  z
  t        |z  z
  z  f      t        d|dt        | z  z
  z  f      t        d| f      | |z  |z  dz  k(  sJ y )Nr  r   r   r   )r    r   r  r   r  )r  r^  r  s      r   test_W27rF  L
  s    gGAq!YyQ1a!A#g!m3D,EF !1aQqSk24AY #$Q3q57+ + +r   c                      t        dd      \  } }t        dt        d| |z  dz  z
        z  | dd      d	| d
z  z  d|d
z  z  z  d| dz  z  d|dz  z  z  z   | dz  d|dz  z  z  z   dz   t        | dz        z   k(  sJ y )Nv cTr[  r   r   r   r   x0r   r   r   r   r   r   r    rc   r8   ra   )r-  r  s     r   test_X1rL  S
  s    5t$DAq1T!qsQh,''qA6adFBq!tGqAvqAv.AqAv>BQq!tWLM N Mr   c                      t        dd      \  } }t        dt        d| |z  dz  z
        z  | dd      }d|dz  z  j                  | dd      | dz   |dz  z  dz   t        | dz        z   k(  sJ y )	NrH  Tr[  r   r   r   r   rI  rK  )r-  r  s1s      r   test_X2rO  Y
  s    5t$DAq	$qAaC!8|$$aA	3Bb!eGA!q)adU1a4Z!^a1g-EEEEr   c                  T   t        t              j                         t        t              j                         z  j                         } t	        t              j                         }|t        t        dz  dz  z   dt        dz  z  dz  z   t        t        dz        z   k(  sJ | |k(  sJ y )Nr   r   r   r  r   )rB   r   rc   r>   rC   ra   )rN  r  s     r   test_X3rQ  _
  s{    
a&--/#a&--/
)	1	1	3B	QBQT!Va1fRi'!AqD'11118O8r   c                  8   t        t        t              t        z        j                         } | t        dz   dz  t        dz  dz  z
  t	        t        dz        z   k(  sJ t        t        t        t              t        z              j                         | k(  sJ y )Nr   r   r      )r/   rB   r   rc   ra   )rN  s    r   test_X4rT  f
  sw    	SVAX			B!Q$q1a48#a1g----vc!fQh '')R///r   c            	         t        d      } t        dd      \  }}}}t        t        t	        |t
        z        t
              t        |t
        z        z   t         | |t        z        t        dt
        f      z   t
        |d       y )Nr  za b c dTr[  r   r   rI  )	r
   r    rc   r   r   r   r   r   r  )r  r  r^  r  r  s        r   test_X5rV  l
  si     	A.JAq!Q 4!A#?QqsV#i!A#Aq	&BBar   c                  "   t        ddd      \  } }t        t        | |z   t        z        t        | t        z        t        |t        z        z  z
  t        dd      t        dz  |  |z  dz  || z  dz  z   z  t	        t        dz        z   k(  sJ y )Nr(  F)r  scalarr   r   rI  r   )r    rc   r.   r   ra   r]  s     r   test_X6rY  
  s     5eE:DAq3Aqy>C!Hs1Q3x$77qAFdQBqDFQqSUN#a1g-. / .r   c                     t        dt        t        t              dz
  z  z  t        dd      t        dz  ddt        z  z  z
  t        dd      z   t        dz  dz  z
  t        dz  d	z  z   t        d
z  dz  z
  t	        t        dz        z   k(  sJ y )Nr   r   r   r	  r   r   i  r   i v  r   i u )rc   r   r.   r   ra   r   r   r   test_X7r[  
  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                     t        dd      } t        t        t        |             | t        dz  dz  d      dt        | t        t        dd      z  z
        z  | t        t        dd      z  z
  t        dd      z  d	z  z   | t        t        dd      z  z
  t        d
d      z  dz  z   t        | t        t        dd      z  z
  dz  | t        t        dd      z  f      z   k(  sJ y )Nr   Tr[  r   r   r   rI  r   r   r      )r    rc   r8   rA   r   r   ra   rp  s    r   test_X8r^  
  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                  D   t        t        t        z  t        dd      dt        t        t              z  z   t        dz  t        t              dz  z  dz  z   t        dz  t        t              dz  z  dz  z   t        t        dz  t        t              dz  z        z   k(  sJ y )Nr   r   rI  r   r   r   r   )rc   r   r/   ra   r   r   r   test_X9r`  
  s    1a4qA&!aAh,Ac!fai9I*IqDQN1+ Ac!fai0+1 1 2 1r   c            	      ,   t        d      \  } }t        t        t        |             t        t	        | |z               z   | dd      t        t	        |            t        |       z   | t        |      z  t	        |      z  z   t        | dz        z   k(  sJ y Nzz wr   r   rI  r    rc   r/   r2   r1   ra   r  r  s     r   test_X10re  
  s    5>DAq3tAw<#d1q5k"22A!qAQL3q6!Ad1gId1g$55!Q$?@ A @r   c            	         t        d      \  } }t        t        t        |       t	        | |z         z        | dd      t        t	        |            t        |       z   | t        |      z  t	        |      z  z   t        | dz        z   k(  sJ y rb  rc  rd  s     r   test_X11rg  
  s|    5>DAq3tAwa!e,-qQ!<QL3q6!Ad1gId1g$55!Q$?@ A @r   c                      t        dd      \  } }}t        t        |      | z  t        | |z        z  |dd      |dz
  | z  t        |      z  d| d|z  z   |dz
  z  dz  z
  t	        |dz
  dz        z   z  k(  sJ y )Nza b xTr[  r   r   rI  )r    rc   r/   r.   ra   )r  r^  r   s      r   test_X12ri  
  s     gD)GAq! 3q619S!AY&a15UQJs1vqA!Ga!e#4Q#66AEA:FGH I Hr   c                      t        t        dt        dz  z  dz         t        t        d      t        d      t        z  t	        dt        z  t        t        f      z   k(  sJ y )Nr   r   rI  )rc   r8   r   r   ra   r   r   r   test_X13rk  
  sG    $qAvz"A"2d1gai!AaC!R/6QQQQr   c                     t        dddt        z  z  z  t        dt        z  t              z  t        t        t        k(  d      dt        t              t        t              z  z  t        dt        z  t        t        f      z   k(  sJ y )Nr   r   r  )rc   r   r"   r   r   r8   r   ra   r   r   r   test_X14rm  
  so     !A!H*Xac1--QUa!$%tBxQ'7$81QqS1b'?$JK K Kr   z*https://github.com/sympy/sympy/issues/7164c                      t        dd      \  } }t        t        |       |z  || t        f      }t	        || t        d      d| dz  z  d| d	z  z  z   d
| dz  z  z
  d
| z  z   t        | dz  | t        f      z   k(  sJ y )Nr  Tr[  r   rI  r   r   r   r   r   r
  )r    r   r.   r   rc   ra   )r   rJ  e1s      r   test_X15rp  
  s     5t$DAq 
3r719q!Rj	)B2qR1%adFQq!tVOa1f$qs*Qq2wB-@@A B Ar   c                  L   t        t        t        t        z         t        t        z   dd      dt        t        z   dz  dz  z
  t	        t        dz  t        dz  t        z  z   t        dz  t        dz  z  z   t        t        dz  z  z   t        dz  z   t        t              z   k(  sJ y )Nr   r   rI  r   r   r   )rc   r>   r   r  ra   r   r   r   test_X16rr  
  s    3q1u:q1ua0AQ
14DadQT!Vmad1a4i'!AqD&01a47A>5? ? @ ?r   c            	      2   t        t        t        t              t        z              t	        dt
        z  ddt
        z  dz
  z  z  t        dt
        z        z  t        dt
        z  z  z  t
        t        dt
        z        z  z  t
        dt        f      k(  sJ y )Nr2  r   r   )	r   r/   rB   r   r   r   r%   r#   r   r   r   r   test_X17rt  
  s}     s3q6!8}R!GA!aL 1Q3/AaC8!IacN:JKaQRTVZXY Y Yr   c            
      ,   t        d      } t        t        t               t	        t              z        t        dt        j                  | z  z  t	        t        dd      | z  t        z        z  t        | z  z  t        |       z  | dt        f      k(  sJ y )Nr   r   r   r   r   )r   r   r.   r   rB   r   r   r}  r   r   r#   r   rj  s    r   test_X18rv  
  s{    . 	c
AsA2ws1v~AqM#a1gail++AqD01=1bzJK K Kr   c                      t        d      )NzTSolve using series not supported. Inverse Taylor series expansion also not supportedr"  r   r   r   test_X19rx    s      4 5 5r   c                      t        d      )Nz'Symbolic Pade approximant not supportedr"  r   r   r   test_X20rz    s     G
HHr   c                     t        dd      } t        ddd      }t        t        t        |  | f      }|j                  j                  dk(  sJ |j
                  j                  j                  |j
                  j                  d   d      dk(  sJ |j
                  j                  j                  |j
                  j                  d   |      d| z  t        z  d|z  z  |z  t        |t        z  t        z  | z        z  k(  sJ y	)
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  Tro  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                      t        d      )NzFourier series not supportedr"  r   r   r   test_X22r  4  s    < <
==r   c                      t        dd      } t        dd      }t        d      }t        t        |dz
  | z        | |      \  }}}|||dz  |dz
  dz  z   z  k(  sJ y )	NrJ  Tro  r  r[  r  r   r   )r    r   r>   rJ  r  r  rd  r  s        r   test_Y1r  U  sg    d#A$AAQUAI15GAq!1a41q51*$%%%%r   c                      t        dd      } t        dd      }t        d      }t        ||dz  |dz
  dz  z   z  || d	      }|t        | |dz
  z        k(  sJ y )
NrJ  Tro  r  r[  r  r   r   ro   )r    r   r>   )rJ  r  r  r   s       r   test_Y2r  ]  sc    d#A$AA!!QTQUQJ%6"7AMAAq1uIr   c                      t        dd      } t        dd      }t        d      }t        t        || z        t        || z        z  | |d      \  }}}|||dz  d	|dz  z  z
  z  k(  sJ y )
NrJ  Tro  r  r[  r  r  r   r   )r    r   r2   r1   r  s        r   test_Y3r  e  sq    d#A$AAQqS	$qs) 3QDIGAq!1a4!AqD&=!!!!r   c                      t        dd      } t        d      }t        t        dt        |       z        | |d      \  }}}|d|z  t	        dt        |      z        |z  z
  k(  sJ y )	NrJ  Tro  r  r   r  r   r  )r    r   rx   r8   r.   )rJ  r  rd  r  s       r   test_Y4r  m  sa    d#AAAd1gI1tDGAq!!c"T!W*oa'''''r   c                     t        dd      } t        d      }t        d      }t        d      }t        t        t	         ||       | d       ||       z   dt        | d	z
        t        | dz
        z
  z  z
  | |d
      ||i      }| |dz   ||      z  z   | |d      z  z
   ||      z   t        t         ||       |       | d      z
  dt        |       z  |z  z
  dt        d|z        z  |z  z   }|dk(  sJ t        | ||            d   }t        || |d	dgi      }||dz  t        d|z        z  dt        |      z  z   dz
  t        d|z        z  ||dz  d	z   z  z  k(  sJ t        |||       }|j                  t        | d	z
              j                  t        | dz
              }|ddt        | d	z
        z  z
  t        | d	z
        z  dt        | dz
        z  dz
  t        | dz
        z  z   t        |       t        |       z  z   k(  sJ y )NrJ  Tr[  r  r  r,  r   r   r   )nocondsr   r	  )r    r
   r   r   r   ru   r   r	   r.   rr   r   r   r8  r>   )rJ  r  r  r,  rd  DYfyfs           r   
test_Y5_Y6r  t  s/    	$AAAA0adAq1AAaD1H"#Yq1u%5	!a%8H%H"I2J !1d 467V	=A 
QT!A$Y1Q4!A$&j1q.A1a)HH	#qb'	!	BqD	k!m	$  6M6 
q!A$	B	r1q1a&k	2B!Q$s1Q3x-!CF(*Q.BqD	91adQh<HHHH	"2q!	,B	IacN	#	+	+IacN	;B	
Qs1q5z\	9QU++	
3q1u:	9QU++	,Ay|	  r   c                  l   t        dd      } t        dd      }t        d      }t        ddt        d	t        z  t	        | t        |z  z
        z  t        dt
        f      z  z   | |      \  }}}|dt        d	t        z  t        | t        z  |z        z  |z  t        dt
        f      z  d|z  z   k(  sJ y )
NrJ  Tro  r  r[  r  r   r   r2  )r    r   r   r   ru   r   r.   )rJ  r  r  rd  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                  R    t        dt        t              t        t              k(  sJ y r  )r   r   r  rE   r   r   r   test_Y8r    s    Q1%A666r   c                      t        t        dt        dz  z        t        t              t	        t
              t        t
        dz   t        dz  z  dz        z  dz  k(  sJ y )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            	      6   t        t        t              t        dt        t              z        z  t        t              j                         dt        dz  z  t        dz  z  dz   dt        dz  z  t        dz  z  dt        dz  z  t        dz  z  z   dz   z  k(  sJ y )	Nr  rF  r   r  r   r   r  r  )r   rX  r   r.   r  r9  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                      t        d      \  } }t        dd| z
  z  | |      \  }}}|t        t        t        |z        z  k(  sJ y )Nx sr   )r    r   r   r?   r   r  rd  r  s       r   test_Y11r    sI     5>DAq
  1q5	1a0GAq!3r!t9r   c                      t        d      \  } }t        t        d|       | dz  z  | |      \  }}}|d|dz
  z   t        |dz        z  t        | dz  dz         z  k(  sJ y )Nr  r   r   r   )r    r   rD   rH   r  s       r   test_Y12r    sn     5>DAq wq!}QT11a8GAq!QUE!A#J&uaRTAX6666r   c                      t        d      Nzz-transform not supportedr"  r   r   r   test_Y13r         9
::r   c                      t        d      r  r"  r   r   r   test_Y14r    r  r   c            	      ,   t        d      } t         | t        dz         d | t        dz         z  z
   | t              z   dz
   | t               | d      d | d      t        i      j	                         t        dz  t        t        dz
  z  z   dz   k(  sJ y )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            	          t        d      } t         | t              d | t        dz
        z  d | t        dz
        z  z
  z
   | t               | d      d | d      di      dt        z   dt        z  z   k(  sJ y )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            	         t        d      } t        d      dz  t        d      dz  z
  t        z  t        d      dz  t        d      dz  z
  z  t        d      dz  t        d      dz  z   t        z  t        d      dz  t        d      dz  z   z  z   }t	         | t               | t        dz
         | t        dz
        z   z
   | t               | d      d | d      di      }||k(  sJ y )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   t        d      } t        d      }t         | t              d|z   |t        dz
  z  z
  |t        dz   z  z
  d|t        z  z
  z   | t        dz
        z  |d|t        dz
  z  z
  z  d|t        dz
  z  z
  z   | t        dz
        z  z
  dz   z
   | t               | d      d | d      dd|z  z   |dz  z   d|z   z  i      }||t        dz   z  |t        dz   z  d|z  z
  dz
  z  t        dz   |dz  z  z   d|z  z   t        z
  |dz
  dz  |dz   z  z  z
  dk(  sJ y )Nr  r  r   r   r   r   )r
   r    r   r   )r  r  r  s      r   test_Z4r    s[    	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                      t        d      \  } }t        t        t              t        d      dt        t              z  z   t	        dt        z        z
  }t        |t        t                    }t        t        |j                        } |t              |t	        dt        z        z  | t        dz  z
  t        dt        z        z  z   k(  sJ t        t        t         |t              t                    }t         |d       |d      f      } |t              j                  | ||          j                  |||         }|t         t        dt        z        z  dz  t	        dt        z        dz  z   k(  sJ t        d      )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  f0r@  
const_dictresults           r   test_Z5r    s2    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JrN+00Z^DFaRAaC[]S1XaZ////    r   c                  L   t        dd      } t        d      }t        t        |       | d      dt        |       z  z   t        d| z        z
  }t	        || |      \  }}}||dz  t        t        |       | |      z  dt        t        |       | |      z  z   d|dz  dz   z  z
  k(  sJ y )NrJ  Tro  r  r   r   )r    r	   r   rB   r   r   )rJ  r  r  rd  r  s        r   test_Z6r    s     	d#AA	AaD!Q	!AaD&	(3qs8	3BAq)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   rs  rT   rt  rU   ry  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   r5  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  ru  rw  rz  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-  r/  r1  r3  r6  r8  r;  r=  rA  rC  rE  rH  rJ  rL  rN  rP  rR  rV  rY  r_  ra  rd  rf  ri  rm  rp  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.  r0  r2  r4  r6  r8  r:  r<  r>  r@  rB  rD  rF  rK  rM  rO  rU  rX  r[  re  rg  rk  ro  rs  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/  r4  r9  r=  rB  rG  rI  rK  rN  rP  rT  rW  rZ  r\  r^  r`  rb  rd  rf  rk  rn  rp  rr  rt  rv  rx  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-  r0  r2  r5  r:  r<  r>  rB  rD  rF  rL  rO  rQ  rT  rV  rY  r[  r^  r`  re  rg  ri  rk  rm  rp  rr  rt  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   <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   