o
    8Vah                    @   s  d Z ddlmZmZmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZUmVZWmXZYmZZ[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZfmgZgmhZhmiZimjZjmkZkmlZlmmZmmnZnmoZompZpmqZqmrZrmsZsmtZtmuZu ddlvZvddlwmxZx ddlymzZz ddl{m|Z|m}Z}m~Z~ ddlmZ ddlmZmZmZmZmZmZ dd	lmZ dd
lvmZmZ ddlmZmZmZ ddlmZmZ ddlmZmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZmZmZmZmZ ddlmZ ddlmZmZmZ ddlmZ ddlmZ ddlmZmZ ddlmZ ddlmZ ddlmZ eZed\ZZZed d!d"\ZZZZZZe-d#Ze-d$Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd;d< Zd=d> Zd?d@ ZdAdB ZdCdD ZdEdF ZdGdH ZdIdJ ZdKdL ZdMdN ZdOdP ZedQdR ZdSdT ZdUdV ZedWdX ZdYdZ Zed[d\ Zd]d^ Zd_d` Zdadb Zdcdd Zededf Zedgdh Zedidj Zedkdl Zedmdn Zedodp Zedqdr Zedsdt Zedudv Zdwdx Zdydz Zed{d| Zed}d~ Zedd Zdd Zdd Zdd Zdd Zdd Zedd Zedd Zdd Z dd Zdd Zdd Zedd Zdd Zedd Zdd Zdd Zdd Z	dd Z
ded  ded   ded   ded   ded   d Zded  ded   ded   ded   ded   ded   d Zded  ded   ded   ded   de  d Zdd ZddÄ Zddń ZddǄ ZddɄ Zdd˄ Zdd̈́ Zddτ Zeddф Zddӄ ZddՄ Zddׄ Zddل Zeddۄ Zdd݄ Zedd߄ Zedd Zdd Zdd Z dd Z!dd Z"dd Z#dd Z$edd Z%edd Z&dd Z'dd Z(edd Z)dd Z*dd Z+edd Z,dd Z-d d Z.edd Z/edd Z0edd Z1edd	 Z2ed
d Z3dd Z4ededd Z5edd Z6dd Z7dd Z8edd Z9dd Z:dd Z;dd Z<dd  Z=d!d" Z>d#d$ Z?d%d& Z@d'd( ZAed)d* ZBd+d, ZCd-d. ZDed/d0 ZEed1d2 ZFd3d4 ZGed5d6 ZHd7d8 ZId9d: ZJed;d< ZKd=d> ZLd?d@ ZMdAdB ZNdCdD ZOdEdF ZPdGdH ZQdIdJ ZRdKdL ZSdMdN ZTdOdP ZUdQdR ZVedSdT ZWdUdV ZXedWdX ZYedYdZ ZZed[d\ Z[ed]d^ Z\d_d` Z]edadb Z^dcdd Z_dedf Z`edgdh Zaedidj Zbdkdl Zcedmdn Zddodp Zeedqdr Zfedsdt Zgdudv Zhedwdx Ziedydz Zjed{d| Zkd}d~ Zldd Zmdd Zndd Zodd Zpdd Zqdd Zrdd Zsdd Ztedd Zudd Zvdd Zwdd Zxedd Zyedd Zzedd Z{dd Z|dd Z}dd Z~dd Zdd Zdd Zedd Zedd Zedd Zedd Zeedd Zedd Zeedd Zdd Zdd Zdd Zdd Zdd Zedd ZdÐdĄ ZdŐdƄ ZedǐdȄ Zdɐdʄ Zdːd̄ Zed͐d΄ ZdϐdЄ Zedѐd҄ ZdӐdԄ ZdՐdք Zdאd؄ Zdِdڄ Zedېd܄ Zdݐdބ Zdߐd Zdd Zdd Zdd Zedd Zedd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zedd Zdd  Zdd Zdd Zdd Zdd Zd	d
 Zdd Zedd Zedd Zdd Zedd Zdd Zdd Zedd Zedd Zedd Zdd  Zed!d" Zed#d$ Zd%d& Zd'd( Zd)d* Zd+d, ZÐd-d. ZĐd/d0 Zed1d2 Zed3d4 Zed5d6 Zed7d8 Zed9d: Zʐd;d< Zːd=d> Zed?d@ Z͐dAdB ZedCdD ZedEdF ZedGdH ZedIdJ ZedKdL ZedMdN ZԐdOdP ZՐdQdR Z֐dSdT ZeedUdV ZedWdX ZedYdZ Zed[d\ Zېd]d^ Zܐd_d` Zݐdadb Zސdcdd Zߐdedf Zdgdh Zedidj Zedkdl Zedmdn Zedodp Zedqdr Zdsdt Zdudv Zdwdx Zdydz Zd{d| Zd}d~ Zdd Zdd Zedd Zedd Zedd Zdd Zdd Zdd Zdd Zdd Zdd Zedd Zdd Zdd Zedd Zdd Zdd Zdd Zedd Zedd Z dd Zedd Zedd Zedd Zedd Zdd Zdd Zdd Zdd Z	edd Z
edd Zdd Zedd Zdd ZdÐdĄ ZdŐdƄ ZedǐdȄ Zeedɐdʄ Zdːd̄ Zed͐d΄ ZedϐdЄ Zedѐd҄ ZedӐdԄ ZeedՐdք Zeedאd؄ Zeedِdڄ Zeedېd܄ Zdݐdބ Zedߐd Zeedd Zedd Zedd Z dd Z!edd Z"dd Z#edd Z$dd Z%dd Z&dd Z'edd Z(edd Z)dd Z*dd Z+edd Z,dd  Z-eedd Z.eedd Z/dd Z0dd Z1d	d
 Z2dd Z3dd Z4dd Z5edd Z6dd Z7dd Z8dd Z9dd Z:dd Z;dd Z<edd  Z=d!d" Z>ed#d$ Z?ed%d&d' Z@d(d) ZAed*d+ ZBed,d- ZCed.d/ ZDed0d1 ZEd2d3 ZFed4d5 ZGd6d7 ZHd8d9 ZId:d; ZJd<d= ZKed>d? ZLed@dA ZMedBdC ZNdDdE ZOdFdG ZPedHedIdJ ZQedKdL ZRedMdN ZSedOdP ZTdQdR ZUdSdT ZVdUdV ZWedWdX ZXedYdZ ZYed[d\ ZZdS (]  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.
    )pRationalsymbolsDummy	factorialsqrtlogexpoozooproductbinomialrfpigammaigcd	factorintradsimpcombsimpnpartitionstotient
primerangefactorsimplifygcd	resultantexpandItrigsimptansincoscotdiffnanlimit
EulerGamma	polygamma	bernoullihyperhyperexpandbesseljasinassoc_legendreFunctionreim
DiracDelta
chebyshevtlegendre_polypolylogseriesOatansinhcoshtanhfloorceilingsolveasinhacotcscsecLambertWNapart
sqrtdenest
factorial2	powdenestMulSZZPolyexpand_funcEQAndLtMinaskrefineAlgebraicNumbercontinued_fraction_iteratorcontinued_fraction_periodiccontinued_fraction_convergentscontinued_fraction_reduce	FiniteSet
elliptic_e
elliptic_fpowsimphessian	wronskian	fibonaccisignLambda	PiecewiseSubsresidue
Derivative
logcombineSymbolIntersectionUnionEmptySetIntervalidiffImageSetacosMaxMatMul	conjugateEqNstirling)	Heaviside)CiSierf)zeta)XFAILslowSKIPskip	ON_TRAVISraises
partitions)mpimpc)MatrixGramSchmidteye)BlockMatrixblock_collapse)MatrixSymbol
ZeroMatrix)
Commutator)assuming)PolyRing)	FracField)solve_lin_sys)Sum)Product)	integrate)laplace_transforminverse_laplace_transformLaplaceTransformfourier_transformmellin_transform)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                   C   sB   t ttttttt tttB t tttB t tttttksJ d S NrX   ijklm r   r   C/usr/lib/python3/dist-packages/sympy/utilities/tests/test_wester.pytest_B1F   s
   
r   c                   C   sN   t ttttttt ttt@ t ttt@ ttthttthttthks%J d S r   )rX   r   r   r   r   r   rg   r   r   r   r   test_B2K   s
   
r   c                   C   s.   t tttttt t t ttttksJ d S r   r   r   r   r   r   test_B3U   s   r   c                   C   s>   t t ttt tt  t ttfttfttfttfksJ d S r   )rX   r   r   r   r   r   r   r   r   test_B4Z   s   r   c                   C      t ddksJ d S )N2   l         <:.kjFt=VfvaI= )r   r   r   r   r   test_C1b   s   r   c                   C   s8   t tddddddddddd	d	d	d	d	d	d
ksJ d S )Nr   /                        )r   r                              %   )   +   r   )r   r   r   r   r   r   test_C2g   s   r   c                   C   s   t dt dfdksJ d S )N
   	   )i   i  )rE   r   r   r   r   test_C3m      r   c                   C   s   ddksJ d S )Ni
  r   r   r   r   r   test_C4s   s   r   c                   C   s   dt ddks	J d S )N{   Z234r   intr   r   r   r   test_C5w      r   c                   C   s,   t ddt dd  krdksJ  J d S )NZ677r   Z1BF   i  r   r   r   r   r   test_C6{      ,r   c                   C   s   t dddks	J d S )Ni   r   r   )r   r   r   r   r   test_C7   r   r   c                   C   s,   t dddks
J t dddksJ d S )Nr   r   r      )rI   invertr   r   r   r   test_C8   s   r   c                   C   s   t t ddddksJ d S )N  i  iB  J   )r   r   r   r   r   test_C9   r   r   c                  C   s8   d} t ddD ]	}| td|7 } q| tddksJ d S )Nr   r   r   r   i  i	  )rangeR)xnr   r   r   test_C10   s   r   c                   C   s   t ddtdksJ d S )Nr   r   z
0.[142857])r   rH   r   r   r   r   test_C11      r   c                   C   s    t ddt dd dksJ d S )Nr   r   r   r   r   r   r   r   r   test_C12       r   c                  C   s@   t dddt dd t dd  } dt dd }| |ksJ d S )Nr   r   r   r   i  r   r   testZgoodr   r   r   test_C13   s   "r   c                   C   s,   t tdtd d dtd ksJ d S )Nr   r   r   r   rD   r   r   r   r   r   test_C14   r   r   c                  C   sX   t tddtddtddtddtd        } tdd }| |ks*J d S )N   r   r   r   r   r   r   r   r   r   test_C15   s   <r   c                  C   sX   t tddtd  dtd  dtd  } tdtd td }| |ks*J d S )Nr   r   r      r   r   r   r   r   r   r   test_C16   s   0r   c                  C   sD   t tdtd tdtd  } ddtd  }| |ks J d S )Nr   r   r   r   )r   r   r   r   r   r   test_C17   s   $r   c                   C   s8   t tdtd tdtd  jdddksJ d S )NTcomplexr   )r   r   r   r   r   r   r   test_C18      8r   c                   C   s6   t tddtd  tdd dtd ksJ d S )NZ   "   r   r   r   )r   r   r   r   r   r   r   r   test_C19      6r   c                  C   sT   ddt d  } t| tdd d t d | tdd  }t|tdks(J d S )N   N   r   r   r   r   )r   rS   r   r   )Zinsider   r   r   r   test_C20   s   ,r   c                   C   s:   t tddtd  tdd tdtd ksJ d S )Nr   r   r   r   r   )r   rS   r   r   r   r   r   r   test_C21   s    r  c                  C   s   t ddtd  tddtd   ddtd  tddtd    d dtd  d	td d
  } tdd ttdd d  }| |ksLJ d S )Nr   r   r   r   r   r          0   H   r   )r   r   r   r   r   r   r   test_C22   s   6

 r  c                   C   s   dt  d t u s
