
    g D                    r
   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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/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z< d dl=m>Z>m?Z?m@Z@ d dlAmBZB d dlCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQ d dlRmSZSmTZTmUZUmVZV d dlWmXZX d dlYmZZ[ d dl\m]Z] d dl^m_Z_ d dl`maZa d dlbmcZc d dldmeZe d dlfmgZgmhZh d dlimjZjmkZkmlZlmmZmmnZnmoZompZp d dlqmrZr d dlsmtZt d dlumvZv d dlwmxZxmyZymzZzm{Z{m|Z|m}Z} d d l~mZ d d!lmZ d d"lmZ d d#lmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ d d$lmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ d% Zd& Zd' Ze}d(             Zd) Zd* Zd+ Zd, Zd- Zexd.             Zd/ Zd0 Zd1 Zd2 Zd3 Zd4 Zd5 Zd6 Zd7 Zd8 Zd9 Zexd:             Ze{d;             Zd< Zd= Zd> Zd? Zd@ ZdA ZdB ZdC ZdD ZdE ZdF ZdG ZdH ZdI ZdJ ZdK ZdL ZdM ZdN ZdO ZdP ZdQ ZdR ZdS ZdT ZdU ZdV ZdW Ze}dX             ZdY ZdZ Zd[ Zd\ Zd] Zd^ Zexd_             Zexd`             Zexda             Ze}db             Ze}dc             Zdd Zde Zexdf             Zdg Zdh Zdi Zdj Zdk Zdl Zdm Zdn Zdo Zdp Zdq Z dr Zds Zdt Zdu Zdv Zdw Zexdx             Zdy Zdz Z	d{ Z
d| Zd} Zd~ Zexd             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 e|d          d             Z e|d          d             Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(d Z)d Z*exd             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 ZAd ZBd ZCd ZDd ZEd ZFd ZGd ZHd ZId ZJd ZKd ZLd ZMd ZNd ZOdÄ ZPexdĄ             ZQdń ZRdƄ ZSdǄ ZTexdȄ             ZUexdɄ             ZVdʄ ZWd˄ ZXd̄ ZYexd̈́             ZZd΄ Z[dτ Z\dЄ Z]dф Z^d҄ Z_dӄ Z`dԄ ZadՄ Zbdք Zcdׄ Zdd؄ Zedل Zfdڄ Zgdۄ Zhd܄ Zid݄ Zjdބ Zkd߄ Zld Zmd Znd Zod Zpd Zqd Zrd Zsd Ztd Zud Zvd Zwd Zxd Zyd Zzd Z{d Z|dS )    isclose)stationary_points)Tuple)FunctionLambdanfloatdiff)Mod)EIRationaloopiInteger	all_close)EqGtNeGe)S)ordered)DummySymbolsymbolssympify)Absargimresign	conjugate)LambertWexplog)HyperbolicFunctionsinhcoshtanhcothsechcschasinhacoshatanhacothasechacsch)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_invert_trig_hyp_real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    p | j        |          S )Nc              3   <   K   | ]\  }}t          ||          V  d S N)dumeq).0r   r   s      ]/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/solvers/tests/test_solveset.py	<genexpr>zdumeq.<locals>.<genexpr>:   s.      5541a5A;;555555    )typelisttupleallzipdummy_eq)r   r   s     r   r   r   8   sU    Aww4-553q!995555556"ZQZ]]"r   c                 4   t          |           } t          |          }t          | t                    sJ t          |t                    sJ t          |           t          |          k    sJ t	          d t          | |          D                       sJ dS )z2Test solutions with floats from solveset are closec              3   <   K   | ]\  }}t          ||          V  d S r   r   r   v1v2s      r   r   z"assert_close_ss.<locals>.<genexpr>E   s.      ==62rwr2======r   N)r   
isinstancerT   lenr   r   )sol1sol2s     r   assert_close_ssr   >   s    4==D4==DdI&&&&&dI&&&&&t99D		!!!!==St__==========r   c                    t          |           } t          |          }t          | t                    sJ t          |t                    sJ t          |           t          |          k    sJ t	          | |          D ]P\  }}t          |          t          |          k    sJ t          d t	          ||          D                       sJ QdS )z5Test solutions with floats from nonlinsolve are closec              3   <   K   | ]\  }}t          ||          V  d S r   r   r   s      r   r   z"assert_close_nl.<locals>.<genexpr>Q   s.      ==vr272r??======r   N)r   r   rT   r   r   r   )r   r   s1s2s       r   assert_close_nlr   H   s    4==D4==DdI&&&&&dI&&&&&t99D		!!!!dD// > >B2ww#b''!!!!==R=========> >r   c                   ,   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          d          k    t          d          k    z  t)          t+          t-          |d	|z  t          z  t/                    z             t          j                  t+          t-          |t          d	z  |z  t          z   t/                    z
            t          j                                      f          sJ t#          t          t%          t	                                        t'          t          d          k    t          d          k    z  t)          t+          t-          |t          d	|z  t          z  t/                    z                       t          j                  t+          t-          |t          t          d	z  |z  t          z   t/                    z
                      t          j                                      f          sJ t#          t          t3                              t'          t          d          k    t4          k     z  t4           k     t          d          k    z  z  t)          t+          t-          |d	|z  t          z  t7                    z             t          j                  t+          t-          |d	|z  t          z  t7                    z
  t          z             t          j                                      f          sJ t#          t          t3          t	                                        t'          t          d          k    t4          k     z  t4           k     t          d          k    z  z  t)          t+          t-          |t          d	|z  t          z  t7                    z                       t          j                  t+          t-          |t          d	|z  t          z  t7                    z
  t          z                       t          j                                      f          sJ t#          t          t9                              t'          t          d          k    t          d          k    z  t)          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	                                        t'          t          d          k    t          d          k    z  t)          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          d          k    t4          k     z  t4           k     t          d          k    z  z  t)          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          t=          t	                                        t'          t          d          k    t4          k     z  t4           k     t          d          k    z  z  t)          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          tA                              t'          t4           k     t4          k     z  t+          t-          ||t          z  tC                    z             t          j                            f          sJ t#          t          tA          t	                                        t'          t4           k     t4          k     z  t+          t-          |t          |t          z  tC                    z                       t          j                            f          sJ t#          t          tE                              t'          t4           k     t4          k     z  t+          t-          ||t          z  tG                    z             t          j                            f          sJ t#          t          tE          t	                                        t'          t4           k     t4          k     z  t+          t-          |t          |t          z  tG                    z                       t          j                            f          sJ t#          t          tA          tA                                        t'          tI          tA          tA                                        t          j                  f          sJ t          dd          t          t          z            t          dt          z  z            fk    sJ t          dd          }t          dd          }t          tK                    |          t          tM          |                    fk    sJ t          tK          t                              |          t          t	          tM          |                              fk    sJ t          tO                    |          tQ          t          tS          |           tS          |                    t          j                  fk    sJ t          tO                    |dz             t          tS          |dz              tS          |dz                       fk    sJ t          tU                    |          tQ          t          tW          |                    t          j                  fk    sJ t          tY                    |dz             t          t[          |dz                       fk    sJ t          t]                    |          tQ          t          t_          |           t_          |                    t          j                  fk    sJ t          ta                    |          t          tc          |                    fk    sJ t#          t          tU          t%                              |          t'          t          d          tW          |          k    tW          |          t          d          k    z  t)          t+          t-          |d	|z  t          z  t/          tW          |                    z             t          j                  t+          t-          |d	|z  t          z  t/          tW          |                    z
  t          z             t          j                                      f          sJ d S )Nr   Trealc                 "    t          ||           S r   )rU   )r   ss     r   irealztest_invert_real.<locals>.irealX   s    Aq!!!r   r   positiver         c                  &    t                       S r   )rl   r   s   r   <lambda>z"test_invert_real.<locals>.<lambda>u   s    {1a33 r      g      ?  d         ?c                  :    t          t          j                   S r   )rl   r   Oner   r   s   r   r   z"test_invert_real.<locals>.<lambda>}   s    {15!Q77 r      r   p)2r   r   Realsrl   r%   r   rT   r&   r   r4   Halfr^   
ValueErrorr   r   EmptySetr   r   rD   rP   rW   rQ   r   r=   IntegersrB   r   r;   r@   r9   rC   r<   rE   r>   rA   r:   r   r(   r.   r)   rU   r/   r*   r0   r+   r1   r,   r2   r-   r3   )r   r   lhsbase_valuesr   r   r   r   s         @@r   test_invert_realr   T   s%   sA7 " " " " s1vvq!$$EE)CFF2C2C,D,D(EEEEEsT"""AsAq1ua##9QU+;+;'<<<<<qsAq!!a1q5)9)9%:::::s1vvq!$$Ic!ff,=,=(>>>>>s1Q3xxA&&1iA
.C.C*DDDDDs1q5zz1a((Q	#a&&1*0E0E,FFFFFs1vvz1a((QiAE

6K6K0L0L,MMMMMs1vvaxA&&1iAE

.C.C*DDDDDs1vvq!$$Ic!ff,=,=(>>>>>s1Q3xxA&&1iA
.C.C*DDDDDs1q5zz1a((Q	#a&&1*0E0E,FFFFFs1vvq!$$Ia!,<,<(=====q!tQ""q)CFF3q66M*B*B&CCCCCq#a&&y!Q''AuuYs3q66#a&&=?Q?Q5R5R/S/S+TTTTTq!tQ""q)DGGd1ggX*F*F&GGGGGq!&y!Q''AyA+?????
:3333444 q"ua##9Q2Y+?+?'@@@@@q"uqb!$$AJ7777q(3--'q11a35HHHHHq#vq!$$C1(>>>>>
:77777888q"uqy!Q''ArEAIy||+DDDDD
R%!)CQUQBF++Ks1b519q=))1a00S+4FFFFFSVVQ**QQ2!QqTT	2EVAqs2vQ/00!*==VAr!tAv{T!WW455qzBB5D 5D 	E 	E-F G G G G G
 SQ[[!Q//!Q2!QqTT	2EVAs1Q3r6DGG#34455qzBBVAs2a46B;a#899::AJGG5I 5I 	J 	J2K L L L L L
 SVVQ**QQ!A$$!)B/bS1Waee4LM(6!QqSVd1gg%566
CC1Q3r6DGG#3b#8991:FFH H	I 	I-J K K K K K
 SQ[[!Q//!Q!A$$!)B/bS1Waee4LM(6!S1R$q'')9%:%:;;QZHH3qs2vQ'7"'<#=#=>>
KKM M	N 	N2O P P P P P
 SVVQ**QQ2!QqTT	2EVAqs2vQ/00!*==VAqs2vQ/00!*==5? 5? 	@ 	@-A B B B B B
 SQ[[!Q//!Q2!QqTT	2EVAs1Q3r6DGG#34455qzBBVAs1Q3r6DGG#34455qzBB5D 5D 	E 	E2F G G G G G
 SVVQ**QQ!A$$!)B/bS1Waee4LM(6!QqSVd1gg%566
CC1Q3r6DGG#344ajAAC C	D 	D-E F F F F F
 SQ[[!Q//!Q!A$$!)B/bS1Waee4LM(6!S1R$q'')9%:%:;;QZHH3qs2vQ'7#8#8991:FFH H	I 	I2J K K K K K
 SVVQ**QQ"qQV,VAqtd1gg~..
;;	= 	=-> ? ? ? ? ? SQ[[!Q//!Q"qQV,VAs1R4$q''>2233QZ@@	B 	B2C D D D D D SVVQ**QQ"qQV,VAqtd1gg~..
;;	= 	=-> ? ? ? ? ? SQ[[!Q//!Q"qQV,VAs1R4$q''>2233QZ@@	B 	B2C D D D D D SQ[[!Q//	
LBs3q66{{A..889; ; ; ; ;
 	sT"""Aq"ua##9Q2Y+?+?'@@@@@sAsT"""AtAww1%%!YuQxx-@-@)AAAAAtCFF||Q**q)CaMM2J2J.KKKKKtAww1%%!\588)U1XX&&.1 .1 *2 2 2 2 2tAwwAq))a5Q<<-q1u...0 0 0 0 0 tAww1%%!\)E!HH:M:Mqw-W-W)XXXXXtAww!Q''Ayqs/D/D+EEEEEtAww1%%!\588)U1XX&&.1 .1 *2 2 2 2 2tAww1%%!YuQxx-@-@)AAAAAT#a&&\\1a001Q2%((*uQxx1Q44/?@%VAqs2vU1XX677DDVAqs2vU1XX6;<<ajIICK CK 	L 	L3M N N N N N N Nr   c                     t          d          } t          t          t                    t	          ddd          t                    d                             t          t          t          | t          |                      t	          ddd                    t          t          | t          |                     t	          ddd                                        sJ t          t          t                    t          dd          t                    t          t          t          t           t          d                     t          t          d          t                              fk    sJ t          t          t                    t          t          j         d          t                    t          t          t#          t          j                   t                    fk    sJ t          t%          t                    t'          | t          j        | dz  z   t          j                  t                    t          t+          t-          t          d          dz             t-          t          d          dz            t-          t          d          d	z             t-          t          d          d	z                      fk    sJ t          t/          t                    t          j        t                    t          t          t          j        t           d
          t          j        d
t                              fk    sJ d S )Nr   
   r   r   r         r   )r   rn   r)   r   rR   r   rW   rQ   r   r/   r+   rV   r   r1   r*   r   r   r0   r,   rX   	Naturals0rT   r2   r-   r   openr   s    r   test_invert_trig_hyp_realr      s|   c

A a%B*:*:A>>qAJJ5E!HH9%%uQA77588$$eAr1oo66L8 L8 9 9 9 9 9 !a(2q//1==!U"uQxxi  (588R"8"8F: F: B; ; ; ; ; a(AF7A*>*>BBq%--$$G& & & & & a(1afqslAK*P*PRSTT	
IuQqTT!V}}neAaDDFmmeAaDDFmm^U1Q44PQ6]]SSTU U U U a!'155!hmRC##X]1b%9%9:::< < < < < < <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%          t                    t          t                    t          t'          t)          t          t          dt          z  t          z  t          t          dt+          d          z             z  z             t          j                  t)          t          t          dt          z  t          z  t          z   t          t          dt+          d          z             z  z
            t          j                            f          sJ t	          t          t-          t                    dt          z   t                    t          t'          t)          t          t          dt          z  t          z  t/          dt          z             z
            t          j                  t)          t          t          dt          z  t          z  t/          dt          z             z             t          j                            f          sJ t	          t          t1          dt          z            dt                    t          t)          t          t          t          t          z  dz  t          dz  z             t          j                  f          sJ t	          t          t3          t                    dt          z  t                    t          t)          t          t          t          t          z  t          t5          d          z  z
            t          j                  f          sJ t	          t          t7          t                    dt                    t          t'          t)          t          t          dt          z  t          z  t          z            t          j                  t)          t          t          dt          z  t          z  t          z  t          t          z  z             t          j                            f          sJ t	          t          t9          t                    dt                    t          t'          t)          t          t          dt          z  t          z  t          z  t          t          z  dz  z             t          j                  t)          t          t          dt          z  t          z  t          z  dt          z  t          z  dz  z             t          j                            f          sJ t          t;          t                    dt                    t          t          j        fk    sJ t	          t          t;          t                    t>          t                    t          tA          t          tC          t>          d	          tC          t>          d          z  t)          t          t          t          t          z  t          z  tE          t>                    z             t          j                            f          sJ t          tG          t                    dt                    t          t          j        fk    sJ t	          t          tG          t                    t>          t                    t          tA          t          tC          t>          d	          tC          t>          d          z  t)          t          t          t          t          z  t          z  t5          t>                    z             t          j                            f          sJ t	          t          tI          t                    dt                    t          t'          t)          t          t          dt          z  t          z  t          z  t          t          z  dz  z             t          j                  t)          t          t          dt          z  t          z  t          z  d
t          z  t          z  dz  z             t          j                            f          sJ d S )Nr   r   r   r   c                  8    t          dt          t                    S Nr   )rl   r   r    r   r   r   z%test_invert_complex.<locals>.<lambda>   s    {1a33 r   c                  B    t          t          t          t                    S r   rm   r   r   r   r   r   z%test_invert_complex.<locals>.<lambda>   s    ~aA66 r   c                  8    t          t          t          d          S r   r   r   r   r   r   z%test_invert_complex.<locals>.<lambda>   s    ~aA66 r      r   r   )%rm   r   r   rT   r   r%   rX   r   r   r   r   r   r&   r   r   r   r^   r   rD   rW   rQ   r4   r@   r9   rE   rA   r1   r(   r)   r*   r   r~   rP   r   r0   r+   r,   r   r   r   test_invert_complexr      s9   !a%A&&1iA.>.>*?????!A#q!$$Ia!e,<,<(=====1q51*a++9Q<</@@@@@A1--	
HVAq!B$q&3q66/2SQ[[@AA1:NNOQ Q Q Q Q #a&&!Q''AyQ/@/@+AAAAA
:33444
:66777
:66777A1--51Q3r6Ac!d1gg+&6&6$6677DD1Q3r6B;3q477{+;+;);;<<ajII4K 4K 0L M M M M M A!Q//!U1Q3r6DQKK/00!*==1Q3r6DQKK/00!*==6? 6? 2@ A A A A A AaC!Q//!1R46BqD=))1:6628 9 9 9 9 9A!Q//!1R4!E!HH*,--qz::2< = = = = = QA..E1Q3q58$$aj111Q3q58ad?++QZ885: 5: 1; < < < < < QA..E1Q3q58ad1f,--qz::1Q3q58ac"fQh.//<<5> 5> 1? @ @ @ @ @ $q''1a((Q
O;;;;QA..Q1b		Bq!HH,1Q3r6E!HH,--qz::	< 	<1= > > > > > $q''1a((Q
O;;;;QA..Q1b		Bq!HH,1Q3r6E!HH,--qz::	< 	<1= > > > > > QA..E1Q3q58ad1f,--qz::1Q3q58ac"fQh.//<<5> 5> 1? @ @ @ @ @ @ @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 d S )Nr   r   r   Fr   T)rg   r   r   r   r   r   test_domain_checkr     s    11Q3!|+,a4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 d S )Nr   r   r   )ro   r   r   r   r   rT   r   r   r   test_issue_11536r     s^    AqD3J17++qz9999AqD1Ha))Yq\\999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 d S )Nr         )r   r   r   r
   rr   r   )r   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s88q==SXX^^^^^^r   c                     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 ]2\  }}	}
| |||	||
it          fd|||fD                       dk    sJ 3d S )Nx, y, zr   c              3   f   K   | ]+}|                                                               V  ,d S r   )subsrZ   )r   _r   s     r   r   z#test_issue_18449.<locals>.<genexpr><  s9      @@aQVVAYY''))@@@@@@r   )r   r   r   )r   r
   rr   r   )r   r   r   r   r   r   r   r   xsyszsr   s              @r   test_issue_18449r   2  s   i  GAq!	
A1qAqD1a4K!++a1a4!Q$A1E.FFA	aB	aB	aB
r2rlQ1I
.
.C N NRAr1b!@@@@BB<@@@@@IMMMMMN 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 d S )Nr   r   r   r   )r   r4   ro   r   r   rT   r   r   s    r   test_issue_21047r   F  s   	
Q
d1q5kkAo))AAq!'""ill2222	aQ$q''!)a'1a4/$q''9AAq!'""i	aQi!m$$Q&&aQi!m1D1DQ1F(F'H 'H H H H H H Hr   c                     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 d S )NTr   r   F)	rk   r8   rE   r   rD   r~   r'   r*   r(   r   r   r   test_is_function_class_equationr   O  s\   &'<'*1vvq2 259: : : :&'<'*1vvz16 69=> > > >&'<'*1vvA; ;>BC C C C&'<'*1vvA':A? ?BFG G G G&'<'*1vvc!ff}s1vv'=qB BEIJ J J J&'<'*1vvc!a%jj'83q66'A1F FIMN N N N&'<'*1vvc!A#hhQ'?D DGKL L L L&'<'(Qx!|Q8 8;?@ @ @ @&'<'*1vvqy3q66'9A'=qB BEIJ J J J&'<'*1vvz16 69>? ? ? ?&'<'*1a4yy!5 58=> > > >&'<'*1a4yy3q66'91> >AFG G G G&'<'*1vvs1vv~q: :=BC C C C&'<'*3q66{{SVV';Q@ @CHI I I I&'9'+Aww3 36:; ; ; ;&'9'+Aww{A7 7:>? ? ? ?&'9'+Awwa'8!= =@DE E E E&'9'+Awwa'81'<aA ADHI I I I&'9'+AwwtAwwa'@!E EHLM M M M&'9'+AwwtAE{{':T!WW'DaI ILPQ Q Q Q&'9'+AwwtAaCyy'8477'BAG GJNO O O O&'9'(ay1}a9 9<@A A A A&'9'+AwwzDGG';a'?D DGKL L L L&'9'+Aww{A7 7:?@ @ @ @&'9'+AqDzz16 69>? ? ? ?&'9'+AqDzzDGG';Q@ @CHI I I I&'9'+AwwQ'7< <?DE E E E&'9'+DGG}}tAww'>C CFKL L L 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
           d S )Nc                  8    t          t          gt                    S r   )rf   r   r   r   r   r   z$test_garbage_input.<locals>.<lambda>  s    }aS!44 r   r   Tr   r   r   c                  &    t           g           S r   )rh   r   s   r   r   z$test_garbage_input.<locals>.<lambda>  s    /Q77 r   c                  2    t           t          f           S r   )ro   r   r   s   r   r   z$test_garbage_input.<locals>.<lambda>  s    xA22 r   c                  >    t           dz   t          j                  S r   )ro   r   r   r   s   r   r   z$test_garbage_input.<locals>.<lambda>  s    xAqw77 r   c                  ,    t           dz    d          S Nr   r   )ro   r   s   r   r   z$test_garbage_input.<locals>.<lambda>  s    xAq!44 r   )	r^   r   r   rf   r   r   rT   r   rh   r   s   @r   test_garbage_inputr    s4   
:44555sAA!*,,,,Q""ill2222B1:----AqD!!QZ////
:7777888Ar""aj0000
:2222333
:7777888
:444455555r   c                  D   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 d S )
Nr   anzT)nonzerobbr   r   r   )rf   r~   r   r   r%   rW   r&   rU   r   r   r   rT   r   )r  r  s     r   test_solve_mulr	    sE   !A#'CFFQJ/33s1vvhqbdVQW55667 7 7 7

%
%
%C	4	 	 	 B#a%"*s1vvz2A662#c'3q66""# # # #!A#'AAJ/33y27G7GGGGG3q661%%333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 d S )Nr   r   r   r   r   )rf   r%   r   rT   r&   r   r   r~   rU   r   r   r   r   r   test_solve_invertr    sZ   Q!Q''9SVV+<+<<<<<Q!Q''9SVV+<+<<<<<QUQ''9;;6666QUQ''9;;6666Qs1Q3xxZ++|	1S1XX:&&0( 0( ( ( ( ( AA&&)AAs1vv4E*F*FFFFFFFr   c                     t          t          t          t                    t          j        z
  t                    t          t          t          t          t          dz  t          z  t          dz  z             t          j                  t          t          t          t          dz  t          z  t          dz  dz  z             t          j                                      sJ t          t          t                    dz
  t                    	                    d          } t          t          t                    t          j        z
  t                    	                    d          }d | |fD             }t          | sJ | |f            d S )Nr   r   r         ?c                 4    g | ]} |j         d  d           S )c                     | j         S r   )is_Floatr   s    r   r   z-test_issue_25768.<locals>.<listcomp>.<lambda>  s     r   c                 F    t          |                               d          S )Nr   )r   limit_denominatorr   s    r   r   z-test_issue_25768.<locals>.<listcomp>.<lambda>  s    !..t44 r   )replacer   r   s     r   
<listcomp>z$test_issue_25768.<locals>.<listcomp>  sH     
I 
I 
I:; !)446 6 
I 
I 
Ir   )r   rf   rD   r   r   r   rW   rQ   r   r   r   r   )n1n2eqs      r   test_issue_25768r    s5   s1vv22E2a46BqD=))1:662a46BqDF?++QZ885: 5: ; ; ; ; ; 
s1vv|Q	'	'	)	)!	,	,B	s1vv	*	*	,	,Q	/	/B
I 
I@BBx
I 
I 
IB ":r"gr   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 d S Nr   )
rf   rF   r   r   r   rT   rI   rG   r   rH   r   r   r   test_errorinversesr    s    Q!&!,,&..!!" " " "Q**#a&&   a15!,,'!%..!!" " " "a++ya/A/AAAAAAAr   c                  $   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k    sJ t          | dz  | d	z  z   t          z   |           t          j
        u sJ d S )Nr   Tr   r   r   r   r      r         r   r   r   )r   rf   rT   r   r   r   r   r4   r   r   r   r   s     r   test_solve_polynomialr"    s   sAsA1q!$$	(1a..(A(AAAAAA1%%AE615)A)AAAAAQT1%%16):):::::A1q!,,	
Q!&[	!
Q!&[1 1    
 a1a((IaLL8888a1a((IaLL8888HQNN*Q.22immCCCCHQNN*Q.22immCCCC}QTAqD[1_a0011Q6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    s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                                          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    s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                                           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 d S )Nr   r  r   r   r   r      r   F)exponentr   c              3   @   K   | ]}t          |t                    V  d S r   )r   rN   r  s     r   r   z&test_return_root_of.<locals>.<genexpr>  s,      33!z!W%%333333r   r   ZZdomainr   r   )r   r   rh   funcrN   r	   r   r   r   r   rT   rM   	all_roots)r   r   rootr   r  s        r   test_return_root_ofr-    s6   	1r!Q$w1a4"Q$&+Aa##$$A $ $yG##### $'1qAv(91==>>qA " " "%,QTAadF]Q->%B%B%D%D%F%FG G G G 1qs
Q22
3
3C33s33333ECA	1r!Q$w1a4"Q$&+Aa##$$A $ $yG#####	1qAv!Q$!Q/AAq!!4!D)))335567 7 7 7 
AEA:q1u	q!tax!|	,BB"""aGAqD1HqL!44q!tax!|Q//q!tax!|Q//q!tax!|Q//q!tax!|Q//q!tax!|Q//	1 	11 1 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 d S )Nr   r   r   r   r$  r   r!  1   r   r   r   )rf   r4   r   rT   r   r   r   r   r   r   test_solveset_sqrt_1r0    s   acAg*Q.2215&!A$$       a!eq1,a00IbMMAAAAa!eq!,,	"====a1q!,,	"====adQ''9Q<<7777a!ea((IaLL8888qsAg**ill::::qsAgx1~~5q99!     r   c            	      
   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                       r/t          |          dk    rd |D             d ||fD             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 d S )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      K   | ]=}t                              |                                                    d k     V  >dS )g|=N)absr   r   )r   r   r  r   s     r   r   z'test_solveset_sqrt_2.<locals>.<genexpr>J  sF      @@!s2771a==??$$%%-@@@@@@r   c                 0    h | ]} |j         d           S T)chopr   r  s     r   	<setcomp>z'test_solveset_sqrt_2.<locals>.<setcomp>L  s$    %%%A$%%%r   c                 0    h | ]} |j         d           S r:  r   r  s     r   r<  z'test_solveset_sqrt_2.<locals>.<setcomp>M  s$    ***A$***r   i~i  )r   rf   r4   rT   r   r   r   r   )r   ansrarbr  r   s       @@r   test_solveset_sqrt_2rA    s   sAsAacAga!e4q8!<<!A$$"   a!eq4A;;6::"    bdT!Q$(^^344q8!<<!    
Q!Q$1a4-!#hq!nn4	4BQ9Xb!__hr1oo#N#N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0	a!etAww		"BQ9Q<<////	a1fqj		QU	#BQ9addUAaDD#9#99999 
a1fqj		QqS1W	%BQ9Q<<////a!etAww.2A66)++EEEE
A#'HQNN	"Q	&BQ9R==0000a4Q==014a888B??T"XXaZ/!3445 5 5 5 
a4A;;	d1gg	.BQ9;;....
a%!tAww{Q&	&BQ9R#3#33333
q''DQKK
$q1u++
-$q''	!
;B
A

C	
 L 
M 
MB 
!QB@@@@@Bx@@@@@ +CA%%%%%**"b***	+ 	+ 	+ 	+ a1hq!nn#44!"HQNN!23457 7:CA,,G G G G 41q>>)1--1====
ad(adDQTNN*	+BQ9QT??2222 AEHQNN22Q6::(7E**++, , , , , ,r   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 d S )Nr   r   r   )r   r   rf   rT   r  s    r   test_solve_sqrt_failrD  \  sa     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 d S )NRr   r   r   r   r   r   o      (   r   r!  r5     r   r   )r   r4   rh   r   r@   r>   r!   r   rD   r    rT   rP   r   r   r   r   r   r   rf   )rF  r  r   fsetcsetfscsunsolved_objects           r   test_solve_sqrt_3rP  d  sH   sA	a41q5	??	"a!ed1ggd1a!e9oo.E.I%J	JB
2q
!
!CQNNQtBxxZD499S,A,A!,C(D(DDQFF"XXIc$qc{3//122214r!hr1ooQ	!3hsB6G6G$s))TU+VW-6WZbcdfgZhZh5hhijjjkllmHHSaS		k#o..q0111!346>q!nnE RyT!DII+c/2214555a7BxxD499S11!3444Q67"Q"a47719Q;6#r9J9JTRUYYWX[YZ]9Z]efgij]k]k8kklmmmnoop qqrD r!hr1ooQ	!3hsB6G6G$s))TU+VW-6WZbcdfgZhZh5hhijjjkllHHSaS		k#o..q0111!346:2hhs4$s))TWCXCXYZCZ?[?[6[\]6]^QNN r"Q"a47719Q;6#r9J9JTRUYYWX[YZ]9Z]efgij]k]k8kklmmmnooBxxD499S11!3444Q67BxxD499S11!3444Q67 88 9D 
D	B	aBIt$4	5	5B29rd+++++ AzaR1X.22
3
3	3dQTE!Gd	!Q$1a4!A#!G# G##$G% =%'/1~~=689<:=>T!VaZ$adFQq!tVOac!A%K' K''(K) >)+3Aq>>>:<==><> 7? 7? 
?B #1bq1uqjQB!Hqv<MPQ;Q.Q)R)Rq!teAgQq!tVa1f_qs2Q67799HQNNJQNRSUVRVWXRX[\R\Qq!tVa1f_qs"Q&'')S*,4QNNS;=>R? ? 	@ 	@*@AB'D 'DEFWN NO Q?222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 d S )Nr   r   r   )rh   r   r~   rT   r4   r   r   r   r   r   $test_solve_polynomial_symbolic_paramrR    sT   QTAXMA-q11$q477{##d1tAww;&7&7%7q477{##d1tAww;&7&7%7	9 	99 9 9 9
 A1qs7OQ//1Q37A+2a401 1 1 1 A!QUOQ//1"Q$A,)QB--/0 0 0 0 0 0r   c                     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                      t                    t                    t          t          j        t          d                    k    sJ d S )Nr   r   r   r   r$     )rf   r   rT   r   r   r%   r
   Zeror   r   r   test_solve_rationalrV    s   1q!$$	15&(9(999993q66Aq))Yq\\9999A!Ga((IaLL88881a!eq!,,	!<<<<!Q$A,,,Q//33!&!B%%  ! ! ! ! ! !r   c                  l    t          t          d          dz   t                    t          j        u sJ d S r   )rf   r4   r   r   r   r   r   r   test_solveset_real_gen_is_powrX    s/    a1a((AJ666666r   c                     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 d S )Nr   r   r   r   )	ro   r   r   r   r   rf   r%   r~   r4   r   r   r   test_no_solrZ    sp   A1H++++BqD!
****BqD2Iq!!QZ////A!*,,,,Q##qz1111A1%%3333Ad1ggq))QZ77771a  AJ....1q51q51*,q!a%y8! 
 
Z     r   c                  T   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 d S )Nr   r   r   )rf   r   r   r   ro   rV   r   r   r   test_sol_zero_realr\    s    A!'))))Aq(1a..))Xa^^;;;;!Q$1Az1A5q99QWDDD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 d S )Nr   r   r  )rf   r   r   r   r   r   r    test_no_sol_rational_extragenousr^    sh    !QU)a-2.22aj@@@@!a%!aQi-0!44
BBBBBBr   c                     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 dS )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)rf   r4   r   rT   r   r   r   rU  r   r   r   test_solve_polynomial_cv_1ar`    s   
 a1a((IaLL8888a1a((IaLL8888HQNN*Q.22immCCCCHQNN*Q.22immCCCCA	NQ./33!&!B%%  ! ! ! ! ! !r   c            	      8   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 dS )	z)Test solveset_real for rational functionsr   Tr   r   r   r   r   N)r   rf   r4   rT   r   s     r   test_solveset_real_rationalrb    s    sAsA!ad(1d1q!t8nn'<=qA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 d S r  )rf   r&   r   rT   r4   r   r   r   test_solveset_real_logrd    s\    acAaC[))1--$q''DGG8$$% % % % % %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 d S )Nr   r   r   r   )rf   r   rT   r   r   r   r   r   r   test_poly_gensrf    s^    Q1X!^,q0!44(2q//16**+ + + + + +r   c                  	   t          d          } t          t          d            t          t	          t
                    | z
  t
          t          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}|                    |          }|                    |          D ]}|                    t
          |          rJ  t-          t          t/          t1          t	          t
                              d          t
          t          j        
          t3          t5          t          dt                    t3          t5          t7          t9          | d| z  t:          z  dt:          z  dz  z             t          j                  t          t           d                    t5          t7          t9          | d| z  t:          z  t:          dz  z             t          j                  t          dt                                                                      sJ d S )Nr   c                  V    t          t          t                    dz
  t                    S r   ro   r   r   r   r   r   r   z test_solve_abs.<locals>.<lambda>  s    xA
