
    MZds                    l	   d dl mZ d dlmZ d dlmZ d dlmZmZm	Z	m
Z
 d dlmZ d dlmZmZmZmZmZmZ d dlmZmZmZmZ d dlmZ d d	lmZ d d
lmZmZm Z  d dl!m"Z" d dl#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z) d dl*m+Z+m,Z,m-Z- d dl.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4 d dl5m6Z6m7Z7m8Z8 d dl9m:Z: d dl;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZI d dlJmKZKmLZLmMZMmNZN d dlOmPZP d dlQmRZS d dlTmUZU d dlVmWZW d dlXmYZY d dlZm[Z[ d dl\m]Z] d dl^m_Z_m`Z` d dlambZbmcZcmdZdmeZemfZfmgZgmhZh d dlimjZj d dlkmlZl d dlmmnZn d dlompZpmqZqmrZrmsZsmtZtmuZu d d lvmwZx d d!lymzZz d d"l{m|Z| d d#l}m~Z~mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ d d$lmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ d% Zd& Zd' Zeud(        Zd) Zd* Zd+ Zd, Zepd-        Zd. Zd/ Zd0 Zd1 Zd2 Zd3 Zd4 Zd5 Zd6 Zd7 Zepd8        Zesd9        Zd: Zd; Zd< Zd= Zd> Zd? Zd@ ZdA ZdB ZdC ZdD ZdE ZdF ZdG ZdH ZdI ZdJ ZdK ZdL ZdM ZdN ZdO ZdP ZdQ ZdR ZdS ZdT ZdU ZeudV        ZdW ZdX ZdY ZdZ Zepd[        Zepd\        Zepd]        Zeud^        Zeud_        Zd` Zda Zepdb        Zdc Zdd Zde Zdf Zdg Zdh Zdi Zdj Zdk Zdl Zdm Zdn Zdo Zdp Zdq Zdr Zds Zepdt        Zdu Zdv Zdw Zdx Zdy Zdz Z epd{        Zd| Zd} Zd~ Zd Zd Zd Zd Zd Z	d Z
d Zd Zd Zd Zd Z etd      d        Z etd      d        Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0d Z1d Z2d Z3d Z4d Z5d Z6d Z7d Z8d Z9d Z:d Z;d Z<d Z=d Z>d Z?d Z@d ZAepd        ZBd ZCd ZDd ZEepd        ZFepdÄ        ZGdĄ ZHdń ZIdƄ ZJepdǄ        ZKdȄ ZLdɄ ZMdʄ ZNd˄ ZOd̄ ZPd̈́ ZQd΄ ZRdτ ZSdЄ ZTdф ZUd҄ ZVdӄ ZWdԄ ZXdՄ ZYdք ZZdׄ Z[d؄ Z\dل Z]dڄ Z^dۄ Z_d܄ Z`d݄ Zadބ Zbd߄ Zcd Zdd Zed Zfd Zgd Zhd Zid Zjd Zky)    isclose)Add)Tuple)FunctionLambdanfloatdiff)Mod)EIRationaloopiInteger)EqGtNeGe)S)ordered)DummySymbolsymbolssympify)Absargimresign	conjugate)LambertWexplog)HyperbolicFunctionsinhtanhcoshsechcoth)sqrtMinMax)	Piecewise)TrigonometricFunctionacosacotacscasecasinatanatan2coscotcscsecsintan)erferfcerfcinverfinv)And)MutableDenseMatrix)ImmutableDenseMatrix)Poly)CRootOf)Contains)ConditionSet)ImageSetRange)
Complement	FiniteSetIntersectionIntervalUnionimageset
ProductSet)simplify)Indexed)numbered_symbols)XFAILraisesskipslowSKIP_both_exp_pow)verify_numerically)cm)solve)solveset_realdomain_checksolveset_complexlinear_eq_to_matrixlinsolve_is_function_class_equationinvert_realinvert_complexsolvesetsolve_decompositionsubstitutionnonlinsolvesolvify_is_finite_with_finite_vars
_transolve_is_exponential_solve_exponential_is_logarithmic_is_lambert_solve_logarithm_term_factors_is_modularNonlinearError)abcdefghijklmnqrtwxyzc                     t        |       t        t        fv rt        d t	        | |      D              S | |k(  xs  | j
                  |      S )Nc              3   :   K   | ]  \  }}t        ||        y wN)dumeq).0r}   r~   s      C/usr/lib/python3/dist-packages/sympy/solvers/tests/test_solveset.py	<genexpr>zdumeq.<locals>.<genexpr>9   s     541a5A;5   )typelisttupleallzipdummy_eq)r}   r~   s     r   r   r   7   sB    Aw4-53q!95556"ZQZZ]"    c                     t        |       } t        |      }t        | t              sJ t        |t              sJ t        |       t        |      k(  sJ t	        d t        | |      D              sJ y)z2Test solutions with floats from solveset are closec              3   :   K   | ]  \  }}t        ||        y wr   r   r   v1v2s      r   r   z"assert_close_ss.<locals>.<genexpr>D   s     =62rwr2=r   N)r   
isinstancerL   lenr   r   )sol1sol2s     r   assert_close_ssr   =   sd    4=D4=DdI&&&dI&&&t9D	!!!=St_====r   c                 @   t        |       } t        |      }t        | t              sJ t        |t              sJ t        |       t        |      k(  sJ t	        | |      D ]<  \  }}t        |      t        |      k(  sJ t        d t	        ||      D              r<J  y)z5Test solutions with floats from nonlinsolve are closec              3   :   K   | ]  \  }}t        ||        y wr   r   r   s      r   r   z"assert_close_nl.<locals>.<genexpr>P   s     =vr272r?=r   N)r   r   rL   r   r   r   )r   r   s1s2s       r   assert_close_nlr   G   s    4=D4=DdI&&&dI&&&t9D	!!!dD/ >B2w#b'!!!=R====>r   c                  N   t        dd      t        j                  fd} t        t	              t
               | t        t        t
                          fk(  sJ t        dd      t        dd      }t        dz         t        dz
        fk(  sJ t        dz        t        dz        fk(  sJ t        t	                    t        t                    fk(  sJ t        t	        dz              t        t              dz        fk(  sJ t        t	        dz               t        t              dz
        fk(  sJ t        t	              dz          | t        t        dz
                    fk(  sJ t        t	              dz        t        t        dz              fk(  sJ t        t                    t        t	                    fk(  sJ t        t        dz              t        t	              dz        fk(  sJ t        t        dz               t        t	              dz
        fk(  sJ t        t                    t               fk(  sJ t        d	z        t        t              t        d	      z        fk(  sJ t        d	t	              z         | t        t        t              t        d	      z                    fk(  sJ t        d	z        t        t              t                     fk(  sJ t        t        j                  z        t        d	z        fk(  sJ t        t        fd
       t        t        z        t        dt        z  z        fk(  sJ t        t        z  t               t        j                  fk(  sJ t        t!        d      z  d      t        d      fk(  sJ t        dz  d      dz  t        d      fk(  sJ t        t        fd       t        dz  z         dz  z   t              fk(  sJ dz  z   }t        dz
   dz
        }t        t        dz  z   dz               ||fk(  sJ t#        t        t%                    t'        t)        ||t        z  d|z  t+              z  z         t        j,                        f      sJ t#        t        t%        t	                          t'        t)        |t        d|z  t+              z  |t        z  z               t        j,                        f      sJ t#        t        t/                    t'        t)        ||t        z  d|z  t1              z  z         t        j,                        f      sJ t#        t        t/        t	                          t'        t)        |t        d|z  t1              z  |t        z  z               t        j,                        f      sJ t#        t        t3                    t5        t'        t)        |d	|z  t        z  t7              z         t        j,                        t'        t)        |d	|z  t        z  t7              z
        t        j,                              f      sJ t#        t        t3        t	                          t5        t'        t)        |t        d	|z  t        z  t7              z               t        j,                        t'        t)        |t        d	|z  t        z  t7              z
              t        j,                              f      sJ t#        t        t9                    t5        t'        t)        |d	|z  t        z  t;              z         t        j,                        t'        t)        |d	|z  t        z  t;              z
        t        j,                              f      sJ t#        t        t9        t	                          t5        t'        t)        |t        d	|z  t        z  t;              z               t        j,                        t'        t)        |t        d	|z  t        z  t;              z
              t        j,                              f      sJ t#        t        t=                    t'        t)        ||t        z  t?              z         t        j,                        f      sJ t#        t        t=        t	                          t'        t)        |t        |t        z  t?              z               t        j,                        f      sJ t#        t        tA                    t'        t)        ||t        z  tC              z         t        j,                        f      sJ t#        t        tA        t	                          t'        t)        |t        |t        z  tC              z               t        j,                        f      sJ t#        t        t=        t=                          t=              t'        t)        ||t        z  t?              z         t        j,                        f      sJ t        dd      t        t        z        t        dt        z  z        fk(  sJ y )Nr   Trealc                     t        ||       S r   )rM   )r   ss     r   irealztest_invert_real.<locals>.irealW   s    Aq!!r   r   positiver         c                      t                 S r   )rd   r   s   r   <lambda>z"test_invert_real.<locals>.<lambda>t   s    {1a3 r      g      ?i  d         ?c                  :    t        t        j                         S r   )rd   r   Oner   r   s   r   r   z"test_invert_real.<locals>.<lambda>|   s    {155!Q7 r      )"r   r   Realsrd   r$   r   rL   r%   r   r,   HalfrV   
ValueErrorr   r   EmptySetr   r   r<   rP   r   r5   Integersr:   r3   r8   rO   r1   r;   r4   r=   r6   r9   r2   )r   r   lhsbase_valuesr   r   s       @@r   test_invert_realr   S   s	   sA77 " s1vq!$E)CF2C,D(EEEEsT"AsAq1ua#9QU+;'<<<<qsAq!a1q5)9%::::s1vq!$Ic!f,=(>>>>s1Q3xA&1iA
.C*DDDDs1q5z1a(Q	#a&1*0E,FFFFs1vz1a(QiAE
6K0L,MMMMs1vaxA&1iAE
.C*DDDDs1vq!$Ic!f,=(>>>>s1Q3xA&1iA
.C*DDDDs1q5z1a(Q	#a&1*0E,FFFFs1vq!$Ia!,<(====q!tQ"q)CF3q6M*B&CCCCq#a&y!Q'AuYs3q6#a&=?Q5R/S+TTTTq!tQ"q)DGd1gX*F&GGGGq!&&y!Q'AyA+????
:34 q"ua#9Q2Y+?'@@@@q"uqb!$AJJ777q(3-'q1a35HHHHq#vq!$C1(>>>>
:78q"uqy!Q'ArEAIy|+DDDD
R%!)CQUQBF+Ks1b519q=)1a0S+4FFFFSVQ*	
HVAqtrAgd1go56

CDF F F SQ[!Q/	
HVAsB747?QrT#9:;QZZHIK K K SVQ*	
HVAqtrAgd1go56

CDF F F SQ[!Q/	
HVAsB747?QrT#9:;QZZHIK K K SVQ*	
E(6!QqSVd1g%56

C1Q3r6DG#34ajjAC 	DE E E SQ[!Q/	
E(6!S1R$q')9%:;QZZH3qs2vQ'7#891::FH 	IJ J J SVQ*	
E(6!QqSVd1g%56

C1Q3r6DG#34ajjAC 	DE E E SQ[!Q/	
E(6!S1R$q')9%:;QZZH3qs2vQ'7#891::FH 	IJ J J SVQ*	
HVAqtd1g~.

;<> > > SQ[!Q/	
HVAs1R4$q'>23QZZ@AC C C SVQ*	
HVAqtd1g~.

;<> > > SQ[!Q/	
HVAs1R4$q'>23QZZ@AC C C SQ[!Q/	Q&AbD47N3QZZ@AC C C 	sT"Aq"ua#9Q2Y+?'@@@@r   c                     t        t        dz   t        t              t        t        t        dz
        fk(  sJ t        t        dz  t        t              t        t        t        dz        fk(  sJ t        t        dz
  dz  dt              t        t        d      fk(  sJ t	        t        t        t              t        t              t        t        t        t        t        dt        z  t        z  t        t              z   z  t        t        t                    z         t        j                        f      sJ t        t        t              t        t              t        t        t        t                    fk(  sJ t!        t"        d        t!        t"        d        t!        t"        d        t        t%        t              dt              t        t        d      fk7  sJ y )Nr   r   r   r   c                  ,    t        dt        t              S Nr   )rd   r   r    r   r   r   z%test_invert_complex.<locals>.<lambda>   s    {1a3 r   c                  4    t        t        t        t              S r   re   r   r   r   r   r   z%test_invert_complex.<locals>.<lambda>   s    ~aA6 r   c                  ,    t        t        t        d      S r   r   r   r   r   r   z%test_invert_complex.<locals>.<lambda>   s    ~aA6 r   )re   r   r   rL   r   r$   rP   r   r   r   r   r   r%   r   r   r   rV   r   r'   r   r   r   test_invert_complexr      sN   !a%A&1iA.>*????!A#q!$Ia!e,<(====1q51*a+9Q</@@@@A1-	
HVAq!B$q&3q6/2SQ[@A1::NOQ Q Q #a&!Q'AyQ/@+AAAA
:34
:67
:67 $q'1a(Q	!,====r   c                      t        dddt        dz   z  dz  z   z  t        d      du sJ t        t        dz  t        d      du sJ t        t        t        t              du sJ t        dt        t              du sJ y )Nr   r   r   Fr   T)r_   r   r   r   r   r   test_domain_checkr      sx    11Q3!|+,a4===1a#t+++1b!U***1b!U***r   c                      t        dt        z  dz
  t        t        j                        t        j                  k(  sJ t        dt        z  dz
  t        t        j                        t        d      k(  sJ y )Nr   r   r   )rf   r   r   r   r   rL   r   r   r   test_issue_11536r      sP    AqD3J177+qzz999AqD1Ha)Yq\999r   c                     t         dz  t        dz  z   dz  t         dz  t        dz  z   dz  z   ddt         dz  z  t        dz  z   t        dz  z   z  z
  }  | j                  t               } | j                  t              } | j                  t              }t	        |||gt         t        t        g      }t        |      dk\  rt        |      dk  sJ y )Nr         )r   r   r   r
   ri   r   )rz   fxfyfzsols        r   test_issue_17479r      s    	
A1qAqD1a4K!++a1a4!Q$A1E.FFA	B	B	B
r2rlQ1I
.Cs8q=SX^++^r   c                  X   t        d      \  } }}| dz  |dz  z   dz  | dz  |dz  z   dz  z   dd| dz  z  |dz  z   |dz  z   z  z
  }t        ||       }t        ||      }t        ||      }t        |||g| ||g      }|D ]*  \  }}	}
| |||	||
it        fd|||fD              dk(  r*J  y )Nx, y, zr   c              3   \   K   | ]#  }|j                        j                          % y wr   )subsrR   )r   _rx   s     r   r   z#test_issue_18449.<locals>.<genexpr>   s"     @aQVVAY'')@s   ),)r   r   r   )r   r
   ri   r   )r   r   r   rz   r   r   r   r   xsyszsrx   s              @r   test_issue_18449r      s    i GAq!	
A1qAqD1a4K!++a1a4!Q$A1E.FFA	aB	aB	aB
r2rlQ1I
.C NRAr1b!@BB<@@IMMMNr   c                  <   dt         z
  dz  t        t         dz
        dz
  dz  z   } t        | t         t        j                        t        d      k(  sJ t        t               dz
  dz  t        t               dz   dz  z   dt         dz  z  z
  t        d      z   } t        | t         t        j                        t        t        j                  t        dt        d      z  dz         dz  z
  t        j                  t        dt        d      z  dz         dz  z         k(  sJ y )Nr   r         )r   r,   rf   r   r   rL   r   rz   s    r   test_issue_21047r      s    	
Q
d1q5kAo))AAq!''"il222	aQ$q'!)a'1a4/$q'9AAq!''"i	aQi!m$Q&&aQi!m1DQ1F(F'H H H Hr   c                  L   t        t        t        t              t              du sJ t        t        t        t              dz
  t              du sJ t        t        t        t              t	        t              z   t              du sJ t        t        t        t              t	        t              z   t
        z
  t              du sJ t        t        t	        t              t        t              z  t	        t              z   t              du sJ t        t        t	        t              t        t        t
        z         z  t	        t              z   t              du sJ t        t        t	        t              t        t        t
        z        z  t	        t              z   t              du sJ t        t        t
        t        t              z  dz
  t              du sJ t        t        t        t              dz  t	        t              z   dz
  t              du sJ t        t        t        t              t        z   t              du sJ t        t        t        t        dz        t              du sJ t        t        t        t        dz        t	        t              z   t              du sJ t        t        t        t              t	        t              z  t              du sJ t        t        t        t	        t                    t	        t              z   t              du sJ t        t        t        t              t              du sJ t        t        t        t              dz
  t              du sJ t        t        t        t              t        t              z   t              du sJ t        t        t        t              t        t              z   t
        z
  t              du sJ t        t        t        t              t        t              z  t        t              z   t              du sJ t        t        t        t              t        t        t
        z         z  t        t              z   t              du sJ t        t        t        t              t        t        t
        z        z  t        t              z   t              du sJ t        t        t
        t        t              z  dz
  t              du sJ t        t        t        t              dz  t        t              z   dz
  t              du sJ t        t        t        t              t        z   t              du sJ t        t        t        t        dz        t              du sJ t        t        t        t        dz        t        t              z   t              du sJ t        t        t        t              t        t              z  t              du sJ t        t        t        t        t                    t        t              z   t              du sJ y )NTr   r   F)	rc   r0   r=   r   r<   ru   r&   r(   r'   r   r   r   test_is_function_class_equationr      s   &'<'*1vq259: : :&'<'*1vz169=> > >&'<'*1vA;>BC C C&'<'*1vA':A?BFG G G&'<'*1vc!f}s1v'=qBEIJ J J&'<'*1vc!a%j'83q6'A1FIMN N N&'<'*1vc!A#hQ'?DGKL L L&'<'(Qx!|Q8;?@ @ @&'<'*1vqy3q6'9A'=qBEIJ J J&'<'*1vz169>? ? ?&'<'*1a4y!58=> > >&'<'*1a4y3q6'91>AFG G G&'<'*1vs1v~q:=BC C C&'<'*3q6{SV';Q@CHI I I&'9'+Aw36:; ; ;&'9'+Aw{A7:>? ? ?&'9'+Awa'8!=@DE E E&'9'+Awa'81'<aADHI I I&'9'+AwtAwa'@!EHLM M M&'9'+AwtAE{':T!W'DaILPQ Q Q&'9'+AwtAaCy'847'BAGJNO O O&'9'(ay1}a9<@A A A&'9'+AwzDG';a'?DGKL L L&'9'+Aw{A7:?@ @ @&'9'+AqDz169>? ? ?&'9'+AqDzDG';Q@CHI I I&'9'+AwQ'7<?DE E E&'9'+DG}tAw'>CFKL L Lr   c                  "    t        t        d        t        dd       t         d      t        j
                  k(  sJ t         dz
  d      t               k(  sJ t         t              t        j
                  k(  sJ t          dz        t        j
                  k(  sJ t        t         fd       t         t              t        j
                  k(  sJ t        t         fd       t        t         fd	       t        t         fd
       y )Nc                  ,    t        t        gt              S r   )r^   r   r   r   r   r   z$test_garbage_input.<locals>.<lambda>9  s    }aS!4 r   r   Tr   r   r   c                      t         g       S r   )r`   r   s   r   r   z$test_garbage_input.<locals>.<lambda>@  s    /Q7 r   c                  (    t         t        f       S r   )rf   r   r   s   r   r   z$test_garbage_input.<locals>.<lambda>C  s    xA2 r   c                  >    t         dz   t        j                        S r   )rf   r   r   r   s   r   r   z$test_garbage_input.<locals>.<lambda>D  s    xAqww7 r   c                  $    t         dz    d      S Nr   r   )rf   r   s   r   r   z$test_garbage_input.<locals>.<lambda>E  s    xAq!4 r   )	rV   r   r   r^   r   r   rL   r   r`   r   s   @r   test_garbage_inputr   8  s    
:45sAA!**,,,Q"il222B1::---AqD!QZZ///
:78Ar"ajj000
:23
:78
:45r   c                     t        t        t        z  t        z   t	        t              dz
  z  t              t        t        d      ht        t         t        z  ht        j                              k(  sJ t        dd      } t        dd      }t        | t        z  |z   t	        t              dz
  z  t              t        | | z  t        d            k(  sJ t        dt        z  dz   dt	        t              z   z  t              t        t        d	            k(  sJ t        t        t        t              z  t              t        j                  u sJ y )
Nr   anzT)nonzerobbr   r      )r^   ru   r   rv   r$   rO   r%   rM   r   r   r   rL   r   )r   r   s     r   test_solve_mulr   H  s   !A#'CFQJ/3s1vhqbdVQWW567 7 7

%C	4	 B#a%"*s1vz2A62#c'3q6"# # #!A#'AAJ/3y27GGGG3q61%333r   c                     t        t        t              dz
  t              t        t	        d            k(  sJ t        t	        t              dz
  t              t        t        d            k(  sJ t        dt        dz   z  t              t               k(  sJ t        ddt        z
  z  t              t               k(  sJ t        t
        t        t        t        t        z        z  z
  t              t        t        j                  t        t        t	        t
        t        z        z              k(  sJ t        dt        z  dz
  t              t        dt	        d      t	        d      z  z         k(  sJ y )Nr   r   
   r   r   )r^   r$   r   rL   r%   r   rv   ru   rM   r   r   r   r   r   test_solve_invertr   S  s   Q!Q'9SV+<<<<Q!Q'9SV+<<<<QUQ'9;666QUQ'9;666Qs1Q3xZ+|	1S1X:&0( ( ( ( AA&)AAs1v4E*FFFFr   c                  ,   t        t        t              t        j                  z
  t              t        t        t        j                              k(  sJ t        t        t              dz
  t              t        t        d            k(  sJ t        t        t              t        j                  z
  t              t        t        t        j                              k(  sJ t        t        t              dz
  t              t        t        d            k(  sJ y Nr   )
r^   r>   r   r   r   rL   rA   r?   r   r@   r   r   r   test_errorinversesr   a  s    Q!&&!,&.!" " "Q*#a&  a155!,'!%%.!" " "a+ya/AAAAr   c                  L   t        dd      } t        dd      }t        d| z  dz
  |       t        t        dd            k(  sJ t        | dz  dz
  |       t        t        j
                   t        j
                        k(  sJ t        | |dz  z
  |       t        |dz        k(  sJ t        | dz  d| z  z
  d	z
  |       t        d
dt        j                  z  z   t	        d	      d
dt        j                  z  z
        k(  sJ t        t        |       dz
  |       t        d      k(  sJ t        t        |       dz
  |       t        d	      k(  sJ t        | t        dd	      z  dz
  |       t        d      k(  sJ t        | t        dd      z  dz
  |       t        d      k(  sJ t        t        | dz  | dz  z   dz   |             dk(  sJ t        t        d
| dz  z  d	| dz  z  z   d| z  z
  dz   |             dkD  sJ t        | dz  | d	z  z   t        z   |       t        j                  u sJ y )Nr   Tr   r   r   r   r      r         r   r   r   )r   r^   rL   r   r   r   r   r,   r   r   r   r   s     r   test_solve_polynomialr  k  s   sAsA1q!$	(1a.(AAAAA1%AEE6155)AAAAQT1%16)::::A1q!,	
Q!&&[	!
Q!&&[1   
 a1a(IaL888a1a(IaL888HQN*Q.2imCCCHQN*Q.2imCCC}QTAqD[1_a01Q666}R1WqAv-!3a7;<q@@@A1q!,

:::r   c                     t         dz  dt         dz  z  z
  dt         dz  z  z
  dt         z  z   dz   } t        t        | t                     }|D ]  }|j                  t        k(  rJ  t        t        t        t         dz  dt         dz  z  z   dz   t                     d   d	
      t	        t         dz  dt         dz  z  z   dz   d      j                         k(  sJ t        t        t         dz  dt         z  z
  dz   t                     }t        d |D              rt        |      dk(  sJ t         dz  dt         dz  z  z
  dt         dz  z  z
  dt         z  z   dz   } t        t        | t                     }|D ]  }|j                  t        k(  rJ  t         dz  dt         dz  z  z   dt         dz  z  z   t        dd      z   }t        |t               t        t        |dz  d      j                          k(  sJ t         t         dz
  dz  z  t         dz   z  t         dz  t         z
  dz   z  }t        |t               t        dddt	        t         dz  t         z
  dz   d      t	        t         dz  t         z
  dz   d      t	        t         dz  t         z
  dz   d      t	        t         dz  t         z
  dz   d      t	        t         dz  t         z
  dz   d      t	        t         dz  t         z
  dz   d      	      k(  sJ y )Nr   r   r   r   r   r      r   F)exponentr   c              3   <   K   | ]  }t        |t                y wr   )r   rF   r   r}   s     r   r   z&test_return_root_of.<locals>.<genexpr>  s     3!z!W%3s   r   ZZdomainr   r   )r   r   r`   funcrF   r	   r   r   r   r   rL   rE   	all_roots)rz   r   rootr   eqs        r   test_return_root_ofr    s   	1r!Q$w1a4"Q$&+Aa#$A $yyG###$ $'1qAv(91=>qA "%,QTAadF]Q->%B%D%D%FG G G 1qs
