a
    {þds ã                   @   sÀ  d dl mZ d dlmZ d dlmZ d dlmZmZm	Z	m
Z
 d dlmZ d dlmZmZmZmZmZmZ d dlmZmZmZmZ d dlmZ d d	lmZ d d
lmZmZm Z  d dl!m"Z" d dl#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z) d dl*m+Z+m,Z,m-Z- d dl.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4 d dl5m6Z6m7Z7m8Z8 d dl9m:Z: d dl;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZI d dlJmKZKmLZLmMZMmNZN d dlOmPZP d dlQmRZS d dlTmUZU d dlVmWZW d dlXmYZY d dlZm[Z[ d dl\m]Z] d dl^m_Z_m`Z` d dlambZbmcZcmdZdmeZemfZfmgZgmhZh d dlimjZj d dlkmlZl d dlmmnZn d dlompZpmqZqmrZrmsZsmtZtmuZu d d lvmwZx d d!lymzZz d d"l{m|Z| d d#l}m~Z~mZm€Z€mZm‚Z‚mƒZƒm„Z„m…Z…m†Z†m‡Z‡mˆZˆm‰Z‰mŠZŠm‹Z‹mŒZŒmZmŽZŽmZmZm‘Z‘m’Z’m“Z“m”Z” d d$l•m–Z–m—Z—m˜Z˜m™Z™mšZšm›Z›mœZœmZmžZžmŸZŸm Z m¡Z¡m¢Z¢m£Z£m¤Z¤m¥Z¥m¦Z¦m§Z§m¨Z¨m©Z©mªZª d%d&„ Z«d'd(„ Z¬d)d*„ Z­eud+d,„ ƒZ®d-d.„ Z¯d/d0„ Z°d1d2„ Z±d3d4„ Z²epd5d6„ ƒZ³d7d8„ Z´d9d:„ Zµd;d<„ Z¶d=d>„ Z·d?d@„ Z¸dAdB„ Z¹dCdD„ ZºdEdF„ Z»dGdH„ Z¼dIdJ„ Z½epdKdL„ ƒZ¾esdMdN„ ƒZ¿dOdP„ ZÀdQdR„ ZÁdSdT„ ZÂdUdV„ ZÃdWdX„ ZÄdYdZ„ ZÅd[d\„ ZÆd]d^„ ZÇd_d`„ ZÈdadb„ ZÉdcdd„ ZÊdedf„ ZËdgdh„ ZÌdidj„ ZÍdkdl„ ZÎdmdn„ ZÏdodp„ ZÐdqdr„ ZÑdsdt„ ZÒdudv„ ZÓdwdx„ ZÔdydz„ ZÕd{d|„ ZÖd}d~„ Z×dd€„ ZØdd‚„ ZÙdƒd„„ ZÚd…d†„ ZÛeud‡dˆ„ ƒZÜd‰dŠ„ ZÝd‹dŒ„ ZÞddŽ„ Zßdd„ Zàepd‘d’„ ƒZáepd“d”„ ƒZâepd•d–„ ƒZãeud—d˜„ ƒZäeud™dš„ ƒZåd›dœ„ Zæddž„ ZçepdŸd „ ƒZèd¡d¢„ Zéd£d¤„ Zêd¥d¦„ Zëd§d¨„ Zìd©dª„ Zíd«d¬„ Zîd­d®„ Zïd¯d°„ Zðd±d²„ Zñd³d´„ Zòdµd¶„ Zód·d¸„ Zôd¹dº„ Zõd»d¼„ Zöd½d¾„ Z÷d¿dÀ„ ZødÁdÂ„ ZùepdÃdÄ„ ƒZúdÅdÆ„ ZûdÇdÈ„ ZüdÉdÊ„ ZýdËdÌ„ ZþdÍdÎ„ ZÿdÏdÐ„ Z epdÑdÒ„ ƒZdÓdÔ„ ZdÕdÖ„ Zd×dØ„ ZdÙdÚ„ ZdÛdÜ„ ZdÝdÞ„ Zdßdà„ Zdádâ„ Z	dãdä„ Z
dådæ„ Zdçdè„ Zdédê„ Zdëdì„ Zdídî„ Zetdïƒdðdñ„ ƒZetdòƒdódô„ ƒZdõdö„ Zd÷dø„ Zdùdú„ Zdûdü„ Zdýdþ„ Zdÿd „ Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Zdd„ Zdd„ Z dd„ Z!dd„ Z"dd„ Z#dd„ Z$dd„ Z%dd„ Z&dd „ Z'd!d"„ Z(d#d$„ Z)d%d&„ Z*d'd(„ Z+d)d*„ Z,d+d,„ Z-d-d.„ Z.d/d0„ Z/d1d2„ Z0d3d4„ Z1d5d6„ Z2d7d8„ Z3d9d:„ Z4d;d<„ Z5d=d>„ Z6d?d@„ Z7dAdB„ Z8dCdD„ Z9dEdF„ Z:dGdH„ Z;dIdJ„ Z<dKdL„ Z=dMdN„ Z>dOdP„ Z?dQdR„ Z@dSdT„ ZAepdUdV„ ƒZBdWdX„ ZCdYdZ„ ZDd[d\„ ZEepd]d^„ ƒZFepd_d`„ ƒZGdadb„ ZHdcdd„ ZIdedf„ ZJepdgdh„ ƒZKdidj„ ZLdkdl„ ZMdmdn„ ZNdodp„ ZOdqdr„ ZPdsdt„ ZQdudv„ ZRdwdx„ ZSdydz„ ZTd{d|„ ZUd}d~„ ZVdd€„ ZWdd‚„ ZXdƒd„„ ZYd…d†„ ZZd‡dˆ„ Z[d‰dŠ„ Z\d‹dŒ„ Z]ddŽ„ Z^dd„ Z_d‘d’„ Z`d“d”„ Zad•d–„ Zbd—d˜„ Zcd™dš„ Zdd›dœ„ Zeddž„ ZfdŸd „ Zgd¡d¢„ Zhd£d¤„ Zid¥d¦„ Zjd§d¨„ Zkd©S (ª  é    ©Úisclose)ÚAdd)ÚTuple)ÚFunctionÚLambdaÚnfloatÚdiff)ÚMod)ÚEÚIÚRationalÚooÚpiÚInteger)ÚEqÚGtÚNeÚGe)ÚS)Úordered)ÚDummyÚSymbolÚsymbols©Úsympify)ÚAbsÚargÚimÚreÚsignÚ	conjugate)ÚLambertWÚexpÚlog)ÚHyperbolicFunctionÚsinhÚtanhÚcoshÚsechÚcoth)ÚsqrtÚMinÚMax)Ú	Piecewise)ÚTrigonometricFunctionÚacosÚacotÚacscÚasecÚasinÚatanÚatan2ÚcosÚcotÚcscÚsecÚsinÚtan)ÚerfÚerfcÚerfcinvÚerfinv)ÚAnd)ÚMutableDenseMatrix)ÚImmutableDenseMatrix)ÚPoly)ÚCRootOf)ÚContains)ÚConditionSet)ÚImageSetÚRange)Ú
ComplementÚ	FiniteSetÚIntersectionÚIntervalÚUnionÚimagesetÚ
ProductSet)Úsimplify)ÚIndexed)Únumbered_symbols)ÚXFAILÚraisesÚskipÚslowÚSKIPÚ_both_exp_pow)Úverify_numerically)Úcm)Úsolve)Úsolveset_realÚdomain_checkÚsolveset_complexÚlinear_eq_to_matrixÚlinsolveÚ_is_function_class_equationÚinvert_realÚinvert_complexÚsolvesetÚsolve_decompositionÚsubstitutionÚnonlinsolveÚsolvifyÚ_is_finite_with_finite_varsÚ
_transolveÚ_is_exponentialÚ_solve_exponentialÚ_is_logarithmicÚ_is_lambertÚ_solve_logarithmÚ_term_factorsÚ_is_modularÚNonlinearError)ÚaÚbÚcÚdÚeÚfÚgÚhÚiÚjÚkÚlÚmÚnÚqÚrÚtÚwÚxÚyÚzc                 C   s:   t | ƒttfv r(tdd„ t| |ƒD ƒƒS | |kp8|  |¡S )Nc                 s   s   | ]\}}t ||ƒV  qd S ©N)Údumeq©Ú.0r|   r}   © r   új/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/sympy/solvers/tests/test_solveset.pyÚ	<genexpr>9   ó    zdumeq.<locals>.<genexpr>)ÚtypeÚlistÚtupleÚallÚzipÚdummy_eq)r|   r}   r   r   rŽ   rŠ   7   s    rŠ   c                 C   s`   t | ƒ} t |ƒ}t| tƒsJ ‚t|tƒs,J ‚t| ƒt|ƒks@J ‚tdd„ t| |ƒD ƒƒs\J ‚dS )z2Test solutions with floats from solveset are closec                 s   s   | ]\}}t ||ƒV  qd S r‰   r   ©rŒ   Zv1Zv2r   r   rŽ   r   D   r   z"assert_close_ss.<locals>.<genexpr>N)r   Ú
isinstancerK   Úlenr”   r•   )Úsol1Úsol2r   r   rŽ   Úassert_close_ss=   s    rœ   c                 C   sˆ   t | ƒ} t |ƒ}t| tƒsJ ‚t|tƒs,J ‚t| ƒt|ƒks@J ‚t| |ƒD ]8\}}t|ƒt|ƒksfJ ‚tdd„ t||ƒD ƒƒsJJ ‚qJdS )z5Test solutions with floats from nonlinsolve are closec                 s   s   | ]\}}t ||ƒV  qd S r‰   r   r—   r   r   rŽ   r   P   r   z"assert_close_nl.<locals>.<genexpr>N)r   r˜   rK   r™   r•   r”   )rš   r›   Ús1Ús2r   r   rŽ   Úassert_close_nlG   s    rŸ   c                     sH  t ddd‰ tjfdd„} ttˆ ƒtˆ ƒˆ | tttƒƒƒfksBJ ‚t ddd‰t ddd}tˆ d	 ˆˆ ƒˆ tˆd	 ƒfks~J ‚tˆ d	 ˆˆ ƒˆ tˆd	 ƒfks¢J ‚ttˆ ƒˆˆ ƒˆ ttˆƒƒfksÆJ ‚ttd	ˆ  ƒˆˆ ƒˆ ttˆƒd	 ƒfksòJ ‚ttˆ d	 ƒˆˆ ƒˆ ttˆƒd	 ƒfks J ‚ttˆ ƒd	 ˆˆ ƒˆ | ttˆd	 ƒƒƒfksRJ ‚ttˆ ƒd	 ˆˆ ƒˆ ttˆd	 ƒƒfks€J ‚ttˆ ƒˆˆ ƒˆ ttˆƒƒfks¦J ‚ttd	ˆ  ƒˆˆ ƒˆ ttˆƒd	 ƒfksÔJ ‚ttˆ d	 ƒˆˆ ƒˆ ttˆƒd	 ƒfksJ ‚ttˆ ƒˆˆ ƒˆ tˆˆ ƒfks(J ‚td
ˆ  ˆˆ ƒˆ ttˆƒtd
ƒ ƒfksVJ ‚td
tˆ ƒ ˆˆ ƒˆ | tttˆƒtd
ƒ ƒƒƒfksJ ‚tˆ d
 ˆˆ ƒˆ tt	ˆƒt	ˆƒ ƒfks¾J ‚tˆ tj
 ˆˆ ƒˆ tˆd
 ƒfksæJ ‚tt‡ fdd„ƒ tˆ t ˆˆ ƒˆ tˆdt  ƒfks"J ‚tˆ t t ˆ ƒˆ tjfksDJ ‚tˆ tdƒ dˆ ƒˆ tdƒfksjJ ‚tˆ d dˆ ƒˆ d tdƒfksJ ‚tt‡ ‡fdd„ƒ tˆ d ˆ  ˆˆ ƒˆ d ˆ  tˆƒfksÒJ ‚ˆ d ˆ  }tˆd ˆ d ƒ}ttˆ d ˆ  d ƒˆˆ ƒ||fksJ ‚tttˆ ƒˆˆ ƒˆ tt||t d| tˆƒ  ƒtjƒfƒs^J ‚ttttˆ ƒƒˆˆ ƒˆ tt|td| tˆƒ |t  ƒƒtjƒfƒs¨J ‚tttˆ ƒˆˆ ƒˆ tt||t d| tˆƒ  ƒtjƒfƒsêJ ‚ttttˆ ƒƒˆˆ ƒˆ tt|td| tˆƒ |t  ƒƒtjƒfƒs4J ‚tttˆ ƒˆˆ ƒˆ ttt|d
| t tˆƒ ƒtjƒtt|d
| t tˆƒ ƒtjƒƒfƒs–J ‚ttttˆ ƒƒˆˆ ƒˆ ttt|td
| t tˆƒ ƒƒtjƒtt|td
| t tˆƒ ƒƒtjƒƒfƒsJ ‚tttˆ ƒˆˆ ƒˆ ttt|d
| t tˆƒ ƒtjƒtt|d
| t tˆƒ ƒtjƒƒfƒsfJ ‚ttttˆ ƒƒˆˆ ƒˆ ttt|td
| t tˆƒ ƒƒtjƒtt|td
| t tˆƒ ƒƒtjƒƒfƒsÔJ ‚tttˆ ƒˆˆ ƒˆ tt||t tˆƒ ƒtjƒfƒsJ ‚ttttˆ ƒƒˆˆ ƒˆ tt|t|t tˆƒ ƒƒtjƒfƒsPJ ‚ttt ˆ ƒˆˆ ƒˆ tt||t t!ˆƒ ƒtjƒfƒsŠJ ‚ttt tˆ ƒƒˆˆ ƒˆ tt|t|t t!ˆƒ ƒƒtjƒfƒsÌJ ‚ttttˆ ƒƒˆˆ ƒtˆ ƒtt||t tˆƒ ƒtjƒfƒsJ ‚t ddd‰ tˆ t ˆˆ ƒˆ tˆdt  ƒfksDJ ‚d S )Nr†   T©Úrealc                 S   s
   t || ƒS r‰   )rL   )r†   Úsr   r   rŽ   ÚirealW   s    ztest_invert_real.<locals>.irealr‡   ©Zpositiver   é   é   c                      s   t ˆ ˆ ˆ ƒS r‰   )rc   r   ©r†   r   rŽ   Ú<lambda>t   r   z"test_invert_real.<locals>.<lambda>é   g      ø?iè  éd   ç      ð?c                      s   t tjˆˆ ƒS r‰   )rc   r   ÚOner   ©r†   r‡   r   rŽ   r¨   |   r   é   éÿÿÿÿ)"r   r   ÚRealsrc   r#   rˆ   rK   r$   r   r+   ÚHalfrU   Ú
ValueErrorr   r   ÚEmptySetr   rŠ   r;   rO   r   r4   ÚIntegersr9   r2   r7   rN   r0   r:   r3   r<   r5   r8   r1   )r£   r   ÚlhsZbase_valuesr   r­   rŽ   Útest_invert_realS   sž    ($$$,.2.&..&.:.(*"&&.*(ÿ
,ÿ
(ÿ
,ÿ
$ ÿÿ
($ÿÿ
$ ÿÿ
($ÿÿ
 ÿ
$ÿ
 ÿ
$ÿ
$ÿ
r¶   c                
   C   s,  t td ttƒtttd ƒfks$J ‚t td ttƒtttd ƒfksHJ ‚t td d dtƒttdƒfkslJ ‚tt ttƒttƒttttt	dt
 t ttƒ  tttƒƒ ƒtjƒfƒs¸J ‚t ttƒttƒttttƒƒfksÜJ ‚ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ t ttƒdtƒttdƒfks(J ‚d S )	Nr¥   r©   r   r¦   c                   S   s   t dttƒS ©Nr©   )rc   r‡   r†   r   r   r   rŽ   r¨   ½   r   z%test_invert_complex.<locals>.<lambda>c                   S   s   t tttƒS r‰   ©rd   r†   r   r   r   rŽ   r¨   ¾   r   c                   S   s   t ttdƒS r·   r¸   r   r   r   rŽ   r¨   ¿   r   )rd   r†   r‡   rK   rŠ   r#   rO   r   r   r   r   r   r$   r   r   r´   rU   r²   r&   r   r   r   rŽ   Útest_invert_complex³   s    $$$4ÿ$r¹   c                   C   sl   t dddtd  d   tdƒdu s(J ‚t td tdƒdu s@J ‚t tttƒdu sTJ ‚t dttƒdu shJ ‚d S )Nr©   r¦   r¯   Fr   T)r^   r†   r   r   r   r   rŽ   Útest_domain_checkÅ   s    (rº   c                   C   sF   t dt d ttjƒtjks J ‚t dt d ttjƒtdƒksBJ ‚d S )Nr   rª   r©   )re   r†   r   r°   r³   rK   r   r   r   rŽ   Útest_issue_11536Ì   s     r»   c                  C   sœ   t d td  d t d td  d  ddt d  td  td    } |  t ¡}|  t¡}|  t¡}t|||gt ttgƒ}t|ƒdkr”t|ƒdks˜J ‚d S )Nr¦   é   é   )r†   r‡   rˆ   r	   rh   r™   )ry   ÚfxÚfyÚfzÚsolr   r   rŽ   Útest_issue_17479Ñ   s    H


rÂ   c                     sÒ   t dƒ\} }}| d |d  d | d |d  d  dd| d  |d  |d    }t|| ƒ}t||ƒ}t||ƒ}t|||g| ||gƒ}|D ]>\}}	}
| |||	||
i‰ t‡ fdd„|||fD ƒƒdksŽJ ‚qŽd S )Núx, y, zr¦   c                 3   s   | ]}|  ˆ ¡ ¡ V  qd S r‰   )ÚsubsrQ   )rŒ   Ú_©rw   r   rŽ   r   ê   r   z#test_issue_18449.<locals>.<genexpr>)r   r   r   )r   r	   rh   r“   )r†   r‡   rˆ   ry   r¾   r¿   rÀ   rÁ   ÚxsÚysZzsr   rÆ   rŽ   Útest_issue_18449à   s    H


rÉ   c                  C   sÂ   dt  d tt d ƒd d  } t| t tjƒtdƒks:J ‚tt ƒd d tt ƒd d  dt d   tdƒ } t| t tjƒttjtdtdƒ d ƒd  tjtdtdƒ d ƒd  ƒks¾J ‚d S )Nr¦   r©   é   é   )r†   r+   re   r   r°   rK   r±   ©ry   r   r   rŽ   Útest_issue_21047ô   s     48ÿrÍ   c                   C   sî  t tttƒtƒdu sJ ‚t tttƒd tƒdu s4J ‚t tttƒttƒ tƒdu sTJ ‚t tttƒttƒ t tƒdu sxJ ‚t tttƒttƒ ttƒ tƒdu s J ‚t tttƒttt ƒ ttƒ tƒdu sÌJ ‚t tttƒttt ƒ ttƒ tƒdu søJ ‚t ttttƒ d tƒdu sJ ‚t tttƒd ttƒ d tƒdu sDJ ‚t tttƒt tƒdu sbJ ‚t tttd ƒtƒdu s€J ‚t tttd ƒttƒ tƒdu s¦J ‚t tttƒttƒ tƒdu sÈJ ‚t ttttƒƒttƒ tƒdu sîJ ‚t tttƒtƒdu sJ ‚t tttƒd tƒdu s&J ‚t tttƒttƒ tƒdu sHJ ‚t tttƒttƒ t tƒdu snJ ‚t tttƒttƒ ttƒ tƒdu s˜J ‚t tttƒttt ƒ ttƒ tƒdu sÆJ ‚t tttƒttt ƒ ttƒ tƒdu sôJ ‚t ttttƒ d tƒdu sJ ‚t tttƒd ttƒ d tƒdu s@J ‚t tttƒt tƒdu s^J ‚t tttd ƒtƒdu s|J ‚t tttd ƒttƒ tƒdu s¢J ‚t tttƒttƒ tƒdu sÄJ ‚t ttttƒƒttƒ tƒdu sêJ ‚d S )NTr©   r¦   F)	rb   r/   r<   r†   r;   rt   r%   r'   r&   r   r   r   rŽ   Útest_is_function_class_equationý   s   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿrÎ   c                      sÔ   t tdd„ ƒ tddd‰ tˆ dƒtjks.J ‚tˆ d dƒtˆ ƒksHJ ‚tˆ tƒtjks\J ‚tˆ ˆ d ƒtjkstJ ‚t t‡ fdd„ƒ tˆ tƒtjksšJ ‚t t‡ fd	d„ƒ t t‡ fd
d„ƒ t t‡ fdd„ƒ d S )Nc                   S   s   t tgtƒS r‰   )r]   r‡   r   r   r   rŽ   r¨   9  r   z$test_garbage_input.<locals>.<lambda>r†   Tr    r©   r¦   c                      s   t ˆ gˆ ƒS r‰   )r_   r   r§   r   rŽ   r¨   @  r   c                      s   t ˆ tfˆ ƒS r‰   )re   r‡   r   r§   r   rŽ   r¨   C  r   c                      s   t ˆ d tjƒS r·   )re   r   r°   r   r§   r   rŽ   r¨   D  r   c                      s   t ˆ d ˆ dƒS ©Nr©   r¦   )re   r   r§   r   rŽ   r¨   E  r   )	rU   r²   r   r]   r   r³   rK   r   r_   r   r   r§   rŽ   Útest_garbage_input8  s    rÐ   c                  C   sÞ   t tt t ttƒd  tƒttdƒhtt t htj	ƒƒksBJ ‚t
ddd} t
ddd}t | t | ttƒd  tƒt| |  tdƒƒksJ ‚t dt d dttƒ  tƒttd	ƒƒks¾J ‚t tttƒ tƒtju sÚJ ‚d S )
Nr¥   ÚanzT)ZnonzeroÚbbr    r¦   é   éüÿÿÿ)r]   rt   r†   ru   r#   rN   r$   rL   r   r°   r   rK   r³   )rÑ   rÒ   r   r   rŽ   Útest_solve_mulH  s    ÿÿ.rÕ   c                   C   sè   t ttƒd tƒttdƒƒks"J ‚t ttƒd tƒttdƒƒksDJ ‚t dtd  tƒtƒ ks`J ‚t ddt  tƒtƒ ks|J ‚t ttttt ƒ  tƒtt	j
ttttt ƒ ƒƒks¶J ‚t dt d tƒtdtdƒtdƒ  ƒksäJ ‚d S )Nr¥   r¦   é
   r©   rË   )r]   r#   r†   rK   r$   r‡   ru   rt   rL   r   r°   r   r   r   rŽ   Útest_solve_invertS  s    ""ÿ