A66 r   r   r   r  r   r   r5  r   r(  )r   r^   r   ro   r   r   r   r   r   rP   rO   rV   r   rf   rT   r   r   rJ   r   r~   rl   r   r   r   rD   rW   rU   rQ   r   r   r   )r   r   r  repseqabsis         r   test_solve_absrm    s   c

A
:66777CFFQJ17++44QHQOO44r1g>>@ @ @ @ @Q!Q''9R+;+;;;;;Q!Q''1:5555QUaAE

l2A66!Q   3q66CAJJ.22"hq!nn%%& & & & HQOO,,QB00QB002 2 qb1fqj1"q&1*a!eaiQCCE EC 
SQZZ!^		q	 Br1a  #s****q!Q<D774==Dhhtnn $ $99Q######"SQ[[!,,a@@@%Xa__eXfQ!B2a88!*EEbS!	 	XfQ!BA66
CCQOO	 	' ' 	 	C  C  ! ! ! ! ! ! !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 d S Nr   r   )r   ro   rD   r   rQ   r   r   r   r   r   r@   r   r   r   test_issue_9824rp    s    #a&&!)aAh.2A661Q3r6TVWXTX=AYAY[\[e8f8fggggg#a&&!)aAh.2A661Q3r6ARARTUT^8_8_```````r   c                      t          t          t          dz
  t          dz
  z            t          dd          k    t                    t	          dd          k    sJ d S )Nr   r   r   r   r   )rf   r   r   r   rV   r   r   r   test_issue_9565rr     sN    a!ea!e_--!Q?CCxPRTUVVVVVVr   c                      t          dt          dz
  z            dz
  dk    } t          | t                    t          t	          j        dd          t	          j        dd                    k    sJ d S )Nr   r   r   )r8  r   rf   rW   rV   r   rC  s    r   test_issue_10069rt    ss    	QAY!	a	BQ5aX]1a00$2 $2 2 2 2 2 2 2r   c                  h   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        k    sJ d S )Nza bTr   r   r   r5  )r   rf   r4   rT   r   r   r~   r   s     r   test_real_imag_splittingrw  
  s    5t$$$DAqadQTk**Q.2241q>>/41q>>223 3 3 3adQTk**Q.22	
     r   c                      t          dt          z  ddt          z  z  z
  t                    t          dt          z            k    sJ d S r  )rf   r   rd   rT   r   r   r   
test_unitsry    s=    1q!B$x++y2>>>>>>r   c            	      z   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        k    sJ d S )Nr   Tr   r   r   r   )	r   rf   r%   r   rT   r&   r4   r   r   r   s    r   test_solve_only_exp_1r|    s    sT"""AQ!Q''9SVV+<+<<<<<Q#qb'')A-q11#tAwwhl##Sa1%5%5667 7 7 7Q#qb'')A-q11QZ??????r   c                      t          t          t          d          t          dz  z
  t                    t	          dt          d          z            k    sJ d S Nr   r   )rf   r?   r   r   rT   r4   r   r   r   
test_atan2r    sH     q!r!t+Q//9QtAwwY3G3GGGG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
  k    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k    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k    fd	          }t          |dk    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 d S )Nr   Tr   r   r   r   r   r   r   Tr(  r   r   )BooleanTruer   )r7   r   r   setrf   rT   r   ro   r   r   rW   rV   r   r   r   r   sympy.logic.boolalgr  r   r   r   rD   )r  absxm3r   r   r   r  s         r   test_piecewise_solvesetr  $  s"   	AE2a88$q1udm	4	4q	8B}R##$$Ib!,<,<(=(=====	
QQU
	
QAE	 F 	sT"""A!Q''9aR!VQU+C+CCCCCAEA:qAv&	22AAq)))U9Q<<2#qRVX\A]A]-^-^^^^^1q5!a%.1d),,q0!QW
 
rc1    Iq1ubAhh/!T;;Q??9Q<<OOOO 	1a"f+y))AAE1ag&&(-B*?*?????//////AAq"b!1!1222hr26F6FFFFF 	1bAhh-!Q$s1vv+t!455A1bBii.AFCFF?D"9::AAq)))Yq\\9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 d S )Nr   r  r   r   )rh   r~   r   r   r   rT   r4   r   r   r   r   r   r   r   r    test_solveset_complex_polynomialr  F  s   AadFQqSL1,a001"ac(T"Q$q&1a4-00!A#66"ac(T"Q$q&1a4-00!A#66	8 	88 8 8 8 A1Ha((I
Xa^^
	Q4771hq!nn+<!<Q!>>	8Aq>>
Xa^^
	Q4771hq!nn+<!<Q!>>-@ -@ @ @ @ @
 A!GaK++!&1T!WW9Q;&4771(<==> > > > > >r   c                  L    t          dt                    t          j        u sJ d S Nr   )rh   r   r   	Complexesr   r   r   test_sol_zero_complexr  T  s%    Aq!!Q[000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 d S Nr   r   r   )rh   r   r   rT   r   r4   r   r   r   test_solveset_complex_rationalr  X  s   QUQUOQU3Q77!Q    QAXAtA1H~~(=>BB!Q$   QTEAIq))477(1*tAwwqy{*DGGAIQ	!,CDDE E E E E Er   c                  T   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 ]N} | j        t          |                                                                          }t          |d	          sJ Ot          dz  d