Q2
3C3s33CAEE	1r!Q$w1a4"Q$&+Aa#$A $yyG###$ 	
1qAv!Q$!Q/AAq!4!D)33567 7 7 
AEA:q1u	q!tax!|	,BB""aGAqD1HqL!4q!tax!|Q/q!tax!|Q/q!tax!|Q/q!tax!|Q/q!tax!|Q/	11 1 1r   c                     t        t        dt        z  dz         dz
  t        z
  t              t        t        j
                   t	        d            k(  sJ t        t        t        dz
        t        z
  dz   t              t        d      k(  sJ t        t        t        dz
        dz
  t              t        d      k(  sJ t        t        t              dz
  dz
  t              t        d      k(  sJ t        t        t        d	z        t              t        d
      k(  sJ t        t        t        dz
        t              t        d      k(  sJ t        t        t        d	z
  t        z        t              t        d	      k(  sJ t        t        t        d	z
  t        z        t        dd      z
  t              t        d      k(  sJ y )Nr   r   r   r   r  r   r  1   r   r   r   )r^   r,   r   rL   r   r   r   r   r   r   test_solveset_sqrt_1r    sW   acAg*Q.2155&!A$     a!eq1,a0IbMAAAa!eq!,	"===a1q!,	"===adQ'9Q<777a!ea(IaL888qsAg*il:::qsAgx1~5q9!  r   c            	      P   t        dd      t        dd      } t        t        dz  dz
        t        dz
        z
  dz
        t        t	        d      t	        d	            k(  sJ t        t        d
z         dz   t        dz
        z
        t        d      k(  sJ t        t        dz  t        dz  dz
        z
        d
z
        t        d      k(  sJ dz   dz  ddz  z  z   z
  t        dd      z  z
  t              t        t        dd      t        dd            k(  sJ t        dz  dz         t        dz         z
  t        dz         z
  t              t        d      k(  sJ t        dz         t        dz  dz
        z   dt        dz
        z  z
  t              t        d      k(  sJ t              t        d
z
        z  dz
  t              t        d      k(  sJ t        dz
        t              z   dz
  t              t        d      k(  sJ t        ddz  z  d
z
        dz
  z
  t              t        t	        d       t	        d            k(  sJ t        ddz  z  dz         dz  dz   z
  t              t        d      k(  sJ t        t        dz
        t              z
  dz
        t               k(  sJ dz  dz
  t        dd      z  dz
  t              t        d      k(  sJ t        t              t        t                    z   dz
        t        t        dd      t        d      dz  z   dz        k(  sJ t              t        dz
        z
  t        t                    z   t              t               k(  sJ dz
  dz  t              dz
  dz  z   t              t        dd      k(  sJ t              t        dz         z   t        dz
        z   dt        d      z  dz  z
  t              }t	        d      }t        dd      }t        fd||fD              rSt        |      dk(  rE|D ch c]  } |j                  d       c}||fD ch c]  } |j                  d       c}k(  sJ t        t              t        dd      z  z   t        dd      z  z         t        d      k(  sJ t        t        dz  dz         z        t        d      k(  sJ | dz  z
  | dz  t        d| dz  z
        z  z  t              t        | dz        k(  sJ t        ddz   t        dd      z  z  dz
        t        t        dd            k(  sJ y c c}w c c}w )Nr   Tr   r   r   r   r   r      r  r      r   	   r      r  r   r   r   z-1484/375 - 4*(-S(1)/2 + sqrt(3)*I/2)*(-12459439/52734375 +
    114*sqrt(12657)/78125)**(S(1)/3) - 172564/(140625*(-S(1)/2 +
    sqrt(3)*I/2)*(-12459439/52734375 + 114*sqrt(12657)/78125)**(S(1)/3))c              3   v   K   | ]0  }t        j                  |      j                               d k   2 yw)g|=N)absr   r   )r   r}   r  r   s     r   r   z'test_solveset_sqrt_2.<locals>.<genexpr>  s,     @!s2771a=??$%-@s   69)chopi~i  )	r   r^   r,   rL   r   r   r   r   r   )r   ansrarbr}   r  r   s        @@r   test_solveset_sqrt_2r     s   sAsAacAga!e4q8!<!A$"  a!eq4A;6:"   bdT!Q$(^34q8!<!   
Q!Q$1a4-!#hq!n4	4BQ9Xb!_hr1o#NNNN	acAga!e	$tAE{	2BQ9Q<///	a!etAaC!G}	$qa!e}	4BQ9Q<///	aa!e	r	!BQ9R=000	a!etAw		"BQ9Q<///	a1fqj	QU	#BQ9adUAaD#9999 
a1fqj	QqS1W	%BQ9Q<///a!etAw.2A6)+EEE
A#'HQN	"Q	&BQ9R=000a4Q=014a88B?T"XaZ/!345 5 5 
a4A;	d1g	.BQ9;...
a%!tAw{Q&	&BQ9R#3333
q'DQK
$q1u+
-$q'	!
;B
A
C	
 L 
MB 
!QB@Bx@@CA!$%A$%"$b*A$*	++ +
 a1hq!n#44!"HQN!23457:CA,G G G 41q>)1-1===
ad(adDQTN*	+BQ9QT?222 AEHQN22Q6:(7E*+, , , 	&*s   4VV#c                      t         dz  dt         dz  z  z
  t        dd      z  dz   t         z
  } t        | t               t        t        dd            k(  sJ y )Nr   r   r   )r   r   r^   rL   r  s    r   test_solve_sqrt_failr#    sN     Q$1a4-(1a.	(1	,q	0BQ9Xa^#<<<<r   c                     t        d      } t        d      | z  t        d| dz   z        z  | dz   t        d      t        d| dz   z        z  dz
  z  z   }t        ||       }t        dd      dt        d      z  t	        t        dt        d      z  d	z        dz        z  dz  z   t        d       t	        t        dt        d      z  d	z        dz        z  dz  d
t        dt        dd      t        d      t        z  dz  z
  t        d	d      t        d      t        z  dz  z   t        dd      z  z  z        z  dz  z   t        d      t        t        dt        d      z  d	z        dz        z  dz  z   t        dd      z   t        t        d       t	        t        dt        d      z  d	z        dz        z  dz  t        d      t        t        dt        d      z  d	z        dz        z  dz  z
  d
t        dt        dd      t        d      t        z  dz  z
  t        d	d      t        d      t        z  dz  z   t        dd      z  z  z        z  dz  z   z  z   g}d
t        dt        dd      t        d      t        z  dz  z   t        d	d      t        d      t        z  dz  z   t        dd      z  z  z        z  dz  t        d      t	        t        dt        d      z  d	z        dz        z  dz  z
  t        d      t        t        dt        d      z  d	z        dz        z  dz  z
  t        dd      z   t        d
t        dt        dd      t        d      t        z  dz  z   t        d	d      t        d      t        z  dz  z   t        dd      z  z  z        z  dz  t        d      t        t        dt        d      z  d	z        dz        z  dz  z
  t        d      t	        t        dt        d      z  d	z        dz        z  dz  z   z  z   g}t        | }t        | t        |d      t        |       }||dhz
  |dhz
  z  k(  sJ t        t        t        z
  dz  t         dt        z  z  t        j                   z   dz  z          t        t        dz   dz  t        dt        dz  z  dt        dz  z  z
  dt        z  z   dz         dz  z
  t        dd      z
  dz  t        dz  dz  t        z
  t        dt        dz  z  dt        dz  z  z
  dt        z  z   dz         dz  z
  t        dd      z
  dz  z         z   }t        t        t        t        t        t        z
  dz  t         dt        z  z  t        j                   z   dz  z         t        t        dz   dz  t        dt        dz  z  dt        dz  z  z
  dt        z  z   dz         dz  z
  t        dd      z
  dz  t        dz  dz  t        z
  t        dt        dz  z  dt        dz  z  z
  dt        z  z   dz         dz  z
  t        dd      z
  dz  z         z
  d      t        j"                        }t%        |t              |k(  sJ y )NRr   r   r   r   r   r   o      (   r   r  r     r   r   )r   r,   r`   r   r8   r6   r    r   r<   r   rL   rH   r   r   r   r   r   r   r^   )r%  r  r   fsetcsetfscsunsolved_objects           r   test_solve_sqrt_3r/    sZ   sA	a41q5	?	"a!ed1gd1a!e9o.E.I%J	JB
2q
!CQNQtBxZD49S,A!,C(DDQFF"XIc$qc{3/12214r!hr1oQ	!3hsB6G$s)TU+VW-6WZbcdfgZh5hhijjkllmHSaS	k#o.q011!346>q!nE RyT!DI+c/21455a7BxD49S1!344Q67"Q"a4719Q;6#r9JTRUYWX[YZ]9Z]efgij]k8kklmmnoop qqrD r!hr1oQ	!3hsB6G$s)TU+VW-6WZbcdfgZh5hhijjkllHSaS	k#o.q011!346:2hs4$s)TWCXYZCZ?[6[\]6]^QN r"Q"a4719Q;6#r9JTRUYWX[YZ]9Z]efgij]k8kklmmnooBxD49S1!344Q67BxD49S1!344Q67 88 9D 
D	B	aBIt$4	5B29rd++++ AzaR1X.22
3	3dQTE!Gd	!Q$1a4!A#!G##$G% =%'/1~=689<:=>T!VaZ$adFQq!tVOac!A%K''(K) >)+3Aq>>:<==><> 7? 
?B #1bq1uqjQB!Hqvv<MPQ;Q.Q)Rq!teAgQq!tVa1f_qs2Q6799HQNJQNRSUVRVWXRX[\R\Qq!tVa1f_qs"Q&')S*,4QNS;=>R? ? 	@*@AB'DEFWWNO Q?222r   c                     t        t        dz  dz
  dz  t        z
  t              t        t	        dt	        t              z         t	        dt	        t              z          t	        dt	        t              z
        t	        dt	        t              z
               k(  sJ t        t
        t        dt        t        z  z   z  z
  t              t        t        t
        z  dz
  t        z        t        dt        z        z
  k(  sJ t        t
        t        t        z  t        t        z   z  z
  t              t        t         t
        z  t
        t        z
  z        t        t               z
  k(  sJ y )Nr   r   r   )r`   r   ru   rL   r,   r   rv   r   r   r   $test_solve_polynomial_symbolic_paramr1  '  s   QTAXMA-q1$q47{#d1tAw;&7%7q47{#d1tAw;&7%7	99 9 9
 A1qs7OQ/1Q37A+2a401 1 1 A!QUOQ/1"Q$A,)QB-/0 0 0r   c                  J   t        dt        z  dz   t              t        t        j                         k(  sJ t        dt        t              z  dz
  t              t        d      k(  sJ t        t        ddt        z  z
  z  t              t        d      k(  sJ t        dt        z  t        dz   z  dz
  t              t        d      k(  sJ t        t        dz  dt        z
  z  j                  t              t              t        t        j                  t        d            k(  sJ y )Nr   r   r   r   r     )r^   r   rL   r   r   r$   r
   Zeror   r   r   test_solve_rationalr5  5  s    1q!$	155&(99993q6Aq)Yq\999A!Ga(IaL8881a!eq!,	!<<<!Q$A,,,Q/3!&&!B% ! ! !r   c                  `    t        t        d      dz   t              t        j                  u sJ y r   )r^   r,   r   r   r   r   r   r   test_solveset_real_gen_is_powr7  >  s#    a1a(AJJ666r   c                  b   t        dt        t        z  z
        t        j                  u sJ t        t        t        z  t              t        j                  u sJ t        t        t        z  t        z
  t              t        j                  u sJ t        dt              t        j                  u sJ t        t        t              t              t        j                  u sJ t        t        dz  dz   t              t        j                  u sJ t        dt        z  t        t              z  t              t        j                  u sJ t        dt        z  t              t        j                  u sJ t        dt        z    dt        z   dz  z  ddt        z   z  z   t              t        j                  u sJ y )Nr   r   r   )	rf   r   r   r   r   r^   r$   ru   r,   r   r   r   test_no_solr:  B  s:   A1H+++BqD!

***BqD2Iq!QZZ///A!**,,,Q#qzz111A1%333Ad1gq)QZZ7771a AJJ...1q51q51*,q!a%y8! 
ZZ  r   c                  (   t        dt              t        j                  k(  sJ t	        dt        t        dd            t        dd      k(  sJ t        t        dz   dt        z  z
  t        dz   dz  z   dz
  t              t        j                  k(  sJ y )Nr   r   r   )r^   r   r   r   rf   rN   r   r   r   test_sol_zero_realr<  O  sw    A!'')))Aq(1a.)Xa^;;;!Q$1Az1A5q9QWWDDDr   c                      t        t        t        dz   z  dz   dz  t              t        j                  u sJ t        t        dz
  ddt        dz
  z  z   z  t              t        j                  u sJ y )Nr   r   r   )r^   r   r   r   r   r   r    test_no_sol_rational_extragenousr>  U  sZ    !QU)a-2.2ajj@@@!a%!aQi-0!4

BBBr   c                  4   t        t        t              dz
  t              t        d      k(  sJ t        t        t              dz
  t              t        d      k(  sJ t        t        t	        dd      z  dz
  t              t        d      k(  sJ t        t        t	        dd      z  dz
  t              t        d      k(  sJ t        t        t        t
        j                  dz  z  dz
  z  t              t        t
        j                  t        d            k(  sJ y)z
    Test for solving on equations that can be converted to
    a polynomial equation using the change of variable y -> x**Rational(p, q)
    r   r   r   r  r   r  N)r^   r,   r   rL   r   r   r   r4  r   r   r   test_solve_polynomial_cv_1ar@  Z  s    
 a1a(IaL888a1a(IaL888HQN*Q.2imCCCHQN*Q.2imCCCA	NQ./3!&&!B% ! ! !r   c            	          t        dd      } t        dd      }t        | |dz  z
  |dz  t        d|dz  z
        z  z  |       t        |dz        k(  sJ t        d| z  | dz   z  dz
  |       t        d      k(  sJ y)	z)Test solveset_real for rational functionsr   Tr   r   r   r   r   N)r   r^   r,   rL   r   s     r   test_solveset_real_rationalrB  g  s    sAsA!ad(1d1q!t8n'<=qAQT?   1a!eq!,	!<<<r   c                      t        t        t        dz
  t        dz   z        t              t        t	        d      t	        d             k(  sJ y r   )r^   r%   r   rL   r,   r   r   r   test_solveset_real_logrD  q  s@    acAaC[)1-$q'DG8$% % %r   c                      t        ddt        dz  z  dt        z  z   z  dz
  t              t        t        dd      t        j
                        k(  sJ y )Nr   r   r   r9  )r^   r   rL   r   r   r   r   r   r   test_poly_gensrF  v  sI    Q1X!^,q0!4(2q/166*+ + +r   c                     t        d      } t        t        d        t        t	        t
              | z
  t
        t        j                        j                  t        t
        t        | t        dt                    |  | h            sJ t        t	        t
              dz
  t
              t        dd      k(  sJ t        t	        t
              dz   t
              t        j                  u sJ t        t	        t
        dz         dt	        t
        dz
        z  z
  t
              t        dd      k(  sJ t        dt	        t
              z  t	        t
        dz
        z
  t
              t        d	t!        dd            k(  sJ t        t
        t#        t        t$        t        dt                    t        t&        t$        z   t        dt                    t        t&        t$        z
  t        dt                          t        t&         t$        z
  dz
  t&         t$        z   dz
  t&        t$        z
  dz
  t&        t$        z   dz
              }t	        t	        t
        dz         t&        z
        t$        z
  }t)        |dt
              d   |k(  sJ t&        dt$        di}|j+                  |      }|j+                  |      D ]  }|j+                  t
        |      sJ  t-        t        t/        t1        t	        t
                    d      t
        t        j                  
      t3        t5        t        dt              t7        t9        | d	| z  t:        z  dz  | t:        z  z         t        j<                              t5        t        t         d      t7        t9        | | t:        z  d	|  z  t:        z  dz  z
        t        j<                                          sJ y )Nr   c                  B    t        t        t              dz
  t              S r   rf   r   r   r   r   r   r   z test_solve_abs.<locals>.<lambda>}  s    xA
A6 r   r   r   r   r   r   r  r   r
  )r   rV   r   rf   r   r   r   r   r   rH   rG   rN   r   r^   rL   r   r   rB   rv   ru   rd   r   r   r   r<   rO   rM   rI   r   r   r   )r   r   r  repseqabsis         r   test_solve_absrM  {  s   c
A
:67CFQJ177+44QHQO4r1g>@ @ @Q!Q'9R+;;;;Q!Q'1::555QUaAE
l2A6!Q  3q6CAJ.2"hq!n%& & & HQO,QB0QB02 qb1fqj1"q&1*a!eaiQCEC 
SQZ!^	q	 Br1a #s***q!Q<D774=Dhhtn $99Q###$"SQ[!,a@%Xa_VAQwrz!|ad23QZZ@	BXrc1%VAqtraRjmAo56

C	ECF G G Gr   c                     t        t        t        t              dz  dt        t              z  z
  dz   t              t	        t        t        dt        z  t        z  t        dz  z         t        j                              sJ t        t        t        t              dz  dt        t              z  z
  dz   t              t	        t        t        dt        z  t        z        t        j                              sJ y Nr   r   )r   rf   r<   r   rI   r   r   r   r   r   r8   r   r   r   test_issue_9824rP    s    #a&!)aAh.2A61Q3r6TVWXTX=AY[\[e[e8fggg#a&!)aAh.2A61Q3r6ARTUT^T^8_```r   c                      t        t        t        dz
  t        dz
  z        t        dd      k  t              t	        dd      k(  sJ y )Nr   r   r   r   r   )r^   r   r   r   rN   r   r   r   test_issue_9565rR    s;    a!ea!e_-!Q?CxPRTUVVVr   c                      t        dt        dz
  z        dz
  dkD  } t        | t              t        t	        j
                  dd      t	        j
                  dd            k(  sJ y )Nr   r   r   )r  r   r^   rO   rN   openr"  s    r   test_issue_10069rU    sX    	QAY!	a	BQ5aX]]1a0$2 2 2 2r   c                  *   t        dd      \  } }t        t        | dz  |dz  z
        dz
  |       t        t        |dz  dz          t        |dz  dz               k(  sJ t        t        | dz  |dz  z         dz
  |       t        j
                  k7  sJ y )Nza bTr   r   r   r  )r   r^   r,   rL   r   r   ru   rv   s     r   test_real_imag_splittingrX    s    5t$DAqadQTk*Q.241q>/41q>23 3 3adQTk*Q.2	

  r   c                  v    t        dt        z  ddt        z  z  z
  t              t        dt        z        k(  sJ y r   )r^   r   r\   rL   r   r   r   
test_unitsrZ    s/    1q!B$x+y2>>>r   c            	         t        dd      } t        t        t              | z
  t              t	        t        |             k(  sJ t        t        t              t        t               z   dz
  t              t	        t        t        d       dz         t        t        d      dz               k(  sJ t        t        t              t        t               z   | z
  t              t        j                  k7  sJ y )Nr   Tr   r   r   r   )	r   r^   r$   r   rL   r%   r,   r   r   r   s    r   test_solve_only_exp_1r]    s    sT"AQ!Q'9SV+<<<<Q#qb')A-q1#tAwhl#Sa1%567 7 7Q#qb')A-q1QZZ???r   c                      t        t        t        d      t        dz  z
  t              t	        dt        d      z        k(  sJ y Nr   r   )r^   r7   r   r   rL   r,   r   r   r   
test_atan2r`    s5     q!r!t+Q/9QtAwY3GGGGr   c            
      <   t        t        dz
  t        t        d      fdt        z
  df      dz
  } t        t	        | t                    t        t        dd            k(  sJ t        t        dz
  dt        dz
  k  fdt        z
  dt        dz
  kD  f      }t        dd      }t	        ||z
  t              t        | dz   |dz         k(  sJ t        t        dz
  dz  t        dk\  fd	      }t        |t        t        j                  
      t        t        d      t        t         ddd            k(  sJ t        t        t        dz   t        dkD  ft        df      t        z
  t        t        j                        t        t         d      k(  sJ t        t        t        dz
  t        t        t              ft        df      t              t        d      k(  sJ t        dt        dkD  fd	      }t        |dkD  t        t        j                        t        j                  dt              k(  sJ ddlm}  |       }t        |t        t        dd      
      t        dd      k(  sJ t        dt%        t        d      ft        dz  t'        t              z  df      }t        dt%        t        t(              ft        t(        z
  t+        t              z  df      }t        |t        t        j                  
      t        d      k(  sJ t        |      t        t(              k(  sJ y )Nr   Tr   r   r   r   r   r   r   Tr
  r   r   )BooleanTruer9  )r/   r   r   setr^   rL   r   rf   r   r   rO   rN   r   r   r   rT  sympy.logic.boolalgrc  r   r   r   r<   )r  absxm3r   rz   r{   rc  s         r   test_piecewise_solvesetrg    s   	AE2a8$q1udm	4q	8B}R#$Ib!,<(====	
QQU
	
QAE	F 	sT"A!Q'9aR!VQU+CCCCAEA:qAv&	2AAq)U9Q<2#qRVX\A]-^^^^1q5!a%.1d),q0!QWW
rc1   Iq1ubAh/!T;Q?9Q<OOO 	1a"f+y)AAE1agg&(--B*????/AAq"b!12hr26FFFF 	1bAh-!Q$s1v+t!45A1bBi.AFCF?D"9:AAq)Yq\999A;)B-'''r   c                     t        t        t        dz  z  t        t        z  z   t        z   t              t        t         dt        z  z  t        dt        z  t        z  t        dz  z         dt        z  z  z
  t         dt        z  z  t        dt        z  t        z  t        dz  z         dt        z  z  z         k(  sJ t        t        t        dz  z
  t              t        t        t        dd      z   dz  t        t        d      z  t        t        dd      z  z  dz  z   t        t        dd      z  t        t        dd      z   dz  t        t        d      z  t        t        dd      z  z  dz  z
        k(  sJ t        t        dt        z  z   dz
  t              t        t        j                  t        t        d      z  dz  z   t        j                  t        t        d      z  dz  z
        k(  sJ y )Nr   r   r   r   )r`   ru   r   rv   rw   rL   r,   r   r   r   r   r   r   r   r    test_solveset_complex_polynomialri    s   AadFQqSL1,a01"ac(T"Q$q&1a4-0!A#66"ac(T"Q$q&1a4-0!A#66	88 8 8 A1Ha(I
Xa^
	Q471hq!n+<!<Q!>>	8Aq>
Xa^
	Q471hq!n+<!<Q!>>-@ @ @ @
 A!GaK+!&&1T!W9Q;&471(<=> > >r   c                  H    t        dt              t        j                  u sJ y Nr   )r`   r   r   	Complexesr   r   r   test_sol_zero_complexrm    s    Aq!Q[[000r   c            	         t        t        dz
  t        t        z
  z  t        dz
  z  t              t        dt              k(  sJ t        t        t        dz  z
  t        dz  t        dt        dz  z
        z  z  t              t        t        dz        k(  sJ t        t        dz   t        z
  t              t        t        d       dz  t        d      t        z  dz  z   t        d      dz  t        d      t        z  dz  z
        k(  sJ y Nr   r   r   )r`   r   r   rL   r   r,   r   r   r   test_solveset_complex_rationalrp    s    QUQUOQU3Q7!Q   QAXAtA1H~(=>B!Q$  QTEAIq)47(1*tAwqy{*DGAIQ	!,CDE E Er   c                     t        d       t        dz  dt        dz  z  z
  dt        dz  z  z
  dt        z  z   dz   } t        | t              }|D ]C  } | j                  t        |j	                               j	                         }t        |d	      rCJ  t        dz  d
