
    \h                    .   S r SSKJr  SSKJr  \(       a  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J0r0  SS+KJ1r1  SS,KJ2r2  SS-KJ3r3  SS.KJ4r4  SS/KJ5r5  SS0KJ6r6  SS1KJ7r7  SS2KJ8r8  SS3KJ9r9  SS4KJ:r:  SS5KJ;r;  SS6KJ<r<  SS7KJ=r=  SS8KJ>r>  SS9KJ?r?  SS:KJ@r@  SS;KJArA  SS<KJBrB  SS=KJCrC  SS>KJDrD  SS?KJErE  SS@KJFrF  SSAKJGrG  SSBKJHrH  SSCKJIrI  SSDKJJrJ  SSEKJKrK  SSFKJLrL  SSGKJMrM  SSHKNJOrO  SSIKNJPrP  SSJKNJQrQ  SSKKNJRrR  SSLKNJSrS  SSMKNJTrT  SSNKNJUrU  SSOKNJVrV  SSPKNJWrW  SSQKNJXrX  SSRKYJZrZ  SSSKYJ[r[  SSTKYJ\r\  SSUKYJ]r]  SSVKYJ^r^  SSWKYJ_r_  SSXKYJ`r`  SSYKYJara  SSZKYJbrb  SS[KYJcrc  SS\KYJdrd  SS]KYJere  SS^KYJfrf  SS_KYJgrg  SS`KYJhrh  SSaKYJiri  SSbKYJjrj  SScKYJkrk  SSdKYJlrl  SSeKYJmrm  SSfKYJnrn  SSgKYJoro  SShKYJprp  SSiKYJqrq  SSjKYJrrr  SSkKYJsrs  SSlKYJtrt  SSmKYJuru  SSnKYJvrv  SSoKYJwrw  SSpKYJxrx  SSqKYJyry  SSrKYJzrz  SSsKYJ{r{  SStKYJ|r|  SSuKYJ}r}  SSvK~Jr  SSwK~Jr  SSxK~Jr  SSyK~Jr  SSzK~Jr  SS{K~Jr  SS|K~Jr  SS}K~Jr  SS~K~Jr  SSK~Jr  SSK~Jr  SSK~Jr  SSK~Jr  SSK~Jr  SSK~Jr  SSK~Jr  SSK~Jr  SSK~Jr  SSK~Jr  SSK~Jr  SSK~Jr  SSK~Jr  SSK~Jr  SSK~Jr  SSK~Jr  SSK~Jr  SSK~Jr  SSK~Jr  SSK~Jr  SSK~Jr  SSK~Jr  SSK~Jr  SSK~Jr  SSK~Jr  SSK~Jr  SSK~Jr  SSK~Jr  SSK~Jr  SSK~Jr  SSK~Jr  SSK~Jr  SSK~Jr  SSK~Jr  SSK~Jr  SSK~Jr  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SKJrJrJrJrJrJrJrJrJrJrJrG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 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.     )annotations)TYPE_CHECKING)Expr)Domain)MonomialOrderPolyElement)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\S'   S\S'   S\S'   S\S	'   S
\S'   S rGS6S 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'S0 r(S1 r)S2 r*S3 r+S4 r,S5 r-S6 r.S7 r/S8 r0S9 r1S: r2S; r3S< r4S= r5S> r6S? r7S@ r8SA r9SB r:SC r;SD r<SE r=SF r>SG r?SH r@SI rASJ rBSK rCSL rDSM rESN rFSO rGSP rHSQ rISR rJSS rKST rLSU rMSV rNSW rOSX rPSY rQSZ rRS[ rSS\ rTS] rUS^ rVS_ rWS` rXSa rYSb rZSc r[Sd r\Se r]Sf r^Sg r_Sh r`Si raSj rbSk rcSl rdSm reSn rfSo rgSp rhSq riSr rjSs rkSt rlSu rmSv rnSw roSx rpSy rqSz rrS{ rsGS7S| jrtGS7S} jruS~ rvS rwS rxS ryS rzS r{S r|S r}S r~S rS 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S8S jrGS8S jrS rS rS rS rS rS rS rS rGS7S jrS rS rS rS rS rS rS rGS9S 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S7S jrGS7S jrGS7S jrGS7S jrGS7S jrGS7S jrS rS rS rS rGS7S jrGS:S jrGS;S jrGS;S jrGS<S jrGS:S jrGS:S jrGS:S jrGS:S jrGS=S jrGS9S jrGS6S jrGS;S jrGS:S jrGS;S jrS rS rS rS rS rS rS rS rS rS rS rGS  rGS8GS jrGS rGS8GS jrGS rGS rGS rGS rG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r!GS7G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S0 Gr(GS1 Gr)GS2 Gr*GS>GS3 jGr+GS4 Gr,GS5Gr-g(?  IPolys   ztuple[PolyElement, ...]gensztuple[Expr, ...]symbolsintngensr   domainr   orderc                    g N )selfgens     Q/var/www/auris/envauris/lib/python3.13/site-packages/sympy/polys/compatibility.pydropIPolys.drop           Nc                    g r-  r.  )r/  r'  r*  r+  s       r1  cloneIPolys.clone   r4  r5  c                    g r-  r.  )r/  s    r1  	to_groundIPolys.to_ground   r4  r5  c                    g r-  r.  r/  elements     r1  
ground_newIPolys.ground_new  r4  r5  c                    g r-  r.  r=  s     r1  
domain_newIPolys.domain_new  r4  r5  c                    g r-  r.  )r/  ds     r1  	from_dictIPolys.from_dict  r4  r5  c                    SSK Jn  [        X5      (       a  UR                  U :X  a  U$ [	        S5      eU R                  U5      $ )Nr   r   zdomain conversions)sympy.polys.ringsr	   
isinstanceringNotImplementedErrorr?  )r/  r>  r	   s      r1  wrapIPolys.wrap  s<    1g++||t#)*>????7++r5  c                @    U R                  U5      R                  5       $ r-  )rM  to_denser=  s     r1  rP  IPolys.to_dense  s    yy!**,,r5  c                f    U R                  [        XR                  S-
  U R                  5      5      $ N   )rF  rS   r)  r*  r=  s     r1  
from_denseIPolys.from_dense  s$    ~~k'::a<MNNr5  c                l    U R                  [        U R                  U5      X#U R                  5      5      $ r-  )rU  r
   rP  r*  r/  fcis       r1  r
   IPolys.dup_add_term  '    |DMM!,<aDKKPQQr5  c           	         U R                  [        U R                  U5      U R                  U5      R	                  S5      R                  5       X0R
                  S-
  U R                  5      5      $ Nr   rT  )rU  r   rP  rM  r2  r)  r*  rX  s       r1  r   IPolys.dmp_add_term  V    |DMM!,<diil>O>OPQ>R>[>[>]_`blblmnbnptp{p{|}}r5  c                l    U R                  [        U R                  U5      X#U R                  5      5      $ r-  )rU  r   rP  r*  rX  s       r1  r   IPolys.dup_sub_term  r]  r5  c           	         U R                  [        U R                  U5      U R                  U5      R	                  S5      R                  5       X0R
                  S-
  U R                  5      5      $ r_  )rU  r   rP  rM  r2  r)  r*  rX  s       r1  r   IPolys.dmp_sub_term!  ra  r5  c                l    U R                  [        U R                  U5      X#U R                  5      5      $ r-  )rU  r   rP  r*  rX  s       r1  r   IPolys.dup_mul_term#  r]  r5  c           	         U R                  [        U R                  U5      U R                  U5      R	                  S5      R                  5       X0R
                  S-
  U R                  5      5      $ r_  )rU  r   rP  rM  r2  r)  r*  rX  s       r1  r   IPolys.dmp_mul_term%  ra  r5  c                j    U R                  [        U R                  U5      X R                  5      5      $ r-  )rU  r   rP  r*  r/  rY  rZ  s      r1  r   IPolys.dup_add_ground(  %    ~dmmA.>;;OPPr5  c                    U R                  [        U R                  U5      X R                  S-
  U R                  5      5      $ rS  )rU  r   rP  r)  r*  rk  s      r1  r   IPolys.dmp_add_ground*  2    ~dmmA.>::a<QUQ\Q\]^^r5  c                j    U R                  [        U R                  U5      X R                  5      5      $ r-  )rU  r   rP  r*  rk  s      r1  r   IPolys.dup_sub_ground,  rm  r5  c                    U R                  [        U R                  U5      X R                  S-
  U R                  5      5      $ rS  )rU  r   rP  r)  r*  rk  s      r1  r   IPolys.dmp_sub_ground.  rp  r5  c                j    U R                  [        U R                  U5      X R                  5      5      $ r-  )rU  r   rP  r*  rk  s      r1  r   IPolys.dup_mul_ground0  rm  r5  c                    U R                  [        U R                  U5      X R                  S-
  U R                  5      5      $ rS  )rU  r   rP  r)  r*  rk  s      r1  r   IPolys.dmp_mul_ground2  rp  r5  c                j    U R                  [        U R                  U5      X R                  5      5      $ r-  )rU  r   rP  r*  rk  s      r1  r   IPolys.dup_quo_ground4  rm  r5  c                    U R                  [        U R                  U5      X R                  S-
  U R                  5      5      $ rS  )rU  r   rP  r)  r*  rk  s      r1  r   IPolys.dmp_quo_ground6  rp  r5  c                j    U R                  [        U R                  U5      X R                  5      5      $ r-  )rU  r   rP  r*  rk  s      r1  r   IPolys.dup_exquo_ground8  s&    /a0@![[QRRr5  c                    U R                  [        U R                  U5      X R                  S-
  U R                  5      5      $ rS  )rU  r   rP  r)  r*  rk  s      r1  r   IPolys.dmp_exquo_ground:  4    /a0@!ZZPQ\SWS^S^_``r5  c                j    U R                  [        U R                  U5      X R                  5      5      $ r-  )rU  r   rP  r*  r/  rY  ns      r1  r   IPolys.dup_lshift=  %    z$--*:A{{KLLr5  c                j    U R                  [        U R                  U5      X R                  5      5      $ r-  )rU  r   rP  r*  r  s      r1  r   IPolys.dup_rshift?  r  r5  c                j    U R                  [        U R                  U5      U R                  5      5      $ r-  )rU  r   rP  r*  r/  rY  s     r1  r   IPolys.dup_absB  %    wt}}Q'7EFFr5  c                    U R                  [        U R                  U5      U R                  S-
  U R                  5      5      $ rS  )rU  r   rP  r)  r*  r  s     r1  r   IPolys.dmp_absD  /    wt}}Q'7At{{STTr5  c                j    U R                  [        U R                  U5      U R                  5      5      $ r-  )rU  r   rP  r*  r  s     r1  r   IPolys.dup_negG  r  r5  c                    U R                  [        U R                  U5      U R                  S-
  U R                  5      5      $ rS  )rU  r   rP  r)  r*  r  s     r1  r   IPolys.dmp_negI  r  r5  c                    U R                  [        U R                  U5      U R                  U5      U R                  5      5      $ r-  )rU  r    rP  r*  r/  rY  gs      r1  r    IPolys.dup_addL  0    wt}}Q'7q9I4;;WXXr5  c                    U R                  [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      5      $ rS  )rU  r!   rP  r)  r*  r  s      r1  r!   IPolys.dmp_addN  >    wt}}Q'7q9I4::VW<Y]YdYdeffr5  c                    U R                  [        U R                  U5      U R                  U5      U R                  5      5      $ r-  )rU  r"   rP  r*  r  s      r1  r"   IPolys.dup_subQ  r  r5  c                    U R                  [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      5      $ rS  )rU  r#   rP  r)  r*  r  s      r1  r#   IPolys.dmp_subS  r  r5  c           	         U R                  [        U R                  U5      U R                  U5      U R                  U5      U R                  5      5      $ r-  )rU  r$   rP  r*  r/  rY  r  hs       r1  r$   IPolys.dup_add_mulV  ?    {4==+;T]]1=Mt}}]^O_aealalmnnr5  c           	         U R                  [        U R                  U5      U R                  U5      U R                  U5      U R                  S-
  U R                  5      5      $ rS  )rU  r%   rP  r)  r*  r  s       r1  r%   IPolys.dmp_add_mulX  N    {4==+;T]]1=Mt}}]^O_aeakaklmamosozoz{||r5  c           	         U R                  [        U R                  U5      U R                  U5      U R                  U5      U R                  5      5      $ r-  )rU  r&   rP  r*  r  s       r1  r&   IPolys.dup_sub_mulZ  r  r5  c           	         U R                  [        U R                  U5      U R                  U5      U R                  U5      U R                  S-
  U R                  5      5      $ rS  )rU  r'   rP  r)  r*  r  s       r1  r'   IPolys.dmp_sub_mul\  r  r5  c                    U R                  [        U R                  U5      U R                  U5      U R                  5      5      $ r-  )rU  r(   rP  r*  r  s      r1  r(   IPolys.dup_mul_  r  r5  c                    U R                  [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      5      $ rS  )rU  r)   rP  r)  r*  r  s      r1  r)   IPolys.dmp_mula  r  r5  c                j    U R                  [        U R                  U5      U R                  5      5      $ r-  )rU  r*   rP  r*  r  s     r1  r*   IPolys.dup_sqrd  r  r5  c                    U R                  [        U R                  U5      U R                  S-
  U R                  5      5      $ rS  )rU  r+   rP  r)  r*  r  s     r1  r+   IPolys.dmp_sqrf  r  r5  c                j    U R                  [        U R                  U5      X R                  5      5      $ r-  )rU  r,   rP  r*  r  s      r1  r,   IPolys.dup_powh  s%    wt}}Q'7KKHIIr5  c                    U R                  [        U R                  U5      X R                  S-
  U R                  5      5      $ rS  )rU  r-   rP  r)  r*  r  s      r1  r-   IPolys.dmp_powj  s/    wt}}Q'7JJqL$++VWWr5  c                    [        U R                  U5      U R                  U5      U R                  5      u  p4U R                  U5      U R                  U5      4$ r-  )r.   rP  r*  rU  r/  rY  r  qrs        r1  r.   IPolys.dup_pdivm  sE    a($--*:DKKH"DOOA$677r5  c                    U R                  [        U R                  U5      U R                  U5      U R                  5      5      $ r-  )rU  r/   rP  r*  r  s      r1  r/   IPolys.dup_premp  0    xa(8$--:JDKKXYYr5  c                    U R                  [        U R                  U5      U R                  U5      U R                  5      5      $ r-  )rU  r0   rP  r*  r  s      r1  r0   IPolys.dup_pquor  r  r5  c                    U R                  [        U R                  U5      U R                  U5      U R                  5      5      $ r-  )rU  r1   rP  r*  r  s      r1  r1   IPolys.dup_pexquot  0    z$--*:DMM!<LdkkZ[[r5  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$ rS  )r2   rP  r)  r*  rU  r  s        r1  r2   IPolys.dmp_pdivw  sO    a($--*:DJJqL$++V"DOOA$677r5  c                    U R                  [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      5      $ rS  )rU  r3   rP  r)  r*  r  s      r1  r3   IPolys.dmp_premz  >    xa(8$--:JDJJWXLZ^ZeZefggr5  c                    U R                  [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      5      $ rS  )rU  r4   rP  r)  r*  r  s      r1  r4   IPolys.dmp_pquo|  r  r5  c                    U R                  [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      5      $ rS  )rU  r5   rP  r)  r*  r  s      r1  r5   IPolys.dmp_pexquo~  >    z$--*:DMM!<LdjjYZl\`\g\ghiir5  c                    [        U R                  U5      U R                  U5      U R                  5      u  p4U R                  U5      U R                  U5      4$ r-  )r6   rP  r*  rU  r  s        r1  r6   IPolys.dup_rr_div  E    $--*DMM!,<dkkJ"DOOA$677r5  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$ rS  )r7   rP  r)  r*  rU  r  s        r1  r7   IPolys.dmp_rr_div  O    $--*DMM!,<djjlDKKX"DOOA$677r5  c                    [        U R                  U5      U R                  U5      U R                  5      u  p4U R                  U5      U R                  U5      4$ r-  )r8   rP  r*  rU  r  s        r1  r8   IPolys.dup_ff_div  r  r5  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$ rS  )r9   rP  r)  r*  rU  r  s        r1  r9   IPolys.dmp_ff_div  r  r5  c                    [        U R                  U5      U R                  U5      U R                  5      u  p4U R                  U5      U R                  U5      4$ r-  )r:   rP  r*  rU  r  s        r1  r:   IPolys.dup_div  sE    t}}Q'q)94;;G"DOOA$677r5  c                    U R                  [        U R                  U5      U R                  U5      U R                  5      5      $ r-  )rU  r;   rP  r*  r  s      r1  r;   IPolys.dup_rem  r  r5  c                    U R                  [        U R                  U5      U R                  U5      U R                  5      5      $ r-  )rU  r<   rP  r*  r  s      r1  r<   IPolys.dup_quo  r  r5  c                    U R                  [        U R                  U5      U R                  U5      U R                  5      5      $ r-  )rU  r=   rP  r*  r  s      r1  r=   IPolys.dup_exquo  s0    yq)94==;KT[[YZZr5  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$ rS  )r>   rP  r)  r*  rU  r  s        r1  r>   IPolys.dmp_div  sO    t}}Q'q)94::a<U"DOOA$677r5  c                    U R                  [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      5      $ rS  )rU  r?   rP  r)  r*  r  s      r1  r?   IPolys.dmp_rem  r  r5  c                    U R                  [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      5      $ rS  )rU  r@   rP  r)  r*  r  s      r1  r@   IPolys.dmp_quo  r  r5  c                    U R                  [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      5      $ rS  )rU  rA   rP  r)  r*  r  s      r1  rA   IPolys.dmp_exquo  s>    yq)94==;KTZZXY\[_[f[fghhr5  c                L    [        U R                  U5      U R                  5      $ r-  )rB   rP  r*  r  s     r1  rB   IPolys.dup_max_norm  s    DMM!,dkk::r5  c                h    [        U R                  U5      U R                  S-
  U R                  5      $ rS  )rC   rP  r)  r*  r  s     r1  rC   IPolys.dmp_max_norm  s&    DMM!,djjlDKKHHr5  c                L    [        U R                  U5      U R                  5      $ r-  )rD   rP  r*  r  s     r1  rD   IPolys.dup_l1_norm  s    4==+T[[99r5  c                h    [        U R                  U5      U R                  S-
  U R                  5      $ rS  )rE   rP  r)  r*  r  s     r1  rE   IPolys.dmp_l1_norm  s&    4==+TZZ\4;;GGr5  c                L    [        U R                  U5      U R                  5      $ r-  )rF   rP  r*  r  s     r1  rF   IPolys.dup_l2_norm_squared      "4==#3T[[AAr5  c                h    [        U R                  U5      U R                  S-
  U R                  5      $ rS  )rG   rP  r)  r*  r  s     r1  rG   IPolys.dmp_l2_norm_squared  s&    "4==#3TZZ\4;;OOr5  c           
         U R                  [        [        [        U R                  U5      5      U R
                  5      5      $ r-  )rU  rH   listmaprP  r*  r/  polyss     r1  rH   IPolys.dup_expand  s,    z$s4==%/H*I4;;WXXr5  c           
         U R                  [        [        [        U R                  U5      5      U R
                  S-
  U R                  5      5      $ rS  )rU  rI   r  r  rP  r)  r*  r  s     r1  rI   IPolys.dmp_expand  s:    z$s4==%/H*I4::VW<Y]YdYdeffr5  c                L    [        U R                  U5      U R                  5      $ r-  )rJ   rP  r*  r  s     r1  rJ   IPolys.dup_LC      dmmA&44r5  c                    [        U R                  U5      U R                  5      n[        U[        5      (       a  U SS  R                  U5      $ U$ rS  )rK   rP  r*  rJ  r  rU  )r/  rY  LCs      r1  rK   IPolys.dmp_LC  D    DMM!$dkk2b$8&&r**Ir5  c                L    [        U R                  U5      U R                  5      $ r-  )rL   rP  r*  r  s     r1  rL   IPolys.dup_TC  r   r5  c                    [        U R                  U5      U R                  5      n[        U[        5      (       a  U SS  R                  U5      $ U$ rS  )rM   rP  r*  rJ  r  rU  )r/  rY  TCs      r1  rM   IPolys.dmp_TC  r  r5  c                h    [        U R                  U5      U R                  S-
  U R                  5      $ rS  )rN   rP  r)  r*  r  s     r1  rN   IPolys.dmp_ground_LC  &    T]]1-tzz!|T[[IIr5  c                h    [        U R                  U5      U R                  S-
  U R                  5      $ rS  )rO   rP  r)  r*  r  s     r1  rO   IPolys.dmp_ground_TC  r  r5  c                6    [        U R                  U5      5      $ r-  )rP   rP  r  s     r1  rP   IPolys.dup_degree  s    $--*++r5  c                R    [        U R                  U5      U R                  S-
  5      $ rS  )rQ   rP  r)  r  s     r1  rQ   IPolys.dmp_degree  s     $--*DJJqL99r5  c                R    [        U R                  U5      X R                  S-
  5      $ rS  )rR   rP  r)  )r/  rY  js      r1  rR   IPolys.dmp_degree_in  s     T]]1-q**Q,??r5  c                j    U R                  [        U R                  U5      X R                  5      5      $ r-  )rU  rT   rP  r*  r/  rY  ms      r1  rT   IPolys.dup_integrate  s%    }T]]1-=q++NOOr5  c                    U R                  [        U R                  U5      X R                  S-
  U R                  5      5      $ rS  )rU  rU   rP  r)  r*  r  s      r1  rU   IPolys.dmp_integrate  s2    }T]]1-=q**Q,PTP[P[\]]r5  c                j    U R                  [        U R                  U5      X R                  5      5      $ r-  )rU  rW   rP  r*  r  s      r1  rW   IPolys.dup_diff  s%    xa(8![[IJJr5  c                    U R                  [        U R                  U5      X R                  S-
  U R                  5      5      $ rS  )rU  rX   rP  r)  r*  r  s      r1  rX   IPolys.dmp_diff  s/    xa(8!ZZ\4;;WXXr5  c           	         U R                  [        U R                  U5      X#U R                  S-
  U R                  5      5      $ rS  )rU  rY   rP  r)  r*  r/  rY  r  r  s       r1  rY   IPolys.dmp_diff_in  s4    {4==+;Q4::a<QUQ\Q\]^^r5  c           	         U R                  [        U R                  U5      X#U R                  S-
  U R                  5      5      $ rS  )rU  rV   rP  r)  r*  r!  s       r1  rV   IPolys.dmp_integrate_in  s6    /a0@!

STVZVaVabccr5  c                L    [        U R                  U5      X R                  5      $ r-  )rZ   rP  r*  r/  rY  as      r1  rZ   IPolys.dup_eval  s    a(![[99r5  c                    [        U R                  U5      X R                  S-
  U R                  5      nU SS  R	                  U5      $ rS  )r[   rP  r)  r*  rU  )r/  rY  r'  results       r1  r[   IPolys.dmp_eval  s<    $--*Azz!|T[[IABx""6**r5  c                    [        U R                  U5      X#U R                  S-
  U R                  5      nU R	                  U5      R                  U5      $ rS  )r\   rP  r)  r*  r2  rU  )r/  rY  r'  r  r*  s        r1  r\   IPolys.dmp_eval_in  s@    T]]1-qTZZ\4;;Oyy|&&v..r5  c                    [        U R                  U5      X#X@R                  S-
  U R                  5      nU R	                  U5      R                  U5      $ rS  )r^   rP  r)  r*  r2  rU  )r/  rY  r  r'  r  r*  s         r1  r^   IPolys.dmp_diff_eval_in  s@    !$--"2A!ZZ\4;;Wyy|&&v..r5  c                    [        U R                  U5      X R                  S-
  U R                  5      n[	        U[
        5      (       a  U S [        U5      *  R                  U5      $ U$ rS  )r]   rP  r)  r*  rJ  r  lenrU  )r/  rY  Ar*  s       r1  r]   IPolys.dmp_eval_tail  sT    t}}Q/JJqL$++Nfd###a&>,,V44Mr5  c                j    U R                  [        U R                  U5      X R                  5      5      $ r-  )rU  r_   rP  r*  r/  rY  ps      r1  r_   IPolys.dup_trunc  %    yq)91kkJKKr5  c                    U R                  [        U R                  U5      U SS  R                  U5      U R                  S-
  U R                  5      5      $ rS  )rU  r`   rP  r)  r*  r  s      r1  r`   IPolys.dmp_trunc  sJ    yq)948;L;LQ;OQUQ[Q[\]Q]_c_j_jkllr5  c                    U R                  [        U R                  U5      X R                  S-
  U R                  5      5      $ rS  )rU  ra   rP  r)  r*  r5  s      r1  ra   IPolys.dmp_ground_trunc  r  r5  c                j    U R                  [        U R                  U5      U R                  5      5      $ r-  )rU  rb   rP  r*  r  s     r1  rb   IPolys.dup_monic  s%    yq)94;;GHHr5  c                    U R                  [        U R                  U5      U R                  S-
  U R                  5      5      $ rS  )rU  rc   rP  r)  r*  r  s     r1  rc   IPolys.dmp_ground_monic  s3    /a0@$**Q,PTP[P[\]]r5  c                    [        U R                  U5      U R                  U5      U R                  5      u  p4nX0R                  U5      U R                  U5      4$ r-  )rh   rP  r*  rU  r/  rY  r  rZ  FGs         r1  rh   IPolys.dup_extract  sG    dmmA.a0@$++Na??1%tq'9::r5  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$ rS  )ri   rP  r)  r*  rU  rB  s         r1  ri   IPolys.dmp_ground_extract  sU    $T]]1%5t}}Q7GTUW[WbWbca??1%tq'9::r5  c                    [        U R                  U5      R                  S5      R                  5       U R                  5      u  p#U R                  U5      U R                  U5      4$ rS  )rj   rM  r2  rP  r*  rU  r/  rY  r6  r  s       r1  rj   IPolys.dup_real_imag  sM    TYYq\..q1::<dkkJ"DOOA$677r5  c                j    U R                  [        U R                  U5      U R                  5      5      $ r-  )rU  rk   rP  r*  r  s     r1  rk   IPolys.dup_mirror  s%    z$--*:DKKHIIr5  c                j    U R                  [        U R                  U5      X R                  5      5      $ r-  )rU  rl   rP  r*  r&  s      r1  rl   IPolys.dup_scale  r8  r5  c                j    U R                  [        U R                  U5      X R                  5      5      $ r-  )rU  rm   rP  r*  r&  s      r1  rm   IPolys.dup_shift  r8  r5  c                    U R                  [        U R                  U5      X R                  S-
  U R                  5      5      $ rS  )rU  rn   rP  r)  r*  r&  s      r1  rn   IPolys.dmp_shift  s/    yq)91jjlDKKXYYr5  c           	         U R                  [        U R                  U5      U R                  U5      U R                  U5      U R                  5      5      $ r-  )rU  ro   rP  r*  rI  s       r1  ro   IPolys.dup_transform  sB    }T]]1-=t}}Q?OQUQ^Q^_`Qacgcncnoppr5  c                    U R                  [        U R                  U5      U R                  U5      U R                  5      5      $ r-  )rU  rp   rP  r*  r  s      r1  rp   IPolys.dup_compose  s0    {4==+;T]]1=Mt{{[\\r5  c                    U R                  [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      5      $ rS  )rU  rq   rP  r)  r*  r  s      r1  rq   IPolys.dmp_compose  s>    {4==+;T]]1=MtzzZ[|]a]h]hijjr5  c                    [        U R                  U5      U R                  5      n[        [	        U R
                  U5      5      $ r-  )rr   rP  r*  r  r  rU  )r/  rY  
componentss      r1  rr   IPolys.dup_decompose  s1    "4==#3T[[A
C455r5  c                    [        U R                  U5      U R                  S-
  U R                  5      nU R	                  5       R                  U5      $ rS  )rs   rP  r)  r*  r:  rU  r/  rY  r*  s      r1  rs   IPolys.dmp_lift   s=    $--*DJJqL$++F~~**622r5  c                L    [        U R                  U5      U R                  5      $ r-  )rt   rP  r*  r  s     r1  rt   IPolys.dup_sign_variations$  r  r5  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*  )ru   rP  r*  r7  get_ringrU  r/  rY  rc  rZ  rC  rK  s         r1  ru   IPolys.dup_clear_denoms'  sV    a 0$++wO::T[[%9%9%;:<DD??1%&&r5  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$ )NrT  rb  rd  )rv   rP  r)  r*  r7  re  rU  rf  s         r1  rv   IPolys.dmp_clear_denoms.  sa    a 0$**Q,U\]::T[[%9%9%;:<DD??1%&&r5  c                j    U R                  [        U R                  U5      X R                  5      5      $ r-  )rU  rw   rP  r*  r  s      r1  rw   IPolys.dup_revert6  r  r5  c                    [        U R                  U5      U R                  U5      U R                  5      u  p4U R                  U5      U R                  U5      4$ r-  )rx   rP  r*  rU  r/  rY  r  sr  s        r1  rx   IPolys.dup_half_gcdex9  sE    dmmA.a0@$++N"DOOA$677r5  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$ rS  )ry   rP  r)  r*  rU  rm  s        r1  ry   IPolys.dmp_half_gcdex<  sR    dmmA.a0@$**Q,PTP[P[\"DOOA$677r5  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-  )rz   rP  r*  rU  r/  rY  r  rn  tr  s         r1  rz   IPolys.dup_gcdex?  sR    DMM!,dmmA.>La"DOOA$68JKKr5  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$ rS  )r{   rP  r)  r*  rU  rs  s         r1  r{   IPolys.dmp_gcdexB  s\    DMM!,dmmA.>

1dkkZa"DOOA$68JKKr5  c                    U R                  [        U R                  U5      U R                  U5      U R                  5      5      $ r-  )rU  r|   rP  r*  r  s      r1  r|   IPolys.dup_invertF  r  r5  c                    U R                  [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      5      $ rS  )rU  r}   rP  r)  r*  r  s      r1  r}   IPolys.dmp_invertH  r  r5  c                    [        U R                  U5      U R                  U5      U R                  5      n[        [	        U R
                  U5      5      $ r-  )r~   rP  r*  r  r  rU  r/  rY  r  prss       r1  r~   IPolys.dup_euclidean_prsK  <    a 0$--2BDKKPC-..r5  c                    [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      n[	        [        U R                  U5      5      $ rS  )r   rP  r)  r*  r  r  rU  r}  s       r1  r   IPolys.dmp_euclidean_prsN  I    a 0$--2BDJJqLRVR]R]^C-..r5  c                    [        U R                  U5      U R                  U5      U R                  5      n[        [	        U R
                  U5      5      $ r-  )r   rP  r*  r  r  rU  r}  s       r1  r   IPolys.dup_primitive_prsQ  r  r5  c                    [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      n[	        [        U R                  U5      5      $ rS  )r   rP  r)  r*  r  r  rU  r}  s       r1  r   IPolys.dmp_primitive_prsT  r  r5  c                    [        U R                  U5      U R                  U5      U R                  5      u  p4[        [	        U R
                  U5      5      U4$ r-  )r   rP  r*  r  r  rU  r/  rY  r  r~  sress        r1  r   IPolys.dup_inner_subresultantsX  sF    +DMM!,<dmmA>NPTP[P[\	S#./66r5  c                    [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      u  p4[	        [        U R                  U5      5      U4$ rS  )r   rP  r)  r*  r  r  rU  r  s        r1  r   IPolys.dmp_inner_subresultants[  sU    ,T]]1-=t}}Q?OQUQ[Q[\]Q]_c_j_jk	S#./66r5  c                    [        U R                  U5      U R                  U5      U R                  5      n[        [	        U R
                  U5      5      $ r-  )r   rP  r*  r  r  rU  r}  s       r1  r   IPolys.dup_subresultants_  r  r5  c                    [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      n[	        [        U R                  U5      5      $ rS  )r   rP  r)  r*  r  r  rU  r}  s       r1  r   IPolys.dmp_subresultantsb  r  r5  c                    [        U R                  U5      U R                  U5      U R                  5      u  p4U[        [	        U R
                  U5      5      4$ r-  )r   rP  r*  r  r  rU  r/  rY  r  resr~  s        r1  r   IPolys.dup_prs_resultantf  sC    $T]]1%5t}}Q7GUT#doos3455r5  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$ rS  )r   rP  r)  r*  rU  r  r  r  s        r1  r   IPolys.dmp_prs_resultanti  sb    $T]]1%5t}}Q7GTUW[WbWbcQR##C($s4??C/H*IJJr5  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      $ rS  )r   rP  rB  r)  r*  rU  )r/  rY  r  r6  r  s        r1  r   IPolys.dmp_zz_modular_resultantm  s[    &t}}Q'7q9I4??[\K]_c_i_ijk_kmqmxmxyABx""3''r5  c                    [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      nU SS  R	                  U5      $ rS  )r   rP  r)  r*  rU  r/  rY  r  r  s       r1  r   IPolys.dmp_zz_collins_resultantp  K    &t}}Q'7q9I4::VW<Y]YdYdeABx""3''r5  c                    [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      nU SS  R	                  U5      $ rS  )r   rP  r)  r*  rU  r  s       r1  r   IPolys.dmp_qq_collins_resultants  r  r5  c                l    [        U R                  U5      U R                  U5      U R                  5      $ r-  )r   rP  r*  r  s      r1  r   IPolys.dup_resultantw  s'    T]]1-t}}Q/?MMr5  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$ rS  )r   rP  r)  r*  rJ  r  rU  r  s       r1  r   IPolys.dmp_resultanty  sY    DMM!,dmmA.>

1dkkZc4  8&&s++Jr5  c                L    [        U R                  U5      U R                  5      $ r-  )r   rP  r*  r  s     r1  r   IPolys.dup_discriminant  s    a 0$++>>r5  c                    [        U R                  U5      U R                  S-
  U R                  5      n[	        U[
        5      (       a  U SS  R                  U5      $ U$ rS  )r   rP  r)  r*  rJ  r  rU  )r/  rY  discs      r1  r   IPolys.dmp_discriminant  sN    a 0$**Q,LdD!!8&&t,,Kr5  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   rP  r*  rU  r/  rY  r  HrC  rD  s         r1  r   IPolys.dup_rr_prs_gcd  R     q!14==3CT[[Qa"DOOA$68JKKr5  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   rP  r*  rU  r  s         r1  r   IPolys.dup_ff_prs_gcd  r  r5  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$ rS  )r   rP  r)  r*  rU  r  s         r1  r   IPolys.dmp_rr_prs_gcd  `     q!14==3CTZZPQ\SWS^S^_a"DOOA$68JKKr5  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$ rS  )r   rP  r)  r*  rU  r  s         r1  r   IPolys.dmp_ff_prs_gcd  r  r5  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   rP  r*  rU  r  s         r1  r   IPolys.dup_zz_heu_gcd  r  r5  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$ rS  )r   rP  r)  r*  rU  r  s         r1  r   IPolys.dmp_zz_heu_gcd  r  r5  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   rP  r*  rU  r  s         r1  r   IPolys.dup_qq_heu_gcd  r  r5  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$ rS  )r   rP  r)  r*  rU  r  s         r1  r   IPolys.dmp_qq_heu_gcd  r  r5  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   rP  r*  rU  r  s         r1  r   IPolys.dup_inner_gcd  sR    a 0$--2BDKKPa"DOOA$68JKKr5  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$ rS  )r   rP  r)  r*  rU  r  s         r1  r   IPolys.dmp_inner_gcd  s_    a 0$--2BDJJqLRVR]R]^a"DOOA$68JKKr5  c                    [        U R                  U5      U R                  U5      U R                  5      nU R                  U5      $ r-  )r   rP  r*  rU  r/  rY  r  r  s       r1  r   IPolys.dup_gcd  5    DMM!$dmmA&6Dq!!r5  c                    [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      nU R	                  U5      $ rS  )r   rP  r)  r*  rU  r  s       r1  r   IPolys.dmp_gcd  ?    DMM!$dmmA&6

