U
    ZÊ¹jg_ ã                   @   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mUZUmVZV d dlWmXZXmYZY d dlZm[Z[ d dl\m]Z] d dl^m_Z_m`Z`maZa edƒ\ZbZcZded d!d"�Zeed#d!d$�\ZfZged%d!d&�Zhed'd!d(�Zied%d!d)�Zjed'd!d*�Zked+d!d,�Zled-d!d.�Zmed/d!d0�Zned-d!d1�Zoed/d!d2�Zped3d!d4�Zqed5d!d6�Zred7d!d!d8�Zsd9d:„ Ztd;d<„ Zud=d>„ Zvd?d@„ ZwdAdB„ ZxdCdD„ ZydEdF„ ZzdGdH„ Z{dIdJ„ Z|dKdL„ Z}dMdN„ Z~dOdP„ ZdQdR„ Z€dSdT„ Z�dUdV„ Z‚dWdX„ ZƒdYdZ„ Z„d[d\„ Z…d]d^„ Z†e`d_d`„ ƒZ‡dadb„ Zˆdcdd„ Z‰dedf„ ZŠdgdh„ Z‹didj„ ZŒdkdl„ Z�e_dmdn„ ƒZŽdodp„ Z�dqdr„ Z�e`dsdt„ ƒZ‘dudv„ Z’dwdx„ Z“dydz„ Z”d{d|„ Z•d}d~„ Z–dd€„ Z—d�d‚„ Z˜dƒd„„ Z™d…d†„ Zšd‡dˆ„ Z›d‰dŠ„ Zœd‹dŒ„ Z�d�dŽ„ Zžd�d�„ ZŸd‘d’„ Z d“d”„ Z¡d•d–„ Z¢d—d˜„ Z£d™dš„ Z¤d›dœ„ Z¥d�dž„ Z¦dŸd „ Z§d¡d¢„ Z¨d£d¤„ Z©d¥d¦„ Zªd§d¨„ Z«d©dª„ Z¬d«d¬„ Z­d­d®„ Z®d¯d°„ Z¯d±d²„ Z°d³d´„ Z±dµ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�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Ú	PoleError)Ú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)rU   rZ   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�s�t‚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©rK   ÚevenÚe©rm   é   é   éûÿÿÿé   éûÿÿé   éùÿÿÿéõÿÿÿéh   éi   éj   é˜ÿÿÿé–ÿÿÿ©ÚevaluateÚq©ÚrationalÚqn)r�   rU   é   é<   é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ÚmrG   Úis_realÚis_algebraicrY   r[   r   Úis_rationalÚ
isinstancer   r   rC   r;   r9   r   ÚlistÚrangeÚabsÚfloatÚis_zeror   )	ÚxÚyr]   rk   rn   r   r‚   ÚdrO   © r›   úr/var/www/html/bwave/python/venv/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_   rb   rp   rd   rc   re   rg   ru   é   é   é   é   é(   r„   éx   ra   rb   úfails for %d*pi/%d)r”   r   r-   r)   rˆ   )rš   rO   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   é	   rp   re   rc   r£   ri   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�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�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‚t tƒ t¡ttt d ƒttjtƒ k�sÜt‚t tƒ t¡ td¡t dƒk�s t‚d S )Nrb   r_   r   Trp   Fr}   )r-   r˜   Úrewriter   r
   rˆ   r/   r*   rB   rA   r   r   r   r   r�   rO   r   r    r   r)   r   r   r+   r,   r0   r!   r   rŠ   r›   r›   r›   rœ   Útest_sin_rewriteÁ   sœ    66"&ÿÿÿ ÿÿ
