o
    *Î®c‡N ã                   @   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…d_d`„ Z†dadb„ Z‡dcdd„ Zˆdedf„ Z‰dgdh„ ZŠdidj„ Z‹e^dkdl„ ƒZŒdmdn„ Zdodp„ ZŽdqdr„ Zdsdt„ 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´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í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©ÚnonnegativeÚnz)ÚnonzeroÚep)Úextended_positiveÚen)Úextended_negative)Úextended_nonpositive)Úextended_nonnegativeÚenz)Úextended_nonzeroÚa)Ú	algebraicÚna)rU   r_   c            	      C   s$  t dƒ\} }t ddd}tjtdƒksJ ‚ttƒtu sJ ‚ttƒtu s%J ‚ttƒtddƒks0J ‚ttƒttƒ tddƒks?J ‚ttt ƒtt ksKJ ‚tt t ƒt t ksYJ ‚d	ttƒ t	j
u sdJ ‚d	ttƒ t	j
u soJ ‚d	ttƒ tddƒks|J ‚d
ttƒ tddƒks‰J ‚td	ƒd	ks‘J ‚t|t ƒtt|ƒ ksŸJ ‚tt| ƒƒ| ks©J ‚tt| ƒƒ| td| d  ƒ ks»J ‚tt| ƒƒtd| d  ƒksËJ ‚tt| ƒƒdtdd| d   ƒ|   ksáJ ‚tt| ƒƒd|  ksíJ ‚tt| ƒƒtdd| d   ƒksÿJ ‚tt|| ƒƒ|t| d |d  ƒ ksJ ‚ttt ƒttƒt ks$J ‚tt t ƒttƒ t ks5J ‚tdt ƒtdƒ t ksEJ ‚ttƒd	ksNJ ‚tt ƒd	ksXJ ‚tdt ƒd	kscJ ‚tdt ƒd	ksnJ ‚tddd  t ƒd	ks}J ‚tddd  t ƒd	ksŒJ ‚ttd ƒdks—J ‚tt d ƒdks£J ‚tttd
dƒ ƒdks±J ‚tttddƒ ƒdks¿J ‚t dddd}t ddd}tt| d ƒd|d t	j  ksàJ ‚ttt d ƒjtksîJ ‚tt| d ƒd	ksûJ ‚ttt ƒd	ksJ ‚ttt ƒ td¡ttt d ƒ td¡ksJ ‚ttd ƒt	jtdƒ ks/J ‚tttddƒ ƒtddƒtdƒ ksDJ ‚ttd ƒt	jtdƒ ksTJ ‚tt d ƒtddƒtdƒ ksgJ ‚tttddƒ ƒt	jtdƒ kszJ ‚tttddƒ ƒtddƒtdƒ ksJ ‚ttd ƒt	jks›J ‚tt d ƒtddƒksªJ ‚tttddƒ ƒtddƒks»J ‚tttddƒ ƒtddƒksÌJ ‚tttdd
ƒ ƒtd
td
ƒ d ƒksâJ ‚tttdd
ƒ ƒtd
td
ƒ d ƒksøJ ‚tttdd
ƒ ƒtttdd
ƒ ƒksJ ‚tttdd
ƒ ƒtttdd
ƒ ƒks"J ‚tttdd
ƒ ƒtttdd
ƒ ƒ ks8J ‚tttdd
ƒ ƒtttdd
ƒ ƒ ksNJ ‚tttdd
ƒ ƒtttdd
ƒ ƒ ksdJ ‚ttd ƒtdtdƒ d ƒkswJ ‚ttd ƒtddƒtd
ƒd  ks‹J ‚ttd ƒtdƒ d tdƒd  ks¡J ‚tttd
dƒ ƒtdƒd tdƒd  ks¹J ‚tttddƒ ƒtdƒ d tdƒd  ksÒJ ‚tttddƒ ƒtdƒd tdƒd  ksêJ ‚tttdd ƒ ƒttd  ƒksüJ ‚tttd!d ƒ ƒttd  ƒ ksJ ‚tttd"d ƒ ƒttd  ƒ ks"J ‚tttd#d ƒ ƒttd  ƒks4J ‚t| t ƒt| ƒt ksCJ ‚ttt ƒd	ksNJ ‚tdt t ƒd	ks[J ‚tdt t d ƒtdƒkslJ ‚tdt t tt  d ƒdtdt   tdƒ ks‰J ‚ttt t ƒttt ƒt ksœJ ‚ttƒjdu s¦J ‚td	dd$js°J ‚ttƒjd u sºJ ‚ttƒjdu sÄJ ‚t d%dd&}tt| ƒjsÔJ ‚t d'ddd(}t|ƒj!du såJ ‚t|ƒj!d u sïJ ‚t"tt#| ƒt$|ƒ ƒtƒdu sJ ‚t"tt#| ƒ t$|ƒ ƒtƒdu sJ ‚tt%t&d	dƒƒƒt%t't(| t| ƒƒt&d	dƒƒƒks/J ‚t)t*dd)ƒƒd*d+g D ]*}t*|d d ƒD ]}|t | } t+t,t| ƒƒtt,| ƒƒ ƒ}|d,k saJ ‚qDq:td	dd$j-du sqJ ‚ttt dd$j-du sJ ‚tt.dddd$dd$j-du sJ ‚d S )-Núx yÚzT©Ú	imaginaryé   éÿÿÿÿéþÿÿÿé   r   é   é   é   éýÿÿÿé
   éI   é   ég   ÚneF©rJ   ÚevenÚe©rs   é   é   éûÿÿÿé   éûÿÿé   éùÿÿÿéõÿÿÿéh   éi   éj   é˜ÿÿÿé–ÿÿÿ©ÚevaluateÚq©ÚrationalÚqn)r‡   rU   é   é<   éU   çê-™—q=)/r   r-   Únargsr:   r   r   r   r   r
   r   ÚZeror   r&   r'   r!   r"   r#   r$   r%   r(   r   r   ÚHalfÚkÚfuncÚsubsÚmrF   Úis_realÚis_algebraicr^   r`   r   Úis_rationalÚ