J d S )Nr   r   )r	   r   r   r   r   test_C23      r  c                   C      t d)Nz2**aleph_null == aleph_1NotImplementedErrorr   r   r   r   test_C24      r  c                   C   s   dt d dks
J d S )N        r   )r   r   r   r   r   test_D1   r  r  c                   C   s   t td dksJ d S )Niz3.29683147808856e-434295)strr   evalfr   r   r   r   test_D2   r   r  c                   C   s&   t ttd djdsJ d S )N   r   l   h	a%)r   r   r   r  numaer   r   r   r   test_D3      &r  c                   C   s0   t tdddksJ ttdddksJ d S )Nr   r   r   )r:   r   r;   r   r   r   r   test_D4   s   r  c                   C   r	  )Nz6cubic_spline([1, 2, 4, 5], [1, 4, 2, 3], x)(3) == 27/8r
  r   r   r   r   test_D5   r  r  c                   C   r	  )Nz,translate sum(a[i]*x**i, (i,1,n)) to FORTRANr
  r   r   r   r   test_D6   r  r  c                   C   r	  )Nz&translate sum(a[i]*x**i, (i,1,n)) to Cr
  r   r   r   r   test_D7   r  r  c                   C   r	  )Nz.apply Horner's rule to sum(a[i]*x**i, (i,1,5))r
  r   r   r   r   test_D8   s   r  c                   C   r	  )Nztranslate D8 to FORTRANr
  r   r   r   r   test_D9  r  r  c                   C   r	  )Nztranslate D8 to Cr
  r   r   r   r   test_D10  r  r  c                   C   r	  )Nz.flops(sum(product(f[i][k], (i,1,k)), (k,1,n)))r
  r   r   r   r   test_D11     r   c                   C   sN   t ddt t dd d t ddtd  t ddt  t dd	 ks%J d S )
Nr   r   r   r   r   r   )r   r   r   r   r   r   test_D12     Nr%  c                   C   r	  )Nz:discretize a PDE: diff(f(x,t),t) == diff(diff(f(x,t),x),x)r
  r   r   r   r   test_D13  r  r'  c                   C   s&   t tdtdt  dt  ksJ d S )Nr   r   r   )r   r   r   r   r   r   test_F1&  r  r(  c                   C   s.   t ttdttd  td  d ksJ d S )Nr   r   r   r   )rK   r   r   r   r   r   r   test_F2*  s   .r)  c                   C   s8   t dt tt tdt d  tdt ksJ d S Nr   r   )r   r   r   rE   r   r   r   r   test_F3.     8r+  c                   C   s@   t dt tt tdt d tdtf tdt ksJ d S r*  )r   r   r   r   r   r   r   r   r   test_F43     @r-  c                   C   sN   t ttdd tt tt tdt ddt   ttd  ks%J d S Nr   r   )r   r   r   r   r   r   r   r   r   r   test_F58  r&  r0  c                  C   sH   dd t dD } ddidddddidddddig}| |ks"J d S )Nc                 S      g | ]}|  qS r   )copy).0pr   r   r   
<listcomp>>      ztest_F6.<locals>.<listcomp>r   r   )r   r   r   )r   r   r   )ZpartTestZpartDesiredr   r   r   test_F6=  s   &r7  c                   C   r   )Nr   r   )r   r   r   r   r   test_F7C     r8  c                   C   s   t dddddksJ d S )Nr   r   T)Zsignedirr   r   r   r   r   test_F8G  r   r:  c                   C   r   )Nr   i@  )r   r   r   r   r   test_F9K  r9  r;  c                   C   s   t tddddgksJ d S )N/B iDB iCB )listr   r   r   r   r   test_G1Q  s   r>  c                   C   r	  )Nz$find the primitive root of 191 == 19r
  r   r   r   r   test_G2U  r  r?  c                   C   r	  )Nz,(a+b)**p mod p == a**p + b**p mod p; p primer
  r   r   r   r   test_G3Z  r  r@  c                   C   sX   t td dtddksJ ttdd tttdd tddks*J d S )Nr   r      c                 S   s
   | j dkS )Nr   )qr   r   r   r   <lambda>b  s   
 ztest_G15.<locals>.<lambda>r  )	r   r   r  Zlimit_denominatorr   r=  r   cf_ccf_ir   r   r   r   test_G15`  s   $ rG  c                   C   s"   t tttdg dksJ d S )Nr   )
r   r   r   r   i$  r   r   r   r   r   )r=  r   rF  r   r   r   r   r   test_G16f     "rH  c                   C   s    t ddddg dgksJ d S )Nr   r   r   r   )r   r   r   r   )cf_pr   r   r   r   test_G17j  r   rK  c                   C   sB   t ddddggksJ tdgg tjtdd  ksJ d S )Nr   r   r   )rJ  cf_rr   rH   Halfr   r   r   r   r   test_G18n  s   *rN  c                  C   sf   t dddd} ttd|  d td|  d  }tt|ddd|  d|  d	|  d
|  gks1J d S )NsTr   positiver   r   r   r   r   r   r   )r   rF  r   r=  r   )rO  itr   r   r   test_G19s  s   $4rS  c                  C   s:   t dddd} td|  gg| t| d d  ksJ d S )NrO  TrP  r   r   )r   rL  r   rO  r   r   r   test_G20z  s   ,rU  c                  C   s6   t dddd} t| d| d d d|  ggksJ d S )NrO  TrP  r   r   )r   rJ  rT  r   r   r   	test_G20b  s   (rV  c                   C   sL   t ddt  t dtd  ksJ tddt  t dtd  ks$J d S r*  )r   r   rF   r   r   r   r   test_H1  s   $(rW  c                   C   s$   t ddt  dtd  ksJ d S )Nr   r   )r[   r   r   r   r   r   test_H2     $rX  c                   C   s   dt t d   dksJ d S Nr  r   r   r   r   r   r   test_H3  r   r\  c                  C   sP   t dt d } t| tu sJ | jd dksJ | jd dt d ks&J d S )Nr   r   r   r   r   r   r   )r   r   typerG   args)exprr   r   r   test_H4  s   r`  @   r      r   ~   r   .   r   r   <   Q   r     r   r   r   '   S   4   6   r   F   r      r   [   V   c                   C   s   t tttdks
J d S Nr   )r   p1p2r   r   r   r   r   test_H5  r  rs  c                   C   s&   t ttt ttt tksJ d S r   )r   r   rq  rB  rr  r   r   r   r   test_H6  r  rt  c                  C   s   dt  td  td  dt d  td  td   dt d  td	  td
   dt d   d } dt d  td  td  dt d  td  td   dt d	  td  td   dtd  t  }t| |t ttdksnJ d S )Nr  r   r   r   r   r   r   r   r   r   r   r   r   r   rm  r   r   r   r   P   r   r   r   yzr   rq  rr  r   r   r   test_H7  s   `drz  c                  C   s<  dt  td  td  dt d  td  td   dt d  td	  td
   dt d   d } dt d  td  td  dt d  td  td   dt d	  td  td   dtd  t  }dt d  td  td  dt d
  td  td   dt d  td  td   }t| | || t tt|ksJ d S )Nr  r   r   r   r   r   r   r   r   r   r   r   r   r   rm  r   r   r   r   ru  r   r   r   r   rv  )rq  rr  rB  r   r   r   test_H8  s   `dT$r{  c                  C   sR   dt td   t td   } dt td   dt t   }t| |t t ks'J d S )Nr   r   r   r   )r   r   r   ry  r   r   r   test_H9  s   r|  c                  C   s\   dt d  dt d   t d  t  d } t d dt d   t  d }t| |t dks,J d S )Nr   r   r   r   r   )r   r   ry  r   r   r   test_H10  s   (r}  c                   C   s    t tt tt tdksJ d S Nr   )r   rq  rB  rr  r   r   r   r   r   test_H11  r   r  c                  C   sD   t d d } t d dt   d }t| | t d t d  ks J d S )Nr   r   )r   r   )r  Zdenr   r   r   test_H12  s   $r  c                   C   s8   t ttd ttd d  ttd d ksJ d S r/  )r   r   r   r   r   r   r   test_H13  r,  r  c                  C   s   t d d } t| }|ddt   dt d   dt d   dt d   d	t d
   dt d   dt d   dt d   dt d   dt d   dt d   dt d   dt d   dt d   d	t d   dt d   dt d   dt d   dt d   t d  ksJ t|t }|ddt   dt d   d t d   dt d   d!t d
   d"t d   d#t d   d$t d   d%t d   d%t d   d$t d   d#t d   d"t d   d!t d   dt d   d t d   dt d   dt d   dt d   ksJ t|ddt  d  ksJ d S )&Nr   rm     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   )r4  ZepZdepr   r   r   test_H14  s   <















0















"r  c                   C   sF   t tdd ttd td  d D  td td  d ks!J d S )Nc                 S   s   g | ]}t | qS r   rC  )r3  rr   r   r   r5    r6  ztest_H15.<locals>.<listcomp>r   r   r   )r   rG   r   r   r   r   r   r   test_H15     Fr  c                   C   s  t td d td td  td d  td td  td  t d  td td  td  t d  td td  td  td  d  td td	  td
  td  d  td td	  td
  td  d  td td  td  td
  d  ksJ d S )Nd   r   r   r   r   r   r   rm  r   r   r   (      r   r   r   r   r   r   test_H16  s2   6""r  c                   C   s(   t tttt tt  dksJ d S r~  )r   r   r   rq  rr  r   r   r   r   test_H17     (r  c                  C   s   t dtd  dtd   dtd   dt  d } dt dt  dt dt   td dt   td dt   }| |ks@J d S )	Nr   r   r   M   r   r     r   )r   r   r   r   r   r   r   test_H18  s   4@r  c                  C   s6   t d} t| d t| d d | d ksJ d S )Nar   r   )r   rJ   r   r  r   r   r   test_H19  s   .r  c                   C   r	  )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   r   test_H20  r  r  c                   C   r	  )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   r   test_H21  r  r  c                   C   s@   t td dtd   d ddtd d td d  ksJ d S )Nr   r   r   r   r   modulusr  r   r   r   r   test_H22
     @r  c                  C   sl   t d t  d } t d t  d t d t d  t d  t d  t d  t d  d  }t| d	d
