+
    i_                        R t ^ RIHt ^ RIHtHt ^ RIHtHtH	t	H
t
Ht ^ RIHtHt ^ RIHt ^ RIHtHtHtHtHt ^ RIHtHt ^ RIHtHtHtHt ^ R	IH t  ^ R
I!H"t"H#t# ^ RI$H%t% ^ RI&H't' ^ RI(H)t) ^ RI*H+t+ R t,R t-R t.R t/R t0R t1R t2R t3R t4R t5R t6R t7R t8R t9R t:R t;R t<R  t=R! t>R" t?R# t@R$ tAR% tBR& tCR' tDR( tER) tFR* tGR+ tHR, tIR- tJR. tKR/ tLR0 tMR1 tNR2 tOR3 tPR4 tQR5 tRR6 tSR7 tTR8 tUR9 tVR: tWR; tXR< tYR= tZR> t[R? t\R@ t]RA t^RB t_RC t`RD taRE tbRF tcRG tdRH teRI tfRJ tgRK thRL tiRM tjRN tkRO tlRP tmRQ tnRR toRS tpRT tqRU trRV tsRW ttRX# )YzTest sparse polynomials. )reduce)addmul)ringxringsringPolyRingPolyElement)field	FracField)ninf)ZZQQRRFFEX)lexgrlex)GeneratorsErrorExactQuotientFailedMultivariatePolynomialErrorCoercionFailed)raises)Symbolsymbols)S)pi)exp)sqrtc                     \        \        R 4      w  rr#\        \        R\        \
        4      P                  4      ^8X  g   Q h\        \        V \        \
        4      P                  4      ^8X  g   Q h\        \        R\        \
        4      P                  4      ^8X  g   Q h\        \        WV3\        \
        4      P                  4      ^8X  g   Q h\        \        R\        \
        4      P                  4      ^ 8X  g   Q h\        \        . \        \
        4      P                  4      ^ 8X  g   Q h\        \        R 4       \        R\        V,          \
        4      P                  \        V,          8X  g   Q h\        RR\
        4      P                  \        V,          8X  g   Q h\        R\        R\        \
        4      \
        4      P                  \        V,          8X  g   Q h\        \        R 4       \        R4      p\        R\        \
        4      P                  \
        8X  g   Q h\        R\        V4      P                  \
        8X  g   Q h\        R\        R4      P                  \
        8X  g   Q h\        R	\        \
        4      p\        R	\        \
        4      p\        R\        \
        4      pVP                  VP                  ^ ,          8X  g   Q hVP                  VP                  ^,          8X  g   Q hVP                  VP                  8X  g   Q hVP                  VP                  8X  g   Q hVP                  VP                  8w  g   Q hVP                  VP                  8w  g   Q hR
# )xyztx,y,zx c                  ,    \        ^ \        \        4      #     r   r   r        Z/var/www/html/photoedit/myenv/lib/python3.14/site-packages/sympy/polys/tests/test_rings.py<lambda>(test_PolyRing___init__.<locals>.<lambda>   s    HQC$8r)   zZZ[t]tc                  J    \        R \        R \        \        4      \        4      # r"   r'   r(   r)   r*   r+   r,   %   s    HS(3C2H#$Nr)   r   x,yN)r"   yz)mapr   lenr   r   r   gensr   r   domainorderr"   r1   )r"   r1   r2   r-   _lexR1R2R3s           r*   test_PolyRing___init__r<      sv   VV$JA!xS)../1444x2s#(()Q...xS16671<<<xq	2s+001Q666xB$))*a///xB$))*a///
?89CA$++r!u444C#&--A666C#r3/5<<1EEE
?NO%=DCS!''3...CT"((C///CU#))S000	%S	!B	%S	!B	'2s	#B442771:442771:44244<<44244<<44244<<44244<<r)   c                  R    \        R \        4      w  rr#\        V 4      '       g   Q hR# r!   Nr   r   hashRr"   r1   r2   s       r*   test_PolyRing___hash__rC   7   s    gr"JA!77N7r)   c                     \        R \        4      ^ ,          \        R \        4      ^ ,          8X  g   Q h\        R \        4      ^ ,          \        R \        4      ^ ,          8w  g   Q h\        R \        4      ^ ,          \        R \        4      ^ ,          8w  g   Q h\        R \        4      ^ ,          \        R\        4      ^ ,          8w  g   Q h\        R\        4      ^ ,          \        R \        4      ^ ,          8w  g   Q hR# )r!   r0   N)r   r   r   r(   r)   r*   test_PolyRing___eq__rE   ;   s    Q4#4Q#7777Q4#4Q#7777Q4#4Q#7777Q4r?1#5555r?1gr!21!5555r)   c                     \        R \        4      w  rr#V P                  ^4      V ! ^4      8X  g   Q hV P                  ^V,          V,          V,          4      ^V,          V,          V,          8X  g   Q hV^,          ^V,          V,          ,           ^V,          ,           ^V^,          ,          ,           ^V,          ,           ^,           pV P                  ^..^.^... RO..4      V8X  g   Q hV P                  R^R^R^R^R^R	^/4      V8X  g   Q hV P                  . R
O4      V8X  g   Q h\        R\        4      w  p V P                  R.4      V ! ^4      8X  g   Q hR# )r!   r#   N)            r&   r&      rM   r&   rM   r&   r&   r&   r&   rK   r&   r&   rM   r&   r&   r&   ))rJ   rM   )rL   rK   )rN      )rO   rG   )rP   rH   )rQ   rI   )r(      )r   r   ring_new)rB   r"   r1   r2   fs        r*   test_PolyRing_ring_newrV   B   s7   gr"JA!::a=AaD   ::ac!eAg!A#a%')))	1qs1uqsQq!tV#ac)A-A::usQCj9+671<<<::y!Y9aAyZ[]fhijkopppp::vw{||||	b"BA::wi AaD(((r)   c                  ^  aaa \        R \        4      w  ooop SP                  S4      \        R\        \        4      8X  g   Q hSP                  S4      \        R\        \        4      8X  g   Q hSP                  V 4      \        R\        \        4      8X  g   Q hSP                  ^ 4      \        R\        \        4      8X  g   Q hSP                  ^ 4      P                  ^ 4      \        R\        \        4      8X  g   Q hSP                  ^ 4      P                  ^ 4      P                  ^ 4      \        8X  g   Q hSP                  ^4      \        R\        \        4      8X  g   Q hSP                  ^4      \        R\        \        4      8X  g   Q hSP                  ^4      P                  ^4      \        R\        \        4      8X  g   Q hSP                  ^4      P                  ^4      P                  ^ 4      \        8X  g   Q h\        \        V3R l4       \        \        VVV3R l4       R# )	r!   y,zzx,zr0   r2   r"   c                  &   < S P                  ^4      # rR   droprB   s   r*   r+   $test_PolyRing_drop.<locals>.<lambda>b       qvvayr)   c                  D   < S P                  S4      P                  S4      # Nr[   rB   r"   r1   s   r*   r+   r^   c   s    qvvay~~a0r)   N)r   r   r\   r   r   r   
ValueError)r2   rB   r"   r1   s    @@@r*   test_PolyRing_droprd   Q   s   GR HAq166!9C000066!9C000066!9C000066!9C000066!9>>!b# 666666!9>>!!!!$***66!9C000066!9C000066!9>>!b# 666666!9>>!!!!$***
:()
:01r)   c                  &   \        R \        4      w  rr#V R,          \        R \        \        4      8X  g   Q hV R,          \        R\        \        4      8X  g   Q hV R,          \        R\        \        4      8X  g   Q hV R,          \        8X  g   Q hR# )r!   :r&   NN:rM   NNrX   :rK   NNr2   :rR   NNN)r   r   r   r   rA   s       r*   test_PolyRing___getitem__rf   e   ss    GR HAR5HWb#....R5HUB,,,,R5HS"c****R5B;;r)   c                  \   \        R \        \        4      p V P                  RJ g   Q hV P                  RJ g   Q h\        R\        \        4      p V P                  RJ g   Q hV P                  RJ g   Q h\        R\        \        4      p V P                  RJ g   Q hV P                  RJ g   Q hR# )r"   TFr!   r#   N)r   r   r   is_univariateis_multivariater]   s    r*   test_PolyRing_is_rj   m   s    b#A??d"""%%%"c"A??e###$$$RA??e###%%%r)   c                     \        R \        4      w  r\        ^4       Uu. uF   q!^,          ^V,          ,           ^,           NK"  	  ppV P                  V4      \	        \        V4      u;8X  d   ^V^,          ,          ^,           8X  g   Q h Q h\        R\        4      w  p V P                  . RO4      ^8X  g   Q hR# u upi )r"   r#   N)rK   rH   rS   )r   r   ranger   r   rB   r"   iFs       r*   test_PolyRing_addrp   }   s    R=DA"'(,(QQ$1*q..(A,558vc1~41a4"44444	b"BA55r!!! 	-s   &B<c                     \        R \        4      w  r\        ^4       Uu. uF   q!^,          ^V,          ,           ^,           NK"  	  ppV P                  V4      \	        \        V4      u;8X  dV   V^,          ^V^,          ,          ,           ^V^,          ,          ,           RV^,          ,          ,           R,           8X  g   Q h Q h\        R\        4      w  p V P                  . RO4      ^8X  g   Q hR# u upi )r"   i  i  r#   N)rK   rR   rH   )r   r   rl   r   r   rm   s       r*   test_PolyRing_mulrr      s    R=DA"'(,(QQ$1*q..(A,558vc1~SA1a4#ad()BSAX)MPS)SSSSSS	b"BA55r!!! 	-s   &C4c                    a \        R \        4      w  orr#\        \        V3R l4       \        \        V3R l4       SP	                  ^ 4      SP
                  8X  g   Q hSP	                  ^4      W,           V,           V,           8X  g   Q hSP	                  ^4      W,          W,          ,           W,          ,           W,          ,           W,          ,           W#,          ,           8X  g   Q hSP	                  ^4      W,          V,          W,          V,          ,           W,          V,          ,           W,          V,          ,           8X  g   Q hSP	                  ^4      W,          V,          V,          8X  g   Q hR# )x,y,z,tc                  &   < S P                  R4      # rM   symmetric_polyr]   s   r*   r+   .test_PolyRing_symmetric_poly.<locals>.<lambda>   s    q//3r)   c                  &   < S P                  ^4      # )rH   rx   r]   s   r*   r+   rz      s    q//2r)   N)r   r   r   rc   ry   one)r"   r1   r2   r-   rB   s       @r*   test_PolyRing_symmetric_polyr}      s	   B'MAqQ
:34
:23A!%%'''A!%!)a-///A!#)ac/AC"7!#"="CCCCA!#a%!#a%-!#a%"7!#a%"????A!#a%')))r)   c                     \        R 4      w  rr#\        R\        \        4      p\	        V ^V,          ,           ^V,          ,           4      WDP
                  ^VP                  ,          ,           ^VP                  ,          ,           38X  g   Q h\        R\        \        4      p\	        V ^V,          ,           V^,          ,           4      WDP
                  ^VP                  ,          ,           VP                  ^,          ,           38X  g   Q h\	        V ^V,          V^,          .4      WDP
                  ^VP                  ,          VP                  ^,          .38X  g   Q h\        R\        \        4      p\        RV\        4      p\	        V ^V,          V,          ,           ^V^,          ,          V,          ,           WV4      WDP
                  ^VP                  ,          VP                  ,          ,           ^VP                  ^,          ,          VP                  ,          ,           38X  g   Q h\        R\        \        4      p\        RV\        4      p\	        WV,          ^,          ,           V^,          V,          ^,          ,           WV4      WDP
                  VP                  VP                  ,          ^,          ,           VP                  ^,          VP                  ,          ^,          ,           38X  g   Q h\        R\        \        4      p\        RV\        4      p\	        V ^V,          V,          ,           V^,          V,          ^,          ,           WV4      WDP
                  ^VP                  ,          VP                  ,          ,           VP                  ^,          VP                  ,          ^,          ,           38X  g   Q h\        ^4      \        ^4      ,
          p\	        VRR7      w  rGVP                  \        P                  ! \        ^4      \        ^4      ,           4      8X  g   Q hVP                  R8X  g   Q hWtP                  P                  V4      8X  g   Q hR# )rt   r!   r-   T	extensionNr(   )r   r   r   r   r   r"   r1   r2   r   r-   r   r   r6   algebraic_fieldr5   
from_sympy)r"   r1   r2   r-   rB   Rtras           r*   
test_sringr      s   #JA!"c"AQqS1Q3AssQqssU{QqssU':#;;;;"c"AQqS1Q3AssQqssU{QSSU':#;;;;!QqS!A#AQqssUACCE':#;;;;	#r3	B"c"AQqSUQq!tVAX%qQ/AssQrttVACCZ7G!BDDRSG)TUTWTW-7W3XXXX	#r3	B"c"AqSUQT!VAX%qQ/AssRTT!##XaZ7G"$$PQ'RSRURU+VW-7W3XXXX	3C	 B"c"AQqSUQT!VAX%qQ/AssQqssU244Z7G"$$PQ'RSRURU+VW-7W3XXXXQ$q'Ad#DA88r))$q'DG*;<<<<66R<<##A&&&&r)   c                  l    \        R \        4      w  rr#\        W,          V,          4      '       g   Q hR# r>   r?   rA   s       r*   test_PolyElement___hash__r      s&    gr"JA!A;;;r)   c                     \        R \        \        4      w  rpW,          ^V,          V,          ,           ^8H  R8X  g   Q hW,          ^V,          V,          ,           ^V,          V,          8H  R8X  g   Q h^W,          ^V,          V,          ,           8H  R8X  g   Q h^V,          V,          W,          ^V,          V,          ,           8H  R8X  g   Q hW,          W,          ,
          ^ 8H  R8X  g   Q h^ W,          W,          ,
          8H  R8X  g   Q hW,          W,          ,
          ^8H  R8X  g   Q h^W,          W,          ,
          8H  R8X  g   Q hW,          W,          ,
          ^8H  R8X  g   Q h^W,          W,          ,
          8H  R8X  g   Q hW,          ^V,          V,          ,           ^8g  R8X  g   Q hW,          ^V,          V,          ,           ^V,          V,          8g  R8X  g   Q h^W,          ^V,          V,          ,           8g  R8X  g   Q h^V,          V,          W,          ^V,          V,          ,           8g  R8X  g   Q hW,          W,          ,
          ^ 8g  R8X  g   Q h^ W,          W,          ,
          8g  R8X  g   Q hW,          W,          ,
          ^8g  R8X  g   Q h^W,          W,          ,
          8g  R8X  g   Q hV P                  \	        ^^4      u;8X  d   V P                  8X  g   Q h Q hV P                  ^u;8X  d   V P                  8X  g   Q h Q h\        R\        4      w  r4\        R V4      w  rpV^,          V,          V,          V^,          8H  R8X  g   Q hV^,          V,          V,          V^,          8H  R8X  g   Q hR# )r0   FTr-   N)r   r   r   r|   r   )rB   r"   r1   r   r-   s        r*   test_PolyElement___eq__r      s   5"c"GA!S1Q3q5[Q5(((S1Q3q5[QqSU"t+++!#!A+5(((aCEacAaCEk"t+++S13Y1%%%!#)%%%S13Y1&&&!#)&&&S13Y1&&&!#)&&&S1Q3q5[Q4'''S1Q3q5[QqSU"u,,,!#!A+4'''aCEacAaCEk"u,,,S13Y1&&&!#)&&&S13Y1%%%!#)%%%55Bq!H%%%%%%55AbMEB5"oGA!qDF1H1%%%qDF1H1&&&r)   c                     \        R \        4      w  rpV ! ^4      Tu;8  d   V^,          u;8  d   V^,          8  g   Q h Q hV ! ^4      Tu;8:  d   V^,          u;8:  d   V^,          8:  g   Q h Q hV^,          V^,          u;8  d   Tu;8  d   V ! ^4      8  g   Q h Q hV^,          V^,          u;8  d   Tu;8  d   V ! ^4      8  g   Q h Q hR# r0   N)r   r   rb   s      r*   test_PolyElement__lt_le_gt_ge__r      s    5"oGA!Q4!!ad!QT!!!!!Q41$1$1$$$$$a4!Q$!!QqT!!!!!a41a4$1$!$$$$$r)   c                     \        R 4      w  r\        \        \        V ,          \        W3,          \        V ,          V,          3 F8  p\        RV4      w  r4\	        ^V^,          ,          ^,           4      R8X  d   K8  Q h	  \
        \
        V ,          3 F8  p\        RV4      w  r4\	        ^V^,          ,          ^,           4      R8X  d   K8  Q h	  R# )x, yr-   z
2*t**2 + 1zEX(2)*t**2 + EX(1)N)r   r   r   r   strr   )r"   r1   domrB   r-   s        r*   test_PolyElement__str__r      s    6?DAB1r!#w1a1C~1QT6A:,... 2 BqE{C~1QT6A:"6666 r)   c                      \        R \        4      w  rr#W,          ^V,          ,           pVP                  4       pWE8X  g   Q h^VR&   WE8w  g   Q hR# )r!   NrM   rM   rM   )r   r   copy)rB   r"   r1   r2   rU   gs         r*   test_PolyElement_copyr      sG    gr"JA!	ac	A	A6M6AiL6M6r)   c                  "  a
a \        R \        4      w  rr#^V^,          ,          V,          W,          V,          ,
          ^V^,          ,          ,           ^,           oV P                  w  o