t          z  z   dz   } t          | t                    }|D ]N} | j        t          |                                                                          }t          |d	          sJ Od S )NzThis test is too slowr   n   r   7   r   i	  i  r   r  r6  )r_   r   rh   r   r   tn)r   r   r,  ress       r   test_solve_quinticsr  b  s   	 !!!	1s1a4x"QT'!DF*S0AAA  afQ!!##%%#qzz	1r!tbAAA  afQ!!##%%#qzz 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                                        t                    t                    t	          t          t          t          t          z  t          z            t          j
                            sJ d S r  )r   rh   r%   r   rX   r   r   r   r   r   r   r   r(   rewriter   r   r   test_solveset_complex_expr  q  sH   !#a&&1*a001Q3q58$$aj113 3 3 3 3!#a&&1*a001ac"fr!tm,--qz::< < < < <Ac!ffHa((AJ6666!$q''//#"6"6::1R46""AJ//1 1 1 1 1 1 1r   c            
          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 d S )Nr  r   r   r   r!  r   r   iq  r   lxpEA *   r   r   )ro   r   r   r   r   rT   r   r   rU   r&   rl   r   r   r   test_solveset_real_expr  {  s   BQwNNAqw//9Q<<????B1uaLL!QW--;;;;BQwOOQ00AJ>>>>Bac{C((!QW551EEEEBq1Q3x%%q!'22aj@@@@Ba!e}f--q!'::immKKKKBq!tQKKAG,,QWiPSTUPVPVWZ[\W]W]P]F^F^0_0_____ac{R'A..1ill2CCCCCCCr   c            	         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 d S )Nr   r   r   )rh   r&   r   rT   r~   r4   r   r   r   r   test_solve_complex_logr    s    CFFA&&)A,,6666AA!Q$J/334Q<<-/4Q<<>223 3 3 3 3 3r   c                  z   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 d S )Nr   r   r   r   r   r   )	rh   r4   r   rT   r   r   r   r~   rU  r   r   r   test_solve_complex_sqrtr    s	   D1qMMA-115515&!A$$       D1qMMQ1W591==1Q44%QqS!!" " " "AaCQa[1155!&!a1f*%%& & & & & &r   c                     t          t          t                                        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 d S r  )rh   rE   r   r  r%   r   rX   r   r   r   r   r   )r   s    r   test_solveset_complex_tanr    s    Q,,a00AHVAr!t__aj992a4"Q$;''445 6 6 6 6 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          d          t          t"                    k    t          t"                    t          d          k    z  t	          t+          t          t          dt          z  t          z  t"          z
  t-          t          t"                              z             t          j
                  t+          t          t          dt          z  t          z  t"          z
  t-          t          t"                              z
  t          z             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t/          t                    z  t          t                    z  dz   t                    t	          t+          t          t          dt          z  t          z  t1          t3          d          t3          dt3          d
          z             z  dt3          d
          z
  z            z   t          z             t          j
                  t+          t          t          dt          z  t          z  t1          t3          d          t3          dt3          d
          z             z  dt3          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t-          t          d          dz            z  z
  dt          z  z             t          j
                  t+          t          t          dt          z  t          z  dt-          t          d          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!          t5          t3          d          t          z  dz            dz             t	          t+          t          t          dt3          d          z  dt          z  t          z  t7          d          z
  z  dz            t          j
                  t+          t          t          dt3          d          z  dt          z  t          z  t7          d          z   z  dz            t          j
                                      sJ t          t9          t!          t/          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t1          t3          ddt          dd          z  z  ddt3          d          z  z   t          dd          z  z  ddt          dd          z  z  z   dddt3          d          z  z   t          dd          z  z  z             dddt3          d          z  z   t          dd	          z  z  z            z  z             t          j
                  t+          t          t          dt          z  t          z  dt1          t3          ddt          dd          z  z  ddt3          d          z  z   t          dd          z  z  ddt          dd          z  z  z   dddt3          d          z  z   t          dd          z  z  z             dddt3          d          z  z   t          dd	          z  z  z            z  z
  dt          z  z             t          j
                                      sJ t          t9          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 d S )Nr   r   r   r   r$  r   r(  r   r   r4  r   r   r  rJ  -   K   i   r      r5     r   r6  r   r  C   9      ih     )r   rf   rD   r   rW   rX   r   r   r   r   r   r@   r   r   rh   r   ro   r   r~   r   rP   rQ   r=   rE   r>   r4   rC   r<   rZ   rA   r   r   r   test_solve_trigr    s   s1vvq))hva2a((!*55va2a"--qz::	< 	<= = = = = s1vvz1--1R46BqD=))1:668 8 8 8 8 s1vvq))hva2a"Q$//<<va2a"Xa^^*;!;<<ajII	K 	KL L L L L s1vvA22hva1R"Xa^^*;!;<<ajIIva1R"Xa^^*;!;<<ajII	K 	KL L L L L QSVVQY.22aj@@@@!#a&&16/155hva1R"Xa^^*;!;<<ajIIva1R"Q$//<<	> 	>? ? ? ? ? #a!e**s1vv-qAAAQ2#a&&SVVqtt^<eVAqs2vzDQLL8991:FFVAqs2vzDQLL82=>>
KK?M ?M 	N 	NO O O O O
 s1Q3xxAQqS#a&&@BAFF1R4A.A566
CCE E E E E qQxA2A661Q3r6Dab488m1D1D)Db\* % %  ! " "#$:	/ 	/1Q3r6Dab488m1D1D)Db\* % %  ! " "#$:	/ 	/90 90 1 1 1 1 1 s1Q3xxAaC014a88$VAqt__ajAAC C C C C #ad))hq!nn455u2a47RQqTT!V_4r"u<==qzJJ2a47RQqTT!V_4r"u<==qzJJ8L 8L M M M M M #ad))c!A#hh.//2a47RU1W,--qz::2a47RU1W,--qz::2a47RU1W,--qz::2a47RU1W,--qz::2a47SVAX-..
;;2a47RU1W,--qz::2< 2< = = = = = #d1ggaik**Q.//1T!WW9ac"ftBxx&78:;;QZHH1T!WW9ac"ftBxx&78:;;QZHH2J 2J K K K K K (3r!t99s2a46{{#:;;<<e1Q37##QZ001Q37##QZ001Q3!Q/00!*==1Q3!Q/00!*==1Q3"a0111:>>1Q3!Q/00!*==?? ?? @ @ @ @ @ #ac((##U1Q3r6!8be+,,aj991Q3r6!8bd?++QZ88&: &: ; ; ; ; ; #ac((SAYY.17;;U1R46BqD=))1:661R46AbDF?++QZ881R46AbDG+,,aj991R46AbDG+,,aj991R46AbDG+,,aj991R46BrE>**AJ77>9 >9 : : : : : qQxAaC014a88
1Q3r6Ad41hq!nn;L8LbDHH*O'1~~N. 9.01!Xa^^2C0C9DFH"DHH*K'1~~J. G.9. 4/ 4/012$r((
?XaQR^^2S0S4U /V /V -V $V W WXYXbd d 6!QqSVaT"QA=N:NPRDHH*Q'1~~P. ;.01!Xa^^2C0C;DFH"DHH*K'1~~J. G.;. 6/ 6/012$r((
?XaQR^^2S0S6U 1V 1V /V &V B$&   % %& &' ' ' ' ' (3quRx==16#91agFFGG3q53;''443q52:&&
33J5 J5 6 6 6 6 6 6 6r   c                  1   t          d          } t          t          dt          z  dz             t	          d          dz  z
  t                                        t          t          t          | | t          z  t	          d          dz  z
  dt          z  dz  z             t          j
                  t          t          | | t          z  t	          d          dz  z
  dt          z  dz  z             t          j
                                      sJ t          t          dt          z  dz             t	          d          dz  z
  t                                        t          t          t          | | t          z  t	          d          dz  z
  dt          z  dz  z             t          j
                  t          t          | | t          z  t	          d          dz  z
  dt          z  dz  z             t          j
                                      sJ t          t          t                    t          t          dz            z
  t                                        t          t          | | t          z  t          dz  z             t          j
                            sJ t          t          t                    t          t          dz            z
  t                                        t          t          | | t          z  t          dz  z             t          j
                            sJ t          dt          dt          z            z  d	z
  t                    t          t          t	          d	          dz             dz  t          t	          d	          dz            dz            k    sJ t          dt          dt          z            z  d	z
  t                                        t          t          t          | | t           z  t          z  t          t	          d	          dz            dz  z
            t          j
                  t          t          | | t           z  t          z  t          t	          d	          dz            dz  z             t          j
                                      sJ t          t#          t          dz
            dz
  t                    t          t%          d          dz             k    sJ t          t#          t          dz
            dz
  t                                        t          t          t          | d| z  t           z  t          z  t%          d          z   dz             t          j
                  t          t          | d| z  t           z  t          z  t%          d          z
  dz   t           t          z  z             t          j
                                      sJ t          t'          t#          t                              t'          t          dz            z
  t                                        t          t          t          | t%          d| z  t          z  t          dz  z                       t          j
                  t          t          | t%          d| z  t          z  d
t          z  dz  z                       t          j
                                      sJ t)          t'          t#          t                              t'          t          dz            z
  t          t+          dd                    t          t%          d
t          z  dz            t%          dt          z  dz                      k    sJ t          t          t          dz  dz
            dz
  t                    t          t-          dt          d          z              t-          dt          d          z                       k    sJ t          t          t                    dz
  t                    t          j        k    sJ t          t'          t                    dz   t                    t          j        k    sJ t          t1          t                    t                    t          j        k    sJ t          t3          t                    t                    t          j        k    sJ t          t          t                    dz   t                    t          j        k    sJ t          t5          t                    t                    t          j        k    sJ t          t7          t                    dz
  t                    t          j        k    sJ t          t7          t                    t                    t          j        k    sJ t          t9          t                    dz   t                    t          j        k    sJ t          t9          t                    d          t          j        k    sJ t          t5          t                    d          t          j        k    sJ t          t7          t                    d          t          j        k    sJ t          t;          t                    d          t          j        k    sJ t          t=          t;          t                              dz
  t                    t          t?          d           t?          d                    k    sJ t          t9          t          dz  dz
            tA          d          z
  t                    t          t-          tC          tA          d                    dz              t-          tC          tA          d                    dz                       k    sJ t          t5          tE          t                              dz   t                    t          tA          tG          d                               k    sJ t          t5          tA          t                              dz   t                    t          j        k    sJ t          t#          t                    t           dz  z
  t                                        t          t          t          | dt           z  t          z  | z  d	t           z  t          z  dz  z             t          j
                  t          t          | dt           z  t          z  | z  t           t          z  dz  z             t          j
                                      sJ t          t#          t          dz            tI          dd          z   t                                        t          t          t          | d| z  t           z  t          z  dt%          t	          d          dz            z  z
            t          j
                  t          t          | d| z  t           z  t          z  dt%          t	          d          dz            z  z   dt           z  t          z  z             t          j
                                      sJ t          t7          t-          d          t          z  dz            d	z   t                                        t          t          t          | dt-          d          z  d| z  t           z  t          z  tK          d          z
  z  dz            t          j
                  t          t          | dt-          d          z  d| z  t           z  t          z  tK          d          z   z  dz            t          j
                                      sJ t          t          dt          z            t                                        t          t          t          | d| z  t           z  t          z  dz  t           t          z  dz  z             t          j
                  t          t          | d| z  t           z  t          z  dz  t           t          z  dz  z             t          j
                                      sJ t          d	z  dt          z  z
  dz   &                    t          t5          tN                              }t)          |tN          t          j(                                      t          t          t          | | t           z  t          z  tG          tS          t          d	z  dt          z  z
  dz   d                    z             t          j
                  t          t          | | t           z  t          z  tG          tS          t          d	z  dt          z  z
  dz   d                    z             t          j
                  t          t          | | t           z  t          z  tG          tS          t          d	z  dt          z  z
  dz   d                    z             t          j
                  t          t          | | t           z  t          z  tG          tS          t          d	z  dt          z  z
  dz   d                    z             t          j
                  t          t          | | t           z  t          z  tG          tS          t          d	z  dt          z  z
  dz   d                    z             t          j
                                      sJ t)          |tN          t          j*                  t          tG          tS          t          d	z  dt          z  z
  dz   d                    tG          tS          t          d	z  dt          z  z
  dz   d                              k    sJ t          t-          d          dz  z
  t          dz   z  +                                &                    t          t'          t                              }t)          |t          t          j(                                      t          t          t          | d| z  t          z  tY          d          z
            t          j
                  t          t          | d| z  t          z  tY          d          z             t          j
                  t          t          | d| z  t          z  t          dz  z             t          j
                  t          t          | d| z  t          z  dt          z  dz  z             t          j
                                      sJ t)          |t          t          j*                                      t          t          t          | d| z  t          z  t          dz  z             t          j
                  t          t          | d| z  t          z  dt          z  dz  z             t          j
                                      sJ t)          dt1          t-          d          t          z  dz             dz  z   dt1          t-          d          t          z  dz             z
  z                                t          t          t          | t-          d          d| z  t          z  dz
  t[          t                     z
  z  dz            t          j
                  t          t          | t-          d          d| z  t          z  dz
  t[          t                     z   z  dz            t          j
                  t          t          | t-          d          d| z  t          z  dz
  t[          t                      z
  z  dz            t          j
                  t          t          | t-          d          d| z  t          z  dz
  t[          t                      z   z  dz            t          j
                                      sJ t]          t)          t          dt          z            t	          d          dz  z  dz
  t          t+          dd                    t          dddt          z  z   ddt          z  z                       sJ d S )Nr   r   r   r   r2  r6  r4  r   r         r   r   r   r   r   r   r5  r  r  r  gQ	@gʡE@g|^z?ga?ga?)/r   rf   rD   r   r   r   rW   rQ   r   r   r   rh   rE   r)   rT   r/   r   r(   r.   r@   ro   rV   r4   r   rC   rB   r+   r,   r*   r-   r8  r3   r%   r0   r&   r1   r   r2   r   r   r  rN   r   expandr9   r<   r   )r   r  s     r    test_solve_trig_hyp_by_inversionr    s   c

AQqS1W!Q.22;;E1R4!A$$q&=2b58344ajAA1R4!A$$q&=2b58344ajAA=C =C D D D D D C!aLL1Q4461155>>u1R4!A$$q&=2b58344ajAA1R4!A$$q&=2b58344ajAA@C @C D D D D D Q#be**,a00991R4"R%<((!*557 7 7 7 7CFFSBZZ/33<<1R4"R%<((!*557 7 7 7 7 4!99q!,,		qttAvq%!Q--/1+ 1+ + + + +Ad1Q3iiK!OQ//881Q3r6E!A$$q&MM!O344ajAA1Q3r6E!A$$q&MM!O344ajAA:C :C D D D D D a!eq!,,	a11 1    DQKK!OQ//881Q3q58eAhh.233QZ@@1Q3q58eAhh.2QrT9::AJGG:I :I J J J J J T!WWc"R%jj0!44==e51R"R%00111:>>51R"R%(!23344ajAA?C ?C D D D D D CQLLRU+Q1>>%2b//5Br??334 4 4 4ad1fa++y	a%((l		T!eAhh,//01 01 1 1 1 1 Q!Q''1:5555Q!Q''1:5555Q##qz1111Q##qz1111a1a((AJ6666a!$$
2222a1a((AJ6666a!$$
2222a1a((AJ6666DGGQ''1:5555DGGR((AJ6666DGGQ''1:5555DGGQ''1:5555T!WW)1--E!HH9eAhh1O1OOOOOadQh#b''1155	eCGGnnq 	!	!!4c"gg(:#;#;:= := = = = = c!ff)1--3ay>>1J1JJJJJc!ff)1--;;;;DGGacM1--66u1Q3r6!8ac"fQh.//<<1Q3r6!8ad1f,--qz::8< 8< = = = = = D2JJ!Q7;;DDU2a46"9r%!Q--'7788!*EE2a46"9r%!Q--'77"Q$r'ABBAJOOFQ FQ R R R R R Da1--1155>>u1T!WW9ac!eBhr&:;A=>>
KK1T!WW9ac!eBhr&:;A=>>
KK@M @M N N N N N D1IIq))2251Q3q58A:"R/00!*==1Q3q58A:"Q.//<<4> 4> ? ? ? ? ? Q$!)a-		aa	)	)BB1;''001Q3r6E'!Q$!)a-*C*C$D$DDEEqzRR1Q3r6E'!Q$!)a-*C*C$D$DDEEqzRR1Q3r6E'!Q$!)a-*C*C$D$DDEEqzRR1Q3r6E'!Q$!)a-*C*C$D$DDEEqzRR1Q3r6E'!Q$!)a-*C*C$D$DDEEqzRR2T 2T U U U U U B17##ygadQqSj1na(())5A!a1K1K+L+L(N (N N N N N T!WWQY;1
	%	%	'	'	,	,QA	7	7BB1;''001Q3r6DHH,--qz::1Q3r6DHH,--qz::1Q3r6BqD=))1:661Q3r6BrE!G+,,aj99	2; 2; < < < < <
 B17##,,U1Q3r6BqD=))1:661Q3r6BrE!G+,,aj99.; .; < < < < < Qs47719Q;''**Qs47719Q;/?/?-?@AAJJ5477AaCFQJa$89!;<<ajII477AaCFQJa$89!;<<ajII477AaCFQJqb$9:1<==qzJJ477AaCFQJqb$9:1<==qzJJ	LL LL M M M M M Xc$q&kkAaDDF3E91hq!nnMM#%69J29M%M!$5b$88	: 	:; ; ; ; ; ; ;r   c                  *   t          t          t                    t          t          j                  t          d          k    sJ t          t          t                    t          t          j                                      t          t          t          t          dt          z  t          z  t          z            t          j                  t          t          t          dt          z  t          z  t          z  t          t          z  z             t          j                                      sJ t          t          t          t          z            t          t          j                                      t          t          t          t          dt          z  t          z  t          z   t          z            t          j                  t          t          t          dt          z            t          j                                      sJ t          t          t          t          z            t                                        t          t          t          t          dt          z  t          z  t          z   t          z            t          j                  t          t          t          dt          z            t          j                                      sJ t          t          t!          dt          z  dt"          z  z
            z  t                                        t          t          t          t          t          z  dz  dt          z  dz  z
  t"          z             t          j                            sJ t%          t          t'          dt          z            dz
  t          t)          ddt          z                      t          ddt          z   ddt          z  z   dt          z                       sJ t          t          t          t          t          t          z  dz
            t          j                  t          t          t          t          t          z  dz             t          j                            } t          t'          dt          z            dz
  t          t          j                  }|                    |                    t.                                                    t                    }t%          ||           sJ t          t'          dt          z            dz
  t          t          j                  }|                    |                    t.                                                    t                    }t%          ||           sJ t          t3          t                    t5          d          z
  t          t)          dt          dz                      t          t7          t5          d                              k    sJ t          t3          t                    t          z
  t          t)          dt          dz                      t          t7          t                              k    sJ t          t'          t                    t8          z
  t          t          j                                      t;          t          t          d	          t8          k    t8          t          d
          k    z  t          t          t          t          dt          z  t          z  t=          t8                    z
            t          j                  t          t          t          dt          z  t          z  t=          t8                    z             t          j                                                sJ t          t          t?          t                              t          t)          dd
dd                                        t          tA          t          t          t          tC          dt          z  t          z                      t          j                  t)          j"        dd
                    tA          t          t          t          tC          dt          z  t          z  t          z                       t          j                  t)          j"        dd
                                        sJ t          t          t                    t          d
          z
  t          t          j                                      t          t          t          t          dt          z  t          z  d
