
    Rieq                        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 Z7d Z8d Z9d Z:d Z;d Z<d Z=d Z>d Z?d Z@d ZAd ZBd ZCd ZDd ZEd ZFd ZGd  ZHd! ZId" ZJd# ZKd$ ZLd% ZMd& ZNd' ZOd( ZPd) ZQd* ZRd+ ZSd, ZTd- ZUd. ZVd/ ZWd0 ZXd1 ZYd2 ZZd3 Z[d4 Z\d5 Z]d6 Z^d7 Z_d8 Z`d9 Zad: Zbd; Zcd< Zdd= Zed> Zfd? Zgd@ ZhdA ZidB ZjdC ZkdD ZldE ZmdF ZndG ZodH ZpdI ZqdJ ZrdK ZsdL ZtdM ZudN ZvdO ZwdP ZxdQ ZydR ZzdS Z{dT Z|dU Z}dV Z~dW ZdX ZdYS )Z    )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                     t          d          \  } }t          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    sJ t          t          d          sJ t          d          t          d           k    sJ t          t          |           sJ t          |            t          |            k    sJ t          t          t                    sJ t          t                     t          t                     k    sJ t          t          dd	z  t          z            sJ t          dd	z   t          z            t          dd	z  t          z             k    sJ t          t          t          z            dk    sJ t          t           t          z            dk    sJ t          dt          z  t          z            dk    sJ t          d
t          z  t          z            dk    sJ t          dddz  z  t          z  t          z            dk    sJ t          dddz  z  t          z  t          z            dk    sJ t          t          t          z  dz            t          k    sJ t          t           t          z  dz            t           k    sJ t          t          t          z  t          dd          z            t          k    sJ t          t          t          z  t          dd          z            t           k    sJ t          t          t          z  dz            t          j        t          d          z  t          z  k    sJ t          t          t          z  t          d
d          z            t          dd          t          d          z  t          z  k    sJ t          t          t          z  dz            t          j        t          d          z  t          z  k    sJ t          t           t          z  dz            t          dd          t          d          z  t          z  k    sJ t          t          t          z  t          dd          z            t          j        t          d          z  t          z  k    sJ t          t          t          z  t          dd          z            t          dd          t          d          z  t          z  k    sJ t          t          t          z  dz            t          j        t          z  k    sJ t          t           t          z  dz            t          dd          t          z  k    sJ t          t          t          z  t          dd          z            t          dd          t          z  k    sJ t          t          t          z  t          dd          z            t          dd          t          z  k    sJ t          t          t          z  dz            t          t          dz            t          z  k    sJ t          t           t          z  dz            t          t          dz             t          z  k    sJ t          t          ddt          z  z             sJ t          | t          z            t          |           t          z  k    sJ t          |t          z  t          z            dk    sJ t          d|z  t          z  t          z            dk    sJ t          |t          z  t          z  dz            t          |t          z  dz            t          z  k    sJ t          |                               d          t!          t#          |                     t          t%          |                     z  t          t#          |                     t'          t%          |                     z  fk    sJ t          dd          } t          |                               d          t          |           dfk    sJ t          dd          } t          t          | z            j        du sJ t          |           j        du sJ t          t                    j        du sJ t          dd          }t          |          j        du sJ t          dd          j        du sJ t          dt          z  t          z  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)rE   yr/   rJ   s       Plib/python3.11/site-packages/sympy/functions/elementary/tests/test_hyperbolic.py	test_sinhrV      s   5>>DAqsD!!!A999988r>>>>9977a<<<<T188QxT188QxT299b	!!!!T1d7Q;'''''D1$q$w{"3"3!333331::????A;;!"Q<<12a==A2r6	"Q1$$$$"c'	"Q1$$$$1Q<<1Aa==QB1Xa^^#$$))))1Xa^^#$$****1Q<<16$q''>!+++++1Xb!__$%%"aa)@)BBBBB1Q<<16$q''>!+++++Aa==HROODGG3A555551Xb!__$%%Q)999991Xb!__$%%"aa)@)BBBBB1Q<<16!8####Aa==HROOA-----1Xa^^#$$Q(999991Xb!__$%%"a):::::1S>>SC[[]****Ac	??s2c6{{l1n,,,,T1qs7#####!99Aq    "Q<<11R	??a"Qq>>S2a[[]****77U++BqEE

41;;0FBqEE

41;;&0( ( ( ( (s$'''A77U++Q|;;;;sA!99$&&&&77?d""""77?e####sT"""A77?e####E"""*d2222"Q'''/4777777    c                      t          d          } t          |                               | dd          | | dz  dz  z   | dz  dz  z   | dz  d	z  z   | d
z  dz  z   t          | dz            z   k    sJ d S )NrE   r   r8   r=   r@   r<   x   r:   i  	   i )r   r   seriesr)   rE   s    rU   test_sinh_seriesr]   _   s    sA77>>!Q##	AqDF
QT#X1T	)AqDK7!ArE((BC C C C C CrW   c                  V     t          d           t          t           fd           d S )NrE   c                  H    t                                         d          S Nr4   )r   fdiffr\   s   rU   <lambda>z!test_sinh_fdiff.<locals>.<lambda>g       tAww}}Q'7'7 rW   r   r,   r+   r\   s   @rU   test_sinh_fdiffre   e   /    sA
777788888rW   c                     t          d          \  } }t          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    sJ t          t          d          sJ t          d          t          d          k    sJ t          t          |           sJ t          |            t          |           k    sJ t          t          t          z            t          t                    k    sJ t          t           t          z            t          t                    k    sJ t          t          dd	z  t          z            sJ t          dd	z   t          z            t          dd	z  t          z            k    sJ t          t          t          z  dz            dk    sJ t          t           t          z  dz            dk    sJ t          d
ddz  z  dz   t          z  t          z  dz            dk    sJ t          dddz  z  dz   t          z  t          z  dz            dk    sJ t          t          t          z            dk    sJ t          t           t          z            dk    sJ t          dt          z  t          z            dk    sJ t          dt          z  t          z            dk    sJ t          t          t          z  dz            t          j        k    sJ t          t          t          z  t          dd          z            t          dd          k    sJ t          t          t          z  dz            t          j        t          d          z  k    sJ t          t           t          z  dz            t          j        t          d          z  k    sJ t          t          t          z  t          dd          z            t          dd          t          d          z  k    sJ t          t          t          z  t          d
d          z            t          dd          t          d          z  k    sJ t          t          t          z  dz            t          j        t          d          z  k    sJ t          t           t          z  dz            t          j        t          d          z  k    sJ t          t          t          z  t          dd          z            t          dd          t          d          z  k    sJ t          t          t          z  t          dd          z            t          dd          t          d          z  k    sJ t          t          t          z  dz            t          t          dz            k    sJ t          t           t          z  dz            t          t          dz            k    sJ t          t          ddt          z  z             sJ t          | t          z            t          |           k    sJ t          |t          z  t          z            t          |t          z            k    sJ t          d|z  t          z  t          z            t          d|z  t          z            k    sJ t          t          |t          z            sJ t          |                               d          t          t!          |                     t          t#          |                     z  t%          t!          |                     t'          t#          |                     z  fk    sJ t          dd          } t          |                               d          t          |           dfk    sJ t          dd          } t          t          | z            j        du sJ t          t          | z            j        du sJ t          t          dz  dz             j        du sJ t          dt          z  t          j        z  dz  d          j        du sJ t          |           j        du sJ d S )Nr.   r/   Tr0   r   r2   r3   r4   r5   r7   r8   r9   r:   r;   r<      r=   r6   r>      r@   rA   rB   r?   FrC   rE   rF   rH   rM   )r   r   r   r
   r   r   r*   r   r   r$   r   r   rO   r	   r!   rP   r   r   r'   r   rQ   rR   PirS   rE   rT   r/   s      rU   	test_coshrl   j   s   5>>DAqsD!!!A999988r>>>>99????77a<<<<T188tAwwT188tAww1::R    A;;#b''!!!!T1d7Q;'''''D1agk!2!222221Q<<1Aa==ABFQ"1$Q&''1,,,,2s7Q"1$Q&''1,,,,1::A;;""Q<<2"Q<<11Q<<16!!!!1Xb!__$%%"a88881Q<<16$q''>))))Aa==AF477N****1Xb!__$%%"aa)@@@@@1Xb!__$%%"aa)@@@@@1Q<<16$q''>))))Aa==AF477N****1Xa^^#$$QQ(?????1Xb!__$%%"aa)@@@@@1S>>SC[[((((Ac	??c"S&kk))))T1qs7#####!99A"Q<<3qt99$$$$1R	??c"Q$r'll****T1R4     77U++BqEE

41;;0FBqEE

41;;&0( ( ( ( (s$'''A77U++Q|;;;;sA!99$&&&&!99$$$$!a== E))))!AD
U+++3t;;;;77?e######rW   c                      t          d          } t          |                               | dd          d| dz  dz  z   | dz  dz  z   | dz  d	z  z   | d
z  dz  z   t          | dz            z   k    sJ d S )NrE   r   r8   r2   r4   r>      r@     rh   i  )r   r   r[   r)   r\   s    rU   test_cosh_seriesrp      s    sA77>>!Q##	AqDF
QT"Wq!tCx'!Q$u*4qBxx?@ @ @ @ @ @rW   c                  V     t          d           t          t           fd           d S )NrE   c                  H    t                                         d          S r`   )r   ra   r\   s   rU   rb   z!test_cosh_fdiff.<locals>.<lambda>   rc   rW   rd   r\   s   @rU   test_cosh_fdiffrs      rf   rW   c            	         t          d          \  } }t          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    sJ t          t          d          sJ t          d          t          d           k    sJ t          t          |           sJ t          |            t          |            k    sJ t          t          t                    sJ t          t                     t          t                     k    sJ t          t          dd	z  t          z            sJ t          dd	z   t          z            t          dd	z  t          z             k    sJ t          t          t          z            dk    sJ t          t           t          z            dk    sJ t          dt          z  t          z            dk    sJ t          d
t          z  t          z            dk    sJ t          dddz  z  t          z  t          z            dk    sJ t          dddz  z  t          z  t          z            dk    sJ t          t          t          z  dz            t          u sJ t          t           t          z  dz            t          u sJ t          t          t          z  t          dd          z            t          u sJ t          t          t          z  t          dd          z            t          u sJ t          t          t          z  dz            t          d          t          z  k    sJ t          t          t          z  t          d
d          z            t          d          t          z  k    sJ t          t          t          z  dz            t          k    sJ t          t           t          z  dz            t           k    sJ t          t          t          z  t          dd          z            t          k    sJ t          t          t          z  t          dd          z            t          k    sJ t          t          t          z  dz            t          t          d          z  k    sJ t          t           t          z  dz            t           t          d          z  k    sJ t          t          t          z  t          dd          z            t          t          d          z  k    sJ t          t          t          z  t          dd          z            t          t          d          z  k    sJ t          t          t          z  dz            t          t          dz            t          z  k    sJ t          t           t          z  dz            t          t          dz             t          z  k    sJ t          t          ddt          z  z             sJ t          | t          z            t          |           t          z  k    sJ t          |t          z  t          z            dk    sJ t          d|z  t          z  t          z            dk    sJ t          |t          z  t          z  dz            t          |t          z  dz            t          z  k    sJ t          |                               d          t          t          |                     t!          t          |                     z  t#          t%          |                     dz  t          t          |                     dz  z   z  t'          t%          |                     t#          t%          |                     z  t#          t%          |                     dz  t          t          |                     dz  z   z  fk    sJ t          dd          } t          |                               d          t          |           dfk    sJ t          t          t          z  dz  dz             j        du sJ t          |           j        du sJ t          t          t          z  | z  dz            j        J d S )Nr.   r/   Tr0   r2   r3   r   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   FrC   rE   rF   )r   r   r    r
   r   r   r*   r   r   r   r	   r!   r(   rP   r   r   r   r$   r   r'   rR   rk   s      rU   	test_tanhru      s&   5>>DAqsD!!!A999988q====99????77a<<<<T188QxT188QxT299b	!!!!T1d7Q;'''''D1$q$w{"3"3!333331::????A;;!"Q<<12a==A2r6	"Q1$$$$"c'	"Q1$$$$1Q<<3Aa==C1Xa^^#$$++++1Xa^^#$$++++1Q<<47719$$$$1Xb!__$%%a22221Q<<1Aa==QB1Xb!__$%%****1Xb!__$%%****1Q<<1T!WW9$$$$Aa==QBtAwwJ&&&&1Xa^^#$$$q''	11111Xb!__$%%47722221S>>SC[[]****Ac	??s2c6{{l1n,,,,T1qs7#####!99Aq    "Q<<11R	??a"Qq>>S2a[[]****77U++RUUDAKK0GRPQUUUV"&r!uu++q.J1 12 #BqEE

3r!uu:: 5s2a55zz1}tBqEE{{TU~7U V0X X X X X 	s$'''A77U++Q|;;;;"Q
#u,,,,77?d"""""Qq>>!)))))rW   c                      t          d          } t          |                               | dd          | | dz  dz  z
  d| dz  z  dz  z   d| d	z  z  d
z  z
  d| dz  z  dz  z   t          | dz            z   k    sJ d S )NrE   r   r8   r=   r4   r<      r?   r:   i;  >   rZ   i  )r   r    r[   r)   r\   s    rU   test_tanh_seriesry     s    sA77>>!Q##	AqDF