rE^S
^,          ,          V,          S
V,          V,          ,
          ^V^,          ,          ,           ^,           pSV8w  g   Q hSP                  4       V8X  g   Q h\        R4      w  rxp	^V^,          ,          V,          Wx,          V	,          ,
          ^V	^,          ,          ,           ^,           pSV8w  g   Q hSP                  WxV	4      V8X  g   Q h\	        \
        V
V3R l4       \        R\        4      w  p V ! ^4      P                  4       ^8X  g   Q hR# )r!   zu,v,wc                  &   < SP                  S 4      # ra   )as_expr)XrU   s   r*   r+   *test_PolyElement_as_expr.<locals>.<lambda>  s    qyy|r)   r#   N)r   r   r   r   r   rc   )rB   r"   r1   r2   YZr   UVWr   rU   s             @@r*   test_PolyElement_as_exprr      s-   gr"JA!	!Q$q13q51QT6!A%AiiGAq	!Q$q1Q3q51QT6!A%A6M699;!gGA!	!Q$q13q51QT6!A%A6M699Q1"""
:+,	b"BAQ4<<>Qr)   c                    aa	 \        R 4      w  o	r\        S	W3\        4      w  or#pSP                  ^4      pV^8X  d   SP	                  V4      '       g   Q hSP                  S	4      pWR8X  d   SP	                  V4      '       g   Q hSP                  S	V ,          V,          4      pWRV,          V,          8X  d   SP	                  V4      '       g   Q hSP                  S	V ,          V,          S	V ,          ,           S	,           4      pWRV,          V,          W#,          ,           V,           8X  d   SP	                  V4      '       g   Q hSP                  S	^,          V ,          V,          S	^,          V ^,          ,          ,           ^,           4      pWR^,          V,          V,          V^,          V^,          ,          ,           ^,           8X  d   SP	                  V4      '       g   Q h\        \        ^4      .4      w  rgVP                  \        ^4      4      pWW^ ,          8X  d   VP	                  V4      '       g   Q h\        \        VV	3R l4       \        \        VV	3R l4       \        \        VV	3R l4       \        R\        4      w  oSP                  ^4      pV^8X  d   SP	                  V4      '       g   Q hR# )r!   c                  4   < S P                  ^S,          4      # rM   	from_exprrB   r"   s   r*   r+   ,test_PolyElement_from_expr.<locals>.<lambda>,  s    q{{1Q3/r)   c                  4   < S P                  ^S,          4      # rK   r   r   s   r*   r+   r   -  s    q{{1a40r)   c                  T   < S P                  ^S,          \        ^4      ,           4      # rS   )r   r   r   s   r*   r+   r   .  s    q{{1Q3a=9r)   r#   N)	r   r   r   r   
is_elementr   r   r   rc   )
r1   r2   r   r   r   rU   r   ro   rB   r"   s
           @@r*   test_PolyElement_from_exprr     s   gGAqq!i$JAqQ	AA6all1oo%%	AA6all1oo%%	AaCEA!A:!,,q//))	AaCEAaCK!O$A!AaALLOO33	AqDF1Hq!tAqDy(1,-A1Qq1a419$q((Q\\!__<<#a&?DA	CFA!9a((
:/0
:01
:9:	b"BA	AA6all1oo%%or)   c                  l   \        R \        4      w  rr#\        \        R4      8X  g   Q hV ! ^ 4      P	                  4       \        J g   Q hV ! ^4      P	                  4       ^ 8X  g   Q hV^,           P	                  4       ^8X  g   Q h^V^,          ,          V,           P	                  4       ^ 8X  g   Q hW^,          ,          V,           P	                  4       ^8X  g   Q hV^,          V^,          ,          V,           P	                  4       ^8X  g   Q hV ! ^ 4      P	                  V4      \        J g   Q hV ! ^4      P	                  V4      ^ 8X  g   Q hV^,           P	                  V4      ^8X  g   Q h^V^,          ,          V,           P	                  V4      ^ 8X  g   Q hW^,          ,          V,           P	                  V4      ^8X  g   Q h^V^,          ,          V^,          ,          V,           P	                  V4      ^8X  g   Q hV ! ^ 4      P	                  V4      \        J g   Q hV ! ^4      P	                  V4      ^ 8X  g   Q hV^,           P	                  V4      ^ 8X  g   Q h^V^,          ,          V,           P	                  V4      ^8X  g   Q hW^,          ,          V,           P	                  V4      ^8X  g   Q h^V^,          ,          V^,          ,          V,           P	                  V4      ^8X  g   Q hV ! ^ 4      P	                  V4      \        J g   Q hV ! ^4      P	                  V4      ^ 8X  g   Q hV^,           P	                  V4      ^ 8X  g   Q h^V^,          ,          V,           P	                  V4      ^8X  g   Q hW^,          ,          V,           P	                  V4      ^8X  g   Q h^V^,          ,          V^,          ,          V,           P	                  V4      ^8X  g   Q h\        R\        4      w  p V ! ^ 4      P	                  4       \        J g   Q hV ! ^4      P	                  4       ^ 8X  g   Q hR# )r!   z-infr#   N)r   r   r   floatdegreerA   s       r*   test_PolyElement_degreer   4  sa   GR HA5=   Q4;;=D   Q4;;=AE>>q   adFQJ A%%%dFQJ A%%%qDAIM!!#q(((Q4;;q>T!!!Q4;;q>QE>>!!!!adFQJq!Q&&&dFQJq!Q&&&adF1a4K!O##A&!+++Q4;;q>T!!!Q4;;q>QE>>!!!!adFQJq!Q&&&dFQJq!Q&&&adF1a4K!O##A&!+++Q4;;q>T!!!Q4;;q>QE>>!!!!adFQJq!Q&&&dFQJq!Q&&&adF1a4K!O##A&!+++	b"BAQ4;;=D   Q4;;=Ar)   c                  	   \        R \        4      w  rr#V ! ^ 4      P                  4       \        J g   Q hV ! ^4      P                  4       ^ 8X  g   Q hV^,           P                  4       ^ 8X  g   Q h^V^,          ,          V^,          V,          ,           P                  4       ^ 8X  g   Q hW^,          ,          V^,          V,          ,           P                  4       ^8X  g   Q hV^,          V^,          ,          V^,          V,          ,           P                  4       ^8X  g   Q hV ! ^ 4      P                  V4      \        J g   Q hV ! ^4      P                  V4      ^ 8X  g   Q hV^,           P                  V4      ^ 8X  g   Q h^V^,          ,          V^,          V,          ,           P                  V4      ^ 8X  g   Q hW^,          ,          V^,          V,          ,           P                  V4      ^8X  g   Q h^V^,          ,          V^,          ,          V^,          V,          ,           P                  V4      ^8X  g   Q hV ! ^ 4      P                  V4      \        J g   Q hV ! ^4      P                  V4      ^ 8X  g   Q hV^,           P                  V4      ^ 8X  g   Q h^V^,          ,          V^,          V,          ,           P                  V4      ^ 8X  g   Q hW^,          ,          V^,          V,          ,           P                  V4      ^ 8X  g   Q h^V^,          ,          V^,          ,          V^,          V,          ,           P                  V4      ^ 8X  g   Q hV ! ^ 4      P                  V4      \        J g   Q hV ! ^4      P                  V4      ^ 8X  g   Q hV^,           P                  V4      ^ 8X  g   Q h^V^,          ,          V^,          V,          ,           P                  V4      ^ 8X  g   Q hW^,          ,          V^,          V,          ,           P                  V4      ^ 8X  g   Q h^V^,          ,          V^,          ,          V^,          V,          ,           P                  V4      ^ 8X  g   Q h\        R\        4      w  p V ! ^ 4      P                  4       \        J g   Q hV ! ^4      P                  4       ^ 8X  g   Q hR# )r!   r#   N)r   r   tail_degreer   rA   s       r*   test_PolyElement_tail_degreer   Y  s   GR HAQ4%%%Q4"""E A%%%adFQT!VO((*a///dFQT!VO((*a///qDAI1Q++-222Q4A$&&&Q4A!###Eq!Q&&&adFQT!VO((+q000dFQT!VO((+q000adF1a4K!Q$q& --a0A555Q4A$&&&Q4A!###Eq!Q&&&adFQT!VO((+q000dFQT!VO((+q000adF1a4K!Q$q& --a0A555Q4A$&&&Q4A!###Eq!Q&&&adFQT!VO((+q000dFQT!VO((+q000adF1a4K!Q$q& --a0A555	b"BAQ4%%%Q4"""r)   c                  @   \        R \        4      w  rr#V ! ^ 4      P                  4       \        \        \        38X  g   Q hV ! ^4      P                  4       R8X  g   Q hV^,          V,          V^,          V^,          ,          ,           P                  4       R8X  g   Q hR# )r!   NrQ   )rR   rM   rK   )r   r   degreesr   rA   s       r*   test_PolyElement_degreesr   |  sy    GR HAQ4<<>dD$////Q4<<>Y&&&qDFQT!Q$Y'')Y666r)   c                  @   \        R \        4      w  rr#V ! ^ 4      P                  4       \        \        \        38X  g   Q hV ! ^4      P                  4       R8X  g   Q hV^,          V,          V^,          V^,          ,          ,           P                  4       R8X  g   Q hR# )r!   NrQ   rJ   )r   r   tail_degreesr   rA   s       r*   test_PolyElement_tail_degreesr     s    GR HAQ44t"4444Q4)+++qDFQT!Q$Y,,.);;;r)   c                  t  aaaa \        R \        \        4      w  p ooo^S^,          ,          S,          SS,          S,          ,
          ^S^,          ,          ,           ^,           oSP                  ^4      ^8X  g   Q h\	        \
        V3R l4       SP                  S4      ^ 8X  g   Q hSP                  S4      ^ 8X  g   Q hSP                  S4      ^ 8X  g   Q hSP                  S^,          S,          4      ^8X  g   Q hSP                  SS,          S,          4      R8X  g   Q hSP                  S^,          4      ^8X  g   Q h\	        \
        VVV3R l4       \	        \
        VVVV3R l4       \	        \
        VV3R l4       \        R\        4      w  p V ! ^4      P                  ^4      ^8X  g   Q hR# )r!   c                  &   < S P                  ^4      # rZ   coeffrU   s   r*   r+   (test_PolyElement_coeff.<locals>.<lambda>  s    qwwqzr)   c                  P   < S P                  ^S^,          ,          S,          4      # rZ   r   rU   r"   r1   s   r*   r+   r     s    qwwqAvax0r)   c                  D   < S P                  S) S,          S,          4      # ra   r   )rU   r"   r1   r2   s   r*   r+   r     s    qwwr!tAvr)   c                  B   < S P                  ^S^,          ,          4      # r   r   )rU   r2   s   r*   r+   r     s    qwwqAvr)   r#   Nrw   )r   r   r   r   r   rc   )rB   rU   r"   r1   r2   s    @@@@r*   test_PolyElement_coeffr     sD   gr3'JAq!Q	!Q$q1Q3q51QT6!B&A771:
