o
    oh                     @   s  d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ dd	lm	Z	 dd
lm
Z
 ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ dd lm Z  dd!lm!Z! dd"lm"Z" dd#lm#Z# dd$lm$Z$ dd%lm%Z% dd&lm&Z& dd'lm'Z' dd(lm(Z( dd)lm)Z) dd*lm*Z* dd+lm+Z+ dd,lm,Z, dd-lm-Z- dd.lm.Z. dd/lm/Z/ dd0lm0Z0 dd1lm1Z1 dd2lm2Z2 dd3lm3Z3 dd4lm4Z4 dd5lm5Z5 dd6lm6Z6 dd7lm7Z7 dd8lm8Z8 dd9lm9Z9 dd:lm:Z: dd;lm;Z; dd<lm<Z< dd=lm=Z= dd>lm>Z> dd?lm?Z? dd@lm@Z@ ddAlmAZA ddBlBmCZC ddClBmDZD ddDlBmEZE ddElBmFZF ddFlBmGZG ddGlBmHZH ddHlBmIZI ddIlBmJZJ ddJlBmKZK ddKlBmLZL ddLlMmNZN ddMlMmOZO ddNlMmPZP ddOlMmQZQ ddPlMmRZR ddQlMmSZS ddRlMmTZT ddSlMmUZU ddTlMmVZV ddUlMmWZW ddVlMmXZX ddWlMmYZY ddXlMmZZZ ddYlMm[Z[ ddZlMm\Z\ dd[lMm]Z] dd\lMm^Z^ dd]lMm_Z_ dd^lMm`Z` dd_lMmaZa dd`lMmbZb ddalMmcZc ddblMmdZd ddclMmeZe dddlMmfZf ddelMmgZg ddflMmhZh ddglMmiZi ddhlMmjZj ddilMmkZk ddjlMmlZl ddklMmmZm ddllMmnZn ddmlMmoZo ddnlMmpZp ddolMmqZq ddplrmsZs ddqlrmtZt ddrlrmuZu ddslrmvZv ddtlrmwZw ddulrmxZx ddvlrmyZy ddwlrmzZz ddxlrm{Z{ ddylrm|Z| ddzlrm}Z} dd{lrm~Z~ dd|lrmZ dd}lrmZ dd~lrmZ ddlrmZ ddlrmZ ddlrmZ ddlrmZ ddlrmZ ddlrmZ ddlrmZ ddlrmZ ddlrmZ ddlrmZ ddlrmZ ddlrmZ ddlrmZ ddlrmZ ddlrmZ ddlrmZ ddlrmZ ddlrmZ ddlrmZ ddlrmZ ddlrmZ ddlrmZ ddlrmZ ddlrmZ ddlrmZ ddlrmZ ddlrmZ ddlrmZ ddlrmZ ddlrmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ ddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm 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m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mZmZmZmZmZmZm Z  ddӐl!m"Z" e"G ddՄ dՃZ#dS )z8Compatibility interface between dense and sparse polys.     )dup_add_term)dmp_add_term)dup_sub_term)dmp_sub_term)dup_mul_term)dmp_mul_term)dup_add_ground)dmp_add_ground)dup_sub_ground)dmp_sub_ground)dup_mul_ground)dmp_mul_ground)dup_quo_ground)dmp_quo_ground)dup_exquo_ground)dmp_exquo_ground)