z             t          j                  t          t          t          dt          z  t          z  d
z
  t          z             t          j                                      sJ t          t          t                    t5          d          dz  z
  t          t          j                                      t          t          t          t          dt          z  t          z  tG          t5          d          dz            z             t          j                  t          t          t          dt          z  t          z  tG          t5          d          dz            z
  t          z             t          j                                      sJ t          t          t                    tI          d          z
  t          t          j                  t          tK          tI          d                              k    sJ t          tM          t3          t                    t8                    t          t          j                                      t;          t          tN           t8          k     t8          tN          k     z  t          t          t          t          t          z  t7          t8                    z             t          j                                      sJ tQ          dd          }t          tM          t3          t                    |          t          t          j                                      t          t          t          t          t          z  t7          |          z             t          j                            sJ d S )Nr   r   r   r2  r   r  ggs-8R?ggs-8Rr   r   TFr   r   r(  r   r   ))ro   r(   r   r   r   rT   r  r   rW   rQ   r   r   r   r   r   rD   rA   r   r   r@   rV   r   atomsr   poprE   r4   r>   r   rP   r9   r&   rU   r%   Lopenr=   r)   r.   r   r   r   )r   retr   s      r   test_old_trig_issuesr  [  s   DGGQ((IaLL8888DGGQ,,55e1Q3q58$$aj111Q3q58ad?++QZ887: 7: ; ; ; ; ;
 C1IIq!'**33EAaCFRK+,,aj991Q3,,5. 5. / / / / / C1IIq!!**5AaCFRK+,,aj991Q3,,,. ,. / / / / /
 Ac!A#!)nn$a((112a46BrE"H,q0111:>>@ @ @ @ @ Xc!A#hhna!QrT1B1BCCY-2QrT!#4r#9F; F; < < < < < 1R4*;#;<<ajII1R4*;#;<<ajIIK KC
3qs88c>1ag
.
.C
((399U##''))1
-
-CS#
3qs88c>1ak
2
2C
((399U##''))1
-
-CS# CFF477NAx2a4'8'899YtDQRGG}}=U=UUUUUCFF2Iq(1bd"3"344	$r((8K8KKKKK
 CFF1Ha))22Q"
qAaDDy15VAqs2vQ/00!*==VAqs2vQ/00!*==4? 4? 	@ 	@A A A A A CAKKHQq$$>$>??HHl8F1c!A#b&kk$:$:AJGGXY[\I]I]^^8F1c!A#b&2+.>.>$?$?LLhn]^`aNbNbcc	e 	ef f f f f
 CFFSVVOQ0099%1Q3r6A:&&
331Q3r6A:?++QZ88;: ;: ; ; ; ; ; CFFT!WWQY&1733<<U1Q3r6DaOO344ajAA1Q3r6DaOO3b8991:FF>H >H I I I I I DGGDGGOQ00IeDGGnn4M4MMMMM Bs1vvqMM1QW555>>Q"qQV,fQ"tAww77DD	F 	FG G G G G 	sABs1vvqMM1QW555>>1R4$q''>**AJ779 9 9 9 9 9 9r   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          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          t                    z   t                    t+          t-          t/          | d| z  t0          z  t2          z  t          t          dt          d          z                       z             t
          j                  t-          t/          | t0          d| z  t2          z  t2          dz  z   z  t          t          dt          d          z                       z             t
          j                  t-          t/          | t0          d| z  t2          z  t2          z   z  t          t          dt          d          z                       z             t
          j                  t-          t/          | t0          d| z  t2          z  t2          dz  z
  z  t          t          dt          d          z                       z             t
          j                                      sJ t'          t          t	          t          d
z            t	          t          dz            z             t+          t-          t/          | d
t0          z  d| z  t2          z  t2          dz  z   z            t
          j                  t-          t/          | d
t0          z  d| z  t2          z  t2          dz  z
  z            t
          j                  t-          t/          | d
t0          z  d| z  t2          z  dt2          z  dz  z
  z            t
          j                  t-          t/          | d
t0          z  d| z  t2          z  dt2          z  dz  z   z            t
          j                  t-          t/          | d
t0          z  d| z  t2          z  t2          dz  z
  z            t
          j                  t-          t/          | d
t0          z  d| z  t2          z  t2          dz  z   z            t
          j                                      sJ t'          t          t%          t2          t          z            t!          t2          dz  t          z            z
            t+          t-          t/          | dt0          z  d| z  t2          z  t2          dz  z   z  t2          z            t
          j                  t-          t/          | dt0          z  d| z  t2          z  t2          dz  z
  z  t2          z            t
          j                                      sJ t          t	          t                    t	          dt          z            z   t	          dt          z            z
  t          t
          j                                      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                                 t          t          t          t          dt          z            t!          dt          z            z   d          t
          j
                            sJ d S )Nr   r   r   r   r  r   r   r   r4  r  r   r6  )r   ro   r(   r   r)   r   r   r@   rP   r   r  rf   r,   rT   r&   r4   r+   r   r*   r   rh   rW   rQ   r   r   r   r   r   r   r   s    r   test_solve_hyperbolicr    s   c

ADGGd1gg%q))QZ7777DGGc!ff$a((L
3q66DGGQ-. -. . . . .a477*A..)Da13  3         acQtAwwY.2A66)BaL3q477{++;- ;- - - - -$q''D1II-tAww6:A>>)AFT!WWQYQa[!1!1C3 C3 3 3 3 3aa1,a00IARL!5 5    a477*Q.22iDGGAIaddU1WtAww.///0072 72 2 2 2 2 !$q''DGG"3Q771Q3q58c$rDGG|*<*<&=&==>>
KK1ac"fr!tm,s4DGG3D3D/E/EEFF
SS1ac"frk?Sb477l1C1C-D-DDEEqzRR1ac"fr!tm,s4DGG3D3D/E/EEFF
SS	:U :U V V V V V $qt**tAaCyy01152a41R"Q$/00!*==2a41R"Q$/00!*==2a41R!B$q&122AJ??2a41R!B$q&122AJ??2a41R"Q$/00!*==2a41R"Q$/00!*==4? 4? @ @ @ @ @ $r!t**tBqDF||344e1Q3!BA.r122AJ??1Q3!BA.r122AJ??7A 7A B B B B B
 DGGd1Q3ii'$qs))3Q 
 

(<
477T!A#YYac*A..9 9 : :: : : D1IIRT

*++44Q4!99tBqDzz1155q{CCE E E E 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          dt          z  t          z  t          z  t          t          z  dz  z   z            t          j                  t          t          t          t          dt          z  t          z  t          z  dt          z  t          z  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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          z
  t          dz  dz   z            t          j                  t          t          t          dt          z  t          z  t          z  t'          d          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                  t-          t'          d           | dz  dz   z  t'          d          | dz  dz   z            k    sJ t          t/          t          t1          dt          z   t          z            t1          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 d S )Nr   r   r   r   r   r   r   arTr   )r   ro   rD   r~   r   rP   r   rW   rQ   r   r   r   r   r   r)   r   r4   r   r@   r/   r   r   rT   rZ   rA   )r  s    r   test_solve_trig_hyp_symbolicr    s   #ac((A&&Q1a%AaCFRK?++QZ881Q3r6!8$$aj11C3 C3 )4 )4 5 5 5 5 5 $qs))Q''aAq51ac!eBh2a/0111:>>1ac!eBh1R1233QZ@@DB DB *C *C D D D D D #aQik!Q$."5a788
aQik!Q$"%a'
(
()*+- -Ar!Qxx"QT1++-uF1d1ggbjlAaCFRTM:AadFCDDajQQF1d1ggbjlAaCFQrT!VO<a1fEFF
SSF1d1ggbjlAaCFRTM:AadFCDDajQQ0S 0S T TU U U U U $1q!|,,q0!44l	2adQh??EVA!Ab588 3adQh?@@!*MMVA!Ab588 3adQh?@@!*MMO O7P 7P Q Q Q Q Q
 
4	 	 	 BD"a%!)Q''!+Q88I	q	2q519uQxxQ3=5 =5 5 5 5 5 (3Aqy>>CQqS!4D4D#DaHHII52q1u:qsQw/122AJ??2q1u:qsQw/122AJ??LA LA B B B B B B Br   c                  V   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                                        t$                    } t	          t                                        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 d S r  )r   ro   r(   r   r*   rW   rQ   r   r   r   r   r&   r4   r   r   r   r>   r  r%   rS   )f1f2s     r   test_issue_9616r    sR   $q''DGG+a/33U1Q3q58c$q''!)dAF7T!WW;L6M6M*M&N&NNOOQRQ[\\1ac"ftDGGD$q''9I4J4J,J'K'KKbPQ$q477{##$$% & &'(z	3 	31ac"frk?S$q''!dAF7TRSWWCT>U>U1U-V-VVWWYZYcdd1ac"frkDaaftAww>N9O9O1O,P,PPQ$q477{##$$% & &'(z	3 	364 64 5 5 5 5 5 q''		3		B
q''		3		B"r'A+q))581a1R"oT!WWHQJqvgQ>O9P9P,P(Q(QQRRTUT^` `VAq!A#b&2+q0111:>>	@ 	@ 	8F1a1R"tDGGDRVWXRYRYIYDZDZ<Z7[7[)[&\d1tAww;''((') * *+,:7 7VAq!A#b&2+q0111:>>	@ 	@ 	8F1a1R$tAwwtAFTRSWWDT?U?U7U2V2V)VY[)[&\d1tAww;''((') * *+,:7 7VAq!A#b&2+q0111:>>	@ 	@ 	VAqs1uRx#d1ggai$wa?P:Q:Q.Q*R*RRSSUVU_``VAq!A#b&2+q0111:>>	@ 	@,A ,A B B B B 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 d S Nr   r   )rf   rD   r   rh   r%   r   r   r   test_solve_invalid_solr    sW    M#a&&(A......$c!ffqj!^Q77777777r   c                     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 d S )Nr   r   r   )r   r   rf   rD   r   rX   r   r   r   r   r@   r   s    r   test_solve_trig_simplifiedr  	  s   c

As1vvq))1R4!*--/ / / / / s1vvq))1R4"Q$;''446 6 6 6 6 s1vvA221R4"Q$;''446 6 6 6 6 6 6r   c                  P   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          |                                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   	                    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                       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                       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
                      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
                      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   	                    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 d S )Nr   r   r   r   r   i r   r   r$  r5  ia	  r   iir~   Tr   r   r   r   r   )rf   r   r%   rT   r$   r&   r   r  r   r
   r4   r*   r   r   r   Exp1r   r   r@   r9   r   )r>  r  resultr~   r   r   s         r   test_solve_lambertr    sS   3q66Aq))Yx{{-C-CCCCCQ!Q''9hqkk\+B+BBBBBQT1%%8CFF###CFF*++, , , , !a!bdQh-/
3
3C)HROO$VAx1~~,=%=c!ff%DQ%FGG3q66RS T T T T T T 
AaC!Ga<!A!aL.	(B2q!!F
SYYxQ1hq!nn+<)<Q)>%?!@!@ @AAABDEc!ffHNNPQ R RCS====a((F22221q1SQqS\\>1155(1a..8CHQNN0C0C,CA,E#F#Fq#HHIIJ J J J 1q3qsQw<</33(1a..8Ac(32B2B.C.C,CA,E#F#Fq#HHIIJ J J J 1s1Q3xx++(8Aq>>**1,--. . . . A""iHSVV4D4D0E0E&F&FFFFFsA!A!CFF
*A..)C!HH2E2EEEEEsA1s1Q3xx++!HaRTNN"##$ $ $ $!A#AaC...q11155!HT!WWT!WW_Q.///001 1 1 1 a!eT!a%[[014a88AJFFFF!Q$1*q...q#a&&1Q3,??CC(1QV8$$Q&''( ( ( (!Q$1*q...q3q66AaC<!2Ca2GHH!LL(1S$q'']]?++A-x#d1gg,,/G/G/IJJK K K K!Q$1*q...q#a&&1Q3,??CC(1ST!WW---..q0(1S$q''A=N=N;N2O2OPQ2QRRS S S S3q66AaC!+Q//#b8SVVG,,,--../ / / /
CFF(Q,		Q#a&&	)	)BQ(1S(1++...//001 1 1 1 3q1Q37|,,,q1Q37|;Q??SAYY(1a..!9!99Ac!ffHEFGGH H H Hd###A3q1Q37|,,,q1Q37|;Q??a!Q!Xa^^"3A"55xA7O7OQYZ[]^Q_Q_7__abcdfnoprsftftctatuvvwz{|w}w}}a!Q!Xa^^"3A"55xA7O7OQYZ[]^Q_Q_7__abcdfnoprsftftctatuvvwz{|w}w}}QxA'''1,1SVV8=>>	A 	AA A A A 	sA	
3q1Q37|	qQ1q\!2!22	2Q1q\	ABQ9q!t99x1q5	***Qs1vvX
67$9 $9 9 9 9 9 !A#AaC...q!44a88I	(B!Q'8Aq>>(99!;
<
<<=> => > > > > A1a(("SVV)Hc!ffWQY///001 1 1 1CFFSVVQY.//9R#a&&###CFF*++4- 4- - - - - A1a((q!teadlA&&' ' ' ' 3q66Ac!ffH,--
8SVVGAIs1vv%
8SVVGAIr"""3q66)2+ 2+ + + + + !A#*++y	#a&&
0 0      r   c            
         t          dd          } t          t          | z  | t          z  z
  t                    t          | |  t	          t          |            | z            z  t          |           z            k    sJ d S )Nr   r   )r   rf   r   rT   r$   r&   )r~   s    r   test_other_lambertr  m  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
          j                            sJ t'          t          t          t          t                    d          t                    t)          t+          t,          dt          z  t.          z  t,          z            t
          j                            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k    t          t#          j        dt$                              t#          j        dt$                    k    sJ d S )Nr   c                  :    t          t          t          z             S r   )ro   r   r   r   r   r   r   ztest_solveset.<locals>.<lambda>w  s    xA r   r   r   r   r   r(  TFA)r   r^   r   ro   r   r   r   r   rT   r4   r   r   rD   r@   r%   r   r[   rV   r   r   rX   r   r   r   r   r>   r&   r   )r   r  s     r   test_solvesetr  t  s   A
:..///Aq>>QZ''''AAaDD!GaK!OQQqTT 
 
aR!V}dA26ll334 4 4 4AAaDD!GaK1qw//9R3C3CCCCCAAaDD!GaK1&&)QB*:*:::::AE11----CFFSVVOSVV,,	#a&&0A0AAAAAAag&&&!'1111A;;!*$$$$D)))QW4444E!'***aj8888CFFQJqw///9Q<<????CFFQJ17++y||;;;;Bs1vvqMM1ag..)A,,>>>>CFFQJA00IaLL@@@@QAAE1ag&&)A,,6666AEQJ17++x2>>>>CFFQJ!OQ00HQOOCCCC#a&&1*a(((6!QqSVAX3F3F
*S*STTTTT"SVVQ--++XfQ!Bq6I6I23*.> .> ? ? ? ? ? AqD11Q44K!OQ''T11Q44%!)__,<dAAaDD519oo+NNNNN DQLL1$aa0D0DEEEWXZ\I]I]]]]]]]r   c            !      B   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 d S )Nz
k1, k2, k3r   r   )r   r   ro   r%   r   rX   r   r   r   r   r   r&   r   rY   r   r   r   r~   r   r   rQ   )k1k2k3s      r   test_multi_expr    s	   &&JBB#c!ff++/1--	&2q'Q"R#ac!eBhQ6G2H2H(H%ICPSTUVWTWXYTYZ\T\_bcd_e_eTePfPfLgLg%ghh
AJ//
1 
12 2 2 2 2 1SQqS1W...2Q77QBFA:&&"a
qtBwQ!BaRT 23c#ac((mmCDDDECPQSTUVSVWYSY\_ab`bcd`d\e\eSePfilmpqrstqtmumuivivPvLwLwHxHxx2z 2z1:qz22)4 )4 	5 	56 6 6 6 6
 1SS1q\\!2!2333a7!<<QBFA:&&"b!qtBwQ"R#a1R#qbd))1C.Ds3qQRs88}}.T*U*U UVC1Q3r6C1II-.S1XX>??@@A B B B CEHQPQRTPTUWPWZ]^_abcdadegagjmopnpqrnrjsjsas^tAaCMM_" [# [# Q# N$&)#a1R#qbd))1C.Ds3qQRs88}}.T*U*U&V&VNW JX JX FY FYY2Z 2Z #1:qz1:FF	)H )H 	I 	IJ J J J J 1SSQqS1W%6%6!7!78881<qAAQBFA:&&"b"a8JqtBwQ"R#a2b3q!A#b&3PQrRSt99BT?UX[\_`abc`c\d\dXeXe?e;f;f1f.gC1Q3r6C1II-.S1XX>??@@/A +B +B !B CEHQPQRTPTUWPWZ]^_abcdadegagjmopnpqrnrjsjsas^tAaCMM_" [# [# Q# N$&)#a1R#qbd))1C.Ds3qQRs88}}.T*U*U&V&VNW JX JX FY FYY Z Z Z []`adefhijlhlmohoAqtBwQ!BaRT0B-Cc#aPQc((mm-S)T)TTUX[\_`acdefcfgiciloqrprstptlulucu`vy|  ~A  BC  DE  BE  ~F  ~F  zG  zG  aG  ]H  ]H  YI  YI  I  J  JiJ fKAqtBwQ!BaRT8J5KcRUVWXYVYRZRZmm5[1\1\'\$]`cdghiklmnknoqkqtwyzxz{|x|t}t}k}h~  BE  FI  JK  LM  JM  FN  FN  BO  BO  iO  eP  eP  aQ  aQ  %Q  !R  !R  S  SfS bT bT ^U ^UU2V 2V 
AJ
AJGG)I )I 	J 	JK K K K 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)          |          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.                                                  k    sJ d S )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   rT   r   r   rW   rQ   r   rY   r   r   r   	sympy.abcr  r   r   r@   rD   rV   r   )r  r   r  s      r   test__solveset_multir    s   666666       ?AqDF8aS17)44	$8N8NNNNN ?AaC1:1vu~>>)GBTBTTTTT?AaC1:1vu~>>)GBTBTTTTT?AaC1Q<!Q%@@IqQRttTUvXYZ[X\X\W\]^W^N_D`D`````?AaC1:1vu~>>)FBSBSSSSS!A#A??VaTGa!W--z%/@/@AAVaTGqb!W--z%/@/@AABC BC D D D D D ?AaC1Q<!Q%@@AJNNNN?AaC1ac?QFUENCCqzQQQQ?AaC1ac?QFUENCCqzQQQQ ?AaCE!GQqSU1Wac!eAg6Aq	EuD  #Q!&$9::; ; ; ;  ?AqDAIaK1-1vu~FF)T[]dJeJeeeee?AqDFA;A??9VU\C]C]]]]] !Q$q!t)q!fuenEEuVaTGa#a&&\22Ju4E4EFFVaTGaQ[11:e3D3DEEVaTGs1vvgq\22Ju4E4EFFVaTGc!ffa[11:e3D3DEE	HG HG H H H H H
 ?Ac%jjLNAc%jjL9E1:a__hr1oo.0 03<Vb"X3N3NO O O O?Ac%jjLNAc%jjL9Au:a^^Xa__-/ /2;F2C2CD D D D?Ac%jjLNAc%jjL9Au:QNNHQOO,. .16FQD7QF++F1qdOOXa^^446 6FUH;E
33F55(++Xa__==? ?2@ 2@@ @ @ @ @ @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                                      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k    t          t
          j                                      t          t          t          t          t                    z   dk    t
          j                            sJ t          t          t          t#          t                              t                    t          t
          j                                      t          t          t          t           t          t#          t                              z   d          t
          j                            sJ t          t$          t          z  t&          z
  t          t
          j                                      t          t          t          t$          t          z  t&          z
  d          t
          j                            sJ d S )Nr   r   r(  r   )ro   r   rD   r   r@   r   r   r   rP   r   r   r%   rX   r   r   r   r   r   r   r   r   r   r   test_conditionsetr    s   Bs1vvqy3q6619,a00!AG 
 
 
W    Bq!taAh**Aag 
 
 

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

(<1s1vv:>17;;
<
<= = = Bs3q66{{A&&!' 
 
 

(<2qb3s1vv;;&6#:#:AGDD
E
EF F F AqDFAqw 
 

(<2adQh??AG<<
=
=> > > > >r   c            	         t          t          t          t                    t                    t                    t          t          t          t          t                    t                    t          j                  k    sJ dS )z? Checking equality of different representations of ConditionSetN)ro   r   rE   r   r   rP   r   r  r   r   r   test_conditionset_equalityr    sO     Bs1vvqMM1%%aCFFA)T)TTTTTTTr   c                     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 d S )	Nr   r   r   r   r   r   r   r   ro   r   rV   r   rT   r   r   r   test_solveset_domainr    s    AqD1HqL!Xa__551EEEEAqD1Ha!R11Yq\\AAAAAqD2Iq(1b//22illBBBBBBr   c            	      l   t          t          t                    t          t                    z   t          t          j                  } t          t          t          t          t                    t          t                    z   d          t          j                  }|                     |          sJ d S r  )	ro   r%   r   rD   r   r   rP   r   r   )solutionrO  s     r   test_improve_coverager    sr    AQAG44H"1bQ#a&&!&<&<agFFO_-------r   c                  |   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 d S )Nr   r   r   )r   r   ro   r   r   r   )expr1expr2s     r   test_issue_9522r  
  s    q!Q$(|aAqD1H!122EqsQw!EE1ag&&!*4444E1ag&&!*444444r   c                  V   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            d S )Nr   r   r   r   r   c                      t          t          t          t                              t          t          j                  S r   )rs   rD   r%   r   r   r  r   r   r   r   ztest_solvify.<locals>.<lambda>  s     CFFQ(L(L r   )rs   r   r   r   r  r   r4   r   r&   r@   r   r   rD   r^   NotImplementedErrorr   r   r   test_solvifyr    sG   1a4"9a))R////1a4!8Q,,QVd1ggaik5I12$q''!)A+1E1G G G G G3q661ag&&1#----3q661ag&&2a4HQNN1B*CCCCC3q66A:q!'**r(1a../@.AAAAA
 L LMMMMMr   c                  l   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 d S )Nr   r   r   r   Tr   r   r  r3  )
r7   r   r&   r   r   r   rD   rs   r   r   )p1p2p3p4s       r   test_solvify_piecewiser    sK   	Aq2v;AqAvQ	?	?B	Aq3w<!Q$1*q.!r'!:	;	;B	Ar!Qxx=1a4A;"5	6	6B	Ar!Ryy>QVSVVOT#:	;	;B 2q!'""qc))))2q!'""r1g----2q!'""qc))))2q!'""rd******r   c                  8   t          dd          } t          t          t          |                     | t          j                  dt          gk    sJ t          d          } t          t          t          |                     | t          j                  J d S )Nr   Tr   r   )r   rs   rD   r   r   r   r   r   s    r   test_abs_invert_solvifyr  )  sz    sD!!!A3s1vv;;17++2w6666sA3s1vv;;17++33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 t%          t*          d            t%          t*          d            t%          t&          d            d S )Nr   r   r   r   r   r6  r   r  )r   r   r  )r   r   r   )r   r   r   )r   r   r   )r   r  r   )r  r   r  c                  "    t                     S r   )ri   eqns3s   r   r   z*test_linear_eq_to_matrix.<locals>.<lambda>I  s    2599 r   c                  H    t           t          t          t          g          S r   ri   r   r   r  s   r   r   z*test_linear_eq_to_matrix.<locals>.<lambda>K  s    251a)DD r   c                  z    t          t          dt          z  t          z   dt          z            t          g          S r   ri   r   r   r   r   r   r   z*test_linear_eq_to_matrix.<locals>.<lambda>M  s)    #6r!A#'1Q37G7G!#M#M r   c                  @    t          t          dz  gt          g          S r  ri   r   r   r   r   r   z*test_linear_eq_to_matrix.<locals>.<lambda>N  s    #61vs#C#C r   c                  V    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#E r   c                  \    t          t          t          t                    t                    S r   r  r   r   r   r   z*test_linear_eq_to_matrix.<locals>.<lambda>R  s    22a88Q?? r   c                  b    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C r   r$  r   r   c                  :    t          g t          t          h          S r   r  r   r   r   r   z*test_linear_eq_to_matrix.<locals>.<lambda>e  s    1"q!f== r   c                  V    t          t          t          z   gt          t          h          S r   r  r   r   r   r   z*test_linear_eq_to_matrix.<locals>.<lambda>f  s    11q5'Aq6BB r   c                  V    t          t          t          z   ht          t          f          S r   r  r   r   r   r   z*test_linear_eq_to_matrix.<locals>.<lambda>g  s    2AE7QFCC r   )ri   r   Matrixr   r   r   r~   r   r   r   r   r   r   r   r   r   r   r   r^   r   r}   	TypeError)eqns1eqns2r  Br  s       @r   test_linear_eq_to_matrixr  1  s   q!$$!u(FFFFFq!$$!v(GGGGG qS1Wqs]QA	1q51Q3;+;<E!ac	Aq!!2acAaCi!A#or#:#:BqD1HqsNKEuaA..DAq


KKK;<<<<<<aS2$'((((((uaA..DAq


JJJ<======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999:::
:DDDDEEE
>MMNNN
>CCDDD
>EEFFF :??@@@
:CCDDD sQqSE**vse}}frdVnn.MMMMM q1a1qkAo#66::1Q}vAaC!G~&677?9 9 9 9 9v
A#!)a-1Q319q=/* ,  ,-.3 3AA  &1#s"4"4766 6 6 6
 r!a%||Q//uvtf~~4' ' ' ' ' 9==>>>
9BBCCC
:CCDDDDDr   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 d S )Nr   r   r   r   )ri   r   r~   r   r   r  r   r   r   test_issue_16577r  j  s    r!QqS1Q3Y-!A#"5q991a@@1acAg  &1#--E1 1 1 1 1 1 1r   c                      t          t          t                    dt                    t          t          j        fk    sJ d S r  )rl   r%   r   r   r   r   r   r   test_issue_10085r  o  s1    s1vva""q!*o555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R  |k    sJ t          || |f          |k    sJ t          |g| |fR  |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 d S )2Nzx1, x2, x3, x4)r   r   r   r   r$  )r   r   r   r   r6  )r   r   r   r   r   r   r   r$  r6  r   r   r  r   r   zx:4)clsc                  "    t                     S r   rj   )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5 r   c                  (    t                     S r   r  )r  r  r  r  s   r   r   ztest_linsolve.<locals>.<lambda>  s    x1b"55 r   c                  (    t           g            S r   r  r  s   r   r   ztest_linsolve.<locals>.<lambda>  s    xb"55 r   c                  >    t           gd   fD                       S )Nc              3      K   | ]}|V  d S r   r   r  s     r   r   z2test_linsolve.<locals>.<lambda>.<locals>.<genexpr>  s"      .C.CQq.C.C.C.C.C.Cr   r  r  s   r   r   ztest_linsolve.<locals>.<lambda>  s&    x.C.C2r(.C.C.CDD r   c                      t          t          t          z   dz
  t          dz  t          z   dz
  gt          t          g          S )Nr   r   r   )rj   r   r   r   r   r   r   ztest_linsolve.<locals>.<lambda>  s-    8QUQYQ
Q,G!Q#P#P r   c                      t          t          t                    t          z   t          t          z   gt          t          g          S r   )rj   r@   r   r   r   r   r   r   ztest_linsolve.<locals>.<lambda>  s'    8SVVaZQ,?!Q#H#H r   r   r   r   r   )r   r   r   )r   r   r5  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   _x0r   )r   )meternewtonkilor      ir  c                      t          t          t          dz  t          dz  t          z             gt          t          g          S r  )rj   r   r   r   r   r   r   r   ztest_linsolve.<locals>.<lambda>  s1    "QT1a4!8$$%1v.. r   )r   r  rT   rj   r   r^   r   r}   r   r   r   r~   r   r   r   r   r   r   r   r   r\   r   free_symbolsr   sympy.physics.unitsr+  r,  r-  r   r   )x3x4Msystem1r   system2J1J2	Augmatrixx0r*  r   r+  r,  r-  kNr  r  r  r  r  s                   @@@@@r   test_linsolver<  s  s	   -..NBB 	!2!2!2OOODEEAqqq#2#vY!!!R%((Gda2INR!#R!B$Y2%5%:R%?bD1R4K!B$"$D RUQrT\A%r1R4!8R8
9
9CD2r2r*++s2222D,BB+,,,3333Gb"b"-..#5555G/r2r2.///36666U...NBBGRR,,		B2	2qtax,1. 1. . . . . :----...
:++++,,,
://///000
:555555666
:5555555666
:5555666
:DDDDEEE >PPQQQ
>HHIIIQUQYQ
Q/!Q88qb1fq!teai=P<QQQQQ 	AA  AaSzA!fG
qbdQqSj1Q319-!ac	AaC!A#I/FG
H
HCGaV$$++++ 				999iii011AyyyAQFQ1I&&!*4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AA ***,>,>,>?@@IIq!Q1--Aq!Q?1K1KKKKK 455OBBF...Aq!Q0DEFF 
 
Ar3+,,- - - -677OBBF...Aq!Q0DEFF 
 
Ar3+,,- - - -677OBBF...Aq!Q0DEFF 
 
Ar3+,,- - - - &&JBBI/44 
 
Ar1b)**+ + + +If  Ifx#CU3335 55AC CFGH H H H 	AQQqTTAXJ!%%48888 8777777777	fBbD1HqL"R%+!E	12DD!Q&[#q)))2hq!nn+<=$? ? ? ? ?
 R1q5\\NQF++Ax7777RAaCQ''(1#..4&8888RAq1Q3w''(1#..4&8888
> / / 0 0 0 B
****QC!1$''''QC!Q  aVH,,,,QFQF##Ax//////r   c                  Z    d } d} | |          \  }}}t          ||          |k    sJ d S )Nc                 l   t          d                    |                     }t          d                    |                     }||z   }g }t          j         f| z  t          j        f| z  z   }t	          ||          D ]%\  }}|                    ||z   ||z
  dz   g           &||t          |          fS )Nzx:{}zy:{}r   )r   formatr   r   r   extendrT   )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},"bkk 	/ 	/FBJJRb1-....D)C..((r   i  r  )rE  r   rB  rA  r   s        r   test_linsolve_large_sparserF    sL    
) ) ) 	A [^^NCsC#%%%%%%r   c                  4   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 d S )	N)r   r   r   )r   r   r   r(  )r   r   r   )r   r   r   )r   r   r$  )r   r   r   )r   r   )rL   rj   r   r   r   rT   )r  r  s     r   test_linsolve_immutablerH    s    iiiIII>??AZZZ((AQFQ1I&&)J*?*?????iii45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 d S )	Nr   r   r   r   r  r   r   r  )r   r%   r   rD   r&   rQ   r   r   r   r   rp   r   rT   r   rW   r   rV   )r   r  r  f3f4f5f6f7r   r   s3s4s5s                r   test_solve_decompositionrR    s   c

A	QqSAc!A#hhJ	CFF	*Q	.B	QQs1vvX		!B	QSVV	B	QUB	QUaB	
3q66B	
1B	&AaCF##QZ	0	0B	&AaCFRK((!*	5	5B	&AaCFRTM**AJ	7	7B	&AaCFQJ''	4	4B	&AaCFQJO,,aj	9	9Br1ag..)As1vvs1vv2N2NNNNN$RAG44b99999$RAG44eBB6G6GHHHHH$RAG44eBmmDDDDDr1ag..)B--????r1ag..!*<<<<r1ag..!*<<<<q!Xa^^44
BBBBBBr   c            	      P   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
                  dft          t          t          dt          z  t          z            t          j
                  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 d S )
Nr   r   r   r   r  r  r   r  r   )rr   r   r   r   r   rT   rQ   r   r   r   r   r   rD   r   r   r[   r   r   )systemsolnr   r  s       r   test_nonlinsolve_basicrV    s   r"++++r1a&!!QZ////Q^FsAq6""iA&7&77777vs##qz1111VAqs2v1}--qz::<Dc!ffqj\A3//5;;1G1GHHHHHfQ!B,,aj991=fQ!B''44a8:Dc!ffa!e_q!f55y$7GHHHHH1qzA3''9UD+A+AAAAAaVDAqz1a((D00001q5z1a((D0000Aq1u~q!,,44441vq!$$	1a&(9(99999A!ay!!A$$**iA.?.?????!ay!!A$$!--Aqqtt91E1EEEEEQA1vq!$$	1a&(9(999991ay3q66(++y!*/G/GGGGG1ay#a&&))Y
}-E-EEEEE1ay!$$	1a4'(:(:::::1ay!a%((Iqzm,D,DDDDD1a!ebQBFQJ&7&7ArAvz9J9JKQPQRRV_
&!AF(W W      r   c                      t          t          t          ft           t          f          } t          t          t                    t          z
  gt          t                    | k    sJ d S r   )rT   r   rr   r   r   )rU  s    r   test_nonlinsolve_absrX  ;  sJ    aVqb!W%%DA
|Q**d222222r   c                  ^    t          t          d            t          t          d            d S )Nc                  :    t          t          dz  dz
  gg           S ro  rr   r   r   r   r   r   z2test_raise_exception_nonlinsolve.<locals>.<lambda>A  s    {AqD!G9b99 r   c                  8    t          t          dz  dz
  g          S ro  r[  r   r   r   r   z2test_raise_exception_nonlinsolve.<locals>.<lambda>B  s    {AqD!G955 r   )r^   
IndexErrorr   r   r   r    test_raise_exception_nonlinsolver^  @  s0    
:99:::
:556666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 d S r  )rr   rD   r   r@   r   r   rQ   r   r   r   r   rT   r   )soln1rU  s     r   test_trig_systemra  E  s     A
CFFAI/33qzAAAAfQ!BA..
;;=EUDc!ffqj#a&&1155t<<<<<<<r   c                  F   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 d S )Nr   r   r   r   r   )r   r   r   rD   rQ   r   r   r   r   rT   r   rr   r4   rW   r   )syssoln_1soln_2rU  soln_xsoln_ys         r   test_trig_system_failrh  N  se    q52a4<Q#a&&1,
-Cva21--qz::1R4!*--/FvFva2
331R4A:&&
335FvFF?DS1a&))400000 q66CFF?d1ggai]*CFFSVVOtAww{Ao,M
NC8F1ac"fr!tm44ajAA1Q3r6Bx1~~$5566
CCE EF8F1ac"fr!tm44ajAA1Q3r6Bx1~~$5566
CCE EFS1a&))9ff5E+F+FGGGGGGGr   c                  p   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 d S )Nzx, y, a, b, c, dT)extended_realr   r   r   r   r   r   r   r   )r   rr   rT   r   )r   r   r~   r   r   r   rT  eq1eq2eq3eq4r   r   rU  s                 r   %test_nonlinsolve_positive_dimensionalrp  f  s'   1FFFAq!Q1!QqS1W~1v..)QF2C2CCCCCdQqSj!a% Fv1v&&)FaR!H*E*E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41qAv!+Qq!tVQqS1W=1ayII!QK=     r   c                  F   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          k    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 d S )	Nr   Tr   r   r   r   r  r   )r   rr   r   r   rT   r   r   )r   r   r   r   rT  	soln_realsoln_complexrU  s           r   test_nonlinsolve_polysysrt  }  s   id+++GAq!1q1adQh/!Q88AJFFFF
aAQ
QA	2QF;;y||KKKKdQTk]FA2q'Aq6**Is1vvgq\CFFA;77L
l
"Dv1v&&$....dQTk]F!aR1a&))Ia#a&&\As1vv;77L|#Dv1v&&$....dQhlAEAI&Fv1v&&+fq!f*E*EEEEEA1q("Q$1ae<q!QiHHAJVVVVA	15!%7!QCCqzQQQQ!teAqDj1Q3q5 1a4'AadQqS!A#!Q$,1a4PQ	TUVWTWXFv1ay))Y1ay1a)-L-LLLLLLLr   c                  z   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 d S )Nz
x, y, z, nTr   r   r   )r   rr   rT   r%   r   )r   r   r   r   rT  s_xrU  soln_real_1soln_real_2soln_real_3soln_complex_1soln_complex_2rA  s                r   #test_nonlinsolve_using_substitutionr|    s~   d333JAq!Q1uai!Q$"#FQ3A:>1
CD!9Dv1v&&)D//9999d1a4i!Q$q!t)CFF**+Fa)K!HH9SVV#Q*Kqs88CFF?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#          d           ft          t          | d| z  t          z  t          z  t          d          z             t          j                  t#          d          fh          sJ d S )Nr   r   r   r   r   r  )r   r   rr   r%   r   rD   r   rQ   r   r   r   r&   r   r   r   r   r   r4   )r   rT  s     r   test_nonlinsolve_complexr~    s   c

Ac!ffs1vvoqsQw7!Q@@	&AaCE"Hs3x1~~+>+>'?'??@@!*	M	MxXY[\~~^C` a a a a a !ffs1vvoqQx!|,FVaV,,	&Aqs2v{Os3q66{{++, - -./j
: 
:<?FF7	D	&Aqs2vC!Ab3q660A,B,B(C(CCDs3qs1uRx#a&&'8#9#9::;;< = =>?j
J 
J1Q3q58c!ff,--qz::	</= > > > > > !ffs1vvoq!tax(FVaV,,	&Aqs2v{Oc#a&&kk9::AJ	G	GL	&AaCE"Hs3q66{{233QZ	@	@!D/F G G G G G !ffqj!q&1*%FVaV,,	Q$q''SVVT!WW-	&AaCE"Hs1vv-..
	;	;d1ggXF	&AEAINSVV344aj	A	A477K/M N N N N N N N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 d S r   )rr   r4   r   r   r   r   r   r   test_nonlinsolve_radicalr    sL    Q!aQ/!Q;;Q1NNNNNNr   c                      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 d S )N)g      g      )g      ?g      ?r   r5  g      ?c              3      K   | ]I}t          d           D ]7}t          j        |         |         |         |         z
            dk     V  8JdS r   &.>Nranger8  argsr   r   r   r  r   s      r   r   z+test_nonlinsolve_inexact.<locals>.<genexpr>  u       4 4%((4 4%& 38A;q>#a&)+,,t3 4 4 4 4 4 4 4r   r  g      ?r   )g[l׿g[l?r   r  )g[&,t=?g[&,t=r   c              3      K   | ]I}t          d           D ]7}t          j        |         |         |         |         z
            dk     V  8JdS )r   r  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   | ]I}t          d           D ]7}t          j        |         |         |         |         z
            dk     V  8JdS r  r  r  s      r   r   z+test_nonlinsolve_inexact.<locals>.<genexpr>  su       4 4%((4 4%& 38A;q>CF1I-..5 4 4 4 4 4 4 4r   )
rr   r   r   r   r  r   r   r&   r   r   )r  r   s   @@r   test_nonlinsolve_inexactr    s   ^
,C
AzA~q!tad{T'9:QF
C
CC 4 4 4 4 4a4 4 4 4 4 4 4 4 Q
QQ
T(9:QFCCqzQQQQ1C!|+f4acCi1E1vNN:    q!tax#~Az3q66:Q1I
F
FC5 5 5C  4 4 4 4 4a4 4 4 4 4 4 4 4 q1a4xAC01a&
9
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 4 4 4 4a4 4 4 4 4 4 4 4 4 4r   c            	      2   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 d S )Nx, yTr   r   )r   rT   r$   r4   r%   rr   )r   r   r`  soln2soln3soln4s         r   test_solve_nonlinear_transr    s    6%%%DAqq!A#*++Er$s1vv,,*QtCFF||^Q,?@@EqQqSz1o&&Ea1oq))E1q!tCFF{*+aV44====1q!tCFF{*+aV44====1q!tCFF{*+aV44====1q!tCFF{*+aV44======r   c                     t          d          \  } }}}}}| | z  ||z  z   d| z  |z  |z  z
  ||z  z
  }| | z  ||z  z   d| z  |z  |z  z
  ||z  z
  }||z  ||z  z   d|z  |z  |z  z
  | | z  z
  }t          |||g|||g          t          d|z  |z  dt          | dz  |dz  |dz  z  z   |dz  z
            z  z
  dt          | dz  |dz  |dz  z  z   |dz  z
            z  | z  d|z  |dz
  z  |dz   z  | z  d|z  t          | dz  |dz  |dz  z  z   |dz  z
            z  | z  z   fd|z  |z  dt          | dz  |dz  |dz  z  z   |dz  z
            z  z   dt          | dz  |dz  |dz  z  z   |dz  z
            z  | z  d|z  |dz
  z  |dz   z  | z  d|z  t          | dz  |dz  |dz  z  z   |dz  z
            z  | z  z
  f          k    sJ d S )Nza1, b1, c1, ca, cb, cg       @r   r   g      r   )r   rr   rT   r4   )	a1b1c1cacbcgrl  rm  rn  s	            r   test_nonlinsolve_issue_25182r    s   $%=>>BBB
R%"R%-"R%(2+
%2
-C
R%"R%-"R%(2+
%2
-C
R%"R%-"R%(2+
%2
-CS#R55	RSb!eb!eBEk1BE9:::	:T"a%"a%A+%A-...r1Ra"q&!"$s2vd2q52q5Q;3FQ3N.O.O'OPR'RR	T 
RSb!eb!eBEk1BE9:::	:DQQr1u$r1u,---b0Ra"q&!"$s2vd2q52q5Q;3FQ3N.O.O'OPR'RR	T	:U :U U U U U U Ur   c                   4   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 d S )Nr   r  r   r   r   g	nBg/H|n$?r  r   guӿg+N?gb?gqw?i|  r      r/  +   r!  r   i 6   r  )r   r   ro   r8  r  r   r   rT   r4   rD   r>   r@   r!   r    )r   r  r  r  s       r   test_issue_14642r    s   sA	QT!Q$s	1	BAHx}Q#47H7J#JKLLPTTTTTx}Q#58H8J#JKLLPTTTTTx}Q#47H7J#JKLLPTTTTT 
1QT	!&	 	"B
qay1a0T!C&&)__Q5F1G1GGIbEE!G$q''	%!A$$q&/ 9#d1S66"9oo? ; ; !! 1a! !!$T2$q''	%!A$$q&/0IQsVVBY!""1##$1% ,%'(ay1a'@TcFF2IF FF B B ((eeAg(&+' &( &(()&* "+ "++ ,-	- 01ttAv	6 9:#dBd1ggIeadd1fo%c$qvvby//!*;&<&<<Q>E?AB477AaDDFOBQsVVBY 122B334B578uuQwB?D@ ?A ?AAB?C ;D ;D 9DEFGGJAaDDFOJ$$'QsVVBY(9$:$:J;;<J=?@uuQwJGIJIK!DGG)EAaDDFO+CQsVVBY0A,B,BB1DDqHIILMaDDMH F9		 $q''	%!A$$q&/1#d1S66"9ooa6G2H2HHJbEE!G$q''	%!A$$q&/ 9#d1S66"9oo? ; ; !! !Q    #D"qay1a/H3OOAJ J 0 0! +!#$T!WW9UQqTT!V_#<SaffRiB > > $$bEE!G$* % %%  !! !!! "#	# &'s4aQi!Q6OQsVVBY!""7##$7% 2%'(ay1a'@T!C&&K F FF B B (("a( 1! ," ,""#,$ (% (% &%&'!DGG)EAaDDFO*CCcFF2II II E E ++eeAg+&()**-/!DGG)EAaDDFO2KQsVVBY!""3##$3% .%'(-)*),-aDDF)4 '4&5	5 66" 9:!uQwa1GGLAaDDFOL$$'QsVVBY(9$:$:L;;<L=?@uuQwLGIJKK!DGG)EAaDDFO+CQsVVBY0A,B,BB1DDqHKILMaDDMJ B D"qay1a8T!C&&)__Q=N9O9OO  47751Q446?*3tAcFF2Iq/@+A+AA!CaeeAgMO P P  B
 B 8
 baddU1WtAwwqy{2QrUU1Wr!t^d4"Q$YNL G GG 6!"1a5) ) * + + ++,-8- 2347751Q446?1J33OOAL L 2 2!#$R5572+-.1/24qay1a7PQsVVBY!""8##$8% 3%'(2)1),-aDDF0447b1T!WW9AaDDFODQsVVBY 122D334D5 ?578ay1a7PQsVVBY!""8##$8%'(uuQw8/>0 91 911293 54 5404 56	06
86 9:2baddU1WGGAIaKFB%%'BqD.4RT	A~0E+F+Fq+HHAaDDM E B ? ? <<ay1a0T!C&&)__Q5F1G1GGIbEE!G$q''	%!A$$q&/ 9#d1S66"9ooa>O:P:P P! dd1f!$QtAwwYuqttAv-Fs4cFF2IL LL H H .. )Qi!Q7D3OOA<M8N8NNqPbEE!G( # ##   	< "!WWqay1a'@T!C&&K F FF B B ((uuQw(!"'#&(1T!WW9UQqTT!V_+DScFF2IJ JJ F F ,, '& ' #$Q446&+ ++.tR!DGG)EAaDDM E ;4#r	??1$%%;&&';( 6(*+DGG)EAaDDFO*CCcFF2II II E E ++eeAg+&5' 0( 0(()0* ,+ ,++ ,-	-
<- 
9.8.( 12!uQw2a1Q44%'GGAIaKCB%%'BqD.4RT	A~0E+F+Fq+HHAaDDM B ? < < :: 01gg$q''	%!A$$q&/ 9#d1S66"9ooa>O:P:P PQR RbEE!G! $q''	%!A$$q&/ 9#d1S66"9ooa>O:P:P P!  dd1f !$QtAwwYuqttAv-Fs4cFF2IL LL H H .. )Qi!Q7D3OOA<M8N8NNqPbEE!G( # ##   	0  !ay1a8T!C&&)__Q=N9O9OOPQQbEE!G $q''	%!A$$q&/ 9#d1S66"9ooa>O:P:P P! dd1f!$QtAwwYuqttAv-Fs4cFF2IL LL H H .. )Qi!Q7D3OOA<M8N8NNqPbEE!G( # ##   	
0 a1T!WW9UQqTT!V_+DScFF2IJ JJ F F ,,eeAg,&()+*-/!DGG)EAaDDFO2KC3OOAM M 3 3! .!#$-%+%()!Q*0 !003D"qayaDDFJ @QsVVBY)**@++,@- ;-/0ay1a/H3OOAJ J 0 0!#$R5570+:, 5- 5--.5/ 10 10!0 12	!2 78Qi!Q6OQsVVBY!""7##$7%'(uuQw7/1263681T!WW9UQqTTRSV_;TQsVVBY!""<##$<% 7%'(6)6),-aDDF5447b1T!WW9UaDDFN DQsVVBY)**D++,D- ?-/0ay1a/H3OOAJ J 0 0!#$R5570+>, 9- 9--.9/ 50 5050 12	52	!2 56baddU1WtAwwqyQR{=RrUU1Wr!t^d4219q.#899!;;qttAvF=G :H 7I 7I 5IIJ5K	!K 	L0LK8M 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| R  |k    sJ d S )Nzax bx cx gx jx lx mx nx qr   r   r   r   rT   rS   rr   )Vaxbxcxgxjxlxmxnxr   r   r   s               r   test_issue_13961r  L  s   .56Q.R.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gr2rSUWacdbehigjWkWkl"Q$YA1r!11a4 7 :B1a4RQSUWYcefdgjkilYmYmnp 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 d S )Nr   r  r   g;f?r  r   )ro   r4   r   r8  r  r   )	solutionss    r   test_issue_14541r  V  s}    q!teck**A..Iy~a !2233t;;;;y~a !223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 d S )Nr  r   r   r(  )r   r%   r   r   rT   ro   r   r   r>   r   r   )exprr   s     r   test_issue_13396r  \  s    a4QTEAqDL!!!#a&&(D
A,,CD!AG,,,3333 DA1%%bd*Aqw771:EEEEEEr   c                  B   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 d S )	Nr  r   r   r   iQ     r   r   )rT   r4   r   r   r   ro   r   r   s    r   test_issue_12032r  f  s   
T"a!R499S=!@HQPQNN SSTXa__tCyy}<AOOP Q Q QQRSR!R499S=!@HQPQNN SS8Ar??T#YYs]#BhqRSnn"U UVWtB8Ar??T#YYs]+JhWXZ[nn*](]$^$%x2c3'F(STVW..&Y$Y%Z  [  [ [[ \ \ ] ] ^___ #b(1b//DIIcM"AXaQR^^!TTHQOOd3iim$CxPQST~~#V!VWXRHQOOd3iim,KxXY[\~~+^)^%_%&B$s))C-(G8TUWX>>'Z%Z&[ !\ !\ \\ ] ] ^ ^ ^ _`` QB$s))C- ?8Aq>>RRSHQOOd3iim;x1~~NNO P PPQR	R QB$s))C- ?8Aq>>RRSHQOOd3iim;x1~~NNO P PPQRd3r$r1hq"ooS		#.MQYZ[]^Q_Q_-`+`'a'((1b//DIIcM*IXVWYZ^^)\'\(] #^ #^  ^ (1b//DIIcM"AXaQR^^!TT U  !!Xa__tCyy}%DQRTU$W"WX Y Z Z [ [ [ \]]] QB$s))C- ?8Aq>>RRSHQOOd3iim;x1~~NNO P PPQRd3r$r1hq"ooS		#.MQYZ[]^Q_Q_-`+`'a'((1b//DIIcM*IXVWYZ^^)\'\(] #^ #^  ^ (1b//DIIcM"AXaQR^^!TT U  !!Xa__tCyy}%DQRST$V"VW X Y Y Z Z Z [\\\%] ]C0 AqD1HqL!$$++++++r   c                  z    t          dt          t                    z  t                    t          j        k    sJ d S r   ro   r4   r   r   r   r   r   r   test_issue_10876r    s/    Ad1ggIq!!QZ//////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 d S )Nr  r   r   r   r$  )r   rr   r   r   rD   rT   rQ   r   r   r   r   r   r@   r   r   r   test_issue_19050r    s+   a!eSVV_q!f558F1bd2g..
;;XfQPQRSPSTVPVFWFWYZYc=d=devaAb2..
;;XfQPQRSPSTVPVY[P[F\F\^_^h=i=ij	l 	lm m m m m a!eSVVc!ff_51v>>8F1bd2g"Q&677DDhvVWYZ[\Y\]_Y_bcdfbfghbhYhOiOiklkuFvFvwfQ1R!B$q& 0111:>>PQSTUVSVWYSY\]^`\`ab\bSbIcIcefeo@p@pq	s 	st t t t t t tr   c                  T   t          t                    t          t                    z  t          t                    t          t                    z  dz
  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          }t          | t          t          g          }t          t          |          t          |                    D ]Y\  }}t          |          t          |          cxk    rdk    sn J t          d t          ||          D                       sJ Zt          |          t          |          k    sJ d S )Nr   r   c              3   <   K   | ]\  }} |j         |          V  d S r   )r   )r   r~   r   s      r   r   z#test_issue_16618.<locals>.<genexpr>  s0      99TQ:1:a==999999r   )rD   r   r   r@   rT   rQ   r   r   r   r   r   rr   r   r   r   r   )eqnr>  r   i0j0s        r   test_issue_16618r    s   q66#a&&=#a&&Q-!+
,C XfQ!B//<<hvaQRSTQTUWQWGXGXZ[Zd>e>ef	&AaCFRK((!*	5	5xq!A#b&SU+@V@VXYXb7c7cdf fC
cAq6
"
"CgcllGCLL11 : :B2ww#b''&&&&Q&&&&&&99SR[[999999999s88s3xxr   c                  6   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 d S )N    r   r   r!  r   r   Q   )rr   r   r   r   rT   r&   r   r   r   test_issue_17566r    s    AqD	!qb')AqD0"ad)add1a4i2GH!QOOCGG8CFF?A&''( ( ( ( ( (r   c                     t          d          } t          t          dz  t          t                    z  t                                        t          t          t          | d| z  t          z  t          z             t          j
                  t          t          | d| z  t          z            t          j
                                      sJ d S )Nr   r   )r   ro   r   rD   r   rW   rQ   r   r   r   r   r   s    r   test_issue_16643r    s    c

AAqDQK##,,U8F1ac"frk<R<RTUT^3_3_3;F1ac"f<M<Mqz3Z3Z.\ .\ ] ] ] ] ] ] ]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 d S )	Nzn mr  r   r   r!  r   r  r   )r   rr   rT   r&   )r   r   s     r   test_issue_19587r    s    
%..CAa1a41q!t+R1WqA2w->?AFFCGG8CFF?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 d S )	Nr   r   r   )r   r   )r   r   r   r   r   )r4   r   r   rr   rT   r   r%   rD   r   r&   r   r   r   rQ   r   r   r   )rT  r   rB  s_real_ys_real_zrr  lams_complex_ys_complex_z_1s_complex_z_2rs  rU  s               r   test_issue_5132_1r    s4   1a4!Q$;$r((*AEAI6Fv1v&&)FF*C*CCCCCc

Aq6619s1vv1$aAhl
3CAwHS1XXICFF+,,H8X.H90EFFI
AaCE"HAw&
'
'C3
++K
D#ac((S1QrSVVG);%<%<<==
>
>CS!*--M
T3qs88)c!A#a%(c!ffW*<&=&==>>>
?
?CS!*--M-8-,H-8-,H* *L |#DS1a&))40000000r   c                  j   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 d S )Nr  Tr   r   r   r   )r   r%   rD   r   r   r&   r   r   r   r   r   rQ   r   r   rT   r   rr   r   rE   r   r4   )r   r   rB  r   rr  r  imgrs  rU  rT  rv  s_ys               r   test_issue_5132_2r    s   6%%%DAqq6619s1vv1$
%Cc

AadUSVV^$$Q&*I
!Q!BadUSVV^!4!445a7#c!Q$Q->P>P:Q:QRS:SS
T
TC
3

#
#C8LY--DS1a&))400000!Q$hAos1vv!|,F
q#a&&!)a- 
!
!C
q#a&&!)a- 
!
!#a&&
(Cc3Z3$..Dv1v&&$......r   c                  x    t          dd          \  } }t          | dz  | z   | |z
  g| |g          ddhk    sJ d S )Nza, bTr   r   r)  rk  )r   rr   rv  s     r   test_issue_6752r    sS    6%%%DAq1q!a%(1a&11h5GGGGGGGr   r`   c            	      b   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 d S )Nr   )or   r   )r  r  r   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rr   )r  r   rA  rB  s       r   test_issue_5114_solvesetr    sK     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 d S )Nzlam a0 concr   r   g{Gzt?g̫;?)r   r   r   r   rr   )r  a0concrB  syms        r   _test_issue_5335r    sQ    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 d S )Nx yTr   r   r   r      r   i  r   )r   r4   r   rr   r   r   )r   r   e1e2r~   r   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00AJ>>>>!GBBx!Q((AJ666666r   c                  r   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 d S )
Nr   ii  ~   i  3      h   r   )r   r   r   r4   rr   )r  y1r1r  y2r2  y3r3vr  r  rJ  Fg1g2g3Gr  r  s                      r   test_issue_8828r  	  sJ   	
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666666r   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 d S )Nr   r   r   r   )r   r   r   r   r   r   r   rP   r   r  rr   )r   r  r  intermediate_systemrA  rU  s         r   test_nonlinsolve_conditionsetr  *	  s     	A	
11B	
18Aq>>!	!BQqqttVb[!,,r!AAaDD&1R4-/C/CCA;;D	Q D Bx!Q((D000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 d S )Nr   r   rJ     )r   r  )r   r   )r   r  )r   r   r  r   )rq   r   r   r   r   rT   r  )rT  rU  s     r   test_substitution_basicr  9	  sN   QF##qz1111B1:----1fqAvo"AadFQq!tVOb$89FXw88DA''4////WDQ!1vhSUUQFCCtKKKK	
Q!1vh	
Q!Q J' ' ' ' ' 'r   c                     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 d S )Nr   r   r   r  r   r   ir/  i  r   r   )rq   r   r   r   r   r   r   r   r   r~   r   r   r   r&   r0  r   r   r   test_substitution_incorrectr   G	  s    QAq1ua!eR!V<Aq	# #()1ayk2 2 2 2QAE15!%81a)DD"q&!Q() ) ) )
 QAq1uadQh7!Q1FFaR!Q() ) ) )
 AAJAE3aV<<F8   
 !A!ac)3q52ad7?S+@Aa!ad*AqD1Q3JN<Aq!& &&2qc: : : : : :r   c                     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 d S )Nr   r   r   r   )rq   r   r   r   r4   r   )r  s    r   test_substitution_redundantr  `	  s    A1a!e,q!f55RGaVtAqDzzk1-QT

A?@ @ @ @
 Aq!ta1f}q01Aq6
:
:Cs88q======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 d S )	Nzx, y, z, r, tTr   r   r   r   r   r   )r   rE   rS   rT   r4   rq   r   r%   rD   r&   r   r   r   rQ   r   r   r   )r   r   r   r   r   rT  s_x_1s_x_2r  rU  r   rB  r  r  rr  r  r  r  r  rs  s                       r   test_issue_5132_substitutionr  k	  s   O$777MAq!Q!Q$hAos1vv!|,Fy$q#a&&!)a-'8"9"9!9::IaLLIIEyaQQ&7!8!8999Q<<HHE
q#a&&!)a- 
!
!#a&&
(CeS\""Yt}%=%==DA''4////c

Aq6619s1vv1$aAhl
3CAwHS1XXICFF+,,H8X.H90EFFI
AaCE"HAw&
'
'C3
++K
D#ac((S1QrSVVG);%<%<<==
>
>CS!*--M
T3qs88)c!A#a%(c!ffW*<&=&==>>>
?
?CS!*--M	m$	m$& &L |#DcAq6**D1111111r   c                      t          t          d            t          t          d            t          t          d            t          t          d            t          t          d            d S )Nc                  :    t          t          dz  dz
  gg           S ro  rq   r   r   r   r   r   z*test_raises_substitution.<locals>.<lambda>	  s    |QT1WIr:: r   c                  8    t          t          dz  dz
  g          S ro  r	  r   r   r   r   z*test_raises_substitution.<locals>.<lambda>	  s    lAqD!G955 r   c                  `    t          t          dz  dz
  gt          t                    g          S ro  )rq   r   rD   r   r   r   r   z*test_raises_substitution.<locals>.<lambda>	  s"    |QT1WIAx@@ r   c                  D    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8 r   c                  :    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8 r   )r^   r   r  r   r   r   test_raises_substitutionr  	  sl    
:::;;;
955666
:@@AAA
988999
98899999r   c                     ddl m g d} t          d          }fd| D             } t          t	          t          j        d | D                                  }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n J ||k    sJ |j        D ]}t          |          d	k    sJ d S )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efgc                 &    g | ]} |          S r   r   )r   r   r   s     r   r  z$test_issue_21022.<locals>.<listcomp>	  s!    
#
#
#!771::
#
#
#r   c                     g | ]	}|j         
S r   )r0  )r   r   s     r   r  z$test_issue_21022.<locals>.<listcomp>	  s    "?"?"?a1>"?"?"?r   r  r   r   rI  r  r   r   )sympy.core.sympifyr   r   r   r   r  unionrr   rT   r4   r   r  )rB  r  sybr  r>  r  r   s         @r   test_issue_21022r  	  s   ******  C --C
#
#
#
#s
#
#
#C
wsy"?"?3"?"?"?@AA
B
BC
c3

C
"c2q"c$q''k2d1gg:6"c2q"c$q''k1T!WW95"c2q"baj"T!WW*5"c2q"baj!DGG)4	 C s88s3xx$$$$1$$$$$$#::::(    6{{a   r   c                  l   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                                        |          sJ d S )Nr   r  r   r   )r   rQ   r   r   r   r   r&   r   rY   r   r   ro   r%   r   r   )r   r  r   s      r   test_issue_17940r  	  s    c

A	tB
6B7*a2b3qs1uRx#a&&7H3I3I)I&JAaCE"Hs1vv$5 6 677'8 9 9aj!*557 7C CAKK!OQ''005555555r   c                      t          dt          dz  dz
  z  dt          z  z
  t                    t          dd          k    sJ d S )Nr$  r   P   r/  r  r   )ro   r   rT   r   r   r   test_issue_17906r  	  sB    A1r	NRU*A..)B2C2CCCC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 d S )Nr  r5  r   r   )r   rD   r   r@   r   r   rr   rT   )rl  rm  rn  ro  s       r   test_issue_17933r  	  s    
CGG)aAh
C
CGG)aAh
C
A#c"gg+b.1SVV8
#C
A#c"gg+b.1SVV8
#a
'CS#s+Q1a881aA,           r   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          d          fd| |||fD             }t          |t           t          t
                    t          dddf          k    sJ d S )Nr  r5  r   zzc                 <    g | ]} |j         t                    S r   )r   r   )r   r   r   s     r   r  z(test_issue_17933_bis.<locals>.<listcomp>	  s%    
7
7
7Q616!R==
7
7
7r   r   )	r   rD   r   r@   r   r   r   rr   rT   )rl  rm  rn  ro  rB  r   s        @r   test_issue_17933_bisr"  	  s     CGG)aAh
C
CGG)aAh
C
A#c"gg+b.1SVV8
#C
A#c"gg+b.1SVV8
#a
'C	B
7
7
7
73S#"6
7
7
7CsAq!R((Iq!Qm,D,DDDDDDDr   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 d S )Nr  )r   rr   r   r   r%   r   rT   r   r   rQ   r   r   r   r   r   r   test_issue_14565r$  	  s    a!eQ3r"uQw<<%781a&AAA2a4&AaC..!*==>??A A A A 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 d S )Nr   Tr   r   r   )r   ro   r   r   r   r   r   r   )r   s    r   test_issue_9556r&  	  s    sT"""ACFFQJ17++qz9999CFFQJ17++qz9999Bq"IIq!'**aj888888r   c                  P   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 d S r   )ro   r   r   r~   r   r   r   r  r   r   r   test_issue_9611r(  	  sj    Bq1uqy!$$a11QW<<<<Bq1uqy!$$a((AK777777r   c            
         t          t          dz  t          z   t          t          j                  t          t          j        t          t          t                      t          t                                         k    sJ d S r  )ro   r   r~   r   r   rU   rT   r4   r   r   r   test_issue_9557r*  	  sh    AqD1Ha))\!'488)T1"XX&&.( .( ( ( ( ( ( (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 d S )	Nr   Tr   r   r   r   r   r   )	r   ro   r   r   rT   r   r   r   r"   r   s     r   test_issue_9778r,  	  s    sAsAAqD1Ha))Yr]]::::Ax1~~%)1ag66!*DDDDAqD1Ha))3q668Aq>>))$q''1223 3 3 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                       t          t          |           d                   dk    sJ t          t          d          z  dz                       t          dt          dd          z             dk    sJ d S )Nr   r   r   r   r   r  )	ro   r   r   r   r   r   rT   r   r   )r>  s    r   test_issue_10214r.  	  s0   Ax1~~%)1ag66!*DDDDAQ(1,a99QZGGGG
QA&&
'
'CA!IM1ag..#5555!IM$s))A,//14444!IMB!Q#7"788A======r   c                      t          t          t          t                              dz   t          t          j                  t          j        k    sJ d S r   )ro   r   rD   r   r   r   r   r   r   r   test_issue_9849r0  	  s9    CAKK!OQ00AJ>>>>>>r   c                  P    t          g t                    t          j        k    sJ d S r   )rj   r   r   r   r   r   r   test_issue_9953r2   
  s%    Cqz))))))r   c                     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 d S )