t        z  z   dz   } t        | t              }|D ]C  } | j                  t        |j	                               j	                         }t        |d	      rCJ  y )NzThis test is too slowr   n   r   7   r   i	  i  r   r   r  )rW   r   r`   r   r   tn)rz   r   r  ress       r   test_solve_quinticsrv    s    	 !	1s1a4x"QT'!DF*S0AAA affQ!##%#qzz 	
1r!tbAAA affQ!##%#qzzr   c                  
   t        t        t        t              dz
  t              t	        t        t        t        dz  t        z  t        z        t        j                              sJ t        t        t        t              t        z
  t              t	        t        t        t        dt        z  t        z  t        dz  z   z        t        j                              sJ t        dt        t              z  t              t        j                  k(  sJ t        t        t        t              j                  t              t              t	        t        t        t        t        z  t        z        t        j                              sJ y r   )r   r`   r$   r   rP   r   r   r   r   r   r   r   r'   rewriter   r   r   test_solveset_complex_expry    s    !#a&1*a01Q3q58$ajj13 3 3!#a&1*a01ac"fr!tm,-qzz:< < <Ac!fHa(AJJ666!$q'//#"6:1R46"AJJ/1 1 1r   c            
      h   t        t        dt        z  d      t        t        j                        t        d      k(  sJ t        t        dt        z   d      t        t        j                        t        j                  k(  sJ t        t        dt        z  d      t        t        j                        t        j                  k(  sJ t        t        dt        dz   z  d      t        t        j                        t        d	      k(  sJ t        t        dt        d	z
  z  d
      t        t        j                        t        j                  k(  sJ t        t        dt        d	z
  z  d      t        t        j                        t        d      k(  sJ t        t        dt        z  t              t        t        j                        t        t        j                  t        t        t              t        d      z              k(  sJ t        ddt        z  z  dz
  dt              t        t        d      fk(  sJ y )Nr   r   r   r9  r  r   iq  r   lxpEA *   r  r   )rf   r   r   r   r   rL   r   r   rM   r%   rd   r   r   r   test_solveset_real_expr~    s~   BQwNAqww/9Q<???B1uaL!QWW-;;;BQwOQ0AJJ>>>Bac{C(!QWW51EEEBq1Q3x%q!''2ajj@@@Ba!e}f-q!'':imKKKBq!tQKAGG,QWWiPSTUPVWZ[\W]P]F^0____ac{R'A.1il2CCCCr   c            	      4   t        t        t              t              t        d      k(  sJ t        dt        t        dt        dz  z  z         z
  t              t        t        t         t        z          dz  t        t         t        z         dz        k(  sJ y )Nr   r   r   )r`   r%   r   rL   ru   r,   r   r   r   r   test_solve_complex_logr  '  su    CFA&)A,666AA!Q$J/34Q<-/4Q<>23 3 3r   c                     t        t        dt        z  dz         dz
  t        z
  t              t        t        j
                   t	        d            k(  sJ t        t        dt        z  dz         ddt        z  z   z
  t        z
  t              t        t	        d       ddt        z  z
        k(  sJ t        dt        z  dt        t        t              z  z
  z  t              t        t        j                  dt        dz  z        k(  sJ y )Nr   r   r   r   r   r   )	r`   r,   r   rL   r   r   r   ru   r4  r   r   r   test_solve_complex_sqrtr  -  s    D1qMA-115155&!A$     D1qMQ1W591=1Q4%QqS!" " "AaCQa[115!&&!a1f*%& & &r   c                  ^   t        t        t              j                  t              t              } t        | t        t        t        t        t        z        t        j                        t        t        t        t        t        z  t        dz  z         t        j                        z
        sJ y r   )r`   r=   r   rx  r$   r   rP   r   r   r   r   r   )r   s    r   test_solveset_complex_tanr  6  sl    Q,a0AHVAr!t_ajj92a4"Q$;'45 6 6 6r   c                  #   t        t        t        t              t              t	        t        t        t        dt        z  t        z        t        j                        t        t        t        dt        z  t        z  t        z         t        j                                    sJ t        t        t        t              dz
  t              t        t        t        dt        z  t        z  t        dz  z         t        j                              sJ t        t        t        t              t              t	        t        t        t        dt        z  t        z  t        dz  z         t        j                        t        t        t        dt        z  t        z  t        t        dd      z  z         t        j                                    sJ t        t        t        t              t        t              z   t              t	        t        t        t        dt        z  t        z  t        t        dd      z  z         t        j                        t        t        t        dt        z  t        z  t        t        dd      z  z         t        j                                    sJ t        t        t              dz  t        t              dz  z   t              t        j                  k(  sJ t        t        t        t              t        j                  z
  t              t	        t        t        t        dt        z  t        z  t        t        dd      z  z         t        j                        t        t        t        dt        z  t        z  t        dz  z         t        j                                    sJ t        t!        t        t"        t$        z         t        t"              z
  t$        t        j&                        t	        t)        t        t        dt        z  t        z        t        j                        t+        t)        t        t        t,         t,        dt        z  t        z  t/        t1        dt,        z  t"        z               z   z  dt3        t"              z  z   z        t        j                        t        j&                                    sJ t        t        t        dt        z        t        t              z  t        dt        z        t        t              z  z   dz
  t              t)        t        t        t        t        z  t        dd      z  t        d	z  z         t        j                              sJ t        t        dt5        t              z  t        t              z  dz   t              t	        t)        t        t        dt        z  t        z  t7        t9        d      t9        d
t9        d      z         z  dt9        d      z
  z        z   t        z         t        j                        t)        t        t        dt        z  t        z  t7        t9        d      t9        d
t9        d      z         z  dt9        d      z
  z        z
  t        z         t        j                                    sJ t        t        t        dt        z        t        dt        z        z  dz
  t              t)        t        t        t        t        z        t        j                              sJ t        t!        t        t        dz        t        dd      z         t	        t)        t        t        dt        z  t        z  dt7        dt9        d      z  dz        z  z   dt        z  z         t        j                        t)        t        t        dt        z  t        z  dt7        dt9        d      z  dz        z  z
  dt        z  z         t        j                                    sJ t        t!        t        t        dz        t        t        dz        z         t	        t)        t        t        dt        z  t        z  dt        z  dz  z         t        j                        t)        t        t        dt        z  t        z  dt        z  dz  z         t        j                        t)        t        t        dt        z  t        z  dt        z  dz  z         t        j                        t)        t        t        dt        z  t        z  dt        z  dz  z         t        j                        t)        t        t        dt        z  t        z  dt        z  dz  z         t        j                        t)        t        t        dt        z  t        z  dt        z  dz  z         t        j                                    sJ t        t!        t;        t9        d      t        z  dz        dz         t	        t)        t        t        dt9        d      z  dt        z  t        z  t        z
  t7        dt9        d	      z        z   z  dz        t        j                        t)        t        t        dt9        d      z  dt        z  t        z  t7        dt9        d	      z        z
  t        z   z  dz        t        j                                    sJ t        t=        t!        t5        t        t        z        t?        t        dz  t        z        z
              t	        t)        t        t        dt        z  dz         t        j                        t)        t        t        dt        z  dz         t        j                        t)        t        t        dt        z  t        dd      z         t        j                        t)        t        t        dt        z  t        dd      z         t        j                        t)        t        t        dt        z  t        dd      z         t        j                        t)        t        t        dt        z  t        dd      z         t        j                                    sJ t        t!        t        dt        z              t	        t)        t        t        dt        z  t        z  dz  t        dz  z         t        j                        t)        t        t        dt        z  t        z  dz  t        d	z  z         t        j                                    sJ t        t!        t        dt        z        t?        dt        z        z   t        t        j&                        t	        t)        t        t        t        t        z  dz  t        dz  z         t        j                        t)        t        t        t        t        z  dz  dt        z  dz  z         t        j                        t)        t        t        t        t        z  dz  dt        z  dz  z         t        j                        t)        t        t        t        t        z  dz  dt        z  dz  z         t        j                        t)        t        t        t        t        z  dz  dt        z  dz  z         t        j                        t)        t        t        t        t        z  dz  t        dz  z         t        j                                    sJ t        t        dt        t              z  t        dt        z        z  dz
  t              t	        t)        t        t        dt        z  t        z  dt7        t9        ddt        dd      z  z  ddt9        d      z  z   t        dd      z  z  ddt        dd      z  z  z   dddt9        d      z  z   t        dd      z  z  z         dddt9        d      z  z   t        dd	      z  z  z        z  z         t        j                        t)        t        t        dt        z  t        z  dt7        t9        ddt        dd      z  z  ddt9        d      z  z   t        dd      z  z  ddt        dd      z  z  z   dddt9        d      z  z   t        dd      z  z  z         dddt9        d      z  z   t        dd	      z  z  z        z  z
  dt        z  z         t        j                                    sJ t        t=        t!        t        t        dz  t        z        t        j                  z
  t        t        j&                              t	        t)        t        t        dt        z  dz         t        j                        t)        t        t        dt        z  dz         t        j                                    sJ y )Nr   r   r   r   r  r   r
  r   r   r   r  r   r   r   r)  -   K   i      r     r   r  r  C   9      ih     ) r   r^   r<   r   rO   rP   r   r   r   r   r   r8   r   r   r`   r   rf   r   ru   r   rI   rM   r   r   r$   r   r=   r6   r,   r;   rR   r9   r   r   r   test_solve_trigr  <  s   s1vq)hva2a(!**5va2a"-qzz:	<= = = s1vz1-1R46BqD=)1::68 8 8 s1vq)hva2a"Q$/<va2a"Xa^*;!;<ajjI	KL L L s1vA2hva1R"Xa^*;!;<ajjIva1R"Xa^*;!;<ajjI	KL L L QSVQY.2ajj@@@!#a&166/15hva1R"Xa^*;!;<ajjIva1R"Q$/<	>? ? ? #a!e*s1v-qAhva1R(!**5XfQA	!Bc"Q$q&k\""-$	"Q%- ) :: !	)	*+ + + s1Q3xAQqS#a&@BAF1R4A.A56

CE E E qQxA2A61Q3r6Dab48m1D)Db\* %  ! "#$::	/1Q3r6Dab48m1D)Db\* %  ! "#$::	/90 1 1 1 s1Q3xAaC014a8$VAqt_ajjAC C C #ad)hq!n45u2a47RQtAwYq[(9%99BrEABAJJO2a47RQtAwYq[(9%99BrEABAJJO8Q R R R #ad)c!A#h./2a47RU1W,-qzz:2a47RU1W,-qzz:2a47RU1W,-qzz:2a47RU1W,-qzz:2a47SVAX-.

;2a47RU1W,-qzz:2< = = = #d1gaik*Q./1T!W9ac"frkD47O&CDQFGT1T!W9ac"ftAd1gI&>&CDQFGT2V W W W (3r!t9s2a46{#:;<e1Q37#QZZ01Q37#QZZ01Q3!Q/0!**=1Q3!Q/0!**=1Q3"a011::>1Q3!Q/0!**=?? @ @ @ #ac(#U1Q3r6!8be+,ajj91Q3r6!8bd?+QZZ8&: ; ; ; #ac(SAY.177;U1R46BqD=)1::61R46AbDF?+QZZ81R46AbDG+,ajj91R46AbDG+,ajj91R46AbDG+,ajj91R46BrE>*AJJ7>9 : : : qQxAaC014a8
1Q3r6Ad41hq!n;L8LbDH*O'1~N. 9.01!Xa^2C0C9DFH"DH*K'1~J. G.9. 4/012$r(
?XaQR^2S0S4U /V -V $V WXYXbXbd 6!QqSVaT"QA=N:NPRDH*Q'1~P. ;.01!Xa^2C0C;DFH"DH*K'1~J. G.;. 6/012$r(
?XaQR^2S0S6U 1V /V &V B$&  %&' ' ' (3quRx=166#91aggFG3q53;'43q52:&

3J5 6 6 6r   c                     t        d      } t        t        t              t	        t              z   t              t
        j                  k(  sJ t        t        t              t        t              z   t              t        t        t        t        t              t        t              z   d      t
        j                        k(  sJ t        t        t              t        t              z   t              t        t        t        t        d      dz
                    k(  sJ t        dt	        dt        z        z  dz
  t              t        t        d       dz  t        d      dz        k(  sJ t        t        t        dz
        dz
  t              t        t        dt        d      z   t!        d      z              k(  sJ t        t	        dt        z        dt        t              z  z   dz
  t              t        t        dt        d      z         t        dt        d      z               k(  sJ t        t#        t              t        dt        z        z   t	        t              z  dz
  t              t        t        t
        j$                  t        d      dz  z         t        dt        d      z               k(  sJ t        t	        t              t        t              z  dz
  t              t        t        dt        d	      z         dz        k(  sJ t        t        t              t'        t              z   dz
  t              t        t        t        d      dz  t        t        d       dz  t        d      z         z               k(  sJ t)        t+        t        t              t,        dz  z
  t              t/        t1        t3        | t,        d| z  t4        z  dt4        z  d
z  z   z        t
        j6                        t1        t3        | t,        d| z  t4        z  t4        d
z  z   z        t
        j6                                    sJ t)        t+        t        t              t        t              z   t              t/        t1        t3        | d| z  t,        z  t4        z  t        t        dt        d      z               z         t
        j6                        t1        t3        | t,        d| z  t4        z  t4        dz  z   z  t        t        dt        d      z               z         t
        j6                        t1        t3        | t,        d| z  t4        z  t4        z   z  t        t        dt        d      z               z         t
        j6                        t1        t3        | t,        d| z  t4        z  t4        dz  z
  z  t        t        dt        d      z               z         t
        j6                                    sJ t)        t        t        t        dz        t9        dd      z         t/        t1        t3        | dt,        z  d| z  t4        z  t4        z   z  dt        d      z  z         t
        j6                        t1        t3        | d| z  t,        z  t4        z  dt        d      z  z
        t
        j6                                    sJ t)        t        t	        t        dz        t	        t        dz        z         t/        t1        t3        | dt,        z  d| z  t4        z  t4        dz  z   z        t
        j6                        t1        t3        | dt,        z  d| z  t4        z  t4        dz  z
  z        t
        j6                        t1        t3        | dt,        z  d| z  t4        z  dt4        z  dz  z
  z        t
        j6                        t1        t3        | dt,        z  d| z  t4        z  dt4        z  dz  z   z        t
        j6                        t1        t3        | dt,        z  d| z  t4        z  t4        dz  z
  z        t
        j6                        t1        t3        | dt,        z  d| z  t4        z  t4        dz  z   z        t
        j6                                    sJ t)        t        t        t        d      t        z  dz        dz         t/        t1        t3        | dt        d      z  t,        z  d| z  t4        z  t4        z
  t;        dt        d
      z        z   z  dz        t
        j6                        t1        t3        | dt        d      z  t,        z  d| z  t4        z  t;        dt        d
      z        z
  t4        z   z  dz        t
        j6                                    sJ t)        t        t'        t4        t        z        t#        t4        dz  t        z        z
        t/        t1        t3        | dt,        z  d| z  t4        z  t4        dz  z   z  t4        z        t
        j6                        t1        t3        | dt,        z  d| z  t4        z  t4        dz  z
  z  t4        z        t
        j6                                    sJ t)        t        t	        dt        z              t/        t1        t3        | t,        d| z  t4        z  t4        dz  z   z  dz        t
        j6                        t1        t3        | t,        d| z  t4        z  t4        dz  z
  z  dz        t
        j6                                    sJ t        t        t              t        t
        j<                        t        d      k(  sJ t)        t        t        t              t        t
        j                        t/        t1        t3        | t,        d| z  t4        z  t4        z   z        t
        j6                        t1        t3        | d| z  t,        z  t4        z        t
        j6                                    sJ t)        t        t?        t4        t        z        t        t
        j<                        t/        t1        t3        | d| z  t4        z  t4        z   t4        z        t
        j6                        t1        t3        | d| z        t
        j6                                    sJ t)        t        t?        t4        t        z        t              t/        t1        t3        | d| z  t4        z  t4        z   t4        z        t
        j6                        t1        t3        | d| z        t
        j6                                    sJ t)        tA        t        t,        tC        dt        z  dtD        z  z
        z  t                    t/        t1        t3        | | t4        z  dz  dt4        z  dz  z
  tD        z         t
        j6                        t1        t3        | | t4        z  dz  dt4        z  dz  z
  tD        z         t
        j6                                    sJ t        t	        t              t	        dt        z        z   t	        dt        z        z
  t        t
        j<                        jG                  t        t        t        t	        t              t	        dt        z        z   t	        dt        z        z
  d      t
        j<                              sJ t        t        dt        z        t#        dt        z        z         jG                  t        t        t        t        dt        z        t#        dt        z        z   d      t
        j                              sJ y )Nr   r   r   r   r   r   r   r   r  r   r   r   r   r  r   r  r  r  r  )$r   rf   r'   r   r)   r   r   r8   rH   r   rl  r^   r*   rL   r%   r,   r$   r+   r   r(   r   r`   r   rO   rI   r   r   r   r   r6   r   r<   rR   r9   r   r   r   s    r   test_solve_hyperbolicr    sJ   c
ADGd1g%q)QZZ777DGc!f$a(L
3q6DGQ-. . . .a47*A.)Da13       4!9q!,		Q	3q6!81   a!eq!,	Qa[#a& !1# # # #acQtAwY.2A6)BaL3q47{+;- - - -$q'D1I-tAw6:A>)AFFT!WQYQa[!1C3 3 3 3aa1,a0IARL!5   a47*Q.2iDGAIadU1WtAw.//072 2 2 2 !$q'AaC-3U1ac"fqtAvo./<1ac"fr!tm,-qzz:6< = = = !$q'DG"3Q71Q3q58c$rDG|*<&==>

K1ac"fr!tm,s4DG3D/EEF

S1ac"frk?Sb47l1C-DDEqzzR1ac"fr!tm,s4DG3D/EEF

S	:U V V V $qt*x1~562a41R"-3q6	9:AJJG2a46"9r#a&y011::>9@ A A A $qt*tAaCy0152a41R"Q$/0!**=2a41R"Q$/0!**=2a41R!B$q&12AJJ?2a41R!B$q&12AJJ?2a41R"Q$/0!**=2a41R"Q$/0!**=4? @ @ @ $tAwqy{+a/0%1T!W9Q;!Bd1T!W9o(EFqHI1::V1T!W9Q;!BaQi(@2(EFqHI1::V3X Y Y Y $r!t*tBqDF|34e1Q3!BA.r12AJJ?1Q3!BA.r12AJJ?7A B B B $qs)$e1ac"fr!tm,Q./<1ac"fr!tm,Q./<'> ? ? ?
 DGQ(IaL888$q'1akk2E1ac"frk?+QZZ81Q3q58$ajj153 4 4 4
 #bd)Q0%AaCFRK+,ajj91Q3,3. / / / #bd)Q'AaCFRK+,ajj91Q3,*. / / /
 (1S1qs^#3Q78%1R46BrE"H,q011::>1R46BrE"H,q011::>;@ A A A
 DGd1Q3i'$qs)3Q 

(<
47T!A#Yac*A.9 :: : : D1IRT
*+44Q4!9tBqDz115q{{CE E Er   c                     t        t        t        t        t        z        t              t        t        t        t        d      t        t        t        t        dt        z  t        z  t        z   t        z        t        j                        t        t        t        dt        z  t        z  t        z        t        j                                          sJ t        t        t        t        t        z        t              t        t        t        t        d      t        t        t        t        t        t        z  dt        z  t        z  t        dz  z   z        t        j                        t        t        t        t        t        z  dt        z  t        z  t        dz  z
  z        t        j                                          sJ t        t        t        dt!        d      z  dz  t        dz  z  t"        t        z  z  t        z        t%        dt!        d      z  dz  t        dz  z  t"        t        z  z  t        z        z   t              t        t        t        t"        d      t        t        dz  d      z  t        t        t        t        t!        d      t        z  t"        z  dt        z  t        z  t        dz  z   z  dt        dz  z  z        t        j                        t        t        t        t!        d      t        z  t"        z  dt        z  t        z  dt        z  dz  z
  z  dt        dz  z  z        t        j                        t        t        t        t!        d      t        z  t"        z  dt        z  t        z  t        dz  z
  z  dt        dz  z  z        t        j                                          sJ t        t'        t        t)        dt        z   t        z        t)        ddt        z  z   t        z        z
  t                    t        t        t        t        t        dt        z
  z  dt        z  dz   z  dz        t        j                        t        t        t        t        dt        z
  z  dt        z  dz
  z  dz        t        j                                    sJ t        t        t        t        dz  dz   t        z        dz
  t              t        t        t        t        dz  dz   d      t        t        t        t        dt        z  t        z  t        z  t+        ddt!        d      z  z
        z   t        dz  dz   z        t        j                        t        t        t        dt        z  t        z  t        z  t+        dt!        d      z  dz         z   t        dz  dz   z        t        j                                          sJ t-        dd	
      } t        t        | dz  dz   t        z        dz
  t        t        j.                        t1        t+        t!        d      dz         | dz  dz   z  t+        dt!        d      z
        | dz  dz   z        k(  sJ y )Nr   r   r   r   r   r   r   arTr   )r   rf   r<   ru   r   rH   r   rO   rI   r   r   r   r   r   r)   r   r,   rv   r8   rR   r9   r%   r   r   rL   )r  s    r   test_solve_trig_hyp_symbolicr    s   #ac(A&Q1a%AaCFRK?+QZZ81Q3r6!8$ajj1C3 )4 5 5 5 $qs)Q'aAq51Q3!BA./<1Q3!BA./<D> *? @ @ @ #aQik!Q$."5a78
aQik!Q$"%a'
()*+-Ar!Qx"QT1+-uF1d1gbjlAaCFRTM:AadFCDajjQF1d1gbjlAaCFQrT!VO<a1fEF

SF1d1gbjlAaCFRTM:AadFCDajjQ0S TU U U (3Aqy>CQqS!4D#DaHI52q1u:qsQw/12AJJ?2q1u:qsQw/12AJJ?LA B B B $1q!|,q0!4Q1a4!8QVA!Ab3q1T!W9}+= =1qIJAJJWVA!Ab3qay1}+= =1qIJAJJW*Y 	Z[ [ [
 
4	 BD"a%!)Q'!+Q8IDGaK"a%!)$c!d1g+&6A	&B=D D D Dr   c                     t        t        t        t              t	        t              z   dz
  t              t        t        t        t        dt        z  t        z  t        z  t        t        d      dz  t        t        j                   t        d      z         z         z         t        j                        t        t        t        t        dt        z  t        z  t!        t        d      t        t        j                  t        d      z         z        z
  t        z   z  t        t        dt        d      z               z         t        j                        t        t        t        t        dt        z  t        z  t        z   z  t        t        d       dz  t        t        j                   t        d      z         z         z         t        j                        t        t        t        t        dt        z  t        z  t        z
  t!        t        d      t        t        j                  t        d      z         z        z   z  t        t        dt        d      z               z         t        j                                    sJ t        t              j#                  t$              } t	        t              j#                  t$              }t        t        | |z   dz
  t              t        t'        t        t        t        t        dt        z  t        z  t        z   z  t        t        d       dz  t        t        j                   t        d      z         z         z         t        j                        t        t        t        t        dt        z  t        z  t        z   z  dz        t        j                              t'        t        t        t        t        dt        z  t        z  t        z
  t!        t        d      t        t        j                  t        d      z         z        z   z  t        t        dt        d      z               z         t        j                        t        t        t        t        dt        z  t        z  t        z   z  dz        t        j                              t'        t        t        t        t        dt        z  t        z  t!        t        d      t        t        j                  t        d      z         z        z
  t        z   z  t        t        dt        d      z               z         t        j                        t        t        t        t        dt        z  t        z  t        z   z  dz        t        j                              t'        t        t        t        dt        z  t        z  t        z  t        t        d      dz  t        t        j                   t        d      z         z         z         t        j                        t        t        t        t        dt        z  t        z  t        z   z  dz        t        j                                          sJ y r   )r   rf   r'   r   r(   rO   rI   r   r   r   r   r%   r,   r   r   r   r6   rx  r$   rK   )f1f2s     r   test_issue_9616r    sY   $q'DG+a/3U1Q3q58c$q'!)dAFF7T!W;L6M*M&NNOQRQ[Q[\1ac"ftDGD$q'9I4J,J'KKbPQ$q47{#$% &'(zz	31ac"frk?S$q'!dAFF7TRSWCT>U1U-VVWYZYcYcd1ac"frkDaafftAw>N9O1O,PPQ$q47{#$% &'(zz	364 5 5 5 q'		3	B
q'		3	B"r'A+q)581a1R"oT!WHQJqvvgQ>O9P,P(QQRTUT^T^`VAq!A#b&2+q011::>	@ 	8F1a1R"tDGDRVWXRYIYDZ<Z7[)[&\d1tAw;'(') *+,::7VAq!A#b&2+q011::>	@ 	8F1a1R$tAwtAFFTRSWDT?U7U2V)VY[)[&\d1tAw;'(') *+,::7VAq!A#b&2+q011::>	@ 	VAqs1uRx#d1gai$wa?P:Q.Q*RRSUVU_U_`VAq!A#b&2+q011::>	@,A B B Br   c                      dt        t        t              t        z  t              vsJ dt        t	        t              dz
  t        z  t              vsJ y Nr   r   )r^   r<   r   r`   r$   r   r   r   test_solve_invalid_solr  $  sA    M#a&(A....$c!fqj!^Q7777r   c                  N   t        d      } t        t        t        t              t              t        t        | | t        z        t        j                              sJ t        t        t        t              t              t        t        | | t        z  t        dz  z         t        j                              sJ t        t        t        t              t        t              z   t              t        t        | | t        z  t        dz  z
        t        j                              sJ y )Nr   r   r   )r   r   r^   r<   r   rP   r   r   r   r   r8   r  s    r   test_solve_trig_simplifiedr  )  s    c
As1vq)1R4!**-/ / / s1vq)1R4"Q$;'46 6 6 s1vA21R4"Q$;'46 6 6r   c                     t        t        t        t              z  dz
  t              t        t	        d            k(  sJ t        t        t              t        z   t              t        t	        d             k(  sJ t        t        dt        z  z   t              t        t	        t        d             t        d      z        k(  sJ t        dt        z  dz   ddt        z  dz   z  z   t              } | t        t        dd      t	        ddt        dd      z  z  t        d      z  dz        dt        d      z  z  z         k(  sJ ddt        z  dz   dz  z  dd	dt        z  d
z   z  z  z
  }t        |t              }t        t        d      dt	        t        d	d	dt        dd      z  z  dz  z               z  z   dt        d	      z  z  dz        } || k(  sJ t        |j                         t              |k(  sJ t        dt        z  dz
  dt        dd	t        z  z
        z  z   t              t        t        dd      t	        dt        t        dd            z  dz        d	z  z         k(  sJ t        dt        z  dz   t        dt        z  dz
        z   t              t        t        dd      t	        dt        t        dd            z  dz        dz  z         k(  sJ t        dt        z  t        dt        z        z   t              t        t	        t        dd            dz        k(  sJ t        t        t        z  dz
        t        t        t	        t        d                        k(  sJ t        d      }t        | t        z  dt        z  t        t              z  z   t              t        t        |dz              k(  sJ t        dd      }t        |t        z  t        t        dz        z   t              t        dt	        | dz        z        k(  sJ t        |t        z  t        t        dz        z   j                  t              t              t        dt	        t        d      t        |      z  dz        z        k(  sJ t        t        t        dz         t        t        dz
        z  dz
  t              t        j                  u sJ t        t        dz  dt        z  z
  dz   j                  t        t        t              dt        z  z         t              t        t	        dt        j                  z        dz        k(  sJ t        t        dz  dt        z  z
  dz   j                  t        t        t              dt        z  z   dz  dz
        t              t        t	        dt        t        d             z        dz  t	        dt        t        d            z        dz        k(  sJ t        t        dz  dt        z  z
  dz
  j                  t        t        t              dt        z  z         t              t        t	        dt        dt        d      z         z        dz  t	        dt        t        d       dz         z        dz        k(  sJ t        t        t        t              z  dt        z  z   dz   t              t        t        dt	        t        d             z               k(  sJ t        t        t              z  dz
  j                  t        t        t        t              z        }t        |t              t        t	        dt        t	        d             z              k(  sJ t        dt        |dt        z  dz   z        z  |dt        z  dz   z  z   t              t        t        |dz        t	        t        dd            z   dt        |      z  z         k(  sJ t!        dd      }t        dt        |dt        z  dz   z        z  |dt        z  dz   z  z   t              t        t        dt        dd      z   dt        dd      z  t"        z  z
  t	        t        dd            t        dd      z  z  d|t        dd      z  z  z        t        |      z  t        dt        dd      z   dt        dd      z  t"        z  z   t	        t        dd            t        dd      z  z  d|t        dd      z  z  z        t        |      z  t        dt	        t        dd            z  |dz  z  ddt        |      z  z  z              k(  sJ t        d      }dt        |dt        z  dz   z        z  |t        |dt        z  dz   z        z  z   |dt        z  dz   z  z   }t        |t              t        t        |dz        t	        d|dz   z        z   dt        |      z  z         k(  sJ t        |t        z  t        t        dz        z   j                  t        d      t              t        dt	        dt        dd      z  |t        dd      z  z  dz        z        k(  sJ t        t        dz  dt        z  z
  t              t        dt        d      z  t	        t        d       dz        z        k(  sJ t        dt%        t              z  t%        t              dz  z
        t        t'        dt	        t        d       dz        z  t        d      z              k(  sJ t        t        dz  dt        z  z
  t              t        t        dz   dt        z  z   t              k(  sJ t        dt        t              z  t        t        d      z  z
        t        dt	        t        d       dz        z  t        d      z  dt	        t        d       dz  d      z  t        d      z        k(  sJ t        t	        dt        z        t(        z
        t        t(        t        t(              z  dz        k(  sJ y )Nr   r   r   r   r{  i r   r   r  r  ia	  r   iiru   Tr   r9  pr   rv   )r^   r   r$   rL   r#   r%   r   expandr   r
   r,   r(   r   r   r   Exp1r   r   r8   r1   r   )r  r  resultru   r  rv   s         r   test_solve_lambertr  6  s
   3q6Aq)Yx{-CCCCQ!Q'9hqk\+BBBBQT1%8CF##CF*+, , , !a!bdQh-/
3C)HRO$VAx1~,=%=c!f%DQ%FG3q6RS T T T T 
AaC!Ga<!A!aL.	(B2q!F
SYxQ1hq!n+<)<Q)>%?!@ @AABDEc!fHNNPQ RCS==a(F2221q1SQqS\>115(1a.8CHQN0C,CA,E#Fq#HHIJ J J 1q3qsQw</3(1a.8Ac(32B.C,CA,E#Fq#HHIJ J J 1s1Q3x+(8Aq>*1,-. . . A"iHSV4D0E&FFFFsA!A!CF
*A.)C!H2EEEEsA1s1Q3x+!HaRTN"#$ $ $!A#AaC...q115!HT!WT!W_Q.//01 1 1 a!eT!a%[014a8AJJFFF!Q$1*q...q#a&1Q3,?C(1QVV8$Q&'( ( (!Q$1*q...q3q6AaC<!2Ca2GH!L(1S$q']?+A-x#d1g,/G/IJK K K!Q$1*q...q#a&1Q3,?C(1ST!W--.q0(1S$q'A=N;N2OPQ2QRS S S3q6AaC!+Q/#b8SVG,,-./ / /
CF(Q,		Q#a&	)BQ(1S(1+../01 1 1 3q1Q37|,,q1Q37|;Q?SAY(1a.!99Ac!fHEFGH H Hd#A3q1Q37|,,q1Q37|;Q?a!Q!Xa^"3A"55xA7OQYZ[]^Q_7__abcdfnoprsftctatuvwz{|w}}a!Q!Xa^"3A"55xA7OQYZ[]^Q_7__abcdfnoprsftctatuvwz{|w}}QxA''1,1SV8=>	AA A A 	sA	
3q1Q37|	qQ1q\!22	2Q1q\	ABQ9q!t9x1q5	**Qs1vX
67$9 9 9 9 !A#AaC...q!4a8I	(B!Q'8Aq>(99!;
<<=> > > > A1a("SV)Hc!fWQY//01 1 1CFSVQY./9R#a&##CF*+4- - - - A1a(q!teadlA&' ' ' 3q6Ac!fH,-
8SVGAIs1v%
8SVGAIr""3q6)2+ + + + !A#*+y	#a&
0   r   c            
          t        dd      } t        t        | z  | t        z  z
  t              t        | |  t	        t        |        | z        z  t        |       z        k(  sJ y )Nr   r   )r   r^   r   rL   r#   r%   )ru   s    r   test_other_lambertr    s]    AAA1a(I	A2hAwqy!!#a&(-* * * *r   c            
      
   t        d      } t        t        d        t        t        d      t
        j                  k(  sJ t         | d      dz  t        z   dz    | d            t        t        t         dz
         t        t         dz
              k(  sJ t         | d      dz  dz
   | d      t
        j                        t        dd      k(  sJ t         | d      dz  dz    | d            t        t         t              k(  sJ t        t        dz
  d      t        t              k(  sJ t        t        t              t        t              z
  t        t                    t        t        t                    k(  sJ t        dt
        j                        t
        j                  k(  sJ t        d      t
        j                  k(  sJ t        dt
        j                        t
        j                  k(  sJ t        d	t
        j                        t
        j                  k(  sJ t        t        t              dz
  t
        j                        t        d      k(  sJ t        t        t              dz
  t        t
        j                        t        d      k(  sJ t        t        t        t              d      t        t
        j                        t        d      k(  sJ t        t        t              dz
  t        t              t
        j                        t        d      k(  sJ t!        d
t              }t        |dz
  |t
        j                        t        d      k(  sJ t        t        dz
  dk\  t        t
        j                        t#        dt$              k(  sJ t        t        t              dz
  dk\  t        t
        j                        t#        dt$              k(  sJ t'        t        t        t              dz
  t              t)        t+        t,        dt        z  t.        z  t,        z        t
        j0                              sJ t'        t        t        t        t              d      t              t)        t+        t,        dt        z  t.        z  t,        z        t
        j0                              sJ t        t        dz   | d      z   dz   t              t         | d       dz
         t         | d       dz
        hk(  sJ t        t3        t5        t                    dkD  t        t#        j6                  dt$                    t#        j6                  dt$              k(  sJ y )Nrz   c                  .    t        t        t        z         S r   )rf   r   r   r   r   r   r   ztest_solveset.<locals>.<lambda>  s    xA r   r   r   r   r   r
  TFA)r   rV   r   rf   r   r   r   r   rL   r,   r   r   r<   r8   r$   r   rS   rN   r   r   rP   r   r   r   r   r6   r%   rT  )rz   r  s     r   test_solvesetr    s   A
:./Aq>QZZ'''AaD!GaK!OQqT 
aR!V}dA26l34 4 4AaD!GaK1qww/9R3CCCCAaD!GaK1&)QB*::::AE11---CFSVOSV,	#a&0AAAAAagg&!''111A;!**$$$D)QWW444E!''*ajj888CFQJqww/9Q<???CFQJ177+y|;;;Bs1vqM1agg.)A,>>>CFQJA0IaL@@@QAAE1agg&)A,666AEQJ177+x2>>>CFQJ!OQ0HQOCCC#a&1*a((6!QqSVAX3F

*STTT"SVQ-+XfQ!Bq6I23**.> ? ? ? AqD1Q4K!OQ'T1Q4%!)_,<dAaD519o+NNNN DQL1$aa0DEWXZ\I]]]]r   c            !         t        d      \  } }}t        t        t        t        t                    dz
  t              t        t        | t        fft        d| z  t        z  t        dt        z  t        z  t        z  t        d      z         z   z  t        t        dt        z  t        z  t        z  t        d      z               z         t        t        j                  t        j                                    sJ t        t        t         t        t        t"        t        z  t$        z               z  t&        z   t              t        t        t        t$         t        z   t"        z        t)        t        | t        fft        d| z  t        z  t        t        dt        z  t        z  t        t&         t         z        z   z  t        t        t&        t         z              z         z   z  t        t        t        dt        z  t        z  t        t&         t         z        z   z  t        t        t&        t         z              z               z         t        t        j                  t        j                                          sJ t        t        t         t        t        t        t"        t        z  t$        z                     z  t&        z   t              t        t        t        t$         t        z   t"        z        t)        t        || t        fft        d|z  t        z  t        t        d| z  t        z  t        t        dt        z  t        z  t        t&         t         z        z   z  t        t        t&        t         z              z         z   z  t        t        t        dt        z  t        z  t        t&         t         z        z   z  t        t        t&        t         z              z               z         z   z  t        t        t        d| z  t        z  t        t        dt        z  t        z  t        t&         t         z        z   z  t        t        t&        t         z              z         z   z  t        t        t        dt        z  t        z  t        t&         t         z        z   z  t        t        t&        t         z              z               z               z         t        t        j                  t        j                  t        j                                          sJ t        t        t         t        t        t        t        t"        t        z  t$        z                           z  t&        z   t              t)        t        t        t$         t        z   t"        z        t)        t        ||| t        fft        d|z  t        z  t        t        d|z  t        z  t        t        d| z  t        z  t        t        dt        z  t        z  t        t&         t         z        z   z  t        t        t&        t         z              z         z   z  t        t        t        dt        z  t        z  t        t&         t         z        z   z  t        t        t&        t         z              z               z         z   z  t        t        t        d| z  t        z  t        t        dt        z  t        z  t        t&         t         z        z   z  t        t        t&        t         z              z         z   z  t        t        t        dt        z  t        z  t        t&         t         z        z   z  t        t        t&        t         z              z               z               z         z   z  t        t        t        d|z  t        z  t        t        d| z  t        z  t        t        dt        z  t        z  t        t&         t         z        z   z  t        t        t&        t         z              z         z   z  t        t        t        dt        z  t        z  t        t&         t         z        z   z  t        t        t&        t         z              z               z         z   z  t        t        t        d| z  t        z  t        t        dt        z  t        z  t        t&         t         z        z   z  t        t        t&        t         z              z         z   z  t        t        t        dt        z  t        z  t        t&         t         z        z   z  t        t        t&        t         z              z               z               z               z         t        t        j                  t        j                  t        j                  t        j                                          sJ y )Nz
k1, k2, k3r   r   )r   r   rf   r$   r   rP   r   r   r   r   r   r%   r   rQ   r   r   rx   ru   rv   rw   rI   )k1k2k3s      r   test_multi_expr    s   &JBB#c!f+/1-	&2q'Q"R#ac!eBhQ6G2H(H%ICPSTUVWTWXYTYZ\T\_bcd_eTePfLg%gh

AJJ/
12 2 2 1SQqS1W..2Q7QBFA:&"a
qtBwQ!BaRT 23c#ac(mCDDECPQSTUVSVWYSY\_ab`bcd`d\eSePfilmpqrstqtmuivPvLwHxx2z1::qzz2)4 	56 6 6
 1SS1q\!233a7!<QBFA:&"b!qtBwQ"R#a1R#qbd)1C.Ds3qQRs8}.T*U UVC1Q3r6C1I-.S1X>?@A B B CEHQPQRTPTUWPWZ]^_abcdadegagjmopnpqrnrjsas^tAaCM_" [# Q# N$&)#a1R#qbd)1C.Ds3qQRs8}.T*U&VNW JX FYY2Z #1::qzz1::F	)H 	IJ J J 1SSQqS1W%6!7881<qAQBFA:&"b"a8JqtBwQ"R#a2b3q!A#b&3PQrRSt9BT?UX[\_`abc`c\dXe?e;f1f.gC1Q3r6C1I-.S1X>?@/A +B !B CEHQPQRTPTUWPWZ]^_abcdadegagjmopnpqrnrjsas^tAaCM_" [# Q# N$&)#a1R#qbd)1C.Ds3qQRs8}.T*U&VNW JX FYY Z Z []`adefhijlhlmohoAqtBwQ!BaRT0B-Cc#aPQc(m-S)TTUX[\_`acdefcfgiciloqrprstptlucu`vy|  ~A  BC  DE  BE  ~F  zG  aG  ]H  YI  I  JiJ fKAqtBwQ!BaRT8J5KcRUVWXYVYRZm5[1\'\$]`cdghiklmnknoqkqtwyzxz{|x|t}k}h~  BE  FI  JK  LM  JM  FN  BO  iO  eP  aQ  %Q  !R  SfS bT ^UU2V 

AJJ

AJJG)I 	JK K Kr   c                     ddl m}  ddlm}  | t        dz  dz
  gt        gt
        j                  g      t        dd      k(  sJ  | t        t        z   t        dz   gt        t        g||g      t        d      k(  sJ  | t        t        z   t        dz   gt        t        g||g      t        d	      k(  sJ  | t        t        z   t        t        z
  dz
  gt        t        g||g      t        t        d      dz  t        d       dz  f      k(  sJ  | t        dz
  t        dz
  gt        t        g||g      t        d
      k(  sJ t         | t        t        z   gt        t        g||g      t        t        t        t        fft        t         f      t        |            t        t        t        fft         t        f      t        |                        sJ  | t        t        z   t        t        z   dz   gt        t        g||g      t
        j                  k(  sJ  | t        t        z   t        t        z
  t        dz
  gt        t        g||g      t
        j                  k(  sJ  | t        t        z   t        t        z
  t        dz
  gt        t        g||g      t
        j                  k(  sJ  | t        t        z   t        z   dz
  t        t        z   t        z
  dz
  t        t        z
  t        z
  dz
  gt        t        t        g|||g      t        dt
        j                   t
        j                   f      k(  sJ ddlm}  | t        dz  t        dz  z   dz
  t        t        z   gt        t        g||g      t        dd	      k(  sJ  | t        dz  dz
  t        gt        t        g||g      t        dd      k(  sJ t         | t        dz  t        dz  z
  gt        t        g||g      t        t        t        t        fft        t%        t               f      t        |            t        t        t        fft        t%        t              f      t        |            t        t        t        fft%        t               t        f      t        |            t        t        t        fft%        t              t        f      t        |                        sJ  | t&        t)        |      z  dz
  t&        t+        |      z  g|t&        gt-        dt.              t-        dd      g      t        dt.        df      k(  sJ  | t&        t)        |      z  dz
  t&        t+        |      z  gt&        |gt-        dd      t-        dt.              g      t        d      k(  sJ t         | t&        t)        |      z  t&        z
  t&        t+        |      z  gt&        |gt-        dd      t-        dt.              g      t        t        t        t&        fft&        df      t        t        t&        t&        f      t-        dd                  t        t        |ffd|f      t        t        ||f      t-        dt.                                      sJ y )Nr   )_solveset_multi)r   r   r   r   r   r   r   )r   r   )r   r   r   )theta)r   r   )r   r   r   )r   r   )sympy.solvers.solvesetr  