isinstancer   r   rB   r;   r9   r   ÚlistÚrangeÚabsÚfloatÚis_zeror   )	ÚxÚyrb   rq   rt   r…   rˆ   ÚdrN   © r    úZ/tmp/pip-target-vg8gfxp4/lib/python/sympy/functions/elementary/tests/test_trigonometric.pyÚtest_sin3   sÄ   $ ,$," (2 * &&*"",,**,,,&(,020$&&$":&$& ÿý&r¢   c                  C   sÖ   dD ]f} t d|  | d ƒD ]Z}|t |  }t|td  ƒt|ƒks)J d|| f ƒ‚t|td  ƒt|ƒ ks>J d|| f ƒ‚t|ƒt|td  ƒksRJ d|| f ƒ‚t|ƒ t|td  ƒksgJ d|| f ƒ‚qqd S )N)re   rh   rv   rj   ri   rk   rm   r{   é   é   é   é   é(   rŠ   éx   rg   rh   úfails for %d*pi/%d)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s%J ‚d S )	Nr   é	   rv   rk   ri   r¨   ro   i°  )r-   r   r8   r7   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sJ ‚t tƒ t¡dttd ƒ dttd ƒd   ks6J ‚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seJ ‚t ttƒƒ t¡ td¡ ¡ t tƒ t¡ ttdƒ¡ ¡ ks…J ‚t ttƒƒ t¡ td¡ ¡ t tƒ t¡ ttdƒ¡ ¡ ks¥J ‚t ttƒƒ t¡ td¡ ¡ t tƒ t¡ ttdƒ¡ ¡ ksÅJ ‚t ttƒƒ t¡ td¡ ¡ t tƒ t¡ ttdƒ¡ ¡ ksåJ ‚t t tƒƒ t¡ td¡ ¡ t tƒ t¡ tt dƒ¡ ¡ ksJ ‚t ttƒƒ t¡ td¡ ¡ t tƒ t¡ ttdƒ¡ ¡ ks'J ‚t ttƒƒ t¡ td¡ ¡ t tƒ t¡ ttdƒ¡ ¡ ksHJ ‚t ttƒƒ t¡ td¡ ¡ t tƒ t¡ ttdƒ¡ ¡ ksiJ ‚t ttƒƒ t¡ttt   d ttt  d  ks†J ‚t tƒ t¡dttƒ ks–J ‚t tƒ t¡tttd  ddksªJ ‚t tƒ t¡dtttd  dd ksÀJ ‚t ttƒƒ t¡t ttƒƒksÒJ ‚d S ©Nrh   re   r   Trv   Frƒ   )r-   r   Úrewriter   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Á   sh   66"&ÿÿÿ(ÿÿ(ÿÿ(ÿÿ(ÿÿ(
ÿÿ(
ÿÿ(
ÿÿ(
ÿ: (,(r¯   c                 C   sp   ddl m} t| |ƒsJ ‚|| |ƒƒ| |ƒksJ ‚|| t|dddƒƒ|ks(J ‚t| |ƒ| ƒ ¡ dk s6J ‚d S )Nr   )Úexpand_trigre   Frƒ   ç»½×Ùß|Û=)Úsympy.core.functionr°   r=   r   rš   rN   )ÚfÚirt   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sJ ‚t tt ƒjddt tƒttƒ ttƒt tƒ  ks8J ‚t tt ƒjddttƒt tƒ t tƒttƒ  ksTJ ‚t dt ƒjdddt tƒ ttƒ ksjJ ‚t dt ƒjdddt tƒd  dt tƒ  ks„J ‚t dt ƒjdddt tƒd  ttƒ dt tƒ ttƒ  ks¦J ‚tt ddt dƒ tdƒ ƒ tt ddt dƒd  dt dƒ  ƒ d S )	NT©Útrigrh   rv   éüÿÿÿrj   éøÿÿÿre   )r-   r   rž   Úexpandr)   rµ   r    r    r    r¡   Útest_sin_expansionè   s   888,4D(r»   c                   C   sz  t tt tƒƒtddƒksJ ‚t tdtƒƒtddƒksJ ‚t tt dƒƒtddƒks,J ‚t tddtj ƒƒtddƒks=J ‚t tdtjtddƒ ƒƒtddƒksQJ ‚t ttjtddƒ tjtddƒ ƒƒtdt tjtddƒ ƒƒkssJ ‚t ttjd tjd ƒƒtt tjd ƒt tjd ƒƒks‘J ‚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s»J ‚d S )
Nrf   re   r   rh   rv   rj   ro   ri   rk   )r-   r   r   r   ÚPir   r    r    r    r¡   Útest_sin_AccumBoundsõ   s   "(D<Xr½   c                   C   s*   t tƒ ¡ ttƒksJ ‚ttdd„ ƒ d S )Nc                   S   ó   t tƒ d¡S ©Nrh   )r-   r   Úfdiffr    r    r    r¡   Ú<lambda>  ó    z test_sin_fdiff.<locals>.<lambda>)r-   r   rÀ   r)   rE   r>   r    r    r    r¡   Útest_sin_fdiff   s   rÃ   c                   C   sþ  t t ƒt tƒ ksJ ‚tt ƒttƒksJ ‚tt ƒttƒ ks#J ‚tt ƒttƒ ks/J ‚t tt ƒt tƒ ks<J ‚t tdt  ƒt tƒksJJ ‚t tdt  ƒt tƒ ksYJ ‚t tdt  ƒt tƒksgJ ‚t tdt  ƒt tƒ ksvJ ‚ttt ƒttƒ ksƒJ ‚ttdt  ƒttƒks‘J ‚ttdt  ƒttƒ ks J ‚ttdt  ƒttƒks®J ‚ttdt  ƒttƒ ks½J ‚ttt ƒttƒksÉJ ‚ttdt  ƒttƒks×J ‚ttt ƒttƒksãJ ‚ttdt  ƒttƒksñJ ‚t td t ƒttƒksÿJ ‚t ttddƒ t ƒttƒ ksJ ‚t ttddƒ t ƒttƒks$J ‚ttd t ƒt tƒks3J ‚tttddƒ t ƒt tƒ ksFJ ‚tttddƒ t ƒt tƒksXJ ‚ttd t ƒttƒksgJ ‚tttddƒ t ƒttƒksyJ ‚tttddƒ t ƒttƒks‹J ‚ttd t ƒttƒksšJ ‚tttddƒ t ƒttƒks¬J ‚tttddƒ t ƒttƒks¾J ‚t td t ƒttƒksÍJ ‚ttd t ƒt tƒ ksÝJ ‚ttd t ƒttƒ ksíJ ‚ttd t ƒttƒ ksýJ ‚d S )Nrh   rv   rj   ri   )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J ‚ttƒtu sJ ‚ttƒtddƒks"J ‚ttƒttƒ tddƒks1J ‚ttt ƒtu s;J ‚tt t ƒtu sFJ ‚ttƒtu sNJ ‚tdƒdksVJ ‚tt	| ƒƒ| ks`J ‚tt
| ƒƒdtd| d  ƒ ksrJ ‚tt| ƒƒtd| d  ƒks‚J ‚tt| ƒƒdtdd| d   ƒ ks–J ‚tt| ƒƒtdd| d   ƒks¨J ‚tt| ƒƒd|  ks´J ‚tt|| ƒƒ| t| d |d  ƒ ksÉJ ‚ttt ƒttƒksÕJ ‚tt t ƒttƒksâJ ‚tdt ƒtdƒksîJ ‚ttd ƒdksøJ ‚tt d ƒdksJ ‚ttd ƒdksJ ‚tt d ƒdksJ ‚tddd	  d t d ƒdks.J ‚td
dd  d t d ƒdksAJ ‚t dddd}t ddd}tt| d ƒdks[J ‚tt| d ƒd|d  kslJ ‚ttƒdksuJ ‚tt ƒdksJ ‚tdt ƒdksŠJ ‚tdt ƒdks•J ‚tdt ƒdks J ‚ttd ƒtjks¬J ‚tttddƒ ƒtddƒks½J ‚ttd ƒtjtdƒ ksÍJ ‚tt d ƒtjtdƒ ksÞJ ‚tttddƒ ƒtddƒtdƒ ksóJ ‚tttddƒ ƒtddƒtdƒ ksJ ‚ttd ƒtjtdƒ ksJ ‚tt d ƒtjtdƒ ks)J ‚tttd
dƒ ƒtddƒtdƒ ks>J ‚tttddƒ ƒtddƒtdƒ ksSJ ‚tttddƒ ƒtdƒd d ksgJ ‚tttddƒ ƒtdƒd d ks{J ‚tttddƒ ƒtttddƒ ƒ ks‘J ‚tttddƒ ƒtttddƒ ƒ ks§J ‚tttddƒ ƒtttddƒ ƒ ks½J ‚tttddƒ ƒtttddƒ ƒksÒJ ‚tttddƒ ƒtttddƒ ƒ ksèJ ‚ttd ƒtdtdƒ d ƒksûJ ‚ttd ƒtdƒd tdƒd  ksJ ‚tttddƒ ƒtdƒ d tdƒd  ks)J ‚tttd
dƒ ƒtdƒd tdƒd  ksAJ ‚tttddƒ ƒtdƒ d tdƒd  ksZJ ‚tttddƒ ƒttd ƒ ksmJ ‚tttddƒ ƒttd ƒ ks€J ‚tttddƒ ƒttd ƒ ks“J ‚tttddƒ ƒttd ƒ ks¦J ‚t| t ƒt| ƒks³J ‚ttt t ƒttt ƒksÄJ ‚ttƒjdu sÎJ ‚tddd jsØJ ‚ttƒjd u sâJ ‚ttƒjdu sìJ ‚td!dd"}tt| ƒjsüJ ‚tttdd
ƒ ƒjs	J ‚ttt ƒdt ksJ ‚tdt t ƒdks#J ‚ttdd#ƒƒd$d%g D ]*}td| d ƒD ]}|t | } tt t| ƒƒtt | ƒƒ ƒ}|d&k sUJ ‚q8q.d S )'Nra   re   rf   rg   rh   r   rl   rm   rn   ro   rp   rN   TFrr   rt   ru   ri   ry   rv   rj   é   rk   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   rF   r”   r•   r^   r`   r   r˜   r™   rš   r›   )r   rž   rN   rt   r…   rŸ   r    r    r¡   Útest_cos*  sœ   $ ($*&&"" "** "**((,,,*,&*202&&&&"ýÿrÆ   c                  C   st   t ddƒ} ttttfD ],}|| t ƒ|td ƒksJ ‚|dt ƒ|td ƒks)J ‚|dt ƒ|dt ƒks7J ‚qd S )Nz!123456789012345678901234567890.25Ú rj   g     €@ry   gÍÌÌÌÌÌ@ghfffffæ?)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s+J ‚d S )Nr   r«   re   rh   rj   r¥   rk   éÐ  ry   i€  )r)   r   r8   r7   r    r    r    r¡   Útest_cos_series—  s   >ÿrÌ   c                	   C   s¬  t tƒ t¡ttt ƒd tt t ƒd  ksJ ‚t tƒ t¡dttd ƒd  dttd ƒd   ks7J ‚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sjJ ‚t ttƒƒ t¡ td¡ ¡ t tƒ t¡ ttdƒ¡ ¡ ksŠJ ‚t ttƒƒ t¡ td¡ ¡ t tƒ t¡ ttdƒ¡ ¡ ksªJ ‚t ttƒƒ t¡ td¡ ¡ t tƒ t¡ ttdƒ¡ ¡ ksÊJ ‚t ttƒƒ t¡ td¡ ¡ t tƒ t¡ ttdƒ¡ ¡ ksêJ ‚t ttƒƒ t¡ td¡ ¡ t tƒ t¡ ttdƒ¡ ¡ ksJ ‚t t tƒƒ t¡ td¡ ¡ t tƒ t¡ tt dƒ¡ ¡ ks,J ‚t ttƒƒ t¡ td¡ ¡ t tƒ t¡ ttdƒ¡ ¡ ksMJ ‚t ttƒƒ t¡ td¡ ¡ t tƒ t¡ ttdƒ¡ ¡ ksnJ ‚t ttƒƒ t¡tt d tt  d  ks‡J ‚t tƒ t¡dttƒ ks—J ‚t tƒ t¡tttd  ddks«J ‚t tƒ t¡dtt td  dd ksÂJ ‚t ttƒƒ t¡t ttƒƒksÔJ ‚d S 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œ  sh   4:&*ÿÿÿ(ÿÿ(ÿÿ(ÿÿ(ÿÿ(
ÿÿ(
ÿÿ(
ÿÿ(
ÿ2 (.(rÍ   c                   C   sˆ  t tt ƒjddt tƒt tƒ ttƒttƒ  ksJ ‚t tt ƒjddt tƒt tƒ ttƒttƒ  ks8J ‚t tt ƒjddt tƒt tƒ ttƒttƒ  ksTJ ‚t dt ƒjdddt tƒd  d ksjJ ‚t dt ƒjdddt tƒd  dt tƒ  ks„J ‚t dt ƒjdddt tƒd  dt tƒd   d ks¢J ‚tt ddt dƒd  d ƒ tt ddt dƒd  dt dƒ  ƒ d S )NTr¶   rh   re   rv   rj   ry   )r)   r   rž   rº   r-   rµ   r    r    r    r¡   Útest_cos_expansion¹  s   888,4<(rÎ   c                   C   sˆ  t tt tƒƒtddƒksJ ‚t tdtƒƒtddƒksJ ‚t tt dƒƒtddƒks,J ‚t tddtj ƒƒtddƒks=J ‚t ttj d tjd ƒƒtt tj d ƒdƒksXJ ‚t ttjtddƒ tjtddƒ ƒƒtdt tjtddƒ ƒƒkszJ ‚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s¤J ‚t ttjd tjd ƒƒtt tjd ƒt tjd ƒƒksÂJ ‚d S )Nrf   re   r   rh   rv   rj   ri   )r)   r   r   r   r¼   r   r    r    r    r¡   Útest_cos_AccumBoundsÄ  s   "6DT@rÏ   c                   C   s,   t tƒ ¡ ttƒ ksJ ‚ttdd„ ƒ d S )Nc                   S   r¾   r¿   )r)   r   rÀ   r    r    r    r¡   rÁ   Ñ  rÂ   z test_cos_fdiff.<locals>.<lambda>)r)   r   rÀ   r-   rE   r>   r    r    r    r¡   Útest_cos_fdiffÏ  s   rÐ   c                  C   s
  t tƒtu sJ ‚t tƒtu sJ ‚t tƒtt tƒksJ ‚t tƒt tƒ tt tƒks,J ‚t jtdƒks5J ‚t tt ƒtks?J ‚t t t ƒt ksKJ ‚t dƒdksSJ ‚t tt	ƒƒt	ks]J ‚t t
t	ƒƒt	tdt	d  ƒ ksoJ ‚t tt	ƒƒtdt	d  ƒt	 ksJ ‚t tt	ƒƒdt	 ksJ ‚t tt	ƒƒdtddt	d   ƒt	  ks£J ‚t tt	ƒƒtddt	d   ƒt	 ks·J ‚t ttt	ƒƒtt	 ksÄJ ‚t tt ƒttƒt ksÒJ ‚t t t ƒttƒ t ksâJ ‚t dt ƒtdƒ t ksñJ ‚t tƒdksùJ ‚t t ƒdksJ ‚t dt ƒdksJ ‚t dt ƒdksJ ‚t ddd  t ƒdks(J ‚t td ƒtu s3J ‚t ttddƒ ƒtu sAJ ‚t td ƒtdƒksNJ ‚t ttddƒ ƒtdƒks^J ‚t td	 ƒtju sjJ ‚t t d	 ƒtju swJ ‚t ttd
d	ƒ ƒtju s†J ‚t ttdd	ƒ ƒtju s•J ‚t td ƒtddtdƒ  ƒks¨J ‚t ttddƒ ƒtddtdƒ  ƒks¾J ‚t ttddƒ ƒtddtdƒ  ƒ ksÕJ ‚t ttddƒ ƒtddtdƒ  ƒ ksìJ ‚t td ƒdtdƒ ksûJ ‚t t d ƒdtdƒ ksJ ‚t ttddƒ ƒdtdƒ ksJ ‚t ttddƒ ƒdtdƒ ks/J ‚t td ƒdtdƒ ks>J ‚t ttddƒ ƒdtdƒ ksPJ ‚t ttddƒ ƒdtdƒ ksbJ ‚t ttddƒ ƒdtdƒ kstJ ‚t td ƒtddtdƒ d  ƒks‰J ‚t ttddƒ ƒtddtdƒ d  ƒks¡J ‚t ttd
dƒ ƒtddtdƒ d  ƒ ksºJ ‚t ttddƒ ƒtddtdƒ d  ƒ ksÓJ ‚t td ƒtdƒ d ksãJ ‚t ttddƒ ƒtdƒd ksõJ ‚t ttddƒ ƒtdƒ d ksJ ‚t ttddƒ ƒtdƒd ksJ ‚t td ƒ ¡ dtdƒ tdƒ tdƒ ks3J ‚t ttddƒ ƒ ¡ dtdƒ tdƒ tdƒ ksOJ ‚t ttddƒ ƒ ¡ dtdƒ tdƒ tdƒ kskJ ‚t ttddƒ ƒ ¡ dtdƒ tdƒ tdƒ ks‡J ‚t ttddƒ ƒ ¡ dtdƒ tdƒ tdƒ ks£J ‚t ttd
dƒ ƒ ¡ dtdƒ tdƒ tdƒ ks¿J ‚t ttddƒ ƒ ¡ dtdƒ tdƒ tdƒ ksÛJ ‚t ttddƒ ƒ ¡ dtdƒ tdƒ tdƒ ks÷J ‚t t	t ƒtt	ƒt ksJ ‚t tt ƒdksJ ‚t d
t t ƒdksJ ‚t tt t ƒttt ƒt ks1J ‚t tƒjd u s;J ‚t tƒjdu sEJ ‚t dddjsOJ ‚t tƒjd u sYJ ‚t tƒjdu scJ ‚t ttddƒ ƒt ttddƒ ƒksxJ ‚t ttddƒ ƒt ttddƒ ƒ ksŽJ ‚t ttddƒ ƒt ttddƒ ƒks£J ‚t ttddƒ ƒt td ƒksµJ ‚t ttd dƒ ƒt td ƒ ksÈJ ‚t tƒj d u sÒJ ‚t tt ƒj du sÞJ ‚t tt	tdƒd   ƒdt	  } |  !t	¡ddt t	d   ks J ‚d S )!Nre   r   rh   rg   rl   rm   rn   rv   rj   rw   ri   é   iðÿÿÿrk   rf   ro   rx   ry   iáÿÿÿr{   rÅ   r¥   é   é   é   TFrƒ   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•   r^   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s)J ‚d S )
Nr   r«   rv   rh   ri   r£   rw   ro   i;  )r/   r   r8   r7   r    r    r    r¡   Útest_tan_series<  s   :ÿrß   c                  C   sœ  t t t ƒt tt ƒ} }ttƒ t ¡t| |  | |  ks!J ‚ttƒ t¡dttƒd  tdt ƒ ks8J ‚ttƒ t¡tttjd  ddttƒ ksPJ ‚ttƒ t	¡dt	tƒ ks_J ‚tt
tƒƒ t ¡ td¡ ¡ ttƒ t ¡ tt
dƒ¡ ¡ ksJ ‚tttƒƒ t ¡ td¡ ¡ ttƒ t ¡ ttdƒ¡ ¡ ksŸJ ‚tttƒƒ t ¡ td¡ ¡ ttƒ t ¡ ttdƒ¡ ¡ ks¿J ‚tttƒƒ t ¡ td¡ ¡ ttƒ t ¡ ttdƒ¡ ¡ ksßJ ‚tttƒƒ t ¡ td¡ ¡ ttƒ t ¡ ttdƒ¡ ¡ ksÿJ ‚tttƒƒ t ¡ td¡ ¡ ttƒ t ¡ ttdƒ¡ ¡ ks J ‚tttƒƒ t ¡ td¡ ¡ ttƒ t ¡ ttdƒ¡ ¡ ksAJ ‚tt	tƒƒ t ¡ td¡ ¡ ttƒ t ¡ tt	dƒ¡ ¡ ksbJ ‚tttƒƒ t¡ttt  tt   tt  tt   ks‚J ‚dttd ƒttd ƒ ttd ƒ  t¡ksœJ ‚dttd ƒttd ƒ ttd ƒ  t¡ks¶J ‚ttd	 ƒ t¡ttd	 ƒksÈJ ‚tttd
d	ƒ ƒ t¡tttd
d	ƒ ƒksàJ ‚ttƒ t¡ttƒtttd  dd ksøJ ‚ttƒ t¡tt td  ddttƒ ksJ ‚tttƒƒ t¡tttƒƒks#J ‚tttddƒ dd t¡ttdƒd
 tdd
