§
    OŠtjy ã                  ó.  — 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mZ ddlmZmZmZ dd	l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/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8 ddl9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZR ddlSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZb ddlcmdZdmeZemfZfmgZgmhZhmiZimjZjmkZkmlZlmmZm ddlnmoZompZpmqZqmrZrmsZsmtZtmuZu ddlvmwZwmxZxmyZymzZz 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† ddlm‡Z‡mˆZˆ edk    rddl‰Z‰d„ ZŠndZ‰d„ ZŠ G d„ de
¦  «        Z‹ G d„ de‹¦  «        ZŒ G d„ de‹¦  «        Z�d„ ZŽ G d„ dee
¦  «        Z�d„ Z� G d „ d!e
¦  «        Z‘dS )"z1OO layer for several polynomial representations. é    )Úannotations)ÚGROUND_TYPES)Úsympy_deprecation_warning)Úoo)ÚCantSympify)ÚPicklableWithSlotsÚ_sort_factors)ÚDomainÚZZÚQQ)ÚCoercionFailedÚExactQuotientFailedÚDomainErrorÚNotInvertible)!ÚninfÚdmp_validateÚ
dup_normalÚ
dmp_normalÚdup_convertÚdmp_convertÚdmp_from_sympyÚ	dup_stripÚdmp_degree_inÚdmp_degree_listÚdmp_negative_pÚdmp_ground_LCÚdmp_ground_TCÚdmp_ground_nthÚdmp_oneÚ
dmp_groundÚdmp_zeroÚ
dmp_zero_pÚ	dmp_one_pÚdmp_ground_pÚdup_from_dictÚdmp_from_dictÚdmp_to_dictÚdmp_deflateÚ
dmp_injectÚ	dmp_ejectÚdmp_terms_gcdÚdmp_list_termsÚdmp_excludeÚ	dup_sliceÚdmp_slice_inÚdmp_permuteÚdmp_to_tuple)Údmp_add_groundÚdmp_sub_groundÚdmp_mul_groundÚdmp_quo_groundÚdmp_exquo_groundÚdmp_absÚdmp_negÚdmp_addÚdmp_subÚdmp_mulÚdmp_sqrÚdmp_powÚdmp_pdivÚdmp_premÚdmp_pquoÚ
dmp_pexquoÚdmp_divÚdmp_remÚdmp_quoÚ	dmp_exquoÚdmp_add_mulÚdmp_sub_mulÚdmp_max_normÚdmp_l1_normÚdmp_l2_norm_squared)Údmp_clear_denomsÚdmp_integrate_inÚdmp_diff_inÚdmp_eval_inÚ
dup_revertÚdmp_ground_truncÚdmp_ground_contentÚdmp_ground_primitiveÚdmp_ground_monicÚdmp_composeÚdup_decomposeÚ	dup_shiftÚ	dmp_shiftÚdup_transformÚdmp_lift)
Údup_half_gcdexÚ	dup_gcdexÚ
dup_invertÚdmp_subresultantsÚdmp_resultantÚdmp_discriminantÚdmp_inner_gcdÚdmp_gcdÚdmp_lcmÚ
dmp_cancel)Údup_gff_listÚdmp_normÚ	dmp_sqf_pÚdmp_sqf_normÚdmp_sqf_partÚdmp_sqf_listÚdmp_sqf_list_include)Údup_cyclotomic_pÚdmp_irreducible_pÚdmp_factor_listÚdmp_factor_list_include)Údup_isolate_real_roots_sqfÚdup_isolate_real_rootsÚdup_isolate_all_roots_sqfÚdup_isolate_all_rootsÚdup_refine_real_rootÚdup_count_real_rootsÚdup_count_complex_rootsÚ	dup_sturmÚdup_cauchy_upper_boundÚdup_cauchy_lower_boundÚdup_mignotte_sep_bound_squared)ÚUnificationFailedÚPolynomialErrorÚflintNc                ó:   — | j         p| j        p| j        o| j        S ©N)Úis_ZZÚis_QQÚis_FFÚ	_is_flint©ÚDs    úU/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/polys/polyclasses.pyÚ_supported_flint_domainr†   ‚   s   € ØŒwÐ<˜!œ'Ð< Q¤WÐ%<°´Ð<ó    c                ó   — dS ©NF© rƒ   s    r…   r†   r†   †   s   € Øˆur‡   c                  óp  — e Zd ZU dZdZded<   ded<   d×d„Zed	„ ¦   «         Ze	d
„ ¦   «         Z
d„ Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zd„ Zd„ Zed„ ¦   «         Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdØd„ZdØd„Zd„ Zd„ Zd „ Zd!„ Z d"„ Z!d#„ Z"dÙd%„Z#d&„ Z$d'„ Z%d×d(„Z&d×d)„Z'd×d*„Z(d×d+„Z)d,„ Z*d-„ Z+d.„ Z,d/„ Z-d0„ Z.d1„ Z/dØd2„Z0dØd3„Z1d4„ Z2d5„ Z3d6„ Z4d7„ Z5d8„ Z6d9„ Z7d:„ Z8d;„ Z9d<„ Z:d=„ Z;d>„ Z<d?„ Z=d@„ Z>dA„ Z?dB„ Z@dC„ ZAdD„ ZBdE„ ZCdF„ ZDdG„ ZEdH„ ZFdI„ ZGdJ„ ZHdK„ ZIdL„ ZJdM„ ZKdN„ ZLdO„ ZMdP„ ZNdQ„ ZOdR„ ZPdS„ ZQdT„ ZRdU„ ZSdV„ ZTdW„ ZUdX„ ZVdY„ ZWdZ„ ZXd[„ ZYd\„ ZZd]„ Z[d^„ Z\dÙd_„Z]d`„ Z^da„ Z_db„ Z`dc„ Zadd„ Zbde„ Zcdf„ Zddg„ Zedh„ Zfdi„ Zgdj„ Zhdk„ Zidl„ ZjdÚdn„Zkdo„ ZldÚdp„Zmdq„ ZndÙdr„Zods„ Zpdt„ Zqdu„ Zrdv„ Zsdw„ Ztdx„ Zudy„ Zvdz„ Zwd{„ Zxd|„ Zyd}„ Zzd~„ Z{dØd„Z|dØd€„Z}d�„ Z~d‚„ Zdƒ„ Z€d„„ Z�d…„ Z‚d†„ Zƒd‡„ Z„dÛd‰„Z…dŠ„ Z†d‹„ Z‡dŒ„ Zˆd�„ Z‰dŽ„ ZŠd�„ Z‹d�„ ZŒd‘„ Z�d’„ ZŽd“„ Z�d”„ Z�d•„ Z‘d–„ Z’d—„ Z“d˜„ Z”d™„ Z•dš„ Z–d›„ Z—dœ„ Z˜d�„ Z™dž„ ZšdŸ„ Z›d „ Zœd¡„ Z�d¢„ Zžd£„ ZŸd¤„ Z d¥„ Z¡d¦„ Z¢dØd§„Z£dØd¨„Z¤d©„ Z¥dª„ Z¦dÜd«„Z§d¬„ Z¨d­„ Z©d®„ Zªd¯„ Z«dÝd°„Z¬d±„ Z­dÞd²„Z®dÞd³„Z¯e	d´„ ¦   «         Z°e	dµ„ ¦   «         Z±e	d¶„ ¦   «         Z²e	d·„ ¦   «         Z³e	d¸„ ¦   «         Z´e	d¹„ ¦   «         Zµe	dº„ ¦   «         Z¶e	d»„ ¦   «         Z·e	d¼„ ¦   «         Z¸e	d½„ ¦   «         Z¹e	d¾„ ¦   «         Zºe	d¿„ ¦   «         Z»dÀ„ Z¼dÁ„ Z½dÂ„ Z¾dÃ„ Z¿dÄ„ ZÀdÅ„ ZÁdÆ„ ZÂdÇ„ ZÃdÈ„ ZÄdÉ„ ZÅdÊ„ ZÆdË„ ZÇdÌ„ ZÈdÍ„ ZÉdÎ„ ZÊdÏ„ ZËdØdÐ„ZÌdØdÑ„ZÍdÒ„ ZÎdÓ„ ZÏdÔ„ ZÐdÕ„ ZÑdÖ„ ZÒdS )ßÚDMPú)Dense Multivariate Polynomials over `K`. rŠ   ÚintÚlevr
   ÚdomNc                óÂ   — |€t          |¦  «        \  }}n4t          |t          ¦  «        st          dt	          |¦  «        z  ¦  «        ‚|                      |||¦  «        S )Nzexpected list, got %s)r   Ú
isinstanceÚlistr   ÚtypeÚnew©ÚclsÚrepr�   r�   s       r…   Ú__new__zDMP.__new__’   s]   € àˆ;Ý# CÑ(Ô(‰HˆC��Ý˜C¥Ñ&Ô&ð 	FÝ Ð!8½4À¹9¼9Ñ!DÑEÔEÐEà�wŠw�s˜C Ñ%Ô%Ð%r‡   c                óª   — t           �1|dk    r+t          |¦  «        rt                               |||¦  «        S t                               |||¦  «        S ©Nr   )r|   r†   Ú	DUP_FlintÚ_newÚ
DMP_Pythonr–   s       r…   r•   zDMP.new›   sL   € õ ÐØ�aŠxˆxÕ3°CÑ8Ô8ˆxÝ —~’~ c¨3°Ñ4Ô4Ð4å�Š˜s C¨Ñ-Ô-Ð-r‡   c                óN   — t          ddd¬¦  «         |                      ¦   «         S )z!Get the representation of ``f``. ay  
        Accessing the ``DMP.rep`` attribute is deprecated. The internal
        representation of ``DMP`` instances can now be ``DUP_Flint`` when the
        ground types are ``flint``. In this case the ``DMP`` instance does not
        have a ``rep`` attribute. Use ``DMP.to_list()`` instead. Using
        ``DMP.to_list()`` also works in previous versions of SymPy.
        z1.13zdmp-rep)Údeprecated_since_versionÚactive_deprecations_target)r   Úto_list©Úfs    r…   r˜   zDMP.rep§   s8   € õ 	"ð #ð &,Ø'0ð		
