U
    ZÊ¹jÏâ  ã                   @   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}lrm€Z€ dd~lrm�Z� ddlrm‚Z‚ dd€lrmƒZƒ dd�lrm„Z„ dd‚lrm…Z… ddƒlrm†Z† dd„lrm‡Z‡ dd…lrmˆZˆ dd†lrm‰Z‰ dd‡lrmŠZŠ ddˆlrm‹Z‹ dd‰lrmŒZŒ ddŠlrm�Z� dd‹lrmŽZŽ ddŒlrm�Z� dd�lrm�Z� ddŽlrm‘Z‘ dd�lrm’Z’ dd�lrm“Z“ dd‘lrm”Z” dd’lrm•Z• dd“lrm–Z– dd”lrm—Z— dd•lrm˜Z˜ dd–lrm™Z™ dd—lrmšZš dd˜lrm›Z› dd™lrmœZœ ddšlrm�Z� dd›lrmžZž ddœlrmŸ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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×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é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�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 dÔdÕ„ dÕƒƒ�Z#dÖS )×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„ ZFd€d�„ ZGd‚dƒ„ ZHd„d…„ ZId†d‡„ ZJdˆd‰„ ZKdŠd‹„ ZLdŒd�„ ZMdŽd�„ ZNd�d‘„ ZOd’d“„ ZPd”d•„ ZQd–d—„ ZRd˜d™„ ZSdšd›„ ZTdœd�„ ZUdždŸ„ ZVd d¡„ ZWd¢d£„ ZXd¤d¥„ ZYd¦d§„ ZZd¨d©„ Z[dªd«„ Z\d¬d­„ Z]d®d¯„ Z^d°d±„ Z_d²d³„ Z`d´dµ„ Zad¶d·„ Zbd¸d¹„ Zcdºd»„ Zdd¼d½„ Zed¾d¿„ ZfdÀdÁ„ ZgdÂdÃ„ ZhdÄdÅ„ ZidÆdÇ„ ZjdÈdÉ„ ZkdÊdË„ ZldÌdÍ„ ZmdÎdÏ„ ZndÐdÑ„ ZodÒdÓ„ ZpdÔdÕ„ ZqdÖd×„ ZrdØdÙ„ ZsdÚdÛ„ ZtdÜdÝ„ ZudÞdß„ Zv�dUdádâ„Zw�dVdãdä„Zxdådæ„ Zydçdè„ Zzdé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š�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¨�dW�dF�dG„Z©�dX�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²�dY�dZ�d[„Z³�d\�d]„ Z´�d^�d_„ Zµ�d`�da„ Z¶�db�dc„ Z·�dd�de„ Z¸�df�dg„ Z¹�dh�di„ Zº�dZ�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Ö�d[�d¢�d£„Z×�d\�d¤�d¥„ZØ�d]�d¦�d§„ZÙ�d^�d¨�d©„ZÚ�d_�dª�d«„ZÛ�d`�d¬�d­„ZÜ�d®�d¯„ ZÝ�d°�d±„ ZÞ�d²�d³„ Zß�d´�dµ„ Zà�da�d¶�d·„Zá�db�d¸�d¹„Zâ�dc�dº�d»„Zã�dd�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ê�dk�dÊ�dË„Zë�dl�dÌ�dÍ„Zì�dm�dÎ�dÏ„Zí�dn�dÐ�dÑ„Zî�do�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û�dp�dì�dí„Zü�dî�dï„ Zý�dq�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$�dr�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-�ds�dP�dQ„�Z.�dR�dS„ �Z/dS (t  ÚIPolysNc                 C   s   d S ©N© )ÚselfÚgenr  r  úX/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sympy/polys/compatibility.pyÚdropï   s    zIPolys.dropc                 C   s   d S r  r  )r  ÚsymbolsÚdomainÚorderr  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  r(  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   )ÚPolyElementzdomain conversions)Zsympy.polys.ringsr.  Ú
isinstanceÚringÚNotImplementedErrorr*  )r  r)  r.  r  r  r   Úwrap  s    