ƒ ƒtddƒtdƒd   ksLJ ‚d S )Nrh   Frƒ   re   rv   r   é"   rw   rÓ   ry   ri   rf   rj   )r   r   r
   r/   r®   r-   r)   r   r¼   r*   r   r’   rN   r   r    r   r   r   r   Úpowr   r!   r,   r+   )Úneg_expÚpos_expr    r    r¡   Útest_tan_rewriteA  st   &.0ÿ(ÿÿ(ÿÿ(ÿÿ(ÿÿ(ÿÿ(
ÿÿ(
ÿÿ(
ÿ@44$002$&ÿÿrä   c                   C   s~   t tƒ t tƒt¡tksJ ‚t tƒ tt¡t tƒksJ ‚t tƒ ttjd ¡tu s+J ‚t tƒ ttjtddƒ ¡tu s=J ‚d S )Nrh   rv   )r/   r   r’   rž   r   r¼   r   r   r    r    r    r¡   Útest_tan_subsc  s   (rå   c                   C   s*  t tt ƒjddt tƒt tƒ dt tƒt tƒ    ¡ ks J ‚t tt ƒjddt tƒt tƒ dt tƒt tƒ    ¡ ks@J ‚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‚J ‚dt dt ƒjdd t ¡ t tƒtddƒfg¡d d ks¢J ‚dt dt ƒjdd t ¡ t tƒtdd	ƒfg¡d
 d ksÂJ ‚dt dt td  ƒjdd t ¡ t tƒtdd	ƒfg¡d d ksæJ ‚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¶   re   r   rh   ro   r¥   rv   ri   é7   é%   rj   éï   )
r/   r   rž   rº   rb   r®   r’   r   r   rµ   r    r    r    r¡   Útest_tan_expansionj  s   @@.2ÿþ@@H$:ré   c                   C   s   t tt tƒƒtt tƒksJ ‚t ttjd tjtddƒ ƒƒtt tƒks(J ‚t ttjd tjd ƒƒtt tjd ƒt tjd ƒƒksFJ ‚d S )Nrv   rh   rk   )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J ‚ttdd„ ƒ d S )Nrh   re   c                   S   r¾   r¿   )r/   r   rÀ   r    r    r    r¡   rÁ     rÂ   z test_tan_fdiff.<locals>.<lambda>)r/   r   rÀ   rE   r>   r    r    r    r¡   Útest_tan_fdiff}  ó    rë   c                  C   sž  t tƒtu sJ ‚t jtdƒksJ ‚t tt ƒt ksJ ‚t t t ƒtks'J ‚t tƒtu s/J ‚t dƒtu s7J ‚t dt ƒtu sAJ ‚t tt	ƒƒt	ksKJ ‚t t
t	ƒƒdt	 ksWJ ‚t tt	ƒƒtdt	d  ƒt	 ksiJ ‚t tt	ƒƒt	tdt	d  ƒ ks{J ‚t tt	ƒƒtddt	d   ƒt	 ksJ ‚t tt	ƒƒdtddt	d   ƒt	  ks¥J ‚t ttt	ƒƒt	t ks²J ‚t tt ƒttƒ t ksÁJ ‚t t t ƒttƒt ksÐJ ‚t dt ƒtdƒt ksÞJ ‚t tƒt dt ƒ  krót dt ƒksöJ ‚ J ‚t t ƒt dt ƒ  krt dt ƒksJ ‚ J ‚t td ƒdksJ ‚t t d ƒdks(J ‚t ttddƒ ƒdks6J ‚t ttddƒ ƒdksDJ ‚t td ƒdtdƒ ksSJ ‚t ttddƒ ƒdtdƒ kseJ ‚t td	 ƒtju sqJ ‚t t d	 ƒtju s~J ‚t ttd
d	ƒ ƒtju sJ ‚t ttdd	ƒ ƒtju sœJ ‚t td ƒtdƒks©J ‚t t d ƒtdƒ ks¸J ‚t ttddƒ ƒtdƒksÈJ ‚t ttddƒ ƒtdƒksØJ ‚t td ƒdtdƒ ksçJ ‚t ttddƒ ƒdtdƒ ksùJ ‚t ttddƒ ƒdtdƒ ksJ ‚t ttddƒ ƒdtdƒ ksJ ‚t td ƒtdƒd ks,J ‚t ttddƒ ƒtdƒ d ks?J ‚t ttddƒ ƒtdƒd ksQJ ‚t ttddƒ ƒtdƒ d ksdJ ‚t td ƒ ¡ tdƒtdƒ d tdƒ ks}J ‚t ttddƒ ƒ ¡ tdƒ tdƒ d tdƒ ksšJ ‚t ttddƒ ƒ ¡ tdƒ tdƒ d tdƒ ks·J ‚t ttddƒ ƒ ¡ tdƒtdƒ d tdƒ ksÓJ ‚t ttddƒ ƒ ¡ tdƒ tdƒ d tdƒ ksðJ ‚t ttd
dƒ ƒ ¡ tdƒtdƒ d tdƒ ksJ ‚t ttddƒ ƒ ¡ tdƒtdƒ d tdƒ ks(J ‚t ttddƒ ƒ ¡ tdƒ tdƒ d tdƒ ksEJ ‚t t	t ƒtt	ƒ t ksUJ ‚t tt t ƒttt ƒ t ksiJ ‚t tƒjd u ssJ ‚t tƒjdu s}J ‚t tƒjd u s‡J ‚t tƒjdu s‘J ‚t ttddƒ ƒt ttddƒ ƒks¦J ‚t ttddƒ ƒt ttddƒ ƒ ks¼J ‚t ttddƒ ƒt ttddƒ ƒksÑJ ‚t ttddƒ ƒt ttddƒ ƒksæJ ‚t ttddƒ ƒt ttddƒ ƒ ksüJ ‚t t	ƒjd u sJ ‚t tƒjd u sJ ‚t ddd} t | ƒjdu s J ‚t t	ƒ !t	dt ¡tu s/J ‚t tt	d	  ƒdt	  }| "t	¡ddt t	d   ksMJ ‚d S )Nre   r   rh   rg   rv   rl   ri   ro   rj   rw   rk   rx   ry   rf   r{   rÅ   r¥   rÒ   rÓ   rÔ   TFrm   r}   é'   rà   i×ÿÿÿr´   rc   )#r*   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Ú   r^   r•   r`   rÛ   r   r’   rÜ   )r´   r³   r    r    r¡   Útest_cot‚  s†   $$(,06$  $$$&$&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 s%J ‚t tttddƒ ƒtttddƒ ƒ tttddƒ ƒ d  ¡ ƒdk sJJ ‚d S )Nry   r£   re   g›+¡†›„=rj   )rš   r/   r   r   r)   r-   Úevalfr*   r    r    r    r¡   Útest_tan_cot_sin_cos_evalfÝ  s   JNrð   c                   C   sˆ   dt ttddƒ ƒtttddƒ ƒ tttddƒ ƒ  ¡ ks!J ‚dtttddƒ ƒtttddƒ ƒ tttddƒ ƒ  ¡ ksBJ ‚d S )Nre   ry   r£   rj   )r/   r   r   r)   r-   Úratsimpr*   r    r    r    r¡   Útest_tan_cot_sin_cos_ratsimpá  s   BFrò   c                   C   sJ  t tƒ tdd¡dt td  td d  dtd  d  td	 d
  ttd ƒ ks-J ‚t td td  ƒ tdd¡td dtd   td  dt  d ttƒ ksVJ ‚t tdt  ƒ tdd¡dtt  tt d  ttd ƒ kswJ ‚t tƒ dt¡dt ks…J ‚t tƒ dt¡tju s’J ‚t tƒ dt¡td  d ks£J ‚d S )Nr   r«   re   rv   é-   rh   ri   i±  ro   iu  rj   r¸   rg   rf   )r*   r   r8   r7   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s!J ‚ttƒ t¡tdt ƒdttƒd   ks8J ‚ttƒ t¡ttƒtttd  dd ksOJ ‚ttƒ t¡dttƒ ks^J ‚dd„ }|t	ƒ |t
