
    \hL                         S r SSKJr  SSKJrJrJr  SSKJrJ	r	J
r
Jr  \" 5       u  rrrrrrrS rS rS rS rS	 rS
 rS rS rS rS rS rS rS rS r S r!S r"g)zOTests for Euclidean algorithms, GCDs, LCMs and polynomial remainder sequences.     )ring)ZZQQRR)f_polysdmp_fateman_poly_F_1dmp_fateman_poly_F_2dmp_fateman_poly_F_3c                     [        S[        5      u  pUS-  SUS-  -  -
  SUS-  -  -
  SU-  -   S-   nUS-  US-  -   SU-  -
  S-
  n[        SS	5      * U-  [        SS	5      -   n[        SS	5      US-  -  [        SS	5      U-  -
  S-   nUS-   nU R                  X#5      XF4:X  d   eU R                  X#5      XEU4:X  d   eUS-  SUS-  -  -   U-
  S-   nUS-  U-
  S-   nU R                  X#5      u  pEnU R                  X25      u  pxn	U R	                  U R                  XB5      U R                  XS5      5      U:X  d   eU R	                  U R                  Xs5      U R                  X5      5      U	:X  d   eSU-  nUS-  S
-
  n[        SS5      U-  n[        SS
5      * nSnU R                  X#5      XF4:X  d   eU R                  X#5      XEU4:X  d   eg )Nx                               )r   r   dup_half_gcdex	dup_gcdexdup_adddup_mul)
Rr   fgsthSTHs
             Z/var/www/auris/envauris/lib/python3.13/site-packages/sympy/polys/tests/test_euclidtools.pytest_dup_gcdexr%      s	   R=DA	1qAv!Q$A%*A	1q!tacAA	Aa
R!WA
1Q1r!Awqy 1$A	AAA!aV+++;;qq	)))	1qAvAA	1q1Akk!GA!kk!GA!99QYYq_YYq_&)*+ + +99QYYq_YYq_&)*+ + + 	
!A	1r	A
1R
A	Ab	A	AA!aV+++;;qq	)))    c                      [        S[        5      u  pU R                  SU-  US-  S-
  5      [        SS5      U-  :X  d   eg )Nr   r   r   r   r   )r   r   
dup_invertr   r   s     r$   test_dup_invertr*   1   s>    R=DA<<!QTBY'2a8A:555r&   c            
         [        S[        5      u  pUS-  US-  -   SUS-  -  -
  SUS-  -  -
  SUS-  -  -   SU-  -   S-
  nSUS-  -  SUS-  -  -   SUS-  -  -
  SU-  -
  S	-   nU R                  X#5      UU[        SS5      * US-  -  [        S
S5      US-  -  -   [        S
S5      -
  [        SS5      * US-  -  SU-  -
  [        SS5      -   [        SS5      U-  [        SS5      -
  [        SS5      * /:X  d   eg )Nr      r   r   r   r   r   	      r   u      i  i i=M  id i  iuLiif )r   r   dup_euclidean_prsr   r   r   r   s       r$   test_dup_euclidean_prsr3   6   s1   R=DA	1q!ta1fqAv%!Q$.14q8A	!Q$1a4!AqD& 1Q3&+Aq$			AaA1Q1$r!Aw.	CAqD1Q3C+
6%Rt_,	Jy	!!)# # # #r&   c                  N   [        S[        5      u  pUS-  US-  -   SUS-  -  -
  SUS-  -  -
  SUS-  -  -   SU-  -   S-
  nSUS-  -  SUS-  -  -   SUS-  -  -
  SU-  -
  S	-   nU R                  X#5      UUS
US-  -  US-  -   S-
  SUS-  -  SU-  -   S-
  SU-  S-
  S/:X  d   eg )Nr   r,   r   r   r   r   r   r-   r.      r0   1   i7  i  r   )r   r   dup_primitive_prsr2   s       r$   test_dup_primitive_prsr9   E   s    R=DA	1q!ta1fqAv%!Q$.14q8A	!Q$1a4!AqD& 1Q3&+Aq$		
1a4!Q$
1a4"Q$Q	)   r&   c                  6   [        S[        5      u  pU R                  SS5      S:X  d   eU R                  SS5      S:X  d   eU R                  SS5      S:X  d   eUS-  US-  -   SUS-  -  -
  SUS-  -  -
  SUS-  -  -   SU-  -   S	-
  nSUS-  -  S	US-  -  -   SUS-  -  -
  S
U-  -
  S-   nSUS-  -  SUS-  -  -
  S
-   nSUS-  -  SU-  -   S-
  nSU-  S-
  nSnU R                  X#5      X#XEXg/:X  d   eU R                  X#5      U R	                  U5      :X  d   eUS-  SU-  -
  S-   nUS-  S-
  nSU-  S-
  nU R                  X#5      X#U/:X  d   eU R                  X#5      S:X  d   eUS-  S-   nUS-  S-
  nSnU R                  X#5      X#U/:X  d   eU R                  X#5      S:X  d   eUS-  S-
  nUS-  US-  -
  S-   nU R                  X#5      S:X  d   eSUS-  -  U-
  nS	US-  -  S-   nU R                  X#5      S:X  d   eUS-  SU-  -
  S-   nUS-  U-
  S	-   nU R                  X#5      S:X  d   eUS-  SUS-  -  -
  SU-  -   S-
  nUS-  SUS-  -  -
  SU-  -   S-
  nU R                  X#5      S:X  d   eUS-  SUS-  -  -
  SU-  -   S-
  nUS-  SUS-  -  -
  SU-  -   S-
  nU R                  X#5      S:X  d   eUS-  S-
  nUS-  SUS-  -  -   SU-  -   S-
  nU R                  X#5      S:X  d   eUS-  S-
  nUS-
  nU R                  X#5      S:X  d   eg ) Nr   r   r   r,   r   r   r   r   r   r-   r.   r   A   }      in$  i0  id @      i	     J   x   i@
         r   )r   r   dup_resultantdup_subresultantsdup_LC)r   r   r   r   abcds           r$   test_dup_subresultantsrO   T   s   R=DA??1a A%%%??1a A%%%??1a A%%%	1q!ta1fqAv%!Q$.14q8A	!Q$1a4!AqD& 1Q3&+A
1a4!AqD&1A
1a4#a%#AQAAq$qQ(::::??1 AHHQK///	1qs
QA	1qA	!aAq$q	111??1 A%%%	1qA	1qA
Aq$q	111??1 A%%%	1qA	1q!taA??1 A%%%	!Q$
A	!Q$
A??1 B&&&	1qs
QA	1q1A??1 C'''	1qAv1q A	1r!Q$wA#A??1 E)))	1qAv1q A	1r!Q$wA"A??1 A%%%	1qA	1qAv!aA??1 B&&&	1qA	AA??1 B&&&r&   c                     [        S[        5      u  pnU R                  SS5      S:X  d   eU R                  SS5      S   S:X  d   eU R	                  SS5      S:X  d   eU R                  SS5      S:X  d   eU R                  SS5      S:X  d   eU R                  SS5      S:X  d   eU R                  SS5      S:X  d   eU R                  SS5      S:X  d   eU R                  SS5      S   S:X  d   eU R	                  SS5      S:X  d   eU R                  SS5      S:X  d   eSUS-  -  U-  US-  -
  S-
  nUS-  XS-  -  -   S-
  nSU-  US-  -  US-  -   SU-  -
  S-   nS	US
-  -  SUS-  -  -
  US-  -   SUS-  -  -
  SUS-  -  -   SUS-  -  -   SU-  -
  S-   nU R                  U5      nU R                  X45      X4XV/:X  d   eU R                  X45      U:X  d   eU R                  X45      S   U:X  d   eU R	                  X45      U:X  d   eU R                  X45      U:X  d   eUS-  * S-   nSUS-  -  U-  US-  -   nSUS-  -  SU-  -   S-   nSUS-  -  SUS-  -  -   SU-  -   S-   nU R                  U5      nU R                  X45      X4U/:X  d   eU R                  X45      U:X  d   eU R                  X45      S   U:X  d   eU R	                  X45      U:X  d   eU R                  X45      U:X  d   e[        S[        5      u  pp(pSUS-  -  SU-  U-  -
  SU-  U-  -
  X(-  -   nUS-  X-  -
  X-  -
  X-  -   nUS-  US-  -  SUS-  -  U-  U	-  -
  SUS-  -  U-  U
-  -
  SUS-  -  U	-  U
-  -   SU-  US-  -  U	-  -
  SU-  US-  -  U
-  -
  SU-  U-  U	S-  -  -   SU-  U-  U	-  U
-  -   SU-  U-  U
S-  -  -   SU-  U	S-  -  U
-  -
  SU-  U	-  U
S-  -  -
  SUS-  -  U	-  U
-  -   SU-  U	S-  -  U
-  -
  SU-  U	-  U
S-  -  -
  SU	S-  -  U
S-  -  -   nU R	                  X45      UR                  U5      :X  d   e[        S[        5      u  pp(pUS-  [        SS5      U-  U-  -
  [        SS5      U-  U-  -
  [        SS5      U-  U-  -   nUS-  X-  -
  X-  -
  X-  -   n[        SS5      US-  -  US-  -  [        SS5      US-  -  U-  U	-  -
  [        SS5      US-  -  U-  U
-  -
  [        SS5      US-  -  U	-  U
-  -   [        SS5      U-  US-  -  U	-  -
  [        SS5      U-  US-  -  U
-  -
  [        SS5      U-  U-  U	S-  -  -   [        SS5      U-  U-  U	-  U
-  -   [        SS5      U-  U-  U
S-  -  -   [        SS5      U-  U	S-  -  U
-  -
  [        SS5      U-  U	-  U
S-  -  -
  [        SS5      US-  -  U	-  U
-  -   [        SS5      U-  U	S-  -  U
-  -
  [        SS5      U-  U	-  U
S-  -  -
  U	S-  U
S-  -  -   nU R                  X45      UR                  U5      :X  d   e[        S[        5      u  p[        SU5      u  pUS-  SUS-  -  -
  SUS-  -  -   S-   nSU-  US-  -  US-  -   SU-  US-  -  -   SUS-  -  -
  S
U-  U-  -
  S-   nUR                  X45      S US-  -  S!US-  -  -   S"US-  -  -   S#-   :X  d   eg )$Nx,yr   r   r   r   r   r-      rD   r   r@   r   6   r,   i     r   r   -      i     r0   	x,y,z,u,v   $   r   r   irF   i , i! ib i  )r   r   dmp_resultantdmp_prs_resultantdmp_zz_collins_resultantdmp_qq_collins_resultantdmp_LCdmp_subresultantsdropr   rH   )r   r   yr   r   rK   rL   rzuvRtr   Rxs                 r$   test_dmp_subresultantsrj      sz   5"oGA!??1a A%%%q!$Q'1,,,%%a+q000%%a+q000??1a A%%%??1a A%%%??1a A%%%??1a A%%%q!$Q'1,,,%%a+q000%%a+q000	!Q$q1a4!A	1qAvA	!AqD1a4"Q$"A
1b52ad7QT!Bq!tG+a1f4s1a4x?#a%G"LA	Aq$q444??1 A%%%q$Q'1,,,%%a+q000%%a+q000	
A	A	!Q$q1a4A
1a4"Q$AAqD3q!t8c!e#b(A	Aq$q	111??1 A%%%q$Q'1,,,%%a+q000%%a+q000K,A!	!Q$1Q1Q$A	1qs
QS13A	1QT	AadF1HQJ1a4!+a1fQhqj81Q3q!t8A:E	!AqD
	qSU1a4Z	 "$Q$q&(1*	-/0s1uQTz	:<>qDAIaK	H
1Qq!t	1fQhqj	!#%a419Q;	/13Aa1	=?A!Q$wq!t|	LA %%a+qvvay888K,A!	1r!Awqy{R!WQYq[(2a719Q;6A	1qs
QS13A
1RAadR"Xad]1_Q..Ab!Q$q1BBR!WQPQT\RS^TUEUU
1R
1a4	qHQJq!tOA-	.021Q	!AqD0@	ACEa719Q;q=QR?	S
1Q	!AqD	a719QT>!+	,.01gaik!Q$.>	?ACAaAaPQAQ	R 	1Q	!Q$q	 a719Q;q!t+	, /0d1a4i	8A
 %%a+qvvay888bMEBbMEB	1qAv!Q$"A
1QT	AqD2a419$qAv-1Q6:AA!WQT\GAqDL%@6!Q$;%NQV%VVVVr&   c                     [        S[        5      u  pU R                  S5      S:X  d   eU R                  U5      S:X  d   eU R                  US-  SUS-  -  -   SU-  -   S-
  5      S:X  d   eU R                  S	US	-  -  US-  -   S-   5      S
:X  d   eU R                  US-  SUS-  -  -   SUS-  -  -   SU-  -
  S-   5      S:X  d   eU R                  SUS-  -  SUS-  -  -   SUS-  -  -   US-  -   S-   5      S:X  d   eg )Nr   r   r   r   r   r-   r6   pr   r   r      r   r@   r   rW    	BBu)r   r   dup_discriminantr)   s     r$   test_dup_discriminantrq      s4   R=DAa A%%%a A%%%adQq!tVmac1B676AAAa1fq!tma/0H<<<adQq!tVma1f4r!t;b@AQFFFbAg1a4/"QT'9AqD@1DEI\\\\r&   c                  0   [        S[        5      u  pU R                  S5      S:X  d   e[        S[        5      u  pnU R                  S5      S:X  d   eU R                  U5      S:X  d   eU R                  US-  SUS-  -  -   SU-  -   S-
  5      S:X  d   eU R                  S	US	-  -  US-  -   S-   5      S
:X  d   eU R                  US-  SUS-  -  -   SUS-  -  -   SU-  -
  S-   5      S:X  d   eU R                  SUS-  -  SUS-  -  -   SUS-  -  -   US-  -   S-   5      S:X  d   eU R                  US-  U-  SU-  -   5      SUS-  -  R                  U5      :X  d   eU R                  XS-  -  SU-  -   5      S:X  d   e[        S[        5      u  pp#U R                  X-  U-   5      S:X  d   e[        S[        5      u  pp#nU R                  US-  U-  X-  -   U-   5      SU-  U-  US-  -   R                  U5      :X  d   e[        S[        5      u  pp#pEU R                  US-  U-  US-  U-  -   X-  -   U-   5      SUS-  -  US-  -  SU-  U-  U-  U-  -   SU-  US-  -  -
  SUS-  -  U-  -
  US-  US-  -  -   R                  U5      :X  d   eg )Nr   r   rQ   r   r   r-   r6   rl   r   rm   r   r   rn   r   r@   r   rW   r   ro   ix,y,zx,y,z,urY   irZ   )r   r   dmp_discriminantrb   )r   r   rc   re   rf   rg   s         r$   test_dmp_discriminantrw      s   R=DAa A%%%5"oGA!a A%%%a A%%%adQq!tVmac1B676AAAa1fq!tma/0H<<<adQq!tVma1f4r!t;b@AQFFFbAg1a4/"QT'9AqD@1DEI\\\\ad1fqsl+1a4~~a/@@@@a1fqsl+q000gr"JA!acAg&!+++B'MA!ad1fqslQ./BqDFQTM3G3G3JJJJK,A!ad1fq!tAvo3a78	QT!Q$Aa!	#ac!Q$h	.1a4	9AqDAI	EKKANO O Or&   c                     [        S[        5      u  pSu  p#U R                  X#5      U R                  X#5      s=:X  a  S:X  d   e   eSu  p#U R                  X#5      U R                  X#5      s=:X  a  S:X  d   e   eSu  p#U R                  X#5      U R                  X#5      s=:X  a  S:X  d   e   eSu  p#U R                  X#5      U R                  X#5      s=:X  a  S	:X  d   e   eS
SU-  S-   p2U R                  X#5      U R                  X#5      s=:X  a  SU-  S-   S
S4:X  d   e   eSU-  S-   S
p2U R                  X#5      U R                  X#5      s=:X  a  SU-  S-   SS
4:X  d   e   eSu  p#U R                  X#5      U R                  X#5      s=:X  a  S:X  d   e   eSu  p#U R                  X#5      U R                  X#5      s=:X  a  S:X  d   e   eSu  p#U R                  X#5      U R                  X#5      s=:X  a  S:X  d   e   eSu  p#U R                  X#5      U R                  X#5      s=:X  a  S:X  d   e   eUS-  SU-  -   S-   Sp2U R                  X#5      U R                  X#5      s=:X  a  SUS-  SU-  -   S-   S4:X  d   e   eUS-  SU-  -   S-   Sp2U R                  X#5      U R                  X#5      s=:X  a  SUS-  SU-  -   S-   S4:X  d   e   eSUS-  -  SU-  -   S-   Sp2U R                  X#5      U R                  X#5      s=:X  a  SUS-  SU-  -   S-   S4:X  d   e   eSSUS-  -  SU-  -   S-   p2U R                  X#5      U R                  X#5      s=:X  a  SSUS-  SU-  -   S-   4:X  d   e   eSUS-  -  SU-  -   S-   US-   p2U R                  X#5      U R                  X#5      s=:X  a  US-   SU-  S-   S4:X  d   e   eUS-   SUS-  -  SU-  -   S-   p2U R                  X#5      U R                  X#5      s=:X  a  US-   SSU-  S-   4:X  d   e   eUS-
  Up2U R                  X#5      U R                  X#5      s=:X  a	  SX#4:X  d   e   eUS-  SUS-  -  -   SUS-  -  -   SU-  -   S-   nUS-  SUS-  -  -   SU-  -   S-   nUS-  SU-  -   S-   nUS-  SU-  -   S-   nUS-   nU R                  X#5      XEU4:X  d   eU R                  X#5      XEU4:X  d   eUS-  S-
  nUS-  SUS-  -  -   S-   nUS-  S-   nUS-  S-
  nUS-  S-   nU R                  X#5      XEU4:X  d   eU R                  X#5      XEU4:X  d   eUS-  US-  -   SUS-  -  -
  SUS-  -  -
  SUS-  -  -   SU-  -   S-
  nSUS-  -  SUS-  -  -   SUS-  -  -
  SU-  -
  S-   nSnUnUnU R                  X#5      XEU4:X  d   eU R                  X#5      XEU4:X  d   e[        S[        5      u  pUS-  US-  -   SUS-  -  -
  SUS-  -  -
  SUS-  -  -   SU-  -   S-
  nSUS-  -  SUS-  -  -   SUS-  -  -
  SU-  -
  S-   nSnUnUnU R                  X#5      XEU4:X  d   eU R                  X#5      XEU4:X  d   e[        S[        5      u  pSUS -  -  S!US"-  -  -   S#US$-  -  -   S%US&-  -  -   S'US-  -  -
  S(US)-  -  -   S*US+-  -  -   S,-   nS-US-  -  S.US)-  -  -   S/US+-  -  -
  S,-
  nU R                  X R                  US5      5      S
   U:X  d   eU R                  X R                  US5      5      S
   U:X  d   e[        S[        5      u  p[	        SS5      US-  -  U-   [	        SS5      -   n[	        SS5      U-  [	        SS5      -   nUS-   nU R                  X#5      XC[	        SS5      4:X  d   eU R                  X#5      XC[	        SS5      4:X  d   e[        S[        5      u  pS0U-  S1-   nS2U-  S3-   nS2U-  S3-   nS4nSnU R                  X#5      XEU4:X  d   eg )5Nr   r   r   r   r   r   r   r   r   r   r   r>   r   r   rG   r   r   r>   r   r   rG   r   r   r   r   r   r   r   r   r   r>   r   r   rG   r   r   r>   r   r   rG   r>   r>   r   rG   rG      r,   r   r.   rn   r   rA   r   r-   l     p>Z6-(3{ CzVgsR&r7   l       	` %'('@$@9$` V *   l      `%Nwgej^r0cu`ZhD #   l      ]%5u[ov&+/
c>_o],   l    @)-P/'X=vw+U9+; l    _I	,4~XsR`Y?t
U    l   y[p?u;ZW`( r@   l   EAy\^
l     mc@Atsl\o#MkE6w# l    @r/sLxFJGjAl   3sd%u%g%9 i[T l         qRvl        @	l        P\l        `i*  )r   r   dup_zz_heu_gcddup_rr_prs_gcdr   dup_qq_heu_gcddup_ff_prs_gcddup_diff)r   r   r   r   r    cffcfgs          r$   test_dup_gcdr     s	   R=DADAA!Q%5%5a%;HyHHHHHDAA!Q%5%5a%;HyHHHHHDAA!Q%5%5a%;IzIIIIIDAA!Q%5%5a%;IzIIIIIacAgqA!Q%5%5a%;N!aANNNNNQ37AqA!Q%5%5a%;N!aANNNNNDAA!Q%5%5a%;HyHHHHHDAA!Q%5%5a%;IzIIIIIDAA!Q%5%5a%;IzIIIIIDAA!Q%5%5a%;J{JJJJJa4!A#:>1qA!Q%5%5a%;U1a4!A#:PQ>ST?UUUUUUa4!A#:>1qA!Q%5%5a%;U1a4!A#:PQ>ST?UUUUUUQT6AaC<!QqA!Q%5%5a%;U1a4!A#:PQ>ST?UUUUUUa1fqslQqA!Q%5%5a%;U1adQqSjSTn?UUUUUUQT6AaC<!QUqA!Q%5%5a%;RAqsQwPQ?RRRRRRq5!AqD&1Q3,"qA!Q%5%5a%;RAq!A#PQ'?RRRRRRr61qA!Q%5%5a%;H1yHHHHH	1qAv1a4"Q$&*A	1qAv1q A	1qs
QA
Q$1*q.C
a%CA!ac]222A!ac]222	1qA	1qAvA	1qA
Q$(C
Q$(CA!ac]222A!ac]222	1q!ta1fqAv%!Q$.14q8A	!Q$1a4!AqD& 1Q3&+A	A
C
CA!ac]222A!ac]222R=DA	1q!ta1fqAv%!Q$.14q8A	!Q$1a4!AqD& 1Q3&+A	A
C
CA!ac]222A!ac]222R=DAdefhjejj
]^_ac^c
c	d
XYZ\^Y^
^	_ SSTVXSX
X	Y LArE
Q		R
 DArE
I	J :!Q$
>	? /	/A Gq"u
L
@B
FG
8A
=> //A
 Azz!Q/03q888Azz!Q/03q888R=DA
1Q1q2a7"A
1Q	BqGA	AAA!aBqG_444A!aBqG_444R=DAq #99A111A111A
C
CA!ac]222r&   c            
         [        S[        5      u  pnSu  p4U R                  X45      U R                  X45      s=:X  a  S:X  d   e   eSu  p4U R                  X45      U R                  X45      s=:X  a  S:X  d   e   eSu  p4U R                  X45      U R                  X45      s=:X  a  S:X  d   e   eSu  p4U R                  X45      U R                  X45      s=:X  a  S	:X  d   e   eS
SU-  S-   pCU R                  X45      U R                  X45      s=:X  a  SU-  S-   S
S4:X  d   e   eSU-  S-   S
pCU R                  X45      U R                  X45      s=:X  a  SU-  S-   SS
4:X  d   e   eSu  p4U R                  X45      U R                  X45      s=:X  a  S:X  d   e   eSu  p4U R                  X45      U R                  X45      s=:X  a  S:X  d   e   eSu  p4U R                  X45      U R                  X45      s=:X  a  S:X  d   e   eSu  p4U R                  X45      U R                  X45      s=:X  a  S:X  d   e   eUS-  SU-  -   S-   SpCU R                  X45      U R                  X45      s=:X  a  SUS-  SU-  -   S-   S4:X  d   e   eUS-  SU-  -   S-   SpCU R                  X45      U R                  X45      s=:X  a  SUS-  SU-  -   S-   S4:X  d   e   eSUS-  -  SU-  -   S-   SpCU R                  X45      U R                  X45      s=:X  a  SUS-  SU-  -   S-   S4:X  d   e   eSSUS-  -  SU-  -   S-   pCU R                  X45      U R                  X45      s=:X  a  SSUS-  SU-  -   S-   4:X  d   e   eSUS-  -  SU-  -   S-   US-   pCU R                  X45      U R                  X45      s=:X  a  US-   SU-  S-   S4:X  d   e   eUS-   SUS-  -  SU-  -   S-   pCU R                  X45      U R                  X45      s=:X  a  US-   SSU-  S-   4:X  d   e   e[        S[        5      u  pp%nUS-  SU-  -   S-   SU-  S-   pCU R                  X45      U R                  X45      s=:X  a  US-   US-   S4:X  d   e   eUS-  US-  -  SUS-  -  U-  -   US-  -   XV-  -   U-   US-  SU-  -   S-   pCUS-   US-  U-  US-  -   U-   US-   pnU R                  X45      XxU	4:X  d   eU R                  X45      XxU	4:X  d   eU R                  XC5      XyU4:X  d   eU R                  XC5      XyU4:X  d   e[        S[        5      u  pp%[	        U R
                  [        S[        5      5      u  p4nU R                  X45      u  pn	X:X  a*  U R                  X5      U:X  a  U R                  X5      U:X  d   eU R                  X45      u  pn	X:X  a*  U R                  X5      U:X  a  U R                  X5      U:X  d   e[        S[        5      u  pp%pk[	        U R
                  [        S[        5      5      u  p4nU R                  X45      u  pn	X:X  a*  U R                  X5      U:X  a  U R                  X5      U:X  d   e[        S[        5      u  pp%pkp[	        U R
                  [        S[        5      5      u  p4nU R                  X45      u  pn	X:X  a*  U R                  X5      U:X  a  U R                  X5      U:X  d   e[        S[        5      u
  pp%pkpp[	        U R
                  [        S[        5      5      u  p4nU R                  X45      u  pn	X:X  a*  U R                  X5      U:X  a  U R                  X5      U:X  d   e[        S[        5      u  pp%[	        U R
                  [        S[        5      5      u  p4nU R                  X45      u  pn	X:X  a*  U R                  X5      U:X  a  U R                  X5      U:X  d   eU R                  X45      u  pn	X:X  a*  U R                  X5      U:X  a  U R                  X5      U:X  d   e[	        U R
                  [        S[        5      5      u  p4nU R                  X45      u  pn	X:X  a*  U R                  X5      U:X  a  U R                  X5      U:X  d   eU R                  X45      u  pn	X:X  a*  U R                  X5      U:X  a  U R                  X5      U:X  d   e[        S[        5      u  pp%pk[	        U R
                  [        S[        5      5      u  p4nU R                  X45      u  pn	X:X  a*  U R                  X5      U:X  a  U R                  X5      U:X  d   e[        S[        5      u  pn[        SS5      US-  -  U-   [        SS5      -   n[        SS5      U-  [        SS5      -   nUS-   nU R                  X45      Xt[        SS5      4:X  d   eU R                  X45      Xt[        SS5      4:X  d   e[        S[        5      u  pnSU-  US-  -  SU-  U-  -
  SU-  -   nSUS -  -  nU R                  X45      SU-  SUS-  -  SU-  -
  S-   SUS-  -  4:X  d   eg )!NrQ   ry   rz   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rt   rs   rY   zx,y,z,u,v,a,br   zx,y,z,u,v,a,b,c,dr,   g @g@g      ?r   )r   r   dmp_zz_heu_gcddmp_rr_prs_gcdmap
from_denser   dmp_mulr	   r
   dmp_inner_gcdr   dmp_qq_heu_gcddmp_ff_prs_gcdr   )r   r   rc   r   r   re   rf   r    r   r   r#   rg   rK   rL   rM   rN   s                   r$   test_dmp_gcdr     s   5"oGA!DAA!Q%5%5a%;HyHHHHHDAA!Q%5%5a%;HyHHHHHDAA!Q%5%5a%;IzIIIIIDAA!Q%5%5a%;IzIIIIIacAgqA!Q%5%5a%;N!aANNNNNQ37AqA!Q%5%5a%;N!aANNNNNDAA!Q%5%5a%;HyHHHHHDAA!Q%5%5a%;IzIIIIIDAA!Q%5%5a%;IzIIIIIDAA!Q%5%5a%;J{JJJJJa4!A#:>1qA!Q%5%5a%;U1a4!A#:PQ>ST?UUUUUUa4!A#:>1qA!Q%5%5a%;U1a4!A#:PQ>ST?UUUUUUQT6AaC<!QqA!Q%5%5a%;U1a4!A#:PQ>ST?UUUUUUa1fqslQqA!Q%5%5a%;U1adQqSjSTn?UUUUUUQT6AaC<!QUqA!Q%5%5a%;RAqsQwPQ?RRRRRRq5!AqD&1Q3,"qA!Q%5%5a%;RAq!A#PQ'?RRRRRRB'MA!a4!A#:>1Q37qA!Q%5%5a%;PAq1ua?PPPPPPa419qAvax!Q$&,q0!Q$1*q.qa%Aa!Q$*AECAA!ac]222A!ac]222A!ac]222A!ac]222gr"JA!!,, 4Q ;<GA!""1(KAC6aii'1,ii'1,- - ""1(KAC6aii'1,ii'1,- - K,A!!,, 4Q ;<GA!""1(KAC6aii'1,ii'1,- - "/26A!a!,, 4Q ;<GA!""1(KAC6aii'1,ii'1,- - $((;R#@ A!aA!,, 4Q ;<GA!""1(KAC6aii'1,ii'1,- - gr"JA!!,, 4Q ;<GA!""1(KAC6aii'1,ii'1,- - ""1(KAC6aii'1,ii'1,- - !,, 4Q ;<GA!""1(KAC6aii'1,ii'1,- - ""1(KAC6aii'1,ii'1,- - K,A!!,, 4Q ;<GA!//!'KAC6aii'1,ii'1,- - 5"oGA!
1Q1q2a7"A
1Q	BqGA	AAA!aBqG_444A!aBqG_4445"oGA!Aad
SU1Ws1u$AAqDAA!	QAqD3q5 3&AqD12 2 2r&   c                     [        S[        5      u  pU R                  SS5      S:X  d   eU R                  SUS-  -  SU-  5      SUS-  -  :X  d   eU R                  SUS-  -  SU-  5      SUS-  -  :X  d   eU R                  US-  U-   U5      US-  U-   :X  d   eU R                  US-  U-   SU-  5      SUS-  -  SU-  -   :X  d   eU R                  US-  SU-  -   U5      US-  SU-  -   :X  d   eU R                  SUS-  -  U-   U5      SUS-  -  U-   :X  d   eU R                  SUS-  -  U-   SU-  5      SUS-  -  SU-  -   :X  d   eg )Nr   r   r   r   r   )r   r   dup_lcmr)   s     r$   test_dup_lcmr   8  sz   R=DA99Q?a99Qq!tVQqS!Qq!tV+++99Qq!tVQqS!Qq!tV+++99QTAXq!QTAX---99QTAXqs#qAv!|33399QTAaCZ#q!tacz11199Qq!tVaZ#qAvz11199Qq!tVaZ1%1a4!A#555r&   c                  R   [        S[        5      u  pnU R                  SS5      S:X  d   eU R                  X5      X-  :X  d   eU R                  SUS-  -  SU-  US-  -  5      SUS-  -  US-  -  :X  d   eU R                  SUS-  -  SU-  US-  -  5      SUS-  -  US-  -  :X  d   eU R                  US-  U-  XS-  -  5      US-  US-  -  :X  d   eSU-  US-  -  SU-  US-  -  -
  SU-  US-  -  -
  SU-  US-  -  -   nUS-  SUS-  -  -
  U-   nSU-  US-  -  SU-  US-  -  -
  SU-  US-  -  -
  SU-  US-  -  -   SU-  US-  -  -   SU-  US-  -  -
  nU R                  X45      U:X  d   eUS-  SUS-  -  U-  -
  SU-  US-  -  -
  SUS-  -  -
  nUS-  SUS-  -  U-  -   S	US-  -  US-  -  -   S
U-  US-  -  -   SUS-  -  -   nUS-  US-  U-  -   SUS-  -  US-  -  -
  SUS-  -  US-  -  -
  SU-  US-  -  -
  SUS-  -  -
  nU R                  X45      U:X  d   eg )NrQ   r   r   r   r   r   r@   r-   r   rD   rZ   2   /   r   )r   r   dmp_lcm)r   r   rc   r   r   r    s         r$   test_dmp_lcmr   G  s   5"oGA!99Q?a99Q?ac!!!99Qq!tVQqSAX&!AqD&A+55599Qq!tVQqSAX&!AqD&A+55599QT!VQ!tV$1QT	111	!AqD1Q3q!t8ac!Q$h&1QT1A	1qAvA	!AqD1Q3q!t8ac!Q$h&1QT1AaC1H<qs1a4xGA99Q?a	1qAvax!A#ad("Qq!tV+A	1qAvax"QT'!Q$,&Aad2Qq!tV;A	1q!tAv1a41$r!Q$wq!t|3bd1a4i?"QT'IA99Q?ar&   c                     [        S[        5      u  pnU R                  S5      S:X  d   eSUS-  -  SU-  -   S-   SSpTn[        SS5       H  nXC-  nXQU-  U-  -  nM     U R                  U5      UR	                  U5      :X  d   e[        S[        5      u  pp'U R                  [
        5      S:X  d   eU R                  [        5      S:X  d   e[        S	[        5      u  pp'nU R                  [        5      S:X  d   eg )
NrQ   r>   r   r   r   r   r   rs   x,y,z,t)r   r   dmp_contentrangerb   f_4f_5f_6)	r   r   rc   r   r   Fire   r   s	            r$   test_dmp_contentr   _  s    %_FA==!!!1fqslQ1!A1a[		T!V  ==qvvay(((GR HA=="""=="""i$JAQ=="""r&   c                     [        S[        5      u  pnU R                  S5      S:X  d   eU R                  S5      S:X  d   eSUS-  -  SU-  -   S-   SSpTn[        SS5       H  nXC-  nXQU-  U-  -  nM     U R                  U5      UR	                  U5      XS-  4:X  d   e[        S	[        5      u  pp'U R                  [
        5      u  pUS:X  a
  U[
        :X  d   eU R                  [        5      u  pUS:X  a
  U[        :X  d   e[        S
[        5      u  pp'n	U R                  [        5      u  pUS:X  a
  U[        :X  d   eg )NrQ   r   ry   r   )r   r   r   r   r   rs   r   )r   r   dmp_primitiver   rb   r   r   r   )
r   r   rc   r   r   r   r   re   contr   s
             r$   test_dmp_primitiver   u  s:   %_FA??1'''??1'''1fqslQ1!A1a[		T!V  ??1!&&)QU!3333GR HAooc"GD19c!!ooc"GD19c!!i$JAQooc"GD19c!!r&   c                     [        S[        5      u  pSUS-  -  S-
  nUS-  SU-  -
  S-   nSU-  S-   nUS-
  nU R                  X#5      XE4:X  d   eU R                  X#SS9SSXE4:X  d   eU* S-
  nSU-  S-
  nUS-   nSU-  S-   nU R                  X#5      X#4:X  d   eU R                  Xg5      X#4:X  d   eU R                  S	S	5      S
:X  d   eU R                  S	S	SS9S:X  d   eU R                  US	5      S:X  d   eU R                  US	SS9S:X  d   eU R                  S	U5      S:X  d   eU R                  S	USS9S:X  d   eS	nUnSnU R                  X#SS9X(4:X  d   eg )Nr   r   r   Fincluder   r   rS   r   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   T)r   r   
dup_cancel)	r   r   r   r   pqr   Gones	            r$   test_dup_cancelr     s   R=DA	!Q$
A	1qs
QA	!aA	AA<<!'''<<e<,Aq<<<	
QA	!aA	AA
1qA<<!'''<<!'''<<1'''<<1e<,<<<<<1'''<<1e<,<<<<<1'''<<1e<,<<<	A	A
C<<d<+x777r&   c                     [        S[        5      u  pnSUS-  -  S-
  nUS-  SU-  -
  S-   nSU-  S-   nUS-
  nU R                  X45      XV4:X  d   eU R                  X4SS9SSXV4:X  d   eU R                  SS5      S:X  d   eU R                  SSSS9S:X  d   eU R                  US5      S	:X  d   eU R                  USSS9S
:X  d   eU R                  SU5      S:X  d   eU R                  SUSS9S:X  d   eg )NrQ   r   r   Fr   r   ry   r   r   r   r   r   )r   r   
dmp_cancel)r   r   rc   r   r   r   r   s          r$   test_dmp_cancelr     s)   5"oGA!	!Q$
A	1qs
QA	!aA	AA<<!'''<<e<,Aq<<<<<1'''<<1e<,<<<<<1'''<<1e<,<<<<<1'''<<1e<,<<<r&   N)#__doc__sympy.polys.ringsr   sympy.polys.domainsr   r   r   sympy.polys.specialpolysr   r   r	   r
   f_0f_1f_2f_3r   r   r   r%   r*   r3   r9   rO   rj   rq   rw   r   r   r   r   r   r   r   r    r&   r$   <module>r      s    U " * *  %,I !S#sCc *F6
#D'NKW\	]O:J3ZV2r6 0#,"6"8J=r&   