1dkkRq!!r5  c                    [        U R                  U5      U R                  U5      U R                  5      nU R                  U5      $ r-  )r   rP  r*  rU  r  s       r1  r   IPolys.dup_rr_lcm  5    t}}Q'q)94;;Gq!!r5  c                    [        U R                  U5      U R                  U5      U R                  5      nU R                  U5      $ r-  )r   rP  r*  rU  r  s       r1  r   IPolys.dup_ff_lcm  r  r5  c                    [        U R                  U5      U R                  U5      U R                  5      nU R                  U5      $ r-  )r   rP  r*  rU  r  s       r1  r   IPolys.dup_lcm  r  r5  c                    [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      nU R	                  U5      $ rS  )r   rP  r)  r*  rU  r  s       r1  r   IPolys.dmp_rr_lcm  ?    t}}Q'q)94::a<Uq!!r5  c                    [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      nU R	                  U5      $ rS  )r   rP  r)  r*  rU  r  s       r1  r   IPolys.dmp_ff_lcm  r  r5  c                    [        U R                  U5      U R                  U5      U R                  S-
  U R                  5      nU R	                  U5      $ rS  )r   rP  r)  r*  rU  r  s       r1  r   IPolys.dmp_lcm  r  r5  c                P    [        U R                  U5      U R                  5      nU$ r-  )rd   rP  r*  r/  rY  conts      r1  rd   IPolys.dup_content  s     4==+T[[9r5  c                t    [        U R                  U5      U R                  5      u  p#X R                  U5      4$ r-  )rf   rP  r*  rU  r/  rY  r  prims       r1  rf   IPolys.dup_primitive  s/    "4==#3T[[A
__T***r5  c                    [        U R                  U5      U R                  S-
  U R                  5      n[	        U[
        5      (       a  U SS  R                  U5      $ U$ rS  )r   rP  r)  r*  rJ  r  rU  r  s      r1  r   IPolys.dmp_content  sN    4==+TZZ\4;;GdD!!8&&t,,Kr5  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$ rS  )r   rP  r)  r*  rJ  r  rU  r  s       r1  r   IPolys.dmp_primitive  sk    "4==#3TZZ\4;;O
dD!!H''-tt/DEE//$/00r5  c                l    [        U R                  U5      U R                  S-
  U R                  5      nU$ rS  )re   rP  r)  r*  r  s      r1  re   IPolys.dmp_ground_content  s*    !$--"2DJJqL$++Nr5  c                    [        U R                  U5      U R                  S-
  U R                  5      u  p#X R	                  U5      4$ rS  )rg   rP  r)  r*  rU  r  s       r1  rg   IPolys.dmp_ground_primitive  s9    )$--*:DJJqL$++V
ood+,,r5  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   rP  r*  rU  	r/  rY  r  r  r*  cfcgrC  rD  s	            r1  r   IPolys.dup_cancel  sx    DMM!,dmmA.>U\]!LBADOOA.0BCCDAOOA&(:;;r5  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$ )NrT  r  )r   rP  r)  r*  rU  r  s	            r1  r   IPolys.dmp_cancel  s    DMM!,dmmA.>