Qq!tVBYAqD,r!Q$wt|;a2hhFG G G G G GrW   c                  V     t          d           t          t           fd           d S )NrE   c                  H    t                                         d          S r`   )r    ra   r\   s   rU   rb   z!test_tanh_fdiff.<locals>.<lambda>  rc   rW   rd   r\   s   @rU   test_tanh_fdiffr|     rf   rW   c            	         t          d          \  } }t          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 sJ t          t          d          sJ t          d          t          d           k    sJ t          t          |           sJ t          |            t          |            k    sJ t          t          t          z            t           t          t                    z  k    sJ t          t           t          z            t          t                    t          z  k    sJ t          t          dd	z  t          z            sJ t          dd	z   t          z            t          dd	z  t          z             k    sJ t          t          t          z            t           t          t                    z  k    sJ t          t           t          z            t          t          t                    z  k    sJ t          dt          z  t          z            t           t          dt          z            z  k    sJ t          d
t          z  t          z            t          t          dt          z            z  k    sJ t          dddz  z  t          z  t          z            t          t          dddz  z  t          z            z  k    sJ t          dddz  z  t          z  t          z            t           t          dddz  z  t          z            z  k    sJ t          t          t          z  dz            dk    sJ t          t           t          z  dz            dk    sJ t          t          t          z  t          dd          z            dk    sJ t          t          t          z  t          dd          z            dk    sJ t          t          t          z  dz            t           t          d          z  k    sJ t          t          t          z  t          d
d          z            t           t          d          z  k    sJ t          t          t          z  dz            t           k    sJ t          t           t          z  dz            t          k    sJ t          t          t          z  t          dd          z            t           k    sJ t          t          t          z  t          dd          z            t           k    sJ t          t          t          z  dz            t          d           t          z  k    sJ t          t           t          z  dz            t          d          t          z  k    sJ t          t          t          z  t          dd          z            t          d           t          z  k    sJ t          t          t          z  t          dd          z            t          d           t          z  k    sJ t          t          t          z  dz            t          t          dz             t          z  k    sJ t          t           t          z  dz            t          t          dz            t          z  k    sJ t          t          ddt          z  z             sJ t          | t          z            t          |            t          z  k    sJ t          |t          z  t          z            t          |t          z             t          z  k    sJ t          d|z  t          z  t          z            t          d|z  t          z             t          z  k    sJ t          |t          z  t          z            t          |t          z             t          z  k    sJ t          t          t          d                              t          t          t          d                               k    sJ t          dt          t          z  dz  z             t          d          k    sJ t          |                               d          t#          t%          |                     t'          t%          |                     z  t)          t+          |                     dz  t#          t%          |                     dz  z   z  t)          t+          |                      t-          t+          |                     z  t)          t+          |                     dz  t#          t%          |                     dz  z   z  fk    sJ t          dd          } t          |                               d          t          |           dfk    sJ t/          t          d| z                      t          |           dz  dz   dt          |           z  z  k    sJ t/          t          d| z                      t          |           dz  dt          |           z  z   ddt          |           dz  z  z   z  k    sJ t/          t          | |z                       dt          |           t          |          z  z   t          |           t          |          z   z  k    sJ d S )Nr.   r/   Tr0   r2   r3   r   r4   r5   r6   r7   r8   r9   r=   r:   r;   r<   r>   r?   r@   rA   rB   FrC   rE   rF   )r   r   r   r
   r   r   r*   r   r   r%   r   r	   r!   r   r(   r    rP   r   r   r   r'   r   r$   r   rk   s      rU   	test_cothr~     s   5>>DAqsD!!!A999988q====99????77c>>>>T188QxT188Qx1::!CGG####A;;#b''!)####T1d7Q;'''''D1$q$w{"3"3!333331::!CGG####A;;!CGG)####"Q<<A2c!B$ii<''''2a==Ac!B$iiK''''2r6	"Q1S2r6"%5%5#55555"c'	"QA2c!BG)B,&7&7#777771Q<<1Aa==A1Xa^^#$$))))1Xa^^#$$))))1Q<<A2d1gg:%%%%1Xb!__$%%!DGG33331Q<<A2Aa==A1Xb!__$%%!++++1Xb!__$%%!++++1Q<<DGG8A:%%%%Aa==DGGAI%%%%1Xa^^#$$a
22221Xb!__$%%$q''!33331S>>c"S&kk\!^++++Ac	??c"S&kk!m++++T1qs7#####!99Q	!!!!"Q<<C"II:a<''''1R	??s2a47||mAo----"Q<<C"II:a<''''CFFS#a&&\\ 2 22222AbDF
tAww&&&&77U++RUUDAKK0GRPQUUUV"&r!uu++q.J1 12!$RUUC1JJ 6BqEE

ARPQUUUV8V W0Y Y Y Y Y 	s$'''A77U++Q|;;;;tAaCyy!!d1ggqj1nqay%AAAAAtAaCyy!!d1ggqj1T!WW9&<q1T!WWaZ<?O%PPPPPtAE{{##DGGDGGO(;d1ggQ>O'PPPPPPPrW   c                      t          d          } t          |                               | dd          d| z  | dz  z   | dz  dz  z
  d| dz  z  d	z  z   | d
z  dz  z
  t          | dz            z   k    sJ d S )NrE   r   rh   r2   r=   -   r4   r<   i  r:   iu  )r   r   r[   r)   r\   s    rU   test_coth_seriesr   ]  s    sA77>>!Q""	!ac	AqDGa1fSj(1a494qAww>? ? ? ? ? ?rW   c                  V     t          d           t          t           fd           d S )NrE   c                  H    t                                         d          S r`   )r   ra   r\   s   rU   rb   z!test_coth_fdiff.<locals>.<lambda>e  rc   rW   rd   r\   s   @rU   test_coth_fdiffr   c  rf   rW   c                  @   t          d          \  } }t          dd          }t          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 sJ t          d          t          d	           k    sJ t          |            t          |            k    sJ t          t                     t          t                     k    sJ t          d
dz   t          z            t          d
dz  t          z             k    sJ t          t          t          z            t          u sJ t          t           t          z            t          u sJ t          d
t          z  t          z            t          u sJ t          dt          z  t          z            t          u sJ t          dddz  z  t          z  t          z            t          u sJ t          dddz  z  t          z  t          z            t          u sJ t          t          t          z  d
z            t           k    sJ t          t           t          z  d
z            t          k    sJ t          t          t          z  t          dd
          z            t           k    sJ t          t          t          z  t          dd
          z            t          k    sJ t          t          t          z  dz            dt          d          z  t          z  k    sJ t          t          t          z  t          dd          z            d
t          d          z  t          z  k    sJ t          t          t          z  dz            t          d
           t          z  k    sJ t          t           t          z  dz            t          d
          t          z  k    sJ t          t          t          z  t          dd          z            t          d
          t          z  k    sJ t          t          t          z  t          dd          z            t          d
          t          z  k    sJ t          t          t          z  dz            dt          z  k    sJ t          t           t          z  dz            d
t          z  k    sJ t          t          t          z  t          dd          z            d
t          z  k    sJ t          t          t          z  t          dd          z            dt          z  k    sJ t          t          t          z  t          dd          z            d
t          z  k    sJ t          t          t          z  dz            dt          t          dz            z  t          z  k    sJ t          t           t          z  dz            d	t          t          dz            z  t          z  k    sJ t          | t          z            dt          |           z  t          z  k    sJ t          |t          z  t          z            t          u sJ t          d|z  t          z  t          z            t          u sJ t          |t          z  t          z  d
z            dt          |t          z  d
z            z  t          z  k    sJ t          |          j        du sJ t          t          | |z                       d	t          |           t          |          z  t          |           t          |          z  z   z  k    sJ d S )Nr.   r/   Tr0   nrK   r   r3   r2   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r@   rA   rB   r?   )r   r   r   r
   r   r   r   r   r   r	   r!   r'   rR   r   r   r   rE   rT   r/   r   s       rU   	test_cschr   h  s    5>>DAqsD!!!AsT"""A999988q====99>>>>77c>>>>88Qx88Qx99b	!!!!D1$q$w{"3"3!333331::A;;#"Q<<32a==C2r6	"Q3&&&&"c'	"Q3&&&&1Q<<A2Aa==A1Xa^^#$$****1Xa^^#$$))))1Q<<2d1gg:a<''''1Xb!__$%%477144441Q<<DGG8A:%%%%Aa==DGGAI%%%%1Xa^^#$$Q	11111Xb!__$%%a22221Q<<2a4Aa==AaC1Xa^^#$$!++++1Xb!__$%%A----1Xb!__$%%1,,,,1S>>RBsF^A-----Ac	??aBsFmAo----!993q66	!####"Q<<31R	??c!!!!"Qq>>RAbDF^A-----77?d""""tAE{{##q$q''$q''/DGGDGGO*K'LLLLLLLrW   c                     t          d          } t          |                               | dd          d| z  | dz  z
  d| dz  z  dz  z   d	| d
z  z  dz  z
  d| dz  z  dz  z   d| dz  z  dz  z
  t          | dz            z   k    sJ d S )NrE   r   r8   r2   r@   r:   r=   ih     r<   i;     i:	 r9   rZ   i 54 )r   r   r[   r)   r\   s    rU   test_csch_seriesr     s    sA77>>!Q##!taczAadF3JAqD.QT&@q!tGGO2hh'' ' ' ' ' 'rW   c                  V     t          d           t          t           fd           d S )NrE   c                  H    t                                         d          S r`   )r   ra   r\   s   rU   rb   z!test_csch_fdiff.<locals>.<lambda>  rc   rW   rd   r\   s   @rU   test_csch_fdiffr     rf   rW   c                  ~   t          d          \  } }t          dd          }t          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    sJ t          d	          t          d          k    sJ t          |            t          |           k    sJ t          t          t          z            t          t                    k    sJ t          t           t          z            t          t                    k    sJ t          d
dz   t          z            t          d
dz  t          z            k    sJ t          t          t          z  d
z            t          u sJ t          t           t          z  d
z            t          u sJ t          dddz  z  dz   t          z  t          z  d
z            t          u sJ t          dddz  z  dz   t          z  t          z  d
z            t          u sJ t          t          t          z            d	k    sJ t          t           t          z            d	k    sJ t          dt          z  t          z            d	k    sJ t          dt          z  t          z            dk    sJ t          t          t          z  dz            d
k    sJ t          t          t          z  t          dd          z            dk    sJ t          t          t          z  dz            t          d
          k    sJ t          t           t          z  dz            t          d
          k    sJ t          t          t          z  t          dd          z            t          d
           k    sJ t          t          t          z  t          dd          z            t          d
           k    sJ t          t          t          z  dz            d
t          d          z  k    sJ t          t           t          z  dz            d
t          d          z  k    sJ t          t          t          z  t          dd          z            dt          d          z  k    sJ t          t          t          z  t          dd          z            dt          d          z  k    sJ t          t          t          z  dz            dt          t          dz            z  k    sJ t          t           t          z  dz            dt          t          dz            z  k    sJ t          | t          z            dt          |           z  k    sJ t          |t          z  t          z            dt          |t          z            z  k    sJ t          d|z  t          z  t          z            dt          d|z  t          z            z  k    sJ t          |          j        du sJ t          t          | |z                       dt          |           t          |          z  t!          |           t!          |          z  z   z  k    sJ d S )Nzx, yr/   Tr0   r   rK   r   r2   r3   r4   r5   r7   r8   r9   r:   r;   r<   rh   r=   r6   r>   rA   r@   rB   r?   )r   r   r   r
   r   r   r   r   r&   r   r	   r!   r$   rR   r   r   r   r   s       rU   	test_sechr     ss   6??DAqsD!!!AsT"""A999988q====99>>>>77a<<<<88tAww88tAww1::R    A;;#b''!!!!D1agk!2!222221Q<<3Aa==CBFQ"1$Q&''3....2s7Q"1$Q&''3....1::A;;""Q<<2"Q<<11Q<<11Xb!__$%%++++1Q<<477""""Aa==DGG####1Xa^^#$$a00001Xb!__$%%$q''11111Q<<1T!WW9$$$$Aa==Ad1ggI%%%%1Xa^^#$$477
22221Xb!__$%%DGG33331S>>Qs2c6{{]****Ac	??aBsFm++++!99#a&&    "Q<<1S2YY;&&&&1R	??aBqDGn,,,,77?d""""tAE{{##q$q''$q''/DGGDGGO*K'LLLLLLLrW   c                      t          d          } t          |                               | dd          d| dz  dz  z
  d| dz  z  dz  z   d	| d
z  z  dz  z
  d| dz  z  dz  z   t          | dz            z   k    sJ d S )NrE   r   r8   r2   r4   r<   r>   rn   =   r@   ro   i  rh   i  )r   r   r[   r)   r\   s    rU   test_sech_seriesr     s    sA77>>!Q##	AqDF
