a
    kh                     @  s  d Z ddlmZ ddlmZ erPd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m0Z0 dd+lm1Z1 dd,lm2Z2 dd-lm3Z3 dd.lm4Z4 dd/lm5Z5 dd0lm6Z6 dd1lm7Z7 dd2lm8Z8 dd3lm9Z9 dd4lm:Z: dd5lm;Z; dd6lm<Z< dd7lm=Z= dd8lm>Z> dd9lm?Z? dd:lm@Z@ dd;lmAZA dd<lmBZB dd=lmCZC dd>lmDZD dd?lmEZE dd@lmFZF ddAlmGZG ddBlmHZH ddClmIZI ddDlmJZJ ddElmKZK ddFlmLZL ddGlmMZM ddHlNmOZO ddIlNmPZP ddJlNmQZQ ddKlNmRZR ddLlNmSZS ddMlNmTZT ddNlNmUZU ddOlNmVZV ddPlNmWZW ddQlNmXZX ddRlYmZZZ ddSlYm[Z[ ddTlYm\Z\ ddUlYm]Z] ddVlYm^Z^ ddWlYm_Z_ ddXlYm`Z` ddYlYmaZa ddZlYmbZb dd[lYmcZc dd\lYmdZd dd]lYmeZe dd^lYmfZf dd_lYmgZg dd`lYmhZh ddalYmiZi ddblYmjZj ddclYmkZk dddlYmlZl ddelYmmZm ddflYmnZn ddglYmoZo ddhlYmpZp ddilYmqZq ddjlYmrZr ddklYmsZs ddllYmtZt ddmlYmuZu ddnlYmvZv ddolYmwZw ddplYmxZx ddqlYmyZy ddrlYmzZz ddslYm{Z{ ddtlYm|Z| ddulYm}Z} ddvl~mZ ddwl~mZ ddxl~mZ ddyl~mZ ddzl~mZ dd{l~mZ dd|l~mZ dd}l~mZ dd~l~mZ ddl~mZ ddl~mZ ddl~mZ ddl~mZ ddl~mZ ddl~mZ ddl~mZ ddl~mZ ddl~mZ ddl~mZ ddl~mZ ddl~mZ ddl~mZ ddl~mZ ddl~mZ ddl~mZ ddl~mZ ddl~mZ ddl~mZ ddl~mZ ddl~mZ ddl~mZ ddl~mZ ddl~mZ ddl~mZ ddl~mZ ddl~mZ ddl~mZ ddl~mZ ddl~mZ ddl~mZ ddl~mZ ddl~mZ ddl~mZ ddl~mZ ddl~mZ 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dlmZmZmZmZmZmZmZmZmZmZmZ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 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.     )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                   @  s  e Zd ZU ded< ded< ded< ded< d	ed
< dd Zd^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 Z'dTdU Z(dVdW Z)dXdY Z*dZd[ Z+d\d] Z,d^d_ Z-d`da Z.dbdc Z/ddde Z0dfdg Z1dhdi Z2djdk Z3dldm Z4dndo Z5dpdq Z6drds Z7dtdu Z8dvdw Z9dxdy Z:dzd{ Z;d|d} Z<d~d 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 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 Zrd_ddZsd`ddZtdd Zudd Zvdd Zwdd Zxdd Zydd Zzdd Z{dd 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/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dEdF ZdGdH ZdIdJ ZdKdL ZdMdN ZdadPdQZdbdRdSZdTdU ZdVdW ZdXdY ZdZd[ Zd\d] Zd^d_ Zd`da Zdbdc ZdcdddeZdfdg Zdhdi Zdjdk Zdldm Zdndo Zdpdq Zdrds Zdd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͐dd Zΐdd Zϐdd ZАdd Zѐdd ZҐdeddZӐdfddZԐdgddZՐdhddZ֐diddZאdjddZؐdd Zِdd Zڐdd Zېdd ZܐdkddZݐdlddÄZސdmdĐdńZߐdndƐdǄZdodȐdɄZdpdʐd˄Zdqd̐d̈́ZdrdΐdτZdsdАdфZdtdҐdӄZdudԐdՄZdvd֐dׄZdw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dzddZdd Zd{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d>d? Zd@dA ZdBdC ZdDdE ZdFdG Z d|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)d}dZd[Z*d\d] Z+dS (~  IPolysztuple[PolyElement, ...]Zgensztuple[Expr, ...]symbolsintngensr   domainr   orderc                 C  s   d S N )selfgenr)  r)  G/var/www/auris/lib/python3.9/site-packages/sympy/polys/compatibility.pydrop   s    zIPolys.dropNc                 C  s   d S r(  r)  )r*  r#  r&  r'  r)  r)  r,  clone   s    zIPolys.clonec                 C  s   d S r(  r)  r*  r)  r)  r,  	to_ground   s    zIPolys.to_groundc                 C  s   d S r(  r)  r*  elementr)  r)  r,  
ground_new  s    zIPolys.ground_newc                 C  s   d S r(  r)  r1  r)  r)  r,  
domain_new  s    zIPolys.domain_newc                 C  s   d S r(  r)  )r*  dr)  r)  r,  	from_dict  s    zIPolys.from_dictc                 C  s<   ddl m} t||r.|j| kr$|S tdn
| |S d S )Nr   r   zdomain conversions)sympy.polys.ringsr   
isinstanceringNotImplementedErrorr3  )r*  r2  r   r)  r)  r,  wrap  s    