|ks4J d S )Nr   r   r   r   r   r   r   r   i  r  )r   r   r   r   r   r   r   test_H23  s   Dr  c                  C   sf   t tjjdddd} ttd dtd   d | d	t|  td |   td |   t|   ks1J d S )
NT)funcphi)aliasr   r   r   r   	extension)rS   rH   ZGoldenRatior   r   r   )r  r   r   r   test_H24  s   &r  c                  C   s8   t dtd   dtd   d } tt| | ksJ d S )Nr   r   rm  r   rw  rx  r   r   )er   r   r   test_H25  s    r  c                  C   sr   t ttdttd   dttd   d } t| ddtt dttd   dttd   d ks7J d S )Nr   r   rm  F)r   )r   r   r   r    rw  r   rx  r   )r   r   r   r   test_H26  s   0Br  c                  C   s  dt  td  td  dt d  td  td   dt d  td	  td
   dt d   d } dt d  td  td  dt d  td  td   dt d	  td  td   dtd  t  }dt td  dt d	  td	  td  dt d  td   dt t d  td   dtd    dt d  dt d  td  td   dt d  td	  td
   dt  td  td   d  }tt| | |ksJ d S )Nr  r   r   r   r   r   r   r   r   r   r   r   r   r   rm  r   r   r   r   ru  r   r   r   r  r  )r   r   hr   r   r   test_H27$  s   `dR^r  c                   C   r	  )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   r   test_H28-  r  r  c                   C   sD   t dtd  dt t  dtd   ddtt tt  ks J d S )Nr   r   rb  rm  r   r  )r   r   rw  r   r   r   r   test_H293     Dr  c                  C   s|   t td td  tdd} tt tttdd tdd t     tttdd tdd t     }|| ks<J d S )Nr   r  r   r   )r   r   rw  r   r   r   )r   answerr   r   r   test_H308  s   Pr  c                  C   sp   t d dt   d t d dt d   dt   d  } dt d d  dt d   dt d   }t| |ks6J d S )Nr   r   r   r   r   )r   rC   r  r   r   r   test_H31>  s   4(r  c                   C   r	  )Nzp[A*B*C - (A*B*C)**(-1)]*A*C*B (product                               of a non-commuting product and its inverse)r
  r   r   r   r   test_H32D  r  r  c                  C   sV   t ddd\} }}t| t||t|t||  t|t| |   dks)J d S )NzA, B, CF)commutativer   )r   r   doitr   )ABCr   r   r   test_H33J  s   
r  c                   C   s0   t ttdd tddtd   ksJ d S )Nr   r   r   r   r   )r   r   r   r   r   r   r   r   test_I1S     0r  c                   C   s&   t dtd d td ksJ d S )Nr   r   r   r   )r   r    r   r   r   r   test_I2W     &r  c                   C   s8   t tt tdt d t d  dt d ksJ d S )Nr   r   r   r  )r    r   r   r   r   r   r   r   test_I3\  r   r  c                   C   sL   t ttttt  ttd ttt   ttdt d ks$J d S )Nr   r  r   )rR   r    r   r   r   rM   r   r   r   r   r   test_I4`     Lr  c                   C   s@   t td d td d  td d  td  t dksJ d S )Nr   r   r   r   r  r   )r   r   r   r   r   r   r   test_I5d  r.  r  c                   C   r	  )NzHassuming -3*pi<x<-5*pi/2, abs(cos(x)) == -cos(x), abs(sin(x)) == -sin(x)r
  r   r   r   r   test_I6i  r  r  c                   C   8   t dt t t t td dttd   ksJ d S Nr   r   r    r   r   r   r   r   r   test_I7n  r,  r  c                   C   s0   t dt t t dt dt  d ksJ d S )Nr   r   r   )r    r   r   r   r   r   test_I8s     0r  c                   C   r  r  r  r   r   r   r   test_I9x  s   8r  c                   C   sH   t ttd d ttd  ttd ttd  d  tu s"J d S Nr   r   r   )r   r   r   r    r   r#   r   r   r   r   test_I10~     Hr  Zhangsc                   C   sL   t ttd d ttd  ttd ttd  d  tddks$J d S )Nr   r   r   r   )r$   r   r   r    r   r   r   r   r   test_I11  s   Lr  c                  C   sN   t ttd d ttd  ttd ttd  d  t} | tu s%J d S r  )r"   r   r   r    r   r#   )resr   r   r   test_I12  s   >r  c                   C   s   t dtddksJ d S )Nr   ii  )r'   r   r   r   r   r   test_J1  r   r  c                   C   s<   t tttd ttttd tttd  t ksJ d S Nr   )r"   rY   r   rw  rZ   r   r   r   r   test_J2     <r  c                   C   r	  )NzDJacobi elliptic functions: diff(dn(u,k), u) == -k**2*sn(u,k)*cn(u,k)r
  r   r   r   r   test_J3  r  r  c                   C   s"   t tdddtt ksJ d S )Nr  r   r   )r   r   r   r   r   r   r   r   test_J4  rI  r  c                   C   sB   t dtddtd tdt d  t ttd ksJ d S )Nr   r   r   r   )r&   r   r   r   r   r%   r   r   r   r   test_J5  s   Br  c                   C   s    t ddtddsJ d S )Nr   y      ?      ?z0.04157988694396212z0.24739764151330632)mpmathr*   r  r   r   r   r   r   test_J6  r   r  c                   C   s,   t ttddtd dtd  ksJ d S )Nr   r   r   )r   r*   r   r   r   r   r   r   test_J7  r   r  c                  C   sP   t tddt} ttt tt ttt d  }tt| | dks&J d S Nr   r   r   )	r*   r   rx  r   r    r   r   r   rK   )r4  rB  r   r   r   test_J8  s   $r  c                   C   s$   t dttt dt ksJ d S )Nr   r   )r*   rx  r"   r   r   r   r   test_J9  rY  r  c                  C   s^   t ddd\} }t|| dd|  tt t||  d d  t| |  d d  ks-J d S )Nzmu, nuTr   r   r   r   )r   r,   r   r   r   )ZmuZnur   r   r   test_J10  s   Nr  c                   C   sH   t tddtt tdd tdtd   dtd  d  ks"J d S )Nr   r   r   r   )r   r,   r   r   r   r   r   r   r   test_J11  r  r  c                   C   s6   t tdtdt tdt  tdt dksJ d S )Ni  r   i  i  r   )r   r1   r   r   r   r   r   test_J12  r   r  c                  C   s(   t dddd} t| dd|  ksJ d S )Nr  TF)r   negativer  )r   r1   r  r   r   r   test_J13  s   r  c                  C   s<   t tjtjgtddgtd } t| ttt ksJ d S r  )r(   rH   rM  r   rx  r)   r+   )r4  r   r   r   test_J14  s    r  c                   C   r	  )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   r   test_J15  r  r  c                   C   r	  )Nz&diff(zeta(x), x) @ x=0 == -log(2*pi)/2r
  r   r   r   r   test_J16  r  r  c                   C   sv   t ttd d ttd d  tttttd t  tddfdttdd ttttttd ks9J d S )Nr   r   r   r   r   r   )	r   r   r   r0   r   r"   r   rb   rd   r   r   r   r   test_J17  s   vr  c                   C   r	  )Nz define an antisymmetric functionr
  r   r   r   r   test_J18  r  r  c                  C   s^   t ddd\} }t| t|  t| t|  ksJ t| t|  t| t| ks-J d S )Nzz1, z2Tr   )r   r.   r   r/   )Zz1Zz2r   r   r   test_K1  s   &(r  c                   C   s4   t dtd ttdtd d   dksJ d S )Nr   r   r   r   r   )absr   r   r   r   r   r   test_K2  s   4r  c                  C   sX   t ddd\} }ttd| t|   t|   dt| d t|  | d   ks*J d S )Nza, bTrealr   r   )r   r   r  r   r   r  br   r   r   test_K3  s   Hr  c                   C   s:   t ddt  jddt dtttdd  ksJ d S )Nr   r   Tr   r   )r   r   r   r6   r   r   r   r   r   test_K4     :r  c                  C   s|   t ddd\} }t| t|  jddtd|  td|  td|   ttd|  td|  td|    ks<J d S )Nzx, yTr  r   r   )r   r   r   r   r   r    r8   r7   r   rw  r   r   r   test_K5  s   *
&r  c                   C   sx   t tt ttd  t ttt  t tt t t ks J t tt ttd  t ttt  t tks:J d S r  )r   r   rw  r  rx  r   r   r   r   test_K6  s   @8r  c                  C   sR   t dddd} tt|  ttd  tttt  }t|}|t| ks'J d S )Nrw  TFr  r  r   )r   r   r   r  rx  r   )rw  r_  Zsexprr   r   r   test_K7  s   (r  c                  C   sf   t ddd} ttd|  dt|   dksJ t dddd} ttd|  dt|   dks1J d S )Nrx  Tr   r   r   F)r   r  r   r   r   rx  r   r   r   test_K8  s   $(r  c                  C   s6   t dddd} ttd|  dt|   dksJ d S )Nrx  Tr  rQ  r   r   r  r  r   r   r   test_K9     (r  c                  C   s6   t dddd} ttd|  dt|   dksJ d S )Nrx  Tr  r   r   r  r  r   r   r   test_K10  r  r  c                   C   "   t ddtdd  dksJ d S )Ni  i;r   r   r   r   r   r   r   r   r   test_L1   rI  r  c                   C   r  )Nr<  l   ^|E!or   r   r   r  r   r   r   r   test_L2$  rI  r  c                   C   sT   t dtdd dtdd  d ddtdd dtdd    d dks(J d S )Nr   r   r   r   r   r   )r   r   r   r   r   r   test_L3(  s   Tr  c                   C   s8   t ttd ttttd   tt dksJ d S r  )r   r    r   r   r   r   r   r   test_L4,  r   r  c                   C   s6   t ttddt td  ttt dksJ d S )Nr   r   r   r   )r   r   r   r   r   r=   r   r   r   r   test_L50  r   r   c                   C   s@   t ttd td  ttt ttdidksJ d S )Nr   r   r   )r   r   r   r   r=   r"   subsr   r   r   r   test_L65  r  r  c                   C   s@   t tdtt d tdt dtt  d  dksJ d S )Nr   r   r   r   )r   r   r   r   r   r   r   r   test_L79  r.  r  c                   C   st   t dt dtt  d ttdtt d   dtt d ddtt d    dtt  d dks8J d S )Nr   r   r   r   )r   r   r   r   r   r   r   test_L8>  s   0"
r  c                  C   s\   t ddd} tdd|   t|  t|  t| t d  td td|    dks,J d S )Nrx  Tr   r   r   r   )r   r   r   rx   r    r   r  r   r   r   test_L9D  s   Pr  c                   C   s2   t tdd t dd t td d dksJ d S r*  )r   r   r   r   r   r   test_M1L  s   2r  c                  C   sD   t dtd  dtd   dt  d t} tdd | D s J d S )Nr   r  r   !   r   c                 s   s    | ]
}|j d djV  qdS )Tr   N)r   Zis_realr3  rO  r   r   r   	<genexpr>U  s    ztest_M2.<locals>.<genexpr>)r   r   allsolr   r   r   test_M2Q  s   *r  c                   C   s   t td dtd   dtd   dtd   dt  d ttd	td d	td td
 d
 ttd d  td
 d
 ttd d  td d
 ttd d  td d
 ttd d  ksfJ d S )Nr   r   r   r      r   $   r   gr(?gr(?g<n=e?)r   r   rX   r   r   r   r   r   r   test_M5X  s   r  c                   C   s2   t ttd d tdd tddD ksJ d S )Nr   r   c              	   S   s<   h | ]}t |t td d tt|t td d   qS )r   r   )r    r   r   r   r   r3  r   r   r   r   	<setcomp>_  s   < ztest_M6.<locals>.<setcomp>r   )setr   r   r   r   r   r   r   test_M6]  s   r  c                  C   s  t td dtd   dtd   dtd   dtd   d	td
   dtd   dt  d t} dd | D dtddt td
dtd
    d  dtddt td
dtd
    d  dtddt td
dtd
    d  dtddt td
dtd
    d  dtddtddtd
    d  dtddtddtd
    d  dtddtddtd
    d  dtddtddtd
    d  gksJ d S )Nr   r   r   r   \   r      r      r      r      rd  c                 S   r1  r   )r   r  r   r   r   r5  j  r6  ztest_M7.<locals>.<listcomp>r   r  )r<   r   r   r   r  r   r   r   test_M7f  s&   D
****&&&&r  c                  C   s   t d} tddd}ttd|  dt|   d | | tjttd| dt|  d td| dt|  d ks>J d S )Nr   rx  Tr   r   r   )	rf   r   r   r   rH   RealsrX   r   r   )r   rx  r   r   r   test_M8u  s
   (8r  c                   C   r	  )Nz6solveset(exp(2-x**2)-exp(-x),x) has complex solutions.r
  r   r   r   r   test_M9  r!  r  c                   C   s&   t ttt ttd gksJ d S )Nr  )r<   r   r   rA   r   r   r   r   test_M10  r  r  c                   C   s$   t tt t ttddksJ d S rZ  )r   r   rX   r   r   r   r   test_M11  s   $r   c                   C   s   t td ttd d d  tdt d  tdtd td t tdtd  ttdtd  tttdtd   tttdtd   gksMJ d S )Nr   r   r   r  r   )r<   r   r   r    r   r   r   r   r   r   r   r   test_M12  s
   0&,r!  c               	   C   sJ   t d} ttttt ttt| | t ttdd  t	j
ks#J d S )Nr   r   r   )r   r   r   r   r    rl   r`   r   r   rH   Integersr[  r   r   r   test_M13  s   Br#  c                  C   s@   t d} tttd ttt| | t td  tjksJ d S )Nr   r   r   )	r   r   r   r   rl   r`   r   rH   r"  r[  r   r   r   test_M14  s   8r$  c                     s   t d} ttttj  t fddttt	| d|  t
 t
d  tjtt	| d|  t
 t
tdd  tjttt	| d|  t
 t
tdd  tjtt	| d|  t
 t