dup_lshift)
dup_rshift)dup_abs)dmp_abs)dup_neg)dmp_neg)dup_add)dmp_add)dup_sub)dmp_sub)dup_add_mul)dmp_add_mul)dup_sub_mul)dmp_sub_mul)dup_mul)dmp_mul)dup_sqr)dmp_sqr)dup_pow)dmp_pow)dup_pdiv)dup_prem)dup_pquo)
dup_pexquo)dmp_pdiv)dmp_prem)dmp_pquo)
dmp_pexquo)
dup_rr_div)
dmp_rr_div)
dup_ff_div)
dmp_ff_div)dup_div)dup_rem)dup_quo)	dup_exquo)dmp_div)dmp_rem)dmp_quo)	dmp_exquo)dup_max_norm)dmp_max_norm)dup_l1_norm)dmp_l1_norm)dup_l2_norm_squared)dmp_l2_norm_squared)
dup_expand)
dmp_expand)dup_LC)dmp_LC)dup_TC)dmp_TC)dmp_ground_LC)dmp_ground_TC)
dup_degree)
dmp_degree)dmp_degree_in)dmp_to_dict)dup_integrate)dmp_integrate)dmp_integrate_in)dup_diff)dmp_diff)dmp_diff_in)dup_eval)dmp_eval)dmp_eval_in)dmp_eval_tail)dmp_diff_eval_in)	dup_trunc)	dmp_trunc)dmp_ground_trunc)	dup_monic)dmp_ground_monic)dup_content)dmp_ground_content)dup_primitive)dmp_ground_primitive)dup_extract)dmp_ground_extract)dup_real_imag)
dup_mirror)	dup_scale)	dup_shift)	dmp_shift)dup_transform)dup_compose)dmp_compose)dup_decompose)dmp_lift)dup_sign_variations)dup_clear_denoms)dmp_clear_denoms)
dup_revert)dup_half_gcdex)dmp_half_gcdex)	dup_gcdex)	dmp_gcdex)
dup_invert)
dmp_invert)dup_euclidean_prs)dmp_euclidean_prs)dup_primitive_prs)dmp_primitive_prs)dup_inner_subresultants)dup_subresultants)dup_prs_resultant)dup_resultant)dmp_inner_subresultants)dmp_subresultants)dmp_prs_resultant)dmp_zz_modular_resultant)dmp_zz_collins_resultant)dmp_qq_collins_resultant)dmp_resultant)dup_discriminant)dmp_discriminant)dup_rr_prs_gcd)dup_ff_prs_gcd)dmp_rr_prs_gcd)dmp_ff_prs_gcd)dup_zz_heu_gcd)dmp_zz_heu_gcd)dup_qq_heu_gcd)dmp_qq_heu_gcd)dup_inner_gcd)dmp_inner_gcd)dup_gcd)dmp_gcd)
dup_rr_lcm)
dup_ff_lcm)dup_lcm)
dmp_rr_lcm)
dmp_ff_lcm)dmp_lcm)dmp_content)dmp_primitive)
dup_cancel)
dmp_cancel)dup_trial_division)dmp_trial_division)dup_zz_mignotte_bound)dmp_zz_mignotte_bound)dup_zz_hensel_step)dup_zz_hensel_lift)dup_zz_zassenhaus)dup_zz_irreducible_p)dup_cyclotomic_p)dup_zz_cyclotomic_poly)dup_zz_cyclotomic_factor)dup_zz_factor_sqf)dup_zz_factor)dmp_zz_wang_non_divisors)dmp_zz_wang_lead_coeffs)dup_zz_diophantine)dmp_zz_diophantine)dmp_zz_wang_hensel_lifting)dmp_zz_wang)dmp_zz_factor)dup_qq_i_factor)dup_zz_i_factor)dmp_qq_i_factor)dmp_zz_i_factor)dup_ext_factor)dmp_ext_factor)dup_gf_factor)dmp_gf_factor)dup_factor_list)dup_factor_list_include)dmp_factor_list)dmp_factor_list_include)dup_irreducible_p)dmp_irreducible_p)	dup_sturm)dup_root_upper_bound)dup_root_lower_bound)dup_step_refine_real_root)dup_inner_refine_real_root)dup_outer_refine_real_root)dup_refine_real_root)dup_inner_isolate_real_roots) dup_inner_isolate_positive_roots) dup_inner_isolate_negative_roots)dup_isolate_real_roots_sqf)dup_isolate_real_roots)dup_isolate_real_roots_list)dup_count_real_roots)dup_count_complex_roots)dup_isolate_complex_roots_sqf)dup_isolate_all_roots_sqf)dup_isolate_all_roots)	dup_sqf_p	dmp_sqf_pdmp_normdup_sqf_normdmp_sqf_normdup_gf_sqf_partdmp_gf_sqf_partdup_sqf_partdmp_sqf_partdup_gf_sqf_listdmp_gf_sqf_listdup_sqf_listdup_sqf_list_includedmp_sqf_listdmp_sqf_list_includedup_gff_listdmp_gff_list)8	gf_degreegf_LCgf_TCgf_stripgf_from_dict
gf_to_dictgf_from_int_polygf_to_int_polygf_neggf_add_groundgf_sub_groundgf_mul_groundgf_quo_groundgf_addgf_subgf_mulgf_sqr
gf_add_mul
gf_sub_mul	gf_expandgf_divgf_remgf_quogf_exquo	gf_lshift	gf_rshiftgf_pow
gf_pow_modgf_gcdgf_lcmgf_cofactorsgf_gcdexgf_monicgf_diffgf_evalgf_multi_eval
gf_composegf_compose_modgf_trace_map	gf_randomgf_irreduciblegf_irred_p_ben_orgf_irred_p_rabingf_irreducible_pgf_sqf_pgf_sqf_part
gf_Qmatrixgf_berlekampgf_ddf_zassenhausgf_edf_zassenhausgf_ddf_shoupgf_edf_shoupgf_zassenhausgf_shoupgf_factor_sqf	gf_factor)publicc                   @   s  e Zd ZdZdZdZdZdZdd ZdTddZ	dd Z
dd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Zd.d/ Zd0d1 Zd2d3 Z d4d5 Z!d6d7 Z"d8d9 Z#d:d; Z$d<d= Z%d>d? Z&d@dA Z'dBdC Z(dDdE Z)dFdG Z*dHdI Z+dJdK Z,dLdM Z-dNdO Z.dPdQ Z/dRdS Z0dTdU Z1dVdW Z2dXdY Z3dZd[ Z4d\d] Z5d^d_ Z6d`da Z7dbdc Z8ddde Z9dfdg Z:dhdi Z;djdk Z<dldm Z=dndo Z>dpdq Z?drds Z@dtdu ZAdvdw ZBdxdy ZCdzd{ ZDd|d} ZEd~d ZFdd ZGdd ZHdd ZIdd ZJdd ZKdd ZLdd ZMdd ZNdd ZOdd ZPdd ZQdd ZRdd ZSdd ZTdd ZUdd ZVdd ZWdd ZXdd ZYdd ZZdd Z[dd Z\dd Z]dd Z^dd Z_dd Z`dd Zadd Zbdd Zcdd Zddd Zedd Zfdd ZgddÄ Zhddń ZiddǄ ZjddɄ Zkdd˄ Zldd̈́ Zmddτ Znddф Zoddӄ ZpddՄ Zqddׄ Zrddل Zsddۄ Ztdd݄ Zudd߄ ZvdUddZwdUddZxdd Zydd Zzdd Z{dd Z|dd Z}dd Z~dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd;d< Zd=d> Zd?d@ ZdAdB ZdCdD ZdVdFdGZdVdHdIZdJdK ZdLdM ZdNdO ZdPdQ ZdRdS ZdTdU ZdVdW ZdXdY ZdUdZd[Zd\d] Zd^d_ Zd`da Zdbdc Zddde Zdfdg Zdhdi ZdWdjdkZdldm Zdndo Zdpdq Zdrds Zdtdu Zdvdw Zdxdy Zdzd{ ZÐd|d} ZĐd~d ZŐdd ZƐdd Zǐdd ZȐdd Zɐdd Zʐdd Zːdd Z̐dd Z͐dd Zΐdd Zϐdd ZАdd Zѐdd ZҐdd ZӐdd ZԐdd ZՐdd Z֐dUddZאdUddZؐdUddZِdUddZڐdUddZېdUddZܐdd Zݐdd Zސdd Zߐdd ZdUddZdXddZdYddZdYddZdZddZdXddZdXddÄZdXdĐdńZdXdƐdǄZd[dȐdɄZdWdʐd˄ZdTd̐d̈́ZdYdΐdτZdXdАdфZdYdҐdӄZdԐdՄ Zd֐dׄ Zdؐdل Zdڐdۄ Zdܐd݄ Zdސd߄ Zdd Zdd Zdd Zdd Zdd Zdd ZdVddZdd ZdVddZdd Zdd Z dd Zdd Zdd Zdd Zdd Zd d Zdd Zdd Zdd Z	dd	 Z
d
d Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Zd.d/ Zd0d1 Zd2d3 Zd4d5 Z d6d7 Z!d8d9 Z"d:d; Z#d<d= Z$dUd>d?Z%d@dA Z&dBdC Z'dDdE Z(dFdG Z)dHdI Z*dJdK Z+dLdM Z,dNdO Z-d\dPdQZ.dRdS Z/dS (]  IPolysNc                 C      d S N )selfgenr  r  m/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/sympy/polys/compatibility.pydrop      zIPolys.dropc                 C   r  r  r  )r  symbolsdomainorderr  r  r!  clone   r#  zIPolys.clonec                 C   r  r  r  r  r  r  r!  	to_ground   r#  zIPolys.to_groundc                 C   r  r  r  r  elementr  r  r!  
ground_new   r#  zIPolys.ground_newc                 C   r  r  r  r*  r  r  r!  
domain_new   r#  zIPolys.domain_newc                 C   r  r  r  )r  dr  r  r!  	from_dict   r#  zIPolys.from_dictc                 C   s6   ddl m} t||r|j| kr|S td| |S )Nr   )PolyElementzdomain conversions)sympy.polys.ringsr0  
isinstanceringNotImplementedErrorr,  )r  r+  r0  r  r  r!  wrap  s   


