o
    *Î®ck–  ã                   @   s  d dl 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mZ d dlmZ d dlmZmZ d dl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 m!Z!m"Z"m#Z#m$Z$m%Z% d d	l&m'Z' d d
l(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ d dl0m1Z1 d dl2m3Z3 d dlm4Z4 d dl5m6Z6 dd„ Z7dd„ Z8dd„ Z9dd„ Z:dd„ Z;dd„ Z<dd„ Z=dd„ Z>dd „ Z?d!d"„ Z@d#d$„ ZAd%d&„ ZBd'd(„ ZCd)d*„ ZDd+d,„ ZEd-d.„ ZFd/d0„ ZGd1d2„ ZHd3d4„ ZId5d6„ ZJd7d8„ ZKd9d:„ ZLd;d<„ ZMd=d>„ ZNd?d@„ ZOdAdB„ ZPdCdD„ ZQdEdF„ ZRdGdH„ ZSdIdJ„ ZTdKdL„ ZUdMdN„ ZVdOdP„ ZWdQdR„ ZXdSdT„ ZYdUdV„ ZZdWdX„ Z[dYdZ„ Z\d[d\„ Z]d]d^„ Z^d_d`„ Z_dadb„ Z`dcdd„ Zadedf„ Zbdgdh„ Zcdidj„ Zddkdl„ Zedmdn„ Zfdodp„ Zgdqdr„ Zhdsdt„ Zidudv„ Zjdwdx„ Zkdydz„ Zld{d|„ Zmd}d~„ Zndd€„ Zodd‚„ Zpdƒd„„ Zqd…d†„ Zrd‡dˆ„ Zsd‰S )Šé    )ÚAccumBounds)Ú
expand_mulÚexpand_trig)ÚEÚIÚIntegerÚRationalÚnanÚooÚpiÚzoo)ÚS)ÚSymbolÚsymbols)ÚimÚre)ÚexpÚlog)ÚacoshÚacothÚacschÚasechÚasinhÚatanhÚcoshÚcothÚcschÚsechÚsinhÚtanh)Úsqrt)ÚacosÚasinÚcosÚcotÚsecÚsinÚtan)ÚO)Ú	unchanged)ÚArgumentIndexError)Úraisesc                  C   sÜ  t dƒ\} }tddd}ttƒtu sJ ‚ttƒtu sJ ‚ttƒtu s$J ‚tt ƒt u s.J ‚tdƒdks6J ‚ttdƒs=J ‚tdƒtdƒ ksHJ ‚tt| ƒsOJ ‚t|  ƒt| ƒ ks[J ‚tttƒsbJ ‚tt ƒttƒ ksnJ ‚ttdd	 t ƒsyJ ‚tdd	  t ƒtdd	 t ƒ ksJ ‚ttt	 ƒdks—J ‚tt t	 ƒdks¢J ‚tdt t	 ƒdks®J ‚td
t t	 ƒdksºJ ‚tddd  t t	 ƒdksÊJ ‚tddd  t t	 ƒdksÚJ ‚ttt	 d ƒt	ksæJ ‚tt t	 d ƒt	 ksôJ ‚ttt	 t
ddƒ ƒt	ksJ ‚ttt	 t
ddƒ ƒt	 ksJ ‚ttt	 d ƒtjtdƒ t	 ks)J ‚ttt	 t
d
dƒ ƒt
ddƒtdƒ t	 ksBJ ‚ttt	 d ƒtjtdƒ t	 ksVJ ‚tt t	 d ƒt
ddƒtdƒ t	 ksmJ ‚ttt	 t
ddƒ ƒtjtdƒ t	 ks„J ‚ttt	 t
ddƒ ƒt
ddƒtdƒ t	 ksJ ‚ttt	 d ƒtjt	 ks­J ‚tt t	 d ƒt
ddƒt	 ksÀJ ‚ttt	 t
ddƒ ƒt
ddƒt	 ksÕJ ‚ttt	 t
ddƒ ƒt
ddƒt	 ksêJ ‚ttt	 d ƒttd ƒt	 ksýJ ‚tt t	 d ƒttd ƒ t	 ksJ ‚ttddt	  ƒsJ ‚t| t	 ƒt| ƒt	 ks-J ‚t|t t	 ƒdks:J ‚td| t t	 ƒdksIJ ‚t|t t	 d ƒt|t d ƒt	 ks`J ‚t| ƒjddtt| ƒƒtt| ƒƒ tt| ƒƒtt| ƒƒ fksƒJ ‚tddd} t| ƒjddt| ƒdfksšJ ‚tddd} tt	|  ƒjdu s¬J ‚t| ƒjdu s¶J ‚tt	ƒjdu sÀJ ‚tddd}t|ƒjdu sÐJ ‚tdddjdu sÜJ ‚tdt t	 ddjdu sìJ ‚d S )Núx,yÚkT©Úintegerr   é   éÿÿÿÿé   é   éþÿÿÿéýÿÿÿé
   éI   é   ég   é   é   é   é   é   éûÿÿÿéi   F©ÚdeepÚx©Úextended_real©ÚrealÚp©Úpositive©Úevaluate)r   r   r   r	   r   r
   r)   r   r   r   r   r   ÚHalfr    r&   Úas_real_imagr#   r   r   r   Ú	is_finiteÚis_realÚis_zero)rC   Úyr-   rH   © rS   úW/tmp/pip-target-vg8gfxp4/lib/python/sympy/functions/elementary/tests/test_hyperbolic.pyÚ	test_sinh   sn   (   "(2(..2 &**&*.$ÿ"$rU   c                  C   sb   t dƒ} t| ƒ | dd¡| | d d  | d d  | d d	  | d
 d  t| d ƒ ks/J ‚d S )NrC   r   r6   r;   r>   r:   éx   r8   i°  é	   i€‰ )r   r   Úseriesr(   ©rC   rS   rS   rT   Útest_sinh_series_   ó   >ÿrZ   c                      ó   t dƒ‰ tt‡ fdd„ƒ d S )NrC   c                      ó   t ˆ ƒ d¡S ©Nr2   )r   ÚfdiffrS   rY   rS   rT   Ú<lambda>g   ó    z!test_sinh_fdiff.<locals>.<lambda>©r   r+   r*   rS   rS   rY   rT   Útest_sinh_fdiffe   ó   rc   c                  C   sj  t dƒ\} }tddd}ttƒtu sJ ‚ttƒtu sJ ‚ttƒtu s$J ‚tt ƒtu s-J ‚tdƒdks5J ‚ttdƒs<J ‚tdƒtdƒksFJ ‚tt| ƒsMJ ‚t|  ƒt| ƒksXJ ‚ttt ƒt	tƒksdJ ‚tt t ƒt	tƒksqJ ‚ttdd	 t
 ƒs|J ‚tdd	  t
 ƒtdd	 t
 ƒksJ ‚ttt d ƒdks›J ‚tt t d ƒdks¨J ‚td
dd  d t t d ƒdks¼J ‚tddd  d t t d ƒdksÐJ ‚ttt ƒdksÚJ ‚tt t ƒdksåJ ‚tdt t ƒdksñJ ‚tdt t ƒdksýJ ‚ttt d ƒtjksJ ‚ttt tddƒ ƒtddƒksJ ‚ttt d ƒtjtdƒ ks0J ‚tt t d ƒtjtdƒ ksCJ ‚ttt tddƒ ƒtddƒtdƒ ksZJ ‚ttt td
dƒ ƒtddƒtdƒ ksqJ ‚ttt d ƒtjtdƒ ksƒJ ‚tt t d ƒtjtdƒ ks–J ‚ttt tddƒ ƒtddƒtdƒ ks­J ‚ttt tddƒ ƒtddƒtdƒ ksÄJ ‚ttt d ƒt	td ƒksÕJ ‚tt t d ƒt	td ƒksçJ ‚ttddt  ƒsóJ ‚t| t ƒt	| ƒks J ‚t|t t ƒt	|t ƒksJ ‚td| t t ƒt	d| t ƒks&J ‚tt|t ƒs0J ‚t| ƒjddt	t| ƒƒtt| ƒƒ tt| ƒƒtt| ƒƒ fksSJ ‚tddd} t| ƒjddt| ƒdfksjJ ‚tddd} tt|  ƒjdu s|J ‚tt|  ƒjdu sˆJ ‚ttd d ƒjdu s–J ‚tdt tj d ddjdu s©J ‚t| ƒjdu s³J ‚d S )Nr,   r-   Tr.   r   r0   r1   r2   r3   r5   r6   r7   r8   r9   r:   é   r;   r4   r<   é   r>   r?   r@   r=   FrA   rC   rD   rF   rK   )r   r   r   r	   r   r
   r)   r   r   r#   r   r   rM   r   r    rN   r   r   r&   r   rO   rP   ÚPirQ   ©rC   rR   r-   rS   rS   rT   Ú	test_coshj   sf   &((&$&..$&.."$"*$ÿ"&ri   c                  C   sb   t dƒ} t| ƒ | dd¡d| d d  | d d  | d d	  | d
 d  t| d ƒ ks/J ‚d S )NrC   r   r6   r0   r2   r<   é   r>   éÐ  re   i€  )r   r   rX   r(   rY   rS   rS   rT   Útest_cosh_series³   r[   rl   c                      r\   )NrC   c                      r]   r^   )r   r_   rS   rY   rS   rT   r`   »   ra   z!test_cosh_fdiff.<locals>.<lambda>rb   rS   rS   rY   rT   Útest_cosh_fdiff¹   rd   rm   c                  C   sv  t dƒ\} }tddd}ttƒtu sJ ‚ttƒtu sJ ‚ttƒdks$J ‚tt ƒdks-J ‚tdƒdks5J ‚ttdƒs<J ‚tdƒtdƒ ksGJ ‚tt| ƒsNJ ‚t|  ƒt| ƒ ksZJ ‚tttƒsaJ ‚tt ƒttƒ ksmJ ‚ttdd	 t ƒsxJ ‚tdd	  t ƒtdd	 t ƒ ksŒJ ‚ttt	 ƒdks–J ‚tt t	 ƒdks¡J ‚tdt t	 ƒdks­J ‚td