d  tjfD sdJ d S )Nr   c                 3   s    | ]}  |V  qd S r   )Zdummy_eq)r3  r   Zgotr   r   r	    s    ztest_M15.<locals>.<genexpr>r   r   r   )r   r   r   r   rH   rM  anyrh   rl   r`   r   r"  r   r[  r   r%  r   test_M15  s   "&( r'  c                  C   s<   t d} ttttt ttt| | t tj	ksJ d S )Nr   )
r   r   r   r   r   rl   r`   r   rH   r"  r[  r   r   r   test_M16  s   4r(  c                   C   s&   t tttt ttdksJ d S r~  )r   r+   r   r6   rX   r   r   r   r   test_M17  r  r)  c                   C   s6   t tttt ttttdd d ksJ d S )Nr   r   r   )r   rm   r   r6   rX   r   r   r   r   r   test_M18  r   r*  c                   C   s*   t td ttdd  tdgksJ d S Nr   r   r   )r<   r   r   r   r   r   r   test_M19  s   *r,  c                   C   s*   t ttd d t d ttksJ d S r*  )r   r   r   ri   r   r   r   r   test_M20  s   *r-  c                   C   s$   t ttt d tdksJ d S r*  )r   r   r   rX   r   r   r   r   test_M21  rY  r.  c                   C   s<   t dtt dttdd   d ttddksJ d S )Nr   r   r   r   r   )r   r   r   r   rX   r   r   r   r   test_M22  r  r/  c                  C   sf   t ddd} t| dtd| d    t ttjtdd   ttddtdd  gks1J d S )Nr   Tr   r   r   r   r  )r   r<   r   r   rH   rM  r   rC  r   r   r   test_M23  s   2r0  c                  C   sN   t dttddt   t} tdttd   d}| d  | ks%J d S Nr   r   r   )r<   r   r   r   r   r   )solutionr  r   r   r   test_M24  s   r3  c                  C   sf   t ddd\} }}}t d}t| ||  |||   |d  t||  t||   ks1J d S )Nz:dTrQ  r   r   )r   r<   r   r   )r  r  cdr   r   r   r   test_M25  s   Jr7  c                   C   s0   t tttttt dtdgksJ d S )Nr   r   )r<   r   r   r   r   r   r   r   r   test_M26  r  r8  c               
   C   s   t ddd} t ddd}tttdtd  d | dkD tttt| t	dd | d d | | tdtdtd   t	d	  |tdtdtd   t	d	  gk W d    d S 1 sew   Y  d S )
Nr   Tr  r  r   r   r   r   g      ?)
r   r   r   r    rL   r<   r   rm   r+   r   )r   r  r   r   r   test_M27  s
   &x"r9  c                   C   sD   t dt ttd d  dtd   tttdg dks J d S )Nr   r   r   r   )Zassume)gOqg0eg?)r   r   r   rM   r  r   r   r   r   test_M28  r  r:  c                  C   s4   t d} tt| d d tjdtddksJ d S )Nr   r   r   domainr  r   )r   r   r  rH   r  rX   rC  r   r   r   test_M29     ,r=  c                   C   s4   t tdt d ttd  ttddksJ d S )Nr   r   r  )r   r  r   rX   r   r   r   r   test_M30      4r@  c                   C   sD   t dtt tt d td  tttddtddks J d S )Nr   r   r  r   )r   r  r   rn   rX   r   r   r   r   r   test_M31  s   DrB  c                   C   s>   t tdtd  ttt td d  ttddksJ d S )Nr   r   r   r  r   rn   r   rX   r   r   r   r   test_M32  s   >rD  c                   C   s8   t tdtd  ttd d  ttdddksJ d S )Nr   r   r   r  g,rC  r   r   r   r   test_M33  s   8rE  c                  C   sN   t ddd} tdt |  dt t|   dt  | tddt  ks%J d S )Nrx  Tr   r   r   r   )r   r   r   rp   rX   r  r   r   r   test_M34  s   BrF  c                  C   sL   t ddd\} }td|  d|  t|  dt   || tdks$J d S )Nx yTr  r   r   )r   r   )r   r   r   Zas_real_imagrX   r  r   r   r   test_M35$  s   <rH  c                   C   s4   t ttd tt d tttddksJ d S )Nr   r   r   )r   r   r   rX   r   r   r   r   test_M36)  rA  rI  c                   C   s`   t tt t d dt t dt  d tdt  t d gttttt d dtfks.J d S )Nr   r   r   r   r   )r   r   rw  rx  rX   r   r   r   r   test_M370  s   BrJ  c            8   1   C   s  t d\} }}t| ||gt }td|}|j\1}}}}}	}
}}}}}}}}}}}}}}}}}}}}}} }!}"}#}$}%}&}'}(})}*}+},}-}.}/}0}1}2}3}4}5g | | |  || |   | | |  || |   | | |  || |   | | || |   || |   | | |  || |   | | |  || |   | | |  || |   | | | |  || |   | | |  || |   | | | |  || |   || |   || |   ||	 |   ||	 |   ||0 |  ||0 |   | |1 |  ||1 |   | | |  || |   | |0 |  ||0 |   ||2 |  ||2 |   |d |3 | d  d| | |3 | d   |d |3 | d   || | | |  || |   | |
 |  ||
 |  | | |  || |   | | |  || |  ||1 |  ||1 |   | |2 |  ||2 |   |4 ||4 |   ||4 |  |d |4 | |   |5 ||5 |   ||5 |  |d |5 | |   | | | || |  | | | || |  | | | || |  | | | | |  || |  | | | || |  | ||| |  || |   | |
 |  ||
 |  | | | || |  || | |  || |  | | | |  || |  | | | || |  |  | | || |  | | |  || |  | |	 |  ||	 |  |  |0 | ||0 |  | |1 | ||1 |  | | | || |  | | |  || |  | |0 | ||0 |  |  |2 | ||2 |  |3 ||3 |   ||3 |  |d |3 | |   | | | || |  |  |1 | ||1 |  | |2 | ||2 |  | d |4 |d  d|  | |4 |d   |d |4 |d   |5 | |5 |  | |5 |  | d |5 ||   || |  | | || |  | | | |  || |  |  | | || |  || | |  || |  || |  || |   | | |  || |  |  |
 | ||
 |  |  | | || |  |  | | || |  | |  | | || |  | |  | | || |  |  | | || |  | | |  || |  |  | | || |  | | |  || |  | |	 |  ||	 |  | |0 | ||0 |  |  |1 | ||1 |  |  |0 | ||0 |  | |2 | ||2 |  |3 ||3 |   ||3 |  |d |3 | |   |  | | || |  | |1 | ||1 |  |  |2 | ||2 |  |4 | |4 |  | |4 |  | d |4 ||   | d |5 |d  d|  | |5 |d   |d |5 |d   ||| || | || |! ||$ | | |# | |" |' |0|1 |(|| |+ | |* ||) || |  || |   |& |. d|0 |1|2||3 |  ||3 |   |-|0|2 | |3 |  ||3 |   || | | |  | | || |  |% |1|2 |  |4 | ||4 |  | |  | ||  |  |, |1 |2| |4 | ||4 |  | |5 | ||5 |  |  |5 | ||5 |  | | | ||| ||||| ||" || |# | |0 |1|" |
 ||$ |||% |   ||% |   |0|2 | |3 |  ||3 |   |( |#|+ |	 |$ |* ||) || |& |  ||& |  |. |0d|1 |2| |4 | ||4 |  | |' | ||' |  |- |0 |2||3 |  ||3 |   |  |5 | ||5 |  |, |1|2 |  |4 | ||4 |  | |5 | ||5 |  |||| | | | | |)| | |* | | |) | |
 | | |+ |  ||, |   ||, |   |0|1 | |0 |2||3 |  ||3 |   |!|$|* |#|+ |	 | |" |'| |- |  ||- |  |0 |1| |& | |. |  ||. |  |0|1d|2 | |3 |  ||3 |   |  |4 | ||4 |  | |5 | ||5 |  |%|1 |2| |4 | ||4 |  |  |5 | ||5 |  }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|&|| |. |#|+|| | |. ||+i}7t|6||7ksJ d S )Nza, b, czk1:50r   r   r   )r   r   rI   Z	to_domainr   Zgensr   )8r  r  r5  r<  ZringZk1Zk2Zk3Zk4Zk5Zk6Zk7Zk8Zk9Zk10Zk11Zk12Zk13Zk14Zk15Zk16Zk17Zk18Zk19Zk20Zk21Zk22Zk23Zk24Zk25Zk26Zk27Zk28Zk29Zk30Zk31Zk32Zk33Zk34Zk35Zk36Zk37Zk38Zk39Zk40Zk41Zk42Zk43Zk44Zk45Zk46Zk47Zk48Zk49systemr2  r   r   r   test_M385  s  
H>0000					.


H.0>0.0H00>


     !!!!!!!!!""""""""#######$$$
$$$%% %%%%%&&&&&&') 	rL  c                  C   s  t ddd\} }}t| d | d| |  d d| d  | d|d   d d| |d  |d  d g|d|d| d	i|d|d| di|tdt |tddtdt d  | td	tdt   i|tdt |tddtdt d  | td	tdt  i|td t |tddtdt d  | td	tdt   i|td t |tddtdt d  | td	tdt  igksJ d S )
Nr   Tr   r   r   r   r  r   r  )r   r<   r   r   r   r   rw  rx  r   r   r   test_M39t  s   X><@>rN  c                   C   s   t tt tt ksJ d S r   )rQ   rL   r   r   r   r   r   test_N1  r   rO  c                  C   sP   t ddd} t| d |  d dkdu sJ t| d |  d dkdu s&J d S )Nr   Tr  r   r   r   Fr   rQ   rC  r   r   r   test_N2  s    $rQ  c                  C   s8   t ddd} tttd| t| dt| dk sJ d S )Nr   Tr  r  r   )r   rQ   rN   rO   r  rC  r   r   r   test_N3  s   ,rR  c                  C   sF   t ddd\} }td| d  d|d  k| |k|dk@ du s!J d S )NrG  Tr  r   r   rP  r  r   r   r   test_N4  s   6rS  c                  C   sP   t ddd\} }}t|| d  ||d  k| |k|dk@ |dk@ du s&J d S )Nzx y kTr  r   r   rP  )r   rw  r   r   r   r   test_N5  s   >rT  c                  C   sZ   t ddd\} }}}t|| |  |||  k| |k|dk@ |dk@ |dk@ du s+J d S )Nzx y k nTr  r   rP  )r   rw  r   r   r   r   r   test_N6  s   FrU  c                  C   s:   t ddd\} }t|dk| dk|| d k@ du sJ d S )NrG  Tr  r   r   rP  r  r   r   r   test_N7  s   *rV  c                  C   sH   t ddd\} }}tt| |t||@ | |k||k@ || k@ s"J d S )Nr   Tr  )r   rQ   rq   rM  r   r   r   test_N8  s   rW  c                  C   sH   t d} tt| d dktjdttt dddtdtdks"J d S )	Nr   r   r   r;  r  FTr   )rf   r   r  rH   r  rh   rj   r	   rC  r   r   r   test_N9  s   (
rX  c               	   C   sz   t d} | d | d  | d  | d  | d  }tt|dk tjdttt dd	d	tddd	d	tddd	d	ks;J d S )
Nr   r   r   r   r   r   r   r;  T)rf   r   r   rH   r  rh   rj   r	   )r   r4  r   r   r   test_N10  s   ($rY  c                  C   sF   t d} td| d  dktjdttt dddtdtks!J d S )Nr   r   r   r;  Tr   )rf   r   rH   r  rh   rj   r	   rC  r   r   r   test_N11  s   >rZ  c                  C   s4   t d} tt| dk tjdtddddksJ d S )Nr   r   r;  r   r   FT)rf   r   r   rH   r  rj   rC  r   r   r   test_N12  r>  r[  c                  C   s,   t d} tt| dk tjdtjksJ d S )Nr   r   r;  )rf   r   r   rH   r  rC  r   r   r   test_N13  s   $r\  c                  C   sP   t d} tt| dk | tjdttt td ddttd tddks&J d S )Nr   r   r;  r   T)	rf   r   r   rH   r  rh   rj   r	   r   rC  r   r   r   test_N14  s   *r]  c                  C   s:   t d\} }ttd|  t|d  d dk| tj d S )Nr tr   r   )r   r   r  r    rH   r  r  tr   r   r   test_N15  s   .ra  c                  C   sB   t d\} }t| d t|d d  t|d  dk | tj d S )Nr^  r   r   r   )r   r   r    r   rH   r  r_  r   r   r   test_N16  s   6rb  c                   C   s6   t tt dktt dk fttftttk ksJ d S r~  )r   r   rw  r  r   r   r   r   test_N17  s   6rc  c                  C   s:   t dt ddt f} tt| | jtdksJ d S )Nr   r   r   r   )r   r   r   r   dotHMr   r   r   test_O1  s   $rh  c                   C   s.   t dt dt dgdgdggksJ d S )N)r   r   r  )r   r   r   r   r   r   )r   crossr   r   r   r   test_O2  s   rj  c                   C   r	  NzfThe vector module has no way of representing
        vectors symbolically (without respect to a basis)r
  r   r   r   r   test_O3  r!  rl  c                  C   s   ddl m} m} | d}| }| \}}}| \}}}	||| |	  ||| |	 d   ||d |	d    }
