U
    —9%ezQ ã                   @   s   d dl mZ d dlmZ d dlmZmZ d dlmZ d dl	m
Z
 d dlmZmZ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mZmZ d d
lmZmZmZmZ d dl m!Z!m"Z" d dl#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z* d dl+m,Z, d dl-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z; d dl<m=Z=m>Z> d dl?m@Z@ d dlAmBZB d dlCmDZDmEZE d dlFmGZG d dlHmIZI d dlJmKZK d dlLmMZM d dlNmOZOmPZP d dlQmRZR d dlSmTZT d dlmUZU d dlVmWZWmXZX d dlYmZZZ d dl[m\Z\ d dl]m^Z^m_Z_m`Z` edƒ\ZaZbZced d!d"Zded#d!d$\ZeZfed%d!d&Zged'd!d(Zhed%d!d)Zied'd!d*Zjed+d!d,Zked-d!d.Zled/d!d0Zmed-d!d1Zned/d!d2Zoed3d!d4Zped5d!d6Zqed7d!d!d8Zrd9d:„ Zsd;d<„ Ztd=d>„ Zud?d@„ ZvdAdB„ ZwdCdD„ ZxdEdF„ ZydGdH„ ZzdIdJ„ Z{dKdL„ Z|dMdN„ Z}dOdP„ Z~dQdR„ ZdSdT„ Z€dUdV„ ZdWdX„ Z‚dYdZ„ Zƒd[d\„ Z„d]d^„ Z…e_d_d`„ ƒZ†dadb„ Z‡dcdd„ Zˆdedf„ Z‰dgdh„ ZŠdidj„ Z‹dkdl„ ZŒe^dmdn„ ƒZdodp„ ZŽdqdr„ Ze_dsdt„ ƒZdudv„ Z‘dwdx„ Z’dydz„ Z“d{d|„ Z”d}d~„ Z•dd€„ Z–dd‚„ Z—dƒd„„ Z˜d…d†„ Z™d‡dˆ„ Zšd‰dŠ„ Z›d‹dŒ„ ZœddŽ„ Zdd„ Zžd‘d’„ ZŸd“d”„ Z d•d–„ Z¡d—d˜„ Z¢d™dš„ Z£d›dœ„ Z¤ddž„ 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¶e^dÁdÂ„ ƒZ·e_dÃdÄ„ ƒZ¸e_dÅdÆ„ ƒZ¹e_dÇdÈ„ ƒZºdÉdÊ„ Z»dËdÌ„ Z¼dÍdÎ„ Z½dÏdÐ„ Z¾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S (  é    )ÚAccumBounds)ÚAdd)ÚLambdaÚdiff)ÚMod)ÚMul)ÚEÚFloatÚIÚRationalÚnanÚooÚpiÚzoo)ÚPow)ÚS)ÚSymbolÚsymbols)ÚargÚ	conjugateÚimÚre)ÚexpÚlog)ÚacothÚasinhÚatanhÚcoshÚcothÚsinhÚtanh)Úsqrt)ÚacosÚacotÚacscÚasecÚasinÚatanÚatan2ÚcosÚcotÚcscÚsecÚsinÚsincÚtan)ÚbesseljÚjn)Ú	Heaviside)ÚMatrix)ÚcancelÚgcd)Úlimit)ÚO)Úseries)ÚImageSet)Ú	FiniteSetÚInterval)Úsimplify)Ú	unchanged)ÚArgumentIndexError)ÚNeÚEq)Ú	Piecewise)ÚSetExpr)ÚXFAILÚslowÚraiseszx y zÚrT©Úrealzk m©ÚintegerÚp©ÚpositiveÚn©Únegative)Únonpositive©ZnonnegativeÚnz)ÚnonzeroÚep)Zextended_positiveÚen)Zextended_negative)Zextended_nonpositive)Zextended_nonnegativeÚenz)Zextended_nonzeroÚa)Ú	algebraicÚna)rT   rY   c            	      C   s6  t dƒ\} }t ddd}tjtdƒks*t‚ttƒtks:t‚ttƒtksJt‚ttƒtddƒks`t‚ttƒttƒ tddƒks~t‚ttt	 ƒtt	 ks–t‚tt t	 ƒt t	 ks²t‚d	ttƒ t
jksÈt‚d	ttƒ t
jksÞt‚d	ttƒ tddƒksøt‚d
ttƒ tddƒkst‚td	ƒd	ks&t‚t|t	 ƒt	t|ƒ ksDt‚tt| ƒƒ| ksZt‚tt| ƒƒ| td| d  ƒ ks€t‚tt| ƒƒtd| d  ƒks¢t‚tt| ƒƒdtdd| d   ƒ|   ksÐt‚tt| ƒƒd|  ksêt‚tt| ƒƒtdd| d   ƒkst‚tt|| ƒƒ|t| d |d  ƒ ks<t‚ttt	 ƒttƒt	 ksZt‚tt t	 ƒttƒ t	 ks|t‚tdt	 ƒtdƒ t	 ksœt‚ttƒd	ks®t‚tt ƒd	ksÂt‚tdt ƒd	ksØt‚tdt ƒd	ksît‚tddd  t ƒd	kst‚tddd  t ƒd	ks*t‚ttd ƒdks@t‚tt d ƒdksXt‚tttd
dƒ ƒdkstt‚tttddƒ ƒdkst‚t dddd}t ddd}tt| d ƒd|d t
j  ksÒt‚ttt d ƒjtksît‚tt| d ƒd	kst‚ttt ƒd	kst‚ttt ƒ td¡ttt d ƒ td¡ksPt‚ttd ƒt
jtdƒ kspt‚tttddƒ ƒtddƒtdƒ ksšt‚ttd ƒt
jtdƒ ksºt‚tt d ƒtddƒtdƒ ksàt‚tttddƒ ƒt
jtdƒ kst‚tttddƒ ƒtddƒtdƒ ks0t‚ttd ƒt
jksHt‚tt d ƒtddƒksft‚tttddƒ ƒtddƒksˆt‚tttddƒ ƒtddƒksªt‚tttdd
ƒ ƒtd
td
ƒ d ƒksÖt‚tttdd
ƒ ƒtd
td
ƒ d ƒkst‚tttdd
ƒ ƒtttdd
ƒ ƒks,t‚tttdd
ƒ ƒtttdd
ƒ ƒksVt‚tttdd
ƒ ƒtttdd
ƒ ƒ ks‚t‚tttdd
ƒ ƒtttdd
ƒ ƒ ks®t‚tttdd
ƒ ƒtttdd
ƒ ƒ ksÚt‚ttd ƒtdtdƒ d ƒks t‚ttd ƒtddƒtd
ƒd  ks(t‚ttd ƒtdƒ d tdƒd  ksTt‚tttd
dƒ ƒtdƒd tdƒd  ks„t‚tttddƒ ƒtdƒ d tdƒd  ks¶t‚tttddƒ ƒtdƒd tdƒd  ksæt‚tttdd ƒ ƒttd  ƒks
t‚tttd!d ƒ ƒttd  ƒ ks0t‚tttd"d ƒ ƒttd  ƒ ksVt‚tttd#d ƒ ƒttd  ƒkszt‚t| t	 ƒt| ƒt	 ks˜t‚ttt ƒd	ks®t‚tdt t ƒd	ksÈt‚tdt t d ƒtdƒksêt‚tdt t tt  d ƒdtdt   tdƒ k	s$t‚ttt t	 ƒttt ƒt	 k	sJt‚ttƒjdk	s^t‚td	dd$j	srt‚ttƒjd k	s†t‚tt ƒjdk	sšt‚t!d%dd&}tt| ƒj	sºt‚t!d'ddd(}t|ƒj"dk	sÜt‚t|ƒj"d k	sðt‚t#tt$| ƒt%|ƒ ƒtƒdk
st‚t#tt$| ƒ t%|ƒ ƒtƒdk
s:t‚tt&t'd	dƒƒƒt&t(t)| t| ƒƒt'd	dƒƒƒk
spt‚t*t+dd)ƒƒd*d+g D ]T}t+|d d ƒD ]<}|t | } t,t-t| ƒƒtt-| ƒƒ ƒ}|d,k 
sšt‚
qš
q†td	dd$j.dk
sôt‚ttt dd$j.dkst‚tt/dddd$dd$j.dks2t‚d S )-Núx yÚzT©Z	imaginaryé   éÿÿÿÿéþÿÿÿé   r   é   é   é   éýÿÿÿé
   éI   é   ég   ÚneF©rJ   ÚevenÚe©rl   é   é   éûÿÿÿé   éûÿÿé   éùÿÿÿéõÿÿÿéh   éi   éj   é˜ÿÿÿé–ÿÿÿ©ÚevaluateÚq©ÚrationalÚqn)r€   rT   é   é<   éU   çê-™—q=)0r   r-   Únargsr:   ÚAssertionErrorr   r   r   r   r
   r   ÚZeror   r&   r'   r!   r"   r#   r$   r%   r(   r   r   ÚHalfÚkÚfuncÚsubsÚmrF   Úis_realÚis_algebraicrX   rZ   r   Úis_rationalÚ
isinstancer   r   rB   r;   r9   r   ÚlistÚrangeÚabsÚfloatÚis_zeror   )	ÚxÚyr\   rj   rm   r~   r   ÚdrN   © rš   úr/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/sympy/functions/elementary/tests/test_trigonometric.pyÚtest_sin3   sÂ    &".&," (2 * &&*"",,**,,,&(,020$&&$":&$& ÿrœ   c                  C   sÖ   dD ]Ì} t d|  | d ƒD ]´}|t |  }t|td  ƒt|ƒksRtd|| f ƒ‚t|td  ƒt|ƒ ks|td|| f ƒ‚t|ƒt|td  ƒks¤td|| f ƒ‚t|ƒ t|td  ƒkstd|| f ƒ‚qqd S )N)r^   ra   ro   rc   rb   rd   rf   rt   é   é   é   é   é(   rƒ   éx   r`   ra   úfails for %d*pi/%d)r“   r   r-   r)   r‡   )r™   rN   r—   rš   rš   r›   Útest_sin_cos²   s    (*(r¤   c                   C   sN   t tƒ tdd¡ttd d  td d  td d  ttd ƒ ksJt‚d S )	Nr   é	   ro   rd   rb   r¢   rh   i°  )r-   r—   r8   r7   r‡   rš   rš   rš   r›   Útest_sin_series¼   s    2ÿr¦   c                   C   s°  t tƒ t¡t ttt ƒtt t ƒ  d ks6t‚t tƒ t¡dttd ƒ dttd ƒd   kslt‚t tƒ t¡tdt	t
tƒdƒt	tttƒdƒ@ fdttd ƒ ttd ƒd d  dfƒksÊt‚t ttƒƒ t¡ td¡ ¡ t tƒ t¡ ttdƒ¡ ¡ kst‚t ttƒƒ t¡ td¡ ¡ t tƒ t¡ ttdƒ¡ ¡ ksNt‚t ttƒƒ t¡ td¡ ¡ t tƒ t¡ ttdƒ¡ ¡ kst‚t ttƒƒ t¡ td¡ ¡ t tƒ t¡ ttdƒ¡ ¡ ksÒt‚t t tƒƒ t¡ td¡ ¡ t tƒ t¡ tt dƒ¡ ¡ kst‚t ttƒƒ t¡ td¡ ¡ t tƒ t¡ ttdƒ¡ ¡ ksVt‚t ttƒƒ t¡ td¡ ¡ t tƒ t¡ ttdƒ¡ ¡ ks˜t‚t ttƒƒ t¡ td¡ ¡ t tƒ t¡ ttdƒ¡ ¡ ksÚt‚t ttƒƒ t¡ttt   d ttt  d  kst‚t tƒ t¡dttƒ ks4t‚t tƒ t¡tttd  ddks\t‚t tƒ t¡dtttd  dd ksˆt‚t ttƒƒ t¡t ttƒƒks¬t‚d S ©Nra   r^   r   Tro   Fr|   )r-   r—   Úrewriter   r
   r‡   r/   r*   rA   r@   r   r   r   r   rŒ   rN   r   r    r   r)   r   r   r+   r,   rš   rš   rš   r›   Útest_sin_rewriteÁ   s˜    66"&ÿÿÿ ÿÿ
ÿ ÿÿ
ÿ ÿÿ
ÿ ÿÿ
ÿ ÿÿ
ÿ ÿÿ
ÿ ÿÿ
ÿ ÿÿ
: (,r©   c                 C   sp   ddl m} t| |ƒst‚|| |ƒƒ| |ƒks2t‚|| t|dddƒƒ|ksPt‚t| |ƒ| ƒ ¡ dk slt‚d S )Nr   )Úexpand_trigr^   Fr|   ç»½×Ùß|Û=)Úsympy.core.functionrª   r=   r‡   r   r”   rN   )ÚfÚirm   rª   rš   rš   r›   Ú_test_extrigÞ   s
    r¯   c                   C   s”  t tt ƒjddt tƒttƒ ttƒt tƒ  ks8t‚t tt ƒjddt tƒttƒ ttƒt tƒ  kspt‚t tt ƒjddttƒt tƒ t tƒttƒ  ks¨t‚t dt ƒjdddt tƒ ttƒ ksÔt‚t dt ƒjdddt tƒd  dt tƒ  ks