zIPolys.wrapc                 C  s   |  | S r(  )r;  to_denser1  r)  r)  r,  r<    s    zIPolys.to_densec                 C  s   |  t|| jd | jS N   )r6  rR   r%  r&  r1  r)  r)  r,  
from_dense  s    zIPolys.from_densec                 C  s   |  t| |||| jS r(  )r?  r	   r<  r&  r*  fcir)  r)  r,  r	     s    zIPolys.dup_add_termc                 C  s4   |  t| || |d || jd | jS Nr   r>  )r?  r
   r<  r;  r-  r%  r&  r@  r)  r)  r,  r
     s    zIPolys.dmp_add_termc                 C  s   |  t| |||| jS r(  )r?  r   r<  r&  r@  r)  r)  r,  r     s    zIPolys.dup_sub_termc                 C  s4   |  t| || |d || jd | jS rD  )r?  r   r<  r;  r-  r%  r&  r@  r)  r)  r,  r   !  s    zIPolys.dmp_sub_termc                 C  s   |  t| |||| jS r(  )r?  r   r<  r&  r@  r)  r)  r,  r   #  s    zIPolys.dup_mul_termc                 C  s4   |  t| || |d || jd | jS rD  )r?  r   r<  r;  r-  r%  r&  r@  r)  r)  r,  r   %  s    zIPolys.dmp_mul_termc                 C  s   |  t| ||| jS r(  )r?  r   r<  r&  r*  rA  rB  r)  r)  r,  r   (  s    zIPolys.dup_add_groundc                 C  s"   |  t| ||| jd | jS r=  )r?  r   r<  r%  r&  rE  r)  r)  r,  r   *  s    zIPolys.dmp_add_groundc                 C  s   |  t| ||| jS r(  )r?  r   r<  r&  rE  r)  r)  r,  r   ,  s    zIPolys.dup_sub_groundc                 C  s"   |  t| ||| jd | jS r=  )r?  r   r<  r%  r&  rE  r)  r)  r,  r   .  s    zIPolys.dmp_sub_groundc                 C  s   |  t| ||| jS r(  )r?  r   r<  r&  rE  r)  r)  r,  r   0  s    zIPolys.dup_mul_groundc                 C  s"   |  t| ||| jd | jS r=  )r?  r   r<  r%  r&  rE  r)  r)  r,  r   2  s    zIPolys.dmp_mul_groundc                 C  s   |  t| ||| jS r(  )r?  r   r<  r&  rE  r)  r)  r,  r   4  s    zIPolys.dup_quo_groundc                 C  s"   |  t| ||| jd | jS r=  )r?  r   r<  r%  r&  rE  r)  r)  r,  r   6  s    zIPolys.dmp_quo_groundc                 C  s   |  t| ||| jS r(  )r?  r   r<  r&  rE  r)  r)  r,  r   8  s    zIPolys.dup_exquo_groundc                 C  s"   |  t| ||| jd | jS r=  )r?  r   r<  r%  r&  rE  r)  r)  r,  r   :  s    zIPolys.dmp_exquo_groundc                 C  s   |  t| ||| jS r(  )r?  r   r<  r&  r*  rA  nr)  r)  r,  r   =  s    zIPolys.dup_lshiftc                 C  s   |  t| ||| jS r(  )r?  r   r<  r&  rF  r)  r)  r,  r   ?  s    zIPolys.dup_rshiftc                 C  s   |  t| || jS r(  )r?  r   r<  r&  r*  rA  r)  r)  r,  r   B  s    zIPolys.dup_absc                 C  s    |  t| || jd | jS r=  )r?  r   r<  r%  r&  rH  r)  r)  r,  r   D  s    zIPolys.dmp_absc                 C  s   |  t| || jS r(  )r?  r   r<  r&  rH  r)  r)  r,  r   G  s    zIPolys.dup_negc                 C  s    |  t| || jd | jS r=  )r?  r   r<  r%  r&  rH  r)  r)  r,  r   I  s    zIPolys.dmp_negc                 C  s    |  t| || || jS r(  )r?  r   r<  r&  r*  rA  gr)  r)  r,  r   L  s    zIPolys.dup_addc                 C  s(   |  t| || || jd | jS r=  )r?  r    r<  r%  r&  rI  r)  r)  r,  r    N  s    zIPolys.dmp_addc                 C  s    |  t| || || jS r(  )r?  r!   r<  r&  rI  r)  r)  r,  r!   Q  s    zIPolys.dup_subc                 C  s(   |  t| || || jd | jS r=  )r?  r"   r<  r%  r&  rI  r)  r)  r,  r"   S  s    zIPolys.dmp_subc                 C  s(   |  t| || || || jS r(  )r?  r#   r<  r&  r*  rA  rJ  hr)  r)  r,  r#   V  s    zIPolys.dup_add_mulc                 C  s0   |  t| || || || jd | jS r=  )r?  r$   r<  r%  r&  rK  r)  r)  r,  r$   X  s    zIPolys.dmp_add_mulc                 C  s(   |  t| || || || jS r(  )r?  r%   r<  r&  rK  r)  r)  r,  r%   Z  s    zIPolys.dup_sub_mulc                 C  s0   |  t| || || || jd | jS r=  )r?  r&   r<  r%  r&  rK  r)  r)  r,  r&   \  s    zIPolys.dmp_sub_mulc                 C  s    |  t| || || jS r(  )r?  r'   r<  r&  rI  r)  r)  r,  r'   _  s    zIPolys.dup_mulc                 C  s(   |  t| || || jd | jS r=  )r?  r(   r<  r%  r&  rI  r)  r)  r,  r(   a  s    zIPolys.dmp_mulc                 C  s   |  t| || jS r(  )r?  r)   r<  r&  rH  r)  r)  r,  r)   d  s    zIPolys.dup_sqrc                 C  s    |  t| || jd | jS r=  )r?  r*   r<  r%  r&  rH  r)  r)  r,  r*   f  s    zIPolys.dmp_sqrc                 C  s   |  t| ||| jS r(  )r?  r+   r<  r&  rF  r)  r)  r,  r+   h  s    zIPolys.dup_powc                 C  s"   |  t| ||| jd | jS r=  )r?  r,   r<  r%  r&  rF  r)  r)  r,  r,   j  s    zIPolys.dmp_powc                 C  s2   t | || || j\}}| || |fS r(  )r-   r<  r&  r?  r*  rA  rJ  qrr)  r)  r,  r-   m  s    zIPolys.dup_pdivc                 C  s    |  t| || || jS r(  )r?  r.   r<  r&  rI  r)  r)  r,  r.   p  s    zIPolys.dup_premc                 C  s    |  t| || || jS r(  )r?  r/   r<  r&  rI  r)  r)  r,  r/   r  s    zIPolys.dup_pquoc                 C  s    |  t| || || jS r(  )r?  r0   r<  r&  rI  r)  r)  r,  r0   t  s    zIPolys.dup_pexquoc                 C  s:   t | || || jd | j\}}| || |fS r=  )r1   r<  r%  r&  r?  rM  r)  r)  r,  r1   w  s    &zIPolys.dmp_pdivc                 C  s(   |  t| || || jd | jS r=  )r?  r2   r<  r%  r&  rI  r)  r)  r,  r2   z  s    zIPolys.dmp_premc                 C  s(   |  t| || || jd | jS r=  )r?  r3   r<  r%  r&  rI  r)  r)  r,  r3   |  s    zIPolys.dmp_pquoc                 C  s(   |  t| || || jd | jS r=  )r?  r4   r<  r%  r&  rI  r)  r)  r,  r4   ~  s    zIPolys.dmp_pexquoc                 C  s2   t | || || j\}}| || |fS r(  )r5   r<  r&  r?  rM  r)  r)  r,  r5     s    zIPolys.dup_rr_divc                 C  s:   t | || || jd | j\}}| || |fS r=  )r6   r<  r%  r&  r?  rM  r)  r)  r,  r6     s    &zIPolys.dmp_rr_divc                 C  s2   t | || || j\}}| || |fS r(  )r7   r<  r&  r?  rM  r)  r)  r,  r7     s    zIPolys.dup_ff_divc                 C  s:   t | || || jd | j\}}| || |fS r=  )r8   r<  r%  r&  r?  rM  r)  r)  r,  r8     s    &zIPolys.dmp_ff_divc                 C  s2   t | || || j\}}| || |fS r(  )r9   r<  r&  r?  rM  r)  r)  r,  r9     s    zIPolys.dup_divc                 C  s    |  t| || || jS r(  )r?  r:   r<  r&  rI  r)  r)  r,  r:     s    zIPolys.dup_remc                 C  s    |  t| || || jS r(  )r?  r;   r<  r&  rI  r)  r)  r,  r;     s    zIPolys.dup_quoc                 C  s    |  t| || || jS r(  )r?  r<   r<  r&  rI  r)  r)  r,  r<     s    zIPolys.dup_exquoc                 C  s:   t | || || jd | j\}}| || |fS r=  )r=   r<  r%  r&  r?  rM  r)  r)  r,  r=     s    &zIPolys.dmp_divc                 C  s(   |  t| || || jd | jS r=  )r?  r>   r<  r%  r&  rI  r)  r)  r,  r>     s    zIPolys.dmp_remc                 C  s(   |  t| || || jd | jS r=  )r?  r?   r<  r%  r&  rI  r)  r)  r,  r?     s    zIPolys.dmp_quoc                 C  s(   |  t| || || jd | jS r=  )r?  r@   r<  r%  r&  rI  r)  r)  r,  r@     s    zIPolys.dmp_exquoc                 C  s   t | || jS r(  )rA   r<  r&  rH  r)  r)  r,  rA     s    zIPolys.dup_max_normc                 C  s   t | || jd | jS r=  )rB   r<  r%  r&  rH  r)  r)  r,  rB     s    zIPolys.dmp_max_normc                 C  s   t | || jS r(  )rC   r<  r&  rH  r)  r)  r,  rC     s    zIPolys.dup_l1_normc                 C  s   t | || jd | jS r=  )rD   r<  r%  r&  rH  r)  r)  r,  rD     s    zIPolys.dmp_l1_normc                 C  s   t | || jS r(  )rE   r<  r&  rH  r)  r)  r,  rE     s    zIPolys.dup_l2_norm_squaredc                 C  s   t | || jd | jS r=  )rF   r<  r%  r&  rH  r)  r)  r,  rF     s    zIPolys.dmp_l2_norm_squaredc                 C  s   |  ttt| j|| jS r(  )r?  rG   listmapr<  r&  r*  polysr)  r)  r,  rG     s    zIPolys.dup_expandc                 C  s&   |  ttt| j|| jd | jS r=  )r?  rH   rP  rQ  r<  r%  r&  rR  r)  r)  r,  rH     s    zIPolys.dmp_expandc                 C  s   t | || jS r(  )rI   r<  r&  rH  r)  r)  r,  rI     s    zIPolys.dup_LCc                 C  s6   t | || j}t|tr.| dd  |S |S d S r=  )rJ   r<  r&  r8  rP  r?  )r*  rA  LCr)  r)  r,  rJ     s    