:)*771:??771:??771:??771a46?a771Q3q5>R771a4=A
:01
:./
:./	b"BAQ4::a=Ar)   c                  p   \        R \        \        4      w  rpV ! ^ 4      P                  \        ^ 4      8X  g   Q h\        ^^4      V,          P                  \        ^^4      8X  g   Q h\        ^^4      V,          V,          \        ^^4      V,          ,           P                  \        ^^4      8X  g   Q hR# r   )r   r   r   LCrb   s      r*   test_PolyElement_LCr     s    5"c"GA!Q477beqGAI>>R1X%%%qGAIaK"Qq'!)#''2a8333r)   c                  6   \        R \        \        4      w  rpV ! ^ 4      P                  R8X  g   Q h\        ^^4      V,          P                  R8X  g   Q h\        ^^4      V,          V,          \        ^^4      V,          ,           P                  R8X  g   Q hR# )r0   Nr&   r&   rM   r&   rM   rM   )r   r   r   LMrb   s      r*   test_PolyElement_LMr     sw    5"c"GA!Q477fqGAI>>V###qGAIaK"Qq'!)#''6111r)   c                     \        R \        \        4      w  rpV ! ^ 4      P                  R\        ^ 4      38X  g   Q h\        ^^4      V,          P                  R\        ^^4      38X  g   Q h\        ^^4      V,          V,          \        ^^4      V,          ,           P                  R\        ^^4      38X  g   Q h\        R\        4      w  p V ! ^ 4      P                  R8X  g   Q hV ! ^4      P                  R8X  g   Q hR# )r0   r#   Nr   r   r   )r(   r&   )r(   rM   )r   r   r   LTr   rb   s      r*   test_PolyElement_LTr     s    5"c"GA!Q477vr!uo%%%qGAI>>fbAh////qGAIaK"Qq'!)#''FBq!H+====	b"BAQ477gQ477gr)   c                  Z   \        R \        \        4      w  rpV ! ^ 4      P                  4       ^ 8X  g   Q h\        ^^4      V,          P                  4       V8X  g   Q h\        ^^4      V,          V,          \        ^^4      V,          ,           P                  4       W,          8X  g   Q hR# r   )r   r   r   leading_monomrb   s      r*   test_PolyElement_leading_monomr     s    5"c"GA!Q41$$$qGAI$$&!+++qGAIaK"Qq'!)#224;;;r)   c                     \        R \        \        4      w  rpV ! ^ 4      P                  4       ^ 8X  g   Q h\        ^^4      V,          P                  4       \        ^^4      V,          8X  g   Q h\        ^^4      V,          V,          \        ^^4      V,          ,           P                  4       \        ^^4      V,          V,          8X  g   Q hR# r   )r   r   r   leading_termrb   s      r*   test_PolyElement_leading_termr     s    5"c"GA!Q4!###qGAI##%Aa222qGAIaK"Qq'!)#113r!Awqy{BBBr)   c                     \        R \        4      w  rr#V^,          ^,          V^,          ^,          ,           V^,          ^,          ,           P                  4       pVR\        ^^4      3R\        ^^4      3R\        ^^4      3.8X  g   Q h\        R\        \        4      w  rpW^,          ,          ^V^,          ,          V^,          ,          ,           pVP                  4       VP                  \        4      u;8X  d"   VP                  R4      u;8X  d   R	R
.8X  g   Q h Q hVP                  \
        4      VP                  R4      u;8X  d   R
R	.8X  g   Q h Q h\        R\        \
        4      w  rpW^,          ,          ^V^,          ,          V^,          ,          ,           pVP                  4       VP                  \
        4      u;8X  d"   VP                  R4      u;8X  d   R
R	.8X  g   Q h Q hVP                  \        4      VP                  R4      u;8X  d   R	R
.8X  g   Q h Q h\        R\        4      w  p V ! ^4      P                  4       R.8X  g   Q hR# )r!   r0   r   r   r#   NrJ   r&   rR   r&   r&   r&   rG   )rK   rR   rK   )rM   rS   rM   )r(   rR   )r   r   termsr   r   r   )rB   r"   r1   r2   r   rU   s         r*   test_PolyElement_termsr     s   GR HAT!Vad1f_q!tAv%,,.Egr!Aw''2a7);gr!Aw=OPPPP%S!FA	Q$1a41A779TT;:TTTTTT775>QWWW-K+{1KKKKKK%U#FA	Q$1a41A779X!'''*:X{K>XXXXXX773<1775>Gk;-GGGGGG	b"BAQ4::<G9$$$r)   c                     \        R \        4      w  rr#V^,          ^,          V^,          ^,          ,           V^,          ^,          ,           P                  4       pV. RO8X  g   Q h\        R\        \        4      w  rpW^,          ,          ^V^,          ,          V^,          ,          ,           pVP                  4       VP                  \        4      u;8X  d"   VP                  R4      u;8X  d   RR.8X  g   Q h Q hVP                  \
        4      VP                  R4      u;8X  d   RR.8X  g   Q h Q h\        R\        \
        4      w  rpW^,          ,          ^V^,          ,          V^,          ,          ,           pVP                  4       VP                  \
        4      u;8X  d"   VP                  R4      u;8X  d   RR.8X  g   Q h Q hVP                  \        4      VP                  R4      u;8X  d   RR.8X  g   Q h Q hR# )r!   r0   r   r   N)rJ   r   r   r   r   )r   r   monomsr   r   r   )rB   r"   r1   r2   r   rU   s         r*   test_PolyElement_monomsr     s   GR HAd1fq!tAvo1Q&..0F0000%S!FA	Q$1a41A88:#M!((5/Mff=MMMMMM88E?ahhw/CFF3CCCCCC%U#FA	Q$1a41A88:%QAHHW,=Q&&AQQQQQQ88C=AHHUO?/??????r)   c                  P   \        R \        4      w  rr#V^,          ^,          V^,          ^,          ,           V^,          ^,          ,           P                  4       pV\        ^^4      \        ^^4      \        ^^4      .8X  g   Q h\        R\        \        4      w  rpW^,          ,          ^V^,          ,          V^,          ,          ,           pVP                  4       VP                  \        4      u;8X  d"   VP                  R4      u;8X  d   ^^.8X  g   Q h Q hVP                  \
        4      VP                  R4      u;8X  d   ^^.8X  g   Q h Q h\        R\        \
        4      w  rpW^,          ,          ^V^,          ,          V^,          ,          ,           pVP                  4       VP                  \
        4      u;8X  d"   VP                  R4      u;8X  d   ^^.8X  g   Q h Q hVP                  \        4      VP                  R4      u;8X  d   ^^.8X  g   Q h Q hR# )r!   r0   r   r   N)r   r   coeffsr   r   r   )rB   r"   r1   r2   r   rU   s         r*   test_PolyElement_coeffsr     s   GR HAd1fq!tAvo1Q&..0Fb1gr!Aw1Q0000%S!FA	Q$1a41A88:#C!((5/CaVCCCCC88E?ahhw/9Aq699999%U#FA	Q$1a41A88:%GAHHW,=G!QGGGGG88C=AHHUO51v55555r)   c                     aaa	 \        R \        4      w  p o\        R\        4      w  pop\        RV4      w  po	rE\        S	^V,          ,           4      R^R	^/8X  g   Q h\        SS	,           4      \        S	S,           4      u;8X  d   R^R
S/8X  g   Q h Q h\        SS	V,          ,           4      \        S	V,          S,           4      u;8X  d   R^R
S/8X  g   Q h Q h\        SS	V,          ,           V,           4      \        S	V,          V,           S,           4      u;8X  d   R^R^R
S/8X  g   Q h Q h\        SS	,          S	,           4      \        S	SS	,          ,           4      u;8X  d   RS^,           /8X  g   Q h Q h\        SS	,          S	V,          ,           4      \        S	V,          SS	,          ,           4      u;8X  d   R^RS/8X  g   Q h Q h\        SS	,          S	V,          ,           V,           4      \        S	V,          V,           SS	,          ,           4      u;8X  d   R^R^RS/8X  g   Q h Q h\        \        VV	3R l4       \        \        VV	3R l4       \        \        VV3R l4       \        \        VV3R l4       \        R\        4      w  pop\        RV4      w  po	rE\        SS	,           4      \        S	S,           4      u;8X  d   R^R
S/8X  g   Q h Q h\        R\        4      w  po	rE\        \        \        4      S	V,          V,          ,           4      \        S	V,          V,          \        \        4      ,           4      u;8X  d#   R\        ^4      R
\        \        4      /8X  g   Q h Q hR# )r-   u,vr!   c                     < S S,           # ra   r(   r-   r"   s   r*   r+   *test_PolyElement___add__.<locals>.<lambda>  	    a!er)   c                     < SS ,           # ra   r(   r   s   r*   r+   r     r   r)   c                     < S S,           # ra   r(   r-   us   r*   r+   r   	  r   r)   c                     < SS ,           # ra   r(   r   s   r*   r+   r   
  r   r)   NrN   r&   rM   r&   rQ   rL   rP   r   r   r   dictr   	TypeErrorr
   r   r   
r   RuvvRxyzr1   r2   Fuvr-   r   r"   s
          @@@r*   test_PolyElement___add__r     s   bMEBE2HC1w$KD!AAaC=Y9a8888A;$q1u+E)Q	1)EEEEEEAaC=D1qMIiIq-IIIIIIAaC!QqS1Wq[ 1_iIqR[]^5______!a=DQqSM?iQ-??????!ac	?d1Q319oM)Q	11MMMMMM!ac	A$qsQw1}"5c)Q	STV_ab9cccccc
9m$
9m$
9m$
9m$UBHC1w$KD!AA;$q1u+E)Q	1)EEEEEEw#KD!A21Q4!A2#7`Ir!uiY[\^Y_;``````r)   c                     aaa	 \        R \        4      w  p o\        R\        4      w  pop\        RV4      w  po	rE\        S	^V,          ,
          4      R^R	R
/8X  g   Q h\        S) S	,           4      \        S	S,
          4      u;8X  d   R^RS) /8X  g   Q h Q h\        S) S	V,          ,           4      \        S	V,          S,
          4      u;8X  d   R^RS) /8X  g   Q h Q h\        S) S	V,          ,           V,           4      \        S	V,          V,           S,
          4      u;8X  d   R^R^RS) /8X  g   Q h Q h\        S) S	,          S	,           4      \        S	SS	,          ,
          4      u;8X  d   RS) ^,           /8X  g   Q h Q h\        S) S	,          S	V,          ,           4      \        S	V,          SS	,          ,
          4      u;8X  d   R^RS) /8X  g   Q h Q h\        S) S	,          S	V,          ,           V,           4      \        S	V,          V,           SS	,          ,
          4      u;8X  d   R^R^RS) /8X  g   Q h Q h\        \        VV	3R l4       \        \        VV	3R l4       \        \        VV3R l4       \        \        VV3R l4       \        R\        4      w  pop\        RV4      w  po	rE\        S) S	,           4      \        S	S,
          4      u;8X  d   R^RS) /8X  g   Q h Q h\        R\        4      w  po	rE\        \        \        4      ) S	V,          V,          ,           4      \        S	V,          V,          \        \        4      ,
          4      u;8X  d$   R\        ^4      R\        \        4      ) /8X  g   Q h Q hR# )r-   r   r!   c                     < S S,
          # ra   r(   r   s   r*   r+   *test_PolyElement___sub__.<locals>.<lambda>$  r   r)   c                     < SS ,
          # ra   r(   r   s   r*   r+   r   %  r   r)   c                     < S S,
          # ra   r(   r   s   r*   r+   r   &  r   r)   c                     < SS ,
          # ra   r(   r   s   r*   r+   r   '  r   r)   NrN   r   rQ   rL   rP   r   r   r   s
          @@@r*   test_PolyElement___sub__r    s   bMEBE2HC1w$KD!AAaC=Y9b9999Q<4A;G9aQB*GGGGGGQqS>T!A#']Ky!Y.KKKKKKQqS1acAgk!2ay!YPQS\_`^`6aaaaaa1q>T!ac']Ay1"q&.AAAAAA1qs