ñ 		
ô 		
ð 		
ð �yŠy‰{Œ{Ðr‡   c                óÒ   — t           �_t          | t          ¦  «        rJ| j        dk    r?t	          | j        ¦  «        r+t                               | j        | j        | j        ¦  «        S | S )zÇConvert to DUP_Flint if possible.

        This method should be used when the domain or level is changed and it
        potentially becomes possible to convert from DMP_Python to DUP_Flint.
        Nr   )	r|   r’   rž   r�   r†   r�   rœ   r•   Ú_repr£   s    r…   Úto_bestzDMP.to_best¸   sX   € õ ÐÝ˜!�ZÑ(Ô(ð ;¨Q¬U°aªZ¨ZÕ<SÐTUÔTYÑ<ZÔ<Z¨ZÝ —}’} Q¤V¨Q¬U°A´EÑ:Ô:Ð:àˆr‡   c                ó–   ‡‡— t          ‰t          ¦  «        sJ ‚t          |t          ¦  «        r|dk    sJ ‚ˆˆfd„Š ‰||¦  «         d S )Nr   c                ó¨   •— t          | t          ¦  «        sJ ‚|dk    rt          ˆfd„| D ¦   «         ¦  «        sJ ‚d S | D ]} ‰||dz
  ¦  «         Œd S )Nr   c              3  óB   •K  — | ]}‰                      |¦  «        V — Œd S r~   )Úof_type)Ú.0Úcr�   s     €r…   ú	<genexpr>z;DMP._validate_args.<locals>.validate_rep.<locals>.<genexpr>Ì   s-   øè è € Ð7Ð7¨a˜3Ÿ;š; q™>œ>Ð7Ð7Ð7Ð7Ð7Ð7r‡   é   )r’   r“   Úall)r˜   r�   Úrr�   Úvalidate_reps      €€r…   r²   z(DMP._validate_args.<locals>.validate_repÉ   sƒ   ø€ Ý˜c¥4Ñ(Ô(Ð(Ð(Ð(Ø�aŠxˆxÝÐ7Ð7Ð7Ð7°3Ð7Ñ7Ô7Ñ7Ô7Ð7Ð7Ð7Ð7Ð7àð -ð -�AØ �L  C¨!¡GÑ,Ô,Ð,Ð,ð-ð -r‡   )r’   r
   rŽ   )r—   r˜   r�   r�   r²   s     ` @r…   Ú_validate_argszDMP._validate_argsÄ   so   øø€ å˜#�vÑ&Ô&Ð&Ð&Ð&Ý˜#�sÑ#Ô#Ð0¨¨qª¨¨Ð0ð	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	ˆ�S˜#ÑÔÐÐÐr‡   c                óR   — t          |||¦  «        }|                      |||¦  «        S r~   )r&   r•   ©r—   r˜   r�   r�   s       r…   Ú	from_dictzDMP.from_dictÓ   s)   € å˜C  cÑ*Ô*ˆØ�wŠw�s˜C Ñ%Ô%Ð%r‡   c                óP   — |                       t          ||d|¦  «        ||¦  «        S )zCCreate an instance of ``cls`` given a list of native coefficients. N)r•   r   rµ   s       r…   Ú	from_listzDMP.from_listØ   s(   € ð �wŠw•{ 3¨¨T°3Ñ7Ô7¸¸cÑBÔBÐBr‡   c                óN   — |                       t          |||¦  «        ||¦  «        S )zBCreate an instance of ``cls`` given a list of SymPy coefficients. )r•   r   rµ   s       r…   Úfrom_sympy_listzDMP.from_sympy_listÝ   s&   € ð �wŠw•~ c¨3°Ñ4Ô4°c¸3Ñ?Ô?Ð?r‡   c           
     ól   —  | t          t          t          ||¦  «        ¦  «        ¦  «        ||¦  «        S r~   )Údictr“   Úzip)r—   ÚmonomsÚcoeffsr�   r�   s        r…   Úfrom_monoms_coeffszDMP.from_monoms_coeffsâ   s0   € àˆs•4��S ¨Ñ0Ô0Ñ1Ô1Ñ2Ô2°C¸Ñ=Ô=Ð=r‡   c                ó   — | j         |k    r| S | j        st          €|                      |¦  «        S t	          | t
          ¦  «        rKt          |¦  «        r|                      |¦  «        S |                      ¦   «                              |¦  «        S t	          | t          ¦  «        rKt          |¦  «        r'|                      |¦  «         	                    ¦   «         S |                      |¦  «        S t          d¦  «        ‚)z0Convert ``f`` to a ``DMP`` over the new domain. Nzunreachable code)r�   r�   r|   Ú_convertr’   rœ   r†   Úto_DMP_Pythonrž   Úto_DUP_FlintÚRuntimeError©r¤   r�   s     r…   ÚconvertzDMP.convertæ   sÝ   € àŒ5�CŠ<ˆ<ØˆHØŒUð 	3•e�mØ—:’:˜c‘?”?Ð"Ý˜�9Ñ%Ô%ð 	3Ý& sÑ+Ô+ð 7Ø—z’z #‘”Ð&à—’Ñ(Ô(×1Ò1°#Ñ6Ô6Ð6Ý˜�:Ñ&Ô&ð 	3Ý& sÑ+Ô+ð 'Ø—z’z #‘”×3Ò3Ñ5Ô5Ð5à—z’z #‘”Ð&åÐ1Ñ2Ô2Ð2r‡   c                ó   — t           ‚r~   ©ÚNotImplementedErrorrÆ   s     r…   rÂ   zDMP._convertù   ó   € Ý!Ð!r‡   c                ó>   — t          t          |¦  «        ||¦  «        S r~   )rŒ   r!   ©r—   r�   r�   s      r…   ÚzerozDMP.zeroü   s   € å•8˜C‘=”= # sÑ+Ô+Ð+r‡   c                ó@   — t          t          ||¦  «        ||¦  «        S r~   )rŒ   r   rÍ   s      r…   ÚonezDMP.one   s   € å•7˜3 Ñ$Ô$ c¨3Ñ/Ô/Ð/r‡   c                ó   — t           ‚r~   rÉ   r£   s    r…   Ú_onezDMP._one  rË   r‡   c                óZ   — | j         j        ›d|                      ¦   «         ›d| j        ›d�S ©Nú(ú, ú))Ú	__class__Ú__name__r¢   r�   r£   s    r…   Ú__repr__zDMP.__repr__  s,   € Ø œ{Ô3Ð3Ð3°Q·Y²Y±[´[°[°[À!Ä%À%À%ÐHÐHr‡   c                ót   — t          | j        j        |                      ¦   «         | j        | j        f¦  «        S r~   )ÚhashrØ   rÙ   Úto_tupler�   r�   r£   s    r…   Ú__hash__zDMP.__hash__
  s*   € Ý�Q”[Ô)¨1¯:ª:©<¬<¸¼ÀÄÐFÑGÔGÐGr‡   c                óD   — |                       ¦   «         | j        | j        fS r~   )r¢   r�   r�   ©Úselfs    r…   Ú__getnewargs__zDMP.__getnewargs__  s   € Ø�|Š|‰~Œ~˜tœx¨¬Ð1Ð1r‡   c                ó   — t           ‚©z*Construct a new ground instance of ``f``. rÉ   ©r¤   Úcoeffs     r…   Ú
ground_newzDMP.ground_new  ó   € å!Ð!r‡   c                ó0  — t          |t          ¦  «        r| j        |j        k    rt          d| ›d|›�¦  «        ‚| j        |j        k    rI| j                             |j        ¦  «        }|                      |¦  «        } |                     |¦  «        }| |fS ©z7Unify and return ``DMP`` instances of ``f`` and ``g``. úCannot unify ú with )r’   rŒ   r�   rz   r�   ÚunifyrÇ   ©r¤   Úgr�   s      r…   Ú	unify_DMPzDMP.unify_DMP  s†   € å˜!�SÑ!Ô!ð 	H Q¤U¨a¬e¢^ ^Ý#Ð#ÀÀÀÀAÀAÐ$FÑGÔGÐGàŒ5�A”EŠ>ˆ>Ø”%—+’+˜aœeÑ$Ô$ˆCØ—	’	˜#‘”ˆAØ—	’	˜#‘”ˆAà�!ˆtˆr‡   Fc                ó`   — t          |                      ¦   «         | j        | j        |¬¦  «        S )úAConvert ``f`` to a dict representation with native coefficients. ©rÎ   )r'   r¢   r�   r�   )r¤   rÎ   s     r…   Úto_dictzDMP.to_dict   s%   € å˜1Ÿ9š9™;œ;¨¬¨q¬u¸4Ð@Ñ@Ô@Ð@r‡   c                ó    — |                       |¬¦  «        }|                     ¦   «         D ]"\  }}| j                             |¦  «        ||<   Œ#|S )ú@Convert ``f`` to a dict representation with SymPy coefficients. ró   )rô   Úitemsr�   Úto_sympy)r¤   rÎ   r˜   ÚkÚvs        r…   Úto_sympy_dictzDMP.to_sympy_dict$  sN   € à�iŠi˜TˆiÑ"Ô"ˆà—I’I‘K”Kð 	'ð 	'‰DˆAˆqØ”U—^’^ AÑ&Ô&ˆC�‰FˆFàˆ
r‡   c                óL   ‡ ‡— ˆ ˆfd„Š ‰‰                       ¦   «         ¦  «        S )ú@Convert ``f`` to a list representation with SymPy coefficients. c                óØ   •— g }| D ]c}t          |t          ¦  «        r|                      ‰|¦  «        ¦  «         Œ6|                     ‰j                             |¦  «        ¦  «         Œd|S r~   )r’   r“   Úappendr�   rø   )r˜   ÚoutÚvalr¤   Úsympify_nested_lists      €€r…   r  z.DMP.to_sympy_list.<locals>.sympify_nested_list/  sr   ø€ ØˆCØð 4ð 4�Ý˜c¥4Ñ(Ô(ð 4Ø—J’JÐ2Ð2°3Ñ7Ô7Ñ8Ô8Ð8Ð8à—J’J˜qœuŸ~š~¨cÑ2Ô2Ñ3Ô3Ð3Ð3ØˆJr‡   ©r¢   )r¤   r  s   `@r…   Úto_sympy_listzDMP.to_sympy_list-  s=   øø€ ð	ð 	ð 	ð 	ð 	ð 	ð #Ð" 1§9¢9¡;¤;Ñ/Ô/Ð/r‡   c                ó   — t           ‚©úAConvert ``f`` to a list representation with native coefficients. rÉ   r£   s    r…   r¢   zDMP.to_list:  rè   r‡   c                ó   — t           ‚©zx
        Convert ``f`` to a tuple representation with native coefficients.

        This is needed for hashing.
        rÉ   r£   s    r…   rÝ   zDMP.to_tuple>  s
   € õ "Ð!r‡   c                óZ   — |                       | j                             ¦   «         ¦  «        S )zMake the ground domain a ring. )rÇ   r�   Úget_ringr£   s    r…   Úto_ringzDMP.to_ringF  s    € à�yŠy˜œŸšÑ)Ô)Ñ*Ô*Ð*r‡   c                óZ   — |                       | j                             ¦   «         ¦  «        S )z Make the ground domain a field. )rÇ   r�   Ú	get_fieldr£   s    r…   Úto_fieldzDMP.to_fieldJ  ó    € à�yŠy˜œŸšÑ*Ô*Ñ+Ô+Ð+r‡   c                óZ   — |                       | j                             ¦   «         ¦  «        S )zMake the ground domain exact. )rÇ   r�   Ú	get_exactr£   s    r…   Úto_exactzDMP.to_exactN  r  r‡   r   c                ón   — | j         s|s|                      ||¦  «        S |                      |||¦  «        S ©z1Take a continuous subsequence of terms of ``f``. )r�   Ú_sliceÚ
_slice_lev©r¤   ÚmÚnÚjs       r…   Úslicez	DMP.sliceR  s;   € àŒuð 	)˜Qð 	)Ø—8’8˜A˜q‘>”>Ð!à—<’<  1 aÑ(Ô(Ð(r‡   c                ó   — t           ‚r~   rÉ   )r¤   r  r  s      r…   r  z
DMP._sliceY  rË   r‡   c                ó   — t           ‚r~   rÉ   r  s       r…   r  zDMP._slice_lev\  rË   r‡   c                óB   — d„ |                       |¬¦  «        D ¦   «         S )z;Returns all non-zero coefficients from ``f`` in lex order. c                ó   — g | ]\  }}|‘ŒS rŠ   rŠ   )r¬   Ú_r­   s      r…   ú
<listcomp>zDMP.coeffs.<locals>.<listcomp>a  ó   € Ð5Ð5Ð5‘t�q˜!�Ð5Ð5Ð5r‡   ©Úorder©Úterms©r¤   r%  s     r…   r¿   z
DMP.coeffs_  ó$   € à5Ð5˜qŸwšw¨U˜wÑ3Ô3Ð5Ñ5Ô5Ð5r‡   c                óB   — d„ |                       |¬¦  «        D ¦   «         S )z8Returns all non-zero monomials from ``f`` in lex order. c                ó   — g | ]\  }}|‘ŒS rŠ   rŠ   )r¬   r  r!  s      r…   r"  zDMP.monoms.<locals>.<listcomp>e  r#  r‡   r$  r&  r(  s     r…   r¾   z
DMP.monomsc  r)  r‡   c                ót   — | j         rd| j        dz   z  }|| j        j        fgS |                      |¬¦  «        S )ú4Returns all non-zero terms from ``f`` in lex order. ©r   r¯   r$  )Úis_zeror�   r�   rÎ   Ú_terms)r¤   r%  Ú
zero_monoms      r…   r'  z	DMP.termsg  sB   € àŒ9ð 	)Ø˜qœu q™yÑ)ˆJØ ¤¤Ð,Ð-Ð-à—8’8 %�8Ñ(Ô(Ð(r‡   c                ó   — t           ‚r~   rÉ   r(  s     r…   r0  z
DMP._termso  rË   r‡   c                óŽ   — | j         rt          d¦  «        ‚| s| j        j        gS t	          |                      ¦   «         ¦  «        S )z%Returns all coefficients from ``f``. ú&multivariate polynomials not supported)r�   r{   r�   rÎ   r“   r¢   r£   s    r…   Ú
all_coeffszDMP.all_coeffsr  sF   € àŒ5ð 	LÝ!Ð"JÑKÔKÐKàð 	%Ø”E”J�<Ðå˜Ÿ	š	™œÑ$Ô$Ð$r‡   c                óÄ   ‡— | j         rt          d¦  «        ‚|                      ¦   «         Š‰dk     rdgS ˆfd„t          |                      ¦   «         ¦  «        D ¦   «         S )z"Returns all monomials from ``f``. r4  r   r.  c                ó"   •— g | ]\  }}‰|z
  f‘ŒS rŠ   rŠ   ©r¬   Úir­   r  s      €r…   r"  z"DMP.all_monoms.<locals>.<listcomp>†  s#   ø€ ÐBÐBÐB¡$ ! Q�a˜!‘e�XÐBÐBÐBr‡   )r�   r{   ÚdegreeÚ	enumerater¢   ©r¤   r  s    @r…   Ú
all_monomszDMP.all_monoms|  sd   ø€ àŒ5ð 	LÝ!Ð"JÑKÔKÐKà�HŠH‰JŒJˆàˆqŠ5ˆ5Ø�6ˆMàBÐBÐBÐB­)°A·I²I±K´KÑ*@Ô*@ÐBÑBÔBÐBr‡   c                óÜ   ‡— | j         rt          d¦  «        ‚|                      ¦   «         Š‰dk     rd| j        j        fgS ˆfd„t          |                      ¦   «         ¦  «        D ¦   «         S )z Returns all terms from a ``f``. r4  r   r.  c                ó&   •— g | ]\  }}‰|z
  f|f‘ŒS rŠ   rŠ   r8  s      €r…   r"  z!DMP.all_terms.<locals>.<listcomp>’  s'   ø€ ÐGÐGÐG¡t q¨!�q˜1‘u�h �]ÐGÐGÐGr‡   )r�   r{   r:  r�   rÎ   r;  r¢   r<  s    @r…   Ú	all_termszDMP.all_termsˆ  so   ø€ àŒ5ð 	LÝ!Ð"JÑKÔKÐKà�HŠH‰JŒJˆàˆqŠ5ˆ5Ø˜1œ5œ:Ð&Ð'Ð'àGÐGÐGÐG­y¸¿º¹¼Ñ/EÔ/EÐGÑGÔGÐGr‡   c                óN   — |                       ¦   «                              ¦   «         S ©z-Convert algebraic coefficients to rationals. )Ú_liftr§   r£   s    r…   ÚliftzDMP.lift”  s   € à�wŠw‰yŒy× Ò Ñ"Ô"Ð"r‡   c                ó   — t           ‚r~   rÉ   r£   s    r…   rC  z	DMP._lift˜  rË   r‡   c                ó   — t           ‚©ú2Reduce degree of `f` by mapping `x_i^m` to `y_i`. rÉ   r£   s    r…   ÚdeflatezDMP.deflate›  rè   r‡   c                ó   — t           ‚©ú,Inject ground domain generators into ``f``. rÉ   ©r¤   Úfronts     r…   Úinjectz
DMP.injectŸ  rè   r‡   c                ó   — t           ‚©ú2Eject selected generators into the ground domain. rÉ   ©r¤   r�   rN  s      r…   Úejectz	DMP.eject£  rè   r‡   c                ó\   — |                       ¦   «         \  }}||                     ¦   «         fS )ap  
        Remove useless generators from ``f``.

        Returns the removed generators and the new excluded ``f``.

        Examples
        ========

        >>> from sympy.polys.polyclasses import DMP
        >>> from sympy.polys.domains import ZZ

        >>> DMP([[[ZZ(1)]], [[ZZ(1)], [ZZ(2)]]], ZZ).exclude()
        ([2], DMP_Python([[1], [1, 2]], ZZ))

        )Ú_excluder§   ©r¤   ÚJÚFs      r…   ÚexcludezDMP.exclude§  s'   € ð  �zŠz‰|Œ|‰ˆˆ1Ø�!—)’)‘+”+ˆ~Ðr‡   c                ó   — t           ‚r~   rÉ   r£   s    r…   rV  zDMP._excludeº  rË   r‡   c                ó,   — |                       |¦  «        S )aÉ  
        Returns a polynomial in `K[x_{P(1)}, ..., x_{P(n)}]`.

        Examples
        ========

        >>> from sympy.polys.polyclasses import DMP
        >>> from sympy.polys.domains import ZZ

        >>> DMP([[[ZZ(2)], [ZZ(1), ZZ(0)]], [[]]], ZZ).permute([1, 0, 2])
        DMP_Python([[[2], []], [[1, 0], []]], ZZ)

        >>> DMP([[[ZZ(2)], [ZZ(1), ZZ(0)]], [[]]], ZZ).permute([1, 2, 0])
        DMP_Python([[[1], []], [[2, 0], []]], ZZ)

        )Ú_permute©r¤   ÚPs     r…   ÚpermutezDMP.permute½  s   € ð" �zŠz˜!‰}Œ}Ðr‡   c                ó   — t           ‚r~   rÉ   r^  s     r…   r]  zDMP._permuteÐ  rË   r‡   c                ó   — t           ‚©z/Remove GCD of terms from the polynomial ``f``. rÉ   r£   s    r…   Ú	terms_gcdzDMP.terms_gcdÓ  rè   r‡   c                ó   — t           ‚©z)Make all coefficients in ``f`` positive. rÉ   r£   s    r…   ÚabszDMP.abs×  rè   r‡   c                ó   — t           ‚©ú"Negate all coefficients in ``f``. rÉ   r£   s    r…   ÚnegzDMP.negÛ  rè   r‡   c                ó\   — |                       | j                             |¦  «        ¦  «        S ©z.Add an element of the ground domain to ``f``. )Ú_add_groundr�   rÇ   ©r¤   r­   s     r…   Ú
add_groundzDMP.add_groundß  ó"   € à�}Š}˜QœUŸ]š]¨1Ñ-Ô-Ñ.Ô.Ð.r‡   c                ó\   — |                       | j                             |¦  «        ¦  «        S ©z5Subtract an element of the ground domain from ``f``. )Ú_sub_groundr�   rÇ   ro  s     r…   Ú
sub_groundzDMP.sub_groundã  rq  r‡   c                ó\   — |                       | j                             |¦  «        ¦  «        S ©z5Multiply ``f`` by a an element of the ground domain. )Ú_mul_groundr�   rÇ   ro  s     r…   Ú
mul_groundzDMP.mul_groundç  rq  r‡   c                ó\   — |                       | j                             |¦  «        ¦  «        S ©z8Quotient of ``f`` by a an element of the ground domain. )Ú_quo_groundr�   rÇ   ro  s     r…   Ú
quo_groundzDMP.quo_groundë  rq  r‡   c                ó\   — |                       | j                             |¦  «        ¦  «        S ©z>Exact quotient of ``f`` by a an element of the ground domain. )Ú_exquo_groundr�   rÇ   ro  s     r…   Úexquo_groundzDMP.exquo_groundï  s"   € à�Š˜qœuŸ}š}¨QÑ/Ô/Ñ0Ô0Ð0r‡   c                ó\   — |                       |¦  «        \  }}|                     |¦  «        S ©z2Add two multivariate polynomials ``f`` and ``g``. )rð   Ú_add©r¤   rï   rY  ÚGs       r…   ÚaddzDMP.addó  ó%   € à�{Š{˜1‰~Œ~‰ˆˆ1Ø�vŠv�a‰yŒyÐr‡   c                ó\   — |                       |¦  «        \  }}|                     |¦  «        S ©z7Subtract two multivariate polynomials ``f`` and ``g``. )rð   Ú_subr…  s       r…   ÚsubzDMP.subø  rˆ  r‡   c                ó\   — |                       |¦  «        \  }}|                     |¦  «        S ©z7Multiply two multivariate polynomials ``f`` and ``g``. )rð   Ú_mulr…  s       r…   ÚmulzDMP.mulý  rˆ  r‡   c                ó*   — |                       ¦   «         S ©ú(Square a multivariate polynomial ``f``. )Ú_sqrr£   s    r…   ÚsqrzDMP.sqr  s   € à�vŠv‰xŒxˆr‡   c                ó”   — t          |t          ¦  «        st          dt          |¦  «        z  ¦  «        ‚|                      |¦  «        S )ú+Raise ``f`` to a non-negative power ``n``. ú``int`` expected, got %s)r’   rŽ   Ú	TypeErrorr”   Ú_powr<  s     r…   ÚpowzDMP.pow  s?   € å˜!�SÑ!Ô!ð 	BÝÐ6½¸a¹¼Ñ@ÑAÔAÐAØ�vŠv�a‰yŒyÐr‡   c                ó\   — |                       |¦  «        \  }}|                     |¦  «        S ©ú/Polynomial pseudo-division of ``f`` and ``g``. )rð   Ú_pdivr…  s       r…   ÚpdivzDMP.pdiv  ó%   € à�{Š{˜1‰~Œ~‰ˆˆ1Ø�wŠw�q‰zŒzÐr‡   c                ó\   — |                       |¦  «        \  }}|                     |¦  «        S ©ú0Polynomial pseudo-remainder of ``f`` and ``g``. )rð   Ú_premr…  s       r…   ÚpremzDMP.prem  r¡  r‡   c                ó\   — |                       |¦  «        \  }}|                     |¦  «        S ©ú/Polynomial pseudo-quotient of ``f`` and ``g``. )rð   Ú_pquor…  s       r…   ÚpquozDMP.pquo  r¡  r‡   c                ó\   — |                       |¦  «        \  }}|                     |¦  «        S ©ú5Polynomial exact pseudo-quotient of ``f`` and ``g``. )rð   Ú_pexquor…  s       r…   Úpexquoz
DMP.pexquo  s%   € à�{Š{˜1‰~Œ~‰ˆˆ1Ø�yŠy˜‰|Œ|Ðr‡   c                ó\   — |                       |¦  «        \  }}|                     |¦  «        S ©z7Polynomial division with remainder of ``f`` and ``g``. )rð   Ú_divr…  s       r…   ÚdivzDMP.div   rˆ  r‡   c                ó\   — |                       |¦  «        \  }}|                     |¦  «        S ©z2Computes polynomial remainder of ``f`` and ``g``. )rð   Ú_remr…  s       r…   ÚremzDMP.rem%  rˆ  r‡   c                ó\   — |                       |¦  «        \  }}|                     |¦  «        S ©z1Computes polynomial quotient of ``f`` and ``g``. )rð   Ú_quor…  s       r…   ÚquozDMP.quo*  rˆ  r‡   c                ó\   — |                       |¦  «        \  }}|                     |¦  «        S ©z7Computes polynomial exact quotient of ``f`` and ``g``. )rð   Ú_exquor…  s       r…   Úexquoz	DMP.exquo/  s%   € à�{Š{˜1‰~Œ~‰ˆˆ1Ø�xŠx˜‰{Œ{Ðr‡   c                ó   — t           ‚r~   rÉ   ro  s     r…   rn  zDMP._add_ground4  rË   r‡   c                ó   — t           ‚r~   rÉ   ro  s     r…   rt  zDMP._sub_ground7  rË   r‡   c                ó   — t           ‚r~   rÉ   ro  s     r…   rx  zDMP._mul_ground:  rË   r‡   c                ó   — t           ‚r~   rÉ   ro  s     r…   r|  zDMP._quo_ground=  rË   r‡   c                ó   — t           ‚r~   rÉ   ro  s     r…   r€  zDMP._exquo_ground@  rË   r‡   c                ó   — t           ‚r~   rÉ   ©r¤   rï   s     r…   r„  zDMP._addC  rË   r‡   c                ó   — t           ‚r~   rÉ   rÇ  s     r…   r‹  zDMP._subF  rË   r‡   c                ó   — t           ‚r~   rÉ   rÇ  s     r…   r�  zDMP._mulI  rË   r‡   c                ó   — t           ‚r~   rÉ   r£   s    r…   r”  zDMP._sqrL  rË   r‡   c                ó   — t           ‚r~   rÉ   r<  s     r…   rš  zDMP._powO  rË   r‡   c                ó   — t           ‚r~   rÉ   rÇ  s     r…   rŸ  z	DMP._pdivR  rË   r‡   c                ó   — t           ‚r~   rÉ   rÇ  s     r…   r¥  z	DMP._premU  rË   r‡   c                ó   — t           ‚r~   rÉ   rÇ  s     r…   rª  z	DMP._pquoX  rË   r‡   c                ó   — t           ‚r~   rÉ   rÇ  s     r…   r¯  zDMP._pexquo[  rË   r‡   c                ó   — t           ‚r~   rÉ   rÇ  s     r…   r³  zDMP._div^  rË   r‡   c                ó   — t           ‚r~   rÉ   rÇ  s     r…   r·  zDMP._rema  rË   r‡   c                ó   — t           ‚r~   rÉ   rÇ  s     r…   r»  zDMP._quod  rË   r‡   c                ó   — t           ‚r~   rÉ   rÇ  s     r…   r¿  z
DMP._exquog  rË   r‡   c                ó”   — t          |t          ¦  «        st          dt          |¦  «        z  ¦  «        ‚|                      |¦  «        S )ú0Returns the leading degree of ``f`` in ``x_j``. r˜  )r’   rŽ   r™  r”   Ú_degree©r¤   r  s     r…   r:  z
DMP.degreej  s?   € å˜!�SÑ!Ô!ð 	BÝÐ6½¸a¹¼Ñ@ÑAÔAÐAà�yŠy˜‰|Œ|Ðr‡   c                ó   — t           ‚r~   rÉ   r×  s     r…   rÖ  zDMP._degreeq  rË   r‡   c                ó   — t           ‚©z$Returns a list of degrees of ``f``. rÉ   r£   s    r…   Údegree_listzDMP.degree_listt  rè   r‡   c                ó   — t           ‚©ú#Returns the total degree of ``f``. rÉ   r£   s    r…   Útotal_degreezDMP.total_degreex  rè   r‡   c                ó  — |                       ¦   «         }i }|t          |                      ¦   «         d         d         ¦  «        k    }|                      ¦   «         D ]z}t          |d         ¦  «        }||k     r||z
  }nd}|r|d         ||d         |fz   <   Œ=t	          |d         ¦  «        }||xx         |z  cc<   |d         |t          |¦  «        <   Œ{t                               || j        t          |¦  «        z   | j
        ¦  «        S )z&Return homogeneous polynomial of ``f``r   r¯   )rß  Úlenr'  Úsumr“   ÚtuplerŒ   r¶   r�   rŽ   r�   )	r¤   ÚsÚtdÚresultÚ
new_symbolÚtermÚdr9  Úls	            r…   Ú
homogenizezDMP.homogenize|  sú   € à�^Š^ÑÔˆØˆØ�3˜qŸwšw™yœy¨œ|¨AœÑ/Ô/Ò/ˆ
Ø—G’G‘I”Ið 	+ð 	+ˆDÝ�D˜”G‘”ˆAØ�2ŠvˆvØ˜‘F��à�Øð +Ø)-¨a¬��t˜A”w ! ‘~Ñ&Ð&å˜˜aœ‘M”M�Ø�!��”˜‘	��‘Ø#'¨¤7�•u˜Q‘x”xÑ Ð Ý�}Š}˜V Q¤U­S°©_¬_Ñ%<¸a¼eÑDÔDÐDr‡   c                ó°   — | j         rt           S |                      ¦   «         }t          |d         ¦  «        }|D ]}t          |¦  «        }||k    r dS Œ|S )z(Returns the homogeneous order of ``f``. r   N)r/  r   r¾   râ  )r¤   r¾   ÚtdegÚmonomÚ_tdegs        r…   Úhomogeneous_orderzDMP.homogeneous_order�  se   € àŒ9ð 	Ý�3ˆJà—’‘”ˆÝ�6˜!”9‰~Œ~ˆàð 	ð 	ˆEÝ˜‘J”JˆEà˜Š}ˆ}Ø�t�tð ð ˆr‡   c                ó   — t           ‚©z*Returns the leading coefficient of ``f``. rÉ   r£   s    r…   ÚLCzDMP.LCŸ  rè   r‡   c                ó   — t           ‚©ú+Returns the trailing coefficient of ``f``. rÉ   r£   s    r…   ÚTCzDMP.TC£  rè   r‡   c                ó|   — t          d„ |D ¦   «         ¦  «        r|                      |¦  «        S t          d¦  «        ‚)ú+Returns the ``n``-th coefficient of ``f``. c              3  ó@   K  — | ]}t          |t          ¦  «        V — Œd S r~   )r’   rŽ   )r¬   r  s     r…   r®   zDMP.nth.<locals>.<genexpr>©  s,   è è € Ð-Ð- a�z˜!�SÑ!Ô!Ð-Ð-Ð-Ð-Ð-Ð-r‡   za sequence of integers expected)r°   Ú_nthr™  ©r¤   ÚNs     r…   ÚnthzDMP.nth§  s@   € åÐ-Ð-¨1Ð-Ñ-Ô-Ñ-Ô-ð 	?Ø—6’6˜!‘9”9ÐåÐ=Ñ>Ô>Ð>r‡   c                ó   — t           ‚r~   rÉ   rü  s     r…   rû  zDMP._nth®  rË   r‡   c                ó   — t           ‚©zReturns maximum norm of ``f``. rÉ   r£   s    r…   Úmax_normzDMP.max_norm±  rè   r‡   c                ó   — t           ‚©zReturns l1 norm of ``f``. rÉ   r£   s    r…   Úl1_normzDMP.l1_normµ  rè   r‡   c                ó   — t           ‚©z!Return squared l2 norm of ``f``. rÉ   r£   s    r…   Úl2_norm_squaredzDMP.l2_norm_squared¹  rè   r‡   c                ó   — t           ‚©z0Clear denominators, but keep the ground domain. rÉ   r£   s    r…   Úclear_denomszDMP.clear_denoms½  rè   r‡   r¯   c                óþ   — t          |t          ¦  «        st          dt          |¦  «        z  ¦  «        ‚t          |t          ¦  «        st          dt          |¦  «        z  ¦  «        ‚|                      ||¦  «        S )úEComputes the ``m``-th order indefinite integral of ``f`` in ``x_j``. r˜  )r’   rŽ   r™  r”   Ú
_integrate©r¤   r  r  s      r…   Ú	integratezDMP.integrateÁ  sp   € å˜!�SÑ!Ô!ð 	BÝÐ6½¸a¹¼Ñ@ÑAÔAÐAå˜!�SÑ!Ô!ð 	BÝÐ6½¸a¹¼Ñ@ÑAÔAÐAà�|Š|˜A˜qÑ!Ô!Ð!r‡   c                ó   — t           ‚r~   rÉ   r  s      r…   r  zDMP._integrateË  rË   r‡   c                óþ   — t          |t          ¦  «        st          dt          |¦  «        z  ¦  «        ‚t          |t          ¦  «        st          dt          |¦  «        z  ¦  «        ‚|                      ||¦  «        S )ú<Computes the ``m``-th order derivative of ``f`` in ``x_j``. r˜  )r’   rŽ   r™  r”   Ú_diffr  s      r…   ÚdiffzDMP.diffÎ  sn   € å˜!�SÑ!Ô!ð 	BÝÐ6½¸a¹¼Ñ@ÑAÔAÐAå˜!�SÑ!Ô!ð 	BÝÐ6½¸a¹¼Ñ@ÑAÔAÐAà�wŠw�q˜!‰}Œ}Ðr‡   c                ó   — t           ‚r~   rÉ   r  s      r…   r  z	DMP._diffØ  rË   r‡   c                ó  — t          |t          ¦  «        st          dt          |¦  «        z  ¦  «        ‚d|cxk    r| j        k    sn t          d|z  ¦  «        ‚| j        r|                      ||¦  «        S |                      |¦  «        S )z5Evaluates ``f`` at the given point ``a`` in ``x_j``. r˜  r   zinvalid variable index %s)r’   rŽ   r™  r”   r�   Ú
ValueErrorÚ	_eval_levÚ_eval©r¤   Úar  s      r…   ÚevalzDMP.evalÛ  s‰   € å˜!�SÑ!Ô!ð 	>ÝÐ6½¸a¹¼Ñ@ÑAÔAÐAØ�q�/�/’/�/˜AœE’/�/�/�/ÝÐ8¸1Ñ<Ñ=Ô=Ð=àŒ5ð 	Ø—;’;˜q !Ñ$Ô$Ð$à—7’7˜1‘:”:Ðr‡   c                ó   — t           ‚r~   rÉ   ©r¤   r  s     r…   r  z	DMP._evalç  rË   r‡   c                ó   — t           ‚r~   rÉ   r  s      r…   r  zDMP._eval_levê  rË   r‡   c                óˆ   — |                       |¦  «        \  }}|j        rt          d¦  «        ‚|                     |¦  «        S )ú2Half extended Euclidean algorithm, if univariate. úunivariate polynomial expected)rð   r�   r  Ú_half_gcdexr…  s       r…   Ú
half_gcdexzDMP.half_gcdexí  s@   € à�{Š{˜1‰~Œ~‰ˆˆ1àŒ5ð 	?ÝÐ=Ñ>Ô>Ð>à�}Š}˜QÑÔÐr‡   c                ó   — t           ‚r~   rÉ   rÇ  s     r…   r$  zDMP._half_gcdexö  rË   r‡   c                ó¾   — |                       |¦  «        \  }}|j        rt          d¦  «        ‚|j        j        st          d¦  «        ‚|                     |¦  «        S )ú-Extended Euclidean algorithm, if univariate. r#  zground domain must be a field)rð   r�   r  r�   Úis_Fieldr   Ú_gcdexr…  s       r…   Úgcdexz	DMP.gcdexù  sY   € à�{Š{˜1‰~Œ~‰ˆˆ1àŒ5ð 	?ÝÐ=Ñ>Ô>Ð>àŒuŒ~ð 	?ÝÐ=Ñ>Ô>Ð>à�xŠx˜‰{Œ{Ðr‡   c                ó   — t           ‚r~   rÉ   rÇ  s     r…   r*  z
DMP._gcdex  rË   r‡   c                óˆ   — |                       |¦  «        \  }}|j        rt          d¦  «        ‚|                     |¦  «        S )ú(Invert ``f`` modulo ``g``, if possible. r#  )rð   r�   r  Ú_invertr…  s       r…   Úinvertz
DMP.invert  s>   € à�{Š{˜1‰~Œ~‰ˆˆ1àŒ5ð 	?ÝÐ=Ñ>Ô>Ð>à�yŠy˜‰|Œ|Ðr‡   c                ó   — t           ‚r~   rÉ   rÇ  s     r…   r/  zDMP._invert  rË   r‡   c                óX   — | j         rt          d¦  «        ‚|                      |¦  «        S )ú"Compute ``f**(-1)`` mod ``x**n``. r#  )r�   r  Ú_revertr<  s     r…   Úrevertz
DMP.revert  s+   € àŒ5ð 	?ÝÐ=Ñ>Ô>Ð>à�yŠy˜‰|Œ|Ðr‡   c                ó   — t           ‚r~   rÉ   r<  s     r…   r4  zDMP._revert  rË   r‡   c                ó\   — |                       |¦  «        \  }}|                     |¦  «        S ©ú7Computes subresultant PRS sequence of ``f`` and ``g``. )rð   Ú_subresultantsr…  s       r…   ÚsubresultantszDMP.subresultants  s)   € à�{Š{˜1‰~Œ~‰ˆˆ1Ø×Ò Ñ"Ô"Ð"r‡   c                ó   — t           ‚r~   rÉ   rÇ  s     r…   r:  zDMP._subresultants#  rË   r‡   c                óŠ   — |                       |¦  «        \  }}|r|                     |¦  «        S |                     |¦  «        S )ú/Computes resultant of ``f`` and ``g`` via PRS. )rð   Ú_resultant_includePRSÚ
_resultant)r¤   rï   Ú
includePRSrY  r†  s        r…   Ú	resultantzDMP.resultant&  sA   € à�{Š{˜1‰~Œ~‰ˆˆ1Øð 	#Ø×*Ò*¨1Ñ-Ô-Ð-à—<’< ‘?”?Ð"r‡   c                ó   — t           ‚r~   rÉ   )r¤   rï   rA  s      r…   r@  zDMP._resultant.  rË   r‡   c                ó   — t           ‚©ú Computes discriminant of ``f``. rÉ   r£   s    r…   ÚdiscriminantzDMP.discriminant1  rè   r‡   c                ó\   — |                       |¦  «        \  }}|                     |¦  «        S ©z4Returns GCD of ``f`` and ``g`` and their cofactors. )rð   Ú
_cofactorsr…  s       r…   Ú	cofactorszDMP.cofactors5  s%   € à�{Š{˜1‰~Œ~‰ˆˆ1Ø�|Š|˜A‰ŒÐr‡   c                ó   — t           ‚r~   rÉ   rÇ  s     r…   rJ  zDMP._cofactors:  rË   r‡   c                ó\   — |                       |¦  «        \  }}|                     |¦  «        S ©z+Returns polynomial GCD of ``f`` and ``g``. )rð   Ú_gcdr…  s       r…   ÚgcdzDMP.gcd=  rˆ  r‡   c                ó   — t           ‚r~   rÉ   rÇ  s     r…   rO  zDMP._gcdB  rË   r‡   c                ó\   — |                       |¦  «        \  }}|                     |¦  «        S ©ú+Returns polynomial LCM of ``f`` and ``g``. )rð   Ú_lcmr…  s       r…   ÚlcmzDMP.lcmE  rˆ  r‡   c                ó   — t           ‚r~   rÉ   rÇ  s     r…   rU  zDMP._lcmJ  rË   r‡   Tc                óŠ   — |                       |¦  «        \  }}|r|                     |¦  «        S |                     |¦  «        S ©ú6Cancel common factors in a rational function ``f/g``. )rð   Ú_cancel_includeÚ_cancel)r¤   rï   ÚincluderY  r†  s        r…   Úcancelz
DMP.cancelM  sA   € à�{Š{˜1‰~Œ~‰ˆˆ1àð 	 Ø×$Ò$ QÑ'Ô'Ð'à—9’9˜Q‘<”<Ðr‡   c                ó   — t           ‚r~   rÉ   rÇ  s     r…   r\  zDMP._cancelV  rË   r‡   c                ó   — t           ‚r~   rÉ   rÇ  s     r…   r[  zDMP._cancel_includeY  rË   r‡   c                ó\   — |                       | j                             |¦  «        ¦  «        S ©z&Reduce ``f`` modulo a constant ``p``. )Ú_truncr�   rÇ   ©r¤   Úps     r…   Útruncz	DMP.trunc\  s"   € à�xŠx˜œŸš aÑ(Ô(Ñ)Ô)Ð)r‡   c                ó   — t           ‚r~   rÉ   rd  s     r…   rc  z
DMP._trunc`  rË   r‡   c                ó   — t           ‚©z'Divides all coefficients by ``LC(f)``. rÉ   r£   s    r…   Úmonicz	DMP.monicc  rè   r‡   c                ó   — t           ‚©z(Returns GCD of polynomial coefficients. rÉ   r£   s    r…   ÚcontentzDMP.contentg  rè   r‡   c                ó   — t           ‚©z/Returns content and a primitive form of ``f``. rÉ   r£   s    r…   Ú	primitivezDMP.primitivek  rè   r‡   c                ó\   — |                       |¦  «        \  }}|                     |¦  «        S ©z4Computes functional composition of ``f`` and ``g``. )rð   Ú_composer…  s       r…   ÚcomposezDMP.composeo  s%   € à�{Š{˜1‰~Œ~‰ˆˆ1Ø�zŠz˜!‰}Œ}Ðr‡   c                ó   — t           ‚r~   rÉ   rÇ  s     r…   rs  zDMP._composet  rË   r‡   c                óV   — | j         rt          d¦  «        ‚|                      ¦   «         S )ú,Computes functional decomposition of ``f``. r#  )r�   r  Ú
_decomposer£   s    r…   Ú	decomposezDMP.decomposew  s)   € àŒ5ð 	?ÝÐ=Ñ>Ô>Ð>à�|Š|‰~Œ~Ðr‡   c                ó   — t           ‚r~   rÉ   r£   s    r…   rx  zDMP._decompose~  rË   r‡   c                óˆ   — | j         rt          d¦  «        ‚|                      | j                             |¦  «        ¦  «        S )ú/Efficiently compute Taylor shift ``f(x + a)``. r#  )r�   r  Ú_shiftr�   rÇ   r  s     r…   Úshiftz	DMP.shift�  s;   € àŒ5ð 	?ÝÐ=Ñ>Ô>Ð>à�xŠx˜œŸš aÑ(Ô(Ñ)Ô)Ð)r‡   c                óJ   ‡ — ˆ fd„|D ¦   «         }‰                       |¦  «        S )ú/Efficiently compute Taylor shift ``f(X + A)``. c                óD   •— g | ]}‰j                              |¦  «        ‘ŒS rŠ   )r�   rÇ   )r¬   Úair¤   s     €r…   r"  z"DMP.shift_list.<locals>.<listcomp>Š  s'   ø€ Ð+Ð+Ð+ 2ˆQŒU�]Š]˜2ÑÔÐ+Ð+Ð+r‡   )Ú_shift_listr  s   ` r…   Ú
shift_listzDMP.shift_listˆ  s.   ø€ à+Ð+Ð+Ð+¨Ð+Ñ+Ô+ˆØ�}Š}˜QÑÔÐr‡   c                ó   — t           ‚r~   rÉ   r  s     r…   r}  z
DMP._shift�  rË   r‡   c                óê   — | j         rt          d¦  «        ‚|                     |¦  «        \  }}|                      |¦  «        \  }}|                     |¦  «        \  }}|                     ||¦  «        S )ú5Evaluate functional transformation ``q**n * f(p/q)``.r#  )r�   r  rð   Ú
_transform)r¤   re  Úqr_  ÚQrY  s         r…   Ú	transformzDMP.transform�  sh   € àŒ5ð 	?ÝÐ=Ñ>Ô>Ð>à�{Š{˜1‰~Œ~‰ˆˆ1Ø�{Š{˜1‰~Œ~‰ˆˆ1Ø�{Š{˜1‰~Œ~‰ˆˆ1à�|Š|˜A˜qÑ!Ô!Ð!r‡   c                ó   — t           ‚r~   rÉ   ©r¤   re  r‰  s      r…   rˆ  zDMP._transform›  rË   r‡   c                óV   — | j         rt          d¦  «        ‚|                      ¦   «         S )ú&Computes the Sturm sequence of ``f``. r#  )r�   r  Ú_sturmr£   s    r…   Ústurmz	DMP.sturmž  s)   € àŒ5ð 	?ÝÐ=Ñ>Ô>Ð>à�xŠx‰zŒzÐr‡   c                ó   — t           ‚r~   rÉ   r£   s    r…   r�  z
DMP._sturm¥  rË   r‡   c                óV   — | j         rt          d¦  «        ‚|                      ¦   «         S )ú7Computes the Cauchy upper bound on the roots of ``f``. r#  )r�   r  Ú_cauchy_upper_boundr£   s    r…   Úcauchy_upper_boundzDMP.cauchy_upper_bound¨  ó-   € àŒ5ð 	?ÝÐ=Ñ>Ô>Ð>à×$Ò$Ñ&Ô&Ð&r‡   c                ó   — t           ‚r~   rÉ   r£   s    r…   r•  zDMP._cauchy_upper_bound¯  rË   r‡   c                óV   — | j         rt          d¦  «        ‚|                      ¦   «         S )ú?Computes the Cauchy lower bound on the nonzero roots of ``f``. r#  )r�   r  Ú_cauchy_lower_boundr£   s    r…   Úcauchy_lower_boundzDMP.cauchy_lower_bound²  r—  r‡   c                ó   — t           ‚r~   rÉ   r£   s    r…   r›  zDMP._cauchy_lower_bound¹  rË   r‡   c                óV   — | j         rt          d¦  «        ‚|                      ¦   «         S )úBComputes the squared Mignotte bound on root separations of ``f``. r#  )r�   r  Ú_mignotte_sep_bound_squaredr£   s    r…   Úmignotte_sep_bound_squaredzDMP.mignotte_sep_bound_squared¼  s-   € àŒ5ð 	?ÝÐ=Ñ>Ô>Ð>à×,Ò,Ñ.Ô.Ð.r‡   c                ó   — t           ‚r~   rÉ   r£   s    r…   r   zDMP._mignotte_sep_bound_squaredÃ  rË   r‡   c                óV   — | j         rt          d¦  «        ‚|                      ¦   «         S )ú4Computes greatest factorial factorization of ``f``. r#  )r�   r  Ú	_gff_listr£   s    r…   Úgff_listzDMP.gff_listÆ  s)   € àŒ5ð 	?ÝÐ=Ñ>Ô>Ð>à�{Š{‰}Œ}Ðr‡   c                ó   — t           ‚r~   rÉ   r£   s    r…   r¥  zDMP._gff_listÍ  rË   r‡   c                ó   — t           ‚©zComputes ``Norm(f)``.rÉ   r£   s    r…   ÚnormzDMP.normÐ  rè   r‡   c                ó   — t           ‚©z$Computes square-free norm of ``f``. rÉ   r£   s    r…   Úsqf_normzDMP.sqf_normÔ  rè   r‡   c                ó   — t           ‚©z$Computes square-free part of ``f``. rÉ   r£   s    r…   Úsqf_partzDMP.sqf_partØ  rè   r‡   c                ó   — t           ‚©ú0Returns a list of square-free factors of ``f``. rÉ   ©r¤   r°   s     r…   Úsqf_listzDMP.sqf_listÜ  rè   r‡   c                ó   — t           ‚r²  rÉ   r´  s     r…   Úsqf_list_includezDMP.sqf_list_includeà  rè   r‡   c                ó   — t           ‚©ú0Returns a list of irreducible factors of ``f``. rÉ   r£   s    r…   Úfactor_listzDMP.factor_listä  rè   r‡   c                ó   — t           ‚r¹  rÉ   r£   s    r…   Úfactor_list_includezDMP.factor_list_includeè  rè   r‡   c                ó  — | j         rt          d¦  «        ‚|r|r|                      ||||¬¦  «        S |r|s|                      ||||¬¦  «        S |s|r|                      ||||¬¦  «        S |                      ||||¬¦  «        S )z0Compute isolating intervals for roots of ``f``. z1Cannot isolate roots of a multivariate polynomial©ÚepsÚinfÚsupÚfast)r�   r{   Ú_isolate_all_roots_sqfÚ_isolate_all_rootsÚ_isolate_real_roots_sqfÚ_isolate_real_roots)r¤   r°   rÀ  rÁ  rÂ  rÃ  Úsqfs          r…   Ú	intervalszDMP.intervalsì  sÃ   € àŒ5ð 	WÝ!Ð"UÑVÔVÐVàð 	O�3ð 	OØ×+Ò+°¸À#ÈDÐ+ÑQÔQÐQØð 	O˜ð 	OØ×'Ò'¨C°S¸cÈÐ'ÑMÔMÐMØð 	O˜ð 	OØ×,Ò,°¸#À3ÈTÐ,ÑRÔRÐRà×(Ò(¨S°c¸sÈÐ(ÑNÔNÐNr‡   c                ó   — t           ‚r~   rÉ   ©r¤   rÀ  rÁ  rÂ  rÃ  s        r…   rÅ  zDMP._isolate_all_rootsú  rË   r‡   c                ó   — t           ‚r~   rÉ   rË  s        r…   rÄ  zDMP._isolate_all_roots_sqfý  rË   r‡   c                ó   — t           ‚r~   rÉ   rË  s        r…   rÇ  zDMP._isolate_real_roots   rË   r‡   c                ó   — t           ‚r~   rÉ   rË  s        r…   rÆ  zDMP._isolate_real_roots_sqf  rË   r‡   c                ób   — | j         rt          d¦  «        ‚|                      |||||¬¦  «        S )zu
        Refine an isolating interval to the given precision.

        ``eps`` should be a rational number.

        z1Cannot refine a root of a multivariate polynomial©rÀ  ÚstepsrÃ  )r�   r{   Ú_refine_real_root©r¤   rä  ÚtrÀ  rÑ  rÃ  s         r…   Úrefine_rootzDMP.refine_root  sH   € ð Œ5ð 	EÝ!ØCñEô Eð Eð ×"Ò" 1 a¨S¸ÀDÐ"ÑIÔIÐIr‡   c                ó   — t           ‚r~   rÉ   rÓ  s         r…   rÒ  zDMP._refine_real_root  rË   r‡   c                ó   — t           ‚)ú<Return the number of real roots of ``f`` in ``[inf, sup]``. rÉ   ©r¤   rÁ  rÂ  s      r…   Úcount_real_rootszDMP.count_real_roots  rè   r‡   c                ó   — t           ‚)ú?Return the number of complex roots of ``f`` in ``[inf, sup]``. rÉ   rÙ  s      r…   Úcount_complex_rootszDMP.count_complex_roots  rè   r‡   c                ó   — t           ‚©z0Returns ``True`` if ``f`` is a zero polynomial. rÉ   r£   s    r…   r/  zDMP.is_zero  ó
   € õ "Ð!r‡   c                ó   — t           ‚©z0Returns ``True`` if ``f`` is a unit polynomial. rÉ   r£   s    r…   Úis_onez
DMP.is_one#  rà  r‡   c                ó   — t           ‚©ú>Returns ``True`` if ``f`` is an element of the ground domain. rÉ   r£   s    r…   Ú	is_groundzDMP.is_ground(  rà  r‡   c                ó   — t           ‚©ú7Returns ``True`` if ``f`` is a square-free polynomial. rÉ   r£   s    r…   Úis_sqfz
DMP.is_sqf-  rà  r‡   c                ó   — t           ‚©z=Returns ``True`` if the leading coefficient of ``f`` is one. rÉ   r£   s    r…   Úis_moniczDMP.is_monic2  rà  r‡   c                ó   — t           ‚©zAReturns ``True`` if the GCD of the coefficients of ``f`` is one. rÉ   r£   s    r…   Úis_primitivezDMP.is_primitive7  rà  r‡   c                ó   — t           ‚)ú:Returns ``True`` if ``f`` is linear in all its variables. rÉ   r£   s    r…   Ú	is_linearzDMP.is_linear<  rà  r‡   c                ó   — t           ‚)ú=Returns ``True`` if ``f`` is quadratic in all its variables. rÉ   r£   s    r…   Úis_quadraticzDMP.is_quadraticA  rà  r‡   c                ó   — t           ‚)ú8Returns ``True`` if ``f`` is zero or has only one term. rÉ   r£   s    r…   Úis_monomialzDMP.is_monomialF  rà  r‡   c                ó   — t           ‚©ú7Returns ``True`` if ``f`` is a homogeneous polynomial. rÉ   r£   s    r…   Úis_homogeneouszDMP.is_homogeneousK  rà  r‡   c                ó   — t           ‚©ú:Returns ``True`` if ``f`` has no factors over its domain. rÉ   r£   s    r…   Úis_irreduciblezDMP.is_irreducibleP  rà  r‡   c                ó   — t           ‚)ú6Returns ``True`` if ``f`` is a cyclotomic polynomial. rÉ   r£   s    r…   Úis_cyclotomiczDMP.is_cyclotomicU  rà  r‡   c                ó*   — |                       ¦   «         S r~   )rg  r£   s    r…   Ú__abs__zDMP.__abs__Z  ó   € Ø�uŠu‰wŒwˆr‡   c                ó*   — |                       ¦   «         S r~   ©rk  r£   s    r…   Ú__neg__zDMP.__neg__]  r  r‡   c                ó°   — t          |t          ¦  «        r|                      |¦  «        S 	 |                      |¦  «        S # t          $ r
 t
          cY S w xY wr~   )r’   rŒ   r‡  rp  r   ÚNotImplementedrÇ  s     r…   Ú__add__zDMP.__add__`  ó_   € Ý�a�ÑÔð 	&Ø—5’5˜‘8”8ˆOð&Ø—|’| A‘”Ð&øÝ!ð &ð &ð &Ý%Ð%Ð%Ð%ð&øøøó   ¬A ÁAÁAc                ó,   — |                       |¦  «        S r~   ©r  rÇ  s     r…   Ú__radd__zDMP.__radd__i  ó   € Ø�yŠy˜‰|Œ|Ðr‡   c                ó°   — t          |t          ¦  «        r|                      |¦  «        S 	 |                      |¦  «        S # t          $ r
 t
          cY S w xY wr~   )r’   rŒ   rŒ  ru  r   r  rÇ  s     r…   Ú__sub__zDMP.__sub__l  r  r  c                ó.   — |                        |¦  «        S r~   r  rÇ  s     r…   Ú__rsub__zDMP.__rsub__u  ó   € Ø��|Š|˜A‰ŒÐr‡   c                ó°   — t          |t          ¦  «        r|                      |¦  «        S 	 |                      |¦  «        S # t          $ r
 t
          cY S w xY wr~   )r’   rŒ   r�  ry  r   r  rÇ  s     r…   Ú__mul__zDMP.__mul__x  r  r  c                ó,   — |                       |¦  «        S r~   ©r  rÇ  s     r…   Ú__rmul__zDMP.__rmul__�  r  r‡   c                ó°   — t          |t          ¦  «        r|                      |¦  «        S 	 |                      |¦  «        S # t          $ r
 t
          cY S w xY wr~   )r’   rŒ   rÀ  ry  r   r  rÇ  s     r…   Ú__truediv__zDMP.__truediv__„  s`   € Ý�a�ÑÔð 	&Ø—7’7˜1‘:”:Ðð&Ø—|’| A‘”Ð&øÝ!ð &ð &ð &Ý%Ð%Ð%Ð%ð&øøør  c                óú   — t          |t          ¦  «        r|                     | ¦  «        S 	 |                      ¦   «                              |¦  «                             | ¦  «        S # t
          $ r
 t          cY S w xY wr~   )r’   rŒ   rÀ  rÒ   ry  r   r  rÇ  s     r…   Ú__rtruediv__zDMP.__rtruediv__�  sz   € Ý�a�ÑÔð 	&Ø—7’7˜1‘:”:Ðð&Ø—v’v‘x”x×*Ò*¨1Ñ-Ô-×3Ò3°AÑ6Ô6Ð6øÝ!ð &ð &ð &Ý%Ð%Ð%Ð%ð&øøøs   ¬9A& Á&A:Á9A:c                ó,   — |                       |¦  «        S r~   ©r›  r<  s     r…   Ú__pow__zDMP.__pow__–  ó   € Ø�uŠu�Q‰xŒxˆr‡   c                ó,   — |                       |¦  «        S r~   ©r´  rÇ  s     r…   Ú