ƒ |tƒ |tƒ |tƒ |tƒ |tƒ tttƒƒ t¡t tt  tt   tt  tt   ksžJ ‚tttddƒ ƒ t¡ ¡ tttddƒ ƒtttddƒ ƒ  t¡ ¡ ksÅJ ‚tttdd	ƒ ƒ t¡tttdd	ƒ ƒtttdd	ƒ ƒ  t¡ksèJ ‚ttd
 ƒ t¡ttd
 ƒksùJ ‚ttd
 ƒ t¡ttd
 ƒksJ ‚ttƒ t¡tttd  ddttƒ ks#J ‚ttƒ t¡ttƒtt td  dd ks<J ‚tttƒƒ t¡tttƒƒksNJ ‚tttddƒ dd t¡tddƒtdƒd  ttdƒd tddƒ ƒ kswJ ‚d S )Nrh   Frƒ   re   c                 S   sF   t | tƒƒ t¡t tƒ t¡ t| tƒ¡ }| t¡ ¡ dks!J ‚d S ©Nr   )r*   r   r®   r   r’   rº   )r‘   rb   r    r    r¡   Úcheckù  s   ÿztest_cot_rewrite.<locals>.checkrj   rà   rw   rÓ   ri   rf   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¡   Útest_cot_rewriteó  s0   &..@NF"$02$.ÿrø   c                   C   sn   t tƒ t tƒt¡tksJ ‚t tƒ tt¡t tƒksJ ‚t tƒ td¡tu s(J ‚t tƒ ttj¡tu s5J ‚d S 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 J ‚t tt ƒjdd ¡ t tƒt t ƒ d t tƒt t ƒ  ksBJ ‚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„J ‚t dt ƒjdd ¡ t tƒd d t tƒ dt tƒd  d  ks¨J ‚t dt ƒjddt tƒd ddt tƒ   ksÂJ ‚t dt ƒjdd ¡ t tƒd d t tƒ dt tƒd  d  ksæJ ‚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s6J ‚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¶   re   rf   rv   rh   rj   rk   rl   )
r*   r   rž   rº   Útogetherrb   r   r4   r/   rµ   r    r    r    r¡   Útest_cot_expansion  s4   "ÿ$
ÿ.2ÿÿ*ÿ4ÿ
ÿ<:þ$8rû   c                   C   sŒ   t tt tƒƒtt tƒksJ ‚t ttj d tjd ƒƒtt tƒks&J ‚t ttjd tjd ƒƒtt tjd ƒt tjd ƒƒksDJ ‚d S )Nrv   rk   )r*   r   r   r   r¼   r    r    r    r¡   Útest_cot_AccumBounds+  s    ,@rü   c                   C   s4   t tƒ ¡ t tƒd  d ksJ ‚ttdd„ ƒ d S )Nrh   re   c                   S   r¾   r¿   )r*   r   rÀ   r    r    r    r¡   rÁ   3  rÂ   z test_cot_fdiff.<locals>.<lambda>)r*   r   rÀ   rE   r>   r    r    r    r¡   Útest_cot_fdiff1  s   "rý   c                  C   sÐ  t ttƒtƒs	J ‚tddd} t| ƒtju sJ ‚ttjƒtju s"J ‚ttjƒtju s,J ‚ttj	ƒtj	u s6J ‚ttj
ƒtj	u s@J ‚tdddd}t|t ƒtju sRJ ‚t| t ƒtju s^J ‚ttd ƒdt ksjJ ‚tt d ƒdt kswJ ‚tttddƒ ƒddt  ksˆJ ‚tttddƒ ƒd	dt  ks™J ‚tt ƒttƒks¤J ‚ttƒ t¡ttƒt ttƒtd   ks»J ‚ttƒ t¡ttƒt  t¡ksÍJ ‚ttƒ tt¡ttƒ dttƒ t  dttƒ td   t ksðJ ‚ttƒ tt¡ttƒt  tt¡ksJ ‚tttƒ t¡td
ƒd
ksJ ‚tttƒ tt¡td
ƒtdƒ d ks+J ‚ttƒ ¡ dtd d  td d  ttd ƒ ksHJ ‚ttƒ t¡td
tƒksWJ ‚ttƒ t¡tttƒt ttd
ƒfdƒksoJ ‚ttddjdu s{J ‚td
ddjdu s‡J ‚t|t ddjdu s•J ‚ttƒjd u sŸJ ‚tdddd}ttƒjd u s°J ‚t|ƒjdu sºJ ‚tt| ƒjdu sÆJ ‚ttd ƒjdu sÒJ ‚ttƒjd u sÜJ ‚t|ƒjdu sæJ ‚d S )NÚsT©ÚzerorN   )rJ   rU   rh   ri   ro   rg   r   re   rv   rk   rj   r¨   )re   TFrƒ   Úxr)rH   rU   éd   )r—   r.   r   r   r   r×   ÚInfinityrŽ   ÚNegativeInfinityÚNaNÚComplexInfinityr   r   r   r)   r-   r6   r8   r7   r®   r1   rA   r?   rœ   r”   r
   rÛ   )rþ   rN   r  r    r    r¡   Ú	test_sinc6  sF   "".$F* ,:
0r  c                  C   s  t tƒtu sJ ‚t jtdƒksJ ‚t tƒt t ksJ ‚t t ƒtt ks'J ‚t tƒtu s/J ‚t dƒdks7J ‚t dƒtd ksAJ ‚t dƒt d ksLJ ‚t tdƒd ƒtd ksZJ ‚t tdƒ d ƒt d ksjJ ‚t tdƒd ƒtd ksxJ ‚t tdƒ d ƒt d ksˆJ ‚t tdtdƒ d ƒƒtd ksšJ ‚t tdtdƒ d ƒ ƒt d ks®J ‚t t	j
ƒtd	 ks¹J ‚t tddƒƒt d	 ksÇJ ‚t tdtdƒ ƒd ƒtd ksÙJ ‚t tdtdƒ ƒ d ƒt d ksíJ ‚t tdƒd d ƒtd
 ksýJ ‚t tdƒd  d ƒt d
 ksJ ‚t tdƒd tdƒ ƒtd ks#J ‚t tdƒd  tdƒ ƒt d ks8J ‚dD ].} t| d  | d d ƒD ]}t|| ƒdkret t|t |  ƒƒ|t |  kseJ ‚qHq:t tƒ t¡dtdtd  ƒ ks}J ‚t dddjdu s‰J ‚t dƒjdu s“J ‚t tƒjd u sJ ‚t dt ƒt tdƒ ks­J ‚t tddƒddjdu s¼J ‚t tddƒddjdu sËJ ‚t tƒjd u sÕJ ‚t ttddƒƒƒtddƒt ksèJ ‚t ttddƒƒƒtddƒt ksûJ ‚tt ttƒƒsJ ‚d S )Nre   r   rh   rf   rv   rj   ri   ry   rk   rm   r{   ©ri   rk   ry   rm   r{   çš™™™™™É?Frƒ   Trg   ro   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_asinj  sN     $($( &&*&€þ( &&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s)J ‚t tƒ dt¡} | dtd  d ks=J ‚t tƒ dt| d¡dtd  d ksQJ ‚d S )	Nr   r«   rv   rk   ri   r§   ro   ép   )r&   r   r8   r7   rô   ©Út5r    r    r¡   Útest_asin_series›  s   :ÿ,r  c                   C   sÒ   t tƒ t¡tksJ ‚t td ƒ t¡td ksJ ‚t td ƒ t¡t d ks*J ‚t dt ƒjtddtttƒ td  ttdƒ  ksGJ ‚t dt ƒjtddt ttƒ dt d  ttdƒ  ksgJ ‚d S )Nre   rh   ©Úcdirrf   rv   )r&   r   rÜ   r   r
   r   r    r    r    r¡   Útest_asin_leading_term¢  s
    :Dr  c                	   C   s  t tƒ t¡t ttt tdtd  ƒ ƒ ksJ ‚t tƒ t¡dttdtdtd  ƒ  ƒ ks3J ‚t tƒ t¡tj	d ttƒ ksEJ ‚t tƒ t
¡dt
ttd  d ƒd t ƒ ks_J ‚t tƒ t¡tdt ƒ td  kssJ ‚t tƒ t¡tdt ƒks‚J ‚d S )Nre   rh   )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J ‚ttdd„ ƒ d S )Nre   rh   c                   S   r¾   r¿   )r&   r   rÀ   r    r    r    r¡   rÁ   µ  rÂ   z!test_asin_fdiff.<locals>.<lambda>)r&   r   rÀ   r!   rE   r>   r    r    r    r¡   Útest_asin_fdiff³  ó   $r  c                  C   s  t tƒtu sJ ‚t tƒtu sJ ‚t jtdƒksJ ‚t tƒtt ks#J ‚t t ƒt t ks/J ‚t dƒtd ks9J ‚t tj	ƒtd ksDJ ‚t t
ddƒƒtt
ddƒ ksTJ ‚t dƒdks\J ‚t dƒtksdJ ‚t tdƒd ƒtd ksrJ ‚t tdƒ d ƒtt
ddƒ ks„J ‚dD ]"} t| ƒD ]}t|| ƒdkr§t t|t |  ƒƒ|t |  ks§J ‚qŒq†t dt ƒtd tdt ƒ ks»J ‚t tƒ t¡dtdtd  ƒ ksÎJ ‚t dƒjd	u s×J ‚t d
ƒjdu sàJ ‚t tƒjd u séJ ‚t t
ddƒddjd	u s÷J ‚t t
ddƒddjd	u sJ ‚t t
ddƒddjdu sJ ‚t tƒjd u sJ ‚t dt ƒ ¡ t dt ƒks0J ‚t dt ƒ ¡ t dt ƒksAJ ‚t t
ddƒƒ ¡ t t
ddƒƒksTJ ‚t t
ddƒƒ ¡ t t
ddƒƒksgJ ‚t ttt  ƒ ¡ t ttt  ƒks|J ‚t tƒ ¡ t ttƒƒks‹J ‚d S )Nre   r   rh   rv   rf   rj   r  r	  Trg   Fro   rƒ   rm   rl   )r"   r   r   r   r:   r   r
   r   r   r   r   r!   r™   r5   r)   r&   r   r   r”   rF   r
  rK   r   rN   rb   )rŸ   Únumr    r    r¡   Ú	test_acos¸  sB    $$€þ$&""&&*"r  c                   C   sÎ   t tƒ t¡td ksJ ‚t td ƒ t¡tdƒtt ƒ ks!J ‚t td ƒ t¡tks.J ‚t dt ƒjtddt ttƒ ttdƒ  ksHJ ‚t dt ƒjtddtttƒ dt  ttdƒ  kseJ ‚d S )Nrh   re   r  rf   )r"   r   rÜ   r   r!   r
   r   r    r    r    r¡   Útest_acos_leading_termä  s
   (4>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s-J ‚t tƒ tdd¡td ttƒ tdd¡ ksEJ ‚t tƒ dt¡} | d
