
    sgGa                        d Z ddlmZmZ ddlmZmZmZmZm	Z	m
Z
mZ ddlmZ ddlmZ ddlmZ ddlmZmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZm Z   e       \  Z!Z"Z#Z$Z%Z&Z' e       \  Z(Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0d Z1d Z2d Z3d Z4d Z5e d        Z6d Z7d Z8d Z9d Z:d Z;d Z<d  Z=d! Z>d" Z?d# Z@d$ ZAd% ZBy&)'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                      t        dt              \  } }| j                  |dz  d|dz  z  z   d|dz  z  z   d|dz  z  z   d	|z  z   dz   |d
z   |dz   f      |d
z   df|dz   dfgk(  sJ y )Nx               &            )r   r   dup_trial_divisionRr   s     U/var/www/html/venv/lib/python3.12/site-packages/sympy/polys/tests/test_factortools.pytest_dup_trial_divisionr&      s    R=DAq1qAv1a4 7"QT' ABqD H1 LqSTuVWZ[V[n]cdghchjkblopstotvwnxayyyy    c                      t        dt              \  } }}| j                  |dz  d|dz  z  z   d|dz  z  z   d|dz  z  z   d	|z  z   dz   |d
z   |dz   f      |d
z   df|dz   dfgk(  sJ y )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"oGAq!1qAv1a4 7"QT' ABqD H1 LqSTuVWZ[V[n]cdghchjkblopstotvwnxayyyyr'   c                      t        dt              \  } }| j                  d|dz  z  d|z  z   dz         dk(  sJ | j                  |dz  d|dz  z  z   d|z  z   dz         d	k(  sJ y )
Nr   r   r   r         8   @      )r   r   dup_zz_mignotte_boundr#   s     r%   test_dup_zz_mignotte_boundr5      sv    R=DAq""1QT6AaC<!#34999""1a4"QT'>BqD#82#=>#EEEr'   c                  v    t        dt              \  } }}| j                  d|dz  z  d|z  z   dz         dk(  sJ y )Nr)   r   r   r       )r   r   dmp_zz_mignotte_boundr+   s      r%   test_dmp_zz_mignotte_boundr9   %   sA    5"oGAq!""1QT6AaC<!#34:::r'   c                  H   t        dt              \  } }|dz  dz
  }|dz  d|dz  z  z   |z
  dz
  }|dz
  }d}d|dz  z  d|z  z
  dz
  }| j                  d|||||      \  }}}	}
