
    g?                        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m4Z4m5Z5 d dl6m7Z7 d 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. ZWd/ ZXd0 ZYd1 ZZd2 Z[d3 Z\d4 Z]d5 Z^d6 Z_d7 Z`d8 Zad9 Zbd: Zcd; Zdd< Zed= Zfd> Zgd? Zhd@ ZidA ZjdB ZkdC ZldD ZmdE ZndF ZodG ZpdH ZqdI ZrdJ ZsdK ZtdL ZudM ZvdN ZwdO ZxdP ZydQ ZzdR Z{dS Z|dT Z}dU Z~dV ZdW ZdX ZdY ZdZS )[    )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	PoleError)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)rF   yr0   rK   s       l/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/functions/elementary/tests/test_hyperbolic.py	test_sinhrW      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 )NrF   r   r9   r>   rA   r=   x   r;   i  	   i )r   r   seriesr)   rF   s    rV   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rX   c                  V     t          d           t          t           fd           d S )NrF   c                  H    t                                         d          S Nr5   )r   fdiffr]   s   rV   <lambda>z!test_sinh_fdiff.<locals>.<lambda>g       tAww}}Q'7'7 rX   r   r-   r+   r]   s   @rV   test_sinh_fdiffrf   e   /    sA
777788888rX   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/   r0   Tr1   r   r3   r4   r5   r6   r8   r9   r:   r;   r<   r=      r>   r7   r?      rA   rB   rC   r@   FrD   rF   rG   rI   rN   )r   r   r   r
   r   r   r*   r   r   r$   r   r   rP   r	   r!   rQ   r   r   r'   r   rR   rS   PirT   rF   rU   r0   s      rV   	test_coshrm   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######rX   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 )NrF   r   r9   r3   r5   r?      rA     ri   i  )r   r   r\   r)   r]   s    rV   test_cosh_seriesrq      s    sA77>>!Q##	AqDF
QT"Wq!tCx'!Q$u*4qBxx?@ @ @ @ @ @rX   c                  V     t          d           t          t           fd           d S )NrF   c                  H    t                                         d          S ra   )r   rb   r]   s   rV   rc   z!test_cosh_fdiff.<locals>.<lambda>   rd   rX   re   r]   s   @rV   test_cosh_fdiffrt      rg   rX   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/   r0   Tr1   r3   r4   r   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   FrD   rF   rG   )r   r   r    r
   r   r   r*   r   r   r   r	   r!   r(   rQ   r   r   r   r$   r   r'   rS   rl   s      rV   	test_tanhrv      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>>!)))))rX   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 )NrF   r   r9   r>   r5   r=      r@   r;   i;  >   r[   i  )r   r    r\   r)   r]   s    rV   test_tanh_seriesrz     s    sA77>>!Q##	AqDF
Qq!tVBYAqD,r!Q$wt|;a2hhFG G G G G GrX   c                  V     t          d           t          t           fd           d S )NrF   c                  H    t                                         d          S ra   )r    rb   r]   s   rV   rc   z!test_tanh_fdiff.<locals>.<lambda>  rd   rX   re   r]   s   @rV   test_tanh_fdiffr}     rg   rX   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/   r0   Tr1   r3   r4   r   r5   r6   r7   r8   r9   r:   r>   r;   r<   r=   r?   r@   rA   rB   rC   FrD   rF   rG   )r   r   r   r
   r   r   r*   r   r   r%   r   r	   r!   r   r(   r    rQ   r   r   r   r'   r   r$   r   rl   s      rV   	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PrX   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 )NrF   r   ri   r3   r>   -   r5   r=   i  r;   iu  )r   r   r\   r)   r]   s    rV   test_coth_seriesr   ]  s    sA77>>!Q""	!ac	AqDGa1fSj(1a494qAww>? ? ? ? ? ?rX   c                  V     t          d           t          t           fd           d S )NrF   c                  H    t                                         d          S ra   )r   rb   r]   s   rV   rc   z!test_coth_fdiff.<locals>.<lambda>e  rd   rX   re   r]   s   @rV   test_coth_fdiffr   c  rg   rX   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/   r0   Tr1   nrL   r   r4   r3   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   rA   rB   rC   r@   )r   r   r   r
   r   r   r   r   r   r	   r!   r'   rS   r   r   r   rF   rU   r0   r   s       rV   	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LrX   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 )NrF   r   r9   r3   rA   r;   r>   ih     r=   i;     i:	 r:   r[   i 54 )r   r   r\   r)   r]   s    rV   test_csch_seriesr     s    sA77>>!Q##!taczAadF3JAqD.QT&@q!tGGO2hh'' ' ' ' ' 'rX   c                  V     t          d           t          t           fd           d S )NrF   c                  H    t                                         d          S ra   )r   rb   r]   s   rV   rc   z!test_csch_fdiff.<locals>.<lambda>  rd   rX   re   r]   s   @rV   test_csch_fdiffr     rg   rX   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, yr0   Tr1   r   rL   r   r3   r4   r5   r6   r8   r9   r:   r;   r<   r=   ri   r>   r7   r?   rB   rA   rC   r@   )r   r   r   r
   r   r   r   r   r&   r   r	   r!   r$   rS   r   r   r   r   s       rV   	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LrX   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 )NrF   r   r9   r3   r5   r=   r?   ro   =   rA   rp   i  ri   i  )r   r   r\   r)   r]   s    rV   test_sech_seriesr     s    sA77>>!Q##	AqDF
Qq!tVBYAqD,s1a4x}<qBxxGH H H H H HrX   c                  V     t          d           t          t           fd           d S )NrF   c                  H    t                                         d          S ra   )r   rb   r]   s   rV   rc   z!test_sech_fdiff.<locals>.<lambda>  rd   rX   re   r]   s   @rV   test_sech_fdiffr     rg   rX   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                    j        du sJ t          t          d                    j        du sJ t          t          d                    j        du sJ t          t          t                              j        du sJ t          t          t                               j        du sJ t          d          t          z
  t           k    sJ t          t          dd                    j        du 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   r3   r5   r4   rA   r>      r=   r?   r9   r8   Tr7   FrU   rI   v1rN   rx   rj   ia   r:   r   r      r;      irK   rL   )r   r*   r   r
   r   r!   r   r   r   r   r	   r   rS   rR   is_extended_realrP   r   r   rT   )rF   rU   rK   s      rV   
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"-=-=(===== 1;;$&&&&1;; D((((2<<4''''2<<(D0000!B%%== E))))!HHrMrc!!!!4((())1T9999 "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IrX   c            	      ~   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           t          t          | z  d          z  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  d          z  t          t          z  dz  z
  k    sJ d S )NrF   r5   r3   FrN   )
r   r   rewriter   r!   r   r#   r   r"   r   r]   s    rV   test_asinh_rewriter   7  s`   sA88C  CDANN(:$;$;;;;;88E""eAd1q!t8nn,<&=&=====88D!!aRQqS5(A(A(A%AAAAAAE##D))aRQqS!A#Y-?????88D!!QtAaC%'@'@'@%@1R46%IIIIIIIrX   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 NrF   r3   cdirr5   r4   r>   )r   r   as_leading_termr   r   r   r#   r!   r]   s    rV   test_asinh_leading_termr   @  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[[[[[[[rX   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 )NrF   r   ri   r>   rA   r=   (   r;   p   rB   )r   r   r\   r)   taylor_termrF   t5s     rV   test_asinh_seriesr   R  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;;;;;;rX   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 )NrF   r?   r5   r3   r>   r   r=      r;     r   r[      r4   )
r   r   r   _eval_nseriesr   r!   r   r)   r#   r   r]   s    rV   test_asinh_nseriesr   [  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` ` ` ` ` ` `rX   c                  V     t          d           t          t           fd           d S )NrF   c                  H    t                                         d          S ra   )r   rb   r]   s   rV   rc   z"test_asinh_fdiff.<locals>.<lambda>t      uQxx~~a'8'8 rX   re   r]   s   @rV   test_asinh_fdiffr   r  /    sA
888899999rX   c                  J   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 t          t          d                    j        du sJ t          t          d                    j        du sJ t          t                    j        du sJ t          t          d                    j        du sJ t          t          d          dz            j        du sJ t          d          t          z
  t           k    sJ t          t)          dd                    j        J d S )NrF   r3   r   r4   r5   r>   r=   r   r;   r?   rA   ri   rj   z2.31244 + 1.5708*IrB   z2.31244 - 1.5708*Ir   r8   FrN   r7   r@   i   TrU   rI   )r   r*   r   r   r   r   rP   r	   r
   r   r   r   r!   strr   r   rT   rS   r   rR   r   r]   s    rV   