t‚t dt ƒjdddt tƒd  ttƒ dt tƒ ttƒ  ksPt‚tt ddt dƒ tdƒ ƒ tt ddt dƒd  dt dƒ  ƒ d S )	NT©Ztrigra   ro   éüÿÿÿrc   éøÿÿÿr^   )r-   r—   r˜   Úexpandr)   r‡   r¯   rš   rš   rš   r›   Útest_sin_expansionè   s    888,6Fr´   c                   C   s~  t tt tƒƒtddƒkst‚t tdtƒƒtddƒks:t‚t tt dƒƒtddƒksXt‚t tddtj ƒƒtddƒkszt‚t tdtjtddƒ ƒƒtddƒks¢t‚t ttjtddƒ tjtddƒ ƒƒtdt tjtddƒ ƒƒksæt‚t ttjd tjd ƒƒtt tjd ƒt tjd ƒƒks$t‚t ttjtddƒ tjtdd	ƒ ƒƒtt tjtdd	ƒ ƒt tjtddƒ ƒƒkszt‚d S )
Nr_   r^   r   ra   ro   rc   rh   rb   rd   )r-   r   r   r‡   r   ÚPir   rš   rš   rš   r›   Útest_sin_AccumBoundsõ   s    "(D>r¶   c                   C   s*   t tƒ ¡ ttƒkst‚ttdd„ ƒ d S )Nc                   S   s   t tƒ d¡S ©Nra   )r-   r—   Úfdiffrš   rš   rš   r›   Ú<lambda>  ó    z test_sin_fdiff.<locals>.<lambda>)r-   r—   r¸   r)   r‡   rE   r>   rš   rš   rš   r›   Útest_sin_fdiff   s    r»   c                   C   s  t t ƒt tƒ kst‚tt ƒttƒks.t‚tt ƒttƒ ksFt‚tt ƒttƒ ks^t‚t tt ƒt tƒ ksxt‚t tdt  ƒt tƒks”t‚t tdt  ƒt tƒ ks²t‚t tdt  ƒt tƒksÎt‚t tdt  ƒt tƒ ksìt‚ttt ƒttƒ kst‚ttdt  ƒttƒks&t‚ttdt  ƒttƒ ksFt‚ttdt  ƒttƒksdt‚ttdt  ƒttƒ ks„t‚ttt ƒttƒksžt‚ttdt  ƒttƒks¼t‚ttt ƒttƒksÖt‚ttdt  ƒttƒksôt‚t td t ƒttƒkst‚t ttddƒ t ƒttƒ ks8t‚t ttddƒ t ƒttƒks\t‚ttd t ƒt tƒkszt‚tttddƒ t ƒt tƒ ks t‚tttddƒ t ƒt tƒksÄt‚ttd t ƒttƒksât‚tttddƒ t ƒttƒkst‚tttddƒ t ƒttƒks*t‚ttd t ƒttƒksHt‚tttddƒ t ƒttƒkslt‚tttddƒ t ƒttƒkst‚t td t ƒttƒks®t‚ttd t ƒt tƒ ksÎt‚ttd t ƒttƒ ksît‚ttd t ƒttƒ kst‚d S )Nra   ro   rc   rb   )r-   r—   r‡   r)   r/   r*   r   r   rš   rš   rš   r›   Útest_trig_symmetry  sD      &$&$$$$$  r¼   c                  C   s	  t dƒ\} }tjtdƒkst‚ttƒtks.t‚ttƒtddƒksDt‚ttƒttƒ tddƒksbt‚ttt ƒtksvt‚tt t ƒtksŒt‚tt	ƒtksœt‚tdƒdks¬t‚tt
| ƒƒ| ksÀt‚tt| ƒƒdtd| d  ƒ ksät‚tt| ƒƒtd| d  ƒkst‚tt| ƒƒdtdd| d   ƒ ks0t‚tt| ƒƒtdd| d   ƒksVt‚tt| ƒƒd|  kspt‚tt|| ƒƒ| t| d |d  ƒ ksœt‚ttt ƒttƒks¶t‚tt t ƒttƒksÒt‚tdt ƒtdƒksìt‚ttd ƒdkst‚tt d ƒdkst‚ttd ƒdks0t‚tt d ƒdksHt‚tddd	  d t d ƒdksnt‚td
dd  d t d ƒdks”t‚t dddd}t ddd}tt| d ƒdksÈt‚tt| d ƒd|d  ksêt‚ttƒdksüt‚tt ƒdkst‚tdt ƒdks&t‚tdt ƒdks<t‚tdt ƒdksRt‚ttd ƒtjksjt‚tttddƒ ƒtddƒksŒt‚ttd ƒtjtdƒ ks¬t‚tt d ƒtjtdƒ ksÎt‚tttddƒ ƒtddƒtdƒ ksøt‚tttddƒ ƒtddƒtdƒ ks"t‚ttd ƒtjtdƒ ksBt‚tt d ƒtjtdƒ ksdt‚tttd
dƒ ƒtddƒtdƒ ksŽt‚tttddƒ ƒtddƒtdƒ ks¸t‚tttddƒ ƒtdƒd d ksàt‚tttddƒ ƒtdƒd d kst‚tttddƒ ƒtttddƒ ƒ ks4t‚tttddƒ ƒtttddƒ ƒ ks`t‚tttddƒ ƒtttddƒ ƒ ksŒt‚tttddƒ ƒtttddƒ ƒks¶t‚tttddƒ ƒtttddƒ ƒ ksât‚ttd ƒtdtdƒ d ƒkst‚ttd ƒtdƒd tdƒd  ks2t‚tttddƒ ƒtdƒ d tdƒd  ksdt‚tttd
dƒ ƒtdƒd tdƒd  ks”t‚tttddƒ ƒtdƒ d tdƒd  ksÆt‚tttddƒ ƒttd ƒ ksìt‚tttddƒ ƒttd ƒ kst‚tttddƒ ƒttd ƒ ks8t‚tttddƒ ƒttd ƒ ks^t‚t| t ƒt| ƒksxt‚ttt t ƒttt ƒksšt‚ttƒjdks®t‚tddd jsÂt‚ttƒjd ksÖt‚ttƒjdksêt‚td!dd"}tt| ƒjs
t‚tttdd
ƒ ƒjs$t‚ttt ƒdt ks>t‚tdt t ƒdksXt‚tddd jdkspt‚ttddƒƒjdksŠt‚ttddd dd jd ksªt‚tt dd#ƒƒd$d%g D ]T}t d| d ƒD ]<}|t | } t!t"t| ƒƒtt"| ƒƒ ƒ}|d&k sÔt‚qÔqÀd S )'Nr[   r^   r_   r`   ra   r   re   rf   rg   rh   ri   rN   TFrk   rm   rn   rb   rr   ro   rc   é   rd   rq   rs   rt   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Š   rF   rŽ   r   rX   rZ   r   r–   r’   r“   r”   r•   )r—   r˜   rN   rm   r~   r™   rš   rš   r›   Útest_cos*  sž    $"*&,&&"" "** "**((,,,*,&*202&&&&" r¾   c                  C   st   t ddƒ} ttttfD ]X}|| t ƒ|td ƒks6t‚|dt ƒ|td ƒksRt‚|dt ƒ|dt ƒkst‚qd S )Nz!123456789012345678901234567890.25Ú rc   g     €@rr   gÍÌÌÌÌÌ@ghfffffæ?)r	   r-   r)   r/   r*   r   r‡   )ÚcÚclsrš   rš   r›   Útest_issue_6190“  s
    
rÂ   c                   C   sZ   t tƒ tdd¡dtd d  td d  td d  td	 d
  ttd ƒ ksVt‚d S )Nr   r¥   r^   ra   rc   rŸ   rd   éÐ  rr   i€  )r)   r—   r8   r7   r‡   rš   rš   rš   r›   Útest_cos_series›  s    >ÿrÄ   c                	   C   s´  t tƒ t¡ttt ƒd tt t ƒd  ks4t‚t tƒ t¡dttd ƒd  dttd ƒd   ksnt‚t tƒ t¡tdt	t
tƒdƒt	ttdt ƒdƒ@ fttd ƒd d ttd ƒd d  dfƒksÔt‚t ttƒƒ t¡ td¡ ¡ t tƒ t¡ ttdƒ¡ ¡ kst‚t ttƒƒ t¡ td¡ ¡ t tƒ t¡ ttdƒ¡ ¡ ksXt‚t ttƒƒ t¡ td¡ ¡ t tƒ t¡ ttdƒ¡ ¡ ksšt‚t ttƒƒ t¡ td¡ ¡ t tƒ t¡ ttdƒ¡ ¡ ksÜt‚t ttƒƒ t¡ td¡ ¡ t tƒ t¡ ttdƒ¡ ¡ kst‚t t tƒƒ t¡ td¡ ¡ t tƒ t¡ tt dƒ¡ ¡ ks`t‚t ttƒƒ t¡ td¡ ¡ t tƒ t¡ ttdƒ¡ ¡ ks¢t‚t ttƒƒ t¡ td¡ ¡ t tƒ t¡ ttdƒ¡ ¡ ksät‚t ttƒƒ t¡tt d tt  d  kst‚t tƒ t¡dttƒ ks6t‚t tƒ t¡tttd  ddks^t‚t tƒ t¡dtt td  dd ksŒt‚t ttƒƒ t¡t ttƒƒks°t‚d S r§   )r)   r—   r¨   r   r
   r‡   r/   r*   rA   r@   r   r   r   r   rŒ   rN   r   r    r   r-   r   r   r,   r+   rš   rš   rš   r›   Útest_cos_rewrite   s˜    4:&*ÿÿÿ ÿÿ
ÿ ÿÿ
ÿ ÿÿ
ÿ ÿÿ
ÿ ÿÿ
ÿ ÿÿ
ÿ ÿÿ
ÿ ÿÿ
2 (.rÅ   c                   C   sŒ  t tt ƒjddt tƒt tƒ ttƒttƒ  ks8t‚t tt ƒjddt tƒt tƒ ttƒttƒ  kspt‚t tt ƒjddt tƒt tƒ ttƒttƒ  ks¨t‚t dt ƒjdddt tƒd  d ksÔt‚t dt ƒjdddt tƒd  dt tƒ  ks
t‚t dt ƒjdddt tƒd  dt tƒd   d ksHt‚tt ddt dƒd  d ƒ tt ddt dƒd  dt dƒ  ƒ d S )NTr°   ra   r^   ro   rc   rr   )r)   r—   r˜   r³   r-   r‡   r¯   rš   rš   rš   r›   Útest_cos_expansion½  s    888,6>rÆ   c                   C   sŒ  t tt tƒƒtddƒkst‚t tdtƒƒtddƒks:t‚t tt dƒƒtddƒksXt‚t tddtj ƒƒtddƒkszt‚t ttj d tjd ƒƒtt tj d ƒdƒks°t‚t ttjtddƒ tjtddƒ ƒƒtdt tjtddƒ ƒƒksôt‚t ttjtddƒ tjtddƒ ƒƒtt tjtddƒ ƒt tjtddƒ ƒƒksJt‚t ttjd tjd ƒƒtt tjd ƒt tjd ƒƒksˆt‚d S )Nr_   r^   r   ra   ro   rc   rb   )r)   r   r   r‡   r   rµ   r   rš   rš   rš   r›   Útest_cos_AccumBoundsÈ  s    "6DVrÇ   c                   C   s,   t tƒ ¡ ttƒ kst‚ttdd„ ƒ d S )Nc                   S   s   t tƒ d¡S r·   )r)   r—   r¸   rš   rš   rš   r›   r¹   Õ  rº   z test_cos_fdiff.<locals>.<lambda>)r)   r—   r¸   r-   r‡   rE   r>   rš   rš   rš   r›   Útest_cos_fdiffÓ  s    rÈ   c                  C   s
  t tƒtkst‚t tƒtks t‚t tƒtt tƒks8t‚t tƒt tƒ tt tƒksXt‚t jtdƒksjt‚t tt ƒtks~t‚t t t ƒt ks–t‚t dƒdks¦t‚t t	t
ƒƒt
ksºt‚t tt
ƒƒt
tdt
d  ƒ ksÞt‚t tt
ƒƒtdt
d  ƒt
 kst‚t tt
ƒƒdt
 kst‚t tt
ƒƒdtddt
d   ƒt
  ksLt‚t tt
ƒƒtddt
d   ƒt
 ksvt‚t ttt
ƒƒtt
 ks’t‚t tt ƒttƒt ks°t‚t t t ƒttƒ t ksÒt‚t dt ƒtdƒ t ksòt‚t tƒdkst‚t t ƒdkst‚t dt ƒdks.t‚t dt ƒdksDt‚t ddd  t ƒdksbt‚t td ƒtksxt‚t ttddƒ ƒtks”t‚t td ƒtdƒks®t‚t ttddƒ ƒtdƒksÎt‚t td	 ƒtjksæt‚t t d	 ƒtjks t‚t ttd
d	ƒ ƒtjkst‚t ttdd	ƒ ƒtjks<t‚t td ƒtddtdƒ  ƒksbt‚t ttddƒ ƒtddtdƒ  ƒksŽt‚t ttddƒ ƒtddtdƒ  ƒ ks¼t‚t ttddƒ ƒtddtdƒ  ƒ ksêt‚t td ƒdtdƒ kst‚t t d ƒdtdƒ ks(t‚t ttddƒ ƒdtdƒ ksLt‚t ttddƒ ƒdtdƒ kspt‚t td ƒdtdƒ ksŽt‚t ttddƒ ƒdtdƒ ks²t‚t ttddƒ ƒdtdƒ ksÖt‚t ttddƒ ƒdtdƒ ksút‚t td ƒtddtdƒ d  ƒks$t‚t ttddƒ ƒtddtdƒ d  ƒksTt‚t ttd
dƒ ƒtddtdƒ d  ƒ ks†t‚t ttddƒ ƒtddtdƒ d  ƒ ks¸t‚t td ƒtdƒ d ksØt‚t ttddƒ ƒtdƒd ksüt‚t ttddƒ ƒtdƒ d ks"t‚t ttddƒ ƒtdƒd ksFt‚t td ƒ ¡ dtdƒ tdƒ tdƒ ksxt‚t ttddƒ ƒ ¡ dtdƒ tdƒ tdƒ ks°t‚t ttddƒ ƒ ¡ dtdƒ tdƒ tdƒ ksèt‚t ttddƒ ƒ ¡ dtdƒ tdƒ tdƒ ks t‚t ttddƒ ƒ ¡ dtdƒ tdƒ tdƒ ksXt‚t ttd
dƒ ƒ ¡ dtdƒ tdƒ tdƒ kst‚t ttddƒ ƒ ¡ dtdƒ tdƒ tdƒ ksÈt‚t ttddƒ ƒ ¡ dtdƒ tdƒ tdƒ ks t‚t t
t ƒtt
ƒt kst‚t tt ƒdks4t‚t d
t t ƒdksNt‚t tt t ƒttt ƒt kstt‚t tƒjd ksˆt‚t tƒjdksœt‚t dddjs°t‚t tƒjd ksÄt‚t t ƒjdksØt‚t ttddƒ ƒt ttddƒ ƒk	st‚t ttddƒ ƒt ttddƒ ƒ k	s.t‚t ttddƒ ƒt ttddƒ ƒk	sXt‚t ttddƒ ƒt td ƒk	s|t‚t ttd dƒ ƒt td ƒ k	s¢t‚t tƒj!d k	s¶t‚t tt ƒj!dk	sÎt‚t tt
tdƒd   ƒdt
  } |  "t
¡ddt t
d   k
st‚d S )!Nr^   r   ra   r`   re   rf   rg   ro   rc   rp   rb   é   iðÿÿÿrd   r_   rh   rq   rr   iáÿÿÿrt   r½   rŸ   é   é   é   TFr|   rv   r   é   éñÿÿÿ)#r/   r   r‡   r   r   r   r†   r:   r
   r'   r—   r&   r!   r"   r#   r$   r%   r(   r˜   r   r    r   r   ÚOneÚNegativeOneÚradsimprŠ   rF   rŽ   Úis_extended_realr   rX   rZ   Ú	is_finiteÚas_leading_term©r­   rš   rš   r›   Útest_tanØ  sš     $&.*"  &,.. $$$$$*022 $&$28888888&*,*$& rÖ   c                   C   sV   t tƒ tdd¡ttd d  dtd  d  dtd  d	  ttd ƒ ksRt‚d S )