Nr   r   r   r   i^  r   i  r   r   )ro   r   r   r   rT   r4   r   r   r   r   test_issue_9913r4  
  s    AaC!QVaK-'AG44Ad5kkM!OhtQ&7&77(1a..HHJSAd5kkM!OhtQ&7&77(1a..HHNJ JLTUWYZOO\ 	] 	]] ] ] ] ] ]r   c                      t          t          t                    t          t          j                  t          d          k    sJ d S r  )ro   r4   r   r   r  rT   r   r   r   test_issue_10397r6  

  s3    DGGQ,,	!<<<<<<r   c                     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	            d S )
Nc                  >    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          dt          z  dz   z  dt          z  z   t          z
  gt          t          g          S )Nr   r   r   )ri   r   r   r~   r   r   r   r   z"test_issue_14987.<locals>.<lambda>
  s7    2	
BqD1H!	a	 1a& *  * r   c                  p    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>
  s3    2
Q$1*q1u		!"A '  ' r   c                  |    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>
  s<    2
a%!ad	Qq!tV	#a	'(! -  - r   c                  r    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                  \    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                      t          t          dt          z  dt          z  t          z             gt          t          g          S r   ri   r   r   r   r   r   r   r   z"test_issue_14987.<locals>.<lambda>
  s3    2	AaC1q		QF $  $ r   c                      t          t          t          t          z  t          t          z  t          z             gt          t          g          S r   )ri   r   r   r   r   r   r   r   z"test_issue_14987.<locals>.<lambda>
  s3    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>
  s7    2	Aq1uIq!tax	 	 !Aq6 +  + r   )r^   r   r   r   r   test_issue_14987rB  
  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 d S )Nr  r   apTr   bn)negative)