td  d ksYJ ‚t tƒ dt| d¡dtd  d	 ksmJ ‚t tƒ dt¡td ks{J ‚t tƒ dt¡tju sˆJ ‚d S )Nr   ry   rh   rv   rk   ri   r§   ro   r  rl   rx   )	r"   r   r8   r   r7   r&   rô   r   rŽ   r  r    r    r¡   Útest_acos_seriesì  s   Bÿ0(r  c                	   C   sh  t tƒ t¡td tttt tdtd  ƒ ƒ  ksJ ‚t tƒ t¡tt ttd ƒ d  d ttdtd  ƒt ƒ ksAJ ‚t dƒ t¡tj	d ksOJ ‚t dƒ t¡t dƒ t¡ks_J ‚t tƒ t
¡tj	d t
tƒ ksqJ ‚t tƒ t¡dtttd  d ƒd t ƒ td  ksJ ‚t tƒ t¡tdt ƒksžJ ‚t tƒ t¡tdt ƒ td  ks²J ‚d S )Nrh   re   rg   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J ‚ttdd„ ƒ d S )Nrf   re   rh   c                   S   r¾   r¿   )r"   r   rÀ   r    r    r    r¡   rÁ     rÂ   z!test_acos_fdiff.<locals>.<lambda>)r"   r   rÀ   r!   rE   r>   r    r    r    r¡   Útest_acos_fdiff  r  r  c                  C   sX  t tƒtu sJ ‚t jtdƒksJ ‚t tƒtd ksJ ‚t t ƒt d ks'J ‚t tƒtt d td ƒks7J ‚t dƒdks?J ‚t dƒtd ksIJ ‚t tdƒƒtd ksUJ ‚t dtdƒ  ƒtt	ddƒ ksgJ ‚t tddtdƒ  ƒƒtd ksyJ ‚t tddtdƒ d  ƒ ƒt d	 ksJ ‚t tddtdƒ d  ƒƒtt	dd	ƒ ks¦J ‚t d
tdƒ ƒt d ksµJ ‚t dtdƒ ƒtt	ddƒ ksÆJ ‚t d
tdƒ ƒtt	ddƒ ks×J ‚dD ],} t
| d  | d d ƒD ]}t|| ƒdkrt t|t |  ƒƒ|t |  ksJ ‚qçqÙt tƒtd ksJ ‚t tƒ t¡ddtd   ks#J ‚t tƒjdu s-J ‚t d
t ƒt tdƒ ks=J ‚tt ttƒƒsGJ ‚t tt	ddƒƒƒt	ddƒtd  ks\J ‚tt	ddƒƒjdu siJ ‚ttttttttttt fD ]³}|js‚|j!d u rº|j"t |ƒj"u sJ ‚|j#t |ƒj#u s˜J ‚|j$t |ƒj$u s£J ‚|j%t |ƒj%u s®J ‚|j&t |ƒj&u s¹J ‚n7|j't |ƒj"u sÅJ ‚|j(t |ƒj#u sÐJ ‚|j)t |ƒj$u sÛJ ‚|j*t |ƒj%u sæJ ‚|j+t |ƒj&u sñJ ‚|j't |ƒj'u süJ ‚|j(t |ƒj(u sJ ‚|j)t |ƒj)u sJ ‚|j*t |ƒj*u sJ ‚|j+t |ƒj+u s(J ‚qvd S )Nre   rh   r   rj   rv   rl   ry   ri   rm   rg   r{   rx   r  Trf   F),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ÚnnrT   rV   rX   ÚenpÚennr\   rÚ   Ú
is_nonzeror
  Úis_negativeÚis_nonpositiveÚis_nonnegativeÚis_extended_nonzeroÚis_extended_positiveÚis_extended_negativeÚis_extended_nonpositiveÚis_extended_nonnegative)rŸ   r  rþ   r    r    r¡   Ú	test_atan  s\    $$,.""&€þ$ *ïr*  c                   C   s´  t tƒ t¡ttdtt  ƒtdtt  ƒ  d ksJ ‚t tƒ t¡tdttd d ƒ ƒ td  ttd ƒ t ks?J ‚t tƒ t¡ttd ƒtdttd d ƒ ƒ t ks\J ‚t tƒ t	¡t	dt ƒkskJ ‚t tƒ t
¡ttd ƒt
ttd d ƒƒ t ks†J ‚t tƒ t¡tttd d ƒƒ td  ttd ƒ t ks¦J ‚t dt ƒ ¡ t tƒ t¡jtdt idks¿J ‚t dt ƒ ¡ t tƒ t¡jtdt idksØJ ‚d S )Nre   rh   rx   ©r’   ri   )r'   r   r®   r   r
   r&   r!   r   r"   r#   r%   r$   rï   r    r    r    r¡   Útest_atan_rewrite>  s   :D:6@26r,  c                   C   s2   t tƒ ¡ dtd d  ksJ ‚ttdd„ ƒ d S )Nre   rh   c                   S   r¾   r¿   )r'   r   rÀ   r    r    r    r¡   rÁ   L  rÂ   z!test_atan_fdiff.<locals>.<lambda>)r'   r   rÀ   rE   r>   r    r    r    r¡   Útest_atan_fdiffJ  rì   r-  c                   C   sp  t tƒ t¡tksJ ‚t tt ƒjtddt ttƒ d td  ttdƒ d  ks-J ‚t tt ƒjtddt ttƒ d dt d  ttdƒ d  ksQJ ‚t tt ƒjtddtttƒ d td  ttdƒ d  ksrJ ‚t tt ƒjtddtttƒ d td  ttdƒ d  ks“J ‚t dt ƒjtddtd ks¤J ‚t dt ƒjtddt d ks¶J ‚d S )Nre   r  rh   rj   rf   rv   )r'   r   rÜ   r
   r   r   r    r    r    r¡   Útest_atan_leading_termO  s   DHBB"(r.  c            	   
      s´  t jtdƒks	J ‚t ddƒtju sJ ‚t ddƒdksJ ‚t ddƒtd ks'J ‚t ddƒtd ks2J ‚t ddƒttddƒ ks@J ‚t ddƒtksIJ ‚t ddƒttddƒ ksWJ ‚t ddƒt d kscJ ‚t ddƒt d ksoJ ‚tdd	d
} tdd	d}t || ƒ}t t	| t|  t
| d |d  ƒ ƒ }|df| tff}| |¡| |¡ks©J ‚tdd	d‰ tdd	d‰t ˆˆ ƒtˆˆ  ƒt ksÄJ ‚tdd	d‰t ˆˆ ƒtˆˆ  ƒt ksÙJ ‚tdƒ‰t ˆˆ ƒt ˆˆ ddksëJ ‚tdd	d}t d|ƒdksúJ ‚tdd	d}t d|ƒtks
J ‚t ˆtƒdksJ ‚t ˆt ƒdt ttˆƒtjƒ t ks+J ‚t ˆˆ ƒ t	¡t t	ˆ tˆ  t
ˆ d ˆd  ƒ ƒ ksKJ ‚t ddƒtju sVJ ‚t ˆˆ ƒtˆ tˆ  ƒ }| ˆ dˆdi¡ t¡dkstJ ‚| ˆ dˆdt i¡ t¡t tt	t
dƒt d ƒ  ks”J ‚| ˆ dt ˆdi¡ t¡t d tt	t
dƒt ƒ  ks´J ‚| ˆ dt ˆdt i¡ t¡t ttddƒƒ ttddƒƒ ksØJ ‚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s$J ‚||  |¡ d¡s1J ‚t dˆ ƒ t¡tttˆ ƒdk fdtˆ dƒftd	fƒksOJ ‚t d|ƒ t¡tt|dk fdt|dƒftjd	fƒkslJ ‚t d| ƒszJ |tƒdkƒ‚t d||  ƒ t¡tt|dk fdƒksJ ‚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ÌJ ‚tt ˆ ˆƒƒt tˆ ƒtˆƒƒksßJ ‚tt ˆˆ ƒˆ ƒˆ ˆ d ˆd   ksõJ ‚tt ˆˆ ƒˆƒˆ ˆ d ˆd   ks
J ‚ttt ˆˆ ƒ t	¡ˆ ƒƒˆ ˆ d ˆd   ks%J ‚ttt ˆˆ ƒ t	¡ˆƒƒˆ ˆ d ˆd   ks?J ‚tt ddƒ d¡ƒdksNJ ‚tt ‡ ‡fdd„ƒ d S )Nrh   r   re   rj   rf   rv   rl   r´   Trc   rF   rG   r   rO   rž   rR   Frƒ   ÚurL   ri   rg   )r   Tz0.46365c                      s   t ˆ ˆƒ d¡S )Nrv   )r(   rÀ   r    ©r   rž   r    r¡   rÁ      s    ztest_atan2.<locals>.<lambda>)!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   ÚeqÚansÚrepsr/  Úexrt   r®   r    r0  r¡   Ú
test_atan2Y  s~   
*.@"@@H

`þ:,,ü&,*64r7  c                  C   sB   G dd„ dt ƒ} | dƒ}| dƒ}tt||ƒ ¡ d ƒdksJ ‚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¡   Útest_issue_17461¢  s   "rA  c                   C   s  t tƒtu sJ ‚t jtdƒksJ ‚t t ƒdksJ ‚t tƒdks"J ‚t tƒdks*J ‚t dƒtd ks4J ‚t dƒtd ks>J ‚t tdƒd ƒtd ksLJ ‚t dtdƒ ƒtd ksZJ ‚t dtdƒ ƒt d ksiJ ‚t tƒ 	t¡ddtd   kszJ ‚t t
ƒjdu sƒJ ‚t tt ƒt ttƒ ks’J ‚t dt ƒttdƒ ks J ‚t tƒjd u s©J ‚t tƒjd	u s²J ‚t tƒjdu s»J ‚t tƒjd	u sÄJ ‚t tddƒƒjd	u sÐJ ‚tt ttƒƒsÙJ ‚tt ttƒƒsâJ ‚t ttddƒƒƒtddƒksòJ ‚t ttddƒƒƒtddƒtd  ksJ ‚d S )
Nre   r   rj   rh   rv   rf   Trg   F)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.   " .rB  c                   C   sà  t tƒ t¡ttdtt  ƒtdtt  ƒ  d ksJ ‚t tƒ t¡ttttd  ƒttd  d ƒ ƒ td   ttd ƒ ksEJ ‚t tƒ t¡tttd ƒ tttd  ƒttd  d ƒ ƒ kshJ ‚t tƒ t	¡t	dt ƒkswJ ‚t tƒ t
¡tttd ƒ t
ttd d td  ƒƒ ks–J ‚t tƒ t¡ttttd d td  ƒƒ td   ttd ƒ ksºJ ‚t t d ƒ ¡ t tƒ t¡jtt d idksÕJ ‚t td ƒ ¡ t tƒ t¡jttd idksîJ ‚d S )Nre   rh   rg   ri   r+  )r#   r   r®   r   r
   r&   r!   r   r"   r'   r%   r$   rï   r    r    r    r¡   Útest_acot_rewriteÊ  s   :PF>H66rC  c                   C   s2   t tƒ ¡ dtd d  ksJ ‚ttdd„ ƒ d S )Nrf   rh   re   c                   S   r¾   r¿   )r#   r   rÀ   r    r    r    r¡   rÁ   Ø  rÂ   z!test_acot_fdiff.<locals>.<lambda>)r#   r   rÀ   rE   r>   r    r    r    r¡   Útest_acot_fdiffÖ  rì   rD  c                   C   sl  t tƒjtddtd ksJ ‚t tƒjtddt d ksJ ‚t tt ƒjtddtttƒ d td  ttdƒ d  ks@J ‚t tt ƒjtddtttƒ d td  ttdƒ d  ksaJ ‚t tt ƒjtddt ttƒ d td  ttdƒ d  ksƒJ ‚t tt ƒjtddt ttƒ d dt d  ttdƒ d  ks§J ‚t dt ƒ t¡tks´J ‚d S )Nre   r  rh   rf   rj   rv   )r#   r   rÜ   r   r
   r   r    r    r    r¡   Útest_acot_leading_termÚ  s    BBDHrE  c                   C   s   t tƒjtfks
J ‚d S ©N)r-   r   Úargsr    r    r    r¡   Útest_attributesä  s   rH  c                   C   sn   t td t ƒttƒksJ ‚t tt ƒt tƒksJ ‚ttd t ƒt tƒks(J ‚ttt ƒttƒ ks5J ‚d S r¿   )r-   r   r   r)   r    r    r    r¡   Útest_sincos_rewriteè  s   rI  c                 C   s   | |ƒj d | kS )zMChecks that the expr has been rewritten using f(-x) -> f(x)
    arg : -x
    r   ©rG  ©r‘   r   r    r    r¡   Ú_check_even_rewriteï  s   rL  c                 C   s   | |ƒj jS )zNChecks that the expr has been rewritten using f(-x) -> -f(x)
    arg : -x
    )r‘   Úis_MulrK  r    r    r¡   Ú_check_odd_rewriteö  s   rN  c                 C   s   | |ƒj d |kS )z%Checks that the expr is not rewrittenr   rJ  rK  r    r    r¡   Ú_check_no_rewriteý  s   rO  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 ]%}|D ]	}t||ƒs7J ‚q.t|| | ƒsAJ ‚|t	t
 ƒ|t
t	 ƒksOJ ‚q*|D ]&}|D ]	}t||ƒs_J ‚qVt|| | ƒsiJ ‚|t	t
 ƒ|t
t	 ƒ ksxJ ‚qRd S )Nrh   re   rf   i   r   )r)   r-   r/   r*   r&   r'   r#   r   r   r   rž   rL  rO  rN  )r^   Úbrs   ÚoddÚ
with_minusr‘   Úexprr    r    r¡   Útest_evenodd_rewrite  s0   *ÿ

ÿÿ
ÿürT  c                   C   s`   t tƒ t¡tksJ ‚ttƒ t¡dksJ ‚ttƒ t¡tks!J ‚ttƒ t¡dt ks.J ‚d S )Nre   )r-   r   rÜ   r)   r/   r*   r    r    r    r¡   Útest_as_leading_term_issue_5272  s   rU  c                  C   s>  t dt ƒ t¡tddƒksJ ‚t tjƒ t¡t tjƒksJ ‚tdt ƒ t¡tddƒks/J ‚ttjƒ t¡ttjƒks>J ‚tdt ƒ t¡ttjtj	ƒksPJ ‚t
dt ƒ t¡ttjtj	ƒksbJ ‚tdt ƒ t¡ttjtj	ƒkstJ ‚tdt ƒ t¡ttjtj	ƒks†J ‚t ttd  ƒdt  } |  t¡td ksJ ‚d S )Nre   rf   rj   rv   )r-   r   rÜ   r   r   r   r)   r,   r  r  r+   r/   r*   r   rÝ   r    r    r¡   Útest_leading_terms  s     $$$$rV  c                   C   s¤  t ttd td ƒ t¡ttd td  ƒ t¡ ƒdksJ ‚t ttt ƒ tdd¡tttƒ tdd¡ tdtƒ tdƒ ƒttd ƒksGJ ‚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stJ ‚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s©J ‚ttttƒgƒ 	ttg¡tttd td   t td td   ggƒksÐJ ‚d S )Nrh   re   r   ri   rj   rv   )
r4   r(   r   r   r'   rž   r8   r7   r3   Újacobianr    r    r    r¡   Útest_atan2_expansion,  s2   >*ÿÿ
ÿ*ÿÿÿ2ÿ
ÿÿ.ÿrX  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J ‚d S )Nre   )Údir)rš   rï   r   r8   ÚremoveOr’   )rN   ÚvrŸ   rt   r    r    r¡   Út9  s
   0ÿÿztest_aseries.<locals>.tgš™™™™™¹?ú+gñhãˆµøä>gš™™™™™¹¿ú-)r'   r#   )r\  r    r    r¡   Útest_aseries8  s
   r_  c                  C   s´	  t ddd} t ddd}t ddd}td|  t ƒd	ksJ ‚td|  t ƒd