Nr   r¥   ro   ra   rb   r   rp   rh   i;  )r/   r—   r8   r7   r‡   rš   rš   rš   r›   Útest_tan_series@  s    :ÿr×   c                  C   s˜  t t t ƒt tt ƒ } }ttƒ t ¡t| |  | |  ksBt‚ttƒ t¡dttƒd  tdt ƒ kspt‚ttƒ t¡tttj	d  ddttƒ ks t‚ttƒ t
¡dt
tƒ ks¾t‚tttƒƒ t ¡ td¡ ¡ ttƒ t ¡ ttdƒ¡ ¡ ks t‚tttƒƒ t ¡ td¡ ¡ ttƒ t ¡ ttdƒ¡ ¡ ksBt‚tttƒƒ t ¡ td¡ ¡ ttƒ t ¡ ttdƒ¡ ¡ ks„t‚tttƒƒ t ¡ td¡ ¡ ttƒ t ¡ ttdƒ¡ ¡ ksÆt‚tttƒƒ t ¡ td¡ ¡ ttƒ t ¡ ttdƒ¡ ¡ kst‚tttƒƒ t ¡ td¡ ¡ ttƒ t ¡ ttdƒ¡ ¡ ksJt‚tttƒƒ t ¡ td¡ ¡ ttƒ t ¡ ttdƒ¡ ¡ ksŒt‚tt
tƒƒ t ¡ td¡ ¡ ttƒ t ¡ tt
dƒ¡ ¡ ksÎt‚tttƒƒ t¡ttt  tt   tt  tt   kst‚ttƒ t¡ttƒtttd  dd ks>t‚ttƒ t¡tt td  ddttƒ kspt‚tttƒƒ t¡tttƒƒks”t‚d S )Nra   Fr|   r^   ro   )r   r—   r
   r/   r¨   r‡   r-   r)   r   rµ   r*   r   rŒ   rN   r   r    r   r   r   r,   r   r+   )Úneg_expÚpos_exprš   rš   r›   Útest_tan_rewriteE  s"    &.0BBBBBBBB@02rÚ   c                   C   s
  dt td ƒttd ƒ ttd ƒ  t¡ks2t‚dt td ƒttd ƒ ttd ƒ  t¡ksdt‚ttd ƒ t¡ttd ƒks†t‚tttddƒ ƒ t¡tttddƒ ƒks´t‚tttddƒ dd	 t¡ttdƒd tddƒ ƒtd
dƒtdƒd   kst‚d S )Nr   é"   rp   rË   rr   ra   rb   Fr|   r_   rc   )	r)   r   r/   r-   r¨   Úpowr‡   r   r!   rš   rš   rš   r›   Útest_tan_rewrite_slowY  s    22".&ÿÿrÝ   c                   C   s~   t tƒ t tƒt¡tkst‚t tƒ tt¡t tƒks8t‚t tƒ ttjd ¡tksVt‚t tƒ ttjtddƒ ¡tkszt‚d S )Nra   ro   )	r/   r—   rŒ   r˜   r‡   r   rµ   r   r   rš   rš   rš   r›   Útest_tan_subsc  s    rÞ   c                   C   s2  t tt ƒjddt tƒt tƒ dt tƒt tƒ    ¡ ks@t‚t tt ƒjddt tƒt tƒ dt tƒt tƒ    ¡ ks€t‚t tt t ƒjd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ƒ    ¡ kst‚dt dt ƒjdd t ¡ t tƒtddƒfg¡d d ksHt‚dt dt ƒjdd t ¡ t tƒtdd	ƒfg¡d
 d ksŠt‚dt dt t	d  ƒjdd t ¡ t tƒtdd	ƒfg¡d d ksÔt‚t
t ddt dƒ dt dƒd   ƒ t
t dt dƒd  dt dƒ  ddt dƒd    ƒ d S )NTr°   r^   r   ra   rh   rŸ   ro   rb   é7   é%   rc   éï   )r/   r—   r˜   r³   r‡   r\   r¨   rŒ   r   r   r¯   rš   rš   rš   r›   Útest_tan_expansionj  s    @@.2ÿÿBBJ$râ   c                   C   s   t tt tƒƒtt tƒks t‚t ttjd tjtddƒ ƒƒtt tƒksPt‚t ttjd tjd ƒƒtt tjd ƒt tjd ƒƒksŒt‚d S )Nro   ra   rd   )r/   r   r   r‡   r   rµ   r   rš   rš   rš   r›   Útest_tan_AccumBoundsw  s     0rã   c                   C   s2   t tƒ ¡ t tƒd d ks t‚ttdd„ ƒ d S )Nra   r^   c                   S   s   t tƒ d¡S r·   )r/   r—   r¸   rš   rš   rš   r›   r¹     rº   z test_tan_fdiff.<locals>.<lambda>)r/   r—   r¸   r‡   rE   r>   rš   rš   rš   r›   Útest_tan_fdiff}  s     rä   c                  C   sª  t tƒtkst‚t jtdƒks"t‚t tt ƒt ks8t‚t t t ƒtksNt‚t tƒtks^t‚t dƒtksnt‚t dt ƒtks‚t‚t t	t
ƒƒt
ks–t‚t tt
ƒƒdt
 ks®t‚t tt
ƒƒtdt
d  ƒt
 ksÒt‚t tt
ƒƒt
tdt
d  ƒ ksöt‚t tt
ƒƒtddt
d   ƒt
 ks t‚t tt
ƒƒdtddt
d   ƒt
  ksNt‚t ttt
ƒƒt
t ksjt‚t tt ƒttƒ t ksŠt‚t t t ƒttƒt ksªt‚t dt ƒtdƒt ksÈt‚t tƒt dt ƒ  krôt dt ƒksún t‚t t ƒt dt ƒ  kr(t dt ƒks.n t‚t td ƒdksDt‚t t d ƒdks\t‚t ttddƒ ƒdksxt‚t ttddƒ ƒdks”t‚t td ƒdtdƒ ks²t‚t ttddƒ ƒdtdƒ ksÖt‚t td	 ƒtjksît‚t t d	 ƒtjkst‚t ttd
d	ƒ ƒtjks&t‚t ttdd	ƒ ƒtjksDt‚t td ƒtdƒks^t‚t t d ƒtdƒ ks|t‚t ttddƒ ƒtdƒksœt‚t ttddƒ ƒtdƒks¼t‚t td ƒdtdƒ ksÚt‚t ttddƒ ƒdtdƒ ksþt‚t ttddƒ ƒdtdƒ ks"t‚t ttddƒ ƒdtdƒ ksFt‚t td ƒtdƒd ksdt‚t ttddƒ ƒtdƒ d ksŠt‚t ttddƒ ƒtdƒd ks®t‚t ttddƒ ƒtdƒ d ksÔt‚t td ƒ ¡ tdƒtdƒ d tdƒ kst‚t ttddƒ ƒ ¡ tdƒ tdƒ d tdƒ ks@t‚t ttddƒ ƒ ¡ tdƒ tdƒ d tdƒ kszt‚t ttddƒ ƒ ¡ tdƒtdƒ d tdƒ ks²t‚t ttddƒ ƒ ¡ tdƒ tdƒ d tdƒ ksìt‚t ttd
dƒ ƒ ¡ tdƒtdƒ d tdƒ ks$t‚t ttddƒ ƒ ¡ tdƒtdƒ d tdƒ ks\t‚t ttddƒ ƒ ¡ tdƒ tdƒ d tdƒ ks–t‚t t
t ƒtt
ƒ t ks¶t‚t tt t ƒttt ƒ t ksÞt‚t tƒjd ksòt‚t tƒjdkst‚t tƒjd kst‚t tƒjdks.t‚t ttddƒ ƒt ttddƒ ƒksXt‚t ttddƒ ƒt ttddƒ ƒ ks„t‚t ttddƒ ƒt ttddƒ ƒks®t‚t ttddƒ ƒt ttddƒ ƒksØt‚t ttddƒ ƒt ttddƒ ƒ kst‚t t
ƒj d kst‚t tƒj d ks,t‚t!ddd} t | ƒj dksLt‚t t
ƒ "t
dt ¡tksjt‚t tt
d	  ƒdt
  }| #t
¡ddt t
d   ks¦t‚d S )Nr^   r   ra   r`   ro   re   rb   rh   rc   rp   rd   rq   rr   r_   rt   r½   rŸ   rÊ   rË   rÌ   TFrf   rv   é'   rÛ   i×ÿÿÿr®   r]   )$r*   r   r‡   r†   r:   r   r
   r   r   r#   r—   r'   r&   r!   r"   r$   r%   r(   r˜   r   r   r   rÏ   rÐ   rÑ   rŠ   rF   rŽ   rÒ   rX   r   rZ   rÓ   r   rŒ   rÔ   )r®   r­   rš   rš   r›   Útest_cot‚  s†    $$*.  24$  $$$&$&2::8:88: (*,**,ræ   c                   C   s˜   t tttddƒ ƒtttddƒ ƒ tttddƒ ƒ d  ¡ ƒdk sJt‚t tttddƒ ƒtttddƒ ƒ tttddƒ ƒ d  ¡ ƒdk s”t‚d S )Nrr   r   r^   g›+¡†›„=rc   )	r”   r/   r   r   r)   r-   Úevalfr‡   r*   rš   rš   rš   r›   Útest_tan_cot_sin_cos_evalfÝ  s    Jrè   c                   C   sˆ   dt ttddƒ ƒtttddƒ ƒ tttddƒ ƒ  ¡ ksBt‚dtttddƒ ƒtttddƒ ƒ tttddƒ ƒ  ¡ ks„t‚d S )Nr^   rr   r   rc   )r/   r   r   r)   r-   Úratsimpr‡   r*   rš   rš   rš   r›   Útest_tan_cot_sin_cos_ratsimpá  s    Brê   c                   C   sP  t tƒ tdd¡dt td  td d  dtd  d  td	 d
  ttd ƒ ksZt‚t td td  ƒ tdd¡td dtd   td  dt  d ttƒ ks¬t‚t tdt  ƒ tdd¡dtt  tt d  ttd ƒ ksît‚t tƒ dt¡dt kst‚t tƒ dt¡tjks(t‚t tƒ dt¡td  d ksLt‚d S )Nr   r¥   r^   ro   é-   ra   rb   i±  rh   iu  rc   r±   r`   r_   )	r*   r—   r8   r7   r‡   r   Útaylor_termr   rˆ   rš   rš   rš   r›   Útest_cot_seriesç  s    Bÿ.ÿBrí   c                  C   sÈ  t t t ƒt tt ƒ } }ttƒ t ¡t||   ||   ksBt‚ttƒ t¡tdt ƒdttƒd   kspt‚ttƒ t¡ttƒtttd  dd ksžt‚ttƒ t	¡dt	tƒ ks¼t‚dd„ }|t
ƒ |tƒ |tƒ |tƒ |tƒ |tƒ |t	ƒ tttƒƒ t¡t tt  tt   tt  tt   ks>t‚ttƒ t¡tttd  ddttƒ ksnt‚ttƒ t¡ttƒtt td  dd ks t‚tttƒƒ t¡tttƒƒksÄt‚d S )Nra   Fr|   r^   c                 S   sF   t | tƒƒ t¡t tƒ t¡ t| tƒ¡ }| t¡ ¡ dksBt‚d S ©Nr   )r*   r—   r¨   r   rŒ   r³   r‡   )r‹   r\   rš   rš   r›   Úcheckù  s    ,ztest_cot_rewrite.<locals>.check)r   r—   r
   r*   r¨   r‡   r-   r)   r   r/   r   r   r    r   r   r   r,   r+   )rØ   rÙ   rï   rš   rš   r›   Útest_cot_rewriteó  s"    &..B02rð   c                   C   s.  t ttddƒ ƒ t¡ ¡ tttddƒ ƒtttddƒ ƒ  t¡ ¡ ksNt‚t ttddƒ ƒ t¡tttddƒ ƒtttddƒ ƒ  t¡ks”t‚t td ƒ t¡t td ƒks¶t‚t td ƒ t	¡t td ƒksØt‚t ttddƒ dd t	¡td	dƒt	dƒd  t	t	dƒd
 tdd