r×   c                   C   s”   t ttƒtj tƒtttjƒƒks&J ‚t ttƒd tƒttdƒƒksHJ ‚t ttƒtj tƒtt	tjƒƒksnJ ‚t t	tƒd tƒttdƒƒksJ ‚d S ©Nr¦   )
r]   r=   r†   r   r±   rK   r@   r>   r¬   r?   r   r   r   rŽ   Útest_errorinversesa  s    ÿ
ÿÿrÙ   c                  C   sÚ  t ddd} t ddd}td|  d | ƒttddƒƒks<J ‚t| d d | ƒttj tjƒksbJ ‚t| |d  | ƒt|d ƒks„J ‚t| d d|   d	 | ƒtd
dtj  td	ƒd
dtj  ƒksÆJ ‚tt| ƒd | ƒtdƒksäJ ‚tt| ƒd | ƒtd	ƒksJ ‚t| tdd	ƒ d | ƒtdƒks*J ‚t| tddƒ d | ƒtdƒksPJ ‚tt| d | d  d | ƒƒdksxJ ‚ttd
| d  d	| d   d|   d | ƒƒdks°J ‚t| d | d	  t	 | ƒtj
u sÖJ ‚d S )Nr†   Tr    r‡   r¥   r¦   r©   é   r¼   éþÿÿÿé   é   rË   rÊ   r   )r   r]   rK   r   r   r¬   r±   r+   r™   r   r³   r­   r   r   rŽ   Útest_solve_polynomialk  s"    $&"ý
 &&(8rÞ   c                  C   sN  t d dt d   dt d   dt   d } tt| t ƒƒ}|D ]}|jtks>J ‚q>tttt d dt d   d t ƒƒd d	d
tt d dt d   d dƒ ¡ ks¦J ‚ttt d dt   d t ƒƒ}tdd„ |D ƒƒrât|ƒdksæJ ‚t d dt d   dt d   dt   d } tt| t ƒƒ}|D ]}|jtks$J ‚q$t d dt d   dt d   t	ddƒ }t|t ƒt
t|d dd ¡ Ž ksŽJ ‚t t d d  t d  t d t  d  }t|t ƒt
dddtt d t  d dƒtt d t  d dƒtt d t  d dƒtt d t  d dƒtt d t  d dƒtt d t  d dƒƒ	ksJJ ‚d S )NrË   rÚ   r¥   r¦   rÖ   r½   é   r   F)ÚexponentrÊ   c                 s   s   | ]}t |tƒV  qd S r‰   )r˜   rE   ©rŒ   r|   r   r   rŽ   r   ’  r   z&test_return_root_of.<locals>.<genexpr>r¼   ZZZ©Údomainr©   r¯   )r†   r’   r_   ÚfuncrE   r   r   r”   r™   r   rK   rD   Z	all_roots)ry   r¢   ÚrootrÁ   Úeqr   r   rŽ   Útest_return_root_of  s:    ,	&ÿ ÿ",*ÿ
(ûÿrç   c                   C   s.  t tdt d ƒd t tƒttj tdƒƒks4J ‚t ttd ƒt d tƒtdƒksZJ ‚t ttd ƒd tƒtdƒks|J ‚t ttƒd d tƒtdƒksžJ ‚t ttd	 ƒtƒtd
ƒks¼J ‚t ttd ƒtƒtdƒksÚJ ‚t ttd	 t ƒtƒtd	ƒksüJ ‚t ttd	 t ƒtddƒ tƒtdƒks*J ‚d S )NrË   rÊ   r¦   r©   rß   rÖ   rÝ   é1   r¥   r   r¼   )r]   r+   r†   rK   r   r¬   r   r   r   r   rŽ   Útest_solveset_sqrt_1¨  s    ÿ&"""ÿré   c                     sà  t ddd‰t ddd} ttdˆ d ƒtˆd ƒ d ˆƒttdƒtd	ƒƒksTJ ‚ttˆd
 ƒd tdˆ ƒ ˆƒtdƒks‚J ‚ttdˆ tˆd d ƒ ƒd
 ˆƒtdƒks´J ‚ˆd ˆd dˆd   ˆ tddƒ  ‰ tˆ ˆƒttddƒtddƒƒksJ ‚tdˆ d ƒtˆd ƒ tˆd ƒ ‰ tˆ ˆƒtdƒksDJ ‚tˆd ƒtdˆ d ƒ dtˆd ƒ  ‰ tˆ ˆƒtdƒksˆJ ‚tˆƒtˆd
 ƒ d ‰ tˆ ˆƒtdƒks¸J ‚tˆd ƒtˆƒ d ‰ tˆ ˆƒtdƒksèJ ‚tdˆd  d
 ƒdˆ  ‰ tˆ ˆƒttdƒ tdƒƒks(J ‚tdˆd  d ƒdˆ d  ‰ tˆ ˆƒtdƒks`J ‚ttˆd ƒtˆƒ d ˆƒtƒ ksŠJ ‚dˆ d tddƒ d ‰ tˆ ˆƒtdƒks¼J ‚ttˆƒttˆƒƒ d ˆƒttddƒtdƒd  d ƒksþJ ‚tˆƒtˆd ƒ ttˆƒƒ ‰ tˆ ˆƒtƒ ks4J ‚ˆd d tˆƒd d  ‰ tˆ ˆƒtddƒksjJ ‚tˆƒtˆd ƒ tdˆ ƒ dtdƒ d  ‰ tˆ ˆƒ}tdƒ}tddƒ}t‡ ‡fdd„||fD ƒƒrt|ƒdkrdd„ |D ƒdd„ ||fD ƒksJ ‚ttˆƒˆtddƒ  ˆtddƒ  ˆƒtdƒks@J ‚tˆtˆd d ƒ ˆƒtdƒkshJ ‚ˆ| d  | d td| d  ƒ  ‰ tˆ ˆƒt| d ƒks¨J ‚tddˆ tddƒ  d ˆƒ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   s&   | ]}t ˆ  ˆ|¡ ¡ ƒd k V  qdS )g»½×Ùß|Û=N)ÚabsrÄ   r   rá   ©ræ   r†   r   rŽ   r   ë  r   z'test_solveset_sqrt_2.<locals>.<genexpr>c                 S   s   h | ]}|j d d’qS ©T)Zchop©r   rá   r   r   rŽ   Ú	<setcomp>í  r   z'test_solveset_sqrt_2.<locals>.<setcomp>c                 S   s   h | ]}|j d d’qS rñ   rò   rá   r   r   rŽ   ró   î  r   i´~ûÿi©æ  )r   r]   r+   rK   r   r   r”   r™   )r‡   ÚansÚraÚrbr   rð   rŽ   Útest_solveset_sqrt_2´  sv    $ÿ ÿ$ÿ*&(,$ *ÿ
 0


ÿÿþÿÿÿ
($ÿr÷   c                  C   sF   t d dt d   tddƒ d t  } t| t ƒttddƒƒksBJ ‚d S )Nr¥   r¦   r©   )r†   r   r]   rK   ©ræ   r   r   rŽ   Útest_solve_sqrt_failý  s    &rù   c                  C   s  t dƒ} tdƒ|  td| d  ƒ | d tdƒtd| d  ƒ d   }t|| ƒ}tddƒdtdƒ ttdtdƒ d	 ƒd ƒ d  tdƒ ttdtdƒ d	 ƒd ƒ d d
tdtddƒtdƒt d  td	dƒtdƒt d  tddƒ   ƒ d  tdƒttdtdƒ d	 ƒd ƒ d  tddƒ ttdƒ ttdtdƒ d	 ƒd ƒ d tdƒttdtdƒ d	 ƒd ƒ d  d
t	dtddƒtdƒt d  td	dƒtdƒt d  tddƒ   ƒ d    g}d
tdtddƒtdƒt d  td	dƒtdƒt d  tddƒ   ƒ d tdƒttdtdƒ d	 ƒd ƒ d  tdƒttdtdƒ d	 ƒd ƒ d  tddƒ td
t	dtddƒtdƒt d  td	dƒtdƒt d  tddƒ   ƒ d tdƒttdtdƒ d	 ƒd ƒ d  tdƒttdtdƒ d	 ƒd ƒ d    g}t
|Ž }t| t|dƒt
|Ž ƒ}||dh |dh B ks^J ‚ttt d t dt  tj d  ƒ ttd  d tdtd  dtd   dt  d ƒd  tddƒ d td d t tdtd  dtd   dt  d ƒd  tddƒ d  ƒ }tttttt d t dt  tj d  ƒttd  d tdtd  dtd   dt  d ƒd  tddƒ d td d t tdtd  dtd   dt  d ƒd  tddƒ d  ƒ dƒtjƒ}t|tƒ|ks J ‚d S )NÚRr¦   r©   rË   r¥   r¼   rÖ   éo   éû   é(   r¯   rÝ   rí   é   r   rÓ   )r   r+   r_   r   r7   r5   r   r   r;   r   rK   rG   r   r€   r‚   r   r±   r°   r]   )rú   ræ   rÁ   ÚfsetÚcsetÚfsÚcsÚunsolved_objectr   r   rŽ   Útest_solve_sqrt_3  s†    @
4(Lÿ&þþ*&ÿLþýÿL&ÿ&ÿþN&ÿ&þý8"ÿÿÿÿ"ÿÿÿÿÿ,V*ÿÿÿÿþþr  c                	   C   sà   t td d d t tƒttdttƒ ƒtdttƒ ƒ tdttƒ ƒtdttƒ ƒ ƒks`J ‚t ttdtt    tƒttt d t ƒtdt ƒ ksžJ ‚t ttt tt   tƒtt t tt  ƒtt ƒ ksÜJ ‚d S )Nr¦   r©   r¯   )r_   r†   rt   rK   r+   r‡   ru   r   r   r   rŽ   Ú$test_solve_polynomial_symbolic_param'  s     ÿÿÿÿr  c                   C   sÀ   t dt d tƒttj ƒks"J ‚t dttƒ d tƒtdƒksDJ ‚t tddt   tƒtdƒksfJ ‚t dt td  d tƒtdƒksŒJ ‚t td dt   t¡tƒttjtdƒƒks¼J ‚d S )Nr©   r   rË   r¦   rß   é   )r]   r†   rK   r   r¬   r#   r	   ÚZeror   r   r   rŽ   Útest_solve_rational5  s    """&ÿr  c                   C   s    t tdƒd tƒtju sJ ‚d S r·   )r]   r+   r†   r   r³   r   r   r   rŽ   Útest_solveset_real_gen_is_pow>  s    r	  c                   C   s  t dtt  ƒtju sJ ‚t tt tƒtju s2J ‚t tt t tƒtju sNJ ‚tdtƒtju sbJ ‚tttƒtƒtju szJ ‚ttd d tƒtju s–J ‚tdt ttƒ tƒtju s¶J ‚tdt tƒtju sÎJ ‚tdt  dt d  ddt   tƒtju sJ ‚d S )Nr©   r¼   r¦   éýÿÿÿ)	re   r   r†   r   r³   r]   r#   rt   r+   r   r   r   rŽ   Útest_no_solB  s     &ÿr  c                   C   sj   t dtƒtjksJ ‚tdttddƒƒtddƒks4J ‚t td  dt  td d  d tƒtjksfJ ‚d S )Nr   r©   r¦   )r]   r†   r   r°   re   rM   r   r   r   rŽ   Útest_sol_zero_realO  s     r  c                   C   sP   t ttd  d d tƒtju s$J ‚t td ddtd    tƒtju sLJ ‚d S )Nr©   r¥   rÛ   )r]   r†   r   r³   r   r   r   rŽ   Ú test_no_sol_rational_extragenousU  s    $r  c                   C   s¸   t ttƒd tƒtdƒksJ ‚t ttƒd tƒtdƒks<J ‚t ttddƒ d tƒtdƒks`J ‚t ttddƒ d tƒtdƒks„J ‚t tttjd  d  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)r]   r+   r†   rK   r   r   r¬   r  r   r   r   rŽ   Útest_solve_polynomial_cv_1aZ  s    $$ÿr  c                  C   s|   t ddd} t ddd}t| |d  |d td|d  ƒ  | ƒt|d ƒksRJ ‚td|  | d  d | ƒtdƒksxJ ‚dS )	z)Test solveset_real for rational functionsr†   Tr    r‡   r¥   r¦   r©   N)r   r]   r+   rK   r­   r   r   rŽ   Útest_solveset_real_rationalg  s    (
ÿr  c                   C   s6   t ttd td  ƒtƒttdƒtdƒ ƒks2J ‚d S rÏ   )r]   r$   r†   rK   r+   r   r   r   rŽ   Útest_solveset_real_logq  s    ÿr  c                   C   s<   t ddtd  dt   d tƒttddƒtjƒks8J ‚d S )Nr¼   r¦   rÓ   r
  )r]   r†   rK   r   r   r±   r   r   r   rŽ   Útest_poly_gensv  s     ÿr  c                  C   s\  t dƒ} ttdd„ ƒ tttƒ|  ttjƒ t	tt
| tdtƒƒ|  | hƒ¡sPJ ‚tttƒd tƒtddƒkspJ ‚tttƒd tƒtju sŒJ ‚tttd ƒdttd ƒ  tƒtdd	ƒks¼J ‚tdttƒ ttd ƒ tƒtd
tddƒƒksîJ ‚t	ttt
ttdtƒƒt
tt tdtƒƒt
tt tdtƒƒƒtt t d t t d tt d tt d ƒƒ}tttd ƒt ƒt }t|dtƒd |ksŽJ ‚tdtdi}| |¡}| |¡D ]}| t|¡r®J ‚q®ttttttƒƒdƒttjdtttdtƒtt| d
|  t d | t  ƒtjƒƒttt dƒtt| | t d
|   t d  ƒtjƒƒƒƒsXJ ‚d S )Nr   c                   S   s   t ttƒd tƒS r·   ©re   r   r†   r   r   r   rŽ   r¨   }  r   z test_solve_abs.<locals>.<lambda>r   r¦   rÛ   r¥   r©   rí   r¯   râ   )r   rU   r²   re   r   r†   r   r°   r–   rG   rF   rM   r   r]   rK   r³   r   rA   ru   rt   rc   rÄ   rŠ   r   r;   rN   rL   rH   r   r   r´   )r   rÁ   ræ   ZrepsZeqabÚsir   r   rŽ   Útest_solve_abs{  sH    ÿ  ÿÿý0ú
 
$ÿ&ÿýr  c                   C   s   t tttƒd dttƒ  d tƒtttdt t td  ƒtj	ƒƒsJJ ‚t tt
tƒd dt
tƒ  d tƒtttdt t ƒtj	ƒƒsŒJ ‚d S ©Nr¦   r©   )rŠ   re   r;   r†   rH   r   r   r   r   r´   r7   r   r   r   rŽ   Útest_issue_9824›  s    Jr  c                   C   s6   t ttd td  ƒtddƒktƒtddƒks2J ‚d S )Nr©   rË   r¥   r¯   r¦   )r]   r   r†   r   rM   r   r   r   rŽ   Útest_issue_9565   s    r  c                  C   sD   t dtd  ƒd dk} t| tƒtt dd¡t dd¡ƒks@J ‚d S )Nr©   r   r¦   )rï   r†   r]   rN   rM   Úopenrø   r   r   rŽ   Útest_issue_10069¤  s    
ÿr  c                  C   s‚   t ddd\} }tt| d |d  ƒd | ƒtt|d d ƒ t|d d ƒƒksVJ ‚tt| d |d  ƒd | ƒtjks~J ‚d S )Nza bTr    r¦   r¥   rí   )r   r]   r+   rK   r   r³   ©rt   ru   r   r   rŽ   Útest_real_imag_splittingª  s    "ÿÿr  c                   C   s.   t dt ddt   tƒtdt ƒks*J ‚d S rÏ   )r]   r†   r[   rK   r   r   r   rŽ   Ú
test_units²  s    r  c                  C   sœ   t ddd} tttƒ|  tƒtt| ƒƒks.J ‚tttƒtt ƒ d tƒtttdƒ d ƒttdƒd ƒƒksrJ ‚tttƒtt ƒ |  tƒtjks˜J ‚d S )Nr‡   Tr¤   r¼   r¥   r¦   )	r   r]   r#   r†   rK   r$   r+   r   r³   ©r‡   r   r   rŽ   Útest_solve_only_exp_1¶  s    ""ÿr  c                   C   s0   t ttdƒtd  tƒtdtdƒ ƒks,J ‚d S ©Nr¦   r¥   )r]   r6   r†   r   rK   r+   r   r   r   rŽ   Ú
test_atan2¾  s    r   c                  C   s>  t td ttdƒfdt dfƒd } tt| tƒƒttddƒƒksDJ ‚t td dtd kfdt dtd kfƒ}tddd}t|| tƒt| d |d ƒks J ‚t td d tdkfd	ƒ}t|ttj	d
t
tdƒtt dddƒƒksèJ ‚tt td tdkftdfƒt ttj	ƒtt dƒks"J ‚tt td tttƒftdfƒtƒtdƒksRJ ‚t dtdkfd	ƒ}t|dkttj	ƒt dt¡ksˆJ ‚ddlm} |ƒ }t|ttddƒd
tddƒks¾J ‚t dttdƒftd ttƒ dfƒ}t dtttƒftt ttƒ dfƒ}t|ttj	d
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
  )r.   r†   r   Úsetr]   rK   r   re   r   r°   rN   rM   r   r   r   r  Úsympy.logic.boolalgr"  r   r   r   r;   )ræ   Zabsxm3r‡   ry   rz   r"  r   r   rŽ   Útest_piecewise_solvesetÄ  s2    $ þ&."ÿ
þ
0$$$$r%  c                
   C   sX  t ttd  tt  t tƒtt dt  tdt t td  ƒdt   t dt  tdt t td  ƒdt   ƒks€J ‚t ttd  tƒtttddƒ  d t	tdƒ ttddƒ  d  ttddƒ ttddƒ  d t	tdƒ ttddƒ  d  ƒks
J ‚t tdt  d tƒtt
jt	tdƒ d  t
jt	tdƒ d  ƒksTJ ‚d S )Nr¦   rÔ   r¥   r©   )r_   rt   r†   ru   rv   rK   r+   r‡   r   r   r   r±   r   r   r   rŽ   Ú test_solveset_complex_polynomialæ  s    .,ÿÿ00ý,ÿr&  c                   C   s   t dtƒtju sJ ‚d S ©Nr   )r_   r†   r   Ú	Complexesr   r   r   rŽ   Útest_sol_zero_complexô  s    r)  c                   C   s¾   t td tt  td  tƒtdtƒks,J ‚t ttd  td tdtd  ƒ  tƒttd ƒksfJ ‚t td  t tƒttdƒ d tdƒt d  tdƒd tdƒt d  ƒksºJ ‚d S ©Nr©   r¥   r¦   )r_   r†   r   rK   r‡   r+   r   r   r   rŽ   Útest_solveset_complex_rationalø  s    ÿ(
ÿ:ÿr+  c                  C   s¸   t dƒ td dtd   dtd   dt  d } t| tƒ}|D ]&}|  t| ¡ ¡ ¡ }t|d	ƒsBJ ‚qBtd d
t  d } t| tƒ}|D ]&}|  t| ¡ ¡ ¡ }t|d	ƒsŒJ ‚qŒd S )NzThis test is too slowrË   én   r¥   é7   r¦   i	  iÓ  r   rÚ   rî   )rV   r†   r_   rÄ   r   Útn)ry   r¢   rå   Úresr   r   rŽ   Útest_solve_quintics  s    ,