t t	 ƒdks¹J ‚tddd  t t	 ƒdksÉJ ‚tddd  t t	 ƒdksÙJ ‚ttt	 d ƒtu såJ ‚tt t	 d ƒtu sòJ ‚ttt	 t
ddƒ ƒtu sJ ‚ttt	 t
ddƒ ƒtu sJ ‚ttt	 d ƒtdƒt	 ks#J ‚ttt	 t
d
dƒ ƒtdƒt	 ks7J ‚ttt	 d ƒt	ksDJ ‚tt t	 d ƒt	 ksSJ ‚ttt	 t
ddƒ ƒt	kscJ ‚ttt	 t
ddƒ ƒt	kssJ ‚ttt	 d ƒt	tdƒ ks„J ‚tt t	 d ƒt	 tdƒ ks—J ‚ttt	 t
ddƒ ƒt	tdƒ ks«J ‚ttt	 t
ddƒ ƒt	tdƒ ks¿J ‚ttt	 d ƒttd ƒt	 ksÒJ ‚tt t	 d ƒttd ƒ t	 ksçJ ‚ttddt	  ƒsóJ ‚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	 d ƒt|t d ƒt	 ks5J ‚t| ƒjddtt| ƒƒtt| ƒƒ tt| ƒƒd tt| ƒƒd   tt| ƒƒtt| ƒƒ tt| ƒƒd tt| ƒƒd   fksxJ ‚tddd} t| ƒjddt| ƒdfksJ ‚tt	t d d ƒjdu sŸJ ‚t| ƒjdu s©J ‚tt	t |  d ƒjd u s¹J ‚d S )Nr,   r-   Tr.   r0   r1   r   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   FrA   rC   rD   )r   r   r   r	   r   r
   r)   r   r   r   r   r    r'   rN   r   r   r   r#   r   r&   rP   rh   rS   rS   rT   Ú	test_tanh¾   sh   (    "(  "&((&*.2ÿ6þ" $rn   c                  C   sn   t dƒ} t| ƒ | dd¡| | d d  d| d  d  d| d	  d
  d| d  d  t| d ƒ ks5J ‚d S )NrC   r   r6   r;   r2   r:   é   r=   r8   i;  é>   rW   i  )r   r   rX   r(   rY   rS   rS   rT   Útest_tanh_series  ó   Jÿrq   c                      r\   )NrC   c                      r]   r^   )r   r_   rS   rY   rS   rT   r`     ra   z!test_tanh_fdiff.<locals>.<lambda>rb   rS   rS   rY   rT   Útest_tanh_fdiff  rd   rs   c                  C   s¶  t dƒ\} }tddd}ttƒtu sJ ‚ttƒtu sJ ‚ttƒdks$J ‚tt ƒdks-J ‚tdƒtu s5J ‚ttdƒs<J ‚tdƒtdƒ ksGJ ‚tt| ƒsNJ ‚t|  ƒt| ƒ ksZJ ‚ttt ƒt t	tƒ ksiJ ‚tt t ƒt	tƒt ksxJ ‚ttdd	 t
 ƒsƒJ ‚tdd	  t
 ƒtdd	 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 ƒt t	dt ƒ ksÈJ ‚td
t t ƒtt	dt ƒ ksÚJ ‚tddd  t t ƒtt	ddd  t ƒ ksôJ ‚tddd  t t ƒt t	ddd  t ƒ ksJ ‚ttt d ƒdksJ ‚tt t d ƒdks+J ‚ttt tddƒ ƒdks;J ‚ttt tddƒ ƒdksKJ ‚ttt d ƒt tdƒ ks]J ‚ttt td
dƒ ƒt tdƒ ksrJ ‚ttt d ƒt ks€J ‚tt t d ƒtksŽJ ‚ttt tddƒ ƒt ksŸJ ‚ttt tddƒ ƒt ks°J ‚ttt d ƒtdƒ t ksÂJ ‚tt t d ƒtdƒt ksÔJ ‚ttt tddƒ ƒtdƒ t kséJ ‚ttt tddƒ ƒtdƒ t ksþJ ‚ttt d ƒt	td ƒ t ksJ ‚tt t d ƒt	td ƒt ks&J ‚ttddt  ƒs2J ‚t| t ƒt	| ƒ t ksBJ ‚t|t t ƒt	|t ƒ t ksVJ ‚td| t t ƒt	d| t ƒ t ksnJ ‚t|t t ƒt	|t ƒ t ks‚J ‚tttdƒƒƒtttdƒ ƒƒks–J ‚tdtt d  ƒtdƒks§J ‚t| ƒjddtt| ƒƒtt| ƒƒ tt| ƒƒd tt| ƒƒd   tt| ƒƒ tt| ƒƒ tt| ƒƒd tt| ƒƒd   fksëJ ‚tddd} t| ƒjddt| ƒdfksJ ‚ttd|  ƒƒt| ƒd d dt| ƒ  ksJ ‚ttd|  ƒƒt| ƒd dt| ƒ  ddt| ƒd    ks<J ‚tt| | ƒƒdt| ƒt|ƒ  t| ƒt|ƒ  ksYJ ‚d S )Nr,   r-   Tr.   r0   r1   r   r2   r3   r4   r5   r6   r7   r;   r8   r9   r:   r<   r=   r>   r?   r@   FrA   rC   rD   )r   r   r   r	   r   r
   r)   r   r   r$   r   r   r    r   r'   r   rN   r   r   r   r&   r   r#   r   rh   rS   rS   rT   Ú	test_coth  sl   (&$48  $*""$$**(( (0(("2ÿ8þ"2B>rt   c                  C   sf   t dƒ} t| ƒ | dd¡d|  | d  | d d  d| d  d	  | d
 d  t| d ƒ ks1J ‚d S )NrC   r   re   r0   r;   é-   r2   r:   i±  r8   iu  )r   r   rX   r(   rY   rS   rS   rT   Útest_coth_series]  s   Bÿrv   c                      r\   )NrC   c                      r]   r^   )r   r_   rS   rY   rS   rT   r`   e  ra   z!test_coth_fdiff.<locals>.<lambda>rb   rS   rS   rY   rT   Útest_coth_fdiffc  rd   rw   c                  C   s¸  t dƒ\} }tddd}tddd}ttƒtu sJ ‚ttƒtu s"J ‚ttƒdks*J ‚tt ƒdks3J ‚tdƒtu s;J ‚tdƒtd	ƒ ksFJ ‚t|  ƒt| ƒ ksRJ ‚tt ƒttƒ ks^J ‚td
