o
    oÇhS€ ã                   @   s$  d dl mZmZmZmZmZmZmZmZm	Z	m
Z
 d dlmZmZmZmZmZ d dlmZmZmZ d dl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 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, d dl-m.Z. d dl/m0Z0m1Z1m2Z2 d dl3m4Z4 d dl5m6Z6m7Z7m8Z8m9Z9 d dl:m;Z;m<Z< d dl=m>Z> d dl?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZG d dlHmIZImJZJmKZKmLZLmMZM d dlNmOZOmPZP d dlQmRZRmSZSmTZTmUZUmVZV d dlWZWdd„ ZXdd„ ZYdd„ ZZdd„ Z[dd„ Z\d d!„ Z]d"d#„ Z^d$d%„ Z_d&d'„ Z`d(d)„ Zad*d+„ Zbd,d-„ Zcd.d/„ Zdd0d1„ Zed2d3„ Zfd4d5„ Zgd6d7„ Zhd8d9„ ZieRd:d;„ ƒZjd<d=„ ZkeVd>d?„ ƒZld@dA„ ZmeRdBdC„ ƒZndDdE„ ZodFdG„ ZpeVdHdI„ ƒZqdJdK„ ZreVdLdM„ ƒZsdNdO„ ZtdPdQ„ ZudRdS„ ZvdTdU„ ZwdVdW„ ZxeRdXdY„ ƒZydZd[„ Zzd\d]„ Z{eVd^d_„ ƒZ|d`da„ Z}dbdc„ Z~ddde„ Zdfdg„ Z€eVdhdi„ ƒZdjdk„ Z‚eVdldm„ ƒZƒdndo„ Z„dpdq„ Z…drds„ Z†dtdu„ Z‡dvdw„ Zˆdxdy„ Z‰dzd{„ ZŠd|d}„ Z‹d~d„ ZŒd€d„ Zd‚dƒ„ ZŽeSd„d…„ ƒZd†d‡„ Zdˆd‰„ Z‘dŠd‹„ Z’dŒd„ Z“dŽd„ Z”dd‘„ Z•d’d“„ Z–eRd”d•„ ƒZ—d–d—„ Z˜d˜d™„ Z™dšd›„ Zšdœd„ Z›dždŸ„ Zœd d¡„ Zd¢d£„ Zžd¤d¥„ ZŸdS )¦é    )
ÚtÚwÚxÚyÚzÚnÚkÚmÚpÚi)ÚaskÚAssumptionsContextÚQÚregister_handlerÚremove_handler)ÚassumingÚglobal_assumptionsÚ	Predicate)ÚCNFÚLiteral)Úsingle_fact_lookupÚget_known_factsÚgenerate_known_facts_dictÚget_known_facts_keys)Ú
AskHandler)Úget_all_known_factsÚget_known_facts_dict)ÚAdd)ÚIÚIntegerÚRationalÚooÚzooÚpi)ÚS)ÚPow)ÚStrÚsymbolsÚSymbol)Ú	factorial)ÚAbsÚimÚreÚsign)ÚexpÚlog)Úsqrt)ÚacosÚacotÚasinÚatanÚcosÚcotÚsinÚtan)Ú
EquivalentÚImpliesÚXorÚAndÚto_cnf)ÚMatrixÚSparseMatrix)ÚXFAILÚslowÚraisesÚwarns_deprecated_sympyÚ_both_exp_powNc                  C   sh  d} t t | ¡ƒdu sJ ‚t t | ¡ƒdu sJ ‚t t | ¡ƒdu s#J ‚t t | ¡ƒdu s.J ‚t t | ¡ƒdu s9J ‚t t | ¡ƒdu sDJ ‚t t | ¡ƒdu sOJ ‚t t 	| ¡ƒdu sZJ ‚t t 
| ¡ƒdu seJ ‚t t | ¡ƒdu spJ ‚t t | ¡ƒdu s{J ‚t t | ¡ƒdu s†J ‚t t | ¡ƒdu s‘J ‚t t | ¡ƒdu sœJ ‚t t | ¡ƒdu s§J ‚t t | ¡ƒdu s²J ‚d S )Né   TF©r   r   ÚcommutativeÚintegerÚrationalÚrealÚcomplexÚ
irrationalÚ	imaginaryÚpositiveÚnegativeÚevenÚoddÚfiniteÚprimeÚ	compositeÚ	hermitianÚantihermitian©r   © rX   úv/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/sympy/assumptions/tests/test_query.pyÚ
test_int_1   ó"   rZ   c                  C   sh  d} t t | ¡ƒdu sJ ‚t t | ¡ƒdu sJ ‚t t | ¡ƒdu s#J ‚t t | ¡ƒdu s.J ‚t t | ¡ƒdu s9J ‚t t | ¡ƒdu sDJ ‚t t | ¡ƒdu sOJ ‚t t 	| ¡ƒdu sZJ ‚t t 
| ¡ƒdu seJ ‚t t | ¡ƒdu spJ ‚t t | ¡ƒdu s{J ‚t t | ¡ƒdu s†J ‚t t | ¡ƒdu s‘J ‚t t | ¡ƒdu sœJ ‚t t | ¡ƒdu s§J ‚t t | ¡ƒdu s²J ‚d S )Né   TFrF   rW   rX   rX   rY   Útest_int_111   r[   r]   c                  C   sh  d} t t | ¡ƒdu sJ ‚t t | ¡ƒdu sJ ‚t t | ¡ƒdu s#J ‚t t | ¡ƒdu s.J ‚t t | ¡ƒdu s9J ‚t t | ¡ƒdu sDJ ‚t t | ¡ƒdu sOJ ‚t t 	| ¡ƒdu sZJ ‚t t 
| ¡ƒdu seJ ‚t t | ¡ƒdu spJ ‚t t | ¡ƒdu s{J ‚t t | ¡ƒdu s†J ‚t t | ¡ƒdu s‘J ‚t t | ¡ƒdu sœJ ‚t t | ¡ƒdu s§J ‚t t | ¡ƒdu s²J ‚d S )Né   TFrF   rW   rX   rX   rY   Útest_int_12E   r[   r_   c                  C   sú  d} t t | ¡ƒdu sJ ‚t t | ¡ƒd u sJ ‚t t | ¡ƒd u s#J ‚t t | ¡ƒdu s.J ‚t t | ¡ƒdu s9J ‚t t | ¡ƒd u sDJ ‚t t | ¡ƒdu sOJ ‚t t 	| ¡ƒdu sZJ ‚t t 
| ¡ƒdu seJ ‚t t | ¡ƒd u spJ ‚t t | ¡ƒd u s{J ‚t t | ¡ƒdu s†J ‚t t | ¡ƒd u s‘J ‚t t | ¡ƒd u sœJ ‚t t | ¡ƒdu s§J ‚t t | ¡ƒdu s²J ‚d} t t | ¡ƒdu s¿J ‚t t | ¡ƒdu sÊJ ‚t t | ¡ƒd u sÕJ ‚t t | ¡ƒdu sàJ ‚t t | ¡ƒdu sëJ ‚t t | ¡ƒd u söJ ‚t t | ¡ƒdu sJ ‚t t 	| ¡ƒdu sJ ‚t t 
| ¡ƒdu sJ ‚t t | ¡ƒdu s&J ‚t t | ¡ƒdu s2J ‚t t | ¡ƒdu s>J ‚t t | ¡ƒdu sJJ ‚t t | ¡ƒdu sVJ ‚t t | ¡ƒdu sbJ ‚t t | ¡ƒdu snJ ‚t t tj¡ƒd u s{J ‚d S )Nç      ð?TFgaÃÓ+eÙ@)r   r   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   Úmathr#   rW   rX   rX   rY   Útest_float_1Y   sF   rb   c                  C   s‚  t dƒ} tt | ¡ƒdu sJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s%J ‚tt | ¡ƒdu s0J ‚tt | ¡ƒdu s;J ‚tt | ¡ƒdu sFJ ‚tt 	| ¡ƒdu sQJ ‚tt 
| ¡ƒdu s\J ‚tt | ¡ƒdu sgJ ‚tt | ¡ƒdu srJ ‚tt | ¡ƒdu s}J ‚tt | ¡ƒdu sˆJ ‚tt | ¡ƒdu s“J ‚tt | ¡ƒdu sžJ ‚tt | ¡ƒdu s©J ‚tt | ¡ƒdu s´J ‚tt | ¡ƒdu s¿J ‚d S )Nr   FT)r   r   r   ÚnonzeroÚzerorG   rH   rI   rJ   rK   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rX   rY   Útest_zero_0‚   s$   re   c                  C   s˜  t dƒ} tt | ¡ƒdu sJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s%J ‚tt | ¡ƒdu s0J ‚tt | ¡ƒdu s;J ‚tt | ¡ƒdu sFJ ‚tt 	| ¡ƒdu sQJ ‚tt 
| ¡ƒdu s\J ‚tt | ¡ƒdu sgJ ‚tt | ¡ƒdu srJ ‚tt | ¡ƒdu s}J ‚tt | ¡ƒdu sˆJ ‚tt | ¡ƒdu s“J ‚tt | ¡ƒdu sžJ ‚tt | ¡ƒdu s©J ‚tt | ¡ƒdu s´J ‚tt | ¡ƒdu s¿J ‚tt | ¡ƒdu sÊJ ‚d S )NéÿÿÿÿTF)r   r   r   rc   rd   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rX   rY   Útest_negativeone—   s&   rg   c                   C   sè  t t t¡ƒdu sJ ‚t t t¡ƒdu sJ ‚t t t¡ƒdu s!J ‚t t t¡ƒdu s,J ‚t t t¡ƒdu s7J ‚t t t¡ƒdu sBJ ‚t t 	t¡ƒdu sMJ ‚t t 
t¡ƒdu sXJ ‚t t t¡ƒdu scJ ‚t t t¡ƒdu snJ ‚t t t¡ƒdu syJ ‚t t t¡ƒdu s„J ‚t t t¡ƒdu sJ ‚t t t¡ƒdu sšJ ‚t t t¡ƒdu s¥J ‚t t t¡ƒdu s°J ‚t t t¡ƒdu s»J ‚t t t¡ƒdu sÆJ ‚t t t¡ƒdu sÑJ ‚t t t¡ƒdu sÜJ ‚t t t¡ƒdu sçJ ‚t t t¡ƒdu sòJ ‚d S ©NTF)r   r   rG   r!   rH   rI   Ú	algebraicrJ   Úextended_realrK   rL   rM   rN   Úextended_positiverO   rP   rQ   rR   ÚinfiniterS   rT   rU   rV   Úpositive_infiniteÚnegative_infiniterX   rX   rX   rY   Útest_infinity­   s,   ro   c                  C   sò  t j} tt | ¡ƒdu sJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s$J ‚tt | ¡ƒdu s/J ‚tt | ¡ƒdu s:J ‚tt 	| ¡ƒdu sEJ ‚tt 
| ¡ƒdu sPJ ‚tt | ¡ƒdu s[J ‚tt | ¡ƒdu sfJ ‚tt | ¡ƒdu sqJ ‚tt | ¡ƒdu s|J ‚tt | ¡ƒdu s‡J ‚tt | ¡ƒdu s’J ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s¨J ‚tt t¡ƒdu s³J ‚tt | ¡ƒdu s¾J ‚tt | ¡ƒdu sÉJ ‚tt | ¡ƒdu sÔJ ‚tt | ¡ƒdu sßJ ‚tt t ¡ƒdu sëJ ‚tt t ¡ƒdu s÷J ‚d S rh   )r$   ÚNegativeInfinityr   r   rG   rH   rI   ri   rJ   rj   rK   rL   rM   rN   rO   Úextended_negativerP   rQ   rR   rl   r!   rS   rT   rU   rV   rm   rn   )ÚmmrX   rX   rY   Útest_neg_infinityÆ   s.   rs   c                   C   sþ  t t t¡ƒdu sJ ‚t t t¡ƒdu sJ ‚t t t¡ƒdu s!J ‚t t t¡ƒdu s,J ‚t t t¡ƒdu s7J ‚t t t¡ƒdu sBJ ‚t t 	t¡ƒdu sMJ ‚t t 
t¡ƒdu sXJ ‚t t t¡ƒdu scJ ‚t t t¡ƒdu snJ ‚t t t¡ƒdu syJ ‚t t t¡ƒdu s„J ‚t t t¡ƒdu sJ ‚t t t¡ƒdu sšJ ‚t t t¡ƒdu s¥J ‚t t t¡ƒdu s°J ‚t t t¡ƒdu s»J ‚t t t¡ƒdu sÆJ ‚t t t¡ƒdu sÑJ ‚t t t¡ƒdu sÜJ ‚t t t¡ƒdu sçJ ‚t t t¡ƒdu sòJ ‚t t t¡ƒdu sýJ ‚d S rh   )r   r   rG   r"   rH   rI   ri   rJ   rj   rK   rL   rM   rN   rO   rd   rc   rP   rQ   rR   rl   rS   rT   rU   rV   rm   rn   rX   rX   rX   rY   Útest_complex_infinityà   s.   rt   c                  C   sÂ  t j} tt | ¡ƒdu sJ ‚tt | ¡ƒd u sJ ‚tt | ¡ƒd u s$J ‚tt | ¡ƒd u s/J ‚tt | ¡ƒd u s:J ‚tt 	| ¡ƒd u sEJ ‚tt 
| ¡ƒd u sPJ ‚tt | ¡ƒd u s[J ‚tt | ¡ƒd u sfJ ‚tt | ¡ƒd u sqJ ‚tt | ¡ƒd u s|J ‚tt | ¡ƒd u s‡J ‚tt | ¡ƒd u s’J ‚tt | ¡ƒd u sJ ‚tt | ¡ƒd u s¨J ‚tt | ¡ƒd u s³J ‚tt | ¡ƒd u s¾J ‚tt | ¡ƒd u sÉJ ‚tt | ¡ƒd u sÔJ ‚tt | ¡ƒd u sßJ ‚d S ©NT)r$   ÚNaNr   r   rG   rH   rI   ri   rJ   rj   rK   rL   rM   rN   rc   rd   rP   rQ   rR   rl   rS   rT   rU   rV   )ÚnanrX   rX   rY   Útest_nanú   s*   rx   c                  C   sú  t ddƒ} tt | ¡ƒdu sJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s&J ‚tt | ¡ƒdu s1J ‚tt | ¡ƒdu s<J ‚tt | ¡ƒdu sGJ ‚tt 	| ¡ƒdu sRJ ‚tt 
| ¡ƒdu s]J ‚tt | ¡ƒdu shJ ‚tt | ¡ƒdu ssJ ‚tt | ¡ƒdu s~J ‚tt | ¡ƒdu s‰J ‚tt | ¡ƒdu s”J ‚tt | ¡ƒdu sŸJ ‚tt | ¡ƒdu sªJ ‚tt | ¡ƒdu sµJ ‚t ddƒ} tt 
| ¡ƒdu sÅJ ‚tt | ¡ƒdu sÐJ ‚t ddƒ} tt | ¡ƒdu sàJ ‚tt 
| ¡ƒdu sëJ ‚t ddƒ} tt 
| ¡ƒdu sûJ ‚tt | ¡ƒdu sJ ‚t ddƒ} tt 
| ¡ƒdu sJ ‚tt | ¡ƒdu s$J ‚t ddƒ} tt 
| ¡ƒdu s5J ‚tt | ¡ƒdu sAJ ‚t d	dƒ} tt | ¡ƒdu sRJ ‚tt 
| ¡ƒdu s^J ‚t d	dƒ} tt 
| ¡ƒdu soJ ‚tt | ¡ƒdu s{J ‚d S )
Né   é   TFrE   é   éýÿÿÿrf   éûÿÿÿ)r    r   r   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   )ÚrrX   rX   rY   Útest_Rational_number  sL   