__divmod__zDMP.__divmod__™  r&  r‡   c                ó,   — |                       |¦  «        S r~   ©r¸  rÇ  s     r…   Ú__mod__zDMP.__mod__œ  r&  r‡   c                ó°   — t          |t          ¦  «        r|                      |¦  «        S 	 |                      |¦  «        S # t          $ r
 t
          cY S w xY wr~   )r’   rŒ   r¼  r}  r™  r  rÇ  s     r…   Ú__floordiv__zDMP.__floordiv__Ÿ  s_   € Ý�a�ÑÔð 	&Ø—5’5˜‘8”8ˆOð&Ø—|’| A‘”Ð&øÝð &ð &ð &Ý%Ð%Ð%Ð%ð&øøør  c                óÄ   — | |u rdS t          |t          ¦  «        st          S 	 |                      |¦  «        \  }}|                     |¦  «        S # t
          $ r Y dS w xY w)NTF)r’   rŒ   r  rð   Ú
_strict_eqrz   r…  s       r…   Ú__eq__z
DMP.__eq__¨  sv   € Ø�ˆ6ˆ6Ø�4Ý˜!�SÑ!Ô!ð 	"Ý!Ð!ð	#Ø—;’;˜q‘>”>‰DˆAˆqð —<’< ‘?”?Ð"øõ !ð 	ð 	ð 	Ø�5�5ð	øøøs   ¤A Á
AÁAc                ó   — t           ‚r~   rÉ   rÇ  s     r…   r0  zDMP._strict_eq´  rË   r‡   c                ó<   — |s| |k    S |                       |¦  «        S r~   )r0  ©r¤   rï   Ústricts      r…   ÚeqzDMP.eq·  s#   € Øð 	#Ø˜’6ˆMà—<’< ‘?”?Ð"r‡   c                ó2   — |                       ||¬¦  «         S )N)r5  )r6  r4  s      r…   ÚnezDMP.ne½  s   € Ø—4’4˜ &�4Ñ)Ô)Ð)Ð)r‡   c                ó†   — |                       |¦  «        \  }}|                     ¦   «         |                     ¦   «         k     S r~   ©rð   r¢   r…  s       r…   Ú__lt__z
DMP.__lt__À  ó0   € Ø�{Š{˜1‰~Œ~‰ˆˆ1Ø�yŠy‰{Œ{˜QŸYšY™[œ[Ò(Ð(r‡   c                ó†   — |                       |¦  «        \  }}|                     ¦   «         |                     ¦   «         k    S r~   r:  r…  s       r…   Ú__le__z
DMP.__le__Ä  ó0   € Ø�{Š{˜1‰~Œ~‰ˆˆ1Ø�yŠy‰{Œ{˜aŸiši™kœkÒ)Ð)r‡   c                ó†   — |                       |¦  «        \  }}|                     ¦   «         |                     ¦   «         k    S r~   r:  r…  s       r…   Ú__gt__z
DMP.__gt__È  r<  r‡   c                ó†   — |                       |¦  «        \  }}|                     ¦   «         |                     ¦   «         k    S r~   r:  r…  s       r…   Ú__ge__z
DMP.__ge__Ì  r?  r‡   c                ó   — | j          S r~   )r/  r£   s    r…   Ú__bool__zDMP.__bool__Ð  s   € Ø”9ˆ}Ðr‡   r~   ©Fr.  ©r¯   r   ©T)FNNNFF)NNF©NN)ÓrÙ   Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__Ú__annotations__r™   Úclassmethodr•   Úpropertyr˜   r§   r³   r¶   r¸   rº   rÀ   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  r5  r=  r@  rD  rC  rI  rO  rT  rZ  rV  r`  r]  rd  rg  rk  rp  ru  ry  r}  r�  r‡  rŒ  r�  r•  r›  r   r¦  r«  r°  r´  r¸  r¼  rÀ  rn  rt  rx  r|  r€  r„  r‹  r�  r”  rš  rŸ  r¥  rª  r¯  r³  r·  r»  r¿  r:  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  r/  r5  r4  r;  r:  rB  r@  rG  rK  rJ  rP  rO  rV  rU  r^  r\  r[  rf  rc  rj  rm  rp  rt  rs  ry  rx  r~  r„  r}  r‹  rˆ  r‘  r�  r–  r•  rœ  r›  r¡  r   r¦  r¥  rª  r­  r°  rµ  r·  r»  r½  rÉ  rÅ  rÄ  rÇ  rÆ  rÕ  rÒ  rÚ  rÝ  r/  rã  rç  rë  rî  rñ  rô  r÷  rú  rþ  r  r  r  r  r  r  r  r  r  r  r   r"  r%  r)  r,  r.  r1  r0  r6  r8  r;  r>  rA  rC  rE  rŠ   r‡   r…   rŒ   rŒ   Š   s²  € € € € € € Ø3Ð3à€Ià€H€H�HØ€K€K�Kð&ð &ð &ð &ð ð	.ð 	.ñ „[ð	.ð ðð ñ „Xðð 
ð 
ð 
ð ðð ñ „[ðð ð&ð &ñ „[ð&ð ðCð Cñ „[ðCð ð@ð @ñ „[ð@ð ð>ð >ñ „[ð>ð3ð 3ð 3ð&"ð "ð "ð ð,ð ,ñ „[ð,ð ð0ð 0ñ „[ð0ð"ð "ð "ðIð Ið IðHð Hð Hð2ð 2ð 2ð"ð "ð "ð
ð 
ð 
ðAð Að Að Aðð ð ð ð0ð 0ð 0ð"ð "ð "ð"ð "ð "ð+ð +ð +ð,ð ,ð ,ð,ð ,ð ,ð)ð )ð )ð )ð"ð "ð "ð"ð "ð "ð6ð 6ð 6ð 6ð6ð 6ð 6ð 6ð)ð )ð )ð )ð"ð "ð "ð "ð%ð %ð %ð
Cð 
Cð 
Cð
Hð 
Hð 
Hð#ð #ð #ð"ð "ð "ð"ð "ð "ð"ð "ð "ð "ð"ð "ð "ð "ðð ð ð&"ð "ð "ðð ð ð&"ð "ð "ð"ð "ð "ð"ð "ð "ð"ð "ð "ð/ð /ð /ð/ð /ð /ð/ð /ð /ð/ð /ð /ð1ð 1ð 1ðð ð ð
ð ð ð
ð ð ð
ð ð ðð ð ðð ð ð
ð ð ð
ð ð ð
ð ð ð
ð ð ð
ð ð ð
ð ð ð
ð ð ð
"ð "ð "ð"ð "ð "ð"ð "ð "ð"ð "ð "ð"ð "ð "ð"ð "ð "ð"ð "ð "ð"ð "ð "ð"ð "ð "ð"ð "ð "ð"ð "ð "ð"ð "ð "ð"ð "ð "ð"ð "ð "ð"ð "ð "ð"ð "ð "ð"ð "ð "ð"ð "ð "ðð ð ð ð"ð "ð "ð"ð "ð "ð"ð "ð "ðEð Eð Eð&ð ð ð "ð "ð "ð"ð "ð "ð?ð ?ð ?ð"ð "ð "ð"ð "ð "ð"ð "ð "ð"ð "ð "ð"ð "ð "ð"ð "ð "ð "ð"ð "ð "ðð ð ð ð"ð "ð "ð
ð 
ð 
ð 
ð"ð "ð "ð"ð "ð "ð ð  ð  ð"ð "ð "ð
ð 
ð 
ð"ð "ð "ðð ð ð"ð "ð "ðð ð ð"ð "ð "ð#ð #ð #ð
"ð "ð "ð#ð #ð #ð #ð"ð "ð "ð "ð"ð "ð "ðð ð ð
"ð "ð "ðð ð ð
"ð "ð "ðð ð ð
"ð "ð "ð ð  ð  ð  ð"ð "ð "ð"ð "ð "ð*ð *ð *ð"ð "ð "ð"ð "ð "ð"ð "ð "ð"ð "ð "ðð ð ð
"ð "ð "ðð ð ð"ð "ð "ð*ð *ð *ð ð  ð  ð
"ð "ð "ð	"ð 	"ð 	"ð"ð "ð "ðð ð ð"ð "ð "ð'ð 'ð 'ð"ð "ð "ð'ð 'ð 'ð"ð "ð "ð/ð /ð /ð"ð "ð "ðð ð ð"ð "ð "ð"ð "ð "ð"ð "ð "ð"ð "ð "ð"ð "ð "ð "ð"ð "ð "ð "ð"ð "ð "ð"ð "ð "ðOð Oð Oð Oð"ð "ð "ð"ð "ð "ð"ð "ð "ð"ð "ð "ðJð Jð Jð Jð"ð "ð "ð"ð "ð "ð "ð"ð "ð "ð "ð ð"ð "ñ „Xð"ð ð"ð "ñ „Xð"ð ð"ð "ñ „Xð"ð ð"ð "ñ „Xð"ð ð"ð "ñ „Xð"ð ð"ð "ñ „Xð"ð ð"ð "ñ „Xð"ð ð"ð "ñ „Xð"ð ð"ð "ñ „Xð"ð ð"ð "ñ „Xð"ð ð"ð "ñ „Xð"ð ð"ð "ñ „Xð"ðð ð ðð ð ð&ð &ð &ðð ð ð&ð &ð &ðð ð ð&ð &ð &ðð ð ð&ð &ð &ð&ð &ð &ðð ð ðð ð ðð ð ð&ð &ð &ð
#ð 
#ð 
#ð"ð "ð "ð#ð #ð #ð #ð*ð *ð *ð *ð)ð )ð )ð*ð *ð *ð)ð )ð )ð*ð *ð *ðð ð ð ð r‡   rŒ   c                  ó|  — e Zd ZdZdZed„ ¦   «         Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zdrd„Zd„ Zd„ Zdsd„Zdsd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d „ Z!d!„ Z"d"„ Z#d#„ Z$d$„ Z%d%„ Z&d&„ Z'd'„ Z(d(„ Z)d)„ Z*d*„ Z+d+„ Z,d,„ Z-dtd.„Z.d/„ Z/d0„ Z0d1„ Z1d2„ Z2d3„ Z3d4„ Z4d5„ Z5d6„ Z6d7„ Z7dud9„Z8dud:„Z9d;„ Z:d<„ Z;d=„ Z<d>„ Z=d?„ Z>d@„ Z?dA„ Z@dB„ ZAdC„ ZBdD„ ZCdE„ ZDdF„ ZEdG„ ZFdH„ ZGdI„ ZHdJ„ ZIdK„ ZJdL„ ZKdM„ ZLdN„ ZMdO„ ZNdP„ ZOdQ„ ZPdR„ ZQdS„ ZRdT„ ZSdU„ ZTdV„ ZUdW„ ZVdX„ ZWdY„ ZXdZ„ ZYdsd[„ZZdsd\„Z[d]„ Z\d^„ Z]d_„ Z^d`„ Z_da„ Z`db„ Zadc„ Zbdvdd„Zcdvde„Zdeedf„ ¦   «         Zfeedg„ ¦   «         Zgeedh„ ¦   «         Zheedi„ ¦   «         Zieedj„ ¦   «         Zjeedk„ ¦   «         Zkeedl„ ¦   «         Zleedm„ ¦   «         Zmeedn„ ¦   «         Zneedo„ ¦   «         Zoeedp„ ¦   «         Zpeedq„ ¦   «         ZqdS )wrž   r�   )r¦   r�   r�   c                ód   — t                                | ¦  «        }||_        ||_        ||_        |S r~   )Úobjectr™   r¦   r�   r�   )r—   r˜   r�   r�   Úobjs        r…   r�   zDMP_Python._newÙ  s-   € å�nŠn˜SÑ!Ô!ˆØˆŒØˆŒØˆŒØˆ
r‡   c                ó¦   — t          | ¦  «        t          |¦  «        k    rdS | j        |j        k    o| j        |j        k    o| j        |j        k    S r‰   )r”   r�   r�   r¦   rÇ  s     r…   r0  zDMP_Python._strict_eqá  sG   € Ý�‰7Œ7•d˜1‘g”gÒÐØ�5ØŒu˜œŠ~ÐE !¤%¨1¬5¢.ÐE°Q´V¸q¼vÒ5EÐEr‡   c                óD   — |                       || j        | j        ¦  «        S )ú.Create a DMP out of the given representation. )r�   r�   r�   ©r¤   r˜   s     r…   ÚperzDMP_Python.peræ  s   € à�vŠv�c˜1œ5 !¤%Ñ(Ô(Ð(r‡   c                ój   — |                       t          || j        ¦  «        | j        | j        ¦  «        S rä   )r�   r    r�   r�   rå   s     r…   rç   zDMP_Python.ground_newê  s(   € à�vŠv•j ¨¬Ñ.Ô.°´°q´uÑ=Ô=Ð=r‡   c                óB   — |                       | j        | j        ¦  «        S r~   )rÐ   r�   r�   r£   s    r…   rÒ   zDMP_Python._oneî  s   € Ø�uŠu�Q”U˜AœEÑ"Ô"Ð"r‡   c                ó¶  ‡ ‡‡— t          |t          ¦  «        r‰ j        |j        k    rt          d‰ ›d|›�¦  «        ‚‰ j        |j        k    r ‰ j        ‰ j        ‰ j        ‰ j        |j        fS ‰ j        ‰ j                             |j        ¦  «        cŠŠt          ‰ j        ‰‰ j        ‰¦  «        }t          |j        ‰|j        ‰¦  «        }ˆˆ ˆfd„}‰‰|||fS )z7Unify representations of two multivariate polynomials. rë   rì   c                ó2   •— ‰                      | ‰‰¦  «        S r~   )r�   )r˜   r�   r¤   r�   s    €€€r…   rY  zDMP_Python.unify.<locals>.per   s   ø€ Ø—v’v˜c 3¨Ñ,Ô,Ð,r‡   )	r’   rŒ   r�   rz   r�   rY  r¦   rí   r   )r¤   rï   rY  r†  rY  r�   r�   s   `    @@r…   rí   zDMP_Python.unifyñ  së   øøø€ õ ˜!�SÑ!Ô!ð 	H Q¤U¨a¬e¢^ ^Ý#Ð#ÀÀÀÀAÀAÐ$FÑGÔGÐGàŒ5�A”EŠ>ˆ>Ø”5˜!œ% ¤¨¬°´Ð6Ð6à”u˜aœeŸkšk¨!¬%Ñ0Ô0ˆHˆC�å˜AœF C¨¬°Ñ4Ô4ˆAÝ˜AœF C¨¬°Ñ4Ô4ˆAð-ð -ð -ð -ð -ð -ð -ð ˜˜S ! QÐ&Ð&r‡   c                óX   — t                                | j        | j        | j        ¦  «        S )z)Convert ``f`` to a Flint representation. )rœ   r�   r¦   r�   r�   r£   s    r…   rÄ   zDMP_Python.to_DUP_Flint  s   € å�~Š~˜aœf a¤e¨Q¬UÑ3Ô3Ð3r‡   c                ó*   — t          | j        ¦  «        S r  )r“   r¦   r£   s    r…   r¢   zDMP_Python.to_list	  s   € å�A”F‰|Œ|Ðr‡   c                ó6   — t          | j        | j        ¦  «        S ©zBConvert ``f`` to a tuple representation with native coefficients. )r1   r¦   r�   r£   s    r…   rÝ   zDMP_Python.to_tuple  s   € å˜AœF A¤EÑ*Ô*Ð*r‡   c                óx   — |                       t          | j        | j        | j        |¦  «        || j        ¦  «        S )ú$Convert the ground domain of ``f``. )r�   r   r¦   r�   r�   rÆ   s     r…   rÂ   zDMP_Python._convert  s.   € à�vŠv•k !¤&¨!¬%°´¸Ñ<Ô<¸cÀ1Ä5ÑIÔIÐIr‡   c                ó|   — t          | j        ||| j        ¦  «        }|                      || j        | j        ¦  «        S r  )r.   r¦   r�   r�   r�   )r¤   r  r  r˜   s       r…   r  zDMP_Python._slice  s3   € å˜œ  1 a¤eÑ,Ô,ˆØ�vŠv�c˜1œ5 !¤%Ñ(Ô(Ð(r‡   c                óŠ   — t          | j        |||| j        | j        ¦  «        }|                      || j        | j        ¦  «        S r  )r/   r¦   r�   r�   r�   )r¤   r  r  r  r˜   s        r…   r  zDMP_Python._slice_lev  s9   € å˜1œ6 1 a¨¨A¬E°1´5Ñ9Ô9ˆØ�vŠv�c˜1œ5 !¤%Ñ(Ô(Ð(r‡   Nc                óF   — t          | j        | j        | j        |¬¦  «        S )r-  r$  )r,   r¦   r�   r�   r(  s     r…   r0  zDMP_Python._terms  s   € å˜aœf a¤e¨Q¬U¸%Ð@Ñ@Ô@Ð@r‡   c                óŽ   — t          | j        | j        | j        ¦  «        }|                      || j        j        | j        ¦  «        S rB  )rY   r¦   r�   r�   r�   ©r¤   r±   s     r…   rC  zDMP_Python._lift#  s5   € å�Q”V˜QœU A¤EÑ*Ô*ˆØ�vŠv�a˜œœ A¤EÑ*Ô*Ð*r‡   c                óv   — t          | j        | j        | j        ¦  «        \  }}||                      |¦  «        fS rG  )r(   r¦   r�   r�   rY  rW  s      r…   rI  zDMP_Python.deflate(  s1   € å˜1œ6 1¤5¨!¬%Ñ0Ô0‰ˆˆ1Ø�!—%’%˜‘(”(ˆ{Ðr‡   Fc                óŽ   — t          | j        | j        | j        |¬¦  «        \  }}|                      || j        j        |¦  «        S )rL  ©rN  )r)   r¦   r�   r�   r�   )r¤   rN  rY  r�   s       r…   rO  zDMP_Python.inject-  s<   € å˜AœF A¤E¨1¬5¸Ð>Ñ>Ô>‰ˆˆ3à�vŠv�a˜œœ CÑ(Ô(Ð(r‡   c                óž   — t          | j        | j        ||¬¦  «        }|                      ||| j        t	          |j        ¦  «        z
  ¦  «        S )rR  rk  )r*   r¦   r�   r�   rá  Úsymbols)r¤   r�   rN  rY  s       r…   rT  zDMP_Python.eject3  sC   € å�a”f˜aœe S°Ð6Ñ6Ô6ˆà�vŠv�a˜˜aœe¥c¨#¬+Ñ&6Ô&6Ñ6Ñ7Ô7Ð7r‡   c                ó†   — t          | j        | j        | j        ¦  «        \  }}}||                      || j        |¦  «        fS ©z&Remove useless generators from ``f``. )r-   r¦   r�   r�   r�   )r¤   rX  rY  Úus       r…   rV  zDMP_Python._exclude9  s<   € å˜aœf a¤e¨Q¬UÑ3Ô3‰ˆˆ1ˆaà�!—&’&˜˜AœE 1Ñ%Ô%Ð%Ð%r‡   c                ój   — |                       t          | j        || j        | j        ¦  «        ¦  «        S ©z6Returns a polynomial in `K[x_{P(1)}, ..., x_{P(n)}]`. )rY  r0   r¦   r�   r�   r^  s     r…   r]  zDMP_Python._permute?  s(   € à�uŠu•[ ¤¨¨A¬E°1´5Ñ9Ô9Ñ:Ô:Ð:r‡   c                óv   — t          | j        | j        | j        ¦  «        \  }}||                      |¦  «        fS rc  )r+   r¦   r�   r�   rY  rW  s      r…   rd  zDMP_Python.terms_gcdC  s1   € å˜QœV Q¤U¨A¬EÑ2Ô2‰ˆˆ1Ø�!—%’%˜‘(”(ˆ{Ðr‡   c                ój   — |                       t          | j        || j        | j        ¦  «        ¦  «        S rm  )rY  r2   r¦   r�   r�   ro  s     r…   rn  zDMP_Python._add_groundH  ó(   € à�uŠu•^ A¤F¨A¨q¬u°a´eÑ<Ô<Ñ=Ô=Ð=r‡   c                ój   — |                       t          | j        || j        | j        ¦  «        ¦  «        S rs  )rY  r3   r¦   r�   r�   ro  s     r…   rt  zDMP_Python._sub_groundL  ru  r‡   c                ój   — |                       t          | j        || j        | j        ¦  «        ¦  «        S rw  )rY  r4   r¦   r�   r�   ro  s     r…   rx  zDMP_Python._mul_groundP  ru  r‡   c                ój   — |                       t          | j        || j        | j        ¦  «        ¦  «        S r{  )rY  r5   r¦   r�   r�   ro  s     r…   r|  zDMP_Python._quo_groundT  ru  r‡   c                ój   — |                       t          | j        || j        | j        ¦  «        ¦  «        S r  )rY  r6   r¦   r�   r�   ro  s     r…   r€  zDMP_Python._exquo_groundX  ó)   € à�uŠuÕ% a¤f¨a°´¸¼Ñ>Ô>Ñ?Ô?Ð?r‡   c                óh   — |                       t          | j        | j        | j        ¦  «        ¦  «        S rf  )rY  r7   r¦   r�   r�   r£   s    r…   rg  zDMP_Python.abs\  ó&   € à�uŠu•W˜QœV Q¤U¨A¬EÑ2Ô2Ñ3Ô3Ð3r‡   c                óh   — |                       t          | j        | j        | j        ¦  «        ¦  «        S ri  )rY  r8   r¦   r�   r�   r£   s    r…   rk  zDMP_Python.neg`  r|  r‡   c                ót   — |                       t          | j        |j        | j        | j        ¦  «        ¦  «        S rƒ  )rY  r9   r¦   r�   r�   rÇ  s     r…   r„  zDMP_Python._addd  ó*   € à�uŠu•W˜QœV Q¤V¨Q¬U°A´EÑ:Ô:Ñ;Ô;Ð;r‡   c                ót   — |                       t          | j        |j        | j        | j        ¦  «        ¦  «        S rŠ  )rY  r:   r¦   r�   r�   rÇ  s     r…   r‹  zDMP_Python._subh  r  r‡   c                ót   — |                       t          | j        |j        | j        | j        ¦  «        ¦  «        S rŽ  )rY  r;   r¦   r�   r�   rÇ  s     r…   r�  zDMP_Python._mull  r  r‡   c                óh   — |                       t          | j        | j        | j        ¦  «        ¦  «        S r’  )rY  r<   r¦   r�   r�   r£   s    r…   r•  zDMP_Python.sqrp  r|  r‡   c                ój   — |                       t          | j        || j        | j        ¦  «        ¦  «        S ©r—  )rY  r=   r¦   r�   r�   r<  s     r…   rš  zDMP_Python._powt  s(   € à�uŠu•W˜QœV Q¨¬¨q¬uÑ5Ô5Ñ6Ô6Ð6r‡   c                ó¨   — t          | j        |j        | j        | j        ¦  «        \  }}|                      |¦  «        |                      |¦  «        fS r�  )r>   r¦   r�   r�   rY  ©r¤   rï   r‰  r±   s       r…   rŸ  zDMP_Python._pdivx  s@   € å˜œ ¤¨¬¨q¬uÑ5Ô5‰ˆˆ1Ø�uŠu�Q‰xŒx˜Ÿš˜q™œÐ!Ð!r‡   c                ót   — |                       t          | j        |j        | j        | j        ¦  «        ¦  «        S r£  )rY  r?   r¦   r�   r�   rÇ  s     r…   r¥  zDMP_Python._prem}  ó*   € à�uŠu•X˜aœf a¤f¨a¬e°Q´UÑ;Ô;Ñ<Ô<Ð<r‡   c                ót   — |                       t          | j        |j        | j        | j        ¦  «        ¦  «        S r¨  )rY  r@   r¦   r�   r�   rÇ  s     r…   rª  zDMP_Python._pquo�  rˆ  r‡   c                ót   — |                       t          | j        |j        | j        | j        ¦  «        ¦  «        S r­  )rY  rA   r¦   r�   r�   rÇ  s     r…   r¯  zDMP_Python._pexquo…  s*   € à�uŠu•Z ¤¨¬°´°q´uÑ=Ô=Ñ>Ô>Ð>r‡   c                ó¨   — t          | j        |j        | j        | j        ¦  «        \  }}|                      |¦  «        |                      |¦  «        fS r²  )rB   r¦   r�   r�   rY  r†  s       r…   r³  zDMP_Python._div‰  s@   € å�q”v˜qœv q¤u¨a¬eÑ4Ô4‰ˆˆ1Ø�uŠu�Q‰xŒx˜Ÿš˜q™œÐ!Ð!r‡   c                ót   — |                       t          | j        |j        | j        | j        ¦  «        ¦  «        S r¶  )rY  rC   r¦   r�   r�   rÇ  s     r…   r·  zDMP_Python._remŽ  r  r‡   c                ót   — |                       t          | j        |j        | j        | j        ¦  «        ¦  «        S rº  )rY  rD   r¦   r�   r�   rÇ  s     r…   r»  zDMP_Python._quo’  r  r‡   c                ót   — |                       t          | j        |j        | j        | j        ¦  «        ¦  «        S r¾  )rY  rE   r¦   r�   r�   rÇ  s     r…   r¿  zDMP_Python._exquo–  s*   € à�uŠu•Y˜qœv q¤v¨q¬u°a´eÑ<Ô<Ñ=Ô=Ð=r‡   r   c                ó8   — t          | j        || j        ¦  «        S )rÕ  )r   r¦   r�   r×  s     r…   rÖ  zDMP_Python._degreeš  s   € å˜QœV Q¨¬Ñ.Ô.Ð.r‡   c                ó6   — t          | j        | j        ¦  «        S rÚ  )r   r¦   r�   r£   s    r…   rÛ  zDMP_Python.degree_listž  s   € å˜qœv q¤uÑ-Ô-Ð-r‡   c                óX   — t          d„ |                      ¦   «         D ¦   «         ¦  «        S )rÞ  c              3  ó4   K  — | ]}t          |¦  «        V — Œd S r~   ©râ  )r¬   r  s     r…   r®   z*DMP_Python.total_degree.<locals>.<genexpr>¤  s(   è è € Ð.Ð.˜a•3�q‘6”6Ð.Ð.Ð.Ð.Ð.Ð.r‡   )Úmaxr¾   r£   s    r…   rß  zDMP_Python.total_degree¢  s'   € åÐ.Ð. 1§8¢8¡:¤:Ð.Ñ.Ô.Ñ.Ô.Ð.r‡   c                óB   — t          | j        | j        | j        ¦  «        S rò  )r   r¦   r�   r�   r£   s    r…   ró  zDMP_Python.LC¦  ó   € å˜QœV Q¤U¨A¬EÑ2Ô2Ð2r‡   c                óB   — t          | j        | j        | j        ¦  «        S rõ  )r   r¦   r�   r�   r£   s    r…   r÷  zDMP_Python.TCª  r–  r‡   c                óD   — t          | j        || j        | j        ¦  «        S ©rù  )r   r¦   r�   r�   rü  s     r…   rû  zDMP_Python._nth®  s   € å˜aœf a¨¬°´Ñ6Ô6Ð6r‡   c                óB   — t          | j        | j        | j        ¦  «        S r  )rH   r¦   r�   r�   r£   s    r…   r  zDMP_Python.max_norm²  s   € å˜AœF A¤E¨1¬5Ñ1Ô1Ð1r‡   c                óB   — t          | j        | j        | j        ¦  «        S r  )rI   r¦   r�   r�   r£   s    r…   r  zDMP_Python.l1_norm¶  s   € å˜1œ6 1¤5¨!¬%Ñ0Ô0Ð0r‡   c                óB   — t          | j        | j        | j        ¦  «        S r  )rJ   r¦   r�   r�   r£   s    r…   r  zDMP_Python.l2_norm_squaredº  s   € å" 1¤6¨1¬5°!´%Ñ8Ô8Ð8r‡   c                óv   — t          | j        | j        | j        ¦  «        \  }}||                      |¦  «        fS r
  )rK   r¦   r�   r�   rY  )r¤   ræ   rY  s      r…   r  zDMP_Python.clear_denoms¾  s1   € å# A¤F¨A¬E°1´5Ñ9Ô9‰ˆˆqØ�a—e’e˜A‘h”hˆÐr‡   r¯   c           	     ól   — |                       t          | j        ||| j        | j        ¦  «        ¦  «        S )r  )rY  rL   r¦   r�   r�   r  s      r…   r  zDMP_Python._integrateÃ  s+   € à�uŠuÕ% a¤f¨a°°A´E¸1¼5ÑAÔAÑBÔBÐBr‡   c           	     ól   — |                       t          | j        ||| j        | j        ¦  «        ¦  «        S )r  )rY  rM   r¦   r�   r�   r  s      r…   r  zDMP_Python._diffÇ  s*   € à�uŠu•[ ¤¨¨A¨q¬u°a´eÑ<Ô<Ñ=Ô=Ð=r‡   c                óv   — t          | j        | j                             |¦  «        d| j        | j        ¦  «        S r›   )rN   r¦   r�   rÇ   r�   r  s     r…   r  zDMP_Python._evalË  s,   € Ý˜1œ6 1¤5§=¢=°Ñ#3Ô#3°Q¸¼¸q¼uÑEÔEÐEr‡   c                ó¾   — t          | j        | j                             |¦  «        || j        | j        ¦  «        }|                      || j        | j        dz
  ¦  «        S ©Nr¯   )rN   r¦   r�   rÇ   r�   r•   )r¤   r  r  r˜   s       r…   r  zDMP_Python._eval_levÎ  sI   € Ý˜!œ& !¤%§-¢-°Ñ"2Ô"2°A°q´u¸a¼eÑDÔDˆØ�uŠu�S˜!œ% ¤¨¡Ñ+Ô+Ð+r‡   c                óœ   — t          | j        |j        | j        ¦  «        \  }}|                      |¦  «        |                      |¦  «        fS )r"  )rZ   r¦   r�   rY  ©r¤   rï   rä  Úhs       r…   r$  zDMP_Python._half_gcdexÒ  s<   € å˜aœf a¤f¨a¬eÑ4Ô4‰ˆˆ1Ø�uŠu�Q‰xŒx˜Ÿš˜q™œÐ!Ð!r‡   c                óÆ   — t          | j        |j        | j        ¦  «        \  }}}|                      |¦  «        |                      |¦  «        |                      |¦  «        fS )r(  )r[   r¦   r�   rY  )r¤   rï   rä  rÔ  r¥  s        r…   r*  zDMP_Python._gcdex×  sJ   € å˜AœF A¤F¨A¬EÑ2Ô2‰ˆˆ1ˆaØ�uŠu�Q‰xŒx˜Ÿš˜q™œ 1§5¢5¨¡8¤8Ð+Ð+r‡   c                ól   — t          | j        |j        | j        ¦  «        }|                      |¦  «        S )r.  )r\   r¦   r�   rY  )r¤   rï   rä  s      r…   r/  zDMP_Python._invertÜ  s(   € å�q”v˜qœv q¤uÑ-Ô-ˆØ�uŠu�Q‰xŒxˆr‡   c                ó^   — |                       t          | j        || j        ¦  «        ¦  «        S ©r3  )rY  rO   r¦   r�   r<  s     r…   r4  zDMP_Python._revertá  s$   € à�uŠu•Z ¤¨¨1¬5Ñ1Ô1Ñ2Ô2Ð2r‡   c                ó’   — t          | j        |j        | j        | j        ¦  «        }t	          t          | j        |¦  «        ¦  «        S r8  )r]   r¦   r�   r�   r“   ÚmaprY  ©r¤   rï   ÚRs      r…   r:  zDMP_Python._subresultantså  s5   € å˜aœf a¤f¨a¬e°Q´UÑ;Ô;ˆÝ•C˜œ˜q‘M”MÑ"Ô"Ð"r‡   c                óö   — t          | j        |j        | j        | j        d¬¦  «        \  }}| j        r$|                      || j        | j        dz
  ¦  «        }|t          t          | j        |¦  «        ¦  «        fS )r>  T)rA  r¯   )r^   r¦   r�   r�   r•   r“   r«  rY  ©r¤   rï   Úresr­  s       r…   r?  z DMP_Python._resultant_includePRSê  sj   € å˜qœv q¤v¨q¬u°a´eÈÐMÑMÔM‰ˆˆQØŒ5ð 	/Ø—%’%˜˜QœU A¤E¨A¡IÑ.Ô.ˆCØ•D�˜QœU A™œÑ'Ô'Ð'Ð'r‡   c                ó¨   — t          | j        |j        | j        | j        ¦  «        }| j        r$|                      || j        | j        dz
  ¦  «        }|S r¢  )r^   r¦   r�   r�   r•   )r¤   rï   r°  s      r…   r@  zDMP_Python._resultantñ  sI   € Ý˜AœF A¤F¨A¬E°1´5Ñ9Ô9ˆØŒ5ð 	/Ø—%’%˜˜QœU A¤E¨A¡IÑ.Ô.ˆCØˆ