tAaC!A#IO9aQB2OOOOOO1qs
Q4!a!A##6e9aTUW`cdbd:eeeeee
9m$
9m$
9m$
9m$UBHC1w$KD!AQ<4A;G9aQB*GGGGGGw#KD!AB!A#a% D1QB$8bY1y[]^`[aZa<bbbbbbr)   c                    aaaa	 \        R \        4      w  p o\        R\        4      w  pop\        RV4      w  popo	\        SS,          4      \        SS,          4      u;8X  d   RS/8X  g   Q h Q h\        ^S,          S,          S	,           4      \        S^,          S,          S	,           4      u;8X  d   R^S,          R	^/8X  g   Q h Q h\        S^,          S,          S	,           4      \        ^S,          S,          S	,           4      u;8X  d   R^S,          R	^/8X  g   Q h Q h\        ^S,          S,          S	,           4      \        S^,          S,          S	,           4      u;8X  d   R^S,          R	^/8X  g   Q h Q h\        SS,          ^,          S	,           4      \        SS,          ^,          S	,           4      u;8X  d   R^S,          R	^/8X  g   Q h Q h\        ^S,          S,          V,          S	,           4      \        SV,          ^,          S,          S	,           4      u;8X  d   R
^S,          R	^/8X  g   Q h Q h\        S^,          S,          V,          S	,           4      \        ^S,          V,          S,          S	,           4      u;8X  d   R
^S,          R	^/8X  g   Q h Q h\        ^S,          S,          V,          S	,           4      \        SV,          ^,          S,          S	,           4      u;8X  d   R
^S,          R	^/8X  g   Q h Q h\        SS,          V,          ^,          S	,           4      \        SV,          S,          ^,          S	,           4      u;8X  d   R
^S,          R	^/8X  g   Q h Q h\        ^S,          V,          S,          S	,           4      \        VS,          ^,          S,          S	,           4      u;8X  d   R
^S,          R	^/8X  g   Q h Q h\        S^,          V,          S,          S	,           4      \        ^V,          S,          S,          S	,           4      u;8X  d   R
^S,          R	^/8X  g   Q h Q h\        ^S,          V,          S,          S	,           4      \        VS,          ^,          S,          S	,           4      u;8X  d   R
^S,          R	^/8X  g   Q h Q h\        SV,          S,          ^,          S	,           4      \        VS,          S,          ^,          S	,           4      u;8X  d   R
^S,          R	^/8X  g   Q h Q h\        ^S,          SV,           ,          S	,           4      \        SV,           ^,          S,          S	,           4      u;8X  d   R^S,          R^S,          R	^/8X  g   Q h Q h\        \        VVV	3R l4       \        \        VVV	3R l4       \        \        VVV	3R l4       \        \        VVV	3R l4       \        R\        4      w  pop\        RV4      w  popo	\        SS,          4      \        SS,          4      u;8X  d   RS/8X  g   Q h Q h\        R\        4      w  popo	\        \        \        4      S,          V,          S	,          4      \        SV,          S	,          \        \        4      ,          4      u;8X  d   R\        \        4      /8X  g   Q h Q hR# )r-   r   r!   c                  $   < S S,          S,           # ra   r(   r-   r"   r2   s   r*   r+   *test_PolyElement___mul__.<locals>.<lambda>J      acAgr)   c                  $   < SS ,          S,           # ra   r(   r  s   r*   r+   r  K  r  r)   c                  $   < S S,          S,           # ra   r(   r-   r   r2   s   r*   r+   r  L  r  r)   c                  $   < SS ,          S,           # ra   r(   r  s   r*   r+   r  M  r  r)   NrN   rP   rL   r   r   r   )
r   r   r   r   r1   r   r-   r   r"   r2   s
         @@@@r*   test_PolyElement___mul__r  2  s<   bMEBE2HC1w$KD!Aa!9QqS	3i^33333!A	?d1Q3q519oO)QqS)Q1OOOOOO!A	?d1Q3q519oO)QqS)Q1OOOOOO!A	?d1Q3q519oO)QqS)Q1OOOOOO!A	?d1Q3q519oO)QqS)Q1OOOOOO!Aa!QqSU1Wq[ 1Si1iQR5SSSSSS!Aa!QqSU1Wq[ 1Si1iQR5SSSSSS!Aa!QqSU1Wq[ 1Si1iQR5SSSSSS!Aa!QqSU1Wq[ 1Si1iQR5SSSSSS!Aa!QqSU1Wq[ 1Si1iQR5SSSSSS!Aa!QqSU1Wq[ 1Si1iQR5SSSSSS!Aa!QqSU1Wq[ 1Si1iQR5SSSSSS!Aa!QqSU1Wq[ 1Si1iQR5SSSSSS!QUa D!a%1q$9ki1iYZ[\Y\^gij=kkkkkk
9o&
9o&
9o&
9o&UBHC1w$KD!Aa!9QqS	3i^33333w#KD!Aa2q
1ac!eBrFl!3J	2b67JJJJJJr)   c                  l$  a	a
aaa \        R \        4      w  p or^S^,          ,          ^,
          ^,          S^,          ^,
          8X  g   Q h^S^,          ,          ^,
          ^,          S^,          8X  g   Q hS^,          ^,
          P                  S4      S8X  g   Q hS^,          S,
          P                  S4      S^,
          8X  g   Q h\        \        V3R l4       S^,          S,
          S,          S^,
          8X  g   Q h\        \        V3R l4       S^,          ^,
          P                  ^S,          4      ^ 8X  g   Q hS^,          S,
          S^,
          ,          S^,          S,
          P                  S^,
          4      u;8X  d	   S8X  g   Q h Q h\        R \        4      w  p or\        S^,          ^,          V^,          ^,          ,           V^,          ^,          ,           P                  4       4      ^ 8X  g   Q h\        R \        4      w  p or\        S^,          ^,          V^,          ^,          ,           V^,          ^,          ,           P                  4       4      ^8X  g   Q h\        R\        4      w  po\        R\        4      w  pop\        R V4      w  por\        S^,          S,          S,           S,          4      R3SR4^/8X  g   Q h\        \        VV3R l4       \        \        VV3R l4       \        \        VV3R l4       \        \        VV3R l4       \        \        VV3R	 l4       \        R
\        4      w  p oS^,          ^S,          ,           ^,           V ! ^ 4      uo	o
\        \        V	V
3R l4       \        \        V	V
3R l4       \        \        V	V
3R l4       \        \        V	V
3R l4       \        \        V	V
3R l4       \        \        V	V
3R l4       \        \        V	V
3R l4       \        R\        4      w  p opSV,          ^S,          ,           ^,           V ! ^ 4      uo	o
\        \        V	V
3R l4       \        \        V	V
3R l4       \        \        V	V
3R l4       \        \        V	V
3R l4       \        \        V	V
3R l4       \        \        V	V
3R l4       \        \        V	V
3R l4       \        R
\        4      w  p oS^,          ^,           ^S,          ^,
          uo	o
V ! ^ 4      S^,          ^,           rS	P                  S
4      \        S	S
4      u;8X  d
   Wx38X  g   Q h Q hS	P                  S
4      S	S
,          u;8X  d	   V8X  g   Q h Q hS	P                  S
4      V8X  g   Q h\        \        V	V
3R l4       \        \        V	V
3R l4       ^S^,          ,          S^,          ,           S,           ^,           ^S^,          ,          ^S,          ,
          ^,           uo	o
V ! ^ 4      S	rS	P                  S
4      \        S	S
4      u;8X  d
   Wx38X  g   Q h Q hS	P                  S
4      S	S
,          u;8X  d	   V8X  g   Q h Q hS	P                  S
4      V8X  g   Q h\        \        V	V
3R l4       \        \        V	V
3R l4       ^S^,          ,          ^S^,          ,          ,           ^S^,          ,          ,           ^S,          ,           ^,           S^,          ^S,          ,           ^,           uo	o
^S^,          ,          ^S,          ,
          ^S,          ^,           rS	P                  S
4      \        S	S
4      u;8X  d
   Wx38X  g   Q h Q hS	P                  S
4      S	S
,          u;8X  d	   V8X  g   Q h Q hS	P                  S
4      V8X  g   Q h\        \        V	V
3R l4       \        \        V	V
3R l4       ^S^,          ,          ^S^,          ,          ,           ^S^,          ,          ,           ^S^,          ,          ,           S,           S^,          ^S^,          ,          ,           ^	,           uo	o
^S,          ^,
          ^S^,          ,          ^S^,          ,          ,           ^,S,          ,
          ^6,           rS	P                  S
4      \        S	S
4      u;8X  d
   Wx38X  g   Q h Q hS	P                  S
4      S	S
,          u;8X  d	   V8X  g   Q h Q hS	P                  S
4      V8X  g   Q h\        \        V	V
3R  l4       \        \        V	V
3R! l4       \        R
\        4      w  p oS^,          ^,           ^S,          ^,
          uo	o
S^,          ^,           V ! ^4      rS	P                  S
4      \        S	S
4      u;8X  d
   Wx38X  g   Q h Q hS	P                  S
4      S	S
,          u;8X  d	   V8X  g   Q h Q hS	P                  S
4      V8X  g   Q h\        \        V	V
3R" l4       \        \        V	V
3R# l4       ^S^,          ,          S^,          ,           S,           ^,           ^S^,          ,          ^S,          ,
          ^,           uo	o
\        ^^4      S,          \        ^^4      ,           \        ^4^4      S,          \        ^o^4      ,           rS	P                  S
4      \        S	S
4      u;8X  d
   Wx38X  g   Q h Q hS	P                  S
4      S	S
,          u;8X  d	   V8X  g   Q h Q hS	P                  S
4      V8X  g   Q h\        \        V	V
3R$ l4       \        \        V	V
3R% l4       \        R\        4      w  p opS^,          V^,          ,
          SV,
          uo	o
SV,           V ! ^ 4      rS	P                  S
4      \        S	S
4      u;8X  d
   Wx38X  g   Q h Q hS	P                  S
4      S	S
,          u;8X  d	   V8X  g   Q h Q hS	P                  S
4      V8X  g   Q hS	P                  S
4      S	S
,          u;8X  d	   V8X  g   Q h Q hS^,          V^,          ,           SV,
          uo	o
SV,           ^V^,          ,          rS	P                  S
4      \        S	S
4      u;8X  d
   Wx38X  g   Q h Q hS	P                  S
4      S	S
,          u;8X  d	   V8X  g   Q h Q hS	P                  S
4      V8X  g   Q h\        \        V	V
3R& l4       \        \        V	V
3R' l4       S^,          V^,          ,           S) V,           uo	o
S) V,
          ^V^,          ,          rS	P                  S
4      \        S	S
4      u;8X  d
   Wx38X  g   Q h Q hS	P                  S
4      S	S
,          u;8X  d	   V8X  g   Q h Q hS	P                  S
4      V8X  g   Q h\        \        V	V
3R( l4       \        \        V	V
3R) l4       S^,          V^,          ,           ^S,          ^V,          ,
          uo	o
V ! ^ 4      S	rS	P                  S
4      \        S	S
4      u;8X  d
   Wx38X  g   Q h Q hS	P                  S
4      S	S
,          u;8X  d	   V8X  g   Q h Q hS	P                  S
4      V8X  g   Q h\        \        V	V
3R* l4       \        \        V	V
3R+ l4       \        R\        4      w  p opS^,          V^,          ,
          SV,
          uo	o
SV,           V ! ^ 4      rS	P                  S
4      \        S	S
4      u;8X  d
   Wx38X  g   Q h Q hS	P                  S
4      S	S
,          u;8X  d	   V8X  g   Q h Q hS	P                  S
4      V8X  g   Q hS	P                  S
4      S	S
,          u;8X  d	   V8X  g   Q h Q hS^,          V^,          ,           SV,
          uo	o
SV,           ^V^,          ,          rS	P                  S
4      \        S	S
4      u;8X  d
   Wx38X  g   Q h Q hS	P                  S
4      S	S
,          u;8X  d	   V8X  g   Q h Q hS	P                  S
4      V8X  g   Q h\        \        V	V
3R, l4       \        \        V	V
3R- l4       S^,          V^,          ,           S) V,           uo	o
S) V,
          ^V^,          ,          rS	P                  S
4      \        S	S
4      u;8X  d
   Wx38X  g   Q h Q hS	P                  S
4      S	S
,          u;8X  d	   V8X  g   Q h Q hS	P                  S
4      V8X  g   Q h\        \        V	V
3R. l4       \        \        V	V
3R/ l4       S^,          V^,          ,           ^S,          ^V,          ,
          uo	o
S^,          V^,          ,           ^V^,          ,          rS	P                  S
4      \        S	S
4      u;8X  d
   Wx38X  g   Q h Q hS	P                  S
4      S	S
,          u;8X  d	   V8X  g   Q h Q hS	P                  S
4      V8X  g   Q h\        \        V	V
3R0 l4       \        \        V	V
3R1 l4       R2# )5r!   c                  2   < S ^,          ^,
          S ,          # r   r(   r/   s   r*   r+   .test_PolyElement___truediv__.<locals>.<lambda>a  s    A1r)   c                  @   < S ^,          ^,
          ^S ,          ,          # r   r(   r/   s   r*   r+   r  c  s    AAaC(8r)   r-   r   c                  @   < S S ^,          S,          S ,           ,          # r   r(   )r   r"   s   r*   r+   r  t  s    1a46A:r)   c                     < S S,          # ra   r(   r   s   r*   r+   r  v  	    acr)   c                     < SS ,          # ra   r(   r   s   r*   r+   r  w  r  r)   c                     < S S,          # ra   r(   r   s   r*   r+   r  x  r  r)   c                     < SS ,          # ra   r(   r   s   r*   r+   r  y  r  r)   r"   c                  &   < S P                  S4      # ra   divrU   r   s   r*   r+   r  ~      aeeAhr)   c                     < \        S S4      # ra   divmodr  s   r*   r+   r        fQlr)   c                  &   < S P                  S4      # ra   remr  s   r*   r+   r    r  r)   c                     < S S,          # ra   r(   r  s   r*   r+   r    	    a!er)   c                  &   < S P                  S4      # ra   quor  s   r*   r+   r    r  r)   c                     < S S,          # ra   r(   r  s   r*   r+   r    r%  r)   c                  &   < S P                  S4      # ra   exquor  s   r*   r+   r        aggajr)   r0   c                  &   < S P                  S4      # ra   r  r  s   r*   r+   r    r  r)   c                     < \        S S4      # ra   r  r  s   r*   r+   r    r   r)   c                  &   < S P                  S4      # ra   r"  r  s   r*   r+   r    r  r)   c                     < S S,          # ra   r(   r  s   r*   r+   r    r%  r)   c                  &   < S P                  S4      # ra   r'  r  s   r*   r+   r    r  r)   c                     < S S,          # ra   r(   r  s   r*   r+   r    r%  r)   c                  &   < S P                  S4      # ra   r+  r  s   r*   r+   r    r-  r)   c                     < S S,          # ra   r(   r  s   r*   r+   r    	    Ar)   c                  &   < S P                  S4      # ra   r+  r  s   r*   r+   r        
r)   c                     < S S,          # ra   r(   r  s   r*   r+   r    r6  r)   c                  &   < S P                  S4      # ra   r+  r  s   r*   r+   r    r8  r)   c                     < S S,          # ra   r(   r  s   r*   r+   r    r6  r)   c                  &   < S P                  S4      # ra   r+  r  s   r*   r+   r    r8  r)   c                     < S S,          # ra   r(   r  s   r*   r+   r    r6  r)   c                  &   < S P                  S4      # ra   r+  r  s   r*   r+   r    r8  r)   c                     < S S,          # ra   r(   r  s   r*   r+   r    r6  r)   c                  &   < S P                  S4      # ra   r+  r  s   r*   r+   r    r8  r)   c                     < S S,          # ra   r(   r  s   r*   r+   r    r6  r)   c                  &   < S P                  S4      # ra   r+  r  s   r*   r+   r    r8  r)   c                     < S S,          # ra   r(   r  s   r*   r+   r    r6  r)   c                  &   < S P                  S4      # ra   r+  r  s   r*   r+   r    r8  r)   c                     < S S,          # ra   r(   r  s   r*   r+   r    r6  r)   c                  &   < S P                  S4      # ra   r+  r  s   r*   r+   r    r8  r)   c                     < S S,          # ra   r(   r  s   r*   r+   r    r6  r)   c                  &   < S P                  S4      # ra   r+  r  s   r*   r+   r    r8  r)   c                     < S S,          # ra   r(   r  s   r*   r+   r     r6  r)   c                  &   < S P                  S4      # ra   r+  r  s   r*   r+   r    r8  r)   c                     < S S,          # ra   r(   r  s   r*   r+   r  	  r6  r)   c                  &   < S P                  S4      # ra   r+  r  s   r*   r+   r  
  r8  r)   c                     < S S,          # ra   r(   r  s   r*   r+   r    r6  r)   c                  &   < S P                  S4      # ra   r+  r  s   r*   r+   r    r8  r)   NrN   rQ   )r   r   r(  r   r   r4   r   r   r   r   ZeroDivisionErrorr  r  r#  r,  )rB   r1   r2   r   r   r   r   qr   rU   r   r-   r   r"   s            @@@@@r*   test_PolyElement___truediv__rQ  X  s   GR HAqadFQJ>QTAX%%%adFQJ>QT!!!qD1H>>!!!!qD1H>>!A%%%
 45qD1Ha<1q5   
 89qD1H>>!A#!###qD1Hq1u!Q$(A!6;!;;;;; GR HAq1QAa!Q$q&(//12a777GR HAq1QAa!Q$q&(//12a777bMEBE2HC1w$KD!AAa!QIq)Q#????
 67
9k"
9k"
9k"
9k"R=DAqa4!A#:>1Q4DAq
./
23
./
m,
./
m,
015"oGAq!Q319q=!A$DAq
./
23
./
m,
./
m,
01R=DAqa4!8QqS1WDAqQ4Aq558va|-v-----558q1u!!!!!!558q==
.
 23QT6AqD=1q !AqD&1Q3,"2DAqQ4q558va|-v-----558q1u!!!!!!558q==
.
 23QT6AadF?Qq!tV#ac)A-q!taczA~DAqQT6AaC<Aq558va|-v-----558q1u!!!!!!558q==
.
 23QT6AadF?Qq!tV#a1f,q0!Q$1a4-!2CDAqQ37Bq!tGa1f$r!t+b0q558va|-v-----558q1u!!!!!!558q==
.
 23R=DAqa4!8QqS1WDAqQ37AaDq558va|-v-----558q1u!!!!!!558q==
.
 23QT6AqD=1q !AqD&1Q3,"2DAqa8A:2r
"Br2JqL2c2;$>q558va|-v-----558q1u!!!!!!558q==
.
 23%_FAqa4!Q$;ADAqq5!A$q558va|-v-----558q1u!!!!!!558q==771:Q#!#####a4!Q$;ADAqq5!AqD&q558va|-v-----558q1u!!!!!!558q==
.
 23a4!Q$;QDAq261QT6q558va|-v-----558q1u!!!!!!558q==
.
 23a4!Q$;!ac	DAqQ4q558va|-v-----558q1u!!!!!!558q==
.
 23%_FAqa4!Q$;ADAqq5!A$q558va|-v-----558q1u!!!!!!558q==771:Q#!#####a4!Q$;ADAqq5!AqD&q558va|-v-----558q1u!!!!!!558q==
.
 23a4!Q$;QDAq261QT6q558va|-v-----558q1u!!!!!!558q==
.
 23a4!Q$;!ac	DAqQ319a1fq558va|-v-----558q1u!!!!!!558q==
.
 23r)   c                  j
  a \        R \        \        4      w  r^V,          ^,           oS^ ,          ^8X  g   Q hS^,          S8X  g   Q h\        \        V3R l4       S^,          SP                  ^4      u;8X  dC   SP                  ^4      u;8X  d,   ^V^,          ,          ^V,          ,           ^	,           8X  g   Q h Q hS^,          SP                  ^4      u;8X  dX   SP                  ^4      u;8X  dA   ^V^,          ,          ^$V^,          ,          ,           ^6V,          ,           ^,           8X  g   Q h Q hS^,          SP                  ^4      u;8X  dm   SP                  ^4      u;8X  dV   ^V^,          ,          ^`V^,          ,          ,           ^V^,          ,          ,           ^V,          ,           ^Q,           8X  g   Q h Q hS^,          SP                  ^4      u;8X  d   SP                  ^4      u;8X  dk   ^ V^,          ,          ^V^,          ,          ,           RV^,          ,          ,           RV^,          ,          ,           RV,          ,           ^,           8X  g   Q h Q h\        R\        \        4      w  rr#V^,          V,          ^V,          V^,          ,          ,
          ^V,          ,
          ^,           oV^,          V^,          ,          ^V^,          ,          V^,          ,          ,
          ^V^,          ,          V,          V,          ,
          ^V^,          ,          V,          ,           ^V^,          ,          V^,          ,          ,           ^V,          V^,          ,          V,          ,           ^V,          V^,          ,          ,
          ^	V^,          ,          ,           ^V,          ,
          ^,           pS^,          SP                  ^4      u;8X  d    SP                  ^4      u;8X  d	   V8X  g   Q h Q h\        R\        4      w  rRV^,          ,          RV^,          ,          ,
          ^1,           oRV^,          ,          R	V^,          ,          ,           R
V^,          ,          ,           RV^
,          ,          ,           RV^,          ,          ,           RV^,          ,          ,
          RV^,          ,          ,           RV^,          ,          ,
          R,           pS^,          SP                  ^4      u;8X  d    SP                  ^4      u;8X  d	   V8X  g   Q h Q hR# )r"   c                     < S R,          # rv   r(   r   s   r*   r+   *test_PolyElement___pow__.<locals>.<lambda>  s	    q2wr)   i  i8  i*  r!   r-   i,
  l      Ml     3ul     L] l    @LV l    Aecl    F	l   `V i
IiW Ni@)r   r   r   r   rc   _pow_generic_pow_multinomial)rB   r"   r1   r2   r   r-   rU   s         @r*   test_PolyElement___pow__rW    s   RDA	!aAa4199a4199
:'a41>>!$R(:(:1(=R1a4"Q$QRARRRRRRa41>>!$](:(:1(=]1a4"QPQT'AQTVWXTXAX[]A]]]]]]a41>>!$j(:(:1(=jAqD2aQRd7ARUXYZ\]Y]U]A]`cde`eAehjAjjjjjja41>>!$x(:(:1(=xAqD3qRSt8ASVYZ[]^Z^V^A^aefgijfjajAjmpqrmrAruxAxxxxxxGR'HA	1Q1QTAaC!#A	1QT	AadF1a4K!AqD&(1*,qAvax7!AqD&A+E1QPQT	RSSVWXYVYZ[]^Z^V^^abcdfgcgaggjklmjmmpqqAa41>>!$B(:(:1(=BBBBBBR=DAq!td1a4i"$A!R%"3ArE"99<LQPRU<RR2	 -ad 2	35B1a45G	HAqD	%ad?	+-4	5A a41>>!$B(:(:1(=BBBBBBr)   c                  j   \        R \        \        4      w  rV^,          ^V^,          ,          ,
          ^*,
          pV^,
          pV^,          ^	V,          ,
          ^,
          pRpVP                  V.4      V.V38X  g   Q h\        R \        \        4      w  rV^,          ^V,          ,           ^,           pVP                  V ! ^4      .4      V.^ 38X  g   Q h\        R \        \        4      w  rV^,          ^V,          ,           ^,           pVP                  V ! ^4      .4      \	        ^^4      V^,          ,          V,           ^,           .^ 38X  g   Q h\        R\        \        4      w  rp^V^,          ,          V,          ^V,          V,          ,
          ^V,          ,           ^V,          ,
          ^,           pVP                  V ! ^4      .4      ^V^,          ,          V,          W,          ,
          ^V,          ,           V,
          ^,           .^ 38X  g   Q hVP                  ^V,          .4      ^V^,          ,          V,
          ^,
          .^V,          ^,           38X  g   Q hV^,
          pV^,
          pVP                  V.4      ^ .V38X  g   Q hW^,          ,          ^,           pW,          ^,           V^,           .pVR.p^pVP                  V4      W38X  g   Q hV^,          V,          W^,          ,          ,           V^,          ,           pW,          ^,
          V^,          ^,
          .pW,           ^.pW,           ^,           pVP                  V4      W38X  g   Q hV^,          ^,
          W,          ^,
          .pV^,           V.p^V,          ^,           pVP                  V4      W38X  g   Q h\        R\        4      w  p V ! ^4      P                  V ! ^4      4      R8X  g   Q h\        R\        4      w  p V ! ^4      P                  V ! ^4      4      \	        ^^4      ^ 38X  g   Q hR# )r"   r0   r#   Nrw   )r&   rR   )r   r   r   r  r   )	rB   r"   rU   r   rP  r   r1   GQs	            r*   test_PolyElement_divr\  0  sj   RDA	1r!Q$wA	AA	1qs
RAA55!:1#q!!!RDA	1qs
QA55!A$=aS!H$$$RDA	1qs
QA55!A$=b1gadlQ.23Q7777%U#FA	!Q$q1Q3q51Q31$q(A55!A$=a1fQhnqs2Q6:;Q????55!A#<Qq!tVaZ!^,acAg6666	AA	AA55!:1#q!!!	Q$
A	
q!a%A	
BA	A558v	1Qa4!Q$A	
q!Q$(A	

A		A558v	
A137A	
Q
A	!aA558v	b"BAQ488AaD>V###	b"BAQ488AaD>bAh]***r)   c                     \        R \        \        4      w  rV^,          ^V^,          ,          ,
          ^*,
          pV^,
          pRpVP                  V.4      VP	                  V.4      ^,          u;8X  d	   V8X  g   Q h Q h\        R\        \        4      w  rp^V^,          ,          V,          ^V,          V,          ,
          ^V,          ,           ^V,          ,
          ^,           pVP                  V ! ^4      .4      VP	                  V ! ^4      .4      ^,          u;8X  d	   ^ 8X  g   Q h Q hVP                  ^V,          .4      VP	                  ^V,          .4      ^,          u;8X  d   ^V,          ^,           8X  g   Q h Q hV^,
          pV^,
          pVP                  V.4      VP	                  V.4      ^,          u;8X  d	   V8X  g   Q h Q hW^,          ,          ^,           pW,          ^,           V^,           .p^pVP                  V4      VP	                  V4      ^,          u;8X  d	   V8X  g   Q h Q hV^,          V,          W^,          ,          ,           V^,          ,           pW,          ^,
          V^,          ^,
          .pW,           ^,           pVP                  V4      VP	                  V4      ^,          u;8X  d	   V8X  g   Q h Q hV^,          ^,
          W,          ^,
          .p^V,          ^,           pVP                  V4      VP	                  V4      ^,          u;8X  d	   V8X  g   Q h Q hR# )r"   r0   NrY  )r   r   r   r#  r  )rB   r"   rU   r   r   r1   rZ  s          r*   test_PolyElement_remr^  k  s   RDA	1r!Q$wA	AAA55!:sA+!+++++%U#FA	!Q$q1Q3q51Q31$q(A55!A$=AEE1Q4&M!,11111155!A#<155!A#<?5acAg55555	AA	AA55!:sA+!+++++	Q$
A	
q!a%A	A558quuQx{'a'''''	1Qa4!Q$A	
q!Q$(A		A558quuQx{'a'''''	
A137A	!aA558quuQx{'a'''''r)   c                     \        R \        4      w  r^V^,          ,          P                  V^,          ^V^,          ,          ,           ^,           4      R^V,          V^,          ^V,          ,           ^,           .38X  g   Q h\        R\        4      w  rpV ! ^ 4      P                  V ! ^ 4      4      R^ ^ .38X  g   Q hV ! ^4      P                  V ! ^ 4      4      R^^ .38X  g   Q hV ! ^4      P                  V ! ^4      4      R^^.38X  g   Q hV ! ^4      P                  ^V,          4      R^^V,          .38X  g   Q h^V,          P                  ^V,          4      R^V,          ^V,          .38X  g   Q hV ! ^4      P                  ^V^,          ,          4      R^^V,          .38X  g   Q h^V^,          ,          P                  ^V^,          ,          4      R^V,          ^V,          .38X  g   Q hV^,          V^,          ,          V^,          V,          ,           ^,           pV^,          V^,          ,          V^,          V,          ,           ^,           pVP                  V4      RV^,          V^,          ,          W,          ,           ^,           W^,          ,          W,          ,           ^,           .38X  g   Q hR# )r"   r0   Nr   r   )rM   rK   )rK   rM   )r   r   deflaterB   r"   r1   rU   r   s        r*   test_PolyElement_deflaterb    s>   R=DAadFAqD1QT6MA-.4!A#q!taczA~9N2OOOO%_FAQ4<<!&1a&!1111Q4<<!&1a&!1111Q4<<!&1a&!1111Q4<<!!QqS 2222aC==1&1Q3!*!5555Q4<<!Q$FQ!H#5555adFAadF#1ac
';;;;	1QT	AqDFQA	1QT	AqDFQA99Q<FQT!Q$Y_q%8!qD&13,:J$KLLLLr)   c                  	   \        R \        4      w  rpV ! ^4      P                  4       \        ^4      ^38X  g   Q hV ! ^4      P                  4       \        ^4      ^38X  g   Q hV ! \        ^^4      4      P                  4       R.8X  g   Q hV ! \        ^^4      4      P                  4       R.8X  g   Q h^V^,          ,          V,           P                  4       ^^V^,          ,          V,           38X  g   Q hV^,          \        ^^4      V,          ,           P                  4       ^^V^,          ,          V,           38X  g   Q h\        R\        \        4      w  r1p\        R\        \        4      w  rVpV\        RR4      V^,          ,          ,
          \        RR4      V^,          ,          ,
          \        RR4      V^,          ,          ,
          \        RR	4      V^,          ,          ,
          \        R
R4      V^,          ,          ,
          \        RR4      V^,          ,          ,
          \        RR4      V,          ,
          \        RR4      ,
          V^,          \        RR4      V^,          ,          ,           \        RR4      V^,          ,          ,           \        RR4      V^,          ,          ,           \        RR4      V^,          ,          ,           \        RR4      V^,          ,          ,           \        RR4      V^,          ,          ,           \        RR4      V,          ,           \        RR4      ,           .pRV,          RV^,          ,          ,
          RV^,          ,          ,
          R V^,          ,          ,
          R!V^,          ,          ,
          R"V^,          ,          ,
          R#V^,          ,          ,
          R$V,          ,
          R%,
          RV^,          ,          R&V^,          ,          ,           RV^,          ,          ,           R'V^,          ,          ,           R(V^,          ,          ,           R)V^,          ,          ,           R*V^,          ,          ,           R+V,          ,           R,,           .p	V U
u. uF(  qP                  4       ^,          P                  V4      NK*  	  up
V	8X  g   Q hR-# u up
i )/r0   zx,tl   O{]K_$-\WK.j/%=udLhL` l     :P$GNA3VCc8RNe] l   HBSW~b]"zZM}E |u"K2 l    h^%==2pDu.q~@|`:*w
h l   [_+J[kPu=\L=IGS{,c.\) o l    P=Kzzda$\0ci}=$?&@#uTn0Q l   CNVO&ilo?uTvBp5y\
$l$aP-NCR l    Hi)Sbx|5eS6O--:QRbV.r?1lW l   M[S hl<M6>P|oPoDuge l    [WGfNQNB3NoCBxcBR'.Cml   .wSK-G+~96nzLwGD<u)qG	l   >0I	B,Iu!|J=y9-l   @VTry![t
RdlCHj\LLf:' l   0%H8[J/@)\LM3B\_>mxwr) l   $><JktGl+ogKzeXBORFl   `%C!+[O;RY.{;gW!o^@*> l   `(sx]Yl   i 4&m: l   ,8y'X^l   :W]l    kB`l    
O<p{l   ;7>rI l    ``6]j_{l    @o;b|?l      T=-l     lFORl     
RtJ)1~MCMgKbqcLel   ra2U!J'B\KW4Du+%B:N'/|,3D`N l    >C_=DmbgrVJ5n,O{-[8 D/7"l   *uQ!3'; PtSo"_ ;2g0PZwg
l   .S[_ik
8Cn|#	v*u0HtSl    5u3jx]L*(IIyL1iColat1:'6(l    Pg];meVq'%opZ "Mmt:%63l    P*71}<U1qq,+'cX0rVvQa; pA9l    @ir0@>/3,F%*;W@ {=5|o&(c_46l   `k-@\K'l    4C|	,Ydm l    Lo5Rs l     "#?Vq l    @otc?c l      t-JOl     Sz(GN)rR   rS   )r   r   clear_denomsr   r   set_ring)rB   r"   r1   rQQr-   rZZr   Tro   rZ  rU   s              r*   test_PolyElement_clear_denomsri    s   %_FAQ42a5!*,,,Q42a5!*,,,R!W:""$...R!W:""$...adFQJ$$&1a1fqj/999qD2a719**,AadFQJ???E2s#HC1E2s#HC1	
Rl  nB  C  DE  GH  DH  H  
Hk  m@  A  BC  EF  BF  F
Fl  nA  B  CD  FG  CG  G
G m  oB  C  DE  GH  DH  H
H k  m  @  AB  DE  AE  E	
E
 j  l|  }  ~  AB  ~B  B
B h  jy  z  {|  |
| f  hv  w
w 
A()=>q!tC	C*+@A!Q$F
G)*>?1D
E *+@A!Q$F
G *+@A!Q$F	
G
 )*>?1D
E )*>?A
B ()=>
?	@A" 
__`	`	fghjkgk	k
l	ghiklhl	l
m 
hhiklhl	l
m 
iijlmim	m	
n
 
iijlmim	m
n 
hhiklhl	l
m 
hhi	i
j 
g
g 
q!t	#	1	$
%	 A	%
& 
!A	%
& 
"!Q$	&	
'
 
"!Q$	&
' 
!A	%
& 
!	"
# 
 
 	!A& 9:;1^^a ))#.;q@@@;s   .S c                  v   \        R \        4      w  rpV ! ^ 4      V ! ^ 4      rCVP                  V4      R8X  g   Q hV ! ^4      V ! ^ 4      rCVP                  V4      R8X  g   Q hV ! R4      V ! ^ 4      rCVP                  V4      R8X  g   Q hV ! ^ 4      V ! R4      rCVP                  V4      R	8X  g   Q hV ! ^ 4      ^V,          ^,           rCVP                  V4      ^V,          ^,           ^ ^38X  g   Q h^V,          ^,           V ! ^ 4      rCVP                  V4      ^V,          ^,           ^^ 38X  g   Q hV ! ^4      V ! ^4      rCVP                  V4      R
8X  g   Q hV ! R4      V ! ^4      rCVP                  V4      R8X  g   Q hV ! ^4      V ! R4      rCVP                  V4      R8X  g   Q hV ! R4      V ! R4      rCVP                  V4      R8X  g   Q hV^,          ^V,          ,           ^,           V ! ^4      rCVP                  V4      ^V^,          ^V,          ,           ^,           ^38X  g   Q hV^,          ^V,          ,           ^,           V ! ^4      rCVP                  V4      ^V^,          ^V,          ,           ^,           ^38X  g   Q h^V^,          ,          ^V,          ,           ^,           V ! ^4      rCVP                  V4      ^V^,          ^V,          ,           ^,           ^38X  g   Q hV ! ^4      ^V^,          ,          ^V,          ,           ^,           rCVP                  V4      ^^V^,          ^V,          ,           ^,           38X  g   Q h^V^,          ,          ^V,          ,           ^,           V^,           rCVP                  V4      V^,           ^V,          ^,           ^38X  g   Q hV^,           ^V^,          ,          ^V,          ,           ^,           rCVP                  V4      V^,           ^^V,          ^,           38X  g   Q h\        R\        4      w  rr%pV^,          ^V,          ,           ^,           ^V,          ^,           rCVP                  V4      V^,           V^,           ^38X  g   Q hV^,          V^,          ,          ^V^,          ,          V,          ,           V^,          ,           WV,          ,           V,           V^,          ^V,          ,           ^,           rCV^,           V^,          V,          V^,          ,           V,           V^,           rpVP                  V4      WxV	38X  g   Q hVP                  V4      WyV38X  g   Q h\        R \        4      w  rp\        ^^4      V^,          ,          V,           \        ^^4      ,           p\        ^^4      V,          \        ^^4      ,           pV^,           pVP                  V4      Wt\        ^^4      38X  g   Q hVP                  V4      V\        ^^4      V38X  g   Q h\        R \        4      w  rpRV,          V^,          ,          RV,          V,          ,
          RV,          ,           pRV^,          ,          pRV,          pVP                  V4      WsV,          WG,          38X  g   Q hVP                  V4      WtV,          W7,          38X  g   Q hR# )r0   rt   g @g      ?NrQ   )rK   rM   r&   )rK   rw   r&   )rK   r&   rw   )rK   rM   rM   )rK   rw   rM   )rK   rM   rw   )rK   rw   rw   )r   r   	cofactorsr   r   )
rB   r"   r1   rU   r   r2   r-   hcffcfgs
             r*   test_PolyElement_cofactorsrp    s   5"oGA!Q41q;;q>Y&&&Q41q;;q>Y&&&R5!A$q;;q>Z'''Q42q;;q>Z'''Q41qq;;q>acAgq!_,,,Q37AaDq;;q>acAgq!_,,,Q41q;;q>Y&&&R5!A$q;;q>Z'''Q42q;;q>Z'''R5!B%q;;q>[(((a4!A#:>1Q4q;;q>aA!a3333a4!A#:>1Q4q;;q>aA!a3333QT6AaC<!QqTq;;q>aA!a3333Q41a4!A#!q;;q>aAqD1Q3JN3333QT6AaC<!QUq;;q>a!eQqS1Wa0000q5!AqD&1Q3,"q;;q>a!eQ!a0000B'MA!a4!A#:>1Q37q;;q>a!eQUA....a419qAvax!Q$&,q0!Q$1*q.qa%Aa!Q$*AECA;;q>ac]***;;q>ac]***5"oGA!
1Q1q2a7"A
1Q	BqGA	AA;;q>aBqG_,,,;;q>aAa!_,,,5"oGA!Aad
SU1Ws1u$AAqDAAA;;q>a1ac]***;;q>a1ac]***r)   c                     \        R \        4      w  rp\        ^^4      V^,          ,          V,           \        ^^4      ,           p\        ^^4      V,          \        ^^4      ,           pVP                  V4      V^,           8X  g   Q hR# r   )r   r   gcdra  s        r*   test_PolyElement_gcdrs  +  sh    5"oGA!
1Q1q2a7"A
1Q	BqGA558q1ur)   c                     \        R \        4      w  rp^V^,          ,          ^V^,          ,          ,           ^V,          ,           p^V^,          ,          ^V,          ,           p^V,          ^,           p^pVP                  V4      WV38X  g   Q hV) P                  V4      V) V38X  g   Q hVP                  V) 4      V) V38X  g   Q h\        R \        4      w  rp\        ^^4      V^,          ,          V^,          ,           \        ^^4      V,          ,           p\        ^^4      V^,          ,          \        ^^4      V,          ,           p^V,          ^,           p^pVP                  V4      WV38X  g   Q hV) P                  V4      V) V38X  g   Q hVP                  V) 4      V) V38X  g   Q h\	        R\        4      w  rq\        RV4      w  rV^,          ) ^,
          ^,          V	,          pV	^,          V^,          ^,           ^,          ,           pVP                  V4      V^,          ) ^,
          V	,          ^V	^,          ,          ^V^,          ,          ,           ^,           38X  g   Q hR# )r0   r"   r-   N)r   r   cancelr   r
   )
rB   r"   r1   rU   r   ro   rZ  Fxr   r-   s
             r*   test_PolyElement_cancelrw  3  s   5"oGA!	!Q$1a4!A#A	!Q$1A	!aA	A88A;1&   B;;q>qb!W$$$88QB<QB7"""5"oGA!
1Q1q!tb1gai'A
1Q1r!Awqy A	!aA	A88A;1&   B;;q>qb!W$$$88QB<QB7"""#rNEBbMEB
Q$AaA	11q!|A88A;QTEAIq=!AqD&1QT6/A*=>>>>r)   c                  0   \        R \        4      w  rpV ! ^ 4      P                  4       ^ 8X  g   Q hV ! ^4      P                  4       ^8X  g   Q hV^,          ^V^,          ,          ,           ^V,          ,           ^,           P                  4       ^8X  g   Q hR# r   )r   r   max_normrb   s      r*   test_PolyElement_max_normrz  T  sv    5"oGA!Q4==?aQ4==?aqD1QT6MAaC!#--/1444r)   c                  0   \        R \        4      w  rpV ! ^ 4      P                  4       ^ 8X  g   Q hV ! ^4      P                  4       ^8X  g   Q hV^,          ^V^,          ,          ,           ^V,          ,           ^,           P                  4       ^
8X  g   Q hR# r   )r   r   l1_normrb   s      r*   test_PolyElement_l1_normr}  \  sv    5"oGA!Q4<<>QQ4<<>QqD1QT6MAaC!#,,."444r)   c                     \        R \        4      w  r\        R^4      V^ ,          ^,          ,          V^,          ^,          ,          V^,          ^,          ,          V^
,          ^,          ,          ^V^ ,          ^,          ,          V^,          ^,          ,          V^,          ^,          ,          ,           ^V^ ,          ^,          ,          ,           ^V^,          ^,          ,          ,
          pVP                  V^ ,          4      \        R^4      V^ ,          ^,          ,          V^,          ^,          ,          V^,          ^,          ,          V^
,          ^,          ,          ^V^ ,          ,          V^,          ^,          ,          V^,          ^,          ,          ,           ^V^ ,          ,          ,           8X  g   Q hVP                  V^,          4      \        R^4      V^ ,          ^,          ,          V^,          ^,          ,          V^,          ^,          ,          V^
,          ^,          ,          ^V^ ,          ^,          ,          V^,          ^,          ,          V^,          ^,          ,          ,           8X  g   Q hVP                  V^
,          4      \        R^4      V^ ,          ^,          ,          V^,          ^,          ,          V^,          ^,          ,          V^
,          ,          8X  g   Q hR# )zx:11i   i 	  i`  @  N)r   r   diff)rB   r   rU   s      r*   test_PolyElement_diffr  d  s   DA
3q	!A$'!A$'!!A$')!B%(2QqtQwYqtQw5FqtQw5NNPQRSTURVXYRYPYY\]^_`a^bde^e\eeA66!A$<2d1:adAg-adAg5adAg=aeQhFAaDQRSTQUWXQXYZ[\Y]_`Y`I``cdefgheiciiiii66!A$<2c!9QqT1W,QqT1W4QqT1W<QrUAXE1Q4QR7
STUVSWYZSZHZ[\]^[_ab[bHbbbbb66!B%=Bs1IadAg-adAg5adAg=aeCCCCr)   c                  (  a \        R \        4      w  r^V,          ^,           oS! ^ 4      ^8X  g   Q hS! ^4      ^8X  g   Q h\        \        V3R l4       \        \        V3R l4       \        \        V3R l4       \        R\        4      w  rp^V,          V^,          ,           ^,           oS! ^ ^ 4      ^8X  g   Q hS! ^^4      ^58X  g   Q hV P                  V4      pS! ^ 4      VP                  ^,          ^,           8X  g   Q hS! ^4      VP                  ^,          ^,           8X  g   Q h\        \        V3R l4       \        \        V3R l4       \        \        V3R l4       \        \        V3R l4       \        \        V3R	 l4       R
# )r"   c                     < S ! 4       # ra   r(   r   s   r*   r+   +test_PolyElement___call__.<locals>.<lambda>t      qsr)   c                     < S ! ^ ^4      # r%   r(   r   s   r*   r+   r  u  s    qAwr)   c                  (   < S ! \        ^^4      4      # r   r   r   s   r*   r+   r  w  s    1R!W:r)   r0   c                     < S ! 4       # ra   r(   r   s   r*   r+   r    r  r)   c                     < S ! ^ ^^4      # r%   r(   r   s   r*   r+   r    s    qAqzr)   c                  *   < S ! ^\        ^^4      4      # r   r  r   s   r*   r+   r    s    1Q1Q=r)   c                  *   < S ! \        ^^4      ^4      # r   r  r   s   r*   r+   r    s    1R!Wa=r)   c                  >   < S ! \        ^^4      \        ^^4      4      # r   r  r   s   r*   r+   r    s    1R!Wb1g#6r)   N)r   r   r   rc   r   r\   r1   )rB   r"   r1   RyrU   s       @r*   test_PolyElement___call__r  m  s#   R=DA	!aAQ4199Q4199
:{#
:'
>-.%_FA	!ad
QAQ7a<<Q7b==	
BQ42447Q;Q42447Q;
:{#
:)*
>01
>01
>67r)   c                    aaa \        R \        4      w  p oS^,          ^S^,          ,          ,           ^S,          ,           ^,           oSP                  S^ 4      pV^8X  d   \        V\        4      '       d   Q h\        \        VV3R l4       \        R\        4      w  p oopSS,          ^,          ^SS,          ^,          ,          ,           ^S,          S,          ,           ^,           oSP                  S^ 4      pV^8X  d'   V P                  S4      P                  V4      '       g   Q hSP                  S^ 3S^ 3.4      pV^8X  d(   V P                  SS4      P                  V4      '       g   Q hSP                  S^ 4      pV^8X  d'   V P                  S4      P                  V4      '       g   Q hSP                  S^ 3S^ 3.4      pV^8X  d(   V P                  SS4      P                  V4      '       g   Q hSP                  S^ 3S^ 3V^ 3.4      pV^8X  d   \        V\        4      '       d   Q h\        \        VVV3R l4       \        \        VVV3R l4       \        \        VVV3R l4       R# )r"   c                  <   < S P                  S\        ^^4      4      # r   evaluater   rU   r"   s   r*   r+   +test_PolyElement_evaluate.<locals>.<lambda>  s    1::aAa#9r)   r!   c                  F   < S P                  S^3S\        ^^4      3.4      # r   r  r   s   r*   r+   r    s!    1::1v2a7|.D#Er)   c                  F   < S P                  S\        ^^4      3S^3.4      # r   r  r   s   r*   r+   r    s!    1::2a7|aV.D#Er)   c                  Z   < S P                  S\        ^^4      3S\        ^^4      3.4      # r   r  r   s   r*   r+   r    s'    1::2a7|aAa\.J#Kr)   N)	r   r   r  
isinstancer	   r   r   r\   r   rB   r   r2   rU   r"   r1   s      @@@r*   test_PolyElement_evaluater    s   R=DAq	1qAv!aA	

1aA6*Q4444
>9:gr"JAq!Q	
1q1acAX:!A%)A	

1aA6affQi**1----	

QFQF#$A6affQl--a0000	

1aA6affQi**1----	

QFQF#$A6affQl--a0000	

QFQFQF+,A6*Q4444
>EF
>EF
>KLr)   c                    aaa \        R \        4      w  p oS^,          ^S^,          ,          ,           ^S,          ,           ^,           oSP                  S^ 4      pV^8X  d   V P                  V4      '       g   Q h\	        \
        VV3R l4       \        R\        4      w  p oopS^,          ^S^,          ,          ,           ^S,          ,           ^,           oSP                  S^ 4      pV^8X  d   V P                  V4      '       g   Q hSP                  S^ 3S^ 3.4      pV^8X  d   V P                  V4      '       g   Q h\	        \
        VVV3R l4       \	        \
        VVV3R l4       \	        \
        VVV3R l4       R# )r"   c                  <   < S P                  S\        ^^4      4      # r   subsr   r  s   r*   r+   'test_PolyElement_subs.<locals>.<lambda>  s    166!R!W#5r)   r!   c                  F   < S P                  S^3S\        ^^4      3.4      # r   r  r   s   r*   r+   r    s!    166Aq6Ar!Aw<*@#Ar)   c                  F   < S P                  S\        ^^4      3S^3.4      # r   r  r   s   r*   r+   r    s!    166Ar!Aw<!Q*@#Ar)   c                  Z   < S P                  S\        ^^4      3S\        ^^4      3.4      # r   r  r   s   r*   r+   r    s'    166Ar!Aw<!R!W*F#Gr)   N)r   r   r  r   r   r   r  s      @@@r*   test_PolyElement_subsr    s   R=DAq	1qAv!aA	q!A6all1oo%%
>56gr"JAq!Q	1qAv!aA	q!A6all1oo%%	AA A6all1oo%%
>AB
>AB
>GHr)   c                     \        R \        4      w  rpV^,          V^,          ,           pVP                  4       w  rEpV^ 8X  g   Q hVP                  V4      V,           V8X  g   Q hV^,          V^,          ,
          pVP                  4       w  rEpV^ 8w  g   Q hVP                  V4      V,           V8X  g   Q hW,          ^,           pVP                  4       w  rEpV^ 8X  g   Q hVP                  V4      V,           V8X  g   Q hV^,           pVP                  4       w  rEpV^ 8w  g   Q hVP                  V4      V,           V8X  g   Q hV P	                  ^4      pVP                  4       w  rEpV^ 8X  g   Q hVP                  V4      V,           V8X  g   Q h\        ^4      w  rVP                  4       w  rEpV^ 8X  g   Q hVP                  V4      V,           V8X  g   Q hR# r   )r   r   
symmetrizecomposer   r   )rB   r"   r1   rU   symr#  ms          r*   test_PolyElement_symmetrizer    s   5"oGA! 	
1q!tA,,.KCa!8O8;;q>C1$$$ 	
1q!tA,,.KCa!8O8;;q>C1$$$ 	
aA,,.KCa!8O8;;q>C1$$$ 	
AA,,.KCa!8O8;;q>C1$$$ 	
AA,,.KCa!8O8;;q>C1$$$ 8DA,,.KCa!8O8;;q>C1$$$r)   c                  h  aa \        R \        4      w  p oS^,          ^S^,          ,          ,           ^S,          ,           ^,           oSP                  S^ 4      pV^8X  d   V P                  V4      '       g   Q hSP                  SS4      S8X  g   Q hSP                  SS^,          4      S^,          ^S^,          ,          ,           ^S^,          ,          ,           ^,           8X  g   Q h\	        \
        VV3R l4       \        R\        4      w  p or#S^,          ^S^,          ,          ,           ^S,          ,           ^,           oSP                  S^ 4      pV^8X  d   V P                  V4      '       g   Q hSP                  S^ 3V^ 3.4      pV^8X  d   V P                  V4      '       g   Q hS^,          ^S^,          ,          ,           ^S,          V,          V,          ,           ^,           P                  SW#^,          ,          ^,
          4      pW#^,          ,          ^,
          ^,          ^W#^,          ,          ^,
          ^,          ,          ,           ^W#^,          ,          ^,
          ,          V,          V,          ,           ^,           pW8X  d   V P                  V4      '       g   Q hR# )r"   c                  <   < S P                  S\        ^^4      4      # r   )r  r   r  s   r*   r+   *test_PolyElement_compose.<locals>.<lambda>  s    199Q1Q#8r)   r!   N)r   r   r  r   r   r   )rB   r   r1   r2   rP  rU   r"   s        @@r*   test_PolyElement_composer    s   R=DAq	1qAv!aA			!QA6all1oo%%99Q?a99Q1A!Q$1a4!7!!;;;;
>89gr"JAq!	1qAv!aA			!QA6all1oo%%			Aq6Aq6"#A6all1oo%%	
A!Q$1Qq	 1	$--aa4!<A	
a4!a!Q!tVaZ!O++aa4!nQ.>q.@@1DA6all1oo%%or)   c                    a \        R \        4      w  p orSS,
          P                  R8X  g   Q hSS,
          P                  R8X  g   Q hSS,
          P                  R8X  g   Q hSS,
          P
                  R8X  g   Q hSS,
          ^,           P                  R8X  g   Q hSS,
          ^,           P                  R8X  g   Q hSS,
          ^,           P                  R8X  g   Q hSS,
          ^,           P
                  R8X  g   Q hSP                  R8X  g   Q hSP                  R8X  g   Q hSP                  R8X  g   Q hSP
                  R8X  g   Q hSV,          P                  R8X  g   Q hSV,          P                  R8X  g   Q hSV,          P                  R8X  g   Q hSV,          P
                  R8X  g   Q h^S,          P                  R8X  g   Q h^S,          P                  R8X  g   Q h^S,          P                  R8X  g   Q h^S,          P
                  R8X  g   Q h^S,          ^,           P                  R8X  g   Q h^S,          ^,           P                  R8X  g   Q h^S,          ^,           P                  R8X  g   Q h^S,          ^,           P
                  R8X  g   Q hV ! ^ 4      P                  RJ g   Q hV ! ^4      P                  RJ g   Q hV ! ^ 4      P                  RJ g   Q hV ! ^4      P                  RJ g   Q hS^,
          P                  RJ g   Q h^S,          ^,
          P                  RJ g   Q h^S,          ^,           P                  RJ g   Q h^S,          ^,           P                  RJ g   Q hSV,           V,           ^,           P                  RJ g   Q hSV,          V,          ^,           P                  RJ g   Q hSV,          V,           ^,           P                  RJ g   Q hSV,          V,          ^,           P                  RJ g   Q hS^,
          P                  RJ g   Q hS^,
          ^,          P                  RJ g   Q hS^,          S,           ^,           P                  RJ g   Q hS^,          ^S,          ,           ^,           P                  RJ g   Q h\        R\        ^4      4      w  r4^V,          ^,           P                  RJ g   Q h^V^,          ,          ^V,          ,           ^,           P                  RJ g   Q h\        R\        4      w  r5V^,          V^,          ,           V^
,          ,
          V^,          ,
          V^,          ,
          V^,          ,           pVP                   RJ g   Q hV^,           P                   RJ g   Q h\#        \$        V3R l4       \        R\        4      w  p V ! ^4      P                  RJ g   Q hV ! ^4      P                  RJ g   Q hR# )r!   FTr-   r   c                     < S P                   # ra   )is_cyclotomicr/   s   r*   r+   &test_PolyElement_is_.<locals>.<lambda>?  s	    r)   r#   N)r   r   is_generator	is_groundis_monomialis_termis_zerois_oneis_monicis_primitive	is_linearis_quadraticis_squarefreeis_irreducibler   r   r  r   r   )rB   r1   r2   _r-   r   rU   r"   s          @r*   test_PolyElement_is_r    s   GR HAqE5(((E$$$E$&&&E??d"""EAI##u,,,EAI  D(((EAI""d***EAI$&&&>>T!!!;;%==D   99aC&&&aC??e###aC$$$aC==D   aC&&&aC??e###aC%%%aC==D   aC!G!!U***aC!G%'''aC!G  E)))aC!G%%%Q4<<4Q4<<5   Q4;;%Q4;;$Et###aC!G&&&aC!G!!T)))aC!G!!U***EAIM$$,,,aCEAI  E)))aC!GaK%%---aCEAI##u,,,E  D(((UQJ%%...qD1HqL((D000qD1Q3JN**e333RVDAaC!G##t+++adFQqSL1,,555R=DA	2221$q!t+ad2A??e###E  D(((
&(?@	b"BAQ4%%%Q4$&&&r)   c                  "  aa \        R \        4      w  p opoV ! ^4      P                  ^ 4      P                   \        R\        \        4      8X  g   Q hV ! ^4      P                  ^ 4      P                  ^ 4      P                   \        R\        \        4      8X  g   Q hV P                  V ! ^4      P                  ^ 4      P                  ^ 4      P                  ^ 4      4      RJ g   Q h\        \        V3R l4       \        \        V3R l4       R# )r!   rX   r2   Fc                  b   < S P                  ^ 4      P                  ^ 4      P                  ^ 4      # r%   r[   )r2   s   r*   r+   'test_PolyElement_drop.<locals>.<lambda>L  s!    qvvay~~a055a8r)   c                  &   < S P                  ^ 4      # r%   r[   r/   s   r*   r+   r  M  r_   r)   N)r   r   r\   r   r   r   r   rc   )rB   r1   r"   r2   s     @@r*   test_PolyElement_dropr  E  s    GR HAq1Q499Q<C 8888Q499Q<Q$$b#(>>>><<!		!))!,11!45>>>
:89
:()r)   c                     \        R \        4      w  rr#^V^,          ,          ^V^,          ,          ,           ^V^,          ,          V,          ,           ^,           pVP                  ^^4      ^V,          ^,           8X  g   Q hVP                  V^4      ^8X  g   Q h^V^,          ,          ^V,          V^,          ,          V,          ,           ^
V^,          ,          ,           ^
V,          V^,          ,          ,           pVP                  V^4      ^V^,          ,          V,          ^
V^,          ,          ,           8X  g   Q hVP                  V^4      ^V,          V,          ^
,           8X  g   Q h^V^,          ,          ^V,          V,          ,           ^,           pVP                  V^4      V ! ^ 4      8X  g   Q hVP                  V^4      V ! ^ 4      8X  g   Q hR# )zx, y, zN)r   r   	coeff_wrt)rB   r"   r1   r2   ps        r*   test_PolyElement_coeff_wrtr  O  sj   i$JA!	!Q$1a4!AqD&("Q&A;;q!!a''';;q!!!!	!Q$1QT!bAg%1QT	1A;;q!!Q$q2ad7 2222;;q!!A
***	!Q$1QA;;q!!$$$;;q!!$$$r)   c                  .  aa \        R \        4      w  orV ^,          W,          ,           ^V ,          ^,           uopSP                  V4      RV,          ^,           8X  g   Q hV ^,          ^,           ^V ,          ^,
          uopSP                  V4      SP                  W 4      u;8X  d	   ^8X  g   Q h Q hSP                  V^4      S! ^ 4      8X  g   Q hW,          ^V ,          ,           ^,           W,           uopSP                  V4      V^,          ) ^V,          ,
          ^,           8X  g   Q hSP                  V^4      SP                  W!4      u;8X  d&   V ^,          ) ^V ,          ,           ^,           8X  g   Q h Q h\        \        VV3R l4       R# )r   c                  2   < SP                  S ! ^ 4      4      # r%   premrB   rU   s   r*   r+   'test_PolyElement_prem.<locals>.<lambda>l      affQqTlr)   N)r   r   r  r   rO  r"   r1   r   rB   rU   s      @@r*   test_PolyElement_premr  ^  s:   62GAqa4!#:qsQwDAq66!91q   a4!8QqS1WDAq66!9q******66!Q<1Q4319q=!%DAq66!9A!a'''66!Q<166!<:AqD51Q3;?:::::