d  t ƒtd
d t ƒ ksrJ ‚ttt ƒtu s|J ‚tt t ƒtu s‡J ‚td
t t ƒtu s“J ‚tdt t ƒtu sŸJ ‚tddd  t t ƒtu s¯J ‚tddd  t t ƒtu s¿J ‚ttt d
 ƒt ksÌJ ‚tt t d
 ƒtksÙJ ‚ttt t	dd
ƒ ƒt kséJ ‚ttt t	dd
ƒ ƒtksøJ ‚ttt d ƒdt
dƒ t ksJ ‚ttt t	ddƒ ƒd
t
dƒ t ks!J ‚ttt d ƒt
d
ƒ t ks3J ‚tt t d ƒt
d
ƒt ksEJ ‚ttt t	ddƒ ƒt
d
ƒt ksYJ ‚ttt t	ddƒ ƒt
d
ƒt ksmJ ‚ttt d ƒdt ks|J ‚tt t d ƒd
t ksŒJ ‚ttt t	ddƒ ƒd
t ksžJ ‚ttt t	ddƒ ƒdt ks°J ‚ttt t	ddƒ ƒd
t ksÂJ ‚ttt d ƒdttd ƒ t ks×J ‚tt t d ƒd	ttd ƒ t ksíJ ‚t| t ƒdt| ƒ t ksþJ ‚t|t t ƒtu sJ ‚td| t t ƒtu sJ ‚t|t t d
 ƒdt|t d
 ƒ t ks3J ‚t|ƒjdu s=J ‚tt| | ƒƒd	t| ƒt|ƒ t| ƒt|ƒ   ksZJ ‚d S )Nr,   r-   Tr.   ÚnrI   r   r1   r0   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r>   éùÿÿÿr?   r@   r=   )r   r   r   r	   r   r
   r   r   r   r   r    r&   rP   r   r   r   ©rC   rR   r-   rx   rS   rS   rT   Ú	test_cschh  sR   (   &,$$(( $$$*,"2>r{   c                  C   s~   t dƒ} t| ƒ | dd¡d|  | d  d| d  d  d	| d
  d  d| d  d  d| d  d  t| d ƒ ks=J ‚d S )NrC   r   r6   r0   r>   r8   r;   ih  é   r:   i;  é   i€:	 r7   rW   i 54 )r   r   rX   r(   rY   rS   rS   rT   Útest_csch_series¥  s   >ÿ
ÿÿr~   c                      r\   )NrC   c                      r]   r^   )r   r_   rS   rY   rS   rT   r`   ®  ra   z!test_csch_fdiff.<locals>.<lambda>rb   rS   rS   rY   rT   Útest_csch_fdiff¬  rd   r   c                  C   s>  t dƒ\} }tddd}tddd}ttƒtu sJ ‚ttƒtu s"J ‚ttƒdks*J ‚tt ƒdks3J ‚tdƒdks;J ‚td	ƒtdƒksEJ ‚t|  ƒt| ƒksPJ ‚ttt ƒttƒks\J ‚tt t ƒttƒksiJ ‚td
d  t	 ƒtd
d t	 ƒks|J ‚ttt d
 ƒtu sˆJ ‚tt t d
 ƒtu s•J ‚tddd  d t t d
 ƒtu s©J ‚tddd  d t t d
 ƒtu s½J ‚ttt ƒd	ksÇJ ‚tt t ƒd	ksÒJ ‚tdt t ƒd	ksÞJ ‚tdt t ƒdksêJ ‚ttt d ƒd
ksöJ ‚ttt t
ddƒ ƒdksJ ‚ttt d ƒtd
ƒksJ ‚tt t d ƒtd
ƒks%J ‚ttt t
ddƒ ƒtd
ƒ ks8J ‚ttt t
ddƒ ƒtd
ƒ ksKJ ‚ttt d ƒd
tdƒ ks\J ‚tt t d ƒd
tdƒ ksnJ ‚ttt t
ddƒ ƒdtdƒ ks‚J ‚ttt t
ddƒ ƒd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 ƒdt| ƒ ksÌJ ‚t|t t ƒdt|t ƒ ksßJ ‚td| t t ƒdtd| t ƒ ksöJ ‚t|ƒjdu s J ‚tt| | ƒƒdt| ƒt|ƒ t| ƒt|ƒ   ksJ ‚d S )Nzx, yr-   Tr.   rx   rI   r   r0   r1   r2   r3   r5   r6   r7   r8   r9   r:   re   r;   r4   r<   r?   r>   r@   r=   )r   r   r   r	   r   r
   r   r   r%   r   r   r    r#   rP   r   r   r   rz   rS   rS   rT   Ú	test_sech±  sL   &((  &&"$((&(&.>r€   c                  C   sn   t dƒ} t| ƒ | dd¡d| d d  d| d  d  d	| d
  d  d| d  d  t| d ƒ ks5J ‚d S )NrC   r   r6   r0   r2   r:   r<   rj   é=   r>   rk   i  re   i€  )r   r   rX   r(   rY   rS   rS   rT   Útest_sech_seriesë  rr   r‚   c                      r\   )NrC   c                      r]   r^   )r   r_   rS   rY   rS   rT   r`   ó  ra   z!test_sech_fdiff.<locals>.<lambda>rb   rS   rS   rY   rT   Útest_sech_fdiffñ  rd   rƒ   c                  C   sn  t dƒ\} }tt| ƒsJ ‚t|  ƒt| ƒ ksJ ‚ttƒtu s!J ‚tdƒdks)J ‚tdƒttdƒd ƒks7J ‚tdƒttdƒd ƒksEJ ‚ttƒtt d ksQJ ‚tt ƒt t d ks_J ‚ttd ƒtt d ksmJ ‚tt d ƒt t d ks}J ‚ttƒtu s…J ‚tt ƒt u sJ ‚ttt ƒtu s™J ‚tt t ƒt u s¥J ‚tt	ƒt	u s­J ‚tttdƒd  dt