r   c                  C   sl  t dƒ} tt | ¡ƒdu sJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s%J ‚tt | ¡ƒdu s0J ‚tt | ¡ƒdu s;J ‚tt | ¡ƒdu sFJ ‚tt 	| ¡ƒdu sQJ ‚tt 
| ¡ƒdu s\J ‚tt | ¡ƒdu sgJ ‚tt | ¡ƒdu srJ ‚tt | ¡ƒdu s}J ‚tt | ¡ƒdu sˆJ ‚tt | ¡ƒdu s“J ‚tt | ¡ƒdu sžJ ‚tt | ¡ƒdu s©J ‚tt | ¡ƒdu s´J ‚d S )Né   TF)r0   r   r   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rX   rY   Útest_sqrt_2B  s"   r   c                  C   s  t j} tt | ¡ƒdu sJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s$J ‚tt | ¡ƒdu s/J ‚tt | ¡ƒdu s:J ‚tt 	| ¡ƒdu sEJ ‚tt 
| ¡ƒdu sPJ ‚tt | ¡ƒdu s[J ‚tt | ¡ƒdu sfJ ‚tt | ¡ƒdu sqJ ‚tt | ¡ƒdu s|J ‚tt | ¡ƒdu s‡J ‚tt | ¡ƒdu s’J ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s¨J ‚tt | ¡ƒdu s³J ‚tt | ¡ƒdu s¾J ‚t jd } tt | ¡ƒdu sÎJ ‚tt | ¡ƒdu sÙJ ‚tt | ¡ƒdu säJ ‚tt | ¡ƒdu sïJ ‚tt | ¡ƒdu súJ ‚tt 	| ¡ƒdu sJ ‚tt 
| ¡ƒdu sJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s*J ‚tt | ¡ƒdu s6J ‚tt | ¡ƒdu sBJ ‚tt | ¡ƒdu sNJ ‚tt | ¡ƒdu sZJ ‚tt | ¡ƒdu sfJ ‚tt | ¡ƒdu srJ ‚tt | ¡ƒdu s~J ‚tt | ¡ƒdu sŠJ ‚dt j } tt | ¡ƒdu s›J ‚tt | ¡ƒdu s§J ‚tt | ¡ƒdu s³J ‚tt | ¡ƒdu s¿J ‚tt | ¡ƒdu sËJ ‚tt 	| ¡ƒdu s×J ‚tt 
| ¡ƒdu sãJ ‚tt | ¡ƒdu sïJ ‚tt | ¡ƒdu sûJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s+J ‚tt | ¡ƒdu s7J ‚tt | ¡ƒdu sCJ ‚tt | ¡ƒdu sOJ ‚tt | ¡ƒdu s[J ‚t jd } tt | ¡ƒdu slJ ‚tt | ¡ƒdu sxJ ‚tt | ¡ƒdu s„J ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu sœJ ‚tt 	| ¡ƒdu s¨J ‚tt 
| ¡ƒdu s´J ‚tt | ¡ƒdu sÀJ ‚tt | ¡ƒdu sÌJ ‚tt | ¡ƒdu sØJ ‚tt | ¡ƒdu säJ ‚tt | ¡ƒdu sðJ ‚tt | ¡ƒdu süJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s J ‚tt | ¡ƒdu s,J ‚dt j d } tt | ¡ƒdu s?J ‚tt | ¡ƒdu sKJ ‚tt | ¡ƒdu sWJ ‚tt | ¡ƒdu scJ ‚tt | ¡ƒdu soJ ‚tt 	| ¡ƒdu s{J ‚tt 
| ¡ƒdu s‡J ‚tt | ¡ƒdu s“J ‚tt | ¡ƒdu sŸJ ‚tt | ¡ƒdu s«J ‚tt | ¡ƒdu s·J ‚tt | ¡ƒdu sÃJ ‚tt | ¡ƒdu sÏJ ‚tt | ¡ƒdu sÛJ ‚tt | ¡ƒdu sçJ ‚tt | ¡ƒdu sóJ ‚tt | ¡ƒdu sÿJ ‚d S ©NTFrE   r€   )r$   ÚPir   r   rG   rH   rI   ri   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rX   rY   Útest_piV  s´   