Qq!tVBYAqD,s1a4x}<qBxxGH H H H H HrW   c                  V     t          d           t          t           fd           d S )NrE   c                  H    t                                         d          S r`   )r   ra   r\   s   rU   rb   z!test_sech_fdiff.<locals>.<lambda>  rc   rW   rd   r\   s   @rU   test_sech_fdiffr     rf   rW   c                     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z             k    sJ t          d          t	          t          d          dz
            k    sJ t          t                    t          t          z  dz  k    sJ t          t                     t           t          z  dz  k    sJ t          t          dz            t          t          z  dz  k    sJ t          t           dz            t           t          z  dz  k    sJ t          t                    t          u sJ t          t                     t           u sJ t          t          t          z            t          u sJ t          t           t          z            t           u sJ t          t                    t          u sJ t          t          t          d          dz
  z  dt          dd          z  z            t          t          z  dz  k    sJ t          t           t          d          dz
  z  dt          dd          z  z            t           t          z  dz  k    sJ t          t          t          d	          dz
  z  d
z            t          t          z  dz  k    sJ t          t           t          d	          dz
  z  d
z            t           t          z  dz  k    sJ t          t          t          d	          dz   z  d
z            t          t          z  t          dd          z  k    sJ t          t           t          d	          dz   z  d
z            t          t          z  t          dd          z  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k    sJ t          t          dd                    dk    sJ t          t          dd                    dk    sJ t          t          t          d                    t          k    sJ t          t          t           d                    t           k    sJ t          t          d	t          z  d                    dt          z  t          z  d	t          z  z   k    sJ t          t          ddt          z  z                       dd
t          z  t          z  z
  dt          z  z   k    sJ t          t          ddt          z  z                       ddt          z  z
  dt          z  t          z  z   k    sJ t          t          ddt          z  z
                      ddt          z  t          z  z
  dt          z  z   k    sJ t          t          ddt          z  z
                      dt          t          z  z
  dt          z  z   k    sJ t          dd          }t          |          j        du sJ t          t          dd          d          j        du sJ d S )Nr.   r   r2   r4   r3   r@   r=      r<   r>   r8   r7   v1FrM   r6   rw   ri   ia   r9   r   r      r:      irJ   TrK   )r   r*   r   r
   r   r!   r   r   r   r   r	   r   rO   r   r   rS   )rE   rT   rJ   s      rU   
test_asinhr     s   5>>DAqUA!99q	!!!! ::!99>>>>99DGGaK((((((99DGGaK((((((88r!tAv!99Aa1::Aa!A;;2#a%'!!!! 99????"::"2;;"!R==RC:: T!WWq[!1hq!nn#4566"Q$r'AAAA!d1ggk"Ax1~~$5677B3q58CCCCDGGaK"##r!tBw....!T!WWq[!!#$$Ab0000DGGaK"##r!tHQOO';;;;;!T!WWq[!!#$$1Xb"-=-=(===== "a!!eAFmm^3333 UD../////a%((())Q....b5)))**b0000a%((())Q....a%((())Q....qb5)))**qb0000acE***++r!tBw1}<<<<b2a4i!!R!A#b&[2a4%77777cBqDj!!""b2a4i"Q$r'&99999b2a4i!!Q1RZ"Q$%66666b1Q3h  C!B$J1$44444sT"""A88u$$$$a%(((5999ATIIIIIIrW   c            	      l   t          d          } t          |                               t                    t          | t	          | dz  dz             z             k    sJ t          |                               t
                    t          | t	          d| dz  z             z            k    sJ t          |                               t                    t          |           k    sJ t          | dt          z   z                                t                    t           t          t          | z  dt          z   z            z  k    sJ t          |                               t                    t          t           t          |           z  t          dz  z   z  t          t          z  dz  z
  k    sJ d S )NrE   r4   r2   )
r   r   rewriter   r!   r   r#   r   r"   r   r\   s    rU   test_asinh_rewriter   .  sR   sA88C  CDANN(:$;$;;;;;88E""eAd1q!t8nn,<&=&=====88D!!U1XX----AE##D))aRQqS!A#Y-?????88D!!Q588bd(:%;ad1f%DDDDDDDrW   c                  .   t          d          } t          |                               | d          | k    sJ t          | t          z                                 | d          t          t          z  dz  k    sJ t          | t          z
                                | d          t           t          z  dz  k    sJ t          d| z                                | d          t          |            t          d          z   k    sJ t          d| z                                | d          t          |           t          d          z
  t          t          z  z
  k    sJ t          | dt          z  z                                 | d          t          t          d          z  k    sJ t          | dt          z  z                                 | d          t           t          d          z  t          t          z  z   k    sJ t          | dt          z  z
                                | d          t           t          z  t          t          d          z  z   k    sJ t          | dt          z  z
                                | d          t           t          d          z  k    sJ t          dt          z  t          | z  z   | dz  z
                                | d          t          dt          d          z
            t          t          z  dz  z   k    sJ t          dt          z  t          | z  z   | dz  z
                                | d          t          dt          d          z
            t          t          z  dz  z   k    sJ d S NrE   r2   cdirr4   r3   r=   )r   r   as_leading_termr   r   r   r#   r!   r\   s    rU   test_asinh_leading_termr   7  s   sA88##AA#..!3333Q<<'''22ad1f<<<<Q<<'''22qbeAg====1::%%aa%00SVVGc!ff4DDDDD1::%%ab%11SVVc!ff_qt5KKKKKQqS>>))!!)44$q''	AAAAQqS>>))!")55!DGGad9JJJJJQqS>>))!!)442$q''	8IIIIIQqS>>))!")55!DGGCCCC1qsQT!""22112==Qa[AQAQTUVXTXYZTZAZZZZZ1qsQT!""22122>>#a$q''kBRBRUVWYUYZ[U[B[[[[[[[rW   c                     t          d          } t          |                               | dd          | | dz  dz  z
  d| dz  z  dz  z   d| dz  z  d	z  z
  t          | dz            z   k    sJ t          |                               d|           }|d| dz  z  dz  k    sJ t          |                               d| |d          d
| dz  z  d	z  k    sJ d S )NrE   r   rh   r=   r@   r<   (   r:   p   rA   )r   r   r[   r)   taylor_termrE   t5s     rU   test_asinh_seriesr   I  s    sA88??1a##	AqDF
Qq!tVBY1a4+a1gg56 6 6 6	q		a	#	#B1a4????881b!,,1a4;;;;;;rW   c                     t          d          } t          | t          z                                 | dd           t          t          z  dz  t          |           dt          z
  z  z   | t          d          dz  z  t          d          dz  t          dz  z   z  z   | t          d          dz  z  t          d           dz  dt          z  dz  z   z  z   | t          d	          dz  z  t          d           d
z  dt          z  d
z  z
  z  z   t          | dz            z   k    sJ t          | t          z
                                | dd           t           t          z  dz  t          |           dt          z   z  z   | t          d          dz  z  t          d          dz  t          dz  z
  z  z   | t          d          dz  z  t          d           dz  dt          z  dz  z
  z  z   | t          d	          dz  z  t          d           d
z  dt          z  d
z  z   z  z   t          | dz            z   k    sJ t          | dt          z  z                                 | dd d          t          t          d          z  t          d          t          z  | z  dz  z
  t          d          | dz  z  dz  z   t          d          t          z  | dz  z  dz  z   t          | dz            z   k    sJ t          | dt          z  z                                 | dd d          t          t          z  t          t          d          z  z
  t          d          t          z  | z  dz  z   t          d          | dz  z  dz  z
  t          d          t          z  | dz  z  dz  z
  t          | dz            z   k    sJ t          | dt          z  z
                                | dd d          t          t          d          z  t          t          z  z
  t          d          t          z  | z  dz  z   t          d          | dz  z  dz  z   t          d          t          z  | dz  z  dz  z
  t          | dz            z   k    sJ t          | dt          z  z
                                | dd d          t           t          d          z  t          d          t          z  | z  dz  z
  t          d          | dz  z  dz  z
  t          d          t          z  | dz  z  dz  z   t          | dz            z   k    sJ t          dt          z  t          | z  z   | dz  z
                                | dd           t          t          z  dz  t          dt          d          z
            z   t          d          | z  dz  z
  | dz  t          d          dz  t          d          t          z  dz  z
  z  z   | dz  t          d           dz  dt          d          z  t          z  dz  z   z  z   t          | dz            z   k    sJ d S )NrE   r>   r4   r2   r=   r   r<      r:     r   rZ      r3   )
r   r   r   _eval_nseriesr   r!   r   r)   r#   r   r\   s    rU   test_asinh_nseriesr   R  s   sAQ<<%%aD11QrT!VGGQUO6!A$$q&k1Q447QrT>263561a[1Q44%)aPQcRUgBU5V6W!QK!A$$sQqSW$%6&()!Q$60 0 0 0 0 Q<<%%aD11aRU1WGGQUO6!A$$q&k1Q447QrT>263561a[1Q44%)aPQcRUgBU5V6W!QK!A$$sQqSW$%6&()!Q$60 0 0 0 0 QqS>>''1d';;qayGGAIaKM@GGAqDLN@#%)!WWQYq!t^B%6@79:1a4@A A A A AQqS>>''1d'<<"qay@PGGAIaKMAGGAqDLNA#%)!WWQYq!t^B%6A79:1a4AA A A A AQqS>>''1d';;qay1R4?OGGAIaKM@GGAqDLN@#%)!WWQYq!t^B%6@79:1a4@A A A A AQqS>>''1d'<<477
GGAIaKMAGGAqDLNA#%)!WWQYq!t^B%6A79:1a4AA A A A A 1qsQT!""00At<<"QQQUVWQXQX[IYIY@YGGAIaKAQ$Q	DGGAIaK/0A134a4$q''"qayQR{ST}9T3UAVXYZ[]^Z^X_X_A` ` ` ` ` ` `rW   c                  V     t          d           t          t           fd           d S )NrE   c                  H    t                                         d          S r`   )r   ra   r\   s   rU   rb   z"test_asinh_fdiff.<locals>.<lambda>k      uQxx~~a'8'8 rW   rd   r\   s   @rU   test_asinh_fdiffr   i  /    sA
888899999rW   c                  R   t          d          } t          t          |            sJ t          d          dk    sJ t          d          t          t          z  k    sJ t          d          t          t          z  dz  k    sJ t          t
          j                  t          t          z  dz  k    sJ t          t          dd                    t          t          z  t          dd          z  k    sJ t          t                    t          u sJ t          t                    t          u sJ t          t                     t          u sJ t          t          t          z            t          t          t          z  dz  z   k    sJ t          t           t          z            t          t          t          z  dz  z
  k    sJ t          t                    t          u sJ t          t                    t          t          dt          d          z   z            k    sJ t          t                     t          t           dt          d          z   z            k    sJ t          t          d          dz
  dt          d          z  z            t          t          z  t          dd          z  k    sJ t          t          d          dz
   dt          d          z  z            t          t          z  t          d	d          z  k    sJ t          t          d          dz            t          t          z  d
z  k    sJ t          t          d           dz            t          t          z  t          dd
          z  k    sJ t          t          d          dz            t          t          z  dz  k    sJ t          t          d           dz            t          t          z  t          dd          z  k    sJ t          t          dt          d          z             dz            t          t          z  dz  k    sJ t          t          dt          d          z              dz            t          t          z  t          d	d          z  k    sJ t          t          dt          d          z
            dz            t          t          z  t          dd          z  k    sJ t          t          dt          d          z
             dz            t          t          z  t          dd          z  k    sJ t          dt          d          z   dt          d          z  z            t          t          z  dz  k    sJ t          dt          d          z    dt          d          z  z            t          t          z  t          dd          z  k    sJ t          t          d          dz   d
z            t          t          z  dz  k    sJ t          t          d          dz    d
z            t          t          z  t          d
d          z  k    sJ t          t          dt          z                                d                    dk    sJ t          t          dt          z                                d                    dk    sJ t          t          t          d                    sJ t          t          dd                    dk    sJ t          t          dd                    dk    sJ t          t          dd                    dk    sJ t          t          t          d                    t          k    sJ t          t          t           d                    t          k    sJ t          t          d	t          z  d                    dt          z  t          z  d	t          z  z   k    sJ t          t          dt          z                       dt          z   k    sJ t          t          ddt          z  z
                      ddt          z  z
  k    sJ t          t          ddt          z  z                       ddt          z  z
  k    sJ t          t          ddt          z  z
                      ddt          z  t          z  z
  dt          z  z   k    sJ t          t          ddt          z  z                       ddt          z  z
  d
t          z  t          z  z   k    sJ t          t          t          d          t          z                       t          d          t          z   k    sJ t          dd          j        du sJ d S )NrE   r2   r   r3   r4   r=   r<   r   r:   r>   r@   rh   ri   z2.31244 + 1.5708*IrA   z2.31244 - 1.5708*Ir   r7   FrM   r6   r?   i   T)r   r*   r   r   r   r   rO   r	   r
   r   r   r   r!   strr   r   rS   r\   s    rU   
test_acoshr   n  s   sAUQB 88q====99188qtAv==AbDF"""""a!!RT(1a..%88888:: 99????"::2;;"qtAv+%%%%!B<<2"Q;&&&&::88s1a$q''k?++++++!99QBDGG,------$q''A+$q''	*++r!tHQOO/CCCCC477Q;477+,,1Xa__0DDDDDaqtAv%%%%$q''!"Xa^^ 33333aqtAv%%%%$q''!"Xa^^ 33333a$q''k""1$%%2a////$q477{###A%&&!B$x1~~*=====a$q''k""1$%%2hq!nn)<<<<<$q477{###A%&&!B$x1~~*=====!d1gg+$q''	*++qtBw66661tAww;477+,,"Xb"5E5E0EEEEE$q''A+q!!QrT!V++++477Q;!""ad8Aq>>&99999uQqSzz||A#77777uRT{{}}Q  $88888 UF4LL)))))b5)))**a////a%((())Q....a%((())Q....a%((())Q....qb5)))**a////acE***++r!tBw1}<<<<a!eQ&&&&a!A#g1qs7****b1Q3h  A!G++++b2a4i!!Q1RZ"Q$%66666cBqDj!!""b2a4i!A#b&&88888d1ggk""##tAww{2222U###+t333333rW   c            	      |   t          d          } t          |                               t                    t          | t	          | dz
            t	          | dz             z  z             k    sJ t          |                               t
                    t	          | dz
            t          |            t          dz  z   z  t	          d| z
            z  k    sJ t          |                               t                    t	          | dz
            t          |            t          dz  z   z  t	          d| z
            z  k    sJ t          |                               t                    t	          | dz
            t	          | dz             z  t          t	          | dz  dz
            | z            z  t	          | dz  dz
            z  t          t	          | dz
            z  |  t	          | dz            z  dz   z  dt	          d| z
            z  z  z   k    sJ t          dd          } t          |                               t                    t	          | dz
            t	          | dz             z  t          t	          | dz  dz
            | z            z  t	          | dz  dz
            z  k    sJ d S )NrE   r2   r4   r6   TrK   )	r   r   r   r   r!   r#   r   r   r   r\   s    rU   test_acosh_rewriter     s^   sA88C  CDQKKQU,C(C$D$DDDDD88D!!T!a%[[477(RT/%B4A;;%NNNNN88E""d1q5kkDGG8bd?&CDQKK&OOOOO88E""	a!eT!a%[[	 tAqD1H~~a'7!8!8	8adQh	G	DQKK!DRMM)A-	.$q1u++	>
?@ @ @ @ 	sT"""A88E""QUDQKKd1a4!8nnQ&6 7 77QTAXFG G G G G GrW   c                     t          d          } t          |                               |           t          t          z  dz  k    sJ t          | dz                                 |           t          d          t          |           z  k    sJ t          | dz
                                |           t          t          z  k    sJ t          d| z                                | d          t          |            t          d          z   k    sJ t          d| z                                | d          t          |            t          d          z   dt          z  t          z  z   k    sJ t          t          | z  dz
                                | d          t          d          k    sJ t          t           | z  dz
                                | d          dt          z  t          z  t          d          z   k    sJ t          | dz  t          | z  z
  t          d          dz  z                                 | d          t          t          d          dz             k    sJ t          | dz  t          | z  z
  t          d          dz  z                                 | d          t          t          d          dz            k    sJ t          dt          | z  dz
  z                                | d          t          t          d           dz             k    sJ t          dt          | z  dz
  z                                | d          t          t          d           dz            k    sJ t          t           | dz  z  | z   dz
                                | d          t          t          d          dz             t          t          z  z
  k    sJ t          t           | dz  z  | z   dz
                                | d          t          t          d          dz             t          t          z  z
  k    sJ d S )NrE   r4   r2   r   r3   r6   r=   )r   r   r   r   r   r!   r   r   r\   s    rU   test_acosh_leading_termr     s   sA88##A&&!B$q&0000Q<<''**d1ggd1ggo====Q<<''**ad22221::%%aa%00SVVGc!ff4DDDDD1::%%ab%11c!ffWs1vv5E!B5NNNNN1q>>))!!)44b		AAAA!A??**11*55Ab5999LLLLLA!add1f$%%55aa5@@U1Q44PQ6]]NRRRRA!add1f$%%55ab5AAU1Q44PQ6]]RRRRAaC!G--aa-88UAaDD57^^OKKKKAaC!G--ab-99UAaDD57^^KKKK!AqD1q!!11!!1<<DGGaK@P@PSTUWSW@WWWWW!AqD1q!!11!"1==T!WWq[AQAQTUVXTXAXXXXXXXrW   c                  8   t          d          } t          |                               | dd          t           | z  t          t          z  dz  z   t          | dz  z  dz  z
  dt          z  | dz  z  dz  z
  dt          z  | d	z  z  d
z  z
  t          | dz            z   k    sJ t          |                               d|           }|dt          z  | dz  z  dz  k    sJ t          |                               d	| |d          dt          z  | d	z  z  d
z  k    sJ d S )NrE   r   rh   r4   r=   r@   r<   r   r:   r   r7   rA   )r   r   r[   r   r   r)   r   r   s     rU   test_acosh_seriesr     s   sA88??1a##	
1r!tAv!Q$q 1Q3q!t8B;.1QT#=!Q$GH H H H	q		a	#	#BQq!tB881b!,,Aad
3>>>>>>rW   c                     t          d          } t          | dz                                 | dd           t          d          t          |           z  t          d          | t	          d          dz  z  z  dz  z
  dt          d          z  | t	          d          dz  z  z  dz  z   dt          d          z  | t	          d	          dz  z  z  d
z  z
  t          | dz            z   k    sJ t          | dz
                                | dd           t          t          z  t          d          t          z  t          |           z  z
  t          d          t          z  | t	          d          dz  z  z  dz  z
  dt          d          z  t          z  | t	          d          dz  z  z  dz  z
  dt          d          z  t          z  | t	          d	          dz  z  z  d
z  z
  t          | dz            z   k    sJ t          t          | z  dz
                                | dd d          t          d          t          d          t          z  | z  dz  z
  t          d          | dz  z  dz  z   t          d          t          z  | dz  z  dz  z   t          | dz            z   k    sJ t          t           | z  dz
                                | dd d          t          d          dt          z  t          z  z
  t          d          t          z  | z  dz  z   t          d          | dz  z  dz  z   t          d          t          z  | dz  z  dz  z
  t          | dz            z   k    sJ t          dt          | z  dz
  z                                | dd d          t          t	          d           dz             t          d          | z  dz  z   dt          d          z  t          z  | dz  z  dz  z   dt          d          z  | dz  z  dz  z
  t          | dz            z   k    sJ t          dt          | z  dz
  z                                | dd d          t          t	          d           dz            t          d          | z  dz  z
  dt          d          z  t          z  | dz  z  dz  z
  dt          d          z  | dz  z  dz  z   t          | dz            z   k    sJ t          t           | dz  z  | z   dz
                                | dd           t           t          z  t          t          d          dz             z   t          d          | z  dz  z
  | dz  t          d           dz  t          d          t          z  dz  z   z  z   | dz  t          d           dz  dt          d          z  t          z  dz  z   z  z   t          | dz            z   k    sJ d S )NrE   r2   r>   r4   r=   r   r<   r   r:   r   r   r6   rZ   r   r?   @       r3   )	r   r   r   r!   r   r)   r   r   r   r\   s    rU   test_acosh_nseriesr     s   sAQ<<%%aD11T!WWT!WW_GGA!QK6tAwwYq1Q446{236679:4771qttAv;9Ns9R6SUVWXZ[W[U\U\6] ] ] ] ] Q<<%%aD11QrTGGAId1gg6Q	!add1f+-b06134T!WW9Q;q1Q446{3J33N6Od1ggIaKAaDDFC6 "#AqD''6* * * * * 1q>>''1d';;uRyyGGAIaKM@GGAqDLN@#%)!WWQYq!t^B%6@79:1a4@A A A A A!A??((At!(<<b		aCFA!WWQYq[]A!!WWQT\!^A,.21ggai1nR.?A@BCAqD''AJ J J J JAaC!G++Aq$Q+??E1Q44%PQ'NN?GGAIbLDd1gg:a<1$S(D)+.tAww;q!t+;E+ADBDEadGGDL L L L LAaC!G++Aq$R+@@E1Q44%PQ'NNGGAIbLEd1gg:a<1$S(E)+.tAww;q!t+;E+AEBDEadGGEL L L L L !AqD1q!!//1d;;r"us4PQ77UV;GWGW?WGGAIaK@Q$a
T!WWQYq[01@245qD477(2+$q''	RSTU:U4V@WYZ[\^_[_Y`Y`@a a a a a a arW   c                  V     t          d           t          t           fd           d S )NrE   c                  H    t                                         d          S r`   )r   ra   r\   s   rU   rb   z"test_acosh_fdiff.<locals>.<lambda>  r   rW   rd   r\   s   @rU   test_acosh_fdiffr     r   rW   c                  D   t          d          } t          t          |            sJ t          d          dk    sJ t          d          t          t          z  k    sJ t          d          t
          u sJ t          d          t          t          z  dz  k    sJ t          d          dt          z  t          z  dz  k    sJ t          t                    t          u sJ t          t
                    t          t          z  dz  k    sJ t          t
                     t          t          z  dz  k    sJ t          t                    t          t          t           dz  t          dz            z  k    sJ t          t                    t          dt          d          z             t          t          z  dz  z
  k    sJ t          t                     t          dt          d          z             t          t          z  dz  z   k    sJ t          t          d          t          d          z
            d	t          z  t          z  d