r‡   c                óœ   — t          | j        | j        | j        ¦  «        }| j        r$|                      || j        | j        dz
  ¦  «        }|S )rF  r¯   )r_   r¦   r�   r�   r•   )r¤   r°  s     r…   rG  zDMP_Python.discriminant÷  sE   € å˜qœv q¤u¨a¬eÑ4Ô4ˆØŒ5ð 	/Ø—%’%˜˜QœU A¤E¨A¡IÑ.Ô.ˆCØˆ
r‡   c                óÒ   — t          | j        |j        | j        | j        ¦  «        \  }}}|                      |¦  «        |                      |¦  «        |                      |¦  «        fS rI  )r`   r¦   r�   r�   rY  )r¤   rï   r¥  ÚcffÚcfgs        r…   rJ  zDMP_Python._cofactorsþ  sN   € å# A¤F¨A¬F°A´E¸1¼5ÑAÔA‰ˆˆ3�Ø�uŠu�Q‰xŒx˜Ÿš˜s™œ Q§U¢U¨3¡Z¤ZÐ/Ð/r‡   c                ót   — |                       t          | j        |j        | j        | j        ¦  «        ¦  «        S rN  )rY  ra   r¦   r�   r�   rÇ  s     r…   rO  zDMP_Python._gcd  r  r‡   c                ót   — |                       t          | j        |j        | j        | j        ¦  «        ¦  «        S rS  )rY  rb   r¦   r�   r�   rÇ  s     r…   rU  zDMP_Python._lcm  r  r‡   c                ó´   — t          | j        |j        | j        | j        d¬¦  «        \  }}}}|||                      |¦  «        |                      |¦  «        fS )rZ  F©r]  ©rc   r¦   r�   r�   rY  ©r¤   rï   ÚcFÚcGrY  r†  s         r…   r\  zDMP_Python._cancel  sM   € å! !¤&¨!¬&°!´%¸¼ÈÐNÑNÔN‰ˆˆB��1Ø�2�q—u’u˜Q‘x”x §¢ q¡¤Ð)Ð)r‡   c                ó¬   — t          | j        |j        | j        | j        d¬¦  «        \  }}|                      |¦  «        |                      |¦  «        fS )rZ  Tr¹  rº  r…  s       r…   r[  zDMP_Python._cancel_include  sE   € å˜!œ& !¤&¨!¬%°´ÀÐEÑEÔE‰ˆˆ1Ø�uŠu�Q‰xŒx˜Ÿš˜q™œÐ!Ð!r‡   c                ój   — |                       t          | j        || j        | j        ¦  «        ¦  «        S rb  )rY  rP   r¦   r�   r�   rd  s     r…   rc  zDMP_Python._trunc  rz  r‡   c                óh   — |                       t          | j        | j        | j        ¦  «        ¦  «        S ri  )rY  rS   r¦   r�   r�   r£   s    r…   rj  zDMP_Python.monic  s'   € à�uŠuÕ% a¤f¨a¬e°Q´UÑ;Ô;Ñ<Ô<Ð<r‡   c                óB   — t          | j        | j        | j        ¦  «        S rl  )rQ   r¦   r�   r�   r£   s    r…   rm  zDMP_Python.content  s   € å! !¤&¨!¬%°´Ñ7Ô7Ð7r‡   c                óv   — t          | j        | j        | j        ¦  «        \  }}||                      |¦  «        fS ro  )rR   r¦   r�   r�   rY  )r¤   ÚcontrY  s      r…   rp  zDMP_Python.primitive!  s1   € å& q¤v¨q¬u°a´eÑ<Ô<‰ˆˆaØ�Q—U’U˜1‘X”Xˆ~Ðr‡   c                ót   — |                       t          | j        |j        | j        | j        ¦  «        ¦  «        S rr  )rY  rT   r¦   r�   r�   rÇ  s     r…   rs  zDMP_Python._compose&  s*   € à�uŠu•[ ¤¨¬°´¸¼Ñ>Ô>Ñ?Ô?Ð?r‡   c           	     óv   — t          t          | j        t          | j        | j        ¦  «        ¦  «        ¦  «        S )rw  )r“   r«  rY  rU   r¦   r�   r£   s    r…   rx  zDMP_Python._decompose*  s*   € å•C˜œ�}¨Q¬V°Q´UÑ;Ô;Ñ<Ô<Ñ=Ô=Ð=r‡   c                ó^   — |                       t          | j        || j        ¦  «        ¦  «        S ©r|  )rY  rV   r¦   r�   r  s     r…   r}  zDMP_Python._shift.  s$   € à�uŠu•Y˜qœv q¨!¬%Ñ0Ô0Ñ1Ô1Ð1r‡   c                ój   — |                       t          | j        || j        | j        ¦  «        ¦  «        S )r€  )rY  rW   r¦   r�   r�   r  s     r…   rƒ  zDMP_Python._shift_list2  s(   € à�uŠu•Y˜qœv q¨!¬%°´Ñ7Ô7Ñ8Ô8Ð8r‡   c                ót   — |                       t          | j        |j        |j        | j        ¦  «        ¦  «        S ©r‡  )rY  rX   r¦   r�   r�  s      r…   rˆ  zDMP_Python._transform6  s*   € à�uŠu•] 1¤6¨1¬6°1´6¸1¼5ÑAÔAÑBÔBÐBr‡   c           	     óv   — t          t          | j        t          | j        | j        ¦  «        ¦  «        ¦  «        S )r�  )r“   r«  rY  rv   r¦   r�   r£   s    r…   r�  zDMP_Python._sturm:  s*   € å•C˜œ�y¨¬°´Ñ7Ô7Ñ8Ô8Ñ9Ô9Ð9r‡   c                ó6   — t          | j        | j        ¦  «        S ©r”  )rw   r¦   r�   r£   s    r…   r•  zDMP_Python._cauchy_upper_bound>  ó   € å% a¤f¨a¬eÑ4Ô4Ð4r‡   c                ó6   — t          | j        | j        ¦  «        S ©rš  )rx   r¦   r�   r£   s    r…   r›  zDMP_Python._cauchy_lower_boundB  rÎ  r‡   c                ó6   — t          | j        | j        ¦  «        S ©rŸ  )ry   r¦   r�   r£   s    r…   r   z&DMP_Python._mignotte_sep_bound_squaredF  s   € å-¨a¬f°a´eÑ<Ô<Ð<r‡   c                óP   ‡ — ˆ fd„t          ‰ j        ‰ j        ¦  «        D ¦   «         S )r¤  c                óD   •— g | ]\  }}‰                      |¦  «        |f‘ŒS rŠ   ©rY  ©r¬   rï   rù   r¤   s      €r…   r"  z(DMP_Python._gff_list.<locals>.<listcomp>L  s+   ø€ ÐHÐHÐH¡4 1 a�!—%’%˜‘(”(˜A�ÐHÐHÐHr‡   )rd   r¦   r�   r£   s   `r…   r¥  zDMP_Python._gff_listJ  s+   ø€ àHÐHÐHÐH­<¸¼ÀÄÑ+FÔ+FÐHÑHÔHÐHr‡   c                óŽ   — t          | j        | j        | j        ¦  «        }|                      || j        j        | j        ¦  «        S r©  )re   r¦   r�   r�   r•   rh  s     r…   rª  zDMP_Python.normN  s5   € å�Q”V˜QœU A¤EÑ*Ô*ˆØ�uŠu�Q˜œœ	 1¤5Ñ)Ô)Ð)r‡   c                óÂ   — t          | j        | j        | j        ¦  «        \  }}}||                      |¦  «        |                      || j        j        | j        ¦  «        fS r¬  )rg   r¦   r�   r�   rY  r•   )r¤   rä  rï   r±   s       r…   r­  zDMP_Python.sqf_normS  sL   € å˜qœv q¤u¨a¬eÑ4Ô4‰ˆˆ1ˆaØ�!—%’%˜‘(”(˜AŸEšE ! Q¤U¤Y°´Ñ6Ô6Ð6Ð6r‡   c                óh   — |                       t          | j        | j        | j        ¦  «        ¦  «        S r¯  )rY  rh   r¦   r�   r�   r£   s    r…   r°  zDMP_Python.sqf_partX  s&   € à�uŠu•\ !¤&¨!¬%°´Ñ7Ô7Ñ8Ô8Ð8r‡   c                ól   ‡ — t          ‰ j        ‰ j        ‰ j        |¦  «        \  }}|ˆ fd„|D ¦   «         fS )r³  c                óD   •— g | ]\  }}‰                      |¦  «        |f‘ŒS rŠ   rÕ  rÖ  s      €r…   r"  z'DMP_Python.sqf_list.<locals>.<listcomp>_  ó+   ø€ Ð;Ð;Ð;©$¨!¨Q˜Ÿš˜q™œ 1˜Ð;Ð;Ð;r‡   )ri   r¦   r�   r�   ©r¤   r°   ræ   Úfactorss   `   r…   rµ  zDMP_Python.sqf_list\  s@   ø€ å% a¤f¨a¬e°Q´U¸CÑ@Ô@‰ˆˆwØÐ;Ð;Ð;Ð;°'Ð;Ñ;Ô;Ð;Ð;r‡   c                ób   ‡ — t          ‰ j        ‰ j        ‰ j        |¦  «        }ˆ fd„|D ¦   «         S )r³  c                óD   •— g | ]\  }}‰                      |¦  «        |f‘ŒS rŠ   rÕ  rÖ  s      €r…   r"  z/DMP_Python.sqf_list_include.<locals>.<listcomp>d  ó+   ø€ Ð4Ð4Ð4¡4 1 a�!—%’%˜‘(”(˜A�Ð4Ð4Ð4r‡   )rj   r¦   r�   r�   ©r¤   r°   rÞ  s   `  r…   r·  zDMP_Python.sqf_list_includea  s6   ø€ å& q¤v¨q¬u°a´e¸SÑAÔAˆØ4Ð4Ð4Ð4¨7Ð4Ñ4Ô4Ð4r‡   c                ój   ‡ — t          ‰ j        ‰ j        ‰ j        ¦  «        \  }}|ˆ fd„|D ¦   «         fS )rº  c                óD   •— g | ]\  }}‰                      |¦  «        |f‘ŒS rŠ   rÕ  rÖ  s      €r…   r"  z*DMP_Python.factor_list.<locals>.<listcomp>i  rÜ  r‡   )rm   r¦   r�   r�   )r¤   ræ   rÞ  s   `  r…   r»  zDMP_Python.factor_listf  s>   ø€ å(¨¬°´¸¼Ñ>Ô>‰ˆˆwØÐ;Ð;Ð;Ð;°'Ð;Ñ;Ô;Ð;Ð;r‡   c                ó`   ‡ — t          ‰ j        ‰ j        ‰ j        ¦  «        }ˆ fd„|D ¦   «         S )rº  c                óD   •— g | ]\  }}‰                      |¦  «        |f‘ŒS rŠ   rÕ  rÖ  s      €r…   r"  z2DMP_Python.factor_list_include.<locals>.<listcomp>n  rá  r‡   )rn   r¦   r�   r�   ©r¤   rÞ  s   ` r…   r½  zDMP_Python.factor_list_includek  s4   ø€ å)¨!¬&°!´%¸¼Ñ?Ô?ˆØ4Ð4Ð4Ð4¨7Ð4Ñ4Ô4Ð4r‡   c                ó@   — t          | j        | j        ||||¬¦  «        S ©Nr¿  )rp   r¦   r�   rË  s        r…   rÇ  zDMP_Python._isolate_real_rootsp  s"   € Ý% a¤f¨a¬e¸À#È3ÐUYÐZÑZÔZÐZr‡   c                ó@   — t          | j        | j        ||||¬¦  «        S ré  )ro   r¦   r�   rË  s        r…   rÆ  z"DMP_Python._isolate_real_roots_sqfs  s"   € Ý)¨!¬&°!´%¸SÀcÈsÐY]Ð^Ñ^Ô^Ð^r‡   c                ó@   — t          | j        | j        ||||¬¦  «        S ré  )rr   r¦   r�   rË  s        r…   rÅ  zDMP_Python._isolate_all_rootsv  s"   € Ý$ Q¤V¨Q¬U¸ÀÈ#ÐTXÐYÑYÔYÐYr‡   c                ó@   — t          | j        | j        ||||¬¦  «        S ré  )rq   r¦   r�   rË  s        r…   rÄ  z!DMP_Python._isolate_all_roots_sqfy  s"   € Ý(¨¬°´¸CÀSÈcÐX\Ð]Ñ]Ô]Ð]r‡   c           	     óB   — t          | j        ||| j        |||¬¦  «        S )NrÐ  )rs   r¦   r�   rÓ  s         r…   rÒ  zDMP_Python._refine_real_root|  s$   € Ý# A¤F¨A¨q°!´%¸SÈÐTXÐYÑYÔYÐYr‡   c                ó<   — t          | j        | j        ||¬¦  «        S ©rØ  ©rÁ  rÂ  )rt   r¦   r�   rÙ  s      r…   rÚ  zDMP_Python.count_real_roots  s   € å# A¤F¨A¬E°sÀÐDÑDÔDÐDr‡   c                ó<   — t          | j        | j        ||¬¦  «        S ©rÜ  rð  )ru   r¦   r�   rÙ  s      r…   rÝ  zDMP_Python.count_complex_rootsƒ  s   € å& q¤v¨q¬u¸#À3ÐGÑGÔGÐGr‡   c                ó6   — t          | j        | j        ¦  «        S rß  )r"   r¦   r�   r£   s    r…   r/  zDMP_Python.is_zero‡  s   € õ ˜!œ& !¤%Ñ(Ô(Ð(r‡   c                óB   — t          | j        | j        | j        ¦  «        S râ  )r#   r¦   r�   r�   r£   s    r…   rã  zDMP_Python.is_oneŒ  ó   € õ ˜œ ¤¨¬Ñ.Ô.Ð.r‡   c                ó8   — t          | j        d| j        ¦  «        S )ræ  N)r$   r¦   r�   r£   s    r…   rç  zDMP_Python.is_ground‘  s   € õ ˜AœF D¨!¬%Ñ0Ô0Ð0r‡   c                óB   — t          | j        | j        | j        ¦  «        S ré  )rf   r¦   r�   r�   r£   s    r…   rë  zDMP_Python.is_sqf–  rõ  r‡   c                ór   — | j                              t          | j        | j        | j         ¦  «        ¦  «        S rí  )r�   rã  r   r¦   r�   r£   s    r…   rî  zDMP_Python.is_monic›  s*   € ð Œu�|Š|�M¨!¬&°!´%¸¼Ñ?Ô?Ñ@Ô@Ð@r‡   c                ór   — | j                              t          | j        | j        | j         ¦  «        ¦  «        S rð  )r�   rã  rQ   r¦   r�   r£   s    r…   rñ  zDMP_Python.is_primitive   s+   € ð Œu�|Š|Õ.¨q¬v°q´u¸a¼eÑDÔDÑEÔEÐEr‡   c                ó”   — t          d„ t          | j        | j        | j        ¦  «                             ¦   «         D ¦   «         ¦  «        S )ró  c              3  ó<   K  — | ]}t          |¦  «        d k    V — ŒdS )r¯   Nr“  ©r¬   rî  s     r…   r®   z'DMP_Python.is_linear.<locals>.<genexpr>¨  ó,   è è € ÐYÐY u•3�u‘:”: ’?ÐYÐYÐYÐYÐYÐYr‡   ©r°   r'   r¦   r�   r�   Úkeysr£   s    r…   rô  zDMP_Python.is_linear¥  ó?   € õ ÐYÐYµ¸A¼FÀAÄEÈ1Ì5Ñ0QÔ0Q×0VÒ0VÑ0XÔ0XÐYÑYÔYÑYÔYÐYr‡   c                ó”   — t          d„ t          | j        | j        | j        ¦  «                             ¦   «         D ¦   «         ¦  «        S )rö  c              3  ó<   K  — | ]}t          |¦  «        d k    V — ŒdS )é   Nr“  rü  s     r…   r®   z*DMP_Python.is_quadratic.<locals>.<genexpr>­  rý  r‡   rþ  r£   s    r…   r÷  zDMP_Python.is_quadraticª  r   r‡   c                óL   — t          |                      ¦   «         ¦  «        dk    S )rù  r¯   )rá  rô   r£   s    r…   rú  zDMP_Python.is_monomial¯  s   € õ �1—9’9‘;”;ÑÔ 1Ò$Ð$r‡   c                ó.   — |                       ¦   «         duS )rý  N)rð  r£   s    r…   rþ  zDMP_Python.is_homogeneous´  s   € ð ×"Ò"Ñ$Ô$¨DÐ0Ð0r‡   c                óB   — t          | j        | j        | j        ¦  «        S r   )rl   r¦   r�   r�   r£   s    r…   r  zDMP_Python.is_irreducible¹  s   € õ ! ¤¨¬°´Ñ6Ô6Ð6r‡   c                óH   — | j         st          | j        | j        ¦  «        S dS ©r  F)r�   rk   r¦   r�   r£   s    r…   r  zDMP_Python.is_cyclotomic¾  s'   € ð Œuð 	Ý# A¤F¨A¬EÑ2Ô2Ð2à�5r‡   r~   rF  r.  rG  rI  )rrÙ   rJ  rK  rL  rM  rO  r�   r0  rY  rç   rÒ   rí   rÄ   r¢   rÝ   rÂ   r  r  r0  rC  rI  rO  rT  rV  r]  rd  rn  rt  rx  r|  r€  rg  rk  r„  r‹  r�  r•  rš  rŸ  r¥  rª  r¯  r³  r·  r»  r¿  rÖ  rÛ  rß  ró  r÷  rû  r  r  r  r  r  r  r  r  r$  r*  r/  r4  r:  r?  r@  rG  rJ  rO  rU  r\  r[  rc  rj  rm  rp  rs  rx  r}  rƒ  rˆ  r�  r•  r›  r   r¥  rª  r­  r°  rµ  r·  r»  r½  rÇ  rÆ  rÅ  rÄ  rÒ  rÚ  rÝ  rP  r/  rã  rç  rë  rî  rñ  rô  r÷  rú  rþ  r  r  rŠ   r‡   r…   rž   rž   Ô  ss  € € € € € Ø3Ð3à&€Iàðð ñ „[ððFð Fð Fð
)ð )ð )ð>ð >ð >ð#ð #ð #ð'ð 'ð 'ð(4ð 4ð 4ðð ð ð+ð +ð +ðJð Jð Jð)ð )ð )ð
)ð )ð )ð
Að Að Að Að+ð +ð +ð
ð ð ð
)ð )ð )ð )ð8ð 8ð 8ð 8ð&ð &ð &ð;ð ;ð ;ðð ð ð
>ð >ð >ð>ð >ð >ð>ð >ð >ð>ð >ð >ð@ð @ð @ð4ð 4ð 4ð4ð 4ð 4ð<ð <ð <ð<ð <ð <ð<ð <ð <ð4ð 4ð 4ð7ð 7ð 7ð"ð "ð "ð
=ð =ð =ð=ð =ð =ð?ð ?ð ?ð"ð "ð "ð
<ð <ð <ð<ð <ð <ð>ð >ð >ð/ð /ð /ð /ð.ð .ð .ð/ð /ð /ð3ð 3ð 3ð3ð 3ð 3ð7ð 7ð 7ð2ð 2ð 2ð1ð 1ð 1ð9ð 9ð 9ðð ð ð
Cð Cð Cð Cð>ð >ð >ð >ðFð Fð Fð,ð ,ð ,ð"ð "ð "ð
,ð ,ð ,ð
ð ð ð
3ð 3ð 3ð#ð #ð #ð
(ð (ð (ðð ð ðð ð ð0ð 0ð 0ð
<ð <ð <ð<ð <ð <ð*ð *ð *ð
"ð "ð "ð
@ð @ð @ð=ð =ð =ð8ð 8ð 8ðð ð ð
@ð @ð @ð>ð >ð >ð2ð 2ð 2ð9ð 9ð 9ðCð Cð Cð:ð :ð :ð5ð 5ð 5ð5ð 5ð 5ð=ð =ð =ðIð Ið Ið*ð *ð *ð
7ð 7ð 7ð
9ð 9ð 9ð<ð <ð <ð <ð
5ð 5ð 5ð 5ð
<ð <ð <ð
5ð 5ð 5ð
[ð [ð [ð_ð _ð _ðZð Zð Zð^ð ^ð ^ðZð Zð ZðEð Eð Eð EðHð Hð Hð Hð ð)ð )ñ „Xð)ð ð/ð /ñ „Xð/ð ð1ð 1ñ „Xð1ð ð/ð /ñ „Xð/ð ðAð Añ „XðAð ðFð Fñ „XðFð ðZð Zñ „XðZð ðZð Zñ „XðZð ð%ð %ñ „Xð%ð ð1ð 1ñ „Xð1ð ð7ð 7ñ „Xð7ð ðð ñ „Xðð ð r‡   rž   c                  óÂ  — e Zd ZdZdZdZd„ Zed„ ¦   «         Zd„ Z	ed„ ¦   «         Z
ed„ ¦   «         Zed	„ ¦   «         Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zdud„Zd„ Zd„ Zdvd„Zdvd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d „ Z!d!„ Z"d"„ Z#d#„ Z$d$„ Z%d%„ Z&d&„ Z'd'„ Z(d(„ Z)d)„ Z*d*„ Z+d+„ Z,d,„ Z-d-„ Z.d.„ Z/d/„ Z0d0„ Z1dwd1„Z2d2„ Z3d3„ Z4d4„ Z5d5„ Z6d6„ Z7d7„ Z8d8„ Z9d9„ Z:d:„ Z;dxd<„Z<dxd=„Z=d>„ Z>d?„ Z?d@„ Z@dA„ ZAdB„ ZBdC„ ZCdD„ ZDdE„ ZEdF„ ZFdG„ ZGdH„ ZHdI„ ZIdJ„ ZJdK„ ZKdL„ ZLdM„ ZMdN„ ZNdO„ ZOdP„ ZPdQ„ ZQdR„ ZRdS„ ZSdT„ ZTdU„ ZUdV„ ZVdW„ ZWdX„ ZXdY„ ZYdZ„ ZZd[„ Z[d\„ Z\dvd]„Z]dvd^„Z^d_„ Z_d`„ Z`da„ Zadb„ Zbdc„ Zcdd„ Zdde„ Zedf„ Zfdydg„Zgdydh„Zheidi„ ¦   «         Zjeidj„ ¦   «         Zkeidk„ ¦   «         Zleidl„ ¦   «         Zmeidm„ ¦   «         Zneidn„ ¦   «         Zoeido„ ¦   «         Zpeidp„ ¦   «         Zqeidq„ ¦   «         Zreidr„ ¦   «         Zseids„ ¦   «         Zteidt„ ¦   «         ZudS )zrœ   r�   r   )r¦   r�   Ú_clsc                óR   — | j         |                      ¦   «         | j        | j        ffS r~   )rØ   r¢   r�   r�   rà   s    r…   Ú
__reduce__zDUP_Flint.__reduce__Î  s"   € ØŒ~ §¢¡¤°´¸$¼(ÐCÐCÐCr‡   c                ón   — |                       |d d d…         ||¦  «        }|                      ||¦  «        S ©Néÿÿÿÿ)Ú_flint_polyÚfrom_repr–   s       r…   r�   zDUP_Flint._newÑ  s5   € à�oŠo˜c $ $ B $œi¨¨cÑ2Ô2ˆØ�|Š|˜C Ñ%Ô%Ð%r‡   c                óF   — | j                              ¦   «         ddd…         S )r  Nr  )r¦   r¿   r£   s    r…   r¢   zDUP_Flint.to_listÖ  s   € àŒv�}Š}‰Œ˜t˜t ˜tÔ$Ð$r‡   c                ót   — t          |¦  «        sJ ‚|dk    sJ ‚|                      |¦  «        } ||¦  «        S r›   )r†   Ú_get_flint_poly_cls)r—   r˜   r�   r�   Ú	flint_clss        r…   r  zDUP_Flint._flint_polyÚ  sD   € å& sÑ+Ô+Ð+Ð+Ð+Ø�aŠxˆxˆxˆxØ×+Ò+¨CÑ0Ô0ˆ	Øˆy˜‰~Œ~Ðr‡   c                óŽ   — |j         rt          j        S |j        rt          j        S |j        r|j        S t          d|z  ¦  «        ‚)Nú%Domain %s is not supported with flint)r   r|   Ú	fmpz_polyr€   Ú	fmpq_polyr�   Ú	_poly_ctxrÅ   )r—   r�   s     r…   r  zDUP_Flint._get_flint_poly_clsá  sO   € àŒ9ð 	NÝ”?Ð"ØŒYð 	NÝ”?Ð"ØŒYð 	NØ”=Ð åÐFÈÑLÑMÔMÐMr‡   c                óþ  ‡‡— |j         r)t          |t          j        ¦  «        sJ ‚t          j        }n›|j        r)t          |t          j        ¦  «        sJ ‚t          j        }nk|j        rRt          |t          j        t          j        f¦  «        sJ ‚| 	                    ¦   «         Št          |¦  «        Šˆˆfd„}nt          d|z  ¦  «        ‚t                               | ¦  «        }||_        ||_        ||_        |S )z,Create a DMP from the given representation. c                ó   •—  ‰| ‰¦  «        S r~   rŠ   )ÚeÚ_DUP_Flint__clsr­   s    €€r…   ú<lambda>z$DUP_Flint.from_rep.<locals>.<lambda>ú  s   ø€ ˜U˜U 1 a™[œ[€ r‡   r  )r   r’   r|   r  r€   r  r�   Ú	nmod_polyÚfmpz_mod_polyÚcharacteristicr”   rÅ   rS  r™   r�   r¦   r
  )r—   r˜   r�   r
  rT  r  r­   s        @@r…   r  zDUP_Flint.from_repì  s÷   øø€ ð Œ9ð 	NÝ˜c¥5¤?Ñ3Ô3Ð3Ð3Ð3Ý”?ˆDˆDØŒYð 		NÝ˜c¥5¤?Ñ3Ô3Ð3Ð3Ð3Ý”?ˆDˆDØŒYð 	NÝ˜c¥E¤OµUÔ5HÐ#IÑJÔJÐJÐJÐJØ×"Ò"Ñ$Ô$ˆAÝ˜‘I”IˆEØ(Ð(Ð(Ð(Ð(ˆDˆDåÐFÈÑLÑMÔMÐMå�nŠn˜SÑ!Ô!ˆØˆŒØˆŒØˆŒàˆ
r‡   c                ó†   — t          | ¦  «        t          |¦  «        k    rdS | j        |j        k    o| j        |j        k    S r‰   )r”   r�   r¦   rÇ  s     r…   r0  zDUP_Flint._strict_eq  s:   € Ý�‰7Œ7•d˜1‘g”gÒÐØ�5ØŒu˜œŠ~Ð2 !¤&¨A¬FÒ"2Ð2r‡   c                ó`   — |                       |                      |g¦  «        | j        ¦  «        S rä   ©r  r
  r�   rå   s     r…   rç   zDUP_Flint.ground_new
  s$   € à�zŠz˜!Ÿ&š& % ™/œ/¨1¬5Ñ1Ô1Ð1r‡   c                ó@   — |                       | j        j        ¦  «        S r~   )rç   r�   rÐ   r£   s    r…   rÒ   zDUP_Flint._one  s   € Ø�|Š|˜AœEœIÑ&Ô&Ð&r‡   c                ó   — t           ‚)z*Unify representations of two polynomials. )rÅ   rÇ  s     r…   rí   zDUP_Flint.unify  s   € åÐr‡   c                ór   — t                                |                      ¦   «         | j        | j        ¦  «        S )z1Convert ``f`` to a Python native representation. )rž   r�   r¢   r�   r�   r£   s    r…   rÃ   zDUP_Flint.to_DMP_Python  s$   € å�Š˜qŸyšy™{œ{¨A¬E°1´5Ñ9Ô9Ð9r‡   c                óD   — t          |                      ¦   «         ¦  «        S ra  )rã  r¢   r£   s    r…   rÝ   zDUP_Flint.to_tuple  s   € å�Q—Y’Y‘[”[Ñ!Ô!Ð!r‡   c                ó~  — |t           k    r=| j        t          k    r-|                      t	          j        | j        ¦  «        |¦  «        S t          |¦  «        rMt          | j        ¦  «        r9|                      ¦   «          	                    |¦  «         
                    ¦   «         S t          d| j        › d|› �¦  «        ‚)rc  zDUP_Flint: Cannot convert z to )r   r�   r   r  r|   r  r¦   r†   rÃ   rÂ   rÄ   rÅ   rÆ   s     r…   rÂ   zDUP_Flint._convert  s¤   € à•"Š9ˆ9˜œ¥"š˜Ø—:’:�eœo¨a¬fÑ5Ô5°sÑ;Ô;Ð;Ý$ SÑ)Ô)ð 	NÕ.EÀaÄeÑ.LÔ.Lð 	Nà—?’?Ñ$Ô$×-Ò-¨cÑ2Ô2×?Ò?ÑAÔAÐAåÐL¸A¼EÐLÐLÀsÐLÐLÑMÔMÐMr‡   c                ó    — | j                              ¦   «         ||…         }|                      |                      |¦  «        | j        ¦  «        S r  )r¦   r¿   r  r
  r�   )r¤   r  r  r¿   s       r…   r  zDUP_Flint._slice'  s:   € à”—’‘”  1 Ô%ˆØ�zŠz˜!Ÿ&š& ™.œ.¨!¬%Ñ0Ô0Ð0r‡   c                ó   — t           ‚r  rÉ   r  s       r…   r  zDUP_Flint._slice_lev,  rà  r‡   Nc                óâ   — |�|j         dk    r;d„ t          | j                             ¦   «         ¦  «        D ¦   «         }|ddd…         S |                      ¦   «                              |¬¦  «        S )r-  NÚlexc                ó"   — g | ]\  }}|¯|f|f‘ŒS rŠ   rŠ   )r¬   r  r­   s      r…   r"  z$DUP_Flint._terms.<locals>.<listcomp>4  s'   € ÐMÐMÐM¡D A qÈ!ÐM˜�t˜Q�iÐMÐMÐMr‡   r  r$  )Úaliasr;  r¦   r¿   rÃ   r0  )r¤   r%  r'  s      r…   r0  zDUP_Flint._terms1  sk   € àˆ=˜EœK¨5Ò0Ð0ØMÐM­I°a´f·m²m±o´oÑ,FÔ,FÐMÑMÔMˆEØ˜˜˜2˜”;Ðð —?’?Ñ$Ô$×+Ò+°%Ð+Ñ8Ô8Ð8r‡   c                ó   — t           ‚rB  rÉ   r£   s    r…   rC  zDUP_Flint._lift?  rà  r‡   c                óŒ   — | j         rd| fS | j                             ¦   «         \  }}|f|                      || j        ¦  «        fS )rH  )r¯   )r/  r¦   Ú	deflationr  r�   )r¤   rï   r  s      r…   rI  zDUP_Flint.deflateD  sK   € ð Œ9ð 	Ø˜�7ˆNØŒv×ÒÑ!Ô!‰ˆˆ1Øˆt�Q—Z’Z  1¤5Ñ)Ô)Ð)Ð)r‡   Fc                ó   — t           ‚rK  rÉ   rM  s     r…   rO  zDUP_Flint.injectQ  rà  r‡   c                ó   — t           ‚rQ  rÉ   rS  s      r…   rT  zDUP_Flint.ejectV  rà  r‡   c                ó   — t           ‚ro  rÉ   r£   s    r…   rV  zDUP_Flint._exclude[  rà  r‡   c                ó   — t           ‚rr  rÉ   r^  s     r…   r]  zDUP_Flint._permute`  rà  r‡   c                ó€   — |                       ¦   «                              ¦   «         \  }}||                     ¦   «         fS rc  )rÃ   rd  rÄ   rW  s      r…   rd  zDUP_Flint.terms_gcde  s8   € ð �ŠÑ Ô ×*Ò*Ñ,Ô,‰ˆˆ1Ø�!—.’.Ñ"Ô"Ð"Ð"r‡   c                óH   — |                       | j        |z   | j        ¦  «        S rm  ©r  r¦   r�   ro  s     r…   rn  zDUP_Flint._add_groundk  ó   € à�zŠz˜!œ& 1™* a¤eÑ,Ô,Ð,r‡   c                óH   — |                       | j        |z
  | j        ¦  «        S rs  r:  ro  s     r…   rt  zDUP_Flint._sub_groundo  r;  r‡   c                óH   — |                       | j        |z  | j        ¦  «        S rw  r:  ro  s     r…   rx  zDUP_Flint._mul_grounds  r;  r‡   c                óH   — |                       | j        |z  | j        ¦  «        S r{  r:  ro  s     r…   r|  zDUP_Flint._quo_groundw  ó   € à�zŠz˜!œ& A™+ q¤uÑ-Ô-Ð-r‡   c                óŒ   — t          | j        |¦  «        \  }}|rt          | |¦  «        ‚|                      || j        ¦  «        S )z<Exact quotient of ``f`` by an element of the ground domain. )Údivmodr¦   r   r  r�   )r¤   r­   r‰  r±   s       r…   r€  zDUP_Flint._exquo_ground{  sE   € å�a”f˜aÑ Ô ‰ˆˆ1Øð 	,Ý% a¨Ñ+Ô+Ð+Ø�zŠz˜!˜QœUÑ#Ô#Ð#r‡   c                ór   — |                       ¦   «                              ¦   «                              ¦   «         S rf  )rÃ   rg  rÄ   r£   s    r…   rg  zDUP_Flint.abs‚  s*   € à�ŠÑ Ô ×$Ò$Ñ&Ô&×3Ò3Ñ5Ô5Ð5r‡   c                óD   — |                       | j         | j        ¦  «        S ri  r:  r£   s    r…   rk  zDUP_Flint.neg†  s   € à�zŠz˜1œ6˜' 1¤5Ñ)Ô)Ð)r‡   c                óR   — |                       | j        |j        z   | j        ¦  «        S rƒ  r:  rÇ  s     r…   r„  zDUP_Flint._addŠ  ó    € à�zŠz˜!œ& 1¤6™/¨1¬5Ñ1Ô1Ð1r‡   c                óR   — |                       | j        |j        z
  | j        ¦  «        S rŠ  r:  rÇ  s     r…   r‹  zDUP_Flint._subŽ  rE  r‡   c                óR   — |                       | j        |j        z  | j        ¦  «        S rŽ  r:  rÇ  s     r…   r�  zDUP_Flint._mul’  rE  r‡   c                óH   — |                       | j        dz  | j        ¦  «        S )r“  r  r:  r£   s    r…   r•  zDUP_Flint.sqr–  r?  r‡   c                óH   — |                       | j        |z  | j        ¦  «        S r„  r:  r<  s     r…   rš  zDUP_Flint._powš  r?  r‡   c                ó0  — |                       ¦   «         |                      ¦   «         z
  dz   }t          |                     ¦   «         |z  | j        z  |j        ¦  «        \  }}|                      || j        ¦  «        |                      || j        ¦  «        fS )rž  r¯   )r:  rA  ró  r¦   r  r�   ©r¤   rï   ré  r‰  r±   s        r…   rŸ  zDUP_Flint._pdivž  st   € à�HŠH‰JŒJ˜Ÿš™œÑ# aÑ'ˆÝ�a—d’d‘f”f˜a‘i !¤&Ñ(¨!¬&Ñ1Ô1‰ˆˆ1Ø�zŠz˜!˜QœUÑ#Ô# Q§Z¢Z°°1´5Ñ%9Ô%9Ð9Ð9r‡   c                óÞ   — |                       ¦   «         |                      ¦   «         z
  dz   }|                     ¦   «         |z  | j        z  |j        z  }|                      || j        ¦  «        S )r¤  r¯   ©r:  ró  r¦   r  r�   )r¤   rï   ré  r‰  s       r…   r¥  zDUP_Flint._prem¤  sV   € à�HŠH‰JŒJ˜Ÿš™œÑ# aÑ'ˆØ�TŠT‰VŒV�Q‰Y˜œÑ 1¤6Ñ)ˆØ�zŠz˜!˜QœUÑ#Ô#Ð#r‡   c                óÞ   — |                       ¦   «         |                      ¦   «         z
  dz   }|                     ¦   «         |z  | j        z  |j        z  }|                      || j        ¦  «        S )r©  r¯   rM  )r¤   rï   ré  r±   s       r…   rª  zDUP_Flint._pquoª  sV   € à�HŠH‰JŒJ˜Ÿš™œÑ# aÑ'ˆØ�TŠT‰VŒV�Q‰Y˜œÑ A¤FÑ*ˆØ�zŠz˜!˜QœUÑ#Ô#Ð#r‡   c                ó  — |                       ¦   «         |                      ¦   «         z
  dz   }t          |                     ¦   «         |z  | j        z  |j        ¦  «        \  }}|rt	          | |¦  «        ‚|                      || j        ¦  «        S )r®  r¯   )r:  rA  ró  r¦   r   r  r�   rK  s        r…   r¯  zDUP_Flint._pexquo°  sw   € à�HŠH‰JŒJ˜Ÿš™œÑ# aÑ'ˆÝ�a—d’d‘f”f˜a‘i !¤&Ñ(¨!¬&Ñ1Ô1‰ˆˆ1Øð 	,Ý% a¨Ñ+Ô+Ð+Ø�zŠz˜!˜QœUÑ#Ô#Ð#r‡   c                óˆ  — | j         j        rSt          | j        |j        ¦  «        \  }}|                      || j         ¦  «        |                      || j         ¦  «        fS |                      ¦   «                              |                     ¦   «         ¦  «        \  }}|                     ¦   «         |                     ¦   «         fS r²  )r�   r)  rA  r¦   r  rÃ   r³  rÄ   r†  s       r…   r³  zDUP_Flint._div¸  sœ   € àŒ5Œ>ð 	6Ý˜!œ& !¤&Ñ)Ô)‰DˆAˆqØ—:’:˜a ¤Ñ'Ô'¨¯ª°A°q´uÑ)=Ô)=Ð=Ð=ð —?’?Ñ$Ô$×)Ò)¨!¯/ª/Ñ*;Ô*;Ñ<Ô<‰DˆAˆqØ—>’>Ñ#Ô# Q§^¢^Ñ%5Ô%5Ð5Ð5r‡   c                óR   — |                       | j        |j        z  | j        ¦  «        S r¶  r:  rÇ  s     r…   r·  zDUP_Flint._remÂ  rE  r‡   c                óR   — |                       | j        |j        z  | j        ¦  «        S rº  r:  rÇ  s     r…   r»  zDUP_Flint._quoÆ  s!   € à�zŠz˜!œ& A¤FÑ*¨A¬EÑ2Ô2Ð2r‡   c                óZ   — |                       |¦  «        \  }}|rt          | |¦  «        ‚|S r¾  )r³  r   r†  s       r…   r¿  zDUP_Flint._exquoÊ  s2   € à�vŠv�a‰yŒy‰ˆˆ1Øð 	,Ý% a¨Ñ+Ô+Ð+Øˆr‡   c                óR   — | j                              ¦   «         }|dk    rt          }|S )rÕ  r  )r¦   r:  r   )r¤   r  ré  s      r…   rÖ  zDUP_Flint._degreeÑ  s$   € àŒF�MŠM‰OŒOˆØ�Š7ˆ7ÝˆAØˆr‡   c                ó,   — |                       ¦   «         fS rÚ  ©rÖ  r£   s    r…   rÛ  zDUP_Flint.degree_listØ  s   € à—’‘”ÐÐr‡   c                ó*   — |                       ¦   «         S rÝ  rV  r£   s    r…   rß  zDUP_Flint.total_degreeÜ  s   € à�yŠy‰{Œ{Ðr‡   c                óJ   — | j         | j                              ¦   «                  S rò  ©r¦   r:  r£   s    r…   ró  zDUP_Flint.LCà  s   € àŒv�a”f—m’m‘o”oÔ&Ð&r‡   c                ó   — | j         d         S )rö  r   ©r¦   r£   s    r…   r÷  zDUP_Flint.TCä  s   € àŒv�aŒyÐr‡   c                ó$   — |\  }| j         |         S r™  r[  )r¤   rý  r  s      r…   rû  zDUP_Flint._nthè  s   € à‰ˆØŒv�aŒyÐr‡   c                óN   — |                       ¦   «                              ¦   «         S r  )rÃ   r  r£   s    r…   r  zDUP_Flint.max_normí  s   € à�ŠÑ Ô ×)Ò)Ñ+Ô+Ð+r‡   c                óN   — |                       ¦   «                              ¦   «         S r  )rÃ   r  r£   s    r…   r  zDUP_Flint.l1_normñ  s   € à�ŠÑ Ô ×(Ò(Ñ*Ô*Ð*r‡   c                óN   — |                       ¦   «                              ¦   «         S r  )rÃ   r  r£   s    r…   r  zDUP_Flint.l2_norm_squaredõ  s   € à�ŠÑ Ô ×0Ò0Ñ2Ô2Ð2r‡   c                ó  — | j         }|j        rb| j                             ¦   «         }|                      |                      | j                             ¦   «         ¦  «        | j         ¦  «        }||fS |j        s|j        r	|j	        | fS t          ‚r
  )r�   r€   r¦   Údenomr  r
  Únumerr   Úis_FiniteFieldrÐ   rÊ   )r¤   r­  ra  rb  s       r…   r  zDUP_Flint.clear_denomsù  s|   € àŒEˆØŒ7ð 	&Ø”F—L’L‘N”NˆEØ—J’J˜qŸvšv a¤f§l¢l¡n¤nÑ5Ô5°q´uÑ=Ô=ˆEØ˜%�<ÐØŒWð 	&˜Ô(ð 	&Ø”5˜!�8ˆOå%Ð%r‡   r¯   c                ó0  — |dk    sJ ‚| j         j        rH| j        }t          |¦  «        D ]}|                     ¦   «         }Œ|                      || j         ¦  «        S |                      ¦   «                              ||¬¦  «                             ¦   «         S )r  r   )r  r  )	r�   r)  r¦   ÚrangeÚintegralr  rÃ   r  rÄ   ©r¤   r  r  r˜   r9  s        r…   r  zDUP_Flint._integrate  sŒ   € à�AŠvˆvˆvˆvØŒ5Œ>ð 	IØ”&ˆCÝ˜1‘X”Xð %ð %�Ø—l’l‘n”n��Ø—:’:˜c 1¤5Ñ)Ô)Ð)à—?’?Ñ$Ô$×/Ò/°!°qÐ/Ñ9Ô9×FÒFÑHÔHÐHr‡   c                ó¢   — |dk    sJ ‚| j         }t          |¦  «        D ]}|                     ¦   «         }Œ|                      || j        ¦  «        S )z1Computes the ``m``-th order derivative of ``f``. r   )r¦   re  Ú