zIPolys.dmp_LCc                 C  s   t | || jS r(  )rK   r<  r&  rH  r)  r)  r,  rK     s    zIPolys.dup_TCc                 C  s6   t | || j}t|tr.| dd  |S |S d S r=  )rL   r<  r&  r8  rP  r?  )r*  rA  ZTCr)  r)  r,  rL     s    
zIPolys.dmp_TCc                 C  s   t | || jd | jS r=  )rM   r<  r%  r&  rH  r)  r)  r,  rM     s    zIPolys.dmp_ground_LCc                 C  s   t | || jd | jS r=  )rN   r<  r%  r&  rH  r)  r)  r,  rN     s    zIPolys.dmp_ground_TCc                 C  s   t | |S r(  )rO   r<  rH  r)  r)  r,  rO     s    zIPolys.dup_degreec                 C  s   t | || jd S r=  )rP   r<  r%  rH  r)  r)  r,  rP     s    zIPolys.dmp_degreec                 C  s   t | ||| jd S r=  )rQ   r<  r%  )r*  rA  jr)  r)  r,  rQ     s    zIPolys.dmp_degree_inc                 C  s   |  t| ||| jS r(  )r?  rS   r<  r&  r*  rA  mr)  r)  r,  rS     s    zIPolys.dup_integratec                 C  s"   |  t| ||| jd | jS r=  )r?  rT   r<  r%  r&  rV  r)  r)  r,  rT     s    zIPolys.dmp_integratec                 C  s   |  t| ||| jS r(  )r?  rV   r<  r&  rV  r)  r)  r,  rV     s    zIPolys.dup_diffc                 C  s"   |  t| ||| jd | jS r=  )r?  rW   r<  r%  r&  rV  r)  r)  r,  rW     s    zIPolys.dmp_diffc                 C  s$   |  t| |||| jd | jS r=  )r?  rX   r<  r%  r&  r*  rA  rW  rU  r)  r)  r,  rX     s    zIPolys.dmp_diff_inc                 C  s$   |  t| |||| jd | jS r=  )r?  rU   r<  r%  r&  rX  r)  r)  r,  rU     s    zIPolys.dmp_integrate_inc                 C  s   t | ||| jS r(  )rY   r<  r&  r*  rA  ar)  r)  r,  rY     s    zIPolys.dup_evalc                 C  s.   t | ||| jd | j}| dd  |S r=  )rZ   r<  r%  r&  r?  )r*  rA  rZ  resultr)  r)  r,  rZ     s    zIPolys.dmp_evalc                 C  s.   t | |||| jd | j}| ||S r=  )r[   r<  r%  r&  r-  r?  )r*  rA  rZ  rU  r[  r)  r)  r,  r[     s    zIPolys.dmp_eval_inc                 C  s0   t | ||||| jd | j}| ||S r=  )r]   r<  r%  r&  r-  r?  )r*  rA  rW  rZ  rU  r[  r)  r)  r,  r]     s     zIPolys.dmp_diff_eval_inc                 C  sF   t | ||| jd | j}t|tr>| d t|  |S |S d S r=  )r\   r<  r%  r&  r8  rP  lenr?  )r*  rA  Ar[  r)  r)  r,  r\     s    
zIPolys.dmp_eval_tailc                 C  s   |  t| ||| jS r(  )r?  r^   r<  r&  r*  rA  pr)  r)  r,  r^     s    zIPolys.dup_truncc                 C  s0   |  t| || dd  || jd | jS r=  )r?  r_   r<  r%  r&  rI  r)  r)  r,  r_     s    zIPolys.dmp_truncc                 C  s"   |  t| ||| jd | jS r=  )r?  r`   r<  r%  r&  r^  r)  r)  r,  r`     s    zIPolys.dmp_ground_truncc                 C  s   |  t| || jS r(  )r?  ra   r<  r&  rH  r)  r)  r,  ra     s    zIPolys.dup_monicc                 C  s    |  t| || jd | jS r=  )r?  rb   r<  r%  r&  rH  r)  r)  r,  rb     s    zIPolys.dmp_ground_monicc                 C  s6   t | || || j\}}}|| || |fS r(  )rg   r<  r&  r?  r*  rA  rJ  rB  FGr)  r)  r,  rg     s     zIPolys.dup_extractc                 C  s>   t | || || jd | j\}}}|| || |fS r=  )rh   r<  r%  r&  r?  r`  r)  r)  r,  rh     s    (zIPolys.dmp_ground_extractc                 C  s4   t | |d | j\}}| || |fS r=  )ri   r;  r-  r<  r&  r?  r*  rA  r_  rN  r)  r)  r,  ri     s     zIPolys.dup_real_imagc                 C  s   |  t| || jS r(  )r?  rj   r<  r&  rH  r)  r)  r,  rj     s    zIPolys.dup_mirrorc                 C  s   |  t| ||| jS r(  )r?  rk   r<  r&  rY  r)  r)  r,  rk     s    zIPolys.dup_scalec                 C  s   |  t| ||| jS r(  )r?  rl   r<  r&  rY  r)  r)  r,  rl     s    zIPolys.dup_shiftc                 C  s"   |  t| ||| jd | jS r=  )r?  rm   r<  r%  r&  rY  r)  r)  r,  rm     s    zIPolys.dmp_shiftc                 C  s(   |  t| || || || jS r(  )r?  rn   r<  r&  rc  r)  r)  r,  rn     s    zIPolys.dup_transformc                 C  s    |  t| || || jS r(  )r?  ro   r<  r&  rI  r)  r)  r,  ro     s    zIPolys.dup_composec                 C  s(   |  t| || || jd | jS r=  )r?  rp   r<  r%  r&  rI  r)  r)  r,  rp     s    zIPolys.dmp_composec                 C  s"   t | || j}tt| j|S r(  )rq   r<  r&  rP  rQ  r?  )r*  rA  
componentsr)  r)  r,  rq     s    zIPolys.dup_decomposec                 C  s(   t | || jd | j}|  |S r=  )rr   r<  r%  r&  r0  r?  r*  rA  r[  r)  r)  r,  rr      s    zIPolys.dmp_liftc                 C  s   t | || jS r(  )rs   r<  r&  rH  r)  r)  r,  rs   $  s    zIPolys.dup_sign_variationsFc                 C  sD   t | || j|d\}}|r2| j| j d}n| }|||fS )Nconvertr&  )rt   r<  r&  r.  get_ringr?  r*  rA  rg  rB  ra  r9  r)  r)  r,  rt   '  s
    zIPolys.dup_clear_denomsc                 C  sL   t | || jd | j|d\}}|r:| j| j d}n| }|||fS )Nr>  rf  rh  )ru   r<  r%  r&  r.  ri  r?  rj  r)  r)  r,  ru   .  s
    "zIPolys.dmp_clear_denomsc                 C  s   |  t| ||| jS r(  )r?  rv   r<  r&  rF  r)  r)  r,  rv   6  s    zIPolys.dup_revertc                 C  s2   t | || || j\}}| || |fS r(  )rw   r<  r&  r?  r*  rA  rJ  srL  r)  r)  r,  rw   9  s    zIPolys.dup_half_gcdexc                 C  s:   t | || || jd | j\}}| || |fS r=  )rx   r<  r%  r&  r?  rk  r)  r)  r,  rx   <  s    &zIPolys.dmp_half_gcdexc                 C  s<   t | || || j\}}}| || || |fS r(  )ry   r<  r&  r?  r*  rA  rJ  rl  trL  r)  r)  r,  ry   ?  s     zIPolys.dup_gcdexc                 C  sD   t | || || jd | j\}}}| || || |fS r=  )rz   r<  r%  r&  r?  rm  r)  r)  r,  rz   B  s    (zIPolys.dmp_gcdexc                 C  s    |  t| || || jS r(  )r?  r{   r<  r&  rI  r)  r)  r,  r{   F  s    zIPolys.dup_invertc                 C  s(   |  t| || || jd | jS r=  )r?  r|   r<  r%  r&  rI  r)  r)  r,  r|   H  s    zIPolys.dmp_invertc                 C  s*   t | || || j}tt| j|S r(  )r}   r<  r&  rP  rQ  r?  r*  rA  rJ  prsr)  r)  r,  r}   K  s    zIPolys.dup_euclidean_prsc                 C  s2   t | || || jd | j}tt| j|S r=  )r~   r<  r%  r&  rP  rQ  r?  ro  r)  r)  r,  r~   N  s    "zIPolys.dmp_euclidean_prsc                 C  s*   t | || || j}tt| j|S r(  )r   r<  r&  rP  rQ  r?  ro  r)  r)  r,  r   Q  s    zIPolys.dup_primitive_prsc                 C  s2   t | || || jd | j}tt| j|S r=  )r   r<  r%  r&  rP  rQ  r?  ro  r)  r)  r,  r   T  s    "zIPolys.dmp_primitive_prsc                 C  s2   t | || || j\}}tt| j||fS r(  )r   r<  r&  rP  rQ  r?  r*  rA  rJ  rp  sresr)  r)  r,  r   X  s    zIPolys.dup_inner_subresultantsc                 C  s:   t | || || jd | j\}}tt| j||fS r=  )r   r<  r%  r&  rP  rQ  r?  rq  r)  r)  r,  r   [  s    &zIPolys.dmp_inner_subresultantsc                 C  s*   t | || || j}tt| j|S r(  )r   r<  r&  rP  rQ  r?  ro  r)  r)  r,  r   _  s    zIPolys.dup_subresultantsc                 C  s2   t | || || jd | j}tt| j|S r=  )r   r<  r%  r&  rP  rQ  r?  ro  r)  r)  r,  r   b  s    "zIPolys.dmp_subresultantsc                 C  s2   t | || || j\}}|tt| j|fS r(  )r   r<  r&  rP  rQ  r?  r*  rA  rJ  resrp  r)  r)  r,  r   f  s    zIPolys.dup_prs_resultantc                 C  sH   t | || || jd | j\}}| dd  |tt| j|fS r=  )r   r<  r%  r&  r?  rP  rQ  rs  r)  r)  r,  r   i  s    &zIPolys.dmp_prs_resultantc                 C  s<   t | || || || jd | j}| dd  |S r=  )r   r<  r4  r%  r&  r?  )r*  rA  rJ  r_  rt  r)  r)  r,  r   m  s    *zIPolys.dmp_zz_modular_resultantc                 C  s4   t | || || jd | j}| dd  |S r=  )r   r<  r%  r&  r?  r*  rA  rJ  rt  r)  r)  r,  r   p  s    "zIPolys.dmp_zz_collins_resultantc                 C  s4   t | || || jd | j}| dd  |S r=  )r   r<  r%  r&  r?  ru  r)  r)  r,  r   s  s    "zIPolys.dmp_qq_collins_resultantc                 C  s   t | || || jS r(  )r   r<  r&  rI  r)  r)  r,  r   w  s    zIPolys.dup_resultantc                 C  sF   t | || || jd | j}t|tr>| dd  |S |S d S r=  )r   r<  r%  r&  r8  rP  r?  ru  r)  r)  r,  r   y  s    "