||
 d|d  |d  |	 d| |	d   | || |  d| |d  |	d  ||	  |  kspJ d S )Nr   )
CoordSys3DDelrB   r   r   r   )Zsympy.vectorrm  rn  Zbase_vectorsZbase_scalarsri  r  )rm  rn  rB   Zdelopr   r   r   r   rw  rx  Fr   r   r   test_O4  s   8rrp  c                   C   r	  rk  r
  r   r   r   r   test_O5  r!  rq  c               	   C   s   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sFJ d S )N)r   r   r   )r   r   r   )r   r   r   r   r   r   r   r   ?   ii  ia  ii  iY)r   r   r   )Lr   r   r   test_O10  s"   "





rt  c                   C   s.   t dddd dt ddddgksJ d S )Nr   c                 S   s   ||  S r   r   )r   r   r   r   r   rD         ztest_P1.<locals>.<lambda>r  r   r   )r   Zdiagonalr   r   r   r   test_P1  s   
rv  c                  C   sN   t g dg dg dg} | d | d | t ddgddggks%J d S )N)r   r   r   )r   r   r   )r   r   r   r   r   r   r   )r   Zrow_delZcol_delrf  r   r   r   test_P2$  s   


rw  c               
      s   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d t  }|t g dg dg dg dg dg dg dgkskJ d S )N)r   r   r   r   )rb  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                      s   t  S r   )r   r   Zrowsr   r   rD  :  ru  ztest_P3.<locals>.<lambda>)r   r   r   )ir$  r   rb  r  )iiir   r   ry  )r   r   r   r   r|  r~  )rb  r   r   r  r}  r$  )r   r  r  r   r|  )r   rx  r   ry  ir{  )r   r   Tr~   
ValueError)r  A11A12ZA21ZA221ZA222A22r  r   rz  r   test_P3,  s0   
r  c                   C   r	  )Nz*Block matrix diagonalization not supportedr
  r   r   r   r   test_P4F  r  r  c                  C   s8   t ddgddgg} | d t ddgddggksJ d S )Nr   r   r   r   r   r   r   r   rf  r   r   r   test_P5K  s   r  c                  C   sd   t ttttgtt ttgg} | tdt tt tt gtttt ggks0J d S r  )r   r    r   r   r"   rf  r   r   r   test_P6R  s   r  c                  C   s   t ttggtt g dg dg t g dg dg  } | t ttd  tdt d   tdt d	  td
t d   tdt d  tdt d   ggksQJ d S )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   rw  rx  rf  r   r   r   test_P7Y  s   
<r  c                  C   s6   t ddt gdt dgg} | jtjddksJ d S )Nr   r   r  r   )ordr   )r   r   normrH   ZInfinityrf  r   r   r   test_P8b  s   
r  c                  C   s   t ddd\} }}t| ||  d| d| gd| || |  d|  gd| d|  || |  gg}t|d| d |d  |d  t| t| t|  ksRJ d S )Na b cT)Znonzeror   Zfror   )r   r   r   r  r  r  r  r5  rg  r   r   r   test_P9h  s   Fr  c                  C   s^   t dddt  gtddt  dgg} | jt dtddt  gddt  dggks-J d S )Nr   r   r   r   r   r   )r   r   r   re  rf  r   r   r   test_P10p  s   r  c                   C   sP   t ttgdtt gg dtd d  t tdgdt tt gg ks&J d S Nr   r   r  )r   r   rw  invr   r   r   r   test_P11y  s   
r  c                  C   sh   t ttgdtt ggd} tt| }t|| | ddt|t tt t gdtggddks2J d S )Nr   ZADJF)Zevaluater  )r   r   rw  r  r   tuplero   )rg  r5  r   r   r   test_P11_workaround  s   r  c                  C   s~   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 | |j gttt|jggks=J d S )Nr  r  r  r  )r   r   r   r   r   r   )r  r  r  r  r   r   r   test_P12  s   "r  c                  C   s   t dtd td gtd td dt  d td dt  d gtd td d dtd  dt  d gg} |  \}}}t|t g dtd dd	gtd td dggksXJ t|t dtd td gd	d
td gd	d	td ggksvJ d S )Nr   r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   ZLUdecompositionr   )rg  rs  U_r   r   r   test_P13  s   ,(r  c                  C   sX   t g dg dg dg dg} |  \}}|t g dg dg dg dgks*J d S )	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   r  )r   r   r   r   r   )r   r   r   r   r   )r   Zrref)rg  r   r  r   r   r   test_P14  s   
r  c                  C   s.   t g dg dg dg} |  dksJ d S )N)r  r   r   r   )r   r   r   r   )r   r   r   r?  r   )r   rankrf  r   r   r   test_P15  s
   r  c                  C   s@   t dtd dgdtd dtd gg} |  dksJ d S )Nr   r   r   r  r   r   )r   r   r  rf  r   r   r   test_P16  s   r  c                  C   st   t ddd} ttd|  td|  gddt| d   t|  ddt| d   t|  gg}| dks8J d S )Nr`  Tr  r   r   )r   r   r   r    r  )r`  rg  r   r   r   test_P17  s   6r  c                  C   sZ   t g dg dg dg} |  t dgdgdgdggt dgdgdgdgggks+J d S )	N)r   r   r   r   )r   r   r   r   )r  r   r  r   r   r   r   r   r  )r   Z	nullspacerf  r   r   r   test_P18  s   r  c               	   C   sF  t d} tg d| tttg| d td td td g| d td td td gg}| | d td  t | d td  t  | d t td   | d t td   | d td  t  | d t td   | d td  t  | d td  t  | d t td   | d t td   | d td  t  | d t td   | td  td   | td  td   | td  td   | td  td   | td  td   | td  td   td td  t  td t td   td td  t  td t td   ttd  td   ttd  td   ks!J d S )Nw)r   r   r   r   r   r   )r   r   r   rw  rx  det)r  rg  r   r   r   test_P19  s^   
Tr  c                   C   r	  )Nz'Matrix minimal polynomial not supportedr
  r   r   r   r   test_P20  r  r  c                  C   sP   t g dg dg dg} | t td dtd   dt  d ks&J d S )N)r   r  r?  )r   r   r   )r   r  r"  r   r   r   r   )r   Zcharpolyr   Zas_exprrf  r   r   r   test_P21  s
   6r  c                  C   s2   d} dt  t|  }| t  d | iksJ d S )Nr  r   )r   r   	eigenvals)r6  rg  r   r   r   test_P22  s   r  c                  C   sb   t g dg dg dg dg dg} |  tddtddtd	dtd
dtddiks/J d S )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  rH   rf  r   r   r   test_P23  s   r  c                  C   s   t g dg dg dg dg dg dg dg dg} |  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 d S )Nc     @  r#  r   r    q   r  r  r#  r  r  r  r  =   1   r   rj  r  r  r  r  r   ry  ;   r~  r#  r  r  r        r  r  r  r  ry  r  r  r  r  r  r#  r   r  r  r  c   qr   r  rj  r~  r  r  r  r  0r   z10*sqrt(10405)z100*sqrt(26) + 510Z1000r   z-100*sqrt(26) + 510z-10*sqrt(10405)Z1020r  rf  r   r   r   test_P24  s$   r  c                  C   s   t tg dg dg dg dg dg dg dg dg} t| jd	d
}tg d}t||D ]\}}t|| dk s?J q1d S )Nr  r  r  r  r  r  r  r  T)Zmultiple)gMcdr  gyP9?     @@r  gx5F27ߏ@g     @gMcd@g-q=)rB   r   sortedr  zipr  )ZMFZev_1Zev_2r   rw  r   r   r   test_P25  s    
	r  c                  C   s   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dtddtddiksFJ d S )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   r  r  r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r  r  )	r   r   r   r   r   r   r   r   r   F)Zerror_when_incompletez-1/2 - sqrt(3)*I/2r   z-1/2 + sqrt(3)*I/2)r   r   r  rH   )Za0Za1Za2a3Za4rg  r   r   r   test_P26(  s    
	r  c                  C   s   t d} t| ddddgg ddd| ddgddd| dgg dg}| | dtg dtg dtg dgfd	t d	tdd	t d
 ddd	ggfd	t d	tdd	t d
 ddd	ggfgks_J d S )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   Z
eigenvectsr   )r  rg  r   r   r   test_P278  s(   


r  c                   C   r	  NzQGeneralized eigenvectors not supported https://github.com/sympy/sympy/issues/5293r
  r   r   r   r   test_P28O  r  r  c                   C   r	  r  r
  r   r   r   r   test_P29U  r  r  c                  C   sd   t g dg dg dg dg dg} |  \}}|t g dg dg dg d	g d
gks0J d S )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   r   )r   r   r   r   r   r  )r   r   r   r   r   r  )r   Zjordan_form)rg  r  Jr   r   r   test_P30[  s   
r  c                   C   r	  )Nz!Smith normal form not implementedr
  r   r   r   r   test_P31i  r  r  c                  C   sd   t ddgddgg} t| t t ttd t td gttd ttd ggks0J d S )Nr   r   r   )r   r   rewriter    r   rL   r   rf  r   r   r   test_P32n  s   *r  c                  C   sf  t d\} }tg ddddd|  gg ddd|  d| d  dgg}t|| t tdd	| d