ddƒ  ƒtt d ksÆJ ‚tt tdƒd  dt
ddƒ  ƒt t d ksáJ ‚tttd	ƒd  d
 ƒtt d ksõJ ‚tt td	ƒd  d
 ƒt t d ksJ ‚tttd	ƒd  d
 ƒtt t
ddƒ ks$J ‚tt td	ƒd  d
 ƒtt t
ddƒ ks=J ‚tt
ddƒƒttjƒ ksMJ ‚ttttdƒƒƒsYJ ‚ttdddƒdksfJ ‚ttdddƒdkssJ ‚ttdddƒdks€J ‚tttddƒtksJ ‚ttt ddƒt ksœJ ‚ttd	t ddƒdt t d	t  ks³J ‚ttddt  ƒƒdd
t t  dt  ksÌJ ‚ttddt  ƒƒddt  dt t  ksåJ ‚ttddt  ƒƒddt t  dt  ksþJ ‚ttddt  ƒƒdtt  dt  ksJ ‚tddd}t|ƒjdu s%J ‚ttdddddjdu s5J ‚d S )Nr,   r   r0   r2   r1   r>   r;   é   r:   r<   r6   r5   Úv1FrK   r4   ro   rf   i·ÿÿÿéa   r7   r|   ry   é   r8   é   ióÿÿÿrH   TrI   )r   r)   r   r	   r   r    r   r   r
   r   r   r   rM   r   r   rQ   )rC   rR   rH   rS   rS   rT   Ú
test_asinhö  sJ    26(.02 .222.$r‰   c                  C   sæ   t dƒ} t| ƒ t¡t| t| d d ƒ ƒksJ ‚t| ƒ t¡t| td| d  ƒ ƒks.J ‚t| ƒ t¡t| ƒks;J ‚t| dt  ƒ t¡t tt|  dt  ƒ ksUJ ‚t| ƒ t¡tt t| ƒ t	d   tt	 d  ksqJ ‚d S )NrC   r2   r0   )
r   r   Úrewriter   r    r   r"   r   r!   r   rY   rS   rS   rT   Útest_asinh_rewrite.  s   **4<r‹   c                  C   s®   t dƒ} t| ƒ | dd¡| | d d  d| d  d  d| d  d	  t| d ƒ ks-J ‚t| ƒ d| ¡}|d| d  d ksAJ ‚t| ƒ d| |d¡d
| d  d	 ksUJ ‚d S )NrC   r   re   r;   r>   r:   é(   r8   ép   r?   )r   r   rX   r(   Útaylor_term©rC   Út5rS   rS   rT   Útest_asinh_series7  s   :ÿ,r‘   c                      r\   )NrC   c                      r]   r^   )r   r_   rS   rY   rS   rT   r`   B  ra   z"test_asinh_fdiff.<locals>.<lambda>rb   rS   rS   rY   rT   Útest_asinh_fdiff@  rd   r’   c                  C   sâ  t dƒ} tt|  ƒsJ ‚tdƒdksJ ‚tdƒtt ksJ ‚tdƒtt d ks*J ‚ttjƒtt d ks7J ‚ttddƒƒtt tddƒ ksIJ ‚ttƒtu sQJ ‚tt	ƒt	u sYJ ‚tt	 ƒt	u sbJ ‚ttt	 ƒt	tt d  ksrJ ‚tt t	 ƒt	tt d  ksƒJ ‚tt
ƒt
u s‹J ‚ttƒttdtdƒ  ƒks›J ‚tt ƒtt dtdƒ  ƒks­J ‚ttdƒd dtdƒ  ƒtt tddƒ ksÆJ ‚ttdƒd  dtdƒ  ƒtt td	dƒ ksàJ ‚ttdƒd ƒtt d
 ksðJ ‚ttdƒ d ƒtt tdd
ƒ ksJ ‚ttdƒd ƒtt d ksJ ‚ttdƒ d ƒtt tddƒ ks+J ‚ttdtdƒ ƒd ƒtt d ks@J ‚ttdtdƒ ƒ d ƒtt td	dƒ ksYJ ‚ttdtdƒ ƒd ƒtt tddƒ ksqJ ‚ttdtdƒ ƒ d ƒtt tddƒ ksŠJ ‚tdtdƒ dtdƒ  ƒtt d ks¡J ‚tdtdƒ  dtdƒ  ƒtt tddƒ ks¼J ‚ttdƒd d
 ƒtt d ksÏJ ‚ttdƒd  d
 ƒtt td
dƒ ksæJ ‚ttdt ƒ d¡ƒdksöJ ‚ttdt ƒ d¡ƒdksJ ‚ttt dƒƒsJ ‚ttdddƒdksJ ‚ttdddƒdks*J ‚ttdddƒdks7J ‚tttddƒtksDJ ‚ttt ddƒtksRJ ‚ttd	t ddƒdt t d	t  ksiJ ‚ttdt ƒƒdt ksxJ ‚ttddt  ƒƒddt  ks‹J ‚ttddt  ƒƒddt  ksžJ ‚ttddt  ƒƒddt t  dt  ks·J ‚ttddt  ƒƒddt  d
t t  ksÐJ ‚tttdƒt ƒƒtdƒt ksãJ ‚tdddjdu sïJ ‚d S )NrC   r0   r   r1   r2   r;   r:   r„   r8   r<   r>   re   rf   z2.31244 + 1.5708*Ir?   z2.31244 - 1.5708*Ir…   r5   FrK   r4   r=   iëÿÿÿé   T)r   r)   r   r   r   r   rM   r   r	   r
   r   r   r    Ústrrx   r   rQ   rY   rS   rS   rT   Ú
test_acoshE  sZ   $ " $24 *"**202.6&.  .&&22&r•   c                  C   sœ  t dƒ} t| ƒ t¡t| t| d ƒt| d ƒ  ƒksJ ‚t| ƒ t¡t| d ƒt| ƒ td   td|  ƒ ks;J ‚t| ƒ t¡t| d ƒt| ƒ td   td|  ƒ ksYJ ‚t| ƒ t¡t| d ƒt| d ƒ tt| d d ƒ|  ƒ t| d d ƒ tt| d ƒ |  t| d ƒ d  dtd|  ƒ   ksJ ‚t ddd} t| ƒ t¡t| d ƒt| d ƒ tt| d d ƒ|  ƒ t| d d ƒ ksÌJ ‚d S )NrC   r0   r2   r4   TrI   )	r   r   rŠ   r   r    r"   r   r   r   rY   rS   rS   rT   Útest_acosh_rewrite  s   2<<>4ÿÿ>ÿr–   c                  C   sÔ   t dƒ} t| ƒ | dd¡t |  tt d  t| d  d  dt | d  d  dt | d	  d
  t| d ƒ ks<J ‚t| ƒ d| ¡}|dt | d  d ksRJ ‚t| ƒ d	| |d¡dt | d	  d
 kshJ ‚d S )NrC   r   re   r2   r;   r>   r:   rŒ   r8   r   r5   r?   )r   r   rX   r   r   r(   rŽ   r   rS   rS   rT   Útest_acosh_seriesŽ  s   Xÿ0r—   c                      r\   )NrC   c                      r]   r^   )r   r_   rS   rY   rS   rT   r`   ™  ra   z"test_acosh_fdiff.<locals>.<lambda>rb   rS   rS   rY   rT   Útest_acosh_fdiff—  rd   r˜   c                  C   sÄ  t dƒ} tt|  ƒsJ ‚tdƒdksJ ‚tdƒtt ksJ ‚tdƒtu s&J ‚tdƒtt d ks2J ‚tdƒdt t d ks@J ‚ttƒtu sHJ ‚ttƒtt d ksTJ ‚tt ƒtt d ksaJ ‚ttƒttt d td ƒ kssJ ‚ttƒt	dt