23r)   c                  &  aa \        R \        4      w  orV ^,          ^V ^,          ,          ,           ^V ^,          ,          ,           ^V ^,          ,          ^,           uopSP                  V4      SP                  W 4      u;8X  d<   ^V ^,          ,          ^V ,          ,           ^,           RV ,          ^B,
          38X  g   Q h Q hV ^,          V^,          ,
          W,
          uopSP                  V4      SP                  V^ 4      u;8X  d   W,           ^ 38X  g   Q h Q hW,          ^V ,          ,           ^,           W,           uopSP                  V4      V^,           V^,          ) ^V,          ,
          ^,           38X  g   Q hSP                  W!4      SP                  V^4      u;8X  d/   V ^,           V ^,          ) ^V ,          ,           ^,           38X  g   Q h Q hS! ^ 4      P                  V4      R8X  g   Q h\        \        VV3R l4       R# )r0   c                  2   < SP                  S ! ^ 4      4      # r%   r  r  s   r*   r+   'test_PolyElement_pdiv.<locals>.<lambda>|  r  r)   Nir   )r   r   pdivr   rO  r  s      @@r*   test_PolyElement_pdivr  n  s   5"oGAqa4!AqD&=1QT6!1QT6A:DAq66!9qH1a4"Q$);SURZ(HHHHHHa4!Q$;DAq66!9q!2