test_acoshr   w  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 1;;$&&&&1;;'4////99%----1;; D((((1??"e++++!HHrMrc!!!!4((())199999rX   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          t          | z  d          z  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 )	NrF   r3   r5   FrN   r7   TrL   )
r   r   r   r   r!   r#   r   r   r   r   r]   s    rV   test_acosh_rewriter     sv   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""d1q5kk1U1Q35O5O5O3ORTUVRV3V&WX\]^ab]bXcXc&ccccc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rX   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 )NrF   r5   r3   r   r4   r7   r>   )r   r   r   r   r   r!   r   r   r]   s    rV   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XrX   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 )NrF   r   ri   r5   r>   rA   r=   r   r;   r   r8   rB   )r   r   r\   r   r   r)   r   r   s     rV   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>>>>>>rX   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 )NrF   r3   r?   r5   r>   r   r=   r   r;   r   r   r7   r[   r   r@   @       r4   )	r   r   r   r!   r   r)   r   r   r   r]   s    rV   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rX   c                  V     t          d           t          t           fd           d S )NrF   c                  H    t                                         d          S ra   )r   rb   r]   s   rV   rc   z"test_acosh_fdiff.<locals>.<lambda>  r   rX   re   r]   s   @rV   test_acosh_fdiffr     r   rX   c                     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                    j        du sJ t          t          d           dz            j        du sJ t          t          d          dz            j        du sJ t          t          d                    j        du sJ t          t          d                    j        du sJ t          t#          dd                    j        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 )NrF   r3   r   r4   r5   r>   r7   rA   rj   r   r=   r9   r[   ri   r;   r?   FTrU   rI   z0.19869 - 1.5708*IrB   z0.19869 + 1.5708*I)r   r*   r   r   r   r   r
   r   r   r   r!   r   r   rP   rS   rR   r   r   r"   r	   r   r   simplifyr   r   r]   s    rV   
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}}$$$$ 1;;%''''!A$$#u,,,,1??$,,,,1;;%''''1;;'4////4((())1999 $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8rX   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 )	NrF   r3   r   r5   r4   r>   r8   r7   )r   r   r   r   r   r   r!   r   r]   s    rV   test_asech_leading_termr   C  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]]]]]]]rX   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 )NrF   r   r[   r3   r   r5   r?   r>       r=   rA   `   #   ri   r6   r4   rB   i)r   r   r\   r   r)   r   r   r   )rF   t6s     rV   test_asech_seriesr   W  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======rX   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 )NrF   r3   r?   r5   r=   r>   r   +   r      r;   r   r@   r   r   r   r8   rA   H   )r   r   r   r!   r   r)   r   r   r]   s    rV   test_asech_nseriesr   b  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 0rX   c            
         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          t          t          | z  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 )NrF   r3   r4   FrN   r5   )