1dkkcjk!LBADOOA.0BCCDAOOA&(:;;r5  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   rP  r  r  r*  rU  r/  rY  factorsr  ks        r1  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 rS  )r   rP  r  r  r)  r*  rU  r  s        r1  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   rP  r*  r  s     r1  r   IPolys.dup_zz_mignotte_bound  s    $T]]1%5t{{CCr5  c                h    [        U R                  U5      U R                  S-
  U R                  5      $ rS  )r   rP  r)  r*  r  s     r1  r   IPolys.dmp_zz_mignotte_bound  s&    $T]]1%5tzz!|T[[QQr5  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-  )rP  r   r*  rU  )r/  r  rY  r  r  rn  rt  DrD  r  STs               r1  r   IPolys.dup_zz_hensel_step  sq    MM'1Q41qtQqT1Q4U
a"DOOA$68JDOO\]L^__r5  c           
         U R                   n[        X" U5      [        [        XS5      5      X@R                  5      n[        [        U R
                  U5      5      $ r-  )rP  r   r  r  r*  rU  )r/  r6  rY  f_listlr  r  s          r1  r   IPolys.dup_zz_hensel_lift  sB    MM"1adDQ,@![[QC/00r5  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   rP  r*  rU  r  s        r1  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   rP  r*  r  s     r1  r   IPolys.dup_zz_irreducible_p      #DMM!$4dkkBBr5  c                J    [        U R                  U5      U R                  US9$ )N)irreducible)r   rP  r*  )r/  rY  r
  s      r1  r   IPolys.dup_cyclotomic_p  s    a 0$++;WWr5  c                N    [        XR                  5      nU R                  U5      $ r-  )r   r*  rU  )r/  r  rC  s      r1  r   IPolys.dup_zz_cyclotomic_poly	  s    "1kk2q!!r5  c                    [        U R                  U5      U R                  5      nUc  U$ [        [	        U R
                  U5      5      $ r-  )r   rP  r*  r  r  rU  r]  s      r1  r   IPolys.dup_zz_cyclotomic_factor  s;    )$--*:DKKH>MDOOV455r5  c                .    [        XX0R                  5      $ r-  )r   r*  )r/  Ecscts       r1  r   IPolys.dmp_zz_wang_non_divisors  s    'r;;??r5  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 rS  )rP  r  r  r   r)  r*  rU  )r/  rY  r  r  r  r  r2  mvrt  r  uvHHCCs                r1  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  rP  r*  rU  )r/  rC  r  r6  r*  s        r1  r   IPolys.dup_zz_diophantine%  s:    #DT]]A)>$?t{{SC011r5  c           	         [        [        [        U R                  U5      5      U R                  U5      X4XPR                  S-
  U R
                  5      n[        [        U R                  U5      5      $ rS  )r   r  r  rP  r)  r*  rU  )r/  rC  rZ  r2  rE  r6  r*  s          r1  r   IPolys.dmp_zz_diophantine*  sX    #DT]]A)>$?qAQSTYZ\f\fgh\hjnjujuvC011r5  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      $ rS  )r  r  rP  r   r)  r*  rU  )	r/  rY  r  r  r2  r6  r  r  r*  s	            r1  r   !IPolys.dmp_zz_wang_hensel_lifting/  s    "1X!"XR[[!$%#bkk2&'+DMM!,<aQ4::VW<Y]YdYdeC011r5  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 )NrT  )modseed)r   rP  r)  r*  rU  )r/  rY  r"  r#  r  r  s         r1  r   IPolys.dmp_zz_wang7  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   rP  r*  rU  )r/  rY  coeffr  r  s        r1  r   IPolys.dup_zz_factor_sqf;  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   rP  r*  rU  r/  rY  r&  r  r  r  s         r1  r   IPolys.dup_zz_factor?  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 rS  )r   rP  r)  r*  rU  r)  s         r1  r   IPolys.dmp_zz_factorB  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   rP  r*  rU  r)  s         r1  r   IPolys.dup_qq_i_factorF  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 rS  )r   rP  r)  r*  rU  r)  s         r1  r   IPolys.dmp_qq_i_factorI  T    (q)94::a<UWFWTQ$//!,a0WFGGFr0  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   rP  r*  rU  r)  s         r1  r   IPolys.dup_zz_i_factorM  r3  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 rS  )r   rP  r)  r*  rU  r)  s         r1  r   IPolys.dmp_zz_i_factorP  r6  r0  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   rP  r*  rU  r)  s         r1  r   IPolys.dup_ext_factorT  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 rS  )r   rP  r)  r*  rU  r)  s         r1  r   IPolys.dmp_ext_factorW  sT    'a(8$**Q,TWFWTQ$//!,a0WFGGFr0  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   rP  r*  rU  r)  s         r1  r   IPolys.dup_gf_factor[  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 rS  )r   rP  r)  r*  rU  r)  s         r1  r   IPolys.dmp_gf_factor^  r/  r0  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   rP  r*  rU  r)  s         r1  r   IPolys.dup_factor_listb  r3  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   rP  r*  rU  r  s        r1  r   IPolys.dup_factor_list_includee  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 rS  )r   rP  r)  r*  rU  r)  s         r1  r   IPolys.dmp_factor_listi  r6  r0  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 rS  )r   rP  r)  r*  rU  r  s        r1  r   IPolys.dmp_factor_list_includel  sM    )$--*:DJJqL$++V5<>WTQ$//!$a(W>>>   Ac                L    [        U R                  U5      U R                  5      $ r-  )r   rP  r*  r  s     r1  r   IPolys.dup_irreducible_pp  s     q!14;;??r5  c                h    [        U R                  U5      U R                  S-
  U R                  5      $ rS  )r   rP  r)  r*  r  s     r1  r   IPolys.dmp_irreducible_pr  s&     q!14::a<MMr5  c                    [        U R                  U5      U R                  5      n[        [	        U R
                  U5      5      $ r-  )r   rP  r*  r  r  rU  )r/  rY  seqs      r1  r   IPolys.dup_sturmu  s1    a($++6C-..r5  c                L    [        U R                  U5      U R                  5      $ r-  )r   rP  r*  r  s     r1  r   IPolys.dup_sqf_py  s    q)4;;77r5  c                h    [        U R                  U5      U R                  S-
  U R                  5      $ rS  )r   rP  r)  r*  r  s     r1  r   IPolys.dmp_sqf_p{  s&    q)4::a<EEr5  c                    [        U R                  U5      U R                  S-
  U R                  5      nU R	                  5       R                  U5      $ rS  )r   rP  r)  r*  r:  rU  r  s      r1  r   IPolys.dmp_norm~  s=    T]]1%tzz!|T[[A~~**1--r5  c                    [        U R                  U5      U R                  5      u  p#nX R                  U5      U R	                  5       R                  U5      4$ r-  )r   rP  r*  rU  r:  r/  rY  rn  rC  Rs        r1  r   IPolys.dup_sqf_norm  sE    t}}Q/=a??1%t~~'7'B'B1'EFFr5  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$ rS  )r   rP  r)  r*  rU  r:  rZ  s        r1  r   IPolys.dmp_sqf_norm  sO    t}}Q/At{{Ka??1%t~~'7'B'B1'EFFr5  c                j    U R                  [        U R                  U5      U R                  5      5      $ r-  )rU  r   rP  r*  r  s     r1  r   IPolys.dup_gf_sqf_part  %    t}}Q/?MNNr5  c                j    U R                  [        U R                  U5      U R                  5      5      $ r-  )rU  r   rP  r*  r  s     r1  r   IPolys.dmp_gf_sqf_part  ra  r5  c                j    U R                  [        U R                  U5      U R                  5      5      $ r-  )rU  r   rP  r*  r  s     r1  r   IPolys.dup_sqf_part  s%    |DMM!,<dkkJKKr5  c                    U R                  [        U R                  U5      U R                  S-
  U R                  5      5      $ rS  )rU  r   rP  r)  r*  r  s     r1  r   IPolys.dmp_sqf_part  s/    |DMM!,<djjlDKKXYYr5  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   rP  r*  rU  r/  rY  rk  r&  r  r  r  s          r1  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 NrT  rj  )r   rP  r)  r*  rU  rl  s          r1  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 ri  )r   rP  r*  rU  rl  s          r1  r   IPolys.dup_sqf_list  sL    %dmmA&6MWFWTQ$//!,a0WFGGFrn  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 ri  )r   rP  r*  rU  r/  rY  rk  r  r  r  s         r1  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 rp  )r   rP  r)  r*  rU  rl  s          r1  r   IPolys.dmp_sqf_list  sW    %dmmA&6