ƒ ƒ ks*t‚d S )Nrc   rÛ   rp   rË   ra   rb   Fr|   r_   rr   )
r*   r   r   r¨   rÜ   ré   r)   r-   r‡   r!   rš   rš   rš   r›   Útest_cot_rewrite_slow	  s    ,ÿ(ÿ"".ÿrñ   c                   C   sn   t tƒ t tƒt¡tkst‚t tƒ tt¡t tƒks8t‚t tƒ td¡tksPt‚t tƒ ttj¡tksjt‚d S rî   )r*   r—   rŒ   r˜   r‡   r   r   rµ   rš   rš   rš   r›   Útest_cot_subs  s    rò   c                   C   sÐ  t tt ƒjdd ¡ t tƒt tƒ d t tƒt tƒ  ks@t‚t tt ƒjdd ¡ t tƒt t ƒ d t tƒt t ƒ  ks„t‚t tt t ƒjd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ƒ   ks
t‚t dt ƒjdd ¡ t tƒd d t tƒ dt tƒd  d  ksTt‚t dt ƒjddt tƒd ddt tƒ   ksŠt‚t dt ƒjdd ¡ t tƒd d t tƒ dt tƒd  d  ksÔt‚t dt td  ƒjdd ¡ t	tƒd  dt	tƒd   dt	tƒd   dt	tƒ  d t	tƒd dt	tƒd   dt	tƒd   dt	tƒ  d  kstt‚t
t ddt dƒd  dt dƒ  ƒ t
t dd	t dƒ t dƒd  ddt dƒd    ƒ d S )
NTr°   r^   r_   ro   ra   rc   rd   re   )r*   r—   r˜   r³   Ztogetherr‡   r\   r   r4   r/   r¯   rš   rš   rš   r›   Útest_cot_expansion  s8    "ÿ ÿ
.2ÿÿ
*ÿ
6 ÿÿ<:þ$ró   c                   C   sŒ   t tt tƒƒtt tƒks t‚t ttj d tjd ƒƒtt tƒksLt‚t ttjd tjd ƒƒtt tjd ƒt tjd ƒƒksˆt‚d S )Nro   rd   )r*   r   r   r‡   r   rµ   rš   rš   rš   r›   Útest_cot_AccumBounds0  s     ,rô   c                   C   s4   t tƒ ¡ t tƒd  d ks"t‚ttdd„ ƒ d S )Nra   r^   c                   S   s   t tƒ d¡S r·   )r*   r—   r¸   rš   rš   rš   r›   r¹   8  rº   z test_cot_fdiff.<locals>.<lambda>)r*   r—   r¸   r‡   rE   r>   rš   rš   rš   r›   Útest_cot_fdiff6  s    "rõ   c                  C   sÜ  t ttƒtƒst‚tddd} t| ƒtjks0t‚ttjƒtjksDt‚ttj	ƒtjksXt‚ttj
ƒtj
kslt‚ttjƒtj
ks€t‚tdddd}t|t ƒtjks¤t‚t| t ƒtjks¼t‚ttd ƒdt ksÔt‚tt d ƒdt ksît‚tttddƒ ƒddt  kst‚tttddƒ ƒd	dt  ks6t‚tt ƒttƒksNt‚ttƒ t¡ttƒt ttƒtd   ks~t‚ttƒ t¡ttƒt  t¡ks¤t‚ttƒ tt¡ttƒ dttƒ t  dttƒ td   t ksìt‚ttƒ tt¡ttƒt  tt¡kst‚tttƒ t¡td
ƒd
ks6t‚tttƒ tt¡td
ƒtdƒ d ksbt‚ttƒ ¡ dtd d  td d  ttd ƒ ksœt‚ttƒ t¡td
tƒksºt‚ttƒ t¡tttƒt ttd
ƒfdƒksêt‚ttddjdkst‚td
ddjdkst‚t|t ddjdks6t‚ttƒjd ksJt‚tdddd}ttƒjd kslt‚t|ƒjdks€t‚tt| ƒjdks˜t‚ttd ƒjdks°t‚ttƒjd ksÄt‚t|ƒjdksØt‚d S )NÚsT©ÚzerorN   )rJ   rT   ra   rb   rh   r`   r   r^   ro   rd   rc   r¢   )r^   TFr|   Úxr)rH   rT   éd   )r‘   r.   r—   r‡   r   r   rÏ   ÚInfinityrˆ   ÚNegativeInfinityÚNaNZComplexInfinityr   r   r   r)   r-   r6   r8   r7   r¨   r1   rA   r?   r–   rŽ   r
   rÓ   )rö   rN   rù   rš   rš   r›   Ú	test_sinc;  sF    $$0&H* ,
:0rþ   c                  C   s  t tƒtkst‚t jtdƒks"t‚t tƒt t ks8t‚t t ƒtt ksNt‚t tƒtks^t‚t dƒdksnt‚t dƒtd ks‚t‚t dƒt d ks˜t‚t t	dƒd ƒtd ks´t‚t t	dƒ d ƒt d ksÔt‚t t	dƒd ƒtd ksðt‚t t	dƒ d ƒt d kst‚t t	dt	dƒ d ƒƒtd ks8t‚t t	dt	dƒ d ƒ ƒt d ksbt‚t t
jƒtd	 kszt‚t tddƒƒt d	 ks˜t‚t t	dt	dƒ ƒd ƒtd ks¾t‚t t	dt	dƒ ƒ d ƒt d ksèt‚t t	dƒd d ƒtd
 ks
t‚t t	dƒd  d ƒt d
 ks0t‚t t	dƒd t	dƒ ƒtd ksVt‚t t	dƒd  t	dƒ ƒt d ks€t‚dD ]\} t| d  | d d ƒD ]<}t|| ƒdkr t t|t |  ƒƒ|t |  ks t‚q q„t tƒ t¡dt	dtd  ƒ ks
t‚t dddjdks"t‚t dƒjdks6t‚t tƒjd ksJt‚t dt ƒt tdƒ ksjt‚t tddƒddjdksˆt‚t tddƒddjdks¦t‚t tƒjd ksºt‚t ttddƒƒƒtddƒt ksàt‚t ttddƒƒƒtddƒt kst‚tt ttƒƒst‚d S )Nr^   r   ra   r_   ro   rc   rb   rr   rd   rf   rt   ©rb   rd   rr   rf   rt   çš™™™™™É?Fr|   Tr`   rh   ru   )r&   r   r‡   r†   r:   r   r
   r   r   r!   r   r‰   r   r“   r5   r-   r—   r   rŽ   rF   r   Úis_positiverK   r=   r)   )r™   rN   rš   rš   r›   Ú	test_asino  sJ     "&*&*"&&*.( &&r  c                  C   s¦   t tƒ tdd¡ttd d  dtd  d  dtd  d  ttd ƒ ksRt‚t tƒ dt¡} | dtd  d kszt‚t tƒ dt| d¡dtd  d ks¢t‚d S )	Nr   r¥   ro   rd   rb   r¡   rh   ép   )r&   r—   r8   r7   r‡   rì   ©Zt5rš   rš   r›   Útest_asin_series   s    :ÿr  c                   C   s  t tƒ t¡tkst‚t td ƒ t¡td ks4t‚t td ƒ t¡t d ksTt‚t dt ƒjtddtttƒ td  ttdƒ  ksŽt‚t dt ƒjtddt ttƒ dt d  ttdƒ  ksÎt‚t tt d ƒjtddtt dƒ ksøt‚t t t d ƒjtddt dƒks"t‚t tt d ƒjtddt dƒ ksLt‚t t t d ƒjtddt t dƒ ks|t‚t t td  t d ƒjtddt d ttdtdƒ ƒ  ksÄt‚t t td  t d ƒjtddt d ttdtdƒ ƒ  kst‚d S )Nr^   ra   ©Úcdirr_   ro   )r&   r—   rÔ   r‡   r   r
   r   r!   rš   rš   rš   r›   Útest_asin_leading_term¨  s     :@***0Hr  c                	   C   s
  t tƒ t¡t ttt tdtd  ƒ ƒ ks4t‚t tƒ t¡dttdtdtd  ƒ  ƒ ksft‚t tƒ t¡t	j
d ttƒ ksŠt‚t tƒ t¡dtttd  d ƒd t ƒ ks¾t‚t tƒ t¡tdt ƒ td  ksæt‚t tƒ t¡tdt ƒkst‚d S )Nr^   ra   )r&   r—   r¨   r   r
   r!   r‡   r'   r"   r   rµ   r#   r%   r   r$   rš   rš   rš   r›   Útest_asin_rewrite¹  s    42$4(r	  c                   C   s6   t tƒ ¡ dtdtd  ƒ ks$t‚ttdd„ ƒ d S )Nr^   ra   c                   S   s   t tƒ d¡S r·   )r&   r—   r¸   rš   rš   rš   r›   r¹   Ä  rº   z!test_asin_fdiff.<locals>.<lambda>)r&   r—   r¸   r!   r‡   rE   r>   rš   rš   rš   r›   Útest_asin_fdiffÂ  s    $r
  c                  C   s0  t tƒtkst‚t tƒtks t‚t jtdƒks2t‚t tƒtt ksFt‚t t ƒt t ks^t‚t dƒtd ksrt‚t t	j
ƒtd ksˆt‚t tddƒƒttddƒ ks¨t‚t dƒdks¸t‚t dƒtksÈt‚t tdƒd ƒtd ksät‚t tdƒ d ƒttddƒ ks
t‚dD ]L} t| ƒD ]<}t|| ƒdkrt t|t |  ƒƒ|t |  kst‚qqt dt ƒtd tdt ƒ ks‚t‚t tƒ t¡dtdtd  ƒ ksªt‚t dƒjd	ks¾t‚t d
ƒjdksÒt‚t tƒjd ksæt‚t tddƒddjd	kst‚t tddƒddjd	ks"t‚t tddƒddjdks@t‚t tƒjd ksTt‚t dt ƒ ¡ t dt ƒksvt‚t dt ƒ ¡ t dt ƒks˜t‚t tddƒƒ ¡ t tddƒƒks¾t‚t tddƒƒ ¡ t tddƒƒksät‚t ttt  ƒ ¡ t ttt  ƒkst‚t tƒ ¡ t ttƒƒks,t‚d S )Nr^   r   ra   ro   r_   rc   rÿ   r   Tr`   Frh   r|   rf   re   )r"   r   r‡   r   r†   r:   r   r
   r   r   r‰   r   r!   r“   r5   r)   r&   r—   r   rŽ   rF   r  rK   r   rN   r\   )r™   Únumrš   rš   r›   Ú	test_acosÇ  s>     &.&(""&&*r  c                   C   sþ  t tƒ t¡td kst‚t td ƒ t¡tdƒtt ƒ ksBt‚t td ƒ t¡tks\t‚t dt ƒjtddt ttƒ ttdƒ  kst‚t dt ƒjtddtttƒ dt  ttdƒ  ksÊt‚t tt d ƒjtddt dƒ ksòt‚t t t d ƒjtddt dƒkst‚t tt d ƒjtddt dƒksDt‚t t t d ƒjtdddt t dƒ ksvt‚t t td  t d ƒjtddttttdƒd ƒ  ks¸t‚t t td  t d ƒjtddttttdƒd ƒ  ksút‚d S )Nra   r^   r  r_   r`   ro   )r"   r—   rÔ   r   r‡   r!   r
   r   rš   rš   rš   r›   Útest_acos_leading_termó  s    (4:(*(2Br  c                  C   s  t tƒ tdd¡td t td d  dtd  d  dtd  d	  ttd ƒ ksZt‚t tƒ tdd¡td ttƒ tdd¡ ksŠt‚t tƒ dt¡} | d
td  d ks²t‚t tƒ dt| d¡dtd  d	 ksÚt‚t tƒ dt¡td ksöt‚t tƒ dt¡tj	kst‚d S )Nr   rr   ra   ro   rd   rb   r¡   rh   r  re   rq   )
r"   r—   r8   r   r7   r‡   r&   rì   r   rˆ   r  rš   rš   r›   Útest_acos_series  s    Bÿ0(r  c                	   C   sn  t tƒ t¡td tttt tdtd  ƒ ƒ  ks:t‚t tƒ t¡tt ttd ƒ d  d ttdtd  ƒt ƒ ks‚t‚t dƒ t¡t	j
d ksžt‚t dƒ t¡t dƒ t¡ks¾t‚t tƒ t¡t	j
d ttƒ ksât‚t tƒ t¡dtttd  d ƒd t ƒ td  ks t‚t tƒ t¡tdt ƒks@t‚t tƒ t¡tdt ƒ td  ksjt‚d S )Nra   r^   r`   r   ç      à?)r"   r—   r¨   r   r   r
   r!   r‡   r'   r   rµ   r&   r#   r%   r$   rš   rš   rš   r›   Útest_acos_rewrite  s    :H $> r  c                   C   s6   t tƒ ¡ dtdtd  ƒ ks$t‚ttdd„ ƒ d S )Nr_   r^   ra   c                   S   s   t tƒ d¡S r·   )r"   r—   r¸   rš   rš   rš   r›   r¹     rº   z!test_acos_fdiff.<locals>.<lambda>)r"   r—   r¸   r!   r‡   rE   r>   rš   rš   rš   r›   Útest_acos_fdiff  s    $r  c                  C   sh  t tƒtkst‚t jtdƒks"t‚t tƒtd ks6t‚t t ƒt d ksNt‚t tƒtt d td ƒksnt‚t dƒdks~t‚t dƒtd ks’t‚t t	dƒƒtd ksªt‚t dt	dƒ  ƒtt
ddƒ ksÎt‚t t	ddt	dƒ  ƒƒtd ksòt‚t t	ddt	dƒ d  ƒ ƒt d	 ks t‚t t	ddt	dƒ d  ƒƒtt
dd	ƒ ksPt‚t d
t	dƒ ƒt d kspt‚t dt	dƒ ƒtt
ddƒ ks”t‚t d
t	dƒ ƒtt
ddƒ ks¸t‚dD ]\} t| d  | d d ƒD ]<}t|| ƒdkrØt t|t |  ƒƒ|t |  ksØt‚qØq¼t tƒtd ks0t‚t tƒ t¡ddtd   ksTt‚t tƒjdksht‚t d
t ƒt tdƒ ksˆt‚tt ttƒƒsœt‚t tt
ddƒƒƒt
ddƒtd  ksÆt‚tt
ddƒƒjdksàt‚tttttttttt t!fD ]f}|js|j"d kr„|j#t |ƒj#ks*t‚|j$t |ƒj$ks@t‚|j%t |ƒj%ksVt‚|j&t |ƒj&kslt‚|j't |ƒj'ksòt‚nn|j(t |ƒj#ksšt‚|j)t |ƒj$ks°t‚|j*t |ƒj%ksÆt‚|j+t |ƒj&ksÜt‚|j,t |ƒj'ksòt‚|j(t |ƒj(kst‚|j)t |ƒj)kst‚|j*t |ƒj*ks4t‚|j+t |ƒj+ksJt‚|j,t |ƒj,ksút‚qúd S )Nr^   ra   r   rc   ro   re   rr   rb   rf   r`   rt   rq   rÿ   Tr_   F)-r'   r   r‡   r†   r:   r   r   r   r   r!   r   r“   r5   r/   r—   r   rF   rŽ   r
   r   r=   r*   r#   r   rK   rN   ÚnpÚnnrS   rU   rV   ÚenpÚennrW   rÒ   Z