r   r   r   r   r!   r   r   r   r   r   r]   s    rV   test_asech_rewriter   w  sP   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!8nnaacE8R8R8R6RUWXYUY6Y&Z[_`adefgdg`g[h[h&hhhhh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rX   c                  V     t          d           t          t           fd           d S )NrF   c                  H    t                                         d          S ra   )r   rb   r]   s   rV   rc   z"test_asech_fdiff.<locals>.<lambda>  r   rX   re   r]   s   @rV   test_asech_fdiffr     r   rX   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          d                    j        du sJ t          t          d                    j        du sJ t          t          d                    j        du sJ t          t          t                              j        du sJ t          t          t                               j        du sJ t          d          t          z
  t           k    sJ t          t          dd                    j        du 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 )NrF   r3   r5   r4   r   r=   r7   rA   r   r9   ri   r?   r>   r8   rB   TrU   rG   z0.0391819 - 0.193363*Iz0.0391819 + 0.193363*I)r   r*   r   r   r!   r   r   r   r
   r   r   rS   rR   r   r   r   r#   r   r   r   r   r   r]   s    rV   
test_acschr     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 1;;$&&&&1;; D((((2<<4''''2<<(D0000!B%%== D((((!HHrMrc!!!!D11122CtKKKK !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!!""&>>>>>>>rX   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    rX   rV   test_acsch_infinitiesr     sA    99>>>>"::????::??????rX   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 )NrF   r3   r5   r   r4   r>   )r   r   r   r   r   r   r!   r]   s    rV   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[[[[[[[rX   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 )NrF   r   r[   r5   r?   r>   r   r=   rA   r   r   ri   r6   r8   )r   r   r\   r   r)   r   )rF   t4s     rV   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9rX   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 )NrF   r?   r5   r=   r>   r   r   r   r   r;   r   r3   r   ri   r[      r4   i)	r   r   r   r   r   r!   r   r)   r   r]   s    rV   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 3rX   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 NrF   r3   r5   )r   r   r   r   r!   r   r   r   r]   s    rV   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; (<<=(> ? ? ? ? ? ?rX   c                  V     t          d           t          t           fd           d S )NrF   c                  H    t                                         d          S ra   )r   rb   r]   s   rV   rc   z"test_acsch_fdiff.<locals>.<lambda>  r   rX   re   r]   s   @rV   test_acsch_fdiffr     r   rX   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          d                    j	        du sJ t          t          d          dz            j	        d	u sJ t          t          d
d	                    j	        J t          t          d                    j	        du sJ t          t          d                    j        d	u sJ t          t          d                    j	        du 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 )NrF   r   r?   r3   r4   r5   Fr=   TrU   rG   r>   rA   ri   r8   r7   r   r   rB   rN   r;   ir[   i{   '   )r   r   r   r   r   r
   r   r   r   rS   r   r   r!   r	   rP   r*   r    r]   s    rV   
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	!!!! 1;;%''''2q>>!T))))D11122:BBB1;;%''''1;;'4////2<<5(((( 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'<<<<<<<rX   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    rV   test_atanh_rewriter   S  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rX   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    rV   test_atanh_leading_termr   Z  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SrX   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 )NrF   r   r9   r>   r=   r;   r[   )r   r   r\   r)   r]   s    rV   test_atanh_seriesr   n  s    sA88??1a$$	AqDF
QT!Vad1f$q!tAv-!R%89 9 9 9 9 9rX   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 )NrF   r3   r?   r   r5   r   r>   0   r4   r[   r   Q   $   rA      r   )r   r   r   r   r   r   r)   r   r]   s    rV   test_atanh_nseriesr  t  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rX   c                  V     t          d           t          t           fd           d S )NrF   c                  H    t                                         d          S ra   )r   rb   r]   s   rV   rc   z"test_atanh_fdiff.<locals>.<lambda>  r   rX   re   r]   s   @rV   test_atanh_fdiffr	    r   rX   c            
      D   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                    j
        du sJ t          t          d                    j        du sJ t          t          d                    j        du sJ t          t          d                    j
        du sJ t          t          d                    j
        du sJ t          t          d                    j        du sJ t          t          d                    j
        du sJ t          t          dd                    j
        J t          t          dd                    t          t          j                   k    sJ d S )NrF   r   r5   r?   r3   r4   r>   rA   ri   r8   r=   r9   r   rB   Tr7   FrU   rI   )r   r   r   r   r   r
   r   r!   r	   r   rS   rR   r   r   rP   r]   s    rV   
test_acothr    s\   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 1;;$&&&&1;; D((((1;;'4////2<<4''''1;;%''''1;;'4////2<<5((((4((())1999 "a!!eAFmm^333333rX   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 )NrF   r3   r5   r7   )	r   r   r   r   r   r   r!   r   r   r]   s    rV   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||} } } } } }rX   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 )NrF   r3   r   r5   r4   g      ?r>   )r   r   r   r   r   r   r   r]   s    rV   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XrX   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 )	NrF   r   r9   r5   r>   r=   r;   r[   )r   r   r\   r   r   r)   r]   s    rV   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rX   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 )NrF   r3   r?   r5   r   r>   r  r   r4   ri   r[   r   r  h   )r   r   r   r   r)   r   r   r   r]   s    rV   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_ _ _ _ _ _ _rX   c                  V     t          d           t          t           fd           d S )NrF   c                  H    t                                         d          S ra   )r   rb   r]   s   rV   rc   z"test_acoth_fdiff.<locals>.<lambda>  r   rX   re   r]   s   @rV   test_acoth_fdiffr    r   rX   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 )NrF   c                  F    t                                                     S )N)r   inverser]   s   rV   rc   ztest_inverses.<locals>.<lambda>  s    477??#4#4 rX   )r   r   r  r   r-   AttributeErrorr    r   r   r   r   r   r   r   r   r   r]   s   @rV   test_inversesr    sc   sA77??%%%%
>444455577??%%%%77??%%%%88%%%%88%%%%88%%%%88%%%%88%%%%88%%%%%%rX   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 )NrF   r3   )
r   r   r   r   r   r    r   rP   r   r   )rF   funcareqs       rV   test_leading_termr!    sM   sA77""1%%****77""1%%1,,,,t / /tAww&&q))Q.....tT4( / /Q3- 	/ 	/BbB%%a((B.....	/ t + +T!&\\!!!$$*****+ +rX   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,bTrI   TFcomplexrE   r5   )r   r   r   r   r    r   r   r   	conjugateexpandr$   r'   )abzr  rE   s        rV   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 2rX   c                      t          dd          \  } }dD ]N}t          t          t          t          fD ]1} ||                               d|           ||           k    sJ 2Od S )Nr#  TrI   r$  r%  )r   r   r   r    r   r(  )r)  r*  rE   r  s       rV   test_complex_2899r.  4  s    5t$$$DAq F F4t, 	F 	FD477>>$T>::dd1ggEEEEE	FF FrX   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    rV   test_simplificationsr0  ;  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8rX   c                      t          t          t          d          dz                      t          t          d          dz            k    sJ d S )Nr>   r5   r   r?   )r   r   r   r!   r   rX   rV   test_issue_4136r2  \  sE    gajjl##$$WR[[](;(;;;;;;;rX   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 )NrF   r5   	tractabler3   )r   r   r   r   r   r   r   r    r   rP   r   rF   	tanh_half	coth_halfs      rV   test_sinh_rewriter8  `  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BrX   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   d          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 )NrF   r5   r4  FrN   r3   )r   r   r   r   r   r   r   r    r   rP   r   r5  s      rV   test_cosh_rewriter:  k  sX   sA77??3CFFS!WW$4a#7 ( ( ( (77??;''( ( ( ( ( (77??4  QBtA"QJ'G'G'G$GGGGGQVAX!I77??4  Q]Q]$CCCCCQVAX!I77??4  Y]Y]$CCCCCCCrX   c                  d   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
  d          z  k    sJ t          |                               t                    t
          t          t
          t          z  dz  | z
  d          z  t          |           z  k    sJ t          |                               t                    dt          |           z  k    sJ d S NrF   r4  r5   FrN   r3   )	r   r    r   r   r   r   r   r   r   r]   s    rV   test_tanh_rewriter=  v  s`   sA77??3CFFS!WW$4s1vvQB7G#H ( ( ( (77??;''( ( ( ( ( (77??4  Ad1ggId1R46A:.N.N.N$NNNNN77??4  Ad1R46A:&F&F&F$FtAww$NNNNN77??4  Ad1ggI------rX   c                  h   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
  d          z  t	          |           z  k    sJ t          |                               t                    t
           t          |           z  t          t
          t          z  dz  | z
  d          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    rV   test_coth_rewriter?    sd   sA77??3CFFS!WW$4s1vvQB7G#H ( ( ( (77??;''( ( ( ( ( (77??4  QBtAbDFQJ'G'G'G$GQ$OOOOO77??4  QBtAwwJtAbDFQJ/O/O/O$OOOOO77??4  Ad1ggI------rX   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   d          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 NrF   r3   r5   r4  FrN   )r   r   r   r   r   r   r   r    r   rP   r   r5  s      rV   test_csch_rewriterB    s^   sA77??31Aq3r7719(<#= ( ( ( (77??;''( ( ( ( ( (77??4  Ad1qtAv:&F&F&F$FFFFF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DrX   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   d          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 rA  )r   r   r   r   r   r   r   r    r   rP   r   r5  s      rV   test_sech_rewriterD    s^   sA77??31Aq3r7719(<#= ( ( ( (77??;''( ( ( ( ( (77??4  Ad1qtAv:&F&F&F$FFFFFQVAX!I77??4  Q]Q]$CCCCCQVAX!I77??4  Y]Y]$CCCCCCCrX   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 )NrF   r7   r5   r3   r4   )r   r   diffr   r   r    r   r   r   r   r!   r   r   r   togetherr   r   r   r]   s    rV   test_derivsrH    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:::::::rX   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)trigr5   r>   )r   r   r(  r   rF   rU   s     rV   test_sinh_expansionrM    s   5>>DAq!99&&$q''$q''/DGGDGGO*KKKKK!99&&!DGG)DGG*;;;;;!99&&--//Q
QtAwwYtAwwz))* * * * * *rX   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 rJ  )r   r   r(  r   rL  s     rV   test_cosh_expansionrO    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)* * * * * *rX   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 Nr0   TrI   r   r1   FrN   r5   r?   r>   )r   r   is_positiver   r   r0   r   s     rV   test_cosh_positiverT    s     	$AT"""AE""".$6666AaCF1Hu---9TAAAA"Q'''3t;;;;!Bq5)))5>>>>>>rX   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 rQ  )r   r   is_nonnegativer   r   r   ZerorS  s     rV   test_cosh_nonnegativerX    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$>>>>>>rX   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+  FrI   )r   r   rS   r   r    r   r   r   )r+  s    rV   test_real_assumptionsrZ    s    sA77?"""77?"""77?"""77?"""77?"""77?"""""rX   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 )NrK   TrL   r   )negative)	r   r   is_negativerR  r   r    r   r   r   )rK   r   s     rV   test_sign_assumptionsr^    sd   sT"""AsT"""A77$&&&&77$&&&&77$&&&&77$&&&&77$&&&&77$&&&&77$&&&&77$&&&&77$&&&&77$&&&&77$&&&&77$&&&&&&rX   c                      t          d           t          t                      z                                           t          t                      z            k    sJ t	          t
           fd           t          t                      z                                           t          dt          d          z             k    sJ t	          t
           fd           t          t                      z                                           dk    sJ t	          t
           fd           t          t                      z                                           t          t                      z            k    sJ t	          t
           fd           t          t                      z                                           dk    sJ t	          t
           fd	           t          t                      z                                           t          dt          d          z             k    sJ t	          t
           fd
           d S )NrF   c                  h    t          t          d z                                                     S Nr3   )r   r   r   r]   s   rV   rc   z"test_issue_25847.<locals>.<lambda>  %    eC!HHoo==a@@ rX   r3   r5   c                  h    t          t          d z                                                     S ra  )r   r   r   r]   s   rV   rc   z"test_issue_25847.<locals>.<lambda>  rb  rX   r   c                  h    t          t          d z                                                     S ra  )r   r   r   r]   s   rV   rc   z"test_issue_25847.<locals>.<lambda>  rb  rX   c                  h    t          t          d z                                                     S ra  )r   r   r   r]   s   rV   rc   z"test_issue_25847.<locals>.<lambda>  rb  rX   c                  h    t          t          d z                                                     S ra  )r   r   r   r]   s   rV   rc   z"test_issue_25847.<locals>.<lambda>  rb  rX   c                  h    t          t          d z                                                     S ra  )r   r   r   r]   s   rV   rc   z"test_issue_25847.<locals>.<lambda>  rb  rX   )r   r   r'   r   r-   r,   r   r   r!   r   r   r   r   r   r]   s   @rV   test_issue_25847rh    s   sA Q??**1--s1vvax@@@@
9@@@@AAA Q??**1--Qa[1A1AAAAA
9@@@@AAA Q??**1--2222
9@@@@AAA Q??**1--s1vvax@@@@
9@@@@AAA a++A..!3333
9@@@@AAA Q??**1--Qa[1A1AAAAA
9@@@@AAAAArX   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+   r,   sympy.testing.pytestr-   rW   r^   rf   rm   rq   rt   rv   rz   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r	  r  r  r  r  r  r  r  r!  r,  r.  r0  r2  r8  r:  r=  r?  rB  rD  rH  rM  rO  rT  rX  rZ  r^  rh  r   rX   rV   <module>rv     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             % % % % % % = = = = = = = = ' ' ' ' ' '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
>J >J >JBJ J J\ \ \$< < <` ` `.: : :
B: B: B:J
G 
G 
GY Y Y(? ? ?a a a,: : :
?9 ?9 ?9D^ ^ ^(> > >0 0 0*R R R: : :
A? A? A?H  \ \ \$: : :3 3 30? ? ?: : :
@= @= @=Fl l lT T T(9 9 9j j j2: : :
/4 /4 /4d} } }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; ; ;"* * ** * *	? 	? 	?? ? ?# # #' ' '"B B B B BrX   