r„   c                  C   s€  t j} tt | ¡ƒdu sJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s$J ‚tt | ¡ƒdu s/J ‚tt | ¡ƒdu s:J ‚tt 	| ¡ƒdu sEJ ‚tt 
| ¡ƒdu sPJ ‚tt | ¡ƒdu s[J ‚tt | ¡ƒdu sfJ ‚tt | ¡ƒdu sqJ ‚tt | ¡ƒdu s|J ‚tt | ¡ƒdu s‡J ‚tt | ¡ƒdu s’J ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s¨J ‚tt | ¡ƒdu s³J ‚tt | ¡ƒdu s¾J ‚d S rh   )r$   ÚExp1r   r   rG   rH   rI   ri   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rX   rY   Útest_E·  ó$   r†   c                  C   ó€  t j} tt | ¡ƒdu sJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s$J ‚tt | ¡ƒdu s/J ‚tt | ¡ƒdu s:J ‚tt 	| ¡ƒdu sEJ ‚tt 
| ¡ƒdu sPJ ‚tt | ¡ƒdu s[J ‚tt | ¡ƒdu sfJ ‚tt | ¡ƒdu sqJ ‚tt | ¡ƒdu s|J ‚tt | ¡ƒdu s‡J ‚tt | ¡ƒdu s’J ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s¨J ‚tt | ¡ƒdu s³J ‚tt | ¡ƒdu s¾J ‚d S rh   )r$   ÚGoldenRatior   r   rG   rH   rI   ri   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rX   rY   Útest_GoldenRatioÌ  r‡   rŠ   c                  C   rˆ   rh   )r$   ÚTribonacciConstantr   r   rG   rH   rI   ri   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rX   rY   Útest_TribonacciConstantá  r‡   rŒ   c                  C   sj  t } tt | ¡ƒdu sJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s#J ‚tt | ¡ƒdu s.J ‚tt | ¡ƒdu s9J ‚tt | ¡ƒdu sDJ ‚tt 	| ¡ƒdu sOJ ‚tt 
| ¡ƒdu sZJ ‚tt | ¡ƒdu seJ ‚tt | ¡ƒdu spJ ‚tt | ¡ƒdu s{J ‚tt | ¡ƒdu s†J ‚tt | ¡ƒdu s‘J ‚tt | ¡ƒdu sœJ ‚tt | ¡ƒdu s§J ‚tt | ¡ƒdu s²J ‚tt | ¡ƒdu s½J ‚dt  } tt | ¡ƒdu sÌJ ‚tt | ¡ƒdu s×J ‚tt | ¡ƒdu sâJ ‚tt | ¡ƒdu síJ ‚tt | ¡ƒdu søJ ‚tt | ¡ƒdu sJ ‚tt 	| ¡ƒdu sJ ‚tt 
| ¡ƒdu sJ ‚tt | ¡ƒdu s(J ‚tt | ¡ƒdu s4J ‚tt | ¡ƒdu s@J ‚tt | ¡ƒdu sLJ ‚tt | ¡ƒdu sXJ ‚tt | ¡ƒdu sdJ ‚tt | ¡ƒdu spJ ‚tt | ¡ƒdu s|J ‚tt | ¡ƒdu sˆJ ‚t dt   } tt | ¡ƒdu sšJ ‚tt | ¡ƒdu s¦J ‚tt | ¡ƒdu s²J ‚tt | ¡ƒdu s¾J ‚tt | ¡ƒdu sÊJ ‚tt | ¡ƒdu sÖJ ‚tt 	| ¡ƒdu sâJ ‚tt 
| ¡ƒdu sîJ ‚tt | ¡ƒdu súJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s*J ‚tt | ¡ƒdu s6J ‚tt | ¡ƒdu sBJ ‚tt | ¡ƒdu sNJ ‚tt | ¡ƒdu sZJ ‚t t  } tt 
| ¡ƒdu sjJ ‚tt | ¡ƒdu svJ ‚t  t  } tt 
| ¡ƒdu s‡J ‚tt | ¡ƒdu s“J ‚dt  t  } tt 
| ¡ƒdu s¥J ‚tt | ¡ƒdu s±J ‚dt  } tt 
| ¡ƒdu sÁJ ‚tt | ¡ƒdu sÍJ ‚dt  } tt 
| ¡ƒdu sÝJ ‚tt | ¡ƒdu séJ ‚dt  t  } tt 
| ¡ƒdu sûJ ‚tt | ¡ƒdu sJ ‚t t d  } tt 
| ¡ƒdu sJ ‚tt | ¡ƒdu s%J ‚t t d  } tt 
| ¡ƒdu s7J ‚tt | ¡ƒdu sCJ ‚t d } tt 
| ¡ƒdu sSJ ‚tt | ¡ƒdu s_J ‚t d } tt 
| ¡ƒdu soJ ‚tt | ¡ƒdu s{J ‚dt  } tt 
| ¡ƒdu s‹J ‚tt | ¡ƒdu s—J ‚t d } tt 
| ¡ƒdu s§J ‚tt | ¡ƒdu s³J ‚d S )NTFrE   ry   rf   r€   r   )r   r   r   rG   rH   rI   ri   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rX   rY   Útest_Iö  s´   
r   c                  C   sF3  t dƒ\} }}| | }|j\} }tt |¡t |¡ƒd u sJ ‚tt | ¡ƒd u s*J ‚tt | ¡t | ¡ƒdu s9J ‚tt | ¡t |¡ƒd u sHJ ‚tt | ¡t | ¡ƒdu sWJ ‚tt | ¡t | ¡ƒd u sfJ ‚tt | d ¡ƒd u ssJ ‚tt | d ¡t | ¡ƒdu s„J ‚| | }|j\} }tt |¡t | ¡t |¡@ ƒdu s¡J ‚tt |¡t | ¡t |¡@ ƒdu sµJ ‚tt |¡t | ¡t |¡@ ƒdu sÉJ ‚tt |¡t | ¡t |¡@ ƒdu sÝJ ‚tt |¡t | ¡t |¡@ t |¡ @ ƒdu s÷J ‚tt |¡t | ¡t | ¡ @ t |¡@ ƒdu sJ ‚tt |¡t | ¡t |¡@ t | ¡ @ t |¡ @ ƒdu s3J ‚tt |¡t | ¡t |¡ @ ƒdu sIJ ‚tt |¡t | ¡t |¡ @ ƒdu s_J ‚tt |¡t | ¡t |¡@ ƒdu stJ ‚tt |¡t | ¡t |¡@ ƒdu s‰J ‚tt |¡t | ¡t |¡ @ t |¡ @ ƒdu s¥J ‚tt |¡t | ¡t | ¡ @ t |¡@ ƒdu sÀJ ‚tt |¡t | ¡t | ¡ @ t |¡ @ t |¡ @ ƒdu sâJ ‚tt |¡t | ¡ƒd u sòJ ‚tt |¡t | ¡ƒd u sJ ‚tt |¡t | ¡t 	|¡@ ƒd u sJ ‚tt |¡t | ¡t 	|¡@ ƒd u s,J ‚tt |¡t | ¡t |¡ @ ƒd u sBJ ‚tt |¡t | ¡t | ¡ @ t 	|¡@ ƒd u s]J ‚tt |¡t | ¡t | ¡ @ t |¡ @ ƒd u syJ ‚tt |¡t | ¡ t |¡ @ ƒd u sJ ‚tt |¡t | ¡t |¡ @ ƒd u s¦J ‚tt |¡t | ¡ t |¡@ ƒd u s¼J ‚tt |¡t | ¡t |¡@ ƒdu sÑJ ‚tt |¡t | ¡t |¡ @ t 	|¡ @ ƒd u síJ ‚tt |¡t | ¡ t 	| ¡ @ t |¡@ ƒd u s	J ‚tt |¡t | ¡ t |¡ @ t 	| ¡ @ t 	|¡ @ ƒdu s,J ‚tt |¡t |¡ ƒd u s=J ‚tt |¡t 	| ¡t |¡ @ ƒd u sSJ ‚tt |¡t |¡ƒd u scJ ‚tt |¡t 	| ¡t |¡@ ƒdu sxJ ‚tt |¡t 	| ¡t |¡ @ t 	|¡ @ ƒd u s”J ‚tt |¡t 	| ¡ t |¡@ ƒd u sªJ ‚tt |¡t 	| ¡ t |¡ @ t 	|¡ @ ƒdu sÇJ ‚tt |¡ƒd u sÓJ ‚tt |¡t 	| ¡ƒd u sãJ ‚tt |¡t 	|¡ƒd u sóJ ‚tt |¡t 	| ¡t 	|¡@ ƒd u sJ ‚tt |¡t 	| ¡t 	|¡ @ ƒd u sJ ‚tt |¡t 	| ¡ t 	|¡@ ƒd u s4J ‚tt |¡t 	| ¡ t 	|¡ @ ƒd u sKJ ‚t dƒ\} }}| | | }|j\} }}tt |¡t 
| ¡t 
|¡@ t 
|¡@ ƒdu sxJ ‚tt |¡t 
| ¡t 
|¡@ t |¡@ ƒdu s’J ‚tt |¡t 
| ¡t 
|¡@ t |¡@ ƒdu s¬J ‚tt |¡t 
| ¡t 
|¡@ t |¡@ ƒdu sÆJ ‚tt |¡t 
| ¡t 
|¡@ t |¡ @ ƒdu sáJ ‚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 |¡t 
| ¡t 
|¡@ t 	|¡@ ƒd u sDJ ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒdu s^J ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒdu sxJ ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒdu s’J ‚tt |¡t 
| ¡t |¡@ t |¡ @ ƒdu s­J ‚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 |¡t 
| ¡t |¡@ t 	|¡@ ƒd u sJ ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒdu s*J ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒdu sDJ ‚tt |¡t 
| ¡t |¡@ t |¡ @ ƒdu s_J ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒdu syJ ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒd u s“J ‚tt |¡t 
| ¡t 	|¡@ t |¡@ ƒd u s­J ‚tt |¡t 
| ¡t |¡@ t 	|¡@ ƒd u sÇJ ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒdu sáJ ‚tt |¡t 
| ¡t |¡@ t |¡ @ ƒd u süJ ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒd u sJ ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒdu s0J ‚tt |¡t 
| ¡t |¡@ ƒd u sEJ ‚tt |¡t 
| ¡t |¡@ t 	|¡@ ƒd u s_J ‚tt |¡t 
| ¡t |¡ @ t |¡ @ ƒd u s{J ‚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 |¡t 
| ¡t |¡ @ t 	|¡@ ƒd u sâJ ‚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 |¡t 
| ¡t |¡@ t 	|¡@ ƒdu sEJ ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒd u s_J ‚tt |¡t 
| ¡t |¡@ ƒd u stJ ‚tt |¡t 
| ¡t |¡@ t 	|¡@ ƒd u sŽJ ‚tt |¡t 
| ¡ƒd u sžJ ‚tt |¡t 
| ¡t 	|¡@ ƒd u s³J ‚tt |¡t 
| ¡t 	|¡@ t 	|¡@ ƒd u sÍJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu sçJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu 	sJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu 	sJ ‚tt |¡t | ¡t |¡@ t |¡ @ ƒdu 	s6J ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu 	sPJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u 	sjJ ‚tt |¡t | ¡t |¡@ ƒd u 	sJ ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒd u 	s™J ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu 	s³J ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu 	sÍJ ‚tt |¡t | ¡t |¡@ t |¡ @ ƒdu 	sèJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu 
sJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u 
sJ ‚tt |¡t | ¡t |¡@ ƒd u 
s1J ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒd u 
sKJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu 
seJ ‚tt |¡t | ¡t |¡@ t |¡ @ ƒd u 
s€J ‚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 |¡t | ¡t |¡@ t 	|¡@ ƒd u 
sãJ ‚tt |¡t | ¡t |¡ @ t |¡ @ ƒd u 
sÿJ ‚tt |¡t | ¡t |¡ @ t |¡@ ƒd u sJ ‚tt |¡t | ¡t |¡ @ t |¡@ ƒd u s5J ‚tt |¡t | ¡t |¡ @ ƒd u sKJ ‚tt |¡t | ¡t |¡ @ t 	|¡@ ƒd u sfJ ‚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 |¡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 |¡t | ¡t |¡@ t 	|¡@ ƒd u sJ ‚tt |¡t | ¡ƒd u s"J ‚tt |¡t | ¡t 	|¡@ ƒd u s7J ‚tt |¡t | ¡t 	|¡@ t 	|¡@ ƒd u sQJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu skJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu s…J ‚tt |¡t | ¡t |¡@ t |¡ @ ƒdu s J ‚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 |¡t | ¡t |¡@ t 	|¡@ ƒd u sJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu sJ ‚tt |¡t | ¡t |¡@ t |¡ @ ƒd u s8J ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u sRJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu slJ ‚tt |¡t | ¡t |¡@ ƒd u sJ ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒd u s›J ‚tt |¡t | ¡t |¡ @ t |¡ @ ƒd u s·J ‚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 |¡t | ¡t |¡ @ t 	|¡@ ƒd u sJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu s8J ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u sRJ ‚tt |¡t | ¡t |¡@ ƒd u sgJ ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒdu sJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u s›J ‚tt |¡t | ¡t |¡@ ƒd u s°J ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒd u sÊJ ‚tt |¡t | ¡ƒd u sÚJ ‚tt |¡t | ¡t 	|¡@ ƒd u sïJ ‚tt |¡t | ¡t 	|¡@ t 	|¡@ ƒd u s	J ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu s#J ‚tt |¡t | ¡t |¡@ t |¡ @ ƒd u s>J ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u sXJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu srJ ‚tt |¡t | ¡t |¡@ ƒd u s‡J ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒd u s¡J ‚tt |¡t | ¡t |¡ @ t |¡ @ ƒd u s½J ‚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 |¡t | ¡t |¡ @ t 	|¡@ ƒd u s$J ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u s>J ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u sXJ ‚tt |¡t | ¡t |¡@ ƒd u smJ ‚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 |¡t | ¡t |¡@ t 	|¡@ ƒd u sÐJ ‚tt |¡t | ¡ƒd u sàJ ‚tt |¡t | ¡t 	|¡@ ƒd u sõJ ‚tt |¡t | ¡t 	|¡@ t 	|¡@ ƒd u sJ ‚tt |¡t | ¡ t |¡ @ t |¡ @ ƒd u s,J ‚tt |¡t | ¡ t |¡@ t |¡ @ ƒd u sHJ ‚tt |¡t | ¡ t |¡ @ t |¡@ ƒd u sdJ ‚tt |¡t | ¡ t |¡ @ ƒd u s{J ‚tt |¡t | ¡ t |¡ @ t 	|¡@ ƒd u s—J ‚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 |¡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 |¡t | ¡ t |¡@ t 	|¡@ ƒd u sJJ ‚tt |¡t | ¡ ƒd u s[J ‚tt |¡t | ¡ t 	|¡@ ƒd u sqJ ‚tt |¡t | ¡ t 	|¡@ t 	|¡@ ƒd u sŒJ ‚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 |¡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 |¡t | ¡t |¡@ t 	|¡@ ƒd u s8J ‚tt |¡t | ¡ƒd u sHJ ‚tt |¡t | ¡t 	|¡@ ƒd u s]J ‚tt |¡t | ¡t 	|¡@ t 	|¡@ ƒdu swJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u s‘J ‚tt |¡t | ¡t |¡@ ƒd u s¦J ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒd u sÀJ ‚tt |¡t | ¡ƒd u sÐJ ‚tt |¡t | ¡t 	|¡@ ƒd u såJ ‚tt |¡t | ¡t 	|¡@ t 	|¡@ ƒd u sÿJ ‚tt |¡ƒd u sJ ‚tt |¡t 	|¡ƒd u sJ ‚tt |¡t 	|¡t 	|¡@ ƒd u s0J ‚tt |¡t 	| ¡t 	|¡@ t 	|¡@ ƒd u sJJ ‚tt d|  ¡ƒd u sXJ ‚tt d|  ¡t | ¡ƒdu sjJ ‚t dƒ\} }}| | }|j\} }tt |¡t | ¡t |¡@ ƒdu sJ ‚tt |¡t | ¡t |¡ @ ƒdu s¥J ‚tt |¡t | ¡ƒd u sµJ ‚tt |¡t | ¡ t |¡@ ƒdu sËJ ‚tt |¡t | ¡ t |¡ @ ƒdu sâJ ‚tt |¡t | ¡ ƒd u sóJ ‚tt |¡t |¡ƒd u sJ ‚tt |¡t |¡ ƒd u sJ ‚tt |¡ƒd u s J ‚| | | }|j\} }}tt |¡t | ¡t |¡@ t |¡@ ƒdu sFJ ‚tt |¡t | ¡t |¡@ t |¡ @ ƒdu saJ ‚tt |¡t | ¡t |¡@ ƒd u svJ ‚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 |¡t | ¡t |¡@ ƒd u sØJ ‚tt |¡t | ¡t |¡ @ ƒd u sîJ ‚tt |¡t | ¡ƒd u sþJ ‚tt |¡t | ¡ t |¡@ t |¡@ ƒdu sJ ‚tt |¡t | ¡ t |¡@ t |¡ @ ƒdu s5J ‚tt |¡t | ¡ t |¡@ ƒd u sKJ ‚tt |¡t | ¡ t |¡ @ t |¡@ ƒdu sgJ ‚tt |¡t | ¡ t |¡ @ t |¡ @ ƒdu s„J ‚tt |¡t | ¡ t |¡ @ ƒd u s›J ‚tt |¡t | ¡ t |¡@ ƒd u s±J ‚tt |¡t | ¡ t |¡ @ ƒd u sÈJ ‚tt |¡t | ¡ ƒd u sÙJ ‚tt |¡t |¡t |¡@ ƒd u sîJ ‚tt |¡t |¡t |¡ @ ƒd u sJ ‚tt |¡t |¡ƒd u sJ ‚tt |¡t |¡ t |¡@ ƒd u s*J ‚tt |¡t |¡ t |¡ @ ƒd u sAJ ‚tt |¡t |¡ ƒd u sRJ ‚tt |¡t |¡ƒd u sbJ ‚tt |¡t |¡ ƒd u ssJ ‚tt |¡t |¡ t | ¡@ t |¡@ t |¡@ ƒd u s“J ‚tt |¡t | ¡t |¡ @ t |¡@ t |¡ @ t |¡@ ƒdu s¹J ‚t dƒ\} }}tt | d ¡ƒd u sÎJ ‚tt d|  ¡ƒd u sÜJ ‚tt d|  ¡t | ¡ƒdu sîJ ‚tt | |  ¡ƒd u süJ ‚tt tj|  ¡ƒd u sJ ‚tt tj|  ¡t 	| ¡ƒdu sJ ‚tt tj|  ¡t | ¡ƒd u s1J ‚tt d|  ¡t | ¡ƒdu sCJ ‚tt t| ƒ¡ƒd u sQJ ‚tt d|  ¡t | ¡ ƒdu sdJ ‚tt | d ¡t | ¡ ƒdu swJ ‚tt t| ƒ¡ƒdu s…J ‚tt t| ƒ¡t | ¡ ƒdu s˜J ‚tt t| ƒ¡ƒd u s¦J ‚tt t| ƒ¡t | ¡ƒd u s¸J ‚tt t| ƒ¡t | ¡ ƒdu sËJ ‚tt t| ƒ¡t | ¡ƒdu sÝJ ‚tt t| ƒ¡t | ¡ƒdu sïJ ‚tt t| ƒ¡ƒd u sýJ ‚tt t| ƒ¡t | ¡ƒdu sJ ‚tt tdƒ¡ƒdu sJ ‚tt t| ƒ¡ƒdu s+J ‚tt t| ƒ¡t | ¡ ƒdu s>J ‚tt t| ƒ¡ƒdu sLJ ‚tt t| ƒ¡t | ¡ ƒdu s_J ‚tt dt| ƒ ¡ƒdu soJ ‚tt t| ƒd ¡ƒdu sJ ‚tt t| ƒd ¡ƒdu sJ ‚tt t| ƒt| ƒ ¡ƒdu s¡J ‚d S )Nzx,y,zTrE   Fr€   )r'   Úargsr   r   rR   rm   rK   rj   rN   rk   rO   rn   rq   Úextended_nonzeror$   ÚHalfr0   r-   r/   rd   rl   r.   r7   r5   )r   r   r   ÚarX   rX   rY   Útest_bounded`  sŠ  
"
((((
ÿÿÿ
ÿ(
ÿ
ÿ,,ÿ
ÿÿ
ÿ
ÿ
ÿÿ
ÿ*
ÿ
ÿ  ÿ
ÿÿ
ÿ,ÿ
ÿ
ÿ
ÿ.
ÿ
ÿÿ
ÿÿ
ÿ
ÿ
ÿ ÿ
ÿ 
ÿ
ÿ
ÿ"
ÿ
ÿ ÿ
ÿ
ÿ
ÿ
ÿÿ
ÿ 
ÿ
ÿ  ÿ
ÿ
ÿ
ÿÿ
ÿ
ÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿ
ÿ
ÿÿ
ÿÿ
ÿ*ÿ
ÿÿ
ÿÿ
ÿÿ
ÿ
ÿ
ÿÿ
ÿÿ
ÿ*ÿ
ÿÿ
ÿÿ
ÿ
ÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿ
ÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿ
ÿ
ÿÿ
ÿÿ
ÿ,ÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿ ÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿ
ÿ
ÿÿ
ÿÿ
ÿ*ÿ
ÿÿ
ÿÿ
ÿ
ÿ
ÿÿ
ÿÿ
ÿ*ÿ
ÿÿ
ÿ
ÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿ
ÿ
ÿÿ
ÿÿ
ÿ,ÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿ ÿ
ÿÿ
ÿÿ
ÿÿ
ÿ
ÿ
ÿÿ
ÿÿ
ÿ*ÿ
ÿÿ
ÿ
ÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿ
ÿ
ÿÿ
ÿÿ
ÿ,ÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿ ÿ
ÿÿ
ÿÿÿ
ÿÿ
ÿ
ÿÿÿ
ÿÿÿ
ÿÿ
ÿÿÿ
ÿ
ÿ
ÿ
ÿ
ÿÿ
ÿ
ÿÿ
ÿ
ÿ
ÿ
ÿÿ
ÿÿÿ
ÿÿÿ
ÿÿ
ÿÿÿ
ÿÿÿ
ÿÿ
ÿÿÿ
ÿ ÿ
ÿÿÿ
ÿ 
ÿ
ÿ
ÿ
ÿ ÿ
ÿ. ÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿ"ÿ
ÿÿ
ÿÿÿ
ÿÿÿ
ÿÿ
ÿÿÿ
ÿÿÿ
ÿÿ
ÿÿÿ
ÿ ÿ
ÿÿÿ
ÿÿÿ
ÿÿ
ÿÿÿ
ÿ ÿ
ÿÿÿ
ÿ ÿ
ÿÿÿ
ÿ$
*, ,." "ÿ
ÿ
ÿ
ÿ*ÿ
ÿ
ÿ
ÿ,*, ÿ
ÿ
ÿ
ÿ, ÿ
ÿ 
ÿ
ÿ.,."*, ,." "ÿÿ
ÿÿ
ÿþ
þ$&&$&&&$&$$$&&   (r’   c                   C   s@   t t ttƒt ¡ƒdu sJ ‚t t ttƒt ¡ƒdu sJ ‚dS )z4We need to support relations in ask for this to workTN)r   r   rR   r7   r   r5   rX   rX   rX   rY   Útest_bounded_xfailV  s   "r“   c                   C   s¦  t t t¡ƒdu sJ ‚t t t¡t t¡ ƒdu sJ ‚t t t¡t t¡ƒdu s*J ‚t t t¡t t¡ƒdu s9J ‚t t t¡t t¡ƒdu sHJ ‚t t t¡t t¡ƒdu sWJ ‚t t t¡t t¡ ƒdu sgJ ‚t t dt ¡ƒdu stJ ‚t t dt ¡t t¡ ƒdu s†J ‚t t td ¡ƒdu s“J ‚t t td ¡t t¡ ƒdu s¥J ‚t t td ¡ƒdu s²J ‚t t td ¡t t¡ ƒdu sÄJ ‚t t t	tƒ¡ƒdu sÑJ ‚dS )zdBy default objects are Q.commutative that is why it returns True
    for both key=True and key=FalseTFr€   rE   N)
r   r   rG   r   rK   rM   rJ   rN   r   r/   rX   rX   rX   rY   Útest_commutative]  s     $$$r”   c                   C   sæ  t t t¡ƒd u sJ ‚t t t¡t t¡ƒdu sJ ‚t t t¡t t¡ƒd u s)J ‚t t t¡t t¡ ƒdu s9J ‚t t t¡t t¡ƒdu sHJ ‚t t t¡t t¡ ƒd u sXJ ‚t t t¡t t¡ƒdu sgJ ‚t t t¡t t¡ƒdu svJ ‚t t t¡t t¡ƒdu s…J ‚t t t¡t 	t¡ƒdu s”J ‚t t t¡t 
t¡ƒdu s£J ‚t t td ¡t t¡ƒdu s´J ‚t t td ¡t t¡ƒdu sÅJ ‚t t td ¡t t¡ƒdu sÖJ ‚t t td ¡t t¡ƒdu sçJ ‚t t td ¡t 	t¡ƒdu søJ ‚t t td ¡t t¡ƒdu s
J ‚t t td ¡t t¡ƒdu sJ ‚t t td ¡t t¡ƒdu s.J ‚t t tt ¡t t¡t t¡@ ƒdu sEJ ‚t t tt ¡t t¡t 	t¡@ ƒdu s\J ‚t t dt d ¡t t¡ƒdu spJ ‚t t dt d ¡t t¡ƒdu s„J ‚t t dt d ¡t t¡ƒdu s˜J ‚t t dt d ¡t t¡ƒdu s¬J ‚t t dt d ¡t t¡ƒdu sÀJ ‚t t dt d ¡t 	t¡ƒdu sÔJ ‚t t dt d ¡t t¡ƒdu sèJ ‚t t dt d ¡t t¡ƒdu süJ ‚t t dt d ¡t t¡ƒdu sJ ‚t t td ¡t t¡ƒdu s"J ‚t t td ¡t t¡ƒdu s4J ‚t t td ¡t t¡ƒdu sFJ ‚t t td ¡t t¡ƒdu sXJ ‚t t td ¡t t¡ƒdu sjJ ‚t t td ¡t 	t¡ƒdu s|J ‚t t td ¡t t¡ƒdu sŽJ ‚t t td ¡t t¡ƒdu s J ‚t t td ¡t t¡ƒdu s²J ‚t t dt ¡t t¡ƒdu sÄJ ‚t t dt ¡t t¡ƒdu sÖJ ‚t t dt ¡t t¡ƒdu sèJ ‚t t dt ¡t t¡ƒdu súJ ‚t t dt ¡t t¡ƒdu sJ ‚t t dt ¡t 	t¡ƒdu sJ ‚t t dt ¡t t¡ƒdu s0J ‚t t dt ¡t t¡ƒdu sBJ ‚t t dt ¡t t¡ƒdu sTJ ‚t t tt ¡t t¡t t¡@ ƒdu skJ ‚t t ttƒ¡ƒdu syJ ‚t t tdt d ƒ¡ƒdu s‹J ‚t t ttƒ¡ƒdu s™J ‚t t tdt d ƒ¡ƒdu s«J ‚t t ttƒ¡ƒdu s¹J ‚t t ttƒ¡ƒdu sÇJ ‚t t ttƒ¡ƒdu sÕJ ‚t t ttƒ¡ƒdu sãJ ‚t t ttƒ¡ƒdu sñJ ‚d S r‚   )r   r   rK   r   r   rJ   rI   rL   rN   rM   ri   rH   rP   rQ   r7   r5   r.   r*   r,   r+   rX   rX   rX   rY   Útest_complext  st     """""$$$..((((((((($$$$$$$$$$$$$$$$$$.$$ r•   c                   C   s€  t t t¡ƒd u sJ ‚t t t¡t t¡ƒd u sJ ‚t t t¡t t¡ ƒdu s*J ‚t t t¡t t¡ƒd u s9J ‚t t t¡t t¡ƒd u sHJ ‚t t dt ¡ƒd u sUJ ‚t t dt ¡t t¡ƒdu sfJ ‚t t dt ¡t t¡ƒdu swJ ‚t t dt ¡t t¡ƒdu sˆJ ‚t t dt ¡t t¡ƒdu s™J ‚t t dt ¡t t¡ ƒd u s«J ‚t t dt ¡t t¡ƒd u s¼J ‚t t dt ¡t t¡ƒdu sÍJ ‚t t dt ¡t t¡ƒdu sÞJ ‚t t td ¡t t¡ƒdu sïJ ‚t t td ¡t t¡ƒdu sJ ‚t t td ¡t t¡ƒdu sJ ‚t t td ¡t t¡ƒdu s%J ‚t t dt ¡t t¡ƒdu s7J ‚t t dt ¡t t¡ƒdu sIJ ‚t t tt	 ¡t t¡t t	¡@ ƒdu s`J ‚t t tt	 ¡t t¡t t	¡@ ƒdu swJ ‚t t tt	 ¡t t¡t t	¡@ ƒdu sŽJ ‚t t dt d ¡t t¡ƒdu s¢J ‚t t dt t	 ¡t t¡t t¡@ ƒd u s»J ‚t t dt t	 ¡t t¡t t¡@ ƒd u sÔJ ‚t t tt	 t
 ¡t t¡t t	¡@ t t
¡@ ƒdu sòJ ‚t t tt	 t
 t ¡t t¡t t	¡@ t t
¡@ t t¡@ ƒd u sJ ‚t t ttƒ¡t t¡ƒdu s)J ‚t t ttƒ¡t t¡ ƒd u s<J ‚t t ttƒ¡t t¡ƒdu sNJ ‚t t ttƒ¡t t¡ ƒd u saJ ‚t t ttƒ¡t t¡ƒdu ssJ ‚t t ttƒ¡t t¡ƒdu s…J ‚t t dt ¡t t¡ƒdu s—J ‚t t td ¡t t¡ƒdu s©J ‚t t td ¡t t¡ƒdu s»J ‚t t dt ¡t t¡ƒd u sÍJ ‚t t td ¡ƒ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 t¡t t¡@ t t¡@ ƒdu s1J ‚t t tt ¡t t¡t t¡@ t t¡@ ƒdu sMJ ‚t t tt ¡t t¡t t¡@ t t¡ @ ƒd u sjJ ‚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 t¡t t¡@ t t¡@ ƒd u s¿J ‚t t tt ¡t t¡ƒd u sÑJ ‚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 t¡ƒd u sJ ‚t t ttt	  ¡t t¡t t	¡@ ƒdu s%J ‚t t ttt	  ¡t t¡t t	¡@ ƒd u s>J ‚d S )NFr€   Try   rE   é   rf   )r   r   rP   r   rH   rI   rN   rL   rQ   r   r   r   r*   r,   r+   rJ   r   r   r	   rO   r
   rX   rX   rX   rY   Útest_even_queryÀ  sr    """"$""""$$$$$...(22<&ÿ
ÿ$&$&$$$$$$::88:8:8$$.$26r—   c                   C   s€   t t tt tt  ¡t t¡t t¡@ t t¡@ ƒdu sJ ‚t t tt tt  ¡t t¡t t¡@ t t¡@ ƒdu s>J ‚d S ru   )r   r   rP   r   r   r   rH   rQ   rX   rX   rX   rY   Ú1test_evenness_in_ternary_integer_product_with_odd  ó   >Br˜   c                   C   sB   t t tt tt  ¡t t¡t t¡@ t t¡@ ƒd u sJ ‚d S ©N)r   r   rP   r   r   r   rH   rX   rX   rX   rY   Ú2test_evenness_in_ternary_integer_product_with_even  ó   Br›   c                   C   s  t t t¡t t¡ƒdu sJ ‚t t t¡t t¡ƒdu sJ ‚t t t¡t t¡ƒdu s-J ‚t t t¡t t¡ƒdu s<J ‚t t t¡t t¡ƒdu sKJ ‚t t t ¡t t¡ƒdu s[J ‚t t t ¡t t¡ƒdu skJ ‚t t tt	j
 ¡t t¡ƒdu s}J ‚t t t¡t t¡ƒd u sŒJ ‚d S ru   )r   r   rj   r   rm   rN   rd   rO   rn   r$   ÚInfinityrJ   rl   rX   rX   rX   rY   Útest_extended_real  s     $"rž   c                  C   sÆ  t t t¡t t¡ƒdu sJ ‚t t t¡t t¡ƒdu sJ ‚t t t¡t t¡ƒd u s-J ‚t t t¡t t¡ƒd u s<J ‚t t t¡t t¡ƒd u sKJ ‚t t t¡t 	t¡ƒd u sZJ ‚t t t¡t 
t¡ ƒdu sjJ ‚t t dt ¡t t¡ƒdu s{J ‚t t dt ¡t t¡ƒdu sŒJ ‚t t dt ¡t t¡ƒdu sJ ‚t t dt ¡t t¡ƒdu s®J ‚t t dt ¡t t¡ƒdu s¿J ‚t t td ¡t t¡ƒdu sÐJ ‚t t td ¡t t¡ƒdu sáJ ‚t t td ¡t t¡ƒdu sòJ ‚t t td ¡t t¡ƒdu sJ ‚t t td ¡t t¡ƒdu sJ ‚t t dt ¡t t¡ƒdu s(J ‚t t dt ¡t t¡ƒdu s:J ‚t t dt ¡t t¡ƒdu sLJ ‚t t dt ¡t t¡ƒdu s^J ‚t t dt ¡t t¡ƒdu spJ ‚t t dt ¡t t¡ƒdu s‚J ‚t t dt ¡t t¡ƒdu s”J ‚t t dt ¡t t¡ƒdu s¦J ‚t t dt ¡t t¡ƒdu s¸J ‚t t dt ¡t t¡ƒdu sÊJ ‚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 t¡t t¡@ ƒdu s	J ‚t t tt ¡t t¡t t¡@ ƒdu s J ‚t t tt ¡t t¡t t¡@ ƒdu s7J ‚t t tt ¡t t¡t t¡@ ƒdu sNJ ‚t t tt ¡t t¡t t¡@ ƒdu seJ ‚ttttttfD ]Z} t t | dƒ¡ƒdu s}J ‚t t | ddd¡ƒdu sJ ‚t t | ddd¡ƒdu sJ ‚t t | tƒ¡t t¡ƒd u s¯J ‚t t | tƒ¡t t¡t 	t¡@ ƒdu sÆJ ‚qmttfD ]\}t t |dƒ¡ƒdu sÜJ ‚t t |ddd¡ƒdu sìJ ‚t t |ddd¡ƒdu süJ ‚t t |tƒ¡t t¡ƒd u sJ ‚t t |tƒ¡t t¡t 	td ¡@ ƒdu s'J ‚qÌttfD ]3}t t |dƒ¡ƒdu s=J ‚t t |ddd¡ƒdu sMJ ‚t t |tƒ¡t t¡ƒdu s_J ‚q-d S )NTFr€   rE   r–   ©Úevaluater   )r   r   rI   r   rH   rL   rJ   rN   rO   rc   ri   rP   rQ   r   r.   r7   r8   r3   r4   r5   r/   r1   r6   r2   ©ÚfÚgÚhrX   rX   rY   Útest_rational"  sf    """"""""$$$$$$$$$$$$"......  $2  $6 (ýr¥   c                   C   sJ  t t t¡ƒd u sJ ‚t t t¡t t¡ƒd u sJ ‚t t t¡t t¡ƒdu s)J ‚t t t¡t t¡ƒdu s8J ‚t t t¡t t¡ƒdu sGJ ‚t t t¡t t¡ƒdu sVJ ‚t t td ¡t t¡ƒd u sgJ ‚t t td ¡t 	t¡ƒd u sxJ ‚t t td ¡t t¡ƒdu s‰J ‚t t td ¡t 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 ‚t t tt
 ¡t 	t¡ƒd u sÍJ ‚t t tt
 ¡t t¡ƒdu sÞJ ‚t t tt
 ¡t t¡ƒd u sïJ ‚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 t¡t 	t¡@ ƒd u s/J ‚t t tt ¡t t¡t t¡@ ƒd u sFJ ‚t t tt ¡t t¡t t¡@ ƒd u s]J ‚t t tt ¡t t¡t t¡@ ƒd u stJ ‚t 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 t¡t t¡@ ƒdu s¹J ‚t 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 t¡t t¡@ ƒd u sþJ ‚t 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 t¡t t¡@ ƒdu sCJ ‚t t t
t ¡t t¡ƒdu sUJ ‚t t t
t ¡t 	t¡ƒd u sgJ ‚t t t
t ¡t t¡ƒdu syJ ‚t t t
t ¡t t¡ƒdu s‹J ‚t t t
t ¡t t¡ƒdu sJ ‚t t tt ¡t t¡t t¡@ ƒdu s´J ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒdu sÒJ ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒdu sðJ ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒd u sJ ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒd u s,J ‚t t t¡ƒd u s8J ‚t t t¡t t¡ƒdu sHJ ‚t t t¡t t¡ƒdu sXJ ‚t t td ¡t t¡ƒdu sjJ ‚t t td ¡t 	t¡ƒd u s|J ‚t t td ¡t t¡ƒd u sŽJ ‚t t td ¡t 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 ‚t t tt
 ¡t 	t¡ƒd u sÖJ ‚t t tt
 ¡t t¡ƒd u sèJ ‚t t tt
 ¡t t¡ƒdu súJ ‚t t tt
 ¡t t¡ƒdu sJ ‚t t t¡t t¡ƒdu sJ ‚t t tt ¡t t¡t t¡@ ƒdu s3J ‚t t tt ¡t t¡t 	t¡@ ƒd u sJJ ‚t t tt ¡t t¡t t¡@ ƒd u saJ ‚t t tt ¡t t¡t t¡@ ƒdu sxJ ‚t t tt ¡t t¡t t¡@ ƒdu sJ ‚t 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 t¡t t¡@ ƒd u sÔJ ‚t 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 t¡t t¡@ ƒdu sJ ‚t t tt ¡t t¡t t¡@ ƒdu s0J ‚t t tt ¡t t¡t 	t¡@ ƒd u sGJ ‚t t tt ¡t t¡t t¡@ ƒd u s^J ‚t t t
t ¡t t¡ƒdu spJ ‚t t t
t ¡t t¡ƒdu s‚J ‚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 ¡t t¡t t¡@ t t¡@ ƒd u sÉJ ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒd u sçJ ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒdu sJ ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒdu s#J ‚d S )NFTrE   )r   r   rU   r   rV   rM   rS   rJ   rd   rK   r   r   r   rX   rX   rX   rY   Útest_hermitianb  s  """""""""$ÿ
ÿ.ÿ
ÿ...........$$$$$.,ÿ
ÿÿ
ÿÿ
ÿÿ
ÿ  $$$$$$$$$$ ÿ
þÿ
ÿÿ
ÿÿ
ÿ"
ÿ."
ÿÿ
ÿ......$$$.ÿ
ÿÿ
ÿÿ
ÿÿÿr¦   c                  C   sR
  t t t¡ƒd u sJ ‚t t t¡t t¡ƒdu sJ ‚t t t¡t t¡ƒdu s)J ‚t t td ¡t t¡ƒdu s:J ‚t t td ¡t t¡ƒdu sKJ ‚t t tt ¡t t¡ƒdu s\J ‚t t tt ¡t t¡ƒdu smJ ‚t 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 t¡t t¡@ ƒdu s¯J ‚t t tt ¡t t¡t t¡@ ƒd u sÅJ ‚t t tt t	 ¡t t¡t t¡@ t t	¡@ ƒdu sâJ ‚t t tt t	 ¡t t¡t t¡@ t t	¡@ ƒd u sÿJ ‚t t tt t	 ¡t t¡t t¡@ t t	¡@ ƒdu sJ ‚t t tt ¡t t¡ƒdu s/J ‚t t tt ¡t t¡ƒdu sAJ ‚t t tt ¡t t¡ƒd u sSJ ‚t t tt ¡t t¡t t¡@ ƒdu sjJ ‚t t tt ¡t t¡t t¡@ ƒdu sJ ‚t t tt ¡t 
t¡ƒd u s“J ‚t t tt ¡t t¡ƒd u s¥J ‚t t tt ¡t t¡ƒdu s·J ‚t t tt ¡t t¡ƒdu sÉJ ‚t t tt ¡t t¡ƒdu sÛJ ‚t t dt t ¡t t¡ƒdu sïJ ‚t t td ¡t t¡ƒdu sJ ‚t 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 t¡t t¡@ ƒd u sFJ ‚t t tt ¡t t¡t t¡@ ƒd u s]J ‚t t tt ¡t t¡t t¡@ ƒd u stJ ‚t 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 t¡t t¡@ ƒd u s¹J ‚t 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 t¡t t¡@ ƒdu sþJ ‚t t tt ¡t 
t¡t t¡@ ƒd u sJ ‚t t tt ¡t 
t¡t t¡@ t t¡ @ ƒdu s2J ‚t t tt ¡t t¡t t¡@ ƒd u sIJ ‚t t tt ¡t 
t¡t t¡@ t dt ¡@ ƒdu sgJ ‚t t tt ¡t 
t¡t t¡@ t dt ¡ @ ƒdu s†J ‚t t tt ¡t 
t¡t t¡@ ƒd u sJ ‚t t tt ¡t t¡t t¡@ t dt ¡ @ ƒdu s¼J ‚t t tt ¡t t¡t t¡@ t dt ¡@ ƒd u sÚJ ‚t t ttƒ¡ƒdu sèJ ‚t t tdt ƒ¡ƒdu søJ ‚t t ttd ƒ¡ƒdu sJ ‚t t ttƒ¡t t¡ƒd u sJ ‚t t ttƒ¡t t¡ƒd u s,J ‚t t ttƒ¡t t¡ƒdu s>J ‚t t tttƒƒ¡t t¡ƒd u sRJ ‚t t tttƒƒ¡t t¡ƒd u sfJ ‚t t tttƒƒ¡ƒdu svJ ‚t t ttƒt ¡t t¡ƒdu sŠJ ‚tttt t ddtdd} t t | ¡t t¡ƒdu s©J ‚tttt t d ddtdd} t t | ¡t t¡ƒdu sÊJ ‚t t tdt t t ƒt ¡t t¡ƒdu säJ ‚t t tdt t dd¡ƒdu søJ ‚t t ttt d dd¡ƒdu sJ ‚t t tttddƒƒ¡t t¡t 
t¡@ ƒdu s'J ‚d S )	NFrE   Tr€   r   rŸ   ry   rz   )r   r   rM   r   rJ   rS   r   r   rK   r   rO   rN   rP   rQ   rH   rI   r/   r.   r%   r#   r    ©ÚeqrX   rX   rY   Útest_imaginaryË  s–   """",,,,,ÿÿÿÿÿ
ÿ$$$..$$$$$($............:.<>.><  $$$(( ( " 4((:r©   c                   C   sB  t t t¡ƒd u sJ ‚t t t¡t t¡ƒdu sJ ‚t t t¡t t¡ ƒdu s*J ‚t t t¡t t¡ ƒdu s:J ‚t t t¡t t¡ ƒd u sJJ ‚t t t¡t t¡t t¡B ƒdu s^J ‚t t dt ¡t t¡ƒdu soJ ‚t t dt ¡t t¡ƒdu s€J ‚t t dt ¡t t¡ƒdu s‘J ‚t t dt ¡t 	t¡ƒd u s¢J ‚t t dt ¡t t¡ƒd u s³J ‚t t t
dƒt ¡t t¡ƒdu sÆJ ‚t t t
dƒt ¡t t¡ƒd u sÙJ ‚t t td ¡t t¡ƒdu sêJ ‚t t td ¡t t¡ƒdu sûJ ‚t t td ¡t t¡ƒd u sJ ‚t t td ¡t t¡ƒd u sJ ‚d S )NTFr€   ry   )r   r   rH   r   rJ   rN   rP   rQ   rS   rI   r0   rL   rX   rX   rX   rY   Útest_integer  s"      ("""""&&""$(rª   c                   C   sF  t t t¡t t¡ƒdu sJ ‚t t t¡t t¡ƒdu sJ ‚t t t¡t t¡ ƒdu s.J ‚t t t¡t t¡ƒdu s=J ‚t t t¡t t¡ ƒd u sMJ ‚t t t ¡t t¡ƒdu s]J ‚t t t ¡t t¡ ƒd u snJ ‚t t t ¡t t¡ƒdu s~J ‚t t t ¡t t¡ƒdu sŽJ ‚t t td ¡t t¡ƒdu sŸJ ‚t t tt ¡ƒd u s¬J ‚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 t¡t t¡@ ƒdu séJ ‚t t dt	 ¡ƒdu söJ ‚t t t
t	ƒd tt	ƒd  d ¡ƒd u sJ ‚t t t	 t	t
dƒd tdƒd    ¡ƒd u s)J ‚t t td ¡ƒd u s7J ‚t t td ¡t t¡ƒdu sIJ ‚t t td ¡t t¡ƒd u s[J ‚t t tt	 ¡t t¡ƒd u smJ ‚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 t¡t t¡@ ƒdu s©J ‚t t tt ¡t t¡t t¡@ ƒd u sÀJ ‚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 t¡t t¡@ ƒdu süJ ‚t t tt ¡t t¡t t¡@ ƒdu sJ ‚t t ttƒ¡ƒdu s!J ‚d S )NTFrE   r€   gffffffö?)r   r   rO   r   rN   rJ   rS   r   Únonpositiver   r5   r7   rK   rP   rQ   rH   r*   rX   rX   rX   rY   Útest_negative1  s<      "  "",,06$$$...... r¬   c                   C   sž  t t t¡ƒd u sJ ‚t t t¡t t¡ƒd u sJ ‚t t t¡t t¡ƒdu s)J ‚t t t¡t t¡ƒdu s8J ‚t t t¡t t¡t t¡B ƒdu sLJ ‚t t tt ¡ƒd u sYJ ‚t t tt ¡t t¡t t¡@ ƒdu soJ ‚t 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 dt ¡ƒd u s¨J ‚t t dt ¡t t¡ƒdu s¹J ‚t t dt ¡t t¡ƒdu sÊJ ‚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 t¡ƒdu sJ ‚t t ttƒ¡ƒd u sJ ‚t t ttƒ¡t t¡ƒdu s#J ‚t t t	t
dt ƒƒ¡ƒdu s5J ‚t t tdƒd tdƒd  d ¡ƒd u sMJ ‚d S )NTr€   FrE   )r   r   rc   r   rJ   rN   rO   r   r*   r/   r.   r   r5   r7   rX   rX   rX   rY   Útest_nonzero[  s&   (,,,""",$$$4r­   c                   C   sî  t t t¡ƒd u sJ ‚t t t¡t t¡ƒd u sJ ‚t t t¡t t¡ƒdu s)J ‚t t t¡t t¡ƒdu s8J ‚t t t¡t t¡t t¡B ƒdu sLJ ‚t t t¡t t¡t t¡@ ƒdu s`J ‚t t tt	 ¡ƒd u smJ ‚t 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 t¡t t	¡@ ƒdu s¯J ‚t t dt ¡ƒd u s¼J ‚t t dt ¡t t¡ƒdu sÍJ ‚t t dt ¡t t¡ƒdu sÞJ ‚t t tt	 ¡t 
t¡ƒd u sïJ ‚t t ttƒ¡ƒd u süJ ‚t t ttƒ¡t t¡ƒdu sJ ‚t t t¡t t¡ƒdu sJ ‚t t t¡t t¡ƒdu s.J ‚t t t¡t t¡ƒdu s>J ‚t t t¡t t¡ƒd u sNJ ‚t t t¡t t¡ƒdu s^J ‚t t t¡t t	¡B t tt	 ¡ƒdu suJ ‚d S )NFTr€   )r   r   rd   r   rJ   rN   rO   Únonnegativer«   r   rc   r*   rH   rP   rQ   rX   rX   rX   rY   Ú	test_zerox  s,   ((,,,"""$     2r¯   c                   C   s	  t t t¡ƒd u sJ ‚t t t¡t t¡ƒdu sJ ‚t t t¡t t¡ƒd u s)J ‚t t t¡t t¡ ƒdu s9J ‚t t t¡t t¡ƒd u sHJ ‚t t t¡t t¡ƒd u sWJ ‚t t t ¡t t¡ƒdu sgJ ‚t t dt ¡ƒd u stJ ‚t t dt ¡t t¡ƒdu s…J ‚t t dt ¡t t¡ƒdu s–J ‚t t dt ¡t t¡ƒdu s§J ‚t t dt ¡t t¡ ƒd u s¹J ‚t t dt ¡t t¡ƒd u sÊJ ‚t t td ¡t t¡ƒd u sÛJ ‚t t td ¡t t¡ƒd u sìJ ‚t t td ¡t t¡ƒdu sýJ ‚t t td ¡t t¡ƒdu sJ ‚t t td ¡t t¡ƒdu s!J ‚t t dt ¡t t¡ƒdu s3J ‚t t dt ¡t t¡ƒdu sEJ ‚t t dt ¡t t¡ƒdu sWJ ‚t t dt ¡t t¡ƒdu siJ ‚t 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 t¡t t	¡@ ƒdu s®J ‚t t tt	 ¡t t¡t t	¡@ ƒdu sÅJ ‚t t tt	 t
 ¡t t¡t t	¡@ t t
¡@ ƒdu sãJ ‚t t tt	 t
 t ¡t t¡t t	¡@ t t
¡@ t t¡@ ƒd u sJ ‚t t dt d ¡t t¡ƒdu sJ ‚t t dt t	 ¡t t¡t t	¡@ ƒdu s5J ‚t t dt t	 ¡t t¡t t	¡@ ƒdu sNJ ‚t t dt t	 ¡t t¡t t	¡@ ƒd u sgJ ‚t 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 dt t	 ¡t t¡t t¡@ ƒd u s®J ‚t t dt t	 ¡t t¡t t¡@ ƒd u sÇJ ‚t t ttƒ¡t t¡ƒdu sÙJ ‚t t dt ¡t t¡ƒdu sëJ ‚t t td ¡t t¡ƒdu sýJ ‚t t td ¡t t¡ƒdu sJ ‚t t d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 t¡t t¡@ t t¡@ ƒdu swJ ‚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 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 t¡ƒd u sJ ‚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 t¡ƒd u sRJ ‚t t ttt	  ¡t t¡t t	¡@ ƒdu skJ ‚t t ttt	  ¡t t¡t t	¡@ ƒd u s„J ‚d S )NTFr€   ry   rE   rf   )r   r   rQ   r   rH   rI   rN   rL   rP   r   r   r   r*   r   r   r	   rO   r
   rX   rX   rX   rY   Útest_odd_query–  sv     """$""""$$$$$$....<&ÿ
ÿ(222..22$$$$$::88:8:8$$.$26r°   c                   C   s€   t t tt tt  ¡t t¡t t¡@ t t¡@ ƒdu sJ ‚t t tt tt  ¡t t¡t t¡@ t t¡@ ƒdu s>J ‚d S ©NF)r   r   rQ   r   r   r   rH   rX   rX   rX   rY   Ú0test_oddness_in_ternary_integer_product_with_oddà  r™   r²   c                   C   sB   t t tt tt  ¡t t¡t t¡@ t t¡@ ƒd u sJ ‚d S rš   )r   r   rQ   r   r   r   rH   rP   rX   rX   rX   rY   Ú1test_oddness_in_ternary_integer_product_with_evené  rœ   r³   c                   C   s¶  t t t¡t t¡ƒdu sJ ‚t t t¡t t¡ ƒdu sJ ‚t t t¡t t¡ƒd u s.J ‚t t t¡t t¡ ƒdu s>J ‚t t dt ¡t t¡ƒd u sOJ ‚t t tt ¡ƒd u s\J ‚t t tt ¡t t¡ƒd u smJ ‚t t tt ¡t t¡t t¡@ ƒd u sƒJ ‚t t dt ¡t t¡ƒdu s”J ‚t t dt ¡ƒd u s¡J ‚t t td ¡t t¡ƒdu s²J ‚t t td ¡t t¡ƒdu sÃJ ‚t t tt ¡t t¡t t¡@ ƒdu sÙJ ‚d S )NTFr€   rz   )r   r   rS   r   rH   r   rX   rX   rX   rY   Ú
test_primeí  s     "","""0r´   c                  C   s  t t ttƒd ttƒd  d ¡ƒd u sJ ‚t t t¡t t¡ƒdu s&J ‚t t t¡t t¡ƒdu s5J ‚t t t¡t t¡ƒd u sDJ ‚t t t ¡t t¡ƒdu sTJ ‚t t t ¡t t¡ƒdu sdJ ‚t t tt	 ¡t t¡t t	¡@ ƒdu szJ ‚t t tt	 ¡t t¡t 
t	¡@ ƒdu sJ ‚t 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 dt ¡t t¡ƒdu sÍJ ‚t t¡t t	¡@ t 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	 t ¡| ƒdu sJ ‚t t tt ¡t t¡ƒd u s%J ‚t t td ¡t t¡ƒdu s7J ‚t t td ¡t t¡ƒdu sIJ ‚t t td ¡t t¡ƒdu s[J ‚t t ddtd   ¡t t¡ƒdu sqJ ‚t t dt ¡ƒdu sJ ‚t t dt ¡ƒdu sJ ‚t t ttƒd ttƒd  d ¡ƒd u s¥J ‚t t t ttdƒd tdƒd    ¡ƒd u sÀJ ‚t t ttƒ¡t t¡ƒdu sÒJ ‚t t ttƒ¡ t t¡ƒdu såJ ‚t t tttƒ ¡t t¡ƒd u sùJ ‚t t ttƒ¡t t¡ƒd u sJ ‚t t tdt t dd¡t t¡ƒdu s#J ‚t t ttt dd¡t t¡ƒdu s9J ‚t t ttt t ƒ¡t t¡ƒdu sOJ ‚t t ttt t ƒ¡t t¡ƒdu seJ ‚t t ttt t ƒ¡t t¡ƒd u s{J ‚t t ttƒ¡t t¡ƒdu sJ ‚t t ttƒ¡t t¡ƒdu sŸJ ‚t t ttƒ¡t t¡ƒd u s±J ‚t t ttd ƒ¡t t¡ƒdu sÅJ ‚t t ttƒ¡t t¡t t¡@ ƒsÚJ ‚t t ttƒ¡t t¡ƒd u sìJ ‚t t ttƒ¡ƒd u súJ ‚t t ttƒ¡t t¡ƒdu sJ ‚d S )Nr€   rE   TFry   rŸ   )r   r   rN   r5   r   r7   r   rO   rc   r   r®   rM   r   r   rJ   r.   r#   rP   rQ   r/   r)   rH   r*   ©ÚassumptionsrX   rX   rY   Útest_positiveÿ  sR   .  ,,,,"("$$$$$,06$&($0,,,,$$$(*$(r·   c                   C   s°   t t d¡ƒs	J ‚t t d¡ƒsJ ‚t t d¡ƒdu sJ ‚t t t¡ t t¡ƒs+J ‚t t t¡t t¡ƒdu s:J ‚t t tdƒ¡ƒdu sGJ ‚t t t¡t t¡ƒdu sVJ ‚d S )Nrf   r   rE   F)r   r   r«   rN   r   r0   rM   rX   rX   rX   rY   Útest_nonpositive;  s   "r¸   c                   C   s°   t t d¡ƒdu sJ ‚t t d¡ƒsJ ‚t t d¡ƒsJ ‚t t t¡ t t¡ƒs+J ‚t t t¡t t¡ƒdu s:J ‚t t tdƒ¡ƒdu sGJ ‚t t t¡t t¡ƒdu sVJ ‚d S )Nrf   Fr   rE   )r   r   r®   rO   r   r0   rM   rX   rX   rX   rY   Útest_nonnegativeE  s   "r¹   c                   C   s*  t t t¡ƒd u sJ ‚t t t¡t t¡ƒdu sJ ‚t t t¡t t¡ƒdu s)J ‚t t t¡t t¡ƒdu s8J ‚t t t¡t t¡ƒdu sGJ ‚t t t¡t t¡ƒdu sVJ ‚t t t¡t t¡ƒdu seJ ‚t t t¡t 	t¡ƒdu stJ ‚t t tt
dƒ ¡t t¡ƒdu s‡J ‚t t tt
dƒ ¡t 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 ‚t t tt ¡t t¡ƒd u sÍJ ‚t t dt ¡t t¡ƒdu sÞJ ‚t t tt ¡t t¡ƒdu sïJ ‚t t tt ¡t t¡ƒdu sJ ‚t t tt ¡t t¡ƒd u sJ ‚d S )NTr€   éþÿÿÿFrE   )r   r   rJ   r   rc   rN   rO   rH   rP   rS   r0   r   rK   rM   rX   rX   rX   rY   Útest_real_basicN  s"   &&"""""$(r»   c                   C   sš  t t td ¡t t¡ƒdu sJ ‚t t ttƒ¡t t¡ƒdu s"J ‚t t tt ¡t t¡t t¡@ ƒdu s8J ‚t t tt ¡t t¡t t¡@ ƒd u sNJ ‚t t tt ¡t t¡t t¡@ ƒdu sdJ ‚t t tt ¡t 	t¡t 	t¡@ ƒd u szJ ‚t t tt ¡t 	t¡t t¡@ ƒd u sJ ‚t t tt ¡t t¡t 	t¡@ ƒd u s¦J ‚t t td ¡t 	t¡ƒdu s·J ‚t 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 t¡t 
t¡@ ƒd u sùJ ‚t 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 	t¡t t¡@ ƒdu s>J ‚t t ttt  ¡t t¡t tt ¡@ t 
tt ¡@ t t¡@ t t¡@ ƒdu sjJ ‚t t ttt  ¡t t¡t 
tt ¡@ t t¡@ t t¡@ ƒdu sJ ‚t t ttt  ¡t t¡t tt ¡@ ƒdu sªJ ‚t t ttt  ¡t t¡t tt ¡@ t t¡@ ƒdu sÊJ ‚t t ttt  ¡t t¡t tt ¡@ t t¡@ ƒdu sêJ ‚t t t t ¡t 	t¡ƒdu sýJ ‚t t tt ¡t 	t¡ƒdu sJ ‚t t tt ¡t 	t¡ƒd u s!J ‚t t tt ¡t 	t¡ƒd u s3J ‚t t ttt ttƒ  ¡t t¡ƒdu sKJ ‚d S )Nr€   TFr   )r   r   rJ   r   r0   rO   r   rH   rN   rM   rI   rQ   rP   r   r   r   r#   r/   rX   rX   rX   rY   Útest_real_powe  s2   "",,,,,,",,,...XJ6@@&$$$4r¼   c                  C   s   t t ttƒ¡ƒd u sJ ‚t t ttƒ¡ƒd u sJ ‚t t ttƒ¡t t¡ƒdu s+J ‚t t ttƒ¡t t¡ƒdu s<J ‚t t ttƒ¡ƒd u sIJ ‚t t ttƒ¡t t¡ƒdu sZJ ‚t t tttƒ ¡t t¡ƒdu smJ ‚t t tdt t dd¡ƒdu s€J ‚t t ttt dd¡ƒdu s‘J ‚t t ttt d dd¡ƒdu s¤J ‚t t t	tƒ¡ƒdu s±J ‚t t t	dt ƒ¡ƒdu sÀJ ‚t t t	td ƒ¡ƒdu sÏJ ‚t t t	tƒ¡t 
t¡ƒd u sàJ ‚t t t	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¡ƒd u sJ ‚ttdt t t ddtdd} t t | ¡t t¡ƒdu s:J ‚t t ttƒt ¡t t¡ƒdu sNJ ‚t t ttƒt ¡t 
t¡ƒd u sbJ ‚t t ttƒ¡ƒdu spJ ‚t t ttƒ¡ƒdu s~J ‚d S )NTr€   FrŸ   rE   )r   r   rJ   r7   r   r5   r.   r#   r   r/   rK   rM   r%   rH   r,   r+   r§   rX   rX   rY   Útest_real_functions  s.   """&&"&""((" (( r½   c               	   C   s6  t t tddt dgdt dtgdt dggƒ¡ƒdksJ ‚t t tddt dgdt dtgdt dggƒ¡ƒdks<J ‚tddd} t t tddt | gdt dtgdt dggƒ¡ƒd ks`J ‚t t td	ƒ¡ƒdksmJ ‚t t td
dtdfdfƒ¡ƒdks€J ‚t t td
d| dfdfƒ¡ƒd ks“J ‚tddt dgdt dt gdt dggƒ}tt dt dgdt ddt gddt t ggƒ}t t |¡ƒdu sÎJ ‚t t |¡ƒdu sÙJ ‚t t |d ¡ƒdu sæJ ‚|d }| ¡  t t |¡ƒdu sùJ ‚tddt dg| dt gdt dggƒ}t t |¡ƒd u sJ ‚d S )Nr€   rz   ry   rE   TFr   ©rK   )©é   é   r}   )rÁ   é   r   ©r}   r   r\   r¿   rÁ   r   rÃ   rº   )	r   r   rU   r>   r   r'   r?   rV   Úsimplify)r   ÚAÚBÚCÚ_ArX   rX   rY   Útest_matrix£  s"   <<<&&,4(rÉ   c               	   C   sâ  t t t¡ƒd u sJ ‚t t t¡ƒdu sJ ‚t t dt ¡ƒdu s#J ‚t t td ¡ƒdu s0J ‚t t tdƒ¡ƒdu s=J ‚t t dtdƒ ¡ƒdu sLJ ‚t t tdƒd ¡ƒdu s[J ‚t t ttdƒ ¡ƒdu sjJ ‚t t tdttdƒ  ƒ¡ƒdu s}J ‚t t dttdƒtddƒ   ¡ƒdu s“J ‚t t dttdƒdt    ¡ƒdu s¨J ‚tt	t
tttfD ]U} t t | dƒ¡ƒdu s¿J ‚t t | ddd	¡ƒdu sÎJ ‚t t | d
dd	¡ƒdu sÝJ ‚t t | tƒ¡t t¡ƒd u sîJ ‚t t | tƒ¡t t¡t t¡@ ƒdu sJ ‚q°ttfD ]\}t t |dƒ¡ƒdu sJ ‚t t |ddd	¡ƒdu s*J ‚t t |ddd	¡ƒdu s:J ‚t t |tƒ¡t t¡ƒd u sLJ ‚t t |tƒ¡t t¡t td ¡@ ƒdu seJ ‚q
ttfD ]3}t t |dƒ¡ƒdu s{J ‚t t |ddd	¡ƒdu s‹J ‚t t |tƒ¡t t¡ƒdu sJ ‚qkt t tt	dƒƒ¡ƒdu s¯J ‚t t ttttdƒ  ƒ¡ƒd u sÃJ ‚t t d¡ƒdu sÏJ ‚t t t¡t t¡ƒdu sßJ ‚t t t¡t t¡ƒdu sïJ ‚d S )NTr€   ry   r–   rE   é   é   FrŸ   r   gÃõ(\Â@)r   r   ri   r   r   r0   r    r#   r.   r7   r8   r3   r4   r5   rc   r/   r1   r6   r2   r   Útranscendentalr¡   rX   rX   rY   Útest_algebraic»  s@   &,*"0  $6 ( ( $rÍ   c                   C   s^   t t t¡ƒdu sJ ‚t t t¡¡ t t t¡ƒdu sJ ‚t ¡  t t t¡ƒdu s-J ‚dS )z Test ask with global assumptionsNT)r   r   rH   r   r   ÚaddÚclearrX   rX   rX   rY   Útest_globalé  s
   rÐ   c                  C   s`   t t t¡ƒdu sJ ‚tƒ } |  t t¡¡ t t t¡| ddu s#J ‚t t t¡ƒdu s.J ‚dS )z(Test ask with custom assumptions contextN)ÚcontextT)r   r   rH   r   r   rÎ   )Úlocal_contextrX   rX   rY   Útest_custom_contextò  s
   rÓ   c                   C   s€   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 t¡t t¡ƒƒdu s>J ‚d S r±   )r   r   rO   r   rJ   rN   r9   r;   rX   rX   rX   rY   Útest_functions_in_assumptionsû  s   (*.rÔ   c                   C   s8   t t t¡t t¡@ t t¡t t¡? ddu sJ ‚d S )Nrµ   F)r   r   rO   r   rH   rJ   rN   rX   rX   rX   rY   Útest_composite_ask  s
   ÿÿrÕ   c                   C   s  t dƒdu sJ ‚t dƒdu sJ ‚t t t¡ t t¡ƒdu s J ‚t t t¡ t t¡ƒd u s0J ‚t t t¡t t¡@ t t¡ƒdu sDJ ‚t t t¡t t¡@ ƒd u sTJ ‚t t t¡t t¡B t t¡ƒdu shJ ‚t t t¡t t¡B ƒd u sxJ ‚t t t¡t t¡? t t¡ƒdu sŒJ ‚t tt t¡t t¡ddt t¡ƒdu s£J ‚t tt t¡t t¡ddƒd u s¶J ‚t t	t t¡t 
t¡ƒt 
t¡ƒdu sËJ ‚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¡B t t¡t t¡B ƒdu sJ ‚d S )NTFrŸ   )r   r   rO   r   rN   rJ   rG   rH   r:   r9   rP   rX   rX   rX   rY   Útest_composite_proposition  s*     ( ( (ÿÿÿ&*"*8rÖ   c                   C   sH   t t t¡t t¡ B ƒdu sJ ‚t t t¡t t¡ @ ƒdu s"J ‚d S rh   )r   r   rJ   r   rX   rX   rX   rY   Útest_tautology  s   "&r×   c                   C   s¦   t t t¡t t¡t t¡@ ƒdu sJ ‚t t t¡t t¡t t¡B ƒd u s(J ‚t t t¡t t¡t t¡? ƒd u s<J ‚t t t¡t t¡t t¡?  ƒdu sQJ ‚d S ru   )r   r   rJ   r   r   rN   rX   rX   rX   rY   Útest_composite_assumptions  s   (((.rØ   c                  C   sÊ  t tdd„ ƒ G dd„ dtƒ} zrtƒ  td| ƒ W d  ƒ n1 s#w   Y  tƒ  tt t¡ƒdu s7J ‚W d  ƒ n1 sAw   Y  tƒ  tt td ¡ƒdu sWJ ‚W d  ƒ n1 saw   Y  W tƒ  t	d| ƒ W d  ƒ n1 szw   Y  t`ntƒ  t	d| ƒ W d  ƒ t`w 1 s—w   Y  t`w t td	d„ ƒ G d
d„ dt
ƒ}z*|ƒ t_tj t¡dd„ ƒ}tt t¡ƒdu sÈJ ‚tt td ¡ƒdu sÕJ ‚W t`nt`w t tdd„ ƒ dS )z7test that you can add keys to the ask system at runtimec                   S   ó   t t t¡ƒS rš   ©r   r   Úmy_keyr   rX   rX   rX   rY   Ú<lambda>%  ó    z(test_key_extensibility.<locals>.<lambda>c                   @   s   e Zd Zedd„ ƒZdS )z,test_key_extensibility.<locals>.MyAskHandlerc                 S   ó   dS ru   rX   ©Úexprr¶   rX   rX   rY   r(   )  ó   z3test_key_extensibility.<locals>.MyAskHandler.SymbolN)Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr(   rX   rX   rX   rY   ÚMyAskHandler(  s    ræ   rÛ   NTrE   c                   S   rÙ   rš   rÚ   rX   rX   rX   rY   rÜ   9  rÝ   c                   @   ó   e Zd ZdS )z+test_key_extensibility.<locals>.MyPredicateN©râ   rã   rä   rX   rX   rX   rY   ÚMyPredicate<  ó    ré   c                 S   rÞ   ru   rX   rß   rX   rX   rY   Ú_@  rá   z!test_key_extensibility.<locals>._c                   S   rÙ   rš   rÚ   rX   rX   rX   rY   rÜ   G  rÝ   )rB   ÚAttributeErrorr   rC   r   r   r   rÛ   r   r   r   Úregisterr(   )ræ   ré   rë   rX   rX   rY   Útest_key_extensibility"  sB   ÿÿÿ€ÿþ
ÿþ