r0  c                	   C   sÈ   t tttƒd tƒttttd t t ƒt	j
ƒƒs6J ‚t tttƒt tƒttttdt t td   ƒt	j
ƒƒstJ ‚tdttƒ tƒt	jksJ ‚t tttƒ t¡tƒttttt t ƒt	j
ƒƒsÄJ ‚d S rÏ   )rŠ   r_   r#   r†   rO   r   r   r   r   r   r´   r³   r&   Úrewriter   r   r   rŽ   Útest_solveset_complex_exp  s    ÿ$ÿÿr2  c                   C   sH  t tdt dƒttjƒtdƒks$J ‚t tdt  dƒttjƒtjksHJ ‚t tdt dƒttjƒtjksjJ ‚t tdtd  dƒttjƒtd	ƒks’J ‚t tdtd	  d
ƒttjƒtjks¸J ‚t tdtd	  dƒttjƒtdƒksàJ ‚t tdt tƒttjƒttjtt	tƒt	dƒ ƒƒksJ ‚t
ddt  d dtƒttdƒfksDJ ‚d S )NrÛ   r¼   r¦   r
  rÝ   éûÿÿÿr©   iq  r¥   éðÿÿÿlûÿÿÿx¿pÂEìA é*   rÜ   r   )re   r   r†   r   r°   rK   r³   r‡   rL   r$   rc   r   r   r   rŽ   Útest_solveset_real_exp  s    $$"(&(:r6  c                   C   sh   t ttƒtƒtdƒksJ ‚t dttdtd   ƒ tƒttt t ƒ d tt t ƒd ƒksdJ ‚d S )Nr©   r¼   r¦   )r_   r$   r†   rK   rt   r+   r   r   r   r   rŽ   Útest_solve_complex_log'  s    &ÿr7  c                   C   s°   t tdt d ƒd t tƒttj tdƒƒks4J ‚t tdt d ƒddt   t tƒttdƒ ddt  ƒksvJ ‚t dt dtttƒ   tƒttjdtd  ƒks¬J ‚d S )NrË   rÊ   r¦   r¥   r¼   r©   )	r_   r+   r†   rK   r   r¬   r   rt   r  r   r   r   rŽ   Útest_solve_complex_sqrt-  s    ÿ$ÿÿr8  c               	   C   sV   t ttƒ t¡tƒ} t| tttt	t ƒt
jƒtttt	t t	d  ƒt
jƒ ƒsRJ ‚d S rØ   )r_   r<   r†   r1  r#   rŠ   rO   r   r   r   r   r´   )r¢   r   r   rŽ   Útest_solveset_complex_tan6  s    ÿr9  c                   C   s(
  t tttƒtƒttttdt t ƒt	j
ƒtttdt t t ƒt	j
ƒƒƒsNJ ‚t tttƒd tƒtttdt t td  ƒt	j
ƒƒsˆJ ‚t tttƒtƒttttdt t td  ƒt	j
ƒtttdt t ttddƒ  ƒt	j
ƒƒƒsèJ ‚t tttƒttƒ tƒttttdt t ttddƒ  ƒt	j
ƒtttdt t ttddƒ  ƒt	j
ƒƒƒsXJ ‚tttƒd ttƒd  tƒt	jks‚J ‚t tttƒt	j tƒttttdt t ttddƒ  ƒt	j
ƒtttdt t td  ƒt	j
ƒƒƒsêJ ‚t tttt ƒttƒ tt	jdttttdt t ƒt	j
ƒttttt tdt t ttdt t ƒ ƒ  dttƒ   ƒt	j
ƒt	jƒƒƒs|J ‚t ttdt ƒttƒ tdt ƒttƒ  d tƒttttt tddƒ td	  ƒt	j
ƒƒsÞJ ‚t tdttƒ ttƒ d tƒttttdt t ttdƒtd
tdƒ ƒ dtdƒ  ƒ t ƒt	j
ƒtttdt t ttdƒtd
tdƒ ƒ dtdƒ  ƒ t ƒt	j
ƒƒƒs’J ‚t ttdt ƒtdt ƒ d tƒttttt ƒt	j
ƒƒsÒJ ‚t tttd ƒtddƒ ƒttttdt t dtdtdƒ d ƒ  dt  ƒt	j
ƒtttdt t dtdtdƒ d ƒ  dt  ƒt	j
ƒƒƒsjJ ‚t tttd ƒttd ƒ ƒttttdt t dt d  ƒt	j
ƒtttdt t dt d  ƒt	j
ƒtttdt t dt d  ƒt	j
ƒtttdt t dt d  ƒt	j
ƒtttdt t dt d  ƒt	j
ƒtttdt t dt d  ƒt	j
ƒƒƒslJ ‚t tttdƒt d ƒd ƒttttdtdƒ dt t t tdtd	ƒ ƒ  d ƒt	j
ƒtttdtdƒ dt t tdtd	ƒ ƒ t  d ƒt	j
ƒƒƒsJ ‚t ttttt ƒttd t ƒ ƒƒttttdt d ƒt	j
ƒtttdt d ƒt	j
ƒtttdt tddƒ ƒt	j
ƒtttdt tddƒ ƒt	j
ƒtttdt tddƒ ƒt	j
ƒtttdt tddƒ ƒt	j
ƒƒƒsèJ ‚t ttdt ƒƒttttdt t d td  ƒt	j
ƒtttdt t d td	  ƒt	j
ƒƒƒsNJ ‚t ttdt ƒtdt ƒ tt	jƒtttttt d td  ƒt	j
ƒttttt d dt d  ƒt	j
ƒttttt d dt d  ƒt	j
ƒttttt d dt d  ƒt	j
ƒttttt d dt d  ƒt	j
ƒttttt d td  ƒt	j
ƒƒƒsNJ ‚t tdttƒ tdt ƒ d tƒttttdt t dttddtddƒ  ddtdƒ  tddƒ  ddtddƒ   dddtdƒ  tddƒ   ƒdddtdƒ  tdd	ƒ   ƒ  ƒt	j
ƒtttdt t dttddtddƒ  ddtdƒ  tddƒ  ddtddƒ   dddtdƒ  tddƒ   ƒdddtdƒ  tdd	ƒ   ƒ  dt  ƒt	j
ƒƒƒ	sÂJ ‚t ttttd t ƒt	j tt	jƒƒttttdt d ƒt	j
ƒtttdt d ƒt	j
ƒƒƒ
s$J ‚d S )Nr¦   r©   r¥   r¼   rß   rË   râ   rÛ   rÊ   r¯   rì   rÖ   r½   rÚ   rþ   é-   éK   éi   é   rí   é   rÓ   rî   rÜ   éC   é9   é´   ih  é–   ) rŠ   r]   r;   r†   rN   rO   r   r   r   r   r´   r7   r   r³   r_   r±   re   r‡   rt   r°   rH   rL   r   r   r#   r   r<   r5   r+   r:   rQ   r8   r   r   r   rŽ   Útest_solve_trig<  s   ÿÿ ÿ"&ÿÿ(&ÿÿ
*( ÿÿ
  ÿ
þþþÿÿ
2&ÿ
 (
ÿÿÿ(
ÿÿÿý"ÿ
88þ$$$$$$ú<<þ&ú$$þ$ $$$$ ú
"*
ÿÿÿ
ÿÿÿþ
þ(
ÿÿÿ
ÿÿÿþýýýÿ

&þrC  c                  C   s,	  t dƒ} tttƒttƒ tƒtjks(J ‚tttƒttƒ tƒttt	ttƒttƒ dƒtj
ƒksbJ ‚tttƒttƒ tƒttttdƒd ƒƒƒks”J ‚tdtdt ƒ d tƒttdƒ d tdƒd ƒksÎJ ‚tttd ƒd tƒttdtdƒ tdƒ ƒƒksJ ‚ttdt ƒdttƒ  d tƒttdtdƒ ƒtdtdƒ ƒƒksPJ ‚tttƒtdt ƒ ttƒ d tƒtttjtdƒd  ƒtdtdƒ ƒƒks¤J ‚tttƒttƒ d tƒttdtd	ƒ ƒd ƒksÜJ ‚tttƒttƒ d tƒtttdƒd ttdƒ d tdƒ ƒ ƒƒks*J ‚ttttƒtd  tƒttt| td|  t dt d
   ƒtjƒtt| td|  t td
   ƒtjƒƒƒsšJ ‚ttttƒttƒ tƒttt| d|  t t ttdtdƒ ƒƒ ƒtjƒtt| td|  t td   ttdtdƒ ƒƒ ƒtjƒtt| td|  t t  ttdtdƒ ƒƒ ƒtjƒtt| td|  t td   ttdtdƒ ƒƒ ƒtjƒƒƒs’J ‚ttttd ƒtddƒ ƒttt| dt d|  t t  dtdƒ  ƒtjƒtt| d|  t t dtdƒ  ƒtjƒƒƒsJ ‚ttttd ƒttd ƒ ƒttt| dt d|  t td   ƒtjƒtt| dt d|  t td   ƒtjƒtt| dt d|  t dt d   ƒtjƒtt| dt d|  t dt d   ƒtjƒtt| dt d|  t td   ƒtjƒtt| dt d|  t td   ƒtjƒƒƒs4J ‚ttttdƒt d ƒd ƒttt| dtdƒ t d|  t t tdtd
ƒ ƒ  d ƒtjƒtt| dtdƒ t d|  t tdtd
ƒ ƒ t  d ƒtjƒƒƒsÞJ ‚ttttt ƒttd t ƒ ƒttt| dt d|  t td   t ƒtjƒtt| dt d|  t td   t ƒtjƒƒƒsdJ ‚tttdt ƒƒttt| td|  t td   d ƒtjƒtt| td|  t td   d ƒtjƒƒƒsÒJ ‚tttƒttjƒtdƒksòJ ‚ttttƒttj
ƒttt| td|  t t  ƒtjƒtt| d|  t t ƒtjƒƒƒsNJ ‚ttttt ƒttjƒttt| d|  t t t ƒtjƒtt| d|  ƒtjƒƒƒs¦J ‚ttttt ƒtƒttt| d|  t t t ƒtjƒtt| d|  ƒtjƒƒƒsúJ ‚tt ttt!dt dt"  ƒ tƒƒttt| | t d dt d  t" ƒtjƒtt| | t d dt d  t" ƒtjƒƒƒszJ ‚tttƒtdt ƒ tdt ƒ ttjƒ #ttt	ttƒtdt ƒ tdt ƒ dƒtjƒ¡sÜJ ‚ttdt ƒtdt ƒ ƒ #ttt	tdt ƒtdt ƒ dƒtj
ƒ¡	s(J ‚d S )Nr   r   rË   r¦   r¥   rÛ   r©   r¼   rì   rÊ   rÖ   r½   rÚ   rí   rÓ   rê   rÜ   r=  rî   )$r   re   r&   r†   r(   r   r³   r7   rG   r   r(  r]   r)   rK   r$   r+   r#   r*   r±   r'   rŠ   r_   r   rN   rH   r   r   r´   r   r5   r°   r;   rQ   r8   r   r–   rò   r   r   rŽ   Útest_solve_hyperbolicš  sª     ÿ
ÿ
ÿ
ÿ"ÿ&"ÿÿ(ÿ($þ0848ü0(þ((,,((ú@@þ",,þ((þ  þ þ þ$((þ*(ÿÿ
&ÿrD  c                  C   sÔ  t tttt ƒtƒttttdƒttt	t
dt
 t t t ƒtjƒtt	t
dt
 t t ƒtjƒƒƒƒshJ ‚t tttt ƒtƒttttdƒttt	t
tt dt
 t td   ƒtjƒtt	t
tt dt
 t td   ƒtjƒƒƒƒsäJ ‚t ttdtdƒ d td  tt  t ƒtdtdƒ d td  tt  t ƒ tƒttttdƒttd dƒ@ ttt	t
tdƒt t dt
 t td   dtd   ƒtjƒtt	t
tdƒt t dt
 t dt d   dtd   ƒtjƒtt	t
tdƒt t dt
 t td   dtd   ƒtjƒƒƒƒsJ ‚t tttdt t ƒtddt  t ƒ tƒƒttt	t
tdt  dt
 d  d ƒtjƒtt	t
tdt  dt
 d  d ƒtjƒƒƒs¨J ‚t tttd d t ƒd tƒttttd d dƒttt	t
dt
 t t tddtdƒ  ƒ td d  ƒtjƒtt	t
dt
 t t tdtdƒ d ƒ td d  ƒtjƒƒƒƒsbJ ‚tdd	d
} tt| d d t ƒd ttjƒtttdƒd ƒ| d d  tdtdƒ ƒ| d d  ƒksÐJ ‚d S )Nr   r¦   r¥   r¼   rË   rÊ   r©   ÚarTr    )rŠ   re   r;   rt   r†   rG   r   rN   rH   r   r   r   r   r´   r(   r   r+   ru   r7   rQ   r8   r$   r   r°   rK   )rE  r   r   rŽ   Útest_solve_trig_hyp_symbolicì  sB      þ ((þ*&ÿÿ<@<ýþ
0((þ<<þÿ
"4ÿrF  c                  C   s\  t tttƒttƒ d tƒttttdt t	 t
 ttdƒd ttj tdƒ ƒ ƒ ƒtjƒtttt	dt t
 ttdƒttjtdƒ ƒ ƒ t
  ttdtdƒ ƒƒ ƒtjƒtttt	dt t
 t
  ttdƒ d ttj tdƒ ƒ ƒ ƒtjƒtttt	dt t
 t
 ttdƒttjtdƒ ƒ ƒ  ttdtdƒ ƒƒ ƒtjƒƒƒsRJ ‚ttƒ t¡} ttƒ t¡}t t| | d tƒtttttt	dt t
 t
  ttdƒ d ttj tdƒ ƒ ƒ ƒtjƒtttt	dt t
 t
  d ƒtjƒƒttttt	dt t
 t
 ttdƒttjtdƒ ƒ ƒ  ttdtdƒ ƒƒ ƒtjƒtttt	dt t
 t
  d ƒtjƒƒttttt	dt t
 ttdƒttjtdƒ ƒ ƒ t
  ttdtdƒ ƒƒ ƒtjƒtttt	dt t
 t
  d ƒtjƒƒttttdt t	 t
 ttdƒd ttj tdƒ ƒ ƒ ƒtjƒtttt	dt t
 t
  d ƒtjƒƒƒƒsXJ ‚d S rÏ   )rŠ   re   r&   r†   r'   rN   rH   r   r   r   r   r$   r+   r   r±   r´   r5   r1  r#   rJ   )Úf1Úf2r   r   rŽ   Útest_issue_9616  sR    @6ÿÿF6ÿÿûBÿ$þ8ÿÿ$þ8ÿÿ$þ@$þörI  c                   C   s<   dt ttƒt tƒvsJ ‚dtttƒd t tƒvs8J ‚d S ©Nr   r©   )r]   r;   r†   r_   r#   r   r   r   rŽ   Útest_solve_invalid_sol$  s    rK  c                  C   s¢   t dƒ} ttttƒtƒtt| | t ƒtj	ƒƒs2J ‚ttt
tƒtƒtt| | t td  ƒtj	ƒƒsdJ ‚ttt
tƒttƒ tƒtt| | t td  ƒtj	ƒƒsžJ ‚d S )Nr   r¦   r¼   )r   rŠ   r]   r;   r†   rO   r   r   r   r´   r7   rò   r   r   rŽ   Útest_solve_trig_simplified)  s    ÿÿÿrL  c                  C   sÔ  t tttƒ d tƒttdƒƒks&J ‚t ttƒt tƒttdƒ ƒksJJ ‚t tdt  tƒtttdƒƒ tdƒ ƒkszJ ‚t dt d ddt d   tƒ} | ttddƒtddtddƒ  tdƒ d ƒdtdƒ   ƒksàJ ‚ddt d d  dd	dt d
    }t |tƒ}ttdƒdttd	d	dtddƒ  d  ƒ ƒ  dtd	ƒ  d ƒ} || ksdJ ‚t | ¡ tƒ|ks|J ‚t dt d dtdd	t  ƒ  tƒttddƒtdttddƒƒ d ƒd	  ƒksÔJ ‚t dt d tdt d ƒ tƒttddƒtdttddƒƒ d ƒd  ƒks(J ‚t dt tdt ƒ tƒtttddƒƒd ƒks^J ‚t tt d ƒttttdƒƒƒƒksˆJ ‚tdƒ}t | t dt ttƒ  tƒtt|d ƒƒksÆJ ‚tddd}t |t ttd ƒ tƒtdt| d ƒ ƒksJ ‚t |t ttd ƒ  	t¡tƒtdtt
dƒt
|ƒ d ƒ ƒksNJ ‚t ttd ƒttd ƒ d tƒtju s|J ‚t td dt  d  tttƒdt  ¡tƒttdtj ƒd ƒksÆJ ‚t td dt  d  tttƒdt  d d ¡tƒttdtt
dƒ ƒ ƒd tdtt
dƒƒ ƒd ƒks6J ‚t td dt  d  tttƒdt  ¡tƒttdtdt
dƒ ƒ ƒd tdtt
dƒ d ƒ ƒd ƒks¦J ‚t tttƒ dt  d tƒttdttdƒ ƒ ƒƒksäJ ‚tttƒ d  ttttƒ ¡}t |tƒttdttdƒ ƒ ƒƒks.J ‚t dt|dt d  ƒ |dt d   tƒtt|d ƒttddƒƒ dt|ƒ   ƒksŽJ ‚tddd}t dt|dt d  ƒ |dt d   tƒttdtddƒ  dtddƒ t  ttddƒƒtddƒ  d|tddƒ   ƒt|ƒ tdtddƒ  dtddƒ t  ttddƒƒtddƒ  d|tddƒ   ƒt|ƒ tdttddƒƒ |d  ddt|ƒ   ƒƒks¬J ‚tdƒ}dt|dt d  ƒ |t|dt d  ƒ  |dt d   }t |tƒtt|d ƒtd|d  ƒ dt|ƒ   ƒks2J ‚t |t ttd ƒ  	td¡tƒtdtdtddƒ |tddƒ  d ƒ ƒks†J ‚t td dt  tƒtdtdƒ ttdƒ d ƒ ƒksÄJ ‚t dttƒ ttƒd  ƒttdttdƒ d ƒ tdƒ ƒƒksJ ‚t td dt  tƒt td  dt  tƒks@J ‚t dttƒ ttdƒ  ƒtdttdƒ d ƒ tdƒ dttdƒ d dƒ tdƒ ƒks¢J ‚t tdt ƒt ƒttttƒ d ƒksÐJ ‚d S )Nr©   r¦   r¥   rË   r3  i Øÿÿr¼   rÊ   rß   rí   ia	  r¯   iëÿÿÿiíÿÿÿrt   Tr    r
  Úpr¤   ru   )r]   r†   r#   rK   r"   r$   r   Úexpandr   r	   r+   r'   r   r³   rÄ   ZExp1r   r   r7   r0   r‡   )rô   ræ   Úresultrt   rM  ru   r   r   rŽ   Útest_solve_lambert6  s¶    &$ÿ",ÿ(
&ÿ
ÿÿ$*ÿ
 *ÿ
ÿ
*6ÿ
ÿ
.,ÿ
42ÿ
,:ÿ
ÿ
 ÿ
,*ÿ
,VV,ýÿ
@
(ÿ"&ÿ ÿ
 ÿÿ
þÿrP  c                  C   sN   t ddƒ} tt|  | t  tƒt| |  tt| ƒ |  ƒ t| ƒ ƒksJJ ‚d S )NrÊ   rË   )r   r]   r†   rK   r"   r$   )rt   r   r   rŽ   Útest_other_lambert  s    
 ÿrQ  c                  C   sj  t dƒ} ttdd„ ƒ ttdƒtjks*J ‚t| dƒd t d | dƒƒtt	t d ƒ t	t d ƒƒkslJ ‚t| dƒd d | dƒtj
ƒtddƒks˜J ‚t| dƒd d | dƒƒtt tƒksÂJ ‚ttd dƒttƒksÜJ ‚tttƒttƒ ttƒƒtttƒƒksJ ‚tdtj
dtj
ks"J ‚tdƒtjks6J ‚td	tj
dtj
ksPJ ‚td
tj
dtjksjJ ‚tttƒd tj
dtdƒksŽJ ‚tttƒd 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 ttƒtj
ƒtdƒks J ‚tdtƒ}t|d |tj
ƒtdƒks*J ‚ttd dkttj
ƒtdtƒksPJ ‚tttƒd dkttj
ƒtdtƒkszJ ‚ttttƒd tƒtttdt t t ƒtjƒƒs²J ‚tttttƒdƒtƒtttdt t t ƒtjƒƒsìJ ‚ttd | dƒ d tƒt	| dƒ d ƒ t	| dƒ d ƒhks2J ‚ttttƒƒdktt dt¡dt dt¡ksfJ ‚d S )Nry   c                   S   s   t tt ƒS r‰   )re   r†   r‡   r   r   r   rŽ   r¨   —  r   ztest_solveset.<locals>.<lambda>r©   r¦   r¯   r   râ   TFÚA)r   rU   r²   re   r†   r   r³   r‡   rK   r+   r°   r   r;   r7   r#   r   rR   rM   r   rŠ   rO   r   r   r   r´   r5   r$   r  )ry   rR  r   r   rŽ   Útest_solveset”  s8    ÿ,*,$$&(
 &*8*ÿFrS  c                  C   s€  t dƒ\} }}tttttƒƒd tƒtt| tfftd|  t	 t