zIPolys.wrapc                 C   s   |  | S r  )r5  to_denser*  r  r  r!  r6       zIPolys.to_densec                 C   s   |  t|| jd | jS N   )r/  rK   ngensr%  r*  r  r  r!  
from_dense     zIPolys.from_densec                 C      |  t| |||| jS r  )r;  r   r6  r%  r  fcir  r  r!  r        zIPolys.dup_add_termc                 C   4   |  t| || |d || jd | jS Nr   r9  )r;  r   r6  r5  r"  r:  r%  r>  r  r  r!  r        4zIPolys.dmp_add_termc                 C   r=  r  )r;  r   r6  r%  r>  r  r  r!  r     rB  zIPolys.dup_sub_termc                 C   rC  rD  )r;  r   r6  r5  r"  r:  r%  r>  r  r  r!  r     rE  zIPolys.dmp_sub_termc                 C   r=  r  )r;  r   r6  r%  r>  r  r  r!  r     rB  zIPolys.dup_mul_termc                 C   rC  rD  )r;  r   r6  r5  r"  r:  r%  r>  r  r  r!  r     rE  zIPolys.dmp_mul_termc                 C      |  t| ||| jS r  )r;  r   r6  r%  r  r?  r@  r  r  r!  r     r<  zIPolys.dup_add_groundc                 C   "   |  t| ||| jd | jS r8  )r;  r	   r6  r:  r%  rG  r  r  r!  r	         "zIPolys.dmp_add_groundc                 C   rF  r  )r;  r
   r6  r%  rG  r  r  r!  r
   "  r<  zIPolys.dup_sub_groundc                 C   rH  r8  )r;  r   r6  r:  r%  rG  r  r  r!  r   $  rI  zIPolys.dmp_sub_groundc                 C   rF  r  )r;  r   r6  r%  rG  r  r  r!  r   &  r<  zIPolys.dup_mul_groundc                 C   rH  r8  )r;  r   r6  r:  r%  rG  r  r  r!  r   (  rI  zIPolys.dmp_mul_groundc                 C   rF  r  )r;  r   r6  r%  rG  r  r  r!  r   *  r<  zIPolys.dup_quo_groundc                 C   rH  r8  )r;  r   r6  r:  r%  rG  r  r  r!  r   ,  rI  zIPolys.dmp_quo_groundc                 C   rF  r  )r;  r   r6  r%  rG  r  r  r!  r   .  r<  zIPolys.dup_exquo_groundc                 C   rH  r8  )r;  r   r6  r:  r%  rG  r  r  r!  r   0  rI  zIPolys.dmp_exquo_groundc                 C   rF  r  )r;  r   r6  r%  r  r?  nr  r  r!  r   3  r<  zIPolys.dup_lshiftc                 C   rF  r  )r;  r   r6  r%  rJ  r  r  r!  r   5  r<  zIPolys.dup_rshiftc                 C      |  t| || jS r  )r;  r   r6  r%  r  r?  r  r  r!  r   8     zIPolys.dup_absc                 C       |  t| || jd | jS r8  )r;  r   r6  r:  r%  rM  r  r  r!  r   :      zIPolys.dmp_absc                 C   rL  r  )r;  r   r6  r%  rM  r  r  r!  r   =  rN  zIPolys.dup_negc                 C   rO  r8  )r;  r   r6  r:  r%  rM  r  r  r!  r   ?  rP  zIPolys.dmp_negc                 C       |  t| || || jS r  )r;  r   r6  r%  r  r?  gr  r  r!  r   B  rP  zIPolys.dup_addc                 C   (   |  t| || || jd | jS r8  )r;  r   r6  r:  r%  rR  r  r  r!  r   D     (zIPolys.dmp_addc                 C   rQ  r  )r;  r   r6  r%  rR  r  r  r!  r   G  rP  zIPolys.dup_subc                 C   rT  r8  )r;  r   r6  r:  r%  rR  r  r  r!  r   I  rU  zIPolys.dmp_subc                 C   (   |  t| || || || jS r  )r;  r   r6  r%  r  r?  rS  hr  r  r!  r   L  rU  zIPolys.dup_add_mulc                 C   0   |  t| || || || jd | jS r8  )r;  r   r6  r:  r%  rW  r  r  r!  r   N     0zIPolys.dmp_add_mulc                 C   rV  r  )r;  r   r6  r%  rW  r  r  r!  r   P  rU  zIPolys.dup_sub_mulc                 C   rY  r8  )r;  r   r6  r:  r%  rW  r  r  r!  r   R  rZ  zIPolys.dmp_sub_mulc                 C   rQ  r  )r;  r    r6  r%  rR  r  r  r!  r    U  rP  zIPolys.dup_mulc                 C   rT  r8  )r;  r!   r6  r:  r%  rR  r  r  r!  r!   W  rU  zIPolys.dmp_mulc                 C   rL  r  )r;  r"   r6  r%  rM  r  r  r!  r"   Z  rN  zIPolys.dup_sqrc                 C   rO  r8  )r;  r#   r6  r:  r%  rM  r  r  r!  r#   \  rP  zIPolys.dmp_sqrc                 C   rF  r  )r;  r$   r6  r%  rJ  r  r  r!  r$   ^  r<  zIPolys.dup_powc                 C   rH  r8  )r;  r%   r6  r:  r%  rJ  r  r  r!  r%   `  rI  zIPolys.dmp_powc                 C   2   t | || || j\}}| || |fS r  )r&   r6  r%  r;  r  r?  rS  qrr  r  r!  r&   c     zIPolys.dup_pdivc                 C   rQ  r  )r;  r'   r6  r%  rR  r  r  r!  r'   f  rP  zIPolys.dup_premc                 C   rQ  r  )r;  r(   r6  r%  rR  r  r  r!  r(   h  rP  zIPolys.dup_pquoc                 C   rQ  r  )r;  r)   r6  r%  rR  r  r  r!  r)   j  rP  zIPolys.dup_pexquoc                 C   :   t | || || jd | j\}}| || |fS r8  )r*   r6  r:  r%  r;  r\  r  r  r!  r*   m     &zIPolys.dmp_pdivc                 C   rT  r8  )r;  r+   r6  r:  r%  rR  r  r  r!  r+   p  rU  zIPolys.dmp_premc                 C   rT  r8  )r;  r,   r6  r:  r%  rR  r  r  r!  r,   r  rU  zIPolys.dmp_pquoc                 C   rT  r8  )r;  r-   r6  r:  r%  rR  r  r  r!  r-   t  rU  zIPolys.dmp_pexquoc                 C   r[  r  )r.   r6  r%  r;  r\  r  r  r!  r.   w  r_  zIPolys.dup_rr_divc                 C   r`  r8  )r/   r6  r:  r%  r;  r\  r  r  r!  r/   z  ra  zIPolys.dmp_rr_divc                 C   r[  r  )r0   r6  r%  r;  r\  r  r  r!  r0   }  r_  zIPolys.dup_ff_divc                 C   r`  r8  )r1   r6  r:  r%  r;  r\  r  r  r!  r1     ra  zIPolys.dmp_ff_divc                 C   r[  r  )r2   r6  r%  r;  r\  r  r  r!  r2     r_  zIPolys.dup_divc                 C   rQ  r  )r;  r3   r6  r%  rR  r  r  r!  r3     rP  zIPolys.dup_remc                 C   rQ  r  )r;  r4   r6  r%  rR  r  r  r!  r4     rP  zIPolys.dup_quoc                 C   rQ  r  )r;  r5   r6  r%  rR  r  r  r!  r5     rP  zIPolys.dup_exquoc                 C   r`  r8  )r6   r6  r:  r%  r;  r\  r  r  r!  r6     ra  zIPolys.dmp_divc                 C   rT  r8  )r;  r7   r6  r:  r%  rR  r  r  r!  r7     rU  zIPolys.dmp_remc                 C   rT  r8  )r;  r8   r6  r:  r%  rR  r  r  r!  r8     rU  zIPolys.dmp_quoc                 C   rT  r8  )r;  r9   r6  r:  r%  rR  r  r  r!  r9     rU  zIPolys.dmp_exquoc                 C      t | || jS r  )r:   r6  r%  rM  r  r  r!  r:        zIPolys.dup_max_normc                 C      t | || jd | jS r8  )r;   r6  r:  r%  rM  r  r  r!  r;     r<  zIPolys.dmp_max_normc                 C   rb  r  )r<   r6  r%  rM  r  r  r!  r<     rc  zIPolys.dup_l1_normc                 C   rd  r8  )r=   r6  r:  r%  rM  r  r  r!  r=     r<  zIPolys.dmp_l1_normc                 C   rb  r  )r>   r6  r%  rM  r  r  r!  r>     rc  zIPolys.dup_l2_norm_squaredc                 C   rd  r8  )r?   r6  r:  r%  rM  r  r  r!  r?     r<  zIPolys.dmp_l2_norm_squaredc                 C   s   |  ttt| j|| jS r  )r;  r@   listmapr6  r%  r  polysr  r  r!  r@        zIPolys.dup_expandc                 C   s&   |  ttt| j|| jd | jS r8  )r;  rA   re  rf  r6  r:  r%  rg  r  r  r!  rA        &zIPolys.dmp_expandc                 C   rb  r  )rB   r6  r%  rM  r  r  r!  rB     rc  zIPolys.dup_LCc                 C   2   t | || j}t|tr| dd  |S |S r8  )rC   r6  r%  r2  re  r;  )r  r?  LCr  r  r!  rC        
