
    sgg_                       d dl mZ d dlmZ d dlmZmZ d dlmZ d dl	m
Z
 d dlmZmZmZmZmZmZmZmZ d dlmZ d dlmZ d d	lmZmZ d d
lmZmZmZmZ d dl m!Z!m"Z" d dl#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z* d dl+m,Z, d dl-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z; d dl<m=Z=m>Z> d dl?m@Z@ d dlAmBZB d dlCmDZDmEZE d dlFmGZG d dlHmIZI d dlJmKZK d dlLmMZM d dlNmOZOmPZP d dlQmRZR d dlSmTZT d dlmUZUmVZV d dlWmXZXmYZY d dlZm[Z[ d dl\m]Z] d dl^m_Z_m`Z`maZa  ed      \  ZbZcZd ed d!"      Ze ed#d!$      \  ZfZg ed%d!&      Zh ed'd!(      Zi ed%d!)      Zj ed'd!*      Zk ed+d!,      Zl ed-d!.      Zm ed/d!0      Zn ed-d!1      Zo ed/d!2      Zp ed3d!4      Zq ed5d!6      Zr ed7d!d!8      Zsd9 Ztd: Zud; Zvd< Zwd= Zxd> Zyd? Zzd@ Z{dA Z|dB Z}dC Z~dD ZdE ZdF ZdG ZdH ZdI ZdJ ZdK Ze`dL        ZdM ZdN ZdO ZdP ZdQ ZdR Ze_dS        ZdT ZdU Ze`dV        ZdW ZdX ZdY ZdZ Zd[ Zd\ Zd] Zd^ Zd_ Zd` Zda Zdb Zdc Zdd Zde Zdf Zdg Zdh Zdi Zdj Zdk Zdl Zdm Zdn Zdo Zdp Zdq Zdr Zds Zdt Zdu Zdv Zdw Zdx Zdy Zdz Zd{ Zd| Ze_d}        Ze`d~        Ze`d        Ze`d        Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)    )AccumBounds)Add)Lambdadiff)Mod)Mul)EFloatIRationalnanoopizoo)Pow)S)Symbolsymbols)arg	conjugateimre)explog)acothasinhatanhcoshcothsinhtanh)sqrt)acosacotacscasecasinatanatan2coscotcscsecsinsinctan)besseljjn)	Heaviside)Matrix)cancelgcd)limit)O)series)ImageSet)	FiniteSetInterval)simplify)	unchanged)ArgumentIndexError	PoleError)NeEq)	Piecewise)SetExpr)XFAILslowraiseszx y zrTrealzk mintegerppositivennegative)nonpositivenonnegativenz)nonzeroep)extended_positiveen)extended_negative)extended_nonpositive)extended_nonnegativeenz)extended_nonzeroa)	algebraicna)rW   ra   c                     t        d      \  } }t        dd      }t        j                  t        d      k(  sJ t        t              t        u sJ t        t
              t        u sJ t        t              t        dd      k(  sJ t        t              t        t              z
  t        dd      k(  sJ t        t        t        z        t        t        z  k(  sJ t        t         t        z        t         t        z  k(  sJ d	t        t              z  t        j                  u sJ d	t        t              z  t        j                  u sJ d	t        t              z   t        dd      k(  sJ d
t        t              z   t        dd      k(  sJ t        d	      d	k(  sJ t        |t        z        t        t        |      z  k(  sJ t        t        |             | k(  sJ t        t        |             | t        d| dz  z         z  k(  sJ t        t        |             t        d| dz  z
        k(  sJ t        t!        |             dt        dd| dz  z  z         | z  z  k(  sJ t        t#        |             d| z  k(  sJ t        t%        |             t        dd| dz  z  z
        k(  sJ t        t'        ||             |t        | dz  |dz  z         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        d       t        z  k(  sJ t        t(              d	k(  sJ t        t(               d	k(  sJ t        dt(        z        d	k(  sJ t        dt(        z        d	k(  sJ t        dddz  z  t(        z        d	k(  sJ t        dddz  z  t(        z        d	k(  sJ t        t(        dz        dk(  sJ t        t(         dz        dk(  sJ t        t(        t+        d
d      z        dk(  sJ t        t(        t+        dd      z        dk(  sJ t        ddd      }t        dd      }t        t(        |z  dz        d|dz  t        j,                  z
  z  k(  sJ t        t(        t.        z  dz        j0                  t        k(  sJ t        t(        |z  dz        d	k(  sJ t        t(        t.        z        d	k(  sJ t        t(        t.        z        j3                  t.        d      t        t(        t.        z  dz        j3                  t.        d      k(  sJ t        t(        dz        t        j,                  t        d      z  k(  sJ t        t(        t+        dd      z        t+        dd      t        d      z  k(  sJ t        t(        dz        t        j,                  t        d      z  k(  sJ t        t(         dz        t+        dd      t        d      z  k(  sJ t        t(        t+        dd      z        t        j,                  t        d      z  k(  sJ t        t(        t+        dd      z        t+        dd      t        d      z  k(  sJ t        t(        dz        t        j,                  k(  sJ t        t(         dz        t+        dd      k(  sJ t        t(        t+        dd      z        t+        dd      k(  sJ t        t(        t+        dd      z        t+        dd      k(  sJ t        t(        t+        dd
      z        t        d
t        d
      z
  dz        k(  sJ t        t(        t+        dd
      z        t        d
t        d
      z   dz        k(  sJ t        t(        t+        dd
      z        t        t(        t+        dd
      z        k(  sJ t        t(        t+        dd
      z        t        t(        t+        dd
      z        k(  sJ t        t(        t+        dd
      z        t        t(        t+        dd
      z         k(  sJ t        t(        t+        dd
      z        t        t(        t+        dd
      z         k(  sJ t        t(        t+        dd
      z        t        t(        t+        dd
      z         k(  sJ t        t(        dz        t        dt        d      z
  dz        k(  sJ t        t(        dz        t+        dd      t        d
      dz  z   k(  sJ t        t(        dz        t        d       dz  t        d      dz  z   k(  sJ t        t(        t+        d
d      z        t        d      dz  t        d      dz  z   k(  sJ t        t(        t+        dd      z        t        d       dz  t        d      dz  z
  k(  sJ t        t(        t+        dd      z        t        d      dz  t        d      dz  z
  k(  sJ t        t(        t+        dd       z        t        t(        d z        k(  sJ t        t(        t+        d!d       z        t        t(        d z         k(  sJ t        t(        t+        d"d       z        t        t(        d z         k(  sJ t        t(        t+        d#d       z        t        t(        d z        k(  sJ t        | t        z        t        |       t        z  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z         t        d      k(  sJ t        dt.        z  t(        z  t4        t(        z  z   dz         dt4        dt.        z  z   z  t        d      z  k(  sJ t        t.        t(        z  t        z        t        t.        t(        z        t        z  k(  sJ t        t6              j8                  du sJ t        d	d$      j:                  sJ t        t<              j:                  J t        t>              j:                  du sJ tA        d%d&      }t        t(        |z        j:                  sJ tA        d'dd(      }t        |      jB                  du sJ t        |      jB                  J tE        t        tG        |       tI        |      z
        t              du sJ tE        t        tG        |        tI        |      z         t              du sJ t        tK        tM        d	d                  tK        tO        tQ        | t        |             tM        d	d                  k(  sJ tS        tU        dd)            d*d+gz   D ]]  }tU        |dz  dz         D ]G  }|t(        z  |z  } tW        tY        t        |             t        tY        |             z
        }|d,k  rGJ  _ t        d	d$      jZ                  du sJ t        t.        t(        z  d$      jZ                  du sJ t        t]        ddd$      d$      jZ                  du sJ y )-Nx yzT	imaginary      r            
   I      g   neFrL   evenerv               h   i   j   evaluateqrationalqn)r   rW      <   U   -q=)/r   r.   nargsr;   r   r   r   r   r   r   Zeror    r'   r(   r"   r#   r$   r%   r&   r)   r   r   HalfkfuncsubsmrH   is_realis_algebraicr`   rb   r   is_rational
isinstancer   r   rD   r<   r:   r   listrangeabsfloatis_zeror   )	xyre   rt   rw   r   r   drP   s	            f/var/www/html/venv/lib/python3.12/site-packages/sympy/functions/elementary/tests/test_trigonometric.pytest_sinr   3   s   5>DAqt$A99	!$$$s8s??s8s??r7k"a((((r7SWB 2222r!t91s1u:"QSW9SW9s2w;+b!,,,,s2w;+a++++q6Q;;qs8qay   tAw<1tAw<1tA1H~----tAw<4AqD>)))tAw<1QQT\ 2Q 67777tAw<1q5   tAw<4A1H----uQ{q41q!t#44444r!t9R
"""s1u:$r(1$$$r!t9a
"""r7a<<s8q==qt9>>r"u:??r"b&y|!!!qSy|!!!r!t9>>s1u:r(1a. !Q&&&r(1a. !R'''	t%	0B$Ar"uQw<B"Q$-0000r!tAv;s"""r!tAv;!r!t9>>r!t9>>!Q3r!tAv;#3#3Aq#9999r!t9tAw&&&r(2q/!"hr1od1g&====r!t9tAw&&&s1u:"aa0000r(2q/!"affT!Wn444r(2q/!"hr1od1g&====r!t9s1u:"a(((r(1a. !Xb!_444r(2q/!"hr1o555r(1a. !T1tAw;!*;%<<<<r(1a. !T1tAw;!*;%<<<<r(1a. !SHQN):%;;;;r(1a. !SHQN):%;;;;r(1a. !c"Xa^*;&<%<<<<r(1a. !c"Xa^*;&<%<<<<r(5!$$%#b!Q.?*@)@@@@r!t9a$q'k1_----r"u:"a47194444r"u:$q'!d1gai////r(1b/!"d1gai$q'!)&;;;;r(2r""#QxzDGAI'====r(3##$Q	DGAI(====r(3$$%RV444r(3$$%#bf+555r(4%%&3r#v;,666r(4%%&#bf+555qs8tAwqy   qt9>>r!tBw<1qs2vz?c!f$$$qs2v"}q !bA!G_SV%;;;;qtAv;$qt*Q,&&&q6>>T!!!q5!....q6&&&r75(((sT"Ar!t9!!!!	tT	2Br7%'''q6%%%c2a52a5=)3/4777c2a5&2a5.)3/5888wx1~&'78F1c!f<M1~4' ,( ( ( ( %2,2r(* qsQw 	A"QAU3q6]Sq]24Au99	 q5!))T111qte$,,444s1b5)E:BBdJJJ    c                     dD ]  } t        d| z  | dz        D ]  }|t        z  | z  }t        |t        dz  z         t        |      k(  sJ d|| fz         t        |t        dz  z
        t        |       k(  sJ d|| fz         t        |      t        |t        dz  z
        k(  sJ d|| fz         t        |       t        |t        dz  z         k(  rJ d|| fz           y )N)rh   rk   ry   rm   rl   rn   rp   r~               (   r   x   rj   rk   fails for %d*pi/%d)r   r   r.   r*   )r   rP   r   s      r   test_sin_cosr      s    D Kr!tQqS! 	KA"QAq2a4x=CF*I,@Aq6,II*q2a4x=SVG+J-AQF-JJ+q6SRT]*I,@Aq6,II*F7c!bd(m+J-AQF-JJ+	KKr   c                      t        t              j                  t        dd      t        t        dz  dz  z
  t        dz  dz  z   t        dz  dz  z
  t        t        dz        z   k(  sJ y )	Nr   	   ry   rn   rl   r   rr   i  )r.   r   r9   r8    r   r   test_sin_seriesr      s[    q6==Aq!	AqDF
QT#X1T	)AadG34 4 4r   c                  b   t        t              j                  t              t         t        t        t        z        t        t         t        z        z
  z  dz  k(  sJ t        t              j                  t
              dt        t        dz        z  dt        t        dz        dz  z   z  k(  sJ t        t              j                  t              t        dt        t        t              d      t        t        t        t              d      z  fdt        t        dz        z  t        t        dz        dz  dz   z  df      k(  sJ t        t        t                    j                  t              j                  t        d      j                         t        t              j                  t              j                  t        t        d            j                         k(  sJ t        t        t                    j                  t              j                  t        d      j                         t        t              j                  t              j                  t        t        d            j                         k(  sJ t        t!        t                    j                  t              j                  t        d      j                         t        t              j                  t              j                  t        t!        d            j                         k(  sJ t        t#        t                    j                  t              j                  t        d      j                         t        t              j                  t              j                  t        t#        d            j                         k(  sJ t        t        t                    j                  t              j                  t        d      j                         t        t              j                  t              j                  t        t        d            j                         k(  sJ t        t%        t                    j                  t              j                  t        d      j                         t        t              j                  t              j                  t        t%        d            j                         k(  sJ t        t        t                    j                  t              j                  t        d      j                         t        t              j                  t              j                  t        t        d            j                         k(  sJ t        t        t                    j                  t              j                  t        d      j                         t        t              j                  t              j                  t        t        d            j                         k(  sJ t        t'        t                    j                  t(              t        t        t         z  z  dz  t        t        t        z  z  dz  z
  k(  sJ t        t              j                  t*              dt+        t              z  k(  sJ t        t              j                  t$              t%        t        t        dz  z
  d      k(  sJ t        t              j                  t,              dt-        t        t        dz  z
  d      z  k(  sJ t        t%        t                    j                  t(              t        t%        t                    k(  sJ t        t              j                  t.              t1        t        t        z  dz        t/        t2        j4                  t              z  k(  sJ t        t              j                  t.              j                  t        d      t        d      k(  sJ y )Nrk   rh   r   Try   Fr   )r.   r   rewriter   r   r0   r+   rC   rB   r   r   r   r    r   rP   r   r!   r   r*   r   r   r,   r-   r1   r"   r   r   r   r   r   test_sin_rewriter      sa   q6>>#1"c!A#haRT&:";A"====q6>>#!C!H*a#ac(A+o">>>>q6>>#1bAlRAr
A%667S1X:s1Q3x{Q/6	88 8 8 tAw<T!QZs1v~~c27747CEEGH H HtAw<T!QZs1v~~c27747CEEGH H HtAw<T!QZs1v~~c27747CEEGH H HtAw<T!QZs1v~~c27747CEEGH H Hs1v;T!QZs1v~~c2773q6BDDFG G Gs1v;T!QZs1v~~c2773q6BDDFG G Gs1v;T!QZs1v~~c2773q6BDDFG G Gs1v;T!QZs1v~~c2773q6BDDFG G Gs1v;s#qQBw{Qq!tVQY'>>>>q6>>#!CF(***q6>>##a"q&j5"AAAAq6>>#!c!b1f*u&E"EEEEs1v;s#s3q6{222q6>>'"d2a46l716613E&EEEEq6>>'"''1-Q777r   c           	          ddl m} t        | |      sJ  | | |             | |      k(  sJ  | | t        |dd                  |k(  sJ t	         | |      |z
        j                         dk  sJ y )Nr   )expand_trigrh   Fr   绽|=)sympy.core.functionr   r>   r   r   rP   )firw   r   s       r   _test_extrigr      sr    /Q??qt!$$$ qQE234999qtax=??u$$$r   c            	         t        t        t        z         j                  d      t        t              t	        t              z  t	        t              t        t              z  z   k(  sJ t        t        t        z
        j                  d      t        t              t	        t              z  t	        t              t        t              z  z
  k(  sJ t        t        t        z
        j                  d      t	        t              t        t              z  t        t              t	        t              z  z
  k(  sJ t        dt        z        j                  d      dt        t              z  t	        t              z  k(  sJ t        dt        z        j                  d      dt        t              dz  z  dt        t              z  z   k(  sJ t        dt        z        j                  d      dt        t              dz  z  t	        t              z  dt        t              z  t	        t              z  z   k(  sJ t        dt
        z  dz        j                  d      t        dt
        z  dz  d	
      k(  sJ t        t        t
        dz  z         j                  d      t        t
        dz        t	        t              z  t	        t
        dz        t        t              z  z   k(  sJ t        t         ddt        d      z  t	        d      z         t        t         ddt        d      dz  z  dt        d      z  z          y )NTtrigrk   ry   rm   rz   Fr   rh   )r.   r   r   expandr*   r   r   r   r   r   test_sin_expansionr      sE    q1u:$'3q6#a&=3q6#a&=+HHHHq1u:$'3q6#a&=3q6#a&=+HHHHq1u:$'3q6#a&=3q6#a&=+HHHHqs8???%3q6#a&888qs8???%CFAI#a&)@@@@qs8???%CFAIc!f)<qQxA)NNNNqtBw<D)S2b5-IIIIqBw<D)SBZA->RUCPQFAR-RRRRa3q6#a&)aCFAI#a&01r   c                     t        t        t         t                    t        dd      k(  sJ t        t        dt                    t        dd      k(  sJ t        t        t         d            t        dd      k(  sJ t        t        ddt        j                  z              t        dd      k(  sJ t        t        dt        j                  t        dd      z              t        dd      k(  sJ t        t        t        j                  t        dd      z  t        j                  t        dd      z              t        dt        t        j                  t        dd      z              k(  sJ t        t        t        j                  dz  t        j                  dz              t        t        t        j                  dz        t        t        j                  dz              k(  sJ t        t        t        j                  t        dd      z  t        j                  t        dd	      z              t        t        t        j                  t        dd	      z        t        t        j                  t        dd      z              k(  sJ y )
Nri   rh   r   rk   ry   rm   rr   rl   rn   )r.   r   r   r   Pir   r   r   r   test_sin_AccumBoundsr      s   {B3#$B(::::{1b!"k"a&8888{B3"#{2q'9999{1af%&+b!*<<<<{1add8Aq>123{1a7HHHH{144A.Xa^0CDEUWY\]^]a]abjklnobp]pYqIrrrr{14461446*+{3qttAv;ADDQRF/TTTT{144A.Xa^0CDEUXYZY]Y]^fghjk^lYlUmorstswsw  yA  BC  EF  yG  tG  pH  JI  I  I  Ir   c                      t        t              j                         t        t              k(  sJ t	        t
        d        y )Nc                  >    t        t              j                  d      S Nrk   )r.   r   fdiffr   r   r   <lambda>z test_sin_fdiff.<locals>.<lambda>      s1v||A r   )r.   r   r   r*   rG   r?   r   r   r   test_sin_fdiffr     s*    q6<<>SV###
67r   c                     t        t               t        t               k(  sJ t        t               t        t              k(  sJ t        t               t        t               k(  sJ t	        t               t	        t               k(  sJ t        t        t
        z         t        t               k(  sJ t        t        dt
        z  z         t        t              k(  sJ t        t        dt
        z  z         t        t               k(  sJ t        t        dt
        z  z         t        t              k(  sJ t        t        dt
        z  z
        t        t               k(  sJ t        t        t
        z         t        t               k(  sJ t        t        dt
        z  z         t        t              k(  sJ t        t        dt
        z  z         t        t               k(  sJ t        t        dt
        z  z         t        t              k(  sJ t        t        dt
        z  z
        t        t               k(  sJ t        t        t
        z         t        t              k(  sJ t        t        dt
        z  z
        t        t              k(  sJ t	        t        t
        z         t	        t              k(  sJ t	        t        dt
        z  z
        t	        t              k(  sJ t        t
        dz  t        z
        t        t              k(  sJ t        t
        t        dd      z  t        z
        t        t               k(  sJ t        t
        t        dd      z  t        z
        t        t              k(  sJ t        t
        dz  t        z
        t        t              k(  sJ t        t
        t        dd      z  t        z
        t        t               k(  sJ t        t
        t        dd      z  t        z
        t        t              k(  sJ t        t
        dz  t        z
        t	        t              k(  sJ t        t
        t        dd      z  t        z
        t	        t              k(  sJ t        t
        t        dd      z  t        z
        t	        t              k(  sJ t	        t
        dz  t        z
        t        t              k(  sJ t	        t
        t        dd      z  t        z
        t        t              k(  sJ t	        t
        t        dd      z  t        z
        t        t              k(  sJ t        t
        dz  t        z         t        t              k(  sJ t        t
        dz  t        z         t        t               k(  sJ t        t
        dz  t        z         t	        t               k(  sJ t	        t
        dz  t        z         t        t               k(  sJ y )Nrk   ry   rm   rl   )r.   r   r*   r0   r+   r   r   r   r   r   test_trig_symmetryr   	  s:   r7s1vgr7c!fr7s1vgr7s1vgq2v;3q6'!!!q1R4x=CF"""q1R4x=SVG###q1R4x=CF"""q1R4x=SVG###q2v;3q6'!!!q1R4x=CF"""q1R4x=SVG###q1R4x=CF"""q1R4x=SVG###q2v;#a&   q1R4x=CF"""q2v;#a&   q1R4x=CF"""r!tax=CF"""r(1a. 1$%#a&000r(1a. 1$%Q///r!tax=CF"""r(1a. 1$%#a&000r(1a. 1$%Q///r!tax=CF"""r(1a. 1$%Q///r(1a. 1$%Q///r!tax=CF"""r(1a. 1$%Q///r(1a. 1$%Q///r!tax=CF"""r!tax=SVG###r!tax=SVG###r!tax=SVG###r   c            
         t        d      \  } }t        j                  t        d      k(  sJ t        t              t        u sJ t        t
              t        dd      k(  sJ t        t
              t        t
              z
  t        dd      k(  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        d      dk(  sJ t        t        |             | k(  sJ t        t        |             dt        d| dz  z         z  k(  sJ t        t        |             t        d| dz  z
        k(  sJ t        t        |             dt        dd| dz  z  z         z  k(  sJ t        t        |             t        dd| dz  z  z
        k(  sJ t        t        |             d| z  k(  sJ t        t!        ||             | t        | dz  |dz  z         z  k(  sJ t        t"        t        z        t%        t"              k(  sJ t        t"         t        z        t%        t"              k(  sJ t        dt        z        t%        d      k(  sJ t        t"        dz        dk(  sJ t        t"         dz        dk(  sJ t        t"        dz        dk(  sJ t        t"         dz        dk(  sJ t        ddd	z  z  dz   t"        z  dz        dk(  sJ t        d
ddz  z  dz   t"        z  dz        dk(  sJ t        ddd      }t        dd      }t        t"        |z  dz        dk(  sJ t        t"        |z  dz        d|dz  z  k(  sJ t        t"              dk(  sJ t        t"               dk(  sJ t        dt"        z        dk(  sJ t        dt"        z        dk(  sJ t        dt"        z        dk(  sJ t        t"        dz        t&        j(                  k(  sJ t        t"        t+        dd      z        t+        dd      k(  sJ t        t"        dz        t&        j(                  t        d      z  k(  sJ t        t"         dz        t&        j(                  t        d      z  k(  sJ t        t"        t+        dd      z        t+        dd      t        d      z  k(  sJ t        t"        t+        dd      z        t+        dd      t        d      z  k(  sJ t        t"        dz        t&        j(                  t        d      z  k(  sJ t        t"         dz        t&        j(                  t        d      z  k(  sJ t        t"        t+        d
d      z        t+        dd      t        d      z  k(  sJ t        t"        t+        dd      z        t+        dd      t        d      z  k(  sJ t        t"        t+        dd      z        t        d      dz   dz  k(  sJ t        t"        t+        dd      z        t        d      dz
  dz  k(  sJ t        t"        t+        dd      z        t        t"        t+        dd      z         k(  sJ t        t"        t+        dd      z        t        t"        t+        dd      z         k(  sJ t        t"        t+        dd      z        t        t"        t+        dd      z         k(  sJ t        t"        t+        dd      z        t        t"        t+        dd      z        k(  sJ t        t"        t+        dd      z        t        t"        t+        dd      z         k(  sJ t        t"        dz        t        dt        d      z   dz        k(  sJ t        t"        dz        t        d      dz  t        d      dz  z   k(  sJ t        t"        t+        dd      z        t        d       dz  t        d      dz  z   k(  sJ t        t"        t+        d
d      z        t        d      dz  t        d      dz  z
  k(  sJ t        t"        t+        dd      z        t        d       dz  t        d      dz  z
  k(  sJ t        t"        t+        dd      z        t        t"        dz         k(  sJ t        t"        t+        dd      z        t        t"        dz         k(  sJ t        t"        t+        dd      z        t        t"        dz         k(  sJ t        t"        t+        dd      z        t        t"        dz         k(  sJ t        | t        z        t%        |       k(  sJ t        t,        t"        z  t        z        t%        t,        t"        z        k(  sJ t        t.              j0                  du sJ t        dd       j2                  sJ t        t4              j2                  J t        t6              j2                  du sJ t9        d!d"      }t        t"        |z        j2                  sJ t        t"        t+        dd
      z        j2                  sJ t        t,        t"        z        dt,        z  k(  sJ t        dt,        z  t"        z        dk(  sJ t        dd       j:                  du sJ t        t+        dd            j:                  du sJ t        t        dd       d       j:                  J t=        t?        dd#            d$d%gz   D ]]  }t?        d|z  dz         D ]G  }|t"        z  |z  } tA        tC        t        |             t        tC        |             z
        }|d&k  rGJ  _ y )'Nrd   rh   ri   rj   rk   r   ro   rp   rq   rr   rs   rP   TFru   rw   rx   rl   r|   ry   rm      rn   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   rH   r   r   r`   rb   r   r   r   r   r   r   )r   r   rP   rw   r   r   s         r   test_cosr   .  s	   5>DAq99	!$$$s8s??r7k"a((((r7SWB 2222r!t9??s1u:s8s??q6Q;;tAw<1tAw<1tA1H~----tAw<4AqD>)))tAw<1tAAqDL11111tAw<4A1H----tAw<1q5   uQ{q41q!t#44444r!t9R   s1u:b!!!r!t9Qr!t9>>s1u:??r!t9>>s1u:??2r6	Ar!!#$)))"c'	Ar!!#$)))T.A$Ar!tAv;!r!tAv;21+%%%r7b==s8r>>qt9>>qt9??qt9>>r!t9r(2q/!"hr1o555r!t9tAw&&&s1u:Q'''r(2q/!"hr1od1g&====r(2q/!"hr1od1g&====r!t9tAw&&&s1u:Q'''r(1a. !Xb!_T!W%<<<<r(2q/!"hr1od1g&====r(1a. !d1gk1_444r(1a. !d1gk1_444r(1a. !c"Xa^*;&<%<<<<r(1a. !c"Xa^*;&<%<<<<r(1a. !c"Xa^*;&<%<<<<r(1a. !SHQN):%;;;;r(5!$$%#b!Q.?*@)@@@@r!t9a$q'k1_----r"u:aT!WQY....r(1b/!"tAwhqj4719&<<<<r(1b/!"d1gai$q'!)&;;;;r(2r""#QxzDGAI'====r(3$$%#bf+555r(3$$%#bf+555r(4%%&3r#v;,666r(4%%&3r#v;,666qs8tAwqtAv;$qt*$$$q6>>T!!!q5!....q6&&&r75(((sT"Ar!t9!!!!r(1a. !....qt9aqs2v;!q5!))U222x1~&&%/// tB'%8@@HHH%2,2r(* qsQw 	A"QAU3q6]Sq]24Au99	r   c                     t        dd      } t        t        t        t        fD ]e  } || t
        z         |t
        dz        k(  sJ  |dt
        z         |t
        dz        k(  sJ  |dt
        z         |dt
        z        k(  reJ  y )Nz!123456789012345678901234567890.25 rm   g     @r|   g@ghfffff?)r
   r.   r*   r0   r+   r   )cclss     r   test_issue_6190r     s    126AS#s# 01R4yC1I%%%58}BqD	)))3r6{c7B,////0r   c                      t        t              j                  t        dd      dt        dz  dz  z
  t        dz  dz  z   t        dz  dz  z
  t        d	z  d
z  z   t        t        dz        z   k(  sJ y )Nr   r   rh   rk   rm   r   rn     r|   i  )r*   r   r9   r8   r   r   r   test_cos_seriesr     sh    q6==Aq!	AqDF
QT"Wq!tCx'!Q$u*4qAw>? ? ?r   c                     t        t              j                  t              t        t        t        z        dz  t        t         t        z        dz  z   k(  sJ t        t              j                  t
              dt        t        dz        dz  z
  dt        t        dz        dz  z   z  k(  sJ t        t              j                  t              t        dt        t        t              d      t        t        t        dt        z        d      z  ft        t        dz        dz  dz
  t        t        dz        dz  dz   z  df      k(  sJ t        t        t                    j                  t              j                  t        d      j                         t        t              j                  t              j                  t        t        d            j                         k(  sJ t        t        t                    j                  t              j                  t        d      j                         t        t              j                  t              j                  t        t        d            j                         k(  sJ t        t!        t                    j                  t              j                  t        d      j                         t        t              j                  t              j                  t        t!        d            j                         k(  sJ t        t#        t                    j                  t              j                  t        d      j                         t        t              j                  t              j                  t        t#        d            j                         k(  sJ t        t%        t                    j                  t              j                  t        d      j                         t        t              j                  t              j                  t        t%        d            j                         k(  sJ t        t        t                    j                  t              j                  t        d      j                         t        t              j                  t              j                  t        t        d            j                         k(  sJ t        t        t                    j                  t              j                  t        d      j                         t        t              j                  t              j                  t        t        d            j                         k(  sJ t        t        t                    j                  t              j                  t        d      j                         t        t              j                  t              j                  t        t        d            j                         k(  sJ t        t'        t                    j                  t(              t        t        z  dz  t        t         z  dz  z   k(  sJ t        t              j                  t*              dt+        t              z  k(  sJ t        t              j                  t$              t%        t        t        dz  z   d      k(  sJ t        t              j                  t,              dt-        t         t        dz  z   d      z  k(  sJ t        t%        t                    j                  t(              t        t%        t                    k(  sJ t        t              j                  t.              t        t1        t        t        z  dz        t/        t2        j4                   t              z  t7        t        d      fd      k(  sJ t        t              j                  t.              j                  t        d      t        d      k(  sJ y )	Nrk   rh   r   Try   Fr   rh   T)r*   r   r   r   r   r0   r+   rC   rB   r   r   r   r    r   rP   r   r!   r   r.   r   r   r-   r,   r1   r"   r   r   rA   r   r   r   test_cos_rewriter     s   q6>>##ac(1*sA2a4y{"::::q6>>#1s1Q3x{?QQqS1_"EEEEq6>>#1bAlRAqta%889!HaK!Oc!A#hkAo6=	?? ? ? tAw<T!QZs1v~~c27747CEEGH H HtAw<T!QZs1v~~c27747CEEGH H HtAw<T!QZs1v~~c27747CEEGH H HtAw<T!QZs1v~~c27747CEEGH H Hs1v;T!QZs1v~~c2773q6BDDFG G Gs1v;T!QZs1v~~c2773q6BDDFG G Gs1v;T!QZs1v~~c2773q6BDDFG G Gs1v;T!QZs1v~~c2773q6BDDFG G Gs1v;s#q!tAvA2a'7777q6>>#!CF(***q6>>##a"Q$h"????q6>>#!CRT	E$B"BBBBs1v;s#s3q6{222q6>>'"ibd1fgqvvgq112a8<'    q6>>'"''1-Q777r   c            	      2   t        t        t        z         j                  d      t        t              t        t              z  t	        t              t	        t              z  z
  k(  sJ t        t        t        z
        j                  d      t        t              t        t              z  t	        t              t	        t              z  z   k(  sJ t        t        t        z
        j                  d      t        t              t        t              z  t	        t              t	        t              z  z   k(  sJ t        dt        z        j                  d      dt        t              dz  z  dz
  k(  sJ t        dt        z        j                  d      dt        t              dz  z  dt        t              z  z
  k(  sJ t        dt        z        j                  d      dt        t              dz  z  dt        t              dz  z  z
  dz   k(  sJ t        dt
        z  dz        j                  d      t        dt
        z  dz  d	
      k(  sJ t        t        t
        dz  z         j                  d      t        t
        dz        t        t              z  t	        t
        dz        t	        t              z  z
  k(  sJ t        t         ddt        d      dz  z  dz
         t        t         ddt        d      dz  z  dt        d      z  z
         y )NTr   rk   rh   ry   rm   r|   rz   Fr   )r*   r   r   r   r.   r   r   r   r   r   test_cos_expansionr     s;   q1u:$'3q6#a&=3q6#a&=+HHHHq1u:$'3q6#a&=3q6#a&=+HHHHq1u:$'3q6#a&=3q6#a&=+HHHHqs8???%3q619q888qs8???%3q619qQx)????qs8???%3q619qQ{)BQ)FFFFqtBw<D)S2b5-IIIIqBw<D)SBZA->RUCPQFAR-RRRRa3q619q)a3q619qQx/0r   c                  b   t        t        t         t                    t        dd      k(  sJ t        t        dt                    t        dd      k(  sJ t        t        t         d            t        dd      k(  sJ t        t        ddt        j                  z              t        dd      k(  sJ t        t        t        j                   dz  t        j                  dz              t        t        t        j                   dz        d      k(  sJ t        t        t        j                  t        dd      z  t        j                  t        dd      z              t        dt        t        j                  t        dd      z              k(  sJ t        t        t        j                  t        dd      z  t        j                  t        dd      z              t        t        t        j                  t        dd      z        t        t        j                  t        dd      z              k(  sJ t        t        t        j                  dz  t        j                  dz              t        t        t        j                  dz        t        t        j                  dz              k(  sJ y )Nri   rh   r   rk   ry   rm   rl   )r*   r   r   r   r   r   r   r   r   test_cos_AccumBoundsr     s   {B3#$B(::::{1b!"k"a&8888{B3"#{2q'9999{1af%&+b!*<<<<{ADD57ADDF+,CaL!0LLLL{144A.Xa^0CDEUWY\]^]a]abjklnobp]pYqIrrrr{144A.Xa^0CDEUXYZY]Y]^fghjk^lYlUmorstswsw  yA  BC  EF  yG  tG  pH  JI  I  I  I{14461446*+{3qttAv;ADDQRF/TTTTr   c                      t        t              j                         t        t               k(  sJ t	        t
        d        y )Nc                  >    t        t              j                  d      S r   )r*   r   r   r   r   r   r   z test_cos_fdiff.<locals>.<lambda>  r   r   )r*   r   r   r.   rG   r?   r   r   r   test_cos_fdiffr     s,    q6<<>c!fW$$$
67r   c                  H   t        t              t        u sJ t        t              t        u sJ t        t              t	        t         t              k(  sJ t        t              t        t              z
  t	        t         t              k(  sJ t         j
                  t        d      k(  sJ t        t        t        z        t        k(  sJ t        t         t        z        t         k(  sJ t        d      dk(  sJ t        t        t                    t        k(  sJ t        t        t                    t        t        dt        dz  z
        z  k(  sJ t        t        t                    t        dt        dz  z
        t        z  k(  sJ t        t        t                    dt        z  k(  sJ t        t        t                    dt        ddt        dz  z  z
        t        z  z  k(  sJ t        t        t                    t        ddt        dz  z  z
        t        z  k(  sJ t        t!        t"        t                    t"        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'        d       t        z  k(  sJ t        t$              dk(  sJ t        t$               dk(  sJ t        dt$        z        dk(  sJ t        dt$        z        dk(  sJ t        dddz  z  t$        z        dk(  sJ t        t$        dz        t        u sJ t        t$        t)        dd      z        t        u sJ t        t$        dz        t        d      k(  sJ t        t$        t)        dd      z        t        d      k(  sJ t        t$        d	z        t*        j,                  u sJ t        t$         d	z        t*        j.                  u sJ t        t$        t)        d
d	      z        t*        j,                  u sJ t        t$        t)        dd	      z        t*        j,                  u sJ t        t$        dz        t        ddt        d      z  z
        k(  sJ t        t$        t)        dd      z        t        ddt        d      z  z         k(  sJ t        t$        t)        dd      z        t        ddt        d      z  z          k(  sJ t        t$        t)        dd      z        t        ddt        d      z  z
         k(  sJ t        t$        dz        dt        d      z  k(  sJ t        t$         dz        dt        d      z  k(  sJ t        t$        t)        dd      z        dt        d      z  k(  sJ t        t$        t)        dd      z        dt        d      z  k(  sJ t        t$        dz        dt        d      z   k(  sJ t        t$        t)        dd      z        dt        d      z   k(  sJ t        t$        t)        dd      z        dt        d      z
  k(  sJ t        t$        t)        dd      z        dt        d      z
  k(  sJ t        t$        dz        t        ddt        d      z  dz  z
        k(  sJ t        t$        t)        dd      z        t        ddt        d      z  dz  z         k(  sJ t        t$        t)        d
d      z        t        ddt        d      z  dz  z          k(  sJ t        t$        t)        dd      z        t        ddt        d      z  dz  z
         k(  sJ t        t$        dz        t        d       dz   k(  sJ t        t$        t)        dd      z        t        d      dz   k(  sJ t        t$        t)        dd      z        t        d       dz
  k(  sJ t        t$        t)        dd      z        t        d      dz
  k(  sJ t        t$        dz        j1                         dt        d      z
  t        d      z   t        d      z   k(  sJ t        t$        t)        dd      z        j1                         dt        d      z   t        d      z
  t        d      z   k(  sJ t        t$        t)        dd      z        j1                         dt        d      z
  t        d      z
  t        d      z   k(  sJ t        t$        t)        dd      z        j1                         dt        d      z   t        d      z   t        d      z   k(  sJ t        t$        t)        dd      z        j1                         dt        d      z
  t        d      z
  t        d      z
  k(  sJ t        t$        t)        d
d      z        j1                         dt        d      z   t        d      z   t        d      z
  k(  sJ t        t$        t)        dd      z        j1                         dt        d      z
  t        d      z   t        d      z
  k(  sJ t        t$        t)        dd      z        j1                         dt        d      z   t        d      z
  t        d      z
  k(  sJ t        t        t        z        t'        t              t        z  k(  sJ t        t2        t$        z        dk(  sJ t        d
t2        z  t$        z        dk(  sJ t        t2        t$        z  t        z        t'        t2        t$        z        t        z  k(  sJ t        t4              j6                  J t        t4              j8                  du sJ t        dd      j:                  sJ t        t<              j:                  J t        t>              j:                  du sJ t        t$        t)        dd      z        t        t$        t)        dd      z        k(  sJ t        t$        t)        dd      z        t        t$        t)        dd      z         k(  sJ t        t$        t)        dd      z        t        t$        t)        dd      z        k(  sJ t        t$        t)        dd      z        t        t$        dz        k(  sJ t        t$        t)        d d      z        t        t$        dz         k(  sJ t        t4              j@                  J t        t        t4        z        j@                  du sJ t        t$        t        t+        d      dz  z   z        dt        z  z  } | jC                  t              ddt$        z  t        dz  z  z  k(  sJ y )!Nrh   r   rk   rj   ro   rp   rq   ry   rm   rz   rl      rn   ri   rr   r{   r|   ir~   r   r            TFr   r   r      )"r0   r   r   r   r   r   r;   r   r(   r   r'   r"   r#   r$   r%   r&   r)   r   r   r!   r   r   OneNegativeOneradsimpr   rH   r   is_extended_realr   r`   rb   	is_finiteas_leading_termr   s    r   test_tanr     s
   s8s??s8s??r7k2#r****r7SWRC 444499	!$$$r!t9>>s1u:!q6Q;;tAw<1tAw<1tA1H~----tAw<4AqD>A----tAw<1q5   tAw<1QQT\ 2Q 67777tAw<4A1H-1111uQ{qs"""r!t9R
"""s1u:$r(1$$$r!t9a
"""r7a<<s8q==qt9>>r"u:??r"b&y|!!!r!t9r(1a. !S(((r!t9Qr(2q/!"d1g---r!t9s1u:&&&r(2q/!"aee+++r(2q/!"aee+++r!t9Q47]++++r(1a. !T!aQi-%8888r(2q/!"tA$q'	M':&::::r(3""#Q47](;';;;;r!t9$q'	!!!s1u:DG###r(1a. !QtAwY...r(2q/!"aQi///r!t9T!W$$$r(1a. !Qa[000r(1a. !R$q'\111r(1a. !Qa[000r"u:a!DG)A+o....r(1b/!"d1qay{?&;;;;r(2r""#Q471_(='====r(3##$a!DG)A+o)>(>>>>r"u:$q'A%%%r(1b/!"d1gk111r(1b/!"tAwhl222r(2r""#tAw{222r"u:2Q<$q'#9DG#CCCCr(1b/!"**,T!WtAw0Fa0PPPPr(1b/!"**,DGd1g0EQ0OOOOr(2r""#++-T!WtAw1Fa1PPPPr(2r""#++-d1gQ1G$q'1QQQQr(2r""#++-d1gQ1G$q'1QQQQr(2r""#++-T!WtAw1Fa1PPPPr(2r""#++-T!WtAw1Fa1PPPPqs8tAwqy   qt9>>r!tBw<1qtAv;$qt*Q,&&&q6>>!!!q6""d***q5!....q6&&&r75(((r(2q/!"c"Xa^*;&<<<<r(2q/!"s2hq!n+<'=&====r(3""#s2hq!n+<'====r(2r""#s2b5z111r(3##$RU333q6###qs8%%% 	BAaDF
Oac"AQ2qtAqDy>111r   c                      t        t              j                  t        dd      t        t        dz  dz  z   dt        dz  z  dz  z   dt        dz  z  d	z  z   t        t        dz        z   k(  sJ y )
Nr   r   ry   rk   rl   r   rz   rr   i;  )r0   r   r9   r8   r   r   r   test_tan_seriesr   K  sc    q6==Aq!	AqDF
Qq!tVBYAqD,qAw67 7 7r   c                  8   t        t         t        z        t        t        t        z        }} t        t              j	                  t               t        | |z
  z  | |z   z  k(  sJ t        t              j	                  t
              dt        t              dz  z  t        dt        z        z  k(  sJ t        t              j	                  t              t        t        t        j                  dz  z
  d      t        t              z  k(  sJ t        t              j	                  t              dt        t              z  k(  sJ t        t        t                    j	                  t               j                  t        d      j                         t        t              j	                  t               j                  t        t        d            j                         k(  sJ t        t        t                    j	                  t               j                  t        d      j                         t        t              j	                  t               j                  t        t        d            j                         k(  sJ t        t        t                    j	                  t               j                  t        d      j                         t        t              j	                  t               j                  t        t        d            j                         k(  sJ t        t        t                    j	                  t               j                  t        d      j                         t        t              j	                  t               j                  t        t        d            j                         k(  sJ t        t        t                    j	                  t               j                  t        d      j                         t        t              j	                  t               j                  t        t        d            j                         k(  sJ t        t        t                    j	                  t               j                  t        d      j                         t        t              j	                  t               j                  t        t        d            j                         k(  sJ t        t        t                    j	                  t               j                  t        d      j                         t        t              j	                  t               j                  t        t        d            j                         k(  sJ t        t        t                    j	                  t               j                  t        d      j                         t        t              j	                  t               j                  t        t        d            j                         k(  sJ t        t!        t                    j	                  t"              t        t        t         z  t        t        z  z
  z  t        t         z  t        t        z  z   z  k(  sJ t        t              j	                  t$              t%        t              t%        t        t&        dz  z
  d      z  k(  sJ t        t              j	                  t(              t)        t         t&        dz  z   d      t)        t              z  k(  sJ t        t        t                    j	                  t"              t        t        t                    k(  sJ t        t&        t+        dd      z  d      j	                  t,              t-        t-        d      dz  t+        dd      z         t+        dd	      t-        d      d	z  z   z  k(  sJ t        t              j	                  t.              t/        t        j0                  t              t/        t        j0                   t              z  k(  sJ t        t              j	                  t.              j                  t        d
      t        d
      k(  sJ y )Nrk   Fr   rh   ry   rl   r|   ri   rm   r   )r   r   r   r0   r   r.   r*   r   r   r+   r    r   rP   r   r!   r   r   r   r-   r   r,   r   r"   r1   r   )neg_exppos_exps     r   test_tan_rewriter   P  s   A2a4y#ac(WGq6>>#!Ww%6"779J"KKKKq6>>#!CFAI+c!A#h"6666q6>>##a!$$q&j5"A#a&"HHHHq6>>#!CF(***tAw<$))!Q/113s1v~~c7J7O7OPQSWXYSZ7[7]7]7____tAw<$))!Q/113s1v~~c7J7O7OPQSWXYSZ7[7]7]7____tAw<$))!Q/113s1v~~c7J7O7OPQSWXYSZ7[7]7]7____tAw<$))!Q/113s1v~~c7J7O7OPQSWXYSZ7[7]7]7____s1v;s#((A.002c!fnnS6I6N6NqRUVWRX6Y6[6[6]]]]s1v;s#((A.002c!fnnS6I6N6NqRUVWRX6Y6[6[6]]]]s1v;s#((A.002c!fnnS6I6N6NqRUVWRX6Y6[6[6]]]]s1v;s#((A.002c!fnnS6I6N6NqRUVWRX6Y6[6[6]]]]s1v;s#q!aR%!Q$,'7QBA'FFFFq6>>##a&QAX)F"FFFFq6>>##qb2a4i%"@Q"GGGGs1v;s#s3q6{222r(1a. 5199$?4QPQ	1~I D (Q$q'!) ;D= = = =q6>>'"gaffa&8!&&!9L&LLLLq6>>'"''1-Q777r   c                  <   dt        t        dz        t        t        dz        z  t        t        dz        z
  j	                  t
              k(  sJ dt        t        dz        t        t        dz        z  t        t        dz        z
  j	                  t
              k(  sJ t        t        dz        j	                  t
              t        t        dz        k(  sJ t        t        t        dd      z        j	                  t              t        t        t        dd      z        k(  sJ t        t        t        dd      z  d	      j	                  t              t        t        d      dz  t        dd      z         t        d
d      t        d      dz  z   z  k(  sJ y )Nr   "   rz   r   r|   rk   rl   Fr   ri   rm   )r*   r   r0   r.   r   powr   r"   r   r   r   test_tan_rewrite_slowr   h  sG   RUC2J&RU3<<SAAAARUC2J&RU3<<SAAAAr"u:c"c"R%j000r(1b/!"**40C8Ar?8J4KKKKr(1a. 5199$?4QPQ	1~I D (Q$q'!) ;D= = = =r   c                     t        t              j                  t        t              t              t        k(  sJ t        t              j                  t        t              t        t              k(  sJ t        t              j                  t        t        j
                  dz        t        u sJ t        t              j                  t        t        j
                  t        dd      z        t        u sJ y )Nrk   ry   )r0   r   r   r   r   r   r   r   r   r   r   test_tan_subsr   r  s    q6;;s1vq!Q&&&q6;;q!A&&&q6;;q!$$q&!S(((q6;;q!$$x1~-.#555r   c            
      T   t        t        t        z         j                  d      t        t              t        t              z   dt        t              t        t              z  z
  z  j                         k(  sJ t        t        t        z
        j                  d      t        t              t        t              z
  dt        t              t        t              z  z   z  j                         k(  sJ t        t        t        z   t        z         j                  d      t        t              t        t              z   t        t              z   t        t              t        t              z  t        t              z  z
  dt        t              t        t              z  z
  t        t              t        t              z  z
  t        t              t        t              z  z
  z  j                         k(  sJ dt        dt        z        j                  d      j                  t               j                  t        t              t        dd      fg      dz  dz
  k(  sJ dt        dt        z        j                  d      j                  t               j                  t        t              t        dd	      fg      d
z  dz
  k(  sJ dt        dt        z  t        dz  z
        j                  d      j                  t               j                  t        t              t        dd	      fg      dz  dz
  k(  sJ t        t         ddt        d      z  dt        d      dz  z
  z         t        t         dt        d      dz   dt        d      z  z   ddt        d      dz  z  z
  z         y )NTr   rh   r   rk   rr   r   ry   rl   7   %   rm      )
r0   r   r   r   re   r   r   r   r   r   r   r   r   test_tan_expansionr  y  s   q1u:$'SVc!f_q3q6#a&=?P,Q+Y+Y+[[[[q1u:$'SVc!f_q3q6#a&=?P,Q+Y+Y+[[[[q1uqy>  d +	Q#a&3q6	!CF3q6M#a&$8	8	
SVCF]	SVCF]	*SVCF]	:	<=CVXF F F AaCT*2237<<s1vxPQST~>V=WXY[[^_____AaCT*2237<<s1vxPQST~>V=WXY[[^`````AaC"Q$J&&D&199#>CCc!fhWXZ[nE]D^_`ccfggggga3q61s1vqy=12a3q619*qQx/!aA	k/BCr   c            
         t        t        t         t                    t        t         t              k(  sJ t        t        t        j                  dz  t        j                  t        dd      z              t        t         t              k(  sJ t        t        t        j                  dz  t        j                  dz              t        t        t        j                  dz        t        t        j                  dz              k(  sJ y )Nry   rk   rn   )r0   r   r   r   r   r   r   r   r   test_tan_AccumBoundsr    s    {B3#$RC(<<<<{1446144A#678KR<PPPP{14461446*+{3qttAv;ADDQRF/TTTTr   c                      t        t              j                         t        t              dz  dz   k(  sJ t        t        d        y )Nrk   rh   c                  >    t        t              j                  d      S r   )r0   r   r   r   r   r   r   z test_tan_fdiff.<locals>.<lambda>  r   r   )r0   r   r   rG   r?   r   r   r   test_tan_fdiffr
    s2    q6<<>SVQY]***
67r   c                     t        t              t        u sJ t         j                  t        d      k(  sJ t        t        t
        z        t
         k(  sJ t        t         t
        z        t
        k(  sJ t        t              t        u sJ t        d      t        u sJ t        dt        z        t        u sJ t        t        t                    t        k(  sJ t        t        t                    dt        z  k(  sJ t        t        t                    t        dt        dz  z
        t        z  k(  sJ t        t        t                    t        t        dt        dz  z
        z  k(  sJ t        t        t                    t        ddt        dz  z  z
        t        z  k(  sJ t        t        t                    dt        ddt        dz  z  z
        t        z  z  k(  sJ t        t!        t"        t                    t        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%        d      t
        z  k(  sJ t        t              t        dt        z        cxk(  rt        dt        z        k(  sJ  J t        t               t        dt        z        cxk(  rt        dt        z        k(  sJ  J t        t        dz        dk(  sJ t        t         dz        dk(  sJ t        t        t'        dd      z        dk(  sJ t        t        t'        dd      z        dk(  sJ t        t        dz        dt        d      z  k(  sJ t        t        t'        dd      z        dt        d      z  k(  sJ t        t        d	z        t(        j*                  u sJ t        t         d	z        t(        j,                  u sJ t        t        t'        d
d	      z        t(        j*                  u sJ t        t        t'        dd	      z        t(        j*                  u sJ t        t        dz        t        d      k(  sJ t        t         dz        t        d       k(  sJ t        t        t'        dd      z        t        d      k(  sJ t        t        t'        dd      z        t        d      k(  sJ t        t        dz        dt        d      z   k(  sJ t        t        t'        dd      z        dt        d      z   k(  sJ t        t        t'        dd      z        dt        d      z
  k(  sJ t        t        t'        dd      z        dt        d      z
  k(  sJ t        t        dz        t        d      dz   k(  sJ t        t        t'        dd      z        t        d       dz   k(  sJ t        t        t'        dd      z        t        d      dz
  k(  sJ t        t        t'        dd      z        t        d       dz
  k(  sJ t        t        dz        j/                         t        d      t        d      z   dz   t        d      z   k(  sJ t        t        t'        dd      z        j/                         t        d       t        d      z
  dz   t        d      z   k(  sJ t        t        t'        dd      z        j/                         t        d       t        d      z   dz
  t        d      z   k(  sJ t        t        t'        dd      z        j/                         t        d      t        d      z
  dz
  t        d      z   k(  sJ t        t        t'        dd      z        j/                         t        d       t        d      z   dz   t        d      z
  k(  sJ t        t        t'        d
d      z        j/                         t        d      t        d      z
  dz   t        d      z
  k(  sJ t        t        t'        dd      z        j/                         t        d      t        d      z   dz
  t        d      z
  k(  sJ t        t        t'        dd      z        j/                         t        d       t        d      z
  dz
  t        d      z
  k(  sJ t        t        t
        z        t%        t               t
        z  k(  sJ t        t0        t        z  t
        z        t%        t0        t        z         t
        z  k(  sJ t        t2              j4                  J t        t2              j6                  du sJ t        t8              j:                  J t        t<              j:                  du sJ t        t        t'        dd      z        t        t        t'        dd      z        k(  sJ t        t        t'        dd      z        t        t        t'        dd      z         k(  sJ t        t        t'        dd      z        t        t        t'        dd      z        k(  sJ t        t        t'        dd      z        t        t        t'        dd      z        k(  sJ t        t        t'        dd      z        t        t        t'        dd      z         k(  sJ t        t              j>                  J t        t2              j>                  J tA        dd      } t        |       j>                  du sJ t        t              jC                  t        dt        z        t        u sJ t        t        t        d	z   z        dt        z  z  }|jE                  t              ddt        z  t        dz  z  z  k(  sJ y )Nrh   r   rk   rj   ry   ro   rl   rr   rm   rz   rn   r{   r|   ri   r~   r   r   r   r   r   TFrp   r   '   r   ir   rf   )#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   rH   r   r   r`   r   rb   r   r   r   r   )r   r   s     r   test_cotr    s]	   s8s??99	!$$$r!t9??s1u:??s8s??q6S==qt9tAw<1tAw<1q5   tAw<4AqD>A----tAw<1tA1H~----tAw<4A1H-1111tAw<1QQT\ 2Q 67777uQ{qs"""r!t9b	!###s1u:b!###r!t9Q	!!!r7c!B$i,3qt9,,,,,s8s2b5z/SBZ/////r!t9>>s1u:??r(1a. !Q&&&r(1a. !Q&&&r!t9$q'	!!!r(2q/!"aQi///r!t9s1u:&&&r(2q/!"aee+++r(2q/!"aee+++r!t9Qs1u:$q'!!!r(1a. !T!W,,,r(2q/!"d1g---r!t9DG###r(1a. !R$q'\111r(1a. !Qa[000r(1a. !R$q'\111r"u:a1$$$r(1b/!"tAwhl222r(1b/!"d1gk111r(2r""#Qx!|333r"u:47T!W#4q#847#BBBBr(1b/!"**,a470BQ0Fa0PPPPr(1b/!"**,a470BQ0Fa0PPPPr(2r""#++-a471BQ1Fa1PPPPr(2r""#++-$q'DG1Ca1G$q'1QQQQr(2r""#++-a471BQ1Fa1PPPPr(2r""#++-a471BQ1Fa1PPPPr(2r""#++-$q'DG1Ca1G$q'1QQQQqs8Qxz!!!qtAv;4":+a-'''q6>>!!!q6""d***q6&&&r75(((r(2q/!"c"Xa^*;&<<<<r(2q/!"s2hq!n+<'=&====r(3""#s2hq!n+<'====r(2r""#s2hq"o+='>>>>r(3##$RB-?)@(@@@@q6###q6###sd#Aq6t###q6;;q!B$3&&& 	BAJ1AQ1ad1a4i=000r   c            
         t        t        t        t        dd      z        t	        t        t        dd      z        z  t        t        t        dd      z        z  dz
  j                               dk  sJ t        t        t        t        dd      z        t        t        t        dd      z        z  t	        t        t        dd      z        z  dz
  j                               dk  sJ y )Nr|   r   rh   g+=rm   )r   r0   r   r   r*   r.   evalfr+   r   r   r   test_tan_cot_sin_cos_evalfr    s    Bx2&'Bx2,>(??BxPQSUDV@WWZ[[bbdehmmmmBx2&'Bx2,>(??BxPQSUDV@WWZ[[bbdehmmmmr   c            	         dt        t        t        dd      z        t        t        t        dd      z        z  t	        t        t        dd      z        z  j                         k(  sJ dt        t        t        dd      z        t	        t        t        dd      z        z  t        t        t        dd      z        z  j                         k(  sJ y )Nrh   r|   r   rm   )r0   r   r   r*   r.   ratsimpr+   r   r   r   test_tan_cot_sin_cos_ratsimpr    s    RB'(RB-?)@@RQRTVEWAXXaaccccRB'(RB-?)@@RQRTVEWAXXaaccccr   c                     t        t              j                  t        dd      dt        z  t        dz  z
  t        dz  dz  z
  dt        dz  z  dz  z
  t        d	z  d
z  z
  t        t        dz        z   k(  sJ t        t        dz  t        dz  z         j                  t        dd      t        dz  dt        dz  z  z
  t        dz  z   dt        z  z
  dz   t        t              z   k(  sJ t        t        dt        z
  z        j                  t        dd      dt        t        z  z  t        t        z  dz  z   t        t        dz        z   k(  sJ t        t              j                  dt              dt        z  k(  sJ t        t              j                  dt              t        j                  u sJ t        t              j                  dt              t        dz   dz  k(  sJ y )Nr   r   rh   ry   -   rk   rl   i  rr   iu  rm   r   rj   ri   )r+   r   r9   r8   r   taylor_termr   r   r   r   r   test_cot_seriesr    s   q6==Aq!	!ac	AqDGa1fSj(1a494qAw>? ? ? q!tad{""1a+	B!AqD&1r7"QqS(1,qt34 4 4r1Q3x=1a(B1I1Q,>1a4,HHHHq6a#qs***q6a#qvv---q6a#1uRx///r   c            	         t        t         t        z        t        t        t        z        }} t        t              j	                  t               t        || z   z  || z
  z  k(  sJ t        t              j	                  t
              t        dt        z        dt        t              dz  z  z  k(  sJ t        t              j	                  t              t        t              t        t        t        dz  z
  d      z  k(  sJ t        t              j	                  t              dt        t              z  k(  sJ d } |t                |t                |t                |t                |t
                |t                |t               t        t        t                    j	                  t              t         t        t         z  t        t        z  z   z  t        t         z  t        t        z  z
  z  k(  sJ t        t              j	                  t              t        t        t        dz  z
  d      t        t              z  k(  sJ t        t              j	                  t               t!        t              t!        t         t        dz  z   d      z  k(  sJ t        t        t                    j	                  t              t        t        t                    k(  sJ t        t        t#        dd      z  d      j	                  t$              t#        dd      t%        d      dz  z   t%        t%        d      d	z  t#        dd	      z         z  k(  sJ t        t              j	                  t&              t'        t(        j*                   t              t'        t(        j*                  t              z  k(  sJ t        t              j	                  t&              j-                  t        d
      t        d
      k(  sJ y )Nrk   Fr   rh   c                 &   t         | t                    j                  t              t        t              j                  t              j	                  t         | t                    z
  }|j                  t              j                         dk(  sJ y Nr   )r+   r   r   r   r   r   )r   re   s     r   checkztest_cot_rewrite.<locals>.check  s\    QL  %As(;(@(@DG(LLyy~$$&!+++r   rl   ri   rm   r|   r   )r   r   r   r+   r   r.   r*   r   r0   r    r   r!   r   r   r   r-   r,   r   r"   r1   r   r   r   )r   r   r  s      r   test_cot_rewriter    s   A2a4y#ac(WGq6>>#!Ww%6"779J"KKKKq6>>##ac(As1vqyM"::::q6>>##a&QAX)F"FFFFq6>>#!CF(***, 
$K	$K	$K	$K	#J	#J	#Js1v;s#r1qb51a4<'8!aR%!Q$,'GGGGq6>>##a"q&j5"ACF"JJJJq6>>##a&3sR!V|e+L"LLLLs1v;s#s3q6{222r(1a. 5199$?HRQROVZ[\V]^_V_D_8<T!WQYRSUV=W8XDY Y Y Yq6>>'"gqvvgq&9'!&&!:L&LLLLq6>>'"''1-Q777r   c            	         t        t        t        dd      z        j                  t              j                         t        t        t        dd      z        t        t        t        dd      z        z  j                  t              j                         k(  sJ t        t        t        dd      z        j                  t              t        t        t        dd      z        t        t        t        dd      z        z  j                  t              k(  sJ t        t        dz        j                  t              t        t        dz        k(  sJ t        t        dz        j                  t              t        t        dz        k(  sJ t        t        t        dd      z  d      j                  t              t        d	d      t        d      dz  z   t        t        d      d
z  t        dd
      z         z  k(  sJ y )Nrm   r   rz   r   rk   rl   Fr   ri   r|   )	r+   r   r   r   r   r  r*   r.   r"   r   r   r   test_cot_rewrite_slowr    s   r(1b/!"**3/779	RB	 RB%7!8	8AA#FNNPQ Q Qr(1b/!"**3/	RB	 RB%7!8	8AA#FG G Gr"u:c"c"R%j000r"u:d#s2b5z111r(1a. 5199$?	"a4719	$T!WQY!Q-G(HHI I Ir   c                     t        t              j                  t        t              t              t        k(  sJ t        t              j                  t        t              t        t              k(  sJ t        t              j                  t        d      t        u sJ t        t              j                  t        t
        j                        t        u sJ y r  )r+   r   r   r   r   r   r   r   r   r   test_cot_subsr   (  s    q6;;s1vq!Q&&&q6;;q!A&&&q6;;q!###q6;;q!$$3&&&r   c            
         t        t        t        z         j                  d      j	                         t        t              t        t              z  dz
  t        t              t        t              z   z  k(  sJ t        t        t        z
        j                  d      j	                         t        t              t        t               z  dz
  t        t              t        t               z   z  k(  sJ t        t        t        z   t
        z         j                  d      j	                         t        t              t        t              z  t        t
              z  t        t              z
  t        t              z
  t        t
              z
  dt        t              t        t              z  z   t        t              t        t
              z  z   t        t              t        t
              z  z   z  k(  sJ t        dt        z        j                  d      j	                         t        t              dz  dz
  t        t              z  dt        t              dz  z  dz
  z  k(  sJ t        dt        z        j                  d      t        t              dz  ddt        t              z  z  z
  k(  sJ t        dt        z        j                  d      j	                         t        t              dz  dz
  t        t              z  dt        t              dz  z  dz
  z  k(  sJ t        dt        z  t        dz  z
        j                  d      j                         t        t              dz   dt        t              dz  z  z   dt        t              dz  z  z   dt        t              z  z
  dz
  t        t              dz  dt        t              dz  z  z   dt        t              dz  z  z
  dt        t              z  z
  dz   z  k(  sJ t        t         ddt        d      dz  z   dt        d      z  z         t        t         dd	t        d      z  t        d      dz  z   ddt        d      dz  z  z   z         y )
NTr   rh   ri   ry   rk   rm   rn   ro   )
r+   r   r   r   togetherre   r   r5   r0   r   r   r   r   test_cot_expansionr#  /  so   q1u:$'002	QA	SVc!f_-/ / /q1u:$'002AsA2wSVc1"g-7/ / / /q1uqy>  d +446	QAs1v	A	&Q	/#a&	8	c!fSVm	c!fSVm	+c!fSVm	;	=> > > qs8???%..0	QQA#a&!)a02 2 2qs8???%QAqQxL)@@@@qs8???%..0A	As1v5 Q{Q50 0 0 0qsRTz?!!t!,335	Q
Qs1vqy[ 1SVQY;.3q69A=q619qQ{"Qs1vqy[01SV8;a?:A A A A a"s1vqy.1SV845a"SV)c!fai/"qQ{2BCDr   c                     t        t        t         t                    t        t         t              k(  sJ t        t        t        j                   dz  t        j                  dz              t        t         t              k(  sJ t        t        t        j                  dz  t        j                  dz              t        t        t        j                  dz        t        t        j                  dz              k(  sJ y )Nry   rn   )r+   r   r   r   r   r   r   r   test_cot_AccumBoundsr%  C  s    {B3#$RC(<<<<{ADD57ADDF+,RC0DDDD{14461446*+{3qttAv;ADDQRF/TTTTr   c                      t        t              j                         t        t              dz   dz
  k(  sJ t        t        d        y )Nrk   rh   c                  >    t        t              j                  d      S r   )r+   r   r   r   r   r   r   z test_cot_fdiff.<locals>.<lambda>K  r   r   )r+   r   r   rG   r?   r   r   r   test_cot_fdiffr(  I  s4    q6<<>c!faiZ!^+++
67r   c                     t        t        t              t              sJ t        dd      } t        |       t        j
                  u sJ t        t        j                        t        j                  u sJ t        t        j                        t        j                  u sJ t        t        j                        t        j                  u sJ t        t        j                        t        j                  u sJ t        ddd      }t        |t        z        t        j                  u sJ t        | t        z        t        j                  u sJ t        t        dz        dt        z  k(  sJ t        t         dz        dt        z  k(  sJ t        t        t        dd      z        ddt        z  z  k(  sJ t        t        t        dd      z        d	dt        z  z  k(  sJ t        t               t        t              k(  sJ t        t              j                  t              t        t              t        z  t        t              t        dz  z  z
  k(  sJ t        t              j                  t              t        t              t        z  j                  t              k(  sJ t        t              j                  t        t              t        t               dt        t              z  t        z  z
  dt        t              z  t        dz  z  z   t        z  k(  sJ t        t              j                  t        t              t        t              t        z  j                  t        t              k(  sJ t!        t        t              j                  t              t        d
      d
k(  sJ t!        t        t              j                  t        t              t        d
      t	        d       dz  k(  sJ t        t              j#                         dt        dz  dz  z
  t        dz  dz  z   t%        t        dz        z   k(  sJ t        t              j'                  t(              t)        d
t              k(  sJ t        t              j'                  t              t+        t        t              t        z  t-        t        d
      fd      k(  sJ t        t        d      j.                  du sJ t        d
d      j.                  du sJ t        |t        z  d      j.                  du sJ t        t              j.                  J t        ddd      }t        t              j0                  J t        |      j0                  du sJ t        t2        |z        j0                  du sJ t        t2        dz        j0                  du sJ t        t              j4                  J t        |      j4                  du sJ y )NsTzerorP   )rL   rW   rk   rl   rr   rj   r   rh   ry   rn   rm   r   r   Fr   xr)rJ   rW   d   )r   r/   r   r   r   r   Infinityr   NegativeInfinityNaNComplexInfinityr   r   r   r*   r.   r7   r9   r8   r   r2   rC   rA   r   r   r   r   )r*  rP   r-  s      r   	test_sincr3  N  sT   d1gt$$$sA7aee

qvv%%%""#qvv---;!%%!!"aee+++sD$/A":2;!&&   1:RA;!b&   8Aq>!"a1R4j0008Aq>!"bAbDk1118tAw7<<?c!fQhQ144447<<?s1vaxooa00007<<13q6'Ac!fHQJ"63q6!Q$"F!IIII7<<1#a&(A!6666aa!Q'1,,,aa#Q*qteAg555 7>>q1a46zAqDH4qAw>>>>7??2"Q(***7??39c!fQh1a-A9#MMMMU#++t333E"**e333"u%--5557??"""	4	.B7??"""8t###":%%%#;$&&&7$$$8%%%r   c                  "
   t        t              t        u sJ t         j                  t        d      k(  sJ t        t              t
         t        z  k(  sJ t        t               t
        t        z  k(  sJ t        t              t        u sJ t        d      dk(  sJ t        d      t        dz  k(  sJ t        d      t         dz  k(  sJ t        t        d      dz        t        dz  k(  sJ t        t        d       dz        t         dz  k(  sJ t        t        d      dz        t        dz  k(  sJ t        t        d       dz        t         dz  k(  sJ t        t        dt        d      z
  dz              t        dz  k(  sJ t        t        dt        d      z
  dz               t         dz  k(  sJ t        t        j                        t        d	z  k(  sJ t        t        dd            t         d	z  k(  sJ t        t        dt        d      z
        dz        t        dz  k(  sJ t        t        dt        d      z
         dz        t         dz  k(  sJ t        t        d      dz
  dz        t        d
z  k(  sJ t        t        d      dz
   dz        t         d
z  k(  sJ t        t        d      dz
  t        d      z        t        dz  k(  sJ t        t        d      dz
   t        d      z        t         dz  k(  sJ dD ]Z  } t        | dz   | dz  dz         D ]?  }t        ||       dk(  st        t        |t        z  | z              |t        z  | z  k(  r?J  \ t        t              j!                  t              dt        dt        dz  z
        z  k(  sJ t        dd      j"                  du sJ t        d      j"                  du sJ t        t$              j"                  J t        dt
        z        t
         t'        d      z  k(  sJ t        t        dd      d      j(                  du sJ t        t        dd      d      j(                  du sJ t        t*              j(                  J t        t        t        dd                  t        dd      t        z   k(  sJ t        t        t        dd                  t        dd      t        z
  k(  sJ t-        t         t/        t                    sJ y )Nrh   r   rk   ri   ry   rm   rl   r|   rn   rp   r~   rl   rn   r|   rp   r~   皙?Fr   Trj   rr   r   )r'   r   r   r;   r   r   r   r   r"   r   r   r   r   r6   r.   r   r   r   rH   r   is_positiverM   r>   r*   )r   rP   s     r   	test_asinr8    sk   9::1%%%8r"u9"9 7a<<7bd??8s1uQ	?bd"""a
s1u$$$Q	?bd"""a
s1u$$$a$q'k1_%&"Q$...q47{Ao&&'B3q5000<2a4Q RCE)))a$q'k"A%&"Q$...$q47{#$Q&'B3q5000a1a BrE)))$q'A+q !bSV+++a1d4j()RU222$q'A+tDz)*rc"f444  3Aw1q) 	3A1ayA~C"QK(AbDF222	33
 7<<?aQAX....e$,,4448u$$$7??"""1:!E!H$$$A/;;tCCCQ%0<<EEE7&&&HQN#$Q"(<<<<HRO$%!Q")<<<<T3q6"""r   c                     t        t              j                  t        dd      t        t        dz  dz  z   dt        dz  z  dz  z   dt        dz  z  dz  z   t        t        dz        z   k(  sJ t        t              j	                  dt              } | dt        dz  z  dz  k(  sJ t        t              j	                  dt        | d      dt        dz  z  dz  k(  sJ y )	Nr   r   ry   rn   rl   r   rr   p   )r'   r   r9   r8   r  t5s    r   test_asin_seriesr=    s    7>>!Q"	AqDF
Qq!tVBY1a4+a1g56 6 6	a		Q	"B1a4??7q!R+qAvcz999r   c            	      4   t        t              j                  t              t        k(  sJ t        t        dz         j                  t              t        dz  k(  sJ t        t        dz
        j                  t              t         dz  k(  sJ t        dt        z        j                  t        d      t        t        t              z  t        dz  z   t        t        d      z  z
  k(  sJ t        dt        z        j                  t        d      t         t        t              z  dt        z  dz  z
  t        t        d      z  z   k(  sJ t        t        t        z  dz         j                  t        d      t        t        d      z
  k(  sJ t        t         t        z  dz         j                  t        d      t        d      k(  sJ t        t        t        z  dz
        j                  t        d      t        d       k(  sJ t        t         t        z  dz
        j                  t        d      t         t        d      z   k(  sJ t        t         t        dz  z  t        z   dz
        j                  t        d      t         dz  t        t        dt        d      z
        z  z   k(  sJ t        t         t        dz  z  t        z   dz
        j                  t        d      t         dz  t        t        dt        d      z
        z  z   k(  sJ y )Nrh   rk   cdirri   ry   )r'   r   r   r   r   r   r"   r   r   r   test_asin_leading_termrA    sj   7""1%***A;&&q)RT111A;&&q)bSU222!9$$QQ$/1SV8bd?Qs1vX3MMMM!9$$QR$0QBs1vI"Q4F3q64QQQQ!a=(((3rDG|CCC1q>))!!)4Q???!a=(((3Qx???1q>))!!)4d1gEEE1a4!a 000;s1uqQQUVWQX[IYGY?YYYY1a4!a 000<A#aRVWXRYkJZHZ@ZZZZr   c                  z   t        t              j                  t              t         t        t        t        z  t        dt        dz  z
        z         z  k(  sJ t        t              j                  t              dt        t        dt        dt        dz  z
        z   z        z  k(  sJ t        t              j                  t              t        j                  dz  t        t              z
  k(  sJ t        t              j                  t              dt        t        t        dz   dz         dz   t        z        z  k(  sJ t        t              j                  t              t        dt        z         t        dz  z   k(  sJ t        t              j                  t              t        dt        z        k(  sJ y )Nrh   rk   )r'   r   r   r   r   r"   r(   r#   r   r   r$   r&   r   r%   r   r   r   test_asin_rewriterC    s3   7??3A2c!A#QAX*>&?#????7??4 Ad1a$q1a4x..@+A&B$BBBB7??4 ADDFT!W$44447??4 AdD!Q$Oa,?+B&C$CCCC7??4 T!A#YJA$55557??4 D1I---r   c                      t        t              j                         dt        dt        dz  z
        z  k(  sJ t	        t
        d        y )Nrh   rk   c                  >    t        t              j                  d      S r   )r'   r   r   r   r   r   r   z!test_asin_fdiff.<locals>.<lambda>      tAw}}Q'7 r   )r'   r   r   r"   rG   r?   r   r   r   test_asin_fdiffrG    s7    7==?aQAX....
78r   c                     t        t              t        u sJ t        t              t        u sJ t         j                  t	        d      k(  sJ t        t
              t        t
        z  k(  sJ t        t
               t         t
        z  k(  sJ t        d      t        dz  k(  sJ t        t        j                        t        dz  k(  sJ t        t        dd            t        t        dd      z  k(  sJ t        d      dk(  sJ t        d      t        k(  sJ t        t        d      dz        t        dz  k(  sJ t        t        d       dz        t        t        dd      z  k(  sJ dD ]O  } t        |       D ]?  }t        ||       dk(  st        t        |t        z  | z              |t        z  | z  k(  r?J  Q t        dt        z        t        dz  t        dt        z        z
  k(  sJ t        t               j#                  t               dt        dt         dz  z
        z  k(  sJ t        d      j$                  d	u sJ t        d
      j$                  du sJ t        t&              j$                  J t        t        dd      d      j(                  d	u sJ t        t        dd      d      j(                  d	u sJ t        t        dd      d      j(                  du sJ t        t*              j(                  J t        dt*        z         j-                         t        dt*        z         k7  sJ t        dt.        z         j-                         t        dt.        z         k7  sJ t        t        dd            j-                         t        t        dd            k(  sJ t        t        dd            j-                         t        t        dd            k(  sJ t        t*        t.        t        z  z         j-                         t        t*        t.        t        z  z
        k(  sJ t        t0              j-                         t        t-        t0                    k7  sJ y )Nrh   r   rk   ry   ri   rm   r5  r6  Trj   Frr   r   rp   ro   )r#   r   r   r   r;   r   r   r   r   r   r   r"   r   r6   r*   r'   r   r   r   rH   r7  rM   r   rP   re   )r   nums     r   	test_acosrJ    s   99::1%%%8qt92 7bd??<2a4Q Bx1~$55557a<<8r>>Q	?bd"""a
r(1a.0000  78 	7C3{aCBqM*c"fQh666	77
 !91tAaCy((((7<<?ba!Q$h////9$$$8u$$$7??"""A/;;tCCCQ%0<<DDDA/;;uDDD7&&&A;  "d26l222Q<!!#tBF|333A))+tHQN/CCCCQ **,Xb!_0EEEEAaC=""$Q1W5557$y|"4444r   c                  $   t        t              j                  t              t        dz  k(  sJ t        t        dz         j                  t              t	        d      t	        t               z  k(  sJ t        t        dz
        j                  t              t        k(  sJ t        dt        z        j                  t        d      t
         t        t              z  t
        t        d      z  z   k(  sJ t        dt        z        j                  t        d      t
        t        t              z  dt        z  z   t
        t        d      z  z
  k(  sJ t        t
        t        z  dz         j                  t        d      t        d       k(  sJ t        t
         t        z  dz         j                  t        d      t        d      k(  sJ t        t
        t        z  dz
        j                  t        d      t        d      k(  sJ t        t
         t        z  dz
        j                  t        d      dt        z  t        d      z
  k(  sJ t        t
         t        dz  z  t        z   dz
        j                  t        d      t        t
        t        t	        d      dz         z  z   k(  sJ t        t
         t        dz  z  t        z   dz
        j                  t        d      t        t
        t        t	        d      dz         z  z   k(  sJ y )Nrk   rh   r?  ri   rj   ry   )r#   r   r   r   r"   r   r   r   r   r   test_acos_leading_termrL    sU   7""1%A---A;&&q)T!WT1"X-====A;&&q)R///!9$$QQ$/A2c!f9qQx3GGGG!9$$QR$0Ac!fHqtOaAh4NNNN!a=(((3Qx???1q>))!!)4Q???!a=(((3tBx???1q>))!!)4"tBxGGG1a4!a 000;rAc$q'TU+FVDV?VVVV1a4!a 000<Qs4PQ7UV;GWEW@WWWWr   c                  @   t        t              j                  t        dd      t        dz  t        z
  t        dz  dz  z
  dt        dz  z  dz  z
  dt        dz  z  d	z  z
  t	        t        dz        z   k(  sJ t        t              j                  t        dd      t        dz  t        t              j                  t        dd      z
  k(  sJ t        t              j                  dt              } | d
t        dz  z  dz  k(  sJ t        t              j                  dt        | d      dt        dz  z  d	z  k(  sJ t        t              j                  dt              t        dz  k(  sJ t        t              j                  dt              t        j                  u sJ y )Nr   r|   rk   ry   rn   rl   r   rr   r:  ro   r{   )	r#   r   r9   r   r8   r'   r  r   r   r;  s    r   test_acos_seriesrN    sJ   7>>!Q"
1q1a46AadF2I%!Q$s
2Qq!tW<= = =7>>!Q"bdT!W^^Aq!-D&DDDD	a		Q	"BAqD7q!R+r!Q$ws{:::7q!$1,,,7q!$...r   c                     t        t              j                  t              t        dz  t
        t        t
        t        z  t        dt        dz  z
        z         z  z   k(  sJ t        t              j                  t              t        t         t        t        dz        z  dz   z  dz  t        t        dt        dz  z
        t        z        z   k(  sJ t        d      j                  t              t        j                  dz  k(  sJ t        d      j                  t              t        d      j                  t              k(  sJ t        t              j                  t              t        j                  dz  t        t              z
  k(  sJ t        t              j                  t              dt        t        t        dz   dz         dz   t        z        z  t        dz  z   k(  sJ t        t              j                  t              t        dt        z        k(  sJ t        t              j                  t              t        dt        z         t        dz  z   k(  sJ y )Nrk   rh   rj   r         ?)r#   r   r   r   r   r   r"   r(   r   r   r'   r$   r&   r%   r   r   r   test_acos_rewriterQ  "  s   7??32a4!C!d1q!t8n0D,E*E#EEEE7??4 B4B=(81(<$=a$?$tAPQSTPTH~VWGWBX$XXXX7??4 ADDF***9T"d3i&7&7&<<<<7??4 ADDFT!W$44447??4 BtT1a4%!)_q-@!,C'D$Dr!t$KKKK7??4 D1I---7??4 T!A#YJA$5555r   c                      t        t              j                         dt        dt        dz  z
        z  k(  sJ t	        t
        d        y )Nri   rh   rk   c                  >    t        t              j                  d      S r   )r#   r   r   r   r   r   r   z!test_acos_fdiff.<locals>.<lambda>/  rF  r   )r#   r   r   r"   rG   r?   r   r   r   test_acos_fdiffrT  -  s7    7==?ba!Q$h////
78r   c                     t        t              t        u sJ t         j                  t        d      k(  sJ t        t              t
        dz  k(  sJ t        t               t
         dz  k(  sJ t        t              t        t
         dz  t
        dz        k(  sJ t        d      dk(  sJ t        d      t
        dz  k(  sJ t        t        d            t
        dz  k(  sJ t        dt        d      z          t
        t        dd      z  k(  sJ t        t        ddt        d      z  z
              t
        dz  k(  sJ t        t        ddt        d      z  dz  z
               t
         d	z  k(  sJ t        t        ddt        d      z  dz  z               t
        t        dd	      z  k(  sJ t        d
t        d      z         t
         dz  k(  sJ t        dt        d      z         t
        t        dd      z  k(  sJ t        d
t        d      z
        t
        t        dd      z  k(  sJ dD ]Z  } t        | dz   | dz  dz         D ]?  }t        ||       dk(  st        t        |t
        z  | z              |t
        z  | z  k(  r?J  \ t        t              t
        dz  k(  sJ t        t              j                  t              ddt        dz  z   z  k(  sJ t        t              j                   du sJ t        d
t"        z        t"         t%        d      z  k(  sJ t'        t         t)        t                    sJ t        t)        t        dd                  t        dd      t
        dz  z   k(  sJ t+        t        dd            j,                  du sJ t        t.        t0        t2        t4        t6        t8        t:        t<        t>        t@        fD ](  }|j                   s|jB                  |jD                  t        |      jD                  u sJ |jF                  t        |      jF                  u sJ |jH                  t        |      jH                  u sJ |jJ                  t        |      jJ                  u sJ |jL                  t        |      jL                  u sJ |jN                  t        |      jD                  u sJ |jP                  t        |      jF                  u sJ |jR                  t        |      jH                  u sJ |jT                  t        |      jJ                  u sJ |jV                  t        |      jL                  u sJ |jN                  t        |      jN                  u sJ |jP                  t        |      jP                  u sJ |jR                  t        |      jR                  u sJ |jT                  t        |      jT                  u sJ |jV                  t        |      jV                  u r)J  y )Nrh   rk   r   rm   ry   ro   r|   rl   rp   rj   r~   r{   r5  Tri   F),r(   r   r   r;   r   r   r   r   r"   r   r   r6   r0   r   r   rH   r   r   r   r>   r+   r$   r   rM   rP   npnnrV   rX   rZ   enpennr^   r   
is_nonzeror7  is_negativeis_nonpositiveis_nonnegativeis_extended_nonzerois_extended_positiveis_extended_negativeis_extended_nonpositiveis_extended_nonnegative)r   rI  r*  s      r   	test_atanrc  2  s   9::1%%%8r!t9A9RCE2a400007a<<7bd??Q=BqD   !d1g+2hr1o#5555QT!W_%&"Q$...a!d1g+q.())*rc"f444QT!Wq()*b!R.@@@@T!W"R'''DG8Ar? 2222T!WHR$4!4444  71a4!Q$(+ 	7C3{aCBqM*c"fQh666	77
 8r!t7<<?aQTl***7??d"""1:!E!H$$$T3q6"""HQN#$Q"Q$(>>>>A++u444Ar2r2r3S9 L99**2<<47#5#5555==DG$7$7777==DG$7$7777##tAw'='====##tAw'='====((DG,>,>>>>))T!W-@-@@@@))T!W-@-@@@@,,Q0F0FFFF,,Q0F0FFFF$$Q(C(CCCC%%a)E)EEEE%%a)E)EEEE((DG,K,KKKK((DG,K,KKKK#Lr   c            	         t        t              j                  t              t        t        dt        t        z  z
        t        dt        t        z  z         z
  z  dz  k(  sJ t        t              j                  t
              t        dt        t        dz  dz         z         t        dz  z   t        t        dz        z  t        z  k(  sJ t        t              j                  t              t        t        dz        t        dt        t        dz  dz         z        z  t        z  k(  sJ t        t              j                  t              t        dt        z        k(  sJ t        t              j                  t              t        t        dz        t        t        t        dz  dz               z  t        z  k(  sJ t        t              j                  t              t        t        t        dz  dz                t        dz  z   t        t        dz        z  t        z  k(  sJ t        dt        z        j                         t        t              j                  t              j                  t        dt        z  i      k(  sJ t        dt        z        j                         t        t              j                  t              j                  t        dt        z  i      k(  sJ y )Nrh   rk   r{   r   rl   )r(   r   r   r   r   r'   r"   r   r#   r$   r&   r%   r  r   r   r   test_atan_rewriterf  i  s   7??31c!ac'l3q1Q3w<&?#@#BBBB7??4 d1T!Q$(^+;&<%<r!t%CT!Q$Z$OPQ$QQQQ7??4 DAJtAd1a4!8n4D/E$Ea$GGGG7??4 D1I---7??4 DAJtDAN/C$CA$EEEE7??4 d41q>&:%:RT%A41:$Ma$OOOO1:a!5!;!;!BqD!;!JJJJ!9??Q 4 : :1Q3 : HHHHr   c                      t        t              j                         dt        dz  dz   z  k(  sJ t        t        d        y )Nrh   rk   c                  >    t        t              j                  d      S r   )r(   r   r   r   r   r   r   z!test_atan_fdiff.<locals>.<lambda>w  rF  r   )r(   r   r   rG   r?   r   r   r   test_atan_fdiffri  u  s2    7==?aAl***
78r   c                  *   t        t              j                  t              t        k(  sJ t        dt        z        j                  t        d      t        dz  k(  sJ t        dt        z        j                  t        d      t         dz  k(  sJ t        t        t        z         j                  t        d      t         t        t              z  dz  t        dz  z   t        t        d      z  dz  z   k(  sJ t        t        t        z         j                  t        d      t         t        t              z  dz  dt        z  dz  z
  t        t        d      z  dz  z   k(  sJ t        t        t        z
        j                  t        d      t        t        t              z  dz  t        dz  z   t        t        d      z  dz  z
  k(  sJ t        t        t        z
        j                  t        d      t        t        t              z  dz  t        dz  z   t        t        d      z  dz  z
  k(  sJ t        t        dt        z  z         j                  t        d      t        t        d      z  k(  sJ t        t        dt        z  z         j                  t        d      t         t        t        d      z  z   k(  sJ t        t        dt        z  z
        j                  t        d      t        t        t        d      z  z
  k(  sJ t        t        dt        z  z
        j                  t        d      t         t        d      z  k(  sJ t        dt        z  t        t        z  z
  t        dz  z
        j                  t        d      t         dz  t        t        d      z  dz  z   k(  sJ t        dt        z  t        t        z  z
  t        dz  z
        j                  t        d      t         dz  t        t        d      z  dz  z   k(  sJ y )Nrh   r?  rk   ri   rm   ry   )r(   r   r   r   r   r   r   r   r   r   test_atan_leading_termrk  z  s)   7""1%***!9$$QQ$/2a4777!9$$QR$0RCE999A;&&qq&1aRAYq[2a45G!CPQF(ST*5TTTTA;&&qr&2qbQikAbDF6JQsSTvXVWZ6WWWWA;&&qq&1Qs1vXaZ"Q$5F3q6RS5SSSSA;&&qr&2aAhqj2a46G!CPQF(ST*6TTTTAaC=(((3qqzAAAAaC=(((4aaj8HHHHAaC=(((3rAeAhJFFFAaC=(((458CCC!ac	AqD !11!!1<A#a&QR
@RRRR!ac	AqD !11!"1="Q3q6RSASSSSr   c                    	
 t         j                  t        d      k(  sJ t        dd      t        j                  u sJ t        dd      dk(  sJ t        dd      t
        dz  k(  sJ t        dd      t
        dz  k(  sJ t        dd      t
        t        dd      z  k(  sJ t        dd      t
        k(  sJ t        dd      t
        t        dd      z  k(  sJ t        dd      t
         dz  k(  sJ t        dd      t
         dz  k(  sJ t        dd	
      } t        dd	      }t        ||       }t         t        | t        |z  z   t        | dz  |dz  z         z        z  }|df| t        ff}|j                  |      |j                  |      k(  sJ t        dd	      	t        dd	      
t        
	      t        
	z        t
        z
  k(  sJ t        dd	      
t        
	      t        
	z        t
        z   k(  sJ t        d      
t        
	      t        
	d      k(  sJ t        dd	      }t        d|      dk(  sJ t        dd	      }t        d|      t
        k(  sJ t        
t              dk(  sJ t        
t               dt
        z  t        t!        
      t        j"                        z  t
        z
  k(  sJ t        
	      j%                  t              t         t        	t        
z  z   t        	dz  
dz  z         z        z  k(  sJ t        dd      t        j                  u sJ t        
	      t'        	t        
z  z         z
  }|j                  	d
di      j%                  t&              dk(  sJ |j                  	d
dt        z  i      j%                  t&              t
         t        t        t        d      t        z  dz        z  z
  k(  sJ |j                  	dt        z  
di      j%                  t&              t
         dz  t        t        t        d      t        z        z  z
  k(  sJ |j                  	dt        z  
dt        z  i      j%                  t&              t
         t        t        dd            z   t        t        dd            z   k(  sJ t        dd	
      } t        dd	      }t        | |      }|j%                  t&              }| t        |di}|t         t        t)        t        | z  |z         t        t)        | dz  |dz  z               z        z  t'        t        | z  |z   t        | dz  |dz  z         z        z   k(  sJ ||z
  j                  |      j+                  d      sJ t        d	      j%                  t              t-        t
        t!        	      dk  fdt/        	d      ft0        d	f      k(  sJ t        d|      j%                  t              t-        t
        |dk  fdt/        |d      ft        j                  d	f      k(  sJ t        d|       sJ  |t              dk(         t        d|| z         j%                  t              t-        t
        |dk  fd      k(  sJ t        
	      j%                  t              t-        dt        
	t        	dz  
dz  z         z   z        z  t/        
d      ft
        t!        	      dk  fdt!        	      dkD  t/        t3        	      d      z  ft0        d	f      k(  sJ t5        t        	
            t        t5        	      t5        
            k(  sJ t7        t        
	      	      
 	dz  
dz  z   z  k(  sJ t7        t        
	      
      		dz  
dz  z   z  k(  sJ t9        t7        t        
	      j%                  t              	            
 	dz  
dz  z   z  k(  sJ t9        t7        t        
	      j%                  t              
            		dz  
dz  z   z  k(  sJ t;        t        dd      j=                  d            dk(  sJ t?        t@        	
fd       y )Nrk   r   rh   rm   ri   ry   ro   r   Trf   rH   rI   r   rQ   r   rT   Fr   urN   rl   rj   )r   Tz0.46365c                  :    t               j                  d      S )Nry   )r)   r   )r   r   s   r   r   ztest_atan2.<locals>.<lambda>  s    uQ{'8'8'; r   )!r)   r   r;   r   r1  r   r   r   r   r   r"   r   r   r(   r   r3   r   r   r   r   r   equalsrC   rA   r   r   r   r   r=   strr  rG   r?   )r   rH   eqansrepsrm  exrw   r   r   r   s            @@r   
test_atan2ru    s   ;;)A,&&&A;!%%A;!A;"Q$A;"Q$B<2hq!n,,,,B<2R=BxA....Q<B3q5   Q<B3q5   t$A$A	q!B"S!ac'41q!t,,-
-CFQFD774=CHHTN***sT"AsT"AA;$qs)b.(((s%AA;$qs)b.(((sAA;%1u5555sT"AA;!sT"AA;"B<ARC=AbD2a5!&&!99B>>>>A;s#r#q1Q3wQTAqD[8I.I*J'JJJJA;!%%	q!s1qs7|	#B77Aa1:&&s+q00077Aa1Q3< ((-"qT!WQYq[9I7I1IIII77Aac1Q< ((-"Q3tAwqy>9I1IIII77Aac1QqS>"**3/B3hq!n9M3MPTU]^_abUcPd3ddddt$A$AaAiinGq!R=DqbS1q\$s1a4!Q$;/?*@@AAC1qRVWXZ[W[^_ab^bWbRcHcDdddddKd#**1---A;t$	2r!uqy/-.1aM-0$K)9 9 9 9 A;t$	2q1u+2a8}quuVZm(\\\\A;)wt}));AE?""4(Ir1q5k9,MMMMA;t$	tAq41q!t,,-..1a9AOAbAl*+$K	)   
 U1a[!U9Q<1%FFFFaQA2q!tad{#3333aQ1adQTk?222Dq!,,S11561"adQTk:JJJJDq!,,S11561adQTk?JJJuQ{  #$	111
;<r   c                       G d dt               }  | d      } | d      }t        t        ||      j                         dz
        dk  sJ y )Nc                       e Zd ZdZd Zy)test_issue_17461.<locals>.ATc                     t        d      S )Ng      @)r
   )selfprecs     r   _eval_evalfz'test_issue_17461.<locals>.A._eval_evalf  s    :r   N)__name__
__module____qualname__r   r|  r   r   r   Arx    s    	r   r  XYg-DT!?r   )r   r   r)   r  )r  r   r   s      r   test_issue_17461r    sJ    F  	
#A	#AuQ{  "%6675@@@r   c                     t        t              t        u sJ t         j                  t        d      k(  sJ t        t               dk(  sJ t        t              dk(  sJ t        t
              dk(  sJ t        d      t        dz  k(  sJ t        d      t        dz  k(  sJ t        t        d      dz        t        dz  k(  sJ t        dt        d      z        t        dz  k(  sJ t        dt        d      z        t         dz  k(  sJ t        t              j                  t              ddt        dz  z   z  k(  sJ t        t              j                  du sJ t        t        t        z        t         t        t              z  k(  sJ t        dt        z        t        t        d      z  k(  sJ t        t              j                  J t        t              j                  d	u sJ t        t               j                  du sJ t        t              j                  d	u sJ t        t#        dd            j$                  d	u sJ t'        t         t)        t                    sJ t'        t         t+        t                    sJ t        t)        t#        dd                  t#        dd      k(  sJ t        t+        t#        dd                  t#        dd      t        dz  z
  k(  sJ y )
Nrh   r   rm   rk   ry   ri   Trj   F)r$   r   r   r;   r   r   r   r"   r   r   rH   r   r   r   r7  rP   rM   r   r   r>   r+   r0   r   r   r   	test_acotr    sS   9::1%%%9>>8q==9>>7bd??7bd??Q	?bd"""$q'	?bd"""47
s1u$$$7<<?b!ad(m+++7##t+++":!E"I%%%1:58###7&&&7%'''7$&&&7%'''A++u444T3q6"""T3q6"""HQN#$A666HRO$%!Q"Q$)>>>>r   c            	      R   t        t              j                  t              t        t        dt        t        z  z
        t        dt        t        z  z         z
  z  dz  k(  sJ t        t              j                  t
              t        t        t        t        dz         t        t        dz   dz
        z         t        dz  z   z  t        t        dz        z  k(  sJ t        t              j                  t              t        t        t        dz        z  t        t        t        dz         t        t        dz   dz
        z        z  k(  sJ t        t              j                  t              t        dt        z        k(  sJ t        t              j                  t              t        t        t        dz        z  t        t        t        dz  dz   t        dz  z              z  k(  sJ t        t              j                  t              t        t        t        t        dz  dz   t        dz  z               t        dz  z   z  t        t        dz        z  k(  sJ t        t         dz        j                         t        t              j                  t              j                  t        t         dz  i      k(  sJ t        t        dz        j                         t        t              j                  t              j                  t        t        dz  i      k(  sJ y )Nrh   rk   rj   rl   re  )r$   r   r   r   r   r'   r"   r   r#   r(   r&   r%   r  r   r   r   test_acot_rewriter    s8   7??31c!ac'l3q1Q3w<&?#@#BBBB7??4 AT1a4%[q!teai-H(I'IBqD'P$QRVWX[]W^R_$____7??4 Ad1r7mODq!teT1a4%RS)_9T4U$UUUU7??4 D1I---7??4 Ad1r7mODq!taxAo9N4O$OOOO7??4 AT1a4!8QT/-B(C'Cbd'J$KDQRUWQXM$YYYY1:a!5!;!;!QBqD!;!JJJJ!9??Q 4 : :1Q3 : HHHHr   c                      t        t              j                         dt        dz  dz   z  k(  sJ t        t        d        y )Nri   rk   rh   c                  >    t        t              j                  d      S r   )r$   r   r   r   r   r   r   z!test_acot_fdiff.<locals>.<lambda>  rF  r   )r$   r   r   rG   r?   r   r   r   test_acot_fdiffr  
  s2    7==?b!Q$(m+++
78r   c                     t        dt        z        j                  t              t        k(  sJ t        t        t        z         j                  t        d      t        t	        t              z  dz  t
        dz  z   t        t	        d      z  dz  z
  k(  sJ t        t        t        z         j                  t        d      t        t	        t              z  dz  t
        dz  z   t        t	        d      z  dz  z
  k(  sJ t        t        t        z
        j                  t        d      t         t	        t              z  dz  t
        dz  z   t        t	        d      z  dz  z   k(  sJ t        t        t        z
        j                  t        d      t         t	        t              z  dz  dt
        z  dz  z
  t        t	        d      z  dz  z   k(  sJ t        t              j                  t        d      t
        dz  k(  sJ t        t              j                  t        d      t
         dz  k(  sJ t        t        t        dz  z         j                  t        d      t
        t        t        t        d      dz        z  z
  k(  sJ t        t        t        dz  z         j                  t        d      t         t        t        d      dz        z  k(  sJ t        t        t        dz  z
        j                  t        d      t        t        t        d      dz        z  k(  sJ t        t        t        dz  z
        j                  t        d      t
         t        t        t        d      dz        z  z   k(  sJ t        t        dz  t        t        z  z
  t        dz  z
        j                  t        d      t
         dz  t        t	        d      z  dz  z
  k(  sJ t        t        dz  t        t        z  z
  t        dz  z
        j                  t        d      t
         dz  t        t	        d      z  dz  z
  k(  sJ y )Nrh   r?  rk   rm   ri   ry   )r$   r   r   r   r   r   r   r   r   r   r   test_acot_leading_termr    sG   !9$$Q'1,,,A;&&qq&1Qs1vXaZ"Q$5F3q6RS5SSSSA;&&qr&2aAhqj2a46G!CPQF(ST*6TTTTA;&&qq&1aRAYq[2a45G!CPQF(ST*5TTTTA;&&qr&2qbQikAbDF6JQsSTvXVWZ6WWWW7""11"-A5557""12".2#a%777AaC=(((3rAeAaDFmO7KKKKAaC=(((451a=8HHHHAaC=(((3qqtAvFFFAaC=(((4aad1fo8MMMM!ac	AqD !11!!1<A#a&QR
@RRRR!ac	AqD !11!"1="Q3q6RSASSSSr   c                  J    t        t              j                  t        fk(  sJ y N)r.   r   argsr   r   r   test_attributesr  !  s    q6;;1$r   c                  R   t        t        dz  t        z
        t        t              k(  sJ t        t        t        z
        t        t              k(  sJ t        t        dz  t        z
        t        t              k(  sJ t        t        t        z
        t        t               k(  sJ y r   )r.   r   r   r*   r   r   r   test_sincos_rewriter  %  st    r!tax=CF"""rAv;#a&   r!tax=CF"""rAv;3q6'!!!r   c                 4     | |      j                   d   | k(  S )zMChecks that the expr has been rewritten using f(-x) -> f(x)
    arg : -x
    r   r  r   r   s     r   _check_even_rewriter  ,  s     9>>!$$r   c                 :     | |      j                   j                  S )zNChecks that the expr has been rewritten using f(-x) -> -f(x)
    arg : -x
    )r   is_Mulr  s     r   _check_odd_rewriter  3  s     9>>   r   c                 2     | |      j                   d   |k(  S )z%Checks that the expr is not rewrittenr   r  r  s     r   _check_no_rewriter  :  s    9>>!##r   c                  <   t        d      } t        d      }t         g}t        t        t        t        t
        t        g}dddz   t        z  t         dz  t         t        z  t         t        z
  g}|D ]Q  }|D ]  }t        ||      rJ  t        || |z        sJ  |t        t        z
         |t        t        z
        k(  rQJ  |D ]R  }|D ]  }t        ||      rJ  t        || |z        sJ  |t        t        z
         |t        t        z
         k(  rRJ  y )Nrk   rh   ri      r   )r*   r.   r0   r+   r'   r(   r$   r	   r   r   r   r  r  r  )r`   brv   odd
with_minusr   exprs          r   test_evenodd_rewriter  ?  s3   AAAA5DS$d
+Cq$whlRCGaRTA26:J " 	3D&tT222	3 qs+++E1q5k" 	" "	"  # 	2D%dD111	2 qs+++EAE{l# 	# #	#r   c                  Z   t        t              j                  t              t        k(  sJ t        t              j                  t              dk(  sJ t	        t              j                  t              t        k(  sJ t        t              j                  t              dt        z  k(  sJ y Nrh   )r.   r   r   r*   r0   r+   r   r   r   test_as_leading_term_issue_5272r  S  sz    q6!!!$)))q6!!!$)))q6!!!$)))q6!!!$!+++r   c                     t        dt        z        j                  t              t        dd      k(  sJ t        t        j
                        j                  t              t        t        j
                        k(  sJ t        dt        z        j                  t              t        dd      k(  sJ t        t        j
                        j                  t              t        t        j
                        k(  sJ t        dt        z        j                  t              t        t        j                  t        j                        k(  sJ t        dt        z        j                  t              t        t        j                  t        j                        k(  sJ t        dt        z        j                  t              t        t        j                  t        j                        k(  sJ t        dt        z        j                  t              t        t        j                  t        j                        k(  sJ t        t        t        dz   z        dt        z  z  } | j                  t              t        dz  k(  sJ y )Nrh   ri   rm   ry   )r.   r   r   r   r   r   r*   r-   r0  r/  r,   r0   r+   r   r   s    r   test_leading_termsr  Z  s   qs8##A&+b!*<<<<qvv;&&q)S[888qs8##A&+b!*<<<<qvv;&&q)S[888qs8##A&+a6H6H!***UUUUqs8##A&+a6H6H!***UUUUqs8##A&+a6H6H!***UUUUqs8##A&+a6H6H!***UUUU 	BAJ1AQ2a4'''r   c                     t        t        t        dz  t        dz         j                  t              t	        t        dz  t        dz   z        j                  t              z
        dk(  sJ t        t	        t
        t        z        j                  t
        dd      t        t
        t              j                  t
        dd      z
  t        dt              z   t	        d      z
        t        t
        dz        k(  sJ t        t	        t
        t        z        j                  t        dd      t        t
        t              j                  t        dd      z
  t        t
        d      z   t	        t
              z
        t        t        dz
  dz  t        df      k(  sJ t        t	        t
        t        z   t        z        j                  t        dd      t        t
        t        z   t              j                  t        dd      z
  t        dt
        z   d      z   t	        dt
        z         z
        t        t        dz
  dz  t        df      k(  sJ t        t        t
        t              g      j                  t
        t        g      t        t        t
        dz  t        dz  z   z  t
         t
        dz  t        dz  z   z  gg      k(  sJ y )Nrk   rh   r   rl   rm   ry   )
r5   r)   r   r   r(   r   r9   r8   r4   jacobianr   r   r   test_atan2_expansionr  i  s+   %1a!e$))!,tAqD!a%L/A/F/Fq/IIJaOOO$qs)""1a+eAqk.@.@Aq.II!QK "&q'* +./1g6 6 6$qs)""1a+eAqk.@.@Aq.II!QK "&q'* +./Q
QF.CD D D$Aqy/((Aq1E!a%O4J4J1aQR4SS!a%O$&*1q5k2 367Q
QF6KL L L5A;- ))1a&1AqD1a4K1"adQTk"23456 6 6r   c                      d }  | t         ddd        | t         ddd        | t        ddd        | t        ddd       y )Nc                     t         | d|z        j                          | dt        z        j                  t        |      j	                         j                  t        |      z
        |k  sJ y )Nrh   )dir)r   r  r   r9   removeOr   )rP   vr   rw   s       r   tztest_aseries.<locals>.tv  sa    acFLLNQqsV]]1!]4<<>CCAqIIKMNO 	O Or   g?+gh㈵>g-)r(   r$   )r  s    r   test_aseriesr  u  sB    O dCddD#tdCddD#tr   c                     t        dd      } t        dd      }t        dd      }t        d| z  t        z        d	k(  sJ t        d| z  t        z        d
k(  sJ t	        d| z  t        z        d
k(  sJ t        d| z  t        z        t        u sJ t        d| z  t        z        t        t        | z        k(  sJ t        d| z  t        z        d
k(  sJ t	        d| z  t        z        d
k(  sJ t        d| z  t        z        t        u sJ t        d| z  t        z        d	k(  sJ t        d| z  t        z        d
k(  sJ t	        d| z  t        z        d
k(  sJ t        d| z  t        z        t        u sJ t        d| z  t        z        t        t        | z        k(  sJ t        d| z  t        z        d
k(  sJ t	        d| z  t        z        d
k(  sJ t        d| z  t        z        t        u sJ t        d| z  t        z        t        dt        z  | z        k(  sJ t        d| z  t        z        t        dt        z  | z        k(  sJ t	        d| z  t        z        t	        dt        z  | z        k(  sJ t        d| z  t        z        t        dt        z  | z        k(  sJ t        d|z  t        z        d	k(  sJ t        d|z  t        z        d
k(  sJ t	        d|z  t        z        d
k(  sJ t        d|z  t        z        t        u sJ t        d|z  t        z        d	k(  sJ t        d|z  t        z        d
k(  sJ t	        d|z  t        z        d
k(  sJ t        d|z  t        z        t        u sJ t        d|z  t        z        d	k(  sJ t        d|z  t        z        d
k(  sJ t	        d|z  t        z        d
k(  sJ t        d|z  t        z        t        u sJ t        d|z  t        z        d	k(  sJ t        d|z  t        z        d
k(  sJ t	        d|z  t        z        d
k(  sJ t        d|z  t        z        t        u sJ t        d|z  t        z        t        dt        z  |z        k(  sJ t        d|z  t        z        t        dt        z  |z        k(  sJ t	        d|z  t        z        t	        dt        z  |z        k(  sJ t        d|z  t        z        t        dt        z  |z        k(  sJ t        d|z  t        z        d	k(  sJ t        d|z  t        z        d
k(  sJ t	        d|z  t        z        d
k(  sJ t        d|z  t        z        t        u sJ t        d|z  t        z        dk(  sJ t        d|z  t        z        d
k(  sJ t	        d|z  t        z        d
k(  sJ t        d|z  t        z        t        u sJ t        d|z  t        z        d	k(  sJ t        d|z  t        z        d
k(  sJ t	        d|z  t        z        d
k(  sJ t        d|z  t        z        t        u sJ t        d|z  t        z        dk(  sJ t        d|z  t        z        d
k(  sJ t	        d|z  t        z        d
k(  sJ t        d|z  t        z        t        u sJ t        d|z  t        z        t        dt        z  |z        k(  sJ t        d|z  t        z        t        dt        z  |z        k(  sJ t	        d|z  t        z        t	        dt        z  |z        k(  sJ t        d|z  t        z        t        dt        z  |z        k(  sJ t        dt        z  t        z        t        dt        z  t        z        k(  sJ t        dt        z  t        z        t        dt        z  t        z        k(  sJ t	        dt        z  t        z        t	        dt        z  t        z        k(  sJ t        dt        z  t        z        t        dt        z  t        z        k(  sJ t        dt        z  t        z        t        dt        z  t        z        k(  sJ t        dt        z  t        z        t        dt        z  t        z        k(  sJ t	        dt        z  t        z        t	        dt        z  t        z        k(  sJ t        dt        z  t        z        t        dt        z  t        z        k(  sJ t        dt        z  t        z        t        dt        z  t        z        k(  sJ t        dt        z  t        z        t        dt        z  t        z        k(  sJ t	        dt        z  t        z        t	        dt        z  t        z        k(  sJ t        dt        z  t        z        t        dt        z  t        z        k(  sJ t        dt        z  t        z        t        dt        z  t        z        k(  sJ t        dt        z  t        z        t        dt        z  t        z        k(  sJ t	        dt        z  t        z        t	        dt        z  t        z        k(  sJ t        dt        z  t        z        t        dt        z  t        z        k(  sJ t        dt        z  t        z        t        dt        z  t        z        k(  sJ t        dt        z  t        z        t        dt        z  t        z        k(  sJ t	        dt        z  t        z        t	        dt        z  t        z        k(  sJ t        dt        z  t        z        t        dt        z  t        z        k(  sJ y )Nr   TrK   rw   rx   o)r  rm   rh   r   ry   g      @g      @g      @rP  ri   )r   r*   r   r.   r0   r+   r   r   )r   rw   r  s      r   test_issue_4420r    s	   sD!AsAsA qs2v;!qs2v;!qs2v;!qs2v;#qs2v;#bd)###qs2v;!qs2v;!qs2v;#s1uRx=As1uRx=As1uRx=As1uRx=Cs1uRx=C1I%%%s1uRx=As1uRx=As1uRx=Cs1uRx=CBqM)))s1uRx=CBqM)))s1uRx=CBqM)))s1uRx=CBqM))) qs2v;!qs2v;!qs2v;!qs2v;#qs2v;!qs2v;!qs2v;!qs2v;#s1uRx=As1uRx=As1uRx=As1uRx=Cs1uRx=As1uRx=As1uRx=As1uRx=Cs1uRx=CBqM)))s1uRx=CBqM)))s1uRx=CBqM)))s1uRx=CBqM)))qs2v;!qs2v;!qs2v;!qs2v;#qs2v;"qs2v;!qs2v;!qs2v;#s1uRx=As1uRx=As1uRx=As1uRx=Cs1uRx=Bs1uRx=As1uRx=As1uRx=Cs1uRx=CBqM)))s1uRx=CBqM)))s1uRx=CBqM)))s1uRx=CBqM))) qs2v;#ad1f+%%%qs2v;#ad1f+%%%qs2v;#ad1f+%%%qs2v;#ad1f+%%%qs2v;#ad1f+%%%qs2v;#ad1f+%%%qs2v;#ad1f+%%%qs2v;#ad1f+%%%s1uRx=CBqM)))s1uRx=CBqM)))s1uRx=CBqM)))s1uRx=CBqM)))s1uRx=CBqM)))s1uRx=CBqM)))s1uRx=CBqM)))s1uRx=CBqM)))s1uRx=CBqM)))s1uRx=CBqM)))s1uRx=CBqM)))s1uRx=CBqM)))r   c                  T   t        t        d        t        t        d        t        t              j	                         t
        k(  sJ t        t              j	                         t        k(  sJ t        t        d        t        t        d        t        t              j	                         t        k(  sJ t        t              j	                         t        k(  sJ t        t              j	                         t        k(  sJ t        t              j	                         t        k(  sJ y )Nc                  <    t        t              j                         S r  )r.   r   inverser   r   r   r   ztest_inverses.<locals>.<lambda>      3q6>>#3 r   c                  <    t        t              j                         S r  )r*   r   r  r   r   r   r   ztest_inverses.<locals>.<lambda>  r  r   c                  <    t        t              j                         S r  )r,   r   r  r   r   r   r   ztest_inverses.<locals>.<lambda>  r  r   c                  <    t        t              j                         S r  )r-   r   r  r   r   r   r   ztest_inverses.<locals>.<lambda>  r  r   )rG   AttributeErrorr0   r   r  r(   r+   r$   r'   r.   r#   r*   r   r   r   test_inversesr    s    
>34
>34q6>>t###q6>>t###
>34
>347??###7??###7??###7??###r   c            	         t        dd      \  } }| |t        z  z   }dD ]5  }t        |      j                  |      t        |       t	        |      z  t        |       t        |      z  fk(  sJ t        |      j                  |      t        |       t	        |      z  t        |        t        |      z  fk(  sJ t        |      j                  |      t        d| z        t        d| z        t	        d|z        z   z  t        d|z        t        d| z        t	        d|z        z   z  fk(  sJ t        |      j                  |      t        d| z         t        d| z        t	        d|z        z
  z  t        d|z        t        d| z        t	        d|z        z
  z  fk(  sJ t        |       j                  |      t        |       dfk(  sJ t        |       j                  |      t        |       dfk(  sJ t        |       j                  |      t        |       dfk(  sJ t        |       j                  |      t        |       dfk(  r6J  y )Nza bTrI   )TF)deeprk   r   )	r   r   r.   as_real_imagr   r*   r    r0   r+   )r`   r  re   r  s       r   test_real_imagr    sP   5t$DAq	AaCA =||&3q6$q'>3q6$q'>*JK 	K K||&3q6$q'>CF747?*KL 	L L1v"""-#ac(C!H1I= 3QqS	3qs8d1Q3i#782: : 	: :1v"""-3qs8)S1X1I> 3QqS	3qs8d1Q3i#782: : 	: :1v"""-#a&!<<<1v"""-#a&!<<<1v"""-#a&!<<<1v"""-#a&!<<<=r   c                      t        t              t        j                  u sJ t	        t              t        j                  u sJ y r  )r.   r   r   r1  r*   r   r   r   test_sin_cos_with_infinityr    s0     r7aeer7aeer   c                     dD ]c  } dD ]Z  }|| z  }t        dt        |dz   dz  dz   d            D ]/  }dt        ||      k(  s|t        z  |z  }t	        |      j                  t              }t        |      j                  t              }|j                  t        t              rJ d||fz         |j                  t        t              rJ d||fz         dt        t	        |j                  d            |j                  d      z
        kD  sJ d||fz         dt        t        |j                  d            |j                  d      z
        kD  r&J d||fz          ] f t        t        d	z        j                  t              t        t        t        d
z        dz  t        j                  z         k(  sJ t        t        t        dd      z  dz  d      j                  t              t        t        t        t        dd      z         dz  t        j                  z          k(  sJ t        t        dt        t        j                  d      d      j                  t              dk(  sJ t        t        dz  dz        }dt        t        d       dz         z  t        t        d      dz         z  dz  dt        d      z  t        t        d      dz         z  dz  z
  t        t        d      dz         t        dt        d      z  t        t        d      dz         z  t        d      t        t        d       dz         z  z
  t        d      t        t        d       dz         z  z   dt        d      z  z   dz         z  dz  z
  t        t        d       dz         t        dt        d      z  t        t        d      dz         z  t        d      t        t        d       dz         z  z
  t        d      t        t        d       dz         z  z   dt        d      z  z   dz         z  dz  z
  t        dd      z
  t        d      t        dt        d      z  t        t        d      dz         z  t        d      t        t        d       dz         z  z
  t        d      t        t        d       dz         z  z   dt        d      z  z   dz         z  dz  z   dt        d      z  t        t        d      dz         z  dz  z   t        d      t        t        d       dz         z  dz  z   dt        d      z  t        t        d       dz         z  dz  z   t        d      t        t        d       dz         z  t        dt        d      z  t        t        d      dz         z  t        d      t        t        d       dz         z  z
  t        d      t        t        d       dz         z  z   dt        d      z  z   dz         z  dz  z   dt        d      z  dz  z   t        d      t        t        d       t        t        d      dz         z  t        t        d      dz  t        d      t        t        d       dz         z  dz  z   t        d      t        dt        d      z  t        t        d      dz         z  t        d      t        t        d       dz         z  z
  t        d      t        t        d       dz         z  z   dt        d      z  z   dz         z  dz  z   t        dd      z         z  dz  dt        d      z  t        t        d      dz  t        d      t        t        d       dz         z  dz  z   t        d      t        dt        d      z  t        t        d      dz         z  t        d      t        t        d       dz         z  z
  t        d      t        t        d       dz         z  z   dt        d      z  z   dz         z  dz  z   t        dd      z         z  t        dt        d      z  t        t        d      dz         z  t        d      t        t        d       dz         z  z
  t        d      t        t        d       dz         z  z   dt        d      z  z   dz         z  dz  z
  dt        d      z  t        t        d       dz         z  t        t        d      dz  t        d      t        t        d       dz         z  dz  z   t        d      t        dt        d      z  t        t        d      dz         z  t        d      t        t        d       dz         z  z
  t        d      t        t        d       dz         z  z   dt        d      z  z   dz         z  dz  z   t        dd      z         z  dz  z
  t        d      t        t        d      dz  t        d      t        t        d       dz         z  dz  z   t        d      t        dt        d      z  t        t        d      dz         z  t        d      t        t        d       dz         z  z
  t        d      t        t        d       dz         z  z   dt        d      z  z   dz         z  dz  z   t        dd      z         z  t        dt        d      z  t        t        d      dz         z  t        d      t        t        d       dz         z  z
  t        d      t        t        d       dz         z  z   dt        d      z  z   dz         z  dz  z   t        t        d      dz  t        d      t        t        d       dz         z  dz  z   t        d      t        dt        d      z  t        t        d      dz         z  t        d      t        t        d       dz         z  z
  t        d      t        t        d       dz         z  z   dt        d      z  z   dz         z  dz  z   t        dd      z         dz  z   t        j                  z   t        t        d       dz         t        t        d      dz  t        d      t        t        d       dz         z  dz  z   t        d      t        dt        d      z  t        t        d      dz         z  t        d      t        t        d       dz         z  z
  t        d      t        t        d       dz         z  z   dt        d      z  z   dz         z  dz  z   t        dd      z         z  t        dt        d      z  t        t        d      dz         z  t        d      t        t        d       dz         z  z
  t        d      t        t        d       dz         z  z   dt        d      z  z   dz         z  dz  z   t        d      t        t        d       dz         z  t        t        d      dz  t        d      t        t        d       dz         z  dz  z   t        d      t        dt        d      z  t        t        d      dz         z  t        d      t        t        d       dz         z  z
  t        d      t        t        d       dz         z  z   dt        d      z  z   dz         z  dz  z   t        dd      z         z  dz  z         z  dz  z   }|j                  t              |k(  sJ |j                         |j                         k(  sJ t        t        dz  dz        j                  t              t	        t        dz        t	        t        t        dd      z        z  t        t        dz        t        t        t        dd      z        z  z   k(  sJ y )Nrh   ry   rl   rz   rh   r|   rh   rk   rp   r   MbP?rl   r   rr   r   r   Fr   rm   ri   ry   rz   ro   @   r      r   rn       r   r   r|   r   )r   minr6   r   r.   r   r"   r*   hasr   r  r   r   r   r   rP   )	rM   r  rP   r   r   s1c1rw   r`   s	            r   test_sincos_rewrite_sqrtr    s     d 	dA!A 1c1q51*q."56 dAq	>"QAQ-BQ-B!vvc3/N1EA1NN/!vvc3/N1EA1NN/#c!''!*o&C"DDcFZ^_ab]cFccD#c!''!*o&C"DDcFZ^_ab]cFccDd	dd& r"u:d#tC1IaK!&&,@'AAAAr(3""2%6>>Bx2.//1AFF:;;< < <s1b!&&51EBJJ  BqDGA
4b	BT"X] 33B6	$r(
4R2&&s*	+-1$r(
3 .DGDbB//$q'$Ry2~:N2NN
r(4b	B'
'(*+DH*579: ;.;;=.>	> AEd2hY
F A2d1g:d48b=11DGD$r(
B = 5 2htT"XIN++,./Rj9;=> ?A??BAC	C
 FNaQS_	U 	QRQZT"X] 33d1gdDH9
D ? 7 2htT"XIN++,./Rj9;=> ? 	??A	B	B 	
$q'	$tBx"}%%c)	* -1HT48)b.5I,I#,M	N T!W*T48)b.)
)#
-		. 15RtBxi
? : 1DGDbB//$q'$Ry2~:N2NN
r(4b	B'
'(*+DH*579: ;1;;>1?	? BC48B	O q'$QxT"X] 33Db"Qd2hY^$$R':(QRQZT"X] 33d1gdDH9
D ? 7 2htT"XIN++,./Rj9;=> ? 	??A	B:B EMRQSDT:U 5V V WXX 	
$q'	$tBx{T!WT48)b.-A%A"%DDQRQZT"X] 33d1gdDH9
D ? 7 2htT"XIN++,./Rj9;=> ? 	??A	BB 	R  	 r$q'z$tBx"}*==QdSUhY
N I A  2htT"XIN++ ,./Rj 9;= > ?	? @B		B	B 	
$q'	$Ry2~&&tDHRKQd2hY^$$R'-(QRQZT"X] 33d1gdDH9
D ? 7 2htT"XIN++,./Rj9;=> ? 	??A	B-B EMRQSDT-U (V 	V WY	YY r(4Rd1gdDH9r>.B&B2&EEQRQZT"X] 33d1gdDH9
D ? 7 2htT"XIN++,./Rj9;=> ? 	??A	BB 	R   r$q'z$tBx"}*==QdSUhY
N I A  2htT"XIN++ ,./Rj 9;= > ?? @B	BB$ 	T"Xb[474b	B#77::QRQZT"X] 33d1gdDH9
D ? 7 2htT"XIN++,./Rj9;=> ? 	??A	BBDLRQSDTU 	VVW	X%X* 	
+* tBxi"n%d48B;atBxi
G B :: ,abajd2hm)<<Qd2hY^$$%'+Bxd2hY^0D'DE	$r(
  , 'r2.,/ '0 0 15RQZT"XPR]@S5SQd2hY^$$6%'+Bxd2hY^0D'D6E	$r(
66 1
 +4 #2htT"XIN';;Db"Qd2hY^$$R'B(QRQZT"X] 33d1gdDH9
D ? 7 2htT"XIN++,./Rj9;=> ? 	??A	BBB 	R	B =  	5  <  = *	  X 99T?a335ACCE>> r!tBw<%BqD	#b!R())C1Ic"Xa_:L6M,MMN N Nr   c                      t        t        dz        j                  t              j	                  d      t        t        dz        j	                  d      k(  sJ y )Ni  r  )r*   r   r   r"   r  r   r   r   test_sincos_rewrite_sqrt_257r  c  sA    r#v;t$**2.#bf+2C2CB2GGGGr   c                     dD ]  } dD ]y  }|| z  }t        dt        |dz   dz  dz   d            D ]N  }dt        ||      k(  s|t        z  |z  }d|z  |k7  rd|z  d|z  k7  rt	        |      j                  t              }|j                  t        t              rJ d||fz         dt        t	        |j                  d	            |j                  d
      z
        kD  sJ d||fz         |dk7  s||k7  st        |      j                  t              }|j                  t        t              rJ d||fz         dt        t        |j                  d	            |j                  d
      z
        kD  rEJ d||fz          |  y )Nr  r  rh   rk   rp   ry   r   r  rr   rm   r   )r   r  r6   r   r0   r   r"   r  r+   r   r  )rM   r  rP   r   r   t1r  s          r   test_tancot_rewrite_sqrtr  h  s     j 	jA!A1c1q51*q."56 
jAq	>"QA!qQqSAaCZ V^^D1#%66#s#3R5IQPQF5RR3#c3qwwqz?RXXa[+H&JJiL`deghciLiiJQ16 V^^D1#%66#s#3R5IQPQF5RR3#c3qwwqz?RXXa[+H&JJiL`deghciLiiJ
j	jjr   c                  ,   t        dd      } t        d      }t        j                  t        d      k(  sJ t        t              t
        u sJ t        d      dk(  sJ t        t              dk(  sJ t        t        dz        t        u sJ t        t         dz        t        u sJ t        t        d	z        dt        d
      z  d
z  k(  sJ t        t        d
z        dk(  sJ t        t        t        dd      z        t        u sJ t        t        t        dd      z        t        t        t        dd      z         k(  sJ t        t        t        d
d      z        t        d       k(  sJ t        t              dt        d      z  k(  sJ t        | t        z        dt        |       z  k(  sJ t        |        t        |       k(  sJ t        t        |             | k(  sJ t        |      j                         t        t        |            k(  sJ t        |      j                         t        t        |            t        t!        |            z  t#        t        |            dz  t%        t!        |            dz  z  t        t        |            dz  t        t!        |            dz  z  z   z  t#        t        |            t%        t!        |            z  t#        t        |            dz  t%        t!        |            dz  z  t        t        |            dz  t        t!        |            dz  z  z   z  fk(  sJ t        |       j'                  d      dt        |       z  k(  sJ t        d| z        j'                  d      ddt        |       dz  z  dz
  z  k(  sJ t        |       j(                  dk(  sJ t        |      j*                  d k(  sJ t        t,              j.                  J t        t0              j.                  du sJ t        |       j3                         t        |       k(  sJ t        dd      j4                  dk(  sJ t        |       j4                  d k(  sJ t        t        dz  d      j4                  dk(  sJ t7        t        |       | dd	      d| dz  dz  z   d| dz  z  dz  z   t9        | d	z        z   k(  sJ t7        t        t        |                   d| dz  dz  z   d| dz  z  dz  z   t9        | d	z        z   k(  sJ t7        t        t        |             | t        d
z  dz  d      dt        | t        t        d
d      z  z
        z  | t        t        d
d      z  z
  t        d
d      z  dz  z   | t        t        d
d      z  z
  t        dd      z  dz  z   t9        | t        t        d
d      z  z
  dz  | t        t        d
d      z  f      z   k(  sJ t        |       j;                  |       t=        |       t        |       z  k(  sJ t        |      j?                  d|      d|dz  z  dz  k(  sJ t        |      j?                  d	|      d|d	z  z  dz  k(  sJ t        |      j?                  d|      dk(  sJ y )Nr   TrI   re   rh   r   ri   rk   rn   ry   rl   r   rr   rm   r   Fr   x0rP   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   rb   r   r   r9   r8   r   r0   r  )r   re   s     r   test_secr  {  s   $AA99	!$$$s8s??q6Q;;r7b==r!t9s1u:r!t9$q'	!###r!t9>>r(1a. !S(((r(1a. !c"Xa^*;&<%<<<<r(1a. !d1gX---q6QtAwYqs8qay   r7c!ftAw<1q6Yq\!2222F!AZRUSAZ]41;>9 AZ]41;>9: ;AZRUSAZ]41;>9 AZ]41;>9: ;<< = < q6==d=#qQx///qs8???%Ac!faiK!O)<<<<q6""d***q6>>T!!!q6&&&r75(((q6!!#s1v---q5!++t333q6t###r!te$..%777#a&!Q'1q!tAv:!Q$r	+AAadG+KKKK $s1v,1q!tAv:!Q$r	#9AadG#CCCC 4A<r!tAv3d1r(1a.(())QHQN1B-BXaQR^,STV,VVHQN""Xa^3C78:;QHQPQNAR=RUV<VYZ\^_ghikl_m\mXn:opp q p q6;;q>SVCF]*** q6a#qAvby000q6a#r!Q$ws{222q6a#q(((r   c            	         t        t              j                  t              dt        t        t        z        dz  t        t         t        z        dz  z   z  k(  sJ t        t              j                  t
              dt        t              z  k(  sJ t        t              j                  t              t        t        dz        dz  dz   t        t        dz        dz   dz   z  k(  sJ t        t              j                  t              t        t              k(  sJ t        t              j                  t              t        t              k(  sJ t        t              j                  t              t        t        dz        dz  dz   t        t        dz        dz  dz
  z  k(  sJ t        t              j                  t              dt        t        t        dz  z   d      z  k(  sJ t        t              j                  t              t        t        dz        dz  dz   t        t        dz        dz   dz   z  k(  sJ t        t              j                  t              t        t         t        dz  z   d      k(  sJ t        t              j                  t              t        t        d      t        t        t        z        t        t         j"                   t              z  z  t%        t        d      fd      k(  sJ t        t              j                  t              j'                  t        d      t        d      k(  sJ y )Nrh   rk   Fr   r   r   )r-   r   r   r   r   r*   r0   r   r"   re   r+   r.   r   r,   r1   rC   r   r   rA   r   r   r   r   test_sec_rewriter    sL   q6>>#!S1XaZ#qbd)A+%=">>>>q6>>#!CF(***q6>>#3qs8Q;?c!A#hk\A5E"FFFFq6>>##a&(((q6>>$3q6)))q6>>#3qs8Q;?S1Xq[1_"EEEEq6>>#!c!b1f*u&E"EEEEq6>>#3q1u:q=1#4#a!e*a-!9K"LLLLq6>>##qb2a4i%"@@@@q6>>'"ia$r!t*WaffWa%8892a8D'    q6>>'"''1-Q777r   c                      t        t              j                         t        t              t        t              z  k(  sJ t	        t
        d        y )Nc                  >    t        t              j                  d      S r   )r-   r   r   r   r   r   r   z test_sec_fdiff.<locals>.<lambda>  r   r   )r-   r   r   r0   rG   r?   r   r   r   test_sec_fdiffr    s2    q6<<>SVCF]***
67r   c            
         t        dd      t        d      } t        d      }dt        d      z  }|j                  |      dk(  sJ |j                  |      dk(  sJ t        j                  t        d      k(  sJ t        d      t        u sJ t        t              t        u sJ t        t              t        u sJ t        t        dz        dk(  sJ t        t         dz        dk(  sJ t        t        d	z        dk(  sJ t        t        d
z        dt        d
      z  d
z  k(  sJ t        t        t        dd      z        dk(  sJ t        t        t        dd      z        t        t        t        dd      z         k(  sJ t        t        t        d
d      z        t        d      k(  sJ t        t              t         t        d      z  k(  sJ t        t        z        t         t              z  k(  sJ t               t               k(  sJ t        t                    k(  sJ t        |       j                         t        t        |             k(  sJ t        |       j                         t        t!        |             t#        t%        |             z  t        t!        |             dz  t#        t%        |             dz  z  t'        t!        |             dz  t        t%        |             dz  z  z   z  t'        t!        |              t        t%        |             z  t        t!        |             dz  t#        t%        |             dz  z  t'        t!        |             dz  t        t%        |             dz  z  z   z  fk(  sJ t              j)                  d      dt              z  k(  sJ t        dz        j)                  d      ddt              z  t'              z  z  k(  sJ t              j*                  dk(  sJ t        |       j,                  d k(  sJ t        t.              j0                  J t        t2              j0                  du sJ t              j5                         t              k(  sJ t        dd      j6                  dk(  sJ t              j6                  d k(  sJ t        t        dz  d      j6                  dk(  sJ t9        t              t        dz  d	      dt        dz  z
  dz  dz  z   dt        dz  z
  dz  z  dz  z   t;        t        dz  z
  d	z  t        dz  f      z   k(  sJ t9        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              j=                        t?               t              z  k(  sJ t              jA                  d      dk(  sJ t              jA                  d
      dd
z  z  dz  k(  sJ t              jA                  d      ddz  z  dz  k(  sJ tC        tD        fd       y )Nr   TrI   re   rh   r   rk   ri   rn   ry   rl   r   rr   rm   r   Fr   r  r   ih     i;  c                  8    t               j                  d      S r   )r,   r   r   s   r   r   ztest_csc.<locals>.<lambda>  s    s1v||A r   )#r   r,   r.   ro  r   r;   r   r   r   r"   r   r   r    r%   r   r  r   r   r   r*   r   r   r   r`   r   rb   r   r   r9   r8   r   r+   r  rG   r?   )re   cosecant	alternater   s      @r   test_cscr    s   $AA 3xH#c(
I??9%---H%---99	!$$$q6S==r7c>>s8s??r!t9>>s1u:r!t9>>r!t9$q'	!###r(1a. !Q&&&r(1a. !c"Xa^*;&<%<<<<r(1a. !T!W,,,q6aRQZqs8r$q'z!!!r7s1vgtAw<1q6Yq\!2222F!AZRU#SAZ]41;>%A%(AZ]41;>%A&B C"Q%j[be$c"Q%j!mDAKN&Bbe*a-RUQ6'7 899 : 9 q6==d=#qQx///qs8???%Ac!fHSVO)<<<<q6""d***q6>>T!!!q6&&&r75(((q6!!#s1v---q5!++u444q6t###r!te$..$666#a&!1*	QAXM!OaRTAob001a"Q$h]Q1I3NNO O O#a&!Q'aC!A#I!Q$s
"R1WU]2Qq!tW<= = = q6;;q>c!fWSV^+++q6a#q(((q6a#qAvcz111q6a#r!Q$wu}444
67r   c            
      	   t        dd      } t        |       t        u sJ t        t              t        u sJ t        d      dk(  sJ t        d      t        k(  sJ t        t
              t        dz  k(  sJ t        t
               t        dz  k(  sJ t        t              t        dz  k(  sJ t        t        t        t        dd	      z              t        t        d
d	      z  k(  sJ t        dt        d      z         t        t        dd      z  k(  sJ t        dt        d
      z        t        dz  k(  sJ t        t        d	dt        d      z  z
              t        dz  k(  sJ t        t        d	dt        d      z  z                t        t        dd      z  k(  sJ t        t        ddt        d      z  dz  z               t        t        d
d      z  k(  sJ t        t        ddt        d      z  dz  z                t        t        dd      z  k(  sJ t        t        d      t        d      z
        t        t        dd      z  k(  sJ t        t              j                  t              dt        dz  t        ddt        dz  z  z
        z  z  k(  sJ t        t              j                  t              t        t        t        ddt        dz  z  z
        t        t        z  z         z  t        dz  z   k(  sJ t        t              j                  t              t        dt        z         t        dz  z   k(  sJ t        t              j                  t              t        dt        z        k(  sJ t        t              j                  t               t        dt        t        dz        t        z  z
  z  dz  t        t        dz        t!        t        t        dz  dz
              z  t        z  z   k(  sJ t        t              j                  t"              t        dt        t        dz        t        z  z
  z  dz  t        t        dz        t#        dt        t        dz  dz
        z        z  t        z  z   k(  sJ t        t              j                  t$              t%        t               t        dz  z   k(  sJ t'        t(        d        y )Nre   Tr+  rh   r   ri   rk   r   rm   ry   rl   rn   r|   rp   rr   r   r~   c                  >    t        t              j                  d      S r   )r&   r   r   r   r   r   r   ztest_asec.<locals>.<lambda>.  rF  r   )r   r&   r   r   r   r   r-   r   r"   r   r   r   r   r   r'   r#   r(   r$   r%   rG   r?   re   s    r   	test_asecr    s   sA7c>>97a<<8r>>8r!t9191BxA&'(Bx1~,====DG8Aq> 1111$q'	?bd"""Q47]#$1,,,a!DG)m$$%HQN)::::Q471_%&"Xa_*<<<<a!DG)A+o&&'2hq"o+====Q$q'!"b"b)9&99997<<?aAd1qAv:&6!677777??31Sa!AqD&j)9AaC)?%@#@2a4#GGGG7??4 T!A#YJA$55557??4 D1I---7??4 
AQT
1a$q!t*T$q!tax.-A"A!"CCD D D7??4 
AQT
1a$q!t*T!DAN2B-C"CA"EEF F F7??4 T!WHr!tO333
78r   c                  Z   t        t        j                        j                  du sJ t	        ddd      } t        |       j
                  du sJ t        t              j                  J t        t              j                  J t	        ddd      }t        |      j                  du sJ y )NFrP   T)rO   rL   r  rJ   finite)r&   r   r   r   r   r   r   rH   )rP   r  s     r   test_asec_is_realr  1  s    <5(((sT40A7##t+++7??"""7??"""st,A7??e###r   c            	      L   t        dt        z        j                  t              t        dz  k(  sJ t        t        dz         j                  t              t	        d      t	        t              z  k(  sJ t        t        dz
        j                  t              t        k(  sJ t        t              j                  t        d      t
         t        t              z  t
        t        d      z  z   k(  sJ t        t              j                  t        d      t
        t        t              z  dt        z  z   t
        t        d      z  z
  k(  sJ t        t
        t        z  dz         j                  t        d      t        d      k(  sJ t        t
         t        z  dz         j                  t        d      t        d       k(  sJ t        t
        t        z  dz
        j                  t        d      dt        z  t        d      z
  k(  sJ t        t
         t        z  dz
        j                  t        d      t        d      k(  sJ t        t
         t        dz  z  t        z   t        d      dz  z
        j                  t        d      t        t
        t        dt	        d      z
        z  z   k(  sJ t        t
         t        dz  z  t        z   t        d      dz  z
        j                  t        d      t        t
        t        dt	        d      z
        z  z   k(  sJ y )Nrh   rk   r?  ri   rP        ry   )r&   r   r   r   r"   r   r   r   r   r   r   test_asec_leading_termr  ;  sh   !9$$Q'2a4///A;&&q)T!WT!W_<<<A;&&q)R///7""11"-!CFQs1vX1EEEE7""12".!CF(QrT/Ac!fH2LLLL!c	?**11*5cBBB1s
++AA+649*DDD!c	?**11*52T
9JJJJ1s
++AA+6$t*DDD1a4!ad1f$%55aa5@B3qSWXYSZ{K[I[D[[[[1a4!ad1f$%55ab5AR!CPQTXYZT[P[L\J\E\\\\r   c                  t   t        t              j                  t        dd      t        t	        d      z  t        t	        t              z  z
  t        t        dz  z  dz  z
  dt        z  t        dz  z  dz  z
  dt        z  t        dz  z  d	z  z
  d
t        z  t        dz  z  dz  z
  t        t        dz        z   k(  sJ t        t              j                  dt              } | dt        z  t        dz  z  dz  k(  sJ t        t              j                  dt        | d      dt        z  t        dz  z  d	z  k(  sJ y )Nr   r   rk   rm   ry   r  rl   rn   r  #   r|   r  ro   r{   )r&   r   r9   r   r   r8   r  )t4s    r   test_asec_seriesr  L  s   7>>!Q"	#a&1SV8a1fQh&1QT"4
A#ad(2+	1QT	$	')*1a4	11 1 1 
a		Q	"BAad27q!R+r!tAqDy|;;;r   c            
      "
   t        t              t        u sJ t        d      t        dz  k(  sJ t        d      t         dz  k(  sJ t        t              dk(  sJ t        t               dk(  sJ t        t              dk(  sJ t        d      t        u sJ t        t        d            dt        z   k(  sJ t        t        d            dt        z   k(  sJ t        t        d	            d	dt        z  z
  k(  sJ t        t         t        t                    sJ t        t         t        t                    sJ t        dt        d      z        t        dz  k(  sJ t        t        t        t        d
d      z              t         dz  k(  sJ t        t        ddt        d      z  dz  z               t        dz  k(  sJ t        t        ddt        d      z  dz  z                t         dz  k(  sJ t        d      t         d	z  k(  sJ t        t        ddt        d      z  z                t         dz  k(  sJ t        t        ddt        d      z  z
              t        t        dd      z  k(  sJ t        dt        d      z         t        dz  k(  sJ t        t        d      t        d	      z
        t        t        dd      z  k(  sJ t        t              j                  t              dt        dz  t        ddt        dz  z  z
        z  z  k(  sJ t        t              j                  t              t         t        t        ddt        dz  z  z
        t        t        z  z         z  k(  sJ t        t              j                  t              t        dt        z        k(  sJ t        t              j                  t               t!        dt        z         t        dz  z   k(  sJ t        t              j                  t"              t#        t        t        dz  dz
               t        dz  z   t        t        dz        z  t        z  k(  sJ t        t              j                  t$              t%        dt        t        dz  dz
        z         t        dz  z   t        t        dz        z  t        z  k(  sJ t        t              j                  t&              t'        t               t        dz  z   k(  sJ t)        t*        d        y )Nrh   rk   ri   r   ry   ro   rm   r   rn   r   rl   rj   r|   rp   r{   r~   c                  >    t        t              j                  d      S r   )r%   r   r   r   r   r   r   ztest_acsc.<locals>.<lambda>w  rF  r   )r%   r   r   r   r   r,   r>   r   r-   r"   r   r   r   r   r   r'   r#   r(   r$   r&   rG   r?   r   r   r   	test_acscr  U  s    97bd??8s1u8q==9>>9>>7c>>A<27"""A<27"""A<1qt8###T3q6"""T3q6"""$q'	?bd"""BxA&'(RCE111Q471_%&"Q$...a!DG)A+o&&'B3q50008s1ua!DG)m$$%"Q...Q47]#$8Aq>(9999DG2%%%Q$q'!"b"b)9&99997<<?b!Q$tA!Q$J'7"788887??3A2c$q1QT6z*:QqS*@&A#AAAA7??4 D1I---7??4 T!A#YJA$55557??4 
tAqD1H~
	A	%tAqDz1!34 4 47??4 d1T!Q$(^+;&<%<r!t%CT!Q$Z$OPQ$QQQQ7??4 T!WHr!tO333
78r   c                     t        t              j                  t              t        t              k(  sJ t        t              j                  t              t        t              k(  sJ t        t              j                  t
              dt        z  t        t        t        z        t        t         t        z        z
  z  k(  sJ t        t              j                  t              dt        t              z  k(  sJ t        t              j                  t              t        t        dz        dz  dz   dt        t        dz        z  z  k(  sJ t        t              j                  t              t        t        dz        dz  dz   dt        t        dz        z  z  k(  sJ t        t              j                  t              dt        t        t        dz  z
  d      z  k(  sJ t        t              j                  t              t        t         t        dz  z   d      k(  sJ t        dt        t        t        t                     z
        j                  t              dt        t         dz  dz
  t        t        t        t        t              z        z   t        t        t         dz  t        t        t        t              z  z   d      z  z   d      z  k(  sJ t        t              j                  t              t	        d      t	        t        t        z        t        t        j                  t              z  z  k(  sJ t        t              j                  t              j!                  t        d      t        d      k(  sJ y )Nrk   rh   Fr   ri   r   )r,   r   r   r   r"   r   r   r.   r0   r+   r*   r   r-   r1   r   r   r   r   r   r   test_csc_rewriter  z  sr   q6>>##a&(((q6>>$3q6)))q6>>#!A#s1Q3x#qbd)';"<<<<q6>>#!CF(***q6>>#3qs8Q;?Qs1Q3xZ"@@@@q6>>#3qs8Q;?Qs1Q3xZ"@@@@q6>>#!CBqD5$A"AAAAq6>>##qb2a4i%"@@@@ q31~&&'//4c2#a%!)c!GAqM/22CA'!Q-/%@@AKPR RR R R q6>>'"d1gtBqDz'!&&!:L/L&MMMMq6>>'"''1-Q777r   c                  ^   t        dt        z        j                  t              t        k(  sJ t        t        dz         j                  t              t        dz  k(  sJ t        t        dz
        j                  t              t         dz  k(  sJ t        t              j                  t        d      t        t        t              z  t        dz  z   t        t        d      z  z
  k(  sJ t        t              j                  t        d      t         t        t              z  dt        z  dz  z
  t        t        d      z  z   k(  sJ t        t        t        z  dz         j                  t        d      t        d      k(  sJ t        t         t        z  dz         j                  t        d      t        t        d      z
  k(  sJ t        t        t        z  dz
        j                  t        d      t         t        d      z
  k(  sJ t        t         t        z  dz
        j                  t        d      t        d       k(  sJ t        t         t        dz  z  t        z   t        d      dz  z
        j                  t        d      t         dz  t        t        t        d      dz         z  z   k(  sJ t        t         t        dz  z  t        z   t        d      dz  z
        j                  t        d      t         dz  t        t        t        d      dz         z  z   k(  sJ y )Nrh   rk   r?  ri   ry   rP  r  )r%   r   r   r   r   r   r   r"   r   r   r   test_acsc_leading_termr    s   !9$$Q'1,,,A;&&q)RT111A;&&q)bSU2227""11"-3q6BqD1SV81KKKK7""12".1"SV)ad1f2DqQx2OOOO!c	?**11*5cBBB1s
++AA+6"tCy.HHH!c	?**11*5"tDz9IIII1s
++AA+649*DDD1a4!ad1f$%55aa5@RCEAcRVWXRY\]R]N^L^D^^^^1a4!ad1f$%55ab5AbSUQsSWXYSZ]^S^O_M_E____r   c                     t        t              j                  t        dd      t         t	        d      z  t
        dz  z   t        t	        t              z  z   t        t        dz  z  dz  z   dt        z  t        dz  z  dz  z   dt        z  t        dz  z  d	z  z   d
t        z  t        dz  z  dz  z   t        t        dz        z   k(  sJ t        t              j                  dt              } | dt        z  t        dz  z  d	z  k(  sJ t        t              j                  dt        | d      d
t        z  t        dz  z  dz  k(  sJ y )Nr   r   rk   rm   ry   r  rl   rn   r  r  r|   r  )r%   r   r9   r   r   r   r8   r  )t6s    r   test_acsc_seriesr    s   7>>!Q"	
3q6	BqD1SV8#a1fQh.
A#ad(2+	!AqD	$&(d1a4in	578Aw	?? ? ? 
a		Q	"B1QT"7q!R+r!tAqDy~===r   c                     t        t        dz         j                  t        dd t              t        d       t        z   t        d      t        z  t        z  dz  z   t        d      t        z  t        dz  z  dz  z
  t        d      t        z  t        dz  z  dz  z   t        t        dz        z   k(  sJ t        t        dz         j                  t        dd t               t        d      t        d      t        z  t        z  dz  z
  t        d      t        z  t        dz  z  dz  z   t        d      t        z  t        dz  z  dz  z
  t        t        dz        z   k(  sJ t        t        dz
        j                  t        dd t              t        d       t        d      t        z  t        z  dz  z
  t        d      t        z  t        dz  z  dz  z
  t        d      t        z  t        dz  z  dz  z
  t        t        dz        z   k(  sJ t        t        dz
        j                  t        dd t               t        d      t        z
  t        d      t        z  t        z  dz  z   t        d      t        z  t        dz  z  dz  z   t        d      t        z  t        dz  z  dz  z   t        t        dz        z   k(  sJ t        dt        z         j                  t        dd       t        dz  t        d      t        t               z  z
  t        d      t         t        d      dz  z  z  dz  z
  dt        d      z  t         t        d      dz  z  z  d	z  z
  t        t        dz        z   k(  sJ t        d
t        z         j                  t        dd       t         dz  t        d      t        t              z  z   t        d      t        t        d      dz  z  z  dz  z   dt        d      z  t        t        d      dz  z  z  d	z  z   t        t        dz        z   k(  sJ t        t        t                    j                  t        dd       t        dz  t        d      t        t               z  z
  t        d      t         t        d      dz  z  z  dz  z   t        d      t         t        d      dz  z  z  dz  z
  t        t        dz        z   k(  sJ t        t        t                     j                  t        dd       t         dz  t        d      t        t               z  z   t        d      t         t        d      dz  z  z  dz  z
  t        d      t         t        d      dz  z  z  dz  z   t        t        dz        z   k(  sJ y )Nrk   rm   ry   r   r   rh   r~   rl   r  ri   rn   r   )	r'   r   _eval_nseriesr   r   r"   r8   r   r   r   r   r   test_asin_nseriesr    s   A;$$Q43Qx"}GAIaKM8GAIadN1$8%'+AwqyA~b'889;<QT78C C C CA;$$Q4!4QGAIaKM9GAIadN1$9%'+AwqyA~b'899;<QT79C C C CA;$$Q43QxGAIaKM8GAIadN1$8%'+AwqyA~b'889;<QT78C C C CA;$$Q4!4Q"GAIaKM9GAIadN1$9%'+AwqyA~b'899;<QT79C C C C A;$$Q40BqD4748;K4KGaR1Q46N25 !$q'	A21a. 8 <5=?@Aw5G G G GQ<%%aD1bSUT!WT!W_5LGA!QK6tAwYq1Q46{236679:1a46A A A AA<%%aD1RTDGD!H<L5LGaR1Q46N16#Awad1f~5c96:<=adG6D D D DQ=&&q!T2rc!ed1gdA2h>N6NGaR1Q46N17#Awad1f~5c97:<=adG7D D D Dr   c                  
   t        t        dz         j                  t        dd t              t        d       t	        d      t        z  t        z  dz  z
  t	        d      t        z  t        dz  z  dz  z   t	        d      t        z  t        dz  z  dz  z
  t        t        dz        z   k(  sJ t        t        dz         j                  t        dd t               t        d      t	        d      t        z  t        z  dz  z   t	        d      t        z  t        dz  z  dz  z
  t	        d      t        z  t        dz  z  dz  z   t        t        dz        z   k(  sJ t        t        dz
        j                  t        dd t              t        d      t	        d      t        z  t        z  dz  z   t	        d      t        z  t        dz  z  dz  z   t	        d      t        z  t        dz  z  dz  z   t        t        dz        z   k(  sJ t        t        dz
        j                  t        dd t               t        d       dt        z  z   t	        d      t        z  t        z  dz  z
  t	        d      t        z  t        dz  z  dz  z
  t	        d      t        z  t        dz  z  dz  z
  t        t        dz        z   k(  sJ t        dt        z         j                  t        dd       t	        d      t	        t               z  t	        d      t         t        d      dz  z  z  dz  z   dt	        d      z  t         t        d	      dz  z  z  d
z  z   t        t        dz        z   k(  sJ t        dt        z         j                  t        dd       t        t	        d      t	        t              z  z
  t	        d      t        t        d      dz  z  z  dz  z
  dt	        d      z  t        t        d	      dz  z  z  d
z  z
  t        t        dz        z   k(  sJ t        t        t                    j                  t        dd       t	        d      t	        t               z  t	        d      t         t        d      dz  z  z  dz  z
  t	        d      t         t        d	      dz  z  z  dz  z   t        t        dz        z   k(  sJ t        t        t                     j                  t        dd       t        t	        d      t	        t               z  z
  t	        d      t         t        d      dz  z  z  dz  z   t	        d      t         t        d	      dz  z  z  dz  z
  t        t        dz        z   k(  sJ y )Nrk   rm   ry   r   r   rj   rh   r~   rl   r  ri   rn   r   )	r#   r   r  r   r"   r8   r   r   r   r   r   r   test_acos_nseriesr    s   A;$$Q43Qx$q'!)A+a-7OGAIadN18AwqyA~b(8)+,QT783 3 3 3A;$$Q4!4Q$q'!)A+a-8OGAIadN19AwqyA~b(9)+,QT793 3 3 3A;$$Q43tBx$q'!)A+a-7OGAIadN18AwqyA~b(8)+,QT783 3 3 3A;$$Q4!4b	AbD8HGAIaKM9GAIadN1$9%'+AwqyA~b'899;<QT79C C C C A;$$Q40DGD!H4DGaR1Q46N25 !$q'	A21a. 8 <5=?@Aw5G G G GQ<%%aD1R$q'$q'/5IGA!QK6tAwYq1Q46{236679:1a46A A A AA<%%aD1T!WT1"X5EGaR1Q46N16#Awad1f~5c96:<=adG6D D D DQ=&&q!T2b4748;K6KGaR1Q46N17#Awad1f~5c97:<=adG7D D D Dr   c                  4   t        t        dt        z  z         j                  t        dd d      t        t	        d      z  t        dz  z
  dt        z  t        dz  z  dz  z
  dt        dz  z  dz  z   t        t        dz        z   k(  sJ t        t        dt        z  z         j                  t        dd d      t        t	        d      z  t        z
  t        dz  z
  dt        z  t        dz  z  dz  z
  dt        dz  z  dz  z   t        t        dz        z   k(  sJ t        t        dt        z  z
        j                  t        dd d      t         t	        d      z  t        z   t        dz  z
  dt        z  t        dz  z  dz  z   dt        dz  z  dz  z   t        t        dz        z   k(  sJ t        t        dt        z  z
        j                  t        dd d      t         t	        d      z  t        dz  z
  dt        z  t        dz  z  dz  z   dt        dz  z  dz  z   t        t        dz        z   k(  sJ t        dt        z        j                  t        dd d      t        dz  t        z
  t        t        dz        z   k(  sJ t        dt        z        j                  t        dd d      t         dz  t        z
  t        t        dz        z   k(  sJ t        t        t        z         j                  t        dd       t        t        d      z  dz  t        dz  z   t        t        t              z  dz  z
  t        dz  z   t        t        dz  z  d	z  z   t        dz  d
z  z
  t        t        dz        z   k(  sJ t        t        t        z
        j                  t        dd       t         t        d      z  dz  t        dz  z   t        t        t              z  dz  z   t        dz  z   t        t        dz  z  d	z  z
  t        dz  d
z  z
  t        t        dz        z   k(  sJ y )Nrk   rm   rh   ry   r   r   Q   ri      0   )r(   r   r   r  r   r8   r   r   r   r   r   test_atan_nseriesr    s   AaC=&&q!T1558ac9IaC1HQJ:AqD:1g:& & & &AaC=&&q!T26!E!H*r/aC;
A#ad(1*;!Q$wrz;"$%adG;, , , ,AaC=&&q!T15!E!Hr9IaC:
A#ad(1*:!Q$wrz:"$%adG:, , , ,AaC=&&q!T261"U1X+!:KaC1HQJ;AqD;1g;& & & &!9""1aq1RTAX!Q$5GGGG!9""1ar2rc!eai!AqD'6IIIIA;$$Q40Ac!fHQJA4Ec!fHQJ515Avby5!#$a475+-.q!tW55 5 5 5A;$$Q40QBs1vIaK"Q$4Fc!fHQJ515Avby5!#$a475+-.q!tW55 5 5 5r   c                   	   t        t        t        d      dz  t        z  z         j	                  t        dd d      t         t        t        d      dz        z  t        z   dt        z  dz  z
  dt        z  t        dz  z  dz  z   dt        dz  z  dz  z   t        t        dz        z   k(  sJ t        t        t        d      dz  t        z  z         j	                  t        dd d	      t         t        t        d      dz        z  dt        z  dz  z
  dt        z  t        dz  z  dz  z   dt        dz  z  dz  z   t        t        dz        z   k(  sJ t        t        t        d      dz  t        z  z
        j	                  t        dd d      t        t        t        d      dz        z  dt        z  dz  z
  dt        z  t        dz  z  dz  z
  dt        dz  z  dz  z   t        t        dz        z   k(  sJ t        t        t        d      dz  t        z  z
        j	                  t        dd d	      t        t        t        d      dz        z  t        z
  dt        z  dz  z
  dt        z  t        dz  z  dz  z
  dt        dz  z  dz  z   t        t        dz        z   k(  sJ t        t              j	                  t        dd d      t        dz  t        z
  t        t        dz        z   k(  sJ t        t              j	                  t        dd d	      t         dz  t        z
  t        t        dz        z   k(  sJ t        t        t        z         j	                  t        dd       t         t        d      z  dz  t        dz  z   t        t        t              z  dz  z   t        dz  z
  t        t        dz  z  d
z  z
  t        dz  dz  z   t        t        dz        z   k(  sJ t        t        t        z
        j	                  t        dd       t        t        d      z  dz  t        dz  z   t        t        t              z  dz  z
  t        dz  z
  t        t        dz  z  d
z  z   t        dz  dz  z   t        t        dz        z   k(  sJ y )Nrh   rk   rm   ry   r|   r   r:  r	  ri   r
  r  )	r$   r   r   r   r  r   r   r8   r   r   r   r   test_acot_nseriesr    s   AaDF1H++Aq$:qbqtAv>N?	
1Q?1QT!?!!Q$hrk?*,-adG?4 4 4 4AaDF1H++Aq$;r%!Q-?OaCE@
aC1HQJ@QT"@%'(Aw@/ / / /AaDF1H++Aq$:aad1foaCE?
aC1HQJ?QT"?%'(Aw?/ / / /AaDF1H++Aq$;qqtAv@	
1Q@1QT!@!!Q$hrk@*,-adG@4 4 4 47  AtQ/2a4!8a1g3EEEE7  AtR0RCEAI!Q$4GGGGA;$$Q40QBs1vIaK"Q$4Fc!fHQJ515Avby5!#$a475+-.q!tW55 5 5 5A;$$Q40Ac!fHQJA4Ec!fHQJ515Avby5!#$a475+-.q!tW55 5 5 5r   c                     t        t        t        d      dz  z         j                  t        dd t              t        t        d      dz        dt        d      z  t        z  t        z  dz  z
  dt        d      z  t        z  t        dz  z  dz  z   dt        d      z  t        z  t        dz  z  dz  z
  t        t        dz        z   k(  sJ t        t        t        d      dz  z         j                  t        dd t               t        t        d      dz         dt        d      z  t        z  t        z  dz  z   dt        d      z  t        z  t        dz  z  dz  z
  dt        d      z  t        z  t        dz  z  dz  z   t        t        dz        z   k(  sJ t        t        t        d      dz  z
        j                  t        dd t              t        t        d       dz         dt        z  z   dt        d      z  t        z  t        z  dz  z   dt        d      z  t        z  t        dz  z  dz  z   dt        d      z  t        z  t        dz  z  dz  z   t        t        dz        z   k(  sJ t        t        t        d      dz  z
        j                  t        dd t               t        t        d       dz        dt        d      z  t        z  t        z  dz  z
  dt        d      z  t        z  t        dz  z  dz  z
  dt        d      z  t        z  t        dz  z  dz  z
  t        t        dz        z   k(  sJ t        dt        z         j                  t        dd       t        d      t        t              z  dt        d      z  t        t        d      dz  z  z  d	z  z
  d
t        d      z  t        t        d      dz  z  z  dz  z   t        t        dz        z   k(  sJ t        dt        z         j                  t        dd       t        t        d      t        t               z  z
  dt        d      z  t         t        d      dz  z  z  d	z  z   d
t        d      z  t         t        d      dz  z  z  dz  z
  t        t        dz        z   k(  sJ t        t        t                    j                  t        dd       t        d      t        t              z  t        d      t        t        d      dz  z  z  dz  z
  t        d      t        t        d      dz  z  z  dz  z   t        t        dz        z   k(  sJ t        t        t                     j                  t        dd       t        t        d      t        t              z  z
  t        d      t        t        d      dz  z  z  dz  z   t        d      t        t        d      dz  z  z  dz  z
  t        t        dz        z   k(  sJ y Nrh   rk   rm   ry   r|   r   r
  rl   r~   +   r  ri   rn   r   )	r&   r   r   r  r   r"   r8   r   r   r   r   r   test_asec_nseriesr    sM   AaDF
))!Qa8D1aLd1gIaKM!O=Qik!Q$&q(=)+-d1g:a<1+<Q+>=?AB1a4=I I I IAaDF
))!Qqb9d1Q46l]d1gIaKM!O>Qik!Q$&q(>)+-d1g:a<1+<Q+>>?AB1a4>I I I IAaDF
))!Qa8T1Q4%']NbD=	T!W9Q;q=?=tAwYq[A-a/=024T!W*Q,q!t2CA2E=FHI!Q$=P P P PAaDF
))!Qqb9T1Q4%']d1gIaKM!O>Qik!Q$&q(>)+-d1g:a<1+<Q+>>?AB1a4>I I I I A;$$Q40DGDGOd1gIa!A$q&k"5!$q'z!ad1f+5c95:<=adG5D D D DQ<%%aD1R$q'$r(:J5Jd1gIrQqT!VnR6 "$T!W*qbAaDF^";C"?6@BCAqD'6J J J JA<%%aD1T!WT!W_GA!QK6 GA!QK/364671g6> > > >Q=&&q!T2b4747?6JGA!QK7 GA!QK/374671g7> > > >r   c                     t        t        t        d      dz  z         j                  t        dd t              t        t        d      dz        dt        d      z  t        z  t        z  dz  z   dt        d      z  t        z  t        dz  z  dz  z
  dt        d      z  t        z  t        dz  z  dz  z   t        t        dz        z   k(  sJ t        t        t        d      dz  z         j                  t        dd t               t        t        d      dz         t        z   dt        d      z  t        z  t        z  dz  z
  dt        d      z  t        z  t        dz  z  dz  z   dt        d      z  t        z  t        dz  z  dz  z
  t        t        dz        z   k(  sJ t        t        t        d      dz  z
        j                  t        dd t              t        t        d      dz        t        z
  dt        d      z  t        z  t        z  dz  z
  dt        d      z  t        z  t        dz  z  dz  z
  dt        d      z  t        z  t        dz  z  dz  z
  t        t        dz        z   k(  sJ t        t        t        d      dz  z
        j                  t        dd t               t        t        d      dz         dt        d      z  t        z  t        z  dz  z   dt        d      z  t        z  t        dz  z  dz  z   dt        d      z  t        z  t        dz  z  dz  z   t        t        dz        z   k(  sJ t        dt        z         j                  t        dd       t        dz  t        d      t        t              z  z
  dt        d      z  t        t        d      dz  z  z  d	z  z   d
t        d      z  t        t        d      dz  z  z  dz  z
  t        t        dz        z   k(  sJ t        dt        z         j                  t        dd       t         dz  t        d      t        t               z  z   dt        d      z  t         t        d      dz  z  z  d	z  z
  d
t        d      z  t         t        d      dz  z  z  dz  z   t        t        dz        z   k(  sJ t        t        t                    j                  t        dd       t        dz  t        d      t        t              z  z
  t        d      t        t        d      dz  z  z  dz  z   t        d      t        t        d      dz  z  z  dz  z
  t        t        dz        z   k(  sJ t        t        t                     j                  t        dd       t         dz  t        d      t        t              z  z   t        d      t        t        d      dz  z  z  dz  z
  t        d      t        t        d      dz  z  z  dz  z   t        t        dz        z   k(  sJ y r  )	r%   r   r   r  r   r"   r8   r   r   r   r   r   test_acsc_nseriesr    sh   AaDF
))!Qa8D1aLd1gIaKM!O=Qik!Q$&q(=)+-d1g:a<1+<Q+>=?AB1a4=I I I IAaDF
))!Qqb9d1Q46l]>	
471Qq>T!W9Q;q!t+A->.0247
1QT0A!0C>DFG1g>N N N NAaDF
))!Qa8D1aL2<Md1gIaKM!O=Qik!Q$&q(=)+-d1g:a<1+<Q+>=?AB1a4=I I I IAaDF
))!Qqb9d1Q46l]d1gIaKM!O>Qik!Q$&q(>)+-d1g:a<1+<Q+>>?AB1a4>I I I I A;$$Q40BqD4747?4Jd1gIa!A$q&k"5!$q'z!ad1f+5c95:<=adG5D D D DQ<%%aD1bSUT!WT1"X=M5Md1gIrQqT!VnR6 "$T!W*qbAaDF^";C"?6@BCAqD'6J J J JA<%%aD1RTDGDGO5KGA!QK6 GA!QK/364671g6> > > >Q=&&q!T2rc!ed1gd1go6MGA!QK7 GA!QK/374671g7> > > >r   c                      t        dd      } t        |       j                  J t        |       j                  J t	        |       j                  J y )NrP   TrK   )r   r.   is_irrationalr*   r0   rP   s    r   test_issue_8653r    sP    sD!Aq6'''q6'''q6'''r   c                  X    t        ddd      } t        | dz
        j                  du sJ y )NrP   T)rL   rO   rh   )r   r(   r]  r  s    r   test_issue_9157r  "  s,    sD40AA;%%---r   c                  N   t        d      \  } t              j                         dt        z  k(  sJ t	              j                         dt        z  k(  sJ t              j                         t        k(  sJ t              j                         t        k(  sJ t              j                         dt        z  k(  sJ t              j                         dt        z  k(  sJ t        dz        j                         t        k(  sJ t        dz  dz
        j                         t        dz  k(  sJ t	        dz        j                         t        t        dd      z  k(  sJ t	        | z        j                        dt        z  t        |       z  k(  sJ t        dz  | z  dt        z  z         j                  |       dt        z  t        dz        z  k(  sJ t        dz        j                  |       t        j                  u sJ t        t        fd       y )Nzx, yrk   rm   rn   ro   ry   c                  >    t         dz        j                         S r   )r.   periodr  s   r   r   z"test_trig_period.<locals>.<lambda>6  s    AqD	(8(8(; r   )r   r.   r  r   r*   r0   r+   r-   r,   r   r   r   r   rG   NotImplementedError)r   r   s    @r   test_trig_periodr  '  s   6?DAqq6==?ad"""q6==?ad"""q6==?b   q6==?b   q6==?ad"""q6==?ad"""qs8??"""qsQw< BqD(((Av;2hq!n#4444qs8??12c!f,,,qs1uqt|##A&!B$s1Q3x-777qs8??1'''
 ;<r   c                      t        t              j                  t              t        t              k(  sJ t        t              j                  t              t        t              k(  sJ y r  )r.   r   r   r"   r   r   r   r   test_issue_7171r!  9  s@    q6>>$3q6)))q6>>##a&(((r   c                  <   t        dd      \  } }t        dt        dt        z  |z  d      ft	        t        |z        t        |z  z  df      }t        dt        dt        z  |z  d      ft        t        |z        df      }|j                  t
              |k(  sJ y )Nzw, kTrI   rh   rk   r   )r   rC   rB   r   r.   r/   r   )wr   Fsolns       r   test_issue_11864r&  >  s    6%DAq1b2am$s2a4y"Q$'7&>?AaAbDFA'$r!t*d);<D99T?d"""r   c                     t        ddd      } t        |       j                  J t        |       j                  J t	        |       j                  du sJ t        |       j                  J t        |       j                  J t        |       j                  du sJ t        t              j                  J t        t              j                  J t        t              j                  J t        t              j                  J t        t              j                  J t        t              j                  J t        t              j                  J t        t              j                  J t        t              j                  du sJ t        t              j                   du sJ t#        t              j                  du sJ t#        t              j                   du sJ y )Nre   FTr  )r   r.   r   r*   r0   r-   r,   r+   r'   rM   rP   r&   r#   r%   r(   r7  r[  r$   r  s    r   test_real_assumptionsr(  D  s   st,Aq6>>!!!q6>>!!!q6>>U"""q6>>!!!q6>>!!!q6>>U"""7??"""7??"""7??"""7??"""7??"""7??"""7??"""7??"""7$&&&7$&&&7$&&&7$&&&r   c            	      J   t        t        d            dt        z   k(  rCt         dz  dt        z   cxk  rt        dz  k  r"n J t        d      t        dt        z         k(  sJ t        t        d            dt        dz  z   k(  rIt         dz  dt        dz  z   cxk  rt        dz  k  r%n J t        d      t        dt        dz  z         k(  sJ t	        t        d            t         dz  dz   k(  r@dt         dz  dz   cxk  r	t        k  r&n J t        d      t        t         dz  dz         k(  sJ t	        t        d            dt        z  dz   k(  r>ddt        z  dz   cxk  r	t        k  r%n J t        d      t        dt        z  dz         k(  sJ t	        t        d            ddt        z  z   k(  r>dddt        z  z   cxk  r	t        k  r%n J t        d      t        ddt        z  z         k(  sJ t        t        d	            d
t        z  d	z   k(  rIt         dz  d
t        z  d	z   cxk  rt        dz  k  r%n J t        d	      t        d
t        z  d	z         k(  sJ t        t        d            d
t        z  dz   k(  rIt         dz  d
t        z  dz   cxk  rt        dz  k  r%n J t        d      t        d
t        z  dz         k(  sJ t        t        d            dt        t        dd      z  z   k(  r]t         dz  dt        t        dd      z  z   cxk  rt        dz  k  r/n J t        d      t        dt        t        dd      z  z         k(  sJ t        t        d            d
t        z  dz   k(  rIt         dz  d
t        z  dz   cxk  rt        dz  k  r%n J t        d      t        d
t        z  dz         k(  sJ t        t        d            dt        t        dd      z  z   k(  r]t         dz  dt        t        dd      z  z   cxk  rt        dz  k  r/n J t        d      t        dt        t        dd      z  z         k(  sJ t        t        d            ddt        z  z   k(  r>dddt        z  z   cxk  r	t        k  r%n J t        d      t        ddt        z  z         k(  sJ t        t        d            dt        t        dd      z  z   k(  rRddt        t        dd      z  z   cxk  r	t        k  r/n J t        d      t        dt        t        dd      z  z         k(  sJ t        t        d            dt        z  dz   k(  rIt         dz  dt        z  dz   cxk  rt        dz  k  r%n J t        d      t        dt        z  dz         k(  sJ t        t        d            t        t        dd      z  dz   k(  r]t         dz  t        t        dd      z  dz   cxk  rt        dz  k  r/n J t        d      t        t        t        dd      z  dz         k(  sJ y )Nrk   rj   r   r   r   irp   rz   r{   r   r~   irr   r   ir   r   r   rm   ir   r   r   r   )r'   r.   r   r*   r#   r(   r0   r+   r   r$   r&   r-   r,   r%   r   r   r   test_issue_14320r+  Y  sF   A<27"Ab(@BqD(@\\c!fPSTVY[T[P\F\\\A<219$2#a%219*D1*Dbb#a&TWXZ]_`a]aXaTbJbbbA<B3q519$!s1uqy*>B*>\\CFcSURUVWRWZ[R[nD\\\B=BrEBJ&AB,Ar,Aaas2wRUVXY[V[^`V`RaGaaaB=C"R%K'Q#2+-C-CddRTWX[^`ac^cXcTdIdddB=BrEBJ&RCEBrEBJ,EA,Eee3r7VYZ\]_Z_bdZdVeKeeeB=BrEBJ&RCEBrEBJ,EA,Eee3r7VYZ\]_Z_bdZdVeKeeeB=C"Xa^"333"Qr(STVW.GXAX9_[]^_[_9_  M  Mehikelpstwz|  ~F  GH  JK  ~L  {L  uL  qM  fM  M  MB=BrEBJ&RCEBrEBJ,F"Q$,FffCPRGWZ[]^`[`ce[eWfLfffB=C"Xb!_"4442#a%#8TVXY?HZBZ:b^`ab^b:b  Q  Qhklnhosvwz}  AI  JL  NO  AP  ~P  xP  tQ  iQ  Q  QB=C!B$J&Aqt,Ar,Aaas2wRUVY\]^`\`V`RaGaaaB=C"Xa^"333cBxPQST~DU>U9[Y[9[  I  Iadegahlopsvx  zB  CD  FG  zH  wH  qH  mI  bI  I  IB=BrEBJ&RCERURZ,G2a4,GggSQSWX[\^_a\adf\fXgMgggB=BxA.33"Q"XbRS_BTWYBY9a]_`a]a9a  O  Ogjkmgnruvx  zB  CE  GH  zI  wI  LN  wN  sO  hO  O  O  hOr   c                     t        dt        z  dz         t        d      k(  sJ t        dt        z  dz
        t        d      k(  sJ t        t        dz         t        d       k(  sJ t        t        dz
        t        d       k(  sJ t        dt        z  dz         t        d      k(  sJ t        dt        z  dz
        t        d       k(  sJ t        t        dz         t        d       k(  sJ t        t        dz
        t        d      k(  sJ t        d      } t        t        dz  | z         t        |       k(  sJ t        t        dz  | z
        t        |       k(  sJ t        t        t	        dd      z  | z         t        |        k(  sJ t        t        t	        dd      z  | z
        t        |        k(  sJ t        t        dz  | z
        t        |       k(  sJ t        t        dz  | z         t        |        k(  sJ t        t        t	        dd      z  | z         t        |       k(  sJ t        t        t	        dd      z  | z
        t        |        k(  sJ y )Nrk   r   rz   r   ry   )r-   r   r,   r   r   r  s    r   test_issue_14543r-  k  s   qtby>SW$$$qtby>SW$$$rBw<CG8###rBw<CG8###qtby>SW$$$qtby>c"gX%%%rBw<CG8###rBw<3r7"""sAr!tax=CF"""r!tax=CF"""r(1a. 1$%#a&000r(1a. 1$%#a&000r!tax=CF"""r!tax=SVG###r(1a. 1$%Q///r(1a. 1$%#a&000r   c                      t        t        t        t        t        d      z  z   z        } | j                         | dfk(  sJ y )Nrh   r   )r(   r   r0   r  )r  s    r   test_as_real_imagr/    s:     1qQx< !D4)+++r   c                  z    t        t        j                  t        dz  dz   z        } | j	                         dk(  sJ y )Nrm   g      ?r|   )r*   r   r   r   r  )e3s    r   test_issue_18746r2    s1    	QTT1Q39	B99;!r   c            	      h   t        t        t        dz        t        t              t        dz  k(  sJ t        t        t        dz  dz
        t        t              t        dz  k(  sJ t        t        t        dt        z        t        dt        z        z        t        t              t        dz  k(  sJ y )Nrk   rh   )r7   r(   r   r   r   r   r   r   r   test_issue_25833r4    s    adQ#r!t+++adQhB'2a4///c!Q$iAaC()1b1RT999r   c                     t        t        t              t        z        j                  t              t        dz  k(  sJ t        t        d        t        t        t              t        z        j                  t              t        dz  k(  sJ t        t        d        t        t        t              t        z        j                  t              dk(  sJ t        t        d        t        t        t              t        z        j                  t              t        dz  k(  sJ t        t        d        t        t        t              t        z        j                  t              dk(  sJ t        t        d        t        t        t              t        z        j                  t              t        dz  k(  sJ t        t        d	        y )
Nrm   c                  ^    t        t        dt        z              j                  t              S r  )r(   r   r   r   r   r   r   r   z"test_issue_25847.<locals>.<lambda>      d3qs8n<<Q? r   rk   c                  ^    t        t        dt        z              j                  t              S r  )r'   r   r   r   r   r   r   r   z"test_issue_25847.<locals>.<lambda>  r7  r   r   c                  ^    t        t        dt        z              j                  t              S r  )r#   r   r   r   r   r   r   r   z"test_issue_25847.<locals>.<lambda>  r7  r   c                  ^    t        t        dt        z              j                  t              S r  )r$   r   r   r   r   r   r   r   z"test_issue_25847.<locals>.<lambda>  r7  r   c                  ^    t        t        dt        z              j                  t              S r  )r&   r   r   r   r   r   r   r   z"test_issue_25847.<locals>.<lambda>  r7  r   c                  ^    t        t        dt        z              j                  t              S r  )r%   r   r   r   r   r   r   r   z"test_issue_25847.<locals>.<lambda>  r7  r   )r(   r.   r   r   r   rG   r@   r'   r#   r$   r&   r%   r   r   r   test_issue_25847r=    s<   Aq>))!,1444
9?@ Aq>))!,1444
9?@ Aq>))!,111
9?@ Aq>))!,1444
9?@ Aq>))!,111
9?@ Aq>))!,1444
9?@r   c                  4
   t        t        t        z         j                  t        t              ddt        dz  z  z  dt        z  t        dz  z  z
  ddt        dz  z  z  z   t        t        dz  z  z   dt        z  z
  t
        dz  z   t        t        dz  t        t        f      z   k(  sJ t        t        t        z         j                  t        t               ddt        dz  z  z  dt        z  t        dz  z  z
  ddt        dz  z  z  z   t        t        dz  z  z   dt        z  z
  t
        dz  z
  t        t        dz  t        t         f      z   k(  sJ t        t        t        z
        j                  t        t              ddt        dz  z  z  dt        z  t        dz  z  z   ddt        dz  z  z  z   t        t        dz  z  z
  dt        z  z
  t
        dz  z   t        t        dz  t        t        f      z   k(  sJ t        t        t        z
        j                  t        t               ddt        dz  z  z  dt        z  t        dz  z  z   ddt        dz  z  z  z   t        t        dz  z  z
  dt        z  z
  t
        dz  z
  t        t        dz  t        t         f      z   k(  sJ t        t        t        z         j                  t        t              ddt        dz  z  z  dt        z  t        dz  z  z   ddt        dz  z  z  z
  t        t        dz  z  z
  dt        z  z   t        t        dz  t        t        f      z   k(  sJ t        t        t        z         j                  t        t               ddt        dz  z  z  dt        z  t        dz  z  z   ddt        dz  z  z  z
  t        t        dz  z  z
  dt        z  z   t        t        dz  t        t         f      z   k(  sJ t        t        t        z
        j                  t        t              ddt        dz  z  z  dt        z  t        dz  z  z
  ddt        dz  z  z  z
  t        t        dz  z  z   dt        z  z   t        t        dz  t        t        f      z   k(  sJ t        t        t        z
        j                  t        t               ddt        dz  z  z  dt        z  t        dz  z  z
  ddt        dz  z  z  z
  t        t        dz  z  z   dt        z  z   t        t        dz  t        t         f      z   k(  sJ y )	Nr   rl   rk   rm   ry   rh   r*  r
  )r(   r   r   r9   r   r   r8   r$   r   r   r   test_issue_23843r?    s   A;a$Qq!tVqs1a4x(?!Qq!tV*(LqQRTUQUv(UXYZ[X[([^`ab^b(befghkmgnqrtvpwex(xxxxA;a"%a1f!AqD)@1a1f:)MPQRSUVRVPV)VYZ[\Y\)\_abc_c)cfghilnhorsvxuxqyfz)zzzzA;a$Qq!tVqs1a4x(?!Qq!tV*(LqQRTUQUv(UXYZ[X[([^`ab^b(befghkmgnqrtvpwex(xxxxA;a"%a1f!AqD)@1a1f:)MPQRSUVRVPV)VYZ[\Y\)\_abc_c)cfghilnhorsvxuxqyfz)zzzz A;a$AadFac!Q$h(>AadF(KaPQSTPTf(TWXYZWZ(Z]^_`ce_fijlnho]p(ppppA;a"%Qq!tVqs1a4x)?!Qq!tV*)LqQRTUQUv)UXYZ[X[)[^_`adf`gjknpmpiq^r)rrrrA;a$AadFac!Q$h(>AadF(KaPQSTPTf(TWXYZWZ(Z]^_`ce_fijlnho]p(ppppA;a"%Qq!tVqs1a4x)?!Qq!tV*)LqQRTUQUv)UXYZ[X[)[^_`adf`gjknpmpiq^r)rrrrr   N)!sympy.calculus.accumulationboundsr   sympy.core.addr   r   r   r   sympy.core.modr   sympy.core.mulr   sympy.core.numbersr	   r
   r   r   r   r   r   r   sympy.core.powerr   sympy.core.singletonr   sympy.core.symbolr   r   $sympy.functions.elementary.complexesr   r   r   r   &sympy.functions.elementary.exponentialr   r   %sympy.functions.elementary.hyperbolicr   r   r   r   r   r    r!   (sympy.functions.elementary.miscellaneousr"   (sympy.functions.elementary.trigonometricr#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   sympy.functions.special.besselr1   r2   'sympy.functions.special.delta_functionsr3   sympy.matrices.denser4   sympy.polys.polytoolsr5   r6   sympy.series.limitsr7   sympy.series.orderr8   sympy.series.seriesr9   sympy.sets.fancysetsr:   sympy.sets.setsr;   r<   sympy.simplify.simplifyr=   sympy.core.exprr>   r?   r@   sympy.core.relationalrA   rB   $sympy.functions.elementary.piecewiserC   sympy.sets.setexprrD   sympy.testing.pytestrE   rF   rG   r   r   re   rH   r   r   rM   rP   rV  rW  rV   rX   rZ   rX  rY  r^   r`   rb   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(  r3  r8  r=  rA  rC  rG  rJ  rL  rN  rQ  rT  rc  rf  ri  rk  ru  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/  r2  r4  r=  r?  r   r   r   <module>r\     s   9  .   H H H   " / I I = _ _ _ 9Z Z Z Z 8 = ' / %   & ) 1 , % = ( : & 4 4 '
1a
3Tud#1
3
3CT"CT"D$DD)DD)T-T-UT*
3$D$$/|K~K4
8>%2I8
"$JfR0?
8D
1U8
e2P7
80 = =6
DU8
X1vn d d
	084 I I'E(U8
1&h.#b:[".9
)5XX"/69
4Ln	I9
T&G=R	A?:	I9T&"%!$
#(,(	6j*Z
$=$   LN LN^ H H j j$<)~8"8
>8B9@$]"<"9J8&`">D(D(5$5$>(>((.
=$)
#'*O$1.,
:A2sr   