ÿ ÿÿ
ÿ ÿÿ
ÿ ÿÿ
ÿ ÿÿ
ÿ ÿÿ
ÿ ÿÿ
ÿ ÿÿ
: (,$0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•   rO   )ÚfÚirn   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 dt d ƒjdd�t dt d d	d
�k�s‚t‚t ttd  ƒjdd�t td ƒttƒ ttd ƒt tƒ  k�sÈt‚tt ddt dƒ tdƒ ƒ tt ddt dƒd  dt dƒ  ƒ d S )NT©Ztrigrb   rp   éüÿÿÿrd   éøÿÿÿrq   Fr}   r_   )r-   r˜   r™   Úexpandr)   rˆ   r   r¯   r›   r›   r›   rœ   Útest_sin_expansionê   s    888,6F2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   rb   rp   rd   ri   rc   re   )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 ©Nrb   )r-   r˜   Úfdiffr›   r›   r›   rœ   Ú<lambda>  ó    z test_sin_fdiff.<locals>.<lambda>)r-   r˜   r¸   r)   rˆ   rF   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�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d t ƒttƒ k�st‚d S )Nrb   rp   rd   rc   )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`   ra   rb   r   rf   rg   rh   ri   rj   rO   TFrl   rn   ro   rc   rs   rp   rd   é   re   rr   rt   ru   rx   ry   rz   r{   r|   r}   r   r€   rƒ   r„   r…   r†   )#r   r)   r‡   r:   rˆ   r   r   r   r
   r   r"   r'   r!   r&   r#   r$   r%   r(   r   r   r   rŠ   r   r‹   rG   r�   r�   rY   r[   r   r—   r“   r”   r•   r–   )r˜   r™   rO   rn   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Ú rd   g     €@rs   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_   rb   rd   r    re   éÐ  rs   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‚t tƒ t¡tttt d ƒttj tƒ ttdƒfdƒk�sòt‚t tƒ t¡ td¡t dƒk�st‚d S )	Nrb   r_   r   Trp   Fr}   ©r_   T)r)   r˜   r¨   r   r
   rˆ   r/   r*   rB   rA   r   r   r   r   r�   rO   r   r    r   r-   r   r   r,   r+   r0   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 dt d ƒjdd�t dt d d	d
�k�szt‚t ttd  ƒjdd�t td ƒt tƒ ttd ƒttƒ  k�sÀt‚tt ddt dƒd  d ƒ tt ddt dƒd  dt dƒ  ƒ d S )NTr°   rb   r_   rp   rd   rs   rq   Fr}   )r)   r˜   r™   r³   r-   rˆ   r   r¯   r›   r›   r›   rœ   Útest_cos_expansionÆ  s    888,6>2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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   rb   rp   rd   rc   )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ˆ   rF   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�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 ƒ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   rb   ra   rf   rg   rh   rp   rd   rq   rc   é   éðÿÿÿre   r`   ri   rr   rs   iáÿÿÿru   r½   r    é   é   é   TFr}   rw   rž   é   éñÿÿÿ)#r/   r   rˆ   r   r   r   r‡   r:   r
   r'   r˜   r&   r!   r"   r#   r$   r%   r(   r™   r   r    r   r   ÚOneÚNegativeOneÚradsimpr‹   rG   r�   Úis_extended_realr�   rY   r[   Ú	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¦   rp   rb   rc   rž   rq   ri   i;  )r/   r˜   r8   r7   rˆ   r›   r›   r›   rœ   Útest_tan_seriesK  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‚tttddƒ dd� t¡ttdƒd tddƒ ƒtdd	ƒtdƒd	   k�sæt‚ttƒ t¡ttjtƒttj tƒ k�st‚ttƒ t¡ td