zIPolys.wrapc                 C   s   |   |¡ ¡ S r  )r2  Úto_denser(  r  r  r   r3    s    zIPolys.to_densec                 C   s   |   t|| jd | jƒ¡S ©Né   )r-  rK   Úngensr#  r(  r  r  r   Ú
from_dense  s    zIPolys.from_densec                 C   s   |   t|  |¡||| jƒ¡S r  )r7  r   r3  r#  ©r  ÚfÚcÚir  r  r   r     s    zIPolys.dup_add_termc                 C   s4   |   t|  |¡|  |¡ d¡ ¡ || jd | jƒ¡S ©Nr   r5  )r7  r   r3  r2  r!  r6  r#  r8  r  r  r   r     s    zIPolys.dmp_add_termc                 C   s   |   t|  |¡||| jƒ¡S r  )r7  r   r3  r#  r8  r  r  r   r     s    zIPolys.dup_sub_termc                 C   s4   |   t|  |¡|  |¡ d¡ ¡ || jd | jƒ¡S r<  )r7  r   r3  r2  r!  r6  r#  r8  r  r  r   r     s    zIPolys.dmp_sub_termc                 C   s   |   t|  |¡||| jƒ¡S r  )r7  r   r3  r#  r8  r  r  r   r     s    zIPolys.dup_mul_termc                 C   s4   |   t|  |¡|  |¡ d¡ ¡ || jd | jƒ¡S r<  )r7  r   r3  r2  r!  r6  r#  r8  r  r  r   r     s    zIPolys.dmp_mul_termc                 C   s   |   t|  |¡|| jƒ¡S r  )r7  r   r3  r#  ©r  r9  r:  r  r  r   r     s    zIPolys.dup_add_groundc                 C   s"   |   t|  |¡|| jd | jƒ¡S r4  )r7  r	   r3  r6  r#  r=  r  r  r   r	      s    zIPolys.dmp_add_groundc                 C   s   |   t|  |¡|| jƒ¡S r  )r7  r
   r3  r#  r=  r  r  r   r
   "  s    zIPolys.dup_sub_groundc                 C   s"   |   t|  |¡|| jd | jƒ¡S r4  )r7  r   r3  r6  r#  r=  r  r  r   r   $  s    zIPolys.dmp_sub_groundc                 C   s   |   t|  |¡|| jƒ¡S r  )r7  r   r3  r#  r=  r  r  r   r   &  s    zIPolys.dup_mul_groundc                 C   s"   |   t|  |¡|| jd | jƒ¡S r4  )r7  r   r3  r6  r#  r=  r  r  r   r   (  s    zIPolys.dmp_mul_groundc                 C   s   |   t|  |¡|| jƒ¡S r  )r7  r   r3  r#  r=  r  r  r   r   *  s    zIPolys.dup_quo_groundc                 C   s"   |   t|  |¡|| jd | jƒ¡S r4  )r7  r   r3  r6  r#  r=  r  r  r   r   ,  s    zIPolys.dmp_quo_groundc                 C   s   |   t|  |¡|| jƒ¡S r  )r7  r   r3  r#  r=  r  r  r   r   .  s    zIPolys.dup_exquo_groundc                 C   s"   |   t|  |¡|| jd | jƒ¡S r4  )r7  r   r3  r6  r#  r=  r  r  r   r   0  s    zIPolys.dmp_exquo_groundc                 C   s   |   t|  |¡|| jƒ¡S r  )r7  r   r3  r#  ©r  r9  Únr  r  r   r   3  s    zIPolys.dup_lshiftc                 C   s   |   t|  |¡|| jƒ¡S r  )r7  r   r3  r#  r>  r  r  r   r   5  s    zIPolys.dup_rshiftc                 C   s   |   t|  |¡| jƒ¡S r  )r7  r   r3  r#  ©r  r9  r  r  r   r   8  s    zIPolys.dup_absc                 C   s    |   t|  |¡| jd | jƒ¡S r4  )r7  r   r3  r6  r#  r@  r  r  r   r   :  s    zIPolys.dmp_absc                 C   s   |   t|  |¡| jƒ¡S r  )r7  r   r3  r#  r@  r  r  r   r   =  s    zIPolys.dup_negc                 C   s    |   t|  |¡| jd | jƒ¡S r4  )r7  r   r3  r6  r#  r@  r  r  r   r   ?  s    zIPolys.dmp_negc                 C   s    |   t|  |¡|  |¡| jƒ¡S r  )r7  r   r3  r#  ©r  r9  Úgr  r  r   r   B  s    zIPolys.dup_addc                 C   s(   |   t|  |¡|  |¡| jd | jƒ¡S r4  )r7  r   r3  r6  r#  rA  r  r  r   r   D  s    zIPolys.dmp_addc                 C   s    |   t|  |¡|  |¡| jƒ¡S r  )r7  r   r3  r#  rA  r  r  r   r   G  s    zIPolys.dup_subc                 C   s(   |   t|  |¡|  |¡| jd | jƒ¡S r4  )r7  r   r3  r6  r#  rA  r  r  r   r   I  s    zIPolys.dmp_subc                 C   s(   |   t|  |¡|  |¡|  |¡| jƒ¡S r  )r7  r   r3  r#  ©r  r9  rB  Úhr  r  r   r   L  s    zIPolys.dup_add_mulc                 C   s0   |   t|  |¡|  |¡|  |¡| jd | jƒ¡S r4  )r7  r   r3  r6  r#  rC  r  r  r   r   N  s    zIPolys.dmp_add_mulc                 C   s(   |   t|  |¡|  |¡|  |¡| jƒ¡S r  )r7  r   r3  r#  rC  r  r  r   r   P  s    zIPolys.dup_sub_mulc                 C   s0   |   t|  |¡|  |¡|  |¡| jd | jƒ¡S r4  )r7  r   r3  r6  r#  rC  r  r  r   r   R  s    zIPolys.dmp_sub_mulc                 C   s    |   t|  |¡|  |¡| jƒ¡S r  )r7  r    r3  r#  rA  r  r  r   r    U  s    zIPolys.dup_mulc                 C   s(   |   t|  |¡|  |¡| jd | jƒ¡S r4  )r7  r!   r3  r6  r#  rA  r  r  r   r!   W  s    zIPolys.dmp_mulc                 C   s   |   t|  |¡| jƒ¡S r  )r7  r"   r3  r#  r@  r  r  r   r"   Z  s    zIPolys.dup_sqrc                 C   s    |   t|  |¡| jd | jƒ¡S r4  )r7  r#   r3  r6  r#  r@  r  r  r   r#   \  s    zIPolys.dmp_sqrc                 C   s   |   t|  |¡|| jƒ¡S r  )r7  r$   r3  r#  r>  r  r  r   r$   ^  s    zIPolys.dup_powc                 C   s"   |   t|  |¡|| jd | jƒ¡S r4  )r7  r%   r3  r6  r#  r>  r  r  r   r%   `  s    zIPolys.dmp_powc                 C   s2   t |  |¡|  |¡| jƒ\}}|  |¡|  |¡fS r  )r&   r3  r#  r7  ©r  r9  rB  ÚqÚrr  r  r   r&   c  s    zIPolys.dup_pdivc                 C   s    |   t|  |¡|  |¡| jƒ¡S r  )r7  r'   r3  r#  rA  r  r  r   r'   f  s    zIPolys.dup_premc                 C   s    |   t|  |¡|  |¡| jƒ¡S r  )r7  r(   r3  r#  rA  r  r  r   r(   h  s    zIPolys.dup_pquoc                 C   s    |   t|  |¡|  |¡| jƒ¡S r  )r7  r)   r3  r#  rA  r  r  r   r)   j  s    zIPolys.dup_pexquoc                 C   s:   t |  |¡|  |¡| jd | jƒ\}}|  |¡|  |¡fS r4  )r*   r3  r6  r#  r7  rE  r  r  r   r*   m  s    &zIPolys.dmp_pdivc                 C   s(   |   t|  |¡|  |¡| jd | jƒ¡S r4  )r7  r+   r3  r6  r#  rA  r  r  r   r+   p  s    zIPolys.dmp_premc                 C   s(   |   t|  |¡|  |¡| jd | jƒ¡S r4  )r7  r,   r3  r6  r#  rA  r  r  r   r,   r  s    zIPolys.dmp_pquoc                 C   s(   |   t|  |¡|  |¡| jd | jƒ¡S r4  )r7  r-   r3  r6  r#  rA  r  r  r   r-   t  s    zIPolys.dmp_pexquoc                 C   s2   t |  |¡|  |¡| jƒ\}}|  |¡|  |¡fS r  )r.   r3  r#  r7  rE  r  r  r   r.   w  s    zIPolys.dup_rr_divc                 C   s:   t |  |¡|  |¡| jd | jƒ\}}|  |¡|  |¡fS r4  )r/   r3  r6  r#  r7  rE  r  r  r   r/   z  s    &zIPolys.dmp_rr_divc                 C   s2   t |  |¡|  |¡| jƒ\}}|  |¡|  |¡fS r  )r0   r3  r#  r7  rE  r  r  r   r0   }  s    zIPolys.dup_ff_divc                 C   s:   t |  |¡|  |¡| jd | jƒ\}}|  |¡|  |¡fS r4  )r1   r3  r6  r#  r7  rE  r  r  r   r1   €  s    &zIPolys.dmp_ff_divc                 C   s2   t |  |¡|  |¡| jƒ\}}|  |¡|  |¡fS r  )r2   r3  r#  r7  rE  r  r  r   r2   „  s    zIPolys.dup_divc                 C   s    |   t|  |¡|  |¡| jƒ¡S r  )r7  r3   r3  r#  rA  r  r  r   r3   ‡  s    zIPolys.dup_remc                 C   s    |   t|  |¡|  |¡| jƒ¡S r  )r7  r4   r3  r#  rA  r  r  r   r4   ‰  s    zIPolys.dup_quoc                 C   s    |   t|  |¡|  |¡| jƒ¡S r  )r7  r5   r3  r#  rA  r  r  r   r5   ‹  s    zIPolys.dup_exquoc                 C   s:   t |  |¡|  |¡| jd | jƒ\}}|  |¡|  |¡fS r4  )r6   r3  r6  r#  r7  rE  r  r  r   r6   Ž  s    &zIPolys.dmp_divc                 C   s(   |   t|  |¡|  |¡| jd | jƒ¡S r4  )r7  r7   r3  r6  r#  rA  r  r  r   r7   ‘  s    zIPolys.dmp_remc                 C   s(   |   t|  |¡|  |¡| jd | jƒ¡S r4  )r7  r8   r3  r6  r#  rA  r  r  r   r8   “  s    zIPolys.dmp_quoc                 C   s(   |   t|  |¡|  |¡| jd | jƒ¡S r4  )r7  r9   r3  r6  r#  rA  r  r  r   r9   •  s    zIPolys.dmp_exquoc                 C   s   t |  |¡| jƒS r  )r:   r3  r#  r@  r  r  r   r:   ˜  s    zIPolys.dup_max_normc                 C   s   t |  |¡| jd | jƒS r4  )r;   r3  r6  r#  r@  r  r  r   r;   š  s    zIPolys.dmp_max_normc                 C   s   t |  |¡| jƒS r  )r<   r3  r#  r@  r  r  r   r<   �  s    zIPolys.dup_l1_normc                 C   s   t |  |¡| jd | jƒS r4  )r=   r3  r6  r#  r@  r  r  r   r=   Ÿ  s    zIPolys.dmp_l1_normc                 C   s   t |  |¡| jƒS r  )r>   r3  r#  r@  r  r  r   r>   ¢  s    zIPolys.dup_l2_norm_squaredc                 C   s   t |  |¡| jd | jƒS r4  )r?   r3  r6  r#  r@  r  r  r   r?   ¤  s    zIPolys.dmp_l2_norm_squaredc                 C   s   |   ttt| j|ƒƒ| jƒ¡S r  )r7  r@   ÚlistÚmapr3  r#  ©r  Úpolysr  r  r   r@   §  s    zIPolys.dup_expandc                 C   s&   |   ttt| j|ƒƒ| jd | jƒ¡S r4  )r7  rA   rH  rI  r3  r6  r#  rJ  r  r  r   rA   ©  s    zIPolys.dmp_expandc                 C   s   t |  |¡| jƒS r  )rB   r3  r#  r@  r  r  r   rB   ¬  s    zIPolys.dup_LCc                 C   s6   t |  |¡| jƒ}t|tƒr.| dd …  |¡S |S d S r4  )rC   r3  r#  r/  rH  r7  )r  r9  ÚLCr  r  r   rC   ®  s    