z  k    sJ t          t          ddt          d          z  z
                      t          t          z  dz  k    sJ t          t          ddt          d          z  z
                       dt          z  t          z  dz  k    sJ t          dt          dt          d          z             z            t          t          z  dz  k    sJ t          dt          dt          d          z             z            dt          z  t          z  dz  k    sJ t          t          d          dz
            t          t          z  dz  k    sJ t          dt          d          z
            dt          z  t          z  dz  k    sJ t          t          ddt          d          z   z                       dt          z  t          z  dz  k    sJ t          t          d                    t          dt          d          z            k    sJ t          dt          d          z            t          t          d          dz            k    sJ t          dt          dt          d          z             z            t          t          dt          d          z             dz            k    sJ t          d          t          t          j                  k    sJ t          t          d                     t          t          dt          d          z            z  k    sJ t          dt          d          z            t          t          t          d           dz            z  k    sJ t          t          d                     t          t          t          dd                    z  k    sJ t          dt          d          z            t          t          t          d           dz            z  k    sJ t!          t#          t          t          d          t          d          z
                      t          d          t          d          z
  z            dk    sJ t!          t#          t          t          d          t          d          z                       t          d          t          d          z   z            dk    sJ t#          t          t          ddt          d          z  z                                 t          ddt          d          z  z             z                                  dk    sJ t#          t          t          ddt          d          z  z                                  t          ddt          d          z  z              z                                  dk    sJ t#          t          t          ddt          d          z   z                                t          ddt          d          z   z            z                                  dk    sJ t!          t#          t          dt          d          z                       dt          d          z   z            dk    sJ t!          t#          t          dt          d          z
                      dt          d          z
  z            dk    sJ t!          t#          t          t          d           t          d          z
                      t          d           t          d          z
  z            dk    sJ t'          t          dt          z                                d                    dk    sJ t'          t          dt          z                                d                    dk    sJ d S )NrE   r2   r   r3   r4   r=   r6   r@   ri   r   r<   r8   rZ   rh   r:   r>   z0.19869 - 1.5708*IrA   z0.19869 + 1.5708*I)r   r*   r   r   r   r   r
   r   r   r   r!   r   r   rO   r"   r	   r   r   simplifyr   r   r\   s    rU   