ks*J ‚td|  t ƒd
ks6J ‚td|  t ƒtu sBJ ‚td|  t ƒtt|  ƒksRJ ‚td|  t ƒd
ks^J ‚td|  t ƒd
ksjJ ‚td|  t ƒtu svJ ‚td|  t ƒd	ks‚J ‚td|  t ƒd
ksŽJ ‚td|  t ƒd
ksšJ ‚td|  t ƒtu s¦J ‚td|  t ƒtt|  ƒks¶J ‚td|  t ƒd
ksÂJ ‚td|  t ƒd
ksÎJ ‚td|  t ƒtu sÚJ ‚td|  t ƒtdt |  ƒksìJ ‚td|  t ƒtdt |  ƒksþJ ‚td|  t ƒtdt |  ƒksJ ‚td|  t ƒtdt |  ƒks$J ‚td| t ƒd	ks1J ‚td| t ƒd
ks>J ‚td| t ƒd
ksKJ ‚td| t ƒtu sXJ ‚td| t ƒd	kseJ ‚td| t ƒd
ksrJ ‚td| t ƒd
ksJ ‚td| t ƒtu sŒJ ‚td| t ƒd	ks™J ‚td| t ƒd
ks¦J ‚td| t ƒd
ks³J ‚td| t ƒtu sÀJ ‚td| t ƒd	ksÍJ ‚td| t ƒd
ksÚJ ‚td| t ƒd
ksçJ ‚td| t ƒtu sôJ ‚td| t ƒtdt | ƒksJ ‚td| t ƒtdt | ƒksJ ‚td| t ƒtdt | ƒks-J ‚td| t ƒtdt | ƒks@J ‚td| t ƒd	ksMJ ‚td| t ƒd
ksZJ ‚td| t ƒd
ksgJ ‚td| t ƒtu stJ ‚td| t ƒdksJ ‚td| t ƒd
ksŽJ ‚td| t ƒd
ks›J ‚td| t ƒtu s¨J ‚td| t ƒd	ksµJ ‚td| t ƒd
ksÂJ ‚td| t ƒd
ksÏJ ‚td| t ƒtu sÜJ ‚td| t ƒdkséJ ‚td| t ƒd
ksöJ ‚td| t ƒd
ksJ ‚td| t ƒtu sJ ‚td| t ƒtdt | ƒks#J ‚td| t ƒtdt | ƒks6J ‚td| t ƒtdt | ƒksIJ ‚td| t ƒtdt | ƒks\J ‚tdt t ƒtdt t ƒksoJ ‚tdt t ƒtdt t ƒks‚J ‚tdt t ƒtdt t ƒks•J ‚tdt t ƒtdt t ƒks¨J ‚tdt t ƒtdt t ƒks»J ‚tdt t ƒtdt t ƒksÎJ ‚tdt t ƒtdt t ƒksáJ ‚tdt t ƒtdt t ƒksôJ ‚tdt t ƒtdt t ƒksJ ‚tdt t ƒtdt t ƒksJ ‚tdt t ƒtdt t ƒks-J ‚tdt t ƒtdt t ƒks@J ‚tdt t ƒtdt t ƒksSJ ‚tdt t ƒtdt t ƒksfJ ‚tdt t ƒtdt t ƒksyJ ‚tdt t ƒtdt t ƒksŒJ ‚tdt t ƒtdt t ƒksŸJ ‚tdt t ƒtdt t ƒks²J ‚tdt t ƒtdt t ƒksÅJ ‚tdt t ƒtdt t ƒksØJ ‚d S )Nr´   TrI   rt   ru   Úo)rQ  rj   re   r   rv   g      @g      @g      @r  rf   )r   r)   r   r-   r/   r*   r   r   )r´   rt   r`  r    r    r¡   Útest_issue_4420B  s¦     $$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*ra  c                   C   s´   t tdd„ ƒ t tdd„ ƒ ttƒ ¡ tksJ ‚ttƒ ¡ tks"J ‚t tdd„ ƒ t tdd„ ƒ ttƒ ¡ t	ks:J ‚t
tƒ ¡ tksDJ ‚ttƒ ¡ tksNJ ‚ttƒ ¡ tksXJ ‚d S )Nc                   S   ó   t tƒ ¡ S rF  )r-   r   Úinverser    r    r    r¡   rÁ   °  ó    ztest_inverses.<locals>.<lambda>c                   S   rb  rF  )r)   r   rc  r    r    r    r¡   rÁ   ±  rd  c                   S   rb  rF  )r+   r   rc  r    r    r    r¡   rÁ   ´  rd  c                   S   rb  rF  )r,   r   rc  r    r    r    r¡   rÁ   µ  rd  )rE   ÚAttributeErrorr/   r   rc  r'   r*   r#   r&   r-   r"   r)   r    r    r    r¡   Útest_inverses¯  s   rf  c                  C   sÎ  t ddd\} }| |t  }dD ]Ô}t|ƒj|dt| ƒt|ƒ t| ƒt|ƒ fks,J ‚t|ƒj|dt| ƒt|ƒ t| ƒ t|ƒ fksGJ ‚t|ƒj|dtd|  ƒtd|  ƒtd| ƒ  td| ƒtd|  ƒtd| ƒ  fksuJ ‚t|ƒj|dtd|  ƒ td|  ƒtd| ƒ  td| ƒtd|  ƒtd| ƒ  fks¤J ‚t| ƒj|dt| ƒdfks´J ‚t| ƒj|dt| ƒdfksÄJ ‚t| ƒj|dt| ƒdfksÔJ ‚t| ƒj|dt| ƒdfksäJ ‚qd S )Nza bTrG   )TF)Údeeprh   r   )	r   r
   r-   Úas_real_imagr   r)   r   r/   r*   )r^   rP  rb   rg  r    r    r¡   Útest_real_imag½  s@   ÿÿÿÿÿ ÿ"
ÿ"
ÿ$
ÿ"
ÿ   "ôri  c                   C   s(   t tƒtju s	J ‚ttƒtju sJ ‚d S rF  )r-   r   r   r  r)   r    r    r    r¡   Útest_sin_cos_with_infinityÏ  s   rj  c            	      C   s†  dD ]ƒ} dD ]~}||  }t dt|d d d dƒƒD ]i}dt||ƒkrƒ|t | }t|ƒ t¡}t|ƒ t¡}| tt¡rEJ d||f ƒ‚| tt¡rSJ d||f ƒ‚dt	t| 
d¡ƒ| 
d¡ ƒkskJ d||f ƒ‚dt	t| 
d¡ƒ| 
d¡ ƒksƒJ d||f ƒ‚qqqttd	 ƒ t¡tttd
 ƒd tj ƒksžJ ‚ttd ƒ t¡ 
d¡ttd ƒ 
d¡ksµJ ‚tttddƒ d dd t¡ttttddƒ ƒ d tj ƒ ksÙJ ‚ttdttjdddd t¡dksíJ ‚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ŠJ ‚| ¡ | ¡ ks•J ‚ttd d ƒ t¡ttd ƒtttddƒ ƒ ttd ƒtttddƒ ƒ  ksÁJ ‚d S )N©re   rv   ri   rw   ©re   ry   re   rh   rm   r©   çü©ñÒMbP?ri   rÕ   ro   i  é@   rÖ   rÅ   Frƒ   rj   rf   rv   rw   rl   rà   é€   r¹   rk   é    rÒ   r£   ry   r«   )r™   Úminr5   r   r-   r®   r!   r)   Úhasrš   rï   r   r   r   r   rN   )	rK   r\  rN   r´   r   Ús1Úc1rt   r^   r    r    r¡   Útest_sincos_rewrite_sqrt×  s"   00€ø÷0.ÿ"ÿÿÿ(ÿÿ6ÿ
ÿÿÿþÿ
ÿ,ÿÿ
ÿÿÿþýû2ÿÿ
ÿÿÿúøø 	÷	ÿ6ÿ
ÿÿÿþ÷õ,ÿ2ÿÿ
ÿÿÿþýý42ÿÿ
ÿÿÿÿý,ÿÿ
ÿÿýüü(	ÿ2ÿÿ
ÿÿÿþýý÷02ÿÿ
ÿÿÿÿý,ÿÿ
ÿÿýüó*2ÿÿ
ÿÿÿÿþþîë,ÿÿ"ÿÿ
þþþÿýÿÿ
þþýûë$ÿ2ÿÿ
ÿÿÿþüüæâôÿ,:ÿru  c               	   C   s<  dD ]™} dD ]”}||  }t dt|d d d dƒƒD ]}dt||ƒkr™|t | }d| |krdd| d| krdt|ƒ t¡}| tt¡rLJ d||f ƒ‚dt	t| 
d	¡ƒ| 
d
¡ ƒksdJ d||f ƒ‚|dkr™||kr™t|ƒ t¡}| tt¡rJ d||f ƒ‚dt	t| 
d	¡ƒ| 
d
¡ ƒks™J d||f ƒ‚qqqd S )Nrk  rl  re   rh   rm   rv   r©   rm  ro   rj   r   )r™   rq  r5   r   r/   r®   r!   rr  r*   rš   rï   )rK   r\  rN   r´   r   Út1rt  r    r    r¡   Útest_tancot_rewrite_sqrt(  s$    00€öþÿrw  c               	   C   s  t ddd} t dƒ}tjtdƒksJ ‚ttƒtu sJ ‚tdƒdks#J ‚ttƒdks+J ‚ttd ƒtu s5J ‚tt d ƒtu s@J ‚ttd	 ƒdtd
ƒ d
 ksPJ ‚ttd
 ƒdksZJ ‚tttddƒ ƒtu sgJ ‚tttddƒ ƒtttddƒ ƒ ks|J ‚tttd