1dkkWZ[WFWTQ$//!,a0WFGGFrr  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 rp  )r   rP  r)  r*  rU  rv  s         r1  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   rP  r*  rU  r  s        r1  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 rS  )r   rP  r)  r*  rU  r  s        r1  r   IPolys.dmp_gff_list  sM    t}}Q/At{{K5<>WTQ$//!$a(W>>>rK  c                L    [        U R                  U5      U R                  5      $ r-  )r   rP  r*  r  s     r1  r   IPolys.dup_root_upper_bound  r  r5  c                L    [        U R                  U5      U R                  5      $ r-  )r   rP  r*  r  s     r1  r   IPolys.dup_root_lower_bound  r  r5  c                J    [        U R                  U5      X R                  US9$ )N)fast)r   rP  r*  )r/  rY  Mr  s       r1  r    IPolys.dup_step_refine_real_root  s    (q)91kkPTUUr5  c                N    [        U R                  U5      X R                  X4XVUS9$ )N)epsstepsdisjointr  mobius)r   rP  r*  )r/  rY  r  r  r  r  r  r  s           r1  r   !IPolys.dup_inner_refine_real_root  s/    )$--*:A{{PSks  HN  O  	Or5  c                N    [        U R                  U5      X#U R                  XEXgS9$ N)r  r  r  r  )r   rP  r*  r/  rY  rn  rt  r  r  r  r  s           r1  r   !IPolys.dup_outer_refine_real_root  s*    )$--*:A$++SVnv  C  	Cr5  c                N    [        U R                  U5      X#U R                  XEXgS9$ r  )r   rP  r*  r  s           r1  r   IPolys.dup_refine_real_root  s#    #DMM!$4aDKKShp||r5  c                J    [        U R                  U5      U R                  X#S9$ )N)r  r  )r   rP  r*  )r/  rY  r  r  s       r1  r   #IPolys.dup_inner_isolate_real_roots  s    +DMM!,<dkks^^r5  c           
     N    [        U R                  U5      U R                  X#XEUS9$ )N)r  infsupr  r  )r   rP  r*  )r/  rY  r  r  r  r  r  s          r1  r   'IPolys.dup_inner_isolate_positive_roots  /    /a0@$++SVeh  }C  D  	Dr5  c           
     N    [        U R                  U5      U R                  X#XEUS9$ )N)r  r  r  r  r  )r   rP  r*  )r/  rY  r  r  r  r  r  s          r1  r   'IPolys.dup_inner_isolate_negative_roots  r  r5  c           
     N    [        U R                  U5      U R                  X#XEUS9$ N)r  r  r  r  blackbox)r   rP  r*  r/  rY  r  r  r  r  r  s          r1  r   !IPolys.dup_isolate_real_roots_sqf  s.    )$--*:DKKS_b  yA  B  	Br5  c           
     N    [        U R                  U5      U R                  X#XEUS9$ )N)r  r  r  basisr  )r   rP  r*  )r/  rY  r  r  r  r  r  s          r1  r   IPolys.dup_isolate_real_roots  s$    %dmmA&6[^rvwwr5  c                j    [        [        [        U R                  U5      5      U R                  X#XEXgS9$ )N)r  r  r  strictr  r  )r   r  r  rP  r*  )r/  r  r  r  r  r  r  r  s           r1  r   "IPolys.dup_isolate_real_roots_list  s6    *4DMM50I+JDKK]`or  JO  [  	[r5  c                J    [        U R                  U5      U R                  X#S9$ )N)r  r  )r   rP  r*  )r/  rY  r  r  s       r1  r   IPolys.dup_count_real_roots  s    #DMM!$4dkksTTr5  c                L    [        U R                  U5      U R                  X#US9$ )N)r  r  exclude)r   rP  r*  )r/  rY  r  r  r  s        r1  r   IPolys.dup_count_complex_roots  s!    &t}}Q'7#`ghhr5  c           	     L    [        U R                  U5      U R                  X#XES9$ )N)r  r  r  r  )r   rP  r*  )r/  rY  r  r  r  r  s         r1  r   $IPolys.dup_isolate_complex_roots_sqf  s"    ,T]]1-=t{{PSbeyyr5  c           
     N    [        U R                  U5      U R                  X#XEUS9$ r  )r   rP  r*  r  s          r1  r    IPolys.dup_isolate_all_roots_sqf  s*    (q)94;;C^aw  A  	Ar5  c           	     L    [        U R                  U5      U R                  X#XES9$ )N)r  r  r  r  )r   rP  r*  )r/  rY  r  r  r  r  s         r1  r   IPolys.dup_isolate_all_roots  s!    $T]]1%5t{{Z]iir5  c           	         SSK Jn  [        [        U R                  U" U R
                  S-
  U R                  5      5      5      $ )Nr   )dmp_fateman_poly_F_1rT  )sympy.polys.specialpolysr  tupler  rU  r)  r*  )r/  r  s     r1  fateman_poly_F_1IPolys.fateman_poly_F_1  /    AS*>tzz!|T[[*YZ[[r5  c           	         SSK Jn  [        [        U R                  U" U R
                  S-
  U R                  5      5      5      $ )Nr   )dmp_fateman_poly_F_2rT  )r  r  r  r  rU  r)  r*  )r/  r  s     r1  fateman_poly_F_2IPolys.fateman_poly_F_2  r  r5  c           	         SSK Jn  [        [        U R                  U" U R
                  S-
  U R                  5      5      5      $ )Nr   )dmp_fateman_poly_F_3rT  )r  r  r  r  rU  r)  r*  )r/  r  s     r1  fateman_poly_F_3IPolys.fateman_poly_F_3  r  r5  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   rM  rP  r*  domrc  )r/  r>  rZ  s      r1  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      $ rS  )rF  rS   r)  r*  r  r=  s     r1  from_gf_denseIPolys.from_gf_dense  s(    ~~k'::a<QRRr5  c                6    [        U R                  U5      5      $ r-  )r   r  r  s     r1  r   IPolys.gf_degree  s    ))!,--r5  c                `    [        U R                  U5      U R                  R                  5      $ r-  )r   r  r*  r  r  s     r1  r   IPolys.gf_LC  "    T%%a($++//::r5  c                `    [        U R                  U5      U R                  R                  5      $ r-  )r   r  r*  r  r  s     r1  r   IPolys.gf_TC  r  r5  c                T    U R                  [        U R                  U5      5      5      $ r-  )r  r   r  r  s     r1  r   IPolys.gf_strip  s#    !!(4+;+;A+>"?@@r5  c                ~    U R                  [        U R                  U5      U R                  R                  5      5      $ r-  )r  r   r  r*  r"  r  s     r1  gf_truncIPolys.gf_trunc  s-    !!(4+;+;A+>"PQQr5  c                    U R                  [        U R                  U5      U R                  R                  U R                  R
                  5      5      $ r-  )r  r   r  r*  r"  r  r  s     r1  	gf_normalIPolys.gf_normal  <    !!(4+;+;A+>QUQ\Q\Q`Q`"abbr5  c                    U R                  [        XR                  R                  U R                  R                  5      5      $ r-  )r  r   r*  r"  r  r  s     r1  r   IPolys.gf_from_dict  s*    !!,q++//4;;??"STTr5  c                ^    [        U R                  U5      U R                  R                  US9$ N)	symmetric)r   r  r*  r"  r/  rY  r  s      r1  r   IPolys.gf_to_dict  s$    $**1-t{{)TTr5  c                ^    U R                  [        XR                  R                  5      5      $ r-  )r  r   r*  r"  r  s     r1  r   IPolys.gf_from_int_poly  s!    !!"21kkoo"FGGr5  c                ^    [        U R                  U5      U R                  R                  US9$ r  )r   r  r*  r"  r  s      r1  r   IPolys.gf_to_int_poly  s$    d..q14;;??iXXr5  c                    U R                  [        U R                  U5      U R                  R                  U R                  R
                  5      5      $ r-  )r  r   r  r*  r"  r  r  s     r1  r   IPolys.gf_neg  7    !!&)9)9!)<dkkoot{{"_``r5  c                    U R                  [        U R                  U5      X R                  R                  U R                  R
                  5      5      $ r-  )r  r   r  r*  r"  r  r&  s      r1  r   IPolys.gf_add_ground  <    !!-0@0@0CQY]YdYdYhYh"ijjr5  c                    U R                  [        U R                  U5      X R                  R                  U R                  R
                  5      5      $ r-  )r  r   r  r*  r"  r  r&  s      r1  r   IPolys.gf_sub_ground  r  r5  c                    U R                  [        U R                  U5      X R                  R                  U R                  R
                  5      5      $ r-  )r  r   r  r*  r"  r  r&  s      r1  r   IPolys.gf_mul_ground  r  r5  c                    U R                  [        U R                  U5      X R                  R                  U R                  R
                  5      5      $ r-  )r  r   r  r*  r"  r  r&  s      r1  r   IPolys.gf_quo_ground  r  r5  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      r1  r   IPolys.gf_add  N    !!&)9)9!)<d>N>Nq>QSWS^S^SbSbdhdododsds"tuur5  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      r1  r   IPolys.gf_sub  r  r5  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      r1  r   IPolys.gf_mul
  r  r5  c                    U R                  [        U R                  U5      U R                  R                  U R                  R
                  5      5      $ r-  )r  r   r  r*  r"  r  r  s     r1  r   IPolys.gf_sqr  r  r5  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       r1  r   IPolys.gf_add_mul  {    !!*T-=-=a-@$BRBRSTBUW[WgWghiWjlplwlwl{l{  ~B  ~I  ~I  ~M  ~M  #N  O  	Or5  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       r1  r   IPolys.gf_sub_mul  r  r5  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/  rC  s     r1  r   IPolys.gf_expand  sC    !!)DT5E5Eq1I,JDKKOO]a]h]h]l]l"mnnr5  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        r1  r   IPolys.gf_div  s`    d&&q)4+;+;A+>QUQ\Q\Q`Q`a!!!$d&8&8&;;;r5  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      r1  r   IPolys.gf_rem  r  r5  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      r1  r   IPolys.gf_quo  r  r5  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      r1  r  IPolys.gf_exquo  O    !!(4+;+;A+>@P@PQR@SUYU`U`UdUdfjfqfqfufu"vwwr5  c                ~    U R                  [        U R                  U5      X R                  R                  5      5      $ r-  )r  r  r  r*  r  r  s      r1  r  IPolys.gf_lshift!  -    !!)D,<,<Q,?KKOO"TUUr5  c                ~    U R                  [        U R                  U5      X R                  R                  5      5      $ r-  )r  r  r  r*  r  r  s      r1  r  IPolys.gf_rshift#  r  r5  c                    U R                  [        U R                  U5      X R                  R                  U R                  R
                  5      5      $ r-  )r  r  r  r*  r"  r  r  s      r1  r  IPolys.gf_pow&  s<    !!&)9)9!)<aRVR]R]RaRa"bccr5  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/  rY  r  r  s       r1  r  IPolys.gf_pow_mod(  sO    !!*T-=-=a-@!EUEUVWEXZ^ZeZeZiZikokvkvkzkz"{||r5  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/  rY  r  r  cffcfgs         r1  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Vr5  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      r1  r  IPolys.gf_gcd.  r  r5  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      r1  r  IPolys.gf_lcm0  r  r5  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      r1  r	  IPolys.gf_gcdex2  r  r5  c                    U R                  [        U R                  U5      U R                  R                  U R                  R
                  5      5      $ r-  )r  r
  r  r*  r"  r  r  s     r1  r
  IPolys.gf_monic5  r  r5  c                    U R                  [        U R                  U5      U R                  R                  U R                  R
                  5      5      $ r-  )r  r  r  r*  r"  r  r  s     r1  r  IPolys.gf_diff7  s<    !!'$*:*:1*=t{{PTP[P[P_P_"`aar5  c                    [        U R                  U5      X R                  R                  U R                  R                  5      $ r-  )r  r  r*  r"  r  r&  s      r1  r  IPolys.gf_eval:  s,    t''*A{{PPr5  c                    [        U R                  U5      X R                  R                  U R                  R                  5      $ r-  )r  r  r*  r"  r  )r/  rY  r2  s      r1  r  IPolys.gf_multi_eval<  s,    T--a0![[__dkkooVVr5  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      r1  r  IPolys.gf_compose?  sO    !!*T-=-=a-@$BRBRSTBUW[WbWbWfWfhlhshshwhw"xyyr5  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  rY  s       r1  r  IPolys.gf_compose_modA  s{    !!.1A1A!1DdFVFVWXFY[_[k[klm[nptp{p{pp  BF  BM  BM  BQ  BQ  #R  S  	Sr5  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'  brZ  r  rY  UVs           r1  r  IPolys.gf_trace_mapD  s    QQQQA!;;??DKKOOL!!!$d&8&8&;;;r5  c                    U R                  [        XR                  R                  U R                  R                  5      5      $ r-  )r  r  r*  r"  r  r/  r  s     r1  r  IPolys.gf_randomL  s*    !!)A{{"PQQr5  c                    U R                  [        XR                  R                  U R                  R                  5      5      $ r-  )r  r  r*  r"  r  r.  s     r1  r  IPolys.gf_irreducibleN  s*    !!.KKOOT[[__"UVVr5  c                    [        U R                  U5      U R                  R                  U R                  R                  5      $ r-  )r  r  r*  r"  r  r  s     r1  r  IPolys.gf_irred_p_ben_orQ  s,     !1!1!!4dkkoot{{WWr5  c                    [        U R                  U5      U R                  R                  U R                  R                  5      $ r-  )r  r  r*  r"  r  r  s     r1  r  IPolys.gf_irred_p_rabinS  ,     0 0 3T[[__dkkooVVr5  c                    [        U R                  U5      U R                  R                  U R                  R                  5      $ r-  )r  r  r*  r"  r  r  s     r1  r  IPolys.gf_irreducible_pU  r6  r5  c                    [        U R                  U5      U R                  R                  U R                  R                  5      $ r-  )r  r  r*  r"  r  r  s     r1  r  IPolys.gf_sqf_pW  s,    ((+T[[__dkkooNNr5  c                    U R                  [        U R                  U5      U R                  R                  U R                  R
                  5      5      $ r-  )r  r  r  r*  r"  r  r  s     r1  r  IPolys.gf_sqf_partZ  s<    !!+d.>.>q.A4;;??TXT_T_TcTc"deer5  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  rl  s          r1  gf_sqf_listIPolys.gf_sqf_list\  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     r1  r  IPolys.gf_Qmatrix`  s,    $**1-t{{PPr5  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/  rY  r  r  s       r1  r  IPolys.gf_berlekampb  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        r1  r  IPolys.gf_ddf_zassenhausf  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/  rY  r  r  r  s        r1  r  IPolys.gf_edf_zassenhausi  sL    #D$4$4Q$7$++//Z0791##A&999rG  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        r1  r  IPolys.gf_ddf_shoupm  sU    t//2DKKOOT[[__U8?A$$$Q'+AAArJ  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  rL  s        r1  r  IPolys.gf_edf_shoupp  rF  rG  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  rD  s       r1  r  IPolys.gf_zassenhaust  sL     0 0 3T[[__dkkooV0791##A&999rG  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  rD  s       r1  r  IPolys.gf_shoupw  sL    4++A.Q0791##A&999rG  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/  rY  rW  r&  r  r  s         r1  r   IPolys.gf_factor_sqf{  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         r1  r!  IPolys.gf_factor~  s\    "4#3#3A#6YwHwtq++A.2wHHHHr@  r.  )NNN)F)T)NN)NNNFF)NNNF)NF)NNNFFFr-  (.  __name__
__module____qualname____firstlineno____annotations__r2  r7  r:  r?  rB  rF  rM  rP  rU  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   rL   rM   rN   rO   rP   rQ   rR   rT   rU   rW   rX   rY   rV   rZ   r[   r\   r^   r]   r_   r`   ra   rb   rc   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   rd   rf   r   r   re   rg   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!  __static_attributes__r.  r5  r1  r$  r$     s    "!JN,-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r5  r$  N(0  __doc__
__future__r   typingr   sympy.core.exprr   sympy.polys.domains.domainr   sympy.polys.orderingsr   rI  r	   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/   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   sympy.polys.densebasicrJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   sympy.polys.densetoolsrT   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   rq   rr   rs   rt   ru   rv   rw   sympy.polys.euclidtoolsrx   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   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.  r5  r1  <module>rp     sO   > "  $13- / / / / / / 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 	7 	7 	7 # "OI OI OIr5  