t||   |   d| |  dt||    dt||   |  d|   gdd
t||   d d|  t||   d|   dt||   gddt||   |  d|   d	t||   d
 t||  |  gddt||   d|  t||   t||  ggksJ d S )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   r   )r  r`  rg  r   r   r   test_P33u  s   R>>.r  c                  C   s  t d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 gddddt|t|gdddddt|ggksJ d S )Nr  Tr  r   r   r   )r   r   r   r    r  r   r   r   test_P34  s    r  c                  C   s:   t d tg dg dg dg } t| tdksJ d S )Nr   )r   r   r   )r   r   r   )r   r   r   r   )r   r   r   r   rf  r   r   r   test_P35  s
   r  c                  C   s8   t ddgddgg} t| t ddgddggksJ d S )Nr   r   r   r   r   r   )r   r   rf  r   r   r   test_P36  s   r  c                  C   sN   t g dg dg dg} | tj t dtdddgg dg dgks%J d S )N)r   r   r   r   r   r   )r   r   r   r   r   r   )r   rH   rM  r   rf  r   r   r   test_P37  s   r  c                  C   s(   t g dg dg dg} | tj  d S )Nr  )r   r   r   )r   rH   rM  rf  r   r   r   test_P38  s
   r  c                   C   r	  )zQ
    M=Matrix([
        [1, 1],
        [2, 2],
        [3, 3]])
    M.SVD()
    z,Singular value decomposition not implementedr
  r   r   r   r   test_P39  s   	r  c                  C   st   t ddd\} }t| t| | t| g}|t| |gtt||  t| gt|| t| ggks8J d S )Nr^  Tr  )r   r   r    r   Zjacobian)r  r`  rg  r   r   r   test_P40  s
   &r  c                  C   st   t ddd\} }t| d t| | |ftdt| d|  t| gd|  t| | d  t| ggks8J d S )Nr^  Tr  r   )r   r\   r   r   r    r_  r   r   r   test_P41  s   4 r  c                   C   s&   t ttttgt dksJ d S rp  )r]   r    r   r   r   r   r   r   r   test_P42  r  r  c                  C   sx   dd } t ddd\}}t|t| |t| g}| |||gtt|| t| gt||t| ggks:J d S )Nc                    s   t  fdd|D jS )Nc                    s   g | ]}  |jqS r   )r"   r  r3  vrf  r   r   r5        z3test_P43.<locals>.__my_jacobian.<locals>.<listcomp>)r   r  )rg  Yr   rf  r   __my_jacobian  r  ztest_P43.<locals>.__my_jacobianr^  Tr  )r   r   r    r   )r  r  r`  rg  r   r   r   test_P43  s   "r  c                  C   s|   dd } t ddd\}}| |d t| ||ftdt| d| t| gd| t| |d  t| ggks<J d S )Nc                    s,   t fdd|D  t  fdd|D S )Nc                    s   g | ]}t  |qS r   )r"   r  r   r   r   r5    s    z2test_P44.<locals>.__my_hessian.<locals>.<listcomp>c                    s   g | ]} j |qS r   )r  r"   r  )Vr   r   r5    r  r  )r   r  r   )r  r   r   __my_hessian  s   ztest_P44.<locals>.__my_hessianr^  Tr  r   )r   r   r   r    )r  r  r`  r   r   r   test_P44  s    r  c                  C   s.   dd } | t tttgt dksJ d S )Nc                    s(   t  fddtdt D }| S )Nc                    s   g | ]}t  jt|qS r   )r   r  r"   r   r  r  r   r   r5    s    z4test_P45.<locals>.__my_wronskian.<locals>.<listcomp>r   )r   r   lenr  )r  r  rg  r   r  r   __my_wronskian  s    z test_P45.<locals>.__my_wronskianr   )r    r   r   r   )r  r   r   r   test_P45  s   &r  c                  C   sp   t dddd\} }}td|d}t|| df t||df |d|d f|  d | d|d f}|  td)	Nzi j nTrP  xnr   r   r   zUnknown result)r   r   r   r  r  )r   r   r   r  Smr   r   r   test_R1  s
   @r  c            	      C   s   t d\} }t dddd\}}td|d}td|d}t||df | ||df   | d	 |d|d f}t|| }t||}t||f| |ftjd
 d S )Nzm bzi nTrP  r  r   ynr   r   r;  )r   r   r   r"   r   rH   r  )	r   r  r   r   r  r  r   f1f2r   r   r   test_R2  s   4

r  c                  C   sn   t dddd\} }d| td|  |d  }t||dtf}| }| }|d|  td|  |  ks5J d S )Nn kTrP  r  r   r   )r   r   r   r	   r  r   )r   r   skr  r  T2r   r   r   test_R3	  s   "r  c                   C   r	  )NzIndefinite sum not supportedr
  r   r   r   r   test_R4  s   r  c                  C   s   t dddd\} }}}}d| t| | | | t|| ||  t||  ||   }t||dtf}| }|t| | | t| t| t|  ksOJ d S )Nz	a b c n kTrP  r  r   )r   r   r   r	   r  r   )r  r  r5  r   r   r  r  r  r   r   r   test_R5+  s   4r   c                  C   sx   t dddd\} }td| d d}t||df ||d df  |d| d f}| |d  || d df  ks:J d S )	Nr  TrP  gnr   r   r   )r   r   )r   r   r   r  )r   r   r  r  r   r   r   test_R65  s   ,*r  c                  C   sR   t dddd\} }t|d |d| f }| | d | d d  d ks'J d S )Nr  TrP  r   r   r   r   )r   r   r  r   )r   r   r  r   r   r   test_R7<  s   (r  c                  C   s`   t dddd\} }t|d t| | |d| f}| }| | | d  d| d   ks.J d S Nr  TrP  r   r   )r   r   r   r  r   r   r   r  r  r   r   r   test_R8A  s   (r  c                  C   s`   t dddd\} }tt| |d | |d| d f}|  d| d  d | d  ks.J d S Nr  TrP  r   r   )r   r   r   r  r   )r   r   r  r   r   r   test_R9I  s   ",r  c                  C   s   t dddd\} }}}tt| |t|||  |d|f}| }| t}|t||  t|t||  |   ks>J |t||  |tksLJ |t}|t||  |ks\J d S )Nzn m r kTrP  r   )r   r   r   r  r   r  r   )r   r   r  r   r  r  r  ZT3r   r   r   test_R10O  s   $,
r	  c                  C   sT   t dddd\} }t| |t| }t||d| f}| }|td|  ks(J d S )Nr  TrP  r   r   )r   r   r^   r   r  )r   r   r  r  r  r   r   r   test_R11]  s
   r
  c                  C   sR   t dddd\} }tt|d |d| f}| }|t| t| d  ks'J d S )Nr  TrP  r   r   r   )r   r   r^   r  r  r   r   r   test_R12h  s    r  c                  C   sz   t dddd\} }tt|t |d| f}| }| ttd d ttd|  d  d dttd    ks;J d S r  )r   r   r   r   r  r   r!   r    r  r   r   r   test_R13p  s   Hr  c                  C   sb   t dddd\} }ttd| d t |d| f}| }| t| t d tt ks/J d S r  )r   r   r   r   r  r   r  r   r   r   test_R14x  s    (r  c                  C   sX   t dddd\} }tt| | ||dt| d f}| }| t| d ks*J d S )Nr  TrP  r   r   r   )r   r   r   r:   r  r   r^   r  r   r   r   test_R15  s   "r  c                  C   sV   t dddd} td| d  d| d   | dtf}| tdtd d  ks)J d S )Nr   TrP  r   r   r   r   )r   r   r	   r  rx   r   )r   r  r   r   r   test_R16  s   $$r  c                  C   sJ   t dddd} tttd| d  d| d   | dtfd dk s#J d S )	Nr   TrP  r   r   r   g3@V瞯<)r   r  floatr   r	   r   r   r   r   test_R17  s   (r  c                  C   sd   t dddd} tdd|  | d   | dtf}| }| tdd  d td d  ks0J d S )Nr   TrP  r   r   r   )r   r   r	   r  r   r   r   r   r  r  r   r   r   test_R18  s    .r  c                  C   sx   t dddd} tdd|  d d|  d  d|  d   | dtf}| }| td d tdt d	  ks:J d S )
Nr   TrP  r   r   r   r   r   r   )r   r   r	   r  r   r   r   r   r  r   r   r   test_R19  s   4.r  c                  C   st   t dddd\} }tt| d| |dtf}| }| d| d  tt|  d  d d| d  d  ks8J d S )Nr  TrP  r   r   r   r   )r   r   r   r	   r  r   r    r   r  r   r   r   test_R20  s   @r  c                  C   s^   t dddd} tdt| | d  t| t| d    | dtf}| }| dks-J d S )Nr   TrP  r   )r   r   r   r	   r  r   r  r   r   r   test_R21  s   4r  c                  C   s   t dddd\} }ttt| t|d t| d|    tt |  tt | |   | d| tf|dtf}| }|dttd td  dtd   dt t  d  ksYJ d S )	Nr  TrP  r   r   r  r   r   )r   r   r   r   rw  r	   r  r   r  r   r   r   test_R23  s   &
@r  c                  C   sR   t dddd\} }tt|d| d  |d| f| dtf}| td ks'J d S )Nzm kTrP  r   r   )r   r   r   r	   r  r   )r   r   r  r   r   r   test_R24  s   (r  c                  C   sR   t dddd} tt| d | ddf}|  dtd td  d ks'J d S )	Nr   TrP  r   r   r   i  i  )r   r   r   r  r   r   r   )r   Prr   r   r   test_S1  s   ,r  c                  C   s6   t dddd\} }t||d| f t| ksJ d S Nr  TrP  r   )r   r   r  r   r   r   r   r   r   test_S2  s   $r  c                  C   sJ   t dddd\} }tt| |d| f  t| | d  d  ks#J d S r  )r   r   r   r  r   r  r   r   r   test_S3  s   8r   c                  C   sB   t dddd\} }tdd|  |d| d f  | ksJ d S r  )r   r   r  r   r  r   r   r   test_S4  s   0r!  c                  C   sd   t dddd\} }td| d d|  |d| f  t| tj ttt| d   ks0J d S r  )	r   r   r  Z	gammasimpr   rH   rM  r   r   r  r   r   r   test_S5  s   & r"  c                  C   sr   t dddd\} }ttd dt t|t |    d |d| d f  td|   d td d  ks7J d S r  )r   r   r   r    r   r  r   r  r   r   r   test_S6  s   :r#  c                  C   sT   t dddd} t| d d | d d  | dtf}| }| tddks(J d S )Nr   TrP  r   r   r   )r   r   r	   r  r   r   r   r  r  r   r   r   test_S7  s   $r%  c                  C   sN   t dddd} tddd|  d   | dtf}| }| dt ks%J d S )Nr   TrP  r   r   )r   r   r	   r  r   r   r$  r   r   r   test_S8  s    r&  c                  C   sV   t dddd} tdd| d  d|  d   | dtf}| }| tdks)J d S )Nr   TrP  r   r  r   )r   r   r	   r  r   r   r$  r   r   r   test_S9  s   (r'  c                  C   s^   t dddd} t| | d  d t | | d  d t  | dtf}| }| dks-J d S )Nr   TrP  r   r   r  )r   r   r   r	   r  r   r$  r   r   r   test_S10	  s   4r(  c                   C   sJ   t ddt  t tttksJ t dtt td  tdtjks#J d S r1  )r$   r   r	   rL   r    r   rH   rM  r   r   r   r   test_T1  s    *r)  c                   C   s,   t dt dt  dt  ttdksJ d S )Nr   r   r   )r$   r   r	   r   r   r   r   test_T2  r   r*  c                   C   s,   t tttttt  ttdksJ d S rp  )r$   r   r   r   r	   r   r   r   r   test_T3  r   r+  c                   C   sZ   t tttt  tt tdtd  td    tt t tttd ks+J d S )Nr   r   r   )r$   r   r   r	   r   r   r   r   test_T4  s   4r,  c                   C   sr   t ttt tttt td  d  tttd dttdtd  tt    tttddks7J d S )Nr   r   r   )r$   r   r   r   r	   r   r   r   r   r   test_T5$  s   2r-  c                   C   s0   t dt ttdt   tttdksJ d S Nr   r  )r$   r   r   r	   r   r   r   r   r   test_T6)  r  r/  c                   C   s(   t dt ttd dt   tt d S rp  )r$   r   r   r	   r   r   r   r   test_T7-  r  r0  c                  C   sL   t dddd\} }tt||  t| t|  t|  |tdks$J d S )Nza zTr  r   )r   r$   r   r   r   r	   )r  rx  r   r   r   test_T81  s   :r1  c                  C   s>   t dddd\} }ttd|fd| | |tt| ksJ d S )Nzz kTr  r   )r   )r   r$   r(   r	   r   )rx  r   r   r   r   test_T96  s   ,r2  c                   C   sD   t ttdtd   tdtdt dtt  tdtfks J d S r.  )r$   rx   r   r   r:   r	   r   r   r   r   test_T10>  s   Dr3  c                  C   sN   t dddd\} }t| t ttdt|  |d| f  | tttks%J d S r  )r   r$   r   r   r	   r   r  r   r   r   test_T11C  s   <r4  c                  C   sT   t ddd\} }t| tt|d  |d| f dt| d    | ddks(J d S )Nx tTr  r   r   r   )r   r$   r   r   )r   r`  r   r   r   test_T12J  s   0r6  c                  C   sL   t ddd} t| t|  | dddt| t|  | dddgdd	gks$J d S )
Nr   Tr  r   -dir+r  r   )r   r$   r  rC  r   r   r   test_T13Q  s   r;  c                  C   s6   t ddd} ttt|  | dddtd ksJ d S )Nr   Tr  r   r:  r8  r   )r   r$   r6   r   r   rC  r   r   r   test_T14W  s   *r<  c                  C   s*   t ddd} tt| | t| ksJ d S )Nr   Tr  )r   r"   r  r_   rC  r   r   r   test_U1\  s   r=  c                  C   sR   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 d S )Nr   r  r   r`   r   ra   r"   r  r   r   r   test_U2a  s   "0r?  c                  C   sl   t tttd d tdkftd tdkf} t tt| tt}|tdtd  ks,J |ddks4J d S r+  r>  )r   r  r   r   r   test_U3f  s   ,r@  c                  C   sD   t dddd} t ddd}t||  || }|tt| ks J d S )Nr   TrP  r   r  )r   r"   r  r   )r   r   r6  r   r   r   test_U4m  s   rA  c                  C   s   t d} ttt| t| tt| | df ttt| t| dftt| | d   }tt| | d|ks<J | |ksDJ d S )Nr`  r   )r   rd   r   r   r"   r  )r`  Zansr   r   r   test_U5u  s   &*rB  c                  C   sj   t d} tttt| tttf}|tttttttt t| tt| tt  ks3J d S )Nr  )r-   r   r   rw  r   r   r"   rd   )r  r  r   r   r   test_U6  s
   2rC  c                  C   s"   t ddd\} }tt| | d S )Nzp tTr  )r   r"   r   )r4  r`  r   r   r   test_U7  s   rD  c                  C   sb   t ddd\} }t| | |  }t|| || | t| |  d | t| |  d  ks/J d S )NrG  Tr  r   )r   r    rk   r   )r   rw  eqr   r   r   test_U8  s   BrF  c                  C   s   t ddd\} }tt| || tt| || }|t| |t| d |d  }|  }|| | ttt| | | | d |d   d ksJJ d S )NrG  Tr  r   )	r   r"   r   r  r   r  r   rb   rd   )r   rw  Zsus2Zs3r   r   r   test_U9  s
   
 ":	rH  c                   C   s:   t td d td d td   tdtddksJ d S )Nr   r   r   r   r  r  )rc   rx  r   r   r   r   r   test_U10  s   :rI  c                   C   s   t r   r
  r   r   r   r   test_U11  s   rJ  c                   C   r	  )Nz0External diff of differential form not supportedr
  r   r   r   r   test_U12  s   rK  c                   C   s8   t td t d tddtdd  d d ksJ d S )Nr   r   r  r   r   r   )r   r   r   r   r   r   r   test_U13  r   rL  c                   C   r	  )Nz$minimize(), maximize() not supportedr
  r   r   r   r   test_U14  s   rM  c                   C   r	  )NzRminimize() not supported and also solve does not support multivariate inequalitiesr
  r   r   r   r   test_U15  r  rN  c                   C   r	  )Nz[minimize() not supported in SymPy and also solve does not support multivariate inequalitiesr
  r   r   r   r   test_U16  r  rO  c                   C   r	  )Nz;Linear programming, symbolic simplex not supported in SymPyr
  r   r   r   r   test_U17  r  rP  c                  C   sJ   t ddd} tt| | t| d  d | dkf| d d dfks#J d S )Nr   Tr  r   r   )r   r   r  ra   rC  r   r   r   test_V1  s   >rQ  c                   C   sR   t tt tdk fttdkftttd  d tdk ftd d dfks'J d S )Nr   r   T)r   ra   r   r   r   r   r   test_V2  s    &rR  c                   C   s6   t dtd d  t  dtd d  ksJ d S )Nr   r   r   )r   r   r"   r   r   r   r   r   test_V3     6rS  c                   C   s:   t dt tddt   ttdt td ksJ d S )Nr   r   r   )r   r   r   r=   r   r   r   r   r   test_V4  r  rU  c                   C   sj   t dt d d dt d tdd  t ddt  dtd   ddt d tdd   ks3J d S )	Nr   r   r   r   r   iru  -   )r   r   r   r   r   r   r   r   test_V5  s   .0rW  c                   C   s|   t ddttt  dtt t    ttdtdttt  td tdttt  td   dt  ks<J d S )Nr   r   r   r   rm  )r   r   r   r   r   r   r   r   r   r   test_V6  s
   06rX  c                  C   sb   t ttd ttd  } |  ttdd ttd dtt   dtt d  ks/J d S )Nr   r   r  r   )r   r7   r   r8   r   r   r9   r1r   r   r   test_V7	  s   Fr[  c                   C   r	  )Nz'Integrate with assumption not supportedr
  r   r   r   r   
test_V8_V9		  s   r\  c                   C   sL   t dddtt  dtt   ttttd tdd d ks$J d S )Nr   r   r   r   )r   r    r   r   r   r   r   r   r   r   r   test_V10	  r  r]  c                  C   sp   t dddtt  dtt   t} t| }t|ddtttd d ttd d  tdd ks6J d S )Nr   r   r   T)Zforcer   r   )	r   r    r   r   r   re   r   r   r   rZ  r2r   r   r   test_V11	  s
   &
,r`  c                  C   sF   t dddtt  dtt   t} | dttd d  ks!J d S )Nr   r   r   r   r  r   )r   r    r   r   r   rY  r   r   r   test_V12%	  s   & ra  c                  C   sj   t dddtt  dtt   t} |  dtd ttddttd  d  d  d ks3J d S )Nr   r   r   r   r   r   )r   r    r   r   r   r   r6   r   rY  r   r   r   test_V13*	  s   &Drb  c                  C   sr   t tttd td  t} |  ttttd td   tttt   tttt   dt  ks7J d S r  )r   r   r  r   rw  r   rY  r   r   r   test_V142	  s    rc  c                  C   sR   t tttt  t} t| tt td td  ttt   d  dks'J d S Nr   r   )r   r   r>   rw  r   rY  r   r   r   test_V15;	  s   <re  c                   C   s^   t tdt tdt  ttdt tdt  d tdt tdt  d  ks-J d S )Nr   r   r   r   r   )r   r    r   ru   r   rv   r   r   r   r   test_V16@	  s   ^rf  c                  C   s   t tttttt tttttt  ttd ttd   t} t| tttt tttt  d  dks?J d S rd  )r   r"   r   r   r   r   rY  r   r   r   test_V17E	  s   8rg  c                   C   s,   t dtt  ttd td fdksJ d S )Nr   r   )r   r   rw  r   r   r   r   test_W1M	  s   ,rh  c                   C   s0   t dtt d  ttd td ftu sJ d S r/  )r   r   rw  r
   r   r   r   r   test_W2U	  s   0ri  c                   C   s2   t ttdt  d tddftddksJ d S Nr   r   r   r   r   r   r   r   r   r   r   r   r   test_W3`	  s   2rl  c                   C   sB   t ttdt  d tddfdtd d tdd ksJ d S )Nr   r   r   r   r   rk  r   r   r   r   test_W4h	     Brm  c                   C   sB   t ttdt  d tddfdtd d tdd ksJ d S )Nr   r   r   r   r   r   rk  r   r   r   r   test_W5o	  rn  ro  c                   C   sH   t tddtdt   d tttdd t d ftdks"J d S )Nr   r  r   )r   r   r    r   r   r   r   r   r   r   test_W6v	  s   Hrp  c                  C   sV   t dddd} ttttd | d   tt tf}| tt|   |  ks)J d S )Nr  Tr  r   )r   r   r    r   r	   r   r   r   )r  rZ  r   r   r   test_W7}	  s   &"rq  c                   C   r	  )Nz1Integrate with assumption 0 < a < 1 not supportedr
  r   r   r   r   test_W8	  s   rr  c                  C   s   t dtd  dt td  td  td   tt tf} |  }|dt ttd d d ttdd d   ks>J d S )	Nr   r   r   r   r   r   r   g      ?)r   r   r	   r  r   r   r^  r   r   r   test_W9	  s   :>rs  c                  C   sl   t tdt td  td   tt tf} |  }|dt tdd d  tttdd  d ks4J d S )Nr   r   r   r   g      ?)r   r   r	   r  r   r   r?   r   r^  r   r   r   test_W10	  s   *:rt  c                   C   s@   t tdtd  dtd   tddftdtd  ksJ d S r  )r   r   r   r   r   r   r   r   test_W11	  s   &ru  c                  C   s   t dddd} t ddd}ttt|  td  d| t   tt tf}| tt| t|d |   | tdd  ks@J d S )Nr4  Tr  rB  r  r   r   )	r   r   r   r   r	   r   r   r   r   )r4  rB  rZ  r   r   r   test_W12	  s   0:rv  c                  C   sH   t dtt ddt   ttdt  tddf} | dt ks"J d S )Nr   r   r   )r   r   r   r%   rY  r   r   r   test_W13	  s   4rw  c                   C   s6   t ttt tdt t  tt tfdksJ d S rd  )r   r   r   r   r   r	   r   r   r   r   test_W14	  rT  rx  c                   C   s:   t ttttdt t  tddftddksJ d S )Nr   r   r   r   )r   r   r   r   r    r   r   r   r   r   r   test_W15	  s   :ry  c                   C   s>   t dt d tdt tdt tddftddksJ d S )Nr   r   r   r  r  #   )r   r   r2   r   r   r   r   r   test_W16	  s
    r{  c                  C   sb   t dddd\} }tt|  t td|t  tdtfd|t| d |d  d   ks/J d S )Na bTr  r   r   r   )r   r   r   r   r*   r	   r   r  r   r   r   test_W17	  s   r}  c                   C   s2   t tdtt d tdtfddt  ksJ d S rj  )r   r*   r   r	   r   r   r   r   r   test_W18	  s   2r~  c                   C   sB   t tttddtdt   tdtftdd d ksJ d S )Nr   r   r   r   )r   ru   r   r*   r   r	   r    r   r   r   r   test_W19	  rn  r  c                   C   s   t td tddtd   tddftd  d tdd tdd  td  d dtd  tdd  d	 td d
  ksBJ d S )Nr   r   r   r   r  r   l   r   gUUUUUU'@r   )r   r   r3   r   r   rx   r   r   r   r   r   test_W20	  s
   $"4r  c                	   C   s>   t tttd tddtd   tddfd dk sJ d S )Nr   r   r   r   g5?r  )r  rB   r   r   r3   r   r   r   r   test_W21	  s
   *r  c                  C   s   t ddd\} }tttdttdktdkfd}t|| t|  | d|ftd|dk fttd| ttd| dfksAJ d S )Nzt uTr  r   r   )r   Tr   )	r   r`   r   ra   rN   r   r    r   rP   )r`  urO  r   r   r   test_W22	  s   "
 r  c                  C   sh   t dddd\} }ttttd td   t| |ftt tf}|t t |  t|  ks2J d S Nr|  Tr  r   )r   r   r   rw  r	   collectr   cancel)r  r  rZ  r   r   r   test_W23	  s   .(r  c                  C   s`   t dddd\} }ttttd td   tt tft| |f}|tt|  |  ks.J d S r  )r   r   r   rw  r	   r  r   )r  r  r_  r   r   r   	test_W23b	  s   . r  c                  C   sp   t rtd tddd\} }ttt| d |d  | ddf|ddf}|tdtd d   dks6J d S )	NToo slow for travis.rG  Tr  r   r   r   r   )r}   r|   r   r   r   r=   r   )r   rw  rZ  r   r   r   test_W24	  s
   ,(r  c                  C   s   t rtd tddd\} }}tt| t| tdt| d t|d  t|d    |dtd f}t||dtd f}|t|  d   dksMJ d S )Nr  za x yTr  r   r   r   )r}   r|   r   r   r   r   r   r   )r  r   rw  Zi1Zi2r   r   r   test_W25
  s   : r  c                  C   sJ   t ddd\} }ttt|| d  |ddf| ddftdd	ks#J d S )