rî   c                  C   sL   ddl m}  G dd„ d| ƒ}tj |¡dd„ ƒ}tt |ƒ ¡ƒdu s$J ‚dS )	zBtest that new types can be added to the ask system at runtime
    r   )ÚBasicc                   @   rç   )z'test_type_extensibility.<locals>.MyTypeNrè   rX   rX   rX   rY   ÚMyTypeO  rê   rð   c                 S   rÞ   ru   rX   rß   rX   rX   rY   rë   R  rá   z"test_type_extensibility.<locals>._TN)Ú
sympy.corerï   r   rS   rí   r   )rï   rð   rë   rX   rX   rY   Útest_type_extensibilityJ  s
   

rò   c                  C   sr   t ttjtjƒttjtjƒttjtjƒƒ} tjtjtjtjh}t| ƒ}t||ƒ}|tj tjtjtjhks7J ‚d S rš   )	r<   r:   r   rH   rI   rJ   rK   r=   r   )Úknown_factsÚknown_facts_keysÚknown_facts_cnfÚmappingrX   rX   rY   Útest_single_fact_lookupY  s   þ
"r÷   c               
   C   sÔ   t tt t¡t t¡ƒtt t¡t t¡ƒtt t¡t t¡ƒƒ} t t¡t t¡t t¡t t¡h}t|| ƒtjtjht	ƒ ftjtjtjtjtjht	ƒ ftjtjtjtjht	ƒ ftjtjtjht	ƒ fikshJ ‚d S rš   )