derivativer  r�   rg  s        r…   r  zDUP_Flint._diff  sR   € à�AŠvˆvˆvˆvØŒfˆÝ�q‘”ð 	#ð 	#ˆAØ—.’.Ñ"Ô"ˆCˆCØ�zŠz˜#˜qœuÑ%Ô%Ð%r‡   c                óP   — |                       ¦   «                              |¦  «        S r~   )rÃ   r  r  s     r…   r  zDUP_Flint._eval  s"   € ð
 �ŠÑ Ô ×&Ò& qÑ)Ô)Ð)r‡   c                ó   — t           ‚r~   rÉ   r  s      r…   r  zDUP_Flint._eval_lev  rè   r‡   c                óÊ   — |                       ¦   «                              |                      ¦   «         ¦  «        \  }}|                     ¦   «         |                     ¦   «         fS )z#Half extended Euclidean algorithm. )rÃ   r$  rÄ   r¤  s       r…   r$  zDUP_Flint._half_gcdex#  sL   € à�ŠÑ Ô ×,Ò,¨Q¯_ª_Ñ->Ô->Ñ?Ô?‰ˆˆ1Ø�~Š~ÑÔ §¢Ñ!1Ô!1Ð1Ð1r‡   c                óè   — | j                              |j         ¦  «        \  }}}|                      || j        ¦  «        |                      || j        ¦  «        |                      || j        ¦  «        fS )zExtended Euclidean algorithm. )r¦   Úxgcdr  r�   )r¤   rï   r¥  rä  rÔ  s        r…   r*  zDUP_Flint._gcdex(  sZ   € à”&—+’+˜aœfÑ%Ô%‰ˆˆ1ˆaØ�zŠz˜!˜QœUÑ#Ô# Q§Z¢Z°°1´5Ñ%9Ô%9¸1¿:º:ÀaÈÌÑ;OÔ;OÐOÐOr‡   c                ó\  — | j         }|j        rT| j                             |j        ¦  «        \  }}}|d|z  dz   k    rt	          d¦  «        ‚|                      ||¦  «        S |                      ¦   «                              |                     ¦   «         ¦  «                             ¦   «         S )r.  r   r¯   úzero divisor)	r�   r)  r¦   rn  r   r  rÃ   r/  rÄ   )r¤   rï   r­  rP  ÚF_invr!  s         r…   r/  zDUP_Flint._invert-  sœ   € àŒEˆØŒ:ð 
	OØœFŸKšK¨¬Ñ/Ô/‰MˆC�˜ð �a˜‘e˜a‘iÒÐÝ# NÑ3Ô3Ð3Ø—:’:˜e QÑ'Ô'Ð'ð —?’?Ñ$Ô$×,Ò,¨Q¯_ª_Ñ->Ô->Ñ?Ô?×LÒLÑNÔNÐNr‡   c                ót   — |                       ¦   «                              |¦  «                             ¦   «         S r©  )rÃ   r4  rÄ   r<  s     r…   r4  zDUP_Flint._revert<  s.   € ð �ŠÑ Ô ×(Ò(¨Ñ+Ô+×8Ò8Ñ:Ô:Ð:r‡   c                óŒ   — |                       ¦   «                              |                      ¦   «         ¦  «        }d„ |D ¦   «         S )r9  c                ó6   — g | ]}|                      ¦   «         ‘ŒS rŠ   ©rÄ   ©r¬   rï   s     r…   r"  z,DUP_Flint._subresultants.<locals>.<listcomp>F  s"   € Ð.Ð.Ð. a�—’Ñ!Ô!Ð.Ð.Ð.r‡   )rÃ   r:  r¬  s      r…   r:  zDUP_Flint._subresultantsB  s?   € ð �OŠOÑÔ×,Ò,¨Q¯_ª_Ñ->Ô->Ñ?Ô?ˆØ.Ð.¨1Ð.Ñ.Ô.Ð.r‡   c                ó–   — |                       ¦   «                              |                      ¦   «         ¦  «        \  }}|d„ |D ¦   «         fS )r>  c                ó6   — g | ]}|                      ¦   «         ‘ŒS rŠ   ru  rv  s     r…   r"  z3DUP_Flint._resultant_includePRS.<locals>.<listcomp>L  s"   € Ð3Ð3Ð3¨1�a—n’nÑ&Ô&Ð3Ð3Ð3r‡   )rÃ   r?  r¯  s       r…   r?  zDUP_Flint._resultant_includePRSH  sI   € ð —’Ñ"Ô"×8Ò8¸¿ºÑ9JÔ9JÑKÔK‰ˆˆQØÐ3Ð3°Ð3Ñ3Ô3Ð3Ð3r‡   c                ót   — |                       ¦   «                              |                      ¦   «         ¦  «        S )z'Computes resultant of ``f`` and ``g``. )rÃ   r@  rÇ  s     r…   r@  zDUP_Flint._resultantN  s,   € ð �ŠÑ Ô ×+Ò+¨A¯OªOÑ,=Ô,=Ñ>Ô>Ð>r‡   c                óN   — |                       ¦   «                              ¦   «         S rE  )rÃ   rG  r£   s    r…   rG  zDUP_Flint.discriminantS  s    € ð �ŠÑ Ô ×-Ò-Ñ/Ô/Ð/r‡   c                ó‚   — |                       |¦  «        }||                      |¦  «        |                     |¦  «        fS rI  )rP  rÀ  )r¤   rï   r¥  s      r…   rJ  zDUP_Flint._cofactorsX  s2   € à�EŠE�!‰HŒHˆØ�!—'’'˜!‘*”*˜aŸgšg a™jœjÐ(Ð(r‡   c                ór   — |                       | j                             |j        ¦  «        | j        ¦  «        S rN  )r  r¦   rP  r�   rÇ  s     r…   rO  zDUP_Flint._gcd]  s(   € à�zŠz˜!œ&Ÿ*š* Q¤VÑ,Ô,¨a¬eÑ4Ô4Ð4r‡   c                ó\  — | r|s|                       | j        j        ¦  «        S |                      |¦  «                             |                      |¦  «        ¦  «        }|j        j        r|                     ¦   «         }n,|                     ¦   «         dk     r| 	                    ¦   «         }|S )rT  r   )