r   r~   r   ro   rT   r   r   r   rU   r   )r  rD  rE  s      r   test_simplificationrG  #
  s   	
a!ebdQqSj!	!BB??i//////B17##|A1qs
7K5L4Mqw'W'WWWWW	t	$	$	$B	t	$	$	$B	
b2g2"%	%BB??i//////B17##y'8'8888888r   c            	         dt           z  dz   dk    } t           dz  dt           z  z   dz
  dk    }t           dt           z  z   ddt           z  z   k    }t           t          t           dz  dz
            z   dk    }t           dt           z  z   ddt           z  z   k    }|                    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 d S )
Nr   r   r   r   r  r   r   r   r(  )r   r4   r   r&   ro   r   r   rR   r   rW   r   )
rl  rm  rn  ro  r  eq5eq6eq7eq8eq9s
             r   test_integer_domain_relationalrN  /
  s   
A#'A+C
Q$1*q.A
C
ac'B1H
C
d1a4!8nn
q
 C	
QqS2!8	B
''!CFF

C
a&&(a-C
a&&(Q,C
QqS'A+C
QT!V*q.CCAJ''5R+;+;;;;;CAJ''5sB1B1BE!RQROO+T+TTTTTCAJ''5r1a%2q//+R+RRRRRCAJ''5B??::::CAJ''5B??::::CAJ''5Aq>>9999CAJ''1:5555C51::...%1a..@@@@C51::...%aAaQRTU2W2WWWWW AEAIq!*--sB1B1BBBBBBBr   c                     t          d          } t          d          }t           | t                    t          dz  z
  t          t          j                                      t          t          t           | t                    t          dz  z
  d          t          j                            sJ t           |  |t                              t          dz  z
   |t                    t          j                                      t           |t                    t           |  |t                              t          dz  z
  d          t          j                            sJ d S )Nr   r   r   r   )	r   ro   r   r   r   r   r   rP   r   )r   r   s     r   test_issue_10555rP  I
  s   AAAAaDD2a4KAG,,55Q11Q44"Q$;**AG446 6 6 6 6AAaaddGGbdNAAaDD!'22;;QQqTT2aa!gg1na00!'::< < < < < < <r   c                     t           dt           z  z   ddt           z  z   k    } t          | t           t          j                  t	          j        dt                    t          d          z
  k    sJ t          |                     t           t          t                               t           t          j                  t	          j        t          d          t                    t          d          z
  k    sJ d S )Nr   r  r   )r   ro   r   r   rV   r   r   rT   r   r&   r%   rC  s    r   test_issue_8715rR  R
  s    	