r<   r:   r   rH   r   rI   rJ   rK   r   Úset)ró   rô   rX   rX   rY   Útest_generate_known_facts_dicte  s   þ$ýÿrù   c                     st   t dƒ‰ tˆ ƒ} t | ¡}tƒ }| dd„ |jD ƒ¡ tƒ |ks"J ‚‡ fdd„tƒ D ƒ}t	|| ƒ}t
ƒ |ks8J ‚dS )z)"Test that ask_generated.py is up-to-dater   c                 s   s*    | ]}t d d„ t|tdD ƒƒV  qdS )c                 s   s     | ]}t |jj|jƒV  qd S rš   )r   ÚargÚfunctionÚis_Not)Ú.0ÚlitrX   rX   rY   Ú	<genexpr>z  ó   € z8test_known_facts_consistent.<locals>.<genexpr>.<genexpr>)ÚkeyN)Ú	frozensetÚsortedÚstr)rý   ÚclrX   rX   rY   rÿ   z  s   €( z.test_known_facts_consistent.<locals>.<genexpr>c                    s   g | ]}|ˆ ƒ‘qS rX   rX   )rý   Úpred©r   rX   rY   Ú
<listcomp>}  ó    z/test_known_facts_consistent.<locals>.<listcomp>N)r(   r   r   Úto_CNFrø   ÚupdateÚclausesr   r   r   r   )ÚfactÚcnfr  Úkeysrö   rX   r  rY   Útest_known_facts_consistentr  s   