test_asechr     s   sAUQB 88q====99188r>>>>88qtAv99!B
"""":: 99"Q"::2a::;s1ubd333333388s1tAww;''!B$q&00000!99AQK((1R4611111a477"##r!tBw|3333a!DGG)m$$%%22222$q1T!WW9}%%%&&!A#b&2+5555T!d1gg+&&&''1R4!83333d1tAww;'''((AaCFQJ6666a12))))T!WW1R!++++$q!d1gg+'''((AaCFQJ6666 a>>U1T!WW9------477uT!WWQY//////4DGG$$$%%tAQK/@/@/B)C)CCCCC88uQV}}$$$$ $q''??aRQZ 0 000000DGG$Qxz"2"2 22222!A$$<<1T(2q//2222222DGG$Qxz"2"2 22222 d5a477!23344Q$q''8IJKKqPPPPd5a477!23344Q$q''8IJKKqPPPPtA$q''	M**++,,Q477]0C0CDNNPPTUUUUUQ477]+++,,--$q1T!WW9}2E2E1EFPPRRVWWWWWtAq477{O,,--..$q!d1gg+2G2GHRRTTXYYYYYd5T!WW--..!d1gg+>??1DDDDd5d1gg..//2Q<@AAQFFFFd5$q''DGG!34455$q''DGG9KLMMQRRRRR uQqSzz||A#77777uRT{{}}Q  $8888888rW   c                     t          d          } t          |                               | d          t          |            t          d          z   k    sJ t          |                               | d          t          |            t          d          z   dt          z  t
          z  z   k    sJ t          | dz                                 | d          t          d          t          z  t          |           z  k    sJ t          d| z                                | d          t          t
          z  dz  k    sJ t          | dz
                                | d          t          t
          z  k    sJ t          t          | z  dz                                 | d          t          d           k    sJ t          t           | z  dz                                 | d          t          d          k    sJ t          t          | z  dz
                                | d          t          d           k    sJ t          t           | z  dz
                                | d          t          d          k    sJ t          t          | z  t          d          dz  z
                                | d          dt          z  t
          z  t          t          d           dz            z   k    sJ t          t          | z  t          d          dz  z
                                | d          t          t          d           dz            k    sJ t          t           | dz  z  | z   dz
                                | d          t          t          d           dz  dt          d          z  t          z  dz  z             k    sJ t          t           | dz  z  | z   dz
                                | d          t          t          d           dz  dt          d          z  t          z  dz  z             k    sJ d S )	NrE   r2   r   r4   r3   r=   r7   r6   )r   r   r   r   r   r   r!   r   r\   s    rU   test_asech_leading_termr   )  s   sA88##AA#..3q66'CFF2BBBBB88##AB#//CFF7SVV3Cac"f3LLLLLQ<<'''22d1ggaiQ6GGGGG1::%%aa%00AbDF::::Q<<'''22ad::::1q>>))!!)44q	AAAA!A??**11*55qAAAA1q>>))!!)44r
BBBB!A??**11*55rBBBB1qttAv..qq.99RT"WuaPQddUSTW~~=UUUUU1qttAv..qr.::eQqTTE!GnnLLLL!AqD1q!!11!!1<<QqTTE!GaPTUVPWPWiXYkZ[mD[@\@\\\\\!AqD1q!!11!"1==addU1WqQUVWQXQXyYZ{[\}E\A]A]]]]]]]rW   c                  :   t          d          } t          |                               | ddd          t          d          t          |           z
  | dz  dz  z
  d| dz  z  d	z  z
  d
| dz  z  dz  z
  d| dz  z  dz  z
  t	          | dz            z   k    sJ t          |                               | ddd          t
          t          z  t          d          z   t          |            z
  | dz  dz  z
  d| dz  z  d	z  z
  d
| dz  z  dz  z
  d| dz  z  dz  z
  t	          | dz            z   k    sJ t          |                               d|           }|d| dz  z  dz  k    sJ t          |                               d| |d          d| dz  z  dz  k    sJ d S )NrE   r   rZ   r2   r   r4   r>   r=       r<   r@   `   #   rh   r5   r3   rA   i)r   r   r[   r   r)   r   r   r   )rE   t6s     rU   test_asech_seriesr   =  s   sA88??1a?++s1vvAAa/G!AqD&QS)/S1fRi0QT'$,0!"1a40) ) ) ) )88??1a?,,"s1vvQB0G!Q$q&0PadF2I1!Q$r	1q!tGDL1)+,QT7713 3 3 3 3	q		a	#	#BAqD881b!,,AqD======rW   c                  
   t          d          } t          | dz                                 | dd           t          d          t          |            z  dt          d          z  |  t	          d          dz  z  z  dz  z   dt          d          z  |  t	          d          dz  z  z  d	z  z   d
t          d          z  |  t	          d          dz  z  z  dz  z   t          | dz            z   k    sJ t          | dz
                                | dd           t          t          z  t          d          t          |           z  z   dt          d          z  | t	          d          dz  z  z  dz  z   dt          d          z  | t	          d          dz  z  z  d	z  z   d
t          d          z  | t	          d          dz  z  z  dz  z   t          | dz            z   k    sJ t          t          | z  dz                                 | dd           t          d           t          d          | z  dz  z   dt          d          z  t          z  | dz  z  dz  z
  dt          d          z  | dz  z  dz  z
  t          | dz            z   k    sJ t          t           | z  dz                                 | dd           t          d          t          d          | z  dz  z   dt          d          z  t          z  | dz  z  dz  z   dt          d          z  | dz  z  dz  z
  t          | dz            z   k    sJ t          t          | z  dz
                                | dd           t          d           t          d          | z  dz  z
  dt          d          z  t          z  | dz  z  dz  z
  dt          d          z  | dz  z  dz  z   t          | dz            z   k    sJ t          t           | z  dz
                                | dd           t          d          t          d          | z  dz  z
  dt          d          z  t          z  | dz  z  dz  z   dt          d          z  | dz  z  dz  z   t          | dz            z   k    sJ t          t           | dz  z  | z   dz
                                | dd           dt          z  t          z  dz  t          d          t          z  | z  dz  z   | dz  t          d          dz  dt          d          z  t          z  dz  z   z  z   t          | dz            z   k    sJ d S )NrE   r2   r>   r4   r<   r=   r   +   r      r:   r   r?   r   r   r   r7   r@   H   )r   r   r   r!   r   r)   r   r   r\   s    rU   test_asech_nseriesr   H  sJ   sAQ<<%%aD11T!WWT1"XX5E$q''	TUSUYZ[\Y]Y]^_Y_R`H`acHc5ctAwwJadd1f~c!6"$'QK!qttAv$>s$B6CEFq!tWW6M M M M M Q<<%%aD11QrTDGGDGGO5Kd1ggIa!A$$q&k"6!$q''z!add1f+5c96:<?QKAaDDQRF<STW<W6XZ[\]_`\`ZaZa6b b b b b1q>>''1d33ay47719R<7OtAwwJqLAc8QK1,U28356q!tWW8= = = = =!A??((At44a47719R<8OtAwwJqLAc9QK1,U29356q!tWW9= = = = =1q>>''1d33b		zDGGAIbL7PtAwwJqLAc8QK1,U28356q!tWW8= = = = =!A??((At44b		DGGAIbL8PtAwwJqLAc9QK1,U29356q!tWW9= = = = = !AqD1q!!//1d;;qs2vax$q''RS)TU+VW-?WqD$q''!)aQik"n
$%@&()!Q$@0 0 0 0 0 0 0rW   c            
      p   t          d          } t          |                               t                    t          d| z  t	          d| z  dz
            t	          d| z  dz             z  z             k    sJ t          |                               t
                    t          d| z            k    sJ t          |                               t                    t	          dd| z  z             t          d| z             t          dz  z   z  t	          dd| z  z
            z  k    sJ t          |                               t                    t	          | dz             t	          d| dz   z            z  t          t	          d| dz  z
                      z  t          t          z  t	          |            t	          d| z            z  dz   t          t	          | dz            z  dt	          | dz             z  z  z
  t          t	          |            z  dt	          |           z  z  z
  z  z   k    sJ d S )NrE   r2   r3   r4   )r   r   r   r   r!   r   r   r#   r   r   r   r\   s    rU   test_asech_rewriter   ]  s>   sA88C  C!d1Q37mmd1Q37mm.K(K$L$LLLLL88E""eAaCjj000088E""d2!8nntAaCyyj2a46G&HaRSTURUg&VVVVV88E""QUDAEOO#E$q1a4x..$9$99AbD477(4PQRSPS99BTWXBX[\]abcefbf]g]g[gijkoqrtuqupukvkviv[wBwz{  }A  CD  BD  }E  }E  {E  GH  IM  NO  IP  IP  GP  {Q  CQ  =R  	RR R R R R RrW   c                  V     t          d           t          t           fd           d S )NrE   c                  H    t                                         d          S r`   )r   ra   r\   s   rU   rb   z"test_asech_fdiff.<locals>.<lambda>h  r   rW   rd   r\   s   @rU   test_asech_fdiffr   f  r   rW   c                     t          d          } t          t          |           sJ t          |            t          |            k    sJ t          d          t          dt	          d          z             k    sJ t          d          t          dt	          d          z              k    sJ t          d          t
          u sJ t          d          t          dt	          d          z   dz            k    sJ t          d          t          dt	          d          z   dz             k    sJ t          t                    t           t          z  dz  k    sJ t          t                     t          t          z  dz  k    sJ t          t           t	          d          t	          d          z   z            t          t          z  d	z  k    sJ t          t          t	          d          t	          d          z   z            t           t          z  d	z  k    sJ t          t           dt	          d          z   z            t          t          z  d
z  k    sJ t          t          dt	          d          z   z            t           t          z  d
z  k    sJ t          t           dz  t	          dt	          d          z
            z            t          t          z  dz  k    sJ t          t          dz  t	          dt	          d          z
            z            t           t          z  dz  k    sJ t          t           dz            t          t          z  dz  k    sJ t          t          dz            t           t          z  dz  k    sJ t          t           t	          ddt	          d          z  z             z            t          t          z  dz  k    sJ t          t          t	          ddt	          d          z  z             z            t           t          z  dz  k    sJ t          t           t	          d          z            t          t          z  dz  k    sJ t          t          t	          d          z            t           t          z  dz  k    sJ t          t           t	          d          dz
  z            dt          z  t          z  d
z  k    sJ t          t          t	          d          dz
  z            dt          z  t          z  d
z  k    sJ t          t           dz  t	          d          z            t          t          z  dz  k    sJ t          t          dz  t	          d          z            t           t          z  dz  k    sJ t          t           dz  t	          dt	          d          z             z            dt          z  t          z  dz  k    sJ t          t          dz  t	          dt	          d          z             z            dt          z  t          z  dz  k    sJ t          t           t	          ddt	          d          z  z
            z            dt          z  t          z  dz  k    sJ t          t          t	          ddt	          d          z  z
            z            dt          z  t          z  dz  k    sJ t          t           t	          d          t	          d          z
  z            dt          z  t          z  d	z  k    sJ t          t          t	          d          t	          d          z
  z            dt          z  t          z  d	z  k    sJ t          t                    t          u sJ t          t           t	          d          z            t          t          t	          d          z            k    sJ t          t           dz  t	          d          z            t          t          t	          d          z  dz            k    sJ t          t           t	          d          z            t           t          dt	          d          z            z  k    sJ t          t           dz  t	          d          z            t           t          t	          d           dz            z  k    sJ t          t          t          t           t	          d          t	          d          z   z                      t           t	          d          t	          d          z   z  z            dk    sJ t          t          t          t          dt	          d          z   z                      t          dt	          d          z   z  z            dk    sJ t          t          t          t	          ddt	          d          z  z
            z                      t          t	          ddt	          d          z  z
            z  z                                  dk    sJ t          t          t           t	          ddt	          d          z  z
            z                      t           t	          ddt	          d          z  z
            z  z                                  dk    sJ t          t          dt          z  dz                                 d                    dk    sJ t          t          dt          z  dz                                 d                    dk    sJ d S )NrE   r2   r4   r3   r   r<   r6   r@   r   r8   rh   r>   r=   r7   rA   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   r   r\   s    rU   
test_acschr   k  s		   sAUA!99q	!!!! 88s1tAww;''''''99#a$q''k*******88s????88sAd1ggIq=))))))99#qay!m,,,,,,,88s2vax!99"Q!T!WWtAww&'((AbD2I5555DGGd1gg%&''A2b52:5555!Qa[!""adRi////AQK!!aRURZ////!AQa[)))**adQh66661tAQK((())aRUQY6666!A;;!B$(""""1::!B""""!DQtAwwY'''((AbD1H44444Ad1ggI&&&''A2b5194444!DGG"q((((477r"uqy((((!T!WWQY  AaCFRK////DGGAI2a47R<////!AQ  AbD1H,,,,1tAwwA2b519,,,,!AQa[)))**ac"fqj88881tAQK((())RT"Wq[8888!DQtAwwY'''((AaCFQJ66664Ad1ggI&&&''2a47Q;6666!T!WWtAww&'((AaCFRK7777DGGd1gg%&''2a47R<7777:: !DGGaQi 0 00000!AQ  E!DGG)a-$8$88888 !DGG4477
#3#3 33333!AQ  QBtT!WWHQJ'7'7$77777 d5!T!WWtAww%6!78899aRa4PQ77AR=STUUYZZZZZd5AQK1122aT!WWoFGG1LLLLqa!DGG)m,,,--..!DQtAwwY4G4G2GHRRTTXYYYYYr$q1T!WW9}---..//A2d1qay=6I6I3IJTTVVZ[[[[[ uQqSU||~~a  !!%=====uRT!V}}q!!""&>>>>>>>rW   c                      t          t                    dk    sJ t          t                     dk    sJ t          t                    dk    sJ d S )Nr   )r   r   r    rW   rU   test_acsch_infinitiesr     sA    99>>>>"::????::??????rW   c                     t          d          } t          d| z                                |           | k    sJ t          | t          z                                 |           t           t          z  dz  k    sJ t          | t          z
                                |           t          t          z  dz  k    sJ t          |                               | d          t          |            t          d          z   k    sJ t          |                               | d          t          |           t          d          z
  t          t          z  z
  k    sJ t          | t          dz  z                                 | d          t           t          z  t          t          dz            z
  k    sJ t          | t          dz  z                                 | d          t          t          dz            k    sJ t          | t          dz  z
                                | d          t          t          dz             k    sJ t          | t          dz  z
                                | d          t          t          dz            t          t          z  z   k    sJ t          t          dz  t          | z  z   | dz  z
                                | d          t          dt          d          z
            t          t          z  dz  z
  k    sJ t          t          dz  t          | z  z   | dz  z
                                | d          t          dt          d          z
            t          t          z  dz  z
  k    sJ d S )NrE   r2   r4   r   r3   r=   )r   r   r   r   r   r   r!   r\   s    rU   test_acsch_leading_termr     s   sA1::%%a((A----Q<<''**qbeAg5555Q<<''**ad1f444488##AA#..3q66'CFF2BBBBB88##AB#//3q66CFF?QrT3IIIIIQqS>>))!!)442ac

8JJJJJQqS>>))!")55qsCCCCQqS>>))!!)44qsCCCCQqS>>))!")55qsad9JJJJJ1qsQT!""22112==Qa[AQAQTUVXTXYZTZAZZZZZ1qsQT!""22122>>#a$q''kBRBRUVWYUYZ[U[B[[[[[[[rW   c                     t          d          } t          |                               | dd          t          d          t          |           z
  | dz  dz  z   d| dz  z  dz  z
  d| d	z  z  d
z  z   d| dz  z  dz  z
  t	          | dz            z   k    sJ t          |                               d|           }|d| dz  z  dz  k    sJ t          |                               d	| |d          d| d	z  z  d
z  k    sJ d S )NrE   r   rZ   r4   r>   r=   r   r<   r@   r   r   rh   r5   r7   )r   r   r[   r   r)   r   )rE   t4s     rU   test_acsch_seriesr     s   sA88??1a##s1vvAAa'?!AqD&)'K1fRi(QT'$,(!"1a4() ) ) ) )	q		a	#	#BAqD881b!,,!Q$r	999999rW   c                     t          d          } t          | t          z                                 | dd           t           t          z  dz  t          t          |           z  z   t          |           z   dt          z  | t          d          dz  z  z  dz  z   d| t          d          dz  z  z  dz  z
  dt          z  | t          d          dz  z  z  dz  z
  d| t          d          dz  z  z  dz  z
  d	t          z  | t          d
          dz  z  z  dz  z
  d	| t          d
          dz  z  z  dz  z   t          | dz            z   k    sJ t          | t          z
                                | dd           t          t          z  dz  t          t          |           z  z
  t          |           z   dt          z  | t          d          dz  z  z  dz  z
  d| t          d          dz  z  z  dz  z
  dt          z  | t          d          dz  z  z  dz  z   d| t          d          dz  z  z  dz  z
  d	t          z  | t          d
          dz  z  z  dz  z   d	| t          d
          dz  z  z  dz  z   t          | dz            z   k    sJ t          | t          dz  z                                 | dd d          t          t          dz             t          t          z  z
  dt          d          z  t          z  | z  dz  z   dt          d          z  | dz  z  dz  z
  dt          d          z  t          z  | dz  z  dz  z
  t          | dz            z   k    sJ t          | t          dz  z                                 | dd d          t          t          dz            dt          d          z  t          z  | z  dz  z
  dt          d          z  | dz  z  dz  z   dt          d          z  t          z  | dz  z  dz  z   t          | dz            z   k    sJ t          | t          dz  z
                                | dd d          t          t          dz             dt          d          z  t          z  | z  dz  z
  dt          d          z  | dz  z  dz  z
  dt          d          z  t          z  | dz  z  dz  z   t          | dz            z   k    sJ t          | t          dz  z
                                | dd d          t          t          z  t          t          dz            z   dt          d          z  t          z  | z  dz  z   dt          d          z  | dz  z  dz  z   dt          d          z  t          z  | dz  z  dz  z
  t          | dz            z   k    sJ t          t          dz  t          | z  z   | dz  z
                                | dd           t           t          z  dz  t          dt          d          z
            z   dt          d          z  | z  dz  z   | dz  dt          d          z  dz  dt          d          z  t          z  dz  z   z  z   | dz  dt          d          z  dz  dt          d          z  t          z  dz  z
  z  z   t          | dz            z   k    sJ d S )NrE   r>   r4   r<   r=   r   r   r   r   r:   r   r2   r   rh   rZ      r3   i)	r   r   r   r   r   r!   r   r)   r   r\   s    rU   test_acsch_nseriesr     s   sAQ<<%%aD11aRU1Wqay5HGG6c!add1f+ob 6!#$Q1a[=#36468d1qttAv;6Fs6J6Kq1Q446{N36Qq1Q446{*3.6/14Q1a[1D6EGHAww6O O O O O Q<<%%aD11QrT!VaQi5GGG6c!add1f+ob 6!#$Q1a[=#36468d1qttAv;6Fs6J6Kq1Q446{N36Qq1Q446{*3.6/14Q1a[1D6EGHAww6O O O O O QqS>>''1d';;ac

{bD@	T!WW9Q;q=?@tAwwYq!t^A-@.02477
1QT0A!0C@DFG1gg@N N N N NQqS>>''1d'<<ac

d1ggIaKM!OAQi1nQ&A')+DGGAad):1)<A=?@AwwAG G G G GQqS>>''1d';;ac

{d1ggIaKM!O@Qi1nQ&@')+DGGAad):1)<@=?@Aww@G G G G GQqS>>''1d'<<"	!A#JJA4771QqA!#$T!WW9QT>!#3A468ajl1a46G6IAJLMaQRdGGAT T T T T 1qsQT!""00At<<2aDGGAay{1}A%'(!tRQZ\Ad1ggIaKM-I'JAKqD"T!WW*Q,DGGAa
'(A)+,QT77A3 3 3 3 3 3 3rW   c            	      p   t          d          } t          |                               t                    t          d| z  t	          d| dz  z  dz             z             k    sJ t          |                               t
                    t          d| z            k    sJ t          |                               t                    t	          | dz             t	          | dz  dz   dz              t          t	          | dz  dz                       z  | dz  dz   z  t          dz  z   z  | z  k    sJ d S NrE   r2   r4   )r   r   r   r   r!   r   r   r   r\   s    rU   test_acsch_rewriter     s.   sA88C  C!d1QT6A:.>.>(>$?$?????88E""eAaCjj000088E""tQTE{{TAqD1Hq=.5I5I4I5:41q>>5J5J5KLMqDSTH5V68d5; (<<=(> ? ? ? ? ? ?rW   c                  V     t          d           t          t           fd           d S )NrE   c                  H    t                                         d          S r`   )r   ra   r\   s   rU   rb   z"test_acsch_fdiff.<locals>.<lambda>  r   rW   rd   r\   s   @rU   test_acsch_fdiffr     r   rW   c            
         t          d          } t          d          dk    sJ t          t                    t          t          z  dz  k    sJ t          t                     t           t          z  dz  k    sJ t          d          t          u sJ t          d          t           u sJ t          t
                    t
          u sJ t          t                    t           t          z  dz  k    sJ t          t                     t          t          z  dz  k    sJ t          t          t          z            t          t          z  dz  k    sJ t          t           t          z            t           t          z  dz  k    sJ t          t                    t          t          t           dz  t          dz            z  k    sJ t          |            t          |            k    sJ t          t          t          d          z            t          t          z  dz  k    sJ t          t           t          d          z            t           t          z  dz  k    sJ t          t          t          d          z            t          t          z  dz  k    sJ t          t           t          d          z            t           t          z  dz  k    sJ t          t          dt          d          z   z            t          t          z  t          dd	          z  k    sJ t          t          t          d          dz
  z            t          t          z  d	z  k    sJ t          t          dt          d          z
  z            t           t          z  d	z  k    sJ t          t           dt          d          z   z            t          t          z  t          d
d	          z  k    sJ t          t          t          ddt          d          z  z             z            t          t          z  t          dd          z  k    sJ t          t           t          ddt          d          z  z             z            t          t          z  t          dd          z  k    sJ t          t          dt          d          z
  z            t          t          z  dz  k    sJ t          t          t          d          dz
  z            t           t          z  dz  k    sJ t          t                    t           t          z  dz  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k    sJ t          t          dd                    dk    sJ t          t          dd                    dk    sJ t          t          t          d                    t          k    sJ t          t          t           d                    t           k    sJ t          t          dt          z  d                    dt          z  dt          z  t          z  z   k    sJ t          t          dt          z                       dt          z   k    sJ t          t          ddt          z  z                       ddt          z  t          z  z
  dt          z  z   k    sJ t          t          t          dz                      t          dz  k    sJ t          t          t                              t          k    sJ t          t          d
dt          z  z                       d
dt          z  t          z  z
  dt          z  z   k    sJ t          t          dt          dz  dz  z
                      dt          dz  dz  z
  k    sJ t          t          ddt          z  z
                      ddt          z  z
  dt          z  t          z  z   k    sJ d S )NrE   r   r>   r2   r3   r4   r=   r@   rh   r7   r<   r6   r   r   rA   FrM   r:   irZ   i{   '   )r   r   r   r   r   r
   r   r   r!   r	   r   rO   r*   r    r\   s    rU   
test_atanhr     s   sA 88q====88qtAv!992a88r>>>>99:: 992a"::2a2;;!B$q&    !B<<A2b57""""::;s1ubd3333333 !99q	!!!!477qtAv%%%%!DGG2a''''477qtAv%%%%!DGG2a''''AQK!!RT(1a..%88888DGGaK!!RT!V++++AQK!!bSU1W,,,,!Qa[!""bd8B??&:::::4Ad1ggI&&&''1R4A+>>>>>!DQtAwwY'''((AbD"a,@@@@@AQK!!RT"W,,,,DGGaK!!bSU2X----992a "a!!eAFmm^3333 UD../////b5)))**b0000a%((())Q....a%((())Q....a%((())Q....qb5)))**qb0000c!ee,,,--Q1R????a!eQ&&&&a!A#g1qs2v:!#33333bd1$$$$b??b    b1Q3h  B1RK!A#$55555a!A#a%i!!Q1QY....cCEk""##sSU{RT"W'<<<<<<<rW   c            
      N   t          d          } t          |                               t                    t          d| z             t          d| z
            z
  dz  k    sJ t          |                               t                    t
          | z  dt          | dz             z  z  t          |            t          d| dz  z
            z  t          d| dz  dz
  z            z  t	          t          d| dz  dz
  z                      z  t          |           z  z
  k    sJ d S r   )r   r   r   r   r   r   r!   r\   s    rU   test_atanh_rewriter   '  s   sA88C  SQZZ#a!e**%<$AAAAA88E""