is_nonzeror  Úis_negativeZis_nonpositiveÚis_nonnegativeZis_extended_nonzeroZis_extended_positiveZis_extended_negativeZis_extended_nonpositiveZis_extended_nonnegative)r™   r  rö   rš   rš   r›   Ú	test_atan  sV     $$.0 $$.$ * r  c                   C   s¼  t tƒ t¡ttdtt  ƒtdtt  ƒ  d ks:t‚t tƒ t¡tdttd d ƒ ƒ td  ttd ƒ t ks~t‚t tƒ t	¡ttd ƒt	dttd d ƒ ƒ t ks¸t‚t tƒ t
¡t
dt ƒksÖt‚t tƒ t¡ttd ƒtttd d ƒƒ t kst‚t tƒ t¡tttd d ƒƒ td  ttd ƒ t ksPt‚t dt ƒ ¡ t tƒ t¡jtdt idks„t‚t dt ƒ ¡ t tƒ t¡jtdt idks¸t‚d S )Nr^   ra   rq   ©rŒ   rb   )r'   r—   r¨   r   r
   r‡   r&   r!   r   r"   r#   r%   r$   rç   rš   rš   rš   r›   Útest_atan_rewriteV  s    :D:8B4r  c                   C   s2   t tƒ ¡ dtd d  ks t‚ttdd„ ƒ d S )Nr^   ra   c                   S   s   t tƒ d¡S r·   )r'   r—   r¸   rš   rš   rš   r›   r¹   d  rº   z!test_atan_fdiff.<locals>.<lambda>)r'   r—   r¸   r‡   rE   r>   rš   rš   rš   r›   Útest_atan_fdiffb  s     r  c                   C   s¼  t tƒ t¡tkst‚t dt ƒjtddtd ks8t‚t dt ƒjtddt d ks\t‚t tt ƒjtddt ttƒ d td  ttdƒ d  ks t‚t tt ƒjtddt ttƒ d dt d  ttdƒ d  ksèt‚t tt ƒjtddtttƒ d td  ttdƒ d  ks,t‚t tt ƒjtddtttƒ d td  ttdƒ d  kspt‚t tdt  ƒjtddttdƒ ksœt‚t tdt  ƒjtddt ttdƒ  ksÎt‚t tdt  ƒjtddtttdƒ  ksþt‚t tdt  ƒjtddt tdƒ ks,t‚t dt tt  td  ƒjtddt d ttdƒ d  ksrt‚t dt tt  td  ƒjtddt d ttdƒ d  ks¸t‚d S )Nr^   r  ra   r_   rc   ro   )r'   r—   rÔ   r‡   r   r
   r   r   rš   rš   rš   r›   Útest_atan_leading_termg  s    "$DHDD,20.Fr  c            	   
      s¾  t jtdƒkst‚t ddƒtjks&t‚t ddƒdks8t‚t ddƒtd ksNt‚t ddƒtd ksdt‚t ddƒttddƒ ks€t‚t ddƒtks’t‚t ddƒttddƒ ks®t‚t ddƒt d ksÆt‚t ddƒt d ksÞt‚tdd	d
} tdd	d}t || ƒ}t	 t
| t	|  t| d |d  ƒ ƒ }|df| t	ff}| |¡| |¡ksTt‚tdd	d‰ tdd	d‰t ˆˆ ƒtˆˆ  ƒt ksŒt‚tdd	d‰t ˆˆ ƒtˆˆ  ƒt ks¸t‚tdƒ‰t ˆˆ ƒt ˆˆ ddksÞt‚tdd	d}t d|ƒdksþt‚tdd	d}t d|ƒtkst‚t ˆtƒdks2t‚t ˆt ƒdt ttˆƒtjƒ t ks`t‚t ˆˆ ƒ t
¡t	 t
ˆ t	ˆ  tˆ d ˆd  ƒ ƒ ks t‚t ddƒtjks¶t‚t ˆˆ ƒtˆ t	ˆ  ƒ }| ˆ dˆdi¡ t¡dksòt‚| ˆ dˆdt	 i¡ t¡t t	t
tdƒt	 d ƒ  ks2t‚| ˆ dt	 ˆdi¡ t¡t d t	t
tdƒt	 ƒ  ksrt‚| ˆ dt	 ˆdt	 i¡ t¡t ttddƒƒ ttddƒƒ ksºt‚tdd	d
} tdd	d}t | |ƒ}| t¡}| t	|di}|t	 t
tt	|  | ƒtt| d |d  ƒƒ ƒ tt	|  | t| d |d  ƒ ƒ ksRt‚||  |¡ d¡slt‚t dˆ ƒ t¡tttˆ ƒdk fdtˆ dƒftd	fƒks¨t‚t d|ƒ t¡tt|dk fdt|dƒftjd	fƒksât‚t d| ƒsþt|tƒdkƒ‚t d||  ƒ t¡tt|dk fdƒks*t‚t ˆˆ ƒ t¡tdtˆˆ tˆ d ˆd  ƒ  ƒ tˆdƒfttˆ ƒdk fdtˆ ƒdkttˆ ƒdƒB ftd	fƒks¢t‚tt ˆ ˆƒƒt tˆ ƒtˆƒƒksÈt‚tt ˆˆ ƒˆ ƒˆ ˆ d ˆd   ksôt‚tt ˆˆ ƒˆƒˆ ˆ d ˆd   kst‚ttt ˆˆ ƒ t
¡ˆ ƒƒˆ ˆ d ˆd   ksTt‚ttt ˆˆ ƒ t
¡ˆƒƒˆ ˆ d ˆd   ksˆt‚tt ddƒ d¡ƒdks¦t‚t t!‡ ‡fdd„ƒ d S )Nra   r   r^   rc   r_   ro   re   r®   Tr]   rF   rG   r—   rO   r˜   rR   Fr|   ÚurL   rb   r`   )r   Tz0.46365c                      s   t ˆ ˆƒ d¡S )Nro   )r(   r¸   rš   ©r—   r˜   rš   r›   r¹   Á  rº   ztest_atan2.<locals>.<lambda>)"r(   r†   r:   r‡   r   rý   r   r   r   r
   r   r!   rŒ   r   r'   r   r2   r   r‰   r¨   r   r”   ÚequalsrA   r?   r   r   r   r   r<   Ústrrç   rE   r>   )	r®   rF   ÚeqZansZrepsr  Úexrm   r¨   rš   r  r›   Ú
test_atan2z  s~    
*  .@"@@H

`þ:,,ü&,*64r#  c                  C   sB   G dd„ dt ƒ} | dƒ}| dƒ}tt||ƒ ¡ d ƒdks>t‚d S )Nc                   @   s   e Zd ZdZdd„ ZdS )ztest_issue_17461.<locals>.ATc                 S   s   t dƒS )Ng      @)r	   )ÚselfÚprecrš   rš   r›   Ú_eval_evalfÇ  s    z'test_issue_17461.<locals>.A._eval_evalfN)Ú__name__Ú
__module__Ú__qualname__rÒ   r&  rš   rš   rš   r›   ÚAÄ  s   r*  ÚXÚYg-DTû!é?r«   )r   r”   r(   rç   r‡   )r*  r—   r˜   rš   rš   r›   Útest_issue_17461Ã  s    r-  c                   C   s(  t tƒtkst‚t jtdƒks"t‚t t ƒdks4t‚t tƒdksDt‚t tƒdksTt‚t dƒtd ksht‚t dƒtd ks|t‚t tdƒd ƒtd ks˜t‚t dtdƒ ƒtd ks´t‚t dtdƒ ƒt d ksÒt‚t t	ƒ 
t	¡ddt	d   ksôt‚t tƒjdkst‚t tt ƒt ttƒ ks(t‚t dt ƒttdƒ ksFt‚t t	ƒjd ksZt‚t tƒjd	ksnt‚t tƒjdks‚t‚t tƒjd	ks–t‚t tddƒƒjd	ks°t‚tt tt	ƒƒsÄt‚tt tt	ƒƒsØt‚t ttddƒƒƒtddƒksút‚t ttddƒƒƒtddƒtd  ks$t‚d S )
Nr^   r   rc   ra   ro   r_   Tr`   F)r#   r   r‡   r†   r:   r   r   r   r!   r—   r   rF   rÒ   r
   r   r  rN   rK   r   r   r=   r*   r/   rš   rš   rš   r›   Ú	test_acotÎ  s.    " "r.  c                   C   sè  t tƒ t¡ttdtt  ƒtdtt  ƒ  d ks:t‚t tƒ t¡ttttd  ƒttd  d ƒ ƒ td   ttd ƒ ksŠt‚t tƒ t	¡tttd ƒ t	ttd  ƒttd  d ƒ ƒ ksÐt‚t tƒ t
¡t
dt ƒksît‚t tƒ t¡tttd ƒ tttd d td  ƒƒ ks.t‚t tƒ t¡ttttd d td  ƒƒ td   ttd ƒ ksxt‚t t d ƒ ¡ t tƒ t¡jtt d idks°t‚t td ƒ ¡ t tƒ t¡jttd idksät‚d S )Nr^   ra   r`   rb   r  )r#   r—   r¨   r   r
   r‡   r&   r!   r   r"   r'   r%   r$   rç   rš   rš   rš   r›   Útest_acot_rewriteë  s    :PF@J8r/  c                   C   s2   t tƒ ¡ dtd d  ks t‚ttdd„ ƒ d S )Nr_   ra   r^   c                   S   s   t tƒ d¡S r·   )r#   r—   r¸   rš   rš   rš   r›   r¹   ù  rº   z!test_acot_fdiff.<locals>.<lambda>)r#   r—   r¸   r‡   rE   r>   rš   rš   rš   r›   Útest_acot_fdiff÷  s     r0  c                   C   sÚ  t dt ƒ t¡tkst‚t tt ƒjtddtttƒ d td  ttdƒ d  ks\t‚t tt ƒjtddtttƒ d td  ttdƒ d  ksžt‚t tt ƒjtddt ttƒ d td  ttdƒ d  ksât‚t tt ƒjtddt ttƒ d dt d  ttdƒ d  ks,t‚t tƒjtddtd ksLt‚t tƒjtddt d ksnt‚t ttd  ƒjtddttttdƒd ƒ  ks¦t‚t ttd  ƒjtddt ttdƒd ƒ ksÜt‚t ttd  ƒjtddtttdƒd ƒ kst‚t ttd  ƒjtddt tttdƒd ƒ  ksJt‚t td tt  td  ƒjtddt d ttdƒ d  kst‚t td tt  td  ƒjtddt d ttdƒ d  ksÖt‚d S )Nr^   r  ra   rc   r_   ro   )	r#   r—   rÔ   r‡   r
   r   r   r   r   rš   rš   rš   r›   Útest_acot_leading_termû  s    BBDJ "864:Fr1  c                   C   s   t tƒjtfkst‚d S ©N)r-   r—   Úargsr‡   rš   rš   rš   r›   Útest_attributes  s    r4  c                   C   sn   t td t ƒttƒkst‚t tt ƒt tƒks4t‚ttd t ƒt tƒksPt‚ttt ƒttƒ ksjt‚d S r·   )r-   r   r—   r)   r‡   rš   rš   rš   r›   Útest_sincos_rewrite  s    r5  c                 C   s   | |ƒj d | kS )zMChecks that the expr has been rewritten using f(-x) -> f(x)
    arg : -x
    r   ©r3  ©r‹   r   rš   rš   r›   Ú_check_even_rewrite  s    r8  c                 C   s   | |ƒj jS )zNChecks that the expr has been rewritten using f(-x) -> -f(x)
    arg : -x
    )r‹   Zis_Mulr7  rš   rš   r›   Ú_check_odd_rewrite   s    r9  c                 C   s   | |ƒj d |kS )z%Checks that the expr is not rewrittenr   r6  r7  rš   rš   r›   Ú_check_no_rewrite'  s    r:  c                  C   sö   t dƒ} tdƒ}t g}ttttttg}ddd  t t d t	 t
 t	 t
 g}|D ]J}|D ]}t||ƒs\t‚q\t|| | ƒs‚t‚|t	t
 ƒ|t
t	 ƒksTt‚qT|D ]L}|D ]}t||ƒs¬t‚q¬t|| | ƒsÒt‚|t	t
 ƒ|t
t	 ƒ ks¤t‚q¤d S )Nra   r^   r_   é   rx   )r)   r-   r/   r*   r&   r'   r#   r   r   r—   r˜   r8  r‡   r:  r9  )rX   Úbrl   ÚoddZ
with_minusr‹   Úexprrš   rš   r›   Útest_evenodd_rewrite,  s.    *ÿ
ÿ
ÿÿr?  c                   C   s`   t tƒ t¡tkst‚ttƒ t¡dks,t‚ttƒ t¡tksBt‚ttƒ t¡dt ks\t‚d S )Nr^   )r-   r—   rÔ   r‡   r)   r/   r*   rš   rš   rš   r›   Útest_as_leading_term_issue_5272@  s    r@  c                  C   sB  t dt ƒ t¡tddƒks t‚t tjƒ t¡t tjƒks>t‚tdt ƒ t¡tddƒks^t‚ttjƒ t¡ttjƒks|t‚tdt ƒ t¡ttj	tj
ƒks t‚tdt ƒ t¡ttj	tj
ƒksÄt‚tdt ƒ t¡ttj	tj
ƒksèt‚tdt ƒ t¡ttj	tj
ƒkst‚t ttd  ƒdt  } |  t¡td ks>t‚d S )Nr^   r_   rc   ro   )r-   r—   rÔ   r   r‡   r   r‰   r)   r,   rü   rû   r+   r/   r*   r   rÕ   rš   rš   r›   Útest_leading_termsG  s      $$$&rA  c                   C   s¨  t ttd td ƒ t¡ttd td  ƒ t¡ ƒdks>t‚t ttt ƒ tdd¡tttƒ tdd¡ tdtƒ tdƒ ƒttd ƒksŽt‚t ttt ƒ tdd¡tttƒ tdd¡ ttdƒ ttƒ ƒttd d tdfƒksèt‚t ttt t ƒ tdd¡ttt tƒ tdd¡ tdt dƒ tdt ƒ ƒttd d tdfƒksTt‚t	tttƒgƒ 
ttg¡t	ttd td   t td td   ggƒks¤t‚d S )Nra   r^   r   rb   rc   ro   )r4   r(   r—   r   r'   r‡   r˜   r8   r7   r3   Zjacobianrš   rš   rš   r›   Útest_atan2_expansionV  s2    >*ÿÿ
ÿ*ÿÿÿ2ÿ
ÿÿ
.ÿrB  c                  C   sD   dd„ } | t dddƒ | t dddƒ | tdddƒ | tdddƒ d S )Nc                 S   sB   t | d| ƒ ¡ | dt ƒjt|d ¡  t|¡ ƒ|k s>t‚d S )Nr^   )Údir)r”   rç   r—   r8   ZremoveOrŒ   r‡   )rN   Úvr™   rm   rš   rš   r›   Útc  s
    0ÿÿztest_aseries.<locals>.tgš™™™™™¹?ú+gñhãˆµøä>gš™™™™™¹¿ú-)r'   r#   )rE  rš   rš   r›   Útest_aseriesb  s
    rH  c                  C   sÈ	  t ddd} t ddd}t ddd}td|  t ƒd	ks<t‚td|  t ƒd