¡td
ƒk�s8t‚d S )Nrb   Fr}   r_   rp   rc   rs   r`   rd   r   )r   r˜   r
   r/   r¨   rˆ   r-   r)   r   rµ   r*   r   r�   rO   r   r    r   r   r   r,   r   r+   r   r!   r0   rŠ   )Úneg_expÚpos_expr›   r›   rœ   Útest_tan_rewriteP  s0    &.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   é"   rq   rÍ   rs   rb   rc   Fr}   r`   rd   )	r)   r   r/   r-   r¨   Úpowrˆ   r   r!   r›   r›   r›   rœ   Útest_tan_rewrite_slowh  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 )Nrb   rp   )	r/   r˜   r�   r™   rˆ   r   rµ   r   r   r›   r›   r›   rœ   Útest_tan_subsr  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   rb   ri   r    rp   rc   é7   é%   rd   éï   )r/   r˜   r™   r³   rˆ   r]   r¨   r�   r   r   r¯   r›   r›   r›   rœ   Útest_tan_expansiony  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 )Nrp   rb   re   )r/   r   r   rˆ   r   rµ   r   r›   r›   r›   rœ   Útest_tan_AccumBounds†  s     0rå   c                   C   s2   t tƒ ¡ t tƒd d ks t‚ttdd„ ƒ d S )Nrb   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ˆ   rF   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   rb   ra   rp   rf   rc   ri   rd   rq   re   rr   rs   r`   ru   r½   r    rÌ   rÍ   rÎ   TFrg   rw   é'   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‹   rG   r�   rÔ   rY   r�   r[   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 )Nrs   rž   r_   g›+¡†›„=rd   )	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_   rs   rž   rd   )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_   rp   é-   rb   rc   i±  ri   iu  rd   r±   ra   r`   )	r*   r˜   r8   r7   rˆ   r   Útaylor_termr   r‰   r›   r›   r›   rœ   Útest_cot_seriesö  s    Bÿ.ÿBrï   c                  C   sl  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‚tttddƒ dd� t¡tdd	ƒtdƒd	  ttdƒd
 tdd