sympy.setsr   r   r   rL   r   r   rO   rI   r   rQ   r   r   r   	sympy.abcr  r   r   r8   r<   rN   r   )r  r   r  s      r   test__solveset_multir    sf   6  AqDF8aS177)4	$8NNNN AaC1:1vu~>)GBTTTTAaC1:1vu~>)GBTTTTAaC1Q<!Q%@IqQRtTUvXYZ[X\W\]^W^N_D````AaC1:1vu~>)FBSSSS!A#A?VaTGa!W-z%/@AVaTGqb!W-z%/@ABC D D D AaC1Q<!Q%@AJJNNNAaC1ac?QFUENCqzzQQQAaC1ac?QFUENCqzzQQQ AaCE!GQqSU1Wac!eAg6Aq	EuD #Q!&&$9:; ; ;  AqDAIaK1-1vu~F)T[]dJeeeeAqDFA;A?9VU\C]]]] !Q$q!t)q!fuenEuVaTGa#a&\2Ju4EFVaTGaQ[1:e3DEVaTGs1vgq\2Ju4EFVaTGc!fa[1:e3DE	HG H H H
 Ac%jLNAc%jL9E1:a_hr1o.03<Vb"X3NO O OAc%jLNAc%jL9Au:a^Xa_-/2;F2CD D D !CJ,q.!CJ,!?!Ua^Xa_-/05VaTGaV,hva!QRTU.WXVeXK!U4hveeX?VX`abdfXg6hi1kl l lr   c                  \   t        t        t        t              dz  t	        t              dz  z   d      t        t
        j                        t
        j                  u sJ t        t        t        dz  t        t        t              z  z   d      t        t
        j                        j                  t        t        t        t        dz  t        t        t              z  z   dz
  d      t
        j                              sJ t        t        t        t         t        t        t        z        t        t         t        z        z
  z  dz  d      t              t        t        t        dt        z  t        z  t        dz  z         t
        j                               sJ t        t        t        t              z   dkD  t        t
        j                        j                  t        t        t        t        t              z   dkD  t
        j                              sJ t        t        t        t#        t                    t              t        t
        j                        j                  t        t        t        t         t        t#        t                    z   d      t
        j                              sJ t        t$        t        z  t&        z
  t        t
        j                        j                  t        t        t        t$        t        z  t&        z
  d      t
        j                              sJ y )Nr   r   r
  r   )rf   r   r<   r   r8   r   r   r   rH   r   r   r$   rP   r   r   r   r   r   r   r   r   r   r   test_conditionsetr    s(   Bs1vqy3q619,a0!AGG 
WW   Bq!taAh*Aagg 

(<2adQs1vXo&91#=qwwG
HI I I "aRQqSC1I!56q8!<a 
F1ac"fr!tm,ajj9; ; ; AAJNAagg 

(<1s1v:>177;
<= = = Bs3q6{A&!'' 

(<2qb3s1v;&6#:AGGD
EF F F AqDFAqww 

(<2adQh?AGG<
=> > >r   c            	          t        t        t        t              t              t              t        t        t        t        t              t              t        j                        k(  sJ y)z? Checking equality of different representations of ConditionSetN)rf   r   r=   r   r   rH   r   rl  r   r   r   test_conditionset_equalityr    s:     Bs1vqM1%aCFA)TTTTr   c                  T   t        t        dz  t        z
  dz
  t        t        dt                    t	        d      k(  sJ t        t        dz  dz
  t        t        dt                    t	        d      k(  sJ t        t        dz  dz
  t        t        dd            t	        d      k(  sJ y )	Nr   r   r   r   r   r   r  r   rf   r   rN   r   rL   r   r   r   test_solveset_domainr    s    AqD1HqL!Xa_51EEEAqD1Ha!R1Yq\AAAAqD2Iq(1b/2ilBBBr   c            	      .   t        t        t              t        t              z   t        t        j
                        } t        t        t        t        t              t        t              z   d      t        j
                        }| j                  |      sJ y rk  )	rf   r$   r   r<   r   r   rH   r   r   )solutionr.  s     r   test_improve_coverager  $  sY    AQAGG4H"1bQ#a&!&<aggFO_---r   c                  j   t        dt        dz  dz
  z  t        z   dt        dz  dz
  z  dz         } t        dt        z  t        z   dt        z        }t        | t        t        j                        t        j
                  u sJ t        |t        t        j                        t        j
                  u sJ y )Nr   r   r   )r   r   rf   r   r   r   )expr1expr2s     r   test_issue_9522r  *  s    q!Q$(|aAqD1H!12EqsQw!EE1agg&!**444E1agg&!**444r   c                     t        t        dz  dz   t        t        j                        g k(  sJ t        t        dz  dz   t        t        j                        dt        j
                  t        d      t        z  dz  z
  t        j
                  t        d      t        z  dz  z   gk(  sJ t        t        t              t        t        j                        dgk(  sJ t        t        t              t        t        j                        t        dz  t        t        dd      z  gk(  sJ t        t        t              dz   t        t        j                        t        t        dd      z  gk(  sJ t        t        d        y )Nr   r   r   r   r   c                  l    t        t        t        t                    t        t        j
                        S r   )rj   r<   r$   r   r   rl  r   r   r   r   ztest_solvify.<locals>.<lambda>9  s    CFQ(L r   )rj   r   r   r   rl  r   r,   r   r%   r8   r   r   r<   rV   NotImplementedErrorr   r   r   test_solvifyr  2  s   1a4"9a)R///1a4!8Q,QVVd1gaik5I12$q'!)A+1E1G G G G3q61agg&1#---3q61agg&2a4HQN1B*CCCC3q6A:q!''*r(1a./@.AAAA
 LMr   c                     t        dt        dk  ft        dz  t        dk  ft        t              df      } t        dt        dk  ft        dz  dt        z  z   dz
  t        d	k\  f      }t        dt        t        d      ft        dz  t	        t              z  df      }t        dt        t        t
              ft        t
        z
  t        t              z  df      }t        | t        t        j                        dgk(  sJ t        |t        t        j                        d
dgk(  sJ t        |t        t        j                        dgk(  sJ t        |t        t        j                        t
        gk(  sJ y )Nr   r   r   r   Tr   r   r  )
r/   r   r%   r   r   r   r<   rj   r   r   )p1p2p3p4s       r   test_solvify_piecewiser  <  s   	Aq2v;AqAvQ	?B	Aq3w<!Q$1*q.!r'!:	;B	Ar!Qx=1a4A;"5	6B	Ar!Ry>QVSVOT#:	;B 2q!''"qc)))2q!''"r1g---2q!''"qc)))2q!''"rd***r   c                     t        dd      } t        t        t        |             | t        j
                        dt        gk(  sJ t        d      } t        t        t        |             | t        j
                        J y )Nr   Tr   r   )r   rj   r<   r   r   r   r   r   s    r   test_abs_invert_solvifyr  I  s_    sD!A3s1v;177+2w666sA3s1v;177+333r   c                  ~	   t        dt              t        dgg      t        dgg      fk(  sJ t        dt              t        dgg      t        dgg      fk(  sJ dt        z  t        z   dt        z  z
  dz
  t        t        z
  t        z
  t        t        z   dt        z  z   dz
  g} t        dt        z  dt        z  z   t        z
  d      t        dt        z  dt        z  z
  dt        z  z   d      dt        z  t        z   dt        z  z
  g}t        | t        t        t              \  }}|t        g d	g d
g dg      k(  sJ |t        dgdgdgg      k(  sJ t        |t        t        t              \  }}|t        g dg dg dg      k(  sJ |t        dgdgdgg      k(  sJ t        t        z  t        z  t        t        z  z   t        t        z  z   t        z
  t        t        z  t        t        z  z   t        t        z  z   t        t        z  z   t        z
  t        t        z  t        t        z  z   t         t        z  z   t"        z
  gt        t        t        t              \  }}|t        t        t        z  t        t        gt        t        z   t        t        gt        t        t         gg      k(  sJ |t        t        gt        gt"        gg      k(  sJ t%        t&        fd       t%        t&        fd       t%        t(        d        t%        t(        d        t%        t(        d        t%        t&        d        t%        t&        d        t        t        gdt        z  g      t        dgg      t        t         gg      fk(  sJ t        t        t        t        dt        z  dz   z  dz   z  z   t              t        dt        z  t        z  dz   gg      t        t         dt        z  dz   z  gg      fk(  sJ t        t        t        t        z  t        t        z  z   dz
  gdt        z  dt        z  z   t        z
  gg      t        t              t        t        t        gddgg      t        dgt        gg      fk(  sJ t        t        t        dz   d      t              t        dgg      t        dgg      fk(  sJ y )Nr   r   r   r   r   r  r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   c                      t               S r   )ra   eqns3s   r   r   z*test_linear_eq_to_matrix.<locals>.<lambda>i  s    259 r   c                  :    t         t        t        t        g      S r   ra   r   r   r  s   r   r   z*test_linear_eq_to_matrix.<locals>.<lambda>k  s    251a)D r   c                  b    t        t        dt        z  t        z   dt        z        t        g      S r   ra   r   r   r   r   r   r   z*test_linear_eq_to_matrix.<locals>.<lambda>m  s#    #6r!A#'1Q37G!#M r   c                  4    t        t        dz  gt        g      S r   ra   r   r   r   r   r   z*test_linear_eq_to_matrix.<locals>.<lambda>n  s    #61vs#C r   c                  F    t        t        t        z  gt        t        g      S r   r  r   r   r   r   z*test_linear_eq_to_matrix.<locals>.<lambda>o  s    #6!uq!f#E r   c                  F    t        t        t        t              t              S r   r  r   r   r   r   z*test_linear_eq_to_matrix.<locals>.<lambda>r  s    22a8Q? r   c                  L    t        t        t        t        dz         t              S r   r  r   r   r   r   z*test_linear_eq_to_matrix.<locals>.<lambda>s  s    22aQ<C r   r  r   r   )ra   r   Matrixr   r   r   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r   rV   r   rt   )eqns1eqns2r  Br  s       @r   test_linear_eq_to_matrixr  Q  s   q!$!u(FFFFq!$!v(GGGG qS1Wqs]QA	1q51Q3;+;<E!ac	Aq!2acAaCi!A#or#:BqD1HqsNKEuaA.DAq
K;<<<<aS2$'((((uaA.DAq
J<====bTA3'(((( qSUQqS[1Q3"AaC!A#I!Oac$9A$=qsQqSy1Q3QR?RSEuaA.DAq1aa!eQ]Q1I>????aS1#'''' :9:
:DE
>MN
>CD
>EF :?@
:CD sQqSE*vse}frdVn.MMMM q1a1qkAo#66:1Q}vAaC!G~&67?9 9 9 9v
A#!)a-1Q319q=/* ,-.3AA &1#s"4766 6 6
 r!a%|Q/uvtf~4' ' ' 'r   c                      t        t        t        dt        z  dt        z  z   z  dt        z  z   d      t        t              t        dt        z  dt        z  dz   gg      t        dgg      fk(  sJ y )Nr   r   r   r   )ra   r   ru   r   r   r  r   r   r   test_issue_16577r    sh    r!QqS1Q3Y-!A#"5q91a@1acAg &1#-E1 1 1 1r   c                  r    t        t        t              dt              t        t        j                  fk(  sJ y rk  )rd   r$   r   r   r   r   r   r   test_issue_10085r    s%    s1va"q!**o555r   c                     t        d      \  } }t        g dg dg dg      }|d d d df   |d d df   fx}\  dz  z   | z   |z   dz
  dz  z   d| z  z   |z
  dz
  dz  d	z  z   d
|z  z   d	z
  gt        dz  d|z  z
  dz   d|z  dz   |f      }t        | |f      |k(  sJ t        g| |f |k(  sJ t        || |f      |k(  sJ t        |g| |f |k(  sJ t        dt              \  } }t        || |      t        dz  d|z  z
  dz   d|z  dz   |f      k(  sJ t        t        fd       t        t        fd       t        t        fd       t        t        fd       t        t        fd       t        t        fd       t        t        fd       t        t        d        t        t        d        t        t        t        z   dz
  t        dz  t        z   dz
  gt        t        g      t         dz   t        dz   dz   fhk(  sJ t        t        t        gt        t        gg      t        t        gt         gg      f}t        t         t         z  t        t        z  z   t        t        z  t        t        z  z
  z  t        t         z  t        t        z  z
  t        t        z  t        t        z  z
  z  f      }t        |t        t        g      |k(  sJ t        g dg dg dg      t        g d      t        ft        t        t        f      t"        j$                  u sJ t        d      \  }}t        dt&        z  |z  dt&        z  |z  d|z  gdt&        z  |z  dt&        z  |z  d|z  gdddt&        z  ||z  z  gg d g      }t        |      t        dt&        ||z  z  f      k(  sJ t        g d!g d"g      }t        |t        t        t        t        t              t        t        dt        dt        f      k(  sJ t        d#      \  }	}
t        t        g d!ddddd|
gg            t        |	d|
f      k(  sJ t        d$      \  }	}
t        t        g d!ddddd|
gg            t        |	d|
f      k(  sJ t        d%      \  }	}
t        t        g d!ddddd|
gg            t        |	d|
f      k(  sJ t        d&      \  }	}t        |t)        d'            t        |	dd|f      k(  sJ |	|d(<   t        d)      |d(<   t+        t        |t)        d't                    j,                        d	k(  sJ t/        d*      }t         |t              dz
  g |t                    t        d+      k(  sJ dd,lm}m}m} ||z  }d-|z  t        z   t        z   d.|z  |z  dt        z  |z  z   gt        t        t              ||z  t9        d/d      z  |t9        d	d      z  fhk(  sJ t        t;        t        t        t        z         gt        t        g      t        dfhk(  sJ t        t;        t        t        t        z  z   dt        z         gt        g      d0hk(  sJ t        t;        dt        z   t        t        t        z  z         gt        g      d0hk(  sJ t        t        d1        t        g t        g      t"        j$                  u sJ t        dgt        g      t        fhk(  sJ t        t        gt        t        g      dt        fhk(  sJ t        t        dgt        t        g      dt        fhk(  sJ y )2Nzx1, x2, x3, x4)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x:4)clsc                      t               S r   rb   )Eqnss   r   r   ztest_linsolve.<locals>.<lambda>  s    x~ r   c                      t               S r   r  x1s   r   r   ztest_linsolve.<locals>.<lambda>  s    x| r   c                      t               S r   r  )r  x2s   r   r   ztest_linsolve.<locals>.<lambda>  s    xB/ r   c                       t         f      S r   r  )r  r  r  s   r   r   ztest_linsolve.<locals>.<lambda>  s    xb"5 r   c                       t               S r   r  )r  r  r  r  s   r   r   ztest_linsolve.<locals>.<lambda>  s    x1b"5 r   c                       t         g        S r   r  r  s   r   r   ztest_linsolve.<locals>.<lambda>  s    xb"5 r   c                  0    t         gd   fD              S )Nc              3       K   | ]  }|  y wr   r   r  s     r   r   z2test_linsolve.<locals>.<lambda>.<locals>.<genexpr>  s     .CQq.Cs   r  r  s   r   r   ztest_linsolve.<locals>.<lambda>  s    x.C2r(.CD r   c                  p    t        t        t        z   dz
  t        dz  t        z   dz
  gt        t        g      S )Nr   r   r   )rb   r   r   r   r   r   r   ztest_linsolve.<locals>.<lambda>  s*    8QUQYQ
Q,G!Q#P r   c                  p    t        t        t              t        z   t        t        z   gt        t        g      S r   )rb   r8   r   r   r   r   r   r   ztest_linsolve.<locals>.<lambda>  s"    8SVaZQ,?!Q#H r   r   r   r   r   )r   r   r   )r   r   r  r   r   r   z	A B J1 J2r   )r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   ztau0 tau1 tau2 _tau0ztau00 tau01 tau02 tau0ztau00 tau01 tau02 tau1z
x0, x2, x4r   r   r   _x0rz   )r   )meternewtonkilor      ir  c                  n    t        t        t        dz  t        dz  t        z         gt        t        g      S r   )rb   r   r   r   r   r   r   r   ztest_linsolve.<locals>.<lambda>  s+    "QT1a4!8$%1v. r   )r   r  rL   rb   r   rV   r   rt   r   r   r   ru   rv   rw   rx   ry   r{   r   r   r   rT   r   free_symbolsr   sympy.physics.unitsr  r  r  r   r   )x3x4Msystem1r   system2J1J2	Augmatrixx0r   rz   r  r  r  kNr  r  r  r  r  s                   @@@@@r   test_linsolver    s   -.NBB 	!2ODEAq#2#vY!R%((Gda2INR!#R!B$Y2%5%:R%?bD1R4K!B$"$D RUQrT\A%r1R4!8R8
9CD2r2r*+s222D,BB+,333Gb"b"-.#555G/r2r2./3666U.NBBGRR,		B2	2qtax,1. . . . :-.
:+,
:/0
:56
:56
:56
:DE >PQ
>HIQUQYQ
Q/!Q8qb1fq!teai=P<QQQQ 	AA AaSzA!fG
qbdQqSj1Q319-!ac	AaC!A#I/FG
HCGaV$+++ 		9i01AyAQFQ1I&!**444 ;'LAq"b	
1R1RB	Ab"Q$r'1R4 	
AqsBrE{	
 I Iq!$	1aBi.(AAAA *,>?@IIq!Q1-Aq!Q?1KKKK 45OBBF.Aq!Q0DEF 
Ar3+,- - -67OBBF.Aq!Q0DEF 
Ar3+,- - -67OBBF.Aq!Q0DEF 
Ar3+,- - - &JBBI/4 
Ar1b)*+ + +If  Ifx#CU355A\CFGH H H 	AQqTAXJ!%4888 87	fBbD1HqL"R%+!E	12DD!Q&[#q))2hq!n+<=$? ? ? ?
 R1q5\NQF+Ax777RAaCQ'(1#.4&888RAq1Q3w'(1#.4&888
> / 0 B

***QC!1$'''QC!Q aVH,,,QFQF#Ax///r   c                  H    d } d} | |      \  }}}t        ||      |k(  sJ y )Nc                 H   t        dj                  |             }t        dj                  |             }||z   }g }t        j                   f| z  t        j                  f| z  z   }t	        ||      D ]!  \  }}|j                  ||z   ||z
  dz   g       # ||t        |      fS )Nzx:{}zy:{}r   )r   formatr   r   r   extendrL   )r   r   r   symseqsr   xiyis           r   _mk_eqs_solz/test_linsolve_large_sparse.<locals>._mk_eqs_sol  s    V]]1%&V]]1%&Bwwj1ny1},"bk 	/FBJJRb1-.	/D)C.((r   i  r  )r  r   r  r  r   s        r   test_linsolve_large_sparser    s2    
) 	A ^NCsC#%%%r   c                      t        g dg dg dg      } t        g d      }t        | |gt        t        t        f      t        d      k(  sJ t        g dg dg      } t        |       t        d      k(  sJ y )	N)r   r   r   )r   r   r   r  )r   r   r   )r   r   r   )r   r   r  )r   r   r   )r   r   )rD   rb   r   r   r   rL   )r  r  s     r   test_linsolve_immutabler    sg    iI>?AZ(AQFQ1I&)J*????i45AA;)F++++r   c                     t        d      } t        dt        z        dt        dt        z        z  z
  dt        t              z  z   dz
  }t        t              dz  dt        t              z  z
  dz   }t        t              dz  t        t              z
  }t        t        dz         }t        t        dz         dz
  }dt	        t              z  }dt        z  }t        t        | d| z  t        z        t        j                        }t        t        | d| z  t        z  t        z         t        j                        }	t        t        | d| z  t        z  t        dz  z         t        j                        }
t        t        | d| z  t        z  dz
        t        j                        }t        t        | d| z  t        z  dz
  t        z         t        j                        }t        |t        t        j                        t        dt	        d      t	        d            k(  sJ t        t        |t        t        j                        |
      sJ t        t        |t        t        j                        t        ||	|
            sJ t        t        |t        t        j                        t        ||            sJ t        |t        t        j                        t        d      k(  sJ t        |t        t        j                        t        j                  k(  sJ t        |t        t        j                        t        j                  k(  sJ t        t        t        t!        dd            t        j                  k(  sJ y )	Nr   r   r   r   r  r   r   r   )r   r$   r   r<   r%   rI   r   r   r   r   rg   r   rL   r   rO   r   rN   )r   r  r  f3f4f5f6f7r   r   s3s4s5s                r   test_solve_decompositionr(    sj   c
A	QqSAc!A#hJ	CF	*Q	.B	QQs1vX		!B	QSV	B	QUB	QUaB	
3q6B	
1B	&AaCF#QZZ	0B	&AaCFRK(!**	5B	&AaCFRTM*AJJ	7B	&AaCFQJ'	4B	&AaCFQJO,ajj	9Br1agg.)As1vs1v2NNNN$RAGG4b999$RAGG4eBB6GHHH$RAGG4eBmDDDr1agg.)B-???r1agg.!**<<<r1agg.!**<<<q!Xa^4

BBBr   c            	      X
   t        g g       t        j                  k(  sJ t        g t        t        g      t        j                  k(  sJ t        t        t        z
  dz
  g} t        t        gt        t        g      t        dt        f      k(  sJ t        | t        g      t        j                  k(  sJ t        t        t        dt        z  t        z  t        dz  z         t        j                        f}t        t        t        t              dz
  gt        g      t        t        |                  sJ t        t        t        dt        z  t        z  t        z         t        j                        t        d      ft        t        t        dt        z  t        z        t        j                        t        d      ff}t        t        t        t              t        dz
  gt        t        g      t        |       sJ t        t        dz  dz
  gt        g      t        dd      k(  sJ t        t        t        f      }t        t        t        z
  dgt        t              |k(  sJ t        dt        t        z
  gt        t              |k(  sJ t        t        t        z
  t        t        z
  gt        t              |k(  sJ t        t        dgt        t              t        dt        f      k(  sJ t        d      }t         |t              dg |t              t              t        dt        f      k(  sJ t         |t              dg |t               |t                    t        d |t              f      k(  sJ t        dt              }t        |dg|t              t        dt        f      k(  sJ t        t        dz  dz
  gt        t              g      t        t        j                  f      k(  sJ t        t        dz  dz
  gt        t                    t        t        j                  f      k(  sJ t        t        dz  dz
  gd      t        t        dz  f      k(  sJ t        t        dz  dz
  gt        t        z         t        t        j                  f      k(  sJ t        t!        dt        t        z         t!        dt         t        z   dz
        t!        dt         t        z   dz
        gt        t              t        t        j"                   d	t        j"                  z  f      k(  sJ y )
Nr   r   r   r   r  r  rz   r  r   )ri   r   r   r   r   rL   rI   r   r   r   r   r   r<   r   r   rS   r   r   )systemsolnrz   r  s       r   test_nonlinsolve_basicr,  5  s   r"+++r1a&!QZZ///Q^FsAq6"iA&7777vs#qzz111VAqs2v1}-qzz:<Dc!fqj\A3/5;1GHHHfQ!B,ajj99Q<HfQ!B'4imDFDc!fa!e_q!f5y$7GHHH1qzA3'9UD+AAAAaVDAqz1a(D0001q5z1a(D000Aq1u~q!,4441vq!$	1a&(9999A!ay!A$*iA.????!ay!A$!-Aqt91EEEEQA1vq!$	1a&(99991ay3q6(+y!**/GGGG1ay#a&)Y

}-EEEE1ay!$	1a4'(::::1ay!a%(Iqzzm,DDDD1a!ebQBFQJ&7ArAvz9JKQPQRV_
&&!AFF(W   r   c                      t        t        t        ft         t        f      } t        t        t              t        z
  gt        t              | k(  sJ y r   )rL   r   ri   r   r   )r+  s    r   test_nonlinsolve_absr.  U  s9    aVqb!W%DA
|Q*d222r   c                  H    t        t        d        t        t        d        y )Nc                  0    t        t        dz  dz
  gg       S rO  ri   r   r   r   r   r   z2test_raise_exception_nonlinsolve.<locals>.<lambda>[  s    {AqD!G9b9 r   c                  .    t        t        dz  dz
  g      S rO  r1  r   r   r   r   z2test_raise_exception_nonlinsolve.<locals>.<lambda>\  s    {AqD!G95 r   )rV   
IndexErrorr   r   r   r    test_raise_exception_nonlinsolver4  Z  s    
:9:
:56r   c                     t        t        t              dz
  t        t              dz
  gt              t        j
                  k(  sJ t        t        t        dt        z  t        z  t        dz  z         t        j                        f} t        |       }t        t        t        t              dz
  t        t              gt              |      sJ y r   )ri   r<   r   r8   r   r   rI   r   r   r   r   rL   r   )soln1r+  s     r   test_trig_systemr7  _  s     A
CFAI/3qzzAAAfQ!BA.

;=EUDc!fqj#a&115t<<<r   c                     t         t        z   t        dz  z
  t        t               t        t              z   dz
  g} t	        t        t        t        t        z  t        dz  z         t        j                        t	        t        t        t        t        z        t        j                        f}t        |      }t	        t        t        t        t        z        t        j                        t	        t        t        t        t        z  t        dz  z         t        j                        f}t        |      }||z   }t        t        | t         t        g      |      sJ t        t               t        t              z   t        d      dz   dz  z
  t        t               t        t              z
  t        d      dz
  dz  z
  g} t        t	        t        t        dt        z  t        z  t        dz  z         t        j                        t	        t        t        dt        z  t        z  t        t        dd      z  z         t        j                              }t        t	        t        t        dt        z  t        z  t        dz  z         t        j                        t	        t        t        dt        z  t        z  t        t        dd      z  z         t        j                              }t        t        | t         t        g      t        ||f            sJ y )Nr   r   r   r   r   )r   r   r   r<   rI   r   r   r   r   rL   r   ri   r,   rO   r   )syssoln_1soln_2r+  soln_xsoln_ys         r   test_trig_system_failr>  h  s    q52a4<Q#a&1,
