
    Цi                        S 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  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  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  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  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  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  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$  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)  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.  SS/KJ/r/  SS0KJ0r0  SS1KJ1r1  SS2KJ2r2  SS3KJ3r3  SS4KJ4r4  SS5KJ5r5  SS6KJ6r6  SS7KJ7r7  SS8KJ8r8  SS9KJ9r9  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>  SS?KJ?r?  SS@KJ@r@  SSAKJArA  SSBKBJCrC  SSCKBJDrD  SSDKBJErE  SSEKBJFrF  SSFKBJGrG  SSGKBJHrH  SSHKBJIrI  SSIKBJJrJ  SSJKBJKrK  SSKKBJLrL  SSLKMJNrN  SSMKMJOrO  SSNKMJPrP  SSOKMJQrQ  SSPKMJRrR  SSQKMJSrS  SSRKMJTrT  SSSKMJUrU  SSTKMJVrV  SSUKMJWrW  SSVKMJXrX  SSWKMJYrY  SSXKMJZrZ  SSYKMJ[r[  SSZKMJ\r\  SS[KMJ]r]  SS\KMJ^r^  SS]KMJ_r_  SS^KMJ`r`  SS_KMJara  SS`KMJbrb  SSaKMJcrc  SSbKMJdrd  SScKMJere  SSdKMJfrf  SSeKMJgrg  SSfKMJhrh  SSgKMJiri  SShKMJjrj  SSiKMJkrk  SSjKMJlrl  SSkKMJmrm  SSlKMJnrn  SSmKMJoro  SSnKMJprp  SSoKMJqrq  SSpKrJsrs  SSqKrJtrt  SSrKrJuru  SSsKrJvrv  SStKrJwrw  SSuKrJxrx  SSvKrJyry  SSwKrJzrz  SSxKrJ{r{  SSyKrJ|r|  SSzKrJ}r}  SS{KrJ~r~  SS|KrJr  SS}KrJr  SS~KrJr  SSKrJr  SSKrJr  SSKrJr  SSKrJr  SSKrJr  SSKrJr  SSKrJr  SSKrJr  SSKrJr  SSKrJr  SSKrJr  SSKrJr  SSKrJr  SSKrJr  SSKrJr  SSKrJr  SSKrJr  SSKrJr  SSKrJr  SSKrJr  SSKrJr  SSKrJr  SSKrJr  SSKrJr  SSKrJr  SSKrJr  SSKrJr  SSKrJr  SSKrJr  SSKrJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJr  SSKJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrGJ Gr GJGrGJGrGJGrGJGrGJGrGJGrGJGrGJGrGJ	Gr	GJ
Gr
GJGrGJGrGJGrGJGrGJGrGJGrGJGrGJGrGJGrGJGrGJGrGJGrGJGrGJGrGJGrGJGrGJGrGJGrGJGrGJGrGJGrGJ Gr   SSGK!GJ"Gr"  G\" " S S5      5       Gr#g)z8Compatibility interface between dense and sparse polys.     )dup_add_term)dmp_add_term)dup_sub_term)dmp_sub_term)dup_mul_term)dmp_mul_term)dup_add_ground)dmp_add_ground)dup_sub_ground)dmp_sub_ground)dup_mul_ground)dmp_mul_ground)dup_quo_ground)dmp_quo_ground)dup_exquo_ground)dmp_exquo_ground)
dup_lshift)
dup_rshift)dup_abs)dmp_abs)dup_neg)dmp_neg)dup_add)dmp_add)dup_sub)dmp_sub)dup_add_mul)dmp_add_mul)dup_sub_mul)dmp_sub_mul)dup_mul)dmp_mul)dup_sqr)dmp_sqr)dup_pow)dmp_pow)dup_pdiv)dup_prem)dup_pquo)
dup_pexquo)dmp_pdiv)dmp_prem)dmp_pquo)
dmp_pexquo)
dup_rr_div)
dmp_rr_div)
dup_ff_div)
dmp_ff_div)dup_div)dup_rem)dup_quo)	dup_exquo)dmp_div)dmp_rem)dmp_quo)	dmp_exquo)dup_max_norm)dmp_max_norm)dup_l1_norm)dmp_l1_norm)dup_l2_norm_squared)dmp_l2_norm_squared)
dup_expand)
dmp_expand)dup_LC)dmp_LC)dup_TC)dmp_TC)dmp_ground_LC)dmp_ground_TC)
dup_degree)
dmp_degree)dmp_degree_in)dmp_to_dict)dup_integrate)dmp_integrate)dmp_integrate_in)dup_diff)dmp_diff)dmp_diff_in)dup_eval)dmp_eval)dmp_eval_in)dmp_eval_tail)dmp_diff_eval_in)	dup_trunc)	dmp_trunc)dmp_ground_trunc)	dup_monic)dmp_ground_monic)dup_content)dmp_ground_content)dup_primitive)dmp_ground_primitive)dup_extract)dmp_ground_extract)dup_real_imag)
dup_mirror)	dup_scale)	dup_shift)	dmp_shift)dup_transform)dup_compose)dmp_compose)dup_decompose)dmp_lift)dup_sign_variations)dup_clear_denoms)dmp_clear_denoms)
dup_revert)dup_half_gcdex)dmp_half_gcdex)	dup_gcdex)	dmp_gcdex)
dup_invert)
dmp_invert)dup_euclidean_prs)dmp_euclidean_prs)dup_primitive_prs)dmp_primitive_prs)dup_inner_subresultants)dup_subresultants)dup_prs_resultant)dup_resultant)dmp_inner_subresultants)dmp_subresultants)dmp_prs_resultant)dmp_zz_modular_resultant)dmp_zz_collins_resultant)dmp_qq_collins_resultant)dmp_resultant)dup_discriminant)dmp_discriminant)dup_rr_prs_gcd)dup_ff_prs_gcd)dmp_rr_prs_gcd)dmp_ff_prs_gcd)dup_zz_heu_gcd)dmp_zz_heu_gcd)dup_qq_heu_gcd)dmp_qq_heu_gcd)dup_inner_gcd)dmp_inner_gcd)dup_gcd)dmp_gcd)
dup_rr_lcm)
dup_ff_lcm)dup_lcm)
dmp_rr_lcm)
dmp_ff_lcm)dmp_lcm)dmp_content)dmp_primitive)
dup_cancel)
dmp_cancel)dup_trial_division)dmp_trial_division)dup_zz_mignotte_bound)dmp_zz_mignotte_bound)dup_zz_hensel_step)dup_zz_hensel_lift)dup_zz_zassenhaus)dup_zz_irreducible_p)dup_cyclotomic_p)dup_zz_cyclotomic_poly)dup_zz_cyclotomic_factor)dup_zz_factor_sqf)dup_zz_factor)dmp_zz_wang_non_divisors)dmp_zz_wang_lead_coeffs)dup_zz_diophantine)dmp_zz_diophantine)dmp_zz_wang_hensel_lifting)dmp_zz_wang)dmp_zz_factor)dup_qq_i_factor)dup_zz_i_factor)dmp_qq_i_factor)dmp_zz_i_factor)dup_ext_factor)dmp_ext_factor)dup_gf_factor)dmp_gf_factor)dup_factor_list)dup_factor_list_include)dmp_factor_list)dmp_factor_list_include)dup_irreducible_p)dmp_irreducible_p)	dup_sturm)dup_root_upper_bound)dup_root_lower_bound)dup_step_refine_real_root)dup_inner_refine_real_root)dup_outer_refine_real_root)dup_refine_real_root)dup_inner_isolate_real_roots) dup_inner_isolate_positive_roots) dup_inner_isolate_negative_roots)dup_isolate_real_roots_sqf)dup_isolate_real_roots)dup_isolate_real_roots_list)dup_count_real_roots)dup_count_complex_roots)dup_isolate_complex_roots_sqf)dup_isolate_all_roots_sqf)dup_isolate_all_roots)	dup_sqf_p	dmp_sqf_pdmp_normdup_sqf_normdmp_sqf_normdup_gf_sqf_partdmp_gf_sqf_partdup_sqf_partdmp_sqf_partdup_gf_sqf_listdmp_gf_sqf_listdup_sqf_listdup_sqf_list_includedmp_sqf_listdmp_sqf_list_includedup_gff_listdmp_gff_list)8	gf_degreegf_LCgf_TCgf_stripgf_from_dict
gf_to_dictgf_from_int_polygf_to_int_polygf_neggf_add_groundgf_sub_groundgf_mul_groundgf_quo_groundgf_addgf_subgf_mulgf_sqr
gf_add_mul
gf_sub_mul	gf_expandgf_divgf_remgf_quogf_exquo	gf_lshift	gf_rshiftgf_pow
gf_pow_modgf_gcdgf_lcmgf_cofactorsgf_gcdexgf_monicgf_diffgf_evalgf_multi_eval
gf_composegf_compose_modgf_trace_map	gf_randomgf_irreduciblegf_irred_p_ben_orgf_irred_p_rabingf_irreducible_pgf_sqf_pgf_sqf_part
gf_Qmatrixgf_berlekampgf_ddf_zassenhausgf_edf_zassenhausgf_ddf_shoupgf_edf_shoupgf_zassenhausgf_shoupgf_factor_sqf	gf_factor)publicc                      \ rS rSrSrSrSrSrSrS r	GS,S jr
S rS rS rS rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S r"S r#S r$S r%S  r&S! r'S" r(S# r)S$ r*S% r+S& r,S' r-S( r.S) r/S* r0S+ r1S, r2S- r3S. r4S/ r5S0 r6S1 r7S2 r8S3 r9S4 r:S5 r;S6 r<S7 r=S8 r>S9 r?S: r@S; rAS< rBS= rCS> rDS? rES@ rFSA rGSB rHSC rISD rJSE rKSF rLSG rMSH rNSI rOSJ rPSK rQSL rRSM rSSN rTSO rUSP rVSQ rWSR rXSS rYST rZSU r[SV r\SW r]SX r^SY r_SZ r`S[ raS\ rbS] rcS^ rdS_ reS` rfSa rgSb rhSc riSd rjSe rkSf rlSg rmSh rnSi roSj rpSk rqSl rrSm rsSn rtSo ruSp rvSq rwGS-Sr jrxGS-Ss jrySt rzSu r{Sv r|Sw r}Sx r~Sy rSz rS{ rS| rS} rS~ rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rGS.S jrGS.S jrS rS rS rS rS rS rS rS rGS-S jrS rS rS rS rS rS rS rGS/S jrS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rGS-S jrGS-S jrGS-S jrGS-S jrGS-S jrGS-S jrS rS rS rS rGS-S jrGS0S jrGS1S jrGS1S jrGS2S jrGS0S jrGS0S jrGS0S jrGS0S jrGS3S jrGS/S jrGS,S jrGS1S jrGS0S jrGS1S jrS rS rS rS rS rS rS rS rS rS rS rS rGS.S jrS rGS.S jrS Gr S GrS GrS GrS GrS GrGS  GrGS GrGS GrGS Gr	GS Gr
GS GrGS GrGS GrGS GrGS	 GrGS
 GrGS GrGS GrGS GrGS GrGS GrGS GrGS GrGS GrGS GrGS GrGS GrGS GrGS GrGS GrGS GrGS Gr GS Gr!GS Gr"GS Gr#GS Gr$GS Gr%GS-GS  jGr&GS! Gr'GS" Gr(GS# Gr)GS$ Gr*GS% Gr+GS& Gr,GS' Gr-GS( Gr.GS4GS) jGr/GS* Gr0GS+Gr1g(5  IPolys   Nc                     g N )selfgens     X/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/sympy/polys/compatibility.pydropIPolys.drop           c                     g r   r!  )r"  symbolsdomainorders       r$  cloneIPolys.clone   r'  r(  c                     g r   r!  )r"  s    r$  	to_groundIPolys.to_ground   r'  r(  c                     g r   r!  r"  elements     r$  
ground_newIPolys.ground_new   r'  r(  c                     g r   r!  r3  s     r$  
domain_newIPolys.domain_new   r'  r(  c                     g r   r!  )r"  ds     r$  	from_dictIPolys.from_dict   r'  r(  c                     SSK Jn  [        X5      (       a  UR                  U :X  a  U$ [	        S5      eU R                  U5      $ )Nr   )PolyElementzdomain conversions)sympy.polys.ringsr?  
isinstanceringNotImplementedErrorr5  )r"  r4  r?  s      r$  wrapIPolys.wrap  s<    1g++||t#)*>????7++r(  c                 @    U R                  U5      R                  5       $ r   )rD  to_denser3  s     r$  rG  IPolys.to_dense  s    yy!**,,r(  c                 f    U R                  [        XR                  S-
  U R                  5      5      $ N   )r<  rL   ngensr+  r3  s     r$  
from_denseIPolys.from_dense  s$    ~~k'::a<MNNr(  c                 l    U R                  [        U R                  U5      X#U R                  5      5      $ r   )rM  r   rG  r+  r"  fcis       r$  r   IPolys.dup_add_term  '    |DMM!,<aDKKPQQr(  c           	          U R                  [        U R                  U5      U R                  U5      R	                  S5      R                  5       X0R
                  S-
  U R                  5      5      $ Nr   rK  )rM  r   rG  rD  r%  rL  r+  rP  s       r$  r   IPolys.dmp_add_term  V    |DMM!,<diil>O>OPQ>R>[>[>]_`blblmnbnptp{p{|}}r(  c                 l    U R                  [        U R                  U5      X#U R                  5      5      $ r   )rM  r   rG  r+  rP  s       r$  r   IPolys.dup_sub_term  rU  r(  c           	          U R                  [        U R                  U5      U R                  U5      R	                  S5      R                  5       X0R
                  S-
  U R                  5      5      $ rW  )rM  r   rG  rD  r%  rL  r+  rP  s       r$  r   IPolys.dmp_sub_term  rY  r(  c                 l    U R                  [        U R                  U5      X#U R                  5      5      $ r   )rM  r   rG  r+  rP  s       r$  r   IPolys.dup_mul_term  rU  r(  c           	          U R                  [        U R                  U5      U R                  U5      R	                  S5      R                  5       X0R
                  S-
  U R                  5      5      $ rW  )rM  r   rG  rD  r%  rL  r+  rP  s       r$  r   IPolys.dmp_mul_term  rY  r(  c                 j    U R                  [        U R                  U5      X R                  5      5      $ r   )rM  r	   rG  r+  r"  rQ  rR  s      r$  r	   IPolys.dup_add_ground  %    ~dmmA.>;;OPPr(  c                     U R                  [        U R                  U5      X R                  S-
  U R                  5      5      $ rJ  )rM  r
   rG  rL  r+  rc  s      r$  r
   IPolys.dmp_add_ground   2    ~dmmA.>::a<QUQ\Q\]^^r(  c                 j    U R                  [        U R                  U5      X R                  5      5      $ r   )rM  r   rG  r+  rc  s      r$  r   IPolys.dup_sub_ground"  re  r(  c                     U R                  [        U R                  U5      X R                  S-
  U R                  5      5      $ rJ  )rM  r   rG  rL  r+  rc  s      r$  r   IPolys.dmp_sub_ground$  rh  r(  c                 j    U R                  [        U R                  U5      X R                  5      5      $ r   )rM  r   rG  r+  rc  s      r$  r   IPolys.dup_mul_ground&  re  r(  c                     U R                  [        U R                  U5      X R                  S-
  U R                  5      5      $ rJ  )rM  r   rG  rL  r+  rc  s      r$  r   IPolys.dmp_mul_ground(  rh  r(  c                 j    U R                  [        U R                  U5      X R                  5      5      $ r   )rM  r   rG  r+  rc  s      r$  r   IPolys.dup_quo_ground*  re  r(  c                     U R                  [        U R                  U5      X R                  S-
  U R                  5      5      $ rJ  )rM  r   rG  rL  r+  rc  s      r$  r   IPolys.dmp_quo_ground,  rh  r(  c                 j    U R                  [        U R                  U5      X R                  5      5      $ r   )rM  r   rG  r+  rc  s      r$  r   IPolys.dup_exquo_ground.  s&    /a0@![[QRRr(  c                     U R                  [        U R                  U5      X R                  S-
  U R                  5      5      $ rJ  )rM  r   rG  rL  r+  rc  s      r$  r   IPolys.dmp_exquo_ground0  4    /a0@!ZZPQ\SWS^S^_``r(  c                 j    U R                  [        U R                  U5      X R                  5      5      $ r   )rM  r   rG  r+  r"  rQ  ns      r$  r   IPolys.dup_lshift3  %    z$--*:A{{KLLr(  c                 j    U R                  [        U R                  U5      X R                  5      5      $ r   )rM  r   rG  r+  r{  s      r$  r   IPolys.dup_rshift5  r~  r(  c                 j    U R                  [        U R                  U5      U R                  5      5      $ r   )rM  r   rG  r+  r"  rQ  s     r$  r   IPolys.dup_abs8  %    wt}}Q'7EFFr(  c                     U R                  [        U R                  U5      U R                  S-
  U R                  5      5      $ rJ  )rM  r   rG  rL  r+  r  s     r$  r   IPolys.dmp_abs:  /    wt}}Q'7At{{STTr(  c                 j    U R                  [        U R                  U5      U R                  5      5      $ r   )rM  r   rG  r+  r  s     r$  r   IPolys.dup_neg=  r  r(  c                     U R                  [        U R                  U5      U R                  S-
  U R                  5      5      $ rJ  )rM  r   rG  rL  r+  r  s     r$  r   IPolys.dmp_neg?  r  r(  c                     U R                  [        U R                  U5      U R                  U5      U R                  5      5      $ r   )rM  r   rG  r+  r"  rQ  gs      r$  r   IPolys.dup_addB  0    wt}}Q'7q9I4;;WXXr(  c                     U R                  [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      5      $ rJ  )rM  r   rG  rL  r+  r  s      r$  r   IPolys.dmp_addD  >    wt}}Q'7q9I4::VW<Y]YdYdeffr(  c                     U R                  [        U R                  U5      U R                  U5      U R                  5      5      $ r   )rM  r   rG  r+  r  s      r$  r   IPolys.dup_subG  r  r(  c                     U R                  [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      5      $ rJ  )rM  r   rG  rL  r+  r  s      r$  r   IPolys.dmp_subI  r  r(  c           	          U R                  [        U R                  U5      U R                  U5      U R                  U5      U R                  5      5      $ r   )rM  r   rG  r+  r"  rQ  r  hs       r$  r   IPolys.dup_add_mulL  ?    {4==+;T]]1=Mt}}]^O_aealalmnnr(  c           	          U R                  [        U R                  U5      U R                  U5      U R                  U5      U R                  S-
  U R                  5      5      $ rJ  )rM  r   rG  rL  r+  r  s       r$  r   IPolys.dmp_add_mulN  N    {4==+;T]]1=Mt}}]^O_aeakaklmamosozoz{||r(  c           	          U R                  [        U R                  U5      U R                  U5      U R                  U5      U R                  5      5      $ r   )rM  r   rG  r+  r  s       r$  r   IPolys.dup_sub_mulP  r  r(  c           	          U R                  [        U R                  U5      U R                  U5      U R                  U5      U R                  S-
  U R                  5      5      $ rJ  )rM  r    rG  rL  r+  r  s       r$  r    IPolys.dmp_sub_mulR  r  r(  c                     U R                  [        U R                  U5      U R                  U5      U R                  5      5      $ r   )rM  r!   rG  r+  r  s      r$  r!   IPolys.dup_mulU  r  r(  c                     U R                  [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      5      $ rJ  )rM  r"   rG  rL  r+  r  s      r$  r"   IPolys.dmp_mulW  r  r(  c                 j    U R                  [        U R                  U5      U R                  5      5      $ r   )rM  r#   rG  r+  r  s     r$  r#   IPolys.dup_sqrZ  r  r(  c                     U R                  [        U R                  U5      U R                  S-
  U R                  5      5      $ rJ  )rM  r$   rG  rL  r+  r  s     r$  r$   IPolys.dmp_sqr\  r  r(  c                 j    U R                  [        U R                  U5      X R                  5      5      $ r   )rM  r%   rG  r+  r{  s      r$  r%   IPolys.dup_pow^  s%    wt}}Q'7KKHIIr(  c                     U R                  [        U R                  U5      X R                  S-
  U R                  5      5      $ rJ  )rM  r&   rG  rL  r+  r{  s      r$  r&   IPolys.dmp_pow`  s/    wt}}Q'7JJqL$++VWWr(  c                     [        U R                  U5      U R                  U5      U R                  5      u  p4U R                  U5      U R                  U5      4$ r   )r'   rG  r+  rM  r"  rQ  r  qrs        r$  r'   IPolys.dup_pdivc  sE    a($--*:DKKH"DOOA$677r(  c                     U R                  [        U R                  U5      U R                  U5      U R                  5      5      $ r   )rM  r(   rG  r+  r  s      r$  r(   IPolys.dup_premf  0    xa(8$--:JDKKXYYr(  c                     U R                  [        U R                  U5      U R                  U5      U R                  5      5      $ r   )rM  r)   rG  r+  r  s      r$  r)   IPolys.dup_pquoh  r  r(  c                     U R                  [        U R                  U5      U R                  U5      U R                  5      5      $ r   )rM  r*   rG  r+  r  s      r$  r*   IPolys.dup_pexquoj  0    z$--*:DMM!<LdkkZ[[r(  c                     [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      u  p4U R	                  U5      U R	                  U5      4$ rJ  )r+   rG  rL  r+  rM  r  s        r$  r+   IPolys.dmp_pdivm  sO    a($--*:DJJqL$++V"DOOA$677r(  c                     U R                  [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      5      $ rJ  )rM  r,   rG  rL  r+  r  s      r$  r,   IPolys.dmp_premp  >    xa(8$--:JDJJWXLZ^ZeZefggr(  c                     U R                  [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      5      $ rJ  )rM  r-   rG  rL  r+  r  s      r$  r-   IPolys.dmp_pquor  r  r(  c                     U R                  [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      5      $ rJ  )rM  r.   rG  rL  r+  r  s      r$  r.   IPolys.dmp_pexquot  >    z$--*:DMM!<LdjjYZl\`\g\ghiir(  c                     [        U R                  U5      U R                  U5      U R                  5      u  p4U R                  U5      U R                  U5      4$ r   )r/   rG  r+  rM  r  s        r$  r/   IPolys.dup_rr_divw  E    $--*DMM!,<dkkJ"DOOA$677r(  c                     [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      u  p4U R	                  U5      U R	                  U5      4$ rJ  )r0   rG  rL  r+  rM  r  s        r$  r0   IPolys.dmp_rr_divz  O    $--*DMM!,<djjlDKKX"DOOA$677r(  c                     [        U R                  U5      U R                  U5      U R                  5      u  p4U R                  U5      U R                  U5      4$ r   )r1   rG  r+  rM  r  s        r$  r1   IPolys.dup_ff_div}  r  r(  c                     [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      u  p4U R	                  U5      U R	                  U5      4$ rJ  )r2   rG  rL  r+  rM  r  s        r$  r2   IPolys.dmp_ff_div  r  r(  c                     [        U R                  U5      U R                  U5      U R                  5      u  p4U R                  U5      U R                  U5      4$ r   )r3   rG  r+  rM  r  s        r$  r3   IPolys.dup_div  sE    t}}Q'q)94;;G"DOOA$677r(  c                     U R                  [        U R                  U5      U R                  U5      U R                  5      5      $ r   )rM  r4   rG  r+  r  s      r$  r4   IPolys.dup_rem  r  r(  c                     U R                  [        U R                  U5      U R                  U5      U R                  5      5      $ r   )rM  r5   rG  r+  r  s      r$  r5   IPolys.dup_quo  r  r(  c                     U R                  [        U R                  U5      U R                  U5      U R                  5      5      $ r   )rM  r6   rG  r+  r  s      r$  r6   IPolys.dup_exquo  s0    yq)94==;KT[[YZZr(  c                     [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      u  p4U R	                  U5      U R	                  U5      4$ rJ  )r7   rG  rL  r+  rM  r  s        r$  r7   IPolys.dmp_div  sO    t}}Q'q)94::a<U"DOOA$677r(  c                     U R                  [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      5      $ rJ  )rM  r8   rG  rL  r+  r  s      r$  r8   IPolys.dmp_rem  r  r(  c                     U R                  [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      5      $ rJ  )rM  r9   rG  rL  r+  r  s      r$  r9   IPolys.dmp_quo  r  r(  c                     U R                  [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      5      $ rJ  )rM  r:   rG  rL  r+  r  s      r$  r:   IPolys.dmp_exquo  s>    yq)94==;KTZZXY\[_[f[fghhr(  c                 L    [        U R                  U5      U R                  5      $ r   )r;   rG  r+  r  s     r$  r;   IPolys.dup_max_norm  s    DMM!,dkk::r(  c                 h    [        U R                  U5      U R                  S-
  U R                  5      $ rJ  )r<   rG  rL  r+  r  s     r$  r<   IPolys.dmp_max_norm  s&    DMM!,djjlDKKHHr(  c                 L    [        U R                  U5      U R                  5      $ r   )r=   rG  r+  r  s     r$  r=   IPolys.dup_l1_norm  s    4==+T[[99r(  c                 h    [        U R                  U5      U R                  S-
  U R                  5      $ rJ  )r>   rG  rL  r+  r  s     r$  r>   IPolys.dmp_l1_norm  s&    4==+TZZ\4;;GGr(  c                 L    [        U R                  U5      U R                  5      $ r   )r?   rG  r+  r  s     r$  r?   IPolys.dup_l2_norm_squared      "4==#3T[[AAr(  c                 h    [        U R                  U5      U R                  S-
  U R                  5      $ rJ  )r@   rG  rL  r+  r  s     r$  r@   IPolys.dmp_l2_norm_squared  s&    "4==#3TZZ\4;;OOr(  c           
          U R                  [        [        [        U R                  U5      5      U R
                  5      5      $ r   )rM  rA   listmaprG  r+  r"  polyss     r$  rA   IPolys.dup_expand  s,    z$s4==%/H*I4;;WXXr(  c           
          U R                  [        [        [        U R                  U5      5      U R
                  S-
  U R                  5      5      $ rJ  )rM  rB   r  r  rG  rL  r+  r  s     r$  rB   IPolys.dmp_expand  s:    z$s4==%/H*I4::VW<Y]YdYdeffr(  c                 L    [        U R                  U5      U R                  5      $ r   )rC   rG  r+  r  s     r$  rC   IPolys.dup_LC      dmmA&44r(  c                     [        U R                  U5      U R                  5      n[        U[        5      (       a  U SS  R                  U5      $ U$ rJ  )rD   rG  r+  rA  r  rM  )r"  rQ  LCs      r$  rD   IPolys.dmp_LC  D    DMM!$dkk2b$8&&r**Ir(  c                 L    [        U R                  U5      U R                  5      $ r   )rE   rG  r+  r  s     r$  rE   IPolys.dup_TC  r  r(  c                     [        U R                  U5      U R                  5      n[        U[        5      (       a  U SS  R                  U5      $ U$ rJ  )rF   rG  r+  rA  r  rM  )r"  rQ  TCs      r$  rF   IPolys.dmp_TC  r  r(  c                 h    [        U R                  U5      U R                  S-
  U R                  5      $ rJ  )rG   rG  rL  r+  r  s     r$  rG   IPolys.dmp_ground_LC  &    T]]1-tzz!|T[[IIr(  c                 h    [        U R                  U5      U R                  S-
  U R                  5      $ rJ  )rH   rG  rL  r+  r  s     r$  rH   IPolys.dmp_ground_TC  r  r(  c                 6    [        U R                  U5      5      $ r   )rI   rG  r  s     r$  rI   IPolys.dup_degree  s    $--*++r(  c                 R    [        U R                  U5      U R                  S-
  5      $ rJ  )rJ   rG  rL  r  s     r$  rJ   IPolys.dmp_degree  s     $--*DJJqL99r(  c                 R    [        U R                  U5      X R                  S-
  5      $ rJ  )rK   rG  rL  )r"  rQ  js      r$  rK   IPolys.dmp_degree_in  s     T]]1-q**Q,??r(  c                 j    U R                  [        U R                  U5      X R                  5      5      $ r   )rM  rM   rG  r+  r"  rQ  ms      r$  rM   IPolys.dup_integrate  s%    }T]]1-=q++NOOr(  c                     U R                  [        U R                  U5      X R                  S-
  U R                  5      5      $ rJ  )rM  rN   rG  rL  r+  r  s      r$  rN   IPolys.dmp_integrate  s2    }T]]1-=q**Q,PTP[P[\]]r(  c                 j    U R                  [        U R                  U5      X R                  5      5      $ r   )rM  rP   rG  r+  r  s      r$  rP   IPolys.dup_diff  s%    xa(8![[IJJr(  c                     U R                  [        U R                  U5      X R                  S-
  U R                  5      5      $ rJ  )rM  rQ   rG  rL  r+  r  s      r$  rQ   IPolys.dmp_diff  s/    xa(8!ZZ\4;;WXXr(  c           	          U R                  [        U R                  U5      X#U R                  S-
  U R                  5      5      $ rJ  )rM  rR   rG  rL  r+  r"  rQ  r  r  s       r$  rR   IPolys.dmp_diff_in  s4    {4==+;Q4::a<QUQ\Q\]^^r(  c           	          U R                  [        U R                  U5      X#U R                  S-
  U R                  5      5      $ rJ  )rM  rO   rG  rL  r+  r  s       r$  rO   IPolys.dmp_integrate_in  s6    /a0@!

STVZVaVabccr(  c                 L    [        U R                  U5      X R                  5      $ r   )rS   rG  r+  r"  rQ  as      r$  rS   IPolys.dup_eval  s    a(![[99r(  c                     [        U R                  U5      X R                  S-
  U R                  5      nU SS  R	                  U5      $ rJ  )rT   rG  rL  r+  rM  )r"  rQ  r  results       r$  rT   IPolys.dmp_eval  s<    $--*Azz!|T[[IABx""6**r(  c                     [        U R                  U5      X#U R                  S-
  U R                  5      nU R	                  U5      R                  U5      $ rJ  )rU   rG  rL  r+  r%  rM  )r"  rQ  r  r  r"  s        r$  rU   IPolys.dmp_eval_in  s@    T]]1-qTZZ\4;;Oyy|&&v..r(  c                     [        U R                  U5      X#X@R                  S-
  U R                  5      nU R	                  U5      R                  U5      $ rJ  )rW   rG  rL  r+  r%  rM  )r"  rQ  r  r  r  r"  s         r$  rW   IPolys.dmp_diff_eval_in  s@    !$--"2A!ZZ\4;;Wyy|&&v..r(  c                     [        U R                  U5      X R                  S-
  U R                  5      n[	        U[
        5      (       a  U S [        U5      *  R                  U5      $ U$ rJ  )rV   rG  rL  r+  rA  r  lenrM  )r"  rQ  Ar"  s       r$  rV   IPolys.dmp_eval_tail  sT    t}}Q/JJqL$++Nfd###a&>,,V44Mr(  c                 j    U R                  [        U R                  U5      X R                  5      5      $ r   )rM  rX   rG  r+  r"  rQ  ps      r$  rX   IPolys.dup_trunc  %    yq)91kkJKKr(  c                     U R                  [        U R                  U5      U SS  R                  U5      U R                  S-
  U R                  5      5      $ rJ  )rM  rY   rG  rL  r+  r  s      r$  rY   IPolys.dmp_trunc  sJ    yq)948;L;LQ;OQUQ[Q[\]Q]_c_j_jkllr(  c                     U R                  [        U R                  U5      X R                  S-
  U R                  5      5      $ rJ  )rM  rZ   rG  rL  r+  r-  s      r$  rZ   IPolys.dmp_ground_trunc  ry  r(  c                 j    U R                  [        U R                  U5      U R                  5      5      $ r   )rM  r[   rG  r+  r  s     r$  r[   IPolys.dup_monic  s%    yq)94;;GHHr(  c                     U R                  [        U R                  U5      U R                  S-
  U R                  5      5      $ rJ  )rM  r\   rG  rL  r+  r  s     r$  r\   IPolys.dmp_ground_monic  s3    /a0@$**Q,PTP[P[\]]r(  c                     [        U R                  U5      U R                  U5      U R                  5      u  p4nX0R                  U5      U R                  U5      4$ r   )ra   rG  r+  rM  r"  rQ  r  rR  FGs         r$  ra   IPolys.dup_extract  sG    dmmA.a0@$++Na??1%tq'9::r(  c                     [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      u  p4nX0R	                  U5      U R	                  U5      4$ rJ  )rb   rG  rL  r+  rM  r:  s         r$  rb   IPolys.dmp_ground_extract  sU    $T]]1%5t}}Q7GTUW[WbWbca??1%tq'9::r(  c                     [        U R                  U5      R                  S5      R                  5       U R                  5      u  p#U R                  U5      U R                  U5      4$ rJ  )rc   rD  r%  rG  r+  rM  r"  rQ  r.  r  s       r$  rc   IPolys.dup_real_imag  sM    TYYq\..q1::<dkkJ"DOOA$677r(  c                 j    U R                  [        U R                  U5      U R                  5      5      $ r   )rM  rd   rG  r+  r  s     r$  rd   IPolys.dup_mirror  s%    z$--*:DKKHIIr(  c                 j    U R                  [        U R                  U5      X R                  5      5      $ r   )rM  re   rG  r+  r  s      r$  re   IPolys.dup_scale  r0  r(  c                 j    U R                  [        U R                  U5      X R                  5      5      $ r   )rM  rf   rG  r+  r  s      r$  rf   IPolys.dup_shift  r0  r(  c                     U R                  [        U R                  U5      X R                  S-
  U R                  5      5      $ rJ  )rM  rg   rG  rL  r+  r  s      r$  rg   IPolys.dmp_shift  s/    yq)91jjlDKKXYYr(  c           	          U R                  [        U R                  U5      U R                  U5      U R                  U5      U R                  5      5      $ r   )rM  rh   rG  r+  rA  s       r$  rh   IPolys.dup_transform
  sB    }T]]1-=t}}Q?OQUQ^Q^_`Qacgcncnoppr(  c                     U R                  [        U R                  U5      U R                  U5      U R                  5      5      $ r   )rM  ri   rG  r+  r  s      r$  ri   IPolys.dup_compose  s0    {4==+;T]]1=Mt{{[\\r(  c                     U R                  [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      5      $ rJ  )rM  rj   rG  rL  r+  r  s      r$  rj   IPolys.dmp_compose  s>    {4==+;T]]1=MtzzZ[|]a]h]hijjr(  c                     [        U R                  U5      U R                  5      n[        [	        U R
                  U5      5      $ r   )rk   rG  r+  r  r  rM  )r"  rQ  
componentss      r$  rk   IPolys.dup_decompose  s1    "4==#3T[[A
C455r(  c                     [        U R                  U5      U R                  S-
  U R                  5      nU R	                  5       R                  U5      $ rJ  )rl   rG  rL  r+  r0  rM  r"  rQ  r"  s      r$  rl   IPolys.dmp_lift  s=    $--*DJJqL$++F~~**622r(  c                 L    [        U R                  U5      U R                  5      $ r   )rm   rG  r+  r  s     r$  rm   IPolys.dup_sign_variations  r  r(  c                     [        U R                  U5      U R                  US9u  p4U(       a(  U R                  U R                  R	                  5       S9nOU nX5R                  U5      4$ )Nconvertr+  )rn   rG  r+  r-  get_ringrM  r"  rQ  r[  rR  r;  rB  s         r$  rn   IPolys.dup_clear_denoms  sV    a 0$++wO::T[[%9%9%;:<DD??1%&&r(  c                     [        U R                  U5      U R                  S-
  U R                  US9u  p4U(       a(  U R	                  U R                  R                  5       S9nOU nX5R                  U5      4$ )NrK  rZ  r\  )ro   rG  rL  r+  r-  r]  rM  r^  s         r$  ro   IPolys.dmp_clear_denoms$  sa    a 0$**Q,U\]::T[[%9%9%;:<DD??1%&&r(  c                 j    U R                  [        U R                  U5      X R                  5      5      $ r   )rM  rp   rG  r+  r{  s      r$  rp   IPolys.dup_revert,  r~  r(  c                     [        U R                  U5      U R                  U5      U R                  5      u  p4U R                  U5      U R                  U5      4$ r   )rq   rG  r+  rM  r"  rQ  r  sr  s        r$  rq   IPolys.dup_half_gcdex/  sE    dmmA.a0@$++N"DOOA$677r(  c                     [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      u  p4U R	                  U5      U R	                  U5      4$ rJ  )rr   rG  rL  r+  rM  re  s        r$  rr   IPolys.dmp_half_gcdex2  sR    dmmA.a0@$**Q,PTP[P[\"DOOA$677r(  c                     [        U R                  U5      U R                  U5      U R                  5      u  p4nU R                  U5      U R                  U5      U R                  U5      4$ r   )rs   rG  r+  rM  r"  rQ  r  rf  tr  s         r$  rs   IPolys.dup_gcdex5  sR    DMM!,dmmA.>La"DOOA$68JKKr(  c                     [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      u  p4nU R	                  U5      U R	                  U5      U R	                  U5      4$ rJ  )rt   rG  rL  r+  rM  rk  s         r$  rt   IPolys.dmp_gcdex8  s\    DMM!,dmmA.>

1dkkZa"DOOA$68JKKr(  c                     U R                  [        U R                  U5      U R                  U5      U R                  5      5      $ r   )rM  ru   rG  r+  r  s      r$  ru   IPolys.dup_invert<  r  r(  c                     U R                  [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      5      $ rJ  )rM  rv   rG  rL  r+  r  s      r$  rv   IPolys.dmp_invert>  r  r(  c                     [        U R                  U5      U R                  U5      U R                  5      n[        [	        U R
                  U5      5      $ r   )rw   rG  r+  r  r  rM  r"  rQ  r  prss       r$  rw   IPolys.dup_euclidean_prsA  <    a 0$--2BDKKPC-..r(  c                     [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      n[	        [        U R                  U5      5      $ rJ  )rx   rG  rL  r+  r  r  rM  ru  s       r$  rx   IPolys.dmp_euclidean_prsD  I    a 0$--2BDJJqLRVR]R]^C-..r(  c                     [        U R                  U5      U R                  U5      U R                  5      n[        [	        U R
                  U5      5      $ r   )ry   rG  r+  r  r  rM  ru  s       r$  ry   IPolys.dup_primitive_prsG  rx  r(  c                     [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      n[	        [        U R                  U5      5      $ rJ  )rz   rG  rL  r+  r  r  rM  ru  s       r$  rz   IPolys.dmp_primitive_prsJ  r{  r(  c                     [        U R                  U5      U R                  U5      U R                  5      u  p4[        [	        U R
                  U5      5      U4$ r   )r{   rG  r+  r  r  rM  r"  rQ  r  rv  sress        r$  r{   IPolys.dup_inner_subresultantsN  sF    +DMM!,<dmmA>NPTP[P[\	S#./66r(  c                     [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      u  p4[	        [        U R                  U5      5      U4$ rJ  )r   rG  rL  r+  r  r  rM  r  s        r$  r   IPolys.dmp_inner_subresultantsQ  sU    ,T]]1-=t}}Q?OQUQ[Q[\]Q]_c_j_jk	S#./66r(  c                     [        U R                  U5      U R                  U5      U R                  5      n[        [	        U R
                  U5      5      $ r   )r|   rG  r+  r  r  rM  ru  s       r$  r|   IPolys.dup_subresultantsU  rx  r(  c                     [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      n[	        [        U R                  U5      5      $ rJ  )r   rG  rL  r+  r  r  rM  ru  s       r$  r   IPolys.dmp_subresultantsX  r{  r(  c                     [        U R                  U5      U R                  U5      U R                  5      u  p4U[        [	        U R
                  U5      5      4$ r   )r}   rG  r+  r  r  rM  r"  rQ  r  resrv  s        r$  r}   IPolys.dup_prs_resultant\  sC    $T]]1%5t}}Q7GUT#doos3455r(  c                     [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      u  p4U SS  R	                  U5      [        [        U R                  U5      5      4$ rJ  )r   rG  rL  r+  rM  r  r  r  s        r$  r   IPolys.dmp_prs_resultant_  sb    $T]]1%5t}}Q7GTUW[WbWbcQR##C($s4??C/H*IJJr(  c                     [        U R                  U5      U R                  U5      U R                  U5      U R                  S-
  U R                  5      nU SS  R                  U5      $ rJ  )r   rG  r8  rL  r+  rM  )r"  rQ  r  r.  r  s        r$  r   IPolys.dmp_zz_modular_resultantc  s[    &t}}Q'7q9I4??[\K]_c_i_ijk_kmqmxmxyABx""3''r(  c                     [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      nU SS  R	                  U5      $ rJ  )r   rG  rL  r+  rM  r"  rQ  r  r  s       r$  r   IPolys.dmp_zz_collins_resultantf  K    &t}}Q'7q9I4::VW<Y]YdYdeABx""3''r(  c                     [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      nU SS  R	                  U5      $ rJ  )r   rG  rL  r+  rM  r  s       r$  r   IPolys.dmp_qq_collins_resultanti  r  r(  c                 l    [        U R                  U5      U R                  U5      U R                  5      $ r   )r~   rG  r+  r  s      r$  r~   IPolys.dup_resultantm  s'    T]]1-t}}Q/?MMr(  c                     [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      n[	        U[
        5      (       a  U SS  R                  U5      $ U$ rJ  )r   rG  rL  r+  rA  r  rM  r  s       r$  r   IPolys.dmp_resultanto  sY    DMM!,dmmA.>

1dkkZc4  8&&s++Jr(  c                 L    [        U R                  U5      U R                  5      $ r   )r   rG  r+  r  s     r$  r   IPolys.dup_discriminantv  s    a 0$++>>r(  c                     [        U R                  U5      U R                  S-
  U R                  5      n[	        U[
        5      (       a  U SS  R                  U5      $ U$ rJ  )r   rG  rL  r+  rA  r  rM  )r"  rQ  discs      r$  r   IPolys.dmp_discriminantx  sN    a 0$**Q,LdD!!8&&t,,Kr(  c                     [        U R                  U5      U R                  U5      U R                  5      u  p4nU R                  U5      U R                  U5      U R                  U5      4$ r   )r   rG  r+  rM  r"  rQ  r  Hr;  r<  s         r$  r   IPolys.dup_rr_prs_gcd  R     q!14==3CT[[Qa"DOOA$68JKKr(  c                     [        U R                  U5      U R                  U5      U R                  5      u  p4nU R                  U5      U R                  U5      U R                  U5      4$ r   )r   rG  r+  rM  r  s         r$  r   IPolys.dup_ff_prs_gcd  r  r(  c                     [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      u  p4nU R	                  U5      U R	                  U5      U R	                  U5      4$ rJ  )r   rG  rL  r+  rM  r  s         r$  r   IPolys.dmp_rr_prs_gcd  `     q!14==3CTZZPQ\SWS^S^_a"DOOA$68JKKr(  c                     [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      u  p4nU R	                  U5      U R	                  U5      U R	                  U5      4$ rJ  )r   rG  rL  r+  rM  r  s         r$  r   IPolys.dmp_ff_prs_gcd  r  r(  c                     [        U R                  U5      U R                  U5      U R                  5      u  p4nU R                  U5      U R                  U5      U R                  U5      4$ r   )r   rG  r+  rM  r  s         r$  r   IPolys.dup_zz_heu_gcd  r  r(  c                     [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      u  p4nU R	                  U5      U R	                  U5      U R	                  U5      4$ rJ  )r   rG  rL  r+  rM  r  s         r$  r   IPolys.dmp_zz_heu_gcd  r  r(  c                     [        U R                  U5      U R                  U5      U R                  5      u  p4nU R                  U5      U R                  U5      U R                  U5      4$ r   )r   rG  r+  rM  r  s         r$  r   IPolys.dup_qq_heu_gcd  r  r(  c                     [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      u  p4nU R	                  U5      U R	                  U5      U R	                  U5      4$ rJ  )r   rG  rL  r+  rM  r  s         r$  r   IPolys.dmp_qq_heu_gcd  r  r(  c                     [        U R                  U5      U R                  U5      U R                  5      u  p4nU R                  U5      U R                  U5      U R                  U5      4$ r   )r   rG  r+  rM  r  s         r$  r   IPolys.dup_inner_gcd  sR    a 0$--2BDKKPa"DOOA$68JKKr(  c                     [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      u  p4nU R	                  U5      U R	                  U5      U R	                  U5      4$ rJ  )r   rG  rL  r+  rM  r  s         r$  r   IPolys.dmp_inner_gcd  s_    a 0$--2BDJJqLRVR]R]^a"DOOA$68JKKr(  c                     [        U R                  U5      U R                  U5      U R                  5      nU R                  U5      $ r   )r   rG  r+  rM  r"  rQ  r  r  s       r$  r   IPolys.dup_gcd  5    DMM!$dmmA&6Dq!!r(  c                     [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      nU R	                  U5      $ rJ  )r   rG  rL  r+  rM  r  s       r$  r   IPolys.dmp_gcd  ?    DMM!$dmmA&6

1dkkRq!!r(  c                     [        U R                  U5      U R                  U5      U R                  5      nU R                  U5      $ r   )r   rG  r+  rM  r  s       r$  r   IPolys.dup_rr_lcm  5    t}}Q'q)94;;Gq!!r(  c                     [        U R                  U5      U R                  U5      U R                  5      nU R                  U5      $ r   )r   rG  r+  rM  r  s       r$  r   IPolys.dup_ff_lcm  r  r(  c                     [        U R                  U5      U R                  U5      U R                  5      nU R                  U5      $ r   )r   rG  r+  rM  r  s       r$  r   IPolys.dup_lcm  r  r(  c                     [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      nU R	                  U5      $ rJ  )r   rG  rL  r+  rM  r  s       r$  r   IPolys.dmp_rr_lcm  ?    t}}Q'q)94::a<Uq!!r(  c                     [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      nU R	                  U5      $ rJ  )r   rG  rL  r+  rM  r  s       r$  r   IPolys.dmp_ff_lcm  r  r(  c                     [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      nU R	                  U5      $ rJ  )r   rG  rL  r+  rM  r  s       r$  r   IPolys.dmp_lcm  r  r(  c                 P    [        U R                  U5      U R                  5      nU$ r   )r]   rG  r+  r"  rQ  conts      r$  r]   IPolys.dup_content  s     4==+T[[9r(  c                 t    [        U R                  U5      U R                  5      u  p#X R                  U5      4$ r   )r_   rG  r+  rM  r"  rQ  r  prims       r$  r_   IPolys.dup_primitive  s/    "4==#3T[[A
__T***r(  c                     [        U R                  U5      U R                  S-
  U R                  5      n[	        U[
        5      (       a  U SS  R                  U5      $ U$ rJ  )r   rG  rL  r+  rA  r  rM  r  s      r$  r   IPolys.dmp_content  sN    4==+TZZ\4;;GdD!!8&&t,,Kr(  c                    [        U R                  U5      U R                  S-
  U R                  5      u  p#[	        U[
        5      (       a%  U SS  R                  U5      U R                  U5      4$ X R                  U5      4$ rJ  )r   rG  rL  r+  rA  r  rM  r  s       r$  r   IPolys.dmp_primitive  sk    "4==#3TZZ\4;;O
dD!!H''-tt/DEE//$/00r(  c                 l    [        U R                  U5      U R                  S-
  U R                  5      nU$ rJ  )r^   rG  rL  r+  r  s      r$  r^   IPolys.dmp_ground_content  s*    !$--"2DJJqL$++Nr(  c                     [        U R                  U5      U R                  S-
  U R                  5      u  p#X R	                  U5      4$ rJ  )r`   rG  rL  r+  rM  r  s       r$  r`   IPolys.dmp_ground_primitive  s9    )$--*:DJJqL$++V
ood+,,r(  c                    [        U R                  U5      U R                  U5      U R                  US9nU(       d(  Uu  pVpxXVU R                  U5      U R                  U5      4$ Uu  pxU R                  U5      U R                  U5      4$ )Ninclude)r   rG  r+  rM  	r"  rQ  r  r  r"  cfcgr;  r<  s	            r$  r   IPolys.dup_cancel  sx    DMM!,dmmA.>U\]!LBADOOA.0BCCDAOOA&(:;;r(  c                 0   [        U R                  U5      U R                  U5      U R                  S-
  U R                  US9nU(       d(  Uu  pVpxXVU R	                  U5      U R	                  U5      4$ Uu  pxU R	                  U5      U R	                  U5      4$ )NrK  r  )r   rG  rL  r+  rM  r  s	            r$  r   IPolys.dmp_cancel  s    DMM!,dmmA.>

1dkkcjk!LBADOOA.0BCCDAOOA&(:;;r(  c           	          [        U R                  U5      [        [        U R                  U5      5      U R                  5      nU VVs/ s H  u  p4U R                  U5      U4PM     snn$ s  snnf r   )r   rG  r  r  r+  rM  r"  rQ  factorsr  ks        r$  r   IPolys.dup_trial_division  sX    $T]]1%5tCw<W7XZ^ZeZef5<>WTQ$//!$a(W>>>s   	A,c           	          [        U R                  U5      [        [        U R                  U5      5      U R                  S-
  U R
                  5      nU VVs/ s H  u  p4U R                  U5      U4PM     snn$ s  snnf rJ  )r   rG  r  r  rL  r+  rM  r  s        r$  r   IPolys.dmp_trial_division  sg    $T]]1%5tCw<W7XZ^ZdZdefZfhlhshst5<>WTQ$//!$a(W>>>s   A:c                 L    [        U R                  U5      U R                  5      $ r   )r   rG  r+  r  s     r$  r   IPolys.dup_zz_mignotte_bound  s    $T]]1%5t{{CCr(  c                 h    [        U R                  U5      U R                  S-
  U R                  5      $ rJ  )r   rG  rL  r+  r  s     r$  r   IPolys.dmp_zz_mignotte_bound  s&    $T]]1%5tzz!|T[[QQr(  c           
         U R                   n[        X" U5      U" U5      U" U5      U" U5      U" U5      U R                  5      u  ppU R                  U5      U R                  U	5      U R                  U
5      U R                  U5      4$ r   )rG  r   r+  rM  )r"  r  rQ  r  r  rf  rl  Dr<  r  STs               r$  r   IPolys.dup_zz_hensel_step  sq    MM'1Q41qtQqT1Q4U
a"DOOA$68JDOO\]L^__r(  c           
          U R                   n[        X" U5      [        [        XS5      5      X@R                  5      n[        [        U R
                  U5      5      $ r   )rG  r   r  r  r+  rM  )r"  r.  rQ  f_listlr  r  s          r$  r   IPolys.dup_zz_hensel_lift  sB    MM"1adDQ,@![[QC/00r(  c                     [        U R                  U5      U R                  5      nU VVs/ s H  u  p4U R                  U5      U4PM     snn$ s  snnf r   )r   rG  r+  rM  r  s        r$  r   IPolys.dup_zz_zassenhaus  sC    #DMM!$4dkkB5<>WTQ$//!$a(W>>>   Ac                 L    [        U R                  U5      U R                  5      $ r   )r   rG  r+  r  s     r$  r   IPolys.dup_zz_irreducible_p      #DMM!$4dkkBBr(  c                 J    [        U R                  U5      U R                  US9$ )N)irreducible)r   rG  r+  )r"  rQ  r  s      r$  r   IPolys.dup_cyclotomic_p  s    a 0$++;WWr(  c                 N    [        XR                  5      nU R                  U5      $ r   )r   r+  rM  )r"  r|  r;  s      r$  r   IPolys.dup_zz_cyclotomic_poly  s    "1kk2q!!r(  c                     [        U R                  U5      U R                  5      nUc  U$ [        [	        U R
                  U5      5      $ r   )r   rG  r+  r  r  rM  rU  s      r$  r   IPolys.dup_zz_cyclotomic_factor  s;    )$--*:DKKH>MDOOV455r(  c                 .    [        XX0R                  5      $ r   )r   r+  )r"  Ecscts       r$  r   IPolys.dmp_zz_wang_non_divisors
  s    'r;;??r(  c           
         U SS  nU VV	s/ s H  u  pUR                  U5      U	4PM     nnn	U S S n
[        [        U
R                   U5      5      n[        U R                  U5      X#XEX`R                  S-
  U R
                  5      u  pnU R                  U5      [        [        U
R                  U5      5      [        [        UR                  U5      5      4$ s  sn	nf rJ  )rG  r  r  r   rL  r+  rM  )r"  rQ  r  r
  r	  r  r*  mvrl  r  uvHHCCs                r$  r   IPolys.dmp_zz_wang_lead_coeffs  s    !"X./1adar{{1~q!a1"1XR[[!$%+DMM!,<aQ1jjYZl\`\g\gh	rq!4BMM2(>#?c"--Y[F\A]]]	 2s   Cc                     [        [        [        U R                  U5      5      X#U R                  5      n[        [        U R
                  U5      5      $ r   )r   r  r  rG  r+  rM  )r"  r;  r  r.  r"  s        r$  r   IPolys.dup_zz_diophantine  s:    #DT]]A)>$?t{{SC011r(  c           	          [        [        [        U R                  U5      5      U R                  U5      X4XPR                  S-
  U R
                  5      n[        [        U R                  U5      5      $ rJ  )r   r  r  rG  rL  r+  rM  )r"  r;  rR  r*  r;  r.  r"  s          r$  r   IPolys.dmp_zz_diophantine   sX    #DT]]A)>$?qAQSTYZ\f\fgh\hjnjujuvC011r(  c           	      :   U S S nU SS  n[        [        UR                  U5      5      n[        [        UR                  U5      5      n[        U R                  U5      X#XEU R                  S-
  U R
                  5      n[        [        U R                  U5      5      $ rJ  )r  r  rG  r   rL  r+  rM  )	r"  rQ  r  r  r*  r.  r  r  r"  s	            r$  r   !IPolys.dmp_zz_wang_hensel_lifting%  s    "1X!"XR[[!$%#bkk2&'+DMM!,<aQ4::VW<Y]YdYdeC011r(  c                     [        U R                  U5      U R                  S-
  U R                  X#S9nU Vs/ s H  oPR	                  U5      PM     sn$ s  snf )NrK  )modseed)r   rG  rL  r+  rM  )r"  rQ  r  r  r  r  s         r$  r   IPolys.dmp_zz_wang-  sF    dmmA.

1dkks^-46W#W666s   Ac                     [        U R                  U5      U R                  5      u  p#X# Vs/ s H  o@R                  U5      PM     sn4$ s  snf r   )r   rG  r+  rM  )r"  rQ  coeffr  r  s        r$  r   IPolys.dup_zz_factor_sqf1  sA    *4==+;T[[IW>W+W>??>s   A
c                     [        U R                  U5      U R                  5      u  p#X# VVs/ s H  u  pEU R                  U5      U4PM     snn4$ s  snnf r   )r   rG  r+  rM  r"  rQ  r  r  r  r  s         r$  r   IPolys.dup_zz_factor5  J    &t}}Q'7EWFWTQ$//!,a0WFGGF   Ac                     [        U R                  U5      U R                  S-
  U R                  5      u  p#X# VVs/ s H  u  pEU R	                  U5      U4PM     snn4$ s  snnf rJ  )r   rG  rL  r+  rM  r!  s         r$  r   IPolys.dmp_zz_factor8  T    &t}}Q'7At{{SWFWTQ$//!,a0WFGGF   Ac                     [        U R                  U5      U R                  5      u  p#X# VVs/ s H  u  pEU R                  U5      U4PM     snn4$ s  snnf r   )r   rG  r+  rM  r!  s         r$  r   IPolys.dup_qq_i_factor<  J    (q)94;;GWFWTQ$//!,a0WFGGFr$  c                     [        U R                  U5      U R                  S-
  U R                  5      u  p#X# VVs/ s H  u  pEU R	                  U5      U4PM     snn4$ s  snnf rJ  )r   rG  rL  r+  rM  r!  s         r$  r   IPolys.dmp_qq_i_factor?  T    (q)94::a<UWFWTQ$//!,a0WFGGFr(  c                     [        U R                  U5      U R                  5      u  p#X# VVs/ s H  u  pEU R                  U5      U4PM     snn4$ s  snnf r   )r   rG  r+  rM  r!  s         r$  r   IPolys.dup_zz_i_factorC  r+  r$  c                     [        U R                  U5      U R                  S-
  U R                  5      u  p#X# VVs/ s H  u  pEU R	                  U5      U4PM     snn4$ s  snnf rJ  )r   rG  rL  r+  rM  r!  s         r$  r   IPolys.dmp_zz_i_factorF  r.  r(  c                     [        U R                  U5      U R                  5      u  p#X# VVs/ s H  u  pEU R                  U5      U4PM     snn4$ s  snnf r   )r   rG  r+  rM  r!  s         r$  r   IPolys.dup_ext_factorJ  sJ    'a(8$++FWFWTQ$//!,a0WFGGFr$  c                     [        U R                  U5      U R                  S-
  U R                  5      u  p#X# VVs/ s H  u  pEU R	                  U5      U4PM     snn4$ s  snnf rJ  )r   rG  rL  r+  rM  r!  s         r$  r   IPolys.dmp_ext_factorM  sT    'a(8$**Q,TWFWTQ$//!,a0WFGGFr(  c                     [        U R                  U5      U R                  5      u  p#X# VVs/ s H  u  pEU R                  U5      U4PM     snn4$ s  snnf r   )r   rG  r+  rM  r!  s         r$  r   IPolys.dup_gf_factorQ  r#  r$  c                     [        U R                  U5      U R                  S-
  U R                  5      u  p#X# VVs/ s H  u  pEU R	                  U5      U4PM     snn4$ s  snnf rJ  )r   rG  rL  r+  rM  r!  s         r$  r   IPolys.dmp_gf_factorT  r'  r(  c                     [        U R                  U5      U R                  5      u  p#X# VVs/ s H  u  pEU R                  U5      U4PM     snn4$ s  snnf r   )r   rG  r+  rM  r!  s         r$  r   IPolys.dup_factor_listX  r+  r$  c                     [        U R                  U5      U R                  5      nU VVs/ s H  u  p4U R                  U5      U4PM     snn$ s  snnf r   )r   rG  r+  rM  r  s        r$  r   IPolys.dup_factor_list_include[  sC    )$--*:DKKH5<>WTQ$//!$a(W>>>r  c                     [        U R                  U5      U R                  S-
  U R                  5      u  p#X# VVs/ s H  u  pEU R	                  U5      U4PM     snn4$ s  snnf rJ  )r   rG  rL  r+  rM  r!  s         r$  r   IPolys.dmp_factor_list_  r.  r(  c                     [        U R                  U5      U R                  S-
  U R                  5      nU VVs/ s H  u  p4U R	                  U5      U4PM     snn$ s  snnf rJ  )r   rG  rL  r+  rM  r  s        r$  r   IPolys.dmp_factor_list_includeb  sM    )$--*:DJJqL$++V5<>WTQ$//!$a(W>>>   Ac                 L    [        U R                  U5      U R                  5      $ r   )r   rG  r+  r  s     r$  r   IPolys.dup_irreducible_pf  s     q!14;;??r(  c                 h    [        U R                  U5      U R                  S-
  U R                  5      $ rJ  )r   rG  rL  r+  r  s     r$  r   IPolys.dmp_irreducible_ph  s&     q!14::a<MMr(  c                     [        U R                  U5      U R                  5      n[        [	        U R
                  U5      5      $ r   )r   rG  r+  r  r  rM  )r"  rQ  seqs      r$  r   IPolys.dup_sturmk  s1    a($++6C-..r(  c                 L    [        U R                  U5      U R                  5      $ r   )r   rG  r+  r  s     r$  r   IPolys.dup_sqf_po  s    q)4;;77r(  c                 h    [        U R                  U5      U R                  S-
  U R                  5      $ rJ  )r   rG  rL  r+  r  s     r$  r   IPolys.dmp_sqf_pq  s&    q)4::a<EEr(  c                     [        U R                  U5      U R                  S-
  U R                  5      nU R	                  5       R                  U5      $ rJ  )r   rG  rL  r+  r0  rM  r{  s      r$  r   IPolys.dmp_normt  s=    T]]1%tzz!|T[[A~~**1--r(  c                     [        U R                  U5      U R                  5      u  p#nX R                  U5      U R	                  5       R                  U5      4$ r   )r   rG  r+  rM  r0  r"  rQ  rf  r;  Rs        r$  r   IPolys.dup_sqf_normx  sE    t}}Q/=a??1%t~~'7'B'B1'EFFr(  c                     [        U R                  U5      U R                  S-
  U R                  5      u  p#nX R	                  U5      U R                  5       R	                  U5      4$ rJ  )r   rG  rL  r+  rM  r0  rR  s        r$  r   IPolys.dmp_sqf_norm{  sO    t}}Q/At{{Ka??1%t~~'7'B'B1'EFFr(  c                 j    U R                  [        U R                  U5      U R                  5      5      $ r   )rM  r   rG  r+  r  s     r$  r   IPolys.dup_gf_sqf_part  %    t}}Q/?MNNr(  c                 j    U R                  [        U R                  U5      U R                  5      5      $ r   )rM  r   rG  r+  r  s     r$  r   IPolys.dmp_gf_sqf_part  rY  r(  c                 j    U R                  [        U R                  U5      U R                  5      5      $ r   )rM  r   rG  r+  r  s     r$  r   IPolys.dup_sqf_part  s%    |DMM!,<dkkJKKr(  c                     U R                  [        U R                  U5      U R                  S-
  U R                  5      5      $ rJ  )rM  r   rG  rL  r+  r  s     r$  r   IPolys.dmp_sqf_part  s/    |DMM!,<djjlDKKXYYr(  c                     [        U R                  U5      U R                  US9u  p4X4 VVs/ s H  u  pVU R                  U5      U4PM     snn4$ s  snnf Nall)r   rG  r+  rM  r"  rQ  rc  r  r  r  r  s          r$  r   IPolys.dup_gf_sqf_list  sL    (q)94;;CPWFWTQ$//!,a0WFGGF   Ac                     [        U R                  U5      U R                  S-
  U R                  US9u  p4X4 VVs/ s H  u  pVU R	                  U5      U4PM     snn4$ s  snnf NrK  rb  )r   rG  rL  r+  rM  rd  s          r$  r   IPolys.dmp_gf_sqf_list  sW    (q)94::a<Z]^WFWTQ$//!,a0WFGGF   Ac                     [        U R                  U5      U R                  US9u  p4X4 VVs/ s H  u  pVU R                  U5      U4PM     snn4$ s  snnf ra  )r   rG  r+  rM  rd  s          r$  r   IPolys.dup_sqf_list  sL    %dmmA&6MWFWTQ$//!,a0WFGGFrf  c                     [        U R                  U5      U R                  US9nU VVs/ s H  u  pEU R                  U5      U4PM     snn$ s  snnf ra  )r   rG  r+  rM  r"  rQ  rc  r  r  r  s         r$  r   IPolys.dup_sqf_list_include  sE    &t}}Q'7#N5<>WTQ$//!$a(W>>>s   Ac                     [        U R                  U5      U R                  S-
  U R                  US9u  p4X4 VVs/ s H  u  pVU R	                  U5      U4PM     snn4$ s  snnf rh  )r   rG  rL  r+  rM  rd  s          r$  r   IPolys.dmp_sqf_list  sW    %dmmA&6

1dkkWZ[WFWTQ$//!,a0WFGGFrj  c                     [        U R                  U5      U R                  S-
  U R                  US9nU VVs/ s H  u  pEU R	                  U5      U4PM     snn$ s  snnf rh  )r   rG  rL  r+  rM  rn  s         r$  r   IPolys.dmp_sqf_list_include  sP    &t}}Q'7At{{X[\5<>WTQ$//!$a(W>>>s   Ac                     [        U R                  U5      U R                  5      nU VVs/ s H  u  p4U R                  U5      U4PM     snn$ s  snnf r   )r   rG  r+  rM  r  s        r$  r   IPolys.dup_gff_list  sC    t}}Q/=5<>WTQ$//!$a(W>>>r  c                     [        U R                  U5      U R                  S-
  U R                  5      nU VVs/ s H  u  p4U R	                  U5      U4PM     snn$ s  snnf rJ  )r   rG  rL  r+  rM  r  s        r$  r   IPolys.dmp_gff_list  sM    t}}Q/At{{K5<>WTQ$//!$a(W>>>rC  c                 L    [        U R                  U5      U R                  5      $ r   )r   rG  r+  r  s     r$  r   IPolys.dup_root_upper_bound  r   r(  c                 L    [        U R                  U5      U R                  5      $ r   )r   rG  r+  r  s     r$  r   IPolys.dup_root_lower_bound  r   r(  c                 J    [        U R                  U5      X R                  US9$ )N)fast)r   rG  r+  )r"  rQ  Mr}  s       r$  r    IPolys.dup_step_refine_real_root  s    (q)91kkPTUUr(  c                 N    [        U R                  U5      X R                  X4XVUS9$ )N)epsstepsdisjointr}  mobius)r   rG  r+  )r"  rQ  r~  r  r  r  r}  r  s           r$  r   !IPolys.dup_inner_refine_real_root  s/    )$--*:A{{PSks  HN  O  	Or(  c                 N    [        U R                  U5      X#U R                  XEXgS9$ N)r  r  r  r}  )r   rG  r+  r"  rQ  rf  rl  r  r  r  r}  s           r$  r   !IPolys.dup_outer_refine_real_root  s*    )$--*:A$++SVnv  C  	Cr(  c                 N    [        U R                  U5      X#U R                  XEXgS9$ r  )r   rG  r+  r  s           r$  r   IPolys.dup_refine_real_root  s#    #DMM!$4aDKKShp||r(  c                 J    [        U R                  U5      U R                  X#S9$ )N)r  r}  )r   rG  r+  )r"  rQ  r  r}  s       r$  r   #IPolys.dup_inner_isolate_real_roots  s    +DMM!,<dkks^^r(  c           
      N    [        U R                  U5      U R                  X#XEUS9$ )N)r  infsupr}  r  )r   rG  r+  )r"  rQ  r  r  r  r}  r  s          r$  r   'IPolys.dup_inner_isolate_positive_roots  /    /a0@$++SVeh  }C  D  	Dr(  c           
      N    [        U R                  U5      U R                  X#XEUS9$ )N)r  r  r  r}  r  )r   rG  r+  )r"  rQ  r  r  r  r}  r  s          r$  r   'IPolys.dup_inner_isolate_negative_roots  r  r(  c           
      N    [        U R                  U5      U R                  X#XEUS9$ N)r  r  r  r}  blackbox)r   rG  r+  r"  rQ  r  r  r  r}  r  s          r$  r   !IPolys.dup_isolate_real_roots_sqf  s.    )$--*:DKKS_b  yA  B  	Br(  c           
      N    [        U R                  U5      U R                  X#XEUS9$ )N)r  r  r  basisr}  )r   rG  r+  )r"  rQ  r  r  r  r  r}  s          r$  r   IPolys.dup_isolate_real_roots  s$    %dmmA&6[^rvwwr(  c                 j    [        [        [        U R                  U5      5      U R                  X#XEXgS9$ )N)r  r  r  strictr  r}  )r   r  r  rG  r+  )r"  r  r  r  r  r  r  r}  s           r$  r   "IPolys.dup_isolate_real_roots_list  s6    *4DMM50I+JDKK]`or  JO  [  	[r(  c                 J    [        U R                  U5      U R                  X#S9$ )N)r  r  )r   rG  r+  )r"  rQ  r  r  s       r$  r   IPolys.dup_count_real_roots  s    #DMM!$4dkksTTr(  c                 L    [        U R                  U5      U R                  X#US9$ )N)r  r  exclude)r   rG  r+  )r"  rQ  r  r  r  s        r$  r   IPolys.dup_count_complex_roots  s!    &t}}Q'7#`ghhr(  c           	      L    [        U R                  U5      U R                  X#XES9$ )N)r  r  r  r  )r   rG  r+  )r"  rQ  r  r  r  r  s         r$  r   $IPolys.dup_isolate_complex_roots_sqf  s"    ,T]]1-=t{{PSbeyyr(  c           
      N    [        U R                  U5      U R                  X#XEUS9$ r  )r   rG  r+  r  s          r$  r    IPolys.dup_isolate_all_roots_sqf  s*    (q)94;;C^aw  A  	Ar(  c           	      L    [        U R                  U5      U R                  X#XES9$ )N)r  r  r  r}  )r   rG  r+  )r"  rQ  r  r  r  r}  s         r$  r   IPolys.dup_isolate_all_roots  s!    $T]]1%5t{{Z]iir(  c           	          SSK Jn  [        [        U R                  U" U R
                  S-
  U R                  5      5      5      $ )Nr   )dmp_fateman_poly_F_1rK  )sympy.polys.specialpolysr  tupler  rM  rL  r+  )r"  r  s     r$  fateman_poly_F_1IPolys.fateman_poly_F_1  /    AS*>tzz!|T[[*YZ[[r(  c           	          SSK Jn  [        [        U R                  U" U R
                  S-
  U R                  5      5      5      $ )Nr   )dmp_fateman_poly_F_2rK  )r  r  r  r  rM  rL  r+  )r"  r  s     r$  fateman_poly_F_2IPolys.fateman_poly_F_2  r  r(  c           	          SSK Jn  [        [        U R                  U" U R
                  S-
  U R                  5      5      5      $ )Nr   )dmp_fateman_poly_F_3rK  )r  r  r  r  rM  rL  r+  )r"  r  s     r$  fateman_poly_F_3IPolys.fateman_poly_F_3  r  r(  c           	          [        U R                  U5      R                  5        Vs/ s H1  o R                  R                  R                  X R                  5      PM3     sn5      $ s  snf r   )r   rD  rG  r+  domr[  )r"  r4  rR  s      r$  to_gf_denseIPolys.to_gf_dense  sI    499U\K]KfKfKhjKha++//11![[AKhjkkjs   8A&c                 z    U R                  [        XR                  S-
  U R                  R                  5      5      $ rJ  )r<  rL   rL  r+  r  r3  s     r$  from_gf_denseIPolys.from_gf_dense  s(    ~~k'::a<QRRr(  c                 6    [        U R                  U5      5      $ r   )r   r  r  s     r$  r   IPolys.gf_degree  s    ))!,--r(  c                 `    [        U R                  U5      U R                  R                  5      $ r   )r   r  r+  r  r  s     r$  r   IPolys.gf_LC  "    T%%a($++//::r(  c                 `    [        U R                  U5      U R                  R                  5      $ r   )r   r  r+  r  r  s     r$  r   IPolys.gf_TC  r  r(  c                 T    U R                  [        U R                  U5      5      5      $ r   )r  r   r  r  s     r$  r   IPolys.gf_strip  s#    !!(4+;+;A+>"?@@r(  c                 ~    U R                  [        U R                  U5      U R                  R                  5      5      $ r   )r  r   r  r+  r  r  s     r$  gf_truncIPolys.gf_trunc  s-    !!(4+;+;A+>"PQQr(  c                     U R                  [        U R                  U5      U R                  R                  U R                  R
                  5      5      $ r   )r  r   r  r+  r  r  r  s     r$  	gf_normalIPolys.gf_normal  <    !!(4+;+;A+>QUQ\Q\Q`Q`"abbr(  c                     U R                  [        XR                  R                  U R                  R                  5      5      $ r   )r  r   r+  r  r  r  s     r$  r   IPolys.gf_from_dict  s*    !!,q++//4;;??"STTr(  c                 ^    [        U R                  U5      U R                  R                  US9$ N)	symmetric)r   r  r+  r  r"  rQ  r  s      r$  r   IPolys.gf_to_dict  s$    $**1-t{{)TTr(  c                 ^    U R                  [        XR                  R                  5      5      $ r   )r  r   r+  r  r  s     r$  r   IPolys.gf_from_int_poly  s!    !!"21kkoo"FGGr(  c                 ^    [        U R                  U5      U R                  R                  US9$ r  )r   r  r+  r  r  s      r$  r   IPolys.gf_to_int_poly  s$    d..q14;;??iXXr(  c                     U R                  [        U R                  U5      U R                  R                  U R                  R
                  5      5      $ r   )r  r   r  r+  r  r  r  s     r$  r   IPolys.gf_neg  7    !!&)9)9!)<dkkoot{{"_``r(  c                     U R                  [        U R                  U5      X R                  R                  U R                  R
                  5      5      $ r   )r  r   r  r+  r  r  r  s      r$  r   IPolys.gf_add_ground  <    !!-0@0@0CQY]YdYdYhYh"ijjr(  c                     U R                  [        U R                  U5      X R                  R                  U R                  R
                  5      5      $ r   )r  r   r  r+  r  r  r  s      r$  r   IPolys.gf_sub_ground  r  r(  c                     U R                  [        U R                  U5      X R                  R                  U R                  R
                  5      5      $ r   )r  r   r  r+  r  r  r  s      r$  r   IPolys.gf_mul_ground  r  r(  c                     U R                  [        U R                  U5      X R                  R                  U R                  R
                  5      5      $ r   )r  r   r  r+  r  r  r  s      r$  r   IPolys.gf_quo_ground  r  r(  c                     U R                  [        U R                  U5      U R                  U5      U R                  R                  U R                  R
                  5      5      $ r   )r  r   r  r+  r  r  r  s      r$  r   IPolys.gf_add  N    !!&)9)9!)<d>N>Nq>QSWS^S^SbSbdhdododsds"tuur(  c                     U R                  [        U R                  U5      U R                  U5      U R                  R                  U R                  R
                  5      5      $ r   )r  r   r  r+  r  r  r  s      r$  r   IPolys.gf_sub  r  r(  c                     U R                  [        U R                  U5      U R                  U5      U R                  R                  U R                  R
                  5      5      $ r   )r  r   r  r+  r  r  r  s      r$  r   IPolys.gf_mul   r  r(  c                     U R                  [        U R                  U5      U R                  R                  U R                  R
                  5      5      $ r   )r  r   r  r+  r  r  r  s     r$  r   IPolys.gf_sqr  r  r(  c           	          U R                  [        U R                  U5      U R                  U5      U R                  U5      U R                  R                  U R                  R
                  5      5      $ r   )r  r   r  r+  r  r  r  s       r$  r   IPolys.gf_add_mul  {    !!*T-=-=a-@$BRBRSTBUW[WgWghiWjlplwlwl{l{  ~B  ~I  ~I  ~M  ~M  #N  O  	Or(  c           	          U R                  [        U R                  U5      U R                  U5      U R                  U5      U R                  R                  U R                  R
                  5      5      $ r   )r  r   r  r+  r  r  r  s       r$  r   IPolys.gf_sub_mul  r  r(  c           
          U R                  [        [        [        U R                  U5      5      U R
                  R                  U R
                  R                  5      5      $ r   )r  r   r  r  r  r+  r  r  )r"  r;  s     r$  r   IPolys.gf_expand
  sC    !!)DT5E5Eq1I,JDKKOO]a]h]h]l]l"mnnr(  c                     [        U R                  U5      U R                  U5      U R                  R                  U R                  R                  5      u  p4U R                  U5      U R                  U5      4$ r   )r   r  r+  r  r  r  r  s        r$  r   IPolys.gf_div  s`    d&&q)4+;+;A+>QUQ\Q\Q`Q`a!!!$d&8&8&;;;r(  c                     U R                  [        U R                  U5      U R                  U5      U R                  R                  U R                  R
                  5      5      $ r   )r  r   r  r+  r  r  r  s      r$  r   IPolys.gf_rem  r  r(  c                     U R                  [        U R                  U5      U R                  U5      U R                  R                  U R                  R
                  5      5      $ r   )r  r   r  r+  r  r  r  s      r$  r   IPolys.gf_quo  r  r(  c                     U R                  [        U R                  U5      U R                  U5      U R                  R                  U R                  R
                  5      5      $ r   )r  r   r  r+  r  r  r  s      r$  r   IPolys.gf_exquo  O    !!(4+;+;A+>@P@PQR@SUYU`U`UdUdfjfqfqfufu"vwwr(  c                 ~    U R                  [        U R                  U5      X R                  R                  5      5      $ r   )r  r   r  r+  r  r{  s      r$  r   IPolys.gf_lshift  -    !!)D,<,<Q,?KKOO"TUUr(  c                 ~    U R                  [        U R                  U5      X R                  R                  5      5      $ r   )r  r   r  r+  r  r{  s      r$  r   IPolys.gf_rshift  r  r(  c                     U R                  [        U R                  U5      X R                  R                  U R                  R
                  5      5      $ r   )r  r   r  r+  r  r  r{  s      r$  r   IPolys.gf_pow  s<    !!&)9)9!)<aRVR]R]RaRa"bccr(  c           	          U R                  [        U R                  U5      X R                  U5      U R                  R                  U R                  R
                  5      5      $ r   )r  r   r  r+  r  r  )r"  rQ  r|  r  s       r$  r   IPolys.gf_pow_mod  sO    !!*T-=-=a-@!EUEUVWEXZ^ZeZeZiZikokvkvkzkz"{||r(  c                    [        U R                  U5      U R                  U5      U R                  R                  U R                  R                  5      u  p4nU R                  U5      U R                  U5      U R                  U5      4$ r   )r  r  r+  r  r  r  )r"  rQ  r  r  cffcfgs         r$  r  IPolys.gf_cofactors!  sp    "4#3#3A#68H8H8KT[[__^b^i^i^m^mn!!!$d&8&8&=t?Q?QRU?VVVr(  c                     U R                  [        U R                  U5      U R                  U5      U R                  R                  U R                  R
                  5      5      $ r   )r  r   r  r+  r  r  r  s      r$  r   IPolys.gf_gcd$  r  r(  c                     U R                  [        U R                  U5      U R                  U5      U R                  R                  U R                  R
                  5      5      $ r   )r  r   r  r+  r  r  r  s      r$  r   IPolys.gf_lcm&  r  r(  c                     U R                  [        U R                  U5      U R                  U5      U R                  R                  U R                  R
                  5      5      $ r   )r  r  r  r+  r  r  r  s      r$  r  IPolys.gf_gcdex(  r   r(  c                     U R                  [        U R                  U5      U R                  R                  U R                  R
                  5      5      $ r   )r  r  r  r+  r  r  r  s     r$  r  IPolys.gf_monic+  r  r(  c                     U R                  [        U R                  U5      U R                  R                  U R                  R
                  5      5      $ r   )r  r  r  r+  r  r  r  s     r$  r  IPolys.gf_diff-  s<    !!'$*:*:1*=t{{PTP[P[P_P_"`aar(  c                     [        U R                  U5      X R                  R                  U R                  R                  5      $ r   )r  r  r+  r  r  r  s      r$  r  IPolys.gf_eval0  s,    t''*A{{PPr(  c                     [        U R                  U5      X R                  R                  U R                  R                  5      $ r   )r  r  r+  r  r  )r"  rQ  r*  s      r$  r  IPolys.gf_multi_eval2  s,    T--a0![[__dkkooVVr(  c                     U R                  [        U R                  U5      U R                  U5      U R                  R                  U R                  R
                  5      5      $ r   )r  r  r  r+  r  r  r  s      r$  r  IPolys.gf_compose5  sO    !!*T-=-=a-@$BRBRSTBUW[WbWbWfWfhlhshshwhw"xyyr(  c           	          U R                  [        U R                  U5      U R                  U5      U R                  U5      U R                  R                  U R                  R
                  5      5      $ r   )r  r  r  r+  r  r  )r"  r  r  rQ  s       r$  r  IPolys.gf_compose_mod7  s{    !!.1A1A!1DdFVFVWXFY[_[k[klm[nptp{p{pp  BF  BM  BM  BQ  BQ  #R  S  	Sr(  c           	      >   U R                  U5      nU R                  U5      nU R                  U5      nU R                  U5      n[        XX4XPR                  R                  U R                  R                  5      u  pgU R                  U5      U R                  U5      4$ r   )r  r	  r+  r  r  r  )r"  r  brR  r|  rQ  UVs           r$  r	  IPolys.gf_trace_map:  s    QQQQA!;;??DKKOOL!!!$d&8&8&;;;r(  c                     U R                  [        XR                  R                  U R                  R                  5      5      $ r   )r  r
  r+  r  r  r"  r|  s     r$  r
  IPolys.gf_randomB  s*    !!)A{{"PQQr(  c                     U R                  [        XR                  R                  U R                  R                  5      5      $ r   )r  r  r+  r  r  r&  s     r$  r  IPolys.gf_irreducibleD  s*    !!.KKOOT[[__"UVVr(  c                     [        U R                  U5      U R                  R                  U R                  R                  5      $ r   )r  r  r+  r  r  r  s     r$  r  IPolys.gf_irred_p_ben_orG  s,     !1!1!!4dkkoot{{WWr(  c                     [        U R                  U5      U R                  R                  U R                  R                  5      $ r   )r  r  r+  r  r  r  s     r$  r  IPolys.gf_irred_p_rabinI  ,     0 0 3T[[__dkkooVVr(  c                     [        U R                  U5      U R                  R                  U R                  R                  5      $ r   )r  r  r+  r  r  r  s     r$  r  IPolys.gf_irreducible_pK  r.  r(  c                     [        U R                  U5      U R                  R                  U R                  R                  5      $ r   )r  r  r+  r  r  r  s     r$  r  IPolys.gf_sqf_pM  s,    ((+T[[__dkkooNNr(  c                     U R                  [        U R                  U5      U R                  R                  U R                  R
                  5      5      $ r   )r  r  r  r+  r  r  r  s     r$  r  IPolys.gf_sqf_partP  s<    !!+d.>.>q.A4;;??TXT_T_TcTc"deer(  c                     [        U R                  U5      U R                  R                  U R                  R                  5      u  p4X4 VVs/ s H  u  pVU R                  U5      U4PM     snn4$ s  snnf r   )r  r  r+  r  r  r  rd  s          r$  gf_sqf_listIPolys.gf_sqf_listR  s\    $T%5%5a%8$++//4;;??[wHwtq++A.2wHHHH   A0c                     [        U R                  U5      U R                  R                  U R                  R                  5      $ r   )r  r  r+  r  r  r  s     r$  r  IPolys.gf_QmatrixV  s,    $**1-t{{PPr(  c                     [        U R                  U5      U R                  R                  U R                  R                  5      nU Vs/ s H  o0R                  U5      PM     sn$ s  snf r   )r  r  r+  r  r  r  r"  rQ  r  r  s       r$  r  IPolys.gf_berlekampX  L    t//2DKKOOT[[__U0791##A&999   	A&c                     [        U R                  U5      U R                  R                  U R                  R                  5      nU VVs/ s H  u  p4U R                  U5      U4PM     snn$ s  snnf r   )r  r  r+  r  r  r  r  s        r$  r  IPolys.gf_ddf_zassenhaus\  sU    #D$4$4Q$7$++//Z8?A$$$Q'+AAA   
A-c                     [        U R                  U5      U R                  R                  U R                  R                  5      nU Vs/ s H  o@R                  U5      PM     sn$ s  snf r   )r  r  r+  r  r  r  r"  rQ  r|  r  r  s        r$  r  IPolys.gf_edf_zassenhaus_  sL    #D$4$4Q$7$++//Z0791##A&999r?  c                     [        U R                  U5      U R                  R                  U R                  R                  5      nU VVs/ s H  u  p4U R                  U5      U4PM     snn$ s  snnf r   )r  r  r+  r  r  r  r  s        r$  r  IPolys.gf_ddf_shoupc  sU    t//2DKKOOT[[__U8?A$$$Q'+AAArB  c                     [        U R                  U5      U R                  R                  U R                  R                  5      nU Vs/ s H  o@R                  U5      PM     sn$ s  snf r   )r  r  r+  r  r  r  rD  s        r$  r  IPolys.gf_edf_shoupf  r>  r?  c                     [        U R                  U5      U R                  R                  U R                  R                  5      nU Vs/ s H  o0R                  U5      PM     sn$ s  snf r   )r  r  r+  r  r  r  r<  s       r$  r  IPolys.gf_zassenhausj  sL     0 0 3T[[__dkkooV0791##A&999r?  c                     [        U R                  U5      U R                  R                  U R                  R                  5      nU Vs/ s H  o0R                  U5      PM     sn$ s  snf r   )r  r  r+  r  r  r  r<  s       r$  r  IPolys.gf_shoupm  sL    4++A.Q0791##A&999r?  c                     [        U R                  U5      U R                  R                  U R                  R                  US9u  p4X4 Vs/ s H  oPR                  U5      PM     sn4$ s  snf )N)method)r  r  r+  r  r  r  )r"  rQ  rO  r  r  r  s         r$  r  IPolys.gf_factor_sqfq  sV    &t'7'7':DKKOOT[[__eklw@w!**1-w@@@@s   
A(c                     [        U R                  U5      U R                  R                  U R                  R                  5      u  p#X# VVs/ s H  u  pEU R                  U5      U4PM     snn4$ s  snnf r   )r  r  r+  r  r  r  r!  s         r$  r  IPolys.gf_factort  s\    "4#3#3A#6YwHwtq++A.2wHHHHr8  r!  )NNN)F)T)NN)NNNFF)NNNF)NF)NNNFFFr   (2  __name__
__module____qualname____firstlineno__r*  rL  r+  r,  gensr%  r-  r0  r5  r8  r<  rD  rG  rM  r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rM   rN   rP   rQ   rR   rO   rS   rT   rU   rW   rV   rX   rY   rZ   r[   r\   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r   r|   r   r}   r   r   r   r   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r]   r_   r   r   r^   r`   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r   r   r   r   r  r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r6  r  r  r  r  r  r  r  r  r  r  __static_attributes__r!  r(  r$  r  r     s   GEFED,-OR~R~R~Q_Q_Q_Q_SaMMGUGUYgYgo}o}YgGUJX8ZZ\8hhj88888YY[8ggi;I:HBPYg55JJ,:@P^KY_d:+//LmaI^;;8JLLZq]k63B''M88LL\j////77//6K(((N?LLLLLLLLLL""""""""+1-<<??DR`1
?CX"6@^2
2
27@HHHHHHHHHHH?H?@N/8F.GGOOLZHHH?H???CCVOC}_DDBx[UizAj\\\lS.;;ARcUUHYakkkkvvvaOOo<vvxVVd}WvvxcbQWzS<RWXWWOfIQ:B:B:::AI Ir(  r  N($  __doc__sympy.polys.densearithr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   sympy.polys.densebasicrC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   sympy.polys.densetoolsrM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   sympy.polys.euclidtoolsrq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   sympy.polys.factortoolsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   sympy.polys.rootisolationr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   sympy.polys.sqfreetoolsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   sympy.polys.galoistoolsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  sympy.utilitiesr  r  r!  r(  r$  <module>rc     s-   > 0 / / / / / 1 1 1 1 1 1 1 1 3 3 - - * * * * * * * * . . . . * * * * * * + + + - + + + - - - - - * * * , * * * , / / . . 6 6 - - ) ) ) ) 0 0 - - 0 . 0 0 3 + + . + + . 0 3 , , 3 , 3 . 5 0 7 . 5 0 - , , , 0 . . 0 + 6 3 3 - 2 2 - - . . 5 5 5 5 ; 5 5 1 ; 5 5 < < < 1 4 4 2 2 2 2 2 2 2 2 1 1 + + . . + . . + / 1 . . 6 6 9 9 6 6 5 8 4 : < 5 1 < ; 6 6 > / 1 3 3 3 3 2 2 1 1 3 ; 3 ; 5 5 / : : ? @ @ : B F F @ < A : = C ? ;D D D D D	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 # "NI NI NIr(  