dt t t	 tdƒ ƒ  ttdt t t	 tdƒ ƒƒ ƒttjtjƒƒƒs’J ‚ttttttt t ƒƒ t tƒtttt t t ƒtt| tfftd|  t	 t
tdt t	 t
t t ƒ  tttt ƒƒ ƒ  tttdt t	 t
t t ƒ  tttt ƒƒ ƒƒ ƒttjtjƒƒƒƒsfJ ‚tttttttt t ƒƒƒ t tƒtttt t t ƒtt|| tfftd| t	 t
td|  t	 t
tdt t	 t
t t ƒ  tttt ƒƒ ƒ  tttdt t	 t
t t ƒ  tttt ƒƒ ƒƒ ƒ  tttd|  t	 t
tdt t	 t
t t ƒ  tttt ƒƒ ƒ  tttdt t	 t
t t ƒ  tttt ƒƒ ƒƒ ƒƒ ƒttjtjtjƒƒƒƒsØJ ‚ttttttttt t ƒƒƒƒ t tƒtttt t t ƒtt||| tfftd| t	 t
td| t	 t
td|  t	 t
tdt t	 t
t t ƒ  tttt ƒƒ ƒ  tttdt t	 t
t t ƒ  tttt ƒƒ ƒƒ ƒ  tttd|  t	 t
tdt t	 t
t t ƒ  tttt ƒƒ ƒ  tttdt t	 t
t t ƒ  tttt ƒƒ ƒƒ ƒƒ ƒ  tttd| t	 t
td|  t	 t
tdt t	 t
t t ƒ  tttt ƒƒ ƒ  tttdt t	 t
t t ƒ  tttt ƒƒ ƒƒ ƒ  tttd|  t	 t
tdt t	 t
t t ƒ  tttt ƒƒ ƒ  tttdt t	 t
t t ƒ  tttt ƒƒ ƒƒ ƒƒ ƒƒ ƒttjtjtjtjƒƒƒƒs|J ‚d S )Nz
k1, k2, k3rË   r¦   )r   rŠ   re   r#   r†   rO   r   r   r   r   r   r$   r   rP   r   r´   rw   rt   ru   rv   rH   )Úk1Zk2Zk3r   r   rŽ   Útest_multi_exp¹  sb    Xÿÿ" vÿþÿ
&"N4ÿ.ÿ4ÿÿÿüÿ
*$\4ÿ.ÿ4ÿÿzÿ~þþÿúÿrU  c                  C   s´  ddl m}  ddlm} | td d gtgtjgƒtddƒksBJ ‚| tt td gttg||gƒtdƒksnJ ‚| tt td gttg||gƒtd	ƒksšJ ‚| tt tt d gttg||gƒttdƒd tdƒ d fƒksàJ ‚| td td gttg||gƒtd
ƒksJ ‚t| tt gttg||gƒt	t
ttfftt fƒt|ƒƒt
ttfft tfƒt|ƒƒƒƒsnJ ‚| tt tt d gttg||gƒtjksžJ ‚| tt tt td gttg||gƒtjksÐJ ‚| tt tt td gttg||gƒtjksJ ‚| tt t d tt t d tt t d gtttg|||gƒtdtj tj fƒks`J ‚ddlm} | td td  d tt gttg||gƒtdd	ƒks¨J ‚| td d tgttg||gƒtddƒksØJ ‚t| td td  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|ƒ d tt|ƒ g|tgtdtƒtddƒgƒtdtdfƒksÐJ ‚| tt|ƒ d tt|ƒ gt|gtddƒtdtƒgƒtdƒksJ ‚t| tt|ƒ t tt|ƒ gt|gtddƒtdtƒgƒt	t
ttfftdfƒt
tttfƒtddƒƒƒt
t|ffd|fƒt
t||fƒtdtƒƒƒƒƒs°J ‚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.solvesetrV  Z
sympy.setsr°   r†   r   rK   r‡   rŠ   rN   rH   r   rP   r³   rˆ   r±   Ú	sympy.abcrZ  r   rƒ   r7   r;   rM   r   )rV  r°   rZ  r   r   rŽ   Útest__solveset_multiÕ  s\    *,,F.þ0228ÿÿ
<0$  ü"ÿÿ
"ÿÿ
$ÿ**þÿr]  c                	   C   s¤  t tttƒd ttƒd  dƒttjdtju s4J ‚t ttd tttƒ  dƒttjd ttttd tttƒ  d dƒtjƒ¡sˆJ ‚t	t tt
 tt
t ƒtt
 t ƒ  d dƒtƒtttdt t td  ƒtjƒƒsàJ ‚t tttƒ dkttjd tttttƒ dktjƒ¡sJ ‚t ttttƒƒtƒttjd tttt tttƒƒ dƒtjƒ¡sfJ ‚t tt t ttjƒ ttttt t dƒtjƒ¡s J ‚d S )Nr¦   r©   râ   r   )re   r   r;   r†   r7   r   r°   r–   rG   rŠ   r   r#   rO   r   r   r   r´   r   r‡   rˆ   r   r   r   rŽ   Útest_conditionset  s$    (ÿ&&ÿ0 ÿÿ
 ÿ
ÿr^  c                   C   s4   t tttƒtƒtƒtttttƒtƒtjƒks0J ‚dS )z? Checking equality of different representations of ConditionSetN)re   r   r<   r†   r‡   rG   r   r(  r   r   r   rŽ   Útest_conditionset_equality  s    r_  c                   C   sz   t td t d ttdtƒƒtdƒks*J ‚t td d ttdtƒƒtdƒksPJ ‚t td d ttddƒƒtdƒksvJ ‚d S )	Nr¦   rÊ   r   r¥   r©   r¼   rÜ   rÖ   ©re   r†   rM   r   rK   r   r   r   rŽ   Útest_solveset_domain  s    *&ra  c                  C   sL   t ttƒttƒ ttjƒ} tttttƒttƒ dƒtjƒ}|  |¡sHJ ‚d S r'  )	re   r#   r†   r;   r   r°   rG   r   r–   )Úsolutionr  r   r   rŽ   Útest_improve_coverage$  s     rc  c                  C   st   t dtd d  t dtd d  d ƒ} t dt t dt ƒ}t| ttjƒtju sXJ ‚t|ttjƒtju spJ ‚d S )Nr©   r¦   r¼   )r   r†   re   r   r°   r³   )Úexpr1Úexpr2r   r   rŽ   Útest_issue_9522*  s    *rf  c                   C   sê   t td d ttjƒg ksJ ‚t td d ttjƒdtjtdƒt d  tjtdƒt d  gksfJ ‚t ttƒttjƒdgks‚J ‚t t	tƒttjƒt
d t
tddƒ gks®J ‚t ttƒd ttjƒt
tddƒ gksØJ ‚ttdd„ ƒ d S )Nr¦   rÖ   r¥   r©   r¯   c                   S   s   t tttƒƒttjƒS r‰   )ri   r;   r#   r†   r   r(  r   r   r   rŽ   r¨   9  r   ztest_solvify.<locals>.<lambda>)ri   r†   r   r°   r(  r±   r+   r   r$   r7   r   r   r;   rU   ÚNotImplementedErrorr   r   r   rŽ   Útest_solvify2  s    *ÿ
,*rh  c                  C   s   t dtdk ftd tdkfttƒdfƒ} t dtdk ftd dt  d td	kfƒ}t dttdƒftd ttƒ dfƒ}t dtttƒftt ttƒ 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©   TéöÿÿÿrË   rÊ   é÷ÿÿÿrë   )
r.   r†   r$   r   r   r   r;   ri   r   r°   )Úp1Úp2Zp3Zp4r   r   rŽ   Útest_solvify_piecewise<  s    (*$$rm  c                  C   sX   t ddd} ttt| ƒƒ| tjƒdtgks.J ‚t dƒ} ttt| ƒƒ| tjƒd u sTJ ‚d S )Nr†   Tr¤   r   )r   ri   r;   r   r   r°   r   r§   r   r   rŽ   Útest_abs_invert_solvifyI  s    "rn  c                     sÂ  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sLJ ‚dt t dt  d tt t tt dt  d g} tdt dt  t dƒtdt dt  dt  dƒdt t dt  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sVJ ‚|tdgdgdggƒkstJ ‚tt t tt  tt  t	 t
t t	t  tt  tt  t tt tt  tt  t g‰ t ˆ tttƒ\}}|ttt ttgt	t
 ttgtttggƒksJ ‚|tt	gtgtggƒks4J ‚tt‡ fdd„ƒ tt‡ fdd„ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ t tgdt gƒtdggƒtt ggƒfksÐJ ‚t tttdt d  d   tƒtdt t d ggƒtt dt d  ggƒfks*J ‚t ttt tt  d gdt dt  t 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 dƒtƒtdggƒtdggƒfks¾J ‚d S )Nr   r©   r¯   r¦   r¥   rî   r¼   rÛ   )r¦   r©   rÛ   )r©   r¯   r¯   )r©   r©   r¥   )r¥   r¦   r¯   )r¦   rÛ   r¼   )rÛ   r©   rÛ   c                      s   t ˆ ƒS r‰   )r`   r   ©Zeqns3r   rŽ   r¨   i  r   z*test_linear_eq_to_matrix.<locals>.<lambda>c                      s   t ˆ tttgƒS r‰   ©r`   r†   r‡   r   ro  r   rŽ   r¨   k  r   c                   S   s   t tdt t dt ƒtgƒS r·   ©r`   r   r†   r   r   r   rŽ   r¨   m  r   c                   S   s   t td gtgƒS rØ   ©r`   r†   r   r   r   rŽ   r¨   n  r   c                   S   s   t tt gttgƒS r‰   rp  r   r   r   rŽ   r¨   o  r   c                   S   s   t tttƒtƒS r‰   rq  r   r   r   rŽ   r¨   r  r   c                   S   s   t tttd ƒtƒS r·   rq  r   r   r   rŽ   r¨   s  r   rß   rË   rÊ   )r`   r†   ÚMatrixr‡   rˆ   r   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   rU   r²   rs   )Zeqns1Zeqns2rR  ÚBr   ro  rŽ   Útest_linear_eq_to_matrixQ  sH    &&6J$$^22 .ÿ*ÿÿ ÿÿ
ÿru  c                   C   sX   t ttdt dt   dt  dƒttƒtdt dt d ggƒtdggƒfksTJ ‚d S )Nr¦   r¥   r¼   rË   )r`   r   rt   r†   r‡   rs  r   r   r   rŽ   Útest_issue_16577…  s    ("ÿrv  c                   C   s"   t ttƒdtƒttjfksJ ‚d S r'  )rc   r#   r†   r   r³   r   r   r   rŽ   Útest_issue_10085Š  s    rw  c               	      s  t dƒ\‰‰} }tg d¢g d¢g d¢gƒ}|d d …d d…f |d d …df f }\‰ ‰ˆdˆ  |  | d ˆdˆ  d|   | d dˆ d	ˆ  d
|  d	 g‰tdˆ d|  d ˆd| d |fƒ}tˆˆˆ| |fƒ|ksæJ ‚tˆgˆˆ| |f¢R Ž |ksJ ‚t|ˆˆ| |fƒ|ks$J ‚t|gˆˆ| |f¢R Ž |ksFJ ‚t dtd\‰‰} }t|ˆˆ| |ƒtdˆ d|  d ˆd| d |fƒks˜J ‚tt‡fdd„ƒ tt‡fdd„ƒ tt‡‡fdd„ƒ tt‡ ‡‡fdd„ƒ tt‡ ‡‡‡fdd„ƒ tt‡fdd„ƒ tt‡fdd„ƒ ttdd„ ƒ ttdd„ ƒ ttt	 d td t
 d gt	t
gƒt d td  d fhks„J ‚tttgttggƒ‰ ttgtggƒ‰ˆ ˆf}tt t tt  tt tt   tt tt  tt tt   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 sTJ ‚t dƒ\‰ ‰}}tdt | dt | d| gdt | dt | d| gd ddt ||  gg d!¢gƒ}t|ˆ ˆƒtd t||  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sjJ ‚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dƒjƒd	ksdJ ‚td+ƒ}t|tƒd g|tƒƒtd,ƒks’J ‚d d-lm}m}m} || }d.| t t
 d/| | dt |  g‰tˆtt
ƒ|| td0dƒ |td	dƒ fhks
J ‚ttttt
 ƒgtt
gƒtd fhks4J ‚ttttt
  dt
 ƒgtgƒd1hks`J ‚ttdt
 ttt
  ƒgtgƒd1hksŒJ ‚ttd2d„ ƒ 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 )3Nzx1, x2, x3, x4)r©   r¦   r©   r©   rß   )r©   r¦   r¦   r¯   rî   )r¦   r¼   r   rÊ   r¼   r¯   r¦   rß   rî   r¼   rÊ   rÛ   r¥   rË   zx:4)Úclsc                      s   t ˆ ƒS r‰   ©ra   r   )ÚEqnsr   rŽ   r¨   £  r   ztest_linsolve.<locals>.<lambda>c                      s   t ˆ ƒS r‰   ry  r   ©Úx1r   rŽ   r¨   ¤  r   c                      s
   t ˆ ˆƒS r‰   ry  r   )r|  Úx2r   rŽ   r¨   ¥  r   c                      s   t ˆ fˆˆƒS r‰   ry  r   )rR  r|  r}  r   rŽ   r¨   ¦  r   c                      s   t ˆ ˆˆˆƒS r‰   ry  r   )rR  rt  r|  r}  r   rŽ   r¨   §  r   c                      s   t ˆ gˆ ˆ ƒS r‰   ry  r   r{  r   rŽ   r¨   ¨  r   c                      s   t ˆ gdd„ ˆ ˆ fD ƒƒS )Nc                 s   s   | ]
}|V  qd S r‰   r   rá   r   r   rŽ   r   ©  r   z2test_linsolve.<locals>.<lambda>.<locals>.<genexpr>ry  r   r{  r   rŽ   r¨   ©  r   c                   S   s&   t tt d td t d gttgƒS )Nr©   r¦   r¥   )ra   r†   r‡   r   r   r   rŽ   r¨   ¬  r   c                   S   s   t ttƒt tt gttgƒS r‰   )ra   r7   r†   r‡   r   r   r   rŽ   r¨   ­  r   r©   ©r©   r¦   r¥   )r¦   r¼   rÊ   )r¥   rÊ   rí   ©r   r   r©   z	A B J1 J2r   )r¦   r   r   )r   r©   r   r   r   r   )r   r   r   r©   r   r   ztau0 tau1 tau2 _tau0ztau00 tau01 tau02 tau0ztau00 tau01 tau02 tau1z
x0, x2, x4r†   ©r¯   r¯   Ú_x0ry   )rË   )ÚmeterÚnewtonÚkilorÓ   é   iäÿÿÿrW  c                   S   s"   t ttd td t ƒgttgƒS rØ   )ra   r   r†   r‡   r   r   r   rŽ   r¨   ð  s    )r   rs  rK   ra   r   rU   r²   rs   r†   rˆ   r‡   rt   ru   rv   rw   rx   rz   r   r³   r   rS   r™   Úfree_symbolsr   Úsympy.physics.unitsr‚  rƒ  r„  r   r   )Úx3Úx4ÚMZsystem1rÁ   Zsystem2ZJ1ZJ2Z	AugmatrixÚx0r  ry   r‚  rƒ  r„  ZkNr   )rR  rt  rz  r|  r}  rŽ   Útest_linsolveŽ  s¤    ,0ÿ("""ÿFF ü&*ÿ
ÿ
ÿ
ÿ
ÿÿ
&(
ÿ*,, rŒ  c                  C   s0   dd„ } d}| |ƒ\}}}t ||ƒ|ks,J ‚d S )Nc                 S   s~   t d | ¡ƒ}t d | ¡ƒ}|| }g }tj f|  tjf|   }t||ƒD ]"\}}| || || d g¡ qL||t|ƒfS )Nzx:{}zy:{}r©   )r   Úformatr   r±   r•   ÚextendrK   )r   rÇ   rÈ   ÚsymsÚeqsrÁ   ÚxiÚyir   r   rŽ   Ú_mk_eqs_sol  s    z/test_linsolve_large_sparse.<locals>._mk_eqs_soliô  ry  )r“  r   r  r  rÁ   r   r   rŽ   Útest_linsolve_large_sparseý  s    
r”  c                  C   sr   t g d¢g d¢g d¢gƒ} t g d¢ƒ}t| |gtttfƒtdƒksFJ ‚t g d¢g d¢gƒ} t| ƒtdƒksnJ ‚d S )	N)r©   r©   r¦   )r   r©   r¦   r  )r¦   r©   r¯   )r©   r¥   r¯   )r©   r©   rß   )r©   r¯   r¥   )rË   r¦   )rC   ra   r†   r‡   rˆ   rK   )rR  rt  r   r   rŽ   Útest_linsolve_immutable  s
     r•  c                  C   s$  t dƒ} tdt ƒdtdt ƒ  dttƒ  d }ttƒd dttƒ  d }ttƒd ttƒ }ttd ƒ}ttd ƒd }dttƒ }dt }tt| d|  t ƒtj	ƒ}tt| d|  t t ƒtj	ƒ}	tt| d|  t td  ƒtj	ƒ}
tt| d|  t d ƒtj	ƒ}tt| d|  t d t ƒtj	ƒ}t
|ttjƒtdtdƒtdƒƒksVJ ‚tt
|ttjƒ|
ƒspJ ‚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†   r;   r$   rH   r   r   r   r´   rf   r°   rK   rŠ   rN   r³   rM   )r   rG  rH  Úf3Úf4Úf5Zf6Zf7r   rž   Zs3Zs4Zs5r   r   rŽ   Útest_solve_decomposition  s*    ,""(" r™  c                  C   sv  t g g ƒtjksJ ‚t g ttgƒtjks,J ‚ttt d g} t tgttgƒtdtfƒks\J ‚t | tgƒtjksrJ ‚tttdt t	 t	d  ƒtj
ƒf}tt ttƒd gtgƒtt|ƒƒƒs¾J ‚tttdt t	 t	 ƒtj
ƒtdƒftttdt t	 ƒtj
ƒtdƒff}tt ttƒtd gttgƒt|Ž ƒs0J ‚t td d gtgƒtddƒksVJ ‚tttfƒ}t tt dgttƒ|ks€J ‚t dtt gttƒ|ksžJ ‚t tt tt 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sFJ ‚tdtƒ}t |dg|tƒtdtfƒksrJ ‚t td d gttƒgƒttjfƒksžJ ‚t td d gttƒƒttjfƒksÈJ ‚t td d gdƒttd fƒksðJ ‚t td d gtt ƒttjfƒksJ ‚t tdtt ƒtdt t d ƒtdt t d ƒgttƒttj d	tj fƒksrJ ‚d S )
NrË   r   r¦   r©   rX  rW  ry   rR  r¥   )rh   r   r³   r†   r‡   rK   rH   r   r   r   r´   rŠ   r;   r“   r   rR   r   r±   )ÚsystemÚsolnry   rR  r   r   rŽ   Útest_nonlinsolve_basic5  s:     $($ ÿ*&""*2
",*(*<ÿrœ  c                  C   s6   t ttft tfƒ} tttƒt gttƒ| ks2J ‚d S r‰   )rK   r‡   rh   r   r†   )r›  r   r   rŽ   Útest_nonlinsolve_absU  s    r  c                   C   s    t tdd„ ƒ t tdd„ ƒ d S )Nc                   S   s   t td d gg ƒS r  ©rh   r†   r   r   r   rŽ   r¨   [  r   z2test_raise_exception_nonlinsolve.<locals>.<lambda>c                   S   s   t td d gƒS r  rž  r   r   r   rŽ   r¨   \  r   )rU   Ú
IndexErrorr²   r   r   r   rŽ   Ú test_raise_exception_nonlinsolveZ  s    r   c                  C   s|   t ttƒd ttƒd gtƒtjks(J ‚tttdt t	 t	d  ƒtj
ƒf} t| ƒ}tt ttƒd ttƒgtƒ|ƒsxJ ‚d S rÏ   )rh   r;   r†   r7   r   r³   rH   r   r   r   r´   rK   rŠ   )Úsoln1r›  r   r   rŽ   Útest_trig_system_  s    ($r¢  c               
   C   sº  t t td  tt ƒttƒ d g} ttttt td  ƒtjƒttttt ƒtjƒf}t	|ƒ}ttttt ƒtjƒttttt td  ƒtjƒf}t	|ƒ}|| }t