ƒ ƒ k�st‚ttƒ t¡ttj tƒttjtƒ k�sDt‚ttƒ t¡ td¡tdƒk�sht‚d S )Nrb   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>.checkrc   r`   rd   rs   r   )r   r˜   r
   r*   r¨   rˆ   r-   r)   r   r/   r   r   r    r   r   r   r,   r+   r   r!   r0   r   rŠ   r�   )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 )Nrd   rÝ   rq   rÍ   rb   rc   Fr}   r`   rs   )
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`   rp   rb   rd   re   rf   )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 )Nrp   re   )r*   r   r   rˆ   r   rµ   r›   r›   r›   rœ   Útest_cot_AccumBoundsC  s     ,rö   c                   C   s4   t tƒ ¡ t tƒd  d ks"t‚ttdd„ ƒ d S )Nrb   r_   c                   S   s   t tƒ d¡S r·   )r*   r˜   r¸   r›   r›   r›   rœ   r¹   K  rº   z test_cot_fdiff.<locals>.<lambda>)r*   r˜   r¸   rˆ   rF   r>   r›   r›   r›   rœ   Útest_cot_fdiffI  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©ÚzerorO   )rK   rU   rb   rc   ri   ra   r   r_   rp   re   rd   r£   rÅ   Fr}   Úxr)rI   rU   éd   )r’   r.   r˜   rˆ   r   r   rÑ   ÚInfinityr‰   ÚNegativeInfinityÚNaNZComplexInfinityr   r   r   r)   r-   r6   r8   r7   r¨   r1   rB   r@   r—   r�   r
   rÕ   )rø   rO   rû   r›   r›   rœ   Ú	test_sincN  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   rb   r`   rp   rd   rc   rs   re   rg   ru   ©rc   re   rs   rg   ru   çš™™™™™É?Fr}   Tra   ri   rv   )r&   r   rˆ   r‡   r:   r   r
   r   r   r!   r   rŠ   r   r”   r5   r-   r˜   r   r�   rG   r   Úis_positiverL   r=   r)   )rš   rO   r›   r›   rœ   Ú	test_asin‚  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¦   rp   re   rc   r¢   ri   é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_   rb   ©Úcdirr`   rp   )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_   rb   )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_   rb   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ˆ   rF   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   rb   rp   r`   rd   r  r  Tra   Fri   r}   rg   rf   )r"   r   rˆ   r   r‡   r:   r   r
   r   r   rŠ   r   r!   r”   r5   r)   r&   r˜   r   r�   rG   r  rL   r   rO   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s�t‚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 )Nrb   r_   r  r`   ra   rp   )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   rs   rb   rp   re   rc   r¢   ri   r  rf   rr   )
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 )Nrb   r_   ra   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_   rb   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ˆ   rF   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_   rb   r   rd   rp   rf   rs   rc   rg   ra   ru   rr   r  Tr`   F)-r'   r   rˆ   r‡   r:   r   r   r   r   r!   r   r”   r5   r/   r˜   r   rG   r�   r
   r   r=   r*   r#   r‘   rL   rO   ÚnpÚnnrT   rV   rW   ÚenpÚennrX   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_atan2  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_   rb   rr   ©r�   rc   )r'   r˜   r¨   r   r
   rˆ   r&   r!   r   r"   r#   r%   r$   ré   r›   r›   r›   rœ   Útest_atan_rewritei  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_   rb   c                   S   s   t tƒ d¡S r·   )r'   r˜   r¸   r›   r›   r›   rœ   r¹   w  rº   z!test_atan_fdiff.<locals>.<lambda>)r'   r˜   r¸   rˆ   rF   r>   r›   r›   r›   rœ   Útest_atan_fdiffu  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  rb   r`   rd   rp   )r'   r˜   rÖ   rˆ   r   r
   r   r   r›   r›   r›   rœ   Útest_atan_leading_termz  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 )Nrb   r   r_   rd   r`   rp   rf   r®   Tr^   rG   rH   r˜   rP   r™   rS   Fr}   ÚurM   rc   ra   )r   Tz0.46365c                      s   t ˆ ˆƒ d¡S )Nrp   )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•   ÚequalsrB   r@   r   r   r   r   r<   Ústrré   rF   r>   )	r®   rG   ÚeqZansZrepsr  Úexrn   r¨   r›   r   rœ   Ú
test_atan2�  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   rd   rb   rp   r`   Tra   F)r#   r   rˆ   r‡   r:   r   r   r   r!   r˜   r   rG   rÔ   r
   r   r  rO   rL   r   r‘   r=   r*   r/   r›   r›   r›   rœ   Ú	test_acotá  s.    " "r0  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_   rb   ra   rc   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r1  c                   C   s2   t tƒ ¡ dtd d  ks t‚ttdd„ ƒ d S )Nr`   rb   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ˆ   rF   r>   r›   r›   r›   rœ   Útest_acot_fdiff
  s     r2  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�s�t‚t td tt  td  ƒjtdd�t d ttdƒ d  k�sÖt‚d S )Nr_   r  rb   rd   r`   rp   )	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r3  c                   C   s   t tƒjtfkst‚d S ©N)r-   r˜   Úargsrˆ   r›   r›   r›   rœ   Útest_attributes!  s    r6  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    r7  c                 C   s   | |ƒj d | kS )zMChecks that the expr has been rewritten using f(-x) -> f(x)
    arg : -x
    r   ©r5  ©rŒ   r   r›   r›   rœ   Ú_check_even_rewrite,  s    r:  c                 C   s   | |ƒj jS )zNChecks that the expr has been rewritten using f(-x) -> -f(x)
    arg : -x
    )rŒ   Zis_Mulr9  r›   r›   rœ   Ú_check_odd_rewrite3  s    r;  c                 C   s   | |ƒj d |kS )z%Checks that the expr is not rewrittenr   r8  r9  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 )Nrb   r_   r`   é   ry   )r)   r-   r/   r*   r&   r'   r#   r   r   r˜   r™   r:  rˆ   r<  r;  )rY   Úbrm   ÚoddZ
with_minusrŒ   Úexprr›   r›   rœ   Útest_evenodd_rewrite?  s.    *ÿ
ÿ
ÿÿrA  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_5272S  s    rC  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`   rd   rp   )r-   r˜   rÖ   r   rˆ   r   rŠ   r)   r,   rþ   rý   r+   r/   r*   r   r×   r›   r›   rœ   Útest_leading_termsZ  s      $$$&rD  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 )Nrb   r_   r   rc   rd   rp   )r4   r(   r˜   r   r'   rˆ   r™   r8   r7   r3   Zjacobianr›   r›   r›   rœ   Útest_atan2_expansioni  s2    >*ÿÿ
ÿ*ÿÿÿ2ÿ
ÿÿ
.ÿrE  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ˆ   )rO   Úvrš   rn   r›   r›   rœ   Útv  s
    0ÿÿztest_aseries.<locals>.tgš™™™™™¹?ú+gñhãˆµøä>gš™™™™™¹¿ú-)r'   r#   )rH  r›   r›   rœ   Útest_aseriesu  s
    rK  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�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�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�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�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®   TrJ   rn   ro   Úo)r?  rd   r_   r   rp   g      @g      @g      @r  r`   )	r   r)   r   rˆ   r-   r/   r*   r   r˜   )r®   rn   rL  r›   r›   rœ   Útest_issue_4420  s¦     "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&rM  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 r4  )r-   r˜   Úinverser›   r›   r›   rœ   r¹   í  rº   ztest_inverses.<locals>.<lambda>c                   S   s   t tƒ ¡ S r4  )r)   r˜   rN  r›   r›   r›   rœ   r¹   î  rº   c                   S   s   t tƒ ¡ S r4  )r+   r˜   rN  r›   r›   r›   rœ   r¹   ñ  rº   c                   S   s   t tƒ ¡ S r4  )r,   r˜   rN  r›   r›   r›   rœ   r¹   ò  rº   )rF   ÚAttributeErrorr/   r˜   rN  r'   rˆ   r*   r#   r&   r-   r"   r)   r›   r›   r›   rœ   Útest_inversesì  s    rP  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s�t‚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�s�t‚t| ƒj|d�t| ƒdfk�s²t‚t	| ƒj|d�t	| ƒdfks t‚q d S )Nza bTrH   )TF)Údeeprb   r   )
r   r
   r-   Úas_real_imagr   r)   r   rˆ   r/   r*   )rY   r>  r]   rQ  r›   r›   rœ   Útest_real_imagù  s>    
ÿÿÿÿÿ ÿ"
ÿ"ÿ
$
ÿ"ÿ"""rS  c                   C   s(   t tƒtjkst‚ttƒtjks$t‚d S r4  )r-   r   r   rÿ   rˆ   r)   r›   r›   r›   rœ   Útest_sin_cos_with_infinity  s    rT  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_   rp   rc   rq   ©r_   rs   r_   rb   rg   r¤   çü©ñÒMbP?rc   rÏ   ri   rÐ   r½   Fr}   rd   r`   rp   rq   rf   é@   rÝ   é€   r²   re   é    rÌ   rž   rs   r¦   )r”   Úminr5   r   r-   r¨   r!   r)   Úhasrˆ   r•   ré   r   rŠ   r   r   rO   )	rL   rH  rO   r®   r˜   Ús1Úc1rn   rY   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  rX  )r)   r   r¨   r!   ré   rˆ   r›   r›   r›   rœ   Útest_sincos_rewrite_sqrt_257c  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 )NrU  rV  r_   rb   rg   rp   r¤   rW  ri   rd   r   )r”   r[  r5   r   r/   r¨   r!   r\  r*   rˆ   r•   ré   )rL   rH  rO   r®   r˜   Út1r^  r›   r›   rœ   Útest_tancot_rewrite_sqrth  s    