ksTt‚td|  t ƒd
kslt‚td|  t ƒtks„t‚td|  t ƒtt|  ƒks¤t‚td|  t ƒd
ks¼t‚td|  t ƒd
ksÔt‚td|  t ƒtksìt‚td|  t ƒd	kst‚td|  t ƒd
ks t‚td|  t ƒd
ks:t‚td|  t ƒtksTt‚td|  t ƒtt|  ƒksvt‚td|  t ƒd
kst‚td|  t ƒd
ksªt‚td|  t ƒtksÄt‚td|  t ƒtdt |  ƒksêt‚td|  t ƒtdt |  ƒkst‚td|  t ƒtdt |  ƒks6t‚td|  t ƒtdt |  ƒks\t‚td| t ƒd	ksvt‚td| t ƒd
kst‚td| t ƒd
ksªt‚td| t ƒtksÄt‚td| t ƒd	ksÞt‚td| t ƒd
ksøt‚td| t ƒd
kst‚td| t ƒtks,t‚td| t ƒd	ksFt‚td| t ƒd
ks`t‚td| t ƒd
kszt‚td| t ƒtks”t‚td| t ƒd	ks®t‚td| t ƒd
ksÈt‚td| t ƒd
ksât‚td| t ƒtksüt‚td| t ƒtdt | ƒks"t‚td| t ƒtdt | ƒksHt‚td| t ƒtdt | ƒksnt‚td| t ƒtdt | ƒks”t‚td| t ƒd	ks®t‚td| t ƒd
ksÈt‚td| t ƒd
ksât‚td| t ƒtksüt‚td| t ƒdkst‚td| t ƒd
ks0t‚td| t ƒd
ksJt‚td| t ƒtksdt‚td| t ƒd	ks~t‚td| t ƒd
ks˜t‚td| t ƒd
ks²t‚td| t ƒtksÌt‚td| t ƒdksæt‚td| t ƒd
ks t‚td| t ƒd
kst‚td| t ƒtks4t‚td| t ƒtdt | ƒksZt‚td| t ƒtdt | ƒks€t‚td| t ƒtdt | ƒks¦t‚td| t ƒtdt | ƒksÌt‚tdt t ƒtdt t ƒksòt‚tdt t ƒtdt t ƒkst‚tdt t ƒtdt t ƒks>t‚tdt t ƒtdt t ƒksdt‚tdt t ƒtdt t ƒksŠt‚tdt t ƒtdt t ƒks°t‚tdt t ƒtdt t ƒksÖt‚tdt t ƒtdt t ƒksüt‚tdt t ƒtdt t ƒks"t‚tdt t ƒtdt t ƒksHt‚tdt t ƒtdt t ƒksnt‚tdt t ƒtdt t ƒks”t‚tdt t ƒtdt t ƒksºt‚tdt t ƒtdt t ƒksàt‚tdt t ƒtdt t ƒk	st‚tdt t ƒtdt t ƒk	s,t‚tdt t ƒtdt t ƒk	sRt‚tdt t ƒtdt t ƒk	sxt‚tdt t ƒtdt t ƒk	sžt‚tdt t ƒtdt t ƒk	sÄt‚d S )Nr®   TrI   rm   rn   Úo)r=  rc   r^   r   ro   g      @g      @g      @r  r_   )	r   r)   r   r‡   r-   r/   r*   r   r—   )r®   rm   rI  rš   rš   r›   Útest_issue_4420l  s¦     "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&rJ  c                   C   s´   t tdd„ ƒ t tdd„ ƒ ttƒ ¡ tks0t‚ttƒ ¡ tksDt‚t tdd„ ƒ t tdd„ ƒ t	tƒ ¡ t
kstt‚ttƒ ¡ tksˆt‚ttƒ ¡ tksœt‚ttƒ ¡ tks°t‚d S )Nc                   S   s   t tƒ ¡ S r2  )r-   r—   Úinverserš   rš   rš   r›   r¹   Ú  rº   ztest_inverses.<locals>.<lambda>c                   S   s   t tƒ ¡ S r2  )r)   r—   rK  rš   rš   rš   r›   r¹   Û  rº   c                   S   s   t tƒ ¡ S r2  )r+   r—   rK  rš   rš   rš   r›   r¹   Þ  rº   c                   S   s   t tƒ ¡ S r2  )r,   r—   rK  rš   rš   rš   r›   r¹   ß  rº   )rE   ÚAttributeErrorr/   r—   rK  r'   r‡   r*   r#   r&   r-   r"   r)   rš   rš   rš   r›   Útest_inversesÙ  s    rM  c                  C   sØ  t ddd\} }| |t  }dD ]°}t|ƒj|dt| ƒt|ƒ t| ƒt|ƒ fksZt‚t|ƒj|dt| ƒt|ƒ t| ƒ t|ƒ fkst‚t|ƒj|dtd|  ƒtd|  ƒtd| ƒ  td| ƒtd|  ƒtd| ƒ  fksìt‚t	|ƒj|dtd|  ƒ td|  ƒtd| ƒ  td| ƒtd|  ƒtd| ƒ  fksLt‚t| ƒj|dt| ƒdfksnt‚t| ƒj|dt| ƒdfkst‚t| ƒj|dt| ƒdfks²t‚t	| ƒj|dt	| ƒdfks t‚q d S )Nza bTrG   )TF)Údeepra   r   )
r   r
   r-   Úas_real_imagr   r)   r   r‡   r/   r*   )rX   r<  r\   rN  rš   rš   r›   Útest_real_imagæ  s>    
ÿÿÿÿÿ ÿ"
ÿ"ÿ
$
ÿ"ÿ"""rP  c                   C   s(   t tƒtjkst‚ttƒtjks$t‚d S r2  )r-   r   r   rý   r‡   r)   rš   rš   rš   r›   Útest_sin_cos_with_infinityø  s    rQ  c            	      C   sb  dD ]} dD  ]ü}||  }t dt|d d d dƒƒD ]Ò}dt||ƒkr8|t | }t|ƒ t¡}t|ƒ t¡}| tt¡rŽt	d||f ƒ‚| tt¡rªt	d||f ƒ‚dt
t| d¡ƒ| d¡ ƒksÚt	d||f ƒ‚dt
t| d¡ƒ| d¡ ƒks8t	d||f ƒ‚q8qqttd	 ƒ t¡tttd
 ƒd tj ƒksBt	‚tttddƒ d dd t¡ttttddƒ ƒ d tj ƒ ksŒt	‚ttdttjdddd t¡dks¶t	‚ttd d ƒ}dttdƒ d ƒ ttdƒd ƒ d dtdƒ ttdƒd ƒ d  ttdƒd ƒtdtdƒ ttdƒd ƒ tdƒttdƒ d ƒ  tdƒttdƒ d ƒ  dtdƒ  d ƒ d  ttdƒ d ƒtdtdƒ ttdƒd ƒ tdƒttdƒ d ƒ  tdƒttdƒ d ƒ  dtdƒ  d ƒ d  tddƒ tdƒtdtdƒ ttdƒd ƒ tdƒttdƒ d ƒ  tdƒttdƒ d ƒ  dtdƒ  d ƒ d  dtdƒ ttdƒd ƒ d  tdƒttdƒ d ƒ d  dtdƒ ttdƒ d ƒ d  tdƒttdƒ d ƒ tdtdƒ ttdƒd ƒ tdƒttdƒ d ƒ  tdƒttdƒ d ƒ  dtdƒ  d ƒ d  dtdƒ d  tdƒttdƒ ttdƒd ƒ ttdƒd tdƒttdƒ d ƒ d  tdƒtdtdƒ ttdƒd ƒ tdƒttdƒ d ƒ  tdƒttdƒ d ƒ  dtdƒ  d ƒ d  tddƒ ƒ d dtdƒ ttdƒd tdƒttdƒ d ƒ d  tdƒtdtdƒ ttdƒd ƒ tdƒttdƒ d ƒ  tdƒttdƒ d ƒ  dtdƒ  d ƒ d  tddƒ ƒ tdtdƒ ttdƒd ƒ tdƒttdƒ d ƒ  tdƒttdƒ d ƒ  dtdƒ  d ƒ d  dtdƒ ttdƒ d ƒ ttdƒd tdƒttdƒ d ƒ d  tdƒtdtdƒ ttdƒd ƒ tdƒttdƒ d ƒ  tdƒttdƒ d ƒ  dtdƒ  d ƒ d  tddƒ ƒ d  tdƒttdƒd tdƒttdƒ d ƒ d  tdƒtdtdƒ ttdƒd ƒ tdƒttdƒ d ƒ  tdƒttdƒ d ƒ  dtdƒ  d ƒ d  tddƒ ƒ tdtdƒ ttdƒd ƒ tdƒttdƒ d ƒ  tdƒttdƒ d ƒ  dtdƒ  d ƒ d  ttdƒd tdƒttdƒ d ƒ d  tdƒtdtdƒ ttdƒd ƒ tdƒttdƒ d ƒ  tdƒttdƒ d ƒ  dtdƒ  d ƒ d  tddƒ ƒd  tj ttdƒ d ƒttdƒd tdƒttdƒ d ƒ d  tdƒtdtdƒ ttdƒd ƒ tdƒttdƒ d ƒ  tdƒttdƒ d ƒ  dtdƒ  d ƒ d  tddƒ ƒ tdtdƒ ttdƒd ƒ tdƒttdƒ d ƒ  tdƒttdƒ d ƒ  dtdƒ  d ƒ d  tdƒttdƒ d ƒ ttdƒd tdƒttdƒ d ƒ d  tdƒtdtdƒ ttdƒd ƒ tdƒttdƒ d ƒ  tdƒttdƒ d ƒ  dtdƒ  d ƒ d  tddƒ ƒ d  ƒ d  }| t¡|k
sðt	‚| ¡ | ¡ kst	‚ttd d ƒ t¡ttd ƒtttddƒ ƒ ttd ƒtttddƒ ƒ  ks^t	‚d S )N©r^   ro   rb   rp   ©r^   rr   r^   ra   rf   r£   çü©ñÒMbP?rb   rÍ   rh   rÎ   r½   Fr|   rc   r_   ro   rp   re   é@   rÛ   é€   r²   rd   é    rÊ   r   rr   r¥   )r“   Úminr5   r   r-   r¨   r!   r)   Úhasr‡   r”   rç   r   r‰   r   r   rN   )	rK   rE  rN   r®   r—   Ús1Úc1rm   rX   rš   rš   r›   Útest_sincos_rewrite_sqrt   s   

 062ÿ"ÿ
ÿÿ
(ÿÿ6ÿ
ÿÿÿþÿ
ÿ,ÿÿ
ÿÿÿþýû2ÿÿ
ÿÿÿúøø	 ÷	ÿ6ÿ
ÿÿÿþ÷õ,ÿ2ÿÿ
ÿÿÿþýý42ÿÿ
ÿÿÿÿý,ÿÿ
ÿÿýüü	(ÿ2ÿÿ
ÿÿÿþýý÷02ÿÿ
ÿÿÿÿý,ÿÿ
ÿÿýüó*2ÿÿ
ÿÿÿÿþþîë,ÿÿ"ÿÿ
þþþÿýÿÿ
þþýûë$ÿ2ÿÿ
ÿÿÿþüüæâôÿ,:ÿr\  c                   C   s2   t td ƒ t¡ d¡t td ƒ d¡ks.t‚d S )Ni  rU  )r)   r   r¨   r!   rç   r‡   rš   rš   rš   r›   Útest_sincos_rewrite_sqrt_257P  s    r]  c               	   C   sD  dD ]8} dD ],}||  }t dt|d d d dƒƒD ] }dt||ƒkr8|t | }d| |krÎd| d| krÎt|ƒ t¡}| tt¡ržt	d||f ƒ‚dt
t| d	¡ƒ| d
¡ ƒksÎt	d||f ƒ‚|dkr8||kr8t|ƒ t¡}| tt¡r
t	d||f ƒ‚dt
t| d	¡ƒ| d
¡ ƒks8t	d||f ƒ‚q8qqd S )NrR  rS  r^   ra   rf   ro   r£   rT  rh   rc   r   )r“   rX  r5   r   r/   r¨   r!   rY  r*   r‡   r”   rç   )rK   rE  rN   r®   r—   Út1r[  rš   rš   r›   Útest_tancot_rewrite_sqrtU  s    

"0r_  c               	   C   s&  t ddd} t dƒ}tjtdƒks&t‚ttƒtks6t‚tdƒdksFt‚ttƒdksVt‚ttd ƒtksjt‚tt d ƒtks€t‚ttd	 ƒdtd
ƒ d
 ks t‚ttd
 ƒdks´t‚ttt	ddƒ ƒtksÎt‚ttt	ddƒ ƒttt	ddƒ ƒ ksøt‚ttt	d
dƒ ƒtdƒ kst‚tt
ƒdtdƒ ks4t‚t| t
 ƒdt| ƒ ksRt‚t|  ƒt| ƒksjt‚tt| ƒƒ| ks€t‚t|ƒ ¡ tt|ƒƒksžt‚t|ƒ ¡ tt|ƒƒtt|ƒƒ tt|ƒƒd tt|ƒƒd  tt|ƒƒd tt|ƒƒd    tt|ƒƒtt|ƒƒ tt|ƒƒd tt|ƒƒd  tt|ƒƒd tt|ƒƒd    fks`t‚t| ƒjdddt| ƒ ks‚t‚td|  ƒjddddt| ƒd  d  ks´t‚t| ƒjdksÈt‚t|ƒjd ksÜt‚ttƒjd ksðt‚ttƒjdkst‚t| ƒ ¡ t| ƒkst‚tdddjdks6t‚t| ƒjd ksJt‚ttd ddjdksft‚tt| ƒ| dd	dd| d d  d| d  d  t| d	 ƒ ks¬t‚ttt| ƒƒƒd| d d  d| d  d  t| d	 ƒ ksît‚ttt| ƒƒ| td
 d dddt| tt	d
dƒ  ƒ | tt	d
dƒ  t	d
dƒ d  | tt	d
dƒ  t	ddƒ d  t| tt	d
dƒ  d | tt	d
dƒ fƒ ks˜t‚t| ƒ | ¡t| ƒt| ƒ ks¼t‚t|ƒ  d|¡d|d  d ksât‚t|ƒ  d	|¡d|d	  d kst‚t|ƒ  d|¡dks"t‚d S )Nr—   TrG   r\   r^   r   r_   ra   rd   ro   rb   r¥   rh   rc   r°   Fr|   ©Zx0rN   rŸ   é`   rt   é    é=   rÃ   )!r   r,   r†   r:   r‡   r   r   r   r!   r   r
   r   r%   r   rO  r)   r   r   r-   r   r³   rÒ   rŽ   rX   r   rZ   rÔ   rÓ   r8   r7   r   r/   rì   )r—   r\   rš   rš   r›   Útest_sech  sd     *"
4ÿ4ÿþÿ
"2FB8ÿ(ÿÿ
$&&rd  c                   C   sš  t tƒ t¡dttt ƒd tt t ƒd   ks8t‚t tƒ t¡dttƒ ksVt‚t tƒ t¡ttd ƒd d ttd ƒd  d  ks’t‚t tƒ t¡t tƒks¬t‚t tƒ t	¡t tƒksÆt‚t t
ƒ t¡tt
d ƒd d tt
d ƒd d  kst‚t tƒ t¡dtttd  dd ks.t‚t tƒ t¡ttd ƒd d ttd ƒd  d  kslt‚t tƒ t¡tt td  ddks–t‚d S )Nr^   ra   Fr|   )r,   r—   r¨   r   r
   r‡   r)   r/   rÜ   r!   r\   r*   r-   r   r+   rš   rš   rš   r›   Útest_sec_rewrite§  s    8<<,>re  c                   C   s2   t tƒ ¡ ttƒt tƒ ks t‚ttdd„ ƒ d S )Nc                   S   s   t tƒ d¡S r·   )r,   r—   r¸   rš   rš   rš   r›   r¹   µ  rº   z test_sec_fdiff.<locals>.<lambda>)r,   r—   r¸   r/   r‡   rE   r>   rš   rš   rš   r›   Útest_sec_fdiff³  s     rf  c                     s  t ddd‰ t dƒ} tdƒ}dtdƒ }| |¡dks:t‚| |¡dksLt‚tjtdƒks^t‚tdƒtksnt‚ttƒtks~t‚ttƒt	ksŽt‚ttd ƒdks¢t‚tt d ƒdks¸t‚ttd	 ƒdksÌt‚ttd
 ƒdt