QqS2!8	BB17##	r2		1	-/ / / /BGGAc!ff%%q!'22c"ggr""Yq\\12 2 2 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 d S ro  )r   r%   r   rD   r   rU   r   r   rT   r&   ro   r4   r   r   rE   r   )r  rU  r   s      r   test_issue_11174rT  Z
  s?   	
AAaC3q66	!B31us1vv~+>+>q+@!A!ABBDB17##t++++	aSVV	T#a&&!)a-00	01SVV8	;B	aSVVd3q6619q=11#a&&89A1..DB17##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 d S )	Nr   Tr   r   r   r   r   r   )r   r4   rT   rP   r   ro   r   r   )	r   r   rl  rm  r   r   rL  r   r   s	            r   test_issue_11534rV  e
  s8   
 	sAsA"qq!teai 
 Ca4%!Q$A	"
"C r$q!tax..())9QtAqD1H~~5E+F+FB2c1::r**D"aLTRG^,DGAwDCAG$$,,,,CAG$$,,,,,,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 d S )Nr   r   r   r   r   r   )ro   r   r   r   rW   rV   r   r   r   r   r   test_issue_10477rX  
  sr    QTAaCZ!^Q&*Aqw77hmRC$$hmAq&9&9::; ; ; ; ; ;r   c                  N   t          t          t                    t          t          dt                              t          dt                    k    sJ t          dd          } t          dt          z                      t                    dk     t          |           | k    sJ d S )Nr   r   r   )ro   rD   r   rV   r   rT   r   r
   )r   s    r   test_issue_10671rZ  
  sz    CFFAx2//9Q3C3CCCCCBAQqSJJqMMA%q!,,111111r   c                  .   t           t          t           dz  dz
            z   } t          | dk    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          k    t           t          j                  t          j        t          d          t                    k    sJ d S )Nr   r   r   )r   r4   ro   r   r   rV   r   r  rC  s    r   test_issue_11064r\  
  s    	
T!Q$(^^	BBFAqw''a"   BFAqw''"tAwwh       BaL!QW--tAww##$ $ $ $ $ $r   c                  b   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k    t          t          j                  t          dt                    k    sJ d S Nr   r   )	r4   r   rf   r   r   ro   r   rV   r   )r  rU  s     r   test_issue_12478r_  
  s    	a!eqBQD1:BFAqw''1:5555BFAqw''8Ar??::::::r   c                      t          t          t                    t          z  dk    t          t          j                  } t          j        dd          }| |k    sJ d S r  )ro   r&   r   r   r   rV   r  )r  r   s     r   test_issue_12429ra  
  sE    	#a&&(a-AG	,	,B
.A

C999999r   c                     t          t          t          z             } t          d          }t	          |                               t          t          |t          t          |          dz   d          t          j                  t          |t          |          dk    t          j                                      sJ d S )NCr   r   )r   r   r   r   ro   r   rU   rP   r   r    r   r  r!   )r  rc  s     r   test_issue_19506rd  
  s    	QUBc

AB<<  l1bAA>N>NPQP[.\.\1=aAAK1X1X"Z "Z [ [ [ [ [ [ [r   c                  n   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 d S )Nr   r   r   )	ro   r   r   r   r   rV   r   r   r   r   r   r   test_solveset_argrf  
  sz    CFFAqw''HM!R,@,@@@@@C!QKKAG,,hq!nnb0Q0QQQQ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 d S )Nc              3   8   K   | ]} d |z            du V  dS )r   Nr   )r   r   r   s     r   r   z3test__is_finite_with_finite_vars.<locals>.<genexpr>
  sC       9 9!qq1vv~ 9 9 9 9 9 9r   Tr   )complexr   F)rt   r   r   r   s   @r    test__is_finite_with_finite_varsrj  
  s    #A 9 9 9 9D!!!5#6#6#6(8 9 9 9 9 9 9 9 91Qu%    !!T))))))r   c                      t          t          dz  dt          z  z
  dz
  t          t          t           d                    t	          d          k    sJ d S )Nr   r  r   )symbolr)  r   r  r   r   r   test_issue_13550rm  
  sK    AqD1Q3JOa(B3:J:JKKKyY[}}\\\\\\r   c                      t          t          t          d          t          d          z   z  t          d          z
  t          ft                    t          j        u sJ d S )Nr   r   )rr   r   r4   r   r   r   r   r   test_issue_13849ro  
  sK    477T!WW,-Q7;Q??1:MMMMMMr   c            	      V   t          t          t          t          t          d          z             dz
                      t
                    t          t          j                  t          dd          k    sJ t          t          t          t          t          d          z             dz
                      t
                    t          t          dd                    t          d          k    sJ t          t          t          t          dd                    t          j
        u sJ d S )Nr   r   r   r   )ro   r   r   r5   r  r7   r   r   rT   rV   r   r   r   r   test_issue_14223rq  
  s    SSAYY''!+44Y??	 b!$$% % % %SSAYY''!+44Y??A $Q<<( ( ( (Aq)Aq//**aj888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           d S )Nr  r   r   r   r   r   r   r  r   r  c                  l    t          t          t          t          d          z  dz
  t                     S Nr  r   )ro   r   r6   doms   r   r   z"test_issue_10158.<locals>.<lambda>
  $    x#a**r(91cBB r   c                  l    t          t          t          t          d          z  dz
  t                     S rt  )ro   r   r5   ru  s   r   r   z"test_issue_10158.<locals>.<lambda>
  rw  r   c                      t          t          t          t          dz
            dz
  t          dz             dz
  t                     S )Nr   r   r   )ro   r6   r   r   ru  s   r   r   z"test_issue_10158.<locals>.<lambda>
  s4    xCAJJNAE(B(BQ(F3OO r   c                      t          t          t          dz
            t          t                    z
  t                     S r   )ro   r   r   r   ru  s   r   r   z"test_issue_10158.<locals>.<lambda>
  s(    xAE

SVV(;QDD r   c            
          t          t          t          dt          t          dz             z  z             t                     S )Nr   r   ri  ru  s   r   r   z"test_issue_10158.<locals>.<lambda>
  s.    xA#a!e**,<(=(=q#FF r   )r   r   ro   r   r6   rT   r   r5   r4   r   r   r  r^   r   ru  s   @r   test_issue_10158r|  
  se   
'CAc!RjjL2%q#..)HQNN2K2KKKKKAc!RjjL2%q#..)T"XXItBxx2P2PPPPPCAE

QA..2As;;yQ?O?OOOOOCAJJQ'C00Is1vvgk3q66TU:4V4VVVVVCAc!a%jjL())1c22iQQYZ\^_Q`Q`6a6aaaaaAc!c!c!Qii-000111A5q!'BBiPRTVFWFWWWWW
+C
:BBBBCCC
:BBBBCCC
:OOOOPPP
:DDDDEEE
:FFFFGGGGGr   c                  r   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 d S )Nr   iWir   )r%   r   r   rT   r&   ro   r   r   rU   r   rQ   r   r   r   r   r   r   r   )r   r  s     r   test_issue_14300r~  
  s   	C	!q A	CQKK<(	)	)BAq!'""QWb!!" " " "!QA2qs2vQBF34X=AE

OOH$% & &'(z	3 	34 4 4 4 4 4 4r   c                       t          t          dz  t          z   dz
  d           t          t           fd           t	          t          dz   t                    sJ d S )Nr   r   r   c                  0    t           dt                    S r  )rl   r   numbers   r   r   z"test_issue_14454.<locals>.<lambda>
  s    {61a88 r   )rN   r   r^   r   rl   r  s   @r   test_issue_14454r  
  sZ    QTAX\1%%F
:8888999q!tVQ'''''''r   c            	      P   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 d S )Nr  r   r5  r   r   r   )ro   r   r   r  rT   r4   r   r   r   test_issue_17882r  
  s    Bq!tGQ1qAaDDF334q!QTAX1a<P:P7QQSTVWVabb$q''DGG8$$% % % % % %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 d S )Nr   r   r  r   r   r   )r   r{   r   r  )r  s    r   test_term_factorsr  
  s    adQh''((RAJ6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 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 d S )Nr   r5  r   r  )ru   r   r   r   r   rT   r   r   r   test_transolver  
  sc    adAqw''1:5555adQQZ'AG44	#FFFFFFr   c            	         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	          |                                 t                    t          t          t          t          dt           z  dz
            z             k    sJ d S ro  )r   r   r   rF   ro   r  rT   rI   rC  s    r   test_issue_21276r  
  s    
A#q1u+#a!e**
$q
(1SQZZ<
7!
;a	?BBIIKK##yAqsQw4G'H'HHHHHHHr   c                     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  |                              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 d S )Nr   r{  r   r   r   r   r5  r   r   r  r  T      ig  {   i
  r   r  r   r   zC1 C2r   r   Tr   r   r6  )r  r   r   r%   r&   r   ro   r   r   rT   r   r   rU   rf   r4   r   r   r   r   rP   r   )r   r  r  e3e4e5e6e7e8e9e10r   C1C2r   r   s                   r   test_exponential_realr    s
   	
QqSAAJ	B	
Q1WAE
	"B	
A1B	SVVAX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MM	Ac!A#'llN	*B	
A1q!t	b	 B
QQZ-a
 3tay=
0CB17##y
3q66	2c!ff9s1vv%&(( (( ( ( ( (B17##y!R'A'AAAAAB17##qz1111B17##y||3333B17##|	1S3qs88__,--(/ (/ / / / /B17##y||3333B17##y||3333B17##yCFF1qQxz1IHUVXYNN1Z'['[[[[[B17##y||3333C17##y3r77(SVV2Cc#hh2NRUVZR[R[Q[^abc^d^dQdgjkngogoQo1p'q'qqqqqC1qMM)AAJ6::i#a&&=3q66!CFFQJ
/0?2 ?2 2 2 2 2QqSA!H,a00IaLL@@@@QSVVT#a&&\\)AQqSA!H,a00Iqb!4D4DDDDD WFBAbAgQQqTTE

2AAaDD99\	CR1W---..>0 >0 0 0 0 0d###AA1SVV+Q//<	DAc!ff---tAqDQK/@/@AA4C 4C C C C CsT"""A!A#'QU+Q//88QA!Gq1u-q1117;;= = = = =AqD1a4K"$a11aS8888AqD1qs8Ob(!QW5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 d S )Nr   r   r   r   r  r   r  r   r   r  )r   r   rh   r   rX   r   r   r   r&   r   r   r   r   rT   ro   r%   r4   r   rW   )	r   r  r~   union1union2r  numdenr>  s	            r   test_exponential_complexr  2  s   c

A!!Q$A+q11(q!QqSVb[/#a&&())1:37 37 8 8 8 8 8AqDAIM1--AAQ 2" 2" " " " "!!ac(Q1X"5q998q!A#a%(3q66/""AJ<0 <0 1 1 1 1 1!Q$)Q''q1ac"frk?Qs1vvX-s1vv566
*D *D E E E E E SAa[[.1
q!tby	)BQc#a&&kk\CA1Qr(9$:$::;;;AB""iA&6&66666fQ1Q3r6Bx1~~,=#= >s1vv EFF
SSFfQ1Q3r6Bx1~~,=#= >s1vv EFF
SSF!Q$A+1,a00%2G2GHHHHH	
QUa!a%j	 1q1u:	-AE
	:QQZ	GB
2q//C
A#a%(Qs1vvX
#a&&
(C
SVV)c!ff
C
6!SW%%qz
2
2Cc??r   c                  f   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                                      t          t          t          t          t                    dz   t          z  dz
  d          t
          j                            sJ t	          |t          t
          j                                      t          t          t          t          t          dz   t          z  z  dz
  d          t
          j                            sJ t	          |t          t
          j                                      t          t          t          dt          z  t          t                    z
  dz
  d          t
          j                            sJ t	          |t          t
          j                                      t          t          t          t          t                     t          t                    z   d          t
          j                            sJ t	          |t          t
          j                                      t          t          t          dt          z  dt          z  z   dt          z  z
  d          t
          j                            sJ d S )Nr   r   r   r   r   )
r%   r   r   r&   ro   r   r   r   rP   r   )r  r  rJ  rK  rL  s        r   test_expo_conditionsetr  O  sk   
a&&1*q1	B
a%!A	B	
AA	B	Q#a&&B	
A1q!t	BB17##,,\	2s1vvzAo!1%%qw.0 .0 1 1 1 1 1B17##,,\	2aQ
lQ""AG.- .- . . . . .B17##,,\	2adSVVma##QW.. .. / / / / /B17##,,\	2s1vvgA""AG.- .- . . . . .B17##,,\	2adQTkAqD !$$ag./ ./ 0 0 0 0 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                                                  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
  |                               t          t          t)          t$          d          t)          t&          d          z  t          d                              sJ d S )
Nzx y zTr   zxr, zrr   r   r   r   r   )r   ro   r   r   rU   rT   r&   r   rV   r  r   r   rP   r   r   r%   rS   r    r~   r   r   )	r   r   r   xrzrr  r  r   r   s	            r   test_exponential_symbolsr  c  s   g---GAq!XD)))FBAqD1Ha))\	3q66#a&&=)).+ .+ + + + + 
1a4!AqD&B
A#ABQQ#a&&12AG<<DQAaC)1733DB17##t+++Xb!QW-E-E+++B17##t+++Xb!QW-E-E+++AqD!X^Ab1122;;Q1a4X]1b%9%9::< < < < <AqD1Ha))Yq\\9999C!HHS!AYY&*Aqw77|Ar"Q%%'1~~2a557A>|Iq1uc!ffn55qw??1NNP PQZ[\Q]Q]_ __ _ _ _ C1IIc2#a%jj(1,a999b2gs1vv-..	!==> > > > AqD1a4K##,,\	2a88bAhh	!.. .. / / / / / / /r   c                      t          dd          } t          d          }t          | dz  dz
  |           t          |dz  dz
  |          k    sJ d S )Nr   Tr   r   r   )r   rh   )xposr   s     r   test_ignore_assumptionsr  ~  sk    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 d S r   )ro   r   r   r   r   r   rT   r   r   r   test_issue_10864r    s9    A!HqL!QW--1======r   c            
      d   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 d S )Nr   r   r   )rf   r4   r%   r   rT   r&   r   r   r   test_solve_only_exp_2r    s    c!ffS!WW591==!Ca1%%%qT!WWq[)9)9'9::; ; ; ; ; ;r   c                     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 d S )	NFr   r   Tr   r$  r   r   )rv   r   r   rD   r   r   r   r   test_is_exponentialr    s   1a  E))))1a4!8Q''4////1a4!a!e*,a00D88883q!t99qs?A..%77771a4!8Q''4////1a4!8Q''500001a4!Q$;?A..$66661qs8a<++u44441qs8ad?A..%77771a4!A#:q))U22221a4!A#:q))T111111r   c            	         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 d S )
Nr   r   r   r   r  r   r   r   r   )rw   r   r   r   rT   r&   r   r   r4   r   rP   r   r   r   r   test_solve_exponentialr    s   a!A#hQU3Q17CC"SVV)RAYQ/0112 2 2 2adQTk1a99#hr1ooQ	1223q669::; ; ; ;adQTk1a99	
   adQTkAqD0!Q@@Q1a4!Q$;A-q1117;;< < < < < <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 d S )	Nr   r   r   r   r   ir   r   )rf   r&   r   rT   r4   r%   r   r   r   rU   r   r   r   ro   rC  s    r   test_logarithmicr    s   QUc!a%jj0!44		b	4889 9    QUc!A#'ll2A66)A,,FFFFQUc!ac'll2Q6::i