22222319q=!%DAq66!9QA!a000066!<166!Q<CAEAqD51Q3;?+CCCCCCQ499Q<6!!!
23r)   c                     \        R \        4      w  rpV^,          ^V^,          ,          V,          ,
          ^V^,          ,          ,           V^,          ^V,          ,
          rCVP                  V4      VP                  WA4      u;8X  d   V^,          ^V,          ,
          8X  g   Q h Q hVP                  WB4      ^V^,          ,          ^V,          ,
          ^,           8X  g   Q hV^,          V^,          ,
          V^,          V^,          ,
          rCVP                  V4      VP                  V^ 4      u;8X  d   V^,          V^,          ,           8X  g   Q h Q hR# r   N)r   r   pquora  s        r*   test_PolyElement_pquor  ~  s    62GA!a4!AqD&(?Qq!tV#QTAaCZq66!9q21qs
2222266!<1QT6AaC<!++++a4!Q$;1q!tq66!9q!31q!t33333r)   c                    aa \        R \        4      w  rpV^,          V^,          ,
          W,
          uooSP                  S4      SP                  SV4      u;8X  d   W,           8X  g   Q h Q hSP                  SV4      SP                  S^4      u;8X  d   W,           ^,           8X  g   Q h Q hV^,          ^V,          ,           ^,           V^,           uoo\        \        VV3R l4       R# )r   c                  &   < S P                  S4      # ra   )pexquor  s   r*   r+   )test_PolyElement_pexquo.<locals>.<lambda>  s    r)   N)r   r   r  r   r   ra  s      @@r*   test_PolyElement_pexquor    s    62GA!a4!Q$;DAq88A;!((1a.1AE1111188Aq>QXXa^8quqy88888a4!A#:>1q5DAq
 34r)   c                      \        R \        4      w  r^V,          V^,          ^,
          r2V^ ,          \        ^^4      ) ^repVP                  V4      WF38X  g   Q hVP                  V4      WEV38X  g   Q hR# r"   N)r   r   