t| t tgƒ|ƒs¼J ‚tt ƒttƒ tdƒd d  tt ƒttƒ tdƒd d  g} ttttdt t td  ƒtjƒtttdt t ttddƒ  ƒtjƒƒ}ttttdt t td  ƒtjƒtttdt t ttddƒ  ƒtjƒƒ}t
t| t tgƒt	||fƒƒs¶J ‚d S )Nr¦   r©   r¥   rÊ   rË   )r†   r‡   r   r;   rH   r   r   r   r´   rK   rŠ   rh   r+   rN   r   )ÚsysZsoln_1Zsoln_2r›  Zsoln_xZsoln_yr   r   rŽ   Útest_trig_system_failh  s&    $ÿÿ@"&ÿ"&ÿr¤  c                  C   sÄ  t ddd\} }}}}}t| | | | |  g| |gƒtd|fƒksFJ ‚|d ||  || g}t|||gƒtd| | fƒks‚J ‚|| | | }|| ||  ||  ||  }|| | || |  || |  || |  }	|| | | d }
|||	|
g}d| | d| t|ƒtdƒ f}d| | d| t|ƒtdƒ f}t||ƒ}t|||||gƒ|kslJ ‚t| d	 d
| d   ||   | td  |t d g| |tgƒddt tfhksÀJ ‚d S )Nzx, y, a, b, c, dT)Zextended_realr   r¦   ©r   r   r©   r¯   r¼   r¥   )r   rh   rK   rˆ   )r†   r‡   rt   ru   rv   rw   rš  Úeq1Úeq2Úeq3Úeq4rš   r›   r›  r   r   rŽ   Ú%test_nonlinsolve_positive_dimensional€  s     .$ 0""
<ÿrª  c                  C   sŠ  t ddd\} }}t| d | d | d | g| |gƒtjksBJ ‚| d |f}t| | d d | | d g| |gƒt|ƒks‚J ‚| d |d  g}t| |f||fƒ}tt|ƒ |ft|ƒ|fƒ}|| }t|| |gƒ|ksâJ ‚| d |d  g}t|| f||fƒ}t|t|ƒ f|t|ƒfƒ}|| }t||| gƒ|ksDJ ‚| d | d | | d g}t|| |fƒt||| fƒks‚J ‚t| d  |d  | d|  d| tjg| ||gƒtjksÂJ ‚t| | | tjtjtjg| ||gƒtjksôJ ‚| d  |d  | | |  |d  d|  |d  ||  | | d|d   d| d  | | |  g}t|| ||gƒtdd|f| ddfƒks†J ‚d S )	NrÃ   Tr    r¦   r¼   r¥   rÛ   r   )r   rh   r   r³   rK   r   r¬   )r†   r‡   rˆ   r¢   rš  Ú	soln_realÚsoln_complexr›  r   r   rŽ   Útest_nonlinsolve_polysys—  s(    02"@2fr­  c                  C   s4  t ddd\} }}}| | | |d  d g}|| |d  d | }| |f}t|| |gƒt|ƒksjJ ‚|d | d  |d |d  t| ƒ  g}|| df}t| d ƒ t| ƒ | |f}t| d ƒt| ƒ | |f}	|  t| d ƒ | |f}
| t| d ƒ | |f}|| |g}t||
|||	ƒ}t||ƒ|ks0J ‚d S )Nz
x, y, z, nTr    r¦   r   )r   rh   rK   r#   r   )r†   r‡   rˆ   r   rš  Ús_xr›  Zsoln_real_1Zsoln_real_2Zsoln_real_3Zsoln_complex_1Zsoln_complex_2r  r   r   rŽ   Ú#test_nonlinsolve_using_substitution´  s     
*

ÿr¯  c                  C   s²  t dƒ} ttttƒttƒ dt d gttgƒtt| d|  t	 t
 tttddƒƒƒ ƒtjƒtddƒfhƒspJ ‚ttƒttƒ dttƒ d g}tt|ttgƒtt| t	d|  t
 t
  tttdƒƒƒ ƒtjƒtdƒ ftt| t	d|  t
 ttd|  t	 t
 tdƒ ƒƒ  tttd|  t	 t
 tdƒ ƒƒƒ ƒtjƒtt| d|  t	 t
 tdƒ ƒtjƒfhƒsjJ ‚ttƒttƒ td d g}tt|ttgƒtt| t	d|  t
 t
  ttdƒƒ ƒtjƒdftt| d|  t	 t
 ttdƒƒ ƒtjƒdfhƒsüJ ‚ttƒd td d g}tt|ttgƒtdƒtdƒ ftdƒtdƒftt| d|  t	 t
 tdƒ ƒtjƒttdƒ ƒftt| d|  t	 t
 tdƒ ƒtjƒttdƒƒfhƒs®J ‚d S )Nr   r©   r¥   r¦   r¼   rÛ   )r   rŠ   rh   r#   r†   r;   r‡   rH   r   r   r   r$   r   r   r´   r   r   r+   rK   )r   rš  r   r   rŽ   Útest_nonlinsolve_complexÇ  s@    &8ÿ
 ÿÿÿ4"ÿÿ$þý0,þ20ýr°  c                   C   s<   t ttƒt t td gtttgƒdt dtfhks8J ‚d S r·   )rh   r+   r‡   r†   rˆ   r   r   r   rŽ   Útest_nonlinsolve_radicalà  s    r±  c                      sÊ  ddg‰t tt d d td td  d gttgƒ‰ t‡ ‡fdd„tdƒD ƒƒsVJ ‚t tt d d tt d d gttgƒtjksŠJ ‚t td td d  d	 dt d
 dt gttgƒtjksÈJ ‚t td t d tt d ttƒgtttgƒ‰ g d¢‰t‡ ‡fdd„tdƒD ƒƒs J ‚t ttd  td t d
 gttgƒ‰ dddt	  ddt	  fddt	  ddt	  fddt	  ddt	  fddt	  ddt	  fg‰t‡ ‡fdd„tdƒD ƒƒsÆJ ‚d S )N)g      ú¿g      ö¿)g      ú?g      ö?r¦   rí   g      è?c                 3   s>   | ]6}t d ƒD ](}tˆ j| | ˆ| |  ƒdk V  qqdS ©r¦   ç•Ö&è.>N©Úrangerï   Úargsr‹   ©r/  rÁ   r   rŽ   r   ç  s   ÿz+test_nonlinsolve_inexact.<locals>.<genexpr>ç      à?g      °?r«   )©g[™°Ðõl×¿g[™°Ðõl×?r©   r¹  )g[&,t=Ûõ?g[&,t=Ûõ¿r©   c                 3   s>   | ]6}t d ƒD ](}tˆ j| | ˆ| |  ƒdk V  qqdS )r¥   r³  Nr´  r‹   r·  r   rŽ   r   ó  s   ÿr¥   rË   )gÕù±ïF­ò¿gZŠ*4Íõ?gÍrüîŸ2Ç¿gèdxAàWñ?gyU;~Fò¿g ;W2%Ù?gqëîyè?g?„¾ÐäŽÖ?g‡¡Ø£ñ}Ý?gòƒZ Aá?c                 3   s>   | ]6}t d ƒD ](}tˆ j| | ˆ| |  ƒdk V  qqdS r²  r´  r‹   r·  r   rŽ   r      s   ÿ)
rh   r†   r‡   r”   rµ  r   r³   r$   rˆ   r   r   r   r·  rŽ   Útest_nonlinsolve_inexactä  s@    .ÿ42ÿ.ÿ&

ÿ

ÿ

ÿ

