
    \h`                       S SK Jr  S SKJr  S SKJrJr  S SKJr  S SK	J
r
  S SKJrJrJrJrJrJrJrJr  S SKJr  S SKJr  S S	KJrJr  S S
KJrJrJrJr  S SK J!r!J"r"  S SK#J$r$J%r%J&r&J'r'J(r(J)r)J*r*  S SK+J,r,  S SK-J.r.J/r/J0r0J1r1J2r2J3r3J4r4J5r5J6r6J7r7J8r8J9r9J:r:J;r;  S SK<J=r=J>r>  S SK?J@r@  S SKAJBrB  S SKCJDrDJErE  S SKFJGrG  S SKHJIrI  S SKJJKrK  S SKLJMrM  S SKNJOrOJPrP  S SKQJRrR  S SKSJTrT  S SKJUrUJVrV  S SKWJXrXJYrY  S SKZJ[r[  S SK\J]r]  S SK^J_r_J`r`Jara  \" S5      u  rbrcrd\" S S!S"9re\" S#S!S$9u  rfrg\" S%S!S&9rh\" S'S!S(9ri\" S%S!S)9rj\" S'S!S*9rk\" S+S!S,9rl\" S-S!S.9rm\" S/S!S09rn\" S-S!S19ro\" S/S!S29rp\" S3S!S49rq\" S5S!S69rr\" S7S!S!S89rsS9 rtS: ruS; rvS< rwS= rxS> ryS? rzS@ r{SA r|SB r}SC r~SD rSE rSF rSG rSH rSI rSJ rSK r\`SL 5       rSM rSN rSO rSP rSQ rSR r\_SS 5       rST rSU r\`SV 5       rSW rSX rSY rSZ rS[ rS\ rS] rS^ rS_ rS` rSa rSb rSc rSd rSe rSf rSg rSh rSi rSj rSk rSl rSm rSn rSo rSp rSq rSr rSs rSt rSu rSv rSw rSx rSy rSz rS{ rS| r\`S} 5       r\`S~ 5       r\`S 5       rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rg)    )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                  X   [        S5      u  p[        SSS9n[        R                  [        S5      :X  d   e[        [        5      [        L d   e[        [
        5      [        L d   e[        [        5      [        SS5      :X  d   e[        [        5      [        [        5      -
  [        SS5      :X  d   e[        [        [        -  5      [        [        -  :X  d   e[        [        * [        -  5      [        * [        -  :X  d   eS	[        [        5      -  [        R                  L d   eS	[        [        5      -  [        R                  L d   eS	[        [        5      -   [        SS5      :X  d   eS
[        [        5      -   [        SS5      :X  d   e[        S	5      S	:X  d   e[        U[        -  5      [        [        U5      -  :X  d   e[        [        U 5      5      U :X  d   e[        [        U 5      5      U [        SU S-  -   5      -  :X  d   e[        [        U 5      5      [        SU S-  -
  5      :X  d   e[        [!        U 5      5      S[        SSU S-  -  -   5      U -  -  :X  d   e[        [#        U 5      5      SU -  :X  d   e[        [%        U 5      5      [        SSU S-  -  -
  5      :X  d   e[        ['        X5      5      U[        U S-  US-  -   5      -  :X  d   e[        [(        [        -  5      [        [(        5      [        -  :X  d   e[        [(        * [        -  5      [        [(        5      * [        -  :X  d   e[        S[        -  5      [        S5      * [        -  :X  d   e[        [(        5      S	:X  d   e[        [(        * 5      S	:X  d   e[        S[(        -  5      S	:X  d   e[        S[(        -  5      S	:X  d   e[        SSS-  -  [(        -  5      S	:X  d   e[        SSS-  -  [(        -  5      S	:X  d   e[        [(        S-  5      S:X  d   e[        [(        * S-  5      S:X  d   e[        [(        [+        S
S5      -  5      S:X  d   e[        [(        [+        SS5      -  5      S:X  d   e[        SSSS9n[        SSS9n[        [(        U-  S-  5      SUS-  [        R,                  -
  -  :X  d   e[        [(        [.        -  S-  5      R0                  [        :X  d   e[        [(        U-  S-  5      S	:X  d   e[        [(        [.        -  5      S	:X  d   e[        [(        [.        -  5      R3                  [.        S5      [        [(        [.        -  S-  5      R3                  [.        S5      :X  d   e[        [(        S-  5      [        R,                  [        S5      -  :X  d   e[        [(        [+        SS5      -  5      [+        SS5      [        S5      -  :X  d   e[        [(        S-  5      [        R,                  [        S5      -  :X  d   e[        [(        * S-  5      [+        SS5      [        S5      -  :X  d   e[        [(        [+        SS5      -  5      [        R,                  [        S5      -  :X  d   e[        [(        [+        SS5      -  5      [+        SS5      [        S5      -  :X  d   e[        [(        S-  5      [        R,                  :X  d   e[        [(        * S-  5      [+        SS5      :X  d   e[        [(        [+        SS5      -  5      [+        SS5      :X  d   e[        [(        [+        SS5      -  5      [+        SS5      :X  d   e[        [(        [+        SS
5      -  5      [        S
[        S
5      -
  S-  5      :X  d   e[        [(        [+        SS
5      -  5      [        S
[        S
5      -   S-  5      :X  d   e[        [(        [+        SS
5      -  5      [        [(        [+        SS
5      -  5      :X  d   e[        [(        [+        SS
5      -  5      [        [(        [+        SS
5      -  5      :X  d   e[        [(        [+        SS
5      -  5      [        [(        [+        SS
5      -  5      * :X  d   e[        [(        [+        SS
5      -  5      [        [(        [+        SS
5      -  5      * :X  d   e[        [(        [+        SS
5      -  5      [        [(        [+        SS
5      -  5      * :X  d   e[        [(        S-  5      [        S[        S5      -
  S-  5      :X  d   e[        [(        S-  5      [+        SS5      [        S
5      S-  -   :X  d   e[        [(        S-  5      [        S5      * S-  [        S5      S-  -   :X  d   e[        [(        [+        S
S5      -  5      [        S5      S-  [        S5      S-  -   :X  d   e[        [(        [+        SS5      -  5      [        S5      * S-  [        S5      S-  -
  :X  d   e[        [(        [+        SS5      -  5      [        S5      S-  [        S5      S-  -
  :X  d   e[        [(        [+        SS 5      -  5      [        [(        S -  5      :X  d   e[        [(        [+        S!S 5      -  5      [        [(        S -  5      * :X  d   e[        [(        [+        S"S 5      -  5      [        [(        S -  5      * :X  d   e[        [(        [+        S#S 5      -  5      [        [(        S -  5      :X  d   e[        U [        -  5      [        U 5      [        -  :X  d   e[        [.        [(        -  5      S	:X  d   e[        S[.        -  [(        -  5      S	:X  d   e[        S[.        -  [(        -  S-   5      [        S5      :X  d   e[        S[.        -  [(        -  [4        [(        -  -   S-   5      S[4        S[.        -  -   -  [        S5      -  :X  d   e[        [.        [(        -  [        -  5      [        [.        [(        -  5      [        -  :X  d   e[        [6        5      R8                  SL d   e[        S	SS$9R:                  (       d   e[        [<        5      R:                  b   e[        [>        5      R:                  SL d   e[A        S%SS&9n[        [(        U-  5      R:                  (       d   e[A        S'SSS(9n[        U5      RB                  SL d   e[        U5      RB                  b   e[E        [        [G        U 5      [I        U5      -
  5      [        5      SL d   e[E        [        [G        U 5      * [I        U5      -   5      [        5      SL d   e[        [K        [M        S	S5      5      5      [K        [O        [Q        U [        U 5      5      [M        S	S5      5      5      :X  d   e[S        [U        SS)5      5      S*S+/-    Ha  n[U        US-  S-   5       HI  nU[(        -  U-  n [W        [Y        [        U 5      5      [        [Y        U 5      5      -
  5      nUS,:  a  MI   e   Mc     [        S	SS$9RZ                  SL d   e[        [.        [(        -  SS$9RZ                  SL d   e[        []        SSSS$9SS$9RZ                  SL d   eg )-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	            k/var/www/auris/envauris/lib/python3.13/site-packages/sympy/functions/elementary/tests/test_trigonometric.pytest_sinr   3   s   5>DA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                     S H  n [        SU -  U S-  5       H  nU[        -  U -  n[        U[        S-  -   5      [        U5      :X  d   SX4-  5       e[        U[        S-  -
  5      [        U5      * :X  d   SX4-  5       e[        U5      [        U[        S-  -
  5      :X  d   SX4-  5       e[        U5      * [        U[        S-  -   5      :X  a  M   SX4-  5       e   M     g )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r!tQqS!A"QAq2a4x=CF*I,@A6,II*q2a4x=SVG+J-AQF-JJ+q6SRT]*I,@A6,II*F7c!bd(m+J-AQF-JJ+ " Er   c                      [        [        5      R                  [        SS5      [        [        S-  S-  -
  [        S-  S-  -   [        S-  S-  -
  [        [        S-  5      -   :X  d   eg )	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                  z   [        [        5      R                  [        5      [        * [        [        [        -  5      [        [        * [        -  5      -
  -  S-  :X  d   e[        [        5      R                  [
        5      S[        [        S-  5      -  S[        [        S-  5      S-  -   -  :X  d   e[        [        5      R                  [        5      [        S[        [        [        5      S5      [        [        [        [        5      S5      -  4S[        [        S-  5      -  [        [        S-  5      S-  S-   -  S45      :X  d   e[        [        [        5      5      R                  [        5      R                  [        S5      R                  5       [        [        5      R                  [        5      R                  [        [        S5      5      R                  5       :X  d   e[        [        [        5      5      R                  [        5      R                  [        S5      R                  5       [        [        5      R                  [        5      R                  [        [        S5      5      R                  5       :X  d   e[        [!        [        5      5      R                  [        5      R                  [        S5      R                  5       [        [        5      R                  [        5      R                  [        [!        S5      5      R                  5       :X  d   e[        [#        [        5      5      R                  [        5      R                  [        S5      R                  5       [        [        5      R                  [        5      R                  [        [#        S5      5      R                  5       :X  d   e[        [        [        5      5      R                  [        5      R                  [        S5      R                  5       [        [        5      R                  [        5      R                  [        [        S5      5      R                  5       :X  d   e[        [%        [        5      5      R                  [        5      R                  [        S5      R                  5       [        [        5      R                  [        5      R                  [        [%        S5      5      R                  5       :X  d   e[        [        [        5      5      R                  [        5      R                  [        S5      R                  5       [        [        5      R                  [        5      R                  [        [        S5      5      R                  5       :X  d   e[        [        [        5      5      R                  [        5      R                  [        S5      R                  5       [        [        5      R                  [        5      R                  [        [        S5      5      R                  5       :X  d   e[        ['        [        5      5      R                  [(        5      [        [        [        * -  -  S-  [        [        [        -  -  S-  -
  :X  d   e[        [        5      R                  [*        5      S[+        [        5      -  :X  d   e[        [        5      R                  [$        5      [%        [        [        S-  -
  SS9:X  d   e[        [        5      R                  [,        5      S[-        [        [        S-  -
  SS9-  :X  d   e[        [%        [        5      5      R                  [(        5      [        [%        [        5      5      :X  d   e[        [        5      R                  [.        5      [1        [        [        -  S-  5      [/        [2        R4                  [        5      -  :X  d   e[        [        5      R                  [.        5      R                  [        S5      [        S5      :X  d   eg )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           
          SSK Jn  [        X5      (       d   eU" U " U5      5      U " U5      :X  d   eU" U " [        USSS95      5      U:X  d   e[	        U " U5      U-
  5      R                  5       S:  d   eg )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            	      `   [        [        [        -   5      R                  SS9[        [        5      [	        [        5      -  [	        [        5      [        [        5      -  -   :X  d   e[        [        [        -
  5      R                  SS9[        [        5      [	        [        5      -  [	        [        5      [        [        5      -  -
  :X  d   e[        [        [        -
  5      R                  SS9[	        [        5      [        [        5      -  [        [        5      [	        [        5      -  -
  :X  d   e[        S[        -  5      R                  SS9S[        [        5      -  [	        [        5      -  :X  d   e[        S[        -  5      R                  SS9S[        [        5      S-  -  S[        [        5      -  -   :X  d   e[        S[        -  5      R                  SS9S[        [        5      S-  -  [	        [        5      -  S[        [        5      -  [	        [        5      -  -   :X  d   e[        S[
        -  S-  5      R                  SS9[        S[
        -  S-  S	S
9:X  d   e[        [        [
        S-  -   5      R                  SS9[        [
        S-  5      [	        [        5      -  [	        [
        S-  5      [        [        5      -  -   :X  d   e[        [         SS[        S5      -  [	        S5      -  5        [        [         SS[        S5      S-  -  S[        S5      -  -   5        g )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                  ,   [        [        [        * [        5      5      [        SS5      :X  d   e[        [        S[        5      5      [        SS5      :X  d   e[        [        [        * S5      5      [        SS5      :X  d   e[        [        SS[        R                  -  5      5      [        SS5      :X  d   e[        [        S[        R                  [        SS5      -  5      5      [        SS5      :X  d   e[        [        [        R                  [        SS5      -  [        R                  [        SS5      -  5      5      [        S[        [        R                  [        SS5      -  5      5      :X  d   e[        [        [        R                  S-  [        R                  S-  5      5      [        [        [        R                  S-  5      [        [        R                  S-  5      5      :X  d   e[        [        [        R                  [        SS5      -  [        R                  [        SS	5      -  5      5      [        [        [        R                  [        SS	5      -  5      [        [        R                  [        SS5      -  5      5      :X  d   eg )
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                      [        [        5      R                  5       [        [        5      :X  d   e[	        [
        S 5        g )Nc                  >    [        [        5      R                  S5      $ Nrk   )r.   r   fdiffr   r   r   <lambda> 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                     [        [        * 5      [        [        5      * :X  d   e[        [        * 5      [        [        5      :X  d   e[        [        * 5      [        [        5      * :X  d   e[	        [        * 5      [	        [        5      * :X  d   e[        [        [
        -   5      [        [        5      * :X  d   e[        [        S[
        -  -   5      [        [        5      :X  d   e[        [        S[
        -  -   5      [        [        5      * :X  d   e[        [        S[
        -  -   5      [        [        5      :X  d   e[        [        S[
        -  -
  5      [        [        5      * :X  d   e[        [        [
        -   5      [        [        5      * :X  d   e[        [        S[
        -  -   5      [        [        5      :X  d   e[        [        S[
        -  -   5      [        [        5      * :X  d   e[        [        S[
        -  -   5      [        [        5      :X  d   e[        [        S[
        -  -
  5      [        [        5      * :X  d   e[        [        [
        -   5      [        [        5      :X  d   e[        [        S[
        -  -
  5      [        [        5      :X  d   e[	        [        [
        -   5      [	        [        5      :X  d   e[	        [        S[
        -  -
  5      [	        [        5      :X  d   e[        [
        S-  [        -
  5      [        [        5      :X  d   e[        [
        [        SS5      -  [        -
  5      [        [        5      * :X  d   e[        [
        [        SS5      -  [        -
  5      [        [        5      :X  d   e[        [
        S-  [        -
  5      [        [        5      :X  d   e[        [
        [        SS5      -  [        -
  5      [        [        5      * :X  d   e[        [
        [        SS5      -  [        -
  5      [        [        5      :X  d   e[        [
        S-  [        -
  5      [	        [        5      :X  d   e[        [
        [        SS5      -  [        -
  5      [	        [        5      :X  d   e[        [
        [        SS5      -  [        -
  5      [	        [        5      :X  d   e[	        [
        S-  [        -
  5      [        [        5      :X  d   e[	        [
        [        SS5      -  [        -
  5      [        [        5      :X  d   e[	        [
        [        SS5      -  [        -
  5      [        [        5      :X  d   e[        [
        S-  [        -   5      [        [        5      :X  d   e[        [
        S-  [        -   5      [        [        5      * :X  d   e[        [
        S-  [        -   5      [	        [        5      * :X  d   e[	        [
        S-  [        -   5      [        [        5      * :X  d   eg )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            
      X   [        S5      u  p[        R                  [        S5      :X  d   e[        [        5      [        L d   e[        [
        5      [        SS5      :X  d   e[        [
        5      [        [
        5      -
  [        SS5      :X  d   e[        [
        [        -  5      [
        L d   e[        [
        * [        -  5      [
        L d   e[        [        5      [        L d   e[        S5      S:X  d   e[        [        U 5      5      U :X  d   e[        [        U 5      5      S[        SU S-  -   5      -  :X  d   e[        [        U 5      5      [        SU S-  -
  5      :X  d   e[        [        U 5      5      S[        SSU S-  -  -   5      -  :X  d   e[        [        U 5      5      [        SSU S-  -  -
  5      :X  d   e[        [        U 5      5      SU -  :X  d   e[        [!        X5      5      U [        U S-  US-  -   5      -  :X  d   e[        ["        [        -  5      [%        ["        5      :X  d   e[        ["        * [        -  5      [%        ["        5      :X  d   e[        S[        -  5      [%        S5      :X  d   e[        ["        S-  5      S:X  d   e[        ["        * S-  5      S:X  d   e[        ["        S-  5      S:X  d   e[        ["        * S-  5      S:X  d   e[        SSS	-  -  S-   ["        -  S-  5      S:X  d   e[        S
SS-  -  S-   ["        -  S-  5      S:X  d   e[        SSSS9n[        SSS9n[        ["        U-  S-  5      S:X  d   e[        ["        U-  S-  5      SUS-  -  :X  d   e[        ["        5      S:X  d   e[        ["        * 5      S:X  d   e[        S["        -  5      S:X  d   e[        S["        -  5      S:X  d   e[        S["        -  5      S:X  d   e[        ["        S-  5      [&        R(                  :X  d   e[        ["        [+        SS5      -  5      [+        SS5      :X  d   e[        ["        S-  5      [&        R(                  [        S5      -  :X  d   e[        ["        * S-  5      [&        R(                  [        S5      -  :X  d   e[        ["        [+        SS5      -  5      [+        SS5      [        S5      -  :X  d   e[        ["        [+        SS5      -  5      [+        SS5      [        S5      -  :X  d   e[        ["        S-  5      [&        R(                  [        S5      -  :X  d   e[        ["        * S-  5      [&        R(                  [        S5      -  :X  d   e[        ["        [+        S
S5      -  5      [+        SS5      [        S5      -  :X  d   e[        ["        [+        SS5      -  5      [+        SS5      [        S5      -  :X  d   e[        ["        [+        SS5      -  5      [        S5      S-   S-  :X  d   e[        ["        [+        SS5      -  5      [        S5      S-
  S-  :X  d   e[        ["        [+        SS5      -  5      [        ["        [+        SS5      -  5      * :X  d   e[        ["        [+        SS5      -  5      [        ["        [+        SS5      -  5      * :X  d   e[        ["        [+        SS5      -  5      [        ["        [+        SS5      -  5      * :X  d   e[        ["        [+        SS5      -  5      [        ["        [+        SS5      -  5      :X  d   e[        ["        [+        SS5      -  5      [        ["        [+        SS5      -  5      * :X  d   e[        ["        S-  5      [        S[        S5      -   S-  5      :X  d   e[        ["        S-  5      [        S5      S-  [        S5      S-  -   :X  d   e[        ["        [+        SS5      -  5      [        S5      * S-  [        S5      S-  -   :X  d   e[        ["        [+        S
S5      -  5      [        S5      S-  [        S5      S-  -
  :X  d   e[        ["        [+        SS5      -  5      [        S5      * S-  [        S5      S-  -
  :X  d   e[        ["        [+        SS5      -  5      [        ["        S-  5      * :X  d   e[        ["        [+        SS5      -  5      [        ["        S-  5      * :X  d   e[        ["        [+        SS5      -  5      [        ["        S-  5      * :X  d   e[        ["        [+        SS5      -  5      [        ["        S-  5      * :X  d   e[        U [        -  5      [%        U 5      :X  d   e[        [,        ["        -  [        -  5      [%        [,        ["        -  5      :X  d   e[        [.        5      R0                  SL d   e[        SSS 9R2                  (       d   e[        [4        5      R2                  b   e[        [6        5      R2                  SL d   e[9        S!SS"9n[        ["        U-  5      R2                  (       d   e[        ["        [+        SS
5      -  5      R2                  (       d   e[        [,        ["        -  5      S[,        -  :X  d   e[        S[,        -  ["        -  5      S:X  d   e[        SSS 9R:                  SL d   e[        [+        SS5      5      R:                  SL d   e[        [        SSS 9SS 9R:                  b   e[=        [?        SS#5      5      S$S%/-    Ha  n[?        SU-  S-   5       HI  nU["        -  U-  n [A        [C        [        U 5      5      [        [C        U 5      5      -
  5      nUS&:  a  MI   e   Mc     g )'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>DA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                  "   [        SS5      n [        [        [        [        4 Hi  nU" U [
        -  5      U" [
        S-  5      :X  d   eU" S[
        -  5      U" [
        S-  5      :X  d   eU" S[
        -  5      U" S[
        -  5      :X  a  Mi   e   g )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#1R4yC1I%%%58}BqD	)))3r6{c7B,//// $r   c                      [        [        5      R                  [        SS5      S[        S-  S-  -
  [        S-  S-  -   [        S-  S-  -
  [        S	-  S
-  -   [        [        S-  5      -   :X  d   eg )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                     [        [        5      R                  [        5      [        [        [        -  5      S-  [        [        * [        -  5      S-  -   :X  d   e[        [        5      R                  [
        5      S[        [        S-  5      S-  -
  S[        [        S-  5      S-  -   -  :X  d   e[        [        5      R                  [        5      [        S[        [        [        5      S5      [        [        [        S[        -  5      S5      -  4[        [        S-  5      S-  S-
  [        [        S-  5      S-  S-   -  S45      :X  d   e[        [        [        5      5      R                  [        5      R                  [        S5      R                  5       [        [        5      R                  [        5      R                  [        [        S5      5      R                  5       :X  d   e[        [        [        5      5      R                  [        5      R                  [        S5      R                  5       [        [        5      R                  [        5      R                  [        [        S5      5      R                  5       :X  d   e[        [!        [        5      5      R                  [        5      R                  [        S5      R                  5       [        [        5      R                  [        5      R                  [        [!        S5      5      R                  5       :X  d   e[        [#        [        5      5      R                  [        5      R                  [        S5      R                  5       [        [        5      R                  [        5      R                  [        [#        S5      5      R                  5       :X  d   e[        [%        [        5      5      R                  [        5      R                  [        S5      R                  5       [        [        5      R                  [        5      R                  [        [%        S5      5      R                  5       :X  d   e[        [        [        5      5      R                  [        5      R                  [        S5      R                  5       [        [        5      R                  [        5      R                  [        [        S5      5      R                  5       :X  d   e[        [        [        5      5      R                  [        5      R                  [        S5      R                  5       [        [        5      R                  [        5      R                  [        [        S5      5      R                  5       :X  d   e[        [        [        5      5      R                  [        5      R                  [        S5      R                  5       [        [        5      R                  [        5      R                  [        [        S5      5      R                  5       :X  d   e[        ['        [        5      5      R                  [(        5      [        [        -  S-  [        [        * -  S-  -   :X  d   e[        [        5      R                  [*        5      S[+        [        5      -  :X  d   e[        [        5      R                  [$        5      [%        [        [        S-  -   SS9:X  d   e[        [        5      R                  [,        5      S[-        [        * [        S-  -   SS9-  :X  d   e[        [%        [        5      5      R                  [(        5      [        [%        [        5      5      :X  d   e[        [        5      R                  [.        5      [        [1        [        [        -  S-  5      [/        [2        R4                  * [        5      -  [7        [        S5      4S5      :X  d   e[        [        5      R                  [.        5      R                  [        S5      [        S5      :X  d   eg )	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            	         [        [        [        -   5      R                  SS9[        [        5      [        [        5      -  [	        [        5      [	        [        5      -  -
  :X  d   e[        [        [        -
  5      R                  SS9[        [        5      [        [        5      -  [	        [        5      [	        [        5      -  -   :X  d   e[        [        [        -
  5      R                  SS9[        [        5      [        [        5      -  [	        [        5      [	        [        5      -  -   :X  d   e[        S[        -  5      R                  SS9S[        [        5      S-  -  S-
  :X  d   e[        S[        -  5      R                  SS9S[        [        5      S-  -  S[        [        5      -  -
  :X  d   e[        S[        -  5      R                  SS9S[        [        5      S-  -  S[        [        5      S-  -  -
  S-   :X  d   e[        S[
        -  S-  5      R                  SS9[        S[
        -  S-  S	S
9:X  d   e[        [        [
        S-  -   5      R                  SS9[        [
        S-  5      [        [        5      -  [	        [
        S-  5      [	        [        5      -  -
  :X  d   e[        [         SS[        S5      S-  -  S-
  5        [        [         SS[        S5      S-  -  S[        S5      -  -
  5        g )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                  r   [        [        [        * [        5      5      [        SS5      :X  d   e[        [        S[        5      5      [        SS5      :X  d   e[        [        [        * S5      5      [        SS5      :X  d   e[        [        SS[        R                  -  5      5      [        SS5      :X  d   e[        [        [        R                  * S-  [        R                  S-  5      5      [        [        [        R                  * S-  5      S5      :X  d   e[        [        [        R                  [        SS5      -  [        R                  [        SS5      -  5      5      [        S[        [        R                  [        SS5      -  5      5      :X  d   e[        [        [        R                  [        SS5      -  [        R                  [        SS5      -  5      5      [        [        [        R                  [        SS5      -  5      [        [        R                  [        SS5      -  5      5      :X  d   e[        [        [        R                  S-  [        R                  S-  5      5      [        [        [        R                  S-  5      [        [        R                  S-  5      5      :X  d   eg )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                      [        [        5      R                  5       [        [        5      * :X  d   e[	        [
        S 5        g )Nc                  >    [        [        5      R                  S5      $ r   )r*   r   r   r   r   r   r    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                     [        [        5      [        L d   e[        [        5      [        L d   e[        [        5      [	        [        * [        5      :X  d   e[        [        5      [        [        5      -
  [	        [        * [        5      :X  d   e[         R
                  [        S5      :X  d   e[        [        [        -  5      [        :X  d   e[        [        * [        -  5      [        * :X  d   e[        S5      S:X  d   e[        [        [        5      5      [        :X  d   e[        [        [        5      5      [        [        S[        S-  -
  5      -  :X  d   e[        [        [        5      5      [        S[        S-  -
  5      [        -  :X  d   e[        [        [        5      5      S[        -  :X  d   e[        [        [        5      5      S[        SS[        S-  -  -
  5      [        -  -  :X  d   e[        [        [        5      5      [        SS[        S-  -  -
  5      [        -  :X  d   e[        [!        ["        [        5      5      ["        [        -  :X  d   e[        [$        [        -  5      ['        [$        5      [        -  :X  d   e[        [$        * [        -  5      ['        [$        5      * [        -  :X  d   e[        S[        -  5      ['        S5      * [        -  :X  d   e[        [$        5      S:X  d   e[        [$        * 5      S:X  d   e[        S[$        -  5      S:X  d   e[        S[$        -  5      S:X  d   e[        SSS-  -  [$        -  5      S:X  d   e[        [$        S-  5      [        L d   e[        [$        [)        SS5      -  5      [        L d   e[        [$        S-  5      [        S5      :X  d   e[        [$        [)        SS5      -  5      [        S5      :X  d   e[        [$        S	-  5      [*        R,                  L d   e[        [$        * S	-  5      [*        R.                  L d   e[        [$        [)        S
S	5      -  5      [*        R,                  L d   e[        [$        [)        SS	5      -  5      [*        R,                  L d   e[        [$        S-  5      [        SS[        S5      -  -
  5      :X  d   e[        [$        [)        SS5      -  5      [        SS[        S5      -  -   5      :X  d   e[        [$        [)        SS5      -  5      [        SS[        S5      -  -   5      * :X  d   e[        [$        [)        SS5      -  5      [        SS[        S5      -  -
  5      * :X  d   e[        [$        S-  5      S[        S5      -  :X  d   e[        [$        * S-  5      S[        S5      -  :X  d   e[        [$        [)        SS5      -  5      S[        S5      -  :X  d   e[        [$        [)        SS5      -  5      S[        S5      -  :X  d   e[        [$        S-  5      S[        S5      -   :X  d   e[        [$        [)        SS5      -  5      S[        S5      -   :X  d   e[        [$        [)        SS5      -  5      S[        S5      -
  :X  d   e[        [$        [)        SS5      -  5      S[        S5      -
  :X  d   e[        [$        S-  5      [        SS[        S5      -  S-  -
  5      :X  d   e[        [$        [)        SS5      -  5      [        SS[        S5      -  S-  -   5      :X  d   e[        [$        [)        S
S5      -  5      [        SS[        S5      -  S-  -   5      * :X  d   e[        [$        [)        SS5      -  5      [        SS[        S5      -  S-  -
  5      * :X  d   e[        [$        S-  5      [        S5      * S-   :X  d   e[        [$        [)        SS5      -  5      [        S5      S-   :X  d   e[        [$        [)        SS5      -  5      [        S5      * S-
  :X  d   e[        [$        [)        SS5      -  5      [        S5      S-
  :X  d   e[        [$        S-  5      R1                  5       S[        S5      -
  [        S5      -   [        S5      -   :X  d   e[        [$        [)        SS5      -  5      R1                  5       S[        S5      -   [        S5      -
  [        S5      -   :X  d   e[        [$        [)        SS5      -  5      R1                  5       S[        S5      -
  [        S5      -
  [        S5      -   :X  d   e[        [$        [)        SS5      -  5      R1                  5       S[        S5      -   [        S5      -   [        S5      -   :X  d   e[        [$        [)        SS5      -  5      R1                  5       S[        S5      -
  [        S5      -
  [        S5      -
  :X  d   e[        [$        [)        S
S5      -  5      R1                  5       S[        S5      -   [        S5      -   [        S5      -
  :X  d   e[        [$        [)        SS5      -  5      R1                  5       S[        S5      -
  [        S5      -   [        S5      -
  :X  d   e[        [$        [)        SS5      -  5      R1                  5       S[        S5      -   [        S5      -
  [        S5      -
  :X  d   e[        [        [        -  5      ['        [        5      [        -  :X  d   e[        [2        [$        -  5      S:X  d   e[        S
[2        -  [$        -  5      S:X  d   e[        [2        [$        -  [        -  5      ['        [2        [$        -  5      [        -  :X  d   e[        [4        5      R6                  b   e[        [4        5      R8                  SL d   e[        SSS9R:                  (       d   e[        [<        5      R:                  b   e[        [>        5      R:                  SL d   e[        [$        [)        SS5      -  5      [        [$        [)        SS5      -  5      :X  d   e[        [$        [)        SS5      -  5      [        [$        [)        SS5      -  5      * :X  d   e[        [$        [)        SS5      -  5      [        [$        [)        SS5      -  5      :X  d   e[        [$        [)        SS5      -  5      [        [$        S-  5      :X  d   e[        [$        [)        S S5      -  5      [        [$        S-  5      * :X  d   e[        [4        5      R@                  b   e[        [        [4        -  5      R@                  SL d   e[        [$        [        [+        S5      S-  -   -  5      S[        -  -  n U RC                  [        5      SS[$        -  [        S-  -  -  :X  d   eg )!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                      [        [        5      R                  [        SS5      [        [        S-  S-  -   S[        S-  -  S-  -   S[        S-  -  S	-  -   [        [        S-  5      -   :X  d   eg )
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                  @   [        [        * [        -  5      [        [        [        -  5      p[        [        5      R	                  [         5      [        X-
  -  X-   -  :X  d   e[        [        5      R	                  [
        5      S[        [        5      S-  -  [        S[        -  5      -  :X  d   e[        [        5      R	                  [        5      [        [        [        R                  S-  -
  SS9[        [        5      -  :X  d   e[        [        5      R	                  [        5      S[        [        5      -  :X  d   e[        [        [        5      5      R	                  [         5      R                  [        S5      R                  5       [        [        5      R	                  [         5      R                  [        [        S5      5      R                  5       :X  d   e[        [        [        5      5      R	                  [         5      R                  [        S5      R                  5       [        [        5      R	                  [         5      R                  [        [        S5      5      R                  5       :X  d   e[        [        [        5      5      R	                  [         5      R                  [        S5      R                  5       [        [        5      R	                  [         5      R                  [        [        S5      5      R                  5       :X  d   e[        [        [        5      5      R	                  [         5      R                  [        S5      R                  5       [        [        5      R	                  [         5      R                  [        [        S5      5      R                  5       :X  d   e[        [        [        5      5      R	                  [         5      R                  [        S5      R                  5       [        [        5      R	                  [         5      R                  [        [        S5      5      R                  5       :X  d   e[        [        [        5      5      R	                  [         5      R                  [        S5      R                  5       [        [        5      R	                  [         5      R                  [        [        S5      5      R                  5       :X  d   e[        [        [        5      5      R	                  [         5      R                  [        S5      R                  5       [        [        5      R	                  [         5      R                  [        [        S5      5      R                  5       :X  d   e[        [        [        5      5      R	                  [         5      R                  [        S5      R                  5       [        [        5      R	                  [         5      R                  [        [        S5      5      R                  5       :X  d   e[        [!        [        5      5      R	                  ["        5      [        [        [        * -  [        [        -  -
  -  [        [        * -  [        [        -  -   -  :X  d   e[        [        5      R	                  [$        5      [%        [        5      [%        [        [&        S-  -
  SS9-  :X  d   e[        [        5      R	                  [(        5      [)        [        * [&        S-  -   SS9[)        [        5      -  :X  d   e[        [        [        5      5      R	                  ["        5      [        [        [        5      5      :X  d   e[        [&        [+        SS5      -  SS9R	                  [,        5      [-        [-        S5      S-  [+        SS5      -   5      [+        SS	5      [-        S5      S	-  -   -  :X  d   e[        [        5      R	                  [.        5      [/        [        R0                  [        5      [/        [        R0                  * [        5      -  :X  d   e[        [        5      R	                  [.        5      R                  [        S
5      [        S
5      :X  d   eg )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(Wq6>>#!W%6"79J"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                  @   S[        [        S-  5      [        [        S-  5      -  [        [        S-  5      -
  R	                  [
        5      :X  d   eS[        [        S-  5      [        [        S-  5      -  [        [        S-  5      -
  R	                  [
        5      :X  d   e[        [        S-  5      R	                  [
        5      [        [        S-  5      :X  d   e[        [        [        SS5      -  5      R	                  [        5      [        [        [        SS5      -  5      :X  d   e[        [        [        SS5      -  SS	9R	                  [        5      [        [        S5      S-  [        SS5      -   5      [        S
S5      [        S5      S-  -   -  :X  d   eg )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                     [        [        5      R                  [        [        5      [        5      [        :X  d   e[        [        5      R                  [        [        5      [        [        5      :X  d   e[        [        5      R                  [        [        R
                  S-  5      [        L d   e[        [        5      R                  [        [        R
                  [        SS5      -  5      [        L d   eg )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            
      <   [        [        [        -   5      R                  SS9[        [        5      [        [        5      -   S[        [        5      [        [        5      -  -
  -  R                  5       :X  d   e[        [        [        -
  5      R                  SS9[        [        5      [        [        5      -
  S[        [        5      [        [        5      -  -   -  R                  5       :X  d   e[        [        [        -   [        -   5      R                  SS9[        [        5      [        [        5      -   [        [        5      -   [        [        5      [        [        5      -  [        [        5      -  -
  S[        [        5      [        [        5      -  -
  [        [        5      [        [        5      -  -
  [        [        5      [        [        5      -  -
  -  R                  5       :X  d   eS[        S[        -  5      R                  SS9R                  [         5      R                  [        [        5      [        SS5      4/5      S-  S-
  :X  d   eS[        S[        -  5      R                  SS9R                  [         5      R                  [        [        5      [        SS	5      4/5      S
-  S-
  :X  d   eS[        S[        -  [        S-  -
  5      R                  SS9R                  [         5      R                  [        [        5      [        SS	5      4/5      S-  S-
  :X  d   e[        [         SS[        S5      -  S[        S5      S-  -
  -  5        [        [         S[        S5      S-  * S[        S5      -  -   SS[        S5      S-  -  -
  -  5        g )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            
         [        [        [        * [        5      5      [        [        * [        5      :X  d   e[        [        [        R                  S-  [        R                  [        SS5      -  5      5      [        [        * [        5      :X  d   e[        [        [        R                  S-  [        R                  S-  5      5      [        [        [        R                  S-  5      [        [        R                  S-  5      5      :X  d   eg )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                      [        [        5      R                  5       [        [        5      S-  S-   :X  d   e[        [        S 5        g )Nrk   rh   c                  >    [        [        5      R                  S5      $ r   )r0   r   r   r   r   r   r    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                  <   [        [        5      [        L d   e[         R                  [        S5      :X  d   e[        [        [
        -  5      [
        * :X  d   e[        [        * [
        -  5      [
        :X  d   e[        [        5      [        L d   e[        S5      [        L d   e[        S[        -  5      [        L d   e[        [        [        5      5      [        :X  d   e[        [        [        5      5      S[        -  :X  d   e[        [        [        5      5      [        S[        S-  -
  5      [        -  :X  d   e[        [        [        5      5      [        [        S[        S-  -
  5      -  :X  d   e[        [        [        5      5      [        SS[        S-  -  -
  5      [        -  :X  d   e[        [        [        5      5      S[        SS[        S-  -  -
  5      [        -  -  :X  d   e[        [!        ["        [        5      5      [        ["        -  :X  d   e[        [        [
        -  5      [%        [        5      * [
        -  :X  d   e[        [        * [
        -  5      [%        [        5      [
        -  :X  d   e[        S[
        -  5      [%        S5      [
        -  :X  d   e[        [        5      [        S[        -  5      s=:X  a  [        S[        -  5      :X  d   e   e[        [        * 5      [        S[        -  5      s=:X  a  [        S[        -  5      :X  d   e   e[        [        S-  5      S:X  d   e[        [        * S-  5      S:X  d   e[        [        ['        SS5      -  5      S:X  d   e[        [        ['        SS5      -  5      S:X  d   e[        [        S-  5      S[        S5      -  :X  d   e[        [        ['        SS5      -  5      S[        S5      -  :X  d   e[        [        S	-  5      [(        R*                  L d   e[        [        * S	-  5      [(        R,                  L d   e[        [        ['        S
S	5      -  5      [(        R*                  L d   e[        [        ['        SS	5      -  5      [(        R*                  L d   e[        [        S-  5      [        S5      :X  d   e[        [        * S-  5      [        S5      * :X  d   e[        [        ['        SS5      -  5      [        S5      :X  d   e[        [        ['        SS5      -  5      [        S5      :X  d   e[        [        S-  5      S[        S5      -   :X  d   e[        [        ['        SS5      -  5      S[        S5      -   :X  d   e[        [        ['        SS5      -  5      S[        S5      -
  :X  d   e[        [        ['        SS5      -  5      S[        S5      -
  :X  d   e[        [        S-  5      [        S5      S-   :X  d   e[        [        ['        SS5      -  5      [        S5      * S-   :X  d   e[        [        ['        SS5      -  5      [        S5      S-
  :X  d   e[        [        ['        SS5      -  5      [        S5      * S-
  :X  d   e[        [        S-  5      R/                  5       [        S5      [        S5      -   S-   [        S5      -   :X  d   e[        [        ['        SS5      -  5      R/                  5       [        S5      * [        S5      -
  S-   [        S5      -   :X  d   e[        [        ['        SS5      -  5      R/                  5       [        S5      * [        S5      -   S-
  [        S5      -   :X  d   e[        [        ['        SS5      -  5      R/                  5       [        S5      [        S5      -
  S-
  [        S5      -   :X  d   e[        [        ['        SS5      -  5      R/                  5       [        S5      * [        S5      -   S-   [        S5      -
  :X  d   e[        [        ['        S
S5      -  5      R/                  5       [        S5      [        S5      -
  S-   [        S5      -
  :X  d   e[        [        ['        SS5      -  5      R/                  5       [        S5      [        S5      -   S-
  [        S5      -
  :X  d   e[        [        ['        SS5      -  5      R/                  5       [        S5      * [        S5      -
  S-
  [        S5      -
  :X  d   e[        [        [
        -  5      [%        [        5      * [
        -  :X  d   e[        [0        [        -  [
        -  5      [%        [0        [        -  5      * [
        -  :X  d   e[        [2        5      R4                  b   e[        [2        5      R6                  SL d   e[        [8        5      R:                  b   e[        [<        5      R:                  SL d   e[        [        ['        SS5      -  5      [        [        ['        SS5      -  5      :X  d   e[        [        ['        SS5      -  5      [        [        ['        SS5      -  5      * :X  d   e[        [        ['        SS5      -  5      [        [        ['        SS5      -  5      :X  d   e[        [        ['        SS5      -  5      [        [        ['        SS5      -  5      :X  d   e[        [        ['        SS5      -  5      [        [        ['        SS5      -  5      * :X  d   e[        [        5      R>                  b   e[        [2        5      R>                  b   e[A        SSS9n [        U 5      R>                  SL d   e[        [        5      RC                  [        S[        -  5      [        L d   e[        [        [        S	-   -  5      S[        -  -  nURE                  [        5      SS[        -  [        S-  -  -  :X  d   eg )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            
         [        [        [        [        SS5      -  5      [	        [        [        SS5      -  5      -  [        [        [        SS5      -  5      -  S-
  R                  5       5      S:  d   e[        [        [        [        SS5      -  5      [        [        [        SS5      -  5      -  [	        [        [        SS5      -  5      -  S-
  R                  5       5      S:  d   eg )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            	         S[        [        [        SS5      -  5      [        [        [        SS5      -  5      -  [	        [        [        SS5      -  5      -  R                  5       :X  d   eS[        [        [        SS5      -  5      [	        [        [        SS5      -  5      -  [        [        [        SS5      -  5      -  R                  5       :X  d   eg )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                     [        [        5      R                  [        SS5      S[        -  [        S-  -
  [        S-  S-  -
  S[        S-  -  S-  -
  [        S	-  S
-  -
  [        [        S-  5      -   :X  d   e[        [        S-  [        S-  -   5      R                  [        SS5      [        S-  S[        S-  -  -
  [        S-  -   S[        -  -
  S-   [        [        5      -   :X  d   e[        [        S[        -
  -  5      R                  [        SS5      S[        [        -  -  [        [        -  S-  -   [        [        S-  5      -   :X  d   e[        [        5      R                  S[        5      S[        -  :X  d   e[        [        5      R                  S[        5      [        R                  L d   e[        [        5      R                  S[        5      [        S-  * S-  :X  d   eg )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            	         [        [        * [        -  5      [        [        [        -  5      p[        [        5      R	                  [         5      [        X-   -  X-
  -  :X  d   e[        [        5      R	                  [
        5      [        S[        -  5      S[        [        5      S-  -  -  :X  d   e[        [        5      R	                  [        5      [        [        5      [        [        [        S-  -
  SS9-  :X  d   e[        [        5      R	                  [        5      S[        [        5      -  :X  d   eS nU" [        5        U" [        5        U" [        5        U" [        5        U" [
        5        U" [        5        U" [        5        [        [        [        5      5      R	                  [        5      [        * [        [        * -  [        [        -  -   -  [        [        * -  [        [        -  -
  -  :X  d   e[        [        5      R	                  [        5      [        [        [        S-  -
  SS9[        [        5      -  :X  d   e[        [        5      R	                  [         5      [!        [        5      [!        [        * [        S-  -   SS9-  :X  d   e[        [        [        5      5      R	                  [        5      [        [        [        5      5      :X  d   e[        [        [#        SS5      -  SS9R	                  [$        5      [#        SS5      [%        S5      S-  -   [%        [%        S5      S	-  [#        SS	5      -   5      -  :X  d   e[        [        5      R	                  [&        5      ['        [(        R*                  * [        5      ['        [(        R*                  [        5      -  :X  d   e[        [        5      R	                  [&        5      R-                  [        S
5      [        S
5      :X  d   eg )Nrk   Fr   rh   c                 (   [        U " [        5      5      R                  [        5      [        [        5      R                  [        5      R	                  [        U " [        5      5      -
  nUR                  [        5      R                  5       S:X  d   eg Nr   )r+   r   r   r   r   r   )r   re   s     r   check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(Wq6>>#!W%6"79J"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            	         [        [        [        SS5      -  5      R                  [        5      R                  5       [        [        [        SS5      -  5      [        [        [        SS5      -  5      -  R                  [        5      R                  5       :X  d   e[        [        [        SS5      -  5      R                  [        5      [        [        [        SS5      -  5      [        [        [        SS5      -  5      -  R                  [        5      :X  d   e[        [        S-  5      R                  [        5      [        [        S-  5      :X  d   e[        [        S-  5      R                  [        5      [        [        S-  5      :X  d   e[        [        [        SS5      -  SS9R                  [        5      [        S	S5      [        S5      S-  -   [        [        S5      S
-  [        SS
5      -   5      -  :X  d   eg )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                     [        [        5      R                  [        [        5      [        5      [        :X  d   e[        [        5      R                  [        [        5      [        [        5      :X  d   e[        [        5      R                  [        S5      [        L d   e[        [        5      R                  [        [
        R                  5      [        L d   eg 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            
         [        [        [        -   5      R                  SS9R	                  5       [        [        5      [        [        5      -  S-
  [        [        5      [        [        5      -   -  :X  d   e[        [        [        -
  5      R                  SS9R	                  5       [        [        5      [        [        * 5      -  S-
  [        [        5      [        [        * 5      -   -  :X  d   e[        [        [        -   [
        -   5      R                  SS9R	                  5       [        [        5      [        [        5      -  [        [
        5      -  [        [        5      -
  [        [        5      -
  [        [
        5      -
  S[        [        5      [        [        5      -  -   [        [        5      [        [
        5      -  -   [        [        5      [        [
        5      -  -   -  :X  d   e[        S[        -  5      R                  SS9R	                  5       [        [        5      S-  S-
  [        [        5      -  S[        [        5      S-  -  S-
  -  :X  d   e[        S[        -  5      R                  SS9[        [        5      S-  SS[        [        5      -  -  -
  :X  d   e[        S[        -  5      R                  SS9R	                  5       [        [        5      S-  S-
  [        [        5      -  S[        [        5      S-  -  S-
  -  :X  d   e[        S[        -  [        S-  -
  5      R                  SS9R                  5       [        [        5      S-  * S[        [        5      S-  -  -   S[        [        5      S-  -  -   S[        [        5      -  -
  S-
  [        [        5      S-  S[        [        5      S-  -  -   S[        [        5      S-  -  -
  S[        [        5      -  -
  S-   -  :X  d   e[        [         SS[        S5      S-  -   S[        S5      -  -  5        [        [         SS	[        S5      -  [        S5      S-  -   SS[        S5      S-  -  -   -  5        g )
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                  
   [        [        [        * [        5      5      [        [        * [        5      :X  d   e[        [        [        R                  * S-  [        R                  S-  5      5      [        [        * [        5      :X  d   e[        [        [        R                  S-  [        R                  S-  5      5      [        [        [        R                  S-  5      [        [        R                  S-  5      5      :X  d   eg )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                      [        [        5      R                  5       [        [        5      S-  * S-
  :X  d   e[        [        S 5        g )Nrk   rh   c                  >    [        [        5      R                  S5      $ r   )r+   r   r   r   r   r   r    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                     [        [        [        5      [        5      (       d   e[        SSS9n [        U 5      [        R
                  L d   e[        [        R                  5      [        R                  L d   e[        [        R                  5      [        R                  L d   e[        [        R                  5      [        R                  L d   e[        [        R                  5      [        R                  L d   e[        SSSS9n[        U[        -  5      [        R                  L d   e[        U* [        -  5      [        R                  L d   e[        [        S-  5      S[        -  :X  d   e[        [        * S-  5      S[        -  :X  d   e[        [        [        SS5      -  5      SS[        -  -  :X  d   e[        [        [        SS5      -  5      S	S[        -  -  :X  d   e[        [        * 5      [        [        5      :X  d   e[        [        5      R                  [        5      [        [        5      [        -  [        [        5      [        S-  -  -
  :X  d   e[        [        5      R                  [        5      [        [        5      [        -  R                  [        5      :X  d   e[        [        5      R                  [        [        5      [        [        5      * S[        [        5      -  [        -  -
  S[        [        5      -  [        S-  -  -   [        -  :X  d   e[        [        5      R                  [        [        5      [        [        5      [        -  R                  [        [        5      :X  d   e[!        [        [        5      R                  [        5      [        S
5      S
:X  d   e[!        [        [        5      R                  [        [        5      [        S
5      [	        S5      * S-  :X  d   e[        [        5      R#                  5       S[        S-  S-  -
  [        S-  S-  -   [%        [        S-  5      -   :X  d   e[        [        5      R'                  [(        5      [)        S
[        5      :X  d   e[        [        5      R'                  [        5      [+        [        [        5      [        -  [-        [        S
5      4S5      :X  d   e[        [        SS9R.                  SL d   e[        S
SS9R.                  SL d   e[        U[        -  SS9R.                  SL d   e[        [        5      R.                  b   e[        SSSS9n[        [        5      R0                  b   e[        U5      R0                  SL d   e[        [2        U-  5      R0                  SL d   e[        [2        S-  5      R0                  SL d   e[        [        5      R4                  b   e[        U5      R4                  SL d   eg )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   r2  s      r   	test_sincr8  N  sW   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                  f
   [        [        5      [        L d   e[         R                  [        S5      :X  d   e[        [        5      [
        * [        -  :X  d   e[        [        * 5      [
        [        -  :X  d   e[        [        5      [        L d   e[        S5      S:X  d   e[        S5      [        S-  :X  d   e[        S5      [        * S-  :X  d   e[        [        S5      S-  5      [        S-  :X  d   e[        [        S5      * S-  5      [        * S-  :X  d   e[        [        S5      S-  5      [        S-  :X  d   e[        [        S5      * S-  5      [        * S-  :X  d   e[        [        S[        S5      -
  S-  5      5      [        S-  :X  d   e[        [        S[        S5      -
  S-  5      * 5      [        * S-  :X  d   e[        [        R                  5      [        S	-  :X  d   e[        [        SS5      5      [        * S	-  :X  d   e[        [        S[        S5      -
  5      S-  5      [        S-  :X  d   e[        [        S[        S5      -
  5      * S-  5      [        * S-  :X  d   e[        [        S5      S-
  S-  5      [        S
-  :X  d   e[        [        S5      S-
  * S-  5      [        * S
-  :X  d   e[        [        S5      S-
  [        S5      -  5      [        S-  :X  d   e[        [        S5      S-
  * [        S5      -  5      [        * S-  :X  d   eS H_  n [        U S-  * U S-  S-   5       HB  n[        X5      S:X  d  M  [        [        U[        -  U -  5      5      U[        -  U -  :X  a  MB   e   Ma     [        [        5      R!                  [        5      S[        S[        S-  -
  5      -  :X  d   e[        SSS9R"                  SL d   e[        S5      R"                  SL d   e[        [$        5      R"                  b   e[        S[
        -  5      [
        * ['        S5      -  :X  d   e[        [        SS5      SS9R(                  SL d   e[        [        SS5      SS9R(                  SL d   e[        [*        5      R(                  b   e[        [        [        SS5      5      5      [        SS5      [        -   :X  d   e[        [        [        SS5      5      5      [        SS5      [        -
  :X  d   e[-        [         [/        [        5      5      (       d   eg )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_asinr=    sb   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 Aw1q)A1yA~C"QK(AbDF222 * 
 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                     [        [        5      R                  [        SS5      [        [        S-  S-  -   S[        S-  -  S-  -   S[        S-  -  S-  -   [        [        S-  5      -   :X  d   e[        [        5      R	                  S[        5      n U S[        S-  -  S-  :X  d   e[        [        5      R	                  S[        U S5      S[        S-  -  S-  :X  d   eg )	Nr   r   ry   rn   rl   r   rr   p   )r'   r   r9   r8   r  t5s    r   test_asin_seriesrB    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            	         [        [        5      R                  [        5      [        :X  d   e[        [        S-   5      R                  [        5      [        S-  :X  d   e[        [        S-
  5      R                  [        5      [        * S-  :X  d   e[        S[        -  5      R                  [        SS9[        [        [        5      -  [        S-  -   [        [        S5      -  -
  :X  d   e[        S[        -  5      R                  [        SS9[        * [        [        5      -  S[        -  S-  -
  [        [        S5      -  -   :X  d   e[        [        [        -  S-   5      R                  [        SS9[        [        S5      -
  :X  d   e[        [        * [        -  S-   5      R                  [        SS9[        S5      :X  d   e[        [        [        -  S-
  5      R                  [        SS9[        S5      * :X  d   e[        [        * [        -  S-
  5      R                  [        SS9[        * [        S5      -   :X  d   e[        [        * [        S-  -  [        -   S-
  5      R                  [        SS9[        * S-  [        [        S[        S5      -
  5      -  -   :X  d   e[        [        * [        S-  -  [        -   S-
  5      R                  [        SS9[        * S-  [        [        S[        S5      -
  5      -  -   :X  d   eg )Nrh   rk   cdirri   ry   )r'   r   r   r   r   r   r"   r   r   r   test_asin_leading_termrF    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                     [        [        5      R                  [        5      [        * [        [        [        -  [        S[        S-  -
  5      -   5      -  :X  d   e[        [        5      R                  [        5      S[        [        S[        S[        S-  -
  5      -   -  5      -  :X  d   e[        [        5      R                  [        5      [        R                  S-  [        [        5      -
  :X  d   e[        [        5      R                  [        5      S[        [        [        S-  * S-   5      S-   [        -  5      -  :X  d   e[        [        5      R                  [        5      [        S[        -  5      * [        S-  -   :X  d   e[        [        5      R                  [        5      [        S[        -  5      :X  d   eg )Nrh   rk   )r'   r   r   r   r   r"   r(   r#   r   r   r$   r&   r   r%   r   r   r   test_asin_rewriterH    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                      [        [        5      R                  5       S[        S[        S-  -
  5      -  :X  d   e[	        [
        S 5        g )Nrh   rk   c                  >    [        [        5      R                  S5      $ r   )r'   r   r   r   r   r   r   !test_asin_fdiff.<locals>.<lambda>      tAw}}Q'7r   )r'   r   r   r"   rG   r?   r   r   r   test_asin_fdiffrM    s7    7==?aQAX....
78r   c            
      
   [        [        5      [        L d   e[        [        5      [        L d   e[         R                  [	        S5      :X  d   e[        [
        5      [        [
        -  :X  d   e[        [
        * 5      [        * [
        -  :X  d   e[        S5      [        S-  :X  d   e[        [        R                  5      [        S-  :X  d   e[        [        SS5      5      [        [        SS5      -  :X  d   e[        S5      S:X  d   e[        S5      [        :X  d   e[        [        S5      S-  5      [        S-  :X  d   e[        [        S5      * S-  5      [        [        SS5      -  :X  d   e[        SS5       GH#  n [        U 5       GH  n[        X5      S:X  d  M  [        [        U[        -  U -  5      5      U[        -  U -  :X  d   e[        [        U[        -  U -  5      * 5      [        U[        -  U -  -
  :X  d   e[        [        U[        -  U -  5      5      [        S-  [!        [        U[        -  U -  5      5      -
  :X  d   e[        [        U[        -  U -  5      * 5      [        S-  [!        [        U[        -  U -  5      * 5      -
  :X  a  GM   e   GM&     [        S[        -  5      [        S-  [!        S[        -  5      -
  :X  d   e[        ["        5      R%                  ["        5      S[        S["        S-  -
  5      -  :X  d   e[        S	5      R&                  S
L d   e[        S5      R&                  SL d   e[        [(        5      R&                  b   e[        [        SS5      SS9R*                  S
L d   e[        [        SS5      SS9R*                  S
L d   e[        [        SS5      SS9R*                  SL d   e[        [,        5      R*                  b   e[        S[,        -   5      R/                  5       [        S[,        -   5      :w  d   e[        S[0        -   5      R/                  5       [        S[0        -   5      :w  d   e[        [        SS5      5      R/                  5       [        [        SS5      5      :X  d   e[        [        SS5      5      R/                  5       [        [        SS5      5      :X  d   e[        [,        [0        [        -  -   5      R/                  5       [        [,        [0        [        -  -
  5      :X  d   e[        [2        5      R/                  5       [        [/        [2        5      5      :w  d   eg )Nrh   r   rk   ry   ri   rm   rl   r   r;  Trj   Frr   r   rp   ro   )r#   r   r   r   r;   r   r   r   r   r   r   r"   r   r6   r*   r.   r'   r   r   r   rH   r<  rM   r   rP   re   )r   nums     r   	test_acosrP    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 1b\8C3{aCBqM*c"fQh666SR]N+rCF1H}<<<CBqM*bdT#c"fQh-5H.HHHHSR]N+r!tdCBqM>6J/JJJJ   !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                  
   [        [        5      R                  [        5      [        S-  :X  d   e[        [        S-   5      R                  [        5      [	        S5      [	        [        * 5      -  :X  d   e[        [        S-
  5      R                  [        5      [        :X  d   e[        S[        -  5      R                  [        SS9[
        * [        [        5      -  [
        [        S5      -  -   :X  d   e[        S[        -  5      R                  [        SS9[
        [        [        5      -  S[        -  -   [
        [        S5      -  -
  :X  d   e[        [
        [        -  S-   5      R                  [        SS9[        S5      * :X  d   e[        [
        * [        -  S-   5      R                  [        SS9[        S5      :X  d   e[        [
        [        -  S-
  5      R                  [        SS9[        S5      :X  d   e[        [
        * [        -  S-
  5      R                  [        SS9S[        -  [        S5      -
  :X  d   e[        [
        * [        S-  -  [        -   S-
  5      R                  [        SS9[        [
        [        [	        S5      S-   5      -  -   :X  d   e[        [
        * [        S-  -  [        -   S-
  5      R                  [        SS9[        [
        [        [	        S5      S-   5      -  -   :X  d   eg )Nrk   rh   rD  ri   rj   ry   )r#   r   r   r   r"   r   r   r   r   r   test_acos_leading_termrR  	  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                  L   [        [        5      R                  [        SS5      [        S-  [        -
  [        S-  S-  -
  S[        S-  -  S-  -
  S[        S-  -  S	-  -
  [	        [        S-  5      -   :X  d   e[        [        5      R                  [        SS5      [        S-  [        [        5      R                  [        SS5      -
  :X  d   e[        [        5      R                  S[        5      n U S
[        S-  -  S-  :X  d   e[        [        5      R                  S[        U S5      S[        S-  -  S	-  :X  d   e[        [        5      R                  S[        5      [        S-  :X  d   e[        [        5      R                  S[        5      [        R                  L d   eg )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_seriesrT    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                     [        [        5      R                  [        5      [        S-  [
        [        [
        [        -  [        S[        S-  -
  5      -   5      -  -   :X  d   e[        [        5      R                  [        5      [        [        * [        [        S-  5      -  S-   -  S-  [        [        S[        S-  -
  5      [        -  5      -   :X  d   e[        S5      R                  [        5      [        R                  S-  :X  d   e[        S5      R                  [        5      [        S5      R                  [        5      :X  d   e[        [        5      R                  [        5      [        R                  S-  [        [        5      -
  :X  d   e[        [        5      R                  [        5      S[        [        [        S-  * S-   5      S-   [        -  5      -  [        S-  -   :X  d   e[        [        5      R                  [        5      [        S[        -  5      :X  d   e[        [        5      R                  [        5      [        S[        -  5      * [        S-  -   :X  d   eg )Nrk   rh   rj   r         ?)r#   r   r   r   r   r   r"   r(   r   r   r'   r$   r&   r%   r   r   r   test_acos_rewriterW  %  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                      [        [        5      R                  5       S[        S[        S-  -
  5      -  :X  d   e[	        [
        S 5        g )Nri   rh   rk   c                  >    [        [        5      R                  S5      $ r   )r#   r   r   r   r   r   r   !test_acos_fdiff.<locals>.<lambda>2  rL  r   )r#   r   r   r"   rG   r?   r   r   r   test_acos_fdiffr[  0  s7    7==?ba!Q$h////
78r   c                  n   [        [        5      [        L d   e[         R                  [        S5      :X  d   e[        [        5      [
        S-  :X  d   e[        [        * 5      [
        * S-  :X  d   e[        [        5      [        [
        * S-  [
        S-  5      :X  d   e[        S5      S:X  d   e[        S5      [
        S-  :X  d   e[        [        S5      5      [
        S-  :X  d   e[        S[        S5      -   * 5      [
        [        SS5      -  :X  d   e[        [        SS[        S5      -  -
  5      5      [
        S-  :X  d   e[        [        SS[        S5      -  S-  -
  5      * 5      [
        * S	-  :X  d   e[        [        SS[        S5      -  S-  -   5      5      [
        [        SS	5      -  :X  d   e[        S
[        S5      -   5      [
        * S-  :X  d   e[        S[        S5      -   5      [
        [        SS5      -  :X  d   e[        S
[        S5      -
  5      [
        [        SS5      -  :X  d   eS H_  n [        U S-  * U S-  S-   5       HB  n[        X5      S:X  d  M  [        [        U[
        -  U -  5      5      U[
        -  U -  :X  a  MB   e   Ma     [        [        5      [
        S-  :X  d   e[        [        5      R                  [        5      SS[        S-  -   -  :X  d   e[        [        5      R                   SL d   e[        S
["        -  5      ["        * [%        S5      -  :X  d   e['        [         [)        [        5      5      (       d   e[        [)        [        SS5      5      5      [        SS5      [
        S-  -   :X  d   e[+        [        SS5      5      R,                  SL d   e[        [.        [0        [2        [4        [6        [8        [:        [<        [>        [@        4 GH?  nUR                   (       d  URB                  c  URD                  [        U5      RD                  L d   eURF                  [        U5      RF                  L d   eURH                  [        U5      RH                  L d   eURJ                  [        U5      RJ                  L d   eURL                  [        U5      RL                  L d   eOURN                  [        U5      RD                  L d   eURP                  [        U5      RF                  L d   eURR                  [        U5      RH                  L d   eURT                  [        U5      RJ                  L d   eURV                  [        U5      RL                  L d   eURN                  [        U5      RN                  L d   eURP                  [        U5      RP                  L d   eURR                  [        U5      RR                  L d   eURT                  [        U5      RT                  L d   eURV                  [        U5      RV                  L a  GM@   e   g )Nrh   rk   r   rm   ry   ro   r|   rl   rp   rj   r~   r{   r:  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_nonzeror<  is_negativeis_nonpositiveis_nonnegativeis_extended_nonzerois_extended_positiveis_extended_negativeis_extended_nonpositiveis_extended_nonnegative)r   rO  r/  s      r   	test_atanrj  5  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 1a4!Q$(+C3{aCBqM*c"fQh666 , 
 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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# :r   c            	         [        [        5      R                  [        5      [        [        S[        [        -  -
  5      [        S[        [        -  -   5      -
  -  S-  :X  d   e[        [        5      R                  [
        5      [        S[        [        S-  S-   5      -  5      * [        S-  -   [        [        S-  5      -  [        -  :X  d   e[        [        5      R                  [        5      [        [        S-  5      [        S[        [        S-  S-   5      -  5      -  [        -  :X  d   e[        [        5      R                  [        5      [        S[        -  5      :X  d   e[        [        5      R                  [        5      [        [        S-  5      [        [        [        S-  S-   5      5      -  [        -  :X  d   e[        [        5      R                  [        5      [        [        [        S-  S-   5      5      * [        S-  -   [        [        S-  5      -  [        -  :X  d   e[        S[        -  5      R                  5       [        [        5      R                  [        5      R                  [        S[        -  0S9:X  d   e[        S[        -  5      R                  5       [        [        5      R                  [        5      R                  [        S[        -  0S9:X  d   eg )Nrh   rk   r{   r   rl   )r(   r   r   r   r   r'   r"   r   r#   r$   r&   r%   r  r   r   r   test_atan_rewriterm  l  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                      [        [        5      R                  5       S[        S-  S-   -  :X  d   e[        [        S 5        g )Nrh   rk   c                  >    [        [        5      R                  S5      $ r   )r(   r   r   r   r   r   r   !test_atan_fdiff.<locals>.<lambda>z  rL  r   )r(   r   r   rG   r?   r   r   r   test_atan_fdiffrq  x  s2    7==?aAl***
78r   c                     [        [        5      R                  [        5      [        :X  d   e[        S[        -  5      R                  [        SS9[        S-  :X  d   e[        S[        -  5      R                  [        SS9[        * S-  :X  d   e[        [        [        -   5      R                  [        SS9[        * [        [        5      -  S-  [        S-  -   [        [        S5      -  S-  -   :X  d   e[        [        [        -   5      R                  [        SS9[        * [        [        5      -  S-  S[        -  S-  -
  [        [        S5      -  S-  -   :X  d   e[        [        [        -
  5      R                  [        SS9[        [        [        5      -  S-  [        S-  -   [        [        S5      -  S-  -
  :X  d   e[        [        [        -
  5      R                  [        SS9[        [        [        5      -  S-  [        S-  -   [        [        S5      -  S-  -
  :X  d   e[        [        S[        -  -   5      R                  [        SS9[        [        S5      -  :X  d   e[        [        S[        -  -   5      R                  [        SS9[        * [        [        S5      -  -   :X  d   e[        [        S[        -  -
  5      R                  [        SS9[        [        [        S5      -  -
  :X  d   e[        [        S[        -  -
  5      R                  [        SS9[        * [        S5      -  :X  d   e[        S[        -  [        [        -  -
  [        S-  -
  5      R                  [        SS9[        * S-  [        [        S5      -  S-  -   :X  d   e[        S[        -  [        [        -  -
  [        S-  -
  5      R                  [        SS9[        * S-  [        [        S5      -  S-  -   :X  d   eg )Nrh   rD  rk   ri   rm   ry   )r(   r   r   r   r   r   r   r   r   r   test_atan_leading_termrs  }  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                    ^	^
 [         R                  [        S5      :X  d   e[        SS5      [        R                  L d   e[        SS5      S:X  d   e[        SS5      [
        S-  :X  d   e[        SS5      [
        S-  :X  d   e[        SS5      [
        [        SS5      -  :X  d   e[        SS5      [
        :X  d   e[        SS5      [
        [        SS5      -  :X  d   e[        SS5      [
        * S-  :X  d   e[        SS5      [
        * S-  :X  d   e[        SS	S
9n [        SS	S9n[        X5      n[        * [        U [        U-  -   [        U S-  US-  -   5      -  5      -  nUS4U [        44nUR                  U5      UR                  U5      :X  d   e[        SS	S9m	[        SS	S9m
[        T
T	5      [        T
T	-  5      [
        -
  :X  d   e[        SS	S9m
[        T
T	5      [        T
T	-  5      [
        -   :X  d   e[        S5      m
[        T
T	5      [        T
T	SS9:X  d   e[        SS	S9n[        SU5      S:X  d   e[        SS	S9n[        SU5      [
        :X  d   e[        T
[        5      S:X  d   e[        T
[        * 5      S[
        -  [        [!        T
5      [        R"                  5      -  [
        -
  :X  d   e[        T
T	5      R%                  [        5      [        * [        T	[        T
-  -   [        T	S-  T
S-  -   5      -  5      -  :X  d   e[        SS5      [        R                  L d   e[        T
T	5      ['        T	[        T
-  -   5      -
  nUR                  T	ST
S05      R%                  [&        5      S:X  d   eUR                  T	ST
S[        -  05      R%                  [&        5      [
        * [        [        [        S5      [        -  S-  5      -  -
  :X  d   eUR                  T	S[        -  T
S05      R%                  [&        5      [
        * S-  [        [        [        S5      [        -  5      -  -
  :X  d   eUR                  T	S[        -  T
S[        -  05      R%                  [&        5      [
        * [        [        SS5      5      -   [        [        SS5      5      -   :X  d   e[        SS	S
9n [        SS	S9n[        X5      nUR%                  [&        5      nU [        US0nU[        * [        [)        [        U -  U-   5      [        [)        U S-  US-  -   5      5      -  5      -  ['        [        U -  U-   [        U S-  US-  -   5      -  5      -   :X  d   eXx-
  R                  U5      R+                  S5      (       d   e[        ST	5      R%                  [        5      [-        [
        [!        T	5      S:  4S[/        T	S5      4[0        S	45      :X  d   e[        SU5      R%                  [        5      [-        [
        US:  4S[/        US5      4[        R                  S	45      :X  d   e[        SU 5      (       d   U" [        5      S:H  5       e[        SX-   5      R%                  [        5      [-        [
        US:  4S5      :X  d   e[        T
T	5      R%                  [        5      [-        S[        T
T	[        T	S-  T
S-  -   5      -   -  5      -  [/        T
S5      4[
        [!        T	5      S:  4S[!        T	5      S:  [/        [3        T	5      S5      -  4[0        S	45      :X  d   e[5        [        T	T
5      5      [        [5        T	5      [5        T
5      5      :X  d   e[7        [        T
T	5      T	5      T
* T	S-  T
S-  -   -  :X  d   e[7        [        T
T	5      T
5      T	T	S-  T
S-  -   -  :X  d   e[9        [7        [        T
T	5      R%                  [        5      T	5      5      T
* T	S-  T
S-  -   -  :X  d   e[9        [7        [        T
T	5      R%                  [        5      T
5      5      T	T	S-  T
S-  -   -  :X  d   e[;        [        SS5      R=                  S5      5      S:X  d   e[?        [@        U	U
4S j5        g )Nrk   r   rh   rm   ri   ry   ro   r   Trf   rH   rI   r   rQ   r   rT   Fr   urN   rl   rj   )r   Tz0.46365c                  :   > [        T T5      R                  S5      $ )Nry   )r)   r   )r   r   s   r   r   test_atan2.<locals>.<lambda>  s    uQ{'8'8';r   )!r)   r   r;   r   r6  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repsru  exrw   r   r   r   s            @@r   
test_atan2r~    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}));AE?""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                       " S S[         5      n U " S5      nU " S5      n[        [        X5      R                  5       S-
  5      S::  d   eg )Nc                       \ rS rSrSrS rSrg)test_issue_17461.<locals>.Ai  Tc                     [        S5      $ )Ng      @)r
   )selfprecs     r   _eval_evalf'test_issue_17461.<locals>.A._eval_evalf  s    :r   r   N)__name__
__module____qualname____firstlineno__r   r  __static_attributes__r   r   r   Ar    s    	r   r  XYg-DT!?r   )r   r   r)   r  )r  r   r   s      r   test_issue_17461r    sH    F  	
#A	#AuQ{  "%6675@@@r   c                     [        [        5      [        L d   e[         R                  [        S5      :X  d   e[        [        * 5      S:X  d   e[        [        5      S:X  d   e[        [
        5      S:X  d   e[        S5      [        S-  :X  d   e[        S5      [        S-  :X  d   e[        [        S5      S-  5      [        S-  :X  d   e[        S[        S5      -  5      [        S-  :X  d   e[        S[        S5      -  5      [        * S-  :X  d   e[        [        5      R                  [        5      SS[        S-  -   -  :X  d   e[        [        5      R                  SL d   e[        [        [        -  5      [        * [        [        5      -  :X  d   e[        S[        -  5      [        [        S5      -  :X  d   e[        [        5      R                  b   e[        [        5      R                  S	L d   e[        [         5      R                  SL d   e[        [        5      R                  S	L d   e[        [#        SS5      5      R$                  S	L d   e['        [         [)        [        5      5      (       d   e['        [         [+        [        5      5      (       d   e[        [)        [#        SS5      5      5      [#        SS5      :X  d   e[        [+        [#        SS5      5      5      [#        SS5      [        S-  -
  :X  d   eg )
Nrh   r   rm   rk   ry   ri   Trj   F)r$   r   r   r;   r   r   r   r"   r   r   rH   r   r   r   r<  rP   rM   r   r   r>   r+   r0   r   r   r   	test_acotr    sY   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            	      V   [        [        5      R                  [        5      [        [        S[        [        -  -
  5      [        S[        [        -  -   5      -
  -  S-  :X  d   e[        [        5      R                  [
        5      [        [        [        [        S-  * 5      [        [        S-  * S-
  5      -  5      * [        S-  -   -  [        [        S-  5      -  :X  d   e[        [        5      R                  [        5      [        [        [        S-  5      -  [        [        [        S-  * 5      [        [        S-  * S-
  5      -  5      -  :X  d   e[        [        5      R                  [        5      [        S[        -  5      :X  d   e[        [        5      R                  [        5      [        [        [        S-  5      -  [        [        [        S-  S-   [        S-  -  5      5      -  :X  d   e[        [        5      R                  [        5      [        [        [        [        S-  S-   [        S-  -  5      5      * [        S-  -   -  [        [        S-  5      -  :X  d   e[        [        * S-  5      R                  5       [        [        5      R                  [        5      R                  [        [        * S-  0S9:X  d   e[        [        S-  5      R                  5       [        [        5      R                  [        5      R                  [        [        S-  0S9:X  d   eg )Nrh   rk   rj   rl   rl  )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                      [        [        5      R                  5       S[        S-  S-   -  :X  d   e[        [        S 5        g )Nri   rk   rh   c                  >    [        [        5      R                  S5      $ r   )r$   r   r   r   r   r   r   !test_acot_fdiff.<locals>.<lambda>  rL  r   )r$   r   r   rG   r?   r   r   r   test_acot_fdiffr    s2    7==?b!Q$(m+++
78r   c                  V   [        S[        -  5      R                  [        5      [        :X  d   e[        [        [        -   5      R                  [        SS9[        [	        [        5      -  S-  [
        S-  -   [        [	        S5      -  S-  -
  :X  d   e[        [        [        -   5      R                  [        SS9[        [	        [        5      -  S-  [
        S-  -   [        [	        S5      -  S-  -
  :X  d   e[        [        [        -
  5      R                  [        SS9[        * [	        [        5      -  S-  [
        S-  -   [        [	        S5      -  S-  -   :X  d   e[        [        [        -
  5      R                  [        SS9[        * [	        [        5      -  S-  S[
        -  S-  -
  [        [	        S5      -  S-  -   :X  d   e[        [        5      R                  [        SS9[
        S-  :X  d   e[        [        5      R                  [        SS9[
        * S-  :X  d   e[        [        [        S-  -   5      R                  [        SS9[
        [        [        [        S5      S-  5      -  -
  :X  d   e[        [        [        S-  -   5      R                  [        SS9[        * [        [        S5      S-  5      -  :X  d   e[        [        [        S-  -
  5      R                  [        SS9[        [        [        S5      S-  5      -  :X  d   e[        [        [        S-  -
  5      R                  [        SS9[
        * [        [        [        S5      S-  5      -  -   :X  d   e[        [        S-  [        [        -  -
  [        S-  -
  5      R                  [        SS9[
        * S-  [        [	        S5      -  S-  -
  :X  d   e[        [        S-  [        [        -  -
  [        S-  -
  5      R                  [        SS9[
        * S-  [        [	        S5      -  S-  -
  :X  d   eg )Nrh   rD  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                  L    [        [        5      R                  [        4:X  d   eg N)r.   r   argsr   r   r   test_attributesr  $  s    q6;;1$r   c                  Z   [        [        S-  [        -
  5      [        [        5      :X  d   e[        [        [        -
  5      [        [        5      :X  d   e[        [        S-  [        -
  5      [        [        5      :X  d   e[        [        [        -
  5      [        [        5      * :X  d   eg 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    U " U5      R                   S   U* :H  $ )zEChecks 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                 :    U " U5      R                   R                  $ )zFChecks that the expr has been rewritten using f(-x) -> -f(x)
arg : -x
)r   is_Mulr  s     r   _check_odd_rewriter  6  s     9>>   r   c                 2    U " U5      R                   S   U:H  $ )z%Checks that the expr is not rewrittenr   r  r  s     r   _check_no_rewriter  =  s    9>>!##r   c                  p   [        S5      n [        S5      n[         /n[        [        [        [        [
        [        /nSSS-  * [        -  [        * S-  [        * [        -  [        * [        -
  /nU H]  nU H  n[        XV5      (       a  M   e   [        XPU-  5      (       d   eU" [        [        -
  5      U" [        [        -
  5      :X  a  M]   e   U H^  nU H  n[        XV5      (       a  M   e   [        XPU-  5      (       d   eU" [        [        -
  5      U" [        [        -
  5      * :X  a  M^   e   g )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  B  s#   AAAA5DS$d
+Cq$whlRCGaRTA26:JD&t2222  s++++E1q5k" 	" "	  D%d1111  s++++EAE{l# 	# #	 r   c                  b   [        [        5      R                  [        5      [        :X  d   e[        [        5      R                  [        5      S:X  d   e[	        [        5      R                  [        5      [        :X  d   e[        [        5      R                  [        5      S[        -  :X  d   eg Nrh   )r.   r   r   r*   r0   r+   r   r   r   test_as_leading_term_issue_5272r  V  sz    q6!!!$)))q6!!!$)))q6!!!$)))q6!!!$!+++r   c                     [        S[        -  5      R                  [        5      [        SS5      :X  d   e[        [        R
                  5      R                  [        5      [        [        R
                  5      :X  d   e[        S[        -  5      R                  [        5      [        SS5      :X  d   e[        [        R
                  5      R                  [        5      [        [        R
                  5      :X  d   e[        S[        -  5      R                  [        5      [        [        R                  [        R                  5      :X  d   e[        S[        -  5      R                  [        5      [        [        R                  [        R                  5      :X  d   e[        S[        -  5      R                  [        5      [        [        R                  [        R                  5      :X  d   e[        S[        -  5      R                  [        5      [        [        R                  [        R                  5      :X  d   e[        [        [        S-   -  5      S[        -  -  n U R                  [        5      [        S-  :X  d   eg )Nrh   ri   rm   ry   )r.   r   r   r   r   r   r*   r-   r5  r4  r,   r0   r+   r   r   s    r   test_leading_termsr  ]  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                     [        [        [        S-  [        S-   5      R                  [        5      [	        [        S-  [        S-   -  5      R                  [        5      -
  5      S:X  d   e[        [	        [
        [        -  5      R                  [
        SS5      [        [
        [        5      R                  [
        SS5      -
  [        S[        5      -   [	        S5      -
  5      [        [
        S-  5      :X  d   e[        [	        [
        [        -  5      R                  [        SS5      [        [
        [        5      R                  [        SS5      -
  [        [
        S5      -   [	        [
        5      -
  5      [        [        S-
  S-  [        S45      :X  d   e[        [	        [
        [        -   [        -  5      R                  [        SS5      [        [
        [        -   [        5      R                  [        SS5      -
  [        S[
        -   S5      -   [	        S[
        -   5      -
  5      [        [        S-
  S-  [        S45      :X  d   e[        [        [
        [        5      /5      R                  [
        [        /5      [        [        [
        S-  [        S-  -   -  [
        * [
        S-  [        S-  -   -  //5      :X  d   eg )Nrk   rh   r   rl   rm   ry   )
r5   r)   r   r   r(   r   r9   r8   r4   jacobianr   r   r   test_atan2_expansionr  l  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                      S n U " [         SSS5        U " [         SSS5        U " [        SSS5        U " [        SSS5        g )Nc                     [        U " SU-  5      R                  5       U " S[        -  5      R                  [        US9R	                  5       R                  [        U5      -
  5      U:  d   eg )Nrh   )dir)r   r  r   r9   removeOr   )rP   vr   rw   s       r   ttest_aseries.<locals>.ty  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  x  sB    O dCddD#tdCddD#tr   c                     [        SSS9n [        SSS9n[        SSS9n[        SU -  [        -  5      S	:X  d   e[        SU -  [        -  5      S
:X  d   e[	        SU -  [        -  5      S
:X  d   e[        SU -  [        -  5      [        L d   e[        SU -  [        -  5      [        [        U -  5      :X  d   e[        SU -  [        -  5      S
:X  d   e[	        SU -  [        -  5      S
:X  d   e[        SU -  [        -  5      [        L d   e[        SU -  [        -  5      S	:X  d   e[        SU -  [        -  5      S
:X  d   e[	        SU -  [        -  5      S
:X  d   e[        SU -  [        -  5      [        L d   e[        SU -  [        -  5      [        [        U -  5      :X  d   e[        SU -  [        -  5      S
:X  d   e[	        SU -  [        -  5      S
:X  d   e[        SU -  [        -  5      [        L d   e[        SU -  [        -  5      [        S[        -  U -  5      :X  d   e[        SU -  [        -  5      [        S[        -  U -  5      :X  d   e[	        SU -  [        -  5      [	        S[        -  U -  5      :X  d   e[        SU -  [        -  5      [        S[        -  U -  5      :X  d   e[        SU-  [        -  5      S	:X  d   e[        SU-  [        -  5      S
:X  d   e[	        SU-  [        -  5      S
:X  d   e[        SU-  [        -  5      [        L d   e[        SU-  [        -  5      S	:X  d   e[        SU-  [        -  5      S
:X  d   e[	        SU-  [        -  5      S
:X  d   e[        SU-  [        -  5      [        L d   e[        SU-  [        -  5      S	:X  d   e[        SU-  [        -  5      S
:X  d   e[	        SU-  [        -  5      S
:X  d   e[        SU-  [        -  5      [        L d   e[        SU-  [        -  5      S	:X  d   e[        SU-  [        -  5      S
:X  d   e[	        SU-  [        -  5      S
:X  d   e[        SU-  [        -  5      [        L d   e[        SU-  [        -  5      [        S[        -  U-  5      :X  d   e[        SU-  [        -  5      [        S[        -  U-  5      :X  d   e[	        SU-  [        -  5      [	        S[        -  U-  5      :X  d   e[        SU-  [        -  5      [        S[        -  U-  5      :X  d   e[        SU-  [        -  5      S	:X  d   e[        SU-  [        -  5      S
:X  d   e[	        SU-  [        -  5      S
:X  d   e[        SU-  [        -  5      [        L d   e[        SU-  [        -  5      S:X  d   e[        SU-  [        -  5      S
:X  d   e[	        SU-  [        -  5      S
:X  d   e[        SU-  [        -  5      [        L d   e[        SU-  [        -  5      S	:X  d   e[        SU-  [        -  5      S
:X  d   e[	        SU-  [        -  5      S
:X  d   e[        SU-  [        -  5      [        L d   e[        SU-  [        -  5      S:X  d   e[        SU-  [        -  5      S
:X  d   e[	        SU-  [        -  5      S
:X  d   e[        SU-  [        -  5      [        L d   e[        SU-  [        -  5      [        S[        -  U-  5      :X  d   e[        SU-  [        -  5      [        S[        -  U-  5      :X  d   e[	        SU-  [        -  5      [	        S[        -  U-  5      :X  d   e[        SU-  [        -  5      [        S[        -  U-  5      :X  d   e[        S[        -  [        -  5      [        S[        -  [        -  5      :X  d   e[        S[        -  [        -  5      [        S[        -  [        -  5      :X  d   e[	        S[        -  [        -  5      [	        S[        -  [        -  5      :X  d   e[        S[        -  [        -  5      [        S[        -  [        -  5      :X  d   e[        S[        -  [        -  5      [        S[        -  [        -  5      :X  d   e[        S[        -  [        -  5      [        S[        -  [        -  5      :X  d   e[	        S[        -  [        -  5      [	        S[        -  [        -  5      :X  d   e[        S[        -  [        -  5      [        S[        -  [        -  5      :X  d   e[        S[        -  [        -  5      [        S[        -  [        -  5      :X  d   e[        S[        -  [        -  5      [        S[        -  [        -  5      :X  d   e[	        S[        -  [        -  5      [	        S[        -  [        -  5      :X  d   e[        S[        -  [        -  5      [        S[        -  [        -  5      :X  d   e[        S[        -  [        -  5      [        S[        -  [        -  5      :X  d   e[        S[        -  [        -  5      [        S[        -  [        -  5      :X  d   e[	        S[        -  [        -  5      [	        S[        -  [        -  5      :X  d   e[        S[        -  [        -  5      [        S[        -  [        -  5      :X  d   e[        S[        -  [        -  5      [        S[        -  [        -  5      :X  d   e[        S[        -  [        -  5      [        S[        -  [        -  5      :X  d   e[	        S[        -  [        -  5      [	        S[        -  [        -  5      :X  d   e[        S[        -  [        -  5      [        S[        -  [        -  5      :X  d   eg )Nr   TrK   rw   rx   o)r  rm   rh   r   ry   g      @g      @g      @rV  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                  `   [        [        S 5        [        [        S 5        [        [        5      R	                  5       [
        :X  d   e[        [        5      R	                  5       [        :X  d   e[        [        S 5        [        [        S 5        [        [        5      R	                  5       [        :X  d   e[        [        5      R	                  5       [        :X  d   e[        [        5      R	                  5       [        :X  d   e[        [        5      R	                  5       [        :X  d   eg )Nc                  <    [        [        5      R                  5       $ r  )r.   r   inverser   r   r   r   test_inverses.<locals>.<lambda>      3q6>>#3r   c                  <    [        [        5      R                  5       $ r  )r*   r   r  r   r   r   r   r    r  r   c                  <    [        [        5      R                  5       $ r  )r,   r   r  r   r   r   r   r    r  r   c                  <    [        [        5      R                  5       $ r  )r-   r   r  r   r   r   r   r    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            	         [        SSS9u  pX[        -  -   nS GH&  n[        U5      R                  US9[        U 5      [	        U5      -  [        U 5      [        U5      -  4:X  d   e[        U5      R                  US9[        U 5      [	        U5      -  [        U 5      * [        U5      -  4:X  d   e[        U5      R                  US9[        SU -  5      [        SU -  5      [	        SU-  5      -   -  [        SU-  5      [        SU -  5      [	        SU-  5      -   -  4:X  d   e[        U5      R                  US9[        SU -  5      * [        SU -  5      [	        SU-  5      -
  -  [        SU-  5      [        SU -  5      [	        SU-  5      -
  -  4:X  d   e[        U 5      R                  US9[        U 5      S4:X  d   e[        U 5      R                  US9[        U 5      S4:X  d   e[        U 5      R                  US9[        U 5      S4:X  d   e[        U 5      R                  US9[        U 5      S4:X  a  GM'   e   g )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    sG   5t$DA	aC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                     S GHp  n S GHe  nX-  n[        S[        US-   S-  S-   S5      5       GH9  nS[        X25      :X  d  M  U[        -  U-  n[	        U5      R                  [        5      n[        U5      R                  [        5      nUR                  [        [        5      (       a   SX24-  5       eUR                  [        [        5      (       a   SX24-  5       eS[        [	        UR                  S5      5      UR                  S5      -
  5      :  d   SX24-  5       eS[        [        UR                  S5      5      UR                  S5      -
  5      :  a  GM1   SX24-  5       e   GMh     GMs     [        [        S	-  5      R                  [        5      [        [        [        S
-  5      S-  [        R                  -   5      :X  d   e[        [        [        SS5      -  S-  SS9R                  [        5      [        [        [        [        SS5      -  5      * S-  [        R                  -   5      * :X  d   e[        [        S[        [        R                  SS9SS9R                  [        5      S:X  d   e[        [        S-  S-  5      nS[        [        S5      * S-   5      -  [        [        S5      S-   5      -  S-  S[        S5      -  [        [        S5      S-   5      -  S-  -
  [        [        S5      S-   5      [        S[        S5      -  [        [        S5      S-   5      -  [        S5      [        [        S5      * S-   5      -  -
  [        S5      [        [        S5      * S-   5      -  -   S[        S5      -  -   S-   5      -  S-  -
  [        [        S5      * S-   5      [        S[        S5      -  [        [        S5      S-   5      -  [        S5      [        [        S5      * S-   5      -  -
  [        S5      [        [        S5      * S-   5      -  -   S[        S5      -  -   S-   5      -  S-  -
  [        SS5      -
  [        S5      [        S[        S5      -  [        [        S5      S-   5      -  [        S5      [        [        S5      * S-   5      -  -
  [        S5      [        [        S5      * S-   5      -  -   S[        S5      -  -   S-   5      -  S-  -   S[        S5      -  [        [        S5      S-   5      -  S-  -   [        S5      [        [        S5      * S-   5      -  S-  -   S[        S5      -  [        [        S5      * S-   5      -  S-  -   [        S5      [        [        S5      * S-   5      -  [        S[        S5      -  [        [        S5      S-   5      -  [        S5      [        [        S5      * S-   5      -  -
  [        S5      [        [        S5      * S-   5      -  -   S[        S5      -  -   S-   5      -  S-  -   S[        S5      -  S-  -   [        S5      [        [        S5      * [        [        S5      S-   5      -  [        [        S5      S-  [        S5      [        [        S5      * S-   5      -  S-  -   [        S5      [        S[        S5      -  [        [        S5      S-   5      -  [        S5      [        [        S5      * S-   5      -  -
  [        S5      [        [        S5      * S-   5      -  -   S[        S5      -  -   S-   5      -  S-  -   [        SS5      -   5      -  S-  S[        S5      -  [        [        S5      S-  [        S5      [        [        S5      * S-   5      -  S-  -   [        S5      [        S[        S5      -  [        [        S5      S-   5      -  [        S5      [        [        S5      * S-   5      -  -
  [        S5      [        [        S5      * S-   5      -  -   S[        S5      -  -   S-   5      -  S-  -   [        SS5      -   5      -  [        S[        S5      -  [        [        S5      S-   5      -  [        S5      [        [        S5      * S-   5      -  -
  [        S5      [        [        S5      * S-   5      -  -   S[        S5      -  -   S-   5      -  S-  -
  S[        S5      -  [        [        S5      * S-   5      -  [        [        S5      S-  [        S5      [        [        S5      * S-   5      -  S-  -   [        S5      [        S[        S5      -  [        [        S5      S-   5      -  [        S5      [        [        S5      * S-   5      -  -
  [        S5      [        [        S5      * S-   5      -  -   S[        S5      -  -   S-   5      -  S-  -   [        SS5      -   5      -  S-  -
  [        S5      [        [        S5      S-  [        S5      [        [        S5      * S-   5      -  S-  -   [        S5      [        S[        S5      -  [        [        S5      S-   5      -  [        S5      [        [        S5      * S-   5      -  -
  [        S5      [        [        S5      * S-   5      -  -   S[        S5      -  -   S-   5      -  S-  -   [        SS5      -   5      -  [        S[        S5      -  [        [        S5      S-   5      -  [        S5      [        [        S5      * S-   5      -  -
  [        S5      [        [        S5      * S-   5      -  -   S[        S5      -  -   S-   5      -  S-  -   [        [        S5      S-  [        S5      [        [        S5      * S-   5      -  S-  -   [        S5      [        S[        S5      -  [        [        S5      S-   5      -  [        S5      [        [        S5      * S-   5      -  -
  [        S5      [        [        S5      * S-   5      -  -   S[        S5      -  -   S-   5      -  S-  -   [        SS5      -   5      S-  -   [        R                  -   [        [        S5      * S-   5      [        [        S5      S-  [        S5      [        [        S5      * S-   5      -  S-  -   [        S5      [        S[        S5      -  [        [        S5      S-   5      -  [        S5      [        [        S5      * S-   5      -  -
  [        S5      [        [        S5      * S-   5      -  -   S[        S5      -  -   S-   5      -  S-  -   [        SS5      -   5      -  [        S[        S5      -  [        [        S5      S-   5      -  [        S5      [        [        S5      * S-   5      -  -
  [        S5      [        [        S5      * S-   5      -  -   S[        S5      -  -   S-   5      -  S-  -   [        S5      [        [        S5      * S-   5      -  [        [        S5      S-  [        S5      [        [        S5      * S-   5      -  S-  -   [        S5      [        S[        S5      -  [        [        S5      S-   5      -  [        S5      [        [        S5      * S-   5      -  -
  [        S5      [        [        S5      * S-   5      -  -   S[        S5      -  -   S-   5      -  S-  -   [        SS5      -   5      -  S-  -   5      -  S-  -   nUR                  [        5      U:X  d   eUR                  5       UR                  5       :X  d   e[        [        S-  S-  5      R                  [        5      [	        [        S-  5      [	        [        [        SS5      -  5      -  [        [        S-  5      [        [        [        SS5      -  5      -  -   :X  d   eg )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    AA 1c1q51*q."56A	>"QAQ-BQ-B!vvc3//N1E1NN/!vvc3//N1E1NN/#c!''!*o&C"DDcFZ^_]cFccD#c!''!*o&C"DDcFZ^_]cFccD 7  & 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                      [        [        S-  5      R                  [        5      R	                  S5      [        [        S-  5      R	                  S5      :X  d   eg )Ni  r  )r*   r   r   r"   r  r   r   r   test_sincos_rewrite_sqrt_257r  ^  sA    r#v;t$**2.#bf+2C2CB2GGGGr   c                  :   S GH  n S GH  nX-  n[        S[        US-   S-  S-   S5      5       GH]  nS[        X25      :X  d  M  U[        -  U-  nSU-  U:w  a  SU-  SU-  :w  a  [	        U5      R                  [        5      nUR                  [        [        5      (       a   SX24-  5       eS[        [	        UR                  S	5      5      UR                  S
5      -
  5      :  d   SX24-  5       eUS:w  d  M  X2:w  d  M  [        U5      R                  [        5      nUR                  [        [        5      (       a   SX24-  5       eS[        [        UR                  S	5      5      UR                  S
5      -
  5      :  a  GMU   SX24-  5       e   GM     GM     g )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  c  sa    AA1c1q51*q."56A	>"QA!qQqSAaCZ V^^D1#%66#s#3#3R5IQF5RR3#c3qwwqz?RXXa[+H&JJiL`deciLiiJQ16 V^^D1#%66#s#3#3R5IQF5RR3#c3qwwqz?RXXa[+H&JJiL`deciLiiJ 7  r   c                  F   [        SSS9n [        S5      n[        R                  [        S5      :X  d   e[        [        5      [
        L d   e[        S5      S:X  d   e[        [        5      S:X  d   e[        [        S-  5      [        L d   e[        [        * S-  5      [        L d   e[        [        S	-  5      S[        S
5      -  S
-  :X  d   e[        [        S
-  5      S:X  d   e[        [        [        SS5      -  5      [        L d   e[        [        [        SS5      -  5      [        [        [        SS5      -  5      * :X  d   e[        [        [        S
S5      -  5      [        S5      * :X  d   e[        [        5      S[        S5      -  :X  d   e[        U [        -  5      S[        U 5      -  :X  d   e[        U * 5      [        U 5      :X  d   e[        [        U 5      5      U :X  d   e[        U5      R                  5       [        [        U5      5      :X  d   e[        U5      R                  5       [        [        U5      5      [        [!        U5      5      -  [#        [        U5      5      S-  [%        [!        U5      5      S-  -  [        [        U5      5      S-  [        [!        U5      5      S-  -  -   -  [#        [        U5      5      [%        [!        U5      5      -  [#        [        U5      5      S-  [%        [!        U5      5      S-  -  [        [        U5      5      S-  [        [!        U5      5      S-  -  -   -  4:X  d   e[        U 5      R'                  SS9S[        U 5      -  :X  d   e[        SU -  5      R'                  SS9SS[        U 5      S-  -  S-
  -  :X  d   e[        U 5      R(                  S:X  d   e[        U5      R*                  S :X  d   e[        [,        5      R.                  b   e[        [0        5      R.                  SL d   e[        U 5      R3                  5       [        U 5      :X  d   e[        SSS9R4                  S:X  d   e[        U 5      R4                  S :X  d   e[        [        S-  SS9R4                  S:X  d   e[7        [        U 5      U SS	S9SU S-  S-  -   SU S-  -  S-  -   [9        U S	-  5      -   :X  d   e[7        [        [        U 5      5      5      SU S-  S-  -   SU S-  -  S-  -   [9        U S	-  5      -   :X  d   e[7        [        [        U 5      5      U [        S
-  S-  SS9S[        U [        [        S
S5      -  -
  5      -  U [        [        S
S5      -  -
  [        S
S5      -  S-  -   U [        [        S
S5      -  -
  [        SS5      -  S-  -   [9        U [        [        S
S5      -  -
  S-  U [        [        S
S5      -  45      -   :X  d   e[        U 5      R;                  U 5      [=        U 5      [        U 5      -  :X  d   e[        U5      R?                  SU5      SUS-  -  S-  :X  d   e[        U5      R?                  S	U5      SUS	-  -  S-  :X  d   e[        U5      R?                  SU5      S:X  d   eg )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  v  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            	         [        [        5      R                  [        5      S[        [        [        -  5      S-  [        [        * [        -  5      S-  -   -  :X  d   e[        [        5      R                  [
        5      S[        [        5      -  :X  d   e[        [        5      R                  [        5      [        [        S-  5      S-  S-   [        [        S-  5      S-  * S-   -  :X  d   e[        [        5      R                  [        5      [        [        5      :X  d   e[        [        5      R                  [        5      [        [        5      :X  d   e[        [        5      R                  [        5      [        [        S-  5      S-  S-   [        [        S-  5      S-  S-
  -  :X  d   e[        [        5      R                  [        5      S[        [        [        S-  -   SS9-  :X  d   e[        [        5      R                  [        5      [        [        S-  5      S-  S-   [        [        S-  5      S-  * S-   -  :X  d   e[        [        5      R                  [        5      [        [        * [        S-  -   SS9:X  d   e[        [        5      R                  [        5      [        [        S5      [        [        [        -  5      [        [         R"                  * [        5      -  -  [%        [        S5      4S5      :X  d   e[        [        5      R                  [        5      R'                  [        S5      [        S5      :X  d   eg )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                      [        [        5      R                  5       [        [        5      [        [        5      -  :X  d   e[	        [
        S 5        g )Nc                  >    [        [        5      R                  S5      $ r   )r-   r   r   r   r   r   r    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            
        ^ [        SSS9m[        S5      n [        S5      nS[        S5      -  nUR                  U5      S:X  d   eUR                  U5      S:X  d   e[        R                  [        S5      :X  d   e[        S5      [        L d   e[        [        5      [        L d   e[        [        5      [        L d   e[        [        S-  5      S:X  d   e[        [        * S-  5      S:X  d   e[        [        S	-  5      S:X  d   e[        [        S
-  5      S[        S
5      -  S
-  :X  d   e[        [        [        SS5      -  5      S:X  d   e[        [        [        SS5      -  5      [        [        [        SS5      -  5      * :X  d   e[        [        [        S
S5      -  5      [        S5      :X  d   e[        [        5      [        * [        S5      -  :X  d   e[        T[        -  5      [        * [        T5      -  :X  d   e[        T* 5      [        T5      * :X  d   e[        [        T5      5      T:X  d   e[        U 5      R                  5       [        [        U 5      5      :X  d   e[        U 5      R                  5       [        [!        U 5      5      [#        [%        U 5      5      -  [        [!        U 5      5      S-  [#        [%        U 5      5      S-  -  ['        [!        U 5      5      S-  [        [%        U 5      5      S-  -  -   -  ['        [!        U 5      5      * [        [%        U 5      5      -  [        [!        U 5      5      S-  [#        [%        U 5      5      S-  -  ['        [!        U 5      5      S-  [        [%        U 5      5      S-  -  -   -  4:X  d   e[        T5      R)                  SS9S[        T5      -  :X  d   e[        ST-  5      R)                  SS9SS[        T5      -  ['        T5      -  -  :X  d   e[        T5      R*                  S:X  d   e[        U 5      R,                  S :X  d   e[        [.        5      R0                  b   e[        [2        5      R0                  SL d   e[        T5      R5                  5       [        T5      :X  d   e[        SSS9R6                  S:X  d   e[        T5      R6                  S :X  d   e[        [        S-  SS9R6                  S:X  d   e[9        [        T5      T[        S-  S	S9ST[        S-  -
  S-  S-  -   ST[        S-  -
  S-  -  S-  -   [;        T[        S-  -
  S	-  T[        S-  45      -   :X  d   e[9        [        T5      TSS	S9ST-  TS	-  -   STS
-  -  S-  -   STS-  -  S-  -   [;        TS	-  5      -   :X  d   e[        T5      R=                  T5      [?        T5      * [        T5      -  :X  d   e[        T5      RA                  ST5      S:X  d   e[        T5      RA                  S
T5      STS
-  -  S-  :X  d   e[        T5      RA                  ST5      STS-  -  S-  :X  d   e[C        [D        U4S j5        g )Nr   TrI   re   rh   r   rk   ri   rn   ry   rl   r   rr   rm   r   Fr   r  r   ih     i;  c                  8   > [        T 5      R                  S5      $ r   )r,   r   r   s   r   r   test_csc.<locals>.<lambda>	  s    s1v||Ar   )#r   r,   r.   rx  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            
      $   [        SSS9n [        U 5      [        L d   e[        [        5      [        L d   e[        S5      S:X  d   e[        S5      [        :X  d   e[        [
        5      [        S-  :X  d   e[        [
        * 5      [        S-  :X  d   e[        [        5      [        S-  :X  d   e[        [        [        [        SS	5      -  5      5      [        [        S
S	5      -  :X  d   e[        S[        S5      -   5      [        [        SS5      -  :X  d   e[        S[        S
5      -  5      [        S-  :X  d   e[        [        S	S[        S5      -  -
  5      5      [        S-  :X  d   e[        [        S	S[        S5      -  -   5      * 5      [        [        SS5      -  :X  d   e[        [        SS[        S5      -  S-  -   5      5      [        [        S
S5      -  :X  d   e[        [        SS[        S5      -  S-  -   5      * 5      [        [        SS5      -  :X  d   e[        [        S5      [        S5      -
  5      [        [        SS5      -  :X  d   eS GH#  n[        U5       GH  n[        X!5      S:X  d  M  [        [        U[        -  U-  5      5      U[        -  U-  :X  d   e[        [        U[        -  U-  5      * 5      [        U[        -  U-  -
  :X  d   e[        [        U[        -  U-  5      5      [        S-  [        [        U[        -  U-  5      5      -
  :X  d   e[        [        U[        -  U-  5      * 5      [        S-  [        [        U[        -  U-  5      * 5      -
  :X  a  GM   e   GM&     [        [        5      R                  [        5      S[        S-  [        SS[        S-  -  -
  5      -  -  :X  d   e[        [        5      R                  [         5      ["        [!        [        SS[        S-  -  -
  5      ["        [        -  -   5      -  [        S-  -   :X  d   e[        [        5      R                  [$        5      [%        S[        -  5      * [        S-  -   :X  d   e[        [        5      R                  [&        5      ['        S[        -  5      :X  d   e[        [        5      R                  [(        5      [        S[        [        S-  5      [        -  -
  -  S-  [        [        S-  5      [)        [        [        S-  S-
  5      5      -  [        -  -   :X  d   e[        [        5      R                  [*        5      [        S[        [        S-  5      [        -  -
  -  S-  [        [        S-  5      [+        S[        [        S-  S-
  5      -  5      -  [        -  -   :X  d   e[        [        5      R                  [        5      [        [        5      * [        S-  -   :X  d   e[-        [.        S 5        g )Nre   Tr0  rh   r   ri   rk   r   rm   ry   rl   rn   r|   rp   rr   r   r~   )ry   rm   rn   c                  >    [        [        5      R                  S5      $ r   )r&   r   r   r   r   r   r   test_asec.<locals>.<lambda>1  rL  r   )r   r&   r   r   r   r   r-   r   r"   r   r6   r,   r%   r   r   r   r   r   r'   r#   r(   r$   rG   r?   )re   r   rO  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8C3{aCBqM*c"fQh666SR]N+rCF1H}<<<CBqM*bdT#c"fQh-5H.HHHHSR]N+r!tdCBqM>6J/JJJJ   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                  X   [        [        R                  5      R                  SL d   e[	        SSSS9n [        U 5      R
                  SL d   e[        [        5      R                  b   e[        [        5      R                  b   e[	        SSSS9n[        U5      R                  SL d   eg )NFrP   T)rO   rL   r  rJ   finite)r&   r   r   r   r   r   r   rH   )rP   r  s     r   test_asec_is_realr   4  s    <5(((sT40A7##t+++7??"""7??"""st,A7??e###r   c            	      2   [        S[        -  5      R                  [        5      [        S-  :X  d   e[        [        S-   5      R                  [        5      [	        S5      [	        [        5      -  :X  d   e[        [        S-
  5      R                  [        5      [        :X  d   e[        [        5      R                  [        SS9[
        * [        [        5      -  [
        [        S5      -  -   :X  d   e[        [        5      R                  [        SS9[
        [        [        5      -  S[        -  -   [
        [        S5      -  -
  :X  d   e[        [
        [        -  S-   5      R                  [        SS9[        S5      :X  d   e[        [
        * [        -  S-   5      R                  [        SS9[        S5      * :X  d   e[        [
        [        -  S-
  5      R                  [        SS9S[        -  [        S5      -
  :X  d   e[        [
        * [        -  S-
  5      R                  [        SS9[        S5      :X  d   e[        [
        * [        S-  -  [        -   [        S5      S-  -
  5      R                  [        SS9[        [
        [        S[	        S5      -
  5      -  -   :X  d   e[        [
        * [        S-  -  [        -   [        S5      S-  -
  5      R                  [        SS9[        [
        [        S[	        S5      -
  5      -  -   :X  d   eg )Nrh   rk   rD  ri   rV        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                  z   [        [        5      R                  [        SS5      [        [	        S5      -  [        [	        [        5      -  -
  [        [        S-  -  S-  -
  S[        -  [        S-  -  S-  -
  S[        -  [        S-  -  S	-  -
  S
[        -  [        S-  -  S-  -
  [        [        S-  5      -   :X  d   e[        [        5      R                  S[        5      n U S[        -  [        S-  -  S-  :X  d   e[        [        5      R                  S[        U S5      S[        -  [        S-  -  S	-  :X  d   eg )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  O  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            
      j
   [        [        5      [        L d   e[        S5      [        S-  :X  d   e[        S5      [        * S-  :X  d   e[        [        5      S:X  d   e[        [        * 5      S:X  d   e[        [        5      S:X  d   e[        S5      [        L d   e[        [        S5      5      S[        -   :X  d   e[        [        S5      5      S[        -   :X  d   e[        [        S	5      5      S	S[        -  -
  :X  d   e[        [         [        [        5      5      (       d   e[        [         [        [        5      5      (       d   e[        S[        S5      -  5      [        S-  :X  d   e[        [        [        [        S
S5      -  5      5      [        * S-  :X  d   e[        [        SS[        S5      -  S-  -   5      5      [        S-  :X  d   e[        [        SS[        S5      -  S-  -   5      * 5      [        * S-  :X  d   e[        S5      [        * S	-  :X  d   e[        [        SS[        S5      -  -   5      * 5      [        * S-  :X  d   e[        [        SS[        S5      -  -
  5      5      [        [        SS5      -  :X  d   e[        S[        S5      -   5      [        S-  :X  d   e[        [        S5      [        S	5      -
  5      [        [        SS5      -  :X  d   e[        [        5      R                  [        5      S[        S-  [        SS[        S-  -  -
  5      -  -  :X  d   e[        [        5      R                  [        5      [        * [        [        SS[        S-  -  -
  5      [        [        -  -   5      -  :X  d   e[        [        5      R                  [        5      [        S[        -  5      :X  d   e[        [        5      R                  [         5      [!        S[        -  5      * [        S-  -   :X  d   e[        [        5      R                  ["        5      [#        [        [        S-  S-
  5      5      * [        S-  -   [        [        S-  5      -  [        -  :X  d   e[        [        5      R                  [$        5      [%        S[        [        S-  S-
  5      -  5      * [        S-  -   [        [        S-  5      -  [        -  :X  d   e[        [        5      R                  [&        5      ['        [        5      * [        S-  -   :X  d   e[)        [*        S 5        g )Nrh   rk   ri   r   ry   ro   rm   r   rn   r   rl   rj   r|   rp   r{   r~   c                  >    [        [        5      R                  S5      $ r   )r%   r   r   r   r   r   r   test_acsc.<locals>.<lambda>z  rL  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  X  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                     [        [        5      R                  [        5      [        [        5      :X  d   e[        [        5      R                  [        5      [        [        5      :X  d   e[        [        5      R                  [
        5      S[        -  [        [        [        -  5      [        [        * [        -  5      -
  -  :X  d   e[        [        5      R                  [        5      S[        [        5      -  :X  d   e[        [        5      R                  [        5      [        [        S-  5      S-  S-   S[        [        S-  5      -  -  :X  d   e[        [        5      R                  [        5      [        [        S-  5      S-  S-   S[        [        S-  5      -  -  :X  d   e[        [        5      R                  [        5      S[        [        [        S-  -
  SS9-  :X  d   e[        [        5      R                  [        5      [        [        * [        S-  -   SS9:X  d   e[        S[        [        [        [        5      * 5      -
  5      R                  [        5      S[        [        * S-  S-
  [        [        [        [        [        5      -  5      -   [        [        [        * S-  [        [        [        [        5      -  -   SS9-  -   SS9-  :X  d   e[        [        5      R                  [        5      [	        S5      [	        [        [        -  5      [        [        R                  [        5      -  -  :X  d   e[        [        5      R                  [        5      R!                  [        S5      [        S5      :X  d   eg )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  }  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                  D   [        S[        -  5      R                  [        5      [        :X  d   e[        [        S-   5      R                  [        5      [        S-  :X  d   e[        [        S-
  5      R                  [        5      [        * S-  :X  d   e[        [        5      R                  [        SS9[        [        [        5      -  [        S-  -   [        [        S5      -  -
  :X  d   e[        [        5      R                  [        SS9[        * [        [        5      -  S[        -  S-  -
  [        [        S5      -  -   :X  d   e[        [        [        -  S-   5      R                  [        SS9[        S5      :X  d   e[        [        * [        -  S-   5      R                  [        SS9[        [        S5      -
  :X  d   e[        [        [        -  S-
  5      R                  [        SS9[        * [        S5      -
  :X  d   e[        [        * [        -  S-
  5      R                  [        SS9[        S5      * :X  d   e[        [        * [        S-  -  [        -   [        S5      S-  -
  5      R                  [        SS9[        * S-  [        [        [        S5      S-   5      -  -   :X  d   e[        [        * [        S-  -  [        -   [        S5      S-  -
  5      R                  [        SS9[        * S-  [        [        [        S5      S-   5      -  -   :X  d   eg )Nrh   rk   rD  ri   ry   rV  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                     [        [        5      R                  [        SS5      [        * [	        S5      -  [
        S-  -   [        [	        [        5      -  -   [        [        S-  -  S-  -   S[        -  [        S-  -  S-  -   S[        -  [        S-  -  S	-  -   S
[        -  [        S-  -  S-  -   [        [        S-  5      -   :X  d   e[        [        5      R                  S[        5      n U S[        -  [        S-  -  S	-  :X  d   e[        [        5      R                  S[        U S5      S
[        -  [        S-  -  S-  :X  d   eg )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                  $   [        [        S-   5      R                  [        SS [        5      [        S5      * [        -   [        S5      [        -  [        -  S-  -   [        S5      [        -  [        S-  -  S-  -
  [        S5      [        -  [        S-  -  S-  -   [        [        S-  5      -   :X  d   e[        [        S-   5      R                  [        SS [        * 5      [        S5      [        S5      [        -  [        -  S-  -
  [        S5      [        -  [        S-  -  S-  -   [        S5      [        -  [        S-  -  S-  -
  [        [        S-  5      -   :X  d   e[        [        S-
  5      R                  [        SS [        5      [        S5      * [        S5      [        -  [        -  S-  -
  [        S5      [        -  [        S-  -  S-  -
  [        S5      [        -  [        S-  -  S-  -
  [        [        S-  5      -   :X  d   e[        [        S-
  5      R                  [        SS [        * 5      [        S5      [        -
  [        S5      [        -  [        -  S-  -   [        S5      [        -  [        S-  -  S-  -   [        S5      [        -  [        S-  -  S-  -   [        [        S-  5      -   :X  d   e[        S[        -   5      R                  [        SS 5      [        S-  [        S5      [        [        * 5      -  -
  [        S5      [        * [        S5      S-  -  -  S-  -
  S[        S5      -  [        * [        S5      S-  -  -  S	-  -
  [        [        S-  5      -   :X  d   e[        S
[        -   5      R                  [        SS 5      [        * S-  [        S5      [        [        5      -  -   [        S5      [        [        S5      S-  -  -  S-  -   S[        S5      -  [        [        S5      S-  -  -  S	-  -   [        [        S-  5      -   :X  d   e[        [        [        5      5      R                  [        SS 5      [        S-  [        S5      [        [        * 5      -  -
  [        S5      [        * [        S5      S-  -  -  S-  -   [        S5      [        * [        S5      S-  -  -  S-  -
  [        [        S-  5      -   :X  d   e[        [        [        5      * 5      R                  [        SS 5      [        * S-  [        S5      [        [        * 5      -  -   [        S5      [        * [        S5      S-  -  -  S-  -
  [        S5      [        * [        S5      S-  -  -  S-  -   [        [        S-  5      -   :X  d   eg )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                  
   [        [        S-   5      R                  [        SS [        5      [        S5      * [	        S5      [        -  [        -  S-  -
  [	        S5      [        -  [        S-  -  S-  -   [	        S5      [        -  [        S-  -  S-  -
  [        [        S-  5      -   :X  d   e[        [        S-   5      R                  [        SS [        * 5      [        S5      [	        S5      [        -  [        -  S-  -   [	        S5      [        -  [        S-  -  S-  -
  [	        S5      [        -  [        S-  -  S-  -   [        [        S-  5      -   :X  d   e[        [        S-
  5      R                  [        SS [        5      [        S5      [	        S5      [        -  [        -  S-  -   [	        S5      [        -  [        S-  -  S-  -   [	        S5      [        -  [        S-  -  S-  -   [        [        S-  5      -   :X  d   e[        [        S-
  5      R                  [        SS [        * 5      [        S5      * S[        -  -   [	        S5      [        -  [        -  S-  -
  [	        S5      [        -  [        S-  -  S-  -
  [	        S5      [        -  [        S-  -  S-  -
  [        [        S-  5      -   :X  d   e[        S[        -   5      R                  [        SS 5      [	        S5      [	        [        * 5      -  [	        S5      [        * [        S5      S-  -  -  S-  -   S[	        S5      -  [        * [        S	5      S-  -  -  S
-  -   [        [        S-  5      -   :X  d   e[        S[        -   5      R                  [        SS 5      [        [	        S5      [	        [        5      -  -
  [	        S5      [        [        S5      S-  -  -  S-  -
  S[	        S5      -  [        [        S	5      S-  -  -  S
-  -
  [        [        S-  5      -   :X  d   e[        [        [        5      5      R                  [        SS 5      [	        S5      [	        [        * 5      -  [	        S5      [        * [        S5      S-  -  -  S-  -
  [	        S5      [        * [        S	5      S-  -  -  S-  -   [        [        S-  5      -   :X  d   e[        [        [        5      * 5      R                  [        SS 5      [        [	        S5      [	        [        * 5      -  -
  [	        S5      [        * [        S5      S-  -  -  S-  -   [	        S5      [        * [        S	5      S-  -  -  S-  -
  [        [        S-  5      -   :X  d   eg )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                  D   [        [        S[        -  -   5      R                  [        SS S5      [        [	        S5      -  [        S-  -
  S[        -  [        S-  -  S-  -
  S[        S-  -  S-  -   [        [        S-  5      -   :X  d   e[        [        S[        -  -   5      R                  [        SS S5      [        [	        S5      -  [        -
  [        S-  -
  S[        -  [        S-  -  S-  -
  S[        S-  -  S-  -   [        [        S-  5      -   :X  d   e[        [        S[        -  -
  5      R                  [        SS S5      [        * [	        S5      -  [        -   [        S-  -
  S[        -  [        S-  -  S-  -   S[        S-  -  S-  -   [        [        S-  5      -   :X  d   e[        [        S[        -  -
  5      R                  [        SS S5      [        * [	        S5      -  [        S-  -
  S[        -  [        S-  -  S-  -   S[        S-  -  S-  -   [        [        S-  5      -   :X  d   e[        S[        -  5      R                  [        SS S5      [        S-  [        -
  [        [        S-  5      -   :X  d   e[        S[        -  5      R                  [        SS S5      [        * S-  [        -
  [        [        S-  5      -   :X  d   e[        [        [        -   5      R                  [        SS 5      [        [        S5      -  S-  [        S-  -   [        [        [        5      -  S-  -
  [        S-  -   [        [        S-  -  S	-  -   [        S-  S
-  -
  [        [        S-  5      -   :X  d   e[        [        [        -
  5      R                  [        SS 5      [        * [        S5      -  S-  [        S-  -   [        [        [        5      -  S-  -   [        S-  -   [        [        S-  -  S	-  -
  [        S-  S
-  -
  [        [        S-  5      -   :X  d   eg )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                  	   [        [        [        S5      S-  [        -  -   5      R	                  [        SS S5      [        * [        [        S5      S-  5      -  [        -   S[        -  S-  -
  S[        -  [        S-  -  S-  -   S[        S-  -  S-  -   [        [        S-  5      -   :X  d   e[        [        [        S5      S-  [        -  -   5      R	                  [        SS S	5      [        * [        [        S5      S-  5      -  S[        -  S-  -
  S[        -  [        S-  -  S-  -   S[        S-  -  S-  -   [        [        S-  5      -   :X  d   e[        [        [        S5      S-  [        -  -
  5      R	                  [        SS S5      [        [        [        S5      S-  5      -  S[        -  S-  -
  S[        -  [        S-  -  S-  -
  S[        S-  -  S-  -   [        [        S-  5      -   :X  d   e[        [        [        S5      S-  [        -  -
  5      R	                  [        SS S	5      [        [        [        S5      S-  5      -  [        -
  S[        -  S-  -
  S[        -  [        S-  -  S-  -
  S[        S-  -  S-  -   [        [        S-  5      -   :X  d   e[        [        5      R	                  [        SS S5      [        S-  [        -
  [        [        S-  5      -   :X  d   e[        [        5      R	                  [        SS S	5      [        * S-  [        -
  [        [        S-  5      -   :X  d   e[        [        [        -   5      R	                  [        SS 5      [        * [        S5      -  S-  [        S-  -   [        [        [        5      -  S-  -   [        S-  -
  [        [        S-  -  S
-  -
  [        S-  S-  -   [        [        S-  5      -   :X  d   e[        [        [        -
  5      R	                  [        SS 5      [        [        S5      -  S-  [        S-  -   [        [        [        5      -  S-  -
  [        S-  -
  [        [        S-  -  S
-  -   [        S-  S-  -   [        [        S-  5      -   :X  d   eg )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                     [        [        [        S5      S-  -   5      R                  [        SS [        5      [        [        S5      S-  5      S[        S5      -  [        -  [        -  S-  -
  S[        S5      -  [        -  [        S-  -  S-  -   S[        S5      -  [        -  [        S-  -  S-  -
  [        [        S-  5      -   :X  d   e[        [        [        S5      S-  -   5      R                  [        SS [        * 5      [        [        S5      S-  5      * S[        S5      -  [        -  [        -  S-  -   S[        S5      -  [        -  [        S-  -  S-  -
  S[        S5      -  [        -  [        S-  -  S-  -   [        [        S-  5      -   :X  d   e[        [        [        S5      S-  -
  5      R                  [        SS [        5      [        [        S5      * S-  5      * S[        -  -   S[        S5      -  [        -  [        -  S-  -   S[        S5      -  [        -  [        S-  -  S-  -   S[        S5      -  [        -  [        S-  -  S-  -   [        [        S-  5      -   :X  d   e[        [        [        S5      S-  -
  5      R                  [        SS [        * 5      [        [        S5      * S-  5      S[        S5      -  [        -  [        -  S-  -
  S[        S5      -  [        -  [        S-  -  S-  -
  S[        S5      -  [        -  [        S-  -  S-  -
  [        [        S-  5      -   :X  d   e[        S[        -   5      R                  [        SS 5      [        S5      [        [        5      -  S[        S5      -  [        [        S5      S-  -  -  S	-  -
  S
[        S5      -  [        [        S5      S-  -  -  S-  -   [        [        S-  5      -   :X  d   e[        S[        -   5      R                  [        SS 5      [        [        S5      [        [        * 5      -  -
  S[        S5      -  [        * [        S5      S-  -  -  S	-  -   S
[        S5      -  [        * [        S5      S-  -  -  S-  -
  [        [        S-  5      -   :X  d   e[        [        [        5      5      R                  [        SS 5      [        S5      [        [        5      -  [        S5      [        [        S5      S-  -  -  S-  -
  [        S5      [        [        S5      S-  -  -  S-  -   [        [        S-  5      -   :X  d   e[        [        [        5      * 5      R                  [        SS 5      [        [        S5      [        [        5      -  -
  [        S5      [        [        S5      S-  -  -  S-  -   [        S5      [        [        S5      S-  -  -  S-  -
  [        [        S-  5      -   :X  d   eg 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                  ,   [        [        [        S5      S-  -   5      R                  [        SS [        5      [        [        S5      S-  5      S[        S5      -  [        -  [        -  S-  -   S[        S5      -  [        -  [        S-  -  S-  -
  S[        S5      -  [        -  [        S-  -  S-  -   [        [        S-  5      -   :X  d   e[        [        [        S5      S-  -   5      R                  [        SS [        * 5      [        [        S5      S-  5      * [        -   S[        S5      -  [        -  [        -  S-  -
  S[        S5      -  [        -  [        S-  -  S-  -   S[        S5      -  [        -  [        S-  -  S-  -
  [        [        S-  5      -   :X  d   e[        [        [        S5      S-  -
  5      R                  [        SS [        5      [        [        S5      S-  5      [        -
  S[        S5      -  [        -  [        -  S-  -
  S[        S5      -  [        -  [        S-  -  S-  -
  S[        S5      -  [        -  [        S-  -  S-  -
  [        [        S-  5      -   :X  d   e[        [        [        S5      S-  -
  5      R                  [        SS [        * 5      [        [        S5      S-  5      * S[        S5      -  [        -  [        -  S-  -   S[        S5      -  [        -  [        S-  -  S-  -   S[        S5      -  [        -  [        S-  -  S-  -   [        [        S-  5      -   :X  d   e[        S[        -   5      R                  [        SS 5      [        S-  [        S5      [        [        5      -  -
  S[        S5      -  [        [        S5      S-  -  -  S	-  -   S
[        S5      -  [        [        S5      S-  -  -  S-  -
  [        [        S-  5      -   :X  d   e[        S[        -   5      R                  [        SS 5      [        * S-  [        S5      [        [        * 5      -  -   S[        S5      -  [        * [        S5      S-  -  -  S	-  -
  S
[        S5      -  [        * [        S5      S-  -  -  S-  -   [        [        S-  5      -   :X  d   e[        [        [        5      5      R                  [        SS 5      [        S-  [        S5      [        [        5      -  -
  [        S5      [        [        S5      S-  -  -  S-  -   [        S5      [        [        S5      S-  -  -  S-  -
  [        [        S-  5      -   :X  d   e[        [        [        5      * 5      R                  [        SS 5      [        * S-  [        S5      [        [        5      -  -   [        S5      [        [        S5      S-  -  -  S-  -
  [        S5      [        [        S5      S-  -  -  S-  -   [        [        S-  5      -   :X  d   eg 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                      [        SSS9n [        U 5      R                  b   e[        U 5      R                  b   e[	        U 5      R                  b   eg )NrP   TrK   )r   r.   is_irrationalr*   r0   rP   s    r   test_issue_8653r(    sP    sD!Aq6'''q6'''q6'''r   c                  T    [        SSSS9n [        U S-
  5      R                  SL d   eg )NrP   T)rL   rO   rh   )r   r(   rd  r'  s    r   test_issue_9157r*  %  s,    sD40AA;%%---r   c                  h  ^ [        S5      u  mn [        T5      R                  5       S[        -  :X  d   e[	        T5      R                  5       S[        -  :X  d   e[        T5      R                  5       [        :X  d   e[        T5      R                  5       [        :X  d   e[        T5      R                  5       S[        -  :X  d   e[        T5      R                  5       S[        -  :X  d   e[        ST-  5      R                  5       [        :X  d   e[        ST-  S-
  5      R                  5       [        S-  :X  d   e[	        ST-  5      R                  5       [        [        SS5      -  :X  d   e[	        TU -  5      R                  T5      S[        -  [        U 5      -  :X  d   e[        ST-  U -  S[        -  -   5      R                  U 5      S[        -  [        ST-  5      -  :X  d   e[        ST-  5      R                  U 5      [        R                  L d   e[        [        U4S j5        g )Nzx, yrk   rm   rn   ro   ry   c                  >   > [        T S-  5      R                  T 5      $ r   )r.   periodr  s   r   r   "test_trig_period.<locals>.<lambda>9  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_periodr0  *  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                      [        [        5      R                  [        5      [        [        5      :X  d   e[        [        5      R                  [        5      [        [        5      :X  d   eg r  )r.   r   r   r"   r   r   r   r   test_issue_7171r2  <  s@    q6>>$3q6)))q6>>##a&(((r   c                  6   [        SSS9u  p[        S[        S[        -  U-  S5      4[	        [        U-  5      [        U-  -  S45      n[        S[        S[        -  U-  S5      4[        [        U-  5      S45      nUR                  [
        5      U:X  d   eg )Nzw, kTrI   rh   rk   r   )r   rC   rB   r   r.   r/   r   )wr   Fsolns       r   test_issue_11864r7  A  s    6%DA1b2am$s2a4y"Q$'7&>?AaAbDFA'$r!t*d);<D99T?d"""r   c                     [        SSSS9n [        U 5      R                  b   e[        U 5      R                  b   e[	        U 5      R                  SL d   e[        U 5      R                  b   e[        U 5      R                  b   e[        U 5      R                  SL d   e[        [        5      R                  b   e[        [        5      R                  b   e[        [        5      R                  b   e[        [        5      R                  b   e[        [        5      R                  b   e[        [        5      R                  b   e[        [        5      R                  b   e[        [        5      R                  b   e[        [        5      R                  SL d   e[        [        5      R                   SL d   e[#        [        5      R                  SL d   e[#        [        5      R                   SL d   eg )Nre   FTr  )r   r.   r   r*   r0   r-   r,   r+   r'   rM   rP   r&   r#   r%   r(   r<  rb  r$   )re   s    r   test_real_assumptionsr9  G  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            	         [        [        S5      5      S[        -   :X  aF  [        * S-  S[        -   s=::  a  [        S-  ::  a#  O   e[        S5      [        S[        -   5      :X  d   e[        [        S5      5      S[        S-  -   :X  aL  [        * S-  S[        S-  -   s=::  a  [        S-  ::  a&  O   e[        S5      [        S[        S-  -   5      :X  d   e[	        [        S5      5      [        * S-  S-   :X  aC  S[        * S-  S-   s=::  a
  [        ::  a'  O   e[        S5      [        [        * S-  S-   5      :X  d   e[	        [        S5      5      S[        -  S-   :X  aA  SS[        -  S-   s=::  a
  [        ::  a&  O   e[        S5      [        S[        -  S-   5      :X  d   e[	        [        S5      5      SS[        -  -   :X  aA  SSS[        -  -   s=::  a
  [        ::  a&  O   e[        S5      [        SS[        -  -   5      :X  d   e[        [        S	5      5      S
[        -  S	-   :X  aL  [        * S-  S
[        -  S	-   s=:  a  [        S-  :  a&  O   e[        S	5      [        S
[        -  S	-   5      :X  d   e[        [        S5      5      S
[        -  S-   :X  aL  [        * S-  S
[        -  S-   s=:  a  [        S-  :  a&  O   e[        S5      [        S
[        -  S-   5      :X  d   e[        [        S5      5      S[        [        SS5      -  -   :X  a`  [        * S-  S[        [        SS5      -  -   s=:  a  [        S-  :  a0  O   e[        S5      [        S[        [        SS5      -  -   5      :X  d   e[        [        S5      5      S
[        -  S-   :X  aL  [        * S-  S
[        -  S-   s=:  a  [        S-  ::  a&  O   e[        S5      [        S
[        -  S-   5      :X  d   e[        [        S5      5      S[        [        SS5      -  -   :X  a`  [        * S-  S[        [        SS5      -  -   s=:  a  [        S-  ::  a0  O   e[        S5      [        S[        [        SS5      -  -   5      :X  d   e[        [        S5      5      SS[        -  -   :X  aA  SSS[        -  -   s=::  a
  [        ::  a&  O   e[        S5      [        SS[        -  -   5      :X  d   e[        [        S5      5      S[        [        SS5      -  -   :X  aU  SS[        [        SS5      -  -   s=::  a
  [        ::  a0  O   e[        S5      [        S[        [        SS5      -  -   5      :X  d   e[        [        S5      5      S[        -  S-   :X  aL  [        * S-  S[        -  S-   s=::  a  [        S-  ::  a&  O   e[        S5      [        S[        -  S-   5      :X  d   e[        [        S5      5      [        [        SS5      -  S-   :X  a`  [        * S-  [        [        SS5      -  S-   s=::  a  [        S-  ::  a0  O   e[        S5      [        [        [        SS5      -  S-   5      :X  d   eg )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<  \  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                     [        S[        -  S-   5      [        S5      :X  d   e[        S[        -  S-
  5      [        S5      :X  d   e[        [        S-   5      [        S5      * :X  d   e[        [        S-
  5      [        S5      * :X  d   e[        S[        -  S-   5      [        S5      :X  d   e[        S[        -  S-
  5      [        S5      * :X  d   e[        [        S-   5      [        S5      * :X  d   e[        [        S-
  5      [        S5      :X  d   e[        S5      n [        [        S-  U -   5      [        U 5      :X  d   e[        [        S-  U -
  5      [        U 5      :X  d   e[        [        [	        SS5      -  U -   5      [        U 5      * :X  d   e[        [        [	        SS5      -  U -
  5      [        U 5      * :X  d   e[        [        S-  U -
  5      [        U 5      :X  d   e[        [        S-  U -   5      [        U 5      * :X  d   e[        [        [	        SS5      -  U -   5      [        U 5      :X  d   e[        [        [	        SS5      -  U -
  5      [        U 5      * :X  d   eg )Nrk   r   rz   r   ry   )r-   r   r,   r   r   r  s    r   test_issue_14543r>  n  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                      [        [        [        [        [        S5      -  -   -  5      n U R                  5       U S4:X  d   eg )Nrh   r   )r(   r   r0   r  )r  s    r   test_as_real_imagr@    s:     1qQx< !D4)+++r   c                  |    [        [        R                  [        S-  S-   -  5      n U R	                  5       S:X  d   eg )Nrm   g      ?r|   )r*   r   r   r   r-  )e3s    r   test_issue_18746rC    s1    	QTT1Q39	B99;!r   c            	      n   [        [        [        S-  5      [        [        5      [        S-  :X  d   e[        [        [        S-  S-
  5      [        [        5      [        S-  :X  d   e[        [        [        S[        -  5      [        S[        -  5      -  5      [        [        5      [        S-  :X  d   eg )Nrk   rh   )r7   r(   r   r   r   r   r   r   r   test_issue_25833rE    s    adQ#r!t+++adQhB'2a4///c!Q$iAaC()1b1RT999r   c                     [        [        [        5      [        -  5      R                  [        5      [        S-  :X  d   e[        [        S 5        [        [        [        5      [        -  5      R                  [        5      [        S-  :X  d   e[        [        S 5        [        [        [        5      [        -  5      R                  [        5      S:X  d   e[        [        S 5        [        [        [        5      [        -  5      R                  [        5      [        S-  :X  d   e[        [        S 5        [        [        [        5      [        -  5      R                  [        5      S:X  d   e[        [        S 5        [        [        [        5      [        -  5      R                  [        5      [        S-  :X  d   e[        [        S	 5        g )
Nrm   c                  ^    [        [        S[        -  5      5      R                  [        5      $ r  )r(   r   r   r   r   r   r   r   "test_issue_25847.<locals>.<lambda>      d3qs8n<<Q?r   rk   c                  ^    [        [        S[        -  5      5      R                  [        5      $ r  )r'   r   r   r   r   r   r   r   rH    rI  r   r   c                  ^    [        [        S[        -  5      5      R                  [        5      $ r  )r#   r   r   r   r   r   r   r   rH    rI  r   c                  ^    [        [        S[        -  5      5      R                  [        5      $ r  )r$   r   r   r   r   r   r   r   rH    rI  r   c                  ^    [        [        S[        -  5      5      R                  [        5      $ r  )r&   r   r   r   r   r   r   r   rH    rI  r   c                  ^    [        [        S[        -  5      5      R                  [        5      $ r  )r%   r   r   r   r   r   r   r   rH    rI  r   )r(   r.   r   r   r   rG   r@   r'   r#   r$   r&   r%   r   r   r   test_issue_25847rO    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                  D
   [        [        [        -   5      R                  [        [        5      SS[        S-  -  -  S[        -  [        S-  -  -
  SS[        S-  -  -  -   [        [        S-  -  -   S[        -  -
  [
        S-  -   [        [        S-  [        [        45      -   :X  d   e[        [        [        -   5      R                  [        [        * 5      SS[        S-  -  -  S[        -  [        S-  -  -
  SS[        S-  -  -  -   [        [        S-  -  -   S[        -  -
  [
        S-  -
  [        [        S-  [        [        * 45      -   :X  d   e[        [        [        -
  5      R                  [        [        5      SS[        S-  -  -  S[        -  [        S-  -  -   SS[        S-  -  -  -   [        [        S-  -  -
  S[        -  -
  [
        S-  -   [        [        S-  [        [        45      -   :X  d   e[        [        [        -
  5      R                  [        [        * 5      SS[        S-  -  -  S[        -  [        S-  -  -   SS[        S-  -  -  -   [        [        S-  -  -
  S[        -  -
  [
        S-  -
  [        [        S-  [        [        * 45      -   :X  d   e[        [        [        -   5      R                  [        [        5      SS[        S-  -  -  S[        -  [        S-  -  -   SS[        S-  -  -  -
  [        [        S-  -  -
  S[        -  -   [        [        S-  [        [        45      -   :X  d   e[        [        [        -   5      R                  [        [        * 5      SS[        S-  -  -  S[        -  [        S-  -  -   SS[        S-  -  -  -
  [        [        S-  -  -
  S[        -  -   [        [        S-  [        [        * 45      -   :X  d   e[        [        [        -
  5      R                  [        [        5      SS[        S-  -  -  S[        -  [        S-  -  -
  SS[        S-  -  -  -
  [        [        S-  -  -   S[        -  -   [        [        S-  [        [        45      -   :X  d   e[        [        [        -
  5      R                  [        [        * 5      SS[        S-  -  -  S[        -  [        S-  -  -
  SS[        S-  -  -  -
  [        [        S-  -  -   S[        -  -   [        [        S-  [        [        * 45      -   :X  d   eg )	Nr   rl   rk   rm   ry   rh   r;  r  )r(   r   r   r9   r   r   r8   r$   r   r   r   test_issue_23843rQ    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   r]  r^  rV   rX   rZ   r_  r`  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-  r8  r=  rB  rF  rH  rM  rP  rR  rT  rW  r[  rj  rm  rq  rs  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r"  r$  r(  r*  r0  r2  r7  r9  r<  r>  r@  rC  rE  rO  rQ  r   r   r   <module>rn     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
,5^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%9P$]"<"9J8&`">D(D(5$5$>(>((.
=$)
#'*O$1.,
:A2sr   