dƒ ƒtdƒ ksŒJ ‚tt	ƒdt
dƒ ks˜J ‚t| t	 ƒdt
| ƒ ks¦J ‚t|  ƒt| ƒks±J ‚tt| ƒƒ| ks»J ‚t|ƒ ¡ tt|ƒƒksÉJ ‚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*J ‚t| ƒjdddt| ƒ ks;J ‚td|  ƒjddddt| ƒd  d  ksTJ ‚t| ƒjdks^J ‚t|ƒjd kshJ ‚ttƒjd u srJ ‚ttƒjdu s|J ‚t| ƒ ¡ t| ƒks‰J ‚tdddjdks•J ‚t| ƒjd ksŸJ ‚ttd ddjdks­J ‚tt| ƒ| dd	dd| d d  d| d  d  t| d	 ƒ ksÐJ ‚ttt| ƒƒƒd| d d  d| d  d  t| d	 ƒ ksñJ ‚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sFJ ‚t| ƒ | ¡t| ƒt| ƒ ksXJ ‚t|ƒ d|¡d|d  d kskJ ‚t|ƒ d	|¡d|d	  d ks~J ‚t|ƒ d|¡dks‹J ‚d S )Nr   TrG   rb   re   r   rf   rh   rk   rv   ri   r«   ro   rj   r¶   Frƒ   ©Úx0rN   r¥   é`   r{   é    é=   rË   ) r   r,   r   r:   r   r   r   r!   r   r
   r   r%   r   rh  r)   r   r   r-   r   rº   rÚ   r”   r^   r•   r`   rÜ   rÛ   r8   r7   r   r/   rô   )r   rb   r    r    r¡   Útest_sec;  sd    * 
4ÿ4ÿþ
ÿ"2FB8ÿ(ÿ
ÿ$&&r}  c                   C   s’  t tƒ t¡dttt ƒd tt t ƒd   ksJ ‚t tƒ t¡dttƒ ks+J ‚t tƒ t¡ttd ƒd d ttd ƒd  d  ksIJ ‚t tƒ t¡t tƒksVJ ‚t tƒ t¡t tƒkscJ ‚t t	ƒ t
¡t
t	d ƒd d t
t	d ƒd d  ks€J ‚t tƒ t¡dtttd  dd ks•J ‚t tƒ t¡ttd ƒd d ttd ƒd  d  ks³J ‚t tƒ t¡tt td  ddksÇJ ‚d S )Nre   rh   Frƒ   )r,   r   r®   r   r
   r)   r/   rá   r!   rb   r*   r-   r   r+   r    r    r    r¡   Útest_sec_rewritez  s   8<:*<,r~  c                   C   s2   t tƒ ¡ ttƒt tƒ ksJ ‚ttdd„ ƒ d S )Nc                   S   r¾   r¿   )r,   r   rÀ   r    r    r    r¡   rÁ   ˆ  rÂ   z test_sec_fdiff.<locals>.<lambda>)r,   r   rÀ   r/   rE   r>   r    r    r    r¡   Útest_sec_fdiff†  rì   r  c                     sü  t ddd‰ t dƒ} tdƒ}dtdƒ }| |¡dksJ ‚| |¡dks&J ‚tjtdƒks/J ‚tdƒtu s7J ‚ttƒtu s?J ‚ttƒtu sGJ ‚ttd ƒdksQJ ‚tt d ƒdks\J ‚ttd	 ƒdksfJ ‚ttd
 ƒdt	d
ƒ d
 ksvJ ‚ttt
ddƒ ƒdksƒJ ‚ttt
ddƒ ƒttt
ddƒ ƒ ks˜J ‚ttt
d
dƒ ƒt	dƒks§J ‚ttƒt tdƒ ks´J ‚tˆ t ƒt tˆ ƒ ksÃJ ‚tˆ  ƒtˆ ƒ ksÏJ ‚ttˆ ƒƒˆ ksÙJ ‚t| ƒ ¡ tt| ƒƒksçJ ‚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sIJ ‚tˆ ƒjdddtˆ ƒ ksZJ ‚tdˆ  ƒjddddtˆ ƒ tˆ ƒ  kssJ ‚tˆ ƒjdks}J ‚t| ƒjd ks‡J ‚ttƒjd u s‘J ‚ttƒjdu s›J ‚tˆ ƒ ¡ tˆ ƒks¨J ‚tdddjdks´J ‚tˆ ƒjd ks¾J ‚ttd ddjdksÌJ ‚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J ‚ttˆ ƒˆ dd	ddˆ  ˆ d	  dˆ d
  d  dˆ d  d  tˆ d	 ƒ ks-J ‚tˆ ƒ ˆ ¡tˆ ƒ tˆ ƒ ks@J ‚tˆ ƒ  dˆ ¡dksMJ ‚tˆ ƒ  d
ˆ ¡dˆ d
  d ks`J ‚tˆ ƒ  dˆ ¡dˆ d  d kssJ ‚t!t"‡ fdd„ƒ d S )Nr   TrG   rb   re   r   rh   rf   rk   rv   ri   r«   ro   rj   r¶   Frƒ   rx  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-   r1  r   r:   r   r   r   r!   r   r
   r   r$   r   rh  r   r   r   r)   rº   rÚ   r”   r^   r•   r`   rÜ   rÛ   r8   r7   r   r*   rô   rE   r>   )rb   ÚcosecantÚ	alternater    r  r¡   Útest_csc‹  sh    *