1aadUmtQBxxQAX6tAq!taxL7I7II%PTUVXY[\X\_`X`UaPbPbJcJccdhijdkdkkkl l l l l lrW   c                     t          d          } t          |                               |           | k    sJ t          | dz                                 | d          t          |            dz  t          d          dz  z   t          t
          z  dz  z
  k    sJ t          | dz                                 | d          t          |            dz  t          d          dz  z   t          t
          z  dz  z   k    sJ t          | dz
                                | d          t          |           dz  t          d          dz  z
  k    sJ t          | dz
                                | d          t          |           dz  t          d          dz  z
  k    sJ t          d| z                                | d          t           t
          z  dz  k    sJ t          d| z                                | d          t          t
          z  dz  k    sJ t          t          | z  dz                                 | d          t          d          t          t
          z  z   k    sJ t          t           | z  dz                                 | d          t          d          k    sJ t          t          | z  dz
                                | d          t          d           k    sJ t          t           | z  dz
                                | d          t           t
          z  t          d          z
  k    sJ t          t           | dz  z  | z   dz
                                | d          t          d           dz  t          t
          z  dz  z
  k    sJ t          t           | dz  z  | z   dz
                                | d          t          d           dz  t          t
          z  dz  z
  k    sJ d S r   )r   r   r   r   r   r   r\   s    rU   test_atanh_leading_termr   .  s   sA88##A&&!++++Q<<'''22s1vvgai#a&&(6JQrTRSV6SSSSSQ<<'''33Awqy3q66!87KaPRdSTf7TTTTTQ<<'''22c!ffQhQ6IIIIIQ<<'''33s1vvax#a&&(7JJJJJ1::%%aa%00QBrE!G;;;;1::%%ab%11QrT!V;;;;1q>>))!!)44a1R4GGGG!A??**11*55qAAAA1q>>))!!)44q	AAAA!A??**11*55!Bq9IIIII!AqD1q!!11!!1<<Q	AbDQRF@RRRRR!AqD1q!!11!"1==#a&&QrTRSVASSSSSSSrW   c                      t          d          } t          |                               | dd          | | dz  dz  z   | dz  dz  z   | dz  dz  z   | dz  dz  z   t          | dz            z   k    sJ d S )NrE   r   r8   r=   r<   r:   rZ   )r   r   r[   r)   r\   s    rU   test_atanh_seriesr   B  s    sA88??1a$$	AqDF
QT!Vad1f$q!tAv-!R%89 9 9 9 9 9rW   c                  
   t          d          } t          | dz                                 | dd d          t           t          z  dz  t          d          dz  z   t          |           dz  z
  | dz  z   | dz  dz  z
  | dz  dz  z   t          | dz            z   k    sJ t          | dz                                 | dd d	          t          t          z  dz  t          d          dz  z   t          |           dz  z
  | dz  z   | dz  dz  z
  | dz  dz  z   t          | dz            z   k    sJ t          | dz
                                | dd d          t          d           dz  t          |           dz  z   | dz  z   | dz  dz  z   | dz  dz  z   t          | dz            z   k    sJ t          | dz
                                | dd d	          t          d           dz  t          |           dz  z   | dz  z   | dz  dz  z   | dz  dz  z   t          | dz            z   k    sJ t          t          | z  dz                                 | dd d          t          t          z  t          d          z   t          | z  dz  z
  d| dz  z  d
z  z
  dt          z  | dz  z  dz  z   t          | dz            z   k    sJ t          t          | z  dz                                 | dd d	          t          d          t          | z  dz  z
  d| dz  z  d
z  z
  dt          z  | dz  z  dz  z   t          | dz            z   k    sJ t          t          | z  dz
                                | dd d          t          d           t          | z  dz  z
  d| dz  z  d
z  z   dt          z  | dz  z  dz  z   t          | dz            z   k    sJ t          t          | z  dz
                                | dd d	          t          d           t          t          z  z
  t          | z  dz  z
  d| dz  z  d
z  z   dt          z  | dz  z  dz  z   t          | dz            z   k    sJ t          t           | dz  z  | z   dz
                                | dd           t           t          z  dz  t          d          dz  z
  | dz  z
  | dz  t          d           dz  t          dz  z   z  z   | dz  t          d          dz  t          dz  z
  z  z   | dz  t          d           dz  t          dz  z   z  z   | dz  t          d          dz  t          dz  z
  z  z   t          | dz            z   k    sJ d S )NrE   r2   r>   r   r4   r   r=   0   r3   rZ   r   Q   $   r@      r   )r   r   r   r   r   r   r)   r   r\   s    rU   test_atanh_nseriesr  H  s   sAQ<<%%aDq%99aRU1Ws1vvax=OFF1H>s>T"W> !tBw>')*1a4>1 1 1 1 1Q<<%%aDr%::ad1fs1vvax>OFF1H?s?T"W? !tBw?')*1a4?1 1 1 1 1Q<<%%aDq%99c!ffWQYQPQ=QaC>