NrG  Tr  r   r   r  r   rd  r   )r   r   r  r   r  r   r   r   test_W26
  s   r  c               
   C   sn   t d\} }}tttdtd|dt|   t|   ftd|dt|    ftd| f| | | d ks5J d S )Nr  r   r   r   )r   r   rx  r   rw  )r  r  r5  r   r   r   test_W27
  s   &r  c                  C   s   t ddd\} }tdtd| | d   | dddd	| d
  d|d
   d| d  d|d    | d d|d    d t| d  ksFJ d S )Nv cTr  r   r   r   r   Zx0r   r   r   r   r   r   r   r4   r   r5   )r  r5  r   r   r   test_X1 
  s   "Rr  c                  C   sv   t ddd\} }tdtd| | d   | ddd}d|d  j| ddd| d  |d  d t| d  ks9J d S )	Nr  Tr  r   r   r   r   r  r  )r  r5  s1r   r   r   test_X2&
  s   $Br  c                  C   sl   t t tt   } tt }|ttd d  dtd  d  ttd  ks.J | |ks4J d S )Nr   r   r   r   r   )r   r   r4   r    r   r5   )r  rG  r   r   r   test_X3,
  s   4r  c                  C   sf   t ttt  } | td  d td d  ttd  ks!J t tttt  | ks1J d S )Nr   r   r      )r   r   r   r4   r5   )r  r   r   r   test_X43
  s   .$r  c                  C   sb   t d} tddd\}}}}ttt|t tt|t  t| |t tdtf t|dd d S )Nr  za b c dTr  r   r   r  )	r-   r   r4   r"   r   r   r   r   rw  )r  r  r  r5  r6  r   r   r   test_X59
  s
   6