zIPolys.dmp_LCc                 C   rb  r  )rD   r6  r%  rM  r  r  r!  rD     rc  zIPolys.dup_TCc                 C   rk  r8  )rE   r6  r%  r2  re  r;  )r  r?  TCr  r  r!  rE     rm  zIPolys.dmp_TCc                 C   rd  r8  )rF   r6  r:  r%  rM  r  r  r!  rF     r<  zIPolys.dmp_ground_LCc                 C   rd  r8  )rG   r6  r:  r%  rM  r  r  r!  rG     r<  zIPolys.dmp_ground_TCc                 C      t | |S r  )rH   r6  rM  r  r  r!  rH     r7  zIPolys.dup_degreec                 C   s   t | || jd S r8  )rI   r6  r:  rM  r  r  r!  rI        zIPolys.dmp_degreec                 C   s   t | ||| jd S r8  )rJ   r6  r:  )r  r?  jr  r  r!  rJ     rN  zIPolys.dmp_degree_inc                 C   rF  r  )r;  rL   r6  r%  r  r?  mr  r  r!  rL     r<  zIPolys.dup_integratec                 C   rH  r8  )r;  rM   r6  r:  r%  rr  r  r  r!  rM     rI  zIPolys.dmp_integratec                 C   rF  r  )r;  rO   r6  r%  rr  r  r  r!  rO     r<  zIPolys.dup_diffc                 C   rH  r8  )r;  rP   r6  r:  r%  rr  r  r  r!  rP     rI  zIPolys.dmp_diffc                 C   $   |  t| |||| jd | jS r8  )r;  rQ   r6  r:  r%  r  r?  rs  rq  r  r  r!  rQ        $zIPolys.dmp_diff_inc                 C   rt  r8  )r;  rN   r6  r:  r%  ru  r  r  r!  rN     rv  zIPolys.dmp_integrate_inc                 C   s   t | ||| jS r  )rR   r6  r%  r  r?  ar  r  r!  rR        zIPolys.dup_evalc                 C   s.   t | ||| jd | j}| dd  |S r8  )rS   r6  r:  r%  r;  )r  r?  rx  resultr  r  r!  rS     s   zIPolys.dmp_evalc                 C   s.   t | |||| jd | j}| ||S r8  )rT   r6  r:  r%  r"  r;  )r  r?  rx  rq  rz  r  r  r!  rT     s   zIPolys.dmp_eval_inc                 C   s0   t | ||||| jd | j}| ||S r8  )rV   r6  r:  r%  r"  r;  )r  r?  rs  rx  rq  rz  r  r  r!  rV     s    zIPolys.dmp_diff_eval_inc                 C   sB   t | ||| jd | j}t|tr| d t|  |S |S r8  )rU   r6  r:  r%  r2  re  lenr;  )r  r?  Arz  r  r  r!  rU     s   
zIPolys.dmp_eval_tailc                 C   rF  r  )r;  rW   r6  r%  r  r?  pr  r  r!  rW     r<  zIPolys.dup_truncc                 C   s0   |  t| || dd  || jd | jS r8  )r;  rX   r6  r:  r%  rR  r  r  r!  rX     rZ  zIPolys.dmp_truncc                 C   rH  r8  )r;  rY   r6  r:  r%  r}  r  r  r!  rY     rI  zIPolys.dmp_ground_truncc                 C   rL  r  )r;  rZ   r6  r%  rM  r  r  r!  rZ     rN  zIPolys.dup_monicc                 C   rO  r8  )r;  r[   r6  r:  r%  rM  r  r  r!  r[     rP  zIPolys.dmp_ground_monicc                 C   s6   t | || || j\}}}|| || |fS r  )r`   r6  r%  r;  r  r?  rS  r@  FGr  r  r!  r`     s    zIPolys.dup_extractc                 C   s>   t | || || jd | j\}}}|| || |fS r8  )ra   r6  r:  r%  r;  r  r  r  r!  ra     s   (zIPolys.dmp_ground_extractc                 C   s4   t | |d | j\}}| || |fS r8  )rb   r5  r"  r6  r%  r;  r  r?  r~  r]  r  r  r!  rb     s    zIPolys.dup_real_imagc                 C   rL  r  )r;  rc   r6  r%  rM  r  r  r!  rc     rN  zIPolys.dup_mirrorc                 C   rF  r  )r;  rd   r6  r%  rw  r  r  r!  rd     r<  zIPolys.dup_scalec                 C   rF  r  )r;  re   r6  r%  rw  r  r  r!  re     r<  zIPolys.dup_shiftc                 C   rH  r8  )r;  rf   r6  r:  r%  rw  r  r  r!  rf     rI  zIPolys.dmp_shiftc                 C   rV  r  )r;  rg   r6  r%  r  r  r  r!  rg   
  rU  zIPolys.dup_transformc                 C   rQ  r  )r;  rh   r6  r%  rR  r  r  r!  rh     rP  zIPolys.dup_composec                 C   rT  r8  )r;  ri   r6  r:  r%  rR  r  r  r!  ri     rU  zIPolys.dmp_composec                 C   "   t | || j}tt| j|S r  )rj   r6  r%  re  rf  r;  )r  r?  
componentsr  r  r!  rj        zIPolys.dup_decomposec                 C   (   t | || jd | j}|  |S r8  )rk   r6  r:  r%  r)  r;  r  r?  rz  r  r  r!  rk        zIPolys.dmp_liftc                 C   rb  r  )rl   r6  r%  rM  r  r  r!  rl     rc  zIPolys.dup_sign_variationsFc                 C   sD   t | || j|d\}}|r| j| j d}n| }|||fS )Nconvertr%  )rm   r6  r%  r'  get_ringr;  r  r?  r  r@  r  r3  r  r  r!  rm     s
   zIPolys.dup_clear_denomsc                 C   sL   t | || jd | j|d\}}|r| j| j d}n| }|||fS )Nr9  r  r  )rn   r6  r:  r%  r'  r  r;  r  r  r  r!  rn   $  s
   "zIPolys.dmp_clear_denomsc                 C   rF  r  )r;  ro   r6  r%  rJ  r  r  r!  ro   ,  r<  zIPolys.dup_revertc                 C   r[  r  )rp   r6  r%  r;  r  r?  rS  srX  r  r  r!  rp   /  r_  zIPolys.dup_half_gcdexc                 C   r`  r8  )rq   r6  r:  r%  r;  r  r  r  r!  rq   2  ra  zIPolys.dmp_half_gcdexc                 C   <   t | || || j\}}}| || || |fS r  )rr   r6  r%  r;  r  r?  rS  r  trX  r  r  r!  rr   5      zIPolys.dup_gcdexc                 C   D   t | || || jd | j\}}}| || || |fS r8  )rs   r6  r:  r%  r;  r  r  r  r!  rs   8     (zIPolys.dmp_gcdexc                 C   rQ  r  )r;  rt   r6  r%  rR  r  r  r!  rt   <  rP  zIPolys.dup_invertc                 C   rT  r8  )r;  ru   r6  r:  r%  rR  r  r  r!  ru   >  rU  zIPolys.dmp_invertc                 C   *   t | || || j}tt| j|S r  )rv   r6  r%  re  rf  r;  r  r?  rS  prsr  r  r!  rv   A     zIPolys.dup_euclidean_prsc                 C   2   t | || || jd | j}tt| j|S r8  )rw   r6  r:  r%  re  rf  r;  r  r  r  r!  rw   D     "zIPolys.dmp_euclidean_prsc                 C   r  r  )rx   r6  r%  re  rf  r;  r  r  r  r!  rx   G  r  zIPolys.dup_primitive_prsc                 C   r  r8  )ry   r6  r:  r%  re  rf  r;  r  r  r  r!  ry   J  r  zIPolys.dmp_primitive_prsc                 C   s2   t | || || j\}}tt| j||fS r  )rz   r6  r%  re  rf  r;  r  r?  rS  r  sresr  r  r!  rz   N  r_  zIPolys.dup_inner_subresultantsc                 C   s:   t | || || jd | j\}}tt| j||fS r8  )r~   r6  r:  r%  re  rf  r;  r  r  r  r!  r~   Q  ra  zIPolys.dmp_inner_subresultantsc                 C   r  r  )r{   r6  r%  re  rf  r;  r  r  r  r!  r{   U  r  zIPolys.dup_subresultantsc                 C   r  r8  )r   r6  r:  r%  re  rf  r;  r  r  r  r!  r   X  r  zIPolys.dmp_subresultantsc                 C   s2   t | || || j\}}|tt| j|fS r  )r|   r6  r%  re  rf  r;  r  r?  rS  resr  r  r  r!  r|   \  r_  zIPolys.dup_prs_resultantc                 C   sH   t | || || jd | j\}}| dd  |tt| j|fS r8  )r   r6  r:  r%  r;  re  rf  r  r  r  r!  r   _  s   &"zIPolys.dmp_prs_resultantc                 C   s<   t | || || || jd | j}| dd  |S r8  )r   r6  r-  r:  r%  r;  )r  r?  rS  r~  r  r  r  r!  r   c  s   *zIPolys.dmp_zz_modular_resultantc                 C   4   t | || || jd | j}| dd  |S r8  )r   r6  r:  r%  r;  r  r?  rS  r  r  r  r!  r   f     "zIPolys.dmp_zz_collins_resultantc                 C   r  r8  )r   r6  r:  r%  r;  r  r  r  r!  r   i  r  zIPolys.dmp_qq_collins_resultantc                 C   s   t | || || jS r  )r}   r6  r%  rR  r  r  r!  r}   m  r<  zIPolys.dup_resultantc                 C   sB   t | || || jd | j}t|tr| dd  |S |S r8  )r   r6  r:  r%  r2  re  r;  r  r  r  r!  r   o  s   "