half_gcdexgcdex)r  r"   rU   r   sr-   rm  s          r*   test_PolyElement_gcdexr    sk    R=DAQ31r	qdR2YJ!A<<?qf$$$771:!"""r)   c                  8   \        R \        4      w  rpV^,          V,          W,          ,           W,           rCV^,          V^,          ,
          pVP                  V4      W4V.8X  g   Q hVP                  V^ 4      VP                  WA4      u;8X  d   W4V.8X  g   Q h Q hVP                  WB4      V^,          V,          W,          ,           W,           V^,          V^,          ,           .8X  g   Q h^V,          V,
          V^,          ^V,          ,           V,           rCVP                  V4      V^,          V,           ^V,          ,           ^V,          V,
          V^,          ^
V,          ,           .8X  g   Q hV ! ^ 4      V^,          V^,          ,
          rCVP                  V4      V^,          V^,          ,
          ^.8X  g   Q hV^,          V,          W,          ,           V ! ^ 4      rCVP                  V4      V^,          V,          W,          ,           ^.8X  g   Q hV ! ^ 4      V ! ^ 4      rCVP                  V4      ^ ^ .8X  g   Q hV^,          V,           V^,          V,           rCVP                  V4      V^,          V,           V^,          V,           .8X  g   Q hR# r  )r   r   subresultants)rB   r"   r1   rU   r   rm  s         r*   test_PolyElement_subresultantsr    s   62GA!a46AC<q	1q!tA??1!*** ??1a Q__Q%:GqQiGGGGG??1 QT!Vac\15!Q$A+$FFFFQ37AqD1Q3JNq??1!Q$(QqS.!A#'1a4"Q$;!GGGGQ4A1q??1!Q$A+q!1111a46AC<1q??1!Q$q&13,!2222Q41q??1!Q'''a4!8QTAXq??1!Q$(AqD1H!5555r)   c                      \        R \        4      w  rV^,          ^V,          ,
          ^,           V^,          ^,
          ^ rCpVP                  V4      V8X  g   Q hR# r  )r   r   	resultantr  r"   rU   r   rm  s        r*   test_PolyElement_resultantr    sH    R=DAdQqSj1nadQh!A;;q>Qr)   c                     \        R \        4      w  rV^,          ^V^,          ,          ,           ^	V,          ,           ^,
          Rr2VP                  4       V8X  g   Q h\        R\        4      w  rErg\        R V4      w  rWQ^,          ,          Wa,          ,           V,           V^,          ^V,          V,          ,
          r2VP                  4       V8X  g   Q hR# )r"   za,b,cNip)r   r   discriminant)r  r"   rU   r   ro   r   bcs           r*   test_PolyElement_discriminantr    s    R=DAa4!AqD&=1Q3#Vq>>q   gr"JA!Q<DAT6AC<!QTAaCE\q>>q   r)   c                     \        R \        4      w  rV^,          ^V^
