
    \h{                     P   S r SSK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JrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)J*r*J+r+J,r,J-r-J.r.J/r/J0r0J1r1J2r2J3r3J4r4J5r5J6r6J7r7J8r8J9r9J:r:J;r;J<r<J=r=J>r>J?r?J@r@JArAJBrBJCrCJDrDJErEJFrF  SSKGJHrH  SSKIJJrJJKrKJLrL  SSKMJNrNJOrOJPrPJQrQ  SSKRJSrS  \K" S	5      rT\J" 5        V s/ s H  o R                  5       PM     sn u  rVrWrXrYrZr[r\\" \" \VS
\P5      \P" SS5      S
\P5      r]S r^S r_S r`S raS rbS rcS rdS reS rfS rgS rhS riS rjS rkS rlS rmS rnS roS rpS  rqS! rrS" rsS# rtS$ ruS% rvS& rwS' rxS( ryS) rzS* r{S+ r|S, r}S- r~S. rS/ rS0 rS1 rS2 rS3 rS4 rS5 rS6 rS7 rS8 rS9 rS: rS; rS< rS= rS> rS? rS@ rgAs  sn f )Bz4Tests for dense recursive polynomials' arithmetics.     )GROUND_TYPES)
dup_normal
dmp_normal)@dup_add_termdmp_add_termdup_sub_termdmp_sub_termdup_mul_termdmp_mul_termdup_add_grounddmp_add_grounddup_sub_grounddmp_sub_grounddup_mul_grounddmp_mul_grounddup_quo_grounddmp_quo_grounddup_exquo_grounddmp_exquo_ground
dup_lshift
dup_rshiftdup_absdmp_absdup_negdmp_negdup_adddmp_adddup_subdmp_subdup_muldmp_muldup_sqrdmp_sqrdup_powdmp_powdup_add_muldmp_add_muldup_sub_muldmp_sub_muldup_pdivdup_premdup_pquo
dup_pexquodmp_pdivdmp_premdmp_pquo
dmp_pexquo
dup_rr_div
dmp_rr_div
dup_ff_div
dmp_ff_divdup_divdup_remdup_quo	dup_exquodmp_divdmp_remdmp_quo	dmp_exquodup_max_normdmp_max_normdup_l1_normdmp_l1_normdup_l2_norm_squareddmp_l2_norm_squared
dup_expand
dmp_expand)ExactQuotientFailed)f_polysSymbolPoly)FFZZQQCC)raisesx         c                     [        / [        5      n [        U [        S5      S[        5      [        / [        5      :X  d   e[        U [        S5      S[        5      [        S/[        5      :X  d   e[        U [        S5      S[        5      [        SS/[        5      :X  d   e[        U [        S5      S[        5      [        / SQ[        5      :X  d   e[        / SQ[        5      n [        U [        S5      S[        5      [        / SQ[        5      :X  d   e[        U [        S5      S[        5      [        / SQ[        5      :X  d   e[        U [        S5      S[        5      [        / SQ[        5      :X  d   e[        U [        S5      S	[        5      [        / S
Q[        5      :X  d   e[        U [        S5      S[        5      [        / SQ[        5      :X  d   e[        U [        S5      S[        5      [        / SQ[        5      :X  d   e[        U [        S5      S[        5      [        / SQ[        5      :X  d   e[        U [        S5      S[        5      [        SS/[        5      :X  d   eg )Nr   rQ   rP   rQ   r   r   rQ   rQ   rQ   )rQ   rQ   rP   )rQ   rP   rQ   )rP   rQ   rQ      )rQ   rQ   rQ   rQ      )rQ   r   rQ   rQ   rQ      )rQ   r   r   rQ   rQ   rQ      )rQ   r   r   r   rQ   rQ   rQ   )r   rK   r   fs    Y/var/www/auris/envauris/lib/python3.13/site-packages/sympy/polys/tests/test_densearith.pytest_dup_add_termr^   6   s   2rA2a5!R(Jr2,>>>>2a5!R(JsB,????2a5!R(J1vr,BBBB2a5!R(Jy",EEEE9b!A2a5!R(Jy",EEEE2a5!R(Jy",EEEE2a5!R(Jy",EEEE2a5!R(J|R,HHHH2a5!R(J,KKKK2a5!R(J7I2,NNNN	2a5!R&'<bAB B B 2b61b)ZA-CCCC    c                  z   [        [        S5      [        S5      [        S5      /[        S5      SS[        5      [        [        S5      [        S5      [        S5      /[        S5      S[        5      :X  d   e[        [        / /SS[        5      [        :X  d   e[        [        / /SS[
        5      [        :X  d   eg NrQ   rP   r   rV   )r   rK   r   f_0F_0rL    r_   r]   test_dmp_add_termre   N       A1r!u-r!uaB?beRUBqE*BqE1b9: : :bT1a,333bT1a,333r_   c                     [        / [        5      n [        U [        S5      S[        5      [        / [        5      :X  d   e[        U [        S5      S[        5      [        S/[        5      :X  d   e[        U [        S5      S[        5      [        SS/[        5      :X  d   e[        U [        S5      S[        5      [        / SQ[        5      :X  d   e[        / SQ[        5      n [        U [        S5      S[        5      [        / SQ[        5      :X  d   e[        U [        S5      S[        5      [        / SQ[        5      :X  d   e[        U [        S5      S[        5      [        / S	Q[        5      :X  d   e[        U [        S5      S
[        5      [        / SQ[        5      :X  d   e[        U [        S5      S[        5      [        / SQ[        5      :X  d   e[        U [        S5      S[        5      [        / SQ[        5      :X  d   e[        U [        S5      S[        5      [        / SQ[        5      :X  d   e[        U [        S5      S[        5      [        SS/[        5      :X  d   eg )Nr   rQ   rZ   rP   )rZ   r   r   rU   )rQ   rQ   rZ   )rQ   rZ   rQ   )rZ   rQ   rQ   rV   )rZ   rQ   rQ   rQ   rW   )rZ   r   rQ   rQ   rQ   rX   )rZ   r   r   rQ   rQ   rQ   rY   )rZ   r   r   r   rQ   rQ   rQ   )r   rK   r   r[   s    r]   test_dup_sub_termrh   U   s   2rA2a5!R(Jr2,>>>>2a5!R(JtR,@@@@2a5!R(JAw,CCCC2a5!R(Jz2,FFFF9b!A2a5!R(J{B,GGGG2a5!R(J{B,GGGG2a5!R(Jz2,FFFF2a5!R(J}b,IIII2a5!R(J7G,LLLL2a5!R(J7JB,OOOO	2a5!R&'=rBC C C 2a5!R(J1vr,BBBBr_   c                  z   [        [        S5      [        S5      [        S5      /[        S5      SS[        5      [        [        S5      [        S5      [        S5      /[        S5      S[        5      :X  d   e[        [        / /SS[        5      [        :X  d   e[        [        / /SS[
        5      [        :X  d   eg ra   )r	   rK   r   rb   rc   rL   rd   r_   r]   test_dmp_sub_termrj   m   rf   r_   c                     [        / [        5      n [        U [        S5      S[        5      [        / [        5      :X  d   e[        SS/[        5      n [        U [        S5      S[        5      [        / [        5      :X  d   e[        / SQ[        5      n [        U [        S5      S[        5      [        / SQ[        5      :X  d   e[        U [        S5      S[        5      [        / SQ[        5      :X  d   e[        U [        S5      S[        5      [        / SQ[        5      :X  d   e[        U [        S5      S[        5      [        / S	Q[        5      :X  d   eg )
NrP   rV   rQ   r   rQ   rP   rV   rP   rW   rY   )rP   rW   rY   r   )rP   rW   rY   r   r   )rP   rW   rY   r   r   r   )r   rK   r
   r[   s    r]   test_dup_mul_termrn   t   s   2rA2a5!R(Jr2,>>>>Aq62A2a5!R(Jr2,>>>>9b!A2a5!R(Jy",EEEE2a5!R(J|R,HHHH2a5!R(J,KKKK2a5!R(J7I2,NNNNr_   c                     [        [        S5      [        S5      [        S5      /[        S5      SS[        5      [        [        S5      [        S5      [        S5      /[        S5      S[        5      :X  d   e[        / /[        S5      /SS[        5      / /:X  d   e[        [        S5      /// SS[        5      / /:X  d   e[        [        S5      [        S5      /[        S5      //[        S5      /SS[        5      [        S5      [        S5      /[        S5      // / /:X  d   e[        / /[        SS5      /SS[        5      / /:X  d   e[        [        SS5      /// SS[        5      / /:X  d   e[        [        SS5      [        SS5      /[        SS5      //[        SS5      /SS[        5      [        SS5      [        SS5      /[        SS5      // / /:X  d   eg )	NrQ   rP   rV   r   rW   rY   rX      )r   rK   r
   rL   rd   r_   r]   test_dmp_mul_termrq      s   A1r!u-r!uaB?beRUBqE*BqE1b9: : : r!ugq!R0RD888"Q%	2q!R0RD888"Q%A"Q%1BqE7Aq"E
Q%A"Q%"b)* * * r!Qxj!Q3t;;;"Q(b!Q3t;;;"Q(Bq!H-1az:R1XJ1bQ
Q)R2Y	"Q)b"56 6 6r_   c                      [         R                  " / SQ5      n [         R                  " / SQ5      n[        U [        S5      [         5      U:X  d   eg )NrQ   rP   rV   rW   )rQ   rP   rV      rW   )rK   mapr   r\   gs     r]   test_dup_add_groundrx      9    
|A
|A!RUB'1,,,r_   c                      [         R                  " S/S/S/S//5      n [         R                  " S/S/S/S//5      n[        U [        S5      S[         5      U:X  d   eg )NrQ   rP   rV   rW   rt   )rK   ru   r   rv   s     r]   test_dmp_add_groundr{      s]    
aS1#s#$A
aS1#s#$A!RUAr*a///r_   c                      [         R                  " / SQ5      n [         R                  " / SQ5      n[        U [        S5      [         5      U:X  d   eg )Nrs   )rQ   rP   rV   r   rW   )rK   ru   r   rv   s     r]   test_dup_sub_groundr}      ry   r_   c                      [         R                  " S/S/S/S//5      n [         R                  " S/S/S// /5      n[        U [        S5      S[         5      U:X  d   eg )NrQ   rP   rV   rW   )rK   ru   r   rv   s     r]   test_dmp_sub_groundr      s[    
aS1#s#$A
aS1#r"#A!RUAr*a///r_   c                  `   [        / [        5      n [        U [        S5      [        5      [        / [        5      :X  d   e[        / SQ[        5      n [        U [        S5      [        5      [        / [        5      :X  d   e[        U [        S5      [        5      [        / SQ[        5      :X  d   eg )NrP   rl   r   rm   )r   rK   r   r[   s    r]   test_dup_mul_groundr      s    2rA!RUB':b"+====9b!A!RUB':b"+====!RUB':i+DDDDr_   c            
         [        [        [        S5      S[        5      [        S5      [        S5      [        S5      /[        S5      //[        S5      //[        S5      [        S5      [        S5      /[        S5      [        S5      [        S5      /[        S5      ///:X  d   e[        [        [	        SS5      S[        5      [	        SS5      [	        SS5      [	        S	S5      /[	        SS5      //[	        S	S5      //[	        SS5      [	        S
S5      [	        SS5      /[	        SS5      [	        SS5      [	        SS5      /[	        SS5      ///:X  d   eg )NrP   rW   rY   rt   
      rQ      rV   rX   )r   rb   rK   rc   rL   rd   r_   r]   test_dmp_mul_groundr      s4   #r!ua,
Q%A1	A(
Q%	
Q%BB	 2a5"Q%A"7"Q%A1    #r!QxB/
Q)R2Y1b		*R2YK8
Q)
Q)R2Y1b		*R2Y1b	2Y-Q)	&4   r_   c                  (   [        [        S 5        [        / [        5      n [	        U [        S5      [        5      [        / [        5      :X  d   e[        / SQ[        5      n [	        U [        S5      [        5      U :X  d   e[	        U [        S5      [        5      [        / SQ[        5      :X  d   e[	        U [        S5      [        5      [        / SQ[        5      :X  d   e[        / SQ[
        5      n [	        U [        S5      [
        5      U :X  d   e[	        U [        S5      [
        5      [        S5      [        S5      [        S5      /:X  d   e[	        U [        S	5      [
        5      [        S
S	5      [        SS	5      [        SS	5      /:X  d   eg )Nc                  V    [        [        / SQ[        5      [        S5      [        5      $ Nrl   r   )r   r   rK   rd   r_   r]   <lambda>%test_dup_quo_ground.<locals>.<lambda>   s"    nZ A6qE2'r_   rV   rY   rP   rt   rQ   rP   rV   rQ   rW   )rP   r   rP   rW   rR   rY   rt   )rN   ZeroDivisionErrorr   rK   r   rL   r[   s    r]   test_dup_quo_groundr      s6   
    	2rA!RUB':b"+====9b!A!RUB'1,,,!RUB':i+DDDD!RUB':i+DDDD9b!A!RUB'1,,,!RUB'BqE2a5"Q%+@@@@!RUB'Bq!HbAh1a+IIIIr_   c                     [        [        S 5        [        [        S 5        [        / [        5      n [        U [	        S5      [        5      [        / [        5      :X  d   e[        / SQ[        5      n [        U [	        S5      [        5      U :X  d   e[        U [	        S5      [        5      [        / SQ[        5      :X  d   e[        / SQ[        5      n [        U [        S5      [        5      U :X  d   e[        U [        S5      [        5      [        S5      [        S5      [        S5      /:X  d   e[        U [        S	5      [        5      [        S
S	5      [        SS	5      [        SS	5      /:X  d   eg )Nc                  V    [        [        / SQ[        5      [        S5      [        5      $ r   r   r   rK   rd   r_   r]   r   'test_dup_exquo_ground.<locals>.<lambda>   s#    &6z C8!ub'"r_   c                  V    [        [        / SQ[        5      [        S5      [        5      $ )Nrl   rV   r   rd   r_   r]   r   r      s#    (8 E:!ub)"r_   rV   r   rQ   rP   r   rW   rR   rY   rt   )rN   r   rF   r   rK   r   rL   r[   s    r]   test_dup_exquo_groundr      s$   
 " #
 !" # 	2rAAr!ub)ZB-????9b!AAr!ub)Q...Ar!ub)Z	2-FFFF9b!AAr!ub)Q...Ar!ub)beRUBqE-BBBBAr!ub)bAh1a"Q(-KKKKr_   c                  h   [        S/S/S//S[        5      n [        U [        S5      S[        5      U :X  d   e[        U [        S5      S[        5      [        S/S/S//S[        5      :X  d   e[        [        U [        S5      S[        5      S[        5      [        S// S//S[        5      :X  d   eg NrY   rP   rt   rQ   rV   rW   )r   rK   r   r[   s    r]   test_dmp_quo_groundr      s    QC!qc?Ar*A!RUAr*a///	2a5!R&aS1#2>? ? ? n	2a5!RR!$.R!~q"$EF F Fr_   c                      [        S/S/S//S[        5      n [        U [        S5      S[        5      U :X  d   e[        U [        S5      S[        5      [        S/S/S//S[        5      :X  d   eg r   )r   rK   r   r[   s    r]   test_dmp_exquo_groundr     su    QC!qc?Ar*AAr!ua,111	2a5!R&aS1#2>? ? ?r_   c                  f    [        / S[        5      / :X  d   e[        S/S[        5      / SQ:X  d   eg )NrV   rQ   rQ   r   r   r   )r   rK   rd   r_   r]   test_dup_lshiftr     s2    b!R B&&&qc1b!\111r_   c                  f    [        / S[        5      / :X  d   e[        / SQS[        5      S/:X  d   eg )NrV   r   rQ   )r   rK   rd   r_   r]   test_dup_rshiftr     s2    b!R B&&&lAr*qc111r_   c                     [        / [        5      / :X  d   e[        [        S5      /[        5      [        S5      /:X  d   e[        [        S5      /[        5      [        S5      /:X  d   e[        [        S5      [        S5      [        S5      /[        5      [        S5      [        S5      [        S5      /:X  d   e[        / [        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      [        SS5      [        SS5      /[        5      [        SS5      [        SS5      [        SS5      /:X  d   eg )NrQ   rR   rZ   rP   rV   )r   rK   rL   rd   r_   r]   test_dup_absr     sE   2r?b   BF8R RUG+++BrF8R RUG+++BrFBqE2a5)2.2a5"Q%A2GGGG2r?b   B1I;#1az111Br1I;#1az111	BBq!HbAh'-13Aq2a8R1X0NO O Or_   c                     [        [        S5      /S[        5      [        S5      /:X  d   e[        [        SS5      /S[        5      [        SS5      /:X  d   e[        / //S[        5      / //:X  d   e[        [        S5      ///S[        5      [        S5      ///:X  d   e[        [        S5      ///S[        5      [        S5      ///:X  d   e[        / //S[        5      / //:X  d   e[        [        SS5      ///S[        5      [        SS5      ///:X  d   e[        [        SS5      ///S[        5      [        SS5      ///:X  d   eg NrZ   r   rQ   rP   r   rR   	   )r   rK   rL   rd   r_   r]   test_dmp_absr   "  s>   BrF8Q#1w...Br1I;2&2a8*444RD61b!rdV+++beWI;2&RUG9+555bfXJ<B'beWI;666RD61b!rdV+++bAhZL>1b)1azl^;;;bQi[M?Ar*Aq
|n<<<r_   c                     [        / [        5      / :X  d   e[        [        S5      /[        5      [        S5      /:X  d   e[        [        S5      /[        5      [        S5      /:X  d   e[        [        S5      [        S5      [        S5      /[        5      [        S5      [        S5      [        S5      /:X  d   e[        / [        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      [        SS5      [        SS5      /[        5      [        SS5      [        SS5      [        SS5      /:X  d   eg )
NrQ   rZ   r   rR   rP   rV   r   )r   rK   rL   rd   r_   r]   test_dup_negr   /  sL   2r?b   BqE7BBrF8+++BrF8R RUG+++BrFBqE2a5)2.2a5"R&"R&2IIII2r?b   Bq!H:r"r"ayk111Br1I;#1az111B
A1a"Q($%')-/1Xr"ay"R),LM M Mr_   c                     [        [        S5      /S[        5      [        S5      /:X  d   e[        [        SS5      /S[        5      [        SS5      /:X  d   e[        / //S[        5      / //:X  d   e[        [        S5      ///S[        5      [        S5      ///:X  d   e[        [        S5      ///S[        5      [        S5      ///:X  d   e[        / //S[        5      / //:X  d   e[        [        SS5      ///S[        5      [        SS5      ///:X  d   e[        [        SS5      ///S[        5      [        SS5      ///:X  d   eg r   )r   rK   rL   rd   r_   r]   test_dmp_negr   <  s>   BrF8Q#1w...Br1I;2&2a8*444RD61b!rdV+++beWI;2&RVH:,666bfXJ<B'beWI;666RD61b!rdV+++bAhZL>1b)2q	{m_<<<bQi[M?Ar*Aq
|n<<<r_   c            	         [        / / [        5      / :X  d   e[        [        S5      // [        5      [        S5      /:X  d   e[        / [        S5      /[        5      [        S5      /:X  d   e[        [        S5      /[        S5      /[        5      [        S5      /:X  d   e[        [        S5      /[        S5      /[        5      [        S5      /:X  d   e[        [        S5      [        S5      /[        S5      /[        5      [        S5      [        S5      /:X  d   e[        [        S5      /[        S5      [        S5      /[        5      [        S5      [        S5      /:X  d   e[        [        S5      [        S5      [        S5      /[        S5      [        S5      [        S5      /[        5      [        S5      [        S5      [        S5      /:X  d   e[        / / [        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      /[        SS	5      /[        5      [        SS5      /:X  d   e[        [        SS	5      /[        SS5      /[        5      [        SS	5      /:X  d   e[        [        SS5      [        SS5      /[        S5      /[        5      [        SS5      [        S
S5      /:X  d   e[        [        S5      /[        SS5      [        SS5      /[        5      [        SS5      [        S
S5      /:X  d   e[        [        SS5      [        SS5      [        SS5      /[        SS5      [        SS5      [        SS5      /[        5      [        SS5      [        SS5      [        SS5      /:X  d   eg )NrQ   rP   rV   rt   r   r         rW   rX   rR   )r   rK   rL   rd   r_   r]   test_dup_addr   I  s8   2r2"$$$BqE7B#1w...21w#1w...BqE7RUGR(RUG333BqE7RUGR(RUG333BqE2a5>BqE7B/BqE2a5>AAABqE7RUBqENB/BqE2a5>AAABqE2	qEUBqE2b6*B046qE2b62b63JK K K 2r2"$$$Bq!H:r2&2a8*44421az2&2a8*444Bq!H:1az2.2a8*<<<Bq!H:1az2.2a8*<<<Bq!HbAh'"Q%"5"Q(Bq!H9MMMMBqE7R1Xr!Qx0"5"Q(Bq!H9MMMMBq!HbAh1a1B	15!QxB4$%')-/1Xr"ay"R),LM M Mr_   c                     [        [        S5      [        S5      /[        S5      /S[        5      [        [        S5      [        S5      /[        S5      /[        5      :X  d   e[        [        SS5      [        SS5      /[        S5      /S[        5      [        [        SS5      [        SS5      /[        S5      /[        5      :X  d   e[        / /// //S[        5      / //:X  d   e[        [        S5      //// //S[        5      [        S5      ///:X  d   e[        / //[        S5      ///S[        5      [        S5      ///:X  d   e[        [        S5      ///[        S5      ///S[        5      [        S5      ///:X  d   e[        [        S5      ///[        S5      ///S[        5      [        S5      ///:X  d   e[        / /// //S[        5      / //:X  d   e[        [        SS5      //// //S[        5      [        SS5      ///:X  d   e[        / //[        SS5      ///S[        5      [        SS5      ///:X  d   e[        [        SS5      ///[        SS5      ///S[        5      [        SS5      ///:X  d   e[        [        SS5      ///[        SS5      ///S[        5      [        SS5      ///:X  d   eg )NrQ   rP   r   rV   rR   )r   rK   r   rL   rd   r_   r]   test_dmp_addr   c  s   BqE2a5>BqE7Ar2A1A,- - -Bq!HbAh'"Q%!R8Aq2a8$r!ugr23 3 3 RD6RD61b)rdV333beWI;"2.RUG9+===RD6beWI;2.RUG9+===beWI;2a5'Q3"Q%	{BBBbeWI;2a5'Q3"Q%	{BBBRD6RD61b)rdV333bAhZL>RD61b11azl^CCCRD6bAhZL>1b11azl^CCCbAhZL>bAhZL>1b91azl^KKKbAhZL>bAhZL>1b91azl^KKKr_   c            	      x   [        / / [        5      / :X  d   e[        [        S5      // [        5      [        S5      /:X  d   e[        / [        S5      /[        5      [        S5      /:X  d   e[        [        S5      /[        S5      /[        5      / :X  d   e[        [        S5      /[        S5      /[        5      [        S5      /:X  d   e[        [        S5      [        S5      /[        S5      /[        5      [        S5      [        S5      /:X  d   e[        [        S5      /[        S5      [        S5      /[        5      [        S5      [        S5      /:X  d   e[        [        S5      [        S5      [        S5      /[        S5      [        S5      [        S5      /[        5      [        S5      [        S	5      [        S
5      /:X  d   e[        / / [        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      /[        SS5      /[        5      / :X  d   e[        [        SS5      /[        SS5      /[        5      [        SS5      /:X  d   e[        [        SS5      [        SS5      /[        S5      /[        5      [        SS5      [        SS5      /:X  d   e[        [        S5      /[        SS5      [        SS5      /[        5      [        SS5      [        SS5      /:X  d   e[        [        SS5      [        SS5      [        SS5      /[        SS5      [        SS5      [        SS5      /[        5      [        SS5      [        S	S5      [        S
S5      /:X  d   eg )NrQ   rZ   rP   rV   rt   r   r   r   rR   rX   )r   rK   rL   rd   r_   r]   test_dup_subr   v  s+   2r2"$$$BqE7B#1w...21w#2x///BqE7RUGR(B...BqE7RUGR(RVH444BqE2a5>BqE7B/BqE2a5>AAABqE7RUBqENB/BrFBrF3CCCCBqE2	qEUBqE2b6*B046rFBrFBrF3KL L L 2r2"$$$Bq!H:r2&2a8*44421az2&2b!9+555Bq!H:1az2."444Bq!H:1az2.2b!9+===Bq!HbAh'"Q%"5"Q(Br1I9NNNNBqE7R1Xr!Qx0"5"R)R1X9NNNNBq!HbAh1a1B	15!QxB4$%')-/AY2q	2b!9,MN N Nr_   c                     [        [        S5      [        S5      /[        S5      /S[        5      [        [        S5      [        S5      /[        S5      /[        5      :X  d   e[        [        SS5      [        SS5      /[        S5      /S[        5      [        [        SS5      [        SS5      /[        S5      /[        5      :X  d   e[        / /// //S[        5      / //:X  d   e[        [        S5      //// //S[        5      [        S5      ///:X  d   e[        / //[        S5      ///S[        5      [        S5      ///:X  d   e[        [        S5      ///[        S5      ///S[        5      [        S5      ///:X  d   e[        [        S5      ///[        S5      ///S[        5      [        S5      ///:X  d   e[        / /// //S[        5      / //:X  d   e[        [        SS5      //// //S[        5      [        SS5      ///:X  d   e[        / //[        SS5      ///S[        5      [        SS5      ///:X  d   e[        [        SS5      ///[        SS5      ///S[        5      [        SS5      ///:X  d   e[        [        SS5      ///[        SS5      ///S[        5      [        SS5      ///:X  d   eg )NrQ   rP   r   rV   rZ   rR   )r   rK   r   rL   rd   r_   r]   test_dmp_subr     s   BqE2a5>BqE7Ar2A1A,- - -Bq!HbAh'"Q%!R8Aq2a8$r!ugr23 3 3 RD6RD61b)rdV333beWI;"2.RUG9+===RD6beWI;2.RVH:,>>>beWI;2a5'Q3"Q%	{BBBbeWI;2a5'Q3"R&
|CCCRD6RD61b)rdV333bAhZL>RD61b11azl^CCCRD6bAhZL>1b12q	{m_DDDbAhZL>bAhZL>1b91azl^KKKbAhZL>bAhZL>1b92q	{m_LLLr_   c                  l   [        [        S5      [        S5      [        S5      /[        S5      [        S5      [        S5      /[        S5      [        S5      /[        5      [        S5      [        S5      [        S5      [        S5      /:X  d   e[        [        S5      [        S5      /[        S5      //[        S5      /[        S5      [        S5      //[        S5      /[        S5      //S[        5      [        S5      /[        S5      [        S5      /[        S5      [        S5      //:X  d   eg )NrQ   rP   rV   r   rR   rX   rW   )r&   rK   r'   rd   r_   r]   test_dup_add_mulr     s    1r!ube,r!ubeRU.C1r!u~r#')!ubeRUBqE&BC C CA1A0BqE7RUBqEN2KA"Q%!1b*/1!ug1r!u~1rRSu~-VW W Wr_   c                  l   [        [        S5      [        S5      [        S5      /[        S5      [        S5      [        S5      /[        S5      [        S5      /[        5      [        S5      [        S5      [        S5      [        S5      /:X  d   e[        [        S5      [        S5      /[        S5      //[        S5      /[        S5      [        S5      //[        S5      /[        S5      //S[        5      [        S5      /[        S5      [        S5      /[        S5      [        S5      //:X  d   eg )	NrQ   rP   rV   r   r   rZ   r   )r(   rK   r)   rd   r_   r]   test_dup_sub_mulr     s   1r!ube,r!ubeRU.C1r!u~r#')"vr"vr"vr!u&EF F FA1A0BqE7RUBqEN2KA"Q%!1b*/1"vhBB8H2b6SUVWSX/-Z[ [ [r_   c                     [        / / [        5      / :X  d   e[        / [        S5      /[        5      / :X  d   e[        [        S5      // [        5      / :X  d   e[        [        S5      /[        S5      /[        5      [        S5      /:X  d   e[        [        S5      /[        S5      /[        5      [        S5      /:X  d   e[        / / [        5      / :X  d   e[        / [        SS5      /[        5      / :X  d   e[        [        SS5      // [        5      / :X  d   e[        [        SS5      /[        SS5      /[        5      [        SS5      /:X  d   e[        [        SS5      /[        SS5      /[        5      [        SS	5      /:X  d   e[        / S
Q[        5      n [        / SQ[        5      n[        / SQ[        5      n[        X[        5      U:X  d   e[        X[        5      U:X  d   e[        / SQ[        5      n [        / SQ[        5      n[        X [        5      U:X  d   e[	        S5      n[        U" S5      U" S5      /U" S5      U" S5      /U5      U" S5      U" S5      /:X  d   e[        / SQ[        5      n[        / SQ[        5      n[        / SQ[        5      n[        XE[        5      U:X  d   e[        / SQ[        5      n[        / SQ[        5      n[        / SQ[        5      n[        XE[        5      U:X  d   eg )NrQ   rX   rR   #   rP   rW   rV   rp   1   )rV   r   r   rY   rQ   rP   )rW   r   rQ   r   )	r   r   rV      rW   r   rQ   rP   r   rP   r   r   rQ   rR   	rW   r   r   rW      r   rQ   r   r   rY   )O   rZ   N   r       r   rP      I   *   U   M   S   r   _   %   r   r   C      L   rP   F   r   A   9   r   r   a   Y   !   r   Q   r   <   +      ,      r   r   r   rV   5      r   B   rQ   r   b   r   rY   rt   r   r      r      r   7   r   D   r   T   ^   -   r   \   r  r  r   rt   K   r   [   r   "   r   r   r   r   r   rY   r      r   :   r      r   r   rR   r   r   r  r   r   r   r   rX   3   r   r%  r   r   r   r   R   r   r   r  r  r   r(  r  r  r*  ?   r   r   rY   r  r   rV   rV   .   r  >   X   r   r*  rZ   r   H   r   r!  r.  r   r   r
  r   r  r  r   r	  r   d   r  r   r   r   r;  4   V   r   r   r$  r   r   r$  r   r   r)  (\  r   r   rQ   Z   r   r   r      r  r   2   r   r      rQ   r   r   r   J   P   r   r   r   )   r     r.  r   r   E   r   r  r  r   r   r   r  r   r   r   r  r1  r  r:  r  r   r   r   r;  r   r*  r   r   r+  r!  r   r   r3  rX   r@  r  r   r*  r,  r  r   r  r  0   r   r   r   r  r   r   r   r   =   r   r7  r   rJ  r   r   r   rP   rY   r   r&  r  rR  r  r  rT  rZ   rN  `   r   r   r   8   r#  r8  r/  rX  rB  r.  r   r   r  r   r  r   r   r   rJ  (   r   r   r   r;  r  r   r3  '   r(  r   r   W   @   r   r  r   rp   r0  r  r  r  r   6   rY  r   rY   r?  r0  rT  r   r_  r   r  r  r   r   r   r  r   rN  r  $   r  rX   rB  r*  rJ  r=  rA  r   ir   r  r   r  rW   r[  r`  r   r   r   r   r   r
  rN  r<  r   r   r-  r#  rb  r   r   rP  r  r   r   rK  r'  r5  r8  rE  r   r9  r  r   r   r@  r&  r(  r?  r   r   r[  r  &   r   rd  r;  r   r   r_  r.  r+  r      r   r   r  r	  r>  r   r  r   r   r   rF  rb  rQ  r,  rE  rE  r@  r4  r   r7  rb  r$  r   r  r   r   r   r  r   rQ   r   r  rt   rt   rW  r   r   r   rQ  r   r  r*  r   r   rI  rI  rX   r   r   r,  r\  r   rX   r   r`  r   rH  r'  rb  r   r  rM  r  r   rF  r	  r  r   r1  r^  r
  r&  r   r+  r3  r   r   r=  r  r@  r   r   r   rf  r   r   r1  r  r   r	  r  re  r  r   r"  r  r)  r   r   r   r;  rt   r3  r   r  r   (C  i  ii`  ii  i-  iA  iigiiY  ii_  iOi.  iin%  i0$  io  i[  i	J  i5'  i\ii*  ii?i  i*  iizi?  iDz  i`  i|  i  i  ii  i=  is  i  i|  i  ivki}i%  rh  iQi  i`iHii4  iw  i%  i3Uii,  ii  ii  iY  i}i|idi"li޷iiti\ioiiiNb  iiM  i2  iMiiKl  i#iiiiwN  i$iZi  iQ  i9i%}  5ig  ivF  i;if|  ii4ii0  ib  i&Mi^  i'iHi>iiTiߟirL  iuii'  ixiciL  iilg  iiU  i  ip  iXi  i  i0  i5i,  i iCi7  i  ibi/ i_  iYir  i  iM6  iiS  ii|d i  iY ii ii  iPi#i<  iii  i+  ii  i  iiii9i0|iiibiE  itiy  ii:  id  i ii iii  iwi% iW i  iiiiHxii*Fi[iiuUi+iieiy;  izi+  ii<i  i  i/8  iiihihsi  ii, iPi  i#  ibcii3  i*  iI6i&  i6/  iij ioiiѶiI  i?  i)  iii)  iii  iN  ii i߷  i  iϱ  ii<D  i!i1 iiwiix  isw i!  i]  ii}  i[  i  iiyai  io  i1zi'aidaimiVi  iiԔ i iiiIviJ
  i/  i iVK  ixii&i$c  iy`i"i4i  iOij  ii  i}i3  i4i\i i i  iri^ialiH
ii  ii i]  i.  iv  i  i  ii  i!ii  i^N iii
igi!  ivri  iZ  i'  i  iZiini2 i~  i  iRiorili  iiia  i  iii71  i\ih  i  iiƺ  ii0  ii(ioifi  ii+i i3i" i+G  i8 ii_ iD  i%}ii  imi i9  i=Ri0*  ii2i  iYV  it  ii5  i  i  i.!  i$  ii>{  ii  i1iiK  iO  i'ii{i}i  i_ii	i;  i  iiI  ig  iI  iifiDii  i2  i!陏iE  iiiiii`  is  i* i  iJiiWii.i]  iiܧ  i  i(q  iizi"_  i\ih  i  iiSiiOQii/iii{  iY  iiii4  i"  iw iI  i  i i  i.  iM\iO  ii  (iDie  i  iat  iz  iIio  iF  iO  i$  iS  iƔiOii^iYii*  iiSif  i9  iy  ini&  iii3.  i*iiw i_  iiwii	OiA#  [ioui]+  iv-  iq  i  i\i$  io5  i  i6  ii?  i   iWisiziAi&  iw  io  i7O  iiiyiii^  iC  ie  i'ii9i<i$X  ii  i-  in  iiiiix}  iiK,  i{ii  i i%iWrl  iU  ild  i   i  ii  iQ  iN  iX  i-  i3  i	  ii7iEii8i  iiiirii  i	  i  ii|)r   rM  r  rN  r   r   r  r   r   r  r\  rF  r   r  r   r  r  rW   r  rY   r   r   r   r   i/   r,  r   r=  r   r   r   rD  rJ  rN  r]  r   r   r  rA  rZ   rZ  r   r   r  r  r   r7  rJ  r   r  r   r  rL  r1  r   r   r   ir   r  rV  rM  rB  rQ   G   rW   r   rQ  rW   r  r@  r  rX   rQ  r+  r6  r  r	  r   r   r   rQ  rM  r  rn  r   r   r\  r   r&  r   r$  r   r  r,  rf  r   rA  r-  r8  rX  r#  r   rZ  rW  r)  rP  r   r  r#  r   r)  rf  r   r   r   rE  r   r   rV   rb  rQ  r   rN  r   r  r	  r   r   rL  r6  r>  r   rP  r  r:  r   r7  r^  r>  r  r   r6  r   r#  r   r   r   ;   r   c   r   r   r  r4  r   r   rQ   r'  r   rG  r   r@  r   r   r   r]  r-  r   r  r   r  rY  rc  rK  r\  r   r   r1  r   r%  r  r   r  rV  r^  rp  r8  r   r   rM  r   r   r  rM  rW   r   r   rW  r1  r   r   r  r  r  r   r:  r  r  rP  r	  r   r  r;  r?  r  rX  r   rV   rY  r   r   r3  r   r  r   rH  r[  r%  r   r   r+  r+  rV  r   r   rQ  r   rQ  r   r  r   (+  r<  r6  r   r  r   r7  r1  r   r  rL  r   rX  re  r   r   r   r  r   r  r.  r   r   rB  r   rF  r  r&  rW   rn  r   r   r   rp  rF  r5  rq  r&  rL  r]  r   r4  r   r]  rp  r   rP  r	  r   r[  r   rW   r  r7  r  r  rV  r   rV      rX  ra  r   r  r   rY   r   r   rZ  r   r:  r`  r   rp  r   r   r_  r   rb  rI  r   rB  r   r
  r   r   r   r   r   r   ro  r   r.  rU  rX  r%  rt   rZ   rX  r   r  r  r   rb  ro  r   r  r   r9  rq  r<  rc  rX   r_  r   rP  rR  r   r  r;  r  r$  r>  r\  r  r   rQ   r   rg  r<  r   r  rV   r   r8  r  r/  rO  r   r   r  r   r   r   rX   r   r   ]   r   r  rB  rF  r   ru  rq  r?  r  r.  r   r   r  rW  r  r   r  ru  r   r   r   rs  r   r   r2  r  r   rd  rI  r   r=  r  rB  r   r   rn  r  r0  r   r9  r   r?  r#  r  r   r  r   rY   r  r  r   rp   r   ru  r   r'  r*  r:  rB  r   rA  rp  r]  r   r  rs  r   r  rO  rS  rT  rC  r   rX   r   rr  r  r   r1  r  r   r   r  r  r-  re  r   r:  r?  rE  rQ   r  r  r)  r   rQ  rA  r5  r   r   ra  re  r   rW  r  r   rE  r   rB  r  r   r   r(  rT  r'  rV   r   r  rP   rR  r   r   r   r   r  r   r   r?  r   rW   r>  r   rA  r<  r'  rf  r   rE  rp  r   rq  r.  r
  rt  rO  r   r   r   rb  rg  r   r   (  i  i$  i4iiiil  iii6  iA  i?,  idiiC  i+R  iii>  i  iis"  iD  i'  i  ii!  ii  ic  i5&  i/     i=I  iiik  i;ii1  i  ii/L  ii  ivi  i$\  iƐiu  i  ii[.i?iir  i  iV  iii8  iwii<  i  iS;  i:iiibi  i\  iViiA  ibI  i/  i^`  iy  i  ikii  ivii)Q  iL  iP  iڃ  iiUi}  i  iяi0ii5  i|-  iD  i(i\  ii  iQ  i  ii  iix`i`M  iHiZ  i  iqb  iG$  il  ii%  i6i3  i<  i  i_N  i  i-  ij  ivimi6  iʀ  i2ik  ios  iv igiXli(i   i  iˎi(i  iPiSi  iŒ  iii{iiU|igiizD  i  i
  iU$ib  iiiMiC ii\Ri i9  iia(  iN  iuiS)i  i  i8H  ir  i%  iid  i0 iii  i	  i5iiA iei  i  i  i0iʷ  i	f  i![i4 ii	  iipq  i]iHix[  ii?Si@YiiM  i  iw=  i,  i ifiJ  i9  i  ii@  ih i  i  i i  i iiiFiwi'  in i"  iG  iJ  iBr  iR!  i  ii<iiiT  i   izsi5 iii{  iiii**  iia  i  i6i wiy it  iM  i+ioiWiDid ihijisii.  iv  iS\i/]iNz  iNm  iH  i@  iJ  i(iۂ  iu  ii]  iz  ii\  i=i&iieiirm  i%i9iyw  i!  iJ  iiY iH   i-ci_i i
2  ii ii  i\i i^  i: i4  i&  i  i@i  iiiS i.i  iJo  i= iT  i i
  ivi  ip  ibi=  i6  i/  iPi9  iw  i;@iiGq  i  i  iiii)  imGi,  i*  iiiW  ii&  isiaiiu  i  i  i;  i iT  i
iS3 iUi5  i,  i6i.i-ii  iXi~iii  i1i8  ikin  iWdi{rk  i|D i:iǙifIi1  i  isiqiu  i2i  iX  iӉi3iVii  i9ig7  ii-i  i7i  ii i.  i  i`  i  i  i  iR  iii§i{  im i^  iiiiH  iYF  ii1  iiisO  i  ii.iiG  i=  i  i;  iLb  iHip(  iqi  iT  ii)i i}iiˁ  i  iR  i,i^h  iݯi)  i  r?  i^  iuiii  i  iABicC  i>in  iii  iim  iib  iii  ii[n  iitiiѝiI  iiyi5iC  iio~ip  iiiDB  i	i[i"7  i7ii  ii-i  iD  iPrj  iL&  iiu
  io  iii\  ii  i0  i4"  itiwii  iR  iiO  iii	  i{.  i  i
iX  iQ   is+  i\i  iniv/  iti  is  iJi	  i)r    rK   rL   r   rJ   )r\   rw   hKp1p2ress          r]   test_dup_mulr}    s   2r2"$$$21w#r)))BqE7B#r)))BqE7RUGR(RUG333BqE7RUGR(RVH4442r2"$$$21az2&",,,Bq!H:r2&",,,Bq!H:1az2.2a8*<<<Bq!H:1az2.2b":,>>>%r*A<$A126A1!!!1!!!?B'A126A1!!!
1AAaD!A$<!A$!q1adAaD\AAA	 ; =?
@B 
 I* KM+
NB,  =z {=C~ 22#%%%	 8 :<
=B  
 A$ CE%
FB&  8/p 13q84Ct 22#%%%r_   c                     [        [        S5      /[        S5      /S[        5      [        [        S5      /[        S5      /[        5      :X  d   e[        [        SS5      /[        SS5      /S[        5      [        [        SS5      /[        SS5      /[        5      :X  d   e[        / /// //S[        5      / //:X  d   e[        [        S5      //// //S[        5      / //:X  d   e[        / //[        S5      ///S[        5      / //:X  d   e[        [        S5      ///[        S5      ///S[        5      [        S5      ///:X  d   e[        [        S5      ///[        S5      ///S[        5      [        S5      ///:X  d   e[        / /// //S[        5      / //:X  d   e[        [        SS5      //// //S[        5      / //:X  d   e[        / //[        SS5      ///S[        5      / //:X  d   e[        [        SS5      ///[        SS5      ///S[        5      [        SS5      ///:X  d   e[        [        SS5      ///[        SS5      ///S[        5      [        SS5      ///:X  d   e[	        S5      n [        U " S5      /U " S5      //U " S5      /U " S	5      //SU 5      U " S5      /U " S	5      //:X  d   eg )
NrX   rR   r   rV   rP   rQ   r   rY   rW   )r!   rK   r    rL   rJ   ry  s    r]   test_dmp_mulr    s   BqE7RUGQ+A"Q%"%& & &Bq!H:1az1b1Aq
R1XJ+, , , RD6RD61b)rdV333beWI;"2.B4&888RD6beWI;2.B4&888beWI;2a5'Q3"Q%	{BBBbeWI;2a5'Q3"Q%	{BBBRD6RD61b)rdV333bAhZL>RD61b1rdV;;;RD6bAhZL>1b1rdV;;;bAhZL>bAhZL>1b91b	{m_LLLbAhZL>bAhZL>1b91b	{m_LLL
1A
A$!A$AaD6AaD6*Aq278tfqtf5EF F Fr_   c                     [        / [        5      / :X  d   e[        [        S5      /[        5      [        S5      /:X  d   e[        [        S5      [        S5      /[        5      [        S5      [        S5      [        S5      /:X  d   e[        / [        5      / :X  d   e[        [        SS5      /[        5      [        SS5      /:X  d   e[        [        SS5      [        SS5      /[        5      [        SS5      [        SS5      [        SS5      /:X  d   e[        / SQ[        5      n [        U [        5      [        / SQ[        5      :X  d   e[	        S5      n[        U" S5      U" S5      /U5      U" S5      U" S	5      /:X  d   eg )
NrP   rW   rQ   rV   r   r   r   rY   rR   )r"   rK   rL   r   rJ   )r\   ry  s     r]   test_dup_sqrr    sA   2r?b   BqE7BBqE7***BqE2a5>2&2a5"Q%A*????2r?b   Bq!H:r"r!Qxj000Bq!HbAh',Aq2a8R1X0NNNN?B'A1b>Z(FKKKK
1AAaD!A$<#!ad|333r_   c                  F   [        [        S5      [        S5      /S[        5      [        [        S5      [        S5      /[        5      :X  d   e[        / //S[        5      / //:X  d   e[        [        S5      ///S[        5      [        S5      ///:X  d   e[        / //S[        5      / //:X  d   e[        [        SS5      ///S[        5      [        SS5      ///:X  d   e[	        S5      n [        U " S5      /U " S5      //SU 5      U " S5      /U " S5      //:X  d   eg )	NrQ   rP   r   rW   rV   r   rY   rR   )r#   rK   r"   rL   rJ   r  s    r]   test_dmp_sqrr    s   BqE2a5>1b)A1#$ $ $ RD61b!rdV+++beWI;2&RUG9+555RD61b!rdV+++bAhZL>1b)1azl^;;;
1AQqTFQqTF#Q*!v!v.>>>>r_   c                  ^   [        / S[        5      [        S5      /:X  d   e[        / S[        5      [        S5      /:X  d   e[        / S[        5      / :X  d   e[        / S[        5      / :X  d   e[        [        S5      /S[        5      [        S5      /:X  d   e[        [        S5      /S[        5      [        S5      /:X  d   e[        [        S5      /S[        5      [        S5      /:X  d   e[        [        S5      /S[        5      [        S5      /:X  d   e[        [        S5      /S[        5      [        S5      /:X  d   e[        [        S5      /S[        5      [        S5      /:X  d   e[        [        SS5      /S[        5      [        SS5      /:X  d   e[        [        SS5      /S[        5      [        SS5      /:X  d   e[        [        SS5      /S[        5      [        SS5      /:X  d   e[        [        SS5      /S[        5      [        SS5      /:X  d   e[        [        SS5      /S[        5      [        SS5      /:X  d   e[        [        SS5      /S[        5      [        SS5      /:X  d   e[        / SQ[        5      n [        U S[        5      [        S/[        5      :X  d   e[        U S[        5      [        / SQ[        5      :X  d   e[        U S[        5      [        / S	Q[        5      :X  d   e[        U S[        5      [        / S
Q[        5      :X  d   eg )Nr   rQ   rR   rV      r   rP   r   )rt   r   r   r   r  r   rY   r  i&  rQ   r      iW  )r$   rK   rL   r   r[   s    r]   test_dup_powr    s   2q""Q%(((2q""Q%(((2q"###2q"###BqE7Ar"r!ug---BqE7Ar"r!ug---BqE7Ar"r!ug---BqE7Ar"r!ug---BqE7Ar"r!ug---BqE7Ar"r$xj000Bq!H:q"%"Q(333Bq!H:q"%"Q(333Bq!H:q"%"Q(333Bq!H:q"%"Q(333Bq!H:q"%"Q(333Bq!H:q"%"T6*:);;;;?B'A1a
A3 33331a
?B ????1a
+I2 NNNN1a
92!? ? ? ?r_   c                     [        / /SS[        5      [        S5      //:X  d   e[        / /SS[        5      [        S5      //:X  d   e[        / /SS[        5      / /:X  d   e[        / /SS[        5      / /:X  d   e[        [        S5      //SS[        5      [        S5      //:X  d   e[        [        S5      //SS[        5      [        S5      //:X  d   e[        [        S5      //SS[        5      [        S5      //:X  d   e[        [        SS5      //SS[        5      [        SS5      //:X  d   e[        [        SS5      //SS[        5      [        SS5      //:X  d   e[        [        SS5      //SS[        5      [        SS5      //:X  d   e[        / SQ[        5      n [        U SS[        5      [	        U S[        5      :X  d   eg )	Nr   rQ   rR   rV   r  r  r   rP   )r%   rK   rL   r   r$   r[   s    r]   test_dmp_powr    s   B4Ar"1wi///B4Ar"1wi///B4Ar"rd***B4Ar"rd***RUG9aB'RUG9444RUG9aB'RUG9444RUG9aB'RUG9444R1XJ<Ar*1azl:::R1XJ<Ar*1azl:::R1XJ<Ar*40@/A.BBBB?B'A1aB71a#4444r_   c                    ^^ [        / SQ[        5      m[        / SQ[        5      m[        SS/[        5      n [        SS/[        5      n[        TT[        5      X4:X  d   e[        TT[        5      U :X  d   e[	        TT[        5      U:X  d   e[        [        UU4S j5        [        / SQ[        5      m[        / SQ[        5      m[        SS/[        5      n [        SS/[        5      n[        TT[        5      X4:X  d   e[        TT[        5      U :X  d   e[	        TT[        5      U:X  d   e[        [        UU4S j5        g )	NrV   rQ   rQ   rX   rX   r   rQ   rp   r   r<  o   c                  &   > [        T T[        5      $ N)r-   rK   rv   s   r]   r   test_dup_pdiv.<locals>.<lambda>      
1a(<r_   c                  &   > [        T T[        5      $ r  )r-   rL   rv   s   r]   r   r    r  r_   )r   rK   r*   r,   r+   rN   rF   rL   qrr\   rw   s     @@r]   test_dup_pdivr    s   <$A:r"AB8R AB9b!AAq"!'''Aq""""Aq""""
 <=<$A:r"AB8R AB9b!AAq"!'''Aq""""Aq""""
 <=r_   c                    ^^ [        S// / SQ/S[        5      m[        S/SS//S[        5      m[        S/SS//S[        5      n [        / SQ/S[        5      n[        TTS[        5      X4:X  d   e[        TTS[        5      U :X  d   e[	        TTS[        5      U:X  d   e[        [        UU4S j5        [        S// / SQ/S[        5      m[        S/SS//S[        5      m[        S/SS//S[        5      n [        / S	Q/S[        5      n[        TTS[        5      X4:X  d   e[        TTS[        5      U :X  d   e[	        TTS[        5      U:X  d   e[        [        UU4S
 j5        g )NrQ   rT   rZ   r   rP   r   r   c                  (   > [        T TS[        5      $ NrQ   r1   rK   rv   s   r]   r   test_dmp_pdiv.<locals>.<lambda>&      
1aB(?r_   rP   r   )rt   r   r   c                  (   > [        T TS[        5      $ r  r  rv   s   r]   r   r  2  r  r_   )r   rK   r.   r0   r/   rN   rF   r  s     @@r]   test_dmp_pdivr    sc   QCY'B/AQC"a>1b)AQC!Q=!R(AI;2&AAq!R QF***Aq!R A%%%Aq!R A%%%
 ?@QCY'B/AQC"a>1b)AQC!Q=!R(AI;2&AAq!R QF***Aq!R A%%%Aq!R A%%%
 ?@r_   c                      [        [        S 5        [        / SQ[        5      n [        / SQ[        5      n/ U p2[	        X[        5      X#4:X  d   eg )Nc                  (    [        / SQ/ [        5      $ Nrl   )r2   rK   rd   r_   r]   r   !test_dup_rr_div.<locals>.<lambda>6      jB&Cr_   r  r  )rN   r   r   rK   r2   r\   rw   r  r  s       r]   test_dup_rr_divr  5  sD    
CD<$A:r"AqqaBA6)))r_   c                  t   [        [        S 5        [        S// / SQ/S[        5      n [        S/SS//S[        5      n[        S/SS//S[        5      n[        / SQ/S[        5      n[	        XS[        5      X#4:X  d   e[        S// / SQ/S[        5      n [        S/SS//S[        5      n[        S/SS//S[        5      n[        / SQ/S[        5      n[	        XS[        5      X#4:X  d   e[        S// / SQ/S[        5      n [        S/SS//S[        5      n/ /U p2[	        XS[        5      X#4:X  d   eg )	Nc                  2    [        SS/S/// /S[        5      $ NrQ   rP   rV   )r3   rK   rd   r_   r]   r   !test_dmp_rr_div.<locals>.<lambda>A      j1a&1#a&Lr_   rQ   rT   rZ   r   r  rP   r   )rN   r   r   rK   r3   r  s       r]   test_dmp_rr_divr  @  s?   
LMQCY'B/AQC"a>1b)AQC!Q=!R(AI;2&AaAr"qf,,,QCY'B/ARD1a&>1b)ARD2q'?Ar*AI;2&AaAr"qf,,,QCY'B/AQC"a>1b)A4qaAr"qf,,,r_   c                      [        [        S 5        [        / SQ[        5      n [        / SQ[        5      n[        SS5      [        SS5      /n[        SS5      [        S	S5      /n[	        X[        5      X#4:X  d   eg )
Nc                  (    [        / SQ/ [        5      $ r  )r4   rL   rd   r_   r]   r   !test_dup_ff_div.<locals>.<lambda>\  r  r_   r  r  rV   rX   r   rB  r<  r  )rN   r   r   rL   r4   r  s       r]   test_dup_ff_divr  [  si    
CD<$A:r"A	Aq2b":A	BRR[!AaBA6)))r_   c                     [         S:w  a  g SSKJn   SSKJn  U" 5       nU " SS5      U " SS5      /nU " SS5      /n[        X4SU5      U " SS5      U " SS	5      // 4:X  d   eU " SS5      U " SS5      U " SS	5      U " SS
5      /nU " SS5      U " SS5      U " SS5      /n[        X4SU5      U " SS5      U " SS5      /U " SS5      U " SS5      /4:X  d   eg )Ngmpy2r   )mpq)GMPYRationalFieldrQ   rV   rP   rY   rW   rX   rZ   r   rR   r   r   r   )r   r  r  sympy.polys.domainsr  r5   )r  r  ry  r\   rw   s        r]   test_dup_ff_div_gmpy2r  f  s    w5A	Qq3q8A	Qq
AaAq!s1QxQq&:B%????	Qq3q8S1Xs1Qx0A	RC!Hc"Qi(AaAq!s2ay#b)&<s1Ry#cRT+>V%WWWWr_   c                  z   [        [        S 5        [        S// / SQ/S[        5      n [        S/SS//S[        5      n[        SS5      /[        SS5      [        SS5      //n[        SS5      [        SS5      [        SS5      //n[	        XS[        5      X#4:X  d   e[        S// / SQ/S[        5      n [        S/SS//S[        5      n[        SS5      /[        SS5      [        SS5      //n[        SS5      [        SS5      [        SS5      //n[	        XS[        5      X#4:X  d   e[        S// / SQ/S[        5      n [        S/SS//S[        5      n[        SS5      /[        SS5      [        SS5      //n[        SS5      [        SS5      [        SS5      //n[	        XS[        5      X#4:X  d   eg )Nc                  2    [        SS/S/// /S[        5      $ r  )r5   rL   rd   r_   r]   r   !test_dmp_ff_div.<locals>.<lambda>w  r  r_   rQ   rT   rZ   r   rP   r   )rN   r   r   rL   r5   r  s       r]   test_dmp_ff_divr  v  s   
LMQCY'B/AQC"a>1b)A
Q(bAh1a)*A
Q(Bq!HbAh	'(AaAr"qf,,,QCY'B/ARD1a&>1b)A
R)r"ay"Q(+,A
Q(Bq!HbAh	'(AaAr"qf,,,QCY'B/AQC"a>1b)A
Q(bAh1a)*A
Q(Bq!HbAh	'(AaAr"qf,,,r_   c                    ^^ / SQ/ SQ/ SQSS/4u  mmp[        TT[        5      X4:X  d   e[        TT[        5      U :X  d   e[        TT[        5      U:X  d   e[	        [
        UU4S j5        / SQ/ SQS	S
// SQ4u  mmp[        TT[        5      X4:X  d   e[        TT[        5      U :X  d   e[        TT[        5      U:X  d   e[	        [
        UU4S j5        g )NrX   rW   rV   rP   rQ   rl   rX   r&  r   r"  rQ   c                  &   > [        T T[        5      $ r  r9   rK   rv   s   r]   r   test_dup_div.<locals>.<lambda>      	!Q(;r_   )rX   rW   rV   rP   rQ   r   )rQ   rP   r   r   r   rX   r&  )rp   rP   r   ra  c                  &   > [        T T[        5      $ r  r  rv   s   r]   r   r    r  r_   )r6   rK   r8   r7   rN   rF   r  s     @@r]   test_dup_divr    s     )Z"a@JAq!1a&&&1a!!!1a!!!
 ;<#_q"g?OOJAq!1a&&&1a!!!1a!!!
 ;<r_   c                    ^^ / SQ/ SQ/ SQSS/4u  mmp[        TTS[        5      X4:X  d   e[        TTS[        5      U :X  d   e[        TTS[        5      U:X  d   e[	        [
        UU4S j5        S///S//S/// //S///4u  mmp[        TTS[        5      X4:X  d   e[        TTS[        5      U :X  d   e[        TTS[        5      U:X  d   e[	        [
        UU4S	 j5        g )
Nr  rl   r  r"  rQ   r   c                  (   > [        T TS[        5      $ )Nr   r=   rK   rv   s   r]   r   test_dmp_div.<locals>.<lambda>      	!Q2(>r_   rP   c                  (   > [        T TS[        5      $ )NrP   r  rv   s   r]   r   r    r  r_   )r:   rK   r<   r;   rN   rF   r  s     @@r]   test_dmp_divr    s     )Z"a@JAq!1aBA6)))1aB1$$$1aB1$$$
 >?3%QC51#,"1#7JAq!1aBA6)))1aB1$$$1aB1$$$
 >?r_   c                      [        / [        5      S:X  d   e[        S/[        5      S:X  d   e[        / SQ[        5      S:X  d   eg )Nr   rQ   rQ   rW   rP   rV   rW   )r>   rK   rd   r_   r]   test_dup_max_normr    sC    B1$$$R A%%%b)Q...r_   c                      [        / //S[        5      S:X  d   e[        S///S[        5      S:X  d   e[        [        S[        5      S:X  d   eg )NrP   r   rQ   rY   )r?   rK   rb   rd   r_   r]   test_dmp_max_normr    sQ    "2&!+++1#B'1,,,Q#q(((r_   c                      [        / [        5      S:X  d   e[        S/[        5      S:X  d   e[        / SQ[        5      S:X  d   eg )Nr   rQ   r  r   )r@   rK   rd   r_   r]   test_dup_l1_normr    sC    r2!###sB1$$$|R(B...r_   c                      [        / //S[        5      S:X  d   e[        S///S[        5      S:X  d   e[        [        S[        5      S:X  d   eg )NrP   r   rQ   rE  )rA   rK   rb   rd   r_   r]   test_dmp_l1_normr    sQ    vq"%***!w2&!+++sAr"b(((r_   c                      [        / [        5      S:X  d   e[        S/[        5      S:X  d   e[        / SQ[        5      S:X  d   eg )Nr   rQ   r  r   )rB   rK   rd   r_   r]   test_dup_l2_norm_squaredr    sC    r2&!+++sB'1,,,|R0B666r_   c                      [        / //S[        5      S:X  d   e[        S///S[        5      S:X  d   e[        [        S[        5      S:X  d   eg )NrP   r   rQ   r  )rC   rK   rb   rd   r_   r]   test_dmp_l2_norm_squaredr    sQ    vq"-222!w2.!333sAr*c111r_   c            	          [        S[        5      S/:X  d   e[        / SQSS// SQ4[        5      [        / SQ[        SS// SQ[        5      [        5      :X  d   eg )Nrd   rQ   rl   rP   )rR   rX   rW   rV   )rD   rK   r    rd   r_   r]   test_dup_expandr    sY    b"!$$$y1a&,7<	7Aq6<<bAB B Br_   c                      [        SS[        5      S//:X  d   e[        S/S/S//S/S//S/S/S/S//4S[        5      [        S/S/S//[        S/S//S/S/S/S//S[        5      S[        5      :X  d   eg )Nrd   rQ   rP   rV   rR   rX   rW   )rE   rK   r!   rd   r_   r]   test_dmp_expandr    s    b!R aSE)))aS1#!qc
aS1#sQC4HI1bQ!qcA31#sqcA3AC6R"!"#R	)) ) )r_   c                     [        S[        S-  -  S[        S-  -  -   [        SS9n [        S[        S-  -  S[        S-  -  -   [        SS9nU [        -  U:X  d   eU R                  [        5      [        -  UR                  [        5      :X  d   eU R                  [        5      [        -  UR                  [        5      :X  d   eg )	Ng     B   ge$]`Fr+  RR)domain   r   )rI   rO   
set_domainrL   rM   )ppxs     r]   test_dup_mul_polyr    s    af$';ArE'AA1TRA	q#v%(<QU(BBAd	SBq5B;;<<a2==#4444<<a2==#4444r_   N)__doc__sympy.external.gmpyr   sympy.polys.densebasicr   r   sympy.polys.densearithr   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   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   sympy.polys.polyerrorsrF   sympy.polys.specialpolysrG   rH   rI   r  rJ   rK   rL   rM   sympy.testing.pytestrN   rO   to_denserb   f_1f_2f_3f_4f_5f_6rc   r^   re   rh   rj   rn   rq   rx   r{   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r[   s   0r]   <module>r     s   : ,                > ; : . . '
3K<CI$GIqjjlI$G !S#sCcZQ+R1Xq"=D04C04O"6"-0-0EJ,L,F?2
2

O
=
M
=M4L&N4M&W[`&FF04$??@5(>4A4*-6	*X -8=$@$/)/)72B)5m %Hs   F#