r  c                   C   sª   t t dtdƒd tdƒd   ¡ƒdu sJ ‚t t ttdƒtdƒdd¡ƒdu s+J ‚t t ttdƒtdƒdd¡ƒdu s?J ‚t t ttdƒtdƒdd¡ƒdu sSJ ‚d S )Nl   Ò
>V3&¥Z
 rE   r€   Tr   rŸ   F)	r   r   rS   r5   r7   rP   r   r$   rH   rX   rX   rX   rY   Útest_Add_queries‚  s   .((,r  c                   C   sJ   t t td ¡ƒ tt t¡ƒrJ ‚W d   ƒ d S 1 sw   Y  d S )NrE   )r   r   rN   r   r   rX   rX   rX   rY   Útest_positive_assuming‰  s   "ÿr  c                   C   ó   t tdd„ ƒ d S )Nc                   S   s   t tttƒ tjƒS rš   )r   r#   r/   r   r   rJ   rX   rX   rX   rY   rÜ     r	  z!test_issue_5421.<locals>.<lambda>©rB   Ú	TypeErrorrX   rX   rX   rY   Útest_issue_5421Ž  ó   r  c                   C   r  )Nc                   S   s
   t tjƒS rš   )r   r   rN   rX   rX   rX   rY   rÜ   “  s   
 z!test_issue_3906.<locals>.<lambda>r  rX   rX   rX   rY   Útest_issue_3906’  r  r  c                   C   sR   t t ttƒd ¡t t¡ƒd u sJ ‚t t ttƒd ¡ t t¡ƒdu s'J ‚d S )Nr€   T)r   r   rN   r/   r   rO   rX   rX   rX   rY   Útest_issue_5833–  s   &,r  c                   C   s    t tdd„ ƒ t tdd„ ƒ d S )Nc                   S   s    t t t¡t t¡t t¡@ ƒS rš   )r   r   rN   r   rO   rX   rX   rX   rY   rÜ   œ  ó     z!test_issue_6732.<locals>.<lambda>c                   S   s    t t t¡t t¡t t¡@ ƒS rš   )r   r   rO   r   rN   rX   rX   rX   rY   rÜ     r  )rB   Ú