T#A,HQNN 3 33A55Aq@	cCFFl		CA///1A5Aq@?B ?B B B B B 
SVVc!QQT!Q$Y/011	1BQQWiadQs1vvXo)>)>(>A#a&&!!# # 	$ 	$QWiadT!Q$ZZ@@AA	BB B B B AaC3rAv;;QqS1W-q2 25>xAPQPV5W5WX X X XC1II#a&&(!QW5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 d S )Nr   r   r   )r&   r%   r   r*   rf   r   r   r4   rC  s    r   test_uselogcombine_2r    s    	S1XX\		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 d S )NFTr   r   r   r   )rx   r   r   r&   rD   r   r   r   test_is_logarithmicr    st   1a  E))))3q661%%----3q66A:q))T11113q66#a&&=!,,44443q6619a((E11113q1u::AE

2A66$>>>>3q!t99qQx/33t;;;;3s1vv;;**e33331q5!$$----3qs88c!a%jj014a88D@@@@3q66CFF?Q.22e;;;;3s1q5zz??SQZZ7;;tCCCC3s1vvz??SVV3Q774????3q661q5>CFF2A66%??????r   c                     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 d S )Nr   r   Tr   r   )r   rz   r&   r   r   r   rT   r{  s    r   test_solve_logarithmr    s    sAC1II#a&&0!Q@@AGKKKKsT"""ACFF3q66M1a99Yq\\IIIIIIr   c            	      Z   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                       t          d          t                    du sJ t          t          dz  dt          z  z
  dz                       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 d S )	Nza,b,cr   FTr   r   r   r$  )r   ry   r   r   r&   r%   r
   r   r(   r@   r*   r)   )r~   r   r   s      r   test_is_lambertr    s   gGAq!q!tQ5((((q!Q$wqs{1}a((D0000q!tQ5((((qAvq!!U****qQx!CFF(*A..$6666s3q1u::QqS1155====qsQw3q1Q3w<</33t;;;;!c!A#hh,,Q22A66$>>>>1qs
Q,,QQ!A#0AA0EFFJJdRRRRqay1}a((D0000qQx!|Q''4////tAww1}a((D0000tAwwa(!,,555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 d S )Nr   linear_coeffsc              3   2   K   | ]}|t           j        u V  d S r   )r   rU  r  s     r   r   z%test_linear_coeffs.<locals>.<genexpr>  s(      88qqAF{888888r   r   r   r'  )r   r   r   c                  t      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>  s2    a!AqD&j1a4'AqD11 r   c                  b      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                  <      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   r^   r   r~   r   r  s   @r   test_linear_coeffsr    s    444444=A1a&((((88MM!Q$7$788888888=QqS1a++yyy8888=QqS1a++yyy8888=Qq!tVaAqD11YYY>>>>
: 2 2 2 2 3 3 3
: , , , , - - -
:          =AEAq))aAY6666=a##{{{2222=Aq1uq!$777Ar7BBBB=Aqt,,,222222r   c                  p   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 d S )NFr   r   Tr   r   )r|   r   r   r   r%   r&   r   r   r   test_is_modularr    s   q!%%%%s1ayy1}a((D0000s1a4!AqD&=1,q0!44q8!<<DDDDs3q1u::q))A-q11T9999s3q1u::q))CFF2A66$>>>>s1ayy1}a((E1111s1ayy!|a'++u4444s1ayy!|a'++u4444s3q!99~~)1--6666s1ayy1}a((E111111r   c                     t          dd          } ddlm}  |t          t          d          t          d          dz  | t                    t          t
          j        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	          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 d S )Nr   Tintegerr   )_invert_modularr6  r   r   r$  r   r   r   r   )r   r  r  r   r   r   r   rD   r%   r&   r   rQ   r   r   r   )r   invert_modulars     r   test_invert_modularr    s   c4   AHHHHHH >#a**add1fa331:FFFF>#c!ffa..!A$$155#c!ffa..!9LLLLL>#c!ffa..!A$$155#c!ffa..!9LLLLL>#c!ffa..!A$$155#c!ffa..!9LLLLLAq		1Q44A661Q37++QZ889; ; ; ; ; AE1qttQ::1Q37++QZ889; ; ; ; ;>#adQh**AaDD!Q77A1q!" " " " AaCQqTT1a881Q37++QZ889; ; ; ; ;>#q1uq1uoq111Q44A>>!a%!a%!$$a() ) ) ) >#adA,,!a33
O   AqD!addAq991Q37++Q[99:< < < < <A1q1$5q 9 91Q44AFFTAX\8F1acAg$6$6DDEG G G G G>#c!ffai++QqTT1a88Q
OKKKKKKr   c                  #   t          dd          } t          t          t          d          t          z
  t          t          j                                      t          t          t          t           t          t          d          z   d          t          j                            sJ t          dt          t          t                    d          z
  t          t          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                                      t          t          t          t          t          t                    d          dz
  d          t          j                            sJ t          dt          t          t                    d          z
  t          t          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                                      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                                      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 d S ),Nr   Tr  r   r   r   r$  r   r   r   r      r5  r2  r  M   S   ]         r4  r6  rT  )   r  rI     r  r   r   r  r   J   r  iVH,i.qii@3ir   i?2   r  )r   ro   r   r   r   r   r   rP   r   rD   r&   r%   r   r   rQ   r   rW   r   rU   r   r   )r   r~   r   r   r   s        r   test_solve_modularr  6  sC   c4   AC1IIM1aj 
 

(BrC1II~q11J    
 ACFFA&1: 
 

(Bs3q661~~1155qzBBD DD D D ACFFA&1: 
 

(Bs3q661~~1155qzBBD DD D D ACFFA&1: 
 

(<2c#a&&!nnq&8!#<#<	
      AAq		M1aj11QZ????AAq		M1aj11QZ????!c!Rjj.!QZ88VAr!tax((!*557 7 7 7 7AAr

NAqz22aj@@@@!c!Qii-AJ771Q37##QZ002 2 2 2 2!c!A#'1oo-q!*==1Q37++QZ88: : : : :!c!A#qkk/1aj991Q37++QZ88: : : : : #adC..1,a<<(6!SUQY//<<VAs1urz**AJ77VAs1urz**AJ77VAs1urz**AJ77VAs1urz**AJ77VAs1urz**AJ77VAs1us{++QZ88VAs1us{++QZ88: :; ; ; ; ; AAqD!$a44
BBBB#adB--",a<<(6!RTAX..
;;VAr!tax((!*55VAr!tby))1:66VAr!tby))1:668 89 9 9 9 9 #adB--",a<<VAr!tax((!+668 8 8 8 8#b!eR..2-q!*==VAqsQw''557 7 7 7 7#adA,,*Aqz::VAqsQw''557 7 7 7 7#adA,,*Q
;;VAqsQw''557 7 7 7 7#a!Q$i++a/AJ??&L#acAg,,s1vv:M9NJ- - # #+' '()
4 45 5 5 5 5 C1aLL1$a44
BBBB#adA,,*Aqz::VAqsQw''446 6 6 6 6#adA,,*Aqz::(6!QqS1W--qz::VAqsQw''446 67 7 7 7 7 !c!A#'1oo-q!+>>&AaC!G"4"4ajAA1;OOQ Q Q Q Q C1IIM1aj11J   C!QKK!OQ
 
 

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

(Bs1q5!}}q0!44ajAAC CC C C
 #adB--",a<<(6!RTAX..
;;VAr!tby))1:668 89 9 9 9 9 #aeR..2-q!*==VAr!tby))1:668 8 8 8 8 	T"""AAAAA!c!Q$q&!nn,a<<VAz!|c122AK@@B B B B B!c!Q$q&!nn,a==&JqL3,>"?"?MMK      !c!ac(1*a000!QZ@@&JqL2,=">">LLJ      AA!aLNA...1:>>!*LLLL!c!a!e*Q,222AqzBB&JqL3,>"?"?MMJ       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 d S )Nr   r   r  r   r   )rr   r   r   r   r   r4   rT   r   r   r   test_issue_17276r    s    1a!A$$q&k**BqsBtAwwJ,?,?@!QGGAaDDFRAaDDG_-../ / / / / /r   c                     t          d          } t          d          }t          d          }t          t          | |z             t          |           z
  |                              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
                                                          t          d                    k    sJ d S )Nr   r~   r   r   r  zx,n)r   r   ro   rD   r   rW   rQ   r   r   r   r   rU   r  r   r   r%   r    )r   r~   r   s      r   test_issue_10426r    s1   c

AsAc

ASQZZ#a&&(!,,66uSzzBBu1Q3r6""AJ//Q[(6!aRAaCFS#bQRdSTf++EVEV<V9WZ[\^_`\a\aZa9a5b+c+c	
# # 	 	H H  xe--. . . . . .r   c                      t          t          t                    dz
  t          z             t	          dt          z             k    sJ dS )z,Test solveset for simple conjugate functionsr   N)ro   r#   r   r   rT   r   r   r   test_solveset_conjugater    s<    IaLL!Oa'((Ia!e,<,<<<<<<<r   c                  X   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          ||           \  }} d$ t          | |          D             }!t          ||           |!k    sJ t	          t          |           }"t          ||           |"k    sJ t          || f|           |"k    sJ |                    |           \  }#}$t          |#          }#|"	                    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 d S )%Nzx0:16zy0:12r  .   '   r  #   "   r  r  ,   r  r  5   8   r  4   r  0   <   r   r   r   r   r  r6  r   &   r   r   r      r   !   r!  c                 &    i | ]\  }}||k    ||S r   r   )r   r  r  s      r   
<dictcomp>z$test_issue_18208.<locals>.<dictcomp>  s#    LLLuq"AGGaGGGr   )r   ri   r   re   rT   r   rj   gauss_jordan_solver   r   rr   )'	variablesr:  r  r  r2  r3  x5x6x7x8x9x10x11x12x13x14x15y0r  r  r  y4y5y6y7y8y9y10y11rB  expectedr  r   solve_expectedlinsolve_expectedgj_solvenew_varsgj_expectednonlinsolve_expecteds'                                          r   test_issue_18208r    s<     77#3#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 MLIx(@(@LLLNi  N2222 "%"233C##'88888QFI&&*;;;;; --a00HhH~~H#((b"b"c-BH)M)MNNKUH%&&+5555 %b2grBwRR"WbSTf&(2gr1b!Q1aRQS')cBhlBGbL"r'2rTVw&("r'2sRx"}r7I2PR7UW<Z[K[&] ^ ^
 sI&&*>>>>>>>r   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          ||          k    sJ d S )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   r  )a00a01a10a11l0l1l2l3m0m1m2m3m4m5m6m7c00c01c10c11p00p01p10p11solveforrT  r   s                              r   *test_substitution_with_infeasible_solutionr'    sd   qxtr 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||44aAq!Q1aQRTUWY[]^	j316631aAqRSUVXY\_[_`c[cfieijmemn	
Jy~~y||44aaAq!QPQSTWYVYZ]V]^aVadgcghkckmop	
Jy~~y||44aaAq!QPQTVSVWZSZ[^S^ac`cdg`ghk`kmoqst	 C +fh////////r   c                  j    t          dt          t                    z            t          j        u sJ d S r   r  r   r   r   test_issue_20097r)  0  s-    Ad1ggI!*,,,,,,r   c                      t          t          t          dt          z  t          z                                 t	          dd          k    sJ d S )Nr   r   )ro   r
   r4   r   rT   r   r   r   test_issue_15350r+  4  sA    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 d S )Nr   r   r   r   Tr  )r7   r   r5   rV   ro   r   )r  c2correct_resultresult1result2s        r   test_issue_18359r1  8  s0   	Aq1u:Aq		!c!Qiik 9C1IIaK GN	O	OB	Iq!a%j3q!99Q;Q1+Ds1ayyQR{+RTX*YZZ\]ab\bcen	o	oBa^^NrHQNN*Ax1~~>>GrHQNN*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 d S )Nr   r   r  r   )r   r%   r   rv   rw   r   r  rT   )r   s    r   test_issue_17604r3  B  st    qs2v;,s1R4yy
 2":
-C3"""""c1a551EEEEEEr   c                      t          ddt          dz  z
  dz  z  t          t          j                  t          j        u sJ d S r  )ro   r   r   r   r   r   r   r   test_issue_17580r5  H  s9    Aq1a4x!mOQ00AJ>>>>>>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 d S )Nr   r   r   r5  r   )r   r   rr   rT   r&   )rc  s    r   test_issue_17566_actualr7  L  su    a4!Q$;?AqD1a4K!O
,CsAq!!YA1Hc!ff0Da/H%I%IIIIIIIr   c            	         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 d S )Nr   r   r   r   r   r   )r   r   r   rW   rV   r  r   r   ro   r   r   )r  r  s     r   test_issue_17565r9  R  s    	Aq1uqjL!QUgajjl334q!a%y!a%7ST::VW<AX7XXZ[	\	\B
rHQNN?33Xa__
E
ECB17##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 d S )Nr   r   r   r   )r   r4   ro   r   r   rT   r   )functions    r   test_issue_15024r<  X  sY    AtQTEBqDL)))HHa))Ywr{{-C-CCCCCCCr   c                     t          t          t          dz
  t          t                    gt          t                    t          dt          t          t          dt          z  t          z            t          j                  fdt          t          t          dt          z  t          z  t          z             t          j                  f                    sJ d S r  )r   rr   r   rD   r   rT   rQ   r   r   r   r   r   r   r   r   test_issue_16877r>  ]  s    a!eSVV_a33Axq!A#b&(9(91:FFGxq!A#b&2+(>(>
KKLN NO O O O O O Or   c                     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 d S Nr   r   )r   rr   rD   r   r   rT   rQ   r   r   r   r   r   r   r   r   test_issue_16876rA  d  s    c!ffacAaCi0!Q77HVAqs2v%6%6
CC$VAqt__ajAAC$VAqs2v{%;%;QZHH$VAqtbd{%;%;QZHHJK KL L L L 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 d S )Nzx zr   T)rationalr   ze1 e2)even)r   ro   r   r   rP   r   )r   r   r   r  r  s        r   test_issue_21236rE  m  s    5>>DAqd###AAqD1Ha))\!R1q!__ag-V-VVVVVW4(((FB
2AAqD1Ha))\!R1q!__ag-V-VVV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 d S )Nr   r  )r  r   rk  )rr   r   r   r%   r   r   r   test_issue_21908rG  v  sn    A!ad*CFF2BqDQK@!Q  #V,- - - - - -r   c                     t           t          z   dz
  t          dz  dz   g} d | 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n J t           t          z  dz
  t          dz  dz   g}d |D             }t           t           ft          t          fh}t          |t           t          g          }t          |t           t          g          }	|	|cxk    r|k    sn J t          t	          t           dt           z  z   dt           z            gt           g          t          t          j        f          k    sJ d S )Nr   r   c                 .    g | ]}t          |d           S r   r   r  s     r   r  z$test_issue_19144.<locals>.<listcomp>~       
#
#
#2a88
#
#
#r   c                 .    g | ]}t          |d           S rJ  rK  r  s     r   r  z$test_issue_19144.<locals>.<listcomp>  rL  r   )r   r   r   rr   r   rT   r   r   )
r  rl  r`  
soln_expr1soln_eq1r  rm  r  
soln_expr2soln_eq2s
             r   test_issue_19144rR  {  sl   UQY1q!E
#
#U
#
#
#C!eQZ!a%!%EUQF++J3A''Hz****U******qS1WadQhE
#
#U
#
#
#Cb1"X1vEUQF++J3A''Hz****U******1qs7AaC(()A3//9aj]3K3KKKKKKKr   c            	      N   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 d S )Nr   r   r   )rr   r   r   r%   rT   r   rU  r   )r  solss     r   test_issue_22413rU    s    !QqS1SVV8^a/0QqS91S1XX!C!aLL(881S1q\\>IAMO1 C a[CFF7QV#3Q"78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 | D             }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           d S )Ng}jJ@g      @r   g~jtX?gQ@c                 ,    g | ]}|j         |j        z
  S r   )r   rhs)r   r  s     r   r  z$test_issue_23318.<locals>.<listcomp>  s     111B111r   )gO]p@g;fl?g~adOAgIx>g~jtXgFӭ{>r   g\adOA)	r   r   r&   r   r   r   rr   r   ro   )eqs_eqeqs_exprr   logtermr  s        r   test_issue_23318r\    s   
QQ#']Q%6!7!77!;<<
1fqj
67Q;?##F
 21&111HA
BCKAq	22C888K1a)44c:::%a'/B1/D)DEIJJG	7	02	2BHROOa)9%:;;;;;r   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 d S r@  )rr   r   r   rT   r&   r   r  r   r   r   test_issue_19814r^    s    AAaC!AqD&1qs8*;<a  $c!ac(mmCFF&:AK%HIIJ J J J J Jr   c                     t          t          t                     t          dz  z  dt          z  z   t          t                    z   t          t          j                  } |                     t          di          dt          d          z
  dt          d          z   hk    s$J |                     t          di                      d S ro  )ro   r4   r   r   r   r   xreplacer  s    r   test_issue_22058ra    s    
DGG8AqD=1Q3&a0!QW
=
=C<<AAQKT!WW#====s||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 d S )Nr   r   r   r  )ro   r4   r   r   r   r   r   r   r   test_issue_11184rc    si    BtAqDD1r6AF);$<$<r$AA#EEFFFKQPQPWXX\]\ff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 d S )Nr   r   r   r   r  r  r   r  Tr   )r   rr   r   r   r4   r   r%   r   )r   rxryr   r>  s        r   test_issue_21890rg    s   	!QA!Q$q!tac)1QT6!Q$;1+<=q!D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LL(*+,a1 178tteAgq\AaDDFA;4OP P P PU&&&FB
qQwr1u}qt+Qr1uWRU]QrT-ABB
K
KC!QK2#qttAv;,q.1qttAv;tAww.q02
2B	6;qttAv;,q.1qttAv;tAww.q02
2B	6;=C #::::::r   c                  f   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 d S )Nr   r   r   r  r   )rr   r   r   r   r   r   r   r   r   r   r   test_issue_22628ri    s    Aq1ua!eQUBqD91aCCqzQQQQ1q!a%A2QF;;qzIIIIIIr   c                      t          t          t          dz            t          z
            dt          j        gk    sJ d S r^  )re   r4   r   r   r   r   r   r   test_issue_25781rk    s5    acQAqv;......r   c                     t          d          } t          t          dt          z            z  }t          |t          t          j                  }t          t          t          | d| z  t          z  dz            t          j
                  t          t          | d| z  t          z  dz  t          dz  z             t          j
                            }t          t          t          t          dt          dt          z            dz  z  dz
  z  t          dt          z            z   d          t          t          j        |                    }|                                |                                k    sJ d S )N_nr   r   r   r   )r   r   rA   r   r   r   rW   rQ   r   r   r   rP   r   rS   as_dummy)rm  r;  critical_pointsexcluded_pointsr  s        r   test_issue_26077rq    s    	BQqSzH'!QW==OAbDGAI&&
33AbDGAI1,--qz:: O A
1bQqS1nq !C!HH,a0017O,, H /":":"<"<<<<<<<r   N(}  mathr   sympy.calculus.utilr   sympy.core.containersr   sympy.core.functionr   r   r	   r
   sympy.core.modr   sympy.core.numbersr   r   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,   r-   r.   r/   r0   r1   r2   r3   (sympy.functions.elementary.miscellaneousr4   r5   r6   $sympy.functions.elementary.piecewiser7   (sympy.functions.elementary.trigonometricr8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   'sympy.functions.special.error_functionsrF   rG   rH   rI   r  rJ   sympy.matrices.denserK   r  sympy.matrices.immutablerL   sympy.polys.polytoolsrM   sympy.polys.rootoftoolsrN   sympy.sets.containsrO   sympy.sets.conditionsetrP   sympy.sets.fancysetsrQ   rR   sympy.sets.setsrS   rT   rU   rV   rW   rX   rY   sympy.simplifyrZ   sympy.tensor.indexedr[   sympy.utilities.iterablesr\   sympy.testing.pytestr]   r^   r_   r`   ra   rb   sympy.core.randomrc   r  r1  rd   sympy.solversre   r  rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   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   r   r  r	  r  r  r  r"  r-  r0  rA  rD  rP  rR  rV  rX  rZ  r\  r^  r`  rb  rd  rf  rm  rp  rr  rt  rw  ry  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r<  rF  rH  rR  rV  rX  r^  ra  rh  rp  rt  r|  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r"  r$  r&  r(  r*  r,  r.  r0  r2  r4  r6  rB  rG  rN  rP  rR  rT  rV  rX  rZ  r\  r_  ra  rd  rf  rj  rm  ro  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+  r1  r3  r5  r7  r9  r<  r>  rA  rE  rG  rR  rU  r\  r^  ra  rc  rg  ri  rk  rq  r   r   r   <module>r     s         1 1 1 1 1 1 ' ' ' ' ' ' @ @ @ @ @ @ @ @ @ @ @ @       K K K K K K K K K K K K K K K K K K 2 2 2 2 2 2 2 2 2 2 2 2 " " " " " " & & & & & & 6 6 6 6 6 6 6 6 6 6 & & & & & & T T T T T T T T T T T T T T T T G G G G G G G G G GR R R R R R 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 C C C C C C C C C : : : : : :" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "            # # # # # # = = = = = = 9 9 9 9 9 9 & & & & & & + + + + + + ( ( ( ( ( ( 0 0 0 0 0 0 0 0 0 0 0 0 0 09 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 # # # # # # ( ( ( ( ( ( 6 6 6 6 6 6 Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q 6 6 6 6 6 6 " " " " " "      B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B                                             # # #> > >	> 	> 	> CN CN CNL< < < )@ )@ )@X+ + +: : :
, , , 	N 	N 	N&H H H8L 8L 8Lv6 6 6 4 4 4G G G
 
 
B B B; ; ;,$1 $1 $1N
 
 
F, F, F,R = = = 3 3 3B0 0 0! ! !7 7 7
 
 
E E EC C C

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