Q$r'>qDG>1gg>& & & & &Q<<%%aDr%::s1vvgai#a&&QR(>RaC?
Q$r'?qDG?1gg?& & & & & 1q>>''1d';;qteAhhaCE@
adF1H@!tAqDy|@$&'1gg@. . . . .1q>>''1d'<<a1Q3q5@PadF1HA!tAqDy|A1ggA& & & & &1q>>''1d';;ay1Q3q5?PadF1H@!tAqDy|@1gg@& & & & &1q>>''1d'<<q	AbD@PaCEA
adF1HA!tAqDy|A$&'1ggA. . . . . !AqD1q!!//1d;;r"uQwQPQ?QTUVWTW?WqD1Q44%'AaC-@a41b1Q3/@023Q$1a!A#2F@GIJAqQRttTWxZ[\^Z^I_@`bcdeghdhbibi@j j j j j j jrW   c                  V     t          d           t          t           fd           d S )NrE   c                  H    t                                         d          S r`   )r   ra   r\   s   rU   rb   z"test_atanh_fdiff.<locals>.<lambda>c  r   rW   rd   r\   s   @rU   test_atanh_fdiffr  a  r   rW   c            
      
   t          d          } t          d          t          t          z  dz  k    sJ t          t                    t           t          z  dz  k    sJ t          t                     t          t          z  dz  k    sJ t          d          t          u sJ t          d          t           u sJ t          t
                    t
          u sJ t          t                    dk    sJ t          t                     dk    sJ t          t          t          z            dk    sJ t          t           t          z            dk    sJ t          t                    dk    sJ t          |            t          |            k    sJ t          t          t          d          z            t           t          z  dz  k    sJ t          t           t          d          z            t          t          z  dz  k    sJ t          t          t          d          z            t           t          z  dz  k    sJ t          t           t          d          z            t          t          z  dz  k    sJ t          t          dt          d          z   z            t           t          z  d	z  k    sJ t          t           t          d          dz   z            t          t          z  d	z  k    sJ t          t          dt          d          z
  z            t          t          z  t          dd	          z  k    sJ t          t          t          d          dz
  z            t          t          z  t          d
d	          z  k    sJ t          t          t          ddt          d          z  z             z            t           t          z  dz  k    sJ t          t           t          ddt          d          z  z             z            t          t          z  dz  k    sJ t          t          dt          d          z   z            t           t          z  dz  k    sJ t          t           dt          d          z   z            t          t          z  dz  k    sJ t          t          dt          d          z
  z            t          t          z  t          dd          z  k    sJ t          t          t          d          dz
  z            t          t          z  t          dd          z  k    sJ t          t          dd                    t          t          j
                   k    sJ d S )NrE   r   r4   r>   r2   r3   r=   r@   rh   r7   r<   r8   r   rA   )r   r   r   r   r   r
   r   r!   r	   r   rO   r\   s    rU   
test_acothr	  f  sV   sA 88qtAv88r"uQw!99"Q88r>>>>99:: 99>>>>"::????2;;!!B<<1::???? !99q	!!!!477r"uQw&&&&!DGG"Q&&&&477r"uQw&&&&!DGG"Q&&&&AQK!!bSU1W,,,,!T!WWq[!""bd1f,,,,AQK!!RT(1a..%88888DGGaK!!RT(2q//%999994Ad1ggI&&&''A2b583333!DQtAwwY'''((AbDG3333AQK!!bSU2X----!Qa[!""bd2g----AQK!!RT(2r*:*:%:::::DGGaK!!RT(1b//%99999 "a!!eAFmm^333333rW   c            
         t          d          } t          |                               t                    t          dd| z  z             t          dd| z  z
            z
  dz  k    sJ t          |                               t                    t	          d| z            k    sJ t          |                               t
                    | t          | dz            z  t          t          d| dz  dz
  z                      z  t          t          z  t          | dz
  | z            t          | | dz
  z            z  t          | | dz   z            t          dd| z  z             z  z
  z  dz  z   k    sJ d S )NrE   r2   r4   r6   )	r   r   r   r   r   r   r!   r   r   r\   s    rU   test_acoth_rewriter    sb   sA88C  SQqS\\CAaCLL%@A$EEEEE88E""eAaCjj000088E""	$q2w--d1adQh<00111AbD$Aqy//$qRSVWRWy//:Y\`abdehidiaj\k\klpqruvwxuxqxlyly\y:y4z{|4||} } } } } }rW   c                     t          d          } t          | dz                                 | d          t          |            dz  t          d          dz  z   k    sJ t          | dz                                 | d          t          |            dz  t          d          dz  z   k    sJ t          | dz
                                | d          t          |           dz  t          d          dz  z
  t          t
          z  dz  z   k    sJ t          | dz
                                | d          t          |           dz  t          d          dz  z
  t          t
          z  dz  z
  k    sJ t          |                               | d          t          t
          z  dz  k    sJ t          |                               | d          t           t
          z  dz  k    sJ t          t          | z  dz                                 | d          t          d          k    sJ t          t           | z  dz                                 | d          t          d          t          t
          z  z   k    sJ t          t          | z  dz
                                | d          t           t
          z  t          d          z
  k    sJ t          t           | z  dz
                                | d          t          d           k    sJ t          t           | dz  z  | z
  t          d          dz  z
                                | d          t          d           dz  t          t
          z  dz  z   k    sJ t          t           | dz  z  | z
  t          d          dz  z
                                | d          t          d           dz  t          t
          z  dz  z   k    sJ d S )NrE   r2   r   r4   r3   g      ?r=   )r   r   r   r   r   r   r   r\   s    rU   test_acoth_leading_termr    s   sAQ<<'''22s1vvgai#a&&(6JJJJJQ<<'''33Awqy3q66!87KKKKKQ<<'''22c!ffQhQ6IAbDQRF6RRRRRQ<<'''33s1vvax#a&&(7JQrTRSV7SSSSS88##AB#//1R46999988##AA#..1"R%'99991s++AA+66%**DDDD!A,,QQ,775::";LLLLL1s++AA+661"R%%**:LLLLL!A,,QQ,77E#JJ;FFFF!AqD1qttAv%&&66qq6AAc!ffWQYQRSUQUVWQWEWWWWW!AqD1qttAv%&&66qr6BBs1vvgaiRSTVRVWXRXFXXXXXXXrW   c                     t          d          } t          |                               | dd          t           t          z  dz  | z   | dz  dz  z   | dz  dz  z   | dz  dz  z   | dz  dz  z   t          | dz            z   k    sJ d S )	NrE   r   r8   r4   r=   r<   r:   rZ   )r   r   r[   r   r   r)   r\   s    rU   test_acoth_seriesr    s    sA88??1a$$	
2a!ad1fq!tAv%1Q.Aa7!ArE((BC C C C C CrW   c                  
   t          d          } t          | dz                                 | dd           t          d          dz  t          |           dz  z
  | dz  z   | dz  dz  z
  | dz  dz  z   t	          | dz            z   k    sJ t          | dz
                                | dd d          t
          t          z  dz  t          d          dz  z
  t          |           dz  z   | dz  z   | dz  dz  z   | dz  dz  z   t	          | dz            z   k    sJ t          | dz
                                | dd d	          t
           t          z  dz  t          d          dz  z
  t          |           dz  z   | dz  z   | dz  dz  z   | dz  dz  z   t	          | dz            z   k    sJ t          t
          | z  t          d          dz  z                                 | dd d          t          t          d          dz            dt
          z  | z  dz  z   d
| dz  z  dz  z
  dt
          z  | dz  z  dz  z
  t	          | dz            z   k    sJ t          t
          | z  t          d          dz  z                                 | dd d	          t
          t          z  t          t          d          dz            z   dt
          z  | z  dz  z   d
| dz  z  dz  z
  dt
          z  | dz  z  dz  z
  t	          | dz            z   k    sJ t          t
          | z  t          d          dz  z
                                | dd d          t          t          d          dz             t
          t          z  z
  dt
          z  | z  dz  z   d
| dz  z  dz  z   dt
          z  | dz  z  dz  z
  t	          | dz            z   k    sJ t          t
          | z  t          d          dz  z
                                | dd d	          t          t          d          dz             dt
          z  | z  dz  z   d
| dz  z  dz  z   dt
          z  | dz  z  dz  z
  t	          | dz            z   k    sJ t          t
           | dz  z  | z
  t          d          dz  z
                                | dd           t
          t          z  dz  t          d          dz  z
  d| z  dz  z
  | dz  t          d
           dz  dt
          z  dz  z   z  z   dt
          z  | dz  z  z
  | dz  t          d          dz  dt
          z  dz  z
  z  z   d
| dz  z  dz  z
  t	          | dz            z   k    sJ d S )NrE   r2   r>   r4   r   r=   r   r   r3   rh   rZ   r   r  h   )r   r   r   r   r)   r   r   r   r\   s    rU   test_acoth_nseriesr    s   sAQ<<%%aD11SVVAXAq5H1Q35NqDG6d2g6!Q$6         Q<<%%aDq%99QrT!Vc!ffQh=NFF1H>s>T"W> !tBw>')*1a4>1 1 1 1 1Q<<%%aDr%::qbeAgAq>PFF1H?s?T"W? !tBw?')*1a4?1 1 1 1 1 1qttAv,,Q4a,@@E!A$$q&MMaCE!GE1fQhEQq!tBE')*1a4E1 1 1 1 11qttAv,,Q4b,AAQrT	!A$$q&MMFaCE!GF1fQhF'),Qq!tBF79:1a4FA A A A A1qttAv,,Q4a,@@U1Q44PQ6]]NbDE	Q3q57Eq!tVAXE #Aad
2E.01!Q$E8 8 8 8 81qttAv,,Q4b,AAeAaDDQRFmm^aCE!GF1fQhFQq!tBF')*1a4F1 1 1 1 1 !AqD1qttAv%&&44Q4@@AbDFSQRVVTUXDUaCEE
qD1Q44%'AaCE/"E#%&qSAXE.011affRi"Q$q&6H0IEJLMaQRdFSTHEUWXYZ\]Y]W^W^E_ _ _ _ _ _ _rW   c                  V     t          d           t          t           fd           d S )NrE   c                  H    t                                         d          S r`   )r   ra   r\   s   rU   rb   z"test_acoth_fdiff.<locals>.<lambda>  r   rW   rd   r\   s   @rU   test_acoth_fdiffr    r   rW   c                  n    t          d           t                                                     t          k    sJ t	          t
           fd           t                                                     t          k    sJ t                                                     t          k    sJ t                                                     t          k    sJ t                                                     t          k    sJ t                                                     t          k    sJ t                                                     t          k    sJ t                                                     t          k    sJ t                                                     t          k    sJ d S )NrE   c                  F    t                                                     S )N)r   inverser\   s   rU   rb   ztest_inverses.<locals>.<lambda>  s    477??#4#4 rW   )r   r   r  r   r,   AttributeErrorr    r   r   r   r   r   r   r   r   r   r\   s   @rU   test_inversesr    sc   sA77??%%%%
>444455577??%%%%77??%%%%88%%%%88%%%%88%%%%88%%%%88%%%%88%%%%%%rW   c                  d   t          d          } t          |                               |           dk    sJ t          |                               |           d| z  k    sJ t          t
          fD ]&} ||                               |           | k    sJ 't          t          t
          t          fD ]<}d| z  t          j        fD ](} ||          }|                    |           |k    sJ )=t          t          fD ]2} |t          j                  }|                    |           |k    sJ 3d S )NrE   r2   )