dƒ ƒtt d  ks‡J ‚tt ƒt	dt
dƒ ƒtt d  ksœJ ‚tt
dƒt
dƒ ƒd	t t d
 ks°J ‚tt
ddt
dƒ  ƒƒtt d ksÄJ ‚tt
ddt
dƒ  ƒ ƒdt t d ksÛJ ‚tdt
dt
dƒ ƒ ƒtt d ksïJ ‚tdt
dt
dƒ ƒ ƒdt t d ksJ ‚tt
dƒd ƒtt d ksJ ‚tdt
dƒ ƒdt t d ks*J ‚tt
ddt
dƒ  ƒ ƒdt t d ksBJ ‚tt
dƒƒtdt
dƒ ƒksSJ ‚tdt
dƒ ƒtt
dƒd ƒksfJ ‚tdt
dt
dƒ ƒ ƒtt
dt
dƒ ƒd ƒksJ ‚tdƒttjƒksJ ‚tt
dƒ ƒttdt
dƒ ƒ ks¡J ‚tdt
dƒ ƒttt
dƒ d ƒ ks·J ‚ttdƒ ƒtttddƒƒ ksÊJ ‚tdt
dƒ ƒttt
dƒ d ƒ ksàJ ‚tttt
dƒt
dƒ ƒƒt
dƒt
dƒ  ƒdksûJ ‚tttt
dƒt
dƒ ƒƒt
dƒt
dƒ  ƒdksJ ‚ttt
ddt
dƒ  ƒƒƒt
ddt
dƒ  ƒ  ¡ dks5J ‚ttt
ddt
dƒ  ƒ ƒƒt
ddt
dƒ  ƒ   ¡ dksVJ ‚ttt
ddt
dƒ  ƒƒƒt
ddt
dƒ  ƒ  ¡ dksuJ ‚tttdt
dƒ ƒƒdt
dƒ  ƒdksŒJ ‚tttdt
dƒ ƒƒdt
dƒ  ƒdks£J ‚tttt
dƒ t
dƒ ƒƒt
dƒ t
dƒ  ƒdksÀJ ‚ttdt ƒ d¡ƒdksÐJ ‚ttdt ƒ d¡ƒdksàJ ‚d S )NrC   r0   r   r1   r2   r;   r4   r>   rf   r„   r:   r6   rW   re   r8   r<   z0.19869 - 1.5708*Ir?   z0.19869 + 1.5708*I)r   r)   r   r   r   r
   r	   r   r   r   r    r   r   rM   r!   r   r   r   Úsimplifyr”   rx   rY   rS   rS   rT   Ú
test_asechœ  sN   $(*((.(."&0"&6(,&,66>B>..: $rš   c                  C   s\   t dƒ} t| ƒ d| ¡}|d| d  d ksJ ‚t| ƒ d| |d¡d| d  d ks,J ‚d S )	NrC   r>   r?   é`   re   r   iÝÿÿÿr3   )r   r   Úexpansion_term)rC   Út6rS   rS   rT   Útest_asech_seriesÖ  s   ,rž   c               	   C   sP  t dƒ} t| ƒ t¡td|  td|  d ƒtd|  d ƒ  ƒks#J ‚t| ƒ t¡td|  ƒks2J ‚t| ƒ t¡tdd|   ƒtd|  ƒ td   tdd|   ƒ ksVJ ‚t| ƒ t	¡t| d ƒtd| d  ƒ t	td| d  ƒƒ t
t t| ƒ td|  ƒ d t
t| d ƒ dt| d  ƒ   t
t|  ƒ dt| ƒ     ks¦J ‚d S )NrC   r0   r1   r2   )r   r   rŠ   r   r    r   r   r"   r   r   r   rY   rS   rS   rT   Útest_asech_rewriteÝ  s   >HŒÿrŸ   c                      r\   )NrC   c                      r]   r^   )r   r_   rS   rY   rS   rT   r`   è  ra   z"test_asech_fdiff.<locals>.<lambda>rb   rS   rS   rY   rT   Útest_asech_fdiffæ  rd   r    c                  C   sÂ  t dƒ} tt| ƒsJ ‚t|  ƒt| ƒ ksJ ‚tdƒtdtdƒ ƒks%J ‚tdƒtdtdƒ ƒ ks4J ‚tdƒtu s<J ‚tdƒtdtdƒ d ƒksLJ ‚tdƒtdtdƒ d ƒ ks]J ‚ttƒt t d ksjJ ‚tt ƒtt d kswJ ‚tt tdƒtdƒ  ƒtt d	 ksŒJ ‚tttdƒtdƒ  ƒt t d	 ks¡J ‚tt dtdƒ  ƒtt d
 ks´J ‚ttdtdƒ  ƒt t d
 ksÇJ ‚tt d tdtdƒ ƒ ƒtt d ksÞJ ‚ttd tdtdƒ ƒ ƒt t d ksõJ ‚tt d ƒtt d ksJ ‚ttd ƒt t d ksJ ‚tt tddtdƒ  ƒ ƒtt d ks-J ‚tttddtdƒ  ƒ ƒt t d ksEJ ‚tt tdƒ ƒtt d ksWJ ‚tttdƒ ƒt t d ksiJ ‚tt tdƒd  ƒdt t d
 ksJ ‚tttdƒd  ƒdt t d
 ks”J ‚tt d tdƒ ƒtt d ks¨J ‚ttd tdƒ ƒt t d ks¼J ‚tt d tdtdƒ ƒ ƒdt t d ksÖJ ‚ttd tdtdƒ ƒ ƒdt t d ksïJ ‚tt tddtdƒ  ƒ ƒdt t d ks	J ‚tttddtdƒ  ƒ ƒdt t d ks"J ‚tt tdƒtdƒ  ƒdt t d	 ks:J ‚tttdƒtdƒ  ƒdt t d	 ksQJ ‚ttƒtu sZJ ‚tt tdƒ ƒt	ttdƒ ƒksnJ ‚tt d tdƒ ƒt	ttdƒ d ƒks†J ‚tt tdƒ ƒt t
dtdƒ ƒ ksJ ‚tt d tdƒ ƒt t
tdƒ d ƒ ks·J ‚tttt tdƒtdƒ  ƒƒt tdƒtdƒ   ƒdksØJ ‚ttttdtdƒ  ƒƒtdtdƒ   ƒdksóJ ‚ttttddtdƒ  ƒ ƒƒttddtdƒ  ƒ   ¡ dksJ ‚ttt tddtdƒ  ƒ ƒƒt tddtdƒ  ƒ   ¡ dks;J ‚ttdt d ƒ d¡ƒdksMJ ‚ttdt d ƒ d¡ƒdks_J ‚d S )NrC   r0   r2   r1   r   r:   r4   r>   r„   r6   re   r<   r;   r5   r?   z0.0391819 - 0.193363*Iz0.0391819 + 0.193363*I)r   r)   r   r   r    r   r   r   r	   r   r"   r   r   r™   r”   rx   rY   rS   rS   rT   Ú
test_acschë  sV    "**&&..  00$$,*((42420.(0.4B6FJ$(r¡   c                   C   s6   t tƒdksJ ‚t t ƒdksJ ‚t tƒdksJ ‚d S )Nr   )r   r
   r   rS   rS   rS   rT   Útest_acsch_infinities&  s   r¢   c                  C   sÀ   t dƒ} t| ƒ t¡td|  td| d  d ƒ ƒksJ ‚t| ƒ t¡td|  ƒks,J ‚t| ƒ t¡t| d  ƒt| d d d  ƒ tt| d d ƒƒ | d d  td   |  ks^J ‚d S ©NrC   r0   r2   )r   r   rŠ   r   r    r   r   r   rY   rS   rS   rT   Útest_acsch_rewrite,  s   2.ÿ