ÿù	ÿrº  c                  C   s:  t ddd\} }tdt|d ƒ |fƒ}t|  tt| ƒƒ |f| tt| ƒƒ |fƒ}t| t| d ƒ | fƒ}tdt|d ƒ |ƒ}t| d |d t| ƒ  g| |gƒ|ks®J ‚t| d |d t| ƒ  g|| gƒ|ksÚJ ‚t| d |d t| ƒ  g|| gƒ|ksJ ‚t| d |d t| ƒ  g| |gƒ|ks6J ‚d S )Núx, yTr    r¦   )r   rK   r"   r+   r#   rh   )r†   r‡   r¡  Úsoln2Zsoln3Zsoln4r   r   rŽ   Útest_solve_nonlinear_trans  s    ,,,.r½  c                  C   s†  t dƒ} d| d  | d  d t }t|| ƒ}t|jd ddt   ƒdksPJ ‚t|jd	 d
dt   ƒdksrJ ‚t|jd ddt   ƒdks”J ‚tj| d  | d  tj t }tdtdƒ dtd	ƒd   t	t
tdƒd ƒd ƒ d tdƒd  d ddtdƒ dtd	ƒd   tt
tdƒd ƒd ƒ d  d  td	ƒd   tt
ddtdƒ dtd	ƒd   tt
tdƒd ƒd ƒ d  dtdƒ dtd	ƒd   t	t
tdƒd ƒd ƒ d tdƒd   ƒd ƒ d tdƒd  dtt
ddtdƒ dtd	ƒd   tt
tdƒd ƒd ƒ d  dtdƒ dtd	ƒd   t	t
tdƒd ƒd ƒ d tdƒd   ƒd ƒ ddtdƒ dtd	ƒd   t	t
tdƒd ƒd ƒ d tdƒd  d ddtdƒ dtd	ƒd   tt
tdƒd ƒd ƒ d  d  td	ƒd     tdtdƒ dtd	ƒd   t	t
tdƒd ƒd ƒ d tdƒd  d ddtdƒ dtd	ƒd   tt
tdƒd ƒd ƒ d  d  td	ƒd   t	t
ddtdƒ dtd	ƒd   tt
tdƒd ƒd ƒ d  dtdƒ dtd	ƒd   t	t
tdƒd ƒd ƒ d tdƒd   ƒd ƒ d dt	t
ddtdƒ dtd	ƒd   tt
tdƒd ƒd ƒ d  dtdƒ dtd	ƒd   t	t
tdƒd ƒd ƒ d tdƒd   ƒd ƒ ddtdƒ dtd	ƒd   t	t
tdƒd ƒd ƒ d tdƒd  d ddtdƒ dtd	ƒd   tt
tdƒd ƒd ƒ d  d  td	ƒd       tdƒ d tdƒdtdƒ dtd	ƒd   t	t
tdƒd ƒd ƒ d tdƒd  d ddtdƒ dtd	ƒd   tt
tdƒd ƒd ƒ d  d  td	ƒd   t	t
ddtdƒ dtd	ƒd   tt
tdƒd ƒd ƒ d  dtdƒ dtd	ƒd   t	t
tdƒd ƒd ƒ d tdƒd   ƒd ƒ d  dtd	td	ƒ d tdƒt d  tdƒd dt  tdddt  d  ƒd  td	ƒd    ƒ d  dtdƒ dtd	ƒd   t	t
tdƒd ƒd ƒ d tdƒd  d ddtdƒ dtd	ƒd   tt
tdƒd ƒd ƒ d  d  td	ƒd  tt
ddtdƒ dtd	ƒd   tt
tdƒd ƒd ƒ d  dtdƒ dtd	ƒd   t	t
tdƒd ƒd ƒ d tdƒd   ƒd ƒ d  tdtd	td	ƒ d tdƒt d  tdƒd dt  tdddt  d  ƒd  td	ƒd    ƒ d dtdƒ dtd	ƒd   t	t
tdƒd ƒd ƒ d tdƒd  d ddtdƒ dtd	ƒd   tt
tdƒd ƒd ƒ d  d  td	ƒd  t	t
ddtdƒ dtd	ƒd   tt
tdƒd ƒd ƒ d  dtdƒ dtd	ƒd   t	t
tdƒd ƒd ƒ d tdƒd   ƒd ƒ d  tdƒdtdƒ dtd	ƒd   t	t
tdƒd ƒd ƒ d tdƒd  d ddtdƒ dtd	ƒd   tt
tdƒd ƒd ƒ d  d  td	ƒd   tt
ddtdƒ dtd	ƒd   tt
tdƒd ƒd ƒ d  dtdƒ dtd	ƒd   t	t
tdƒd ƒd ƒ d tdƒd   ƒd ƒ d    tdƒ d dtd	td	ƒ d tdƒt d  tdƒd dt  tdddt  d  ƒd  td	ƒd    ƒ d  tdƒdtdƒ dtd	ƒd   t	t
tdƒd ƒd ƒ d tdƒd  d ddtdƒ dtd	ƒd   tt
tdƒd ƒd ƒ d  d  td	ƒd   t	t
ddtdƒ dtd	ƒd   tt
tdƒd ƒd ƒ d  dtdƒ dtd	ƒd   t	t
tdƒd ƒd ƒ d tdƒd   ƒd ƒ d  dtdƒ dtd	ƒd   t	t
tdƒd ƒd ƒ d tdƒd  d ddtdƒ dtd	ƒd   tt
tdƒd ƒd ƒ d  d  td	ƒd  tt
ddtdƒ dtd	ƒd   tt
tdƒd ƒd ƒ d  dtdƒ dtd	ƒd   t	t
tdƒd ƒd ƒ d tdƒd   ƒd ƒ d  ttdƒ dtdƒ dtd	ƒd   t	t
tdƒd ƒd ƒ d tdƒd  d ddtdƒ dtd	ƒd   tt
tdƒd ƒd ƒ d  d  td	ƒd   tt
ddtdƒ dtd	ƒd   tt
tdƒd ƒd ƒ d  dtdƒ dtd	ƒd   t	t
tdƒd ƒd ƒ d tdƒd   ƒd ƒ d dtdƒ dtd	ƒd   t	t
tdƒd ƒd ƒ d tdƒd  d ddtdƒ dtd	ƒd   tt
tdƒd ƒd ƒ d  d  td	ƒd  t	t
ddtdƒ dtd	ƒd   tt
tdƒd ƒd ƒ d  dtdƒ dtd	ƒd   t	t
tdƒd ƒd ƒ d tdƒd   ƒd ƒ d  dtd	td	ƒ d tdƒt d  tdƒd dt  tdddt  d  ƒd  td	ƒd    ƒ d    ƒ}t|| ƒ|ks‚J ‚d S )Nr†   r¸  r¥   r¦   r   g©í	nëBÀg/H|n$ýÓ?r³  r©   gðuªÙÓ¿gÞÊ+Nð?g¸®bšâ?gÀqãwæ?iñ|  r¼   é¬   rè   é+   rÝ   rÊ   i ÿÿÿé6   rÔ   )r   r   re   rï   r¶  r   r±   rK   r+   r;   r5   r7   r   r   )r†   Zn1rb  r/  r   r   rŽ   Útest_issue_14642  s¼   
""" 8
ÿÿ,ÿÿÿÿ
þ ÿÿ
ÿÿÿ
ÿÿþþü
ü6ÿ
ÿÿÿ
ÿÿþÿÿÿÿ
ÿÿ>þÿþþü	8
ÿÿ,ÿÿÿÿ
þ"ÿÿ*ÿÿ
ÿÿþþü"ÿÿ$ÿÿÿ
ÿÿþ 
ÿÿÿ
ÿÿÿÿÿÿ
þþü÷ÿÿÿÿ
ÿÿ>þÿþ8ÿBÿþýû8ÿÿ
ÿ
ÿûÿÿ
ÿÿÿÿÿÿ
þÿÿÿÿÿ
ÿÿþþüú
ÿ4ÿÿþ6
ÿÿ4ÿÿÿ
þ$
ÿÿÿ6
ÿÿþþüþ*ÿÿÿ
ÿÿ 
ÿÿÿÿÿ
þÿÿÿ
ÿÿÿ
ÿÿþþüúöÿ4ÿÿþ<
ÿÿ4ÿÿÿ
þ$
ÿÿÿ6
ÿÿþþüþ6
ÿÿ4ÿÿÿ
þ$
ÿÿÿ6
ÿÿþþüú
(
ÿÿÿ
ÿÿÿÿÿÿ
þ
ÿÿÿÿÿ
ÿÿþþüÿÿ
ÿÿÿÿÿÿ
þ
ÿÿÿÿÿ
ÿÿþþüü":ÿÿøöÛ:rÁ  c                  C   sB  t dƒ } \	}}}}}}}}}	||	 ||	  | |||	  | ||	d  ||	  ||	  | |	| |	 ||	  |  |	| ||	  |  f}
t|||	  | |	 ||	  | |	d  |||	d  ||||t|	hdhƒf	|||	  ||	 ||	  | |	d  d |||	d  ||||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   rK   rJ   rh   )ÚVÚaxÚbxZcxZgxZjxZlxZmxZnxr‚   r   rÁ   r   r   rŽ   Útest_issue_13961X  s    nJJÿrÆ  c                  C   sX   t ttd  d ƒtƒ} t| jd dt  ƒdks6J ‚t| jd dt  ƒdksTJ ‚d S )Nr¦   g       @r   gã;fž ö?r³  r©   )re   r+   r†   rï   r¶  r   )Z	solutionsr   r   rŽ   Útest_issue_14541b  s    rÇ  c                  C   sz   dt  ttd  t d  ƒ ttƒ } tdƒ}t| t tjd|ksFJ ‚tttd t d  ƒt	d  t tjƒtj
u svJ ‚d S )NrÛ   r¦   r   râ   )r‡   r#   r†   r   rK   re   r   r°   r5   r   r³   )ÚexprrÁ   r   r   rŽ   Útest_issue_13396h  s    &rÉ  c                  C   s.  t tddtddƒtdƒd  tddƒ   dtddƒtdƒd  tddƒ   ƒ d ttdtddƒtdƒd  tddƒ  ddtddƒtdƒd  tddƒ    dtddtddƒtdƒd  tddƒ   dtddƒtdƒd  tddƒ   ƒ  ƒƒd  ttdtddƒtdƒd  tddƒ  ddtddƒtdƒd  tddƒ    dtddtddƒtdƒd  tddƒ   dtddƒtdƒd  tddƒ   ƒ  ƒƒ d tddtddƒtdƒd  tddƒ   dtddƒtdƒd  tddƒ   ƒd  tddtddƒtdƒd  tddƒ   dtddƒtdƒd  tddƒ   ƒd tttdtddtddƒtdƒd  tddƒ   dtddƒtdƒd  tddƒ   ƒ dtddƒtdƒd  tddƒ   ddtddƒtdƒd  tddƒ    ƒƒ d  tddtddƒtdƒd  tddƒ   dtddƒtdƒd  tddƒ   ƒd tttdtddtddƒtdƒd  tddƒ   dtddƒtdƒd  tddƒ   ƒ dtddƒtdƒd  tddƒ   ddtddƒtdƒd  tddƒ    ƒƒ d  ƒ} ttd t d tƒ| ks*J ‚d S )	NrÛ   r¥   r©   rÜ   iQ  é   r¦   r¼   )rK   r+   r   r   r   re   r†   ©rÁ   r   r   rŽ   Útest_issue_12032r  s|    *"ÿÿ&&ÿ*"ÿþýþ&&ÿ*"ÿþý("ÿÿü("ÿÿ0"ÿ"þ&ýýþ("ÿÿ0"ÿ"þ&ýýþîrÌ  c                   C   s    t dttƒ tƒtjksJ ‚d S r·   ©re   r+   r†   r   r³   r   r   r   rŽ   Útest_issue_10876Ž  s    rÎ  c                   C   sZ  t ttt ttƒgttgƒttttdt t	 ƒt
jƒtttdt t	 ƒt
jƒftttdt t	 t	 ƒt
jƒtttdt t	 t	 ƒt
jƒfƒƒs’J ‚t ttt ttƒttƒ gttgƒttttdt t	 dt	 d  ƒt
jƒtttdt t	 dt	 d  ƒt
jƒftttdt t	 dt	 d  ƒt
jƒtttdt t	 dt	 d  ƒt
jƒfƒƒsVJ ‚d S )NrÛ   r¦   r¥   r¼   rß   )rŠ   rh   r†   r‡   r;   rK   rH   r   r   r   r   r´   r7   r   r   r   rŽ   Útest_issue_19050’  s    4:ÿÿ"LJÿÿrÏ  c                  C   sê   t tƒt tƒ ttƒttƒ d g} ttdt t fdt t tftdt t t fdt t t tfƒ}t| ttgƒ}tt	|ƒt	|ƒƒD ]F\}}t
|ƒt
|ƒ  kr®dks´n J ‚tdd„ t||ƒD ƒƒsŠJ ‚qŠt
|ƒt
|ƒksæJ ‚d S )Nr©   r¦   c                 s   s   | ]\}}|  |¡V  qd S r‰   )r–   )rŒ   rt   ru   r   r   rŽ   r   ¤  r   z#test_issue_16618.<locals>.<genexpr>)r;   r†   r‡   r7   rK   r   r   rh   r•   r   r™   r”   )Zeqnrô   rÁ   Zi0Zj0r   r   rŽ   Útest_issue_16618œ  s    $F"rÐ  c                   C   sd   t ddt  dt   dt  ddt  tdƒdt   gttƒttdƒ tdƒ dfƒks`J ‚d S )Né    r¦   r¼   rÝ   r¥   r©   éQ   )rh   r†   r‡   r   rK   r$   r   r   r   rŽ   Útest_issue_17566¨  s    @ÿrÓ  c               	   C   sb   t dƒ} ttd ttƒ tƒ ttt| d|  t t ƒt	j
ƒtt| d|  t ƒt	j
ƒƒ¡s^J ‚d S )Nr   r¦   )r   re   r†   r;   r–   rN   rH   r   r   r   r´   rò   r   r   rŽ   Útest_issue_16643­  s    4ÿrÔ  c                  C   sh   t dƒ\} }tdd|  d|   d|   dd|  d|    g|| ƒttdƒ tdƒ dfƒksdJ ‚d S )	Nzn mrÑ  r¦   r¼   rÝ   r¥   rÒ  r©   )r   rh   rK   r$   )r   r€   r   r   rŽ   Útest_issue_19587³  s    8ÿrÕ  c                  C   sž  t td td  ƒt dƒ tt d g} t| ttgƒtddƒksDJ ‚tdƒ}ttƒd ttƒ td  dttƒ d g}t	dƒ }t tdt ƒ tt	dƒƒ ƒ}t||f|| fƒ}t
|d| t t t	dƒ  ƒ}t|tjƒ}t
|t tdt ƒ td| t t t	dƒ  ƒ ƒƒ}t|tjƒ}t
|t tdt ƒ td| t t t	dƒ  ƒ ƒ ƒ}t|tjƒ}	t||f||	fƒ}
||
 }tt|ttgƒ|ƒsšJ ‚d S )	Nr¦   rÖ   r¼   )r©   r¥   )r¥   r©   r   r©   r¥   )r+   r†   r‡   rh   rK   r   r#   r;   rˆ   r$   r   r   r   rH   r   r´   rŠ   )rš  r   r  Ús_real_yÚs_real_zr«  ÚlamÚs_complex_yÚs_complex_z_1Ús_complex_z_2r¬  r›  r   r   rŽ   Útest_issue_5132_1¹  s&    (,
 68þrÜ  c                  C   sd  t ddd\} }t| ƒd t|ƒ td  g}tdƒ}ttd  t|ƒ ƒd tf}t|td| t t	td  t|ƒ ƒ  d tt
td t|ƒ ƒƒd  ƒ}t|tjƒ}|tf}t||ƒ}tt|| tgƒ|ƒsÖJ ‚t| d  |d  ttƒ||   g}	ttttƒd d  ƒ}
ttttƒd d  ƒttƒ }t|
|f|
 | fƒ}t|	| |gƒ|ks`J ‚d S )Nr»  Tr    r¦   r   r©   )r   r#   r;   rˆ   r   r$   r   r   r   r   r   rH   r   r´   rK   rŠ   rh   rƒ   r<   r„   r+   )r†   r‡   r  r   r«  rØ  Úimgr¬  r›  rš  r®  Ús_yr   r   rŽ   Útest_issue_5132_2Ð  s    L
$ rß  c                  C   s>   t ddd\} }t| d |  | | g| |gƒddhks:J ‚d S )Nza, bTr    r¦   r€  r¥  )r   rh   r  r   r   rŽ   Útest_issue_6752ã  s    rà  rW   c               	   C   s  ddl m} m} ttttttt	g}tt
t  tt  tdt dt  dt   tt  t
t  tdt dt  dt   tt  tt  tdt dt  dt   tt  tt  tdt d|   d|   tt  t	|  t	d| dt   t|  g}tt||ƒƒdksJ ‚d S )Nr   )ÚorM  r©   )r\  rá  rM  rt   ru   rv   ry   r{   r~   r   rƒ   rw   rx   rz   r|   r}   r   r€   r‚   r™   rh   )rá  rM  r  r  r   r   rŽ   Útest_issue_5114_solvesetè  s    ****ûrâ  ZHangsc                  C   s  t dƒ\} }}| dt  |dtd   t  dt d t  |dtd   t dt  dt  tt | g}tt|g}tt||ƒƒdksŒJ ‚| dt  |dtd   t  dt d t  |dtd   t dt  dt  tt | g}tt|g}tt||ƒƒdksJ ‚d S )Nzlam a0 concr¦   r©   g{®Gázt?gÌ«¢Ã;Êç?)r   r‡   r†   r™   rh   )rØ  Za0Zconcr  Úsymr   r   rŽ   Ú_test_issue_5335ù  s    ."
þ
."
þ
rä  c                  C   sÜ   t ddd\} }t| d |d  ƒd t|d |  d d  ƒd  }}tddƒdtd	ƒ d  }}|| f||fh}t||f| |fƒ|ksJ ‚t||| |  f| |fƒtjks´J ‚|d
7 }t||f| |fƒtjksØJ ‚d S )Núx yTr    r¦   rÖ   r¥   é¿   r½   i‡  rÊ   )r   r+   r   rh   r   r³   )r†   r‡   Úe1Úe2rt   ru   rô   r   r   rŽ   Útest_issue_2777  s    8$ré  c                  C   s  d} d}d}d}d}d}d}d}t ttg}t |  d	 t| d	  |t d	  }	|t  d	 |t d	  td	  }
t | d	 t| d	  |t d	  }|	|
|g}tt |  d	 t| d	  ƒt | }|
}tt | d	 t| d	  ƒt | }|||g}t||ƒ}t||ƒ}||ksJ ‚d S )
Nr   i”ýÿÿi˜  é~   i  é3   éÍ   éh   r¦   )r†   r‡   rˆ   r+   rh   )r|  Úy1Zr1r}  Úy2rˆ  Úy3Zr3ÚvrG  rH  r–  ÚFZg1Zg2Zg3ÚGrR  rt  r   r   rŽ   Útest_issue_8828  s(    
$ $
$$


rô  c                  C   s˜   t dƒ} | tƒtd  }| tƒttddƒ  }td| tƒ t dƒtd| tƒ dt  dƒ@ }tttƒ}t||tj	d ƒ}t
||gttgƒ|ks”J ‚d S )Nry   r¦   r¥   r   )r   r†   r   r‡   r   r   r   rG   r   r(  rh   )ry   rG  rH  Zintermediate_systemr  r›  r   r   rŽ   Útest_nonlinsolve_conditionset4  s    0
ýrõ  c                  C   sú   t g ttgƒtjksJ ‚t g g ƒtjks,J ‚dtd  dtd   d dtd  dtd   d g} tddddƒ}t | ttgƒ|ksˆJ ‚td	ƒ}t tt gtgtd
igtgtƒ ttgƒ|ksÀJ ‚t tt gtgtd
igtgtd
 httgƒtjksöJ ‚d S )Nr¦   r¥   rþ   é   )r
  rÛ   )r
  r¦   )r¥   rÛ   )r¥   r¦   rY  r©   )rg   r†   r‡   r   r³   rK   r#  )rš  r›  r   r   rŽ   Útest_substitution_basicC  s    80þþr÷  c                   C   sl  t td td td td dt gtttgƒddtfhks>J ‚t tt t tjtjtjgtttgƒt t ttfhkszJ ‚t t	t
 tt
 tt
 t
d d gt	ttt
gƒt
t
 t
 t
fhks¾J ‚t t	t	ttƒ  t	td  gt	tgƒdtfhksòJ ‚t t t dt  dt  dt dtd   d	 d
t t t td  td dt  d gttttgƒjthkshJ ‚d S )Nr©   r¦   r¼   rÛ   r   rÊ   i¯ÿÿÿrè   i  r
  r¥   )rg   r{   r~   ry   r†   r‡   rˆ   r   r¬   rt   rw   ru   rv   r$   r†  r   r   r   rŽ   Útest_substitution_incorrectQ  s*    "ÿ
ÿ$ÿ,ÿ$ÿ0(ÿ
þþrø  c                  C   s”   t td td  td gttgƒt dftdfttd ƒ dfttd ƒdfhksVJ ‚t tt td dtd   d gttgƒ} t| ƒdksJ ‚d S )Nr¦   r©   r¥   rË   )rg   r†   r‡   rˆ   r+   r™   )r/  r   r   rŽ   Útest_substitution_redundantj  s
     .ÿ*rù  c                  C   s2  t ddd\} }}}}|| d  |d  t|ƒ||   g}ttt|t|ƒd d  ƒ ƒtdƒƒ}ttt|t|ƒd d  ƒƒtdƒƒ}t|t|ƒd d  ƒt|ƒ }t||fƒt|| fƒ }	t|| |gƒ|	ksØJ ‚tdƒ}
t| ƒd t|ƒ |d  dt|ƒ d g}t	dƒ }ttd|  ƒ tt	dƒƒ ƒ}t||f|| fƒ}t
|
d|
 t t t	dƒ  ƒ}t|tjƒ}t
|
ttd|  ƒ td|
 t t t	dƒ  ƒ ƒƒ}t|tjƒ}t
|
ttd|  ƒ td|
 t t t	dƒ  ƒ ƒ ƒ}t|tjƒ}t||f||fƒ}|| }	tt|||gƒ|	ƒs.J ‚d S )	Nzx, y, z, r, tTr    r¦   r©   r   r   r¥   )r   r<   rJ   rK   r+   rg   r   r#   r;   r$   r   r   r   rH   r   r´   rŠ   )r†   r‡   rˆ   rƒ   r„   rš  Zs_x_1Zs_x_2rÞ  r›  r   r  rÖ  r×  r«  rØ  rÙ  rÚ  rÛ  r¬  r   r   rŽ   Útest_issue_5132_substitutionu  s0    $(& ,
 68þrú  c                   C   sJ   t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ d S )Nc                   S   s   t td d gg ƒS r  ©rg   r†   r   r   r   rŽ   r¨   ‘  r   z*test_raises_substitution.<locals>.<lambda>c                   S   s   t td d gƒS r  rû  r   r   r   rŽ   r¨   ’  r   c                   S   s   t td d gttƒgƒS r  )rg   r†   r;   r   r   r   rŽ   r¨   “  r   c                   S   s   t td d gtƒS r  rû  r   r   r   rŽ   r¨   ”  r   c                   S   s   t td d gdƒS r  rû  r   r   r   rŽ   r¨   •  r   )rU   r²   Ú	TypeErrorr   r   r   rŽ   Útest_raises_substitution  s
    rý  c                     s:  ddl m‰  g d¢} tdƒ}‡ fdd„| D ƒ} tttjdd„ | D ƒŽ ƒƒ}t| |ƒ}t|d|d	d
ddt	dƒ dt	dƒ f|d|d	d
ddt	dƒ d
t	dƒ f|d|d	d
dd	t	dƒ dt	dƒ f|d|d	d
dd	t	dƒ d
t	dƒ fƒ}t
|ƒt
|ƒ  krdksn J ‚||ksJ ‚|jD ]}t
|ƒd
ksJ ‚q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                    s   g | ]}ˆ |ƒ‘qS r   r   ©rŒ   r†   r   r   rŽ   Ú
<listcomp>¥  r   z$test_issue_21022.<locals>.<listcomp>c                 S   s   g | ]
}|j ‘qS r   )r†  rÿ  r   r   rŽ   r   §  r   rÑ  rÜ   rÓ   rý   r4  rË   éøÿÿÿr¼   )Úsympy.core.sympifyr   r   r’   r   r#  Úunionrh   rK   r+   r™   r¶  )r  rþ  Zsybr/  rô   rO  r   r   rŽ   Útest_issue_21022˜  s     	
""""ü&
r  c               	   C   sœ   t dƒ} t dƒ}tt|| fftd| t td|  t t tdƒ ƒ  ttd|  t t tdƒ ƒƒ ƒtt	j
t	j
ƒƒ}ttttƒƒd tƒ |¡s˜J ‚d S )Nr   rT  r¦   rË   )r   rH   r   r   r   r   r$   r   rP   r   r´   re   r#   r†   r–   )r   rT  rÁ   r   r   rŽ   Útest_issue_17940¶  s    6ÿþr  c                   C   s0   t dtd d  dt  tƒtddƒks,J ‚d S )Nrß   r¦   éP   rè   r  rÖ   )re   r†   rK   r   r   r   rŽ   Útest_issue_17906¿  s    r  c                  C   s¤   t tdƒ tttƒ  } t tdƒ tttƒ  }dt  tdƒ d tttƒ  }dt  tdƒ d tttƒ  t }t| |||gt tttƒtdddtfƒks J ‚d S )Nr:  rí   rÖ   r   )r†   r;   r‡   r7   r‚   rˆ   rh   rK   )r¦  r§  r¨  r©  r   r   rŽ   Útest_issue_17933Ã  s     $ÿr  c                	   C   sX   t ttt tttdt t ƒ  gttgƒtt t t	t
ttt ƒtjƒfƒƒsTJ ‚d S )NrÛ   )rŠ   rh   r~   r€   r#   r   rK   r   r   rH   r   r   r´   r   r   r   rŽ   Útest_issue_14565Í  s    *"ÿr	  c                  C   sn   t ddd} tttƒd ttjƒtju s,J ‚tttƒ|  ttjƒtju sLJ ‚tt| dƒ| tjƒtju sjJ ‚d S )Nru   Tr¤   r©   r¯   )r   re   r   r†   r   r°   r³   r   )ru   r   r   rŽ   Útest_issue_9556Ö  s      r
  c                   C   sL   t ttt t tƒttjƒtjks&J ‚t ttt t tƒtƒtjksHJ ‚d S r‰   )re   r   r†   rt   r   r°   r‡   r(  r   r   r   rŽ   Útest_issue_9611Þ  s    &r  c                   C   s>   t td t ttjƒttjttt ƒ tt ƒƒƒks:J ‚d S rØ   )re   r†   rt   r   r°   rL   rK   r+   r   r   r   rŽ   Útest_issue_9557ã  s    ÿr  c                  C   sž   t ddd} t ddd}t| d d | tjƒtdƒks:J ‚t| tddƒ d | tjƒtjks`J ‚t| d | | tjƒtt|ƒtddƒ  t|ƒ ƒksšJ ‚d S )	Nr†   Tr    r‡   r¥   r©   r¯   rË   )	r   re   r   r°   rK   r   r³   r   r    r­   r   r   rŽ   Útest_issue_9778è  s    "&ÿr  c                  C   sÚ   t ttddƒ d ttjƒtjks&J ‚t ttddƒ d ttjƒtjksLJ ‚tdtddƒ  ƒ} t ttdƒ d ttjƒ| ks‚J ‚ttdƒ d  tt| ƒd ¡dksªJ ‚ttdƒ d  tdtddƒ  ¡dksÖJ ‚d S )Nr¥   r¦   r¼   r
  r   rÛ   )	re   r†   r   r   r°   r³   rK   rÄ   r’   )rô   r   r   rŽ   Útest_issue_10214ñ  s    &&"(r  c                   C   s(   t tttƒƒd ttjƒtjks$J ‚d S r·   )re   r   r;   r†   r   r°   r³   r   r   r   rŽ   Útest_issue_9849û  s    r  c                   C   s   t g tƒtjksJ ‚d S r‰   )ra   r†   r   r³   r   r   r   rŽ   Útest_issue_9953ÿ  s    r  c                	   C   sŽ   t dt dtd d   ttjƒtdtdƒ d tddƒ tddƒ  d dddtdƒ d tddƒ tddƒ    td	dƒ ƒksŠJ ‚d S )
Nr¦   r©   rÖ   r¥   i^  r¼   i»  rª   r½   )re   r†   r   r°   rK   r+   r   r   r   r   rŽ   Útest_issue_9913	  s     ,&ÿÿÿr  c                   C   s"   t ttƒttjƒtdƒksJ ‚d S r'  )re   r+   r†   r   r(  rK   r   r   r   rŽ   Útest_issue_10397		  s    r  c                   C   s‚   t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ t td	d„ ƒ t td
d„ ƒ d S )Nc                   S   s   t td gtƒS rØ   rr  r   r   r   rŽ   r¨   	  s   
ÿz"test_issue_14987.<locals>.<lambda>c                   S   s(   t tdt d  dt  t gttgƒS )Nr
  r©   r¦   )r`   r†   r‡   rt   r   r   r   rŽ   r¨   	  s   "ÿc                   S   s$   t td dt  td  d gtƒS r  rr  r   r   r   rŽ   r¨   	  s   ÿc                   S   s,   t td d td  dtd   d gtƒS )Nr©   r¥   r¦   rß   rr  r   r   r   rŽ   r¨   	  s   &ÿc                   S   s    t tdt d  t gttgƒS r·   rp  r   r   r   rŽ   r¨   	  s   ÿc                   S   s   t td t gttgƒS r·   rp  r   r   r   rŽ   r¨   	  s   ÿc                   S   s"   t tdt dt t ƒgttgƒS r·   ©r`   r   r†   r‡   r   r   r   rŽ   r¨   	  s   ÿc                   S   s"   t ttt tt t ƒgttgƒS r‰   )r`   r   r‡   r†   r   r   r   rŽ   r¨   	  s   ÿc                   S   s&   t tttd  td t ƒgttgƒS rÏ   r  r   r   r   rŽ   r¨   	  s    ÿ)rU   r²   r   r   r   rŽ   Útest_issue_14987	  s    r  c                  C   sÖ   t tt dt dt    } t| t ƒttjƒks4J ‚t| t tjƒttt dt dt    htjƒksjJ ‚t	ddd}t	ddd}t || d| d|    } 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†   rt   ru   re   rK   r   r±   r°   rL   r   )ræ   r  r  r   r   rŽ   Útest_simplification"	  s    6r  c            
      C   sB  dt  d dk} t d dt   d dk}t dt   ddt   k}t tt d d ƒ dk}t dt   ddt   k}| t tt ƒ¡}tt ƒt  dk}tt ƒt  dk }t t d  dk }t t d d  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ƒd	tdddƒksàJ ‚t|	t tddƒd	t	tdddƒtdddƒƒksJ ‚tt d dk t tjƒtt ddƒks>J ‚d S )
Nr¦   r¥   r   r©   rÛ   rË   r¯   r
  râ   )r†   r+   rÄ   r$   re   r   r´   rI   r   rN   r³   )
r¦  r§  r¨  r©  ræ   Zeq5Zeq6Zeq7Zeq8Zeq9r   r   rŽ   Útest_integer_domain_relational.	  s(    0.   &4r  c                  C   s¤   t dƒ} t dƒ}t| tƒtd  ttjƒ ttt| tƒtd  dƒtjƒ¡sPJ ‚t| |tƒƒtd  |tƒtjƒ t|tƒt| |tƒƒtd  dƒtjƒ¡s J ‚d S )Nry   rz   r¦   r   )	r   re   r†   r   r   r°   r–   rG   r   )ry   rz   r   r   rŽ   Útest_issue_10555H	  s    ÿ"&ÿr  c                  C   sx   t dt   ddt   k} t| t tjƒt dt¡tdƒ ks>J ‚t|  t t	t ƒ¡t tjƒt t
dƒt¡tdƒ kstJ ‚d S )Nr©   rÛ   r   )r†   re   r   r°   rM   r  r   rK   rÄ   r$   r#   rø   r   r   rŽ   Útest_issue_8715Q	  s    ÿÿr  c                  C   sè   t d tdt ƒ ttƒ } ttjtt	t d  ttƒ ƒd ƒƒ}t
| ttjƒ|ksXJ ‚ttƒtttƒƒ tttƒd d ƒ tttƒ  } ttƒ tttƒƒ tttƒd d ƒttƒ  }ttjt|ƒƒ}t
| ttjƒ|ksäJ ‚d S r  )rˆ   r#   r†   r;   r‡   rL   r   r°   rK   r$   re   r+   rƒ   r   r<   r„   )ræ   r›  r¢   r   r   rŽ   Útest_issue_11174Y	  s    &42r  c            	      C   sò   t ddd} t ddd}| | t| d  d ƒ  }|d  | d | d  d   }t| t|d d ƒ ƒt|t|d d ƒ ƒ }}t| t|dƒ|ƒ}|ddh |ddh B }||B ddh }t|| tjƒ|ksØJ ‚t|| tjƒ|ksîJ ‚d S )	Nr†   Tr    r‡   r¦   r©   r   r¯   )r   r+   rK   rG   r   re   r   r°   )	r†   r‡   r¦  r§  r   rž   r   rš   r›   r   r   rŽ   Útest_issue_11534d	  s     
4r  c                   C   sJ   t td dt  d t dk ttjƒtt t d¡t dd¡ƒksFJ ‚d S )Nr¦   r¼   r¥   r
  r   r©   )re   r†   r   r°   rN   rM   r  r   r   r   r   rŽ   Útest_issue_10477	  s    $ÿr  c                  C   sT   t ttƒttdtƒƒtdtƒks$J ‚tddƒ} t dt  t¡dk t| ƒ| ksPJ ‚d S )Nr   r©   rÖ   )re   r;   r‡   rM   r   rK   r†   r	   )r|   r   r   rŽ   Útest_issue_10671„	  s    $