rç   r�   rÎ   r�  r¿  rO  r)  rj  ró  rk  )r¤   rï   rê  s      r…   rU  zDUP_Flint._lcma  sŽ   € ð ð 	,�að 	,Ø—<’< ¤¤
Ñ+Ô+Ð+à�FŠF�1‰IŒI×Ò˜QŸVšV A™YœYÑ'Ô'ˆàŒ5Œ>ð 	Ø—’‘	”	ˆAˆAØ�TŠT‰VŒV�aŠZˆZØ—’‘”ˆAàˆr‡   c                ó†  — | j         |j         k    sJ ‚| j         }|j        s|j        s	|j        sJ ‚|j        rO|                      |¦  «        }|                      |¦  «        |                     |¦  «        }}|j        |j        ||fS |j        r/|                      ¦   «         \  }}|                     ¦   «         \  }}n|j        | }}|j        |}}|                     |¦  «        }||z  ||z  }}|                     |¦  «        }	|                     |	¦  «        |                     |	¦  «        }}| 	                    ¦   «         dk     }
| 	                    ¦   «         dk     }|
r+|r)| 
                    ¦   «         | 
                    ¦   «         }}n3|
r| | 
                    ¦   «         }}n|r| | 
                    ¦   «         }}||||fS )rZ  r   )r�   r   r€   rc  rO  rÀ  rÐ   r  rP  ró  rk  )r¤   rï   r­  r¥  rY  r†  r½  r¼  ÚcHÚHÚf_negÚg_negs               r…   r\  zDUP_Flint._cancelp  s©  € àŒu˜œŠ~ˆ~ˆ~ˆ~ØŒEˆð ŒwÐ5˜!œ'Ð5 QÔ%5Ð5Ð5Ð5àÔð 	&Ø—’�q‘	”	ˆAØ—7’7˜1‘:”:˜qŸwšw q™zœzˆqˆAØ”5˜!œ%  AÐ%Ð%àŒ7ð 	Ø—N’NÑ$Ô$‰EˆB�Ø—N’NÑ$Ô$‰EˆB��à”E˜1�ˆBØ”E˜1�ˆBà�VŠV�B‰ZŒZˆØ�r‘˜2 ™8ˆBˆà�FŠF�1‰IŒIˆØ�wŠw�q‰zŒz˜1Ÿ7š7 1™:œ:ˆ1ˆà—’‘”˜’
ˆØ—’‘”˜’
ˆàð 	!�Uð 	!Ø—5’5‘7”7˜AŸEšE™GœGˆqˆAˆAØð 	!Ø�C˜Ÿš™œ�ˆBˆBØð 	!Ø�C˜Ÿš™œ�ˆBà�2�q˜!ˆ|Ðr‡   c                óŠ   — |                       |¦  «        \  }}}}|                     |¦  «        |                     |¦  «        fS rY  )r\  rx  r»  s         r…   r[  zDUP_Flint._cancel_include—  s<   € à—y’y ‘|”|‰ˆˆB��1Ø�}Š}˜RÑ Ô  !§-¢-°Ñ"3Ô"3Ð3Ð3r‡   c                ót   — |                       ¦   «                              |¦  «                             ¦   «         S rb  )rÃ   rc  rÄ   rd  s     r…   rc  zDUP_Flint._truncœ  s,   € à�ŠÑ Ô ×'Ò'¨Ñ*Ô*×7Ò7Ñ9Ô9Ð9r‡   c                óP   — |                       |                      ¦   «         ¦  «        S ri  )r€  ró  r£   s    r…   rj  zDUP_Flint.monic   s   € ð �Š˜qŸtšt™vœvÑ&Ô&Ð&r‡   c                óN   — |                       ¦   «                              ¦   «         S rl  )rÃ   rm  r£   s    r…   rm  zDUP_Flint.content¥  s    € ð �ŠÑ Ô ×(Ò(Ñ*Ô*Ð*r‡   c                ó†   — |                       ¦   «         }| j        r| j        j        | fS |                      |¦  «        }||fS ro  )rm  r/  r�   rÎ   r€  )r¤   rÃ  Úprims      r…   rp  zDUP_Flint.primitiveª  sB   € à�yŠy‰{Œ{ˆØŒ9ð 	!Ø”5”:˜q�=Ð Ø�Š˜tÑ$Ô$ˆØ�TˆzÐr‡   c                óh   — |                       |                      |j        ¦  «        | j        ¦  «        S rr  r:  rÇ  s     r…   rs  zDUP_Flint._compose²  s$   € à�zŠz˜!Ÿ&š& ¤™.œ.¨!¬%Ñ0Ô0Ð0r‡   c                ób   — d„ |                       ¦   «                              ¦   «         D ¦   «         S )rw  c                ó6   — g | ]}|                      ¦   «         ‘ŒS rŠ   ru  rv  s     r…   r"  z(DUP_Flint._decompose.<locals>.<listcomp>¸  s"   € ÐKÐKÐK a�—’Ñ!Ô!ÐKÐKÐKr‡   )rÃ   rx  r£   s    r…   rx  zDUP_Flint._decompose¶  s,   € àKÐK¨1¯?ª?Ñ+<Ô+<×+GÒ+GÑ+IÔ+IÐKÑKÔKÐKr‡   c                ó    — |                       || j        j        g¦  «        }|                      |                      |¦  «        | j        ¦  «        S rÇ  )r
  r�   rÐ   r  r¦   )r¤   r  Úx_plus_as      r…   r}  zDUP_Flint._shiftº  s=   € à—6’6˜1˜aœeœi˜.Ñ)Ô)ˆØ�zŠz˜!Ÿ&š& Ñ*Ô*¨A¬EÑ2Ô2Ð2r‡   c                óÊ   — |                       ¦   «         |                      ¦   «         |                      ¦   «         }}}|                     ||¦  «                             ¦   «         S rÊ  )rÃ   r‹  rÄ   )r¤   re  r‰  rY  r_  rŠ  s         r…   rˆ  zDUP_Flint._transform¿  sM   € à—/’/Ñ#Ô# Q§_¢_Ñ%6Ô%6¸¿ºÑ8IÔ8Iˆaˆ1ˆØ�{Š{˜1˜aÑ Ô ×-Ò-Ñ/Ô/Ð/r‡   c                ób   — d„ |                       ¦   «                              ¦   «         D ¦   «         S )r�  c                ó6   — g | ]}|                      ¦   «         ‘ŒS rŠ   ru  rv  s     r…   r"  z$DUP_Flint._sturm.<locals>.<listcomp>Æ  s"   € ÐGÐGÐG a�—’Ñ!Ô!ÐGÐGÐGr‡   )rÃ   r�  r£   s    r…   r�  zDUP_Flint._sturmÄ  s,   € àGÐG¨1¯?ª?Ñ+<Ô+<×+CÒ+CÑ+EÔ+EÐGÑGÔGÐGr‡   c                óN   — |                       ¦   «                              ¦   «         S rÍ  )rÃ   r•  r£   s    r…   r•  zDUP_Flint._cauchy_upper_boundÈ  ó   € à�ŠÑ Ô ×4Ò4Ñ6Ô6Ð6r‡   c                óN   — |                       ¦   «                              ¦   «         S rÐ  )rÃ   r›  r£   s    r…   r›  zDUP_Flint._cauchy_lower_boundÌ  r’  r‡   c                óN   — |                       ¦   «                              ¦   «         S rÒ  )rÃ   r   r£   s    r…   r   z%DUP_Flint._mignotte_sep_bound_squaredÐ  s   € à�ŠÑ Ô ×<Ò<Ñ>Ô>Ð>r‡   c                óf   — |                       ¦   «         }d„ |                     ¦   «         D ¦   «         S )r¤  c                ó@   — g | ]\  }}|                      ¦   «         |f‘ŒS rŠ   ru  ©r¬   rï   rù   s      r…   r"  z'DUP_Flint._gff_list.<locals>.<listcomp>×  s+   € ÐAÐAÐA©4¨1¨a�!—.’.Ñ"Ô" AÐ&ÐAÐAÐAr‡   )rÃ   r¦  )r¤   rY  s     r…   r¥  zDUP_Flint._gff_listÔ  s-   € à�OŠOÑÔˆØAÐA°1·:²:±<´<ÐAÑAÔAÐAr‡   c                ó   — t           ‚r©  rÉ   r£   s    r…   rª  zDUP_Flint.normÙ  rà  r‡   c                ó   — t           ‚r¬  rÉ   r£   s    r…   r­  zDUP_Flint.sqf_normÞ  rà  r‡   c                óv   — |                       |                      |                      ¦   «         ¦  «        ¦  «        S r¯  )r¿  rO  r  r£   s    r…   r°  zDUP_Flint.sqf_partã  s(   € à�xŠx˜Ÿš˜qŸwšw™yœyÑ)Ô)Ñ*Ô*Ð*r‡   c                ót   — |                       ¦   «                              |¬¦  «        \  }}|d„ |D ¦   «         fS )r³  ©r°   c                ó@   — g | ]\  }}|                      ¦   «         |f‘ŒS rŠ   ru  r—  s      r…   r"  z&DUP_Flint.sqf_list.<locals>.<listcomp>ë  s+   € ÐCÐCÐC±$°!°Q˜ŸšÑ)Ô)¨1Ð-ÐCÐCÐCr‡   )rÃ   rµ  rÝ  s       r…   rµ  zDUP_Flint.sqf_listç  sB   € ð ŸšÑ*Ô*×3Ò3¸Ð3Ñ<Ô<‰ˆˆwØÐCÐC¸'ÐCÑCÔCÐCÐCr‡   c                ój   — |                       ¦   «                              |¬¦  «        }d„ |D ¦   «         S )r³  rœ  c                ó@   — g | ]\  }}|                      ¦   «         |f‘ŒS rŠ   ru  r—  s      r…   r"  z.DUP_Flint.sqf_list_include.<locals>.<listcomp>ð  ó+   € Ð<Ð<Ð<©4¨1¨a�!—.’.Ñ"Ô" AÐ&Ð<Ð<Ð<r‡   )rÃ   r·  râ  s      r…   r·  zDUP_Flint.sqf_list_includeí  s6   € à—/’/Ñ#Ô#×4Ò4¸Ð4Ñ=Ô=ˆØ<Ð<°7Ð<Ñ<Ô<Ð<r‡   c                óØ  ‡ — ‰ j         j        s‰ j         j        r+‰ j                             ¦   «         \  }}ˆ fd„|D ¦   «         }nŽ‰ j         j        rk‰ j                             ¦   «         \  }}ˆ fd„|D ¦   «         }g }|D ];\  }}|                     ¦   «         \  }}|||z  z  }|                     ||f¦  «         Œ<nt          d‰ j         z  ¦  «        ‚‰  	                    |¦  «        }||fS )rº  c                óP   •— g | ]"\  }}‰                      |‰j        ¦  «        |f‘Œ#S rŠ   ©r  r�   rÖ  s      €r…   r"  z)DUP_Flint.factor_list.<locals>.<listcomp>ø  s2   ø€ ÐGÐGÐG±d°a¸˜Ÿš A q¤uÑ-Ô-¨qÐ1ÐGÐGÐGr‡   c                óP   •— g | ]"\  }}‰                      |‰j        ¦  «        |f‘Œ#S rŠ   r£  rÖ  s      €r…   r"  z)DUP_Flint.factor_list.<locals>.<listcomp>þ  s2   ø€ ÐMÐMÐM¹D¸A¸q˜qŸzšz¨!¨Q¬UÑ3Ô3°QÐ7ÐMÐMÐMr‡   r  )
r�   r   r�   r¦   Úfactorr€   r  rÿ   rÅ   r	   )r¤   ræ   rÞ  Úfactors_monicrï   rù   ré  s   `      r…   r»  zDUP_Flint.factor_listò  s  ø€ ð Œ5Œ;ð 	P˜!œ%œ+ð 	PàœVŸ]š]™_œ_‰NˆE�7ØGÐGÐGÐG¸gÐGÑGÔGˆGˆGàŒUŒ[ð 	Pð œVŸ]š]™_œ_‰NˆE�7ØMÐMÐMÐMÀGÐMÑMÔMˆMð ˆGØ%ð 'ð '‘��1Ø—~’~Ñ'Ô'‘��1Ø˜˜A™‘�Ø—’  1˜vÑ&Ô&Ð&Ð&ð'õ ÐFÈÌÑNÑOÔOÐOð —/’/ 'Ñ*Ô*ˆà�gˆ~Ðr‡   c                óf   — |                       ¦   «                              ¦   «         }d„ |D ¦   «         S )rº  c                ó@   — g | ]\  }}|                      ¦   «         |f‘ŒS rŠ   ru  r—  s      r…   r"  z1DUP_Flint.factor_list_include.<locals>.<listcomp>	  r   r‡   )rÃ   r½  rç  s     r…   r½  zDUP_Flint.factor_list_include	  s3   € ð —/’/Ñ#Ô#×7Ò7Ñ9Ô9ˆØ<Ð<°7Ð<Ñ<Ô<Ð<r‡   c                óf   ‡ ‡— d„ |D ¦   «         }t          |d¬¦  «        }ˆ fd„Šˆfd„|D ¦   «         S )z+Sort a list of factors to canonical order. c                ó@   — g | ]\  }}|                      ¦   «         |f‘ŒS rŠ   r  r—  s      r…   r"  z+DUP_Flint._sort_factors.<locals>.<listcomp>	  s)   € Ð:Ð:Ð:©¨¨A�Q—Y’Y‘[”[ !Ð$Ð:Ð:Ð:r‡   T)Úmultiplec                ór   •— ‰                      ‰                     | d d d…         ¦  «        ‰j        ¦  «        S r  r%  )rï   r¤   s    €r…   r  z)DUP_Flint._sort_factors.<locals>.<lambda> 	  s+   ø€  §¢¨A¯FªF°1°T°T°r°T´7©O¬O¸Q¼UÑ!CÔ!C€ r‡   c                ó0   •— g | ]\  }} ‰|¦  «        |f‘ŒS rŠ   rŠ   )r¬   rï   rù   Úto_dup_flints      €r…   r"  z+DUP_Flint._sort_factors.<locals>.<listcomp>!	  s*   ø€ Ð;Ð;Ð;©$¨!¨Q�,�,˜q‘/”/ 1Ð%Ð;Ð;Ð;r‡   )r	   )r¤   rÞ  r®  s   ` @r…   r	   zDUP_Flint._sort_factors	  sS   øø€ ð ;Ð:°Ð:Ñ:Ô:ˆÝ °$Ð7Ñ7Ô7ˆØCÐCÐCÐCˆØ;Ð;Ð;Ð;°'Ð;Ñ;Ô;Ð;r‡   c                óV   — |                       ¦   «                              ||||¦  «        S r~   )rÃ   rÇ  rË  s        r…   rÇ  zDUP_Flint._isolate_real_roots#	  s&   € Ø�ŠÑ Ô ×4Ò4°S¸#¸sÀDÑIÔIÐIr‡   c                óV   — |                       ¦   «                              ||||¦  «        S r~   )rÃ   rÆ  rË  s        r…   rÆ  z!DUP_Flint._isolate_real_roots_sqf&	  s&   € Ø�ŠÑ Ô ×8Ò8¸¸cÀ3ÈÑMÔMÐMr‡   c                óV   — |                       ¦   «                              ||||¦  «        S r~   )rÃ   rÅ  rË  s        r…   rÅ  zDUP_Flint._isolate_all_roots)	  s(   € ð �ŠÑ Ô ×3Ò3°C¸¸cÀ4ÑHÔHÐHr‡   c                óV   — |                       ¦   «                              ||||¦  «        S r~   )rÃ   rÄ  rË  s        r…   rÄ  z DUP_Flint._isolate_all_roots_sqf/	  s&   € Ø�ŠÑ Ô ×7Ò7¸¸SÀ#ÀtÑLÔLÐLr‡   c                óX   — |                       ¦   «                              |||||¦  «        S r~   )rÃ   rÒ  rÓ  s         r…   rÒ  zDUP_Flint._refine_real_root2	  s(   € Ø�ŠÑ Ô ×2Ò2°1°a¸¸eÀTÑJÔJÐJr‡   c                óT   — |                       ¦   «                              ||¬¦  «        S rï  )rÃ   rÚ  rÙ  s      r…   rÚ  zDUP_Flint.count_real_roots5	  s%   € à�ŠÑ Ô ×1Ò1°c¸sÐ1ÑCÔCÐCr‡   c                óT   — |                       ¦   «                              ||¬¦  «        S rò  )rÃ   rÝ  rÙ  s      r…   rÝ  zDUP_Flint.count_complex_roots9	  s%   € à�ŠÑ Ô ×4Ò4¸À#Ð4ÑFÔFÐFr‡   c                ó   — | j          S rß  r[  r£   s    r…   r/  zDUP_Flint.is_zero=	  s   € ð ”6ˆzÐr‡   c                ó,   — | j         | j        j        k    S râ  )r¦   r�   rÐ   r£   s    r…   rã  zDUP_Flint.is_oneB	  s   € ð Œv˜œœÒ"Ð"r‡   c                ó<   — | j                              ¦   «         dk    S )ræ  r   rY  r£   s    r…   rç  zDUP_Flint.is_groundG	  ó   € ð Œv�}Š}‰Œ !Ò#Ð#r‡   c                ó<   — | j                              ¦   «         dk    S )ró  r¯   rY  r£   s    r…   rô  zDUP_Flint.is_linearL	  r¹  r‡   c                ó<   — | j                              ¦   «         dk    S )rö  r  rY  r£   s    r…   r÷  zDUP_Flint.is_quadraticQ	  r¹  r‡   c                ó¸   ‡— | j         Š‰                     ¦   «         dk     p:t          ˆfd„t          ‰                     ¦   «         ¦  «        D ¦   «         ¦  «         S )rù  r   c              3  ó(   •K  — | ]}‰|         V — Œd S r~   rŠ   )r¬   r  Úfrs     €r…   r®   z(DUP_Flint.is_monomial.<locals>.<genexpr>Z	  s'   øè è € Ð)LÐ)L°A¨"¨Q¬%Ð)LÐ)LÐ)LÐ)LÐ)LÐ)Lr‡   )r¦   r:  Úanyre  )r¤   r¾  s    @r…   rú  zDUP_Flint.is_monomialV	  sS   ø€ ð ŒVˆØ�yŠy‰{Œ{˜QŠÐL¥cÐ)LÐ)LÐ)LÐ)L½¸r¿yºy¹{¼{Ñ9KÔ9KÐ)LÑ)LÔ)LÑ&LÔ&LÐ"LÐLr‡   c                óF   — |                       ¦   «         | j        j        k    S rí  )ró  r�   rÐ   r£   s    r…   rî  zDUP_Flint.is_monic\	  s   € ð �tŠt‰vŒv˜œœÒ"Ð"r‡   c                ó4   — |                       ¦   «         j        S rð  )rÃ   rñ  r£   s    r…   rñ  zDUP_Flint.is_primitivea	  s   € ð �ŠÑ Ô Ô-Ð-r‡   c                ó4   — |                       ¦   «         j        S rü  )rÃ   rþ  r£   s    r…   rþ  zDUP_Flint.is_homogeneousf	  s   € ð �ŠÑ Ô Ô/Ð/r‡   c                ó”   — | j                              | j                              ¦   «         ¦  «        }|                     ¦   «         dk    S )rê  r   )r¦   rP  ri  r:  rÇ  s     r…   rë  zDUP_Flint.is_sqfk	  s7   € ð ŒF�JŠJ�q”v×(Ò(Ñ*Ô*Ñ+Ô+ˆØ�xŠx‰zŒz˜QŠÐr‡   c                ó²   — | j                              ¦   «         \  }}t          |¦  «        dk    rdS t          |¦  «        dk    r|d         d         dk    S dS )r  r   Tr¯   F)r¦   r¥  rá  )r¤   r!  rÞ  s      r…   r  zDUP_Flint.is_irreducibleq	  sV   € ð ”V—]’]‘_”_‰
ˆˆ7Ýˆw‰<Œ<˜1ÒÐØ�4Ý�‰\Œ\˜QÒÐØ˜1”:˜a”= AÒ%Ð%à�5r‡   c                óÜ   — | j         j        r-	 |                      t          ¦  «        } n# t          $ r Y dS w xY w| j         j        r&t          | j                             ¦   «         ¦  «        S dS r  )	r�   r€   rÇ   r   r   r   Úboolr¦   r  r£   s    r…   r  zDUP_Flint.is_cyclotomic|	  sw   € ð Œ5Œ;ð 	ðØ—I’I�b‘M”M��øÝ!ð ð ð Ø�u�uðøøøàŒ5Œ;ð 	Ý˜œ×,Ò,Ñ.Ô.Ñ/Ô/Ð/ð �5s   Ž) ©
7¶7r~   rF  r.  rG  rI  )vrÙ   rJ  rK  rL  r�   rM  r  rO  r�   r¢   r  r  r  r0  rç   rÒ   rí   rÃ   rÝ   rÂ   r  r  r0  rC  rI  rO  rT  rV  r]  rd  rn  rt  rx  r|  r€  rg  rk  r„  r‹  r�  r•  rš  rŸ  r¥  rª  r¯  r³  r·  r»  r¿  rÖ  rÛ  rß  ró  r÷  rû  r  r  r  r  r  r  r  r  r$  r*  r/  r4  r:  r?  r@  rG  rJ  rO  rU  r\  r[  rc  rj  rm  rp  rs  rx  r}  rˆ  r�  r•  r›  r   r¥  rª  r­  r°  rµ  r·  r»  r½  r	   rÇ  rÆ  rÅ  rÄ  rÒ  rÚ  rÝ  rP  r/  rã  rç  rô  r÷  rú  rî  rñ  rþ  rë  r  r  rŠ   r‡   r…   rœ   rœ   Ç  sÃ  € € € € € Ø3Ð3à
€Cà'€IðDð Dð Dð ð&ð &ñ „[ð&ð%ð %ð %ð ðð ñ „[ðð ðNð Nñ „[ðNð ðð ñ „[ðð03ð 3ð 3ð
2ð 2ð 2ð'ð 'ð 'ðð ð ð:ð :ð :ð"ð "ð "ðNð Nð Nð1ð 1ð 1ð
"ð "ð "ð
9ð 9ð 9ð 9ð"ð "ð "ð
*ð *ð *ð"ð "ð "ð "ð
"ð "ð "ð "ð
"ð "ð "ð
"ð "ð "ð
#ð #ð #ð-ð -ð -ð-ð -ð -ð-ð -ð -ð.ð .ð .ð$ð $ð $ð6ð 6ð 6ð*ð *ð *ð2ð 2ð 2ð2ð 2ð 2ð2ð 2ð 2ð.ð .ð .ð.ð .ð .ð:ð :ð :ð$ð $ð $ð$ð $ð $ð$ð $ð $ð6ð 6ð 6ð2ð 2ð 2ð3ð 3ð 3ðð ð ðð ð ð ð ð  ð  ðð ð ð'ð 'ð 'ðð ð ðð ð ð
,ð ,ð ,ð+ð +ð +ð3ð 3ð 3ð
&ð 
&ð 
&ð	Ið 	Ið 	Ið 	Ið&ð &ð &ð &ð*ð *ð *ð"ð "ð "ð2ð 2ð 2ð
Pð Pð Pð
Oð Oð Oð;ð ;ð ;ð/ð /ð /ð4ð 4ð 4ð?ð ?ð ?ð
0ð 0ð 0ð
)ð )ð )ð
5ð 5ð 5ðð ð ð%ð %ð %ðN4ð 4ð 4ð
:ð :ð :ð'ð 'ð 'ð
+ð +ð +ð
ð ð ð1ð 1ð 1ðLð Lð Lð3ð 3ð 3ð
0ð 0ð 0ð
Hð Hð Hð7ð 7ð 7ð7ð 7ð 7ð?ð ?ð ?ðBð Bð Bð
"ð "ð "ð
"ð "ð "ð
+ð +ð +ðDð Dð Dð Dð=ð =ð =ð =ð
ð ð ð<	=ð 	=ð 	=ð<ð <ð <ðJð Jð JðNð Nð NðIð Ið IðMð Mð MðKð Kð KðDð Dð Dð DðGð Gð Gð Gð ðð ñ „Xðð ð#ð #ñ „Xð#ð ð$ð $ñ „Xð$ð ð$ð $ñ „Xð$ð ð$ð $ñ „Xð$ð ðMð Mñ „XðMð
 ð#ð #ñ „Xð#ð ð.ð .ñ „Xð.ð ð0ð 0ñ „Xð0ð ðð ñ „Xðð
 ðð ñ „Xðð ðð ñ „Xðð ð r‡   rœ   c                ób   — t          t          | ||¦  «        t          |||¦  «        ||¦  «        S r~   )ÚDMFr   ©ÚnumÚdenr�   r�   s       r…   Úinit_normal_DMFrÌ  ‹	  s5   € Ý�z˜#˜s CÑ(Ô(Ý˜#˜s CÑ(Ô(¨#¨sñ4ô 4ð 4r‡   c                  ó‚  — e Zd ZdZdZd0d„Zed0d„¦   «         Zd„ Zed0d„¦   «         Z	d„ Z