||dz  d|dz  z  z   |z
  dz
  k(  sJ ||dz
  k(  sJ |	d	k(  sJ |
d
|dz  z  d|z  z
  dz
  k(  sJ y )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=DAq	1qA	1qAvAA	AA
A	!Q$1qA%%aAq!Q7JAq!Q1qAv!A%%%%A::6M61a4"Q$""""r'   c                      t        dt              \  } }|dz  dz
  }|dz
  |dz
  |dz   |dz   g}| j                  t        d      ||d      |dz
  |dz
  |dz   |dz   gk(  sJ y )Nr   r   r!   r   r      )r   r   dup_zz_hensel_lift)r$   r   r?   Fs       r%   test_dup_zz_hensel_liftrM   ;   s    R=DAq	1qA	
QAq1ua!e$A1q!Q/	
QCS!a%() ) )r'   c                     t        dt              \  } }| j                  d|dz  z  d|dz  z  z   d|dz  z  z   d|z  z   dz         J | j                  d|dz  z  d|dz  z  z   d|dz  z  z   d|z  z   dz         J | j                  d|dz  z  d|dz  z  z   d|dz  z  z   d|z  z   dz         d	u sJ | j                  d|dz  z  d|dz  z  z   d|dz  z  z   d|z  z   d
z         d	u sJ y )Nr   r   r   r   r/   r   r<   
   Tr0   )r   r   dup_zz_irreducible_pr#   s     r%   test_dup_zz_irreducible_prQ   E   s-   R=DAq!!!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                     t        dt              \  } }| j                  |dz
        du sJ | j                  |dz         du sJ | j                  |dz  |z   dz         du sJ | j                  |dz  dz         du sJ | j                  |dz  |dz  z   |dz  z   |z   dz         du sJ | j                  |dz  |z
  dz         du sJ | j                  |dz  |dz  z   |dz  z   |dz  z   |dz  z   |z   dz         du sJ | j                  |dz  dz         du sJ | j                  |dz  |dz  z   dz         du sJ | j                  d	      d
u sJ | j                  d      d
u sJ | j                  |      d
u sJ | j                  |dz         d
u sJ | j                  d|z  dz         d
u sJ | j                  |dz  dz
        d
u sJ |dz  |dz  z   |dz  z
  |dz  z   |dz  z
  |dz  z   dz   }| j                  |      d
u sJ |dz  |dz  z   |dz  z
  |dz  z
  |dz  z
  |dz  z   dz   }| j                  |      du sJ t        dt              \  } }| j                  |dz  |z   dz         du sJ | j                  t        dd      |dz  z  |z   dz         d
u sJ t        dt        d         \  } }| j                  |dz  |z   dz         d
u sJ y )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   sp   R=DAq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=DAqadQhl+t333b1gadlQ.23u<<<RWDAqadQhl+u444r'   c                     t        dt              \  } }| j                  d      |dz
  k(  sJ | j                  d      |dz   k(  sJ | j                  d      |dz  |z   dz   k(  sJ | j                  d      |dz  dz   k(  sJ | j                  d      |dz  |dz  z   |dz  z   |z   dz   k(  sJ | j                  d      |dz  |z
  dz   k(  sJ | j                  d      |dz  |dz  z   |dz  z   |dz  z   |dz  z   |z   dz   k(  sJ | j                  d	      |dz  dz   k(  sJ | j                  d
      |dz  |dz  z   dz   k(  sJ y )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=DAq##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                  0   t        dt              \  } }| j                  d      J | j                  d      J | j                  d|dz  z  dz
        J | j                  |dz  dz
        J | j                  |dz  |dz  z   dz
        J | j                  |dz         |dz   gk(  sJ | j                  |dz
        |dz
  gk(  sJ | j                  |dz  dz         |dz  dz   gk(  sJ | j                  |dz  dz
        |dz
  |dz   gk(  sJ | j                  |dz  dz         |dz   |dz  |z
  dz   |d	z  |dz  z
  dz   |d
z  |dz  z
  dz   gk(  sJ | j                  |dz  dz
        |dz
  |dz  |z   dz   |d	z  |dz  z   dz   |d
z  |dz  z   dz   gk(  sJ y )Nr   r   r!   r   rO   r   r      r/      rW   )r   r   dup_zz_cyclotomic_factorr#   s     r%   test_dup_zz_cyclotomic_factorr^      s   R=DAq%%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            	      p   t        dt              \  } }| j                  d      dg fk(  sJ | j                  d      dg fk(  sJ | j                  d      dg fk(  sJ | j                  d      dg fk(  sJ | j                  d      dg fk(  sJ | j                  d      dg fk(  sJ | j                  d|z  dz         d|dz   dfgfk(  sJ | j                  d|z  dz         d|dz   gfk(  sJ |dz  |z   dz   }t	        dd      D ]  }| j                  |      d|dfgfk(  rJ  | j                  |dz  d|z  z   dz         d|dz  d|z  z   dz   dfgfk(  sJ | j                  d	|dz  z  d
|z  z   dz         dd|z  dz   dfgfk(  sJ | j                  d|dz  z  dz         dd|z  dz
  dfd|z  dz   dfgfk(  sJ | j                  d|dz  z  dz         dd|z  dz
  d|z  dz   gfk(  sJ | j                  |dz  d|dz  z  z
  d|z  z   dz
        \  }}|dk(  sJ t        |      |dz
  df|dz
  df|dz
  dfhk(  sJ | j                  |dz  d|dz  z  z
  d|z  z   dz
        d|dz
  |dz
  |dz
  gfk(  sJ | j                  d|dz  z  d|dz  z  z   d|z  z   dz         d|dz   dfd|dz  z  d|z  z   dz   dfgfk(  sJ | j                  d|dz  z  d|dz  z  z   d|z  z   dz         d|dz   d|dz  z  d|z  z   dz   gfk(  sJ | j                  |dz   |dz  z         \  }}|dk(  sJ t        |      |df|dz
  df|dz   df|dz  dz   dfhk(  sJ d|dz  z  d|dz  z  z   d|dz  z  z   d|dz  z  z   d|dz  z  z   d|dz  z  z
  d|dz  z  z   dz
  }| j                  |      dd|dz  z  d|dz  z  z   d|dz  z  z   d
z   dfd|dz  z  d|dz  z  z   d z
  dfgfk(  sJ d!|d"z  z  d#|dz  z  z   d$|d%z  z  z   d&|dz  z  z   d'|dz  z  z
  d(z   }| j                  |      \  }}|d)k(  sJ t        |      d|z  dz
  dfd*|dz  z  d|z  z   dz
  dfd+|dz  z  d,|dz  z  z   d"|dz  z  z   d|z  z   dz   dfd-|dz  z  d.|dz  z  z
  d/|dz  z  z   d|z  z
  dz   dfd-|dz  z  d0|dz  z  z   d/|dz  z  z   d1|z  z   dz   dfhk(  sJ |dz  dz
  }t        j                  d2d3       | j                  |      \  }}t        j                  d2d4       | j                  |      \  }}	||cxk(  rdk(  sJ  J t        |      t        |	      cxk(  rB|dz
  df|dz   df|dz  |dz  z
  |dz  z   |z
  dz   df|dz  |dz  z   |dz  z   |z   dz   dfhk(  sJ  J t        j                  d2       |dz  dz   }t        j                  d2d3       | j                  |      }t        j                  d2d4       | j                  |      }	||	cxk(  r,d|dz  dz   df|dz  |dz  z
  |dz  z   |dz  z
  dz   dfgfk(  sJ  J t        j                  d2       y )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=DAq??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\ 3q!a1a&]2223 ??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:JAw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.JAw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 #JAw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                  D   t        dt              \  } }}}t        dt              \  }}t        t        | j                  t                          }|dk(  sJ |dt        d      }	}}|dt        d      }}}
||z   dt        d      }}}||z
  dt        d	      }}}||
||g}||||g}|	|||g}t        |D cg c]  }|j                  |       c}|      }t        d      t        d      g}| j                  t        |      }|j                  |      \  }}|dk(  rA||cxk(  r9d
|dz  z  d|dz  z  z   d|dz  z  z   d|dz  z  z   d|dz  z  z
  d|z  z
  dz
  k(  sJ  J | j                  ||t        d            g dk(  sJ |j                  |      r'|j                  |      | j                  t              k(  sJ |j                  |      \  }}d|dz  z  d|z  z   dz   }d|dz  z  d|z  z
  dz   }d|dz  z  dz
  }||||gk(  sJ d|z  d|z  z
  | |dz  z  |dz  |dz  z
  fD  cg c]  } | j                  |       }!} | j                  t        |||||      t        ||!fk(  sJ | j                  t        ||!||      }"| j!                  |"      t        k(  sJ y c c}w c c} w )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 HAq1#r]FB
9Q,,S123A<<q"S'cCq"Q%cCE1bgcCE1bgcC	c3A	c3A	c3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"2771:	DB	D$$S!RAq9c1b\III**32q!<G<< C'''5 %* 
Es   4J$Jc                  T   t        dt              \  } }}}t        dt              \  }}t        t        | j                  t                          }|dk(  sJ d|dz  z  d|z  z   dz   d|dz  z  d	|z  z
  d
z   d|dz  z  dz
  g}d|dz  z  |z  d|dz  z  z
  d|z  |z  z
  dz   d|dz  z  |z  d	|z  z
  d|z  z
  |dz  |dz  z  d	|dz  z  z
  |z   d	z
  g}d|dz  z  |z  d|dz  z  z
  d|z  |z  z
  dz   d|dz  z  |z  d	|z  z
  d|z  z
  |dz  |dz  z  d	|dz  z  z
  |z   d	z
  g}	d|dz  z  d|dz  z  z
  d|dz  z  z
  d|dz  z  z   d|z  z   dz   }
d	|dz  z  |dz  z  d|dz  z  |dz  z  z   d|dz  z  |dz  z  z
  d|dz  z  |z  z
  d|dz  z  z
  d|dz  z  |dz  z  z   d|dz  z  |dz  z  z
  d|dz  z  |z  z
  d|dz  z  |dz  z  z   d	|dz  z  |dz  z  z   d|dz  z  |dz  z  z
  d |dz  z  |z  z
  d!|dz  z  z
  d"|dz  z  |dz  z  z
  d#|dz  z  |z  z
  d|z  |dz  z  z   d$|z  |dz  z  z
  d|z  |z  z
  d%|z  z   d|z  z   }d&|dz  z  |dz  z  d|dz  z  |z  z
  d'|dz  z  |dz  z  z
  d(|dz  z  |z  z
  d|dz  z  z
  d)|dz  z  |dz  z  z
  d|dz  z  |z  z
  d*|z  |dz  z  z
  d	|z  z   d|z  z   }| j                  ||
g d|      d+|z  d,dgk(  sJ | j                  ||t        d-      gd|      | |z  d+|z  d.gk(  sJ | j                  |	|t        d-      gd|      g d/k(  sJ y )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 HAq1#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S"a31b!}DDDS2c7)Q:r!tRT2>NNNNS2c7)Q:jHHHr'   c                      g d} t        dt              \  }}}}d|dz  z  ||z  z   |z
  |dz  z
  |z   }|j                  ||       |gk(  sJ y )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  sc     TOgr"JAq!Q	!Q$1q1a4!#A===1aS888r'   c                     t        dt              \  } }| j                  d      dg fk(  sJ | j                  d      dg fk(  sJ | j                  d      dg fk(  sJ | j                  |dz  dz
        d|dz
  df|dz   dfgfk(  sJ t        d	t              \  } }}| j                  d      dg fk(  sJ | j                  d      dg fk(  sJ | j                  d      dg fk(  sJ | j                  |      d|dfgfk(  sJ | j                  d
|z        d
|dfgfk(  sJ | j                  d
|z  dz         dd|z  dz   dfgfk(  sJ | j                  ||z  dz         d||z  dz   dfgfk(  sJ | j                  |dz  dz         d|dz  dz   dfgfk(  sJ | j                  |dz  dz
        d|dz
  df|dz   dfgfk(  sJ | j                  |dz  |dz  z  d|dz  z  |z  z   d|dz  z  z   dz
        d||z  d|z  z   dz
  df||z  d|z  z   dz   dfgfk(  sJ | j                  |dz  |dz  z  dz
        d||z  dz
  df||z  dz   dfgfk(  sJ t        dt              \  } }}}| j                  |dz  |dz  z  |dz  z  dz
        d||z  |z  dz
  df||z  |z  dz   dfgfk(  sJ t        dt              \  } }}}}| j                  |dz  |dz  z  |dz  z  |dz  z  dz
        d||z  |z  |z  dz
  df||z  |z  |z  dz   dfgfk(  sJ t        dt              \  } }}}| j                  t              d|||z  z   dz   df||z  |z   dz   df||z  |z   dz   dfgfk(  sJ | j                  t              d|dz  |dz  z  |dz  |dz  z  z   |z   dz   df|dz  |z  |dz  |z  z   |z   dz
  dfgfk(  sJ | j                  t
              d|dz  |dz  z  ||d
z  z  z   |z   |z   df|dz  ||z  |z  z   |dz  z   ||dz  z  z   dfgfk(  sJ | j                  t              d||dz  z  |dz  z   df|dz  |z  |d
z  |dz  z  z   dz   df|dz  |z  |dz  z
  dz
  df|dz  |d
z  z  |dz  z   dfgfk(  sJ | j                  t              d||z   |z
  dfgfk(  sJ t        dt              \  } }}}}| j                  t              dd|z  |z  |dz  |dz  z  z   |dz  z
  dfd|dz  z  d|dz  z  z
  |dz  z
  d|dz  z  z   d|z  |z  z   dfgfk(  sJ t        dt              \  } }}}| j                  t              d|dz  |dz  z  |dz  |dz  z  z
  |z   |dz  z
  df|dz  |z  |dz  z  d|z  |z  z   d|z  z   dfd
|dz  z  |z  d
|dz  z  |z  z   ||z  |z  z   dz
  dfgfk(  sJ t        d	t              \  } }}d|dz  z  |z  d|dz  z  |dz  z  z   d|dz  z  |d
z  z  z
  d|dz  z  |dz  z  z   d|dz  z  |dz  z  z
  d|d
z  z  |dz  z  z   d|dz  z  z
  }| j                  |      d|df|dz  |z
  df|d
z  d|dz  z  |z  z   |dz  z   dfgfk(  sJ y )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=DAq??1!R(((??1!R(((??22r(***??1a4!8$a!eQZ!a%,D(EEEE5"oGAq!??1!R(((??1!R(((??22r(***??1!q!fX...??1Q3AAx=000??1Q37#QqS1WaL>'::::??1Q37#QqS1WaL>'::::??1a4!8$adQh]O(<<<<??1a4!8$a!eQZ!a%,D(EEEE??1a419qAvax/!AqD&81<=!qsQqSyST}VWFX[\]^[^abcdad[dgh[hjkZlEmAnnnn??1a419q=)a1Q37A,1q!1M-NNNNgr"JAq!Q??1a419QT>A-.	
ac!eai^c!eai^ 	   B'MAq!Q??1a419QT>!Q$.23	
ac!eAgk1c!eAgk1 	       gr"JAq!Q??3	
a!A#glAcAglAcAglA  	!! ! !
 ??3	
ad1a4i!Q$q!t)#a'",a0d1fq!tAvo!B&*, 	-- - - ??3	
ad1a4i!AqD& 1$q(!,dQqSUlQT!AadF*A.0 	11 1 1 ??3	qAv1}a !tAv1QT	!A%q)!tAv1}q !$!tAqDy1a4#% 	&& & & ??3	q1uqy!n   B'MAq!Q??3	
bd1fq!tAqDy 1a4'+Ag!Q$A%!Q$.1Q6:< 	== = = gr"JAq!Q??3	
ad1a4i!Q$q!t)#a'!Q$.2d1fQTkAaCE!AaC'+1fQh1a4!AaCE)A-q13 	44 4 4
 5"oGAq!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            
         t        dt              \  } }t        dd      }| j                  |dz  dz
        t        dd      |dz  dz
  dfgfk(  sJ | j                  |dz  dz
        t        dd      |dz
  df|dz   dfgfk(  sJ | j                  |dz  dz         t        dd      ||z
  df||z   dfgfk(  sJ | j                  |dz  dz  dz         t        t        dd      d      |d|z  z
  df|d|z  z   dfgfk(  sJ | j                  |dz  dz         t        dd      |d|z  z
  df|d|z  z   dfgfk(  sJ | j                  |dz  d|z  z   dz         t        dd      |dz   dfgfk(  sJ | j                  |dz  d|z  |z  z   dz
        t        dd      ||z   dfgfk(  sJ d|dz  z  |dd|z  z   z  z   d	z
  d
|z  z   }| j                  |      t        dd      |t        t        dd      t        dd            z   dfgfk(  sJ y )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?DAq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:Q
QUAJ7O*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-.!QZ1q5!*&' ' ' 	QT	Auvax'((61F1H<AQ$]a$r#s|Rc]"CCQGHIJ J Jr'   c                  P   t        dt              \  } }}t        dd      }| j                  |dz  d|dz  z  z         t        dd      |dz  d|dz  z  z   dfgfk(  sJ | j                  |dz  |dz  z         t        dd      |||z  z
  df|||z  z   dfgfk(  sJ | j                  |dz  |dz  dz  z         t        dd      |||z  dz  z
  df|||z  dz  z   dfgfk(  sJ | j                  d|dz  z  |dz  z         t        dd      |||z  dz  z
  df|||z  dz  z   dfgfk(  sJ y 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 GAq!Q
AQTAadF]+!QZ1a4!AqD&=!,-./ / / QTAqD[)!QZ1qs7A,QqS!567 7 7 QTAqDF]+!QZ1qs1u9a.1qs1u9a.9:; ; ; Qq!tVad]+!QZ1qs1u9a.1qs1u9a.9:; ; ;r'   c                  f   t        dt              \  } }t        dd      }| j                  |dz  dz
        t        dd      |dz  dz
  dfgfk(  sJ | j                  |dz  dz
        t        dd      |dz
  df|dz   dfgfk(  sJ | j                  |dz  dz         t        dd      ||z
  df||z   dfgfk(  sJ | j                  |dz  dz         t        dd      |d|z  z
  df|d|z  z   dfgfk(  sJ | j                  |dz  d|z  z   dz         t        dd      |dz   dfgfk(  sJ | j                  |dz  d|z  |z  z   dz
        t        dd      ||z   dfgfk(  sJ d|dz  z  |dd|z  z   z  z   d	z
  d
|z  z   }| j                  |      t        dd      dd|z  z
  |z  dd|z  z   z   dfgfk(  sJ y )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     s7   T?DAq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:Q
QUAJ7O*PPPPQTAX&!QZ1qs7A,QqS!567 7 7 QTAaCZ!^,!QZ1q5!*&' ' ' QTAaCE\A-.!QZ1q5!*&' ' ' 	QT	Auvax'((61F1H<AQ!QZBAIq=C#a%K8!<=>? ? ?r'   c                     t        dt              \  } }}t        dd      }| j                  |dz  d|dz  z  z         t        dd      |dz  d|dz  z  z   dfgfk(  sJ | j                  |dz  |dz  z         t        dd      |||z  z
  df|||z  z   dfgfk(  sJ | j                  d|dz  z  |dz  z         t        dd      d|z  ||z  z
  dfd|z  ||z  z   dfgfk(  sJ y r   )r   r   dmp_zz_i_factorr   s       r%   test_dmp_zz_i_factorr     s*   64 GAq!Q
AQTAadF]+!QZ1a4!AqD&=!,-./ / / QTAqD[)!QZ1qs7A,QqS!567 7 7 Qq!tVad]+!QZ1Q319a.1Q319a.9:; ; ;r'   c                     t        dt        j                  t                    \  } }d }| j	                  d       |g       g fk(  sJ  |t        d      g      |z   |t        d      g      z   }| j	                  |       |t        d      g      |dfgfk(  sJ  |t        d      g      |z   |t        d      g      z   }| j	                  |       |t        d      g      |dfgfk(  sJ  |t        d      g      |dz  z   |t        dd      g      z   } |t        d      g      |dz  z   |t        dd      g      z   }| j	                  |       |t        d      g      |dfgfk(  sJ  |t        d      g      |dz  z   |t        d      g      z   }| j	                  |       |t        dd      g       |t        d      g      |dz  z   |t        d      t        d      g      z   df |t        d      g      |dz  z   |t        d      t        d      g      z   dfgfk(  sJ  |t        dd      g      |dz  z   |t        d	d      g      z   }| j	                  |       |t        dd      g       |t        dd      g      |z   |t        d
d       t        dd      g      z   df |t        dd      g      |z   |t        d
d      t        dd      g      z   dfgfk(  sJ  |t        dd      g      |dz  z   |t        dd      g      |d
z  z  z    |t        dd      g      |dz  z  z    |t        dd      g      |z  z    |t        dd      g      z   }| j	                  |       |t        dd      g       |t        dd      g      |z   |t        dd       t        dd      g      z   df |t        dd      g      |z   |t        d
d       t        dd      g      z   df |t        dd      g      |z   |t        d
d      t        dd      g      z   df |t        dd      g      |z   |t        dd      t        dd      g      z   dfgfk(  sJ t        dt        j                  t        d                  \  } }d } |t        d      g      |dz  z   |t        dd      g      z   }| j	                  |       |t        d      g       |t        d      g      |dz  z   |t        d      t        d      g      |z  z    |t        d      g      z   df |t        d      g      |dz  z   |t        d      t        d      g      |z  z    |t        d      g      z   dfgfk(  sJ  |t        dd      g      |dz  z   |t        d      t        d      g      |z  z    |t        dd      g      z   }| j	                  |       |t        dd      g       |dg      |z   |ddg      z   dfgfk(  sJ | j	                  |d
z         |t        dd      g       |dg      |z   |ddg      z   dfgfk(  sJ | |t        dd      g      z  }| j	                  |       |t        dd      g       |dg      |z   |ddg      z   dfgfk(  sJ | j	                  |d
z         |t        dd      g       |dg      |z   |ddg      z   dfgfk(  sJ y )Nr   c                 `    t        | t        d      t        d      t        d      gt              S Nr!   r   r   r   elements    r%   anpz test_dup_ext_factor.<locals>.anp  $    7RUBqE2a51266r'   r   r!   r   r<   r   rc   rW   r   r   M   r\      c                 `    t        | t        d      t        d      t        d      gt              S Nr!   r   r;   r   r   s    r%   r   z test_dup_ext_factor.<locals>.anp  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     sN   R''*+DAq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1DAq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            
         t        j                  t        d            } t        d|       \  }}}| j                  }d }|j                  d       |g       g fk(  sJ  |t        d      g      |z   |t        d      g      z   }|j                  |       |t        d      g      |dfgfk(  sJ  |t        d      g      |z   |t        d      g      z   }|j                  |       |t        d      g      |dfgfk(  sJ  |t        d      g      |dz  z   |t        d      g      |dz  z  z   }|j                  |       |t        d      g       |t        d      g      |z   |t        d      t        d      g      |z  z   df |t        d      g      |z   |t        d      t        d      g      |z  z   dfgfk(  sJ  |t        d      g      |dz  z   |t        d      g      |dz  z  z   }|j                  |       |t        d      g       |t        d      g      |z   |t        d      t        d      g      |z  z   df |t        d      g      |z   |t        d      t        d      g      |z  z   dfgfk(  sJ |dz   }||z   }	|dz  |z   dz   d	|z  z   }
|dz  |	dz  z  |
dz  z  }|j                  |      | j                  |df|	df|
dfgfk(  sJ y )
Nr   r)   c                 `    t        | t        d      t        d      t        d      gt              S r   r   )r   s    r%   r   z 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%^FAq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	
UB	
AA%	B
AAAAA155B7RGb!W*E"FFFFr'   c            
      
   t        dt              \  } j                  d      dg fk(  sJ j                  d      dg fk(  sJ t        dt              \  } j                  d      dg fk(  sJ j                  t        dd            t        dd      g fk(  sJ t        dt        d         \  } j                  d      dg fk(  sJ j                  d      dg fk(  sJ t        dt        d         \  } j                  d      dg fk(  sJ j                  t        dd            t        dd      g fk(  sJ t        dt              \  } j	                  d      dgk(  sJ j	                  d      dgk(  sJ j                  | dz  d| z  z   dz         d| dz   dfgfk(  sJ j	                  | dz  d| z  z   dz         | dz   dfgk(  sJ j                  d	| dz  z  d
| z  z
  d	z
        dd| z  dz
  dfd| z  dz   dfgfk(  sJ t        dt              \  } j                  t        dd      | dz  z  | z   t        dd      z         t        dd      | dz   dfgfk(  sJ t        dt        d            \  } j                  | dz  dz         d| dz   dfgfk(  sJ t        dt              \  } j                  d| dz  z  d| z  z   dz         dd| z  dz   dfgfk(  sJ j                  d| dz  z  d| z  z   dz         dd| z  dz   dfgfk(  sJ d| dz  z  d| z  z
  dz
  }j                  |      \  }}|t        d      k(  sJ t        |      dk(  sJ |d   d   j                         t        d      k(  sJ |d   d   dk(  sJ t        dt              \  }}t        d|      \  } d|z  | dz  z  d|dz  z  | z  z   }j                  |      d|z  | df| |z   dfgfk(  sJ t        dt              \  }}t        d|      \  } t        dd      |z  | dz  z  t        dd      |dz  z  | z  z   }j                  |      t        dd      |z  | df| |z   dfgfk(  sJ t        dt        j                  t                    \  } d } |t        dd      g      | dz  z   |t        dd      g      | dz  z  z   }j                  |       |t        dd      g       |t        dd      g      | z  df |t        dd      g      | dz  z   |g       | z  z    |t        dd      g      z   dfgfk(  sJ t        dt              \  } t        t        fd       y )Nr   r   r<   r!   rC   r   r!   r<   r!   r   r/   r   r         ?       @g      @w@ lJ%@k?r   c                 `    t        | t        d      t        d      t        d      gt              S r   r   r   s    r%   r   z!test_dup_factor_list.<locals>.anp  r   r'   c                  J     j                  t        t        d                  S Nr!   )dup_factor_listr   r   r$   s   r%   <lambda>z&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)NE7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                    	 t        dt              \  	j                  d      t        d      g fk(  sJ j                  d      dg fk(  sJ t        dt              \  	j                  d      t        d      g fk(  sJ j                  t        dd            t        dd      g fk(  sJ t        dt              \  } }t        d|       \  	j                  d      dg fk(  sJ j                  d      t        d      g fk(  sJ t        dt              \  } }t        d|       \  	j                  d      dg fk(  sJ j                  t        dd            t        dd      g fk(  sJ t        dt              \  	j	                  d      dgk(  sJ j	                  d      dgk(  sJ t        dt              \  }|d   d	z  d	|d   z  z   dz   |d   dz   }}j                  |      d|d	fgfk(  sJ |d
   d	z  d	|d
   z  z   dz   |d
   dz   }}j                  |      d|d	fgfk(  sJ t        dt              \  j                  d	z  d	z  z   dz         ddz   d	fgfk(  sJ t        dt              \  j                  t        dd	      d	z  z  z   t        dd	      z         t        dd	      dz   d	fgfk(  sJ t        dt              \  	j                  d	z  d	z  z   dz         ddz   d	fgfk(  sJ t        dt              \  	j                  t        dd	      d	z  z  z   t        dd	      z         t        dd	      dz   d	fgfk(  sJ t        dt              \  	dd	z  z  	z  dz  	d	z  z  z   }j                  |      d	dfdf	z   dfgfk(  sJ j	                  |      d	z  dfdf	z   dfgk(  sJ t        dt              \  	t        dd	      d	z  z  	z  t        dd	      z  	d	z  z  z   }j                  |      t        dd	      	dfdf	z   dfgfk(  sJ t        dt              \  	dd	z  z  d	d	z  z  z
  }j                  |      t        d      dz  	z
  dfdz  	z   dfgfk(  sJ dd	z  z  	d	z  z  dz  	z  z
  dz
  }j                  |      \  }}|t        d      k(  sJ t        |      dk(  sJ |d   d   j                         t        d      k(  sJ |d   d   dk(  sJ t        dt              \  } }t        d|       \  	d|z  d	z  z  d|d	z  z  z  z   }j                  |      d|z  df|z   dfgfk(  sJ t        dt              \  } }t        d|       \  	t        dd	      |z  d	z  z  t        dd	      |d	z  z  z  z   }j                  |      t        dd	      |z  df|z   dfgfk(  sJ t        dt        d	            \  	t        t        	fd       t        dt              \  	t        t        fd       y )Nr)   r   r<   r!   rC   r  r  zx:200r   rc   r   r   r  g       @g      ?r  r	  r
  r  c                  8     j                  dz  dz  z         S )Nr   )dmp_factor_listr+   s   r%   r  z&test_dmp_factor_list.<locals>.<lambda>  s    (9(9!Q$A+(F r'   c                  J     j                  t        t        d                  S r  )r  r   r   r  s   r%   r  z&test_dmp_factor_list.<locals>.<lambda>  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    s[   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qAQAAx=000R5!8a"g!1R519qA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)NE7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                      t        dt              \  } }| j                  |dz  |z   dz         du sJ | j                  |dz  d|z  z   dz         du sJ y )Nr   r   r!   TF)r   r   dup_irreducible_pr#   s     r%   test_dup_irreducible_pr"    s_    R=DAqq!tax!|,444q!taczA~.%777r'   c                      t        dt              \  } }}| j                  |dz  |z   dz         du sJ | j                  |dz  d|z  z   dz         du sJ y )Nr)   r   r!   TF)r   r   dmp_irreducible_pr+   s      r%   test_dmp_irreducible_pr%    sa    5"oGAq!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>r5     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'   