-Cva21-qzz:1R4!**-/FvFva2

31R4A:&

35FvFF?DS1a&)4000 q6CF?d1gai]*CFSVOtAw{Ao,M
NC8F1ac"fr!tm4ajjA1Q3r6Bx1~$556

CEF8F1ac"fr!tm4ajjA1Q3r6Bx1~$556

CEFS1a&)9ff5E+FGGGr   c                     t        dd      \  } }}}}}t        | |z  | |z  | z
  g| |g      t        d|f      k(  sJ |dz  ||z  z   ||z
  g}t        |||g      t        d| | f      k(  sJ ||z   |z   |z   }||z  ||z  z   ||z  z   ||z  z   }||z  |z  ||z  |z  z   ||z  |z  z   ||z  |z  z   }	||z  |z  |z  dz
  }
|||	|
g}d|z  | d|z  t        |      t        d      z
  f}d|z  | d|z  t        |      t        d      z
  f}t        ||      }t        |||||g      |k(  sJ t        | d	z  d
| dz  z  z
  || z  z   | t        dz  z  |t        z  dz
  g| |t        g      ddt        z  t        fhk(  sJ y )Nzx, y, a, b, c, dT)extended_realr   r   r   r   r   r   r   r   )r   ri   rL   r   )r   r   ru   rv   rw   rx   r*  eq1eq2eq3eq4r   r   r+  s                 r   %test_nonlinsolve_positive_dimensionalrF    s   1FAq!Q1!QqS1W~1v.)QF2CCCCdQqSj!a% Fv1v&)FaR!H*EEEE q519q=C
A#!)ac/AaC
C
A#a%!A#a%-!A#a%
!A#a%
'C
A#a%'A+C3S!FqD1"ac9Q<)A,67DaC!RT9Q<)A,67DT4 Dv1a|,4441qAv!+Qq!tVQqS1W=1ayI!QK=  r   c                     t        dd      \  } }}t        | dz  |z   dz
  | dz  |z   g| |g      t        j                  k(  sJ | dz   |f}t        | |z   dz  dz
  | |z   dz
  g| |g      t	        |      k(  sJ | dz  |dz  z
  g}t	        | |f||f      }t	        t        |       |ft        |      |f      }||z   }t        || |g      |k(  sJ | dz  |dz  z
  g}t	        || f||f      }t	        |t        |       f|t        |      f      }||z   }t        ||| g      |k(  sJ | dz  |z   dz
  | |z
  dz
  g}t        || |f      t        ||| f      k7  sJ t        | dz   |dz  z
  |z   d| z  d|z  t        j                  g| ||g      t        j                  k(  sJ t        | |z   |z   t        j                  t        j                  t        j                  g| ||g      t        j                  k(  sJ | dz   |dz  z  | |z  |z  z   |dz  z   d| z  |dz  z  ||z  z   | |z  d|dz  z  z   d| dz  z  |z  | |z  z   g}t        || ||g      t	        dd|f| ddf      k(  sJ y )	Nr   Tr   r   r   r   r   r   )r   ri   r   r   rL   r   r   )r   r   r   r   r*  	soln_realsoln_complexr+  s           r   test_nonlinsolve_polysysrJ    s   id+GAq!1q1adQh/!Q8AJJFFF
aAQ
QA	2QF;y|KKKdQTk]FA2q'Aq6*Is1vgq\CFA;7L
l
"Dv1v&$...dQTk]F!aR1a&)Ia#a&\As1v;7L|#Dv1v&$...dQhlAEAI&Fv1v&+fq!f*EEEEA1q("Q$1aee<q!QiHAJJVVVA	155!%%7!QCqzzQQQ!teAqDj1Q3q5 1a4'AadQqS!A#!Q$,1a4PQ	TUVWTWXFv1ay)Y1ay1a)-LLLLr   c                     t        dd      \  } }}}| |z   |z  |dz  z
  dz   g}||z  |dz  z
  dz   |z  }| |f}t        || |g      t        |      k(  sJ |dz  | dz  z  |dz  |dz  z  t        |       z  z
  g}|| df}t        | dz         t	        |       z  | |f}t        | dz        t	        |       z  | |f}	|  t        | dz        z  | |f}
| t        | dz        z  | |f}|| |g}t        ||
|||	      }t        ||      |k(  sJ y )Nz
x, y, z, nTr   r   r   )r   ri   rL   r$   r   )r   r   r   r   r*  s_xr+  soln_real_1soln_real_2soln_real_3soln_complex_1soln_complex_2r  s                r   #test_nonlinsolve_using_substitutionrR    sQ   d3JAq!Q1uai!Q$"#FQ3A:>1
CD!9Dv1v&)D/999d1a4i!Q$q!t)CF**+Fa)K!H9SV#Q*Kqs8CF?Aq)KbQqSk1a(NAaCj!Q'Nq!9D[..["Dvd#t+++r   c                     t        d      } t        t        t        t              t        t              z
  dt        z  dz
  gt        t        g      t        t        | d| z  t        z  t        z  t        t        t        dd                  z         t        j                        t        dd      fh      sJ t        t              t        t              z
  dt        t              z  dz
  g}t        t        |t        t        g      t        t        | t        d| z  t        z  t        z   z  t        t        t        d                  z         t        j                        t        d       ft        t        | t        d| z  t        z  t        t        d| z  t        z  t        z  t        d      z
              z   z  t        t!        t        d| z  t        z  t        z  t        d      z
                    z         t        j                        t        t        | d| z  t        z  t        z  t        d      z
        t        j                        fh      sJ t        t              t        t              z
  t        dz  dz
  g}t        t        |t        t        g      t        t        | t        d| z  t        z  t        z   z  t        t        d            z         t        j                        dft        t        | d| z  t        z  t        z  t        t        d            z         t        j                        dfh      sJ t        t              dz
  t        dz  dz
  g}t        t        |t        t        g      t        d      t#        d       ft        d      t#        d      ft        t        | d| z  t        z  t        z  t        d      z         t        j                        t%        t#        d             ft        t        | d| z  t        z  t        z  t        d      z         t        j                        t%        t#        d            fh      sJ y )Nr   r   r   r   r   r   )r   r   ri   r$   r   r<   r   rI   r   r   r   r%   r   r   r   r   r   r,   rL   )r   r*  s     r   test_nonlinsolve_complexrT    sW   c
Ac!fs1voqsQw7!Q@	&AaCE"Hs3x1~+>'??@!**	MxXY[\~^C` a a a !fs1voqQx!|,FVaV,	&Aqs2v{Os3q6{+, -./jj
:<?F7	D	&Aqs2vC!Ab3q60A,B(CCDs3qs1uRx#a&'8#9:;< =>?jj
J1Q3q58c!f,-qzz:	</= > > > !fs1voq!tax(FVaV,	&Aqs2v{Oc#a&k9:AJJ	GL	&AaCE"Hs3q6{23QZZ	@!D/F G G G !fqj!q&1*%FVaV,	Q$q'SVT!W-	&AaCE"Hs1v-.

	;YQx=PQ	&AEAINSV34ajj	A9TRSWCUV/X Y Y Yr   c                      t        t        t              t        z
  t        z
  t        dz
  gt        t        t        g      dt        z
  dt        fhk(  sJ y r   )ri   r,   r   r   r   r   r   r   test_nonlinsolve_radicalrV    s>    Q!aQ/!Q;Q1NNNr   c                  T    ddgt        t        t        z   dz  dz
  t        dz  t        dz  z
  dz
  gt        t        g       t         fdt	        d      D              sJ t        t        t        z   dz  dz
  t        t        z   dz  dz
  gt        t        g      t
        j                  k(  sJ t        t        dz  t        dz
  dz  z   dz
  dt        z  d	z
  dt        z  gt        t        g      t
        j                  k(  sJ t        t        dz  t        z   dz
  t        t        z   dz  t        t              gt        t        t        g       g d
t         fdt	        d      D              sJ t        t        t        dz  z
  t        dz  t        z
  d	z   gt        t        g       dddt        z  z
  ddt        z  z   fddt        z  z   ddt        z  z
  fddt        z  z
  ddt        z  z
  fddt        z  z   ddt        z  z   fgt         fdt	        d      D              sJ y )N)g      g      )g      ?g      ?r   r  g      ?c              3      K   | ];  }t        d       D ]+  }t        j                  |   |   |   |   z
        dk   - = ywr   &.>Nranger  argsr   r}   r~   ru  r   s      r   r   z+test_nonlinsolve_inexact.<locals>.<genexpr>  R      4%(4%& 388A;q>#a&)+,t3 43 4   AA      ?g      ?r   )g[l׿g[l?r   rb  )g[&,t=?g[&,t=r   c              3      K   | ];  }t        d       D ]+  }t        j                  |   |   |   |   z
        dk   - = yw)r   rZ  Nr[  r^  s      r   r   z+test_nonlinsolve_inexact.<locals>.<genexpr>  r_  r`  r   r   )gFgZ*4?gr2ǿgdxAW?gyU;~Fg ;W2%?gqy?g??gأ}?gZ A?c              3      K   | ];  }t        d       D ]+  }t        j                  |   |   |   |   z
        dk   - = ywrY  r[  r^  s      r   r   z+test_nonlinsolve_inexact.<locals>.<genexpr>   sR      4%(4%& 388A;q>CF1I-.5 45 4r`  )
ri   r   r   r   r\  r   r   r%   r   r   )ru  r   s   @@r   test_nonlinsolve_inexactre    s)   ^
,C
AzA~q!tad{T'9:QF
CC 4a4 4 4 4 Q
QQ
T(9:QFCqzzQQQ1C!|+f4acCi1E1vN::   q!tax#~Az3q6:Q1I
FC5C  4a4 4 4 4 q1a4xAC01a&
9C0!1!!33 1! 335!1!!33 1! 335 1! 33 1! 335 1! 33 1! 3356C  4a4 4 4 4r   c            	         t        dd      \  } }t        dt        |dz        z  |f      }t        |  t        t	        |             z  |f| t        t	        |             z  |f      }t        | t	        | dz        z  | f      }t        dt        |dz        z  |      }t        | dz  |dz  t	        |       z  z
  g| |g      |k(  sJ t        | dz  |dz  t	        |       z  z
  g|| g      |k(  sJ t        | dz  |dz  t	        |       z  z
  g|| g      |k(  sJ t        | dz  |dz  t	        |       z  z
  g| |g      |k(  sJ y )Nx, yTr   r   )r   rL   r#   r,   r$   ri   )r   r   r6  soln2soln3soln4s         r   test_solve_nonlinear_transrk    sU    6%DAqq!A#*+Er$s1v,*QtCF|^Q,?@EqQqSz1o&Ea1oq)E1q!tCF{*+aV4===1q!tCF{*+aV4===1q!tCF{*+aV4===1q!tCF{*+aV4===r   c                  z)   t        d      } d| dz  z  | dz  z   dz   t        z   }t        ||       }t        |j                  d   ddt        z  z
  z
        dk  sJ t        |j                  d	   d
dt        z  z   z
        dk  sJ t        |j                  d   ddt        z  z
  z
        dk  sJ t
        j                  | dz  z  | dz  z   t
        j                  z   t        z   }t        dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   dz  ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dz  z   t        d	      dz  z   t        t        ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   z        dz        z  dz  t        d      dz  z
  dt        t        ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   z        dz        z  ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   dz  ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dz  z   t        d	      dz  z  z  z  z
  t        dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   dz  ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dz  z   t        d	      dz  z   t        t        ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   z        dz        z  dz  dt        t        ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   z        dz        z  ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   dz  ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dz  z   t        d	      dz  z  z  z  z   z  z   t        d       dz  t        d      dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   dz  ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dz  z   t        d	      dz  z  z  t        t        ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   z        dz        z  dz  z
  dt        d	t        d	       dz  t        d      t        z  dz  z
  t        d      dz  dt        z  z   t        dddt        z  z   dz  z         dz  z   t        d	      dz  z  z  z        z  dz  z
  dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   dz  ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dz  z   t        d	      dz  z  t        t        ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   z        dz        z  dz  z   t        dt        d	t        d	       dz  t        d      t        z  dz  z
  t        d      dz  dt        z  z   t        dddt        z  z   dz  z         dz  z   t        d	      dz  z  z  z        z  dz  dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   dz  ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dz  z   t        d	      dz  z  t        t        ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   z        dz        z  dz  z   t        d      dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   dz  ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dz  z   t        d	      dz  z  z  t        t        ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   z        dz        z  dz  z   z  z   t        d       dz  dt        d	t        d	       dz  t        d      t        z  dz  z   t        d      dz  dt        z  z   t        dddt        z  z   dz  z         dz  z   t        d	      dz  z  z  z        z  dz  z
  t        d      dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   dz  ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dz  z   t        d	      dz  z  z  t        t        ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   z        dz        z  dz  z   dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   dz  ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dz  z   t        d	      dz  z  t        t        ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   z        dz        z  dz  z   t        t        d       dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   dz  ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dz  z   t        d	      dz  z  z  t        t        ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   z        dz        z  dz  dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   dz  ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dz  z   t        d	      dz  z  t        t        ddt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  z   dt        d      z  dt        d	      dz  z  z  t        t        t        d      dz        dz        z  dz  t        d      dz  z   z        dz        z  dz  z   dt        d	t        d	       dz  t        d      t        z  dz  z   t        d      dz  dt        z  z   t        dddt        z  z   dz  z         dz  z   t        d	      dz  z  z  z        z  dz  z
  z  z         }t        ||       |k(  sJ y )Nr   ra  r   r   r   g	nBg/H|n$?rZ  r   guӿg+N?gb?gqw?i|  r      r  +   r  r   i 6   r   )r   r   rf   r  r]  r   r   rL   r,   r<   r6   r8   r    r   )r   n1r  ru  s       r   test_issue_14642rq    s   sA	QT!Q$s	1	BAHx}}Q#47H7J#JKLPTTTTx}}Q#58H8J#JKLPTTTTx}}Q#47H7J#JKLPTTTT 
1QT	!&&	 	"B
qay1a0T!C&)_Q5F1GGIbE!G$q'	%!A$q&/ 9#d1S6"9o? ; !! 1a! !!$T2$q'	%!A$q&/0IQsVBY!"1##$1% ,%'(ay1a'@TcF2IFF B ((eAg(&+' &(()&* "++ ,-	- 01tAv	6 9:#dBd1gIead1fo%c$qvby/!*;&<<Q>E?AB47AaDFOBQsVBY 12B334B578uQwB?D@ ?AAB?C ;D 9DEFGJAaDFOJ$$'QsVBY(9$:J;;<J=?@uQwJGIJIK!DG)EAaDFO+CQsVBY0A,BB1DDqHIILMaDMH F9		 $q'	%!A$q&/1#d1S6"9oa6G2HHJbE!G$q'	%!A$q&/ 9#d1S6"9o? ; !! !Q    #D"qay1a/H3OAJ 0 0! +!#$T!W9UQqT!V_#<SafRiB > $$bE!G$* %%  !!! "#	# &'s4aQi!Q6OQsVBY!"7##$7% 2%'(ay1a'@T!C&K FF B (("a( 1! ,""#,$ (% &%&'!DG)EAaDFO*CCcF2III E ++eAg+&()**-/!DG)EAaDFO2KQsVBY!"3##$3% .%'(-)*),-aDF)4 '4&5	5 66" 9:!uQwa1GLAaDFOL$$'QsVBY(9$:L;;<L=?@uQwLGIJKK!DG)EAaDFO+CQsVBY0A,BB1DDqHKILMaDMJ B D"qay1a8T!C&)_Q=N9OO  4751Q46?*3tAcF2Iq/@+AA!CaeAgMO P B
 B 8
 badU1WtAwqy{2QrU1Wr!t^d4"Q$YNL GG 6!"1a5) ) * + ++,-8- 234751Q46?1J33OAL 2 2!#$R572+-.1/24qay1a7PQsVBY!"8##$8% 3%'(2)1),-aDF0447b1T!W9AaDFODQsVBY 12D334D5 ?578ay1a7PQsVBY!"8##$8%'(uQw8/>0 911293 5404 56	06
86 9:2badU1WGAIaKFB%'BqD.4RT	A~0E+Fq+HHAaDM E B ? <<ay1a0T!C&)_Q5F1GGIbE!G$q'	%!A$q&/ 9#d1S6"9oa>O:P P! d1f!$QtAwYuqtAv-Fs4cF2ILL H .. )Qi!Q7D3OA<M8NNqPbE!G( ##  	< "!Wqay1a'@T!C&K FF B ((uQw(!"'#&(1T!W9UQqT!V_+DScF2IJJ F ,, '& ' #$Q46&+ ++.tR!DG)EAaDM E ;4#r	?1$%;&&';( 6(*+DG)EAaDFO*CCcF2III E ++eAg+&5' 0(()0* ,++ ,-	-
<- 
9.8.( 12!uQw2a1Q4%'GAIaKCB%'BqD.4RT	A~0E+Fq+HHAaDM B ? < :: 01g$q'	%!A$q&/ 9#d1S6"9oa>O:P PQR RbE!G! $q'	%!A$q&/ 9#d1S6"9oa>O:P P!  d1f !$QtAwYuqtAv-Fs4cF2ILL H .. )Qi!Q7D3OA<M8NNqPbE!G( ##  	0  !ay1a8T!C&)_Q=N9OOPQQbE!G $q'	%!A$q&/ 9#d1S6"9oa>O:P P! d1f!$QtAwYuqtAv-Fs4cF2ILL H .. )Qi!Q7D3OA<M8NNqPbE!G( ##  	
0 a1T!W9UQqT!V_+DScF2IJJ F ,,eAg,&()+*-/!DG)EAaDFO2KC3OAM 3 3! .!#$-%+%()!Q*0 !003D"qayaDFJ @QsVBY)*@++,@- ;-/0ay1a/H3OAJ 0 0!#$R570+:, 5--.5/ 10!0 12	!2 78Qi!Q6OQsVBY!"7##$7%'(uQw7/1263681T!W9UQqTRSV_;TQsVBY!"<##$<% 7%'(6)6),-aDF5447b1T!W9UaDFN DQsVBY)*D++,D- ?-/0ay1a/H3OAJ 0 0!#$R570+>, 9--.9/ 5050 12	52	!2 56badU1WtAwqyQR{=RrU1Wr!t^d4219q.#89!;;qtAvF=G :H 7I 5IIJ5K	!K 	L0LK8MCt B?c!!!r   c                     t        d      x} \	  }}}}}}}}}	||	z  ||	z  z
  |z
  |||	z  z
  |z
  ||	dz  z  ||	z  z   ||	z  z
  |z
  |	| |	z  ||	z  z   |z   z  |	| ||	z  z   |z   z  f}
t        |||	z  z   | |	z  ||	z  z   |z   |	dz  z  |||	dz  z  ||||t        |	hdh      f	|||	z  z   ||	z  ||	z  z
  |z
  |	dz  z  dz  |||	dz  z  ||||t        |	hdh      f	      }t        |
g|  |k(  sJ y )Nzax bx cx gx jx lx mx nx qr   r   r   r   rL   rK   ri   )Vaxbxcxgxjxlxmxnxr   r   r   s               r   test_issue_13961r}  X  st   .56Q.RRA+RRRR	A1r	219r>2ad7RT>BqD+@2+Eq2#a%RTUVRV,Y[J[G\^_bdadgijkgkaknpap^qrA
R"Q$Y"QA!2AqD 8"bAgr2rSUWacdbehigjWkl"Q$YA1r!11a4 7 :B1a4RQSUWYcefdgjkilYmnpCq1$$$r   c                      t        t        t        dz   dz
        t              } t        | j                  d   dt
        z  z         dk  sJ t        | j                  d   dt
        z  z
        dk  sJ y )Nr   g       @r   g;f?rZ  r   )rf   r,   r   r  r]  r   )	solutionss    r   test_issue_14541r  b  si    q!teck*A.Iy~~a !223t;;;y~~a !223t;;;r   c                  |   dt         z  t        t        dz   t         dz  z
        z  t        t              z  } t	        d      }t        | t         t        j                        |k(  sJ t        t        t        dz  t         dz  z
        t        dz  z
  t         t        j                        t        j                  u sJ y )Nr   r   r   r
  )r   r$   r   r   rL   rf   r   r   r6   r   r   )exprr   s     r   test_issue_13396r  h  s    a4QTEAqDL!!#a&(D
A,CD!AGG,333 DA1%bd*Aqww71::EEEr   c                  d
   t        t        ddt        dd      t        d      dz  z   t        dd      z  z  z  dt        dd      t        d      dz  z   t        dd      z  z  z          dz  t        t        dt        dd      t        d      dz  z   t        dd      z  z  ddt        dd      t        d      dz  z   t        dd      z  z  z  z   dt        ddt        dd      t        d      dz  z   t        dd      z  z  z  dt        dd      t        d      dz  z   t        dd      z  z  z         z  z               dz  z   t        t        dt        dd      t        d      dz  z   t        dd      z  z  ddt        dd      t        d      dz  z   t        dd      z  z  z  z   dt        ddt        dd      t        d      dz  z   t        dd      z  z  z  dt        dd      t        d      dz  z   t        dd      z  z  z         z  z                dz  t        ddt        dd      t        d      dz  z   t        dd      z  z  z  dt        dd      t        d      dz  z   t        dd      z  z  z         dz  z
  t        ddt        dd      t        d      dz  z   t        dd      z  z  z  dt        dd      t        d      dz  z   t        dd      z  z  z         dz  t        t        t        dt        ddt        dd      t        d      dz  z   t        dd      z  z  z  dt        dd      t        d      dz  z   t        dd      z  z  z         z  dt        dd      t        d      dz  z   t        dd      z  z  z
  ddt        dd      t        d      dz  z   t        dd      z  z  z  z               z  dz  z
  t        ddt        dd      t        d      dz  z   t        dd      z  z  z  dt        dd      t        d      dz  z   t        dd      z  z  z         dz  t        t        t        dt        ddt        dd      t        d      dz  z   t        dd      z  z  z  dt        dd      t        d      dz  z   t        dd      z  z  z         z  dt        dd      t        d      dz  z   t        dd      z  z  z
  ddt        dd      t        d      dz  z   t        dd      z  z  z  z               z  dz  z         } t        t        dz  t        z   dz
  t              | k(  sJ y )	Nr   r   r   r  iQ     r   r   )rL   r,   r   r   r   rf   r   r   s    r   test_issue_12032r  r  s   
T"a!R49S=!@HQPQN SSTXa_tCy}<AOOP Q QQRSR!R49S=!@HQPQN SS8Ar?T#Ys]#BhqRSn"U UVWtB8Ar?T#Ys]+JhWXZ[n*](]$^$%x2c3'F(STVW.&Y$Y%Z  [ [[ \ ] ^___ #b(1b/DIcM"AXaQR^!TTHQOd3im$CxPQST~#V!VWXRHQOd3im,KxXY[\~+^)^%_%&B$s)C-(G8TUWX>'Z%Z&[ !\ \\ ] ^ ^ _`` QB$s)C- ?8Aq>RRSHQOd3im;x1~NNO PPQR	R QB$s)C- ?8Aq>RRSHQOd3im;x1~NNO PPQRd3r$r1hq"oS	#.MQYZ[]^Q_-`+`'a'((1b/DIcM*IXVWYZ^)\'\(] #^  ^ (1b/DIcM"AXaQR^!TT U  !!Xa_tCy}%DQRTU$W"WX Y Z [ [ \]]] QB$s)C- ?8Aq>RRSHQOd3im;x1~NNO PPQRd3r$r1hq"oS	#.MQYZ[]^Q_-`+`'a'((1b/DIcM*IXVWYZ^)\'\(] #^  ^ (1b/DIcM"AXaQR^!TT U  !!Xa_tCy}%DQRST$V"VW X Y Z Z [\\\%]C0 AqD1HqL!$+++r   c                  j    t        dt        t              z  t              t        j                  k(  sJ y r   rf   r,   r   r   r   r   r   r   test_issue_10876r    s#    Ad1gIq!QZZ///r   c                     t        t        t        t        z   t	        t              gt        t        g      t        t        t        t        dt        z  t        z        t        j                        t        t        t        dt        z  t        z        t        j                        ft        t        t        dt        z  t        z  t        z
        t        j                        t        t        t        dt        z  t        z  t        z         t        j                        f            sJ t        t        t        t        z   t	        t              t        t              z   gt        t        g      t        t        t        t        dt        z  t        z  dt        z  dz  z
        t        j                        t        t        t        dt        z  t        z  dt        z  dz  z         t        j                        ft        t        t        dt        z  t        z  dt        z  dz  z
        t        j                        t        t        t        dt        z  t        z  dt        z  dz  z         t        j                        f            sJ y )Nr   r   r   r   r  )r   ri   r   r   r<   rL   rI   r   r   r   r   r   r8   r   r   r   test_issue_19050r    s   a!eSV_q!f58F1bd2g.

;XfQPQRSPSTVPVFWYZYcYc=devaAb2.

;XfQPQRSPSTVPVY[P[F\^_^h^h=ij	lm m m a!eSVc!f_51v>8F1bd2g"Q&67DhvVWYZ[\Y\]_Y_bcdfbfghbhYhOiklkukuFvwfQ1R!B$q& 011::>PQSTUVSVWYSY\]^`\`ab\bSbIcefeoeo@pq	st t tr   c                     t        t              t        t              z  t        t              t        t              z  dz
  g} t	        t        dt
        z  t        z  fdt
        z  t        z  t        ft        dt
        z  t        z  t        z   fdt
        z  t        z  t        z   t        f      }t        | t        t        g      }t        t        |      t        |            D ]E  \  }}t        |      t        |      cxk(  rdk(  sJ  J t        d t        ||      D              rEJ  t        |      t        |      k(  sJ y )Nr   r   c              3   F   K   | ]  \  }} |j                   |        y wr   )r   )r   ru   rv   s      r   r   z#test_issue_16618.<locals>.<genexpr>  s     9TQ:1::a=9s   !)r<   r   r   r8   rL   r   r   ri   r   r   r   r   )eqnr  r   i0j0s        r   test_issue_16618r    s    q6#a&=#a&Q-!+
,C
Q!BK!A#b&!q!A#b&2+.>1R"a@P
QC
cAq6
"CgclGCL1 :B2w#b'&Q&&&&&9SR[9999: s8s3xr   c                      t        ddt        z  z  dt         z  z  dt        z  z
  ddt        z  z  t        d      dt        z  z  z
  gt        t              t	        t        d       t        d      z  df      k(  sJ y )N    r   r   r  r   r   Q   )ri   r   r   r   rL   r%   r   r   r   test_issue_17566r    sr    AqD	!qb')AqD0"ad)ad1a4i2GH!QOCG8CF?A&'( ( (r   c                  \   t        d      } t        t        dz  t        t              z  t              j	                  t        t        t        | d| z  t        z  t        z         t        j                        t        t        | d| z  t        z        t        j                                    sJ y )Nr   r   )r   rf   r   r<   r   rO   rI   r   r   r   r   r  s    r   test_issue_16643r    s    c
AAqDQK#,,U8F1ac"frk<RTUT^T^3_3;F1ac"f<Mqzz3Z.\ ] ] ]r   c                      t        d      \  } }t        dd|z  z  d| z  z  d| z  z
  dd|z  z  d|  z  z
  g||       t        t        d       t        d      z  df      k(  sJ y )	Nzn mr  r   r   r  r   r  r   )r   ri   rL   r%   )r   r   s     r   test_issue_19587r    sv    
%.CAa1a41q!t+R1WqA2w->?AFCG8CF?A&'( ( (r   c                     t        t        dz  t        dz  z         t        d      z
  t        t        z   dz
  g} t        | t        t        g      t	        dd      k(  sJ t        d      }t        t              dz  t        t              z
  t        dz  z   dt        t              z  dz
  g}t        d       }t        t        dt        z         t        t        d            z
        }t	        ||f|| f      }t        |d|z  t        z  t        z  t        d       z         }t        |t        j                        }t        |t        t        dt        z         t        d|z  t        z  t        z  t        d       z         z               }t        |t        j                        }t        |t        t        dt        z         t        d|z  t        z  t        z  t        d       z         z                }t        |t        j                        }	t	        ||f||	f      }