ÿþþr¤   c                      r\   )NrC   c                      r]   r^   )r   r_   rS   rY   rS   rT   r`   7  ra   z"test_acsch_fdiff.<locals>.<lambda>rb   rS   rS   rY   rT   Útest_acsch_fdiff5  rd   r¥   c                  C   s2  t dƒ} tdƒdksJ ‚ttƒtt d ksJ ‚tt ƒt t d ks&J ‚tdƒtu s.J ‚tdƒt u s7J ‚ttƒtu s?J ‚ttƒt t d ksLJ ‚tt ƒtt d ksYJ ‚ttt ƒtt d ksgJ ‚tt t ƒt t d kswJ ‚ttƒttt d td ƒ ks‰J ‚t|  ƒt| ƒ ks•J ‚tttdƒ ƒtt d ks¥J ‚tt tdƒ ƒt t d ks·J ‚tttdƒ ƒtt d ksÇJ ‚tt tdƒ ƒt t d ksÙJ ‚ttdtdƒ  ƒtt t	dd	ƒ ksîJ ‚tttdƒd  ƒtt d	 ksJ ‚ttdtdƒ  ƒt t d	 ksJ ‚tt dtdƒ  ƒtt t	d
d	ƒ ks,J ‚tttddtdƒ  ƒ ƒtt t	ddƒ ksFJ ‚tt tddtdƒ  ƒ ƒtt t	ddƒ ksaJ ‚ttdtdƒ  ƒtt d kstJ ‚tttdƒd  ƒt t d ksˆJ ‚ttƒt t d ks–J ‚tt	ddƒƒtt
jƒ ks¦J ‚tttt dƒƒƒs²J ‚ttdddƒdks¿J ‚ttdddƒdksÌJ ‚ttdddƒd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 ddƒdt dt t  ksJ ‚ttdt ƒƒdt ksJ ‚ttddt  ƒƒddt t  dt  ks4J ‚tttd ƒƒtd ksCJ ‚tttƒƒtksNJ ‚ttd
dt  ƒƒd
dt t  dt  ksgJ ‚ttdtd d  ƒƒdtd d  ks~J ‚ttddt  ƒƒddt  dt t  ks—J ‚d S )NrC   r   r<   r0   r1   r2   r;   r>   re   r5   r:   r4   r„   r…   r?   FrK   r8   iõÿÿÿrW   iàÿÿÿé{   é'   )r   r   r   r   r
   r	   r   r   r    r   r   rM   r)   r   rY   rS   rS   rT   Ú
test_atanh:  sR    $ $ $*&(.46&( .22.6r¨   c                  C   s´   t dƒ} t| ƒ t¡td|  ƒtd|  ƒ d ksJ ‚t| ƒ t¡t|  dt| d  ƒ  t|  ƒtd| d  ƒ td| d d  ƒ ttd| d d  ƒƒ t| ƒ  ksXJ ‚d S r£   )r   r   rŠ   r   r   r   r    rY   rS   rS   rT   Útest_atanh_rewritet  s
   .fÿr©   c                  C   sb   t dƒ} t| ƒ | dd¡| | d d  | d d  | d d  | d d  t| d ƒ ks/J ‚d S )NrC   r   r6   r;   r:   r8   rW   )r   r   rX   r(   rY   rS   rS   rT   Útest_atanh_series{  r[   rª   c                      r\   )NrC   c                      r]   r^   )r   r_   rS   rY   rS   rT   r`   ƒ  ra   z"test_atanh_fdiff.<locals>.<lambda>rb   rS   rS   rY   rT   Útest_atanh_fdiff  rd   r«   c                  C   sP  t dƒ} tdƒtt d ksJ ‚ttƒt t d ksJ ‚tt ƒtt d ks*J ‚tdƒtu s2J ‚tdƒt u s;J ‚ttƒtu sCJ ‚ttƒdksKJ ‚tt ƒdksTJ ‚ttt ƒdks^J ‚tt t ƒdksiJ ‚ttƒdksqJ ‚t|  ƒt| ƒ ks}J ‚tttdƒ ƒt t d ksŽJ ‚tt tdƒ ƒtt d ksŸJ ‚tttdƒ ƒt t d ks°J ‚tt tdƒ ƒtt d ksÁJ ‚ttdtdƒ  ƒt t d	 ksÔJ ‚tt tdƒd  ƒtt d	 ksçJ ‚ttdt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dƒ  ƒ ƒt t d ks*J ‚tt tddtdƒ  ƒ ƒtt d ksBJ ‚ttdtdƒ  ƒt t d ksVJ ‚tt dtdƒ  ƒtt d ksjJ ‚ttdt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dƒƒtt	j
ƒ ks¦J ‚d S )NrC   r   r2   r<   r0   r1   r;   r>   re   r5   r:   r6   r„   r?   )r   r   r   r   r
   r	   r   r    r   r   rM   rY   rS   rS   rT   Ú