d
ƒ d
 ksìt‚tttddƒ ƒdkst‚tttddƒ ƒtttddƒ ƒ ks4t‚tttd
dƒ ƒt
dƒksTt‚ttƒt tdƒ kspt‚tˆ t ƒt tˆ ƒ kst‚tˆ  ƒtˆ ƒ ksªt‚ttˆ ƒƒˆ ksÀt‚t| ƒ ¡ tt| ƒƒksÞt‚t| ƒ ¡ tt| ƒƒtt| ƒƒ tt| ƒƒd tt| ƒƒd  tt| ƒƒd tt| ƒƒd    tt| ƒƒ tt| ƒƒ tt| ƒƒd tt| ƒƒd  tt| ƒƒd tt| ƒƒd    fks¢t‚tˆ ƒjdddtˆ ƒ ksÄt‚tdˆ  ƒjddddtˆ ƒ tˆ ƒ  ksöt‚tˆ ƒjdks
t‚t| ƒjd kst‚ttƒjd ks2t‚ttƒjdksFt‚tˆ ƒ ¡ tˆ ƒks`t‚tdddjdksxt‚tˆ ƒjd ksŒt‚ttd ddjdks¨t‚ttˆ ƒˆ td d	ddˆ td  d d  dˆ td  d  d  tˆ td  d	 ˆ td fƒ kst‚ttˆ ƒˆ dd	ddˆ  ˆ d	  dˆ d
  d  dˆ d  d  tˆ d	 ƒ ksjt‚tˆ ƒ ˆ ¡t ˆ ƒ tˆ ƒ kst‚tˆ ƒ !dˆ ¡dksªt‚tˆ ƒ !d
ˆ ¡dˆ d
  d ksÐt‚tˆ ƒ !dˆ ¡dˆ d  d ksöt‚t"t#‡ fdd„ƒ d S )Nr—   TrG   r\   r^   r   ra   r_   rd   ro   rb   r¥   rh   rc   r°   Fr|   r`  rŸ   ih  é   i;  c                      s   t ˆ ƒ d¡S r·   )r+   r¸   rš   ©r—   rš   r›   r¹   ö  rº   ztest_csc.<locals>.<lambda>)$r   r+   r-   r  r‡   r†   r:   r   r   r   r!   r   r
   r   r$   r   rO  r   r   r   r)   r³   rÒ   rŽ   rX   r   rZ   rÔ   rÓ   r8   r7   r   r*   rì   rE   r>   )r\   ZcosecantZ	alternaterš   rh  r›   Útest_csc¸  sh     ,  
4ÿ6ÿþÿ
"2Lÿ
:ÿ
&&&ri  c                  C   sp  t ddd} t| ƒtkst‚ttƒtks,t‚tdƒdks<t‚tdƒtksLt‚ttƒtd ks`t‚tt ƒtd ksvt‚ttƒtd ksŠt‚ttttdd	ƒ ƒƒttd
d	ƒ ks²t‚tdt	dƒ ƒttddƒ ksÔt‚tdt	d
ƒ ƒtd ksðt‚tt	d	dt	dƒ  ƒƒtd kst‚tt	d	dt	dƒ  ƒ ƒttddƒ ksDt‚tt	ddt	dƒ d  ƒƒttd
dƒ kstt‚tt	ddt	dƒ d  ƒ ƒttddƒ ks¦t‚tt	dƒt	dƒ ƒttddƒ ksÎt‚tt
ƒ t
¡dt
d t	ddt
d   ƒ  kst‚tt
ƒ t¡ttt	ddt
d   ƒtt
  ƒ td  ksBt‚tt
ƒ t¡tdt
 ƒ td  kslt‚tt
ƒ t¡tdt
 ƒksŒt‚tt
ƒ t¡tdt	t
d ƒt
   d t	t
d ƒtt	t
d d ƒƒ t
  ksàt‚tt
ƒ t¡tdt	t
d ƒt
   d t	t
d ƒtdt	t
d d ƒ ƒ t
  ks8t‚tt
ƒ t¡tt
ƒ td  ks^t‚ttdd„ ƒ d S )Nr\   Tr÷   r^   r   r_   ra   rÊ   rc   ro   rb   rd   rr   rf   rh   r½   rt   c                   S   s   t tƒ d¡S r·   )r%   r—   r¸   rš   rš   rš   r›   r¹     rº   ztest_asec.<locals>.<lambda>)r   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›   Ú	test_asecù  s8    ("&.02(4@* >ÿ
Bÿ
&rk  c                  C   s|   t tjƒjdkst‚tdddd} t | ƒjdks4t‚t tƒjd ksFt‚t tƒjd ksXt‚tdddd}t |ƒjdksxt‚d S )NFrN   T)rM   rJ   rE  ©rH   Zfinite)	r%   r   r‰   rŽ   r‡   r   rÒ   r—   rF   )rN   rE  rš   rš   r›   Útest_asec_is_real  s    rm  c                   C   s  t dt ƒ t¡td kst‚t td ƒ t¡tdƒttƒ ksDt‚t td ƒ t¡tks^t‚t tƒjtddt ttƒ ttdƒ  ksŽt‚t tƒjtddtttƒ dt  ttdƒ  ksÄt‚t tt d ƒjtddt dƒksêt‚t t t d ƒjtddt dƒ kst‚t tt d ƒjtdddt t dƒ ksFt‚t t t d ƒjtddt dƒkspt‚t t td  t tdƒd  ƒjtddtttdtdƒ ƒ  ksºt‚t t td  t tdƒd  ƒjtddtttdtdƒ ƒ  kst‚d S )Nr^   ra   r  r_   r  ç      à¿ro   )	r%   r—   rÔ   r   r‡   r!   r
   r   r   rš   rš   rš   r›   Útest_asec_leading_term#  s    &06&,0*Jro  c                  C   sâ   t tƒ tdd¡ttdƒ tttƒ  ttd  d  dt td  d  dt td  d	  d
t td  d  ttd ƒ ks†t‚t tƒ dt¡} | dt td  d ks²t‚t tƒ dt| d¡dt td  d	 ksÞt‚d S )Nr   r¥   ra   rc   ro   rW  rb   rd   ra  é#   rr   r;  re   rq   )r%   r—   r8   r
   r   r7   r‡   rì   )Zt4rš   rš   r›   Útest_asec_series4  s    :ÿÿ
ÿÿrq  c                   C   s´  t tƒtkst‚t dƒtd ks$t‚t dƒt d ks:t‚t tƒdksJt‚t t ƒdks\t‚t tƒdkslt‚t dƒtks|t‚t tdƒƒdt ks”t‚t tdƒƒdt ks¬t‚t td	ƒƒd	dt  ksÈt‚tt ttƒƒsÚt‚tt t	tƒƒsìt‚t dt
dƒ ƒtd ks
t‚t tttd
dƒ ƒƒt d ks0t‚t t
ddt
dƒ d  ƒƒtd ksZt‚t t
ddt
dƒ d  ƒ ƒt d ksˆt‚t dƒt d	 ks t‚t t
ddt
dƒ  ƒ ƒt d ksÊt‚t t
ddt
dƒ  ƒƒttddƒ ksöt‚t dt
dƒ ƒtd kst‚t t
dƒt
d	ƒ ƒttddƒ ks<t‚t tƒ t¡dtd t
ddtd   ƒ  kspt‚t tƒ t¡t tt
ddtd   ƒtt  ƒ ksªt‚t tƒ t¡tdt ƒksÊt‚t tƒ t¡tdt ƒ td  ksôt‚t tƒ t¡tt
td d ƒƒ td  t
td ƒ t ks6t‚t tƒ t¡tdt
td d ƒ ƒ td  t
td ƒ t ks|t‚t tƒ t¡ttƒ td  ks¢t‚ttdd„ ƒ d S )Nr^   ra   r_   r   ro   re   rc   r±   rd   rÊ   rb   r`   rr   rf   rq   rt   c                   S   s   t tƒ d¡S r·   )r$   r—   r¸   rš   rš   rš   r›   r¹   _  rº   ztest_acsc.<locals>.<lambda>)r$   r   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›   Ú	test_acsc=  s>    &*.*,(4: *,ÿ
F&rr  c                   C   sÀ  t tƒ t¡t tƒkst‚t tƒ t¡t tƒks4t‚t tƒ t¡dt ttt ƒtt t ƒ  ksht‚t tƒ t¡dttƒ ks†t‚t tƒ t	¡t	td ƒd d dt	td ƒ  ks¼t‚t tƒ t
¡t
td ƒd d dt
td ƒ  ksòt‚t tƒ t¡dtttd  dd kst‚t tƒ t¡tt td  ddksHt‚t dttttƒ ƒ ƒ t¡dtt d d tttttƒ ƒ ttt d ttttƒ  dd  dd ks¼t‚d S )Nra   r^   Fr|   r_   )r+   r—   r¨   rÜ   r‡   r!   r   r
   r-   r/   r*   r)   r   r,   r0   rš   rš   rš   r›   Útest_csc_rewriteb  s    466,*""ÿÿÿrs  c                   C   s  t dt ƒ t¡tkst‚t td ƒ t¡td ks8t‚t td ƒ t¡t d ksXt‚t tƒjtddtttƒ td  ttdƒ  ksŽt‚t tƒjtddt ttƒ dt d  ttdƒ  ksÊt‚t tt d ƒjtddt dƒksðt‚t t t d ƒjtddtt dƒ kst‚t tt d ƒjtddt t dƒ ksLt‚t t t d ƒjtddt dƒ ksxt‚t t td  t tdƒd  ƒjtddt d tttdƒd ƒ  ksÈt‚t t td  t tdƒd  ƒjtddt d tttdƒd ƒ  kst‚d S )Nr^   ra   r  r_   ro   r  rn  )	r$   r—   rÔ   r‡   r   r
   r   r   r!   rš   rš   rš   r›   Útest_acsc_leading_terms  s     6<&..,Prt  c                  C   sì   t tƒ tdd¡t tdƒ td  tttƒ  ttd  d  dt td  d  dt td  d	  d
t td  d  ttd ƒ kst‚t tƒ dt¡} | dt td  d	 ks¼t‚t tƒ dt| d¡d
t td  d ksèt‚d S )Nr   r¥   ra   rc   ro   rW  rb   rd   ra  rp  rr   r;  )	r$   r—   r8   r
   r   r   r7   r‡   rì   )Zt6rš   rš   r›   Útest_acsc_series„  s    0ÿÿÿ
ÿÿru  c                   C   sè  t td ƒ tdd t¡t dƒ t tdƒt t d  tdƒt td  d  tdƒt td  d  ttd ƒ kszt‚t td ƒ tdd t ¡t dƒtdƒt t d  tdƒt td  d  tdƒt td  d  ttd ƒ ksðt‚t td ƒ tdd t¡t dƒ tdƒt t d  tdƒt td  d  tdƒt td  d  ttd ƒ ksht‚t td ƒ tdd t ¡t dƒt tdƒt t d  tdƒt td  d  tdƒt td  d  ttd ƒ ksät‚t dt ƒ tdd ¡td tdƒtt ƒ  tdƒt tdƒd   d  dtdƒ t tdƒd   d	  ttd ƒ ksft‚t d
t ƒ tdd ¡t d tdƒttƒ  tdƒttdƒd   d  dtdƒ ttdƒd   d	  ttd ƒ ksät‚t t	tƒƒ tdd ¡td tdƒtt ƒ  tdƒt tdƒd   d  tdƒt tdƒd   d  ttd ƒ ksbt‚t t	tƒ ƒ tdd ¡t d tdƒtt ƒ  tdƒt tdƒd   d  tdƒt tdƒd   d  ttd ƒ ksät‚d S )Nra   rc   ro   r¥   rÉ   r^   rt   rb   rb  r_   rd   r¢   )
r&   r—   Ú_eval_nseriesr
   r   r!   r7   r‡   r   r   rš   rš   rš   r›   Útest_asin_nseries  s€    "ÿÿÿ