||
z   }t!        t        |t        t        g      |      sJ y )	Nr   r   r   )r   r   )r   r   r   r   r   )r,   r   r   ri   rL   r   r$   r<   r   r%   r   r   r   rI   r   r   r   )r*  r   r  s_real_ys_real_zrH  lams_complex_ys_complex_z_1s_complex_z_2rI  r+  s               r   test_issue_5132_1r    s   1a4!Q$;$r(*AEAI6Fv1v&)FF*CCCCc
Aq619s1v1$aAhl
3CAwHS1XICF+,H8X.H90EFI
AaCE"HAw&
'C3

+K
D#ac(S1QrSVG);%<<=
>CS!**-M
T3qs8)c!A#a%(c!fW*<&==>>
?CS!**-M-8-,H-8-,H*L |#DS1a&)4000r   c                     t        dd      \  } }t        |       dz  t        |      z
  t        dz  z   g}t	        d      }t        t        dz   t        |      z         dz  t        f}t        |t        d|z  t        z  t        t        dz   t        |      z         z   z  dz  t        t        t        dz  t        |      z
              dz  z         }t        |t        j                        }|t        f}t        ||      }t        t!        || t        g      |      sJ t"        | dz  z
  |dz  z
  t%        t&              || z  z
  g}	t)        t"        t%        t&              dz  dz   z        }
t)        t"        t%        t&              dz  dz   z        t%        t&              z  }t        |
|f|
 | f      }t!        |	| |g      |k(  sJ y )Nrg  Tr   r   r   r   )r   r$   r<   r   r   r%   r   r   r   r   r   rI   r   r   rL   r   ri   r   r=   r   r,   )r   r   r  r   rH  r  imgrI  r+  r*  rL  s_ys               r   test_issue_5132_2r    s   6%DAqq619s1v1$
%Cc
AadUSV^$Q&*I
!Q!BadUSV^!445a7#c!Q$Q->P:QRS:SS
TC
3


#C8LY-DS1a&)4000!Q$hAos1v!|,F
q#a&!)a- 
!C
q#a&!)a- 
!#a&
(Cc3Z3$.Dv1v&$...r   c                  d    t        dd      \  } }t        | dz  | z   | |z
  g| |g      ddhk(  sJ y )Nza, bTr   r   r  rA  )r   ri   rW  s     r   test_issue_6752r    sA    6%DAq1q!a%(1a&1h5GGGGr   rX   c            	         ddl m} m} t        t        t
        t        t        t        t        g}t        t        t        z  z   t
        t        z  z
  t
        dt        z  dt        z  z   dt        z  z   z  t        t        z  z
  t        t        z  z
  t        dt        z  dt        z  z   dt        z  z   z  t
        t        z  z
  t        t        z  z
  t        dt        z  dt         z  z   dt"        z  z   z  t        t        z  z
  t        t"        z  z
  t        dt"        z  d| z  z   d|z  z   z  t        t"        z  z
  t        |z  z
  t        d|z  dt$        z  z   z  t        |z  z
  g}t'        t)        ||            dk(  sJ y )Nr   )or  r   )r  r  r  ru   rv   rw   rz   r|   r   r   r   rx   ry   r{   r}   r~   r   r   r   r   ri   )r  r  r  r  s       r   test_issue_5114_solvesetr    s'     q!Q1a Dqs7QqS=qsQqSy1Q3!A#!#	1Q319qs?ac!AaC'	1Q319qs?ac!AaC'	1Q319qs?ac!AaC'	1Q319!C {3%&!+++r   Hangsc                  ~   t        d      \  } }}| dt        z  z   |dt        dz  z
  z  t        z  z
  dt        z  dz  t        z  z
  |dt        dz  z
  z  t        z  dt        z  z
  dt        z  z
  t        t        z   |z
  g}t        t        |g}t        t	        ||            dk(  sJ | dt        z  z   |dt        dz  z
  z  t        z  z
  dt        z  dz  t        z  z
  |dt        dz  z
  z  t        z  dt        z  z
  dt        z  z
  t        t        z   |z
  g}t        t        |g}t        t	        ||            dk(  sJ y )Nzlam a0 concr   r   g{Gzt?g̫;?)r   r   r   r   ri   )r  a0concr  syms        r   _test_issue_5335r    s6    M*MCT19r1qs7|A~%a	!3q1Q3w<>AaC"3A"55q54<C a*C{3$%***19r1qs7|A~%a	!3q1Q3w<>AaC"3A"55q54<C a*C{3$%***r   c                     t        dd      \  } }t        | dz  |dz  z         dz
  t        |dz  |  dz   dz  z         dz
  }}t        dd      dt        d	      z  dz  }}|| f||fh}t        ||f| |f      |k(  sJ t        ||| |z
  z  f| |f      t        j
                  k(  sJ |d
z  }t        ||f| |f      t        j
                  k(  sJ y )Nx yTr   r   r   r      r   i  r   )r   r,   r   ri   r   r   )r   r   e1e2ru   rv   r  s          r   test_issue_2777r    s    5t$DAq!Q$A+#T!Q$1"r'A*=%>%BBCaS	k"nqAr7QF
CBx!Q(C///BAJ'!Q0AJJ>>>!GBBx!Q(AJJ666r   c                  *   d} d}d}d}d}d}d}d}t         t        t        g}t         | z
  d	z  t        |z
  d	z  z   |t        z
  d	z  z
  }	|t         z
  d	z  |t        z
  d	z  z   t        d	z  z
  }
t         |z
  d	z  t        |z
  d	z  z   |t        z
  d	z  z
  }|	|
|g}t        t         | z
  d	z  t        |z
  d	z  z         t        z   |z
  }|
}t        t         |z
  d	z  t        |z
  d	z  z         t        z   |z
  }|||g}t	        ||      }t	        ||      }||k(  sJ y )
Nr   ii  ~   i  3      h   r   )r   r   r   r,   ri   )r  y1r1r  y2r  y3r3vr  r  r   Fg1g2g3Gr  r  s                      r   test_issue_8828r    s8   	
B	B	B	B	B	B	B	B	
Aq	A
b&1B{	"b1fq[	0B
q&1Q{	"QT	)B
b&1B{	"b1fq[	0B	RA	q2vkQVaK'	(1	,r	1B	B	q2vkQVaK'	(1	,r	1B	RA 	AqAAqA6M6r   c                     t        d      }  | t              t        dz  z
  } | t              t        t	        dd      z  z
  }t        d | t              z  t        z
  d      t        d | t              z  dt        z  z
  d      z  }t        t        t              }t        ||t        j                  dz        }t        ||gt        t        g      |k(  sJ y )Nrz   r   r   r   )r   r   r   r   r   r   r   rH   r   rl  ri   )rz   r  r  intermediate_systemr  r+  s         r   test_nonlinsolve_conditionsetr  4  s     	A	
11B	
18Aq>!	!BQqtVb[!,r!AaD&1R4-/CCA;D	QD Bx!Q(D000r   c            	         t        g t        t        g      t        j                  k(  sJ t        g g       t        j                  k(  sJ dt        dz  z  dt        dz  z  z   dz
  dt        dz  z  dt        dz  z  z
  dz
  g} t        dddd      }t        | t        t        g      |k(  sJ t        d	      }t        t        t        z   gt        gt        d
igt        gt               t        t        g      |k(  sJ t        t        t        z   gt        gt        d
igt        gt        d
z   ht        t        g      t        j                  k(  sJ y )Nr   r   r)     )r9  r   )r9  r   )r   r   )r   r   r  r   )rh   r   r   r   r   rL   rd  )r*  r+  s     r   test_substitution_basicr  C  s    QF#qzz111B1::---1fqAvo"AadFQq!tVOb$89FXw8DA'4///WDQ!1vhSUQFCtKKK	
Q!1vh	
Q!QJJ' ' 'r   c                  H   t        t        dz
  t        dz
  t        dz
  t        dz
  dt        z  gt        t        t        g      ddt        fhk(  sJ t        t        t
        z   t        z   t        j                  t        j                  t        j                  gt        t
        t        g      t
         t        z
  t
        t        fhk(  sJ t        t        t        z
  t        t        z   t        t        z   t        dz  dz   gt        t        t        t        g      t        t         t         t        fhk(  sJ t        t        t        t        t              z
  z  t        t        dz
  z  gt        t        g      dt        fhk(  sJ t        t         t
        z  dt        z  z   dt
        z  z
  dt        z  dt
        dz  z  z   d	z
  d
t        z  t        z  t        z   t        dz  z   t        dz  dt        z  z
  dz   gt        t
        t        t        g      j                  t        hk(  sJ y )Nr   r   r   r   r   r   ir  i  r9  r   )rh   r|   r   rz   r   r   r   r   r   ru   rx   rv   rw   r%   r  r   r   r   test_substitution_incorrectr  Q  s    QAq1ua!eR!V<Aq	#()1ayk2 2 2QAEE155!%%81a)D"q&!Q() ) )
 QAq1uadQh7!Q1FaR!Q() ) )
 AAJAE3aV<F8  
 !A!ac)3q52ad7?S+@Aa!ad*AqD1Q3JN<Aq!&&2lqc: : :r   c                  n   t        t        dz  t        dz  z
  t        dz
  gt        t        g      t         dft        dft	        t        dz         dft	        t        dz        dfhk(  sJ t        t        t        z
  t        dz  dt        dz  z  z
  dz   gt        t        g      } t        |       dk(  sJ y )Nr   r   r   r   )rh   r   r   r   r,   r   )ru  s    r   test_substitution_redundantr  j  s    A1a!e,q!f5RGaVtAqDzk1-QT
A?@ @ @
 Aq!ta1f}q01Aq6
:Cs8q==r   c                     t        dd      \  } }}}}|| dz  z
  |dz  z
  t        |      || z  z
  g}t        t        t	        |t        |      dz  dz   z               t        d            }t        t        t	        |t        |      dz  dz   z              t        d            }t	        |t        |      dz  dz   z        t        |      z  }t        ||f      t        || f      z   }	t        || |g      |	k(  sJ t        d      }
t        |       dz  t        |      z
  |dz  z   dt        |      z  dz
  g}t        d       }t	        t        d| z         t        t        d            z
        }t        ||f|| f      }t        |
d|
z  t        z  t        z  t        d       z         }t        |t        j                        }t        |
t	        t        d| z         t        d|
z  t        z  t        z  t        d       z         z               }t        |t        j                        }t        |
t	        t        d| z         t        d|
z  t        z  t        z  t        d       z         z                }t        |t        j                        }t        ||f||f      }||z   }	t!        t        |||g      |	      sJ y )	Nzx, y, z, r, tTr   r   r   r   r   r   )r   r=   rK   rL   r,   rh   r   r$   r<   r%   r   r   r   rI   r   r   r   )r   r   r   r   r   r*  s_x_1s_x_2r  r+  r   r  r  r  rH  r  r  r  r  rI  s                       r   test_issue_5132_substitutionr  u  s~   O$7MAq!Q!Q$hAos1v!|,Fy$q#a&!)a-'8"9!9:IaLIEyaQQ&7!899Q<HE
q#a&!)a- 
!#a&
(CeS\"Yt}%==DA'4///c
Aq619s1v1$aAhl
3CAwHS1XICF+,H8X.H90EFI
AaCE"HAw&
'C3

+K
D#ac(S1QrSVG);%<<=
>CS!**-M
T3qs8)c!A#a%(c!fW*<&==>>
?CS!**-M	m$	m$&L |#DcAq6*D111r   c                      t        t        d        t        t        d        t        t        d        t        t        d        t        t        d        y )Nc                  0    t        t        dz  dz
  gg       S rO  rh   r   r   r   r   r   z*test_raises_substitution.<locals>.<lambda>  s    |QT1WIr: r   c                  .    t        t        dz  dz
  g      S rO  r  r   r   r   r   z*test_raises_substitution.<locals>.<lambda>  s    lAqD!G95 r   c                  L    t        t        dz  dz
  gt        t              g      S rO  )rh   r   r<   r   r   r   r   z*test_raises_substitution.<locals>.<lambda>  s    |QT1WIAx@ r   c                  8    t        t        dz  dz
  gt              S rO  r  r   r   r   r   z*test_raises_substitution.<locals>.<lambda>  s    lAqD!G9a8 r   c                  0    t        t        dz  dz
  gd      S rO  r  r   r   r   r   z*test_raises_substitution.<locals>.<lambda>  s    lAqD!G9a8 r   )rV   r   	TypeErrorr   r   r   test_raises_substitutionr    s9    
::;
956
:@A
989
989r   c                     ddl m}  g d}t        d      }|D cg c]
  } | |       }}t        t	        t        j                  |D cg c]  }|j                   c}             }t        ||      }t        |d|dddd	t        d
      z  dt        d
      z  f|d|dddd	t        d
      z  dt        d
      z  f|d|ddddt        d
      z  dt        d
      z  f|d|ddddt        d
      z  dt        d
      z  f      }t        |      t        |      cxk(  rdk(  sJ  J ||k(  sJ |j                  D ]  }t        |      dk(  rJ  y c c}w c c}w )Nr   r   )zk-16zp-8zy*y+z*z-x*xz	d - x + pzd*d+k*k-y*yzz*z-p*p-k*kzabc-efgefgr  r  r   r(  r|  r   r   )sympy.core.sympifyr   r   r   r   rd  unionr  ri   rL   r,   r   r]  )r   r  r  r   sybru  r  r  s           r   test_issue_21022r    sW   *C -C"
#!71:
#C
#
wsyy3"?a1>>"?@A
BC
c3
C
"c2q"c$q'k2d1g:6"c2q"c$q'k1T!W95"c2q"baj"T!W*5"c2q"baj!DG)4	C s8s3x$1$$$$$#::((  6{a  $"?s   EEc                     t        d      } t        d      }t        t        || fft        d|z  t        z  t        d| z  t        z  t        z  t        d      z         z   z  t        t        d| z  t        z  t        z  t        d      z               z         t        t        j                  t        j                              }t        t        t        t                    dz
  t              j                  |      sJ y )Nr   r  r   r   )r   rI   r   r   r   r   r%   r   rQ   r   r   rf   r$   r   r   )r   r  r   s      r   test_issue_17940r    s    c
A	tB
6B7*a2b3qs1uRx#a&7H3I)I&JAaCE"Hs1v$5 67'8 9ajj!**57C CAK!OQ'00555r   c                  p    t        dt        dz  dz
  z  dt        z  z
  t              t        dd      k(  sJ y )Nr  r   P   r  r  r   )rf   r   rL   r   r   r   test_issue_17906r    s3    A1r	NRU*A.)B2CCCCr   c                     t         t        d      z  t        t        t              z  z
  } t         t        d      z  t        t        t              z  z
  }dt         z  t        d      z  dz  t        t        t              z  z   }dt         z  t        d      z  dz  t        t        t
              z  z   t
        z
  }t        | |||gt         t        t
        t              t        dddt        f      k(  sJ y )Nr  r  r   r   )r   r<   r   r8   r   r   ri   rL   )rB  rC  rD  rE  s       r   test_issue_17933r    s    
CG)aAh
C
CG)aAh
C
A#c"g+b.1SV8
#C
A#c"g+b.1SV8
#a
'CS#s+Q1a81aA,     r   c                  <   t        t        t        t        z   t        t        t	        dt
        z  t        z        z  z   gt        t        g      t        t         t        z  t        t        t        t        t        z        t        j                        f            sJ y )Nr   )r   ri   r   r   r$   r   rL   r   r   rI   r   r   r   r   r   r   test_issue_14565r    sj    a!eQ3r"uQw<%781a&AA2a4&AaC.!**=>?A A Ar   c                     t        dd      } t        t        t              dz   t        t        j
                        t        j                  u sJ t        t        t              | z   t        t        j
                        t        j                  u sJ t        t        | d      | t        j
                        t        j                  u sJ y )Nrv   Tr   r   r   )r   rf   r   r   r   r   r   r   )rv   s    r   test_issue_9556r    s    sT"ACFQJ177+qzz999CFQJ177+qzz999Bq"Iq!''*ajj888r   c                  .   t        t        t        t        z
  t        z   t              t        t        j
                        t        j
                  k(  sJ t        t        t        t        z
  t        z   t              t              t        j                  k(  sJ y r   )rf   r   r   ru   r   r   r   rl  r   r   r   test_issue_9611r    sX    Bq1uqy!$a1QWW<<<Bq1uqy!$a(AKK777r   c            
          t        t        dz  t        z   t        t        j                        t        t        j                  t        t        t                t        t                           k(  sJ y r   )rf   r   ru   r   r   rM   rL   r,   r   r   r   test_issue_9557r    sN    AqD1Ha)\!''48)T1"X&.( ( ( (r   c                     t        dd      } t        dd      }t        | dz  dz   | t        j                        t	        d      k(  sJ t        | t        dd      z  dz   | t        j                        t        j                  k(  sJ t        | dz  |z   | t        j                        t	        t        |      t        dd      z   t        |      z        k(  sJ y )	Nr   Tr   r   r   r   r   r   )	r   rf   r   r   rL   r   r   r   r!   r   s     r   test_issue_9778r    s    sAsAAqD1Ha)Yr]:::Ax1~%)1agg6!**DDDAqD1Ha)3q68Aq>))$q'123 3 3r   c                     t        t        t        dd      z  dz   t        t        j                        t        j
                  k(  sJ t        t        t        dd      z  dz   t        t        j                        t        j
                  k(  sJ t        dt        dd      z         } t        t        t        d      z  dz   t        t        j                        | k(  sJ t        t        d      z  dz   j                  t        t        |       d         dk(  sJ t        t        d      z  dz   j                  t        dt        dd      z         dk(  sJ y )Nr   r   r   r9  r   r   )	rf   r   r   r   r   r   rL   r   r   )r  s    r   test_issue_10214r    s   Ax1~%)1agg6!**DDDAQ(1,a9QZZGGG
QA&&
'CA!IM1agg.#555!IM$s)A,/1444!IMB!Q#7"78A===r   c                      t        t        t        t                    dz   t        t        j
                        t        j                  k(  sJ y r   )rf   r   r<   r   r   r   r   r   r   r   test_issue_9849r    s-    CAK!OQ0AJJ>>>r   c                  J    t        g t              t        j                  k(  sJ y r   )rb   r   r   r   r   r   r   test_issue_9953r    s    Cqzz)))r   c                  d   t        dt        z  dt        dz
  dz  z  z   t        t        j                        t	        dt        d      z  dz  t        dd      z   t        dd      z   dz  dddt        d      z  dz  t        dd      z   t        dd      z  z  z  z
  t        d	d      z         k(  sJ y )
Nr   r   r   r   i^  r   i  r   r   )rf   r   r   r   rL   r,   r   r   r   r   test_issue_9913r  	  s    AaC!QVaK-'AGG4Ad5kM!OhtQ&77(1a.HHJSAd5kM!OhtQ&77(1a.HHNJ JLTUWYZO\ 	]] ] ]r   c                  x    t        t        t              t        t        j                        t        d      k(  sJ y rk  )rf   r,   r   r   rl  rL   r   r   r   test_issue_10397r  		  s%    DGQ,	!<<<r   c                  6   t        t        d        t        t        d        t        t        d        t        t        d        t        t        d        t        t        d        t        t        d        t        t        d        t        t        d	        y )
Nc                  2    t        t        dz  gt              S r   r  r   r   r   r   z"test_issue_14987.<locals>.<lambda>	  s    2	
A  r   c                  t    t        t        dt        z  dz   z  dt        z  z   t        z
  gt        t        g      S )Nr9  r   r   )ra   r   r   ru   r   r   r   r   z"test_issue_14987.<locals>.<lambda>	  s2    2	
BqD1H!	a	 1a& * r   c                  `    t        t        dz  dt        z  z
  t        dz
  z  dz
  gt              S r_  r  r   r   r   r   z"test_issue_14987.<locals>.<lambda>	  s.    2
Q$1*q1u		!"A ' r   c                  l    t        t        dz   dz  t        dz  z
  dt        dz  z  z
  dz   gt              S )Nr   r   r   r  r  r   r   r   r   z"test_issue_14987.<locals>.<lambda>	  s7    2
a%!ad	Qq!tV	#a	'(! - r   c                  `    t        t        dt        z  dz   z  t        z   gt        t        g      S r   r  r   r   r   r   z"test_issue_14987.<locals>.<lambda>	  s(    2	
AaC!GqAq6 # r   c                  L    t        t        dz   t        z  gt        t        g      S r   r  r   r   r   r   z"test_issue_14987.<locals>.<lambda>	  s    2
a%aV  r   c                  n    t        t        dt        z  dt        z  t        z         gt        t        g      S r   ra   r   r   r   r   r   r   r   z"test_issue_14987.<locals>.<lambda>	  s+    2	AaC1q	QF $ r   c                  ~    t        t        t        t        z  t        t        z  t        z         gt        t        g      S r   )ra   r   r   r   r   r   r   r   z"test_issue_14987.<locals>.<lambda>	  s+    2	AaC1q	QF $ r   c                  |    t        t        t        t        dz   z  t        dz  t        z         gt        t        g      S r   r
  r   r   r   r   z"test_issue_14987.<locals>.<lambda>	  s/    2	Aq1uIq!tax	 !Aq6 + r   )rV   r   r   r   r   test_issue_14987r  	  s    
:  
: * +
: ' (
: - .
: # $
:  
: $ %
: $ %
: + ,r   c                     t         t        t        z
  dt        z  dt        z  z   z  z   } t        | t               t	        t
        j                        k(  sJ t        | t         t
        j                        t        t        t        z
  dt        z  dt        z  z   z   ht
        j                        k(  sJ t        dd      }t        dd      }t         ||z
  d|z  d|z  z   z  z   } t        | t               t	        t
        j                        k(  sJ t        | t         t
        j                        t	        t
        j                        k(  sJ y )Nr   r   apTr   bn)negative)
r   ru   rv   rf   rL   r   r   r   rM   r   )r  r  r  s      r   test_simplificationr  "	  s    	
a!ebdQqSj!	!BB?i////B177#|A1qs
7K5L4Mqww'WWWW	t	$B	t	$B	
b2g2"%	%BB?i////B177#y'8888r   c            	      v   dt         z  dz   dkD  } t         dz  dt         z  z   dz
  dk\  }t         dt         z  z   ddt         z  z   kD  }t         t        t         dz  dz
        z   dkD  }t         dt         z  z   ddt         z  z   kD  }|j                  t         t        t                     }t        t               t         z  dk  }t        t               t         z  dk  }t         t         dz
  z  dk  }t         t         dz  dz
  z  dk  }	t	        | t         t
        j                        t        dt        d      k(  sJ t	        |t         t
        j                        t        t        t         dd      t        dt        d            k(  sJ t	        |t         t
        j                        t        t        ddd      t        dt        d            k(  sJ t	        |t         t
        j                        t        dt        d      k(  sJ t	        |t         t
        j                        t        dt        d      k(  sJ t	        |t         t
        j                        t        ddd      k(  sJ t	        |t         t
        j                        t
        j                  k(  sJ t	        |t         t        dd      	      t        ddd      k(  sJ t	        |	t         t        dd      	      t        t        ddd      t        ddd            k(  sJ t	        t         dz   dk  t         t
        j                        t        t         dd      k(  sJ y )
Nr   r   r   r   r   r   r   r9  r
  )r   r,   r   r%   rf   r   r   rJ   r   rO   r   )
rB  rC  rD  rE  r  eq5eq6eq7eq8eq9s
             r   test_integer_domain_relationalr  .	  sw   
A#'A+C
Q$1*q.A
C
ac'B1H
C
d1a4!8n
q
 C	
QqS2!8	B
''!CF
C
a&(a-C
a&(Q,C
QqS'A+C
QT!V*q.CCAJJ'5R+;;;;CAJJ'5sB1BE!RQRO+TTTTCAJJ'5r1a%2q/+RRRRCAJJ'5B?:::CAJJ'5B?:::CAJJ'5Aq>999CAJJ'1::555C51:.%1a.@@@C51:.%aAaQRTU2WWWW AEAIq!**-sB1BBBBr   c                  \   t        d      } t        d      }t         | t              t        dz  z
  t        t        j
                        j                  t        t        t         | t              t        dz  z
  d      t        j
                              sJ t         |  |t                    t        dz  z
   |t              t        j
                        j                  t         |t              t         |  |t                    t        dz  z
  d      t        j
                              sJ y )Nrz   r{   r   r   )	r   rf   r   r   r   r   r   rH   r   )rz   r{   s     r   test_issue_10555r  H	  s    AAAaD2a4KAGG,55Q1Q4"Q$;*AGG46 6 6AadGbdNAaD!''2;;QqT2a!g1na0!'':< < <r   c                     t         dt         z  z   ddt         z  z   kD  } t        | t         t        j                        t	        j
                  dt              t        d      z
  k(  sJ t        | j                  t         t        t                     t         t        j                        t	        j
                  t        d      t              t        d      z
  k(  sJ y )Nr   r   r   )r   rf   r   r   rN   rT  r   rL   r   r%   r$   r"  s    r   test_issue_8715r  Q	  s    	
QqS2!8	BB177#	r2	1	-/ / /BGGAc!f%q!''2c"gr"Yq\12 2 2r   c                  ,   t         dz  t        dt        z        z   t        t              z
  } t        t        j                  t        t        t         dz   t        t              z         dz              }t        | t        t        j                        |k(  sJ t        t              t        t        t                    z  t        t        t              dz  dz         z  t        t        t              z  z   } t        t               t        t        t                    z  t        t        t              dz  dz         t        t              z  z  }t        t        j                  t        |            }t        | t        t        j                        |k(  sJ y rO  )r   r$   r   r<   r   rM   r   r   rL   r%   rf   r,   r   r   r=   r   )r  r+  r   s      r   test_issue_11174r  Y	  s   	
AAaC3q6	!B31us1v~+>q+@!ABDB177#t+++	aSV	T#a&!)a-0	01SV8	;B	aSVd3q619q=1#a&89A1.DB177#t+++r   c                     t        dd      } t        dd      }| | t        | dz   dz         z  z   }|dz   | dz  | dz   dz   z  z   }t        | t        |dz  dz         z        t        |t        |dz  dz         z        }}t        | t	        |d      |      }|ddhz
  |ddhz
  z  }||z  ddhz
  }t        || t        j                        |k(  sJ t        || t        j                        |k(  sJ y )	Nr   Tr   r   r   r   r   r   )r   r,   rL   rH   r   rf   r   r   )	r   r   rB  rC  r   r   r+  r   r   s	            r   test_issue_11534r!  d	  s   
 	sAsA"qq!teai 
 Ca4%!Q$A	"
"C r$q!tax.()9QtAqD1H~5E+FB2c1:r*D"aLTRG^,DGAwDCAGG$,,,CAGG$,,,r   c                      t        t        dz  dt        z  z   dz
  t        z  dk  t        t        j                        t	        t        j                  t         d      t        j                  dd            k(  sJ y )Nr   r   r   r9  r   r   )rf   r   r   r   rO   rN   rT  r   r   r   r   test_issue_10477r#  	  s]    QTAaCZ!^Q&*Aqww7hmmRC$hmmAq&9:; ; ;r   c                      t        t        t              t        t        dt                    t        dt              k(  sJ t        dd      } t        dt        z  j                  t              dk  t        |       | k(  sJ y )Nr   r   r   )rf   r<   r   rN   r   rL   r   r
   )r}   s    r   test_issue_10671r%  	  s]    CFAx2/9Q3CCCCBAQqSJJqMA%q!,111r   c                     t         t        t         dz  dz
        z   } t        | dkD  t         t        j                        t        t        d      t              k(  sJ t        | dk  t         t        j                        t        t         t        d             k(  sJ t        | t        d      kD  t         t        j                        t        j                  t        d      t              k(  sJ y )Nr   r   r   )r   r,   rf   r   r   rN   r   Lopenr"  s    r   test_issue_11064r(  	  s    	
T!Q$(^	BBFAqww'a"  BFAqww'"tAwh     BaL!QWW-tAw#$ $ $r   c                  H   t        t        dz
        dz   } t        | t              }|t        j                  u sJ t        | dk  t        t        j                        t        j                  u sJ t        | dkD  t        t        j                        t        dt              k(  sJ y )Nr   r   )	r,   r   r^   r   r   rf   r   rN   r   )r  r+  s     r   test_issue_12478r*  	  sy    	a!eqBQD1::BFAqww'1::555BFAqww'8Ar?:::r   c                      t        t        t              t        z  dk  t        t        j                        } t        j                  dd      }| |k(  sJ y r  )rf   r%   r   r   r   rN   r'  )r  r   s     r   test_issue_12429r,  	  s<    	#a&(a-AGG	,B