r   r   r   r   r   r    r   rO   r   r   )rE   funcareqs       rU   test_leading_termr    sM   sA77""1%%****77""1%%1,,,,t / /tAww&&q))Q.....tT4( / /Q3- 	/ 	/BbB%%a((B.....	/ t + +T!&\\!!!$$*****+ +rW   c            	      	   t          dd          \  } }| |t          z  z   }t          t          t          t
          t          t          fD ]9} ||                                           || |t          z  z
            k    sJ :dD ]e}t          |          	                    d|          t          |           t          |          z  t          t          |           z  t          |          z  z   k    sJ t          |          	                    d|          t          |           t          |          z  t          t          |           z  t          |          z  z   k    sJ t	          |          	                    d|          t          |           t          |           z  t          |          dz  t          |           dz  z   z  t          t          |          z  t          |          z  t          |          dz  t          |           dz  z   z  z   k    sJ t          |          	                    d|          t          |           t          |           z  t          |          dz  t          |           dz  z   z  t          t          |          z  t          |          z  t          |          dz  t          |           dz  z   z  z
  k    sJ t          |          	                    d|          t          |          t          |           z  t          |          dz  t          |           dz  z  t          |          dz  t          |           dz  z  z   z  t          t          |          z  t          |           z  t          |          dz  t          |           dz  z  t          |          dz  t          |           dz  z  z   z  z
  k    sJ t          |          	                    d|          t          |          t          |           z  t          |          dz  t          |           dz  z  t          |          dz  t          |           dz  z  z   z  t          t          |          z  t          |           z  t          |          dz  t          |           dz  z  t          |          dz  t          |           dz  z  z   z  z
  k    sJ gd S )Na,bTrH   TFcomplexrD   r4   )r   r   r   r   r    r   r   r   	conjugateexpandr$   r'   )abzr  rD   s        rU   test_complexr*    s   5t$$$DAq	AaCAtT4t4 4 4tAww  ""dd1qs7mm33333 2 2Aww~~t  % %(,QA4773q669I(IJ J J JAww~~t  % %(,QA4773q669I(IJ J J JAww~~d~66$q''$C C ;A	DGGQJ&;(*+CFF(3q66/3q6619tAwwPQz;Q*R;S S S S SAww~~d~66$q''$C C ;A	DGGQJ&;(*+CFF(3q66/3q6619tAwwPQz;Q*R;S S S S SAww~~d~66#a&&477:JcRSffVWi!WWaZOa&&!)d1ggqj0O1 ;245c!ffHtAww4F#a&&RS)!WWaZKa&&!)d1ggqj0K1 52;2 2 2 2 2 Aww~~d~66#a&&477:JcRSffVWi!WWaZOa&&!)d1ggqj0O1 ;245c!ffHtAww4F#a&&RS)!WWaZKa&&!)d1ggqj0K1 52;2 2 2 2 2 22 2rW   c                      t          dd          \  } }dD ]N}t          t          t          t          fD ]1} ||                               d|           ||           k    sJ 2Od S )Nr!  TrH   r"  r#  )r   r   r   r    r   r&  )r'  r(  rD   r  s       rU   test_complex_2899r,    s    5t$$$DAq F F4t, 	F 	FD477>>$T>::dd1ggEEEEE	FF FrW   c                  D
   t          d          } t          t          |                     | k    sJ t          t          |                     t	          | dz
            t	          | dz             z  k    sJ t          t          |                     | t	          d| dz  z
            z  k    sJ t          t          |                     dt	          | dz
            t	          | dz             z  z  k    sJ t          t          |                     t	          d| dz  z             k    sJ t          t          |                     | k    sJ t          t          |                     dt	          d| dz  z
            z  k    sJ t          t          |                     | t	          | dz
            t	          | dz             z  z  k    sJ t          t          |                     | t	          d| dz  z             z  k    sJ t          t          |                     t	          | dz
            t	          | dz             z  | z  k    sJ t          t          |                     | k    sJ t          t          |                     d| z  k    sJ t          t          |                     t	          d| dz  z             | z  k    sJ t          t          |                     | t	          | dz
            t	          | dz             z  z  k    sJ t          t          |                     d| z  k    sJ t          t          |                     | k    sJ t          t          |                     d| z  k    sJ t          t          |                     dt	          | dz
            t	          | dz             z  z  k    sJ t          t          |                     t	          d| dz  z
            | z  k    sJ t          t          |                     t	          | dz
            t	          | dz             z  k    sJ t          t          |                     dt	          d| dz  z             z  k    sJ t          t          |                     d| z  k    sJ t          t          |                     t	          d| dz  z
            k    sJ t          t          |                     t	          | dz
            t	          | dz             z  | z  k    sJ d S r   )r   r   r   r   r!   r   r   r   r    r   r   r   r\   s    rU   test_simplificationsr.    sO   sAa>>Qa>>T!a%[[4A;;66666a>>QtA1H~~-----a>>QQUd1q5kk 9:::::a>>T!ad(^^++++a>>Qa>>QtA1H~~-----a>>QQUd1q5kk 9:::::a>>QtA1H~~-----a>>T!a%[[4A;;6:::::a>>Qa>>QqS    a>>T!ad(^^A-----a>>QQUd1q5kk 9:::::a>>QqS    a>>Qa>>QqS    a>>QQUd1q5kk 9:::::a>>T!ad(^^A-----a>>T!a%[[4A;;66666a>>QtA1H~~-----a>>QqS    a>>T!ad(^^++++a>>T!a%[[4A;;6q8888888rW   c                      t          t          t          d          dz                      t          t          d          dz            k    sJ d S )Nr=   r4   r   r>   )r   r   r   r!   r   rW   rU   test_issue_4136r0  &  sE    gajjl##$$WR[[](;(;;;;;;;rW   c                     t          d          } t          |                               t                    t          |           t          |            z
  dz  cxk    r&t          |                               d          k    sn J t          |                               t                    t
           t	          | t
          t          z  dz  z             z  k    sJ t          t          j	        | z            }t          |                               t                    d|z  d|dz  z
  z  k    sJ t          t          j	        | z            }t          |                               t                    d|z  |dz  dz
  z  k    sJ d S NrE   r4   	tractabler2   )r   r   r   r   r   r   r   r    r   rO   r   rE   	tanh_half	coth_halfs      rU   test_sinh_rewriter7  *  sS   sA77??3CFFS!WW$4a#7 ( ( ( (77??;''( ( ( ( ( (77??4  QBtA"QJ'7'7$77777QVAXI77??4  AiKY\1A$BBBBBQVAXI77??4  AiKA1A$BBBBBBBrW   c                     t          d          } t          |                               t                    t          |           t          |            z   dz  cxk    r&t          |                               d          k    sn J t          |                               t                    t
           t	          | t
          t          z  dz  z             z  k    sJ t          t          j	        | z            dz  }t          |                               t                    d|z   d|z
  z  k    sJ t          t          j	        | z            dz  }t          |                               t                    |dz   |dz
  z  k    sJ d S r2  )r   r   r   r   r   r   r   r    r   rO   r   r4  s      rU   test_cosh_rewriter9  5  sS   sA77??3CFFS!WW$4a#7 ( ( ( (77??;''( ( ( ( ( (77??4  QBtA"QJ'7'7$77777QVAX!I77??4  Q]Q]$CCCCCQVAX!I77??4  Y]Y]$CCCCCCCrW   c                  \   t          d          } t          |                               t                    t          |           t          |            z
  t          |           t          |            z   z  cxk    r&t          |                               d          k    sn J t          |                               t                    t
          t	          |           z  t	          t
          t          z  dz  | z
            z  k    sJ t          |                               t                    t
          t          t
          t          z  dz  | z
            z  t          |           z  k    sJ t          |                               t                    dt          |           z  k    sJ d S NrE   r3  r4   r2   )	r   r    r   r   r   r   r   r   r   r\   s    rU   test_tanh_rewriter<  @  sV   sA77??3CFFS!WW$4s1vvQB7G#H ( ( ( (77??;''( ( ( ( ( (77??4  Ad1ggId1R46A:.>.>$>>>>>77??4  Ad1R46A:&6&6$6tAww$>>>>>77??4  Ad1ggI------rW   c                  `   t          d          } t          |                               t                    t          |           t          |            z   t          |           t          |            z
  z  cxk    r&t          |                               d          k    sn J t          |                               t                    t
           t	          t
          t          z  dz  | z
            z  t	          |           z  k    sJ t          |                               t                    t
           t          |           z  t          t
          t          z  dz  | z
            z  k    sJ t          |                               t                    dt          |           z  k    sJ d S r;  )	r   r   r   r   r   r   r   r   r    r\   s    rU   test_coth_rewriter>  I  sZ   sA77??3CFFS!WW$4s1vvQB7G#H ( ( ( (77??;''( ( ( ( ( (77??4  QBtAbDFQJ'7'7$7Q$?????77??4  QBtAwwJtAbDFQJ/?/?$?????77??4  Ad1ggI------rW   c                     t          d          } t          |                               t                    dt          |           dz  t          |            dz  z
  z  cxk    r&t          |                               d          k    sn J t          |                               t                    t
          t	          | t
          t          z  dz  z             z  k    sJ t          t          j	        | z            }t          |                               t                    d|dz  z
  d|z  z  k    sJ t          t          j	        | z            }t          |                               t                    |dz  dz
  d|z  z  k    sJ d S NrE   r2   r4   r3  )r   r   r   r   r   r   r   r    r   rO   r   r4  s      rU   test_csch_rewriterA  R  sY   sA77??31Aq3r7719(<#= ( ( ( (77??;''( ( ( ( ( (77??4  Ad1qtAv:&6&6$66666QVAXI77??4  QA%5)$DDDDDQVAXI77??4  Y\A%5)$DDDDDDDrW   c                     t          d          } t          |                               t                    dt          |           dz  t          |            dz  z   z  cxk    r&t          |                               d          k    sn J t          |                               t                    t
          t	          | t
          t          z  dz  z             z  k    sJ t          t          j	        | z            dz  }t          |                               t                    d|z
  d|z   z  k    sJ t          t          j	        | z            dz  }t          |                               t                    |dz
  |dz   z  k    sJ d S r@  )r   r   r   r   r   r   r   r    r   rO   r   r4  s      rU   test_sech_rewriterC  ]  sY   sA77??31Aq3r7719(<#= ( ( ( (77??;''( ( ( ( ( (77??4  Ad1qtAv:&6&6$66666QVAX!I77??4  Q]Q]$CCCCCQVAX!I77??4  Y]Y]$CCCCCCCrW   c                     t          d          } t          |                               |           t          |           dz   k    sJ t          |                               |           t	          |           k    sJ t	          |                               |           t          |           k    sJ t          |                               |           t          |           dz   dz   k    sJ t          |                               |           t          |            t          |           z  k    sJ t          |                               |           t          |            t          |           z  k    sJ t          |                               |           d| dz   dz   z  k    sJ t          |                               |           dt          | dz  dz             z  k    sJ t          |                               |           dt          | dz
            t          | dz             z  z  k    sJ t          |                               |           t          |                               t                                        |                                           k    sJ t          |                               |           d| dz   dz   z  k    sJ t!          |                               |           d| t          d| dz  z
            z  z  k    sJ t#          |                               |           d| dz  t          d| dz  z             z  z  k    sJ d S )NrE   r6   r4   r2   r3   )r   r   diffr   r   r    r   r   r   r   r!   r   r   r   togetherr   r   r   r\   s    rU   test_derivsrG  h  s   sA77<<??tAww}n,,,,77<<??d1gg%%%%77<<??d1gg%%%%77<<??tAwwzkAo----77<<??tAwwhtAww.....77<<??tAwwhtAww.....88==q1a4%!)},,,,88==qadQh/////88==q$q1u++d1q5kk"9:::::88==uQxx//4499!<<EEGGGGGG88==q1a4%!)},,,,88==r1T!ad(^^#34444488==r1a4QR[(9(9#9:::::::rW   c                  |   t          d          \  } }t          | |z                                 d          t          |           t          |          z  t          |           t          |          z  z   k    sJ t          d| z                                d          dt          |           z  t          |           z  k    sJ t          d| z                                d                                          t          |           dz  dt          |           z  t          |           dz  z  z   k    sJ d S Nr.   T)trigr4   r=   )r   r   r&  r   rE   rT   s     rU   test_sinh_expansionrL  y  s   5>>DAq!99&&$q''$q''/DGGDGGO*KKKKK!99&&!DGG)DGG*;;;;;!99&&--//Q
QtAwwYtAwwz))* * * * * *rW   c                     t          d          \  } }t          | |z                                 d          t          |           t          |          z  t          |           t          |          z  z   k    sJ t          d| z                                d          t          |           dz  t          |           dz  z   k    sJ t          d| z                                d                                          dt          |           dz  z  t          |           z  t          |           dz  z   k    sJ d S rI  )r   r   r&  r   rK  s     rU   test_cosh_expansionrN    s   5>>DAq!99&&$q''$q''/DGGDGGO*KKKKK!99&&$q''1*tAwwz*AAAAA!99&&--//	$q''1*T!WWtAwwz)* * * * * *rW   c                     t          dd          } t          dd          }t          | d          j        du sJ t          | d|z  t          z  t          z  z   d          j        du sJ t          t          t          z  d	z  d          j        du sJ t          d
t          z  t          z  d	z  d          j        du sJ d S Nr/   TrH   r   r0   FrM   r4   r>   r=   )r   r   is_positiver   r   r/   r   s     rU   test_cosh_positiverS    s     	$AT"""AE""".$6666AaCF1Hu---9TAAAA"Q'''3t;;;;!Bq5)))5>>>>>>rW   c                     t          dd          } t          dd          }t          | d          j        du sJ t          | d|z  t          z  t          z  z   d          j        du sJ t          t          t          z  d	z  d          j        du sJ t          d
t          z  t          z  d	z  d          j        du sJ t          t
          j        d          j        du sJ d S rP  )r   r   is_nonnegativer   r   r   ZerorR  s     rU   test_cosh_nonnegativerW    s    $AT"""AE"""1T9999AaCF1Hu---<DDDD"Q'''6$>>>>!Bq5)))8EAAAA'''6$>>>>>>rW   c                  0   t          dd          } t          |           j        J t          |           j        J t	          |           j        J t          |           j        J t          |           j        J t          |           j        J d S )Nr)  FrH   )r   r   rR   r   r    r   r   r   )r)  s    rU   test_real_assumptionsrY    s    sA77?"""77?"""77?"""77?"""77?"""77?"""""rW   c                     t          dd          } t          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 sJ 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 sJ t          |          j        du sJ t          |           j        du sJ d S )NrJ   TrK   r   )negative)	r   r   is_negativerQ  r   r    r   r   r   )rJ   r   s     rU   test_sign_assumptionsr]    sd   sT"""AsT"""A77$&&&&77$&&&&77$&&&&77$&&&&77$&&&&77$&&&&77$&&&&77$&&&&77$&&&&77$&&&&77$&&&&77$&&&&&&rW   N)!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,   rV   r]   re   rl   rp   rs   ru   ry   r|   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r	  r  r  r  r  r  r  r  r*  r,  r.  r0  r7  r9  r<  r>  rA  rC  rG  rL  rN  rS  rW  rY  r]  r   rW   rU   <module>rk     s   9 9 9 9 9 9 9 9 9 9 9 9 9 9 J J J J J J J J J J J J J J J J J J J J " " " " " " / / / / / / / / 9 9 9 9 9 9 9 9 = = = = = = = = A  A  A  A  A  A  A  A  A  A  A  A  A  A  A  A  A  A  A  A  A  A  A  A  A  A  A  A 9 9 9 9 9 9 Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z             % % % % % % 2 2 2 2 2 2 ' ' ' ' ' 'J8 J8 J8ZC C C9 9 9
F$ F$ F$R@ @ @9 9 9
E* E* E*PG G G9 9 9
IQ IQ IQX? ? ?9 9 9
:M :M :Mz' ' '9 9 9
7M 7M 7MtH H H9 9 9
5J 5J 5JpE E E\ \ \$< < <` ` `.: : :
94 94 94x
G 
G 
GY Y Y(? ? ?a a a,: : :
79 79 79t^ ^ ^(> > >0 0 0*R R R: : :
8? 8? 8?v  \ \ \$: : :3 3 30? ? ?: : :
7= 7= 7=tl l lT T T(9 9 9j j j2: : :
%4 %4 %4P} } }Y Y Y&C C C_ _ _.: : :
& & &+ + +2 2 2,F F F9 9 9B< < <C C CD D D. . .. . .E E ED D D; ; ;"* * ** * *	? 	? 	?? ? ?# # #' ' ' ' 'rW   