ÿ
ÿÿÿ
ÿ
ÿÿÿ
ÿ"ÿÿÿ
ÿ,ÿ ÿ
ÿ,ÿÿ
ÿ,ÿÿ
ÿ0ÿÿ
ÿrw  c                   C   sÌ  t td ƒ tdd t¡t dƒ tdƒt t d  tdƒt td  d  tdƒt td  d  ttd ƒ ksvt‚t td ƒ tdd t ¡t dƒtdƒt t d  tdƒt td  d  tdƒt td  d  ttd ƒ ksìt‚t td ƒ tdd t¡t dƒtdƒt t d  tdƒt td  d  tdƒt td  d  ttd ƒ ksbt‚t td ƒ tdd t ¡t dƒ dt  tdƒt t d  tdƒt td  d  tdƒt td  d  ttd ƒ ksät‚t dt ƒ tdd ¡tdƒtt ƒ tdƒt tdƒd   d  dtdƒ t td	ƒd   d
  ttd ƒ ks^t‚t dt ƒ tdd ¡ttdƒttƒ  tdƒttdƒd   d  dtdƒ ttd	ƒd   d
  ttd ƒ ksÖt‚t t	tƒƒ tdd ¡tdƒtt ƒ tdƒt tdƒd   d  tdƒt td	ƒd   d  ttd ƒ ksLt‚t t	tƒ ƒ tdd ¡ttdƒtt ƒ  tdƒt tdƒd   d  tdƒt td	ƒd   d  ttd ƒ ksÈt‚d S )Nra   rc   ro   r¥   rÉ   r`   r^   rt   rb   rb  r_   rd   r¢   )
r"   r—   rv  r
   r!   r7   r‡   r   r   r   rš   rš   rš   r›   Útest_acos_nseries¡  st    2ÿÿ
ÿ
2ÿÿ
ÿ
0ÿÿ
ÿ(ÿÿÿ
ÿ$ÿ ÿ
ÿ&ÿÿ
ÿ$ÿÿ
ÿ*ÿÿ
ÿrx  c                   C   sü  t tdt  ƒ tdd d¡ttdƒ td  dt td  d  dtd  d  ttd ƒ ksdt‚t tdt  ƒ tdd d¡ttdƒ t td  dt td  d  dtd  d  ttd ƒ ksÌt‚t tdt  ƒ tdd d¡t tdƒ t td  dt td  d  dtd  d  ttd ƒ ks8t‚t tdt  ƒ tdd d¡t tdƒ td  dt td  d  dtd  d  ttd ƒ ks t‚t dt ƒ tdd d¡td t ttd ƒ ksÖt‚t dt ƒ tdd d¡t d t ttd ƒ kst‚t tt ƒ tdd ¡ttdƒ d td  tttƒ d  td  ttd  d	  td d
  ttd ƒ ks‚t‚t tt ƒ tdd ¡t tdƒ d td  tttƒ d  td  ttd  d	  td d
  ttd ƒ ksøt‚d S )Nra   rc   r^   ro   r¥   rÊ   éQ   r_   é   é0   )	r'   r—   r
   rv  r   r7   r‡   r   r   rš   rš   rš   r›   Útest_atan_nseriesµ  sp    ,ÿÿ
ÿ
(ÿÿÿ
ÿ
*ÿÿÿ
ÿ.ÿÿ
ÿ68*ÿÿÿ
ÿ
ÿ,ÿÿÿ
ÿ
ÿr|  c                   C   sD  t ttdƒd t  ƒ tdd d¡t ttdƒd ƒ t dt d  dt td  d  dtd  d  ttd ƒ ks~t‚t ttdƒd t  ƒ tdd d	¡t ttdƒd ƒ dt d  dt td  d  dtd  d  ttd ƒ ksøt‚t ttdƒd t  ƒ tdd d¡tttdƒd ƒ dt d  dt td  d  dtd  d  ttd ƒ ksrt‚t ttdƒd t  ƒ tdd d	¡tttdƒd ƒ t dt d  dt td  d  dtd  d  ttd ƒ ksðt‚t tƒ tdd d¡td t ttd ƒ ks"t‚t tƒ tdd d	¡t d t ttd ƒ ksVt‚t tt ƒ tdd ¡t t	dƒ d td  tt	tƒ d  td  ttd  d
  td d  ttd ƒ ksÌt‚t tt ƒ tdd ¡tt	dƒ d td  tt	tƒ d  td  ttd  d
  td d  ttd ƒ ks@t‚d S )Nr^   ra   rc   ro   rr   r¥   r  ry  r_   rz  r{  )
r#   r—   r   r
   rv  r   r   r7   r‡   r   rš   rš   rš   r›   Útest_acot_nseriesÇ  s€    6ÿ
ÿÿÿ
ÿ
6
ÿÿÿ
ÿ
4
ÿÿÿ
ÿ4ÿ
ÿÿÿ
ÿ24,ÿÿÿ
ÿ
ÿ*ÿÿÿ
ÿ
ÿr}  c                   C   s>  t ttdƒd  ƒ tdd t¡t tdƒd ƒdtdƒ t t d  dtdƒ t td  d  dtdƒ t td  d  ttd ƒ kst‚t ttdƒd  ƒ tdd t ¡t tdƒd ƒ dtdƒ t t d  dtdƒ t td  d  dtdƒ t td  d  ttd ƒ ks&t‚t ttdƒd  ƒ tdd t¡t tdƒ d ƒ dt  dtdƒ t t d  dtdƒ t td  d  dtdƒ t td  d  ttd ƒ ksÄt‚t ttdƒd  ƒ tdd t ¡t tdƒ d ƒdtdƒ t t d  dtdƒ t td  d  dtdƒ t td  d  ttd ƒ ksZt‚t dt ƒ tdd ¡tdƒttƒ dtdƒ ttdƒd   d	  d
tdƒ ttdƒd   d  ttd ƒ ksÒt‚t dt ƒ tdd ¡ttdƒtt ƒ  dtdƒ t tdƒd   d	  d
tdƒ t tdƒd   d  ttd ƒ ksTt‚t t	tƒƒ tdd ¡tdƒttƒ tdƒttdƒd   d  tdƒttdƒd   d  ttd ƒ ksÄt‚t t	tƒ ƒ tdd ¡ttdƒttƒ  tdƒttdƒd   d  tdƒttdƒd   d  ttd ƒ ks:t‚d S ©Nr^   ra   rc   ro   rr   r¥   rz  rb   rt   é+   rb  r_   rd   r¢   )
r%   r—   r   rv  r
   r!   r7   r‡   r   r   rš   rš   rš   r›   Útest_asec_nseriesÙ  s„    ,ÿÿÿ
ÿ
0ÿÿÿ
ÿ0ÿÿÿÿ
ÿ0ÿÿÿ
ÿ"ÿÿ
ÿ( ÿ ÿ
ÿ"ÿÿ
ÿ(ÿÿ
ÿr€  c                   C   sV  t ttdƒd  ƒ tdd t¡t tdƒd ƒdtdƒ t t d  dtdƒ t td  d  dtdƒ t td  d  ttd ƒ kst‚t ttdƒd  ƒ tdd t ¡t tdƒd ƒ t dtdƒ t t d  dtdƒ t td  d  dtdƒ t td  d  ttd ƒ ks*t‚t ttdƒd  ƒ tdd t¡t tdƒd ƒt dtdƒ t t d  dtdƒ t td  d  dtdƒ t td  d  ttd ƒ ksÀt‚t ttdƒd  ƒ tdd t ¡t tdƒd ƒ dtdƒ t t d  dtdƒ t td  d  dtdƒ t td  d  ttd ƒ ksVt‚t dt ƒ tdd ¡td tdƒttƒ  dtdƒ ttdƒd   d	  d
tdƒ ttdƒd   d  ttd ƒ ksÖt‚t dt ƒ tdd ¡t d tdƒtt ƒ  dtdƒ t tdƒd   d	  d
tdƒ t tdƒd   d  ttd ƒ ks^t‚t t	tƒƒ tdd ¡td tdƒttƒ  tdƒttdƒd   d  tdƒttdƒd   d  ttd ƒ ksÖt‚t t	tƒ ƒ tdd ¡t d tdƒttƒ  tdƒttdƒd   d  tdƒttdƒd   d  ttd ƒ ksRt‚d S r~  )
r$   r—   r   rv  r
   r!   r7   r‡   r   r   rš   rš   rš   r›   Útest_acsc_nseriesí  s„    ,ÿÿÿ
ÿ
0ÿÿÿÿ
ÿ0ÿÿÿ
ÿ0ÿÿÿ
ÿ*ÿÿ
ÿ. ÿ ÿ
ÿ*ÿÿ
ÿ.ÿÿ
ÿr  c                  C   sF   t ddd} t| ƒjd kst‚t| ƒjd ks0t‚t| ƒjd ksBt‚d S )NrN   TrI   )r   r-   Zis_irrationalr‡   r)   r/   ©rN   rš   rš   r›   Útest_issue_8653  s    rƒ  c                  C   s(   t dddd} t| d ƒjdks$t‚d S )NrN   T)rJ   rM   r^   )r   r'   r  r‡   r‚  rš   rš   r›   Útest_issue_9157  s    r„  c                     s‚  t dƒ\‰ } tˆ ƒ ¡ dt ks$t‚tˆ ƒ ¡ dt ks<t‚tˆ ƒ ¡ tksPt‚tˆ ƒ ¡ tksdt‚tˆ ƒ ¡ dt ks|t‚t	ˆ ƒ ¡ dt ks”t‚tdˆ  ƒ ¡ tks¬t‚tdˆ  d ƒ ¡ td ksÌt‚tdˆ  ƒ ¡ tt
ddƒ ksît‚tˆ |  ƒ ˆ ¡dt t| ƒ kst‚tdˆ  |  dt  ƒ | ¡dt tdˆ  ƒ ksNt‚tdˆ  ƒ | ¡tjkslt‚tt‡ fdd„ƒ d S )	Nzx, yra   rc   rd   re   ro   c                      s   t ˆ d ƒ ˆ ¡S r·   )r-   Úperiodrš   rh  rš   r›   r¹     rº   z"test_trig_period.<locals>.<lambda>)r   r-   r…  r   r‡   r)   r/   r*   r,   r+   r   r”   r   rˆ   rE   ÚNotImplementedError)r˜   rš   rh  r›   Útest_trig_period  s     "(8r‡  c                   C   s8   t tƒ t¡t tƒkst‚t tƒ t¡t tƒks4t‚d S r2  )r-   r—   r¨   r!   r‡   rÜ   rš   rš   rš   r›   Útest_issue_7171  s    rˆ  c                  C   s~   t ddd\} }tdtdt | dƒftt| ƒt|  dfƒ}tdtdt | dƒftt| ƒdfƒ}| t¡|kszt‚d S )Nzw, kTrG   r^   ra   r   )r   rA   r@   r   r-   r.   r¨   r‡   )ÚwrŠ   ÚFZsolnrš   rš   r›   Útest_issue_11864$  s    0(r‹  c                  C   s`  t dddd} t| ƒjd ks t‚t| ƒjd ks2t‚t| ƒjdksDt‚t| ƒjd ksVt‚t| ƒjd ksht‚t| ƒjdkszt‚t	t
ƒjd ksŒt‚t	tƒjd ksžt‚tt
ƒjd ks°t‚ttƒjd ksÂt‚tt
ƒjd ksÔt‚ttƒjd ksæt‚tt
ƒjd ksøt‚ttƒjd kst‚tt
ƒjdks t‚ttƒjdks4t‚tt
ƒjdksHt‚ttƒjdks\t‚d S )Nr\   FTrl  )r   r-   rŽ   r‡   r)   r/   r,   r+   r*   r&   rK   rN   r%   r"   r$   r'   r  r  r#   rj  rš   rš   r›   Útest_real_assumptions*  s&    rŒ  c                   C   s–  t tdƒƒdt krNt d dt   kr6td krNn ntdƒtdt ƒksRt‚t tdƒƒdtd  kr¬t d dtd    krtd kr¬n ntdƒtdtd  ƒks°t‚ttdƒƒt d d krdt d d   krìtkrn ntdƒtt d d ƒkst‚ttdƒƒdt d krhddt d   krJtkrhn ntdƒtdt d ƒkslt‚ttdƒƒddt  krÄdddt    kr¦tkrÄn ntdƒtddt  ƒksÈt‚ttd	ƒƒd
t d	 kr*t d d
t d	   k rtd k r*n ntd	ƒtd
t d	 ƒks.t‚ttdƒƒd
t d krt d d
t d   k rrtd k rn ntdƒtd
t d ƒks”t‚ttdƒƒdtt	ddƒ  krt d dtt	ddƒ    k rätd k rn n tdƒtdtt	ddƒ  ƒkst‚t
tdƒƒd
t d krnt d d
t d   k rPtd krnn ntdƒtd
t d ƒksrt‚t
tdƒƒdtt	ddƒ  kræt d dtt	ddƒ    k rÂtd kræn n tdƒtdtt	ddƒ  ƒksêt‚ttdƒƒddt  krBdddt    kr$tkrBn ntdƒtddt  ƒksFt‚ttdƒƒdtt	ddƒ  kr°ddtt	ddƒ    krŒtkr°n n tdƒtdtt	ddƒ  ƒks´t‚ttdƒƒdt d krt d dt d   krøtd krn ntdƒtdt d ƒkst‚ttdƒƒtt	ddƒ d krŽt d tt	ddƒ d   krjtd krŽn n tdƒttt	ddƒ d ƒks’t‚d S )Nra   r`   r   rž   iúÿÿÿr    iâÿÿÿrf   rp   rq   r   rt   iôÿÿÿrh   rË   iíÿÿÿrÊ   r½   rv   rc   ióÿÿÿr¥   rÍ   r±   ru   )r&   r-   r   r‡   r)   r"   r'   r/   r*   r   r#   r%   r,   r+   r$   rš   rš   rš   r›   Útest_issue_14320?  s    R^`\\ffxfx\nfr  c                  C   sò  t dt d ƒt dƒkst‚t dt d ƒt dƒks8t‚t td ƒt dƒ ksRt‚t td ƒt dƒ kslt‚tdt d ƒtdƒksˆt‚tdt d ƒtdƒ ks¦t‚ttd ƒtdƒ ksÀt‚ttd ƒtdƒksØt‚tdƒ} ttd |  ƒt | ƒksüt‚ttd |  ƒt | ƒkst‚tttddƒ |  ƒt | ƒ ks@t‚tttddƒ |  ƒt | ƒ ksft‚t td |  ƒt| ƒks„t‚t td |  ƒt| ƒ ks¤t‚t ttddƒ |  ƒt| ƒksÈt‚t ttddƒ |  ƒt| ƒ ksît‚d S )Nra   r½   rp   r—   ro   )r,   r   r‡   r+   r   r   rh  rš   rš   r›   Útest_issue_14543Q  s"    && $rŽ  c                  C   s0   t ttttdƒ   ƒ} |  ¡ | dfks,t‚d S )Nr^   r   )r'   r
   r/   rO  r‡   )r>  rš   rš   r›   Útest_as_real_imagh  s    r  c                  C   s*   t tjtd d  ƒ} |  ¡ dks&t‚d S )Nrc   g      Ð?rr   )r)   r   rµ   r—   r…  r‡   )Ze3rš   rš   r›   Útest_issue_18746p  s    r  N)×Z!sympy.calculus.accumulationboundsr   Zsympy.core.addr   r¬   r   r   Zsympy.core.modr   Zsympy.core.mulr   Zsympy.core.numbersr   r	   r
   r   r   r   r   r   Zsympy.core.powerr   Zsympy.core.singletonr   Zsympy.core.symbolr   r   Z$sympy.functions.elementary.complexesr   r   r   r   Z&sympy.functions.elementary.exponentialr   r   Z%sympy.functions.elementary.hyperbolicr   r   r   r   r   r   r    Z(sympy.functions.elementary.miscellaneousr!   Z(sympy.functions.elementary.trigonometricr"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   Zsympy.functions.special.besselr0   r1   Z'sympy.functions.special.delta_functionsr2   Zsympy.matrices.denser3   Zsympy.polys.polytoolsr4   r5   Zsympy.series.limitsr6   Zsympy.series.orderr7   Zsympy.series.seriesr8   Zsympy.sets.fancysetsr9   Zsympy.sets.setsr:   r;   Zsympy.simplify.simplifyr<   Zsympy.core.exprr=   r>   Zsympy.core.relationalr?   r@   Z$sympy.functions.elementary.piecewiserA   Zsympy.sets.setexprrB   Zsympy.testing.pytestrC   rD   rE   r—   r˜   r\   rF   rŠ   r   rK   rN   r  r  rS   rU   rV   r  r  rW   rX   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/  r0  r1  r4  r5  r8  r9  r:  r?  r@  rA  rB  rH  rJ  rM  rP  rQ  r\  r]  r_  rd  re  rf  ri  rk  rm  ro  rq  rr  rs  rt  ru  rw  rx  r|  r}  r€  r  rƒ  r„  r‡  rˆ  r‹  rŒ  r  rŽ  r  r  rš   rš   rš   r›   Ú<module>   s.  ($@

%ih
	[

41	,7I
m

O

?A 
	%	