..A
C99r   c                  :   t        t        t        z         } t        d      }t	        |       j                  t        t        |t        t        |      dz   d      t        j                        t        |t        |      dkD  t        j                                    sJ y )NCr   r   )r   r   r   r   rf   r   rM   rH   r   r   r   rl  r    )r  r.  s     r   test_issue_19506r/  	  sx    	QUBc
AB<  l1bAA>NPQP[P[.\1=aAAKK1X"Z [ [ [r   c                  H   t        t        t              t        t        j                        t        j                  dt              k(  sJ t        t        dt        z  dz
        t        t        j                        t        j                  t        dd      t              k(  sJ y )Nr   r   r   )	rf   r   r   r   r   rN   rT  r   r   r   r   r   test_solveset_argr1  	  sd    CFAqww'HMM!R,@@@@C!QKAGG,hq!nb0QQQQr   c                       t          t         fdt               t        d      t        d      fD              sJ   dt        d      z        du sJ y )Nc              3   8   K   | ]  } d |z        du   yw)r   Nr   )r   r   rz   s     r   r   z3test__is_finite_with_finite_vars.<locals>.<genexpr>	  s!      9!q1v~ 9s   Tr   )complexr   F)rk   r   r   r   s   @r    test__is_finite_with_finite_varsr5  	  sY    #A 9D!5#6(8 9 9 9 9Qu%  !T)))r   c                      t        t        dz  dt        z  z
  dz
  t        t        t         d            t	        d      k(  sJ y )Nr   r   r   )symbolr  r9  r  r   r   r   test_issue_13550r8  	  s7    AqD1Q3JOa(B3:JKyY[}\\\r   c                      t        t        t        d      t        d      z   z  t        d      z
  t        ft              t        j                  u sJ y )Nr   r   )ri   r   r,   r   r   r   r   r   test_issue_13849r:  	  s;    47T!W,-Q7;Q?1::MMMr   c            	         t        t        t        t        t        d      z         dz
  j	                  t
              t        t        j                        t        dd      k(  sJ t        t        t        t        t        d      z         dz
  j	                  t
              t        t        dd            t        d      k(  sJ t        t        t        t        dd            t        j                  u sJ y )Nr   r   r   r   )rf   r   r   r-   rx  r/   r   r   rL   rN   r   r   r   r   test_issue_14223r<  	  s    SSAY'!+44Y?	b!$% % %SSAY'!+44Y?A$Q<( ( (Aq)Aq/*ajj888r   c                      t         j                   t        t        t	        t        d      z  dz
  t               t        t        dd            k(  sJ t        t        t        t        d      z  dz
  t               t        t        d       t        d            k(  sJ t        t	        t        t        dz
        dz
  t        dz         dz
  t               t        dd      k(  sJ t        t        t        dz
        t        t              z
  t               t        t        t               dz   t        t              dz         k(  sJ t        t        t        dt        t        dz         z  z         t               t        t        dd      t        dd	            k(  sJ t        dt        t        t        t        t	        dt              z         z         z  dz
  t        t         j                        t        dd
      k(  sJ t         j                   t        t         fd       t        t         fd       t        t         fd       t        t         fd       t        t         fd       y )Nr   r   r   r   r   r   r   r   r   r   c                  V    t        t        t        t        d      z  dz
  t               S Nr   r   )rf   r   r.   doms   r   r   z"test_issue_10158.<locals>.<lambda>	      x#a*r(91cB r   c                  V    t        t        t        t        d      z  dz
  t               S r?  )rf   r   r-   r@  s   r   r   z"test_issue_10158.<locals>.<lambda>	  rB  r   c                  t    t        t        t        t        dz
        dz
  t        dz         dz
  t               S )Nr   r   r   )rf   r.   r   r   r@  s   r   r   z"test_issue_10158.<locals>.<lambda>	  s,    xCAJNAE(BQ(F3O r   c                  f    t        t        t        dz
        t        t              z
  t               S r   )rf   r   r   r   r@  s   r   r   z"test_issue_10158.<locals>.<lambda>	  s!    xAE
SV(;QD r   c            
      l    t        t        t        dt        t        dz         z  z         t               S )Nr   r   rI  r@  s   r   r   z"test_issue_10158.<locals>.<lambda>	  s&    xA#a!e*,<(=q#F r   )r   r   rf   r   r.   rL   r   r-   r,   r   r   rl  rV   r   r@  s   @r   test_issue_10158rG  	  s   
''CAc!RjL2%q#.)HQN2KKKKAc!RjL2%q#.)T"XItBx2PPPPCAE
QA.2As;yQ?OOOOCAJQ'C0Is1vgk3q6TU:4VVVVCAc!a%jL()1c2iQQYZ\^_Q`6aaaaAc!c!c!Qi-0011A5q!''BiPRTVFWWWW
++C
:BC
:BC
:OP
:DE
:FGr   c                     dt        dt        z        z
  t        z
  } t        t	        t         dz          dz        }t        | t        t        j                        t        t        j                  |      k(  sJ t        t        | t              t        t        t        t         dt        z  t        z  t        t         dz         z   z  dz  t	        t!        t        dz
              dz  z
        t        j"                              sJ y )Nr   iWir   )r$   r   r   rL   r%   rf   r   r   rM   r   rI   r   r   r   r   r   r   r   )rz   a1s     r   test_issue_14300rJ  	  s    	C	!q A	CQK<(	)BAq!''"QWWb!" " "!QA2qs2vQBF34X=AE
OH$% &'(zz	34 4 4r   c                       t        t        dz  t        z   dz
  d       t        t         fd       t	        t        dz   t              sJ y )Nr   r   r   c                  &    t         dt              S rk  )rd   r   numbers   r   r   z"test_issue_14454.<locals>.<lambda>	  s    {61a8 r   )rF   r   rV   r   rd   rM  s   @r   test_issue_14454rO  	  s<    QTAX\1%F
:89q!tVQ'''r   c            	         t        dt        dz  z  dt        dz  dz
  t        d      dz  z  z  z  ddt        dz  dz
  t        d      dz  z  z  z  z   t        t        j                        t	        t        d      t        d             k(  sJ y )Nr  r   r  r   r   r   )rf   r   r   rl  rL   r,   r   r   r   test_issue_17882rQ  	  s    Bq!tGQ1qAaDF334q!QTAX1a<P:P7QQSTVWVaVab$q'DG8$% % %r   c            	      ~   t        t        dt        z  dz
              ddt        z  gk(  sJ dt        dz   z  dt        dz   z  z   dt        dz
  z  z   dt        dz   z  z
  dt        dz   z  z
  } t        t        |             dt        dz   z  dt        dz   z  dt        dz   z  dt        dz
  z  ddt        dz   z  hk(  sJ y )Nr   r   r   r   r   r   )r   rr   r   rd  )r  s    r   test_term_factorsrS  	  s    adQh'(RAJ666q1u:AE
"QQZ/!a!e*<q1q5zID}T"#	AE
AAJAE
AAJAAJ(H H H Hr   c                      t        dt        z  t        t        j                        t        j                  k(  sJ t        dt        z  dt        dz   z  z
  t        t        j                        t        d      k(  sJ y )Nr   r  r   r  )rl   r   r   r   r   rL   r   r   r   test_transolverU  	  sU    adAqww'1::555adQQZ'AGG4	#FFFr   c            	      b   dt         z  t        t        z
  z  t        t        t        t        z
        z  z
  t        z
  t        t        t        t        z
        z  z   t        z   dz  } t	        | j                         t              t        t        t        t        dt         z  dz
        z         k(  sJ y rO  )r   r   r   r>   rf   r  rL   rA   r"  s    r   test_issue_21276rW  	  sw    
A#q1u+#a!e*
$q
(1SQZ<
7!
;a	?BBIIK#yAqsQw4G'HHHHr   c                  f   ddl m}  ddt        z  z  dt        dz   z  z
  }dddt        z  z
  z  ddt        z
  z  z
  }dt        z  dt        z  z   }t        t	        d      t        z        dt        z  z
  }t        t        | z        t        t
         | z        z  dz
  }dt        dz  z  dt        dz  z  z
  }dt        d	z   z  dt        dz   z  z   dt        d	z
  z  z   dt        dz   z  z
  dt        dz   z  z
  }d
t        dt        z  dz         z  dt        dt        z  d	z         z  z   }dt        z  dt        z  z   dt        z  z   dz
  }	ddt        d	z   z  z  dt        z  z  ddt        z  z  z
  }
t        |t        t        j                        t        dt	        d      z  dt	        d      z  t	        d      z   z        k(  sJ t        |t        t        j                        t        t        dd            k(  sJ t        |t        t        j                        t        j                  k(  sJ t        |t        t        j                        t        d      k(  sJ t        |t        t        j                        t        t        j                  t        | t	        dt        t
        | z        z        z              k(  sJ t        |t        t        j                        t        d      k(  sJ t        |t        t        j                        t        d      k(  sJ t        |t        t        j                        t        dt	        d      z  dz  dt	        d      z  dz  z   t        dd      z         k(  sJ t        |	t        t        j                        t        d      k(  sJ t        |
t        t        j                        t        t	        d       t	        d      z
  t	        d      z   t	        d       t	        d      z   t	        d      z   z        k(  sJ t        d
t        dt        z  dz         z  dt        d	z   z  z   t              t        ddt	        d      z  z
  t	        d      z   t	        d      dz   z         k(  sJ t        dt        dz  z  dt        dz  z  z
  t              t        d      k(  sJ t        d      t        t	        d            z  t        t	        d            z  }t        dt        dz  z  ddt        z  z  z
  t              t        | |      k(  sJ t        d      \  }}t!        d      }t        ||t        dz  z  z   t         |t                     z
   |t                    t        t        j                  t        t	        ||t        dz  z  z                      k(  sJ t        dd      } t        t        dz  | dz  t        t              z  z
  |       t        t        j                  t        t        t        dz  t        t              z         t        t        dz  t        t              z                    k(  sJ t#        dd      }t        d	|z  d	z   |d	z   z  |      j%                  t'        t        t)        d	d	t        z  z   t        d	z   z  d      t        j                              sJ t        dt        z  dt        z  z
  dz   t        t        j                        dhk(  sJ t        dt        z  ddt        z  z  z
  dz   t        t        j                        dhk(  sJ y )Nr   r\  r   r   r   r   r  r   r   r  r   T      ig  {   i
  r9  r   r{  r   zC1 C2rz   r   Tr   r  r  )r  r   r   r$   r%   r   rf   r   r   rL   r   r   rM   r^   r,   r   r   r   r   rH   r   )r   r  r  e3e4e5e6e7e8e9e10rv   C1C2rz   r  s                   r   test_exponential_realrf  
  s   	
QqSAAJ	B	
Q1WAE
	"B	
A1B	SVAXA	B	QqS#qbd)	a	B	
QqSA!H	B	
QUa!a%j	 1q1u:	-AE
	:QQZ	GB	C1qM	Ac!A#'lN	*B	
A1q!t	b	 B
QQZ-a
 3tay=
0CB177#y
3q6	2c!f9s1v%&(( ( ( (B177#y!R'AAAAB177#qzz111B177#y|333B177#|	1S3qs8_,-(/ / / /B177#y|333B177#y|333B177#yCF1qQxz1IHUVXYN1Z'[[[[B177#y|333C177#y3r7(SV2Cc#h2NRUVZR[Q[^abc^dQdgjkngoQo1p'qqqqC1qM)AAJ6:i#a&=3q6!CFQJ
/0?2 2 2 2QqSA!H,a0IaL@@@QSVT#a&\)AQqSA!H,a0Iqb!4DDDD WFBAbAgQqTE
2AaD9\	CR1W--.>0 0 0 0d#AA1SV+Q/<	DAc!f--tAqDQK/@A4C C C CsT"A!A#'QU+Q/88QA!Gq1u-q1177;= = =AqD1a4K"$a1aS888AqD1qs8Ob(!QWW5!<<<r   c                  \   t        d      } t        t        dt        z  dt        z  z   t              t	        t        | t        d| z  t        z  t        z   z  t        d      z        t        j                              sJ t        t        t        z  t        t        z  z  dz
  t              t        t        d      t        t              t        t              z   z        k(  sJ t        t        dt        dz  z  dt        dz  z  z
  t              t	        t        | d| z  t        z  t        z  t        d      z        t        j                              sJ t        t        dt        z  dz   t              t	        t        | t        d| z  t        z  t        z   z  dt        d      z  z   t        d      z        t        j                              sJ dt        t        dz  t        z        z  dz   t        dz  dz   z  }t!        t              t!        t        t        d             t        t        d      d| z  t        z  t        z  z         z         z  }t        |t              t        | |      k(  sJ t	        t        | t        d| z  t        z  t        t#        dd      z  z
  z  t        d      z        t        j                        }t	        t        | t        d| z  t        z  t        t#        dd      z  z   z  t        d      z        t        j                        }t        t        dt        z  dt        z  z   dt        z  z   t              t%        ||            sJ dt        d	z   z  dt        dz   z  z   dt        d	z
  z  z   dt        dz   z  z
  dt        dz   z  z
  }t        |t              }d| z  t        z  t        z  dt        d      z  z
  dt        d      z  z   }d
t        d      z  t        d      z   }t	        t        | ||z        t        j                        }t        ||      sJ y )Nr   r   r   r   r  r   r   r   r   r   )r   r   r`   r   rP   r   r   r   r%   r   r   r   r   rL   rf   r$   r,   r   rO   )	r   r  ru   union1union2ru  numdenr  s	            r   test_exponential_complexrl  1
  sQ   c
A!!Q$A+q1(q!QqSVb[/#a&()1::37 8 8 8AqDAIM1-AAQ 2" " " "!!ac(Q1X"5q98q!A#a%(3q6/"AJJ<0 1 1 1!Q$)Q'q1ac"frk?Qs1vX-s1v56

*D E E E SAa[.1
q!tby	)BQc#a&k\CA1Qr(9$::;;AB"iA&6666fQ1Q3r6Bx1~,=#= >s1v EF

SFfQ1Q3r6Bx1~,=#= >s1v EF

SF!Q$A+1,a0%2GHHH	
QUa!a%j	 1q1u:	-AE
	:QQZ	GB
2q/C
A#a%(Qs1vX
#a&
(C
SV)c!f
C
6!SW%qzz
2Cc??r   c                     t        t              dz   t        z  dz
  } t        dz   t        z  t        z  dz
  }dt        z  t        t              z
  dz
  }t        t              t        t              z
  }dt        z  dt        z  z   dt        z  z
  }t	        | t        t
        j                        j                  t        t        t        t        t              dz   t        z  dz
  d      t
        j                              sJ t	        |t        t
        j                        j                  t        t        t        t        t        dz   t        z  z  dz
  d      t
        j                              sJ t	        |t        t
        j                        j                  t        t        t        dt        z  t        t              z
  dz
  d      t
        j                              sJ t	        |t        t
        j                        j                  t        t        t        t        t               t        t              z   d      t
        j                              sJ t	        |t        t
        j                        j                  t        t        t        dt        z  dt        z  z   dt        z  z
  d      t
        j                              sJ y )Nr   r   r   r   r   )
r$   r   r   r%   rf   r   r   r   rH   r   )r  r  r   r!  r"  s        r   test_expo_conditionsetrn  N
  s   
a&1*q1	B
a%!A	B	
AA	B	Q#a&B	
A1q!t	BB177#,,\	2s1vzAo!1%qww.0 1 1 1B177#,,\	2aQ
lQ"AGG.- . . .B177#,,\	2adSVma#QWW.. / / /B177#,,\	2s1vgA"AGG.- . . .B177#,,\	2adQTkAqD !$agg./ 0 0 0r   c                     t        dd      \  } }}t        dd      \  }}t        || z  |z
  | t        j                        t	        t        j                  t        t        |      t        |      z              k(  sJ d| t        z  z  d|t        z  z  z
  }| |z  t        z  dz
  }t	        t        d      t        |       t        |      z
  z  ht        j                        }t	        t        d      t        | |z        z  ht        j                        }t        |t        t        j                        |k(  s$J t        |t        t        j                               t        |t        t        j                        |k(  s$J t        |t        t        j                               t        | | z  | t        j                  dt                    j                  t        t        t        t        t        z  d      t        j                  dt                          sJ t        | |z  d	z
  |t        j                        t        d      k(  sJ t        t        | |z        t        | |z        z  dz
  |t        j                        t!        t        |t        t#        |       |z  d      t        t#        |      |z  d      z  t!        t	        t        | |z
  t        d      z        t        j                        t        d                  t        d            k(  sJ t        t        ||z        t        | |z        z  dz
  |t        j                        t!        t        ||z
  t        d      z        t        d            k(  sJ t        t$        | z  t&        | z  z
  |       j                  t        t        t)        t$        d      t)        t&        d      z  t        d                  sJ y )
Nzx y zTr   zxr, zrr   r   r   r   r   )r   rf   r   r   rM   rL   r%   r   rN   r'  r   r   rH   r   rT  r$   rK   r   ru   rv   r   )	r   r   r   xrzrr  r  r   r   s	            r   test_exponential_symbolsrr  b
  s	   g-GAq!XD)FBAqD1Ha)\	3q6#a&=).+ + + + 
1a4!AqD&B
A#ABQQ#a&12AGG<DQAaC)1773DB177#t+EXb!QWW-EE+B177#t+EXb!QWW-EE+AqD!X^^Ab12;;Q1a4X]]1b%9:< < <AqD1Ha)Yq\999C!HS!AY&*Aqww7|Ar"Q%'1~2a57A>|Iq1uc!fn5qww?1NPQZ[\Q]__ _ _ C1Ic2#a%j(1,a99b2gs1v-.	!=> > > AqD1a4K#,,\	2a8bAh	!.. / / /r   c                      t        dd      } t        d      }t        | dz  dz
  |       t        |dz  dz
  |      k(  sJ y )Nr   Tr   r   r   )r   r`   )xposr   s     r   test_ignore_assumptionsru  }
  sL    3&DAD!GaK 
adQh*+ + +r   c                      t        t        t        t        z  z  t        z
  t        t        j
                        t        d      k(  sJ y r   )rf   r   r   r   r   r   rL   r   r   r   test_issue_10864rw  
  s-    A!HqL!QWW-1===r   c            
      
   t        t        t        t                    t        t        t                     z   dz
  t              t	        dt        t        d       dz         z  dt        t        d      dz         z        k(  sJ y )Nr   r   r   )r^   r,   r$   r   rL   r%   r   r   r   test_solve_only_exp_2ry  
  sg    c!fS!W591=!Ca1%%qT!Wq[)9'9:; ; ;r   c                  j   t        t        t              du sJ t        dt        z  dz
  t              du sJ t        dt        z  ddt        z
  z  z
  t              du sJ t        t        dt        z        dt        z  z
  t              du sJ t        t        t        z  t        z
  t              du sJ t        t        t        z  t        z
  t              du sJ t        dt        z  dt        z  z   dz
  t              du sJ t        t        t        t        z  z  t        z
  t              du sJ t        t        dt        z  z  dt        z  z
  t              du sJ t        t        t        z  t        t        z  z
  t              du sJ t        t        t        z  t        t        z  z
  t              du sJ y )	NFr   r   Tr   r  r   r   )rm   r   r   r<   r   r   r   r   test_is_exponentialr{  
  sf   1a E)))1a4!8Q'4///1a4!a!e*,a0D8883q!t9qs?A.%7771a4!8Q'4///1a4!8Q'50001a4!Q$;?A.$6661qs8a<+u4441qs8ad?A.%7771a4!A#:q)U2221a4!A#:q)T111r   c            	      B   t        ddt        z  z  dt        dz   z  z
  dt        t        j                        t	        dt        d      z  dt        d      z  t        d      z   z        k(  sJ t        dt        z  dt        z  z   dt        t        j                        t	        t        t        dd      t        d	      dz  z         t        d      z        k(  sJ t        dt        z  dt        z  z   dt        t        j                        t        j                  k(  sJ t        dt        z  dt        z  z   d	t        z  z
  dt        t        j                        t        t        t        dt        z  dt        z  z   d	t        z  z
  d      t        j                        k(  sJ y )
Nr   r   r   r9  r   r   r   r   r   )rn   r   r   r   rL   r%   r   r   r,   r   rH   r   r   r   r   test_solve_exponentialr}  
  sJ   a!A#hQU3Q177C"SV)RAYQ/012 2 2adQTk1a9#hr1oQ	123q69:; ; ;adQTk1a9	

  adQTkAqD0!Q@Q1a4!Q$;A-q1177;< < <r   c                     t        t        t        dz
        t        t        dz         z   t              t        t	        d       t	        d            k(  sJ t        t        t        dz         t        dt        z  dz
        z
  t              t        d      k(  sJ t        t        t        dz         t        ddt        z  z         z   dz
  t              t        dt	        dt        d      z         t        t        dd            z  dz  z   t        d      dz  z   t	        dt        d      z          t        t        dd            z  dz  dz
  t        d      dz  z         k(  sJ t        t        t              z
  t        t        t        dt        dz  t        dz  z  z   z  z        z   } t        | t              t        t        j                  t        t	        t        dz  t        t        t              z  z
         t	        t        dz  t        t        t              z  z
                    t        t        j                  t        t	        t        dz         t	        t        dz                    z
  k(  sJ t        t        dt        z        t        t         dz         z
  t        dt        z  dz         z
  t              t        t        dd      t        j                        k(  sJ t        t        t        t        z        t        t        t              z  z
  t        t        j                        t        j                  k(  sJ y )	Nr   r   r   r   r9  ir   r   )r^   r%   r   rL   r,   r$   r   r   r   rM   r   r   r   rf   r"  s    r   test_logarithmicr  
  s   QUc!a%j0!4		b	489   QUc!A#'l2A6)A,FFFQUc!ac'l2Q6:i
T#A,HQN 33A55Aq@	cCFl	CA//1A5Aq@?B B B B 
SVc!QQT!Q$Y/01	1BQQWWiadQs1vXo)>(>A#a&!# 	$QWWiadT!Q$Z@A	BB B B AaC3rAv;QqS1W-q25>xAPQPVPV5WX X XC1I#a&(!QWW5@@@r   c                  |   t        t        dt        z        dz         t        t        t               dz         z   t        d      z
  } t	        | t              t
        j                  u sJ t        dt        z        t        t        t              dz         z
  dz
  } t	        | t              t
        j                  u sJ y )Nr   r   r   )r%   r$   r   r(   r^   r   r   r,   r"  s    r   test_uselogcombine_2r  
  s    	S1X\	S$q'A.	.Q	7BQ1::---	QqSCQ!$	$q	(BQ1::---r   c                  :   t        t        t              du sJ t        t        t              t              du sJ t        t        t              dz
  t              du sJ t        t        t              t        t              z  t              du sJ t        t        t              dz  t              du sJ t        t        t        dz
        t        t        dz         z   t              du sJ t        t        t        t        z        t        t        t              z  z
  t              du sJ t        t	        t        t                    t              du sJ t        t        t        z   t              du sJ t        t        dt        z        t        dt        z
        z
  dz   t              du sJ t        t        t              t        t              z   t        z   t              du sJ t        t        t        t        dz
              t        t        dz
        z   t              du sJ t        t        t        d      t        z         t        t              z   t              du sJ t        t        t              t        dz   z  t        t              z   t              du sJ y )NFTr   r   r   r   )ro   r   r   r%   r<   r   r   r   test_is_logarithmicr  
  s   1a E)))3q61%---3q6A:q)T1113q6#a&=!,4443q619a(E1113q1u:AE
2A6$>>>3q!t9qQx/3t;;;3s1v;*e3331q5!$---3qs8c!a%j014a8D@@@3q6CF?Q.2e;;;3s1q5z?SQZ7;tCCC3s1vz?SV3Q74???3q61q5>CF2A6%???r   c                  n   t        d      } t        t        t        | z        | t        t              z  z
  dt        t        j
                        t        j
                  k(  sJ t        dd      } t        t        t              t        |       z  dt        t        j
                        t        d      k(  sJ y )Nr   r   Tr   r   )r   rq   r%   r   r   r   rL   r\  s    r   test_solve_logarithmr  
  sz    sAC1I#a&0!Q@AGGKKKsT"ACF3q6M1a9Yq\IIIr   c            	         t        d      \  } }}t        t        dz  t              du sJ t        | t        dz  z  |t        z  z   |z   t              du sJ t        t        dz  t              du sJ t        t        t        dz  z  t              du sJ t        dt	        t              z  t        t	        d      z  z
  t              du sJ t        t	        t	        t        dz
              t	        t        dz
        z   t              du sJ t        dt        z  dz
  dt        ddt        z  z
        z  z   t              du sJ t        | t        z  t        t        dz        z   j                  t        d      t              du sJ t        t        dz  dt        z  z
  dz   j                  t        t	        t              dt        z  z   dz  dz
        t              du sJ t        t        t        t              z  dz
  t              du sJ t        t        t        t              z  dz
  t              du sJ t        t        t              dt        z  z
  t              du sJ t        t        t              t        t              z
  t              du sJ y )	Nza,b,cr   FTr   r   r   r  )r   rp   r   r   r%   r$   r
   r   r'   r8   r(   r)   )ru   rv   rw   s      r   test_is_lambertr  
  s   gGAq!q!tQ5(((q!Q$wqs{1}a(D000q!tQ5(((qAvq!U***qQx!CF(*A.$666s3q1u:QqS115===qsQw3q1Q3w</3t;;;!c!A#h,,Q2A6$>>>1qs
Q,,QQ!A#0AA0EFJdRRRqay1}a(D000qQx!|Q'4///tAw1}a(D000tAwa(!,555r   c                  .    ddl m    dt              ddgk(  sJ t        d   dt              D              sJ   t        dt        z  z   dz   t        t              g dk(  sJ   t        dt        z  z   dz   t        t              g dk(  sJ   t        dt        dz  z  z   dz   t        t        dz        g dk(  sJ t        t         fd       t        t         fd	       t        t         fd
         t        t        t        z   z  t        t              t        t        dgk(  sJ   dt        t              g dk(  sJ   t        t        t        t        z         t        t        d      t        dik(  sJ   dt        t        d      i k(  sJ y )Nr   linear_coeffsc              3   @   K   | ]  }|t         j                  u   y wr   )r   r4  r  s     r   r   z%test_linear_coeffs.<locals>.<genexpr>
  s     8qqAFF{8s   r   r   r  )r   r   r   c                  d      t         dt         dz  z  z   t         dz  z   t         t         dz        S r_  r   r  s   r   r   z$test_linear_coeffs.<locals>.<lambda>
  s-    a!AqD&j1a4'AqD1 r   c                  T      dt         z  t         dz
  z  dt         z  z   t               S r   r   r  s   r   r   z$test_linear_coeffs.<locals>.<lambda>
  s'    ac1q5kAaC'+ r   c                  0      t         t         t               S r   r   r  s   r   r   z$test_linear_coeffs.<locals>.<lambda>
  s    aA r   r   )r   r   r   T)dictr   )	r  r  r   r   r   rV   r   ru   r   r  s   @r   test_linear_coeffsr  
  sT   4A1a&(((8M!Q$78888QqS1a+y888QqS1a+y888Qq!tVaAqD1Y>>>
: 2 3
: , -
:   AEAq)aAY666a#{222Aq1uq!$7Ar7BBBAqt,222r   c                     t        t        t              du sJ t        t        t        d      dz
  t              du sJ t        t        t        dz  dt        dz  z  z
  t        z
  dz   d      dz
  t              du sJ t        t        t	        t        t        z         d      dz
  t              du sJ t        t        t	        t        t        z         d      t        t              z
  t              du sJ t        t        t        d      dz
  t              du sJ t        t        t        d      dz  dz
  t              du sJ t        t        t        d      dz  t        z
  t              du sJ t        t	        t        t        d            dz
  t              du sJ t        t        dt              dz
  t              du sJ y )NFr   r   Tr   r   )rs   r   r   r   r$   r%   r   r   r   test_is_modularr    sq   q!%%%s1ay1}a(D000s1a4!AqD&=1,q0!4q8!<DDDs3q1u:q)A-q1T999s3q1u:q)CF2A6$>>>s1ay1}a(E111s1ay!|a'+u444s1ay!|a'+u444s3q!9~)1-666s1ay1}a(E111r   c                  f   t        dd      } ddlm}  |t        t	        t
              d      t        d      | t
              t        t	        t
              d      dfk(  sJ  |t        t        t
              d      t        d      | t
              t        t        t
              d      dfk(  sJ  |t        t        t
              d      t        d      | t
              t        t        t
              d      dfk(  sJ t         |t        t
        d      t        d      | t
              t
        t        t        | d| z  dz         t        j                        f      sJ t         |t        t
        dz   d      t        d      | t
              t
        t        t        | d| z  d	z         t        j                        f      sJ  |t        t
        d
z  t
        z   d      t        d      | t
              t        t
        d
z  t
        z   d      dfk(  sJ t         |t        dt
        z  d      t        d      | t
              t
        t        t        | d| z  d	z         t        j                        f      sJ  |t        t
        dz   t
        d
z   z  d      t        d      | t
              t        t
        dz   t
        d
z   z  d      dfk(  sJ  |t        t
        d	z  d      t        d      | t
              t
        t        j                  fk(  sJ t         |t        dt
        z  d	      t        d      | t
              t
        t        t        | d
| z  dz         t        j                        f      sJ t         |t        d
t
        d
z  t
        z   dz   z  d      t        d
      | t
              t
        d
z  t
        z   dz   t        t        | d| z  dz         t        j                        f      sJ  |t        t	        t
              d	z  d      t        d      | t
              t
        t        j                  fk(  sJ y )Nr   Tintegerr   )_invert_modularr  r   r   r   r   r   r   )r   r  r  r   r<   r   r   r$   r%   r   rI   r   r   r   	Naturals0)r   invert_modulars     r   test_invert_modularr    s_   c4 AH #c!fa.!A$15#c!fa.!9LLLL#c!fa.!A$15#c!fa.!9LLLL#c!fa.!A$15#c!fa.!9LLLLAq	1Q4A61Q37+QZZ89; ; ; AE1qtQ:1Q37+QZZ89; ; ;#adQh*AaD!Q7A1q!" " " AaCQqT1a81Q37+QZZ89; ; ;#q1uq1uoq11Q4A>!a%!a%!$a() ) ) #adA,!a3

O  AqD!adAq91Q37+Q[[9:< < <A1q1$5q 91Q4AFTAX\8F1acAg$6DEG G G#c!fai+QqT1a8Q

OKKKr   c                     t        dd      } t        t        t        d      t        z
  t        t        j
                        j                  t        t        t        t         t        t        d      z   d      t        j
                              sJ t        dt        t        t              d      z
  t        t        j
                        j                  t        t        t        t        t        t              d      dz
  d      t        j
                              sJ t        dt        t        t              d      z
  t        t        j
                        j                  t        t        t        t        t        t              d      dz
  d      t        j
                              sJ t        dt        t        t              d      z
  t        t        j
                        j                  t        t        t        t        t        t              d      dz
  d      t        j
                              sJ t        dt        t        d      z
  t        t        j
                        t        j                  u sJ t        dt        t        d      z
  t        t        j
                        t        j                  u sJ t        t        d	t        t        d
      z   t        t        j
                        t        t        | d
| z  d	z
        t        j
                              sJ t        dt        t        d
      z   t        t        j
                        t        j                  u sJ t        t        dt        t        d      z
  t        t        j
                        t        t        | d| z  dz         t        j
                              sJ t        t        dt        dt        z  dz
  d      z
  t        t        j
                        t        t        | d| z  dz         t        j
                              sJ t        t        dt        dt        z  d      z
  t        t        j
                        t        t        | d| z  d	z         t        j
                              sJ t        t        t        t        d	z  d      dz
  t        t        j
                        t!        t        t        | d| z  dz         t        j
                        t        t        | d| z  dz         t        j
                        t        t        | d| z  dz         t        j
                        t        t        | d| z  dz         t        j
                        t        t        | d| z  dz         t        j
                        t        t        | d| z  dz         t        j
                        t        t        | d| z  dz         t        j
                        t        t        | d| z  dz         t        j
                                    sJ t        dt        t        dz  d      z
  t        t        j
                        t        j                  u sJ t        t        t        t        dz  d      dz
  t        t        j
                        t!        t        t        | d| z  dz         t        j
                        t        t        | d| z  dz         t        j
                        t        t        | d| z  dz         t        j
                        t        t        | d| z  dz         t        j
                                    sJ t        t        t        dt        z  d      dz
  t        t        j
                        t        t        | d| z  dz         t        j"                              sJ t        t        t        dt        z  d      dz
  t        t        j
                        t        t        | d| z  d	z         t        j"                              sJ t        t        t        dt        z  d      dz
  t        t        j
                        t        t        | d	| z  dz         t        j"                              sJ t        t        t        d	t        z  d      d	z
  t        t        j
                        t        t        | d| z  dz         t        j"                              sJ t        t        t        ddt        z  z  d      dz
  t        t        j
                        t%        t        t        | t%        t        d	| z  dz         t        d      z  ht        j
                              t        j"                        t        j
                              sJ t        t        t        dz  d      d	z
  t        t        j
                        t        j                  u sJ t        t        t        t        dz  d      dz
  t        t        j
                        t        t        | d| z  dz         t        j
                              sJ t        t        t        t        dz  d      dz
  t        t        j
                        t!        t        t        | d| z  dz         t        j
                        t        t        | d| z  dz         t        j
                                    sJ t        t        dt        dt        z  dz
  d      z
  t        t        j"                        t%        t        t        | d| z  dz         t        j
                        t        j"                              sJ t        t        t        d      t&        z
  t        t        j
                        t        j                  k(  sJ t        t        t&        t        z  d      d	z
  t        t        j
                        j                  t        t        t        t        t&        t        z  d      d	z
  d      t        j
                              sJ t        t        t&        t        z   d      d	z
  t        t        j
                        j                  t        t        t        t        t        t&        z   d      d	z
  d      t        j
                              sJ t        t        t        t        dz  d      dz
  t        t        j
                        t!        t        t        | d| z  dz         t        j
                        t        t        | d| z  dz         t        j
                                    sJ t        t        t        t        d z  d!      d"z
  t        t        j
                        t        t        | d!| z  d z         t        j
                              sJ t)        dd      } d#}d$}d%}d&}t        t        |t        || z  |z  |      z
  | t        j
                        t        t        | d'| z  d(z         t        j"                              sJ t        t        |t        || z  |z  |      z
  | t        j"                        t%        t        t        | d'| z  d(z         t        j"                        t        j"                              sJ t        t        |t        |d	| z  z  |z  |      z
  | t        j
                        t%        t        t        | d)| z  d*z         t        j"                        t        j
                              sJ t        |t        |d	| z  dz   z  |z  |      z
  | t        j
                        t        j                  u sJ t        t        |t        || dz
  z  |z  |      z
  | t        j
                        t%        t        t        | d'| z  d+z         t        j"                        t        j
                              sJ y ),Nr   Tr  r   r   r   r  r   r   r9  r      r  r  r  M   S   ]         r  r  r3  )   r   r(     r  r   r   r  r   J   rn  iVH,i.qii@3ir   i?2   r  )r   rf   r   r   r   r   r   rH   r   r<   r%   r$   r   r   rI   r   rO   r  rM   r   r   )r   ru   rv   r   rw   s        r   test_solve_modularr  3  s   c4 AC1IM1ajj 

(BrC1I~q1JJ  
 ACFA&1:: 

(Bs3q61~115qzzBDD D D ACFA&1:: 

(Bs3q61~115qzzBDD D D ACFA&1:: 

(<2c#a&!nq&8!#<	

    AAq	M1ajj1QZZ???AAq	M1ajj1QZZ???!c!Rj.!QZZ8VAr!tax(!**57 7 7AAr
NAqzz2ajj@@@!c!Qi-AJJ71Q37#QZZ02 2 2!c!A#'1o-q!**=1Q37+QZZ8: : :!c!A#qk/1ajj91Q37+QZZ8: : : #adC.1,a<(6!SUQY/<VAs1urz*AJJ7VAs1urz*AJJ7VAs1urz*AJJ7VAs1urz*AJJ7VAs1urz*AJJ7VAs1us{+QZZ8VAs1us{+QZZ8:; ; ; AAqD!$a4

BBB#adB-",a<(6!RTAX.

;VAr!tax(!**5VAr!tby)1::6VAr!tby)1::689 9 9 #adB-",a<VAr!tax(!++68 8 8#b!eR.2-q!**=VAqsQw'57 7 7#adA,*Aqzz:VAqsQw'57 7 7#adA,*Q

;VAqsQw'57 7 7#a!Q$i+a/AJJ?&L#acAg,s1v:M9NJJ- #++'()

45 5 5 C1aL1$a4

BBB#adA,*Aqzz:VAqsQw'46 6 6#adA,*Aqzz:(6!QqS1W-qzz:VAqsQw'467 7 7 !c!A#'1o-q!++>&AaC!G"4ajjA1;;OQ Q Q C1IM1ajj1JJ  C!QK!OQ

 

(Bs1Q3{Q2AJJ?AA A A CAqMA%q!** 

(Bs1q5!}q0!4ajjACC C C
 #adB-",a<(6!RTAX.

;VAr!tby)1::689 9 9 #aeR.2-q!**=VAr!tby)1::68 8 8 	T"AAAAA!c!Q$q&!n,a<VAz!|c12AKK@B B B!c!Q$q&!n,a=&JqL3,>"?MKK   !c!ac(1*a00!QZZ@&JqL2,=">LJJ   AA!aLNA..1::>!**LLL!c!a!e*Q,22AqzzB&JqL3,>"?MJJ  r   c            
         t        t        t        dt        d      dz  z        t        t        t        z  dt        d      z        gt        t              t        dt        d      dz  z  ddt        d      dz  z  z  f      k(  sJ y )Nr   r      r   r   )ri   r   r   r   r   r,   rL   r   r   r   test_issue_17276r    sq    1a!A$q&k*BqsBtAwJ,?@!QGAaDFRAaDG_-./ / /r   c                  h   t        d      } t        d      }t        d      }t        t        | |z         t        |       z
  |      j	                  t        d            t        t        t        |d|z  t        z        t        j                        t        t        j                  t        t        |t         t        d|z  t        z  t        t        dt        z  | z               z   z  dt!        |       z  z   z        t        j                                    j	                  t        d            k(  sJ y )Nr   ru   r   r   r   zx,n)r   r   rf   r<   r   rO   rI   r   r   r   r   rM   rl  r   r   r$   r   )r   ru   r   s      r   test_issue_10426r    s    c
AsAc
ASQZ#a&(!,66uSzBu1Q3r6"AJJ/Q[[(6!aRAaCFS#bQRdSTf+EV<V9WZ[\^_`\aZa9a5b+c	

# 	H  xe-. . .r   c                  r    t        t        t              dz
  t        z         t	        dt        z         k(  sJ y)z,Test solveset for simple conjugate functionsr   N)rf   r"   r   r   rL   r   r   r   test_solveset_conjugater    s+    IaL!Oa'(Ia!e,<<<<r   c                     t        d      t        d      z   } | \  }}}}}}}}}	}
}}}}}}}}}}}}}}}}}}g ||z   |z   |z   dz
  ||z   |z   |z   dz
  ||z   |z   |z   dz
  ||z   |z   |z   dz
  ||z   |z   |z   dz
  ||z   |z   |z   dz
  ||z   |	z   |
z   dz
  ||z   |z   |z   d	z
  ||z   |z   |	z   d
z
  ||z   |z   |
z   dz
  ||z   |	z   |
z   dz
  ||z   |	z   |
z   dz
  ||z   |z   |z   dz
  ||z   |z   |	z   dz
  ||z   |z   |
z   dz
  ||z   |z   |z   dz
  ||z   |z   |z   dz
  ||z   |z   |z   dz
  ||z   |z   |z   dz
  ||z   |z   |z   dz
  ||z   |z   |z   dz
  ||z   |z   |z   dz
  ||z   |z   |z   dz
  ||z   |z   |z   dz
  ||z   |z   |z   dz
  ||z   |z   |z   dz
  ||z   |z   |z   dz
  |dz
  |dz
  |dz
  |dz
  |dz
  |dz
  |dz
  |dz
  }d|z
  |dz
  d	|z
  |d|z
  |dz   d|z
  |dddddddddd| |z   dz   ||z
  dz   | |z
  |z   d z   ||z   |z
  d!z
  d"|z
  |d#|z
  |d#|z
  |g}t        ||       \  }} t        | |      D !"ci c]  \  }!}"|!|"k7  s|!|" }#}!}"t        ||       |#k(  sJ t	        t        |       }$t        ||       |$k(  sJ t        || f|       |$k(  sJ |j                  |       \  }%}&t        |%      }%|$j                  t        |||||g|&            }'t	        t        |%       |'k(  sJ t	        d|z
  |dz
  d	|z
  |d|z
  |dz   d|z
  |dddddddddd| |z   dz
  ||z
  d z   d|z
  |d"|z
  |d#|z
  || |z   |z
  d z   ||z
  |z   d!z   f      }(t        ||       |(k(  sJ y c c}"}!w )$Nzx0:16zy0:12r  .   '   r  #   "      r  ,   rZ  rs  5   8   r  4   ro  0   <   r   r   r   r   r  r  r   &   r   r  r      r   !   r  )r   ra   r   r]   rL   r   rb   gauss_jordan_solver   r   ri   ))	variablesr  r  r  r  r	  x5x6x7x8x9x10x11x12x13x14x15y0r  r  r  y4y5y6y7y8y9y10y11r  expectedr  rv   r  r  solve_expectedlinsolve_expectedgj_solvenew_varsgj_expectednonlinsolve_expecteds)                                            r   test_issue_18208r    s    77#33I7@5BBBBBCc3SBBBBC"27R<"r! "7R<"r!"7R<"r!" 7R<"r!" 7R<"r!	"
 7R<"r!" 7R<"r!" 9r>B#" 8b=2"" 8b=2"" 9r>B#" 9r>B#" 9s?S 2%" 9s?R"$" 9s?R"$" 9s?S 2%"  7R<"r!!"" 7R<"r!#"$ 7R<"r!%"& 7R<"r!'"( 7R<"r!)"* 7R<"r!+", 7R<"r!-". 9r>B#/"0 8b=2"1"2 8b=2"3"4 9r>B#5"6 77"8 79": 7;"< 7="> 7?"@ 8A"B 7C"D 7E"CH Rb"r'2rBwQR2q!Q1b"b3$)a-rBr	B#S2X]Q%6RR"WbS#H
 sI.DAq ),Ix(@Luq"AGadLNLi N222 "%"23C#'8888QFI&*;;;; --a0HhH~H#((b"b"c-BH)MNKUH%&+555 %b2grBwRR"WbSTf&(2gr1b!Q1aRQS')cBhlBGbL"r'2rTVw&("r'2sRx"}r7I2PR7UW<Z[K[&] ^
 sI&*>>>>= Ms   M7 M7c                     t        d      \  } }}}}}}}}}	}
}}}}}}}}}}}}}||||||||||	|||||g}| |z  ||z  z
  |z   |z   |z   | |z  ||z  z
  |	z   | |z  ||z  z
  |z   |z   | |z  ||z  z
  |z   | |z  ||z  z
  |z   |z   | |z  ||z  z
  |z   |z   | |z  ||z  z
  | |z  ||z  z
  |  ||z  z   ||z  z   | ||z  z   ||z  z   | ||z  z   ||z  z   | ||z  z   ||z  z   | |z  |	 |z  |
 |z  | |z  | |z  | |z  | |z  | |z  |
||||g}t        dt        t        |      t        d            ddddddddddd||f|t        t        |      t        d            d|ddddddddd| |z  | |z  fdt        t        |      t        d            d|dddddddd| |z  |z  | |z  |fdt        t        |      t        d            d|ddddddd| |z  |z  | |z  |z  ||f      }|t        ||      k7  sJ y )Nzja00, a01, a10, a11, l0, l1, l2, l3, m0, m1, m2, m3, m4, m5, m6, m7, c00, c01, c10, c11, p00, p01, p10, p11r   r   rs  )a00a01a10a11l0l1l2l3m0m1m2m3m4m5m6m7c00c01c10c11p00p01p10p11solveforr*  r   s                              r   *test_substitution_with_infeasible_solutionr    s1   qxtrnCc3BBBBBBSRUWZ\_adfikn S#sCc3BBBPRSH	c	BHr!C'#-	c	BHr!	c	BHs"S(	c	BHr!	c	BHs"S(	c	BHs"S(	c	BH	c	BH	sSy39$	sSy39$	sSy39$	sSy39$	c		c		c		c		c		c		c		c	




3F6 	
Jy~y|4aAq!Q1aQRTUWY[]^	j31631aAqRSUVXY\_[_`c[cfieijmemn	
Jy~y|4aaAq!QPQSTWYVYZ]V]^aVadgcghkckmop	
Jy~y|4aaAq!QPQTVSVWZSZ[^S^ac`cdg`ghk`kmoqst	C +fh////r   c                  ^    t        dt        t              z        t        j                  u sJ y r   r  r   r   r   test_issue_20097r  -  s!    Ad1gI!**,,,r   c                  x    t        t        t        dt        z  t        z                     t	        dd      k(  sJ y )Nr   r   )rf   r
   r,   r   rL   r   r   r   test_issue_15350r  1  s-    Dac!e%&)B*::::r   c            
      >   t        dt        dk  ft        dt              dz  t        dt              dz  z
  t        dt              dz  z   df      } t        t        dt        dk  ft        dt              dz  t        dt              dz  z
  t        dt              dz  z   df      t        dk\  fd      }t        dd      }t	        | t        dd      z
  t        t        dd            }t	        |t        dd      z
  t        t        dd            }||k(  sJ ||k(  sJ y )Nr   r   r   r   Trb  )r/   r   r-   rN   rf   r   )c1c2correct_resultresult1result2s        r   test_issue_18359r  5  s    	Aq1u:Aq	!c!Qik 9C1IaK GN	OB	Iq!a%j3q!9Q;Q1+Ds1ayQR{+RTX*YZ\]ab\bcen	oBa^NrHQN*Ax1~>GrHQN*Ax1~>Gn$$$n$$$r   c                      ddt         z  dz  z   t        t         dz        z  t        t         dz  z  z   } t        | t               sJ t	        | dt         t
        j                        t        d      k(  sJ y )Nr   r   r  r   )r   r$   r   rm   rn   r   rl  rL   )r   s    r   test_issue_17604r  ?  s`    qs2v;,s1R4y
 2":
-C3"""c1a51EEEr   c                      t        ddt        dz  z
  dz  z  t        t        j                        t        j                  u sJ y ro  )rf   r   r   r   r   r   r   r   test_issue_17580r  E  s1    Aq1a4x!mOQ0AJJ>>>r   c                      dt         z  dt        z  z   dz
  dt         z  dt        z  z   dz
  g} t        | t         t              t        t	        ddt        z  z
        t	        d      z  t        f      k(  sJ y )Nr   r   r   r  r   )r   r   ri   rL   r%   )r9  s    r   test_issue_17566_actualr  I  sb    a4!Q$;?AqD1a4K!O
,CsAq!YA1Hc!f0Da/H%IIIIr   c            	      t   t        dt        dz
  dz  z  dt        dz   t        d      dz  z  z  z  dt        dz
  z  t        dz   t        d      dz  z  z  z   d      } t        t	        j
                  dt        dd             t	        dt                    }t        | t        t        j                        |k(  sJ y )Nr   r   r   r   r   r   )r   r   r   rO   rN   r'  r   r   rf   r   r   )r  ru  s     r   test_issue_17565r  O  s    	Aq1uqjL!QUgajl334q!a%y!a%7ST:VW<AX7XXZ[	\B
rHQN?3Xa_
ECB177#s***r   c                      t         dz   t        t         dz   dt         z  z
        z  } t        | t         t        j                        t        t        d            k(  sJ y )Nr   r   r   r{  )r   r,   rf   r   r   rL   r   )functions    r   test_issue_15024r
  U  sG    AtQTEBqDL))HHa)Ywr{-CCCCr   c                     t        t        t        dz
  t        t              gt        t              t        t        d      t        t        t        dt        z  t        z        t        j                        ft        d      t        t        t        dt        z  t        z  t        z         t        j                        f            sJ y r   )r   ri   r   r<   r   rL   rI   r   r   r   r   r   r   r   r   test_issue_16877r  Z  s    a!eSV_a3IaL(6!QqSV3Dajj*QR%aL(6!QqSVb[3I1::*VWYZ Z Zr   c                  X   t        t        t        t              dt        z  dt        z  z
  gt        t              t        t        t        t        dt        z  t        z        t        j                        t        t        t        t        t        z        t        j                        ft        t        t        dt        z  t        z  t        z         t        j                        t        t        t        t        t        z  t        dz  z         t        j                        f            sJ y Nr   r   )r   ri   r<   r   r   rL   rI   r   r   r   r   r   r   r   r   test_issue_16876r  a  s    c!facAaCi0!Q7HVAqs2v%6

C$VAqt_ajjAC$VAqs2v{%;QZZH$VAqtbd{%;QZZHJKL L Lr   c                     t        d      \  } }t        dd      }t        | |z  |z
  | t        j                        t	        | t        | |z  |z
  d      t        j                        k(  sJ t        dd      \  }}||z  }t        | |z  |z
  | t        j                        t	        | t        | |z  |z
  d      t        j                        k(  sJ y )Nzx zr   T)rationalr   ze1 e2)even)r   rf   r   r   rH   r   )r   r   r   r  r  s        r   test_issue_21236r  j  s    5>DAqd#AAqD1Ha)\!R1q!_agg-VVVVW4(FB
2AAqD1Ha)\!R1q!_agg-VVVVr   c                      t        t        dz  dt        z  z   t        dz  z
  t        t              z  dt        z  t        t              z  gt        t              ddhk(  sJ y )Nr   r   )r   r   rA  )ri   r   r   r$   r   r   r   test_issue_21908r  s  sV    A!ad*CF2BqDQK@!Q #V,- - -r   c                     t         t        z   dz
  t        dz  dz   g} | D cg c]  }t        |d       }}dt        z
  t        fdt        z   t         fh}t	        | t         t        g      }t	        |t         t        g      }||cxk(  r|k(  sJ  J t         t        z  dz
  t        dz  dz   g}|D cg c]  }t        |d       }}t         t         ft        t        fh}t	        |t         t        g      }	t	        |t         t        g      }
|
|	cxk(  r|k(  sJ  J t	        t        t         dt         z  z   dt         z        gt         g      t        t        j                  f      k(  sJ y c c}w c c}w )Nr   r   r   )r   r   r   r   ri   rL   r   r   )r  r}   rB  r6  
soln_expr1soln_eq1r  rC  rh  
soln_expr2soln_eq2s              r   test_issue_19144r  x  sN   UQY1q!E"
#2a8
#C
#!eQZ!a%!%EUQF+J3A'Hz*U*****qS1WadQhE"
#2a8
#C
#b1"X1vEUQF+J3A'Hz*U*****1qs7AaC()A3/9ajj]3KKKK $ $s   E+1E0c            	         t        dt        z  dt        z  dt        t              z  z   dz   z  t        dt        z        z  dt        z  t        dt        z        z  dt        z  t        dt        z  t        z         z  z   dt        dt        z  t        z         z  z   dz   ft        t              } t	        t        t
        j                  ft        t               t
        j                  z
  t        f      }| |k(  sJ y )Nr   r   r   )ri   r   r   r$   rL   r   r4  r   )ru  solss     r   test_issue_22413r    s    !QqS1SV8^a/0QqS91S1X!C!aL(881S1q\>IAMO1C a[CF7QVV#3Q"78D$;;r   c            	      \   t        dt        t        t        dt        z
  z  dz         z  t        z        t        t        dt        z        t        ddt        z  t        z        g} | D cg c]  }|j                  t               }}dh}t        t        | t        t        t        g      |       t        t        |t        t        t        g      |       t        dt        z  ddt        z  z
  z  dz         }dt        z  |z  d	t        z  z   }t        t        |t              d
dh       y c c}w )Ng}jJ@g      @r   g~jtX?gQ@)gO]p@g;fl?g~adOAgIx>g~jtXgFӭ{>r   g\adOA)r   r   r%   r   r   rx  r   r   ri   r   rf   )eqs_eqr  eqs_exprr   logterms        r   test_issue_23318r#    s    
QQ#']Q%6!77!;<
1fqj
67Q;?#F
 +11B

31H1A
BCKAq	2C8K1a)4c:%a'/B1/D)DEIJG	7	02	2BHROa)9%:; 2s   )D)c                     t        dt        z  ddt        z  z  z
  ddt        z  z  ddt        z  z  z
  gt        t              t        t	        ddt        z  z        t	        d      z  t
        j                  f      k(  sJ y r  )ri   r   r   rL   r%   r   rl  r   r   r   test_issue_19814r%    sr    AAaC!AqD&1qs8*;<a $c!ac(mCF&:AKK%HIJ J Jr   c                  F   t        t        t               t        dz  z  dt        z  z   t        t              z   t        t        j
                        } | j                  t        di      dt        d      z
  dt        d      z   hk(  sJ | j                  t        di             y rO  )rf   r,   r   r   r   r   xreplacer  s    r   test_issue_22058r(    sw    
DG8AqD=1Q3&a0!QWW
=C<<AAQKT!W#==Ss||QPQF?SS=r   c                      t        dt        t        dz  t        t        dz
   t        dz   z        dz   dz  z         z  dz
  t        t        j                        t        j
                  u sJ y )Nr   r   r   r  )rf   r,   r   r   r   r   r   r   r   test_issue_11184r*    s]    BtAqDD1r6AF);$<r$AA#EEFFKQPQPWPWX\]\f\ffffr   c            	         t        d      dz  } t        dt        dz  z  t        dz  z  dt        z  z
  dt        dz  z  t        dz  z  dt        z  z
  gt        t              d| z  dt        z  z  t        fd| z   dz  d| z  t	        d      z  t
        z  dz  z
  t        z  t        fd| z   dz  d| z  t	        d      z  t
        z  dz  z   t        z  t        fhk(  sJ t        ddt        dz  z  z
  t        dt        dz  z  dt        dz  z  z
        z  dt        z  t        z  t        dt        dz  z        z  t        dt        dz  z        z  gt        t              t        d       dz  dft        d      dz  dfhk(  sJ t        dd	
      \  }}t        d|dz  z  |dz  z  d|z  z
  d|dz  z  |dz  z  d|z  z
  g||      }dt        d      dz  z  d|z  z  |fdt        d      dz  z   dz  dt        d      dz  z  t	        d      z  t
        z  dz  z
  |z  |fdt        d      dz  z   dz  dt        d      dz  z  t	        d      z  t
        z  dz  z   |z  |fh}||k(  sJ y )Nr   r   r   r   r   r   r   r  Tr   )r   ri   r   r   r,   r   r$   r   )ry   rxryr   r  s        r   test_issue_21890r.    s   	!QA!Q$q!tac)1QT6!Q$;1+<=q!D	
AqsQAqD57QT$q'\!^A%55q8!<a4%'AqDaLN1$
$a	'+I- - - - Qq!tVSAqD1QT6)9%::
1Qs2ad7|C1a4L(*+,a178teAgq\AaDFA;4OP P PU&FB
qQwr1u}qt+Qr1uWRU]QrT-ABB
KC!QK2#qtAv;,q.1qtAv;tAw.q02
2B	6;qtAv;,q.1qtAv;tAw.q02
2B	6;=C #::r   c                  D   t        t        dz
  t        dz
  t        dz
  t        dz
  dt        z  gt        t        t              t        j
                  k(  sJ t        t        dz  dz
  t        t        z   t        dz  dz
  gt        t        g      t        j
                  k(  sJ y )Nr   r   r   r   r   )ri   r|   r   rz   r   r   r   r   r   r   r   test_issue_22628r0    sv    Aq1ua!eQUBqD91aCqzzQQQ1q!a%A2QF;qzzIIIr   N(l  mathr   sympy.core.addr   sympy.core.containersr   sympy.core.functionr   r   r	   r
   sympy.core.modr   sympy.core.numbersr   r   r   r   r   r   sympy.core.relationalr   r   r   r   sympy.core.singletonr   sympy.core.sortingr   sympy.core.symbolr   r   r   r  r   $sympy.functions.elementary.complexesr   r   r   r    r!   r"   &sympy.functions.elementary.exponentialr#   r$   r%   %sympy.functions.elementary.hyperbolicr&   r'   r(   r)   r*   r+   (sympy.functions.elementary.miscellaneousr,   r-   r.   $sympy.functions.elementary.piecewiser/   (sympy.functions.elementary.trigonometricr0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   'sympy.functions.special.error_functionsr>   r?   r@   rA   re  rB   sympy.matrices.denserC   r  sympy.matrices.immutablerD   sympy.polys.polytoolsrE   sympy.polys.rootoftoolsrF   sympy.sets.containsrG   sympy.sets.conditionsetrH   sympy.sets.fancysetsrI   rJ   sympy.sets.setsrK   rL   rM   rN   rO   rP   rQ   sympy.simplifyrR   sympy.tensor.indexedrS   sympy.utilities.iterablesrT   sympy.testing.pytestrU   rV   rW   rX   rY   rZ   sympy.core.randomr[   rt  r  r\   sympy.solversr]   r  r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   r  ru   rv   rw   rx   ry   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/  r1  r5  r7  r:  r<  r>  r@  rB  rD  rF  rM  rP  rR  rU  rX  rZ  r]  r`  rg  ri  rm  rp  rv  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.  r4  r7  r>  rF  rJ  rR  rT  rV  re  rk  rq  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r#  r%  r(  r*  r,  r/  r1  r5  r8  r:  r<  rG  rJ  rO  rQ  rS  rU  rW  rf  rl  rn  rr  ru  rw  ry  r{  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r  r  r  r#  r%  r(  r*  r.  r0  r   r   r   <module>rP     sB     ' @ @  @ @ 2 2 " & 6 6 & T T G G" " C C :" " " "  # = 9 & + ( 0 09 9 9 # ( 6 Q Q 6 " B B B B B B B     #>	> \A \A~>$+:
, 	N 	N&H8Lv6 4GB;,$1N
F,R = = 3 3B0!7
EC

!=%
+
G@a
W2?@H(D>1E1	D3&6 Z6 Z6zOEdD>B28
 	6 	6 S Sl * * !^ !^H K K6,l^>( U U
C.5N
+41'h1
6l0^&(,C6@3
7
= H H..M:,&Y2O4> 
> 
>D"N%<F,80t	 (
](1./&H
 f, ,  g+ +$
761':226: <6D A98
(
3>?*]=,*	9C4<2,-6;
2$;[R
*]N9H 4(%
HGI-=`  80(/6+ > > ; ;
2<A" . .@"J6&3(
2L>gV/
.=
O?d&0R-;%F?J+D
ZLW-
L&<$J
TgJr   