r  c                  C   sŽ   t tt d d ƒ } t| dkt tjƒttdƒtƒks8J ‚t| dk t tjƒtt tdƒ ƒks`J ‚t| tdƒkt tjƒt tdƒt¡ksŠJ ‚d S )Nr¦   rË   r   )r†   r+   re   r   r°   rM   r   ÚLopenrø   r   r   rŽ   Útest_issue_11064Š	  s    ÿÿÿr!  c                  C   sh   t td ƒd } t| tƒ}|tju s(J ‚t| dk ttjƒtju sDJ ‚t| dkttjƒtdtƒksdJ ‚d S )Nr¦   r   )	r+   r†   r]   r   r³   re   r°   rM   r   )ræ   r›  r   r   rŽ   Útest_issue_12478”	  s
    
r"  c                  C   s6   t ttƒt dkttjƒ} t dd¡}| |ks2J ‚d S rJ  )re   r$   r†   r   r°   rM   r   )ræ   rÁ   r   r   rŽ   Útest_issue_12429œ	  s    r#  c                  C   sZ   t tt ƒ} tdƒ}t| ƒ tt|tt	|ƒd dƒt
jƒt|t|ƒdkt
jƒƒ¡sVJ ‚d S )NÚCr©   r   )r   r†   r   r   re   r–   rL   rG   r   r   r   r(  r   )ræ   r$  r   r   rŽ   Útest_issue_19506¢	  s
    $ÿr%  c                   C   sV   t ttƒttjƒt dt¡ks"J ‚t tdt d ƒttjƒt tddƒt¡ksRJ ‚d S )Nr   r¼   r¥   )	re   r   r†   r   r°   rM   r  r   r   r   r   r   rŽ   Útest_solveset_arg©	  s    "r&  c                      sP   t ‰ t‡ fdd„tƒ tddtddfD ƒƒs2J ‚ˆ dtdd ƒdu sLJ ‚d S )Nc                 3   s   | ]}ˆ d | ƒdu V  qdS )r©   Nr   rÿ  rÌ   r   rŽ   r   ±	  r   z3test__is_finite_with_finite_vars.<locals>.<genexpr>Tr    )Úcomplexr©   F)rj   r”   r   r   r   rÌ   rŽ   Ú test__is_finite_with_finite_vars®	  s
    ÿr(  c                   C   s6   t td dt  d ttt dƒdtdƒks2J ‚d S )Nr¦   rÚ   r   )Úsymbolrã   r
  r`  r   r   r   rŽ   Útest_issue_13550¶	  s    r*  c                   C   s4   t ttdƒtdƒ  tdƒ tftƒtju s0J ‚d S )NrË   r¦   )rh   r„   r+   r   r³   r   r   r   rŽ   Útest_issue_13849º	  s    r+  c                   C   sŠ   t ttttdƒ ƒd  t¡ttjƒtddƒks4J ‚t ttttdƒ ƒd  t¡tt	ddƒƒtdƒksjJ ‚t tttddƒƒtj
u s†J ‚d S )Nr¦   r¯   r©   r   )re   r   r†   r,   r1  r.   r   r°   rK   rM   r³   r   r   r   rŽ   Útest_issue_14223¾	  s    ÿÿÿÿr,  c                	      s°  t j‰ ttttdƒ d tˆ ƒttddƒƒks2J ‚ttttdƒ d tˆ ƒttdƒ tdƒƒksdJ ‚ttt	td ƒd td ƒd tˆ ƒtddƒks˜J ‚tt	td ƒt	t
ƒ tˆ ƒtt	t
ƒ d t	t
ƒd ƒksÔJ ‚tt	tdt	td ƒ  ƒtˆ ƒttddƒtdd	ƒƒksJ ‚tdt	tt	ttdtƒ ƒ ƒ d tt jƒtdd
ƒksLJ ‚t j‰ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ d S )NrÚ   rÖ   r¦   r¥   r©   r¯   r¼   rÔ   rË   rÛ   c                      s   t tttdƒ d tˆ ƒS ©NrÚ   rÖ   )re   r†   r-   r   ©Údomr   rŽ   r¨   Ï	  r   z"test_issue_10158.<locals>.<lambda>c                      s   t tttdƒ d tˆ ƒS r-  )re   r†   r,   r   r.  r   rŽ   r¨   Ð	  r   c                      s&   t tttd ƒd td ƒd tˆ ƒS )Nr¥   r©   r¦   )re   r-   r   r†   r   r.  r   rŽ   r¨   Ñ	  r   c                      s   t ttd ƒttƒ tˆ ƒS r·   )re   r   r†   r‡   r   r.  r   rŽ   r¨   Ò	  r   c                      s    t ttdttd ƒ  ƒtˆ ƒS )Nr¼   r©   r  r   r.  r   rŽ   r¨   Ó	  r   )r   r°   re   r†   r-   rK   r   r,   r+   r   r‡   r(  rU   r²   r   r   r.  rŽ   Útest_issue_10158Æ	  s    ,24<<<r0  c               
   C   s¤   dt dt ƒ t } ttt d ƒ d ƒ}t| ttjƒttj|ƒksJJ ‚t	t| tƒt
ttt dt t tt d ƒ  d tttd ƒƒd  ƒtjƒƒs J ‚d S )Nr©   i€Wíþi€¨r¦   )r#   r†   r‡   rK   r$   re   r   r°   rL   rŠ   rH   r   r   r   r   r   r   r´   )ry   Za1r   r   rŽ   Útest_issue_14300Ö	  s    
ÿ
(ÿÿÿr1  c                      s@   t td t d dƒ‰ tt‡ fdd„ƒ ttd ˆ tƒs<J ‚d S )Nr¼   r©   r¦   c                      s   t ˆ dtƒS r'  )rc   r†   r   ©Únumberr   rŽ   r¨   ã	  r   z"test_issue_14454.<locals>.<lambda>)rE   r†   rU   r²   rc   r   r   r2  rŽ   Útest_issue_14454á	  s    r4  c                   C   sn   t dtd  dtd d tdƒd    ddtd d tdƒd     ttjƒttdƒtdƒ ƒksjJ ‚d S )Nr  r¦   rí   r©   r¼   r¥   )re   r†   r   r(  rK   r+   r   r   r   rŽ   Útest_issue_17882ç	  s    Pÿr5  c               	   C   s¬   t tdt d ƒƒddt gks$J ‚dtd  dtd   dtd   dtd   dtd   } tt| ƒƒdtd  dtd  dtd  dtd  ddtd  hks¨J ‚d S )Nr¥   r¦   rÛ   r¼   r©   r¯   )r’   rq   r†   r#  )rÈ  r   r   rŽ   Útest_term_factorsì	  s
    $<
4ÿr6  c                   C   sJ   t dt ttjƒtjksJ ‚t dt dtd   ttjƒtdƒksFJ ‚d S )Nr¥   rí   rË   ri  )rk   r†   r   r°   r³   rK   r   r   r   rŽ   Útest_transolveõ	  s    r7  c                  C   sl   dt  tt  tttt ƒ  t tttt ƒ  t d } t|  ¡ tƒttttdt  d ƒ ƒkshJ ‚d S r  )r†   r‡   rˆ   r=   re   rN  rK   r@   rø   r   r   rŽ   Útest_issue_21276û	  s    <r8  c               
   C   s4  ddl m}  ddt  dtd   }dddt   ddt   }dt dt  }ttdƒt ƒdt  }tt|  ƒtt |  ƒ d }dtd  dtd   }dtd	  dtd   dtd	   dtd   dtd   }d
tdt d ƒ dtdt d	 ƒ  }dt dt  dt  d }	ddtd	   dt  ddt   }
t|ttjƒt	dtdƒ dtdƒ tdƒ  ƒkszJ ‚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|  ƒ ƒ ƒƒks
J ‚t|ttjƒt	dƒks&J ‚t|ttjƒt	dƒksBJ ‚t|ttjƒt	dtdƒ d dtdƒ d  t
ddƒ ƒks„J ‚t|	ttjƒt	dƒks J ‚t|
ttjƒt	tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ  ƒksìJ ‚td
tdt d ƒ dtd	   tƒt	ddtdƒ  tdƒ tdƒd   ƒksBJ ‚tdtd  dtd   tƒt	dƒksnJ ‚tdƒttdƒƒ ttdƒƒ }tdtd  ddt   tƒt	| |ƒks¾J ‚tdƒ\}}tdƒ}t||td   t|tƒ ƒ |tƒƒttjt	t||td   ƒ ƒƒks"J ‚tddd} ttd | d ttƒ  | ƒttjt	ttd ttƒ ƒ ttd ttƒ ƒƒƒks†J ‚tddd}td	| d	 |d	  |ƒ tttd	d	t  td	  dƒtjƒ¡sØJ ‚tdt dt  d ttjƒdhksJ ‚tdt ddt   d ttjƒdhks0J ‚d S )Nr   r  r¥   r¦   r¼   rË   rí   rÓ   r©   rj  rÛ   éT   é   ig  é{   i¦
  r
  rÚ   r3  rÊ   zC1 C2ry   r‡   Tr¤   rM  rî   )r\  r‡   r†   r#   r$   rˆ   re   r   r°   rK   r   r³   rL   r]   r+   r   r   r   r–   rG   r   )r‡   rç  rè  Ze3Ze4Ze5Ze6Ze7Ze8Ze9Ze10ru   ZC1ZC2ry   rM  r   r   rŽ   Útest_exponential_real
  s\    <($ÿ"ÿBL&$ÿ, 0(ÿ.ÿ"ÿ
*r<  c            	   	   C   sÜ  t dƒ} ttdt dt  tƒtt| td|  t t  tdƒ ƒt	j
ƒƒsNJ ‚ttt tt  d tƒttdƒttƒttƒ  ƒksˆJ ‚ttdtd  dtd   tƒtt| d|  t t tdƒ ƒt	j
ƒƒsÒJ ‚ttdt d tƒtt| td|  t t  dtdƒ  tdƒ ƒt	j
ƒƒs"J ‚dttd t ƒ d td d  }ttƒtttdƒƒ ttdƒd|  t t  ƒ ƒ }t|tƒt| |ƒks˜J ‚tt| td|  t ttddƒ   tdƒ ƒt	j
ƒ}tt| td|  t ttddƒ   tdƒ ƒt	j
ƒ}ttdt dt  dt  tƒt||ƒƒs0J ‚dtd	  dtd   dtd	   dtd   dtd   }t|tƒ}d|  t t dtdƒ  dtdƒ  }d
tdƒ tdƒ }tt| || ƒt	j
ƒ}t||ƒsØJ ‚d S )Nr   r¦   r¼   r¥   rÑ  rË   rÚ   rÓ   r©   rÛ   )r   rŠ   r_   r†   rO   r   r   r   r$   r   r´   rˆ   r‡   rK   re   r#   r+   r   rN   )	r   ræ   rt   Zunion1Zunion2r/  ÚnumZdenrô   r   r   rŽ   Útest_exponential_complex1
  s2    $ÿ
ÿ
  ÿ
0ÿ$6440<
(r>  c                  C   sˆ  t tƒd t d } td t t d }dt t tƒ d }ttƒt tƒ }dt dt  dt  }t| ttjƒ ttt	t tƒd t d dƒtjƒ¡sœJ ‚t|ttjƒ ttt	ttd t  d dƒtjƒ¡sÔJ ‚t|ttjƒ ttt	dt t tƒ d dƒtjƒ¡sJ ‚t|ttjƒ ttt	t tƒ ttƒ dƒtjƒ¡sFJ ‚t|ttjƒ ttt	dt dt  dt  dƒtjƒ¡s„J ‚d S )Nr©   r¦   r¥   rË   r   )
r#   r†   r‡   r$   re   r   r°   r–   rG   r   )rG  rH  r–  r—  r˜  r   r   rŽ   Útest_expo_conditionsetN
  s(    ÿ
ÿ
ÿÿ"ÿr?  c            	      C   s€  t ddd\} }}t ddd\}}t||  | | tjƒttjtt|ƒt|ƒ ƒƒksXJ ‚d| t  d|t   }| | t d }ttdƒt| ƒt|ƒ  htjƒ}ttdƒt| | ƒ 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| |  | t 	dt
¡ƒ ttttt dƒt dt
¡ƒ¡sHJ ‚t| | d	 |tjƒtdƒkslJ ‚tt| | ƒt| | ƒ d |tjƒtt|tt| ƒ| dƒtt|ƒ| dƒ@ ttt| | tdƒ ƒtjƒtdƒƒƒtdƒƒksòJ ‚tt|| ƒt| | ƒ d |tjƒtt|| tdƒ ƒtdƒƒks>J ‚tt|  t|   | ƒ ttttdƒttdƒ@ tdƒƒ¡s|J ‚d S )
Nzx y zTr¤   zxr, zrr    r¦   r¼   r   r©   )r   re   r   r°   rL   rK   r$   r…   rM   r   r   r–   rG   r   r  r#   rJ   r   rt   ru   r   )	r†   r‡   rˆ   ZxrZzrrG  rH  rš   r›   r   r   rŽ   Útest_exponential_symbolsb
  s8    ÿ