"0rb  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˜   TrH   r]   r_   r   r`   rb   re   rp   rc   r¦   ri   rd   r°   Fr}   ©Zx0rO   r    é`   ru   é    é=   rÃ   )!r   r,   r‡   r:   rˆ   r   r   r   r!   r   r
   r   r%   r   rR  r)   r   r   r-   r   r³   rÔ   r�   rY   r�   r[   rÖ   rÕ   r8   r7   r   r/   rî   )r˜   r]   r›   r›   rœ   Útest_sec{  sd     *"
4ÿ4ÿþÿ
"2FB8ÿ(ÿÿ
$&&rg  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‚t tƒ t¡tt	dƒt	tt ƒttj tƒ  ttdƒfdƒk�sÜt‚t tƒ t¡ td¡t dƒk�s t‚d S )Nr_   rb   Fr}   r   rÅ   )r,   r˜   r¨   r   r
   rˆ   r)   r/   rÞ   r!   r]   r*   r-   r   r+   r0   rB   r   rŠ   r@   r�   r›   r›   r›   rœ   Útest_sec_rewriteº  s    8<<,>**þrh  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ˆ   rF   r>   r›   r›   r›   rœ   Útest_sec_fdiffË  s     ri  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�s�t‚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�s�t‚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˜   TrH   r]   r_   r   rb   r`   re   rp   rc   r¦   ri   rd   r°   Fr}   rc  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   rR  r   r   r   r)   r³   rÔ   r�   rY   r�   r[   rÖ   rÕ   r8   r7   r   r*   rî   rF   r>   )r]   ZcosecantZ	alternater›   rk  rœ   Útest_cscÐ  sh     ,  
4ÿ6ÿþÿ
"2Lÿ
:ÿ
&&&rl  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`   rb   rÌ   rd   rp   rc   re   rs   rg   ri   r½   ru   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$   rF   r>   ©r]   r›   r›   rœ   Ú	test_asec  s8    ("&.02(4@* >ÿ
Bÿ
&rn  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 )NFrO   T)rN   rK   rH  ©rI   Zfinite)	r%   r   rŠ   r�   rˆ   r   rÔ   r˜   rG   )rO   rH  r›   r›   rœ   Útest_asec_is_real1  s    rp  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_   rb   r  r`   r  ç      à¿rp   )	r%   r˜   rÖ   r   rˆ   r!   r
   r   r   r›   r›   r›   rœ   Útest_asec_leading_term;  s    &06&,0*Jrr  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¦   rb   rd   rp   rZ  rc   re   rd  é#   rs   r=  rf   rr   )r%   r˜   r8   r
   r   r7   rˆ   rî   )Zt4r›   r›   rœ   Útest_asec_seriesL  s    :ÿÿ
ÿÿrt  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_   rb   r`   r   rp   rf   rd   r±   re   rÌ   rc   ra   rs   rg   rr   ru   c                   S   s   t tƒ d¡S r·   )r$   r˜   r¸   r›   r›   r›   rœ   r¹   w  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%   rF   r>   r›   r›   r›   rœ   Ú	test_acscU  s>    &*.*,(4: *,ÿ
F&ru  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‚t tƒ t¡tdƒttt ƒttjtƒ  k�sðt‚t tƒ t¡ td¡t dƒk�st‚d S )Nrb   r_   Fr}   r`   r   )r+   r˜   r¨   rÞ   rˆ   r!   r   r
   r-   r/   r*   r)   r   r,   r0   r   rŠ   r�   r›   r›   r›   rœ   Útest_csc_rewritez  s"    466,*""ÿÿÿ
4rv  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_   rb   r  r`   rp   r  rq  )	r$   r˜   rÖ   rˆ   r   r
   r   r   r!   r›   r›   r›   rœ   Útest_acsc_leading_term�  s     6<&..,Prw  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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¦   rb   rd   rp   rZ  rc   re   rd  rs  rs   r=  )	r$   r˜   r8   r
   r   r   r7   rˆ   rî   )Zt6r›   r›   rœ   Útest_acsc_seriesž  s    0ÿÿÿ