test_acoth†  s8   """"&&*,00((,,$r¬   c               	   C   sæ   t dƒ} t| ƒ t¡tdd|   ƒtdd|   ƒ d ksJ ‚t| ƒ t¡td|  ƒks.J ‚t| ƒ t¡| t| d ƒ ttd| d d  ƒƒ tt t| d |  ƒt| | d  ƒ t| | d  ƒtdd|   ƒ   d  ksqJ ‚d S )NrC   r0   r2   r4   )	r   r   rŠ   r   r   r   r    r   r   rY   rS   rS   rT   Útest_acoth_rewrite®  s   6rÿr­   c                  C   sn   t dƒ} t| ƒ | dd¡tt d |  | d d  | d d  | d d  | d d  t| d ƒ ks5J ‚d S )	NrC   r   r6   r2   r;   r:   r8   rW   )r   r   rX   r   r   r(   rY   rS   rS   rT   Útest_acoth_series¶  rr   r®   c                      r\   )NrC   c                      r]   r^   )r   r_   rS   rY   rS   rT   r`   ¾  ra   z"test_acoth_fdiff.<locals>.<lambda>rb   rS   rS   rY   rT   Útest_acoth_fdiff¼  rd   r¯   c                      sÒ   t dƒ‰ tˆ ƒ ¡ tksJ ‚tt‡ fdd„ƒ tˆ ƒ ¡ tks!J ‚tˆ ƒ ¡ t	ks+J ‚tˆ ƒ ¡ tks5J ‚t
ˆ ƒ ¡ tks?J ‚tˆ ƒ ¡ tksIJ ‚t	ˆ ƒ ¡ tksSJ ‚tˆ ƒ ¡ tks]J ‚tˆ ƒ ¡ tksgJ ‚d S )NrC   c                      s   t ˆ ƒ ¡ S )N)r   ÚinverserS   rY   rS   rT   r`   Ä  s    ztest_inverses.<locals>.<lambda>)r   r   r°   r   r+   ÚAttributeErrorr   r   r   r   r   r   r   r   r   r   rS   rS   rY   rT   Útest_inversesÁ  s   r²   c                  C   s  t dƒ} t| ƒ | ¡dksJ ‚t| ƒ | ¡d|  ksJ ‚t| ƒ | ¡tt d ks+J ‚t| ƒ | ¡tt d ks:J ‚tt	t
tfD ]}|| ƒ | ¡| ksMJ ‚q@ttt	tt
tttfD ]}d|  tjfD ]}||ƒ}| | ¡|kspJ ‚qaqXttfD ]}|tjƒ}| | ¡|ks†J ‚qvd S r£   )r   r   Úas_leading_termr   r   r   r   r   r   r   r   r   r   rM   r   r   )rC   ÚfuncÚarÚeqrS   rS   rT   Útest_leading_termÏ  s    þ
þr·   c                  C   sâ  t ddd\} }| |t  }ttttttfD ]}||ƒ ¡ || |t  ƒks(J ‚qdD ]B}t|ƒj	d|dt| ƒt
|ƒ tt| ƒ t|ƒ  ksKJ ‚t|ƒj	d|dt| ƒt
|ƒ tt| ƒ t|ƒ  kshJ ‚t|ƒj	d|dt| ƒt| ƒ t
|ƒd t| ƒd   tt|ƒ t
|ƒ t
|ƒd t| ƒd    ksJ ‚t|ƒj	d|dt| ƒt| ƒ t|ƒd t| ƒd   tt|ƒ t
|ƒ t|ƒd t| ƒd    ksÒJ ‚t|ƒj	d|dt
|ƒt| ƒ t|ƒd t| ƒd  t
|ƒd t| ƒd    tt|ƒ t| ƒ t|ƒd t| ƒd  t
|ƒd t| ƒd     ks J ‚t|ƒj	d|dt
|ƒt| ƒ t|ƒd t| ƒd  t
|ƒd t| ƒd    tt|ƒ t| ƒ t|ƒd t| ƒd  t
|ƒd t| ƒd     ksnJ ‚q+d S )Núa,bTrF   ©TF©ÚcomplexrB   r2   )r   r   r   r   r   r   r   r   Ú	conjugateÚexpandr#   r&   )ÚaÚbÚzr´   rB   rS   rS   rT   Útest_complexà  sh   "
ÿ"ÿÿ"ÿÿÿ*
ÿÿÿ*
ÿ(
ÿÿ
ÿÿÿ(
ÿÿ
ÿÿÿôrÁ   c                  C   sN   t ddd\} }dD ]}ttttfD ]}|| ƒjd|d|| ƒks#J ‚qq
d S )Nr¸   TrF   r¹   rº   )r   r   r   r   r   r½   )r¾   r¿   rB   r´   rS   rS   rT   Útest_complex_2899ö  s    ÿÿrÂ   c                  C   s>  t dƒ} tt| ƒƒ| ksJ ‚tt| ƒƒt| d ƒt| d ƒ ks"J ‚tt| ƒƒ| td| d  ƒ ks4J ‚tt| ƒƒdt| d ƒt| d ƒ  ksJJ ‚tt| ƒƒtd| d  ƒksZJ ‚tt| ƒƒ| ksdJ ‚tt| ƒƒdtd| d  ƒ ksvJ ‚tt| ƒƒ| t| d ƒt| d ƒ  ksŒJ ‚tt| ƒƒ| td| d  ƒ ksžJ ‚tt| ƒƒt| d ƒt| d ƒ |  ks´J ‚tt| ƒƒ| ks¾J ‚tt| ƒƒd|  ksÊJ ‚t	t| ƒƒtd| d  ƒ|  ksÜJ ‚t	t| ƒƒ| t| d ƒt| d ƒ  ksòJ ‚t	t| ƒƒd|  ksþJ ‚t	t| ƒƒ| ks	J ‚t
t| ƒƒd|  ksJ ‚t
t| ƒƒdt| d ƒt| d ƒ  ks-J ‚t
t| ƒƒtd| d  ƒ|  ks@J ‚t
t| ƒƒt| d ƒt| d ƒ ksUJ ‚tt| ƒƒdtd| d  ƒ kshJ ‚tt| ƒƒd|  ksuJ ‚tt| ƒƒtd| d  ƒks†J ‚tt| ƒƒt| d ƒt| d ƒ |  ksJ ‚d S r£   )r   r   r   r   r    r   r   r   r   r   r   r   rY   rS   rS   rT   Útest_simplificationsý  s2   ($, $,$,$,.&*&"2rÃ   c                   C   s,   t ttdƒd ƒƒttdƒd ƒksJ ‚d S )Nr;   r2   rˆ   r<   )r   r   r   r    rS   rS   rS   rT   Útest_issue_4136  s   ,rÄ   c                  C   sâ   t dƒ} t| ƒ t¡t| ƒt|  ƒ d   kr"t| ƒ d¡ks%J ‚ J ‚t| ƒ t¡t t| tt d  ƒ ks;J ‚ttj	|  ƒ}t| ƒ t¡d| d|d   ksUJ ‚t
tj	|  ƒ}t| ƒ t
¡d| |d d  ksoJ ‚d S ©NrC   r2   Ú	tractabler0   )r   r   rŠ   r   r   r   r   r   r   rM   r   ©rC   Ú	tanh_halfÚ	coth_halfrS   rS   rT   Útest_sinh_rewrite"  s   (ÿ,&*rÊ   c                  C   sâ   t dƒ} t| ƒ t¡t| ƒt|  ƒ d   kr"t| ƒ d¡ks%J ‚ J ‚t| ƒ t¡t t| tt d  ƒ ks;J ‚ttj	|  ƒd }t| ƒ t¡d| d|  ksUJ ‚t
tj	|  ƒd }t| ƒ t
¡|d |d  ksoJ ‚d S rÅ   )r   r   rŠ   r   r   r   r   r   r   rM   r   rÇ   rS   rS   rT   Útest_cosh_rewrite-  s   (ÿ,"&rË   c                  C   sÞ   t dƒ} t| ƒ t¡t| ƒt|  ƒ t| ƒt|  ƒ    kr)t| ƒ d¡ks,J ‚ J ‚t| ƒ t¡tt| ƒ ttt d |  ƒ ksEJ ‚t| ƒ t¡tttt d |  ƒ t| ƒ ks^J ‚t| ƒ t¡dt| ƒ ksmJ ‚d S ©NrC   rÆ   r2   r0   )	r   r   rŠ   r   r   r   r   r   r   rY   rS   rS   rT   Útest_tanh_rewrite8  s   6ÿ22"rÍ   c                  C   sâ   t dƒ} t| ƒ t¡t| ƒt|  ƒ t| ƒt|  ƒ    kr)t| ƒ d¡ks,J ‚ J ‚t| ƒ t¡t ttt d |  ƒ t| ƒ ksFJ ‚t| ƒ t¡t t| ƒ ttt d |  ƒ ks`J ‚t| ƒ t¡dt| ƒ ksoJ ‚d S rÌ   )	r   r   rŠ   r   r   r   r   r   r   rY   rS   rS   rT   Útest_coth_rewriteA  s   6ÿ44"rÎ   c                  C   sè   t dƒ} t| ƒ t¡dt| ƒd t|  ƒd     kr&t| ƒ d¡ks)J ‚ J ‚t| ƒ t¡tt| tt d  ƒ ks>J ‚ttj	|  ƒ}t| ƒ t¡d|d  d|  ksXJ ‚t
tj	|  ƒ}t| ƒ t
¡|d d d|  ksrJ ‚d S ©NrC   r0   r2   rÆ   )r   r   rŠ   r   r   r   r   r   r   rM   r   rÇ   rS   rS   rT   Útest_csch_rewriteJ  s   0ÿ*&*rÐ   c                  C   sè   t dƒ} t| ƒ t¡dt| ƒd t|  ƒd     kr&t| ƒ d¡ks)J ‚ J ‚t| ƒ t¡tt| tt d  ƒ ks>J ‚ttj	|  ƒd }t| ƒ t¡d| d|  ksXJ ‚t
tj	|  ƒd }t| ƒ t
¡|d |d  ksrJ ‚d S rÏ   )r   r   rŠ   r   r   r   r   r   r   rM   r   rÇ   rS   rS   rT   Útest_sech_rewriteU  s   0ÿ*"&rÑ   c                  C   sê  t dƒ} t| ƒ | ¡t| ƒd  ksJ ‚t| ƒ | ¡t| ƒks!J ‚t| ƒ | ¡t| ƒks.J ‚t| ƒ | ¡t| ƒd  d ks@J ‚t| ƒ | ¡t| ƒ t| ƒ ksRJ ‚t| ƒ | ¡t| ƒ t| ƒ ksdJ ‚t| ƒ | ¡d| d  d  ksvJ ‚t	| ƒ | ¡dt
| d d ƒ ks‰J ‚t| ƒ | ¡dt
| d ƒt
| d ƒ  ks J ‚t| ƒ | ¡t| ƒ t¡ | ¡ ¡ ksµJ ‚t| ƒ | ¡d| d  d  ksÇJ ‚t| ƒ | ¡d| t
d| d  ƒ  ksÜJ ‚t| ƒ | ¡d| d t
d| d  ƒ  ksóJ ‚d S )NrC   r4   r2   r0   r1   )r   r   Údiffr   r   r   r   r   r   r   r    r   rŠ   r   Útogetherr   r   r   rY   rS   rS   rT   Útest_derivs`  s    $$$$&.*$*2rÔ   c                  C   s´   t dƒ\} }t| | ƒjddt| ƒt|ƒ t| ƒt|ƒ  ks"J ‚td|  ƒjdddt| ƒ t| ƒ ks8J ‚td|  ƒjdd ¡ t| ƒd dt| ƒ t| ƒd   ksXJ ‚d S ©Nr,   T)Útrigr2   r;   )r   r   r½   r   ©rC   rR   rS   rS   rT   Útest_sinh_expansionq  s   8,"ÿrØ   c                  C   s¸   t dƒ\} }t| | ƒjddt| ƒt|ƒ t| ƒt|ƒ  ks"J ‚td|  ƒjddt| ƒd t| ƒd  ks:J ‚td|  ƒjdd ¡ dt| ƒd  t| ƒ t| ƒd  ksZJ ‚d S rÕ   )r   r   r½   r   r×   rS   rS   rT   Útest_cosh_expansiony  s   80"ÿrÙ   c                  C   s˜   t ddd} t ddd}t| ddjdu sJ ‚t| d| t t  ddjdu s*J ‚ttt d	 ddjdu s9J ‚td
t t d	 ddjdu sJJ ‚d S ©Nr-   TrF   rx   r.   FrK   r2   r<   r;   )r   r   Úis_positiver   r   ©r-   rx   rS   rS   rT   Útest_cosh_positive€  s   &&rÝ   c                  C   s°   t ddd} t ddd}t| ddjdu sJ ‚t| d| t t  ddjdu s*J ‚ttt d	 ddjdu s9J ‚td
t t d	 ddjdu sJJ ‚ttjddjdu sVJ ‚d S rÚ   )r   r   Úis_nonnegativer   r   r   ÚZerorÜ   rS   rS   rT   Útest_cosh_nonnegative‹  s   &"rà   c                  C   s|   t 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 s3J ‚t| ƒjd u s<J ‚d S )NrÀ   FrF   )r   r   rP   r   r   r   r   r   )rÀ   rS   rS   rT   Útest_real_assumptions•  s   rá   c                  C   sô   t ddd} t 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 s0J ‚t|ƒjdu s9J ‚t| ƒjdu sBJ ‚t|ƒjdu sKJ ‚t| ƒjdu sTJ ‚t|ƒjdu s]J ‚t| ƒjdu sfJ ‚t|ƒjdu soJ ‚t| ƒjdu sxJ ‚d S )NrH   TrI   rx   )Únegative)	r   r   Úis_negativerÛ   r   r   r   r   r   )rH   rx   rS   rS   rT   Útest_sign_assumptionsž  s   rä   N)tÚ!sympy.calculus.accumulationboundsr   Úsympy.core.functionr   r   Úsympy.core.numbersr   r   r   r   r	   r
   r   r   Úsympy.core.singletonr   Úsympy.core.symbolr   r   Ú$sympy.functions.elementary.complexesr   r   Ú&sympy.functions.elementary.exponentialr   r   Ú%sympy.functions.elementary.hyperbolicr   r   r   r   r   r   r   r   r   r   r   r   Ú(sympy.functions.elementary.miscellaneousr    Ú(sympy.functions.elementary.trigonometricr!   r"   r#   r$   r%   r&   r'   Úsympy.series.orderr(   Úsympy.core.exprr)   r*   Úsympy.testing.pytestr+   rU   rZ   rc   ri   rl   rm   rn   rq   rs   rt   rv   rw   r{   r~   r   r€   r‚   rƒ   r‰   r‹   r‘   r’   r•   r–   r—   r˜   rš   rž   rŸ   r    r¡   r¢   r¤   r¥   r¨   r©   rª   r«   r¬   r­   r®   r¯   r²   r·   rÁ   rÂ   rÃ   rÄ   rÊ   rË   rÍ   rÎ   rÐ   rÑ   rÔ   rØ   rÙ   rÝ   rà   rá   rä   rS   rS   rS   rT   Ú<module>   s–    (8$MIHL=:8		<	:	;	:(!		
	