d	„ Zd
„ Zd„ Zd1d„Zd2d„Zed„ ¦   «         Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZeZd3d„Zed„ ¦   «         Zed„ ¦   «         Z d„ Z!d „ Z"d!„ Z#d"„ Z$d#„ Z%d$„ Z&d%„ Z'd&„ Z(d'„ Z)d(„ Z*d)„ Z+d*„ Z,d+„ Z-d,„ Z.d-„ Z/d.„ Z0d/„ Z1dS )4rÈ  z'Dense Multivariate Fractions over `K`. rÉ  Nc                óž   — |                       |||¦  «        \  }}}t          ||||¦  «        \  }}|| _        || _        || _        || _        d S r~   )Ú_parserc   rÊ  rË  r�   r�   )rá   r˜   r�   r�   rÊ  rË  s         r…   Ú__init__zDMF.__init__•	  sT   € ØŸš C¨¨cÑ2Ô2‰ˆˆS�#Ý˜c 3¨¨SÑ1Ô1‰ˆˆSàˆŒØˆŒØˆŒØˆŒˆˆr‡   c                ó¨   — |                       |||¦  «        \  }}}t                               | ¦  «        }||_        ||_        ||_        ||_        |S r~   )rÏ  rS  r™   rÊ  rË  r�   r�   )r—   r˜   r�   r�   rÊ  rË  rT  s          r…   r•   zDMF.newž	  sO   € àŸ
š
 3¨¨SÑ1Ô1‰ˆˆS�#å�nŠn˜SÑ!Ô!ˆàˆŒØˆŒØˆŒØˆŒàˆ
r‡   c                óD   — |                       || j        | j        ¦  «        S r~   )r•   r�   r�   )rá   r˜   s     r…   rç   zDMF.ground_new«	  s   € Ø�xŠx˜˜TœX t¤xÑ0Ô0Ð0r‡   c                óL  — t          |t          ¦  «        �r|\  }}|�Mt          |t          ¦  «        rt          |||¦  «        }t          |t          ¦  «        rt          |||¦  «        }n<t	          |¦  «        \  }}t	          |¦  «        \  }}||k    r|}nt          d¦  «        ‚t          ||¦  «        rt          d¦  «        ‚t          ||¦  «        rt          ||¦  «        }nºt          |||¦  «        r"t          |||¦  «        }t          |||¦  «        }n†|}|�`t          |t          ¦  «        rt          |||¦  «        }nKt          |t          ¦  «        s#t          |                     |¦  «        |¦  «        }nt	          |¦  «        \  }}t          ||¦  «        }|||fS )Nzinconsistent number of levelszfraction denominator)r’   rã  r¼   r&   r   r  r"   ÚZeroDivisionErrorr   r   r8   r“   r    rÇ   )r—   r˜   r�   r�   rÊ  rË  Únum_levÚden_levs           r…   rÏ  z
DMF._parse®	  s±  € å�c�5Ñ!Ô!ñ &	$Ø‰HˆC�àˆÝ˜c¥4Ñ(Ô(ð 7Ý'¨¨S°#Ñ6Ô6�Cå˜c¥4Ñ(Ô(ð 7Ý'¨¨S°#Ñ6Ô6�Cøå+¨CÑ0Ô0‘��WÝ+¨CÑ0Ô0‘��Wà˜gÒ%Ð%Ø!�C�Cå$Ð%DÑEÔEÐEå˜#˜sÑ#Ô#ð @Ý'Ð(>Ñ?Ô?Ð?å˜#˜sÑ#Ô#ð 1Ý˜c 3Ñ'Ô'��å! # s¨CÑ0Ô0ð 1Ý! # s¨CÑ0Ô0�CÝ! # s¨CÑ0Ô0�CøàˆCàˆÝ˜c¥4Ñ(Ô(ð <Ý'¨¨S°#Ñ6Ô6�C�CÝ# C­Ñ.Ô.ð <Ý$ S§[¢[°Ñ%5Ô%5°sÑ;Ô;�Cøå'¨Ñ,Ô,‘��Så˜#˜sÑ#Ô#ˆCà�C˜ˆ}Ðr‡   c                óP   — | j         j        ›d| j        ›d| j        ›d| j        ›d�S )Nz((rÖ   z), r×   )rØ   rÙ   rÊ  rË  r�   r£   s    r…   rÚ   zDMF.__repr__Ú	  s.   € Ø%&¤[Ô%9Ð%9Ð%9¸1¼5¸5¸5À!Ä%À%À%ÈÌÈÈÐOÐOr‡   c                ó²   — t          | j        j        t          | j        | j        ¦  «        t          | j        | j        ¦  «        | j        | j        f¦  «        S r~   )rÜ   rØ   rÙ   r1   rÊ  r�   rË  r�   r£   s    r…   rÞ   zDMF.__hash__Ý	  sI   € Ý�Q”[Ô)­<¸¼¸q¼uÑ+EÔ+EÝ˜œ ¤Ñ&Ô&¨¬¨q¬uð6ñ 7ô 7ð 	7r‡   c                ó   ‡ ‡— t          |t          ¦  «        r‰ j        |j        k    rt          d‰ ›d|›�¦  «        ‚‰ j        |j        k    r'‰ j        ‰ j        ‰ j        ‰ j        ‰ j        f|j        fS ‰ j        ‰ j         	                    |j        ¦  «        c}Št          ‰ j        |‰ j        ‰¦  «        t          ‰ j        |‰ j        ‰¦  «        f}t          |j        ||j        ‰¦  «        }dd|fˆˆ fd„	}|‰|||fS )z0Unify a multivariate fraction and a polynomial. rë   rì   TFc                óŠ   •— |r|s| |z  S |dz
  }|rt          | ||‰¦  «        \  } }‰j                             | |f‰|¦  «        S r¢  ©rc   rØ   r•   ©rÊ  rË  r^  Úkillr�   r�   r¤   s        €€r…   rY  zDMF.poly_unify.<locals>.perð	  ó`   ø€ Øð &Øð &Ø" 3™w˜à! A™g˜àð >Ý)¨#¨s°C¸Ñ=Ô=‘H�C˜à”{—’¨¨S z°3¸Ñ<Ô<Ð<r‡   )r’   rŒ   r�   rz   r�   rY  rÊ  rË  r¦   rí   r   ©r¤   rï   r�   rY  r†  rY  r�   s   `     @r…   Ú
poly_unifyzDMF.poly_unifyá	  s  øø€ å˜!�SÑ!Ô!ð 	H Q¤U¨a¬e¢^ ^Ý#Ð#ÀÀÀÀAÀAÐ$FÑGÔGÐGàŒ5�A”EŠ>ˆ>Ø”E˜1œ5 !¤%¨!¬%°´¨¸¼Ð@Ð@à”u˜aœeŸkšk¨!¬%Ñ0Ô0ˆHˆC�å˜QœU C¨¬°Ñ4Ô4Ý˜QœU C¨¬°Ñ4Ô4ð6ˆAõ ˜AœF C¨¬°Ñ4Ô4ˆAà%)°¸3ð 
=ð 
=ð 
=ð 
=ð 
=ð 
=ð 
=ð ˜˜S ! QÐ&Ð&r‡   c                óF  ‡ ‡— t          |t          ¦  «        r‰ j        |j        k    rt          d‰ ›d|›�¦  «        ‚‰ j        |j        k    r.‰ j        ‰ j        ‰ j        ‰ j        ‰ j        f|j        |j        ffS ‰ j        ‰ j                             |j        ¦  «        c}Št          ‰ j        |‰ j        ‰¦  «        t          ‰ j        |‰ j        ‰¦  «        f}t          |j        ||j        ‰¦  «        t          |j        ||j        ‰¦  «        f}dd|fˆˆ fd„	}|‰|||fS )z5Unify representations of two multivariate fractions. rë   rì   TFc                óŠ   •— |r|s| |z  S |dz
  }|rt          | ||‰¦  «        \  } }‰j                             | |f‰|¦  «        S r¢  rÛ  rÜ  s        €€r…   rY  zDMF.frac_unify.<locals>.per
  rÞ  r‡   )
r’   rÈ  r�   rz   r�   rY  rÊ  rË  rí   r   rß  s   `     @r…   Ú
frac_unifyzDMF.frac_unifyþ	  s:  øø€ å˜!�SÑ!Ô!ð 	H Q¤U¨a¬e¢^ ^Ý#Ð#ÀÀÀÀAÀAÐ$FÑGÔGÐGàŒ5�A”EŠ>ˆ>Ø”E˜1œ5 !¤%¨!¬%°´¨Ø*+¬%°´¨ð9ð 9ð ”u˜aœeŸkšk¨!¬%Ñ0Ô0ˆHˆC�å˜QœU C¨¬°Ñ4Ô4Ý˜QœU C¨¬°Ñ4Ô4ð6ˆAõ ˜QœU C¨¬°Ñ4Ô4Ý˜QœU C¨¬°Ñ4Ô4ð6ˆAð &*°¸3ð 
=ð 
=ð 
=ð 
=ð 
=ð 
=ð 
=ð ˜˜S ! QÐ&Ð&r‡   TFc                ó¤   — | j         | j        }}|r|s||z  S |dz  }|rt          ||||¦  «        \  }}| j                             ||f||¦  «        S )z.Create a DMF out of the given representation. r¯   )r�   r�   rc   rØ   r•   )r¤   rÊ  rË  r^  rÝ  r�   r�   s          r…   rY  zDMF.per
  sl   € à”5˜!œ%ˆSˆàð 	Øð Ø˜3‘w�à�q‘�àð 	6Ý! # s¨C°Ñ5Ô5‰HˆC�àŒ{�Š  S˜z¨3°Ñ4Ô4Ð4r‡   c                óR   — | j         }|r	|s|S |dz  }t          || j        |¦  «        S )rW  r¯   )r�   rŒ   r�   )r¤   r˜   rÝ  r�   s       r…   Úhalf_perzDMF.half_per,
  s;   € àŒeˆàð 	Øð Ø�
à�q‘�å�3˜œ˜sÑ#Ô#Ð#r‡   c                ó0   — |                       d||¦  «        S r›   ©r•   rÍ   s      r…   rÎ   zDMF.zero8
  ó   € à�wŠw�q˜#˜sÑ#Ô#Ð#r‡   c                ó0   — |                       d||¦  «        S r¢  rè  rÍ   s      r…   rÐ   zDMF.one<
  ré  r‡   c                ó6   — |                       | j        ¦  «        S )z Returns the numerator of ``f``. )ræ  rÊ  r£   s    r…   rb  z	DMF.numer@
  ó   € à�zŠz˜!œ%Ñ Ô Ð r‡   c                ó6   — |                       | j        ¦  «        S )z"Returns the denominator of ``f``. )ræ  rË  r£   s    r…   ra  z	DMF.denomD
  rì  r‡   c                óB   — |                       | j        | j        ¦  «        S )z4Remove common factors from ``f.num`` and ``f.den``. )rY  rÊ  rË  r£   s    r…   r^  z
DMF.cancelH
  s   € à�uŠu�Q”U˜AœEÑ"Ô"Ð"r‡   c                óx   — |                       t          | j        | j        | j        ¦  «        | j        d¬¦  «        S )rj  F©r^  )rY  r8   rÊ  r�   r�   rË  r£   s    r…   rk  zDMF.negL
  s.   € à�uŠu•W˜QœU A¤E¨1¬5Ñ1Ô1°1´5ÀˆuÑGÔGÐGr‡   c                ó2   — | |                       |¦  «        z   S rm  )rç   ro  s     r…   rp  zDMF.add_groundP
  s   € à�1—<’< ‘?”?Ñ"Ð"r‡   c           	     ó€  — t          |t          ¦  «        r4|                      |¦  «        \  }}}\  }}}t          |||||¦  «        |}	}nj|                      |¦  «        \  }}}}
}|
|c\  }}\  }}t          t          ||||¦  «        t          ||||¦  «        ||¦  «        }t          ||||¦  «        }	 |||	¦  «        S )z0Add two multivariate fractions ``f`` and ``g``. )r’   rŒ   rà  rF   rã  r9   r;   ©r¤   rï   r�   r�   rY  ÚF_numÚF_denr†  rÊ  rË  rY  ÚG_numÚG_dens                r…   r‡  zDMF.addT
  óÔ   € å�a�ÑÔð 		2Ø/0¯|ª|¸A©¬Ñ,ˆC��c™>˜E 5¨1Ý" 5¨%°°C¸Ñ=Ô=¸u�ˆCˆCà"#§,¢,¨q¡/¤/ÑˆC��c˜1˜aØ-.°Ð*‰NˆU�E™N˜U Eå�' %¨°°SÑ9Ô9Ý! %¨°°SÑ9Ô9¸3ÀñEô EˆCå˜% ¨¨SÑ1Ô1ˆCàˆs�3˜‰}Œ}Ðr‡   c           	     ó€  — t          |t          ¦  «        r4|                      |¦  «        \  }}}\  }}}t          |||||¦  «        |}	}nj|                      |¦  «        \  }}}}
}|
|c\  }}\  }}t          t          ||||¦  «        t          ||||¦  «        ||¦  «        }t          ||||¦  «        }	 |||	¦  «        S )z5Subtract two multivariate fractions ``f`` and ``g``. )r’   rŒ   rà  rG   rã  r:   r;   ró  s                r…   rŒ  zDMF.subc
  rø  r‡   c                ó>  — t          |t          ¦  «        r3|                      |¦  «        \  }}}\  }}}t          ||||¦  «        |}	}nJ|                      |¦  «        \  }}}}
}|
|c\  }}\  }}t          ||||¦  «        }t          ||||¦  «        }	 |||	¦  «        S )z5Multiply two multivariate fractions ``f`` and ``g``. ©r’   rŒ   rà  r;   rã  ró  s                r…   r�  zDMF.mulr
  s¯   € å�a�ÑÔð 	2Ø/0¯|ª|¸A©¬Ñ,ˆC��c™>˜E 5¨1Ý˜u a¨¨cÑ2Ô2°E�ˆCˆCà"#§,¢,¨q¡/¤/ÑˆC��c˜1˜aØ-.°Ð*‰NˆU�E™N˜U Eå˜% ¨¨SÑ1Ô1ˆCÝ˜% ¨¨SÑ1Ô1ˆCàˆs�3˜‰}Œ}Ðr‡   c           	     ó8  — t          |t          ¦  «        rg| j        | j        }}|dk     r||| }}}|                      t          ||| j        | j        ¦  «        t          ||| j        | j        ¦  «        d¬¦  «        S t          dt          |¦  «        z  ¦  «        ‚)r—  r   Frð  r˜  )
r’   rŽ   rÊ  rË  rY  r=   r�   r�   r™  r”   )r¤   r  rÊ  rË  s       r…   r›  zDMF.pow€
  sŸ   € å�a�ÑÔð 	BØ”u˜aœe�ˆCØ�1ŠuˆuØ! 3¨¨˜!�S�Ø—5’5�  a¨¬°´Ñ6Ô6Ý   a¨¬°´Ñ6Ô6¸uð ñ Fô Fð Fõ Ð6½¸a¹¼Ñ@ÑAÔAÐAr‡   c                ó>  — t          |t          ¦  «        r3|                      |¦  «        \  }}}\  }}}|t          ||||¦  «        }	}nJ|                      |¦  «        \  }}}}
}|
|c\  }}\  }}t          ||||¦  «        }t          ||||¦  «        }	 |||	¦  «        S )z0Computes quotient of fractions ``f`` and ``g``. rû  ró  s                r…   r¼  zDMF.quo‹
  s¯   € å�a�ÑÔð 	2Ø/0¯|ª|¸A©¬Ñ,ˆC��c™>˜E 5¨1Ø�g e¨Q°°SÑ9Ô9�ˆCˆCà"#§,¢,¨q¡/¤/ÑˆC��c˜1˜aØ-.°Ð*‰NˆU�E™N˜U Eå˜% ¨¨SÑ1Ô1ˆCÝ˜% ¨¨SÑ1Ô1ˆCàˆs�3˜‰}Œ}Ðr‡   c                óF   — |                       | j        | j        d¬¦  «        S )z&Computes inverse of a fraction ``f``. Frð  )rY  rË  rÊ  )r¤   Úchecks     r…   r0  z
DMF.invert›
  s   € à�uŠu�Q”U˜AœE¨%ˆuÑ0Ô0Ð0r‡   c                ó6   — t          | j        | j        ¦  «        S )z.Returns ``True`` if ``f`` is a zero fraction. ©r"   rÊ  r�   r£   s    r…   r/  zDMF.is_zeroŸ
  s   € õ ˜!œ% ¤Ñ'Ô'Ð'r‡   c                ó‚   — t          | j        | j        | j        ¦  «        ot          | j        | j        | j        ¦  «        S )z.Returns ``True`` if ``f`` is a unit fraction. )r#   rÊ  r�   r�   rË  r£   s    r…   rã  z
DMF.is_one¤
  s8   € õ ˜œ ¤ q¤uÑ-Ô-ð +Ý�a”e˜QœU A¤EÑ*Ô*ð	+r‡   c                ó*   — |                       ¦   «         S r~   r
  r£   s    r…   r  zDMF.__neg__ª
  r  r‡   c                ój  — t          |t          t          f¦  «        r|                      |¦  «        S || j        v r-|                      | j                             |¦  «        ¦  «        S 	 |                      |                      |¦  «        ¦  «        S # t          t          t          f$ r
 t          cY S w xY wr~   )r’   rŒ   rÈ  r‡  r�   rp  rÇ   ræ  r™  r   rÊ   r  rÇ  s     r…   r  zDMF.__add__­
  s¢   € Ý�a�#�s˜Ñ$Ô$ð 	2Ø—5’5˜‘8”8ˆOØ�!”%ˆZˆZØ—<’< ¤§¢¨aÑ 0Ô 0Ñ1Ô1Ð1ð	"Ø—5’5˜Ÿš A™œÑ'Ô'Ð'øÝ�>Õ+>Ð?ð 	"ð 	"ð 	"Ý!Ð!Ð!Ð!ð	"øøøs   Á)'B ÂB2Â1B2c                ó,   — |                       |¦  «        S r~   r  rÇ  s     r…   r  zDMF.__radd__¸
  r  r‡   c                óþ   — t          |t          t          f¦  «        r|                      |¦  «        S 	 |                      |                      |¦  «        ¦  «        S # t
          t          t          f$ r
 t          cY S w xY wr~   )	r’   rŒ   rÈ  rŒ  ræ  r™  r   rÊ   r  rÇ  s     r…   r  zDMF.__sub__»
  ów   € Ý�a�#�s˜Ñ$Ô$ð 	Ø—5’5˜‘8”8ˆOð	"Ø—5’5˜Ÿš A™œÑ'Ô'Ð'øÝ�>Õ+>Ð?ð 	"ð 	"ð 	"Ý!Ð!Ð!Ð!ð	"øøøó   ³'A ÁA<Á;A<c                ó.   — |                        |¦  «        S r~   r  rÇ  s     r…   r  zDMF.__rsub__Ä
  r  r‡   c                óþ   — t          |t          t          f¦  «        r|                      |¦  «        S 	 |                      |                      |¦  «        ¦  «        S # t
          t          t          f$ r
 t          cY S w xY wr~   )	r’   rŒ   rÈ  r�  ræ  r™  r   rÊ   r  rÇ  s     r…   r  zDMF.__mul__Ç
  r  r  c                ó,   — |                       |¦  «        S r~   r  rÇ  s     r…   r  zDMF.__rmul__Ð
  r  r‡   c                ó,   — |                       |¦  «        S r~   r$  r<  s     r…   r%  zDMF.__pow__Ó
  r&  r‡   c                óþ   — t          |t          t          f¦  «        r|                      |¦  «        S 	 |                      |                      |¦  «        ¦  «        S # t
          t          t          f$ r
 t          cY S w xY wr~   )	r’   rŒ   rÈ  r¼  ræ  r™  r   rÊ   r  rÇ  s     r…   r   zDMF.__truediv__Ö
  r  r  c                ó4   — |                       d¬¦  «        |z  S )NF)rÿ  )r0  )rá   rï   s     r…   r"  zDMF.__rtruediv__ß
  s   € Ø�{Š{ ˆ{Ñ'Ô'¨Ñ)Ð)r‡   c                óV  — 	 t          |t          ¦  «        rP|                      |¦  «        \  }}}\  }}}| j        |j        k    r!t	          || j        | j        ¦  «        o||k    S n1|                      |¦  «        \  }}}}}| j        |j        k    r||k    S n# t          $ r Y nw xY wdS r‰   ©r’   rŒ   rà  r�   r#   r�   rã  rz   ©r¤   rï   r!  rô  rõ  r†  rY  s          r…   r1  z
DMF.__eq__â
  sÁ   € ð	Ý˜!�SÑ!Ô!ð 	"Ø-.¯\ª\¸!©_¬_Ñ*��1�a™˜% ¨à”5˜AœE’>�>Ý$ U¨A¬E°1´5Ñ9Ô9ÐH¸eÀqºjÐHð "ð !"§¢¨Q¡¤‘��1�a˜˜Aà”5˜AœE’>�>Ø š6�MøøÝ ð 	ð 	ð 	ØˆDð	øøøð ˆus   ‚A#B Á&1B Â
B&Â%B&c                óX  — 	 t          |t          ¦  «        rQ|                      |¦  «        \  }}}\  }}}| j        |j        k    r"t	          || j        | j        ¦  «        o||k     S n1|                      |¦  «        \  }}}}}| j        |j        k    r||k    S n# t          $ r Y nw xY wdS )NTr  r  s          r…   Ú__ne__z
DMF.__ne__ó
  sÄ   € ð	Ý˜!�SÑ!Ô!ð 	"Ø-.¯\ª\¸!©_¬_Ñ*��1�a™˜% ¨à”5˜AœE’>�>Ý )¨%°´¸¼Ñ >Ô >Ð MÀ5ÈAÂ:ÐNÐNð "ð !"§¢¨Q¡¤‘��1�a˜˜Aà”5˜AœE’>�>Ø š6�MøøÝ ð 	ð 	ð 	ØˆDð	øøøð ˆts   ‚A$B Á'1B Â
B'Â&B'c                óD   — |                       |¦  «        \  }}}}}||k     S r~   ©rã  ©r¤   rï   r!  rY  r†  s        r…   r;  z
DMF.__lt__  ó$   € ØŸš Q™œ‰ˆˆ1ˆa��AØ�1Šuˆr‡   c                óD   — |                       |¦  «        \  }}}}}||k    S r~   r  r  s        r…   r>  z
DMF.__le__  ó$   € ØŸš Q™œ‰ˆˆ1ˆa��AØ�AŠvˆr‡   c                óD   — |                       |¦  «        \  }}}}}||k    S r~   r  r  s        r…   rA  z
DMF.__gt__  r  r‡   c                óD   — |                       |¦  «        \  }}}}}||k    S r~   r  r  s        r…   rC  z
DMF.__ge__  r  r‡   c                ó8   — t          | j        | j        ¦  «         S r~   r  r£   s    r…   rE  zDMF.__bool__  s   € Ý˜aœe Q¤UÑ+Ô+Ð+Ð+r‡   r~   )TFrF  rH  )2rÙ   rJ  rK  rL  rM  rÐ  rO  r•   rç   rÏ  rÚ   rÞ   rà  rã  rY  ræ  rÎ   rÐ   rb  ra  r^  rk  rp  r‡  rŒ  r�  r›  r¼  rÀ  r0  rP  r/  rã  r  r  r  r  r  r  r  r%  r   r"  r1  r  r;  r>  rA  rC  rE  rŠ   r‡   r…   rÈ  rÈ  �	  s  € € € € € Ø1Ð1à,€Iðð ð ð ð ð
ð 
ð 
ñ „[ð
ð1ð 1ð 1ð ð)ð )ð )ñ „[ð)ðVPð Pð Pð7ð 7ð 7ð'ð 'ð 'ð:'ð 'ð 'ð>5ð 5ð 5ð 5ð
$ð 
$ð 
$ð 
$ð ð$ð $ñ „[ð$ð ð$ð $ñ „[ð$ð!ð !ð !ð!ð !ð !ð#ð #ð #ðHð Hð Hð#ð #ð #ðð ð ðð ð ðð ð ð	Bð 	Bð 	Bðð ð ð €Eð1ð 1ð 1ð 1ð ð(ð (ñ „Xð(ð ð+ð +ñ „Xð+ð
ð ð ð	"ð 	"ð 	"ðð ð ð"ð "ð "ðð ð ð"ð "ð "ðð ð ðð ð ð"ð "ð "ð*ð *ð *ðð ð ð"ð ð ð"ð ð ðð ð ðð ð ðð ð ð,ð ,ð ,ð ,ð ,r‡   rÈ  c                ó\   — t          t          | |¦  «        t          ||¦  «        |¦  «        S r~   )ÚANPr   )r˜   Úmodr�   s      r…   Úinit_normal_ANPr     s/   € Ý�z˜#˜sÑ#Ô#Ý˜#˜sÑ#Ô# Sñ*ô *ð *r‡   c                  ó  ‡ — e Zd ZdZdZd„ Zeˆ fd„¦   «         Zd„ Ze	d„ ¦   «         Z
e	d„ ¦   «         Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zed„ ¦   «         Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d „ Z$d!„ Z%d"„ Z&d#„ Z'd$„ Z(d%„ Z)d&„ Z*d'„ Z+e	d(„ ¦   «         Z,e	d)„ ¦   «         Z-e	d*„ ¦   «         Z.d+„ Z/d,„ Z0d-„ Z1d.„ Z2d/„ Z3d0„ Z4d1„ Z5d2„ Z6d3„ Z7d4„ Z8d5„ Z9d6„ Z:d7„ Z;d8„ Z<d9„ Z=d:„ Z>d;„ Z?d<„ Z@d=„ ZAˆ xZBS )>r  z1Dense Algebraic Number Polynomials over a field. )r¦   Ú_modr�   c                óL  ‡— t          |t          ¦  «        rnŽt          |¦  «        t          u r t          t	          |‰¦  «        ‰d¦  «        }nXt          |t
          ¦  «        rˆfd„|D ¦   «         }n‰                     |¦  «        g}t          t          |¦  «        ‰d¦  «        }t          |t          ¦  «        rnSt          |t          ¦  «        r t          t	          |‰¦  «        ‰d¦  «        }nt          t          |¦  «        ‰d¦  «        }|                      ||‰¦  «        S )Nr   c                ó:   •— g | ]}‰                      |¦  «        ‘ŒS rŠ   )rÇ   )r¬   r  r�   s     €r…   r"  zANP.__new__.<locals>.<listcomp>)  s#   ø€ Ð3Ð3Ð3¨!�s—{’{ 1‘~”~Ð3Ð3Ð3r‡   )	r’   rŒ   r”   r¼   r%   r“   rÇ   r   r•   ©r—   r˜   r  r�   s      `r…   r™   zANP.__new__"  s  ø€ Ý�c�3ÑÔð 		.ØÝ�#‰YŒY�$ÐÐÝ•m C¨Ñ-Ô-¨s°AÑ6Ô6ˆCˆCå˜#�tÑ$Ô$ð )Ø3Ð3Ð3Ð3¨sÐ3Ñ3Ô3��à—{’{ 3Ñ'Ô'Ð(�Ý•i ‘n”n c¨1Ñ-Ô-ˆCå�c�3ÑÔð 	.ØÝ˜�TÑ"Ô"ð 	.Ý•m C¨Ñ-Ô-¨s°AÑ6Ô6ˆCˆCå•i ‘n”n c¨1Ñ-Ô-ˆCà�wŠw�s˜C Ñ%Ô%Ð%r‡   c                óÄ   •— |j         |j         cxk    r|k    sn t          d¦  «        ‚t          ¦   «                              | ¦  «        }||_        ||_        ||_         |S )NzInconsistent domain)r�   rÅ   Úsuperr™   r¦   r"  )r—   r˜   r  r�   rT  rØ   s        €r…   r•   zANP.new7  sd   ø€ à”˜3œ7Ð)Ð)Ò)Ð) cÒ)Ð)Ð)Ð)ÝÐ4Ñ5Ô5Ð5Ý‰gŒg�oŠo˜cÑ"Ô"ˆØˆŒØˆŒØˆŒØˆ