ÿÿrx  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 )Nrb   rd   rp   r¦   rÊ   r_   ru   rc   re  r`   re   r£   )
r&   r˜   Ú_eval_nseriesr
   r   r!   r7   rˆ   r   r   r›   r›   r›   rœ   Útest_asin_nseries§  s€    "ÿÿÿ
ÿ
ÿÿÿ
ÿ
ÿÿÿ
ÿ"ÿÿÿ
ÿ,ÿ ÿ
ÿ,ÿÿ
ÿ,ÿÿ
ÿ0ÿÿ
ÿrz  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 )Nrb   rd   rp   r¦   rÊ   ra   r_   ru   rc   re  r`   re   r£   )
r"   r˜   ry  r
   r!   r7   rˆ   r   r   r   r›   r›   r›   rœ   Útest_acos_nseries»  st    2ÿÿ
ÿ
2ÿÿ
ÿ
0ÿÿ
ÿ(ÿÿÿ
ÿ$ÿ ÿ
ÿ&ÿÿ
ÿ$ÿÿ
ÿ*ÿÿ
ÿr{  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 )Nrb   rd   r_   rp   r¦   rÌ   éQ   r`   é   é0   )	r'   r˜   r
   ry  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_   rb   rd   rp   rs   r¦   r  r|  r`   r}  r~  )