zIPolys.dmp_resultantc                 C   rb  r  )r   r6  r%  rM  r  r  r!  r   v  rc  zIPolys.dup_discriminantc                 C   :   t | || jd | j}t|tr| dd  |S |S r8  )r   r6  r:  r%  r2  re  r;  )r  r?  discr  r  r!  r   x     
zIPolys.dmp_discriminantc                 C   r  r  )r   r6  r%  r;  r  r?  rS  Hr  r  r  r  r!  r     r  zIPolys.dup_rr_prs_gcdc                 C   r  r  )r   r6  r%  r;  r  r  r  r!  r     r  zIPolys.dup_ff_prs_gcdc                 C   r  r8  )r   r6  r:  r%  r;  r  r  r  r!  r     r  zIPolys.dmp_rr_prs_gcdc                 C   r  r8  )r   r6  r:  r%  r;  r  r  r  r!  r     r  zIPolys.dmp_ff_prs_gcdc                 C   r  r  )r   r6  r%  r;  r  r  r  r!  r     r  zIPolys.dup_zz_heu_gcdc                 C   r  r8  )r   r6  r:  r%  r;  r  r  r  r!  r     r  zIPolys.dmp_zz_heu_gcdc                 C   r  r  )r   r6  r%  r;  r  r  r  r!  r     r  zIPolys.dup_qq_heu_gcdc                 C   r  r8  )r   r6  r:  r%  r;  r  r  r  r!  r     r  zIPolys.dmp_qq_heu_gcdc                 C   r  r  )r   r6  r%  r;  r  r  r  r!  r     r  zIPolys.dup_inner_gcdc                 C   r  r8  )r   r6  r:  r%  r;  r  r  r  r!  r     r  zIPolys.dmp_inner_gcdc                 C   $   t | || || j}| |S r  )r   r6  r%  r;  r  r?  rS  r  r  r  r!  r        
zIPolys.dup_gcdc                 C   ,   t | || || jd | j}| |S r8  )r   r6  r:  r%  r;  r  r  r  r!  r        "
zIPolys.dmp_gcdc                 C   r  r  )r   r6  r%  r;  r  r  r  r!  r     r  zIPolys.dup_rr_lcmc                 C   r  r  )r   r6  r%  r;  r  r  r  r!  r     r  zIPolys.dup_ff_lcmc                 C   r  r  )r   r6  r%  r;  r  r  r  r!  r     r  zIPolys.dup_lcmc                 C   r  r8  )r   r6  r:  r%  r;  r  r  r  r!  r     r  zIPolys.dmp_rr_lcmc                 C   r  r8  )r   r6  r:  r%  r;  r  r  r  r!  r     r  zIPolys.dmp_ff_lcmc                 C   r  r8  )r   r6  r:  r%  r;  r  r  r  r!  r     r  zIPolys.dmp_lcmc                 C   s   t | || j}|S r  )r\   r6  r%  r  r?  contr  r  r!  r\     s   zIPolys.dup_contentc                 C   s$   t | || j\}}|| |fS r  )r^   r6  r%  r;  r  r?  r  primr  r  r!  r^     s   zIPolys.dup_primitivec                 C   r  r8  )r   r6  r:  r%  r2  re  r;  r  r  r  r!  r     r  zIPolys.dmp_contentc                 C   sR   t | || jd | j\}}t|tr"| dd  || |fS || |fS r8  )r   r6  r:  r%  r2  re  r;  r  r  r  r!  r     s   
zIPolys.dmp_primitivec                 C   s   t | || jd | j}|S r8  )r]   r6  r:  r%  r  r  r  r!  r]     s   zIPolys.dmp_ground_contentc                 C   s,   t | || jd | j\}}|| |fS r8  )r_   r6  r:  r%  r;  r  r  r  r!  r_     s   zIPolys.dmp_ground_primitiveTc           	      C   sb   t | || || j|d}|s#|\}}}}||| || |fS |\}}| || |fS )Ninclude)r   r6  r%  r;  	r  r?  rS  r  rz  cfcgr  r  r  r  r!  r     s   zIPolys.dup_cancelc           	      C   sj   t | || || jd | j|d}|s'|\}}}}||| || |fS |\}}| || |fS )Nr9  r  )r   r6  r:  r%  r;  r  r  r  r!  r     s   &zIPolys.dmp_cancelc                    s2   t  |tt j| j} fdd|D S )Nc                       g | ]\}}  ||fqS r  r;  .0rS  kr(  r  r!  
<listcomp>      z-IPolys.dup_trial_division.<locals>.<listcomp>)r   r6  re  rf  r%  r  r?  factorsr  r(  r!  r         zIPolys.dup_trial_divisionc                    s:   t  |tt j| jd  j} fdd|D S )Nr9  c                    r  r  r  r  r(  r  r!  r    r  z-IPolys.dmp_trial_division.<locals>.<listcomp>)r   r6  re  rf  r:  r%  r  r  r(  r!  r     s   (zIPolys.dmp_trial_divisionc                 C   rb  r  )r   r6  r%  rM  r  r  r!  r     rc  zIPolys.dup_zz_mignotte_boundc                 C   rd  r8  )r   r6  r:  r%  rM  r  r  r!  r     r<  zIPolys.dmp_zz_mignotte_boundc                 C   s\   | j }t|||||||||||| j\}}	}
}| || |	| |
| |fS r  )r6  r   r%  r;  )r  rs  r?  rS  rX  r  r  Dr  r  STr  r  r!  r     s   2$zIPolys.dup_zz_hensel_stepc                 C   s6   | j }t|||tt|||| j}tt| j|S r  )r6  r   re  rf  r%  r;  )r  r~  r?  f_listlr  rh  r  r  r!  r     s    zIPolys.dup_zz_hensel_liftc                    $   t  | j} fdd|D S )Nc                    r  r  r  r  r(  r  r!  r    r  z,IPolys.dup_zz_zassenhaus.<locals>.<listcomp>)r   r6  r%  r  r  r(  r!  r        zIPolys.dup_zz_zassenhausc                 C   rb  r  )r   r6  r%  rM  r  r  r!  r     rc  zIPolys.dup_zz_irreducible_pc                 C   s   t | || j|dS )N)irreducible)r   r6  r%  )r  r?  r  r  r  r!  r     rp  zIPolys.dup_cyclotomic_pc                 C   s   t || j}| |S r  )r   r%  r;  )r  rK  r  r  r  r!  r     s   
zIPolys.dup_zz_cyclotomic_polyc                 C   s.   t | || j}|d u r|S tt| j|S r  )r   r6  r%  re  rf  r;  r  r  r  r!  r     s   zIPolys.dup_zz_cyclotomic_factorc                 C   s   t |||| jS r  )r   r%  )r  Ecsctr  r  r!  r   
  s   zIPolys.dmp_zz_wang_non_divisorsc           
   	      s   | dd    fdd|D }| d d }t t|j|}t| ||||||| jd | j\}}}	| |t t|j|t t j|	fS )Nr9  c                    r  r  )r6  )r  r  r  mvr  r!  r    r  z2IPolys.dmp_zz_wang_lead_coeffs.<locals>.<listcomp>)re  rf  r6  r   r:  r%  r;  )