,          ,          ,           ^V^,          ,          ,           RV^,          ,          ,           RV^,          ,          ,           ^V^,          ,          ,
          ^
V,          ,
          ^	,           pV^,          ^V,          ,
          ^	,           pV^,          ^V,          ,           pVP                  W4      V8X  g   Q hVP                  4       W4.8X  g   Q hR# )r"   i  q  N)r   r   r  	decomposer  s        r*   test_PolyElement_decomposer    s    R=DA	21b53q!t8#c!Q$h.QT9AadFBRTIAMA	1qs
QA	1qs
A99Q?a;;=QF"""r)   c                  0  aa \        R \        4      w  p oS^,          ^S,          ,
          ^,           P                  ^4      S^,          ^S,          ,           ^,           8X  g   Q hS^,          ^S,          ,
          ^,           P                  ^.4      S^,          ^S,          ,           ^,           8X  g   Q h\        R\        4      w  pooSS,          P                  ^^.4      S^,           S^,           ,          8X  g   Q h\	        \
        VV3R l4       R# )r"   r   c                  4   < S S,          P                  ^4      # r   )shift)r"   r1   s   r*   r+   (test_PolyElement_shift.<locals>.<lambda>  s    1Ar)   N)r   r   r  
shift_listr   r   )r  rB   r"   r1   s     @@r*   test_PolyElement_shiftr    s    R=DAqqD1Q3JN!!!$1qs
Q666qD1Q3JN&&s+q!taczA~===62GAq!aCQF#!ac{222
&(>?r)   c            	         \        R \        4      w  r\        RV 4      w  r#RRV^,          ,          ,          V^,          ,          RRV^,          ,          ,          V^,          ,          ,
          ^ RV^,          ,          ,          V^,          ,          ,           ^RV^,          ,          ,          V^,          ,          ,
          V ! ^4      R,          V,          ,           V ! ^4      R,          ,
          pVP                  4       V^,          ^dV^,          ,          ,
          V^,          ^@,          V,          ,           ^V^,          ,          ^,          ,
          ^V^,          ,          ^V,          ,
          V^,          ^@,          ,           V^,          ) ^`,          V ! R4      ^	,          ,           V,          ^V^,          ,          ^,          ,           RV^,          ,          RV^,          ,          ,
          R	V^,          ,          ,
          R
V^,          ,          RV^,          ,          ,
          R,           ,          .8X  g   Q hR# )r-   r"   i   i	=  i   r  i$  i N  i ȯ l      ir  i  l      ^_Ni)r
   r   r   sturm)ro   r-   r  r"   rU   s        r*   test_PolyElement_sturmr     s   b>DAQ<DAeAqDj!Q$s1a4xA!55E!Q$J18LLsTWXY[\X\T\~^_ab^bObbefgheijoeopqeqqtuvwtxy|t||A779	1s1a4x!Q$r'!)#bAgbj0	!Q$QAb 
Q$rAeHQJ	!Bq!tGBJ.	ArEHQTM	!M!Q$$6	6QTIaQRdN9RUc9cd	   r)   c                  @   \        R \        4      w  rV^,          ^V^,          ,          ,           V^,          ,
          ^V^,          ,          ,
          pVP                  4       V^3V^,           ^3.8X  g   Q hW^,
          ^,          ,          V^,
          ^,          ,          V^,
          ^,          ,          V^,
          ,          pVP                  4       V^,          ^V,          ,
          ^,           ^3V^,          ^V,          ,
          ^,           ^3V^3.8X  g   Q hR# r  )r   r   gff_list)r  r"   rU   s      r*   test_PolyElement_gff_listr    s    R=DA	1qAv1qAv%A::<QFQUAJ////	q51*a!eaZQ
*AE2A::<QTAaCZ!^Q/!Q$1*q.!1Dq!fMMMMr)   c                  $   \         p \         P                  ! \        ^4      4      pVP                  p\	        RV 4      w  r4p\	        RV4      w  r6pWg,          V,           P                  4       V^,          V^,          ,          ^,
          8X  g   Q hR# )rK   r0   N)r   r   r   unitr   norm)kKsqrt2r  r   r   r"   r1   s           r*   test_PolyElement_normr
    so    
A
47#AFFE5!nGA!5!nGA!C%K1a419q=000r)   c                     \        R \        P                  ! \        ^4      4      4      w  rV P	                  4       P
                  pV^,          ^,
          P                  4       ^.V^,          ^\        ^4      ,          V,          ,
          ^,           V^,          ^
V^,          ,          ,
          ^,           38X  g   Q h\        R \        P                  ! \        ^4      4      4      w  rV P	                  4       P
                  pV^,          ^,
          P                  4       ^.V^,          ^\        ^4      ,          V,          ,
          ^,
          V^,          ^
V^,          ,          ,
          ^,           38X  g   Q hR# r  )r   r   r   r   	to_groundr"   sqf_norm)rB   r"   r   s      r*   test_PolyElement_sqf_normr    s
   R''Q01DA	AqD1H aS!Q$471*<q*@!Q$AqD.STBT$UUUUR''Q01DA	AqD1H aS!Q$471*<q*@!Q$AqD.STBT$UUUUr)   c                     \        R \        4      w  rV^,          V^,          ,
          V^,          ,
          ^,           pV^,          ^V^,          ,          ,           ^V,          ,           ^,           pV^,
          pV^,          V^,          ,           V,
          ^,
          pVP                  4       V8X  g   Q hVP                  4       ^V^3V^3.38X  g   Q hR# r  )r   r   sqf_partsqf_list)r  r"   rU   r   rm  r  s         r*   test_PolyElement_sqf_listr    s    R=DA	1q!tadQA	1qAv!aA	AA	1q!ta!A::<1::<AAA/0000r)   c            
      0   \        ^4      ^,          \        ^\        ^4      ,          ^
,           4      ^,          ,           \        ^4      ^,          ^\        ^4      ,          ^,          ,           \        ^4      ^,          ^\        ^4      ,          ^,          ,           \        ^4      ) ^,          \        ^\        ^4      ,          ^
,           4      ^,          ,           .p \        V RR7      w  rVP                  \        P
                  ! \        ^4      \        ^\        ^4      ,          ^
,           4      ,           4      8X  g   Q hVP                  R8X  g   Q h. pV  F-  pVP                  VP                  P                  V4      4       K/  	  W#8X  g   Q hR# )rR   Tr   Nr(   )	r   r   r   r6   r   r   r5   appendr   )itemsrB   r   resultitems        r*   test_issue_18894r    s&   qT"WtAd1gIN+A--qtAv$q'	"/Dad1fqQUVWQXyY[|F[^_`a^b]bce]ehlmnostuovmvy{m{h|}~h~]~E$'DA88r))$q'$qay|2D*DEEEE66R<<Fahh))$/0 ;;r)   c                     \        R \        4      w  rV^,          V^,          ,
          V^,          ,
          ^,           pV^,           pV^,
          pV^,          V,           ^,           pVP                  4       ^V^3V^3V^3.38X  g   Q hR# r  )r   r   factor_list)r  r"   rU   r   r   ws         r*   test_PolyElement_factor_listr    s}    R=DA	1q!tadQA	AA	AA	1q1A==?qAq6Aq6Aq6":;;;;r)   c                  H   \        R \        ^4      4      w  rV^,          V^,          ,           V^,          ,           V^,          ,           ^,           pVP                  ^4      V^,          V^,          ,           V^,          ,           V^,          ,           ^,           8X  g   Q hR# r  )r   r   rV  )rB   r"   r  s      r*   test_issue_21410r  (  sx    RUDA	1q!tadQT!A%Aa ArEArEMArE$9ArE$AA$EEEEr)   c                      \        R 4      p \        V ,          pV! ^ 4      pVP                  4       w  r4V^ 8X  g   Q hWB8X  g   Q hVP                  RJ g   Q hR# )r"   FN)r   r   	primitiver  )r"   rB   	zero_polycontprims        r*   test_zero_polynomial_primitiver$  .  sY    A
1A!I$$&JD199%%%r)   N)u__doc__	functoolsr   operatorr   r   sympy.polys.ringsr   r   r   r   r	   sympy.polys.fieldsr
   r   sympy.polys.densebasicr   sympy.polys.domainsr   r   r   r   r   sympy.polys.orderingsr   r   sympy.polys.polyerrorsr   r   r   r   sympy.testing.pytestr   
sympy.corer   r   sympy.core.singletonr   sympy.core.numbersr   &sympy.functions.elementary.exponentialr   (sympy.functions.elementary.miscellaneousr   r<   rC   rE   rV   rd   rf   rj   rp   rr   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  rQ  rW  r\  r^  rb  ri  rp  rs  rw  rz  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r
  r  r  r  r  r  r$  r(   r)   r*   <module>r4     s      G G / ' 2 2 ,E E ( & " ! 6 9 D6)2(& ""
*'8#'J%	7*&>#J!#F7<,42<C%(@"6"a:c:$KL{4zC69+v$(LM(3AjO+b?B55D8<M8I*%%N&0H'T*%4 4 45#66!#@N1	V	1	<F	&r)   