4ÿ6ÿþ
ÿ"2L
ÿ:
ÿ&&&r„  c                  C   sd  t ddd} t| ƒtu sJ ‚ttƒtu sJ ‚tdƒdksJ ‚tdƒtks&J ‚ttƒtd ks0J ‚tt ƒtd ks;J ‚ttƒtd ksEJ ‚ttttdd	ƒ ƒƒttd
d	ƒ ksYJ ‚tdtdƒ ƒttddƒ ksjJ ‚tdtd
ƒ ƒtd ksxJ ‚ttd	dtdƒ  ƒƒtd ksŠJ ‚ttd	dtdƒ  ƒ ƒttddƒ ks J ‚ttddtdƒ d  ƒƒttd
dƒ ks·J ‚ttddtdƒ d  ƒ ƒttddƒ ksÏJ ‚ttdƒtdƒ ƒttddƒ ksâJ ‚tt	ƒ 
t	¡dt	d tddt	d   ƒ  ksûJ ‚tt	ƒ t¡tttddt	d   ƒtt	  ƒ td  ksJ ‚tt	ƒ t¡tdt	 ƒ td  ks0J ‚tt	ƒ t¡tdt	 ƒks@J ‚tt	ƒ t¡tdtt	d ƒt	   d tt	d ƒttt	d d ƒƒ t	  ksjJ ‚tt	ƒ t¡tdtt	d ƒt	   d tt	d ƒtdtt	d d ƒ ƒ t	  ks–J ‚tt	ƒ t¡tt	ƒ td  ks©J ‚ttdd„ ƒ d S )Nrb   Trÿ   re   r   rf   rh   rÒ   rj   rv   ri   rk   ry   rm   ro   rÅ   r{   c                   S   r¾   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$   rE   r>   ©rb   r    r    r¡   Ú	test_asecÌ  s8   ("$,.0&2@* >
ÿB
ÿ&r†  c                  C   s|   t tjƒjdu s
J ‚tdddd} t | ƒjdu sJ ‚t tƒjd u s#J ‚t tƒjd u s,J ‚tdddd}t |ƒjdu s<J ‚d S )NFrN   T)rM   rJ   r\  ©rH   Úfinite)r%   r   r   r”   r   rÚ   r   rF   )rN   r\  r    r    r¡   Útest_asec_is_realì  s   r‰  c                   C   sÈ   t tƒjtddt ttƒ ttdƒ  ksJ ‚t tƒjtddtttƒ dt  ttdƒ  ks3J ‚t td ƒ t¡tdƒttƒ ksFJ ‚t td ƒ t¡tksSJ ‚t dt ƒ t¡td ksbJ ‚d S )Nre   r  rh   rf   )r%   r   rÜ   r
   r   r   r!   r    r    r    r¡   Útest_asec_leading_termö  s
   06&"rŠ  c                   C   s¦  t tƒtu sJ ‚t dƒtd ksJ ‚t dƒt d ksJ ‚t tƒdks%J ‚t t ƒdks.J ‚t tƒdks6J ‚t dƒtu s>J ‚t tdƒƒdt ksJJ ‚t tdƒƒdt ksVJ ‚t td	ƒƒd	dt  ksdJ ‚tt ttƒƒsmJ ‚tt ttƒƒsvJ ‚t dt	dƒ ƒtd ks„J ‚t ttt
d
dƒ ƒƒt d ks–J ‚t t	ddt	dƒ d  ƒƒtd ksªJ ‚t t	ddt	dƒ d  ƒ ƒt d ksÀJ ‚t dƒt d	 ksËJ ‚t t	ddt	dƒ  ƒ ƒt d ksßJ ‚t t	ddt	dƒ  ƒƒtt
ddƒ ksôJ ‚t dt	dƒ ƒtd ksJ ‚t t	dƒt	d	ƒ ƒtt
ddƒ ksJ ‚t tƒ t¡dtd t	ddtd   ƒ  ks1J ‚t tƒ t¡t tt	ddtd   ƒtt  ƒ ksNJ ‚t tƒ t¡tdt ƒks^J ‚t tƒ t¡tdt ƒ td  kssJ ‚t tƒ t¡tt	td d ƒƒ td  t	td ƒ t ks”J ‚t tƒ t¡tdt	td d ƒ ƒ td  t	td ƒ t ks·J ‚t tƒ t¡ttƒ td  ksÊJ ‚ttdd„ ƒ d S )Nre   rh   rf   r   rv   rl   rj   r¸   rk   rÒ   ri   rg   ry   rm   rx   r{   c                   S   r¾   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%   rE   r>   r    r    r    r¡   Ú	test_acscþ  s>   $(,(*(4: *,
ÿF&r‹  c                   C   sº  t tƒ t¡t tƒksJ ‚t tƒ t¡t tƒksJ ‚t tƒ t¡dt ttt ƒtt t ƒ  ks4J ‚t tƒ t¡dttƒ ksCJ ‚t tƒ t¡ttd ƒd d dttd ƒ  ks^J ‚t tƒ t	¡t	td ƒd d dt	td ƒ  ksyJ ‚t tƒ t
¡dt
ttd  dd ksŽJ ‚t tƒ t¡tt td  ddks¢J ‚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ÛJ ‚d S )Nrh   re   Frƒ   rf   )r+   r   r®   rá   r!   r   r
   r-   r/   r*   r)   r   r,   r0   r    r    r    r¡   Útest_csc_rewrite#  s   466*(""ÿÿÿrŒ  c                   C   sÎ   t tƒjtddtttƒ td  ttdƒ  ksJ ‚t tƒjtddt ttƒ dt d  ttdƒ  ks9J ‚t td ƒ t¡td ksHJ ‚t td ƒ t¡t d ksXJ ‚t dt ƒ t¡tkseJ ‚d S )Nre   r  rh   rf   rv   )r$   r   rÜ   r
   r   r   r    r    r    r¡   Útest_acsc_leading_term3  s
   6< r  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s=J ‚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sxJ ‚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³J ‚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ðJ ‚t tt ttd   d ƒ tdd d¡t dƒ t tdƒt d  tdƒt td  d  ttd ƒ ks(J ‚t tt ttd   d ƒ tdd d¡t dƒtdƒt d  tdƒt td  d  ttd ƒ ks]J ‚t tt ttd   d ƒ tdd d¡t dƒ tdƒt d  tdƒt td  d  ttd ƒ ks“J ‚t tt ttd   d ƒ tdd d¡t dƒt tdƒt d  tdƒt td  d  ttd ƒ ksÊJ ‚t ttd  ttd   d ƒ tdd d¡t dƒ t tdƒtd  d  ttd ƒ ksúJ ‚t ttd  ttd   d ƒ tdd d¡t dƒ t tdƒtd  d  ttd ƒ ks*J ‚t ttd  ttd   d ƒ tdd d¡t dƒ tdƒtd  d  ttd ƒ ksXJ ‚t ttd  ttd   d ƒ tdd d¡t dƒ tdƒtd  d  ttd ƒ ks†J ‚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ÇJ ‚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J ‚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sEJ ‚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†J ‚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ÂJ ‚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þJ ‚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s9J ‚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szJ ‚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­J ‚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âJ ‚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J ‚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sLJ ‚t
dt ƒ tdd d¡td t ttd ƒ ksgJ ‚t
dt ƒ tdd d¡t d t ttd ƒ ksƒJ ‚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ÃJ ‚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J ‚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>J ‚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}J ‚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ÆJ ‚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J ‚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`J ‚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«J ‚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ôJ ‚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sAJ ‚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ŒJ ‚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×J ‚d S )Nrh   rj   rv   r«   rÑ   re   rf   r{   ri   r{  rk   r¨   rg   rÒ   éQ   ry   r  é   )r&   r   Ú_eval_nseriesr
   r   r!   r7   r   r   r"   r'   r   r#   r   r%   r$   r    r    r    r¡   Útest_inverses_nseries;  sø   Nÿ

ÿvvNÿ

ÿpjln``\\,ÿ ÿ
ÿ,ÿÿ
ÿ,ÿÿ
ÿ0ÿÿ
ÿxxv<ÿÿ
ÿfjlh68€|z~Dÿÿ
ÿHÿÿ
ÿPÿÿ
ÿHÿÿ
ÿDÿÿ
ÿLÿÿ
ÿHÿÿ
ÿHÿÿ
ÿr‘  c                  C   sF   t ddd} t| ƒjd u sJ ‚t| ƒjd u sJ ‚t| ƒjd u s!J ‚d S )NrN   TrI   )r   r-   Úis_irrationalr)   r/   ©rN   r    r    r¡   Útest_issue_8653¦  s   r”  c                  C   s(   t dddd} t| d ƒjdu sJ ‚d S )NrN   T)rJ   rM   re   )r   r'   r$  r“  r    r    r¡   Útest_issue_9157­  s   r•  c                     s|  t dƒ\‰ } tˆ ƒ ¡ dt ksJ ‚tˆ ƒ ¡ dt ksJ ‚tˆ ƒ ¡ tks(J ‚tˆ ƒ ¡ tks2J ‚tˆ ƒ ¡ dt ks>J ‚tˆ ƒ ¡ dt ksJJ ‚tdˆ  ƒ ¡ tksVJ ‚tdˆ  d ƒ ¡ td ksfJ ‚tdˆ  ƒ ¡ tt	ddƒ kswJ ‚tˆ |  ƒ ˆ ¡dt t
| ƒ ksŠJ ‚tdˆ  |  dt  ƒ | ¡dt t
dˆ  ƒ ks¥J ‚tdˆ  ƒ | ¡tju s³J ‚tt‡ fdd„ƒ d S )	Nzx, yrh   rj   rk   rl   rv   c                      s   t ˆ d ƒ ˆ ¡S r¿   )r-   Úperiodr    r  r    r¡   rÁ   Á  s    z"test_trig_period.<locals>.<lambda>)r   r-   r–  r   r)   r/   r*   r,   r+   r   rš   r   rŽ   rE   ÚNotImplementedError)rž   r    r  r¡   Útest_trig_period²  s    "&6r˜  c                   C   s8   t tƒ t¡t tƒksJ ‚t tƒ t¡t tƒksJ ‚d S rF  )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s=J ‚d S )Nzw, kTrG   re   rh   r   )r   rA   r@   r   r-   r.   r®   )Úwr   ÚFÚsolnr    r    r¡   Útest_issue_11864É  s   0(r  c                  C   sV  t dddd} t| ƒjd u sJ ‚t| ƒjd u sJ ‚t| ƒjdu s"J ‚t| ƒjd u s+J ‚t| ƒjd u s4J ‚t| ƒjdu s=J ‚tt	ƒjd u sFJ ‚tt
ƒjd u sOJ ‚tt	ƒjd u sXJ ‚tt
ƒjd u saJ ‚tt	ƒjd u sjJ ‚tt
ƒjd u ssJ ‚tt	ƒjd u s|J ‚tt
ƒjd u s…J ‚tt	ƒjdu sŽJ ‚tt
ƒjdu s—J ‚tt	ƒjdu s J ‚tt
ƒjdu s©J ‚d S )Nrb   FTr‡  )r   r-   r”   r)   r/   r,   r+   r*   r&   rK   rN   r%   r"   r$   r'   r
  r"  r#   r…  r    r    r¡   Útest_real_assumptionsÏ  s&   rž  c                   C   sš  t tdƒƒdt kr(t d dt   krtd kr(n J ‚tdƒtdt ƒks*J ‚t tdƒƒdtd  krXt d dtd    krItd krXn J ‚tdƒtdtd  ƒksZJ ‚ttdƒƒt d d kr†dt d d   krvtkr†n J ‚tdƒtt d d ƒksˆJ ‚ttdƒƒdt d kr±ddt d   kr¢tkr±n J ‚tdƒtdt d ƒks³J ‚ttdƒƒddt  krÜdddt    krÍtkrÜn J ‚tdƒtddt  ƒksÞJ ‚ttd	ƒƒd
t d	 krt d d
t d	   k rÿtd k rn J ‚td	ƒtd
t d	 ƒksJ ‚ttdƒƒd
t d krCt d d
t d   k r3td k rCn J ‚tdƒtd
t d ƒksEJ ‚ttdƒƒdttddƒ  kr€t d dttddƒ    k rmtd k r€n J ‚tdƒtdttddƒ  ƒks‚J ‚t	tdƒƒd
t d kr´t d d
t d   k r¤td kr´n J ‚tdƒtd
t d ƒks¶J ‚t	tdƒƒdttddƒ  krñt d dttddƒ    k rÞtd krñn J ‚tdƒtdttddƒ  ƒksóJ ‚t
tdƒƒddt  kr dddt    krtkr n J ‚tdƒtddt  ƒks"J ‚t
tdƒƒdttddƒ  krXddttddƒ    krEtkrXn J ‚tdƒtdttddƒ  ƒksZJ ‚ttdƒƒdt d krŒt d dt d   kr|td krŒn J ‚tdƒtdt d ƒksŽJ ‚ttdƒƒttddƒ d krÉt d ttddƒ d   kr¶td krÉn J ‚tdƒtttddƒ d ƒksËJ ‚d S )Nrh   rg   r   r¤   iúÿÿÿr¦   iâÿÿÿrm   rw   rx   r£   r{   iôÿÿÿro   rÓ   iíÿÿÿrÒ   rÅ   r}   rj   ióÿÿÿr«   rÕ   r¸   r|   )r&   r-   r   r)   r"   r'   r/   r*   r   r#   r%   r,   r+   r$   r    r    r    r¡   Útest_issue_14320ä  s   T`\VVfhzhz^ph~rŸ  c                  C   sä  t dt d ƒt dƒksJ ‚t dt d ƒt dƒksJ ‚t td ƒt dƒ ks)J ‚t td ƒt dƒ ks6J ‚tdt d ƒtdƒksDJ ‚tdt d ƒtdƒ ksSJ ‚ttd ƒtdƒ ks`J ‚ttd ƒtdƒkslJ ‚tdƒ} ttd |  ƒt | ƒks~J ‚ttd |  ƒt | ƒksŒJ ‚tttddƒ |  ƒt | ƒ ksžJ ‚tttddƒ |  ƒt | ƒ ks°J ‚t td |  ƒt| ƒks¾J ‚t td |  ƒt| ƒ ksÍJ ‚t ttddƒ |  ƒt| ƒksÞJ ‚t ttddƒ |  ƒt| ƒ ksðJ ‚d S )Nrh   rÅ   rw   r   rv   )r,   r   r+   r   r   r  r    r    r¡   Útest_issue_14543ö  s"   $$"(r   c                  C   s0   t ttttdƒ   ƒ} |  ¡ | dfksJ ‚d S )Nre   r   )r'   r
   r/   rh  )rS  r    r    r¡   Útest_as_real_imag  s   r¡  c                  C   s*   t tjtd d  ƒ} |  ¡ dksJ ‚d S )Nrj   g      Ð?ry   )r)   r   r¼   r   r–  )Úe3r    r    r¡   Útest_issue_18746  s   r£  N)ÍÚ!sympy.calculus.accumulationboundsr   Úsympy.core.addr   r²   r   r   Úsympy.core.modr   Úsympy.core.mulr   Úsympy.core.numbersr   r	   r
   r   r   r   r   r   Úsympy.core.powerr   Úsympy.core.singletonr   Úsympy.core.symbolr   r   Ú$sympy.functions.elementary.complexesr   r   r   r   Ú&sympy.functions.elementary.exponentialr   r   Ú%sympy.functions.elementary.hyperbolicr   r   r   r   r   r   r    Ú(sympy.functions.elementary.miscellaneousr!   Ú(sympy.functions.elementary.trigonometricr"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   Úsympy.functions.special.besselr0   r1   Ú'sympy.functions.special.delta_functionsr2   Úsympy.matrices.denser3   Úsympy.polys.polytoolsr4   r5   Úsympy.series.limitsr6   Úsympy.series.orderr7   Úsympy.series.seriesr8   Úsympy.sets.fancysetsr9   Úsympy.sets.setsr:   r;   Úsympy.simplify.simplifyr<   Úsympy.core.exprr=   r>   Úsympy.core.relationalr?   r@   Ú$sympy.functions.elementary.piecewiserA   Úsympy.sets.setexprrB   Úsympy.testing.pytestrC   rD   rE   r   rž   rb   rF   r   r“   rK   rN   r  r  rT   rV   rX   r  r   r\   r^   r`   r¢   rª   r¬   r¯   rµ   r»   r½   rÃ   rÄ   rÆ   rÊ   rÌ   rÍ   rÎ   rÏ   rÐ   rÞ   rß   rä   rå   ré   rê   rë   rî   rð   rò   rõ   rø   rù   rû   rü   rý   r  r  r  r  r  r  r  r  r  r  r  r*  r,  r-  r.  r7  rA  rB  rC  rD  rE  rH  rI  rL  rN  rO  rT  rU  rV  rX  r_  ra  rf  ri  rj  ru  rw  r}  r~  r  r„  r†  r‰  rŠ  r‹  rŒ  r  r‘  r”  r•  r˜  r™  r  rž  rŸ  r   r¡  r£  r    r    r    r¡   Ú<module>   s   ($@

%eh"[
41	,7
I

m

P
?A 
%k