r  r?  r  r  r  r  r|  uvHHCCr  r  r!  r     s   *(zIPolys.dmp_zz_wang_lead_coeffsc                 C   s,   t tt| j|||| j}tt| j|S r  )r   re  rf  r6  r%  r;  )r  r  rs  r~  rz  r  r  r!  r     s   zIPolys.dup_zz_diophantinec                 C   s>   t tt| j|| ||||| jd | j}tt| j|S r8  )r   re  rf  r6  r:  r%  r;  )r  r  r@  r|  r.  r~  rz  r  r  r!  r      s   .zIPolys.dmp_zz_diophantinec           	      C   sj   | d d }| dd  }t t|j|}t t|j|}t| |||||| jd | j}t t| j|S r8  )re  rf  r6  r   r:  r%  r;  )	r  r?  r  rl  r|  r~  r  r  rz  r  r  r!  r   %  s   "z!IPolys.dmp_zz_wang_hensel_liftingc                    s2   t  | jd  j||d} fdd|D S )Nr9  )modseedc                       g | ]}  |qS r  r  r  rS  r(  r  r!  r  /      z&IPolys.dmp_zz_wang.<locals>.<listcomp>)r   r6  r:  r%  )r  r?  r  r  r  r  r(  r!  r   -  r  zIPolys.dmp_zz_wangc                    ,   t  | j\}}| fdd|D fS )Nc                    r  r  r  r  r(  r  r!  r  3  r  z,IPolys.dup_zz_factor_sqf.<locals>.<listcomp>)r   r6  r%  r  r?  coeffr  r  r(  r!  r   1     zIPolys.dup_zz_factor_sqfc                    r  )Nc                    r  r  r  r  r(  r  r!  r  7  r  z(IPolys.dup_zz_factor.<locals>.<listcomp>)r   r6  r%  r  r  r(  r!  r   5  r  zIPolys.dup_zz_factorc                    4   t  | jd  j\}}| fdd|D fS )Nr9  c                    r  r  r  r  r(  r  r!  r  :  r  z(IPolys.dmp_zz_factor.<locals>.<listcomp>)r   r6  r:  r%  r  r  r(  r!  r   8     zIPolys.dmp_zz_factorc                    r  )Nc                    r  r  r  r  r(  r  r!  r  >  r  z*IPolys.dup_qq_i_factor.<locals>.<listcomp>)r   r6  r%  r  r  r(  r!  r   <  r  zIPolys.dup_qq_i_factorc                    r  )Nr9  c                    r  r  r  r  r(  r  r!  r  A  r  z*IPolys.dmp_qq_i_factor.<locals>.<listcomp>)r   r6  r:  r%  r  r  r(  r!  r   ?  r  zIPolys.dmp_qq_i_factorc                    r  )Nc                    r  r  r  r  r(  r  r!  r  E  r  z*IPolys.dup_zz_i_factor.<locals>.<listcomp>)r   r6  r%  r  r  r(  r!  r   C  r  zIPolys.dup_zz_i_factorc                    r  )Nr9  c                    r  r  r  r  r(  r  r!  r  H  r  z*IPolys.dmp_zz_i_factor.<locals>.<listcomp>)r   r6  r:  r%  r  r  r(  r!  r   F  r  zIPolys.dmp_zz_i_factorc                    r  )Nc                    r  r  r  r  r(  r  r!  r  L  r  z)IPolys.dup_ext_factor.<locals>.<listcomp>)r   r6  r%  r  r  r(  r!  r   J  r  zIPolys.dup_ext_factorc                    r  )Nr9  c                    r  r  r  r  r(  r  r!  r  O  r  z)IPolys.dmp_ext_factor.<locals>.<listcomp>)r   r6  r:  r%  r  r  r(  r!  r   M  r  zIPolys.dmp_ext_factorc                    r  )Nc                    r  r  r  r  r(  r  r!  r  S  r  z(IPolys.dup_gf_factor.<locals>.<listcomp>)r   r6  r%  r  r  r(  r!  r   Q  r  zIPolys.dup_gf_factorc                    r  )Nr9  c                    r  r  r  r  r(  r  r!  r  V  r  z(IPolys.dmp_gf_factor.<locals>.<listcomp>)r   r6  r:  r%  r  r  r(  r!  r   T  r  zIPolys.dmp_gf_factorc                    r  )Nc                    r  r  r  r  r(  r  r!  r  Z  r  z*IPolys.dup_factor_list.<locals>.<listcomp>)r   r6  r%  r  r  r(  r!  r   X  r  zIPolys.dup_factor_listc                    r  )Nc                    r  r  r  r  r(  r  r!  r  ]  r  z2IPolys.dup_factor_list_include.<locals>.<listcomp>)r   r6  r%  r  r  r(  r!  r   [  r  zIPolys.dup_factor_list_includec                    r  )Nr9  c                    r  r  r  r  r(  r  r!  r  a  r  z*IPolys.dmp_factor_list.<locals>.<listcomp>)r   r6  r:  r%  r  r  r(  r!  r   _  r  zIPolys.dmp_factor_listc                    ,   t  | jd  j} fdd|D S )Nr9  c                    r  r  r  r  r(  r  r!  r  d  r  z2IPolys.dmp_factor_list_include.<locals>.<listcomp>)r   r6  r:  r%  r  r  r(  r!  r   b     zIPolys.dmp_factor_list_includec                 C   rb  r  )r   r6  r%  rM  r  r  r!  r   f  rc  zIPolys.dup_irreducible_pc                 C   rd  r8  )r   r6  r:  r%  rM  r  r  r!  r   h  r<  zIPolys.dmp_irreducible_pc                 C   r  r  )r   r6  r%  re  rf  r;  )r  r?  seqr  r  r!  r   k  r  zIPolys.dup_sturmc                 C   rb  r  )r   r6  r%  rM  r  r  r!  r   o  rc  zIPolys.dup_sqf_pc                 C   rd  r8  )r   r6  r:  r%  rM  r  r  r!  r   q  r<  zIPolys.dmp_sqf_pc                 C   r  r8  )r   r6  r:  r%  r)  r;  rJ  r  r  r!  r   t  r  zIPolys.dmp_normc                 C   s2   t | || j\}}}|| ||  |fS r  )r   r6  r%  r;  r)  r  r?  r  r  Rr  r  r!  r   x  s   zIPolys.dup_sqf_normc                 C   s:   t | || jd | j\}}}|| ||  |fS r8  )r   r6  r:  r%  r;  r)  r  r  r  r!  r   {  s    zIPolys.dmp_sqf_normc                 C   rL  r  )r;  r   r6  r%  rM  r  r  r!  r     rN  zIPolys.dup_gf_sqf_partc                 C   rL  r  )r;  r   r6  r%  rM  r  r  r!  r     rN  zIPolys.dmp_gf_sqf_partc                 C   rL  r  )r;  r   r6  r%  rM  r  r  r!  r     rN  zIPolys.dup_sqf_partc                 C   rO  r8  )r;  r   r6  r:  r%  rM  r  r  r!  r     rP  zIPolys.dmp_sqf_partc                    0   t  | j|d\}}| fdd|D fS )Nallc                    r  r  r  r  r(  r  r!  r    r  z*IPolys.dup_gf_sqf_list.<locals>.<listcomp>)r   r6  r%  r  r?  r  r  r  r  r(  r!  r        zIPolys.dup_gf_sqf_listc                    8   t  | jd  j|d\}}| fdd|D fS )Nr9  r  c                    r  r  r  r  r(  r  r!  r    r  z*IPolys.dmp_gf_sqf_list.<locals>.<listcomp>)r   r6  r:  r%  r  r  r(  r!  r        "zIPolys.dmp_gf_sqf_listc                    r  )Nr  c                    r  r  r  r  r(  r  r!  r    r  z'IPolys.dup_sqf_list.<locals>.<listcomp>)r   r6  r%  r  r  r(  r!  r     r  zIPolys.dup_sqf_listc                    s(   t  | j|d} fdd|D S )Nr  c                    r  r  r  r  r(  r  r!  r    r  z/IPolys.dup_sqf_list_include.<locals>.<listcomp>)r   r6  r%  r  r?  r  r  r  r(  r!  r     s   zIPolys.dup_sqf_list_includec                    r  )Nr9  r  c                    r  r  r  r  r(  r  r!  r    r  z'IPolys.dmp_sqf_list.<locals>.<listcomp>)r   r6  r:  r%  r  r  r(  r!  r     r  zIPolys.dmp_sqf_listc                    s0   t  | jd  j|d} fdd|D S )Nr9  r  c                    r  r  r  r  r(  r  r!  r    r  z/IPolys.dmp_sqf_list_include.<locals>.<listcomp>)r   r6  r:  r%  r  r  r(  r!  r     s   zIPolys.dmp_sqf_list_includec                    r  )Nc                    r  r  r  r  r(  r  r!  r    r  z'IPolys.dup_gff_list.<locals>.<listcomp>)r   r6  r%  r  r  r(  r!  r     r  zIPolys.dup_gff_listc                    r  )Nr9  c                    r  r  r  r  r(  r  r!  r    r  z'IPolys.dmp_gff_list.<locals>.<listcomp>)r   r6  r:  r%  r  r  r(  r!  r     r  zIPolys.dmp_gff_listc                 C   rb  r  )r   r6  r%  rM  r  r  r!  r     rc  zIPolys.dup_root_upper_boundc                 C   rb  r  )r   r6  r%  rM  r  r  r!  r     rc  zIPolys.dup_root_lower_boundc                 C   s   t | ||| j|dS )N)fast)r   r6  r%  )r  r?  Mr  r  r  r!  r     rN  z IPolys.dup_step_refine_real_rootc              
   C   s    t | ||| j|||||dS )N)epsstepsdisjointr  mobius)r   r6  r%  )r  r?  r  r  r  r  r  r  r  r  r!  r     rP  z!IPolys.dup_inner_refine_real_rootc              
   C       t | |||| j||||dS N)r  r  r  r  )r   r6  r%  r  r?  r  r  r  r  r  r  r  r  r!  r     rP  z!IPolys.dup_outer_refine_real_rootc              
   C   r  r  )r   r6  r%  r  r  r  r!  r     rP  zIPolys.dup_refine_real_rootc                 C      t | || j||dS )N)r  r  )r   r6  r%  )r  r?  r  r  r  r  r!  r     rN  z#IPolys.dup_inner_isolate_real_rootsc              	   C      t | || j|||||dS )N)r  infsupr  r  )r   r6  r%  )r  r?  r  r  r  r  r  r  r  r!  r     ri  z'IPolys.dup_inner_isolate_positive_rootsc              	   C   r  )N)r  r  r  r  r  )r   r6  r%  )r  r?  r  r  r  r  r  r  r  r!  r     ri  z'IPolys.dup_inner_isolate_negative_rootsc              	   C   r  N)r  r  r  r  blackbox)r   r6  r%  r  r?  r  r  r  r  r  r  r  r!  r     ri  z!IPolys.dup_isolate_real_roots_sqfc              	   C   r  )N)r  r  r  basisr  )r   r6  r%  )r  r?  r  r  r  r  r  r  r  r!  r     ri  zIPolys.dup_isolate_real_rootsc              
   C   s&   t tt| j|| j||||||dS )N)r  r  r  strictr  r  )r   re  rf  r6  r%  )r  rh  r  r  r  r  r  r  r  r  r!  r     rj  z"IPolys.dup_isolate_real_roots_listc                 C   r  )N)r  r  )r   r6  r%  )r  r?  r  r  r  r  r!  r     rN  zIPolys.dup_count_real_rootsc                 C   s   t | || j|||dS )N)r  r  exclude)r   r6  r%  )r  r?  r  r  r  r  r  r!  r     r<  zIPolys.dup_count_complex_rootsc                 C      t | || j||||dS )N)r  r  r  r  )r   r6  r%  )r  r?  r  r  r  r  r  r  r!  r     rB  z$IPolys.dup_isolate_complex_roots_sqfc              	   C   r  r  )r   r6  r%  r  r  r  r!  r     ri  z IPolys.dup_isolate_all_roots_sqfc                 C   r  )N)r  r  r  r  )r   r6  r%  )r  r?  r  r  r  r  r  r  r!  r     rB  zIPolys.dup_isolate_all_rootsc                 C   *   ddl m} tt| j|| jd | jS )Nr   )dmp_fateman_poly_F_1r9  )sympy.polys.specialpolysr  tuplerf  r;  r:  r%  )r  r  r  r  r!  fateman_poly_F_1     zIPolys.fateman_poly_F_1c                 C   r  )Nr   )dmp_fateman_poly_F_2r9  )r  r  r  rf  r;  r:  r%  )r  r  r  r  r!  fateman_poly_F_2  r  zIPolys.fateman_poly_F_2c                 C   r  )Nr   )dmp_fateman_poly_F_3r9  )r  r  r  rf  r;  r:  r%  )r  r  r  r  r!  fateman_poly_F_3  r  zIPolys.fateman_poly_F_3c                    s    t  fdd | D S )Nc                    s   g | ]} j j| j qS r  )r%  domr  )r  r@  r(  r  r!  r    r  z&IPolys.to_gf_dense.<locals>.<listcomp>)r   r5  r6  r*  r  r(  r!  to_gf_dense  rP  zIPolys.to_gf_densec                 C   s   |  t|| jd | jjS r8  )r/  rK   r:  r%  r  r*  r  r  r!  from_gf_dense  rB  zIPolys.from_gf_densec                 C   ro  r  )r   r  rM  r  r  r!  r     r7  zIPolys.gf_degreec                 C      t | || jjS r  )r   r  r%  r  rM  r  r  r!  r     ry  zIPolys.gf_LCc                 C   r	  r  )r   r  r%  r  rM  r  r  r!  r     ry  zIPolys.gf_TCc                 C   s   |  t| |S r  )r  r   r  rM  r  r  r!  r     ry  zIPolys.gf_stripc                 C   s   |  t| || jjS r  )r  r   r  r%  r  rM  r  r  r!  gf_trunc  r<  zIPolys.gf_truncc                 C       |  t| || jj| jjS r  )r  r   r  r%  r  r  rM  r  r  r!  	gf_normal  rP  zIPolys.gf_normalc                 C      |  t|| jj| jjS r  )r  r   r%  r  r  rM  r  r  r!  r     r<  zIPolys.gf_from_dictc                 C      t | || jj|dS N)	symmetric)r   r  r%  r  r  r?  r  r  r  r!  r     rN  zIPolys.gf_to_dictc                 C   s   |  t|| jjS r  )r  r   r%  r  rM  r  r  r!  r     ry  zIPolys.gf_from_int_polyc                 C   r  r  )r   r  r%  r  r  r  r  r!  r     rN  zIPolys.gf_to_int_polyc                 C   r  r  )r  r   r  r%  r  r  rM  r  r  r!  r     rP  zIPolys.gf_negc                 C   "   |  t| ||| jj| jjS r  )r  r   r  r%  r  r  rw  r  r  r!  r     rI  zIPolys.gf_add_groundc                 C   r  r  )r  r   r  r%  r  r  rw  r  r  r!  r     rI  zIPolys.gf_sub_groundc                 C   r  r  )r  r   r  r%  r  r  rw  r  r  r!  r     rI  zIPolys.gf_mul_groundc                 C   r  r  )r  r   r  r%  r  r  rw  r  r  r!  r     rI  zIPolys.gf_quo_groundc                 C   (   |  t| || || jj| jjS r  )r  r   r  r%  r  r  rR  r  r  r!  r     rU  zIPolys.gf_addc                 C   r  r  )r  r   r  r%  r  r  rR  r  r  r!  r     rU  zIPolys.gf_subc                 C   r  r  )r  r   r  r%  r  r  rR  r  r  r!  r      rU  zIPolys.gf_mulc                 C   r  r  )r  r   r  r%  r  r  rM  r  r  r!  r     rP  zIPolys.gf_sqrc                 C   0   |  t| || || || jj| jjS r  )r  r   r  r%  r  r  rW  r  r  r!  r     rZ  zIPolys.gf_add_mulc                 C   r  r  )r  r   r  r%  r  r  rW  r  r  r!  r     rZ  zIPolys.gf_sub_mulc                 C   s&   |  ttt| j|| jj| jjS r  )r  r   re  rf  r  r%  r  r  )r  r  r  r  r!  r   
  rj  zIPolys.gf_expandc                 C   s:   t | || || jj| jj\}}| || |fS r  )r   r  r%  r  r  r  r\  r  r  r!  r     ra  zIPolys.gf_divc                 C   r  r  )r  r   r  r%  r  r  rR  r  r  r!  r     rU  zIPolys.gf_remc                 C   r  r  )r  r   r  r%  r  r  rR  r  r  r!  r     rU  zIPolys.gf_quoc                 C   r  r  )r  r   r  r%  r  r  rR  r  r  r!  r     rU  zIPolys.gf_exquoc                 C      |  t| ||| jjS r  )r  r   r  r%  r  rJ  r  r  r!  r     rB  zIPolys.gf_lshiftc                 C   r  r  )r  r   r  r%  r  rJ  r  r  r!  r     rB  zIPolys.gf_rshiftc                 C   r  r  )r  r   r  r%  r  r  rJ  r  r  r!  r     rI  zIPolys.gf_powc                 C   s*   |  t| ||| || jj| jjS r  )r  r   r  r%  r  r  )r  r?  rK  rS  r  r  r!  r     s   *zIPolys.gf_pow_modc                 C   sD   t | || || jj| jj\}}}| || || |fS r  )r   r  r%  r  r  r  )r  r?  rS  rX  cffcfgr  r  r!  r   !  r  zIPolys.gf_cofactorsc                 C   r  r  )r  r   r  r%  r  r  rR  r  r  r!  r   $  rU  zIPolys.gf_gcdc                 C   r  r  )r  r   r  r%  r  r  rR  r  r  r!  r   &  rU  zIPolys.gf_lcmc                 C   r  r  )r  r  r  r%  r  r  rR  r  r  r!  r  (  rU  zIPolys.gf_gcdexc                 C   r  r  )r  r  r  r%  r  r  rM  r  r  r!  r  +  rP  zIPolys.gf_monicc                 C   r  r  )r  r  r  r%  r  r  rM  r  r  r!  r  -  rP  zIPolys.gf_diffc                 C      t | ||| jj| jjS r  )r  r  r%  r  r  rw  r  r  r!  r  0  rB  zIPolys.gf_evalc                 C   r  r  )r  r  r%  r  r  )r  r?  r|  r  r  r!  r  2  rB  zIPolys.gf_multi_evalc                 C   r  r  )r  r  r  r%  r  r  rR  r  r  r!  r  5  rU  zIPolys.gf_composec                 C   r  r  )r  r  r  r%  r  r  )r  rS  rX  r?  r  r  r!  r  7  rZ  zIPolys.gf_compose_modc                 C   s\   |  |}|  |}|  |}|  |}t|||||| jj| jj\}}| || |fS r  )r  r  r%  r  r  r  )r  rx  br@  rK  r?  UVr  r  r!  r  :  s   



 zIPolys.gf_trace_mapc                 C   r  r  )r  r	  r%  r  r  r  rK  r  r  r!  r	  B  r<  zIPolys.gf_randomc                 C   r  r  )r  r
  r%  r  r  r  r  r  r!  r
  D  r<  zIPolys.gf_irreduciblec                 C      t | || jj| jjS r  )r  r  r%  r  r  rM  r  r  r!  r  G  r<  zIPolys.gf_irred_p_ben_orc                 C   r  r  )r  r  r%  r  r  rM  r  r  r!  r  I  r<  zIPolys.gf_irred_p_rabinc                 C   r  r  )r  r  r%  r  r  rM  r  r  r!  r  K  r<  zIPolys.gf_irreducible_pc                 C   r  r  )r  r  r%  r  r  rM  r  r  r!  r  M  r<  zIPolys.gf_sqf_pc                 C   r  r  )r  r  r  r%  r  r  rM  r  r  r!  r  P  rP  zIPolys.gf_sqf_partc                    s4   t  | jj jj\}}| fdd|D fS )Nc                    r  r  r  r  r(  r  r!  r  T  r  z&IPolys.gf_sqf_list.<locals>.<listcomp>)r  r  r%  r  r  r  r  r(  r!  gf_sqf_listR  r  zIPolys.gf_sqf_listc                 C   r  r  )r  r  r%  r  r  rM  r  r  r!  r  V  r<  zIPolys.gf_Qmatrixc                    ,   t  | jj jj} fdd|D S )Nc                    r  r  r  r  r(  r  r!  r  Z  r  z'IPolys.gf_berlekamp.<locals>.<listcomp>)r  r  r%  r  r  r  r  r(  r!  r  X  r  zIPolys.gf_berlekampc                    r   )Nc                    r  r  r  r  r(  r  r!  r  ^  r  z,IPolys.gf_ddf_zassenhaus.<locals>.<listcomp>)r  r  r%  r  r  r  r  r(  r!  r  \  r  zIPolys.gf_ddf_zassenhausc                    ,   t  | jj jj} fdd|D S )Nc                    r  r  r  r  r(  r  r!  r  a  r  z,IPolys.gf_edf_zassenhaus.<locals>.<listcomp>)r  r  r%  r  r  r  r?  rK  r  r  r(  r!  r  _  r  zIPolys.gf_edf_zassenhausc                    r   )Nc                    r  r  r  r  r(  r  r!  r  e  r  z'IPolys.gf_ddf_shoup.<locals>.<listcomp>)r  r  r%  r  r  r  r  r(  r!  r  c  r  zIPolys.gf_ddf_shoupc                    r!  )Nc                    r  r  r  r  r(  r  r!  r  h  r  z'IPolys.gf_edf_shoup.<locals>.<listcomp>)r  r  r%  r  r  r"  r  r(  r!  r  f  r  zIPolys.gf_edf_shoupc                    r   )Nc                    r  r  r  r  r(  r  r!  r  l  r  z(IPolys.gf_zassenhaus.<locals>.<listcomp>)r  r  r%  r  r  r  r  r(  r!  r  j  r  zIPolys.gf_zassenhausc                    r   )Nc                    r  r  r  r  r(  r  r!  r  o  r  z#IPolys.gf_shoup.<locals>.<listcomp>)r  r  r%  r  r  r  r  r(  r!  r  m  r  zIPolys.gf_shoupc                    s8   t  | jj jj|d\}}| fdd|D fS )N)methodc                    r  r  r  r  r(  r  r!  r  s  r  z(IPolys.gf_factor_sqf.<locals>.<listcomp>)r  r  r%  r  r  )r  r?  r#  r  r  r  r(  r!  r  q  r  zIPolys.gf_factor_sqfc                    s4   t  | jj jj\}}| fdd|D fS )Nc                    r  r  r  r  r(  r  r!  r  v  r  z$IPolys.gf_factor.<locals>.<listcomp>)r  r  r%  r  r  r  r  r(  r!  r  t  r  zIPolys.gf_factor)NNN)F)T)NN)NNNFF)NNNF)NF)NNNFFFr  (0  __name__
__module____qualname__r$  r:  r%  r&  gensr"  r'  r)  r,  r-  r/  r5  r6  r;  r   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   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   rL   rM   rO   rP   rQ   rN   rR   rS   rT   rV   rU   rW   rX   rY   rZ   r[   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r~   r{   r   r|   r   r   r   r   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r\   r^   r   r   r]   r_   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r   r   r   r   r
  r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r     s\   

		r  N($  __doc__sympy.polys.densearithr   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   sympy.polys.densebasicrB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   sympy.polys.densetoolsrL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   sympy.polys.euclidtoolsrp   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   sympy.polys.factortoolsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   sympy.polys.rootisolationr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   sympy.polys.sqfreetoolsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   sympy.polys.galoistoolsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  sympy.utilitiesr  r  r  r  r  r!  <module>   s   Ln 