r‡   c                ó8   — t           | j        | j        | j        ffS r~   )r  r˜   r  r�   rà   s    r…   r  zANP.__reduce__D  s   € Ý�T”X˜tœx¨¬Ð2Ð2Ð2r‡   c                ó4   — | j                              ¦   «         S r~   ©r¦   r¢   rà   s    r…   r˜   zANP.repG  s   € àŒy× Ò Ñ"Ô"Ð"r‡   c                ó*   — |                       ¦   «         S r~   )Úmod_to_listrà   s    r…   r  zANP.modK  s   € à×ÒÑ!Ô!Ð!r‡   c                ó   — | j         S r~   r[  rà   s    r…   Úto_DMPz
ANP.to_DMPO  ó
   € ØŒyÐr‡   c                ó   — | j         S r~   )r"  rà   s    r…   Ú
mod_to_DMPzANP.mod_to_DMPR  r/  r‡   c                óD   — |                       || j        | j        ¦  «        S r~   )r•   r"  r�   rX  s     r…   rY  zANP.perU  s   € Ø�uŠu�S˜!œ& !¤%Ñ(Ô(Ð(r‡   c                ó˜   — | j         j        ›d| j                             ¦   «         ›d| j                             ¦   «         ›d| j        ›d�S rÔ   )rØ   rÙ   r¦   r¢   r"  r�   r£   s    r…   rÚ   zANP.__repr__X  sJ   € Ø#$¤;Ô#7Ð#7Ð#7¸¼¿ºÑ9IÔ9IÐ9IÐ9IÈ1Ì6Ï>Ê>ÑK[ÔK[ÐK[ÐK[Ð]^Ô]bÐ]bÐ]bÐcÐcr‡   c                ó˜   — t          | j        j        |                      ¦   «         | j                             ¦   «         | j        f¦  «        S r~   )rÜ   rØ   rÙ   rÝ   r"  r�   r£   s    r…   rÞ   zANP.__hash__[  s4   € Ý�Q”[Ô)¨1¯:ª:©<¬<¸¼¿ºÑ9JÔ9JÈAÌEÐRÑSÔSÐSr‡   c                óª   — | j         |k    r| S |                      | j                             |¦  «        | j                             |¦  «        |¦  «        S )z.Convert ``f`` to a ``ANP`` over a new domain. )r�   r•   r¦   rÇ   r"  rÆ   s     r…   rÇ   zANP.convert^  sD   € àŒ5�CŠ<ˆ<ØˆHà—5’5˜œŸš¨Ñ,Ô,¨a¬f¯nªn¸SÑ.AÔ.AÀ3ÑGÔGÐGr‡   c                ó6  ‡‡— t          |t          ¦  «        r| j        |j        k    rt          d| ›d|›�¦  «        ‚| j        |j        k    r | j        | j        | j        |j        | j        fS | j                             |j        ¦  «        Št          | j        | j        ‰¦  «        }t          |j        |j        ‰¦  «        }‰| j        k    r'‰|j        k    rt          | j        | j        ‰¦  «        Šn‰| j        k    r| j        Šn|j        Šˆˆfd„}‰|||‰fS )z0Unify representations of two algebraic numbers. rë   rì   c                ó&   •— t          | ‰‰¦  «        S r~   ©r  )r˜   r�   r  s    €€r…   r  zANP.unify.<locals>.<lambda>~  s   ø€ �c # s¨CÑ0Ô0€ r‡   )	r’   r  r  rz   r�   rY  r˜   rí   r   )r¤   rï   rY  r†  rY  r�   r  s        @@r…   rí   z	ANP.unifye  s  øø€ õ ˜!�SÑ!Ô!ð 	H Q¤U¨a¬e¢^ ^Ý#Ð#ÀÀÀÀAÀAÐ$FÑGÔGÐGàŒ5�A”EŠ>ˆ>Ø”5˜!œ% ¤¨¬¨q¬uÐ4Ð4à”%—+’+˜aœeÑ$Ô$ˆCå˜AœE 1¤5¨#Ñ.Ô.ˆAÝ˜AœE 1¤5¨#Ñ.Ô.ˆAà�a”eŠ|ˆ|  q¤u¢ Ý! !¤%¨¬°Ñ4Ô4��à˜!œ%’<�<Øœ%�C�Càœ%�Cà0Ð0Ð0Ð0Ð0ˆCà�C˜˜A˜sÐ"Ð"r‡   c                ó\  — t          |t          ¦  «        r| j        |j        k    rt          d| ›d|›�¦  «        ‚| j        |j        k    rI| j                             |j        ¦  «        }|                      |¦  «        } |                     |¦  «        }| j        |j        | j        | j        fS rê   )r’   r  r"  rz   r�   rí   rÇ   r¦   rî   s      r…   Ú	unify_ANPzANP.unify_ANP‚  s˜   € å˜!�SÑ!Ô!ð 	H Q¤V¨q¬vÒ%5Ð%5Ý#Ð#ÀÀÀÀAÀAÐ$FÑGÔGÐGð Œ5�A”EŠ>ˆ>Ø”%—+’+˜aœeÑ$Ô$ˆCØ—	’	˜#‘”ˆAØ—	’	˜#‘”ˆAàŒv�q”v˜qœv q¤uÐ,Ð,r‡   c                ó$   — t          d||¦  «        S r›   r8  ©r—   r  r�   s      r…   rÎ   zANP.zero�  ó   € å�1�c˜3ÑÔÐr‡   c                ó$   — t          d||¦  «        S r¢  r8  r<  s      r…   rÐ   zANP.one“  r=  r‡   c                ó4   — | j                              ¦   «         S )rò   )r¦   rô   r£   s    r…   rô   zANP.to_dict—  ó   € àŒv�~Š~ÑÔÐr‡   c                óª   — t          | j        d| j        ¦  «        }|                     ¦   «         D ]"\  }}| j                             |¦  «        ||<   Œ#|S )rö   r   )r'   r˜   r�   r÷   rø   )r¤   r˜   rù   rú   s       r…   rû   zANP.to_sympy_dict›  sP   € å˜!œ%  A¤EÑ*Ô*ˆà—I’I‘K”Kð 	'ð 	'‰DˆAˆqØ”U—^’^ AÑ&Ô&ˆC�‰FˆFàˆ
r‡   c                ó4   — | j                              ¦   «         S r  r*  r£   s    r…   r¢   zANP.to_list¤  r@  r‡   c                ó4   — | j                              ¦   «         S )z5Return ``f.mod`` as a list with native coefficients. )r"  r¢   r£   s    r…   r,  zANP.mod_to_list¨  r@  r‡   c                óD   ‡ — ˆ fd„‰                       ¦   «         D ¦   «         S )rý   c                óD   •— g | ]}‰j                              |¦  «        ‘ŒS rŠ   )r�   rø   )r¬   r­   r¤   s     €r…   r"  z%ANP.to_sympy_list.<locals>.<listcomp>®  s'   ø€ Ð9Ð9Ð9 q�”—’ Ñ"Ô"Ð9Ð9Ð9r‡   r  r£   s   `r…   r  zANP.to_sympy_list¬  s%   ø€ à9Ð9Ð9Ð9¨A¯IªI©K¬KÐ9Ñ9Ô9Ð9r‡   c                ó4   — | j                              ¦   «         S r	  )r¦   rÝ   r£   s    r…   rÝ   zANP.to_tuple°  s   € ð Œv�ŠÑ Ô Ð r‡   c           
     ó~   — t          t          t          t          |j        |¦  «        ¦  «        ¦  «        ||¦  «        S r~   )r  r   r“   r«  rÇ   r%  s       r…   r¸   zANP.from_list¸  s0   € å•9�T¥# c¤k°3Ñ"7Ô"7Ñ8Ô8Ñ9Ô9¸3ÀÑDÔDÐDr‡   c                ó\   — |                       | j                             |¦  «        ¦  «        S rm  )rY  r¦   rp  ro  s     r…   rp  zANP.add_ground¼  ó$   € à�uŠu�Q”V×&Ò& qÑ)Ô)Ñ*Ô*Ð*r‡   c                ó\   — |                       | j                             |¦  «        ¦  «        S rs  )rY  r¦   ru  ro  s     r…   ru  zANP.sub_groundÀ  rI  r‡   c                ó\   — |                       | j                             |¦  «        ¦  «        S )z3Multiply ``f`` by an element of the ground domain. )rY  r¦   ry  ro  s     r…   ry  zANP.mul_groundÄ  rI  r‡   c                ó\   — |                       | j                             |¦  «        ¦  «        S )z6Quotient of ``f`` by an element of the ground domain. )rY  r¦   r}  ro  s     r…   r}  zANP.quo_groundÈ  rI  r‡   c                óZ   — |                       | j                             ¦   «         ¦  «        S r~   )rY  r¦   rk  r£   s    r…   rk  zANP.negÌ  s   € Ø�uŠu�Q”V—Z’Z‘\”\Ñ"Ô"Ð"r‡   c                óŠ   — |                       |¦  «        \  }}}}|                      |                     |¦  «        ||¦  «        S r~   )r:  r•   r‡  ©r¤   rï   rY  r†  r  r�   s         r…   r‡  zANP.addÏ  ó9   € ØŸš Q™œ‰ˆˆ1ˆc�3Ø�uŠu�Q—U’U˜1‘X”X˜s CÑ(Ô(Ð(r‡   c                óŠ   — |                       |¦  «        \  }}}}|                      |                     |¦  «        ||¦  «        S r~   )r:  r•   rŒ  rO  s         r…   rŒ  zANP.subÓ  rP  r‡   c                ó°   — |                       |¦  «        \  }}}}|                      |                     |¦  «                             |¦  «        ||¦  «        S r~   )r:  r•   r�  r¸  rO  s         r…   r�  zANP.mul×  sE   € ØŸš Q™œ‰ˆˆ1ˆc�3Ø�uŠu�Q—U’U˜1‘X”X—\’\ #Ñ&Ô&¨¨SÑ1Ô1Ð1r‡   c                óP  — t          |t          ¦  «        st          dt          |¦  «        z  ¦  «        ‚| j        }| j        }|dk     r|                     |¦  «        | }}|                      |                     |¦  «         	                    | j        ¦  «        || j
        ¦  «        S )r—  r˜  r   )r’   rŽ   r™  r”   r"  r¦   r0  r•   r›  r¸  r�   )r¤   r  r  rY  s       r…   r›  zANP.powÛ  s�   € å˜!�SÑ!Ô!ð 	BÝÐ6½¸a¹¼Ñ@ÑAÔAÐAàŒfˆØŒFˆàˆqŠ5ˆ5Ø—8’8˜C‘=”= 1 "ˆqˆAð �uŠu�Q—U’U˜1‘X”X—\’\ !¤&Ñ)Ô)¨3°´Ñ6Ô6Ð6r‡   c                óÖ   — |                       |¦  «        \  }}}}|                      |                     |                     |¦  «        ¦  «                             |¦  «        ||¦  «        S r~   )r:  r•   r�  r0  r¸  rO  s         r…   rÀ  z	ANP.exquoé  sS   € ØŸš Q™œ‰ˆˆ1ˆc�3Ø�uŠu�Q—U’U˜1Ÿ8š8 C™=œ=Ñ)Ô)×-Ò-¨cÑ2Ô2°C¸Ñ=Ô=Ð=r‡   c                ól   — |                       |¦  «        |                      | j        | j        ¦  «        fS r~   )rÀ  rÎ   r"  r�   rÇ  s     r…   r´  zANP.diví  s)   € Ø�wŠw�q‰zŒz˜1Ÿ6š6 !¤&¨!¬%Ñ0Ô0Ð0Ð0r‡   c                ó,   — |                       |¦  «        S r~   )rÀ  rÇ  s     r…   r¼  zANP.quoð  s   € Ø�wŠw�q‰zŒzÐr‡   c                ó¾   — |                       |¦  «        \  }}}}|                     |¦  «        \  }}|j        r|                      ||¦  «        S t	          d¦  «        ‚)Nrp  )r:  r%  rã  rÎ   r   )r¤   rï   rY  r†  r  r�   rä  r¥  s           r…   r¸  zANP.remó  sX   € ØŸš Q™œ‰ˆˆ1ˆc�3Ø�|Š|˜A‰Œ‰ˆˆ1àŒ8ð 	0Ø—6’6˜#˜sÑ#Ô#Ð#å Ñ/Ô/Ð/r‡   c                ó4   — | j                              ¦   «         S rò  )r¦   ró  r£   s    r…   ró  zANP.LCü  ó   € àŒv�yŠy‰{Œ{Ðr‡   c                ó4   — | j                              ¦   «         S rõ  )r¦   r÷  r£   s    r…   r÷  zANP.TC   rY  r‡   c                ó   — | j         j        S )z6Returns ``True`` if ``f`` is a zero algebraic number. )r¦   r/  r£   s    r…   r/  zANP.is_zero  s   € ð ŒvŒ~Ðr‡   c                ó   — | j         j        S )z6Returns ``True`` if ``f`` is a unit algebraic number. )r¦   rã  r£   s    r…   rã  z
ANP.is_one	  s   € ð ŒvŒ}Ðr‡   c                ó   — | j         j        S rå  )r¦   rç  r£   s    r…   rç  zANP.is_ground  s   € ð ŒvÔÐr‡   c                ó   — | S r~   rŠ   r£   s    r…   Ú__pos__zANP.__pos__  s   € Øˆr‡   c                ó*   — |                       ¦   «         S r~   r
  r£   s    r…   r  zANP.__neg__  r  r‡   c                óä   — t          |t          ¦  «        r|                      |¦  «        S 	 | j                             |¦  «        }|                      |¦  «        S # t          $ r
 t          cY S w xY wr~   )r’   r  r‡  r�   rÇ   rp  r   r  rÇ  s     r…   r  zANP.__add__  óv   € Ý�a�ÑÔð 	Ø—5’5˜‘8”8ˆOð	#Ø”—’˜aÑ Ô ˆAð —<’< ‘?”?Ð"øõ ð 	"ð 	"ð 	"Ý!Ð!Ð!Ð!ð	"øøøó   ¬A ÁA/Á.A/c                ó,   — |                       |¦  «        S r~   r  rÇ  s     r…   r  zANP.__radd__#  r  r‡   c                óä   — t          |t          ¦  «        r|                      |¦  «        S 	 | j                             |¦  «        }|                      |¦  «        S # t          $ r
 t          cY S w xY wr~   )r’   r  rŒ  r�   rÇ   ru  r   r  rÇ  s     r…   r  zANP.__sub__&  rb  rc  c                ó.   — |                        |¦  «        S r~   r  rÇ  s     r…   r  zANP.__rsub__0  r  r‡   c                óä   — t          |t          ¦  «        r|                      |¦  «        S 	 | j                             |¦  «        }|                      |¦  «        S # t          $ r
 t          cY S w xY wr~   )r’   r  r�  r�   rÇ   ry  r   r  rÇ  s     r…   r  zANP.__mul__3  rb  rc  c                ó,   — |                       |¦  «        S r~   r  rÇ  s     r…   r  zANP.__rmul__=  r  r‡   c                ó,   — |                       |¦  «        S r~   r$  r<  s     r…   r%  zANP.__pow__@  r&  r‡   c                ó,   — |                       |¦  «        S r~   r(  rÇ  s     r…   r)  zANP.__divmod__C  r&  r‡   c                ó,   — |                       |¦  «        S r~   r+  rÇ  s     r…   r,  zANP.__mod__F  r&  r‡   c                óä   — t          |t          ¦  «        r|                      |¦  «        S 	 | j                             |¦  «        }|                      |¦  «        S # t          $ r
 t          cY S w xY wr~   )r’   r  r¼  r�   rÇ   r}  r   r  rÇ  s     r…   r   zANP.__truediv__I  rb  rc  c                ót   — 	 |                       |¦  «        \  }}}}n# t          $ r
 t          cY S w xY w||k    S r~   ©r:  rz   r  ©r¤   rï   rY  r†  r!  s        r…   r1  z
ANP.__eq__S  óP   € ð	"ØŸš Q™œ‰JˆAˆq�!�Q�QøÝ ð 	"ð 	"ð 	"Ý!Ð!Ð!Ð!ð	"øøøà�AŠvˆó   ‚ �1°1c                ót   — 	 |                       |¦  «        \  }}}}n# t          $ r
 t          cY S w xY w||k    S r~   rn  ro  s        r…   r  z
ANP.__ne__Z  rp  rq  c                óB   — |                       |¦  «        \  }}}}||k     S r~   ©r:  ro  s        r…   r;  z
ANP.__lt__a  ó"   € Ø—[’[ ‘^”^‰
ˆˆ1ˆa�Ø�1Šuˆr‡   c                óB   — |                       |¦  «        \  }}}}||k    S r~   rt  ro  s        r…   r>  z
ANP.__le__e  ó"   € Ø—[’[ ‘^”^‰
ˆˆ1ˆa�Ø�AŠvˆr‡   c                óB   — |                       |¦  «        \  }}}}||k    S r~   rt  ro  s        r…   rA  z
ANP.__gt__i  ru  r‡   c                óB   — |                       |¦  «        \  }}}}||k    S r~   rt  ro  s        r…   rC  z
ANP.__ge__m  rw  r‡   c                ó*   — t          | j        ¦  «        S r~   )rÆ  r¦   r£   s    r…   rE  zANP.__bool__q  s   € Ý�A”F‰|Œ|Ðr‡   )CrÙ   rJ  rK  rL  rM  r™   rO  r•   r  rP  r˜   r  r.  r1  rY  rÚ   rÞ   rÇ   rí   r:  rÎ   rÐ   rô   rû   r¢   r,  r  rÝ   r¸   rp  ru  ry  r}  rk  r‡  rŒ  r�  r›  rÀ  r´  r¼  r¸  ró  r÷  r/  rã  rç  r_  r  r  r  r  r  r  r  r%  r)  r,  r   r1  r  r;  r>  rA  rC  rE  Ú__classcell__)rØ   s   @r…   r  r    s!  ø€ € € € € Ø;Ð;à'€Ið&ð &ð &ð* ðð ð ð ñ „[ðð3ð 3ð 3ð ð#ð #ñ „Xð#ð ð"ð "ñ „Xð"ðð ð ðð ð ð)ð )ð )ðdð dð dðTð Tð TðHð Hð Hð#ð #ð #ð:-ð -ð -ð ð ð  ñ „[ð ð ð ð  ñ „[ð ð ð  ð  ðð ð ð ð  ð  ð ð  ð  ð:ð :ð :ð!ð !ð !ð ðEð Eñ „[ðEð+ð +ð +ð+ð +ð +ð+ð +ð +ð+ð +ð +ð#ð #ð #ð)ð )ð )ð)ð )ð )ð2ð 2ð 2ð7ð 7ð 7ð>ð >ð >ð1ð 1ð 1ðð ð ð0ð 0ð 0ðð ð ðð ð ð ðð ñ „Xðð ðð ñ „Xðð ð ð  ñ „Xð ðð ð ðð ð ð#ð #ð #ðð ð ð#ð #ð #ðð ð ð#ð #ð #ðð ð ðð ð ðð ð ðð ð ð#ð #ð #ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð ð ð ð r‡   r  )’rL  Ú
__future__r   Úsympy.external.gmpyr   Úsympy.utilities.exceptionsr   Úsympy.core.numbersr   Úsympy.core.sympifyr   Úsympy.polys.polyutilsr   r	   Úsympy.polys.domainsr
   r   r   Úsympy.polys.polyerrorsr   r   r   r   Úsympy.polys.densebasicr   r   r   r   r   r   r   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   Úsympy.polys.densearithr2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   Úsympy.polys.densetoolsrK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   Úsympy.polys.euclidtoolsrZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   Úsympy.polys.sqfreetoolsrd   re   rf   rg   rh   ri   rj   Úsympy.polys.factortoolsrk   rl   rm   rn   Úsympy.polys.rootisolationro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r†   rŒ   rž   rœ   rÌ  rÈ  r   r  rŠ   r‡   r…   ú<module>r‹     s  ðØ 7Ð 7à "Ð "Ð "Ð "Ð "Ð "à ,Ð ,Ð ,Ð ,Ð ,Ð ,à @Ð @Ð @Ð @Ð @Ð @à !Ð !Ð !Ð !Ð !Ð !Ø *Ð *Ð *Ð *Ð *Ð *Ø CÐ CÐ CÐ CÐ CÐ CÐ CÐ CØ .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .ðð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð0ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð4ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð"ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð(ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð.ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð$ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ðð ð ð ð ð ð ð ð
 �7ÒÐØ€L€L€Lð=ð =ð =ð =ð €Eðð ð ðGð Gð Gð Gð Gˆ+ñ Gô Gð GðT"pð pð pð pð p�ñ pô pð pðfAð Að Að Að A�ñ Aô Að AðH4ð 4ð 4ð
E,ð E,ð E,ð E,ð E,Ð
˜kñ E,ô E,ð E,ðP*ð *ð *ð
Uð Uð Uð Uð Uˆ+ñ Uô Uð Uð Uð Ur‡   