
    \hGa                        S r SSKJrJr  SSKJrJrJrJrJ	r	J
r
Jr  SSKJr  SSKJr  SSKJr  SSKJrJr  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJrJ r   \" 5       u  r!r"r#r$r%r&r'\" 5       u  r(r)S r*S r+S r,S r-S r.S r/S r0S r1S r2S r3S r4S r5\ S 5       r6S r7S r8S r9S r:S r;S r<S  r=S! r>S" r?S# r@S$ rAS% rBg&)'zDTools for polynomial factorization routines in characteristic zero.     )ringxring)FFZZQQZZ_IQQ_IRREX)
polyconfig)DomainError)ANP)f_polysw_polys)I)sqrt)sin)	nextprime)raisesXFAILc                      [        S[        5      u  pU R                  US-  SUS-  -  -   SUS-  -  -   SUS-  -  -   S	U-  -   S-   US
-   US-   45      US
-   S4US-   S4/:X  d   eg )Nx               &            )r   r   dup_trial_divisionRr   s     Z/var/www/auris/envauris/lib/python3.13/site-packages/sympy/polys/tests/test_factortools.pytest_dup_trial_divisionr&      s    R=DA1qAv1a4 7"QT' ABqD H1 LqSTuVWZ[V[n]cdghchjkblopstotvwnxayyyy    c                      [        S[        5      u  pnU R                  US-  SUS-  -  -   SUS-  -  -   SUS-  -  -   S	U-  -   S-   US
-   US-   45      US
-   S4US-   S4/:X  d   eg )Nx,yr   r   r   r   r   r   r   r    r!   )r   r   dmp_trial_divisionr$   r   ys      r%   test_dmp_trial_divisionr-      s    5"oGA!1qAv1a4 7"QT' ABqD H1 LqSTuVWZ[V[n]cdghchjkblopstotvwnxayyyyr'   c                      [        S[        5      u  pU R                  SUS-  -  SU-  -   S-   5      S:X  d   eU R                  US-  SUS-  -  -   SU-  -   S-   5      S	:X  d   eg )
Nr   r   r   r         8   @      )r   r   dup_zz_mignotte_boundr#   s     r%   test_dup_zz_mignotte_boundr5      st    R=DA""1QT6AaC<!#34999""1a4"QT'>BqD#82#=>#EEEr'   c                  v    [        S[        5      u  pnU R                  SUS-  -  SU-  -   S-   5      S:X  d   eg )Nr)   r   r   r       )r   r   dmp_zz_mignotte_boundr+   s      r%   test_dmp_zz_mignotte_boundr9   %   s?    5"oGA!""1QT6AaC<!#34:::r'   c                  B   [        S[        5      u  pUS-  S-
  nUS-  SUS-  -  -   U-
  S-
  nUS-
  nSnSUS-  -  SU-  -
  S-
  nU R                  SX#XEU5      u  pxpXqS-  SUS-  -  -   U-
  S-
  :X  d   eXS-
  :X  d   eU	S	:X  d   eU
S
US-  -  SU-  -
  S-
  :X  d   eg )Nr   r   r!   r   r   r      r   i   )r   r   dup_zz_hensel_step)r$   r   fghstGHSTs              r%   test_dup_zz_hensel_steprH   *   s    R=DA	1qA	1qAvAA	AA