zIPolys.dmp_LCc                 C   s   t |  |¡| jƒS r  )rD   r3  r#  r@  r  r  r   rD   ´  s    zIPolys.dup_TCc                 C   s6   t |  |¡| jƒ}t|tƒr.| dd …  |¡S |S d S r4  )rE   r3  r#  r/  rH  r7  )r  r9  ZTCr  r  r   rE   ¶  s    
zIPolys.dmp_TCc                 C   s   t |  |¡| jd | jƒS r4  )rF   r3  r6  r#  r@  r  r  r   rF   ½  s    zIPolys.dmp_ground_LCc                 C   s   t |  |¡| jd | jƒS r4  )rG   r3  r6  r#  r@  r  r  r   rG   ¿  s    zIPolys.dmp_ground_TCc                 C   s   t |  |¡ƒS r  )rH   r3  r@  r  r  r   rH   Â  s    zIPolys.dup_degreec                 C   s   t |  |¡| jd ƒS r4  )rI   r3  r6  r@  r  r  r   rI   Ä  s    zIPolys.dmp_degreec                 C   s   t |  |¡|| jd ƒS r4  )rJ   r3  r6  )r  r9  Újr  r  r   rJ   Æ  s    zIPolys.dmp_degree_inc                 C   s   |   t|  |¡|| jƒ¡S r  )r7  rL   r3  r#  ©r  r9  Úmr  r  r   rL   È  s    zIPolys.dup_integratec                 C   s"   |   t|  |¡|| jd | jƒ¡S r4  )r7  rM   r3  r6  r#  rN  r  r  r   rM   Ê  s    zIPolys.dmp_integratec                 C   s   |   t|  |¡|| jƒ¡S r  )r7  rO   r3  r#  rN  r  r  r   rO   Í  s    zIPolys.dup_diffc                 C   s"   |   t|  |¡|| jd | jƒ¡S r4  )r7  rP   r3  r6  r#  rN  r  r  r   rP   Ï  s    zIPolys.dmp_diffc                 C   s$   |   t|  |¡||| jd | jƒ¡S r4  )r7  rQ   r3  r6  r#  ©r  r9  rO  rM  r  r  r   rQ   Ò  s    zIPolys.dmp_diff_inc                 C   s$   |   t|  |¡||| jd | jƒ¡S r4  )r7  rN   r3  r6  r#  rP  r  r  r   rN   Ô  s    zIPolys.dmp_integrate_inc                 C   s   t |  |¡|| jƒS r  )rR   r3  r#  ©r  r9  Úar  r  r   rR   ×  s    zIPolys.dup_evalc                 C   s.   t |  |¡|| jd | jƒ}| dd …  |¡S r4  )rS   r3  r6  r#  r7  )r  r9  rR  Úresultr  r  r   rS   Ù  s    zIPolys.dmp_evalc                 C   s.   t |  |¡||| jd | jƒ}|  |¡ |¡S r4  )rT   r3  r6  r#  r!  r7  )r  r9  rR  rM  rS  r  r  r   rT   Ý  s    zIPolys.dmp_eval_inc                 C   s0   t |  |¡|||| jd | jƒ}|  |¡ |¡S r4  )rV   r3  r6  r#  r!  r7  )r  r9  rO  rR  rM  rS  r  r  r   rV   à  s     zIPolys.dmp_diff_eval_inc                 C   sF   t |  |¡|| jd | jƒ}t|tƒr>| d t|ƒ …  |¡S |S d S r4  )rU   r3  r6  r#  r/  rH  Úlenr7  )r  r9  ÚArS  r  r  r   rU   ä  s    
zIPolys.dmp_eval_tailc                 C   s   |   t|  |¡|| jƒ¡S r  )r7  rW   r3  r#  ©r  r9  Úpr  r  r   rW   ë  s    zIPolys.dup_truncc                 C   s0   |   t|  |¡| dd …  |¡| jd | jƒ¡S r4  )r7  rX   r3  r6  r#  rA  r  r  r   rX   í  s    zIPolys.dmp_truncc                 C   s"   |   t|  |¡|| jd | jƒ¡S r4  )r7  rY   r3  r6  r#  rV  r  r  r   rY   ï  s    zIPolys.dmp_ground_truncc                 C   s   |   t|  |¡| jƒ¡S r  )r7  rZ   r3  r#  r@  r  r  r   rZ   ò  s    zIPolys.dup_monicc                 C   s    |   t|  |¡| jd | jƒ¡S r4  )r7  r[   r3  r6  r#  r@  r  r  r   r[   ô  s    zIPolys.dmp_ground_monicc                 C   s6   t |  |¡|  |¡| jƒ\}}}||  |¡|  |¡fS r  )r`   r3  r#  r7  ©r  r9  rB  r:  ÚFÚGr  r  r   r`   ÷  s     zIPolys.dup_extractc                 C   s>   t |  |¡|  |¡| jd | jƒ\}}}||  |¡|  |¡fS r4  )ra   r3  r6  r#  r7  rX  r  r  r   ra   ú  s    (zIPolys.dmp_ground_extractc                 C   s4   t |  |¡ d¡ ¡ | jƒ\}}|  |¡|  |¡fS r4  )rb   r2  r!  r3  r#  r7  ©r  r9  rW  rF  r  r  r   rb   þ  s     zIPolys.dup_real_imagc                 C   s   |   t|  |¡| jƒ¡S r  )r7  rc   r3  r#  r@  r  r  r   rc     s    zIPolys.dup_mirrorc                 C   s   |   t|  |¡|| jƒ¡S r  )r7  rd   r3  r#  rQ  r  r  r   rd     s    zIPolys.dup_scalec                 C   s   |   t|  |¡|| jƒ¡S r  )r7  re   r3  r#  rQ  r  r  r   re     s    zIPolys.dup_shiftc                 C   s"   |   t|  |¡|| jd | jƒ¡S r4  )r7  rf   r3  r6  r#  rQ  r  r  r   rf     s    zIPolys.dmp_shiftc                 C   s(   |   t|  |¡|  |¡|  |¡| jƒ¡S r  )r7  rg   r3  r#  r[  r  r  r   rg   
  s    zIPolys.dup_transformc                 C   s    |   t|  |¡|  |¡| jƒ¡S r  )r7  rh   r3  r#  rA  r  r  r   rh     s    zIPolys.dup_composec                 C   s(   |   t|  |¡|  |¡| jd | jƒ¡S r4  )r7  ri   r3  r6  r#  rA  r  r  r   ri     s    zIPolys.dmp_composec                 C   s"   t |  |¡| jƒ}tt| j|ƒƒS r  )rj   r3  r#  rH  rI  r7  )r  r9  Ú