zIPolys.dmp_resultantc                 C  s   t | || jS r(  )r   r<  r&  rH  r)  r)  r,  r     s    zIPolys.dup_discriminantc                 C  s>   t | || jd | j}t|tr6| dd  |S |S d S r=  )r   r<  r%  r&  r8  rP  r?  )r*  rA  Zdiscr)  r)  r,  r     s    
zIPolys.dmp_discriminantc                 C  s<   t | || || j\}}}| || || |fS r(  )r   r<  r&  r?  r*  rA  rJ  Hra  rb  r)  r)  r,  r     s     zIPolys.dup_rr_prs_gcdc                 C  s<   t | || || j\}}}| || || |fS r(  )r   r<  r&  r?  rv  r)  r)  r,  r     s     zIPolys.dup_ff_prs_gcdc                 C  sD   t | || || jd | j\}}}| || || |fS r=  )r   r<  r%  r&  r?  rv  r)  r)  r,  r     s    (zIPolys.dmp_rr_prs_gcdc                 C  sD   t | || || jd | j\}}}| || || |fS r=  )r   r<  r%  r&  r?  rv  r)  r)  r,  r     s    (zIPolys.dmp_ff_prs_gcdc                 C  s<   t | || || j\}}}| || || |fS r(  )r   r<  r&  r?  rv  r)  r)  r,  r     s     zIPolys.dup_zz_heu_gcdc                 C  sD   t | || || jd | j\}}}| || || |fS r=  )r   r<  r%  r&  r?  rv  r)  r)  r,  r     s    (zIPolys.dmp_zz_heu_gcdc                 C  s<   t | || || j\}}}| || || |fS r(  )r   r<  r&  r?  rv  r)  r)  r,  r     s     zIPolys.dup_qq_heu_gcdc                 C  sD   t | || || jd | j\}}}| || || |fS r=  )r   r<  r%  r&  r?  rv  r)  r)  r,  r     s    (zIPolys.dmp_qq_heu_gcdc                 C  s<   t | || || j\}}}| || || |fS r(  )r   r<  r&  r?  rv  r)  r)  r,  r     s     zIPolys.dup_inner_gcdc                 C  sD   t | || || jd | j\}}}| || || |fS r=  )r   r<  r%  r&  r?  rv  r)  r)  r,  r     s    (zIPolys.dmp_inner_gcdc                 C  s$   t | || || j}| |S r(  )r   r<  r&  r?  r*  rA  rJ  rw  r)  r)  r,  r     s    zIPolys.dup_gcdc                 C  s,   t | || || jd | j}| |S r=  )r   r<  r%  r&  r?  rx  r)  r)  r,  r     s    "zIPolys.dmp_gcdc                 C  s$   t | || || j}| |S r(  )r   r<  r&  r?  rx  r)  r)  r,  r     s    zIPolys.dup_rr_lcmc                 C  s$   t | || || j}| |S r(  )r   r<  r&  r?  rx  r)  r)  r,  r     s    zIPolys.dup_ff_lcmc                 C  s$   t | || || j}| |S r(  )r   r<  r&  r?  rx  r)  r)  r,  r     s    zIPolys.dup_lcmc                 C  s,   t | || || jd | j}| |S r=  )r   r<  r%  r&  r?  rx  r)  r)  r,  r     s    "zIPolys.dmp_rr_lcmc                 C  s,   t | || || jd | j}| |S r=  )r   r<  r%  r&  r?  rx  r)  r)  r,  r     s    "zIPolys.dmp_ff_lcmc                 C  s,   t | || || jd | j}| |S r=  )r   r<  r%  r&  r?  rx  r)  r)  r,  r     s    "zIPolys.dmp_lcmc                 C  s   t | || j}|S r(  )rc   r<  r&  r*  rA  contr)  r)  r,  rc     s    zIPolys.dup_contentc                 C  s$   t | || j\}}|| |fS r(  )re   r<  r&  r?  r*  rA  rz  Zprimr)  r)  r,  re     s    zIPolys.dup_primitivec                 C  s>   t | || jd | j}t|tr6| dd  |S |S d S r=  )r   r<  r%  r&  r8  rP  r?  ry  r)  r)  r,  r     s    
zIPolys.dmp_contentc                 C  sV   t | || jd | j\}}t|trD| dd  || |fS || |fS d S r=  )r   r<  r%  r&  r8  rP  r?  r{  r)  r)  r,  r     s    
zIPolys.dmp_primitivec                 C  s   t | || jd | j}|S r=  )rd   r<  r%  r&  ry  r)  r)  r,  rd     s    zIPolys.dmp_ground_contentc                 C  s,   t | || jd | j\}}|| |fS r=  )rf   r<  r%  r&  r?  r{  r)  r)  r,  rf     s    zIPolys.dmp_ground_primitiveTc           	      C  sf   t | || || j|d}|sF|\}}}}||| || |fS |\}}| || |fS d S )Ninclude)r   r<  r&  r?  	r*  rA  rJ  r}  r[  cfZcgra  rb  r)  r)  r,  r     s    zIPolys.dup_cancelc           	      C  sn   t | || || jd | j|d}|sN|\}}}}||| || |fS |\}}| || |fS d S )Nr>  r|  )r   r<  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                   s   g | ]\}}  ||fqS r)  r?  .0rJ  kr/  r)  r,  
<listcomp>      z-IPolys.dup_trial_division.<locals>.<listcomp>)r   r<  rP  rQ  r&  r*  rA  factorsr)  r/  r,  r     s     zIPolys.dup_trial_divisionc                   s:   t  |tt j| jd  j} fdd|D S )Nr>  c                   s   g | ]\}}  ||fqS r)  r  r  r/  r)  r,  r    r  z-IPolys.dmp_trial_division.<locals>.<listcomp>)r   r<  rP  rQ  r%  r&  r  r)  r/  r,  r     s    (zIPolys.dmp_trial_divisionc                 C  s   t | || jS r(  )r   r<  r&  rH  r)  r)  r,  r     s    zIPolys.dup_zz_mignotte_boundc                 C  s   t | || jd | jS r=  )r   r<  r%  r&  rH  r)  r)  r,  r     s    zIPolys.dmp_zz_mignotte_boundc                 C  s\   | j }t|||||||||||| j\}}	}
}| || |	| |
| |fS r(  )r<  r   r&  r?  )r*  rW  rA  rJ  rL  rl  rn  Drb  rw  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(  )r<  r   rP  rQ  r&  r?  )r*  r_  rA  Zf_listlr  rS  r)  r)  r,  r     s     zIPolys.dup_zz_hensel_liftc                   s$   t  | j} fdd|D S )Nc                   s   g | ]\}}  ||fqS r)  r  r  r/  r)  r,  r    r  z,IPolys.dup_zz_zassenhaus.<locals>.<listcomp>)r   r<  r&  r  r)  r/  r,  r     s    zIPolys.dup_zz_zassenhausc                 C  s   t | || jS r(  )r   r<  r&  rH  r)  r)  r,  r     s    zIPolys.dup_zz_irreducible_pc                 C  s   t | || j|dS )N)irreducible)r   r<  r&  )r*  rA  r  r)  r)  r,  r     s    zIPolys.dup_cyclotomic_pc                 C  s   t || j}| |S r(  )r   r&  r?  )r*  rG  ra  r)  r)  r,  r   	  s    zIPolys.dup_zz_cyclotomic_polyc                 C  s2   t | || j}|d u r|S tt| j|S d S r(  )r   r<  r&  rP  rQ  r?  re  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 )Nr>  c                   s   g | ]\}}  ||fqS r)  )r<  )r  rn  r  mvr)  r,  r    r  z2IPolys.dmp_zz_wang_lead_coeffs.<locals>.<listcomp>)rP  rQ  r<  r   r%  r&  r?  )
r*  rA  r  r  r  rw  r]  uvZ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   rP  rQ  r<  r&  r?  )r*  ra  rW  r_  r[  r)  r)  r,  r   %  s    zIPolys.dup_zz_diophantinec                 C  s>   t tt| j|| ||||| jd | j}tt| j|S r=  )r   rP  rQ  r<  r%  r&  r?  )r*  ra  rB  r]  r5  r_  r[  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 r=  )rP  rQ  r<  r   r%  r&  r?  )	r*  rA  rw  rT  r]  r_  r  r  r[  r)  r)  r,  r   /  s    "z!IPolys.dmp_zz_wang_hensel_liftingc                   s2   t  | jd  j||d} fdd|D S )Nr>  )modseedc                   s   g | ]}  |qS r)  r  r  rJ  r/  r)  r,  r  9  r  z&IPolys.dmp_zz_wang.<locals>.<listcomp>)r   r<  r%  r&  )r*  rA  r  r  r  r)  r/  r,  r   7  s     zIPolys.dmp_zz_wangc                   s,   t  | j\}}| fdd|D fS )Nc                   s   g | ]}  |qS r)  r  r  r/  r)  r,  r  =  r  z,IPolys.dup_zz_factor_sqf.<locals>.<listcomp>)r   r<  r&  r*  rA  coeffr  r)  r/  r,  r   ;  s    zIPolys.dup_zz_factor_sqfc                   s,   t  | j\}}| fdd|D fS )Nc                   s   g | ]\}}  ||fqS r)  r  r  r/  r)  r,  r  A  r  z(IPolys.dup_zz_factor.<locals>.<listcomp>)r   r<  r&  r  r)  r/  r,  r   ?  s    zIPolys.dup_zz_factorc                   s4   t  | jd  j\}}| fdd|D fS )Nr>  c                   s   g | ]\}}  ||fqS r)  r  r  r/  r)  r,  r  D  r  z(IPolys.dmp_zz_factor.<locals>.<listcomp>)r   r<  r%  r&  r  r)  r/  r,  r   B  s    zIPolys.dmp_zz_factorc                   s,   t  | j\}}| fdd|D fS )Nc                   s   g | ]\}}  ||fqS r)  r  r  r/  r)  r,  r  H  r  z*IPolys.dup_qq_i_factor.<locals>.<listcomp>)r   r<  r&  r  r)  r/  r,  r   F  s    zIPolys.dup_qq_i_factorc                   s4   t  | jd  j\}}| fdd|D fS )Nr>  c                   s   g | ]\}}  ||fqS r)  r  r  r/  r)  r,  r  K  r  z*IPolys.dmp_qq_i_factor.<locals>.<listcomp>)r   r<  r%  r&  r  r)  r/  r,  r   I  s    zIPolys.dmp_qq_i_factorc                   s,   t  | j\}}| fdd|D fS )Nc                   s   g | ]\}}  ||fqS r)  r  r  r/  r)  r,  r  O  r  z*IPolys.dup_zz_i_factor.<locals>.<listcomp>)r   r<  r&  r  r)  r/  r,  r   M  s    zIPolys.dup_zz_i_factorc                   s4   t  | jd  j\}}| fdd|D fS )Nr>  c                   s   g | ]\}}  ||fqS r)  r  r  r/  r)  r,  r  R  r  z*IPolys.dmp_zz_i_factor.<locals>.<listcomp>)r   r<  r%  r&  r  r)  r/  r,  r   P  s    zIPolys.dmp_zz_i_factorc                   s,   t  | j\}}| fdd|D fS )Nc                   s   g | ]\}}  ||fqS r)  r  r  r/  r)  r,  r  V  r  z)IPolys.dup_ext_factor.<locals>.<listcomp>)r   r<  r&  r  r)  r/  r,  r   T  s    zIPolys.dup_ext_factorc                   s4   t  | jd  j\}}| fdd|D fS )Nr>  c                   s   g | ]\}}  ||fqS r)  r  r  r/  r)  r,  r  Y  r  z)IPolys.dmp_ext_factor.<locals>.<listcomp>)r   r<  r%  r&  r  r)  r/  r,  r   W  s    zIPolys.dmp_ext_factorc                   s,   t  | j\}}| fdd|D fS )Nc                   s   g | ]\}}  ||fqS r)  r  r  r/  r)  r,  r  ]  r  z(IPolys.dup_gf_factor.<locals>.<listcomp>)r   r<  r&  r  r)  r/  r,  r   [  s    zIPolys.dup_gf_factorc                   s4   t  | jd  j\}}| fdd|D fS )Nr>  c                   s   g | ]\}}  ||fqS r)  r  r  r/  r)  r,  r  `  r  z(IPolys.dmp_gf_factor.<locals>.<listcomp>)r   r<  r%  r&  r  r)  r/  r,  r   ^  s    zIPolys.dmp_gf_factorc                   s,   t  | j\}}| fdd|D fS )Nc                   s   g | ]\}}  ||fqS r)  r  r  r/  r)  r,  r  d  r  z*IPolys.dup_factor_list.<locals>.<listcomp>)r   r<  r&  r  r)  r/  r,  r   b  s    zIPolys.dup_factor_listc                   s$   t  | j} fdd|D S )Nc                   s   g | ]\}}  ||fqS r)  r  r  r/  r)  r,  r  g  r  z2IPolys.dup_factor_list_include.<locals>.<listcomp>)r   r<  r&  r  r)  r/  r,  r   e  s    zIPolys.dup_factor_list_includec                   s4   t  | jd  j\}}| fdd|D fS )Nr>  c                   s   g | ]\}}  ||fqS r)  r  r  r/  r)  r,  r  k  r  z*IPolys.dmp_factor_list.<locals>.<listcomp>)r   r<  r%  r&  r  r)  r/  r,  r   i  s    zIPolys.dmp_factor_listc                   s,   t  | jd  j} fdd|D S )Nr>  c                   s   g | ]\}}  ||fqS r)  r  r  r/  r)  r,  r  n  r  z2IPolys.dmp_factor_list_include.<locals>.<listcomp>)r   r<  r%  r&  r  r)  r/  r,  r   l  s    zIPolys.dmp_factor_list_includec                 C  s   t | || jS r(  )r   r<  r&  rH  r)  r)  r,  r   p  s    zIPolys.dup_irreducible_pc                 C  s   t | || jd | jS r=  )r   r<  r%  r&  rH  r)  r)  r,  r   r  s    zIPolys.dmp_irreducible_pc                 C  s"   t | || j}tt| j|S r(  )r   r<  r&  rP  rQ  r?  )r*  rA  seqr)  r)  r,  r   u  s    zIPolys.dup_sturmc                 C  s   t | || jS r(  )r   r<  r&  rH  r)  r)  r,  r   y  s    zIPolys.dup_sqf_pc                 C  s   t | || jd | jS r=  )r   r<  r%  r&  rH  r)  r)  r,  r   {  s    zIPolys.dmp_sqf_pc                 C  s(   t | || jd | j}|  |S r=  )r   r<  r%  r&  r0  r?  rF  r)  r)  r,  r   ~  s    zIPolys.dmp_normc                 C  s2   t | || j\}}}|| ||  |fS r(  )r   r<  r&  r?  r0  r*  rA  rl  ra  Rr)  r)  r,  r     s    zIPolys.dup_sqf_normc                 C  s:   t | || jd | j\}}}|| ||  |fS r=  )r   r<  r%  r&  r?  r0  r  r)  r)  r,  r     s     zIPolys.dmp_sqf_normc                 C  s   |  t| || jS r(  )r?  r   r<  r&  rH  r)  r)  r,  r     s    zIPolys.dup_gf_sqf_partc                 C  s   |  t| || jS r(  )r?  r   r<  r&  rH  r)  r)  r,  r     s    zIPolys.dmp_gf_sqf_partc                 C  s   |  t| || jS r(  )r?  r   r<  r&  rH  r)  r)  r,  r     s    zIPolys.dup_sqf_partc                 C  s    |  t| || jd | jS r=  )r?  r   r<  r%  r&  rH  r)  r)  r,  r     s    zIPolys.dmp_sqf_partc                   s0   t  | j|d\}}| fdd|D fS )Nallc                   s   g | ]\}}  ||fqS r)  r  r  r/  r)  r,  r    r  z*IPolys.dup_gf_sqf_list.<locals>.<listcomp>)r   r<  r&  r*  rA  r  r  r  r)  r/  r,  r     s    zIPolys.dup_gf_sqf_listc                   s8   t  | jd  j|d\}}| fdd|D fS )Nr>  r  c                   s   g | ]\}}  ||fqS r)  r  r  r/  r)  r,  r    r  z*IPolys.dmp_gf_sqf_list.<locals>.<listcomp>)r   r<  r%  r&  r  r)  r/  r,  r     s    "zIPolys.dmp_gf_sqf_listc                   s0   t  | j|d\}}| fdd|D fS )Nr  c                   s   g | ]\}}  ||fqS r)  r  r  r/  r)  r,  r    r  z'IPolys.dup_sqf_list.<locals>.<listcomp>)r   r<  r&  r  r)  r/  r,  r     s    zIPolys.dup_sqf_listc                   s(   t  | j|d} fdd|D S )Nr  c                   s   g | ]\}}  ||fqS r)  r  r  r/  r)  r,  r    r  z/IPolys.dup_sqf_list_include.<locals>.<listcomp>)r   r<  r&  r*  rA  r  r  r)  r/  r,  r     s    zIPolys.dup_sqf_list_includec                   s8   t  | jd  j|d\}}| fdd|D fS )Nr>  r  c                   s   g | ]\}}  ||fqS r)  r  r  r/  r)  r,  r    r  z'IPolys.dmp_sqf_list.<locals>.<listcomp>)r   r<  r%  r&  r  r)  r/  r,  r     s    "zIPolys.dmp_sqf_listc                   s0   t  | jd  j|d} fdd|D S )Nr>  r  c                   s   g | ]\}}  ||fqS r)  r  r  r/  r)  r,  r    r  z/IPolys.dmp_sqf_list_include.<locals>.<listcomp>)r   r<  r%  r&  r  r)  r/  r,  r     s    zIPolys.dmp_sqf_list_includec                   s$   t  | j} fdd|D S )Nc                   s   g | ]\}}  ||fqS r)  r  r  r/  r)  r,  r    r  z'IPolys.dup_gff_list.<locals>.<listcomp>)r   r<  r&  r  r)  r/  r,  r     s    zIPolys.dup_gff_listc                   s,   t  | jd  j} fdd|D S )Nr>  c                   s   g | ]\}}  ||fqS r)  r  r  r/  r)  r,  r    r  z'IPolys.dmp_gff_list.<locals>.<listcomp>)r   r<  r%  r&  r  r)  r/  r,  r     s    zIPolys.dmp_gff_listc                 C  s   t | || jS r(  )r   r<  r&  rH  r)  r)  r,  r     s    zIPolys.dup_root_upper_boundc                 C  s   t | || jS r(  )r   r<  r&  rH  r)  r)  r,  r     s    zIPolys.dup_root_lower_boundc                 C  s   t | ||| j|dS )N)fast)r   r<  r&  )r*  rA  Mr  r)  r)  r,  r     s    z IPolys.dup_step_refine_real_rootc              
   C  s    t | ||| j|||||dS )N)epsstepsdisjointr  mobius)r   r<  r&  )r*  rA  r  r  r  r  r  r  r)  r)  r,  r     s    z!IPolys.dup_inner_refine_real_rootc              
   C  s    t | |||| j||||dS N)r  r  r  r  )r   r<  r&  r*  rA  rl  rn  r  r  r  r  r)  r)  r,  r     s    z!IPolys.dup_outer_refine_real_rootc              
   C  s    t | |||| j||||dS r  )r   r<  r&  r  r)  r)  r,  r     s    zIPolys.dup_refine_real_rootc                 C  s   t | || j||dS )N)r  r  )r   r<  r&  )r*  rA  r  r  r)  r)  r,  r     s    z#IPolys.dup_inner_isolate_real_rootsc              	   C  s   t | || j|||||dS )N)r  infsupr  r  )r   r<  r&  )r*  rA  r  r  r  r  r  r)  r)  r,  r     s    z'IPolys.dup_inner_isolate_positive_rootsc              	   C  s   t | || j|||||dS )N)r  r  r  r  r  )r   r<  r&  )r*  rA  r  r  r  r  r  r)  r)  r,  r     s    z'IPolys.dup_inner_isolate_negative_rootsc              	   C  s   t | || j|||||dS N)r  r  r  r  blackbox)r   r<  r&  r*  rA  r  r  r  r  r  r)  r)  r,  r     s    z!IPolys.dup_isolate_real_roots_sqfc              	   C  s   t | || j|||||dS )N)r  r  r  basisr  )r   r<  r&  )r*  rA  r  r  r  r  r  r)  r)  r,  r     s    zIPolys.dup_isolate_real_rootsc              
   C  s&   t tt| j|| j||||||dS )N)r  r  r  strictr  r  )r   rP  rQ  r<  r&  )r*  rS  r  r  r  r  r  r  r)  r)  r,  r     s    z"IPolys.dup_isolate_real_roots_listc                 C  s   t | || j||dS )N)r  r  )r   r<  r&  )r*  rA  r  r  r)  r)  r,  r     s    zIPolys.dup_count_real_rootsc                 C  s   t | || j|||dS )N)r  r  exclude)r   r<  r&  )r*  rA  r  r  r  r)  r)  r,  r     s    zIPolys.dup_count_complex_rootsc                 C  s   t | || j||||dS )N)r  r  r  r  )r   r<  r&  )r*  rA  r  r  r  r  r)  r)  r,  r     s    z$IPolys.dup_isolate_complex_roots_sqfc              	   C  s   t | || j|||||dS r  )r   r<  r&  r  r)  r)  r,  r     s    z IPolys.dup_isolate_all_roots_sqfc                 C  s   t | || j||||dS )N)r  r  r  r  )r   r<  r&  )r*  rA  r  r  r  r  r)  r)  r,  r     s    zIPolys.dup_isolate_all_rootsc                 C  s*   ddl m} tt| j|| jd | jS )Nr   )dmp_fateman_poly_F_1r>  )sympy.polys.specialpolysr  tuplerQ  r?  r%  r&  )r*  r  r)  r)  r,  fateman_poly_F_1  s    zIPolys.fateman_poly_F_1c                 C  s*   ddl m} tt| j|| jd | jS )Nr   )dmp_fateman_poly_F_2r>  )r  r  r  rQ  r?  r%  r&  )r*  r  r)  r)  r,  fateman_poly_F_2  s    zIPolys.fateman_poly_F_2c                 C  s*   ddl m} tt| j|| jd | jS )Nr   )dmp_fateman_poly_F_3r>  )r  r  r  rQ  r?  r%  r&  )r*  r  r)  r)  r,  fateman_poly_F_3  s    zIPolys.fateman_poly_F_3c                   s    t  fdd | D S )Nc                   s   g | ]} j j| j qS r)  )r&  domrg  )r  rB  r/  r)  r,  r    r  z&IPolys.to_gf_dense.<locals>.<listcomp>)r   r;  r<  r1  r)  r/  r,  to_gf_dense  s    zIPolys.to_gf_densec                 C  s   |  t|| jd | jjS r=  )r6  rR   r%  r&  r  r1  r)  r)  r,  from_gf_dense  s    zIPolys.from_gf_densec                 C  s   t | |S r(  )r   r  rH  r)  r)  r,  r     s    zIPolys.gf_degreec                 C  s   t | || jjS r(  )r   r  r&  r  rH  r)  r)  r,  r     s    zIPolys.gf_LCc                 C  s   t | || jjS r(  )r   r  r&  r  rH  r)  r)  r,  r     s    zIPolys.gf_TCc                 C  s   |  t| |S r(  )r  r   r  rH  r)  r)  r,  r     s    zIPolys.gf_stripc                 C  s   |  t| || jjS r(  )r  r   r  r&  r  rH  r)  r)  r,  gf_trunc  s    zIPolys.gf_truncc                 C  s    |  t| || jj| jjS r(  )r  r   r  r&  r  r  rH  r)  r)  r,  	gf_normal  s    zIPolys.gf_normalc                 C  s   |  t|| jj| jjS r(  )r  r   r&  r  r  rH  r)  r)  r,  r     s    zIPolys.gf_from_dictc                 C  s   t | || jj|dS N)	symmetric)r   r  r&  r  r*  rA  r  r)  r)  r,  r     s    zIPolys.gf_to_dictc                 C  s   |  t|| jjS r(  )r  r   r&  r  rH  r)  r)  r,  r     s    zIPolys.gf_from_int_polyc                 C  s   t | || jj|dS r  )r   r  r&  r  r  r)  r)  r,  r     s    zIPolys.gf_to_int_polyc                 C  s    |  t| || jj| jjS r(  )r  r   r  r&  r  r  rH  r)  r)  r,  r     s    zIPolys.gf_negc                 C  s"   |  t| ||| jj| jjS r(  )r  r   r  r&  r  r  rY  r)  r)  r,  r     s    zIPolys.gf_add_groundc                 C  s"   |  t| ||| jj| jjS r(  )r  r   r  r&  r  r  rY  r)  r)  r,  r     s    zIPolys.gf_sub_groundc                 C  s"   |  t| ||| jj| jjS r(  )r  r   r  r&  r  r  rY  r)  r)  r,  r     s    zIPolys.gf_mul_groundc                 C  s"   |  t| ||| jj| jjS r(  )r  r   r  r&  r  r  rY  r)  r)  r,  r     s    zIPolys.gf_quo_groundc                 C  s(   |  t| || || jj| jjS r(  )r  r   r  r&  r  r  rI  r)  r)  r,  r     s    zIPolys.gf_addc                 C  s(   |  t| || || jj| jjS r(  )r  r   r  r&  r  r  rI  r)  r)  r,  r     s    zIPolys.gf_subc                 C  s(   |  t| || || jj| jjS r(  )r  r   r  r&  r  r  rI  r)  r)  r,  r   
  s    zIPolys.gf_mulc                 C  s    |  t| || jj| jjS r(  )r  r   r  r&  r  r  rH  r)  r)  r,  r     s    zIPolys.gf_sqrc                 C  s0   |  t| || || || jj| jjS r(  )r  r   r  r&  r  r  rK  r)  r)  r,  r     s    zIPolys.gf_add_mulc                 C  s0   |  t| || || || jj| jjS r(  )r  r   r  r&  r  r  rK  r)  r)  r,  r     s    zIPolys.gf_sub_mulc                 C  s&   |  ttt| j|| jj| jjS r(  )r  r   rP  rQ  r  r&  r  r  )r*  ra  r)  r)  r,  r     s    zIPolys.gf_expandc                 C  s:   t | || || jj| jj\}}| || |fS r(  )r   r  r&  r  r  r  rM  r)  r)  r,  r     s    &zIPolys.gf_divc                 C  s(   |  t| || || jj| jjS r(  )r  r   r  r&  r  r  rI  r)  r)  r,  r     s    zIPolys.gf_remc                 C  s(   |  t| || || jj| jjS r(  )r  r   r  r&  r  r  rI  r)  r)  r,  r     s    zIPolys.gf_quoc                 C  s(   |  t| || || jj| jjS r(  )r  r   r  r&  r  r  rI  r)  r)  r,  r     s    zIPolys.gf_exquoc                 C  s   |  t| ||| jjS r(  )r  r  r  r&  r  rF  r)  r)  r,  r  !  s    zIPolys.gf_lshiftc                 C  s   |  t| ||| jjS r(  )r  r  r  r&  r  rF  r)  r)  r,  r  #  s    zIPolys.gf_rshiftc                 C  s"   |  t| ||| jj| jjS r(  )r  r  r  r&  r  r  rF  r)  r)  r,  r  &  s    zIPolys.gf_powc                 C  s*   |  t| ||| || jj| jjS r(  )r  r  r  r&  r  r  )r*  rA  rG  rJ  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*  rA  rJ  rL  Zcffcfgr)  r)  r,  r  +  s    (zIPolys.gf_cofactorsc                 C  s(   |  t| || || jj| jjS r(  )r  r  r  r&  r  r  rI  r)  r)  r,  r  .  s    zIPolys.gf_gcdc                 C  s(   |  t| || || jj| jjS r(  )r  r  r  r&  r  r  rI  r)  r)  r,  r  0  s    zIPolys.gf_lcmc                 C  s(   |  t| || || jj| jjS r(  )r  r  r  r&  r  r  rI  r)  r)  r,  r  2  s    zIPolys.gf_gcdexc                 C  s    |  t| || jj| jjS r(  )r  r	  r  r&  r  r  rH  r)  r)  r,  r	  5  s    zIPolys.gf_monicc                 C  s    |  t| || jj| jjS r(  )r  r
  r  r&  r  r  rH  r)  r)  r,  r
  7  s    zIPolys.gf_diffc                 C  s   t | ||| jj| jjS r(  )r  r  r&  r  r  rY  r)  r)  r,  r  :  s    zIPolys.gf_evalc                 C  s   t | ||| jj| jjS r(  )r  r  r&  r  r  )r*  rA  r]  r)  r)  r,  r  <  s    zIPolys.gf_multi_evalc                 C  s(   |  t| || || jj| jjS r(  )r  r  r  r&  r  r  rI  r)  r)  r,  r  ?  s    zIPolys.gf_composec                 C  s0   |  t| || || || jj| jjS r(  )r  r  r  r&  r  r  )r*  rJ  rL  rA  r)  r)  r,  r  A  s    zIPolys.gf_compose_modc                 C  s\   |  |}|  |}|  |}|  |}t|||||| jj| jj\}}| || |fS r(  )r  r  r&  r  r  r  )r*  rZ  brB  rG  rA  UVr)  r)  r,  r  D  s    



 zIPolys.gf_trace_mapc                 C  s   |  t|| jj| jjS r(  )r  r  r&  r  r  r*  rG  r)  r)  r,  r  L  s    zIPolys.gf_randomc                 C  s   |  t|| jj| jjS r(  )r  r  r&  r  r  r  r)  r)  r,  r  N  s    zIPolys.gf_irreduciblec                 C  s   t | || jj| jjS r(  )r  r  r&  r  r  rH  r)  r)  r,  r  Q  s    zIPolys.gf_irred_p_ben_orc                 C  s   t | || jj| jjS r(  )r  r  r&  r  r  rH  r)  r)  r,  r  S  s    zIPolys.gf_irred_p_rabinc                 C  s   t | || jj| jjS r(  )r  r  r&  r  r  rH  r)  r)  r,  r  U  s    zIPolys.gf_irreducible_pc                 C  s   t | || jj| jjS r(  )r  r  r&  r  r  rH  r)  r)  r,  r  W  s    zIPolys.gf_sqf_pc                 C  s    |  t| || jj| jjS r(  )r  r  r  r&  r  r  rH  r)  r)  r,  r  Z  s    zIPolys.gf_sqf_partc                   s4   t  | jj jj\}}| fdd|D fS )Nc                   s   g | ]\}}  ||fqS r)  r  r  r/  r)  r,  r  ^  r  z&IPolys.gf_sqf_list.<locals>.<listcomp>)r  r  r&  r  r  r  r)  r/  r,  gf_sqf_list\  s    zIPolys.gf_sqf_listc                 C  s   t | || jj| jjS r(  )r  r  r&  r  r  rH  r)  r)  r,  r  `  s    zIPolys.gf_Qmatrixc                   s,   t  | jj jj} fdd|D S )Nc                   s   g | ]}  |qS r)  r  r  r/  r)  r,  r  d  r  z'IPolys.gf_berlekamp.<locals>.<listcomp>)r  r  r&  r  r  r  r)  r/  r,  r  b  s    zIPolys.gf_berlekampc                   s,   t  | jj jj} fdd|D S )Nc                   s   g | ]\}}  ||fqS r)  r  r  r/  r)  r,  r  h  r  z,IPolys.gf_ddf_zassenhaus.<locals>.<listcomp>)r  r  r&  r  r  r  r)  r/  r,  r  f  s    zIPolys.gf_ddf_zassenhausc                   s,   t  | jj jj} fdd|D S )Nc                   s   g | ]}  |qS r)  r  r  r/  r)  r,  r  k  r  z,IPolys.gf_edf_zassenhaus.<locals>.<listcomp>)r  r  r&  r  r  r*  rA  rG  r  r)  r/  r,  r  i  s    zIPolys.gf_edf_zassenhausc                   s,   t  | jj jj} fdd|D S )Nc                   s   g | ]\}}  ||fqS r)  r  r  r/  r)  r,  r  o  r  z'IPolys.gf_ddf_shoup.<locals>.<listcomp>)r  r  r&  r  r  r  r)  r/  r,  r  m  s    zIPolys.gf_ddf_shoupc                   s,   t  | jj jj} fdd|D S )Nc                   s   g | ]}  |qS r)  r  r  r/  r)  r,  r  r  r  z'IPolys.gf_edf_shoup.<locals>.<listcomp>)r  r  r&  r  r  r  r)  r/  r,  r  p  s    zIPolys.gf_edf_shoupc                   s,   t  | jj jj} fdd|D S )Nc                   s   g | ]}  |qS r)  r  r  r/  r)  r,  r  v  r  z(IPolys.gf_zassenhaus.<locals>.<listcomp>)r  r  r&  r  r  r  r)  r/  r,  r  t  s    zIPolys.gf_zassenhausc                   s,   t  | jj jj} fdd|D S )Nc                   s   g | ]}  |qS r)  r  r  r/  r)  r,  r  y  r  z#IPolys.gf_shoup.<locals>.<listcomp>)r  r  r&  r  r  r  r)  r/  r,  r  w  s    zIPolys.gf_shoupc                   s8   t  | jj jj|d\}}| fdd|D fS )N)methodc                   s   g | ]}  |qS r)  r  r  r/  r)  r,  r  }  r  z(IPolys.gf_factor_sqf.<locals>.<listcomp>)r  r  r&  r  r  )r*  rA  r  r  r  r)  r/  r,  r  {  s    "zIPolys.gf_factor_sqfc                   s4   t  | jj jj\}}| fdd|D fS )Nc                   s   g | ]\}}  ||fqS r)  r  r  r/  r)  r,  r    r  z$IPolys.gf_factor.<locals>.<listcomp>)r   r  r&  r  r  r  r)  r/  r,  r   ~  s    zIPolys.gf_factor)NNN)F)F)T)T)F)NN)F)F)F)F)F)F)F)NNNFF)NNNF)NNNF)NF)NNNFF)NNNFF)NNNFF)NNNFF)NNNFFF)NN)NNN)NNNF)NNNFF)NNNF)T)T)F)N(,  __name__
__module____qualname____annotations__r-  r.  r0  r3  r4  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/   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   rS   rT   rV   rW   rX   rU   rY   rZ   r[   r]   r\   r^   r_   r`   ra   rb   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   rc   re   r   r   rd   rf   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r   r   r   r   r  r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r)  r)  r)  r,  r"     sZ  


		r"  N(0  __doc__
__future__r   typingr   Zsympy.core.exprr   Zsympy.polys.domains.domainr   Zsympy.polys.orderingsr   r7  r   Z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/   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   Zsympy.polys.densebasicrI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   Zsympy.polys.densetoolsrS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   Zsympy.polys.euclidtoolsrw   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   Z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   Zsympy.polys.rootisolationr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zsympy.polys.sqfreetoolsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Z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   Zsympy.utilitiesr!  r"  r)  r)  r)  r,  <module>   s  L 