A	!Q$1qA%%aqQ7JA!1qAv!A%%%%A::6M61a4"Q$""""r'   c                      [        S[        5      u  pUS-  S-
  nUS-
  US-
  US-   US-   /nU R                  [        S5      X#S5      US-
  US-
  US-   US-   /:X  d   eg )Nr   r   r!   r   r      )r   r   dup_zz_hensel_lift)r$   r   r?   Fs       r%   test_dup_zz_hensel_liftrM   ;   s{    R=DA	1qA	
QAq1ua!e$A1qQ/	
QCS!a%() ) )r'   c                     [        S[        5      u  pU R                  SUS-  -  SUS-  -  -   SUS-  -  -   SU-  -   S-   5      b   eU R                  SUS-  -  SUS-  -  -   SUS-  -  -   SU-  -   S-   5      b   eU R                  SUS-  -  SUS-  -  -   SUS-  -  -   SU-  -   S-   5      S	L d   eU R                  SUS-  -  SUS-  -  -   SUS-  -  -   SU-  -   S
-   5      S	L d   eg )Nr   r   r   r   r/   r   r<   
   Tr0   )r   r   dup_zz_irreducible_pr#   s     r%   test_dup_zz_irreducible_prQ   E   s+   R=DA!!!AqD&1QT6/AadF":QqS"@1"DEMMM!!!AqD&1QT6/AadF":QqS"@1"DEMMM!!!AqD&1QT6/AadF":QqS"@2"EF$NNN!!!AqD&1QT6/AadF":QqS"@2"EF$NNNr'   c                     [        S[        5      u  pU R                  US-
  5      SL d   eU R                  US-   5      SL d   eU R                  US-  U-   S-   5      SL d   eU R                  US-  S-   5      SL d   eU R                  US-  US-  -   US-  -   U-   S-   5      SL d   eU R                  US-  U-
  S-   5      SL d   eU R                  US-  US-  -   US-  -   US-  -   US-  -   U-   S-   5      SL d   eU R                  US-  S-   5      SL d   eU R                  US-  US-  -   S-   5      SL d   eU R                  S	5      S
L d   eU R                  S5      S
L d   eU R                  U5      S
L d   eU R                  US-   5      S
L d   eU R                  SU-  S-   5      S
L d   eU R                  US-  S-
  5      S
L d   eUS-  US-  -   US-  -
  US-  -   US-  -
  US-  -   S-   nU R                  U5      S
L d   eUS-  US-  -   US-  -
  US-  -
  US-  -
  US-  -   S-   nU R                  U5      SL d   e[        S[        5      u  pU R                  US-  U-   S-   5      SL d   eU R                  [        SS5      US-  -  U-   S-   5      S
L d   e[        S[        S   5      u  pU R                  US-  U-   S-   5      S
L d   eg )Nr   r!   Tr   r   r   r/   r   r   F   r0   rO   r   r,   )r   r   dup_cyclotomic_pr   )r$   r   r?   r@   s       r%   test_dup_cyclotomic_prU   O   sj   R=DAa!e$,,,a!e$,,,adQhl+t333adQh'4///adQTkAqD014q89TAAAadQhl+t333adQTkAqD01a47!Q$>BQFG4OOOadQh'4///adQTkAo.$666a E)))a E)))a E)))a!e$---acAg&%///adQh'5000	2221$q!t+ad2Q6Aa E)))	2221$q!t+ad2Q6Aa D(((R=DAadQhl+t333b1gadlQ.23u<<<RWDAadQhl+u444r'   c                     [        S[        5      u  pU R                  S5      US-
  :X  d   eU R                  S5      US-   :X  d   eU R                  S5      US-  U-   S-   :X  d   eU R                  S5      US-  S-   :X  d   eU R                  S5      US-  US-  -   US-  -   U-   S-   :X  d   eU R                  S5      US-  U-
  S-   :X  d   eU R                  S5      US-  US-  -   US-  -   US-  -   US-  -   U-   S-   :X  d   eU R                  S	5      US-  S-   :X  d   eU R                  S
5      US-  US-  -   S-   :X  d   eg )Nr   r!   r   r   r   r   r/   r<   r   	   )r   r   dup_zz_cyclotomic_polyr#   s     r%   test_dup_zz_cyclotomic_polyrY   q   s   R=DA##A&!a%///##A&!a%///##A&!Q$(Q,666##A&!Q$(222##A&!Q$A+1*<q*@1*DDDD##A&!Q$(Q,666##A&!Q$A+1*<q!t*Cad*JQ*NQR*RRRR##A&!Q$(222##A&!Q$A+/999r'   c                  D   [        S[        5      u  pU R                  S5      b   eU R                  S5      b   eU R                  SUS-  -  S-
  5      b   eU R                  US-  S-
  5      b   eU R                  US-  US-  -   S-
  5      b   eU R                  US-   5      US-   /:X  d   eU R                  US-
  5      US-
  /:X  d   eU R                  US-  S-   5      US-  S-   /:X  d   eU R                  US-  S-
  5      US-
  US-   /:X  d   eU R                  US-  S-   5      US-   US-  U-
  S-   US	-  US-  -
  S-   US
-  US-  -
  S-   /:X  d   eU R                  US-  S-
  5      US-
  US-  U-   S-   US	-  US-  -   S-   US
-  US-  -   S-   /:X  d   eg )Nr   r   r!   r   rO   r   r      r/      rW   )r   r   dup_zz_cyclotomic_factorr#   s     r%   test_dup_zz_cyclotomic_factorr^      s   R=DA%%a(000%%a(000%%a2gk2:::%%aeai0888%%aeadlQ&67???%%a!e,Q777%%a!e,Q777%%adQh/AqD1H:===%%adQh/AE1q5>AAA%%aeai0	
Q1q1adQTkAoq"uq!t|a/?@A A A%%aeai0	
Q1q1adQTkAoq"uq!t|a/?@A A Ar'   c            	         [        S[        5      u  pU R                  S5      S/ 4:X  d   eU R                  S5      S/ 4:X  d   eU R                  S5      S/ 4:X  d   eU R                  S5      S/ 4:X  d   eU R                  S5      S/ 4:X  d   eU R                  S5      S/ 4:X  d   eU R                  SU-  S-   5      SUS-   S4/4:X  d   eU R                  SU-  S-   5      SUS-   /4:X  d   eUS-  U-   S-   n[	        SS5       H  nU R                  U5      SUS4/4:X  a  M   e   U R                  US-  SU-  -   S-   5      SUS-  SU-  -   S-   S4/4:X  d   eU R                  S	US-  -  S
U-  -   S-   5      SSU-  S-   S4/4:X  d   eU R                  SUS-  -  S-   5      SSU-  S-
  S4SU-  S-   S4/4:X  d   eU R                  SUS-  -  S-   5      SSU-  S-
  SU-  S-   /4:X  d   eU R                  US-  SUS-  -  -
  SU-  -   S-
  5      u  pEUS:X  d   e[        U5      US-
  S4US-
  S4US-
  S41:X  d   eU R                  US-  SUS-  -  -
  SU-  -   S-
  5      SUS-
  US-
  US-
  /4:X  d   eU R                  SUS-  -  SUS-  -  -   SU-  -   S-   5      SUS-   S4SUS-  -  SU-  -   S-   S4/4:X  d   eU R                  SUS-  -  SUS-  -  -   SU-  -   S-   5      SUS-   SUS-  -  SU-  -   S-   /4:X  d   eU R                  US-  * US-  -   5      u  pEUS:X  d   e[        U5      US4US-
  S4US-   S4US-  S-   S41:X  d   eSUS-  -  SUS-  -  -   SUS-  -  -   SUS-  -  -   SUS-  -  -   SUS-  -  -
  SUS-  -  -   S-
  nU R                  U5      SSUS-  -  SUS-  -  -   SUS-  -  -   S
-   S4SUS-  -  SUS-  -  -   S -
  S4/4:X  d   eS!US"-  -  S#US-  -  -   S$US%-  -  -   S&US-  -  -   S'US-  -  -
  S(-   nU R                  U5      u  pEUS):X  d   e[        U5      SU-  S-
  S4S*US-  -  SU-  -   S-
  S4S+US-  -  S,US-  -  -   S"US-  -  -   SU-  -   S-   S4S-US-  -  S.US-  -  -
  S/US-  -  -   SU-  -
  S-   S4S-US-  -  S0US-  -  -   S/US-  -  -   S1U-  -   S-   S41:X  d   eUS-  S-
  n[        R                  " S2S35        U R                  U5      u  pg[        R                  " S2S45        U R                  U5      u  pXhs=:X  a  S:X  d   e   e[        U5      [        U	5      s=:X  aC  US-
  S4US-   S4US-  US-  -
  US-  -   U-
  S-   S4US-  US-  -   US-  -   U-   S-   S41:X  d   e   e[        R                  " S25        US-  S-   n[        R                  " S2S35        U R                  U5      n[        R                  " S2S45        U R                  U5      n	Xys=:X  a-  SUS-  S-   S4US-  US-  -
  US-  -   US-  -
  S-   S4/4:X  d   e   e[        R                  " S25        g )5Nr   r   r<   r   r   r!      r\   r=   r   r/      rO      r   8  r   i@  i3  i  i
  i     D     rW         r[   l  "@]gk|5 r   l     j=7;I l    Gjy@Kz
+   l   Ln_2|OH++l   	#~ l   1VkZ l1VkZ d   iq  }   i'  i  i  i     USE_CYCLOTOMIC_FACTORTF)r   r   dup_zz_factordup_zz_factor_sqfrangesetconfigsetup)
r$   r   r?   icfactorsc0F_0c1F_1s
             r%   test_dup_zz_factorr~      s   R=DA??1!R(((??1!R(((??22r(***q!aW,,,q!aW,,,r"r2h...??1Q37#QUAJ<'8888qsQw'AAw<777	1q1A1b\q!a1a&]222  ??1a4!A#:>*	
adQqSj1na !"# # # ??2ad7RT>A-.	
acAgq\N   ??2ad7Q;'	qsQwlsQwl 	   r!Q$w{+	acAgcAg 	   A!Q$A!5!9:JA6M6w<QUAJQ
QUAJ????q!ta1f}r!t3a78	
QUUU 	  
 ??1QT6Bq!tG+bd2R78	
a!eQZ1fqslQ"$ 	%% % % qAv1a4/"Q$6;<	
QUq!tVac\A 	       !Q$A.JA7N7w<QFQUAJQ
QTAXqMJJJJQT	DAIQT	)C1H4tAqDy@3q!t8KcRSUVRVhVY\\A??1	
a1fr!Q$w1a4'",a0!Q$hAqD 2%q)+ 	,, , , 	025*1b50	1'2-	. 	$ArE)	* 	ad"		#
 		A #JAw<	
1q!	QTBqD1	a 	QTC1H	r!Q$w	&1	,q	0!4	q!td1a4i	#ad(	*RT	1A	5q9	q!td1a4i	#ad(	*RT	1A	5q9    	
2	A
LL($/ooa GB
LL(%0ooa GB=q===s8s3x 	
Q
	
Q
	
A1q!t	a	!	#Q'	
A1q!t	a	!	#Q'	$      LL()	2	A
LL($/
//!
C
LL(%0
//!
C 2	
adQh]dQTkAqD 1a4'!+Q/1 	22 2 2 2 2 LL()r'   c                  V   [        S[        5      u  pp#[        S[        5      u  pE[        [        U R                  [        5      5      5      nUS:X  d   eUS[        S5      pnUS[        S5      pn
X#-   S[        S5      pnX#-
  S[        S	5      nnnXzUU/nXUU/nXUU/n[        U Vs/ s H  nUR                  U5      PM     snU5      n[        S5      [        S5      /nU R                  [        U5      nUR                  U5      u  nnUS:X  aC  UUs=:X  a:  S
US-  -  SUS-  -  -   SUS-  -  -   SUS-  -  -   SUS-  -  -
  SU-  -
  S-
  :X  d   e   eU R                  UU[        S5      5      / SQ:X  d   eUR                  U5      (       a(  UR                  U5      U R                  [        5      :X  d   eUR                  U5      u  nnSUS-  -  SU-  -   S-   nSUS-  -  SU-  -
  S-   nSUS-  -  S-
  nUUUU/:X  d   eSU-  SU-  -
  U* US-  -  US-  US-  -
  4 V s/ s H  n U R                  U5      PM     n!n U R                  [        UUUUU5      [        UU!4:X  d   eU R                  [        UU!UU5      n"U R!                  U"5      [        :X  d   eg s  snf s  sn f )Nx,y,zr    ` r!   r   r   iii r/   i` r   i  r   i iC  ih  i  )r<   r   rd      ,   *   ~   rW   r          )r   r   r   r8   w_1zipdropdmp_eval_taildup_primitivedmp_zz_wang_non_divisors	dup_sqf_p
dup_degree
dmp_degreerr   dmp_zz_wang_lead_coeffsdmp_zz_wang_hensel_lifting
dmp_expand)#r$   r   r,   zUV_xpt_1k_1e_1t_2k_2e_2t_3k_3e_3t_4k_4e_4rG   KErC   ArF   csrB   _rE   h_1h_2h_3lcLCry   s#                                      r%   test_dmp_zz_wangr     s   GR HA#r]FB
9Q,,S123A<<q"S'cCq"Q%cCE1bgcCE1bgcC	3A	3A	3A$AaffQi$a(A	C"Q%A	QAQEB7qA aAr1u$uRU{2VBE\AE"a%KORWXZRZZ]``a a a a a a %%aRU3~EEE<<??r}}Q/1<<3DDDD"DAq
RU(RU
Q
C
b!e)ad
R
C
b!e)b.Cc3!#A!aR1WadQTk B	D B"2771: BB	D$$S!RAq9c1b\III**32q!<G<< C'''5 %* 
Es   *J!(J&c                  P   [        S[        5      u  pp#[        S[        5      u  pE[        [        U R                  [        5      5      5      nUS:X  d   eSUS-  -  SU-  -   S-   SUS-  -  S	U-  -
  S
-   SUS-  -  S-
  /nSUS-  -  U-  SUS-  -  -
  SU-  U-  -
  S-   SUS-  -  U-  S	U-  -
  SU-  -
  US-  US-  -  S	US-  -  -
  U-   S	-
  /nSUS-  -  U-  SUS-  -  -
  SU-  U-  -
  S-   SUS-  -  U-  S	U-  -
  SU-  -
  US-  US-  -  S	US-  -  -
  U-   S	-
  /n	SUS-  -  SUS-  -  -
  SUS-  -  -
  SUS-  -  -   SU-  -   S-   n
S	US-  -  US-  -  SUS-  -  US-  -  -   SUS-  -  US-  -  -
  SUS-  -  U-  -
  SUS-  -  -
  SUS-  -  US-  -  -   SUS-  -  US-  -  -
  SUS-  -  U-  -
  SUS-  -  US-  -  -   S	US-  -  US-  -  -   SUS-  -  US-  -  -
  S US-  -  U-  -
  S!US-  -  -
  S"US-  -  US-  -  -
  S#US-  -  U-  -
  SU-  US-  -  -   S$U-  US-  -  -
  SU-  U-  -
  S%U-  -   SU-  -   nS&US-  -  US-  -  SUS-  -  U-  -
  S'US-  -  US-  -  -
  S(US-  -  U-  -
  SUS-  -  -
  S)US-  -  US-  -  -
  SUS-  -  U-  -
  S*U-  US-  -  -
  S	U-  -   SU-  -   nU R                  Xz/ SU5      S+U-  S,S/:X  d   eU R                  X[        S-5      /SU5      U* U-  S+U-  S./:X  d   eU R                  X[        S-5      /SU5      / S/Q:X  d   eg )0Nr   r   r   r   r   r   r!   r   rW   r    r   r   r   r=   r   rb   ir   i  r   iE  i  i  J   -   l   rh   r\   rj   i*     i   i  ro   i  6   Q   ir[   $   r   r/   r;   r   i)r   r   rc   )r   r   r   r8   r   dmp_zz_diophantine)r$   r   r,   r   r   r   r   H_1H_2H_3c_1c_2c_3s                r%   test_dmp_zz_wang_failr   1  s   GR HA#r]FB
9Q,,S123A<<ad7RT>As1a4x!A#~2C1HrM
BCad719r!Q$w1Q&*Bq!tGAI!Oac,A1a419qQRTUQUvCUXYCY\]C]
^Cad719r!Q$w1Q&*Bq!tGAI!Oac,A1a419qQRTUQUvCUXYCY\]C]
^C
A+QT	
!E!Q$J
.ad
:T!V
Cb
HC
AqD&A+1a41
$r!Q$wq!t|
3c!Q$hqj
@3q!t8
KbQRTUQUgVWYZVZl
Z]`abdeae]efgijfj]j
jmpqrtuqumuvwmw
wz{|}  @A  }A  {A  BC  EF  BF  {F  F  IJ  KL  NO  KO  IO  PQ  ST  PT  IT  T  WZ  [\  ^_  [_  W_  `a  cd  `d  Wd  d  gj  kl  no  ko  go  pq  gq  q  tw  xy  {|  x|  t|  |  A  BC  EF  BF  F  GH  JK  GK  K  K  NQ  RS  UV  RV  NV  WX  NX  X  [\  ]^  [^  _`  bc  _c  [c  c  fh  ij  fj  kl  no  ko  fo  o  rs  tu  ru  vw  rw  w  z|  }~  z~  ~  AC  DE  AE  EC
ad(1a4-#ad(1*
$r!Q$wq!t|
3bAgai
?#ad(
JQqRStVTUWXTX[
X[]^_ab^b[bcd[d
dghijgjklnokogo
orsturu
uxyz{x{
{C"a31b!}DDD2c7)Q:r!tRT2>NNNN2c7)Q:jHHHr'   c                      / SQn [        S[        5      u  pp4SUS-  -  X4-  -   U-
  US-  -
  U-   nUR                  XPS9U/:X  d   eg )N)rc   rc   r   r   r   r   rc   rc   r   rc   r   rc   r   r   r   r   rc   r   r   r   )seed)r   r   dmp_zz_wang)random_sequencer$   r   r,   r   r?   s         r%   test_issue_6355r   F  s[     TOgr"JA!	!Q$q1a4!#A===1aS888r'   c                  |   [        S[        5      u  pU R                  S5      S/ 4:X  d   eU R                  S5      S/ 4:X  d   eU R                  S5      S/ 4:X  d   eU R                  US-  S-
  5      SUS-
  S4US-   S4/4:X  d   e[        S	[        5      u  pnU R                  S5      S/ 4:X  d   eU R                  S5      S/ 4:X  d   eU R                  S5      S/ 4:X  d   eU R                  U5      SUS4/4:X  d   eU R                  S
U-  5      S
US4/4:X  d   eU R                  S
U-  S-   5      SSU-  S-   S4/4:X  d   eU R                  X-  S-   5      SX-  S-   S4/4:X  d   eU R                  US-  S-   5      SUS-  S-   S4/4:X  d   eU R                  US-  S-
  5      SUS-
  S4US-   S4/4:X  d   eU R                  US-  US-  -  SUS-  -  U-  -   SUS-  -  -   S-
  5      SX-  SU-  -   S-
  S4X-  SU-  -   S-   S4/4:X  d   eU R                  US-  US-  -  S-
  5      SX-  S-
  S4X-  S-   S4/4:X  d   e[        S[        5      u  pp#U R                  US-  US-  -  US-  -  S-
  5      SX-  U-  S-
  S4X-  U-  S-   S4/4:X  d   e[        S[        5      u  pp#nU R                  US-  US-  -  US-  -  US-  -  S-
  5      SX-  U-  U-  S-
  S4X-  U-  U-  S-   S4/4:X  d   e[        S[        5      u  pp#U R                  [        5      SXU-  -   S-   S4X-  U-   S-   S4X-  U-   S-   S4/4:X  d   eU R                  [        5      SUS-  US-  -  US-  US-  -  -   U-   S-   S4US-  U-  US-  U-  -   U-   S-
  S4/4:X  d   eU R                  [
        5      SUS-  US-  -  XS
-  -  -   U-   U-   S4US-  X-  U-  -   US-  -   X#S-  -  -   S4/4:X  d   eU R                  [        5      SXS-  -  US-  -   S4US-  U-  US
-  US-  -  -   S-   S4US-  U-  US-  -
  S-
  S4US-  US
-  -  US-  -   S4/4:X  d   eU R                  [        5      SX-   U-
  S4/4:X  d   e[        S[        5      u  pp#nU R                  [        5      SSU-  U-  US-  US-  -  -   US-  -
  S4SUS-  -  SUS-  -  -
  US-  -
  SUS-  -  -   SU-  U-  -   S4/4:X  d   e[        S[        5      u  pp#U R                  [        5      SUS-  US-  -  US-  US-  -  -
  U-   US-  -
  S4US-  U-  US-  -  SU-  U-  -   SU-  -   S4S
US-  -  U-  S
US-  -  U-  -   X-  U-  -   S-
  S4/4:X  d   e[        S	[        5      u  pnSUS-  -  U-  SUS-  -  US-  -  -   SUS-  -  US
-  -  -
  SUS-  -  US-  -  -   SUS-  -  US-  -  -
  SUS
-  -  US-  -  -   SUS-  -  -
  nU R                  U5      SUS4US-  U-
  S4US
-  SUS-  -  U-  -   US-  -   S4/4:X  d   eg )Nr   r   r<   r`   r   rW   r!   r   r)   r   r/   r   zx,y,z,ura   rO   ro   Z   rd   rc   r   zx,y,z,t/   r   irS      r=   i   rf   r   )
r   r   dmp_zz_factorf_1f_2f_3f_4f_5f_6r   )r$   r   r,   r   urC   r?   s          r%   test_dmp_zz_factorr   Q  s   R=DA??1!R(((??1!R(((??22r(***??1a4!8$a!eQZ!a%,D(EEEE5"oGA!??1!R(((??1!R(((??22r(***??1!q!fX...??1Q3AAx=000??1Q37#QqS1WaL>'::::??137#QS1WaL>'::::??1a4!8$adQh]O(<<<<??1a4!8$a!eQZ!a%,D(EEEE??1a419qAvax/!AqD&81<=!qsQqSyST}VWFX[\[^abcdad[dgh[hjkZlEmAnnnn??1a419q=)a137A,q!1M-NNNNgr"JA!??1a419QT>A-.	
ac!eai^c!eai^ 	   B'MA!??1a419QT>!Q$.23	
ac!eAgk1c!eAgk1 	       gr"JA!??3	
aA#glAcAglAcAglA  	!! ! !
 ??3	
ad1a4i!Q$q!t)#a'",a0d1fq!tAvo!B&*, 	-- - - ??3	
ad1a4i!qD& 1$q(!,dQSUlQT!AdF*A.0 	11 1 1 ??3	qAv1}a !tAv1QT	!A%q)!tAv1}q !$!tAqDy1a4#% 	&& & & ??3	quqy!n   B'MA!??3	
bd1fq!tAqDy 1a4'+Ag!Q$A%!Q$.1Q6:< 	== = = gr"JA!??3	
ad1a4i!Q$q!t)#a'!Q$.2d1fQTkAaCE!AaC'+1fQh1a4!ACE)A-q13 	44 4 4
 5"oGA!ArE	!c!R%i1n$s1b5yA~5QT	!Q$FQPQTRSUVRVVY\]^`a]aYabcefbfYffiklmoplpippA??1	1v1q!}1qAvax!Q$&*, 	-- - -r'   c            
         [        S[        5      u  p[        SS5      nU R                  US-  S-
  5      [        SS5      US-  S-
  S4/4:X  d   eU R                  US-  S-
  5      [        SS5      US-
  S4US-   S4/4:X  d   eU R                  US-  S-   5      [        SS5      X-
  S4X-   S4/4:X  d   eU R                  US-  S-  S-   5      [        [        SS5      S5      USU-  -
  S4USU-  -   S4/4:X  d   eU R                  US-  S-   5      [        SS5      USU-  -
  S4USU-  -   S4/4:X  d   eU R                  US-  SU-  -   S-   5      [        SS5      US-   S4/4:X  d   eU R                  US-  SU-  U-  -   S-
  5      [        SS5      X-   S4/4:X  d   eSUS-  -  USSU-  -   -  -   S	-
  S
U-  -   nU R                  U5      [        SS5      U[        [        SS5      [        SS5      5      -   S4/4:X  d   eg )Nr   r   r!   r   r       X  逬 H 鉲       iY  )r   r	   dup_qq_i_factorr   r$   r   rw   r?   s       r%   test_dup_qq_i_factorr     s   T?DAQ
AQTAX&41:A1*GGGGQTAX&41:Q
QUAJ7O*PPPPQTAX&41:
QUAJ7O*PPPPQT!VaZ("Q(A!ac'1AaC| <=> > > QTAX&!QZ1qs7A,QqS!567 7 7 QTAaCZ!^,!QZ1q5!*&' ' ' QTAaCE\A-.!QZ15!*&' ' ' 	QT	Auvax'((61F1H<AQ$]a$r#s|Rc]"CCQGHIJ J Jr'   c                  J   [        S[        5      u  pn[        SS5      nU R                  US-  SUS-  -  -   5      [        SS5      US-  SUS-  -  -   S4/4:X  d   eU R                  US-  US-  -   5      [        SS5      XU-  -
  S4XU-  -   S4/4:X  d   eU R                  US-  US-  S-  -   5      [        SS5      XU-  S-  -
  S4XU-  S-  -   S4/4:X  d   eU R                  SUS-  -  US-  -   5      [        SS5      XU-  S-  -
  S4XU-  S-  -   S4/4:X  d   eg Nzx, yr   r!   r   r   )r   r	   dmp_qq_i_factorr$   r   r,   rw   s       r%   test_dmp_qq_i_factorr     s~   64 GA!Q
AQTAadF]+!QZ1a4!AqD&=!,-./ / / QTAqD[)!QZ1s7A,qS!567 7 7 QTAqDF]+!QZ1s1u9a.1s1u9a.9:; ; ; Qq!tVad]+!QZ1s1u9a.1s1u9a.9:; ; ;r'   c                  l   [        S[        5      u  p[        SS5      nU R                  US-  S-
  5      [        SS5      US-  S-
  S4/4:X  d   eU R                  US-  S-
  5      [        SS5      US-
  S4US-   S4/4:X  d   eU R                  US-  S-   5      [        SS5      X-
  S4X-   S4/4:X  d   eU R                  US-  S-   5      [        SS5      USU-  -
  S4USU-  -   S4/4:X  d   eU R                  US-  SU-  -   S-   5      [        SS5      US-   S4/4:X  d   eU R                  US-  SU-  U-  -   S-
  5      [        SS5      X-   S4/4:X  d   eSUS-  -  USSU-  -   -  -   S	-
  S
U-  -   nU R                  U5      [        SS5      SSU-  -
  U-  SSU-  -   -   S4/4:X  d   eg )Nr   r   r!   r   r   r   r   r   r   r   r2   i  iT  )r   r   dup_zz_i_factorr   s       r%   test_dup_zz_i_factorr     s/   T?DAQ
AQTAX&41:A1*GGGGQTAX&41:Q
QUAJ7O*PPPPQTAX&41:
QUAJ7O*PPPPQTAX&!QZ1qs7A,QqS!567 7 7 QTAaCZ!^,!QZ1q5!*&' ' ' QTAaCE\A-.!QZ15!*&' ' ' 	QT	Auvax'((61F1H<AQ!QZBAIq=C#a%K8!<=>? ? ?r'   c                     [        S[        5      u  pn[        SS5      nU R                  US-  SUS-  -  -   5      [        SS5      US-  SUS-  -  -   S4/4:X  d   eU R                  US-  US-  -   5      [        SS5      XU-  -
  S4XU-  -   S4/4:X  d   eU R                  SUS-  -  US-  -   5      [        SS5      SU-  X2-  -
  S4SU-  X2-  -   S4/4:X  d   eg r   )r   r   dmp_zz_i_factorr   s       r%   test_dmp_zz_i_factorr     s    64 GA!Q
AQTAadF]+!QZ1a4!AqD&=!,-./ / / QTAqD[)!QZ1s7A,qS!567 7 7 Qq!tVad]+!QZ1Q39a.1Q39a.9:; ; ;r'   c                     [        S[        R                  " [        5      5      u  pS nU R	                  S5      U" / 5      / 4:X  d   eU" [        S5      /5      U-  U" [        S5      /5      -   nU R	                  U5      U" [        S5      /5      US4/4:X  d   eU" [        S5      /5      U-  U" [        S5      /5      -   nU R	                  U5      U" [        S5      /5      US4/4:X  d   eU" [        S5      /5      US-  -  U" [        SS5      /5      -   nU" [        S5      /5      US-  -  U" [        SS5      /5      -   nU R	                  U5      U" [        S5      /5      US4/4:X  d   eU" [        S5      /5      US-  -  U" [        S5      /5      -   nU R	                  U5      U" [        SS5      /5      U" [        S5      /5      US-  -  U" [        S5      [        S5      /5      -   S4U" [        S5      /5      US-  -  U" [        S5      [        S5      /5      -   S4/4:X  d   eU" [        SS5      /5      US-  -  U" [        S	S5      /5      -   nU R	                  U5      U" [        SS5      /5      U" [        SS5      /5      U-  U" [        S
S5      * [        SS5      /5      -   S4U" [        SS5      /5      U-  U" [        S
S5      [        SS5      /5      -   S4/4:X  d   eU" [        SS5      /5      US-  -  U" [        SS5      /5      US
-  -  -   U" [        SS5      /5      US-  -  -   U" [        SS5      /5      U-  -   U" [        SS5      /5      -   nU R	                  U5      U" [        SS5      /5      U" [        SS5      /5      U-  U" [        SS5      * [        SS5      /5      -   S4U" [        SS5      /5      U-  U" [        S
S5      * [        SS5      /5      -   S4U" [        SS5      /5      U-  U" [        S
S5      [        SS5      /5      -   S4U" [        SS5      /5      U-  U" [        SS5      [        SS5      /5      -   S4/4:X  d   e[        S[        R                  " [        S5      5      5      u  pS nU" [        S5      /5      US-  -  U" [        SS5      /5      -   nU R	                  U5      U" [        S5      /5      U" [        S5      /5      US-  -  U" [        S5      [        S5      /5      U-  -   U" [        S5      /5      -   S4U" [        S5      /5      US-  -  U" [        S5      [        S5      /5      U-  -   U" [        S5      /5      -   S4/4:X  d   eU" [        SS5      /5      US-  -  U" [        S5      [        S5      /5      U-  -   U" [        SS5      /5      -   nU R	                  U5      U" [        SS5      /5      U" S/5      U-  U" SS/5      -   S4/4:X  d   eU R	                  US
-  5      U" [        SS5      /5      U" S/5      U-  U" SS/5      -   S4/4:X  d   eX2" [        SS5      /5      -  nU R	                  U5      U" [        SS5      /5      U" S/5      U-  U" SS/5      -   S4/4:X  d   eU R	                  US
-  5      U" [        SS5      /5      U" S/5      U-  U" SS/5      -   S4/4:X  d   eg )Nr   c                 `    [        U [        S5      [        S5      [        S5      /[        5      $ Nr!   r   r   r   elements    r%   anp test_dup_ext_factor.<locals>.anp  $    7RUBqE2a51266r'   r   r!   r   r<   r   rc   rW   r   r   M   r\      c                 `    [        U [        S5      [        S5      [        S5      /[        5      $ Nr!   r   r;   r   r   s    r%   r   r     s$    7RUBqE2b62B77r'   r/   )r   r   algebraic_fieldr   dup_ext_factorr   )r$   r   r   r?   r@   s        r%   test_dup_ext_factorr     sJ   R''*+DA7 A3r7B-///RUGQbeW%AA31w<1a&"::::RUGQbeW%AA31w<1a&"::::RUGQTCAq
O+ARUGQTCAq
O+AA31w<1a&"::::RUGQTCAL(AA	bAhZCALA-RVRUO0DDaHALA-RVRUO0DDaHJ 	KK K K 	R1XJ1sBq!H:.AA	bAhZCAq
OA-bAhY1a4I0JJANAq
OA-bAh1a4I0JJANP 	QQ Q Q 	R1XJ1sBq!H:q!t33c2b!9+6Fq!t6KKcSUVXZ[S\R]N^_`N``cfhjknpqhrgscttAA	bAhZCAq
OA-bAhY1a4I0JJANAq
OA-bAhY1a4I0JJANAq
OA-bAh1a4I0JJANAq
OA-bAh1a4I0JJANP 	QQ Q Q R''Q01DA8 	RUGQTCAq
O+AA	beWbeWad*S"R&"Q%-A!-CCc2a5'lRTUVbeWad*S"a&"Q%-A!-CCc2a5'lRTUVX 	YY Y Y 	R1XJ1sBqE2a5>2144sBq!H:FAA	bAhZCHQJaV4a89:; ; ; AqD!	bAhZCHQJaV4a89:; ; ; bAhZAA	bAhZCHQJaV4a89:; ; ; AqD!	bAhZCHQJaV4a89:; ; ;r'   c            
         [         R                  " [        S5      5      n [        SU 5      u  pnU R                  nS nUR                  S5      U" / 5      / 4:X  d   eU" [        S5      /5      U-  U" [        S5      /5      -   nUR                  U5      U" [        S5      /5      US4/4:X  d   eU" [        S5      /5      U-  U" [        S5      /5      -   nUR                  U5      U" [        S5      /5      US4/4:X  d   eU" [        S5      /5      US-  -  U" [        S5      /5      US-  -  -   nUR                  U5      U" [        S5      /5      U" [        S5      /5      U-  U" [        S5      [        S5      /5      U-  -   S4U" [        S5      /5      U-  U" [        S5      [        S5      /5      U-  -   S4/4:X  d   eU" [        S5      /5      US-  -  U" [        S5      /5      US-  -  -   nUR                  U5      U" [        S5      /5      U" [        S5      /5      U-  U" [        S5      [        S5      /5      U-  -   S4U" [        S5      /5      U-  U" [        S5      [        S5      /5      U-  -   S4/4:X  d   eUS-   nX4-   n	US-  U-   S-   S	U-  -   n
US-  U	S-  -  U
S-  -  nUR                  U5      U R                  US4U	S4U
S4/4:X  d   eg )
Nr   r)   c                 `    [        U [        S5      [        S5      [        S5      /[        5      $ r   r   )r   s    r%   r    test_dmp_ext_factor.<locals>.anp9  s$    1r!ubeRV,b11r'   r   r!   r;   rc   r   r   )r   r   r   r   unitdmp_ext_factorone)r   r$   r   r,   sqrt2r   r?   r@   f1f2f3s              r%   test_dmp_ext_factorr  4  s   
47#A%^FAFFE2 A3r7B-///RUGQbeW%AA31w<1a&"::::RUGQbeW%AA31w<1a&"::::RUGQTCBM!Q$..AA	beWbeWa#r"vr!uo*>q*@@!DbeWa#r1vr!uo*>q*@@!DF 	GG G G 	RUGQTCBM!Q$..AA	beWbeWa#r"vr!uo*>q*@@!DbeWa#r1vr!uo*>q*@@!DF 	GG G G 
QB	
B	
AA%	B
AAAAA155B7RGb!W*E"FFFFr'   c            
      
  ^ [        S[        5      u  mn TR                  S5      S/ 4:X  d   eTR                  S5      S/ 4:X  d   e[        S[        5      u  mn TR                  S5      S/ 4:X  d   eTR                  [        SS5      5      [        SS5      / 4:X  d   e[        S[        S   5      u  mn TR                  S5      S/ 4:X  d   eTR                  S5      S/ 4:X  d   e[        S[        S   5      u  mn TR                  S5      S/ 4:X  d   eTR                  [        SS5      5      [        SS5      / 4:X  d   e[        S[        5      u  mn TR	                  S5      S/:X  d   eTR	                  S5      S/:X  d   eTR                  U S-  SU -  -   S-   5      SU S-   S4/4:X  d   eTR	                  U S-  SU -  -   S-   5      U S-   S4/:X  d   eTR                  S	U S-  -  S
U -  -
  S	-
  5      SSU -  S-
  S4SU -  S-   S4/4:X  d   e[        S[        5      u  mn TR                  [        SS5      U S-  -  U -   [        SS5      -   5      [        SS5      U S-   S4/4:X  d   e[        S[        S5      5      u  mn TR                  U S-  S-   5      SU S-   S4/4:X  d   e[        S[        5      u  mn TR                  SU S-  -  SU -  -   S-   5      SSU -  S-   S4/4:X  d   eTR                  SU S-  -  SU -  -   S-   5      SSU -  S-   S4/4:X  d   eSU S-  -  SU -  -
  S-
  nTR                  U5      u  p#U[        S5      :X  d   e[        U5      S:X  d   eUS   S   R                  5       [        S5      :X  d   eUS   S   S:X  d   e[        S[        5      u  pE[        SU5      u  mn SU-  U S-  -  SUS-  -  U -  -   nTR                  U5      SU-  U S4X-   S4/4:X  d   e[        S[        5      u  pE[        SU5      u  mn [        SS5      U-  U S-  -  [        SS5      US-  -  U -  -   nTR                  U5      [        SS5      U-  U S4X-   S4/4:X  d   e[        S[        R                  " [        5      5      u  mn S nU" [        SS5      /5      U S-  -  U" [        SS5      /5      U S-  -  -   nTR                  U5      U" [        SS5      /5      U" [        SS5      /5      U -  S4U" [        SS5      /5      U S-  -  U" / 5      U -  -   U" [        SS5      /5      -   S4/4:X  d   e[        S[        5      u  mn [        [        U4S j5        g )Nr   r   r<   r!   rC   r   r!   r<   r!   r   r/   r   r         ?       @g      @w@ lJ%@k?r   c                 `    [        U [        S5      [        S5      [        S5      /[        5      $ r   r   r   s    r%   r   !test_dup_factor_list.<locals>.anp  r   r'   c                  J   > T R                  [        [        S5      5      5      $ Nr!   )dup_factor_listr   r   r$   s   r%   <lambda>&test_dup_factor_list.<locals>.<lambda>       1 1"SV* =r'   )r   r   r  r   dup_factor_list_includer   r
   lenmax_normr   r   r   r   r   )r   r?   coeffry   RtrC   r   r$   s          @r%   test_dup_factor_listr  Y  s   R=DAqQAr7***QAr7***R=DAqQAr7***R1X&2a8R.888RWDAqQAr7***QAr7***RWDAqQAr7***R1X&2a8R.888R=DAq$$Q'F8333$$Q'F8333QTAaCZ!^,a!eQZL0AAAA$$QTAaCZ!^4!a%DDDQq!tVac\A-.1!a|acAgq\6R2SSSSR=DAqR!WQT\A-1Q78R1XQPQ
|<TTTTRUDAqQTAX&1Aqzl*;;;;R=DAqSAXA-34AQ?O>P8QQQQSAXA-34AQ?O>P8QQQQ1/114DDA&&q)NEB'((((w<11:a=!!#r#w...1:a=AbMEBR=DAq	!AqD1QT6!8AQ	
11veQZ 	   bMEBR=DAq
1a
1a4"Q(1a4-/)AQ	Aq!q!fUAJ  	!! ! ! R''*+DAq7 	R1XJ1sBq!H:q!t33AQ	bAhZCAq
OA-q1Aq
OAqD03r719<sBq!H:NPQRT 	UU U U R=DAq
;=>r'   c                    ^^^	 [        S[        5      u  mmm	TR                  S5      [        S5      / 4:X  d   eTR                  S5      S/ 4:X  d   e[        S[        5      u  mmm	TR                  S5      [        S5      / 4:X  d   eTR                  [        SS5      5      [        SS5      / 4:X  d   e[        S[        5      u  p[        SU 5      u  mmm	TR                  S5      S/ 4:X  d   eTR                  S5      [        S5      / 4:X  d   e[        S[        5      u  p[        SU 5      u  mmm	TR                  S5      S/ 4:X  d   eTR                  [        SS5      5      [        SS5      / 4:X  d   e[        S[        5      u  mmm	TR	                  S5      S/:X  d   eTR	                  S5      S/:X  d   e[        S[        5      u  mnUS   S	-  S	US   -  -   S-   US   S-   pCTR                  U5      SUS	4/4:X  d   eUS
   S	-  S	US
   -  -   S-   US
   S-   pCTR                  U5      SUS	4/4:X  d   e[        S[        5      u  mmTR                  TS	-  S	T-  -   S-   5      STS-   S	4/4:X  d   e[        S[        5      u  mmTR                  [        SS	5      TS	-  -  T-   [        SS	5      -   5      [        SS	5      TS-   S	4/4:X  d   e[        S[        5      u  mmm	TR                  TS	-  S	T-  -   S-   5      STS-   S	4/4:X  d   e[        S[        5      u  mmm	TR                  [        SS	5      TS	-  -  T-   [        SS	5      -   5      [        SS	5      TS-   S	4/4:X  d   e[        S[        5      u  mmm	STS	-  -  T	-  ST-  T	S	-  -  -   nTR                  U5      ST	S4TS4TT	-   S4/4:X  d   eTR	                  U5      ST	-  S4TS4TT	-   S4/:X  d   e[        S[        5      u  mmm	[        SS	5      TS	-  -  T	-  [        SS	5      T-  T	S	-  -  -   nTR                  U5      [        SS	5      T	S4TS4TT	-   S4/4:X  d   e[        S[        5      u  mmm	STS	-  -  ST	S	-  -  -
  nTR                  U5      [        S5      ST-  T	-
  S4ST-  T	-   S4/4:X  d   eSTS	-  -  T	S	-  -  ST-  T	-  -
  S-
  nTR                  U5      u  pVU[        S5      :X  d   e[        U5      S:X  d   eUS   S   R                  5       [        S5      :X  d   eUS   S   S:X  d   e[        S[        5      u  p[        SU 5      u  mmm	SU-  TS	-  -  SUS	-  -  T-  -   nTR                  U5      SU-  TS4TU-   S4/4:X  d   e[        S[        5      u  p[        SU 5      u  mmm	[        SS	5      U-  TS	-  -  [        SS	5      US	-  -  T-  -   nTR                  U5      [        SS	5      U-  TS4TU-   S4/4:X  d   e[        S[        S	5      5      u  mmm	[        [        UUU	4S j5        [        S[        5      u  mmm	[        [        U4S j5        g )Nr)   r   r<   r!   rC   r  r  zx:200r   rc   r   r   r	  g       @g      ?r
  r  r  r  c                  8   > T R                  TS-  TS-  -   5      $ )Nr   )dmp_factor_listr+   s   r%   r  &test_dmp_factor_list.<locals>.<lambda>  s    (9(9!Q$A+(Fr'   c                  J   > T R                  [        [        S5      5      5      $ r  )r  r   r   r  s   r%   r  r    r  r'   )r   r   r  r   dmp_factor_list_includer   r
   r  r  r   r   NotImplementedErrorr   r   )
r  rC   Xr?   r@   r  ry   r$   r   r,   s
          @@@r%   test_dmp_factor_listr$    sM   5"oGAq!QBqE2;...QAr7***5"oGAq!QBqE2;...R1X&2a8R.888bMEB5"oGAq!QAr7***QBqE2;...bMEB5"oGAq!QAr7***R1X&2a8R.8885"oGAq!$$Q'F8333$$Q'F8333"DAqQ47QqtVa1qQAAx=000R5!8a"g!1R519qQAAx=000R=DAqQTAaCZ!^,a!eQZL0AAAAR=DAqR!WQT\A-1Q78R!WAqzl<SSSS5"oGAq!QTAaCZ!^,a!eQZL0AAAA5"oGAq!R!WQT\A-1Q78R!WAqzl<SSSS5"oGAq!	!Q$q1Q3q!t8AQ	
aVV!eQZ 	  
 $$Q'
A#q
Q
a%	  
 5"oGAq!
1Q1QAa1a4'AQ	AaAq6q6E1: 	      
 5"oGAq!AqD3q!t8AQ	CCEAIq>EAIq># 	$$ $ $ 	1QT!$4Q$6q$88;KKA&&q)NEB'((((w<11:a=!!#r#w...1:a=AbMEB5"oGAq!	!AqD1QT6!8AQ	
11v!eQZ 	   bMEB5"oGAq!
1a
1a4"Q(1a4-/)AQ	Aq!q!fUAJ  	!! ! ! 5"Q% GAq!
 FG5"oGAq!
;=>r'   c                      [        S[        5      u  pU R                  US-  U-   S-   5      SL d   eU R                  US-  SU-  -   S-   5      SL d   eg )Nr   r   r!   TF)r   r   dup_irreducible_pr#   s     r%   test_dup_irreducible_pr'    s]    R=DAq!tax!|,444q!taczA~.%777r'   c                      [        S[        5      u  pnU R                  US-  U-   S-   5      SL d   eU R                  US-  SU-  -   S-   5      SL d   eg )Nr)   r   r!   TF)r   r   dmp_irreducible_pr+   s      r%   test_dmp_irreducible_pr*    s_    5"oGA!q!tax!|,444q!taczA~.%777r'   N)C__doc__sympy.polys.ringsr   r   sympy.polys.domainsr   r   r   r   r	   r
   r   sympy.polysr   ru   sympy.polys.polyerrorsr   sympy.polys.polyclassesr   sympy.polys.specialpolysr   r   sympy.core.numbersr   (sympy.functions.elementary.miscellaneousr   (sympy.functions.elementary.trigonometricr   sympy.ntheory.generater   sympy.testing.pytestr   r   f_0r   r   r   r   r   r   r   w_2r&   r-   r5   r9   rH   rM   rQ   rU   rY   r^   r~   r   r   r   r   r   r   r   r   r   r  r  r$  r'  r*   r'   r%   <module>r:     s    J ) > > > , . ' 5   9 8 , . %,I !S#sCc9Sz
z
F;
#")O5D:A,m*^*(Z I I(9I-XJ8;"?2;@;F"GJH?V`?F88r'   