K i$ dZddlmZddlmZerddlmZddlmZddl m Z ddl m Z ddl mZdd l mZdd l mZdd l mZdd l mZdd l mZddl mZddl mZddl mZddl mZddl mZddl mZddl mZddl mZddl mZddl mZddl mZddl mZddl m Z ddl m!Z!ddl m"Z"ddl m#Z#ddl m$Z$ddl m%Z%dd l m&Z&dd!l m'Z'dd"l m(Z(dd#l m)Z)dd$l m*Z*dd%l m+Z+dd&l m,Z,dd'l m-Z-dd(l m.Z.dd)l m/Z/dd*l m0Z0dd+l m1Z1dd,l m2Z2dd-l m3Z3dd.l m4Z4dd/l m5Z5dd0l m6Z6dd1l m7Z7dd2l m8Z8dd3l m9Z9dd4l m:Z:dd5l m;Z;dd6l mZ>dd9l m?Z?dd:l m@Z@dd;l mAZAddl mDZDdd?l mEZEdd@l mFZFddAl mGZGddBl mHZHddCl mIZIddDl mJZJddEl mKZKddFl mLZLddGl mMZMddHlNmOZOddIlNmPZPddJlNmQZQddKlNmRZRddLlNmSZSddMlNmTZTddNlNmUZUddOlNmVZVddPlNmWZWddQlNmXZXddRlYmZZZddSlYm[Z[ddTlYm\Z\ddUlYm]Z]ddVlYm^Z^ddWlYm_Z_ddXlYm`Z`ddYlYmaZaddZlYmbZbdd[lYmcZcdd\lYmdZddd]lYmeZedd^lYmfZfdd_lYmgZgdd`lYmhZhddalYmiZiddblYmjZjddclYmkZkdddlYmlZlddelYmmZmddflYmnZnddglYmoZoddhlYmpZpddilYmqZqddjlYmrZrddklYmsZsddllYmtZtddmlYmuZuddnlYmvZvddolYmwZwddplYmxZxddqlYmyZyddrlYmzZzddslYm{Z{ddtlYm|Z|ddulYm}Z}ddvl~mZddwl~mZddxl~mZddyl~mZddzl~mZdd{l~mZdd|l~mZdd}l~mZdd~l~mZddl~mZddl~mZddl~mZddl~mZddl~mZddl~mZddl~mZddl~mZddl~mZddl~mZddl~mZddl~mZddl~mZddl~mZddl~mZddl~mZddl~mZddl~mZddl~mZddl~mZddl~mZddl~mZddl~mZddl~mZddl~mZddl~mZddl~mZddl~mZddl~mZddl~mZddl~mZddl~mZddl~mZddl~mZddl~mZddl~mZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m Z m Z m Z m Z mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,ddِl-m.Z.e.Gdڄd۫Z/y)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_pdmp_norm dup_sqf_norm dmp_sqf_normdup_gf_sqf_partdmp_gf_sqf_part dup_sqf_part dmp_sqf_partdup_gf_sqf_listdmp_gf_sqf_list dup_sqf_listdup_sqf_list_include dmp_sqf_listdmp_sqf_list_include dup_gff_list dmp_gff_list)8 gf_degreegf_LCgf_TCgf_strip gf_from_dict gf_to_dictgf_from_int_polygf_to_int_polygf_neg gf_add_ground gf_sub_ground gf_mul_ground gf_quo_groundgf_addgf_subgf_mulgf_sqr gf_add_mul gf_sub_mul gf_expandgf_divgf_remgf_quogf_exquo gf_lshift gf_rshiftgf_pow gf_pow_modgf_gcdgf_lcm gf_cofactorsgf_gcdexgf_monicgf_diffgf_eval gf_multi_eval gf_composegf_compose_mod gf_trace_map gf_randomgf_irreduciblegf_irred_p_ben_orgf_irred_p_rabingf_irreducible_pgf_sqf_p gf_sqf_part gf_Qmatrix gf_berlekampgf_ddf_zassenhausgf_edf_zassenhaus gf_ddf_shoup gf_edf_shoup gf_zassenhausgf_shoup gf_factor_sqf gf_factor)publiccpeZdZUded<ded<ded<ded<d ed <d Zd4d ZdZdZdZdZ dZ dZ dZ dZ dZdZdZdZdZdZdZdZdZdZd Zd!Zd"Zd#Zd$Zd%Zd&Zd'Zd(Z d)Z!d*Z"d+Z#d,Z$d-Z%d.Z&d/Z'd0Z(d1Z)d2Z*d3Z+d4Z,d5Z-d6Z.d7Z/d8Z0d9Z1d:Z2d;Z3d<Z4d=Z5d>Z6d?Z7d@Z8dAZ9dBZ:dCZ;dDZdGZ?dHZ@dIZAdJZBdKZCdLZDdMZEdNZFdOZGdPZHdQZIdRZJdSZKdTZLdUZMdVZNdWZOdXZPdYZQdZZRd[ZSd\ZTd]ZUd^ZVd_ZWd`ZXdaZYdbZZdcZ[ddZ\deZ]dfZ^dgZ_dhZ`diZadjZbdkZcdlZddmZednZfdoZgdpZhdqZidrZjdsZkdtZlduZmdvZndwZodxZpdyZqdzZrd5d{Zsd5d|Ztd}Zud~ZvdZwdZxdZydZzdZ{dZ|dZ}dZ~dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZd6dZd6dZdZdZdZdZdZdZdZdZd5dZdZdZdZdZdZdZdZd7dZdZdZd„ZdÄZdĄZdńZdƄZdDŽZdȄZdɄZdʄZd˄Zd̄Zd̈́Zd΄ZdτZdЄZdфZd҄ZdӄZdԄZdՄZdքZdׄZd؄ZdلZdڄZҐd5dۄZӐd5d܄ZԐd5d݄ZՐd5dބZ֐d5d߄Zאd5dZdZdZdZdZܐd5dZݐd8dZސd9dZߐd9dZd:dZd8dZd8dZd8dZd8dZd;dZd7dZd4dZd9dZd8dZd9dZdZdZdZdZdZdZdZdZdZdZdZdZd6dZdZd6dZdZdZdZdZdZdZd Zd Zd Zd Zd ZdZdZdZdZ dZ dZ dZ dZ dZdZdZdZdZdZdZdZdZdZd Zd!Zd"Zd#Zd$Zd%Zd&Zd'Zd(Z d5d)Z!d*Z"d+Z#d,Z$d-Z%d.Z&d/Z'd0Z(d1Z)d<d2Z*d3Z+y (=IPolysztuple[PolyElement, ...]gensztuple[Expr, ...]symbolsintngensrdomainrordercyN)selfgens _/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/polys/compatibility.pydropz IPolys.drop Ncyr,r-)r.r&r)r*s r0clonez IPolys.cloner2r3cyr,r-)r.s r0 to_groundzIPolys.to_groundr2r3cyr,r-r.elements r0 ground_newzIPolys.ground_newr2r3cyr,r-r9s r0 domain_newzIPolys.domain_newr2r3cyr,r-)r.ds r0 from_dictzIPolys.from_dictr2r3cddlm}t||r|j|k(r|St d|j |S)Nrrzdomain conversions)sympy.polys.ringsr isinstanceringNotImplementedErrorr;)r.r:r s r0wrapz IPolys.wrap s;1 g{ +||t#)*>????7+ +r3c@|j|jSr,)rFto_denser9s r0rHzIPolys.to_densesyy!**,,r3ch|jt||jdz |jSN)r@rSr(r)r9s r0 from_densezIPolys.from_denses&~~k'4::a<MNNr3cn|jt|j||||jSr,)rLr rHr)r.fcis r0r zIPolys.dup_add_term)|DMM!,O>OPQ>R>[>[>]_`bfblblmnbnptp{p{|}}r3cn|jt|j||||jSr,)rLr rHr)rNs r0r zIPolys.dup_sub_termrRr3c |jt|j||j|j dj||j dz |j SrT)rLr rHrFr1r(r)rNs r0r zIPolys.dmp_sub_term!rUr3cn|jt|j||||jSr,)rLrrHr)rNs r0rzIPolys.dup_mul_term#rRr3c |jt|j||j|j dj||j dz |j SrT)rLrrHrFr1r(r)rNs r0rzIPolys.dmp_mul_term%rUr3cl|jt|j|||jSr,)rLrrHr)r.rOrPs r0rzIPolys.dup_add_ground('~dmmA.>4;;OPPr3c|jt|j|||jdz |jSrJ)rLrrHr(r)r[s r0rzIPolys.dmp_add_ground*4~dmmA.>4::awt}}Q'7q9I4::VWx a(8$--:JDJJWXLZ^ZeZefggr3c|jt|j||j||jdz |jSrJ)rLr4rHr(r)rus r0r4zIPolys.dmp_pquo|rr3c|jt|j||j||jdz |jSrJ)rLr5rHr(r)rus r0r5zIPolys.dmp_pexquo~>z$--*:DMM!rHr(r)rLrs r0r>zIPolys.dmp_divsQt}}Q'q)94::a<U1"DOOA$677r3c|jt|j||j||jdz |jSrJ)rLr?rHr(r)rus r0r?zIPolys.dmp_remryr3c|jt|j||j||jdz |jSrJ)rLr@rHr(r)rus r0r@zIPolys.dmp_quoryr3c|jt|j||j||jdz |jSrJ)rLrArHr(r)rus r0rAzIPolys.dmp_exquos>yq)94==;KTZZXY\[_[f[fghhr3cLt|j||jSr,)rBrHr)rns r0rBzIPolys.dup_max_normsDMM!,dkk::r3cht|j||jdz |jSrJ)rCrHr(r)rns r0rCzIPolys.dmp_max_norms&DMM!,djjlDKKHHr3cLt|j||jSr,)rDrHr)rns r0rDzIPolys.dup_l1_norms4==+T[[99r3cht|j||jdz |jSrJ)rErHr(r)rns r0rEzIPolys.dmp_l1_norms&4==+TZZ\4;;GGr3cLt|j||jSr,)rFrHr)rns r0rFzIPolys.dup_l2_norm_squared"4==#3T[[AAr3cht|j||jdz |jSrJ)rGrHr(r)rns r0rGzIPolys.dmp_l2_norm_squareds&"4==#3TZZ\4;;OOr3c |jttt|j||j Sr,)rLrHlistmaprHr)r.polyss r0rHzIPolys.dup_expands,z$s4==%/H*I4;;WXXr3c |jttt|j||j dz |j SrJ)rLrIrrrHr(r)rs r0rIzIPolys.dmp_expands:z$s4==%/H*I4::VW$--*Atzz!|T[[IABx""6**r3ct|j||||jdz |j}|j |j |SrJ)r\rHr(r)r1rL)r.rOrrrs r0r\zIPolys.dmp_eval_insBT]]1-q!TZZ\4;;Oyy|&&v..r3ct|j|||||jdz |j}|j |j |SrJ)r^rHr(r)r1rL)r.rOrrrrs r0r^zIPolys.dmp_diff_eval_insD!$--"2Aq!TZZ\4;;Wyy|&&v..r3ct|j|||jdz |j}t |t r|dt | j|S|SrJ)r]rHr(r)rCrlenrL)r.rOArs r0r]zIPolys.dmp_eval_tailsSt}}Q/DJJqL$++N fd ##a&>,,V4 4Mr3cl|jt|j|||jSr,)rLr_rHr)r.rOps r0r_zIPolys.dup_trunc'yq)91dkkJKKr3c|jt|j||ddj||jdz |jSrJ)rLr`rHr(r)rus r0r`zIPolys.dmp_truncsJyq)948;L;LQ;OQUQ[Q[\]Q]_c_j_jkllr3c|jt|j|||jdz |jSrJ)rLrarHr(r)rs r0razIPolys.dmp_ground_truncrgr3cj|jt|j||jSr,)rLrbrHr)rns r0rbzIPolys.dup_monics%yq)94;;GHHr3c|jt|j||jdz |jSrJ)rLrcrHr(r)rns r0rczIPolys.dmp_ground_monics3/ a0@$**Q,PTP[P[\]]r3ct|j||j||j\}}}||j||j|fSr,)rhrHr)rLr.rOrvrPFGs r0rhzIPolys.dup_extractsKdmmA. a0@$++N1a4??1%tq'9::r3ct|j||j||jdz |j\}}}||j ||j |fSrJ)rirHr(r)rLrs r0rizIPolys.dmp_ground_extractsY$T]]1%5t}}Q7GTUW[WbWbc1a4??1%tq'9::r3ct|j|jdj|j\}}|j ||j |fSrJ)rjrFr1rHr)rLr.rOrrs r0rjzIPolys.dup_real_imagsOTYYq\..q1::{4==+;T]]1=MtzzZ[|]a]h]hijjr3ct|j||j}tt |j |Sr,)rrrHr)rrrL)r.rO componentss r0rrzIPolys.dup_decomposes1"4==#3T[[A C455r3ct|j||jdz |j}|j j |SrJ)rsrHr(r)r7rLr.rOrs r0rszIPolys.dmp_lift s=$--*DJJqL$++F~~**622r3cLt|j||jSr,)rtrHr)rns r0rtzIPolys.dup_sign_variations$rr3ct|j||j|\}}|r+|j|jj }n|}||j |fS)Nconvertr))rurHr)r5get_ringrLr.rOrrPrrDs r0ruzIPolys.dup_clear_denoms'sZ a 0$++wO1 ::T[[%9%9%;: L1a"DOOA$68JKKr3ct|j||j||jdz |j\}}}|j ||j ||j |fSrJ)r{rHr(r)rLrs r0r{zIPolys.dmp_gcdexBs^DMM!,dmmA.> 1 dkkZ1a"DOOA$68JKKr3c|jt|j||j||jSr,)rLr|rHr)rus r0r|zIPolys.dup_invertFrr3c|jt|j||j||jdz |jSrJ)rLr}rHr(r)rus r0r}zIPolys.dmp_invertHrr3ct|j||j||j}tt |j |Sr,)r~rHr)rrrLr.rOrvprss r0r~zIPolys.dup_euclidean_prsK< a 0$--2BDKKPC-..r3ct|j||j||jdz |j}t t |j |SrJ)rrHr(r)rrrLrs r0rzIPolys.dmp_euclidean_prsNI a 0$--2BDJJqLRVR]R]^C-..r3ct|j||j||j}tt |j |Sr,)rrHr)rrrLrs r0rzIPolys.dup_primitive_prsQrr3ct|j||j||jdz |j}t t |j |SrJ)rrHr(r)rrrLrs r0rzIPolys.dmp_primitive_prsTrr3ct|j||j||j\}}tt |j ||fSr,)rrHr)rrrLr.rOrvrsress r0rzIPolys.dup_inner_subresultantsXsH+DMM!,NPTP[P[\ TS#./66r3ct|j||j||jdz |j\}}t t |j ||fSrJ)rrHr(r)rrrLr s r0rzIPolys.dmp_inner_subresultants[sW,T]]1-=t}}Q?OQUQ[Q[\]Q]_c_j_jk TS#./66r3ct|j||j||j}tt |j |Sr,)rrHr)rrrLrs r0rzIPolys.dup_subresultants_rr3ct|j||j||jdz |j}t t |j |SrJ)rrHr(r)rrrLrs r0rzIPolys.dmp_subresultantsbrr3ct|j||j||j\}}|tt |j |fSr,)rrHr)rrrLr.rOrvresrs r0rzIPolys.dup_prs_resultantfsE$T]]1%5t}}Q7GUST#doos3455r3ct|j||j||jdz |j\}}|ddj |t t |j|fSrJ)rrHr(r)rLrrrs r0rzIPolys.dmp_prs_resultantisd$T]]1%5t}}Q7GTUW[WbWbcSQR##C($s4??C/H*IJJr3ct|j||j||j||jdz |j}|ddj |SrJ)rrHr=r(r)rL)r.rOrvrrs r0rzIPolys.dmp_zz_modular_resultantms[&t}}Q'7q9I4??[\K]_c_i_ijk_kmqmxmxyABx""3''r3ct|j||j||jdz |j}|ddj |SrJ)rrHr(r)rLr.rOrvrs r0rzIPolys.dmp_zz_collins_resultantpK&t}}Q'7q9I4::VW 1 dkkZ c4 8&&s+ +Jr3cLt|j||jSr,)rrHr)rns r0rzIPolys.dup_discriminants a 0$++>>r3ct|j||jdz |j}t |t r|ddj |S|SrJ)rrHr(r)rCrrL)r.rOdiscs r0rzIPolys.dmp_discriminantsK a 0$**Q, L dD !8&&t, ,Kr3ct|j||j||j\}}}|j||j||j|fSr,)rrHr)rLr.rOrvHrrs r0rzIPolys.dup_rr_prs_gcdT q!14==3CT[[Q1a"DOOA$68JKKr3ct|j||j||j\}}}|j||j||j|fSr,)rrHr)rLr s r0rzIPolys.dup_ff_prs_gcdr"r3ct|j||j||jdz |j\}}}|j ||j ||j |fSrJ)rrHr(r)rLr s r0rzIPolys.dmp_rr_prs_gcdb q!14==3CTZZPQ\SWS^S^_1a"DOOA$68JKKr3ct|j||j||jdz |j\}}}|j ||j ||j |fSrJ)rrHr(r)rLr s r0rzIPolys.dmp_ff_prs_gcdr%r3ct|j||j||j\}}}|j||j||j|fSr,)rrHr)rLr s r0rzIPolys.dup_zz_heu_gcdr"r3ct|j||j||jdz |j\}}}|j ||j ||j |fSrJ)rrHr(r)rLr s r0rzIPolys.dmp_zz_heu_gcdr%r3ct|j||j||j\}}}|j||j||j|fSr,)rrHr)rLr s r0rzIPolys.dup_qq_heu_gcdr"r3ct|j||j||jdz |j\}}}|j ||j ||j |fSrJ)rrHr(r)rLr s r0rzIPolys.dmp_qq_heu_gcdr%r3ct|j||j||j\}}}|j||j||j|fSr,)rrHr)rLr s r0rzIPolys.dup_inner_gcdsT a 0$--2BDKKP1a"DOOA$68JKKr3ct|j||j||jdz |j\}}}|j ||j ||j |fSrJ)rrHr(r)rLr s r0rzIPolys.dmp_inner_gcdsa a 0$--2BDJJqLRVR]R]^1a"DOOA$68JKKr3ct|j||j||j}|j|Sr,)rrHr)rLr.rOrvr!s r0rzIPolys.dup_gcd5 DMM!$dmmA&6 Dq!!r3ct|j||j||jdz |j}|j |SrJ)rrHr(r)rLr.s r0rzIPolys.dmp_gcd? DMM!$dmmA&6 1 dkk Rq!!r3ct|j||j||j}|j|Sr,)rrHr)rLr.s r0rzIPolys.dup_rr_lcm5 t}}Q'q)94;; Gq!!r3ct|j||j||j}|j|Sr,)rrHr)rLr.s r0rzIPolys.dup_ff_lcmr3r3ct|j||j||j}|j|Sr,)rrHr)rLr.s r0rzIPolys.dup_lcmr/r3ct|j||j||jdz |j}|j |SrJ)rrHr(r)rLr.s r0rzIPolys.dmp_rr_lcm? t}}Q'q)94::a< Uq!!r3ct|j||j||jdz |j}|j |SrJ)rrHr(r)rLr.s r0rzIPolys.dmp_ff_lcmr7r3ct|j||j||jdz |j}|j |SrJ)rrHr(r)rLr.s r0rzIPolys.dmp_lcmr1r3cPt|j||j}|Sr,)rdrHr)r.rOconts r0rdzIPolys.dup_contents 4==+T[[9 r3cxt|j||j\}}||j|fSr,)rfrHr)rLr.rOr<prims r0rfzIPolys.dup_primitives3"4==#3T[[A dT__T***r3ct|j||jdz |j}t |t r|ddj |S|SrJ)rrHr(r)rCrrLr;s r0rzIPolys.dmp_contentsK4==+TZZ\4;;G dD !8&&t, ,Kr3ct|j||jdz |j\}}t |t r%|ddj ||j |fS||j |fSrJ)rrHr(r)rCrrLr>s r0rzIPolys.dmp_primitivesl"4==#3TZZ\4;;O d dD !H''-tt/DE E$//$/0 0r3clt|j||jdz |j}|SrJ)rerHr(r)r;s r0rezIPolys.dmp_ground_contents*!$--"2DJJqL$++N r3ct|j||jdz |j\}}||j |fSrJ)rgrHr(r)rLr>s r0rgzIPolys.dmp_ground_primitives=)$--*:DJJqL$++V ddood+,,r3ct|j||j||j|}|s+|\}}}}|||j||j|fS|\}}|j||j|fS)Ninclude)rrHr)rL r.rOrvrFrcfcgrrs r0rzIPolys.dup_cancelsDMM!,dmmA.> U\]!LBAqDOOA.0BC CDAqOOA&(:; ;r3c4t|j||j||jdz |j|}|s+|\}}}}|||j ||j |fS|\}}|j ||j |fS)NrKrE)rrHr(r)rLrGs r0rzIPolys.dmp_cancelsDMM!,dmmA.> 1 dkkcjk!LBAqDOOA.0BC CDAqOOA&(:; ;r3c t|j|tt|j||j}|Dcgc]\}}|j ||fc}}Scc}}wr,)rrHrrr)rLr.rOfactorsrvks r0rzIPolys.dup_trial_divisionsV$T]]1%5tC wTQ$//!$a(>>>s A*c t|j|tt|j||jdz |j }|Dcgc]\}}|j ||fc}}Scc}}wrJ)rrHrrr(r)rLrLs r0rzIPolys.dmp_trial_divisionse$T]]1%5tC wTQ$//!$a(>>>sA8cLt|j||jSr,)rrHr)rns r0rzIPolys.dup_zz_mignotte_bounds$T]]1%5t{{CCr3cht|j||jdz |jSrJ)rrHr(r)rns r0rzIPolys.dmp_zz_mignotte_bounds&$T]]1%5tzz!|T[[QQr3c |j}t||||||||||||j\}} } } |j||j| |j| |j| fSr,)rHrr)rL) r.rrOrvr~rrDrr!STs r0rzIPolys.dup_zz_hensel_stepsu MM'1Q41qtQqT1Q4U 1a"DOOA$68JDOO\]L^__r3c |j}t|||tt||||j}tt|j |Sr,)rHrrrr)rL)r.rrOf_listlrSrs r0rzIPolys.dup_zz_hensel_liftsF MM"1adDQ,@!T[[QC/00r3ct|j||j}|Dcgc]\}}|j||fc}}Scc}}wr,)rrHr)rLrLs r0rzIPolys.dup_zz_zassenhaussA#DMM!$4dkkB5<>TQ$//!$a(>>>A cLt|j||jSr,)rrHr)rns r0rzIPolys.dup_zz_irreducible_p#DMM!$4dkkBBr3cPt|j||j|S)N) irreducible)rrHr))r.rOr^s r0rzIPolys.dup_cyclotomic_ps a 0$++;WWr3cPt||j}|j|Sr,)rr)rL)r.rjrs r0rzIPolys.dup_zz_cyclotomic_poly s! "1dkk 2q!!r3ct|j||j}||Stt |j |Sr,)rrHr)rrrLrs r0rzIPolys.dup_zz_cyclotomic_factor s;)$--*:DKKH >MDOOV45 5r3c2t||||jSr,)rr))r.Ecscts r0rzIPolys.dmp_zz_wang_non_divisorss'2r4;;??r3c |dd}|D cgc]\}} |j|| f}}} |dd} tt| j|}t|j|||||||jdz |j \}} } |j |tt| j | tt|j | fScc} }wrJ)rHrrrr(r)rL) r.rOrUrcrbr!rmvrrNuvHHCCs r0rzIPolys.dmp_zz_wang_lead_coeffss !"X./ 1dar{{1~q! 1 1 "1X R[[!$ %+DMM!,#?c"--Y[F\A]]] 2sCcttt|j||||j}tt|j |Sr,)rrrrHr)rL)r.rrrrs r0rzIPolys.dup_zz_diophantine%s<#DT]]A)>$?At{{SC011r3c ttt|j||j|||||jdz |j }tt|j |SrJ)rrrrHr(r)rL)r.rrPrr?rrs r0rzIPolys.dmp_zz_diophantine*s^#DT]]A)>$?qAQSTVWYZ\`\f\fgh\hjnjujuvC011r3c >|dd}|dd}tt|j|}tt|j|}t|j||||||jdz |j }tt|j |SrJ)rrrHrr(r)rL) r.rOr!rrrrgrfrs r0rz!IPolys.dmp_zz_wang_hensel_lifting/s "1X !"X R[[!$ % #bkk2& '+DMM!,+>??>sA ct|j||j\}}||Dcgc]\}}|j||fc}}fScc}}wr,)rrHr)rLr.rOrqrMrvrNs r0rzIPolys.dup_zz_factor?J&t}}Q'7EwWFTQ$//!,a0FGGFAct|j||jdz |j\}}||Dcgc]\}}|j ||fc}}fScc}}wrJ)rrHr(r)rLrss r0rzIPolys.dmp_zz_factorBT&t}}Q'7At{{SwWFTQ$//!,a0FGGFAct|j||j\}}||Dcgc]\}}|j||fc}}fScc}}wr,)rrHr)rLrss r0rzIPolys.dup_qq_i_factorFJ(q)94;;GwWFTQ$//!,a0FGGFruct|j||jdz |j\}}||Dcgc]\}}|j ||fc}}fScc}}wrJ)rrHr(r)rLrss r0rzIPolys.dmp_qq_i_factorIT(q)94::a<UwWFTQ$//!,a0FGGFrxct|j||j\}}||Dcgc]\}}|j||fc}}fScc}}wr,)rrHr)rLrss r0rzIPolys.dup_zz_i_factorMrzruct|j||jdz |j\}}||Dcgc]\}}|j ||fc}}fScc}}wrJ)rrHr(r)rLrss r0rzIPolys.dmp_zz_i_factorPr|rxct|j||j\}}||Dcgc]\}}|j||fc}}fScc}}wr,)rrHr)rLrss r0rzIPolys.dup_ext_factorTsJ' a(8$++FwWFTQ$//!,a0FGGFruct|j||jdz |j\}}||Dcgc]\}}|j ||fc}}fScc}}wrJ)rrHr(r)rLrss r0rzIPolys.dmp_ext_factorWsT' a(8$**Q, TwWFTQ$//!,a0FGGFrxct|j||j\}}||Dcgc]\}}|j||fc}}fScc}}wr,)rrHr)rLrss r0rzIPolys.dup_gf_factor[rtruct|j||jdz |j\}}||Dcgc]\}}|j ||fc}}fScc}}wrJ)rrHr(r)rLrss r0rzIPolys.dmp_gf_factor^rwrxct|j||j\}}||Dcgc]\}}|j||fc}}fScc}}wr,)rrHr)rLrss r0rzIPolys.dup_factor_listbrzruct|j||j}|Dcgc]\}}|j||fc}}Scc}}wr,)rrHr)rLrLs r0rzIPolys.dup_factor_list_includeesA)$--*:DKKH5<>TQ$//!$a(>>>rZct|j||jdz |j\}}||Dcgc]\}}|j ||fc}}fScc}}wrJ)rrHr(r)rLrss r0rzIPolys.dmp_factor_listir|rxct|j||jdz |j}|Dcgc]\}}|j ||fc}}Scc}}wrJ)rrHr(r)rLrLs r0rzIPolys.dmp_factor_list_includelsK)$--*:DJJqL$++V5<>TQ$//!$a(>>>AcLt|j||jSr,)rrHr)rns r0rzIPolys.dup_irreducible_pps q!14;;??r3cht|j||jdz |jSrJ)rrHr(r)rns r0rzIPolys.dmp_irreducible_prs& q!14::a<MMr3ct|j||j}tt |j |Sr,)rrHr)rrrL)r.rOseqs r0rzIPolys.dup_sturmus1 a($++6C-..r3cLt|j||jSr,)rrHr)rns r0rzIPolys.dup_sqf_pysq)4;;77r3cht|j||jdz |jSrJ)rrHr(r)rns r0rzIPolys.dmp_sqf_p{s&q)4::a<EEr3ct|j||jdz |j}|j j |SrJ)rrHr(r)r7rLris r0rzIPolys.dmp_norm~s= T]]1%tzz!|T[[ A~~**1--r3ct|j||j\}}}||j||j j|fSr,)rrHr)rLr7r.rOrrRs r0rzIPolys.dup_sqf_normsIt}}Q/=1a4??1%t~~'7'B'B1'EFFr3ct|j||jdz |j\}}}||j ||j j |fSrJ)rrHr(r)rLr7rs r0rzIPolys.dmp_sqf_normsSt}}Q/At{{K1a4??1%t~~'7'B'B1'EFFr3cj|jt|j||jSr,)rLrrHr)rns r0rzIPolys.dup_gf_sqf_part%t}}Q/?MNNr3cj|jt|j||jSr,)rLrrHr)rns r0rzIPolys.dmp_gf_sqf_partrr3cj|jt|j||jSr,)rLrrHr)rns r0rzIPolys.dup_sqf_parts%|DMM!,TQ$//!$a(>>>sAct|j||jdz |j|\}}||Dcgc]\}}|j ||fc}}fScc}}wr)rrHr(r)rLrs r0rzIPolys.dmp_sqf_listsW%dmmA&6 1 dkkWZ[wWFTQ$//!,a0FGGFrct|j||jdz |j|}|Dcgc]\}}|j ||fc}}Scc}}wr)rrHr(r)rLrs r0rzIPolys.dmp_sqf_list_includesN&t}}Q'7At{{X[\5<>TQ$//!$a(>>>sAct|j||j}|Dcgc]\}}|j||fc}}Scc}}wr,)rrHr)rLrLs r0rzIPolys.dup_gff_listsAt}}Q/=5<>TQ$//!$a(>>>rZct|j||jdz |j}|Dcgc]\}}|j ||fc}}Scc}}wrJ)rrHr(r)rLrLs r0rzIPolys.dmp_gff_listsKt}}Q/At{{K5<>TQ$//!$a(>>>rcLt|j||jSr,)rrHr)rns r0rzIPolys.dup_root_upper_boundr\r3cLt|j||jSr,)rrHr)rns r0rzIPolys.dup_root_lower_boundr\r3cRt|j|||j|S)N)fast)rrHr))r.rOMrs r0rz IPolys.dup_step_refine_real_roots!(q)91dkkPTUUr3c Zt|j|||j|||||S)N)epsstepsdisjointrmobius)rrHr))r.rOrrrrrrs r0rz!IPolys.dup_inner_refine_real_roots7)$--*:At{{PS[`ksz~HNO Or3c Zt|j||||j||||SN)rrrr)rrHr)r.rOrrrrrrs r0rz!IPolys.dup_outer_refine_real_roots6)$--*:Aq$++SV^cnv~BC Cr3c Zt|j||||j||||Sr)rrHr)rs r0rzIPolys.dup_refine_real_roots+#DMM!$4aDKKSX]hpw{||r3cRt|j||j||S)N)rr)rrHr))r.rOrrs r0rz#IPolys.dup_inner_isolate_real_rootss!+DMM!,tzz!|T[[*YZ[[r3c ddlm}tt|j||j dz |j S)Nr)dmp_fateman_poly_F_2rK)rrrrrLr(r))r.rs r0fateman_poly_F_2zIPolys.fateman_poly_F_2rr3c ddlm}tt|j||j dz |j S)Nr)dmp_fateman_poly_F_3rK)rrrrrLr(r))r.rs r0fateman_poly_F_3zIPolys.fateman_poly_F_3rr3c t|j|jDcgc]2}|jjj ||j4c}Scc}wr,)rrFrHr)domr)r.r:rPs r0 to_gf_densezIPolys.to_gf_densesG499U\K]KfKfKhja$++//11!T[[Ajkkjs7A%c||jt||jdz |jjSrJ)r@rSr(r)rr9s r0 from_gf_densezIPolys.from_gf_denses*~~k'4::a<QRRr3c6t|j|Sr,)rrrns r0rzIPolys.gf_degrees))!,--r3c`t|j||jjSr,)rrr)rrns r0rz IPolys.gf_LC"T%%a($++//::r3c`t|j||jjSr,)rrr)rrns r0rz IPolys.gf_TCrr3cT|jt|j|Sr,)rrrrns r0rzIPolys.gf_strips#!!(4+;+;A+>"?@@r3c~|jt|j||jjSr,)rrrr)rnrns r0gf_trunczIPolys.gf_truncs-!!(4+;+;A+> "PQQr3c|jt|j||jj|jj Sr,)rrrr)rnrrns r0 gf_normalzIPolys.gf_normal<!!(4+;+;A+> QUQ\Q\Q`Q`"abbr3c|jt||jj|jjSr,)rrr)rnrrns r0rzIPolys.gf_from_dicts,!!,q$++//4;;??"STTr3cdt|j||jj|SN) symmetric)rrr)rnr.rOrs r0rzIPolys.gf_to_dicts$$**1-t{{)TTr3c`|jt||jjSr,)rrr)rnrns r0rzIPolys.gf_from_int_polys#!!"21dkkoo"FGGr3cdt|j||jj|Sr)rrr)rnrs r0rzIPolys.gf_to_int_polys$d..q14;;??iXXr3c|jt|j||jj|jj Sr,)rrrr)rnrrns r0rz IPolys.gf_neg7!!&)9)9!)!!-0@0@0CQ Y]YdYdYhYh"ijjr3c|jt|j|||jj|jj Sr,)rrrr)rnrrs r0rzIPolys.gf_sub_groundrr3c|jt|j|||jj|jj Sr,)rrrr)rnrrs r0rzIPolys.gf_mul_groundrr3c|jt|j|||jj|jj Sr,)rrrr)rnrrs r0rzIPolys.gf_quo_groundrr3c|jt|j||j||jj|jj Sr,)rrrr)rnrrus r0rz IPolys.gf_addN!!&)9)9!)N>Nq>QSWS^S^SbSbdhdododsds"tuur3c|jt|j||j||jj|jj Sr,)rrrr)rnrrus r0rz IPolys.gf_subrr3c|jt|j||j||jj|jj Sr,)rrrr)rnrrus r0rz IPolys.gf_mul rr3c|jt|j||jj|jj Sr,)rrrr)rnrrns r0rz IPolys.gf_sqr rr3c |jt|j||j||j||jj|jj Sr,)rrrr)rnrr}s r0rzIPolys.gf_add_mul{!!*T-=-=a-@$BRBRSTBUW[WgWghiWjlplwlwl{l{~B~I~I~M~M#NO Or3c |jt|j||j||j||jj|jj Sr,)rrrr)rnrr}s r0rzIPolys.gf_sub_mulrr3c |jttt|j||j j |j jSr,)rrrrrr)rnr)r.rs r0rzIPolys.gf_expandsC!!)DT5E5Eq1I,JDKKOO]a]h]h]l]l"mnnr3ct|j||j||jj|jj\}}|j ||j |fSr,)rrr)rnrrrs r0rz IPolys.gf_divsbd&&q)4+;+;A+> QUQ\Q\Q`Q`a1!!!$d&8&8&;;;r3c|jt|j||j||jj|jj Sr,)rrrr)rnrrus r0rz IPolys.gf_remrr3c|jt|j||j||jj|jj Sr,)rrrr)rnrrus r0rz IPolys.gf_quorr3c|jt|j||j||jj|jj Sr,)rrrr)rnrrus r0rzIPolys.gf_exquoO!!(4+;+;A+>@P@PQR@SUYU`U`UdUdfjfqfqfufu"vwwr3c|jt|j|||jjSr,)rrrr)rris r0rzIPolys.gf_lshift!/!!)D,<,!!&)9)9!).>q.A4;;??TXT_T_TcTc"deer3ct|j||jj|jj\}}||Dcgc]\}}|j ||fc}}fScc}}wr,)rrr)rnrrrs r0 gf_sqf_listzIPolys.gf_sqf_list\s\$T%5%5a%8$++//4;;??[wwHtq!++A.2HHHHA0ct|j||jj|jjSr,)rrr)rnrrns r0rzIPolys.gf_Qmatrix`s,$**1-t{{ PPr3ct|j||jj|jj}|Dcgc]}|j |c}Scc}wr,)rrr)rnrrr.rOrMrvs r0rzIPolys.gf_berlekampbJt//2DKKOOT[[__U0791##A&999 A$ct|j||jj|jj}|Dcgc]\}}|j ||fc}}Scc}}wr,)rrr)rnrrrLs r0rzIPolys.gf_ddf_zassenhausfsS#D$4$4Q$7$++//Z8?A1$$$Q'+AAA A+ct|j||jj|jj}|Dcgc]}|j |c}Scc}wr,)rrr)rnrrr.rOrjrMrvs r0rzIPolys.gf_edf_zassenhausisJ#D$4$4Q$7$++//Z0791##A&999r&ct|j||jj|jj}|Dcgc]\}}|j ||fc}}Scc}}wr,)rrr)rnrrrLs r0rzIPolys.gf_ddf_shoupmsSt//2DKKOOT[[__U8?A1$$$Q'+AAAr(ct|j||jj|jj}|Dcgc]}|j |c}Scc}wr,)rrr)rnrrr*s r0rzIPolys.gf_edf_shouppr%r&ct|j||jj|jj}|Dcgc]}|j |c}Scc}wr,)rrr)rnrrr$s r0rzIPolys.gf_zassenhaustsJ 0 0 3T[[__dkkooV0791##A&999r&ct|j||jj|jj}|Dcgc]}|j |c}Scc}wr,)rrr)rnrrr$s r0rzIPolys.gf_shoupwsJ4++A. Q0791##A&999r&ct|j||jj|jj|\}}||Dcgc]}|j |c}fScc}w)N)method)r rr)rnrr)r.rOr0rqrMrvs r0r zIPolys.gf_factor_sqf{sV&t'7'7':DKKOOT[[__eklww@!**1-@@@@sA+ct|j||jj|jj\}}||Dcgc]\}}|j ||fc}}fScc}}wr,)r!rr)rnrrrss r0r!zIPolys.gf_factor~s\"4#3#3A#6 YwwHtq!++A.2HHHHr!)NNN)F)T)NN)NNNFF)NNNF)NF)NNNFFFr,(,__name__ __module__ __qualname____annotations__r1r5r7r;r=r@rFrHrLr r r r rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrTrUrWrXrYrVrZr[r\r^r]r_r`rarbrcrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrdrfrrrergrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr r r r r rrrrrrrrrrr rrrrrrrrr r!r-r3r0r$r$s "!  J N       ,-OR~R~R~Q_Q_Q_Q_SaMMGUGUYgYgo}o}YgGUJX8ZZ\8hhj88888YY[8ggi;I:HBPYg5 5JJ,:@P^KY_d:+//LmaI^;;8JLLZq]k63B''M88LL\j////77//6K(((N?LLLLLLLLLL""""""""+ 1-<<??DR`1 ?CX"6@^2 2 27@HHHHHHHHHHH?H?@N/8F.GGOOLZHHH?H???CCVOC}_DDBx[UizAj\\\lS.;;ARcUUHYakkkkvvvaOOo<vvxVVd}WvvxcbQWzS<RWXWWOfIQ:B:B:::AIr3r$N(0__doc__ __future__rtypingrsympy.core.exprrsympy.polys.domains.domainrsympy.polys.orderingsrrBr sympy.polys.densearithr r r r rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrCrDrErFrGrHrIsympy.polys.densebasicrJrKrLrMrNrOrPrQrRrSsympy.polys.densetoolsrTrUrVrWrXrYrZr[r\r]r^r_r`rarbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwsympy.polys.euclidtoolsrxryrzr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrsympy.polys.factortoolsrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrsympy.polys.rootisolationrrrrrrrrrrrrrrrrrrsympy.polys.sqfreetoolsrrrrrrrrrrrrrrrrrsympy.polys.galoistoolsrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr r r r r rrrrrrrrrrrrrrrrrrr r!sympy.utilitiesr"r$r-r3r0rEsO>" $13-//////1111111133--********....******+++-+++-----***,***,//..66--))))00--0.003++.++.03,,3,3.507.50-,,,0..0+633-22--..5555;551;55<<<1442222222211++..+..+/1..669966584:<51<;66>/1333322113;3;55/::?@@:BFF@<A:=C?;DDDDD 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#"OIOIOIr3