componentsr  r  r   rj     s    zIPolys.dup_decomposec                 C   s(   t |  |¡| jd | jƒ}|  ¡  |¡S r4  )rk   r3  r6  r#  r'  r7  ©r  r9  rS  r  r  r   rk     s    zIPolys.dmp_liftc                 C   s   t |  |¡| jƒS r  )rl   r3  r#  r@  r  r  r   rl     s    zIPolys.dup_sign_variationsFc                 C   sD   t |  |¡| j|d�\}}|r2| j| j ¡ d�}n| }|| |¡fS )N©Úconvert©r#  )rm   r3  r#  r%  Úget_ringr7  ©r  r9  r_  r:  rY  r0  r  r  r   rm     s
    zIPolys.dup_clear_denomsc                 C   sL   t |  |¡| jd | j|d�\}}|r:| j| j ¡ d�}n| }|| |¡fS )Nr5  r^  r`  )rn   r3  r6  r#  r%  ra  r7  rb  r  r  r   rn   $  s
    "zIPolys.dmp_clear_denomsc                 C   s   |   t|  |¡|| jƒ¡S r  )r7  ro   r3  r#  r>  r  r  r   ro   ,  s    zIPolys.dup_revertc                 C   s2   t |  |¡|  |¡| jƒ\}}|  |¡|  |¡fS r  )rp   r3  r#  r7  ©r  r9  rB  ÚsrD  r  r  r   rp   /  s    zIPolys.dup_half_gcdexc                 C   s:   t |  |¡|  |¡| jd | jƒ\}}|  |¡|  |¡fS r4  )rq   r3  r6  r#  r7  rc  r  r  r   rq   2  s    &zIPolys.dmp_half_gcdexc                 C   s<   t |  |¡|  |¡| jƒ\}}}|  |¡|  |¡|  |¡fS r  )rr   r3  r#  r7  ©r  r9  rB  rd  ÚtrD  r  r  r   rr   5  s     zIPolys.dup_gcdexc                 C   sD   t |  |¡|  |¡| jd | jƒ\}}}|  |¡|  |¡|  |¡fS r4  )rs   r3  r6  r#  r7  re  r  r  r   rs   8  s    (zIPolys.dmp_gcdexc                 C   s    |   t|  |¡|  |¡| jƒ¡S r  )r7  rt   r3  r#  rA  r  r  r   rt   <  s    zIPolys.dup_invertc                 C   s(   |   t|  |¡|  |¡| jd | jƒ¡S r4  )r7  ru   r3  r6  r#  rA  r  r  r   ru   >  s    zIPolys.dmp_invertc                 C   s*   t |  |¡|  |¡| jƒ}tt| j|ƒƒS r  )rv   r3  r#  rH  rI  r7  ©r  r9  rB  Úprsr  r  r   rv   A  s    zIPolys.dup_euclidean_prsc                 C   s2   t |  |¡|  |¡| jd | jƒ}tt| j|ƒƒS r4  )rw   r3  r6  r#  rH  rI  r7  rg  r  r  r   rw   D  s    "zIPolys.dmp_euclidean_prsc                 C   s*   t |  |¡|  |¡| jƒ}tt| j|ƒƒS r  )rx   r3  r#  rH  rI  r7  rg  r  r  r   rx   G  s    zIPolys.dup_primitive_prsc                 C   s2   t |  |¡|  |¡| jd | jƒ}tt| j|ƒƒS r4  )ry   r3  r6  r#  rH  rI  r7  rg  r  r  r   ry   J  s    "zIPolys.dmp_primitive_prsc                 C   s2   t |  |¡|  |¡| jƒ\}}tt| j|ƒƒ|fS r  )rz   r3  r#  rH  rI  r7  ©r  r9  rB  rh  Úsresr  r  r   rz   N  s    zIPolys.dup_inner_subresultantsc                 C   s:   t |  |¡|  |¡| jd | jƒ\}}tt| j|ƒƒ|fS r4  )r~   r3  r6  r#  rH  rI  r7  ri  r  r  r   r~   Q  s    &zIPolys.dmp_inner_subresultantsc                 C   s*   t |  |¡|  |¡| jƒ}tt| j|ƒƒS r  )r{   r3  r#  rH  rI  r7  rg  r  r  r   r{   U  s    zIPolys.dup_subresultantsc                 C   s2   t |  |¡|  |¡| jd | jƒ}tt| j|ƒƒS r4  )r   r3  r6  r#  rH  rI  r7  rg  r  r  r   r   X  s    "zIPolys.dmp_subresultantsc                 C   s2   t |  |¡|  |¡| jƒ\}}|tt| j|ƒƒfS r  )r|   r3  r#  rH  rI  r7  ©r  r9  rB  Úresrh  r  r  r   r|   \  s    zIPolys.dup_prs_resultantc                 C   sH   t |  |¡|  |¡| jd | jƒ\}}| dd …  |¡tt| j|ƒƒfS r4  )r€   r3  r6  r#  r7  rH  rI  rk  r  r  r   r€   _  s    &zIPolys.dmp_prs_resultantc                 C   s<   t |  |¡|  |¡|  |¡| jd | jƒ}| dd …  |¡S r4  )r�   r3  r+  r6  r#  r7  )r  r9  rB  rW  rl  r  r  r   r�   c  s    *zIPolys.dmp_zz_modular_resultantc                 C   s4   t |  |¡|  |¡| jd | jƒ}| dd …  |¡S r4  )r‚   r3  r6  r#  r7  ©r  r9  rB  rl  r  r  r   r‚   f  s    "zIPolys.dmp_zz_collins_resultantc                 C   s4   t |  |¡|  |¡| jd | jƒ}| dd …  |¡S r4  )rƒ   r3  r6  r#  r7  rm  r  r  r   rƒ   i  s    "zIPolys.dmp_qq_collins_resultantc                 C   s   t |  |¡|  |¡| jƒS r  )r}   r3  r#  rA  r  r  r   r}   m  s    zIPolys.dup_resultantc                 C   sF   t |  |¡|  |¡| jd | jƒ}t|tƒr>| dd …  |¡S |S d S r4  )r„   r3  r6  r#  r/  rH  r7  rm  r  r  r   r„   o  s    "
zIPolys.dmp_resultantc                 C   s   t |  |¡| jƒS r  )r…   r3  r#  r@  r  r  r   r…   v  s    zIPolys.dup_discriminantc                 C   s>   t |  |¡| jd | jƒ}t|tƒr6| dd …  |¡S |S d S r4  )r†   r3  r6  r#  r/  rH  r7  )r  r9  Zdiscr  r  r   r†   x  s    
zIPolys.dmp_discriminantc                 C   s<   t |  |¡|  |¡| jƒ\}}}|  |¡|  |¡|  |¡fS r  )r‡   r3  r#  r7  ©r  r9  rB  ÚHrY  rZ  r  r  r   r‡     s     zIPolys.dup_rr_prs_gcdc                 C   s<   t |  |¡|  |¡| jƒ\}}}|  |¡|  |¡|  |¡fS r  )rˆ   r3  r#  r7  rn  r  r  r   rˆ   ‚  s     zIPolys.dup_ff_prs_gcdc                 C   sD   t |  |¡|  |¡| jd | jƒ\}}}|  |¡|  |¡|  |¡fS r4  )r‰   r3  r6  r#  r7  rn  r  r  r   r‰   …  s    (zIPolys.dmp_rr_prs_gcdc                 C   sD   t |  |¡|  |¡| jd | jƒ\}}}|  |¡|  |¡|  |¡fS r4  )rŠ   r3  r6  r#  r7  rn  r  r  r   rŠ   ˆ  s    (zIPolys.dmp_ff_prs_gcdc                 C   s<   t |  |¡|  |¡| jƒ\}}}|  |¡|  |¡|  |¡fS r  )r‹   r3  r#  r7  rn  r  r  r   r‹   ‹  s     zIPolys.dup_zz_heu_gcdc                 C   sD   t |  |¡|  |¡| jd | jƒ\}}}|  |¡|  |¡|  |¡fS r4  )rŒ   r3  r6  r#  r7  rn  r  r  r   rŒ   Ž  s    (zIPolys.dmp_zz_heu_gcdc                 C   s<   t |  |¡|  |¡| jƒ\}}}|  |¡|  |¡|  |¡fS r  )r�   r3  r#  r7  rn  r  r  r   r�   ‘  s     zIPolys.dup_qq_heu_gcdc                 C   sD   t |  |¡|  |¡| jd | jƒ\}}}|  |¡|  |¡|  |¡fS r4  )rŽ   r3  r6  r#  r7  rn  r  r  r   rŽ   ”  s    (zIPolys.dmp_qq_heu_gcdc                 C   s<   t |  |¡|  |¡| jƒ\}}}|  |¡|  |¡|  |¡fS r  )r�   r3  r#  r7  rn  r  r  r   r�   —  s     zIPolys.dup_inner_gcdc                 C   sD   t |  |¡|  |¡| jd | jƒ\}}}|  |¡|  |¡|  |¡fS r4  )r�   r3  r6  r#  r7  rn  r  r  r   r�   š  s    (zIPolys.dmp_inner_gcdc                 C   s$   t |  |¡|  |¡| jƒ}|  |¡S r  )r‘   r3  r#  r7  ©r  r9  rB  ro  r  r  r   r‘   �  s    zIPolys.dup_gcdc                 C   s,   t |  |¡|  |¡| jd | jƒ}|  |¡S r4  )r’   r3  r6  r#  r7  rp  r  r  r   r’      s    "zIPolys.dmp_gcdc                 C   s$   t |  |¡|  |¡| jƒ}|  |¡S r  )r“   r3  r#  r7  rp  r  r  r   r“   £  s    zIPolys.dup_rr_lcmc                 C   s$   t |  |¡|  |¡| jƒ}|  |¡S r  )r”   r3  r#  r7  rp  r  r  r   r”   ¦  s    zIPolys.dup_ff_lcmc                 C   s$   t |  |¡|  |¡| jƒ}|  |¡S r  )r•   r3  r#  r7  rp  r  r  r   r•   ©  s    zIPolys.dup_lcmc                 C   s,   t |  |¡|  |¡| jd | jƒ}|  |¡S r4  )r–   r3  r6  r#  r7  rp  r  r  r   r–   ¬  s    "zIPolys.dmp_rr_lcmc                 C   s,   t |  |¡|  |¡| jd | jƒ}|  |¡S r4  )r—   r3  r6  r#  r7  rp  r  r  r   r—   ¯  s    "zIPolys.dmp_ff_lcmc                 C   s,   t |  |¡|  |¡| jd | jƒ}|  |¡S r4  )r˜   r3  r6  r#  r7  rp  r  r  r   r˜   ²  s    "zIPolys.dmp_lcmc                 C   s   t |  |¡| jƒ}|S r  )r\   r3  r#  ©r  r9  Úcontr  r  r   r\   ¶  s    zIPolys.dup_contentc                 C   s$   t |  |¡| jƒ\}}||  |¡fS r  )r^   r3  r#  r7  ©r  r9  rr  Zprimr  r  r   r^   ¹  s    zIPolys.dup_primitivec                 C   s>   t |  |¡| jd | jƒ}t|tƒr6| dd …  |¡S |S d S r4  )r™   r3  r6  r#  r/  rH  r7  rq  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 r4  )rš   r3  r6  r#  r/  rH  r7  rs  r  r  r   rš   Ã  s    
zIPolys.dmp_primitivec                 C   s   t |  |¡| jd | jƒ}|S r4  )r]   r3  r6  r#  rq  r  r  r   r]   Ê  s    zIPolys.dmp_ground_contentc                 C   s,   t |  |¡| jd | jƒ\}}||  |¡fS r4  )r_   r3  r6  r#  r7  rs  r  r  r   r_   Í  s    zIPolys.dmp_ground_primitiveTc           	      C   sf   t |  |¡|  |¡| j|d�}|sF|\}}}}|||  |¡|  |¡fS |\}}|  |¡|  |¡fS d S )N©Úinclude)r›   r3  r#  r7  ©	r  r9  rB  ru  rS  ÚcfZcgrY  rZ  r  r  r   r›   Ñ  s    zIPolys.dup_cancelc           	      C   sn   t |  |¡|  |¡| jd | j|d�}|sN|\}}}}|||  |¡|  |¡fS |\}}|  |¡|  |¡fS d S )Nr5  rt  )rœ   r3  r6  r#  r7  rv  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  ©r7  ©Ú.0rB  Úkr&  r  r   Ú
<listcomp>ä  s     z-IPolys.dup_trial_division.<locals>.<listcomp>)r�   r3  rH  rI  r#  ©r  r9  Úfactorsr  r&  r   r�   â  s     zIPolys.dup_trial_divisionc                    s:   t ˆ  |¡ttˆ j|ƒƒˆ jd ˆ jƒ}‡ fdd„|D ƒS )Nr5  c                    s   g | ]\}}ˆ   |¡|f‘qS r  rx  ry  r&  r  r   r|  ç  s     z-IPolys.dmp_trial_division.<locals>.<listcomp>)rž   r3  rH  rI  r6  r#  r}  r  r&  r   rž   å  s    (zIPolys.dmp_trial_divisionc                 C   s   t |  |¡| jƒS r  )rŸ   r3  r#  r@  r  r  r   rŸ   é  s    zIPolys.dup_zz_mignotte_boundc                 C   s   t |  |¡| jd | jƒS r4  )r    r3  r6  r#  r@  r  r  r   r    ë  s    zIPolys.dmp_zz_mignotte_boundc                 C   s\   | j }t|||ƒ||ƒ||ƒ||ƒ||ƒ| jƒ\}}	}
}|  |¡|  |	¡|  |
¡|  |¡fS r  )r3  r¡   r#  r7  )r  rO  r9  rB  rD  rd  rf  ÚDrZ  ro  Ú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  )r3  r¢   rH  rI  r#  r7  )r  rW  r9  Zf_listÚlr  rK  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  rx  ry  r&  r  r   r|  ù  s     z,IPolys.dup_zz_zassenhaus.<locals>.<listcomp>)r£   r3  r#  r}  r  r&  r   r£   ÷  s    zIPolys.dup_zz_zassenhausc                 C   s   t |  |¡| jƒS r  )r¤   r3  r#  r@  r  r  r   r¤   û  s    zIPolys.dup_zz_irreducible_pc                 C   s   t |  |¡| j|d�S )N)Úirreducible)r¥   r3  r#  )r  r9  rƒ  r  r  r   r¥   ý  s    zIPolys.dup_cyclotomic_pc                 C   s   t || jƒ}|  |¡S r  )r¦   r#  r7  )r  r?  rY  r  r  r   r¦   ÿ  s    zIPolys.dup_zz_cyclotomic_polyc                 C   s2   t |  |¡| jƒ}|d kr|S tt| j|ƒƒS d S r  )r§   r3  r#  rH  rI  r7  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 )Nr5  c                    s   g | ]\}}ˆ   |¡|f‘qS r  )r3  )rz  rf  r{  ©Úmvr  r   r|    s     z2IPolys.dmp_zz_wang_lead_coeffs.<locals>.<listcomp>)rH  rI  r3  r«   r6  r#  r7  )
r  r9  r�  r…  r„  ro  rU  Ú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¬   rH  rI  r3  r#  r7  )r  rY  rO  rW  rS  r  r  r   r¬     s    zIPolys.dup_zz_diophantinec                 C   s>   t tt| j|ƒƒ|  |¡|||| jd | jƒ}tt| j|ƒƒS r4  )r­   rH  rI  r3  r6  r#  r7  )r  rY  r:  rU  r,  rW  rS  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 r4  )rH  rI  r3  r®   r6  r#  r7  )	r  r9  ro  rL  rU  rW  r‰  rˆ  rS  r  r  r   r®   %  s    "z!IPolys.dmp_zz_wang_hensel_liftingc                    s2   t ˆ  |¡ˆ jd ˆ j||d�}‡ fdd„|D ƒS )Nr5  )ÚmodÚseedc                    s   g | ]}ˆ   |¡‘qS r  rx  ©rz  rB  r&  r  r   r|  /  s     z&IPolys.dmp_zz_wang.<locals>.<listcomp>)r¯   r3  r6  r#  )r  r9  r‹  rŒ  r~  r  r&  r   r¯   -  s     zIPolys.dmp_zz_wangc                    s,   t ˆ  |¡ˆ jƒ\}}|‡ fdd„|D ƒfS )Nc                    s   g | ]}ˆ   |¡‘qS r  rx  r�  r&  r  r   r|  3  s     z,IPolys.dup_zz_factor_sqf.<locals>.<listcomp>)r¨   r3  r#  ©r  r9  Úcoeffr~  r  r&  r   r¨   1  s    zIPolys.dup_zz_factor_sqfc                    s,   t ˆ  |¡ˆ jƒ\}}|‡ fdd„|D ƒfS )Nc                    s   g | ]\}}ˆ   |¡|f‘qS r  rx  ry  r&  r  r   r|  7  s     z(IPolys.dup_zz_factor.<locals>.<listcomp>)r©   r3  r#  rŽ  r  r&  r   r©   5  s    zIPolys.dup_zz_factorc                    s4   t ˆ  |¡ˆ jd ˆ jƒ\}}|‡ fdd„|D ƒfS )Nr5  c                    s   g | ]\}}ˆ   |¡|f‘qS r  rx  ry  r&  r  r   r|  :  s     z(IPolys.dmp_zz_factor.<locals>.<listcomp>)r°   r3  r6  r#  rŽ  r  r&  r   r°   8  s    zIPolys.dmp_zz_factorc                    s,   t ˆ  |¡ˆ jƒ\}}|‡ fdd„|D ƒfS )Nc                    s   g | ]\}}ˆ   |¡|f‘qS r  rx  ry  r&  r  r   r|  >  s     z*IPolys.dup_qq_i_factor.<locals>.<listcomp>)r±   r3  r#  rŽ  r  r&  r   r±   <  s    zIPolys.dup_qq_i_factorc                    s4   t ˆ  |¡ˆ jd ˆ jƒ\}}|‡ fdd„|D ƒfS )Nr5  c                    s   g | ]\}}ˆ   |¡|f‘qS r  rx  ry  r&  r  r   r|  A  s     z*IPolys.dmp_qq_i_factor.<locals>.<listcomp>)r³   r3  r6  r#  rŽ  r  r&  r   r³   ?  s    zIPolys.dmp_qq_i_factorc                    s,   t ˆ  |¡ˆ jƒ\}}|‡ fdd„|D ƒfS )Nc                    s   g | ]\}}ˆ   |¡|f‘qS r  rx  ry  r&  r  r   r|  E  s     z*IPolys.dup_zz_i_factor.<locals>.<listcomp>)r²   r3  r#  rŽ  r  r&  r   r²   C  s    zIPolys.dup_zz_i_factorc                    s4   t ˆ  |¡ˆ jd ˆ jƒ\}}|‡ fdd„|D ƒfS )Nr5  c                    s   g | ]\}}ˆ   |¡|f‘qS r  rx  ry  r&  r  r   r|  H  s     z*IPolys.dmp_zz_i_factor.<locals>.<listcomp>)r´   r3  r6  r#  rŽ  r  r&  r   r´   F  s    zIPolys.dmp_zz_i_factorc                    s,   t ˆ  |¡ˆ jƒ\}}|‡ fdd„|D ƒfS )Nc                    s   g | ]\}}ˆ   |¡|f‘qS r  rx  ry  r&  r  r   r|  L  s     z)IPolys.dup_ext_factor.<locals>.<listcomp>)rµ   r3  r#  rŽ  r  r&  r   rµ   J  s    zIPolys.dup_ext_factorc                    s4   t ˆ  |¡ˆ jd ˆ jƒ\}}|‡ fdd„|D ƒfS )Nr5  c                    s   g | ]\}}ˆ   |¡|f‘qS r  rx  ry  r&  r  r   r|  O  s     z)IPolys.dmp_ext_factor.<locals>.<listcomp>)r¶   r3  r6  r#  rŽ  r  r&  r   r¶   M  s    zIPolys.dmp_ext_factorc                    s,   t ˆ  |¡ˆ jƒ\}}|‡ fdd„|D ƒfS )Nc                    s   g | ]\}}ˆ   |¡|f‘qS r  rx  ry  r&  r  r   r|  S  s     z(IPolys.dup_gf_factor.<locals>.<listcomp>)r·   r3  r#  rŽ  r  r&  r   r·   Q  s    zIPolys.dup_gf_factorc                    s4   t ˆ  |¡ˆ jd ˆ jƒ\}}|‡ fdd„|D ƒfS )Nr5  c                    s   g | ]\}}ˆ   |¡|f‘qS r  rx  ry  r&  r  r   r|  V  s     z(IPolys.dmp_gf_factor.<locals>.<listcomp>)r¸   r3  r6  r#  rŽ  r  r&  r   r¸   T  s    zIPolys.dmp_gf_factorc                    s,   t ˆ  |¡ˆ jƒ\}}|‡ fdd„|D ƒfS )Nc                    s   g | ]\}}ˆ   |¡|f‘qS r  rx  ry  r&  r  r   r|  Z  s     z*IPolys.dup_factor_list.<locals>.<listcomp>)r¹   r3  r#  rŽ  r  r&  r   r¹   X  s    zIPolys.dup_factor_listc                    s$   t ˆ  |¡ˆ jƒ}‡ fdd„|D ƒS )Nc                    s   g | ]\}}ˆ   |¡|f‘qS r  rx  ry  r&  r  r   r|  ]  s     z2IPolys.dup_factor_list_include.<locals>.<listcomp>)rº   r3  r#  r}  r  r&  r   rº   [  s    zIPolys.dup_factor_list_includec                    s4   t ˆ  |¡ˆ jd ˆ jƒ\}}|‡ fdd„|D ƒfS )Nr5  c                    s   g | ]\}}ˆ   |¡|f‘qS r  rx  ry  r&  r  r   r|  a  s     z*IPolys.dmp_factor_list.<locals>.<listcomp>)r»   r3  r6  r#  rŽ  r  r&  r   r»   _  s    zIPolys.dmp_factor_listc                    s,   t ˆ  |¡ˆ jd ˆ jƒ}‡ fdd„|D ƒS )Nr5  c                    s   g | ]\}}ˆ   |¡|f‘qS r  rx  ry  r&  r  r   r|  d  s     z2IPolys.dmp_factor_list_include.<locals>.<listcomp>)r¼   r3  r6  r#  r}  r  r&  r   r¼   b  s    zIPolys.dmp_factor_list_includec                 C   s   t |  |¡| jƒS r  )r½   r3  r#  r@  r  r  r   r½   f  s    zIPolys.dup_irreducible_pc                 C   s   t |  |¡| jd | jƒS r4  )r¾   r3  r6  r#  r@  r  r  r   r¾   h  s    zIPolys.dmp_irreducible_pc                 C   s"   t |  |¡| jƒ}tt| j|ƒƒS r  )r¿   r3  r#  rH  rI  r7  )r  r9  Úseqr  r  r   r¿   k  s    zIPolys.dup_sturmc                 C   s   t |  |¡| jƒS r  )rÑ   r3  r#  r@  r  r  r   rÑ   o  s    zIPolys.dup_sqf_pc                 C   s   t |  |¡| jd | jƒS r4  )rÒ   r3  r6  r#  r@  r  r  r   rÒ   q  s    zIPolys.dmp_sqf_pc                 C   s(   t |  |¡| jd | jƒ}|  ¡  |¡S r4  )rÓ   r3  r6  r#  r'  r7  r>  r  r  r   rÓ   t  s    zIPolys.dmp_normc                 C   s2   t |  |¡| jƒ\}}}||  |¡|  ¡  |¡fS r  )rÔ   r3  r#  r7  r'  ©r  r9  rd  rY  ÚRr  r  r   rÔ   x  s    zIPolys.dup_sqf_normc                 C   s:   t |  |¡| jd | jƒ\}}}||  |¡|  ¡  |¡fS r4  )rÕ   r3  r6  r#  r7  r'  r‘  r  r  r   rÕ   {  s     zIPolys.dmp_sqf_normc                 C   s   |   t|  |¡| jƒ¡S r  )r7  rÖ   r3  r#  r@  r  r  r   rÖ     s    zIPolys.dup_gf_sqf_partc                 C   s   |   t|  |¡| jƒ¡S r  )r7  r×   r3  r#  r@  r  r  r   r×   �  s    zIPolys.dmp_gf_sqf_partc                 C   s   |   t|  |¡| jƒ¡S r  )r7  rØ   r3  r#  r@  r  r  r   rØ   ƒ  s    zIPolys.dup_sqf_partc                 C   s    |   t|  |¡| jd | jƒ¡S r4  )r7  rÙ   r3  r6  r#  r@  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  rx  ry  r&  r  r   r|  Š  s     z*IPolys.dup_gf_sqf_list.<locals>.<listcomp>)rÚ   r3  r#  ©r  r9  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 )Nr5  r“  c                    s   g | ]\}}ˆ   |¡|f‘qS r  rx  ry  r&  r  r   r|  �  s     z*IPolys.dmp_gf_sqf_list.<locals>.<listcomp>)rÛ   r3  r6  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  rx  ry  r&  r  r   r|  ‘  s     z'IPolys.dup_sqf_list.<locals>.<listcomp>)rÜ   r3  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  rx  ry  r&  r  r   r|  ”  s     z/IPolys.dup_sqf_list_include.<locals>.<listcomp>)rÝ   r3  r#  ©r  r9  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 )Nr5  r“  c                    s   g | ]\}}ˆ   |¡|f‘qS r  rx  ry  r&  r  r   r|  —  s     z'IPolys.dmp_sqf_list.<locals>.<listcomp>)rÞ   r3  r6  r#  r•  r  r&  r   rÞ   •  s    "zIPolys.dmp_sqf_listc                    s0   t ˆ  |¡ˆ jd ˆ j|d�}‡ fdd„|D ƒS )Nr5  r“  c                    s   g | ]\}}ˆ   |¡|f‘qS r  rx  ry  r&  r  r   r|  š  s     z/IPolys.dmp_sqf_list_include.<locals>.<listcomp>)rß   r3  r6  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  rx  ry  r&  r  r   r|  ž  s     z'IPolys.dup_gff_list.<locals>.<listcomp>)rà   r3  r#  r}  r  r&  r   rà   œ  s    zIPolys.dup_gff_listc                    s,   t ˆ  |¡ˆ jd ˆ jƒ}‡ fdd„|D ƒS )Nr5  c                    s   g | ]\}}ˆ   |¡|f‘qS r  rx  ry  r&  r  r   r|  ¡  s     z'IPolys.dmp_gff_list.<locals>.<listcomp>)rá   r3  r6  r#  r}  r  r&  r   rá   Ÿ  s    zIPolys.dmp_gff_listc                 C   s   t |  |¡| jƒS r  )rÀ   r3  r#  r@  r  r  r   rÀ   £  s    zIPolys.dup_root_upper_boundc                 C   s   t |  |¡| jƒS r  )rÁ   r3  r#  r@  r  r  r   rÁ   ¥  s    zIPolys.dup_root_lower_boundc                 C   s   t |  |¡|| j|d�S )N)Úfast)rÂ   r3  r#  )r  r9  Ú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Ã   r3  r#  )r  r9  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Ä   r3  r#  ©r  r9  rd  rf  r™  rš  r›  r—  r  r  r   rÄ   ¬  s    z!IPolys.dup_outer_refine_real_rootc              
   C   s    t |  |¡||| j||||d�S r�  )rÅ   r3  r#  rž  r  r  r   rÅ   ®  s    zIPolys.dup_refine_real_rootc                 C   s   t |  |¡| j||d�S )N)r™  r—  )rÆ   r3  r#  )r  r9  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Ç   r3  r#  )r  r9  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È   r3  r#  )r  r9  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É   r3  r#  ©r  r9  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Ê   r3  r#  )r  r9  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Ë   rH  rI  r3  r#  )r  rK  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Ì   r3  r#  )r  r9  rŸ  r   r  r  r   rÌ   ¼  s    zIPolys.dup_count_real_rootsc                 C   s   t |  |¡| j|||d�S )N)rŸ  r   Úexclude)rÍ   r3  r#  )r  r9  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Î   r3  r#  )r  r9  r™  rŸ  r   r¢  r  r  r   rÎ   À  s    z$IPolys.dup_isolate_complex_roots_sqfc              	   C   s   t |  |¡| j|||||d�S r¡  )rÏ   r3  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Ð   r3  r#  )r  r9  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_1r5  )Úsympy.polys.specialpolysr§  ÚtuplerI  r7  r6  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_2r5  )r¨  r«  r©  rI  r7  r6  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_3r5  )r¨  r­  r©  rI  r7  r6  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#  Údomr_  )rz  r:  r&  r  r   r|  Ò  s     z&IPolys.to_gf_dense.<locals>.<listcomp>)rå   r2  r3  r(  r  r&  r   Úto_gf_denseÑ  s    zIPolys.to_gf_densec                 C   s   |   t|| jd | jjƒ¡S r4  )r-  rK   r6  r#  r¯  r(  r  r  r   Úfrom_gf_denseÔ  s    zIPolys.from_gf_densec                 C   s   t |  |¡ƒS r  )râ   r°  r@  r  r  r   râ   ×  s    zIPolys.gf_degreec                 C   s   t |  |¡| jjƒS r  )rã   r°  r#  r¯  r@  r  r  r   rã   Ú  s    zIPolys.gf_LCc                 C   s   t |  |¡| jjƒS r  )rä   r°  r#  r¯  r@  r  r  r   rä   Ü  s    zIPolys.gf_TCc                 C   s   |   t|  |¡ƒ¡S r  )r±  rå   r°  r@  r  r  r   rå   ß  s    zIPolys.gf_stripc                 C   s   |   t|  |¡| jjƒ¡S r  )r±  rå   r°  r#  r‹  r@  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¯  r@  r  r  r   Ú	gf_normalã  s    zIPolys.gf_normalc                 C   s   |   t|| jj| jjƒ¡S r  )r±  ræ   r#  r‹  r¯  r@  r  r  r   ræ   æ  s    zIPolys.gf_from_dictc                 C   s   t |  |¡| jj|d�S ©N)Ú	symmetric)rç   r°  r#  r‹  ©r  r9  rµ  r  r  r   rç   è  s    zIPolys.gf_to_dictc                 C   s   |   t|| jjƒ¡S r  )r±  rè   r#  r‹  r@  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¯  r@  r  r  r   rê   ð  s    zIPolys.gf_negc                 C   s"   |   t|  |¡|| jj| jjƒ¡S r  )r±  rë   r°  r#  r‹  r¯  rQ  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¯  rQ  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¯  rQ  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¯  rQ  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¯  rA  r  r  r   rï   ü  s    zIPolys.gf_addc                 C   s(   |   t|  |¡|  |¡| jj| jjƒ¡S r  )r±  rð   r°  r#  r‹  r¯  rA  r  r  r   rð   þ  s    zIPolys.gf_subc                 C   s(   |   t|  |¡|  |¡| jj| jjƒ¡S r  )r±  rñ   r°  r#  r‹  r¯  rA  r  r  r   rñ      s    zIPolys.gf_mulc                 C   s    |   t|  |¡| jj| jjƒ¡S r  )r±  rò   r°  r#  r‹  r¯  r@  r  r  r   rò     s    zIPolys.gf_sqrc                 C   s0   |   t|  |¡|  |¡|  |¡| jj| jjƒ¡S r  )r±  ró   r°  r#  r‹  r¯  rC  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¯  rC  r  r  r   rô     s    zIPolys.gf_sub_mulc                 C   s&   |   ttt| j|ƒƒ| jj| jjƒ¡S r  )r±  rõ   rH  rI  r°  r#  r‹  r¯  )r  rY  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±  rE  r  r  r   rö     s    &zIPolys.gf_divc                 C   s(   |   t|  |¡|  |¡| jj| jjƒ¡S r  )r±  r÷   r°  r#  r‹  r¯  rA  r  r  r   r÷     s    zIPolys.gf_remc                 C   s(   |   t|  |¡|  |¡| jj| jjƒ¡S r  )r±  rø   r°  r#  r‹  r¯  rA  r  r  r   rø     s    zIPolys.gf_quoc                 C   s(   |   t|  |¡|  |¡| jj| jjƒ¡S r  )r±  rù   r°  r#  r‹  r¯  rA  r  r  r   rù     s    zIPolys.gf_exquoc                 C   s   |   t|  |¡|| jjƒ¡S r  )r±  rú   r°  r#  r¯  r>  r  r  r   rú     s    zIPolys.gf_lshiftc                 C   s   |   t|  |¡|| jjƒ¡S r  )r±  rû   r°  r#  r¯  r>  r  r  r   rû     s    zIPolys.gf_rshiftc                 C   s"   |   t|  |¡|| jj| jjƒ¡S r  )r±  rü   r°  r#  r‹  r¯  r>  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  r9  r?  rB  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  r9  rB  rD  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¯  rA  r  r  r   rþ   $  s    zIPolys.gf_gcdc                 C   s(   |   t|  |¡|  |¡| jj| jjƒ¡S r  )r±  rÿ   r°  r#  r‹  r¯  rA  r  r  r   rÿ   &  s    zIPolys.gf_lcmc                 C   s(   |   t|  |¡|  |¡| jj| jjƒ¡S r  )r±  r  r°  r#  r‹  r¯  rA  r  r  r   r  (  s    zIPolys.gf_gcdexc                 C   s    |   t|  |¡| jj| jjƒ¡S r  )r±  r  r°  r#  r‹  r¯  r@  r  r  r   r  +  s    zIPolys.gf_monicc                 C   s    |   t|  |¡| jj| jjƒ¡S r  )r±  r  r°  r#  r‹  r¯  r@  r  r  r   r  -  s    zIPolys.gf_diffc                 C   s   t |  |¡|| jj| jjƒS r  )r  r°  r#  r‹  r¯  rQ  r  r  r   r  0  s    zIPolys.gf_evalc                 C   s   t |  |¡|| jj| jjƒS r  )r  r°  r#  r‹  r¯  )r  r9  rU  r  r  r   r  2  s    zIPolys.gf_multi_evalc                 C   s(   |   t|  |¡|  |¡| jj| jjƒ¡S r  )r±  r  r°  r#  r‹  r¯  rA  r  r  r   r  5  s    zIPolys.gf_composec                 C   s0   |   t|  |¡|  |¡|  |¡| jj| jjƒ¡S r  )r±  r  r°  r#  r‹  r¯  )r  rB  rD  r9  r  r  r   r  7  s    zIPolys.gf_compose_modc                 C   s\   |   |¡}|   |¡}|   |¡}|   |¡}t|||||| jj| jjƒ\}}|  |¡|  |¡fS r  )r°  r  r#  r‹  r¯  r±  )r  rR  Úbr:  r?  r9  ÚUÚVr  r  r   r  :  s    



 zIPolys.gf_trace_mapc                 C   s   |   t|| jj| jjƒ¡S r  )r±  r	  r#  r‹  r¯  ©r  r?  r  r  r   r	  B  s    zIPolys.gf_randomc                 C   s   |   t|| jj| jjƒ¡S r  )r±  r
  r#  r‹  r¯  r»  r  r  r   r
  D  s    zIPolys.gf_irreduciblec                 C   s   t |  |¡| jj| jjƒS r  )r  r°  r#  r‹  r¯  r@  r  r  r   r  G  s    zIPolys.gf_irred_p_ben_orc                 C   s   t |  |¡| jj| jjƒS r  )r  r°  r#  r‹  r¯  r@  r  r  r   r  I  s    zIPolys.gf_irred_p_rabinc                 C   s   t |  |¡| jj| jjƒS r  )r  r°  r#  r‹  r¯  r@  r  r  r   r  K  s    zIPolys.gf_irreducible_pc                 C   s   t |  |¡| jj| jjƒS r  )r  r°  r#  r‹  r¯  r@  r  r  r   r  M  s    zIPolys.gf_sqf_pc                 C   s    |   t|  |¡| jj| jjƒ¡S r  )r±  r  r°  r#  r‹  r¯  r@  r  r  r   r  P  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±  ry  r&  r  r   r|  T  s     z&IPolys.gf_sqf_list.<locals>.<listcomp>)r  r°  r#  r‹  r¯  r•  r  r&  r   Úgf_sqf_listR  s    zIPolys.gf_sqf_listc                 C   s   t |  |¡| jj| jjƒS r  )r  r°  r#  r‹  r¯  r@  r  r  r   r  V  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|  Z  s     z'IPolys.gf_berlekamp.<locals>.<listcomp>)r  r°  r#  r‹  r¯  r}  r  r&  r   r  X  s    zIPolys.gf_berlekampc                    s,   t ˆ  |¡ˆ jjˆ jjƒ}‡ fdd„|D ƒS )Nc                    s   g | ]\}}ˆ   |¡|f‘qS r  r¼  ry  r&  r  r   r|  ^  s     z,IPolys.gf_ddf_zassenhaus.<locals>.<listcomp>)r  r°  r#  r‹  r¯  r}  r  r&  r   r  \  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|  a  s     z,IPolys.gf_edf_zassenhaus.<locals>.<listcomp>)r  r°  r#  r‹  r¯  ©r  r9  r?  r~  r  r&  r   r  _  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¼  ry  r&  r  r   r|  e  s     z'IPolys.gf_ddf_shoup.<locals>.<listcomp>)r  r°  r#  r‹  r¯  r}  r  r&  r   r  c  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|  h  s     z'IPolys.gf_edf_shoup.<locals>.<listcomp>)r  r°  r#  r‹  r¯  r¾  r  r&  r   r  f  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|  l  s     z(IPolys.gf_zassenhaus.<locals>.<listcomp>)r  r°  r#  r‹  r¯  r}  r  r&  r   r  j  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|  o  s     z#IPolys.gf_shoup.<locals>.<listcomp>)r  r°  r#  r‹  r¯  r}  r  r&  r   r  m  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|  s  s     z(IPolys.gf_factor_sqf.<locals>.<listcomp>)r  r°  r#  r‹  r¯  )r  r9  r¿  r�  r~  r  r&  r   r  q  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¼  ry  r&  r  r   r|  v  s     z$IPolys.gf_factor.<locals>.<listcomp>)r  r°  r#  r‹  r¯  rŽ  r  r&  r   r  t  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(0  Ú__name__Ú
__module__Ú__qualname__r"  r6  r#  r$  Zgensr!  r%  r'  r*  r+  r-  r2  r3  r7  r   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   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  ç   sZ  

		r  N($  Ú__doc__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(   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   Zsympy.polys.densebasicrB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   Z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   Z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œ   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ÿ m