r  c                  C   s|   t dddd\} }tt| | t t| t t|t   tdddtd |  | d ||  d   ttd  ks<J d S )Nr|  F)r  Zscalarr   r   r  r   )r   r4   r   r   r5   r  r   r   r   test_X6N
  s   2,r  c                   C   st   t dtttd   tddtd ddt   tdd td d  td d	  td
 d  ttd  ks8J d S )Nr   r   r   r   r   r   i  r   i v  r   i u )r4   r   r   r   r5   r   r   r   r   test_X7V
  s   .



r  c               	   C   s   t ddd} ttt| | td d dddt| ttdd   | ttdd  tdd d	  | ttdd  td
d d  t| ttdd  d | ttdd f ksZJ d S )Nr   Tr  r   r   r   r  r   r   r      )r   r4   r   r@   r   r   r5   rC  r   r   r   test_X8^
  s   8(r  c                   C   st   t tt tddddttt  td ttd  d  td ttd  d  ttd ttd   ks8J d S )Nr   r   r  r   r   r   r   )r4   r   r   r5   r   r   r   r   test_X9i
  s
   8r  c                  C   sp   t d\} }ttt| tt| |  | dddtt|t|  | t| t|  t| d  ks6J d S Nzz wr   r   r  r   r4   r   r7   r8   r5   rx  r  r   r   r   test_X10n
  s   &2r  c                  C   sl   t d\} }ttt| t| |  | dddtt|t|  | t| t|  t| d  ks4J d S r  r  r  r   r   r   test_X11t
  s   "2r  c                  C   s   t ddd\} }}tt||  t| |  |ddd|d |  t| d| d|  |d  d  t|d d   ks>J d S )Nza b xTr  r   r   r  )r   r4   r   r   r5   )r  r  r   r   r   r   test_X12z
  s   $>r  c                   C   sF   t tdtd  d ttddtdt tdt ttf ks!J d S )Nr   r   r  )r4   r   r   r	   r5   r   r   r   r   test_X13
  r  r  c                   C   s\   t dddt   tdt t tttkdddtttt  tdt ttf ks,J d S )Nr   r   r[  )r4   r   r   r   r	   r   r   r5   r   r   r   r   test_X14
  s
   
$r  z*https://github.com/sympy/sympy/issues/7164c                  C   s   t ddd\} }tt| | || tf}t|| tddd| d  d| d	   d
| d   d
|   t| d | tf ks>J d S )Nr5  Tr  r   r  r   r   r   r   r   r   )r   r   r   r	   r4   r5   )r   r`  Ze1r   r   r   test_X15
  s
   <r  c                   C   sx   t ttt tt ddddtt d d  ttd td t  td td   ttd   td  tt ks:J d S )Nr   r   r  r   r   r   )r4   r    r   rw  r5   r   r   r   r   test_X16
  s   ,>r  c                   C   sh   t tttt tdt ddt d   tdt  tdt   ttdt   tdtfks2J d S )Nr  r   r   )	r   r   r   r   r   r   r'   r   r	   r   r   r   r   test_X17
  s   Jr  c                  C   sf   t d} ttt tt tdtj|   ttdd|  t	  t|   t
|  | dtfks1J d S )Nr   r   r   r   r   )r   r   r   r   r   r   rH   rM  r   r   r   r	   r  r   r   r   test_X18
  s   >r  c                   C   r	  )NzTSolve using series not supported. Inverse Taylor series expansion also not supportedr
  r   r   r   r   test_X19
  s   r  c                   C   r	  )Nz'Symbolic Pade approximant not supportedr
  r   r   r   r   test_X20
  s   r  c                  C   s   t ddd} t dddd}ttt|  | f}|jjdksJ |jj|jjd ddks.J |jj|jjd |d|  t d|  | t	|t t |   ksRJ d	S )
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 )`.
    r4  Tr4  r   )rQ  r   r   r   r  N)
r   r   r   ZanZformulaZbnr  Z	variablesr   r   )r4  r   rO  r   r   r   test_X21
  s    *r  c                   C   r	  )NzFourier series not supportedr
  r   r   r   r   test_X22  s   r  c                  C   sd   t dddd} t ddd}t d}tt|d |  | |\}}}|||d |d d   ks0J d S )	Nr`  Tr  r  r  rO  r   r   )r   r   r    r`  r  rO  ro  r  r   r   r   test_Y1"  s
   $r  c                  C   s^   t dddd} t ddd}t d}t||d |d d   || }|t| | |  ks-J d S )	Nr`  Tr  r  r  rO  r   r   )r   r   r    )r`  r  rO  r   r   r   r   test_Y2*  s
    r  c                  C   sl   t dddd} t ddd}t d}tt||  t||   | |\}}}|||d d|d    ks4J d S )	Nr`  Tr  r  r  rO  r   r   )r   r   r7   r8   r  r   r   r   test_Y32  s
   &$r  c                  C   sX   t dddd} t d}ttdt|  | |\}}}|dtdt|  | ks*J d S )Nr`  Tr  rO  r   r   r  )r   r   rw   r   r   )r`  rO  ro  r  r   r   r   test_Y4:  s   $r  c                  C   s   t dddd} t d}td}tt|| | d||  dt| d t| d    | |\}}}||d t|| | | | t|| | | dt|  |  dtd	|  |  ks]J d S )
Nr`  Tr  rO  rw  r   r   r   r   )r   r-   r   r"   rt   r   r   )r`  rO  rw  ro  r  r   r   r   
test_Y5_Y6A  s&   	

r  c               	   C   s   t dddd} t ddd}t d}tddtd	t t| t|   tdtf  | |\}}}|dtd	t t| t |  | tdtf d|  ksMJ d S )
Nr`  Tr  r  r  rO  r   r   r  )r   r   r   r   rt   r	   r   )r`  r  rO  ro  r  r   r   r   test_Y7[  s   
Br  c                   C   s   t dttttksJ d S rp  )r   r   rx  r0   r   r   r   r   test_Y8k  s   r  c                   C   sF   t tdtd  ttttttd  td  d  d ks!J d S )Nr  r   r   r   )r   r   r   rx  r   r   r   r   r   r   test_Y9p  s   $r  c                   C   sp   t tttdtt  tt dtd  td  d dtd  td  dtd  td   d  ks6J d S )	Nr  r#  r   r  r   r   r  rf  )r   r  r   r   rx  r  r   r   r   r   r   test_Y10u  s   "Br  z*https://github.com/sympy/sympy/issues/7181c                  C   sB   t d\} }tdd|   | |\}}}|ttt|  ksJ d S )Nx sr   )r   r   r   r!   r   rO  ro  r  r   r   r   test_Y11z  s   r  c                  C   sd   t d\} }ttd| | d  | |\}}}|d|d   t|d  t| d d  ks0J d S )Nr  r   r   r   )r   r   r*   r   r  r   r   r   test_Y12  s    8r  c                   C   r	  Nzz-transform not supportedr
  r   r   r   r   test_Y13  r!  r  c                   C   r	  r  r
  r   r   r   r   test_Y14  r!  r  c                  C   sp   t d} t| td d| td   | t d | t| dd| dti td ttd   d ks6J d S )Nr  r   r   r   )r-   r   r   r   r   r  r   r   r   test_Z1  s   .r  c                  C   sf   t d} t| td| td  d| td    | t| dd| ddidt  dt  ks1J d S )Nr  r   r   r   r   r   r   )r-   r   r   r  r   r   r   test_Z2  s   Br  c                  C   s   t d} tdd tdd  t tdd tdd   tdd tdd  t tdd tdd    }t| t| td | td   | t| dd| ddi}||ks\J d S )Nr  r   r   r   r   )r-   rH   r   r   r   )r  Zexpectedr  r   r   r   test_Z3  s   22<r  c               	   C   s  t d} td}t| td| |td   |td   d|t   | td  |d|td    d|td    | td   d  | t| dd| ddd|  |d  d|  i}||td  |td  d|  d  td |d   d|  t |d d |d    dksJ d S )Nr  r5  r   r   r   r   )r-   r   r   r   )r  r5  rO  r   r   r   test_Z4  s(   >.0$r  c                  C   s   t d\} }ttttddtt  tdt  }t|tt}tt|j}|t|tdt  | td  tdt   ksAJ ttt	|tt}t
|d|df}|t| ||  ||| }|t tdt  d tdt d  ks|J td)NzC1 C2r   r   r   r   z1ODE solving with initial conditions not supported)r   rd   r   r   r   r   r`   Zrhsr    r"   r<   r  r  )ZC1ZC2rE  r  Zf0r  Z
const_dictresultr   r   r   test_Z5  s   (4 .r  c                  C   s   t dddd} t d}tt| | ddt|   td|   }t|| |\}}}||d tt| | | dtt| | |  d|d d   ksJJ d S )Nr`  Tr  rO  r   r   )r   rd   r   r   r   r   )r`  rO  rE  ro  r  r   r   r   test_Z6  s   (r  ([  __doc__Zsympyr   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   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   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rF  rU   rJ  rV   rE  rW   rL  rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   r  Z%sympy.functions.combinatorial.numbersrs   Z'sympy.functions.special.delta_functionsrt   Z'sympy.functions.special.error_functionsru   rv   rw   Z&sympy.functions.special.zeta_functionsrx   Zsympy.testing.pytestry   rz   r{   r|   r}   r~   Zsympy.utilities.iterablesr   r   r   Zsympy.matricesr   r   r   Z&sympy.matrices.expressions.blockmatrixr   r   Zsympy.matrices.expressionsr   r   Zsympy.physics.quantumr   Zsympy.assumptionsr   Zsympy.polys.ringsr   Zsympy.polys.fieldsr   Zsympy.polys.solversr   Zsympy.concreter   Zsympy.concrete.productsr   Zsympy.integralsr   Zsympy.integrals.transformsr   r   r   r   r   Zsympy.solvers.recurrr   Zsympy.solvers.solvesetr   r   r   Zsympy.solvers.oder   Zsympy.core.relationalr   	itertoolsr   r   Zsympy.series.formalr   Zsympy.series.fourierr   Zsympy.calculus.utilr   r   r   rw  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-  r0  r7  r8  r:  r;  r>  r?  r@  rG  rH  rK  rN  rS  rU  rV  rW  rX  r\  r`  rq  rr  rB  rs  rt  rz  r{  r|  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r#  r$  r'  r(  r)  r*  r,  r-  r.  r/  r0  r3  r7  r8  r9  r:  r=  r@  rB  rD  rE  rF  rH  rI  rJ  rL  rN  rO  rQ  rR  rS  rT  rU  rV  rW  rX  rY  rZ  r[  r\  r]  ra  rb  rc  rh  rj  rl  rp  rq  rt  rv  rw  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r	  r
  r  r  r  r  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  r1  r2  r3  r4  r6  r;  r<  r=  r?  r@  rA  rB  rC  rD  rF  rH  rI  rJ  rK  rL  rM  rN  rO  rP  rQ  rR  rS  rU  rW  rX  r[  r\  r]  r`  ra  rb  rc  re  rf  rg  rh  ri  rl  rm  ro  rp  rq  rr  rs  rt  ru  rv  rw  rx  ry  r{  r}  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r   <module>   s     












	













BN>


















	



	
		

?			

			
			
		
	
		

 