r#   r˜   r   r
   ry  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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�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_   rb   rd   rp   rs   r¦   r}  rc   ru   é+   re  r`   re   r£   )
r%   r˜   r   ry  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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 ƒ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   ry  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 )NrO   TrJ   )r   r-   Zis_irrationalrˆ   r)   r/   ©rO   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 )NrO   T)rK   rN   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, yrb   rd   re   rf   rp   c                      s   t ˆ d ƒ ˆ ¡S r·   )r-   Úperiodr›   rk  r›   rœ   r¹   6  rº   z"test_trig_period.<locals>.<lambda>)r   r-   rˆ  r   rˆ   r)   r/   r*   r,   r+   r   r•   r   r‰   rF   ÚNotImplementedError)r™   r›   rk  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 r4  )r-   r˜   r¨   r!   rˆ   rÞ   r›   r›   r›   rœ   Útest_issue_71719  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, kTrH   r_   rb   r   )r   rB   rA   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]   FTro  )r   r-   r�   rˆ   r)   r/   r,   r+   r*   r&   rL   rO   r%   r"   r$   r'   r  r  r#   rm  r›   r›   rœ   Útest_real_assumptionsD  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r�t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�r�t d d
t d   k �rrtd k �r�n 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 )Nrb   ra   r   rŸ   éúÿÿÿr¡   iâÿÿÿrg   rq   rr   rž   ru   iôÿÿÿri   rÍ   iíÿÿÿrÌ   r½   rw   rd   ióÿÿÿr¦   rÏ   r±   rv   )r&   r-   r   rˆ   r)   r"   r'   r/   r*   r   r#   r%   r,   r+   r$   r›   r›   r›   rœ   Útest_issue_14320Y  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 )Nrb   r½   rq   r˜   rp   )r,   r   rˆ   r+   r   r   rk  r›   r›   rœ   Útest_issue_14543k  s"    && $r’  c                  C   s0   t ttttdƒ   ƒ} |  ¡ | dfks,t‚d S )Nr_   r   )r'   r
   r/   rR  rˆ   )r@  r›   r›   rœ   Útest_as_real_imag‚  s    r“  c                  C   s*   t tjtd d  ƒ} |  ¡ dks&t‚d S )Nrd   g      Ð?rs   )r)   r   rµ   r˜   rˆ  rˆ   )Ze3r›   r›   rœ   Útest_issue_18746Š  s    r”  c                   C   sx   t ttd ƒttƒtd ks t‚t ttd d ƒttƒtd ksDt‚t ttdt ƒtdt ƒ ƒttƒtd kstt‚d S )Nrb   r_   )r6   r'   r˜   r   r   rˆ   r   r›   r›   r›   rœ   Útest_issue_25833�  s     $r•  c                   C   s  t ttƒt ƒ t¡td ks"t‚ttdd„ ƒ tttƒt ƒ t¡td ksRt‚ttdd„ ƒ t	ttƒt ƒ t¡dks~t‚ttdd„ ƒ t
ttƒt ƒ t¡td ks®t‚ttdd„ ƒ tttƒt ƒ t¡dksÚt‚ttd	d„ ƒ tttƒt ƒ t¡td k�st‚ttd
d„ ƒ d S )Nrd   c                   S   s   t tdt ƒƒ t¡S rB  )r'   r   r˜   rÖ   r›   r›   r›   rœ   r¹   ˜  rº   z"test_issue_25847.<locals>.<lambda>rb   c                   S   s   t tdt ƒƒ t¡S rB  )r&   r   r˜   rÖ   r›   r›   r›   rœ   r¹   œ  rº   r   c                   S   s   t tdt ƒƒ t¡S rB  )r"   r   r˜   rÖ   r›   r›   r›   rœ   r¹      rº   c                   S   s   t tdt ƒƒ t¡S rB  )r#   r   r˜   rÖ   r›   r›   r›   rœ   r¹   ¤  rº   c                   S   s   t tdt ƒƒ t¡S rB  )r%   r   r˜   rÖ   r›   r›   r›   rœ   r¹   ¨  rº   c                   S   s   t tdt ƒƒ t¡S rB  )r$   r   r˜   rÖ   r›   r›   r›   rœ   r¹   ¬  rº   )r'   r-   r˜   rÖ   r   rˆ   rF   r?   r&   r"   r#   r%   r$   r›   r›   r›   rœ   Útest_issue_25847•  s    """$r–  c                   C   s°  t tt ƒ tt¡ddtd   dt td   ddtd    ttd   dt  td  ttd ttfƒ ksvt‚t tt ƒ tt ¡ddtd   dt td   ddtd    ttd   dt  td  ttd tt fƒ ksðt‚t tt ƒ tt¡ddtd   dt td   ddtd    ttd   dt  td  ttd ttfƒ k�sht‚t tt ƒ tt ¡ddtd   dt td   ddtd    ttd   dt  td  ttd tt fƒ k�sät‚ttt ƒ tt¡ddtd   dt td   ddtd    ttd   dt  ttd ttfƒ k�sTt‚ttt ƒ tt ¡ddtd   dt td   ddtd    ttd   dt  ttd tt fƒ k�sÈt‚ttt ƒ tt¡ddtd   dt td   ddtd    ttd   dt  ttd ttfƒ k�s8t‚ttt ƒ tt ¡ddtd   dt td   ddtd    ttd   dt  ttd tt fƒ k�s¬t‚d S )	NrË   rc   rb   rd   rp   r_   r�  r}  )	r'   r˜   r
   r8   r   r   r7   rˆ   r#   r›   r›   r›   rœ   Útest_issue_23843®  s    vzx|ptp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>   r?   Zsympy.core.relationalr@   rA   Z$sympy.functions.elementary.piecewiserB   Zsympy.sets.setexprrC   Zsympy.testing.pytestrD   rE   rF   r˜   r™   r]   rG   r‹   rŽ   rL   rO   r  r  rT   rV   rW   r  r  rX   rY   r[   r�   r¥   r§   r©   r¯   r´   r¶   r»   r¼   r¾   rÂ   rÄ   rÆ   rÇ   rÈ   rÉ   rØ   rÙ   rÜ   rß   rà   rä   rå   ræ   rè   rê   rì   rï   rò   ró   rô   rõ   rö   r÷   r   r  r  r
  r  r  r  r  r  r  r  r  r  r  r  r%  r/  r0  r1  r2  r3  r6  r7  r:  r;  r<  rA  rC  rD  rE  rK  rM  rP  rS  rT  r_  r`  rb  rg  rh  ri  rl  rn  rp  rr  rt  ru  rv  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œ   Ú<module>   s4  ($@

%i"h
	[

41	,7I
m

O

?A 
	%	