"$&ÿ
$&($ÿÿÿ
&ÿ
ÿr@  c                  C   s@   t ddd} t dƒ}t| d d | ƒt|d d |ƒks<J ‚d S )Nr†   Tr¤   r¦   r¼   )r   r_   )Zxposr†   r   r   rŽ   Útest_ignore_assumptions}
  s
    ÿrA  c                   C   s*   t ttt  t ttjƒtdƒks&J ‚d S r·   )re   r†   r‡   rˆ   r   r°   rK   r   r   r   rŽ   Útest_issue_10864…
  s    rB  c                   C   sX   t tttƒƒttt ƒƒ d tƒtdttdƒ d ƒ dttdƒd ƒ ƒksTJ ‚d S )Nr¼   r¦   r¥   )r]   r+   r#   r†   rK   r$   r   r   r   rŽ   Útest_solve_only_exp_2Š
  s    "*ÿrC  c                   C   sL  t ttƒdu sJ ‚t dt d tƒdu s,J ‚t dt ddt   tƒdu sNJ ‚t tdt ƒdt  tƒdu spJ ‚t tt t tƒdu sŠJ ‚t tt t tƒdu s¤J ‚t dt dt  d tƒdu sÆJ ‚t ttt  t tƒdu säJ ‚t tdt  dt  tƒdu sJ ‚t tt tt  tƒdu s(J ‚t tt tt  tƒdu sHJ ‚d S )	NFr¥   r¦   TrË   rß   r¼   r©   )rl   r‡   r†   r;   rˆ   r   r   r   rŽ   Útest_is_exponential
  s    """$ rD  c                   C   s  t ddt  dtd   dttjƒtdtdƒ dtdƒ tdƒ  ƒksLJ ‚t dt dt  dttjƒtttddƒtd	ƒd  ƒtdƒ ƒks’J ‚t dt dt  dttjƒtj	ks¸J ‚t dt dt  d	t  dttjƒt
ttdt dt  d	t  dƒtjƒks
J ‚d S )
Nr¥   r¦   r   r
  rÛ   r¼   r©   r¯   rË   )rm   r†   r   r°   rK   r$   r‡   r   r+   r³   rG   r   r   r   r   rŽ   Útest_solve_exponentialž
  s    ""ÿ$ÿÿ"&ÿrE  c               
   C   s  t ttd ƒttd ƒ tƒttdƒ tdƒƒks6J ‚t ttd ƒtdt d ƒ tƒtdƒksdJ ‚t ttd ƒtddt  ƒ d tƒtdtdtdƒ ƒttddƒƒ d  tdƒd  tdtdƒ ƒ ttddƒƒ d d tdƒd  ƒksöJ ‚tttƒ tttdtd td     ƒ } t | tƒt	t
jtttd tttƒ  ƒ ttd tttƒ  ƒƒƒt	t
jtttd ƒ ttd ƒƒƒ ks’J ‚t tdt ƒtt d ƒ tdt d ƒ tƒttddƒt
jƒksÚJ ‚tttt ƒtttƒ  tt
jƒt
jksJ ‚d S )	Nr¥   rÖ   r©   r¦   r
  iôÿÿÿr¯   r¼   )r]   r$   r†   rK   r+   r#   r   rˆ   r‡   rL   r   r°   r±   re   rø   r   r   rŽ   Útest_logarithmic¬
  s,    ÿ
.&02þ
, ÿ"þÿ
*ÿÿ
rF  c                  C   sz   t tdt ƒd ƒt ttƒ d ƒ t dƒ } t| tƒtju sBJ ‚t dt ƒt ttƒd ƒ d } t| tƒtju svJ ‚d S )Nr¦   r©   rÓ   )r$   r#   r†   r'   r]   r   r³   r+   rø   r   r   rŽ   Útest_uselogcombine_2½
  s    . rG  c                   C   sÆ  t ttƒdu sJ ‚t ttƒtƒdu s(J ‚t ttƒd tƒdu sBJ ‚t ttƒttƒ tƒdu s`J ‚t ttƒd tƒdu szJ ‚t ttd ƒttd ƒ tƒdu s J ‚t ttt ƒtttƒ  tƒdu sÆJ ‚t tttƒƒtƒdu sàJ ‚t tt tƒdu söJ ‚t tdt ƒtdt ƒ d tƒdu s"J ‚t ttƒttƒ t tƒdu sFJ ‚t tttd ƒƒttd ƒ tƒdu srJ ‚t ttdƒt ƒttƒ tƒdu sšJ ‚t ttƒtd  ttƒ tƒdu sÂJ ‚d S )NFTr¥   r¦   r©   r¼   )rn   r‡   r†   r$   r;   r   r   r   rŽ   Útest_is_logarithmicÅ
  s    &&,$,(rH  c                  C   sn   t dƒ} ttt|  ƒ| ttƒ  dttjƒtjks6J ‚t ddd} tttƒt| ƒ dttjƒtdƒksjJ ‚d S )Nr‡   r   Tr¤   r©   )r   rp   r$   r†   r   r°   rK   r  r   r   rŽ   Útest_solve_logarithmÖ
  s    .rI  c                  C   sè  t dƒ\} }}ttd tƒdu s$J ‚t| td  |t  | tƒdu sJJ ‚ttd tƒdu s`J ‚tttd  tƒdu szJ ‚tdttƒ ttdƒ  tƒdu s J ‚ttttd ƒƒttd ƒ tƒdu sÊJ ‚tdt d dtddt  ƒ  tƒdu søJ ‚t| t ttd ƒ  td¡tƒdu s$J ‚ttd dt  d  tttƒdt  d d ¡tƒdu sdJ ‚ttttƒ d tƒdu s„J ‚ttt	tƒ d tƒdu s¤J ‚tt
tƒdt  tƒdu sÄJ ‚tttƒttƒ tƒdu säJ ‚d S )	Nza,b,cr¦   FTr¥   rË   r©   rß   )r   ro   r†   r   r$   r#   r	   rÄ   r&   r7   r'   r(   )rt   ru   rv   r   r   rŽ   Útest_is_lambertà
  s    &&*.,@   rJ  c                      sl  ddl m‰  ˆ dtƒddgks"J ‚tdd„ ˆ dtƒD ƒƒs>J ‚ˆ tdt  d ttƒg d¢ksbJ ‚ˆ tdt  d ttƒg d¢ks†J ‚ˆ tdtd   d ttd ƒg d¢ks²J ‚tt‡ fd	d
„ƒ tt‡ fdd
„ƒ tt‡ fdd
„ƒ ˆ ttt  ttƒttdgksJ ‚ˆ dttƒg d¢ks&J ‚ˆ tttt ƒttddtdiksNJ ‚ˆ dttddi kshJ ‚d S )Nr   ©Úlinear_coeffsc                 s   s   | ]}|t ju V  qd S r‰   )r   r  rá   r   r   rŽ   r   ö
  r   z%test_linear_coeffs.<locals>.<genexpr>r¦   r¥   r~  )r¦   r©   r¥   c                      s$   ˆ t dt d   t d  t t d ƒS r  r§   r   rK  r   rŽ   r¨   ú
  s    z$test_linear_coeffs.<locals>.<lambda>c                      s   ˆ dt  t d  dt   t ƒS r·   r§   r   rK  r   rŽ   r¨   ü
  s    c                      s   ˆ t t t ƒS r‰   r§   r   rK  r   rŽ   r¨   þ
  s    r«   )r   r   r«   T)Údictr¯   )	r[  rL  r†   r”   r‡   rU   r²   rt   r   r   r   rK  rŽ   Útest_linear_coeffsó
  s    $$,$(rN  c                   C   sP  t ttƒdu sJ ‚t ttdƒd tƒdu s.J ‚t ttd dtd   t d dƒd tƒdu sbJ ‚t tttt ƒdƒd tƒdu s†J ‚t tttt ƒdƒttƒ tƒdu s®J ‚t ttdƒd tƒdu sÊJ ‚t ttdƒd d tƒdu sêJ ‚t ttdƒd t tƒdu sJ ‚t tttdƒƒd tƒdu s.J ‚t tdtƒd tƒdu sLJ ‚d S )NFr¥   r©   Tr¦   rË   )rr   r‡   r†   r
   r#   r$   r   r   r   rŽ   Útest_is_modular  s    4$( ""rO  c                  C   sê  t ddd} ddlm} |tttƒdƒtdƒ| tƒtttƒdƒdfksJJ ‚|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 ƒtjƒfƒsêJ ‚t	|ttd dƒtdƒ| tƒtt
t| d|  d	 ƒtjƒfƒs,J ‚|ttd
 t dƒtdƒ| tƒttd
 t dƒdfkshJ ‚t	|tdt dƒtdƒ| tƒtt
t| d|  d	 ƒtjƒfƒsªJ ‚|ttd td
  dƒtdƒ| tƒttd td
  dƒdfksîJ ‚|ttd	 dƒtdƒ| tƒttjfksJ ‚t	|tdt d	ƒtdƒ| tƒtt
t| d
|  d ƒtjƒfƒs\J ‚t	|td
td
 t d  dƒtd
ƒ| tƒtd
 t d t
t| d|  d ƒtjƒfƒs¶J ‚|tttƒd	 dƒtdƒ| tƒttjfksæJ ‚d S )Nr   T©Úintegerr   )Ú_invert_modularrß   rË   rÓ   r¼   r¦   r¥   r©   )r   r[  rR  r
   r;   r†   r   r#   r$   rŠ   rH   r   r´   r³   Ú	Naturals0)r   Zinvert_modularr   r   rŽ   Útest_invert_modular  s<    222ÿÿ
ÿ
ÿ
"ÿ
ÿ
ÿ
((ÿ
rT  c                  C   s:	  t ddd} tttdƒt ttjƒ tttt ttdƒ dƒtjƒ¡sJJ ‚tdtt	tƒdƒ ttjƒ ttttt	tƒdƒd dƒtjƒ¡sŽJ ‚tdtt
tƒdƒ ttjƒ ttttt
tƒdƒd dƒtjƒ¡sÒJ ‚tdtttƒdƒ ttjƒ ttttttƒdƒd dƒtjƒ¡sJ ‚tdttdƒ ttjƒtju s<J ‚tdttdƒ ttjƒtju s`J ‚ttd	ttd
ƒ ttjƒtt| d
|  d	 ƒtjƒƒsšJ ‚tdttd
ƒ ttjƒtju s¾J ‚ttdttdƒ ttjƒtt| d|  d ƒtjƒƒsøJ ‚ttdtdt d dƒ ttjƒtt| d|  d ƒtjƒƒs:J ‚ttdtdt dƒ ttjƒtt| d|  d	 ƒtjƒƒsxJ ‚ttttd	 dƒd ttjƒttt| d|  d ƒtjƒtt| d|  d ƒtjƒtt| d|  d ƒtjƒtt| d|  d ƒtjƒtt| d|  d ƒtjƒtt| d|  d ƒtjƒtt| d|  d ƒtjƒtt| d|  d ƒtjƒƒƒsbJ ‚tdttd dƒ ttjƒtju sŠJ ‚ttttd dƒd ttjƒttt| d|  d ƒtjƒtt| d|  d ƒtjƒtt| d|  d ƒtjƒtt| d|  d ƒtjƒƒƒsJ ‚tttdt dƒd ttjƒtt| d|  d ƒtjƒƒsRJ ‚tttdt dƒd ttjƒtt| d|  d	 ƒtjƒƒsJ ‚tttdt dƒd ttjƒtt| d	|  d ƒtjƒƒsÎJ ‚tttd	t dƒd	 ttjƒtt| d|  d ƒtjƒƒsJ ‚tttddt  dƒd ttjƒttt| tt
d	|  d ƒt
dƒ htjƒƒtjƒtjƒƒslJ ‚tttd dƒd	 ttjƒtju s”J ‚ttttd dƒd ttjƒtt| d|  d ƒtjƒƒsÒJ ‚ttttd dƒd ttjƒttt| d|  d ƒtjƒtt| d|  d ƒtjƒƒƒs,J ‚ttdtdt d dƒ ttjƒttt| d|  d ƒtjƒtjƒƒsvJ ‚tttdƒt ttjƒtjksšJ ‚tttt dƒd	 ttjƒ tttttt dƒd	 dƒtjƒ¡sàJ ‚tttt dƒd	 ttjƒ tttttt dƒd	 dƒtjƒ¡s&J ‚ttttd dƒd ttjƒttt| d|  d ƒtjƒtt| d|  d ƒtjƒƒƒs€J ‚ttttd  d!ƒd" ttjƒtt| d!|  d  ƒtjƒƒs¾J ‚tddd} d#}d$}d%}d&}tt|t||  | |ƒ | tjƒtt| d'|  d( ƒtjƒƒsJ ‚tt|t||  | |ƒ | tjƒttt| d'|  d( ƒtjƒtjƒƒsfJ ‚tt|t|d	|   | |ƒ | tjƒttt| d)|  d* ƒtjƒtjƒƒs´J ‚t|t|d	|  d  | |ƒ | tjƒtju sèJ ‚tt|t|| d  | |ƒ | tjƒttt| d'|  d+ ƒtjƒtjƒƒ	s6J ‚d S ),Nr   TrP  r¼   r   r¥   rß   rË   r¦   r
  rÓ   é    rí   rê   r?  éM   éS   é]   é“   é   rì   rî   r  é)   rÚ   rý   é   r>  rÊ   r©   r=  r®   éJ   r¿  i­VH,i½.qiÿÿÿi@È3iþÿÿrª   iÿÿÿ?é2   rí  )r   re   r
   r†   r   r´   r–   rG   r   r;   r$   r#   r³   rŠ   rH   r   rN   rS  rL   r   r   )r   rt   ru   r€   rv   r   r   rŽ   Útest_solve_modular3  sú    ÿþ þ þÿÿ
$$ÿ
$ÿ
 ÿ
ÿ
ùÿ
	(ýÿ
ÿ
ÿ
ÿ
ÿ
 "ÿÿÿÿ
(ÿ
ÿÿ
  ÿ
ÿ
 þ
 þ
ÿÿ
ÿ
 ÿ
 ÿÿ
$ÿÿ
4$ÿÿr_  c                   C   sd   t ttdtdƒd  ƒttt dtdƒ ƒgttƒtdtdƒd  ddtdƒd   fƒks`J ‚d S )NrË   r©   é   r¥   rÖ   )rh   r   r†   r   r‡   r+   rK   r   r   r   rŽ   Útest_issue_17276ž  s    2&ÿra  c                  C   s¸   t dƒ} tdƒ}t dƒ}tt| | ƒt| ƒ |ƒ t dƒ¡ttt|d| t ƒt	j
ƒtt	jtt|t td| t ttdt |  ƒ ƒ  dt| ƒ   ƒt	j
ƒƒƒ t dƒ¡ks´J ‚d S )Nr†   rt   r   r¦   rÛ   zx,n)r   r   re   r;   r–   rN   rH   r   r   r   r´   rL   r(  r   r   r#   r   )r†   rt   r   r   r   rŽ   Útest_issue_10426£  s    $Dÿþýrb  c                   C   s(   t ttƒd t ƒtdt ƒks$J ‚dS )z,Test solveset for simple conjugate functionsr¥   N)re   r!   r†   r   rK   r   r   r   rŽ   Útest_solveset_conjugate­  s    rc  c            '   $   C   sN  t dƒt dƒ } | \}}}}}}}}}	}
}}}}}}}}}}}}}}}}}}|| | | d || | | d || | | d || | | d || | | d || | | d || |	 |
 d || | | d	 || | |	 d
 || | |
 d || |	 |
 d || |	 |
 d || | | d || | |	 d || | |
 d || | | d || | | d || | | d || | | d || | | d || | | d || | | d || | | d || | | d || | | d || | | d || | | d |d |d |d |d |d |d |d |d g#}d| |d d	| |d| |d d| |dddddddddd| | d || d | | | d  || | d! d"| |d#| |d#| |g}t|| ƒ\}} d$d%„ t| |ƒD ƒ}!t|| ƒ|!ks(J ‚tt|Ž ƒ}"t|| ƒ|"ksHJ ‚t|| f| ƒ|"ks`J ‚| | ¡\}#}$t|#ƒ}#|" 	t|||||g|$ƒ¡}%tt|#Ž ƒ|%ks¦J ‚td| |d d	| |d| |d d| |dddddddddd| | d || d  d| |d"| |d#| || | | d  || | d! fƒ}&t
|| ƒ|&ksJJ ‚d S )&Nzx0:16zy0:12rë  é.   é'   r^  é#   é"   é   r`  é,   r:  r-  é5   é8   r@  é4   rÀ  é0   é<   r¦   rË   r©   rÊ   r\  rî   r½   é&   rÖ   rÜ   rÓ   é   r¥   é!   rÝ   c                 S   s   i | ]\}}||kr||“qS r   r   )rŒ   rñ  ræ   r   r   rŽ   Ú
<dictcomp>ã  r   z$test_issue_18208.<locals>.<dictcomp>)r   r`   r•   r\   rK   r   ra   Zgauss_jordan_solver’   rÄ   rh   )'Ú	variablesr‹  r|  r}  rˆ  r‰  Zx5Zx6Zx7Zx8Zx9Zx10Zx11Zx12Zx13Zx14Zx15Zy0rî  rï  rð  Zy4Zy5Zy6Zy7Zy8Zy9Zy10Zy11r  ÚexpectedrR  ru   Zsolve_expectedZlinsolve_expectedZgj_solveZnew_varsZgj_expectedZnonlinsolve_expectedr   r   rŽ   Útest_issue_18208²  sz    ÿ"Þ$(*.ý	"$(ýru  c                  C   sª  t dƒ\} }}}}}}}}}	}
}}}}}}}}}}}}}||||||||||	|||||g}| | ||  | | | | | ||  |	 | | ||  | | | | ||  | | | ||  | | | | ||  | | | | ||  | | ||  |  ||  ||  | ||  ||  | ||  ||  | ||  ||  | | |	 | |
 | | | | | | | | | | | |
||||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| | | | fdtt|ƒtdƒƒd|dddddddd| | | | | |fdtt|ƒtdƒƒd|ddddddd| | | | | | ||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Â  )Za00Za01Za10Za11Zl0Úl1Úl2Úl3Zm0Úm1Úm2Zm3Zm4Zm5Zm6Zm7Zc00Zc01Zc10Zc11Zp00Zp01Zp10Zp11Zsolveforrš  rÁ   r   r   rŽ   Ú*test_substitution_with_infeasible_solution  sJ    ÿ4"ç.:>Bür{  c                   C   s   t dttƒ ƒtju sJ ‚d S r·   rÍ  r   r   r   rŽ   Útest_issue_20097-  s    r|  c                   C   s*   t ttdt t ƒƒƒtddƒks&J ‚d S )Nr©   r¯   )re   r	   r+   r†   rK   r   r   r   rŽ   Útest_issue_153501  s    r}  c                  C   sä   t dtdk ftdtƒd tdtƒd  tdtƒd  dfƒ} t t dtdk ftdtƒd tdtƒd  tdtƒd  dfƒtdkfdƒ}tddƒ}t| tddƒ ttddƒƒ}t|tddƒ ttddƒƒ}||ksÔJ ‚||ksàJ ‚d S )Nr   r©   r¦   r¥   Tr!  )r.   r†   r,   rM   re   r   )Zc1Úc2Zcorrect_resultZresult1Zresult2r   r   rŽ   Útest_issue_183595  s    <J
r  c                  C   sX   ddt  d   tt d ƒ tt d   } t| t ƒs8J ‚t| dt tjƒtdƒksTJ ‚d S )Nr¦   r¥   r=  r   )r†   r#   r   rl   rm   r   r(  rK   )rµ   r   r   rŽ   Útest_issue_17604?  s    *r€  c                   C   s,   t ddtd  d  ttjƒtju s(J ‚d S r*  )re   r†   r   r°   r³   r   r   r   rŽ   Útest_issue_17580E  s    r  c                  C   s\   dt  dt  d dt  dt  d g} t| t tƒttddt  ƒtdƒ tfƒksXJ ‚d S )Nr¦   r¥   r¼   rí   rË   )r†   r‡   rh   rK   r$   )r£  r   r   rŽ   Útest_issue_17566_actualI  s    (r‚  c                  C   sˆ   t dtd d  dtd tdƒd    dtd  td tdƒd    dƒ} tt 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   rN   rM   r   r   r   re   r   r°   )ræ   r/  r   r   rŽ   Útest_issue_17565O  s    N rƒ  c                  C   s@   t d tt d  dt   ƒ } t| t tjƒttdƒƒks<J ‚d S )NrË   r¦   rÖ   r3  )r†   r+   re   r   r°   rK   r   )Úfunctionr   r   rŽ   Útest_issue_15024U  s    r…  c                
   C   sl   t ttd ttƒgttƒttdƒtttdt t	 ƒt
jƒftdƒtttdt t	 t	 ƒt
jƒfƒƒshJ ‚d S rÏ   )rŠ   rh   r†   r;   r‡   rK   rH   r   r   r   r   r´   r   r   r   rŽ   Útest_issue_16877Z  s
    "$ÿÿr†  c                   C   s˜   t tttƒdt dt  gttƒttttdt t	 ƒt
jƒttttt	 ƒt
jƒftttdt t	 t	 ƒt
jƒttttt	 t	d  ƒt
jƒfƒƒs”J ‚d S ©Nr¦   r¼   )rŠ   rh   r;   r†   r‡   rK   rH   r   r   r   r   r´   r   r   r   rŽ   Útest_issue_16876a  s     ÿÿþÿrˆ  c                  C   s    t dƒ\} }t ddd}t| | | | tjƒt| t| | | dƒtjƒksNJ ‚t ddd\}}|| }t| | | | tjƒt| t| | | dƒtjƒksœJ ‚d S )Nzx zr‡   T)Zrationalr   ze1 e2)Zeven)r   re   r   r°   rG   r   )r†   rˆ   r‡   rç  rè  r   r   rŽ   Útest_issue_21236j  s    6r‰  c                   C   sH   t td dt  td  ttƒ dt ttƒ gttƒddhksDJ ‚d S )Nr¦   rÛ   )rÛ   r   r¥  )rh   r†   r‡   r#   r   r   r   rŽ   Útest_issue_21908s  s    6ÿrŠ  c            
      C   s  t t d td d g} dd„ | D ƒ}dt tfdt t fh}t| t tgƒ}t|t tgƒ}||  krp|ksvn J ‚t t d td d g}dd„ |D ƒ}t t fttfh}t|t tgƒ}t|t tgƒ}	|	|  krà|ksæn J ‚ttt dt   dt  ƒgt gƒttjfƒksJ ‚d S )Nr©   r¦   c                 S   s   g | ]}t |d ƒ‘qS ©r   ©r   rá   r   r   rŽ   r   {  r   z$test_issue_19144.<locals>.<listcomp>c                 S   s   g | ]}t |d ƒ‘qS r‹  rŒ  rá   r   r   rŽ   r   ‚  r   )r†   r‡   r   rh   r   rK   r   r³   )
rd  r¦  r¡  Z
soln_expr1Zsoln_eq1re  r§  r¼  Z
soln_expr2Zsoln_eq2r   r   rŽ   Útest_issue_19144x  s    r  c                  C   s¨   t dt dt dttƒ  d  tdt ƒ dt tdt ƒ dt tdt t ƒ  dtdt t ƒ  d fttƒ} tttjfttƒ tj tfƒ}| |ks¤J ‚d S )Nr¼   r¦   r©   )rh   r‡   r†   r#   rK   r   r  r±   )r/  Zsolsr   r   rŽ   Útest_issue_22413‹  s    ,Bÿþ rŽ  c                  C   sÈ   t dtttdt  d ƒ t ƒt tdt ƒt ddt t ƒg} dd„ | D ƒ}dh}tt| tttgƒ|ƒ tt|tttgƒ|ƒ td	t dd	t   d ƒ}d
t | dt  }tt|tƒddhƒ d S )Ng}ŒjýÉJ@g      @r©   gú~j¼t“X?g¸…ëQ¥¾@c                 S   s   g | ]}|  t¡‘qS r   )r1  r   )rŒ   ræ   r   r   rŽ   r   š  r   z$test_issue_23318.<locals>.<listcomp>)gO]¤¯p@g¹;Üõfl¡?g~adOºAgIüò¿x©‰>gú~j¼t“X¿gF„¿Ó­{å>r   g\adOºA)	r   r†   r$   r‡   rˆ   rŸ   rh   rœ   re   )Zeqs_eqZeqs_exprrÁ   Zlogtermræ   r   r   rŽ   Útest_issue_23318”  s     ýr  c                   C   s^   t dt ddt   ddt  ddt   gttƒttddt  ƒtdƒ tjfƒksZJ ‚d S r‡  )rh   r€   r   rK   r$   r   r(  r   r   r   rŽ   Útest_issue_19814¦  s    2 ÿr  c                  C   sh   t ttƒ td  dt  ttƒ ttjƒ} |  tdi¡dtdƒ dtdƒ hksdJ |  tdi¡ƒ‚d S r  )re   r+   r„   r†   r   r°   ZxreplacerË  r   r   rŽ   Útest_issue_22058«  s    ,r‘  c                   C   sJ   t dttd ttd  td  ƒd d  ƒ d ttjƒtju sFJ ‚d S )Nr½   r¦   rÖ   rn  )re   r+   r‡   r   r°   r³   r   r   r   rŽ   Útest_issue_11184±  s    r’  c                  C   s>  t dƒd } tdtd  td  dt  dtd  td  dt  gttƒd|  dt  tfd|   d d|  tdƒ t d  t tfd|   d d|  tdƒ t d  t tfhks¾J ‚tddtd   tdtd  dtd   ƒ dt t tdtd  ƒ tdtd  ƒ gttƒt dƒ d dft dƒd dfhksFJ ‚tdd	d
\}}td|d  |d  d|  d|d  |d  d|  g||ƒ}dt dƒd  d|  |fdt dƒd   d dt dƒd  tdƒ t d  | |fdt dƒd   d dt dƒd  tdƒ t d  | |fh}||ks:J ‚d S )Nr¦   r¥   r¼   r©   rÛ   rÔ   r   rå  Tr    )r   rh   r†   r‡   r+   r   r#   r   )rx   ÚrxZryrÁ   rô   r   r   rŽ   Útest_issue_21890µ  s&    >>,þ
,*ÿÿ ÿ
@<<þr”  c                   C   sl   t td td td td dt gtttƒtjks6J ‚t td d tt td d gttgƒtjkshJ ‚d S )Nr©   r¦   r¼   rÛ   r¥   )rh   r{   r~   ry   r   r³   r†   r‡   r   r   r   rŽ   Útest_issue_22628Ä  s    6r•  N(l  Úmathr   Zsympy.core.addr   Zsympy.core.containersr   Zsympy.core.functionr   r   r   r	   Zsympy.core.modr
   Zsympy.core.numbersr   r   r   r   r   r   Zsympy.core.relationalr   r   r   r   Zsympy.core.singletonr   Zsympy.core.sortingr   Zsympy.core.symbolr   r   r   r  r   Z$sympy.functions.elementary.complexesr   r   r   r   r    r!   Z&sympy.functions.elementary.exponentialr"   r#   r$   Z%sympy.functions.elementary.hyperbolicr%   r&   r'   r(   r)   r*   Z(sympy.functions.elementary.miscellaneousr+   r,   r-   Z$sympy.functions.elementary.piecewiser.   Z(sympy.functions.elementary.trigonometricr/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   Z'sympy.functions.special.error_functionsr=   r>   r?   r@   r$  rA   Zsympy.matrices.denserB   rs  Zsympy.matrices.immutablerC   Zsympy.polys.polytoolsrD   Zsympy.polys.rootoftoolsrE   Zsympy.sets.containsrF   Zsympy.sets.conditionsetrG   Zsympy.sets.fancysetsrH   rI   Zsympy.sets.setsrJ   rK   rL   rM   rN   rO   rP   Zsympy.simplifyrQ   Zsympy.tensor.indexedrR   Zsympy.utilities.iterablesrS   Zsympy.testing.pytestrT   rU   rV   rW   rX   rY   Zsympy.core.randomrZ   r.  r‡  r[   Zsympy.solversr\   r[  r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   r\  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  r  r  r  r  r  r  r  r  r   r%  r&  r)  r+  r0  r2  r6  r7  r8  r9  rC  rD  rF  rI  rK  rL  rP  rQ  rS  rU  r]  r^  r_  ra  rc  rf  rh  rm  rn  ru  rv  rw  rŒ  r”  r•  r™  rœ  r  r   r¢  r¤  rª  r­  r¯  r°  r±  rº  r½  rÁ  rÆ  rÇ  rÉ  rÌ  rÎ  rÏ  rÐ  rÓ  rÔ  rÕ  rÜ  rß  rà  râ  rä  ré  rô  rõ  r÷  rø  rù  rú  rý  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r"  r#  r%  r&  r(  r*  r+  r,  r0  r1  r4  r5  r6  r7  r8  r<  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  rI  rJ  rN  rO  rT  r_  ra  rb  rc  ru  r{  r|  r}  r  r€  r  r‚  rƒ  r…  r†  rˆ  r‰  rŠ  r  rŽ  r  r  r‘  r’  r”  r•  r   r   r   rŽ   Ú<module>   sî     @$ d\

_
	;
'I

!	
 "

	
]R

V

$
/

4o	 	


G




















	
		
	
	0
k
R)
			