ValueErrorrX   rX   rX   rY   Útest_issue_6732›  s   r  c                   C   sl  t t ttƒ¡t t¡ƒdu sJ ‚t t ttƒ¡t t¡ƒdu s"J ‚t t ttƒ¡t t¡ƒdu s3J ‚t t ttƒ¡ƒd u s@J ‚t t ttƒ¡t t¡ƒd u sQJ ‚t t ttƒ¡t t¡ƒd u sbJ ‚t t tt	ddƒƒ¡ƒdu srJ ‚t t ttƒ¡t t¡t 
td ¡@ ƒdu sŠJ ‚t t ttƒ¡t t¡t td ¡@ ƒdu s¢J ‚t t ttƒ¡t t¡ƒd u s³J ‚t t tt	ddƒƒ¡ƒdu sÃJ ‚t t ttƒ¡t td ¡t 
td ¡@ ƒdu sÝJ ‚t t ttƒ¡t td ¡ƒd u sðJ ‚t t ttƒ¡t t¡ƒdu sJ ‚t t ttƒ¡t t¡ƒdu sJ ‚t t ttƒ¡t t¡ƒdu s&J ‚t t ttƒ¡ƒd u s4J ‚d S )NTFrE   r–   )r   r   rN   r4   r
   rO   rd   r   r3   r    r«   r®   r1   r2   rJ   rM   rX   rX   rX   rY   Útest_issue_7246   s"   """"" 00" 4&$$$ r  c                   C   s&   t t ttƒ¡t t¡ƒdu sJ ‚d S ru   )r   r   rN   r1   r   rd   rX   rX   rX   rY   Útest_issue_7246_failing·  s   &r  c                  C   sÜ  t ddd} tt | ¡ƒdu sJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s'J ‚t ddd} tt | ¡ƒdu s8J ‚tt | ¡ƒdu sCJ ‚tt | ¡ƒdu sNJ ‚t ddd} tt | ¡ƒd u s_J ‚tt | ¡ƒdu sjJ ‚t ddd} tt | ¡ƒdu s{J ‚tt | ¡ƒdu s†J ‚tt | ¡ƒdu s‘J ‚t ddd} tt | ¡ƒdu s¢J ‚t ddd	} tt | ¡ƒdu s³J ‚tt | ¡ƒdu s¾J ‚t ddd
} tt | ¡ƒdu sÏJ ‚tt | ¡ƒd u sÚJ ‚tt 	| ¡ƒd u såJ ‚t ddd} tt 
| ¡ƒdu söJ ‚t ddd} tt | ¡ƒdu sJ ‚tt | ¡ƒdu sJ ‚t ddd} tt | ¡ƒdu s&J ‚tt | ¡ƒdu s2J ‚t ddd} tt | ¡ƒdu sDJ ‚tt | ¡ƒdu sPJ ‚t ddd} tt | ¡ƒdu sbJ ‚tt | ¡ƒdu snJ ‚t ddd} tt | ¡ƒdu s€J ‚tt 	| ¡ƒdu sŒJ ‚t ddd} tt 	| ¡ƒdu sžJ ‚t ddd} tt | ¡ƒdu s°J ‚t ddd} tt | ¡ƒdu sÂJ ‚tt | ¡ƒdu sÎJ ‚t ddd} tt | ¡ƒdu sàJ ‚tt | ¡ƒdu sìJ ‚d S )Nr   T)rJ   F)rM   r¾   )rN   )rG   )rO   )r®   )rR   )rS   )rT   )rP   )rQ   )rc   )rd   ©rH   )rI   )rL   )r'   r   r   rJ   rM   rK   rN   rO   rG   rd   rR   rS   rT   rP   rQ   rc   rH   rI   rL   r  rX   rX   rY   Útest_check_old_assumption¾  sf   r   c                   C   sr   t t d¡ƒd u sJ ‚t t d¡ƒd u sJ ‚t t d¡ƒd u s!J ‚t t d¡ƒd u s,J ‚t t d¡ƒd u s7J ‚d S )Nr`   g      @g      @g       @)r   r   rH   rS   rT   rP   rQ   rX   rX   rX   rY   Útest_issue_9636	  s
   r!  c                   C   sp   t t dt ¡ƒd u sJ ‚t t dt  ¡ƒd u sJ ‚t t dt ¡ƒd u s(J ‚t t dt  ¡ƒd u s6J ‚d S ©Nr   )r   r   rM   r   rJ   rX   rX   rX   rY   Útest_autosimp_used_to_fail	  s    r#  c                     sf  ddl m‰  G ‡ fdd„dtƒ} z^tƒ  td| ƒ W d   ƒ n1 s$w   Y  tddd}tƒ  tt d	¡ƒs<J ‚W d   ƒ n1 sFw   Y  tƒ  tt |¡t |¡ƒs\J ‚W d   ƒ n1 sfw   Y  W t`nt`w G d
d„ dt	ƒ}z5|ƒ t_tj 
t¡dd„ ƒ}tj 
t¡‡ fdd„ƒ}tt d	¡ƒsžJ ‚tt |¡t |¡ƒs«J ‚W t`d S t`w )Nr   ©Ú	conjunctsc                       s(   e Zd Zedd„ ƒZe‡ fdd„ƒZdS )z/test_custom_AskHandler.<locals>.MersenneHandlerc                 S   ó    t t t| d dƒ¡ƒrdS d S ©NrE   r€   T©r   r   rH   r/   rß   rX   rX   rY   r   	  ó   ÿz7test_custom_AskHandler.<locals>.MersenneHandler.Integerc                    ó   | ˆ |ƒv rdS d S ru   rX   rß   r$  rX   rY   r(   	  ó   ÿz6test_custom_AskHandler.<locals>.MersenneHandler.SymbolN)râ   rã   rä   rå   r   r(   rX   r$  rX   rY   ÚMersenneHandler	  s
    
r,  Úmersenner   Tr  r–   c                   @   rç   )z1test_custom_AskHandler.<locals>.MersennePredicateNrè   rX   rX   rX   rY   ÚMersennePredicate-	  rê   r.  c                 S   r&  r'  r(  rß   rX   rX   rY   rë   1	  r)  z!test_custom_AskHandler.<locals>._c                    r*  ru   rX   rß   r$  rX   rY   rë   5	  r+  )Úsympy.logic.boolalgr%  r   rC   r   r(   r   r   r-  r   rí   r   )r,  r   r.  rë   rX   r$  rY   Útest_custom_AskHandler	  s2   	ÿÿÿ€


r0  c                  C   s‚   G dd„ dt ƒ} z5| ƒ t_tj tt¡dd„ ƒ}tj ttt¡dd„ ƒ}tt dd¡ƒs.J ‚tt dd	d
¡ƒs9J ‚W t`d S t`w )Nc                   @   rç   )z.test_polyadic_predicate.<locals>.SexyPredicateNrè   rX   rX   rX   rY   ÚSexyPredicateA	  rê   r1  c                    s:   t | |gƒ}t‡ fdd„|D ƒƒsdS |d |d  dkS )Nc                 3   ó     | ]}t t |¡ˆ ƒV  qd S rš   ©r   r   rS   ©rý   r‘   rµ   rX   rY   rÿ   I	  r   ú5test_polyadic_predicate.<locals>._.<locals>.<genexpr>FrE   r   é   ©r  Úall)Úint1Úint2r¶   rŽ   rX   rµ   rY   rë   F	  s   z"test_polyadic_predicate.<locals>._c                    sP   t | ||gƒ}t‡ fdd„|D ƒƒsdS |d |d  dko'|d |d  dkS )Nc                 3   r2  rš   r3  r4  rµ   rX   rY   rÿ   P	  r   r5  Fr€   rE   r6  r   r7  )r9  r:  Úint3r¶   rŽ   rX   rµ   rY   rë   M	  s   (r{   r\   r–   é   é   )r   r   Ú	sexyprimerí   r   r   )r1  rë   rX   rX   rY   Útest_polyadic_predicate?	  s   

r?  c                  C   sN   t dƒjd u s	J ‚G dd„ dt ƒ} | tdƒƒ}| tdƒƒ}|j|ju s%J ‚d S )NÚmypredicatec                   @   rç   )z5test_Predicate_handler_is_unique.<locals>.MyPredicateNrè   rX   rX   rX   rY   ré   `	  rê   ré   Úmp1Úmp2)r   Úhandlerr&   )ré   rA  rB  rX   rX   rY   Ú test_Predicate_handler_is_uniqueZ	  s
   rD  c                   C   st   t t td¡t t¡ƒsJ ‚t t td¡t t¡ƒrJ ‚t t td¡t t¡ƒr*J ‚t t td¡t t¡ƒs8J ‚d S r"  )r   r   r¨   r   rd   rc   ÚnerX   rX   rX   rY   Útest_relationalg	  s    rF  c                   C   s~   t t t¡t t¡t tt¡B ƒd u sJ ‚t t t¡t t¡dtkB ƒd u s(J ‚t t t¡t t¡t dt¡B ƒd u s=J ‚d S r"  )r   r   rÌ   r   ri   rN   r   ÚgtrX   rX   rX   rY   Útest_issue_25221n	  s   *&.rH  ) Ú	sympy.abcr   r   r   r   r   r   r   r	   r
   r   Úsympy.assumptionsr   r   r   r   r   Úsympy.assumptions.assumer   r   r   Úsympy.assumptions.cnfr   r   Úsympy.assumptions.factsr   r   r   r   Úsympy.assumptions.handlersr   Úsympy.assumptions.ask_generatedr   r   Úsympy.core.addr   Úsympy.core.numbersr   r   r    r!   r"   r#   Úsympy.core.singletonr$   Úsympy.core.powerr%   Úsympy.core.symbolr&   r'   r(   Ú(sympy.functions.combinatorial.factorialsr)   Ú$sympy.functions.elementary.complexesr*   r+   r,   r-   Ú&sympy.functions.elementary.exponentialr.   r/   Ú(sympy.functions.elementary.miscellaneousr0   Ú(sympy.functions.elementary.trigonometricr1   r2   r3   r4   r5   r6   r7   r8   r/  r9   r:   r;   r<   r=   Úsympy.matricesr>   r?   Úsympy.testing.pytestr@   rA   rB   rC   rD   ra   rZ   r]   r_   rb   re   rg   ro   rs   rt   rx   r   r   r„   r†   rŠ   rŒ   r   r’   r“   r”   r•   r—   r˜   r›   rž   r¥   r¦   r©   rª   r¬   r­   r¯   r°   r²   r³   r´   r·   r¸   r¹   r»   r¼   r½   rÉ   rÍ   rÐ   rÓ   rÔ   rÕ   rÖ   r×   rØ   rî   rò   r÷   rù   r  r  r  r  r  r  r  r  r  r   r!  r#  r0  r?  rD  rF  rH  rX   rX   rX   rY   Ú<module>   sÖ   0  ()0aj   y

KF

?i
O*J

;
	
!
-		(

F+