ó
    Š*£hy ã                  ó  • S r SSKJr  SSKJr  SSKJr  SSKJr  SSK	J
r
  SSKJrJr  SSKJrJrJr  SS	KJrJrJrJr  SS
KJrJrJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)J*r*J+r+J,r,J-r-J.r.J/r/J0r0J1r1J2r2J3r3J4r4J5r5J6r6J7r7J8r8  SSK9J:r:J;r;J<r<J=r=J>r>J?r?J@r@JArAJBrBJCrCJDrDJErEJFrFJGrGJHrHJIrIJJrJJKrKJLrLJMrMJNrNJOrOJPrPJQrQJRrR  SSKSJTrTJUrUJVrVJWrWJXrXJYrYJZrZJ[r[J\r\J]r]J^r^J_r_J`r`JaraJbrb  SSKcJdrdJereJfrfJgrgJhrhJiriJjrjJkrkJlrlJmrm  SSKnJoroJprpJqrqJrrrJsrsJtrtJuru  SSKvJwrwJxrxJyryJzrz  SSK{J|r|J}r}J~r~JrJ€r€J�r�J‚r‚JƒrƒJ„r„J…r…J†r†  SSKJ‡r‡Jˆrˆ  \S:X  a  SSK‰r‰S rŠOSr‰S rŠ " S S\
5      r‹ " S S\‹5      rŒ " S S\‹5      r�S rŽ " S S\\
5      r�S r� " S  S!\
5      r‘g)"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                óŒ   • U R                   =(       d2    U R                  =(       d    U R                  =(       a    U R                  $ ©N)Úis_ZZÚis_QQÚis_FFÚ	_is_flint©ÚDs    ÚT/home/mande/repo/quber/.venv/lib/python3.13/site-packages/sympy/polys/polyclasses.pyÚ_supported_flint_domainr†   ‚   s'   € Ø�w‰w×<˜!Ÿ'™'×< Q§W¡W×%<°·±Ð<ó    c                ó   • g©NF© rƒ   s    r…   r†   r†   †   s   € Ør‡   c                  ó*  • \ rS rSr% SrSrS\S'   S\S'   SÔS	 jr\S
 5       r	\
S 5       rS r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       rS rS r\S 5       r\S 5       rS rS rS rS rS rS rSÕS jrSÕS jrS rS rS  r S! r!S" r"S# r#SÖS$ jr$S% r%S& r&SÔS' jr'SÔS( jr(SÔS) jr)SÔS* jr*S+ r+S, r,S- r-S. r.S/ r/S0 r0SÕS1 jr1SÕS2 jr2S3 r3S4 r4S5 r5S6 r6S7 r7S8 r8S9 r9S: r:S; r;S< r<S= r=S> r>S? r?S@ r@SA rASB rBSC rCSD rDSE rESF rFSG rGSH rHSI rISJ rJSK rKSL rLSM rMSN rNSO rOSP rPSQ rQSR rRSS rSST rTSU rUSV rVSW rWSX rXSY rYSZ rZS[ r[S\ r\S] r]SÖS^ jr^S_ r_S` r`Sa raSb rbSc rcSd rdSe reSf rfSg rgSh rhSi riSj rjSk rkS×Sl jrlSm rmS×Sn jrnSo roSÖSp jrpSq rqSr rrSs rsSt rtSu ruSv rvSw rwSx rxSy rySz rzS{ r{S| r|SÕS} jr}SÕS~ jr~S rS€ r€S� r�S‚ r‚Sƒ rƒS„ r„S… r…SØS† jr†S‡ r‡Sˆ rˆS‰ r‰SŠ rŠS‹ r‹SŒ rŒS� r�SŽ rŽS� r�S� r�S‘ r‘S’ r’S“ r“S” r”S• r•S– r–S— r—S˜ r˜S™ r™Sš ršS› r›Sœ rœS� r�Sž ržSŸ rŸS  r S¡ r¡S¢ r¢S£ r£SÕS¤ jr¤SÕS¥ jr¥S¦ r¦S§ r§SÙS¨ jr¨S© r©Sª rªS« r«S¬ r¬SÚS­ jr­S® r®SÛS¯ jr¯SÛS° jr°\
S± 5       r±\
S² 5       r²\
S³ 5       r³\
S´ 5       r´\
Sµ 5       rµ\
S¶ 5       r¶\
S· 5       r·\
S¸ 5       r¸\
S¹ 5       r¹\
Sº 5       rº\
S» 5       r»\
S¼ 5       r¼S½ r½S¾ r¾S¿ r¿SÀ rÀSÁ rÁSÂ rÂSÃ rÃSÄ rÄSÅ rÅSÆ rÆSÇ rÇSÈ rÈSÉ rÉSÊ rÊSË rËSÌ rÌSÕSÍ jrÍSÕSÎ jrÎSÏ rÏSÐ rÐSÑ rÑSÒ rÒSÓ rÓSrÔg)ÜÚDMPéŠ   ú)Dense Multivariate Polynomials over `K`. rŠ   ÚintÚlevr
   ÚdomNc                ó    • Uc  [        U5      u  pO,[        U[        5      (       d  [        S[	        U5      -  5      eU R                  XU5      $ )Nzexpected list, got %s)r   Ú
isinstanceÚlistr   ÚtypeÚnew©ÚclsÚrepr‘   r�   s       r…   Ú__new__ÚDMP.__new__’   sH   € à‰;Ü# CÓ(‰HˆC�Ü˜C¤×&Ñ&Ü Ð!8¼4À»9Ñ!DÓEÐEà�w‰w�s Ó%Ð%r‡   c                ó”   • [         b,  US:X  a&  [        U5      (       a  [        R                  XU5      $ [        R                  XU5      $ ©Nr   )r|   r†   Ú	DUP_FlintÚ_newÚ
DMP_Pythonr—   s       r…   r–   ÚDMP.new›   s>   € ô ÑØ�a‹xÔ3°C×8Ñ8Ü —~‘~ c°Ó4Ð4ä�‰˜s¨Ó-Ð-r‡   c                ó8   • [        SSSS9  U R                  5       $ )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™   ÚDMP.rep§   s'   € ô 	"ð #ð &,Ø'0ò		
ð �y‰y‹{Ðr‡   c                óü   • [         bt  [        U [        5      (       a_  U R                  S:X  aO  [	        U R
                  5      (       a5  [        R                  U R                  U R
                  U R                  5      $ U $ )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.
r   )	r|   r“   r    r�   r†   r‘   rž   r–   Ú_repr¦   s    r…   Úto_bestÚDMP.to_best¸   sW   € ô ÑÜ˜!œZ×(Ñ(¨Q¯U©U°a«ZÔ<SÐTU×TYÑTY×<ZÑ<ZÜ —}‘} Q§V¡V¨Q¯U©U°A·E±EÓ:Ð:àˆr‡   c                óŽ   ^^• [        T[        5      (       d   e[        U[        5      (       a  US:¼  d   eUU4S jmT" X5        g )Nr   c                ó¢   >• [        U [        5      (       d   eUS:X  a  [        U4S jU  5       5      (       d   eg U  H  nT" X!S-
  5        M     g )Nr   c              3  óF   >#   • U  H  nTR                  U5      v •  M     g 7fr~   )Úof_type)Ú.0Úcr‘   s     €r…   Ú	<genexpr>Ú;DMP._validate_args.<locals>.validate_rep.<locals>.<genexpr>Ì   s   øé € Ð7²3¨a˜3Ÿ;™; qŸ>˜>²3ùs   ƒ!é   )r“   r”   Úall)r™   r�   Úrr‘   Úvalidate_reps      €€r…   r¸   Ú(DMP._validate_args.<locals>.validate_repÉ   sJ   ø€ Ü˜c¤4×(Ñ(Ð(Ð(Ø�a‹xÜÔ7±3Ó7×7Ñ7Ð7Ñ7ã�AÙ  ¨!¡GÖ,ò r‡   )r“   r
   r�   )r˜   r™   r‘   r�   r¸   s     ` @r…   Ú_validate_argsÚDMP._validate_argsÄ   s>   ù€ ä˜#œv×&Ñ&Ð&Ð&Ü˜#œs×#Ñ#¨¨q«Ð0Ð0ö	-ñ 	�SÕr‡   c                ó>   • [        XU5      nU R                  XU5      $ r~   )r&   r–   ©r˜   r™   r�   r‘   s       r…   Ú	from_dictÚDMP.from_dictÓ   s   € ä˜C cÓ*ˆØ�w‰w�s Ó%Ð%r‡   c                ó<   • U R                  [        XSU5      X25      $ )zCCreate an instance of ``cls`` given a list of native coefficients. N)r–   r   r½   s       r…   Ú	from_listÚDMP.from_listØ   s   € ð �w‰w”{ 3¨T°3Ó7¸ÓBÐBr‡   c                ó:   • U R                  [        XU5      X25      $ )zBCreate an instance of ``cls`` given a list of SymPy coefficients. )r–   r   r½   s       r…   Úfrom_sympy_listÚDMP.from_sympy_listÝ   s   € ð �w‰w”~ c°Ó4°cÓ?Ð?r‡   c           
     óJ   • U " [        [        [        X5      5      5      XC5      $ r~   )Údictr”   Úzip)r˜   ÚmonomsÚcoeffsr�   r‘   s        r…   Úfrom_monoms_coeffsÚDMP.from_monoms_coeffsâ   s   € á”4œœS Ó0Ó1Ó2°CÓ=Ð=r‡   c                óâ  • U R                   U:X  a  U $ U R                  (       d  [        c  U R                  U5      $ [	        U [
        5      (       a@  [        U5      (       a  U R                  U5      $ U R                  5       R                  U5      $ [	        U [        5      (       a@  [        U5      (       a  U R                  U5      R                  5       $ U R                  U5      $ [        S5      e)z0Convert ``f`` to a ``DMP`` over the new domain. zunreachable code)r‘   r�   r|   Ú_convertr“   rž   r†   Úto_DMP_Pythonr    Úto_DUP_FlintÚRuntimeError©r§   r‘   s     r…   ÚconvertÚDMP.convertæ   s²   € à�5‰5�C‹<ØˆHØ�U�U”e‘mØ—:‘:˜c“?Ð"Ü˜œ9×%Ñ%Ü& s×+Ñ+Ø—z‘z #“Ð&à—‘Ó(×1Ñ1°#Ó6Ð6Ü˜œ:×&Ñ&Ü& s×+Ñ+Ø—z‘z #“×3Ñ3Ó5Ð5à—z‘z #“Ð&äÐ1Ó2Ð2r‡   c                ó   • [         er~   ©ÚNotImplementedErrorrÒ   s     r…   rÎ   ÚDMP._convertù   ó   € Ü!Ð!r‡   c                ó,   • [        [        U5      X!5      $ r~   )rŒ   r!   ©r˜   r�   r‘   s      r…   ÚzeroÚDMP.zeroü   s   € ä”8˜C“= #Ó+Ð+r‡   c                ó,   • [        [        X5      X!5      $ r~   )rŒ   r   rÛ   s      r…   ÚoneÚDMP.one   s   € ä”7˜3Ó$ cÓ/Ð/r‡   c                ó   • [         er~   rÖ   r¦   s    r…   Ú_oneÚDMP._one  rÙ   r‡   c                óv   • U R                   R                  < SU R                  5       < SU R                  < S3$ ©NÚ(ú, Ú))Ú	__class__Ú__name__r¥   r‘   r¦   s    r…   Ú__repr__ÚDMP.__repr__  s#   € Ø Ÿ{™{×3Ô3°Q·Y±Y¶[À!Ç%Ä%ÐHÐHr‡   c                óŒ   • [        U R                  R                  U R                  5       U R                  U R
                  45      $ r~   )Úhashré   rê   Úto_tupler�   r‘   r¦   s    r…   Ú__hash__ÚDMP.__hash__
  s.   € Ü�Q—[‘[×)Ñ)¨1¯:©:«<¸¿¹ÀÇÁÐFÓGÐGr‡   c                óP   • U R                  5       U R                  U R                  4$ r~   )r¥   r‘   r�   ©Úselfs    r…   Ú__getnewargs__ÚDMP.__getnewargs__  s   € Ø�|‰|‹~˜tŸx™x¨¯©Ð1Ð1r‡   c                ó   • [         e©z*Construct a new ground instance of ``f``. rÖ   ©r§   Úcoeffs     r…   Ú
ground_newÚDMP.ground_new  ó   € ä!Ð!r‡   c                óN  • [        U[        5      (       a  U R                  UR                  :w  a  [        SU < SU< 35      eU R                  UR                  :w  aG  U R                  R                  UR                  5      nU R                  U5      n UR                  U5      nX4$ ©z7Unify and return ``DMP`` instances of ``f`` and ``g``. úCannot unify ú with )r“   rŒ   r�   rz   r‘   ÚunifyrÓ   ©r§   Úgr‘   s      r…   Ú	unify_DMPÚDMP.unify_DMP  ss   € ä˜!œS×!Ñ! Q§U¡U¨a¯e©e£^Ý#ÃÂAÐ$FÓGÐGà�5‰5�A—E‘E‹>Ø—%‘%—+‘+˜aŸe™eÓ$ˆCØ—	‘	˜#“ˆAØ—	‘	˜#“ˆAàˆtˆr‡   c                ó^   • [        U R                  5       U R                  U R                  US9$ )úAConvert ``f`` to a dict representation with native coefficients. ©rÜ   )r'   r¥   r�   r‘   )r§   rÜ   s     r…   Úto_dictÚDMP.to_dict   s!   € ä˜1Ÿ9™9›;¨¯©¨q¯u©u¸4Ñ@Ð@r‡   c                ó�   • U R                  US9nUR                  5        H"  u  p4U R                  R                  U5      X#'   M$     U$ )ú@Convert ``f`` to a dict representation with SymPy coefficients. r	  )r
  Úitemsr‘   Úto_sympy)r§   rÜ   r™   ÚkÚvs        r…   Úto_sympy_dictÚDMP.to_sympy_dict$  s?   € à�i‰i˜TˆiÐ"ˆà—I‘I–K‰DˆAØ—U‘U—^‘^ AÓ&ˆC‹Fñ  ð ˆ
r‡   c                ó@   ^ ^• U U4S jmT" T R                  5       5      $ )ú@Convert ``f`` to a list representation with SymPy coefficients. c                óÎ   >• / nU  H[  n[        U[        5      (       a  UR                  T" U5      5        M1  UR                  TR                  R	                  U5      5        M]     U$ r~   )r“   r”   Úappendr‘   r  )r™   ÚoutÚvalr§   Úsympify_nested_lists      €€r…   r  Ú.DMP.to_sympy_list.<locals>.sympify_nested_list/  sQ   ø€ ØˆCÛ�Ü˜c¤4×(Ñ(Ø—J‘JÑ2°3Ó7Ö8à—J‘J˜qŸu™uŸ~™~¨cÓ2Ö3ñ	 ð
 ˆJr‡   )r¥   )r§   r  s   `@r…   Úto_sympy_listÚDMP.to_sympy_list-  s   ù€ ö	ñ # 1§9¡9£;Ó/Ð/r‡   c                ó   • [         e©úAConvert ``f`` to a list representation with native coefficients. rÖ   r¦   s    r…   r¥   ÚDMP.to_list:  rý   r‡   c                ó   • [         e©z`
Convert ``f`` to a tuple representation with native coefficients.

This is needed for hashing.
rÖ   r¦   s    r…   rï   ÚDMP.to_tuple>  s
   € ô "Ð!r‡   c                óT   • U R                  U R                  R                  5       5      $ )zMake the ground domain a ring. )rÓ   r‘   Úget_ringr¦   s    r…   Úto_ringÚDMP.to_ringF  s   € à�y‰y˜Ÿ™Ÿ™Ó)Ó*Ð*r‡   c                óT   • U R                  U R                  R                  5       5      $ )z Make the ground domain a field. )rÓ   r‘   Ú	get_fieldr¦   s    r…   Úto_fieldÚDMP.to_fieldJ  ó   € à�y‰y˜Ÿ™Ÿ™Ó*Ó+Ð+r‡   c                óT   • U R                  U R                  R                  5       5      $ )zMake the ground domain exact. )rÓ   r‘   Ú	get_exactr¦   s    r…   Úto_exactÚDMP.to_exactN  r-  r‡   c                óx   • U R                   (       d  U(       d  U R                  X5      $ U R                  XU5      $ ©z1Take a continuous subsequence of terms of ``f``. )r�   Ú_sliceÚ
_slice_lev©r§   ÚmÚnÚjs       r…   ÚsliceÚ	DMP.sliceR  s*   € à�u�užQØ—8‘8˜A“>Ð!à—<‘<  aÓ(Ð(r‡   c                ó   • [         er~   rÖ   )r§   r7  r8  s      r…   r4  Ú
DMP._sliceY  rÙ   r‡   c                ó   • [         er~   rÖ   r6  s       r…   r5  ÚDMP._slice_lev\  rÙ   r‡   c                óV   • U R                  US9 VVs/ s H  u  p#UPM	     snn$ s  snnf )z;Returns all non-zero coefficients from ``f`` in lex order. ©Úorder©Úterms)r§   rB  Ú_r²   s       r…   rÊ   Ú
DMP.coeffs_  ó)   € à Ÿw™w¨U˜wÑ3Ô5Ò3‘t�q“Ñ3Ò5Ð5ùÓ5ó   “%c                óV   • U R                  US9 VVs/ s H  u  p#UPM	     snn$ s  snnf )z8Returns all non-zero monomials from ``f`` in lex order. rA  rC  )r§   rB  r7  rE  s       r…   rÉ   Ú
DMP.monomsc  rG  rH  c                ó–   • U R                   (       a*  SU R                  S-   -  nX R                  R                  4/$ U R	                  US9$ )ú4Returns all non-zero terms from ``f`` in lex order. ©r   rµ   rA  )Úis_zeror�   r‘   rÜ   Ú_terms)r§   rB  Ú
zero_monoms      r…   rD  Ú	DMP.termsg  s@   € à�9�9Ø˜qŸu™u q™yÑ)ˆJØ§¡§¡Ð,Ð-Ð-à—8‘8 %�8Ð(Ð(r‡   c                ó   • [         er~   rÖ   ©r§   rB  s     r…   rO  Ú
DMP._termso  rÙ   r‡   c                ó¨   • U R                   (       a  [        S5      eU (       d  U R                  R                  /$ [	        U R                  5       5      $ )z%Returns all coefficients from ``f``. ú&multivariate polynomials not supported)r�   r{   r‘   rÜ   r”   r¥   r¦   s    r…   Ú
all_coeffsÚDMP.all_coeffsr  s9   € à�5�5Ü!Ð"JÓKÐKæØ—E‘E—J‘J�<Ðä˜Ÿ	™	›Ó$Ð$r‡   c                óÚ   • U R                   (       a  [        S5      eU R                  5       nUS:  a  S/$ [        U R	                  5       5       VVs/ s H
  u  p#X-
  4PM     snn$ s  snnf )z"Returns all monomials from ``f``. rV  r   rM  )r�   r{   ÚdegreeÚ	enumerater¥   ©r§   r8  Úir²   s       r…   Ú
all_monomsÚDMP.all_monoms|  sY   € à�5�5Ü!Ð"JÓKÐKà�H‰H‹Jˆàˆq‹5Ø�6ˆMä*3°A·I±I³KÔ*@ÔBÒ*@¡$ !�a‘e“XÑ*@ÒBÐBùÓBs   ÁA'c                ó
  • U R                   (       a  [        S5      eU R                  5       nUS:  a  SU R                  R                  4/$ [        U R                  5       5       VVs/ s H  u  p#X-
  4U4PM     snn$ s  snnf )z Returns all terms from a ``f``. rV  r   rM  )r�   r{   rZ  r‘   rÜ   r[  r¥   r\  s       r…   Ú	all_termsÚDMP.all_termsˆ  sl   € à�5�5Ü!Ð"JÓKÐKà�H‰H‹Jˆàˆq‹5Ø˜1Ÿ5™5Ÿ:™:Ð&Ð'Ð'ä/8¸¿¹»Ô/EÔGÒ/E¡t q�q‘u�h “]Ñ/EÒGÐGùÓGs   Á(A?c                ó>   • U R                  5       R                  5       $ ©z-Convert algebraic coefficients to rationals. )Ú_liftr«   r¦   s    r…   ÚliftÚDMP.lift”  s   € à�w‰w‹y× Ñ Ó"Ð"r‡   c                ó   • [         er~   rÖ   r¦   s    r…   re  Ú	DMP._lift˜  rÙ   r‡   c                ó   • [         e©ú2Reduce degree of `f` by mapping `x_i^m` to `y_i`. rÖ   r¦   s    r…   ÚdeflateÚDMP.deflate›  rý   r‡   c                ó   • [         e©ú,Inject ground domain generators into ``f``. rÖ   ©r§   Úfronts     r…   ÚinjectÚ
DMP.injectŸ  rý   r‡   c                ó   • [         e©ú2Eject selected generators into the ground domain. rÖ   ©r§   r‘   rs  s      r…   ÚejectÚ	DMP.eject£  rý   r‡   c                óH   • U R                  5       u  pXR                  5       4$ )a(  
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…   ÚexcludeÚDMP.exclude§  s   € ð  �z‰z‹|‰ˆØ—)‘)“+ˆ~Ðr‡   c                ó   • [         er~   rÖ   r¦   s    r…   r}  ÚDMP._excludeº  rÙ   r‡   c                ó$   • U R                  U5      $ )ay  
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…   ÚpermuteÚDMP.permute½  s   € ð" �z‰z˜!‹}Ðr‡   c                ó   • [         er~   rÖ   r‡  s     r…   r†  ÚDMP._permuteÐ  rÙ   r‡   c                ó   • [         e©z/Remove GCD of terms from the polynomial ``f``. rÖ   r¦   s    r…   Ú	terms_gcdÚDMP.terms_gcdÓ  rý   r‡   c                ó   • [         e©z)Make all coefficients in ``f`` positive. rÖ   r¦   s    r…   ÚabsÚDMP.abs×  rý   r‡   c                ó   • [         e©ú"Negate all coefficients in ``f``. rÖ   r¦   s    r…   ÚnegÚDMP.negÛ  rý   r‡   c                óV   • U R                  U R                  R                  U5      5      $ ©z.Add an element of the ground domain to ``f``. )Ú_add_groundr‘   rÓ   ©r§   r²   s     r…   Ú
add_groundÚDMP.add_groundß  ó   € à�}‰}˜QŸU™UŸ]™]¨1Ó-Ó.Ð.r‡   c                óV   • U R                  U R                  R                  U5      5      $ ©z5Subtract an element of the ground domain from ``f``. )Ú_sub_groundr‘   rÓ   r�  s     r…   Ú
sub_groundÚDMP.sub_groundã  r   r‡   c                óV   • U R                  U R                  R                  U5      5      $ ©z5Multiply ``f`` by a an element of the ground domain. )Ú_mul_groundr‘   rÓ   r�  s     r…   Ú
mul_groundÚDMP.mul_groundç  r   r‡   c                óV   • U R                  U R                  R                  U5      5      $ ©z8Quotient of ``f`` by a an element of the ground domain. )Ú_quo_groundr‘   rÓ   r�  s     r…   Ú
quo_groundÚDMP.quo_groundë  r   r‡   c                óV   • U R                  U R                  R                  U5      5      $ ©z>Exact quotient of ``f`` by a an element of the ground domain. )Ú_exquo_groundr‘   rÓ   r�  s     r…   Úexquo_groundÚDMP.exquo_groundï  s   € à�‰˜qŸu™uŸ}™}¨QÓ/Ó0Ð0r‡   c                óJ   • U R                  U5      u  p#UR                  U5      $ ©z2Add two multivariate polynomials ``f`` and ``g``. )r  Ú_add©r§   r  r€  ÚGs       r…   ÚaddÚDMP.addó  ó   € à�{‰{˜1‹~‰ˆØ�v‰v�a‹yÐr‡   c                óJ   • U R                  U5      u  p#UR                  U5      $ ©z7Subtract two multivariate polynomials ``f`` and ``g``. )r  Ú_subr¸  s       r…   ÚsubÚDMP.subø  r¼  r‡   c                óJ   • U R                  U5      u  p#UR                  U5      $ ©z7Multiply two multivariate polynomials ``f`` and ``g``. )r  Ú_mulr¸  s       r…   ÚmulÚDMP.mulý  r¼  r‡   c                ó"   • U R                  5       $ ©ú(Square a multivariate polynomial ``f``. )Ú_sqrr¦   s    r…   ÚsqrÚDMP.sqr  s   € à�v‰v‹xˆr‡   c                ó|   • [        U[        5      (       d  [        S[        U5      -  5      eU R	                  U5      $ )ú+Raise ``f`` to a non-negative power ``n``. ú``int`` expected, got %s)r“   r�   Ú	TypeErrorr•   Ú_pow©r§   r8  s     r…   ÚpowÚDMP.pow  s2   € ä˜!œS×!Ñ!ÜÐ6¼¸a»Ñ@ÓAÐAØ�v‰v�a‹yÐr‡   c                óJ   • U R                  U5      u  p#UR                  U5      $ ©ú/Polynomial pseudo-division of ``f`` and ``g``. )r  Ú_pdivr¸  s       r…   ÚpdivÚDMP.pdiv  ó   € à�{‰{˜1‹~‰ˆØ�w‰w�q‹zÐr‡   c                óJ   • U R                  U5      u  p#UR                  U5      $ ©ú0Polynomial pseudo-remainder of ``f`` and ``g``. )r  Ú_premr¸  s       r…   ÚpremÚDMP.prem  rÛ  r‡   c                óJ   • U R                  U5      u  p#UR                  U5      $ ©ú/Polynomial pseudo-quotient of ``f`` and ``g``. )r  Ú_pquor¸  s       r…   ÚpquoÚDMP.pquo  rÛ  r‡   c                óJ   • U R                  U5      u  p#UR                  U5      $ ©ú5Polynomial exact pseudo-quotient of ``f`` and ``g``. )r  Ú_pexquor¸  s       r…   ÚpexquoÚ
DMP.pexquo  s   € à�{‰{˜1‹~‰ˆØ�y‰y˜‹|Ðr‡   c                óJ   • U R                  U5      u  p#UR                  U5      $ ©z7Polynomial division with remainder of ``f`` and ``g``. )r  Ú_divr¸  s       r…   ÚdivÚDMP.div   r¼  r‡   c                óJ   • U R                  U5      u  p#UR                  U5      $ ©z2Computes polynomial remainder of ``f`` and ``g``. )r  Ú_remr¸  s       r…   ÚremÚDMP.rem%  r¼  r‡   c                óJ   • U R                  U5      u  p#UR                  U5      $ ©z1Computes polynomial quotient of ``f`` and ``g``. )r  Ú_quor¸  s       r…   ÚquoÚDMP.quo*  r¼  r‡   c                óJ   • U R                  U5      u  p#UR                  U5      $ ©z7Computes polynomial exact quotient of ``f`` and ``g``. )r  Ú_exquor¸  s       r…   ÚexquoÚ	DMP.exquo/  s   € à�{‰{˜1‹~‰ˆØ�x‰x˜‹{Ðr‡   c                ó   • [         er~   rÖ   r�  s     r…   rœ  ÚDMP._add_ground4  rÙ   r‡   c                ó   • [         er~   rÖ   r�  s     r…   r£  ÚDMP._sub_ground7  rÙ   r‡   c                ó   • [         er~   rÖ   r�  s     r…   r¨  ÚDMP._mul_ground:  rÙ   r‡   c                ó   • [         er~   rÖ   r�  s     r…   r­  ÚDMP._quo_ground=  rÙ   r‡   c                ó   • [         er~   rÖ   r�  s     r…   r²  ÚDMP._exquo_ground@  rÙ   r‡   c                ó   • [         er~   rÖ   ©r§   r  s     r…   r·  ÚDMP._addC  rÙ   r‡   c                ó   • [         er~   rÖ   r  s     r…   r¿  ÚDMP._subF  rÙ   r‡   c                ó   • [         er~   rÖ   r  s     r…   rÄ  ÚDMP._mulI  rÙ   r‡   c                ó   • [         er~   rÖ   r¦   s    r…   rÊ  ÚDMP._sqrL  rÙ   r‡   c                ó   • [         er~   rÖ   rÒ  s     r…   rÑ  ÚDMP._powO  rÙ   r‡   c                ó   • [         er~   rÖ   r  s     r…   rØ  Ú	DMP._pdivR  rÙ   r‡   c                ó   • [         er~   rÖ   r  s     r…   rß  Ú	DMP._premU  rÙ   r‡   c                ó   • [         er~   rÖ   r  s     r…   rå  Ú	DMP._pquoX  rÙ   r‡   c                ó   • [         er~   rÖ   r  s     r…   rë  ÚDMP._pexquo[  rÙ   r‡   c                ó   • [         er~   rÖ   r  s     r…   rð  ÚDMP._div^  rÙ   r‡   c                ó   • [         er~   rÖ   r  s     r…   rõ  ÚDMP._rema  rÙ   r‡   c                ó   • [         er~   rÖ   r  s     r…   rú  ÚDMP._quod  rÙ   r‡   c                ó   • [         er~   rÖ   r  s     r…   rÿ  Ú
DMP._exquog  rÙ   r‡   c                ó|   • [        U[        5      (       d  [        S[        U5      -  5      eU R	                  U5      $ )ú0Returns the leading degree of ``f`` in ``x_j``. rÏ  )r“   r�   rÐ  r•   Ú_degree©r§   r9  s     r…   rZ  Ú
DMP.degreej  s2   € ä˜!œS×!Ñ!ÜÐ6¼¸a»Ñ@ÓAÐAà�y‰y˜‹|Ðr‡   c                ó   • [         er~   rÖ   r*  s     r…   r)  ÚDMP._degreeq  rÙ   r‡   c                ó   • [         e©z$Returns a list of degrees of ``f``. rÖ   r¦   s    r…   Údegree_listÚDMP.degree_listt  rý   r‡   c                ó   • [         e©ú#Returns the total degree of ``f``. rÖ   r¦   s    r…   Útotal_degreeÚDMP.total_degreex  rý   r‡   c                ó¼  • U R                  5       n0 nU[        U R                  5       S   S   5      :H  nU R                  5        H_  n[        US   5      nXb:  a  X&-
  nOSnU(       a  US   X5S   U4-   '   M4  [	        US   5      nX�==   U-  ss'   US   U[        U5      '   Ma     [        R                  X0R                  [        U5      -   U R                  5      $ )z&Return homogeneous polynomial of ``f``r   rµ   )r5  ÚlenrD  Úsumr”   ÚtuplerŒ   r¾   r�   r�   r‘   )	r§   ÚsÚtdÚresultÚ
new_symbolÚtermÚdr]  Úls	            r…   Ú
homogenizeÚDMP.homogenize|  sÅ   € à�^‰^ÓˆØˆØœ3˜qŸw™w›y¨™|¨A™Ó/Ñ/ˆ
Ø—G‘G–IˆDÜ�D˜‘G“ˆAØ‹vØ‘F‘à�ÞØ)-¨a©�˜A‘w ! ‘~Ó&ä˜˜a™“M�Ø“˜‘	“Ø#'¨¡7�”u˜Q“xÓ ñ ô �}‰}˜V§U¡U¬S°«_Ñ%<¸a¿e¹eÓDÐDr‡   c                ó¨   • U R                   (       a  [        * $ U R                  5       n[        US   5      nU H  n[        U5      nXB:w  d  M    g   U$ )z(Returns the homogeneous order of ``f``. r   N)rN  r   rÉ   r9  )r§   rÉ   ÚtdegÚmonomÚ_tdegs        r…   Úhomogeneous_orderÚDMP.homogeneous_order�  sJ   € à�9�9Ü�3ˆJà—‘“ˆÜ�6˜!‘9‹~ˆãˆEÜ˜“JˆEà�}Ùñ	 ð ˆr‡   c                ó   • [         e©z*Returns the leading coefficient of ``f``. rÖ   r¦   s    r…   ÚLCÚDMP.LCŸ  rý   r‡   c                ó   • [         e©ú+Returns the trailing coefficient of ``f``. rÖ   r¦   s    r…   ÚTCÚDMP.TC£  rý   r‡   c                óh   • [        S U 5       5      (       a  U R                  U5      $ [        S5      e)ú+Returns the ``n``-th coefficient of ``f``. c              3  óB   #   • U  H  n[        U[        5      v •  M     g 7fr~   )r“   r�   )r±   r8  s     r…   r³   ÚDMP.nth.<locals>.<genexpr>©  s   é € Ð-ª1 aŒz˜!œS×!Ð!ª1ùs   ‚za sequence of integers expected)r¶   Ú_nthrÐ  ©r§   ÚNs     r…   ÚnthÚDMP.nth§  s-   € äÑ-©1Ó-×-Ñ-Ø—6‘6˜!“9ÐäÐ=Ó>Ð>r‡   c                ó   • [         er~   rÖ   rX  s     r…   rW  ÚDMP._nth®  rÙ   r‡   c                ó   • [         e©zReturns maximum norm of ``f``. rÖ   r¦   s    r…   Úmax_normÚDMP.max_norm±  rý   r‡   c                ó   • [         e©zReturns l1 norm of ``f``. rÖ   r¦   s    r…   Úl1_normÚDMP.l1_normµ  rý   r‡   c                ó   • [         e©z!Return squared l2 norm of ``f``. rÖ   r¦   s    r…   Úl2_norm_squaredÚDMP.l2_norm_squared¹  rý   r‡   c                ó   • [         e©z0Clear denominators, but keep the ground domain. rÖ   r¦   s    r…   Úclear_denomsÚDMP.clear_denoms½  rý   r‡   c                óÔ   • [        U[        5      (       d  [        S[        U5      -  5      e[        U[        5      (       d  [        S[        U5      -  5      eU R	                  X5      $ )úEComputes the ``m``-th order indefinite integral of ``f`` in ``x_j``. rÏ  )r“   r�   rÐ  r•   Ú
_integrate©r§   r7  r9  s      r…   Ú	integrateÚDMP.integrateÁ  sU   € ä˜!œS×!Ñ!ÜÐ6¼¸a»Ñ@ÓAÐAä˜!œS×!Ñ!ÜÐ6¼¸a»Ñ@ÓAÐAà�|‰|˜AÓ!Ð!r‡   c                ó   • [         er~   rÖ   rq  s      r…   rp  ÚDMP._integrateË  rÙ   r‡   c                óÔ   • [        U[        5      (       d  [        S[        U5      -  5      e[        U[        5      (       d  [        S[        U5      -  5      eU R	                  X5      $ )ú<Computes the ``m``-th order derivative of ``f`` in ``x_j``. rÏ  )r“   r�   rÐ  r•   Ú_diffrq  s      r…   ÚdiffÚDMP.diffÎ  sT   € ä˜!œS×!Ñ!ÜÐ6¼¸a»Ñ@ÓAÐAä˜!œS×!Ñ!ÜÐ6¼¸a»Ñ@ÓAÐAà�w‰w�q‹}Ðr‡   c                ó   • [         er~   rÖ   rq  s      r…   rx  Ú	DMP._diffØ  rÙ   r‡   c                ó  • [        U[        5      (       d  [        S[        U5      -  5      eSUs=::  a  U R                  ::  d  O  [        SU-  5      eU R                  (       a  U R                  X5      $ U R                  U5      $ )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§   Úar9  s      r…   ÚevalÚDMP.evalÛ  sh   € ä˜!œS×!Ñ!ÜÐ6¼¸a»Ñ@ÓAÐAØ�q•/˜AŸE™E•/ÜÐ8¸1Ñ<Ó=Ð=à�5�5Ø—;‘;˜qÓ$Ð$à—7‘7˜1“:Ðr‡   c                ó   • [         er~   rÖ   ©r§   r‚  s     r…   r€  Ú	DMP._evalç  rÙ   r‡   c                ó   • [         er~   rÖ   r�  s      r…   r  ÚDMP._eval_levê  rÙ   r‡   c                ó‚   • U R                  U5      u  p#UR                  (       a  [        S5      eUR                  U5      $ )ú2Half extended Euclidean algorithm, if univariate. úunivariate polynomial expected)r  r�   r~  Ú_half_gcdexr¸  s       r…   Ú
half_gcdexÚDMP.half_gcdexí  s3   € à�{‰{˜1‹~‰ˆà�5�5ÜÐ=Ó>Ð>à�}‰}˜QÓÐr‡   c                ó   • [         er~   rÖ   r  s     r…   r�  ÚDMP._half_gcdexö  rÙ   r‡   c                óÎ   • U R                  U5      u  p#UR                  (       a  [        S5      eUR                  R                  (       d  [        S5      eUR                  U5      $ )ú-Extended Euclidean algorithm, if univariate. rŒ  zground domain must be a field)r  r�   r~  r‘   Úis_Fieldr   Ú_gcdexr¸  s       r…   ÚgcdexÚ	DMP.gcdexù  sI   € à�{‰{˜1‹~‰ˆà�5�5ÜÐ=Ó>Ð>à�u‰u�~�~ÜÐ=Ó>Ð>à�x‰x˜‹{Ðr‡   c                ó   • [         er~   rÖ   r  s     r…   r•  Ú
DMP._gcdex  rÙ   r‡   c                ó‚   • U R                  U5      u  p#UR                  (       a  [        S5      eUR                  U5      $ )ú(Invert ``f`` modulo ``g``, if possible. rŒ  )r  r�   r~  Ú_invertr¸  s       r…   ÚinvertÚ
DMP.invert  s2   € à�{‰{˜1‹~‰ˆà�5�5ÜÐ=Ó>Ð>à�y‰y˜‹|Ðr‡   c                ó   • [         er~   rÖ   r  s     r…   rœ  ÚDMP._invert  rÙ   r‡   c                ó\   • U R                   (       a  [        S5      eU R                  U5      $ )ú"Compute ``f**(-1)`` mod ``x**n``. rŒ  )r�   r~  Ú_revertrÒ  s     r…   ÚrevertÚ
DMP.revert  s#   € à�5�5ÜÐ=Ó>Ð>à�y‰y˜‹|Ðr‡   c                ó   • [         er~   rÖ   rÒ  s     r…   r£  ÚDMP._revert  rÙ   r‡   c                óJ   • U R                  U5      u  p#UR                  U5      $ ©z7Computes subresultant PRS sequence of ``f`` and ``g``. )r  Ú_subresultantsr¸  s       r…   ÚsubresultantsÚDMP.subresultants  s"   € à�{‰{˜1‹~‰ˆØ×Ñ Ó"Ð"r‡   c                ó   • [         er~   rÖ   r  s     r…   rª  ÚDMP._subresultants#  rÙ   r‡   c                óz   • U R                  U5      u  p4U(       a  UR                  U5      $ UR                  U5      $ ©ú/Computes resultant of ``f`` and ``g`` via PRS. )r  Ú_resultant_includePRSÚ
_resultant)r§   r  Ú
includePRSr€  r¹  s        r…   Ú	resultantÚDMP.resultant&  s3   € à�{‰{˜1‹~‰ˆÞØ×*Ñ*¨1Ó-Ð-à—<‘< “?Ð"r‡   c                ó   • [         er~   rÖ   )r§   r  r´  s      r…   r³  ÚDMP._resultant.  rÙ   r‡   c                ó   • [         e©ú Computes discriminant of ``f``. rÖ   r¦   s    r…   ÚdiscriminantÚDMP.discriminant1  rý   r‡   c                óJ   • U R                  U5      u  p#UR                  U5      $ ©z4Returns GCD of ``f`` and ``g`` and their cofactors. )r  Ú
_cofactorsr¸  s       r…   Ú	cofactorsÚDMP.cofactors5  s   € à�{‰{˜1‹~‰ˆØ�|‰|˜A‹Ðr‡   c                ó   • [         er~   rÖ   r  s     r…   rÀ  ÚDMP._cofactors:  rÙ   r‡   c                óJ   • U R                  U5      u  p#UR                  U5      $ ©z+Returns polynomial GCD of ``f`` and ``g``. )r  Ú_gcdr¸  s       r…   ÚgcdÚDMP.gcd=  r¼  r‡   c                ó   • [         er~   rÖ   r  s     r…   rÇ  ÚDMP._gcdB  rÙ   r‡   c                óJ   • U R                  U5      u  p#UR                  U5      $ ©ú+Returns polynomial LCM of ``f`` and ``g``. )r  Ú_lcmr¸  s       r…   ÚlcmÚDMP.lcmE  r¼  r‡   c                ó   • [         er~   rÖ   r  s     r…   rÏ  ÚDMP._lcmJ  rÙ   r‡   c                óz   • U R                  U5      u  p4U(       a  UR                  U5      $ UR                  U5      $ ©ú6Cancel common factors in a rational function ``f/g``. )r  Ú_cancel_includeÚ_cancel)r§   r  Úincluder€  r¹  s        r…   ÚcancelÚ
DMP.cancelM  s3   € à�{‰{˜1‹~‰ˆæØ×$Ñ$ QÓ'Ð'à—9‘9˜Q“<Ðr‡   c                ó   • [         er~   rÖ   r  s     r…   rØ  ÚDMP._cancelV  rÙ   r‡   c                ó   • [         er~   rÖ   r  s     r…   r×  ÚDMP._cancel_includeY  rÙ   r‡   c                óV   • U R                  U R                  R                  U5      5      $ ©z&Reduce ``f`` modulo a constant ``p``. )Ú_truncr‘   rÓ   ©r§   Úps     r…   ÚtruncÚ	DMP.trunc\  s   € à�x‰x˜Ÿ™Ÿ™ aÓ(Ó)Ð)r‡   c                ó   • [         er~   rÖ   rã  s     r…   râ  Ú
DMP._trunc`  rÙ   r‡   c                ó   • [         e©z'Divides all coefficients by ``LC(f)``. rÖ   r¦   s    r…   ÚmonicÚ	DMP.monicc  rý   r‡   c                ó   • [         e©z(Returns GCD of polynomial coefficients. rÖ   r¦   s    r…   ÚcontentÚDMP.contentg  rý   r‡   c                ó   • [         e©z/Returns content and a primitive form of ``f``. rÖ   r¦   s    r…   Ú	primitiveÚDMP.primitivek  rý   r‡   c                óJ   • U R                  U5      u  p#UR                  U5      $ ©z4Computes functional composition of ``f`` and ``g``. )r  Ú_composer¸  s       r…   ÚcomposeÚDMP.composeo  s   € à�{‰{˜1‹~‰ˆØ�z‰z˜!‹}Ðr‡   c                ó   • [         er~   rÖ   r  s     r…   r÷  ÚDMP._composet  rÙ   r‡   c                óZ   • U R                   (       a  [        S5      eU R                  5       $ )ú,Computes functional decomposition of ``f``. rŒ  )r�   r~  Ú
_decomposer¦   s    r…   Ú	decomposeÚDMP.decomposew  s!   € à�5�5ÜÐ=Ó>Ð>à�|‰|‹~Ðr‡   c                ó   • [         er~   rÖ   r¦   s    r…   rþ  ÚDMP._decompose~  rÙ   r‡   c                óŽ   • U R                   (       a  [        S5      eU R                  U R                  R	                  U5      5      $ )ú/Efficiently compute Taylor shift ``f(x + a)``. rŒ  )r�   r~  Ú_shiftr‘   rÓ   r†  s     r…   ÚshiftÚ	DMP.shift�  s1   € à�5�5ÜÐ=Ó>Ð>à�x‰x˜Ÿ™Ÿ™ aÓ(Ó)Ð)r‡   c                ó‚   • U Vs/ s H  o R                   R                  U5      PM     nnU R                  U5      $ s  snf ©z/Efficiently compute Taylor shift ``f(X + A)``. )r‘   rÓ   Ú_shift_list)r§   r‚  Úais      r…   Ú
shift_listÚDMP.shift_listˆ  s5   € á)*Ó+ª 2�U‰U�]‰]˜2Ö©ˆÐ+Ø�}‰}˜QÓÐùò ,s   …$<c                ó   • [         er~   rÖ   r†  s     r…   r  Ú
DMP._shift�  rÙ   r‡   c                óÎ   • U R                   (       a  [        S5      eUR                  U5      u  p4U R                  U5      u  pSUR                  U5      u  pTUR                  X45      $ )ú5Evaluate functional transformation ``q**n * f(p/q)``.rŒ  )r�   r~  r  Ú
_transform)r§   rä  Úqrˆ  ÚQr€  s         r…   Ú	transformÚDMP.transform�  sQ   € à�5�5ÜÐ=Ó>Ð>à�{‰{˜1‹~‰ˆØ�{‰{˜1‹~‰ˆØ�{‰{˜1‹~‰ˆà�|‰|˜AÓ!Ð!r‡   c                ó   • [         er~   rÖ   ©r§   rä  r  s      r…   r  ÚDMP._transform›  rÙ   r‡   c                óZ   • U R                   (       a  [        S5      eU R                  5       $ )ú&Computes the Sturm sequence of ``f``. rŒ  )r�   r~  Ú_sturmr¦   s    r…   ÚsturmÚ	DMP.sturmž  s!   € à�5�5ÜÐ=Ó>Ð>à�x‰x‹zÐr‡   c                ó   • [         er~   rÖ   r¦   s    r…   r  Ú
DMP._sturm¥  rÙ   r‡   c                óZ   • U R                   (       a  [        S5      eU R                  5       $ )ú7Computes the Cauchy upper bound on the roots of ``f``. rŒ  )r�   r~  Ú_cauchy_upper_boundr¦   s    r…   Úcauchy_upper_boundÚDMP.cauchy_upper_bound¨  ó$   € à�5�5ÜÐ=Ó>Ð>à×$Ñ$Ó&Ð&r‡   c                ó   • [         er~   rÖ   r¦   s    r…   r#  ÚDMP._cauchy_upper_bound¯  rÙ   r‡   c                óZ   • U R                   (       a  [        S5      eU R                  5       $ )ú?Computes the Cauchy lower bound on the nonzero roots of ``f``. rŒ  )r�   r~  Ú_cauchy_lower_boundr¦   s    r…   Úcauchy_lower_boundÚDMP.cauchy_lower_bound²  r&  r‡   c                ó   • [         er~   rÖ   r¦   s    r…   r+  ÚDMP._cauchy_lower_bound¹  rÙ   r‡   c                óZ   • U R                   (       a  [        S5      eU R                  5       $ )úBComputes the squared Mignotte bound on root separations of ``f``. rŒ  )r�   r~  Ú_mignotte_sep_bound_squaredr¦   s    r…   Úmignotte_sep_bound_squaredÚDMP.mignotte_sep_bound_squared¼  s$   € à�5�5ÜÐ=Ó>Ð>à×,Ñ,Ó.Ð.r‡   c                ó   • [         er~   rÖ   r¦   s    r…   r2  ÚDMP._mignotte_sep_bound_squaredÃ  rÙ   r‡   c                óZ   • U R                   (       a  [        S5      eU R                  5       $ )ú4Computes greatest factorial factorization of ``f``. rŒ  )r�   r~  Ú	_gff_listr¦   s    r…   Úgff_listÚDMP.gff_listÆ  s!   € à�5�5ÜÐ=Ó>Ð>à�{‰{‹}Ðr‡   c                ó   • [         er~   rÖ   r¦   s    r…   r9  ÚDMP._gff_listÍ  rÙ   r‡   c                ó   • [         e©zComputes ``Norm(f)``.rÖ   r¦   s    r…   ÚnormÚDMP.normÐ  rý   r‡   c                ó   • [         e©z$Computes square-free norm of ``f``. rÖ   r¦   s    r…   Úsqf_normÚDMP.sqf_normÔ  rý   r‡   c                ó   • [         e©z$Computes square-free part of ``f``. rÖ   r¦   s    r…   Úsqf_partÚDMP.sqf_partØ  rý   r‡   c                ó   • [         e©ú0Returns a list of square-free factors of ``f``. rÖ   ©r§   r¶   s     r…   Úsqf_listÚDMP.sqf_listÜ  rý   r‡   c                ó   • [         erK  rÖ   rM  s     r…   Úsqf_list_includeÚDMP.sqf_list_includeà  rý   r‡   c                ó   • [         e©ú0Returns a list of irreducible factors of ``f``. rÖ   r¦   s    r…   Úfactor_listÚDMP.factor_listä  rý   r‡   c                ó   • [         erT  rÖ   r¦   s    r…   Úfactor_list_includeÚDMP.factor_list_includeè  rý   r‡   c                ó  • U R                   (       a  [        S5      eU(       a  U(       a  U R                  X#XES9$ U(       a  U(       d  U R                  X#XES9$ U(       d  U(       a  U R	                  X#XES9$ U R                  X#XES9$ )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…   Ú	intervalsÚDMP.intervalsì  s|   € à�5�5Ü!Ð"UÓVÐVæ–3Ø×+Ñ+°À#Ð+ÐQÐQÞžØ×'Ñ'¨C¸cÐ'ÐMÐMÞžØ×,Ñ,°À3Ð,ÐRÐRà×(Ñ(¨S¸sÐ(ÐNÐNr‡   c                ó   • [         er~   rÖ   ©r§   r]  r^  r_  r`  s        r…   rb  ÚDMP._isolate_all_rootsú  rÙ   r‡   c                ó   • [         er~   rÖ   ri  s        r…   ra  ÚDMP._isolate_all_roots_sqfý  rÙ   r‡   c                ó   • [         er~   rÖ   ri  s        r…   rd  ÚDMP._isolate_real_roots   rÙ   r‡   c                ó   • [         er~   rÖ   ri  s        r…   rc  ÚDMP._isolate_real_roots_sqf  rÙ   r‡   c                ó\   • U R                   (       a  [        S5      eU R                  XX4US9$ )z]
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]  rs  r`  s         r…   Úrefine_rootÚDMP.refine_root  s7   € ð �5�5Ü!ØCóEð Eð ×"Ñ" 1¨SÀDÐ"ÐIÐIr‡   c                ó   • [         er~   rÖ   ru  s         r…   rt  ÚDMP._refine_real_root  rÙ   r‡   c                ó   • [         e)ú<Return the number of real roots of ``f`` in ``[inf, sup]``. rÖ   ©r§   r^  r_  s      r…   Úcount_real_rootsÚDMP.count_real_roots  rý   r‡   c                ó   • [         e)ú?Return the number of complex roots of ``f`` in ``[inf, sup]``. rÖ   r}  s      r…   Úcount_complex_rootsÚDMP.count_complex_roots  rý   r‡   c                ó   • [         e©z0Returns ``True`` if ``f`` is a zero polynomial. rÖ   r¦   s    r…   rN  ÚDMP.is_zero  ó
   € ô "Ð!r‡   c                ó   • [         e©z0Returns ``True`` if ``f`` is a unit polynomial. rÖ   r¦   s    r…   Úis_oneÚ
DMP.is_one#  r‡  r‡   c                ó   • [         e©ú>Returns ``True`` if ``f`` is an element of the ground domain. rÖ   r¦   s    r…   Ú	is_groundÚDMP.is_ground(  r‡  r‡   c                ó   • [         e©ú7Returns ``True`` if ``f`` is a square-free polynomial. rÖ   r¦   s    r…   Úis_sqfÚ
DMP.is_sqf-  r‡  r‡   c                ó   • [         e©z=Returns ``True`` if the leading coefficient of ``f`` is one. rÖ   r¦   s    r…   Úis_monicÚDMP.is_monic2  r‡  r‡   c                ó   • [         e©zAReturns ``True`` if the GCD of the coefficients of ``f`` is one. rÖ   r¦   s    r…   Úis_primitiveÚDMP.is_primitive7  r‡  r‡   c                ó   • [         e)ú:Returns ``True`` if ``f`` is linear in all its variables. rÖ   r¦   s    r…   Ú	is_linearÚDMP.is_linear<  r‡  r‡   c                ó   • [         e)ú=Returns ``True`` if ``f`` is quadratic in all its variables. rÖ   r¦   s    r…   Úis_quadraticÚDMP.is_quadraticA  r‡  r‡   c                ó   • [         e)ú8Returns ``True`` if ``f`` is zero or has only one term. rÖ   r¦   s    r…   Úis_monomialÚDMP.is_monomialF  r‡  r‡   c                ó   • [         e©ú7Returns ``True`` if ``f`` is a homogeneous polynomial. rÖ   r¦   s    r…   Úis_homogeneousÚDMP.is_homogeneousK  r‡  r‡   c                ó   • [         e©ú:Returns ``True`` if ``f`` has no factors over its domain. rÖ   r¦   s    r…   Úis_irreducibleÚDMP.is_irreducibleP  r‡  r‡   c                ó   • [         e)ú6Returns ``True`` if ``f`` is a cyclotomic polynomial. rÖ   r¦   s    r…   Úis_cyclotomicÚDMP.is_cyclotomicU  r‡  r‡   c                ó"   • U R                  5       $ r~   )r“  r¦   s    r…   Ú__abs__ÚDMP.__abs__Z  ó   € Ø�u‰u‹wˆr‡   c                ó"   • U R                  5       $ r~   ©r˜  r¦   s    r…   Ú__neg__ÚDMP.__neg__]  r»  r‡   c                óž   • [        U[        5      (       a  U R                  U5      $  U R                  U5      $ ! [         a	    [
        s $ f = fr~   )r“   rŒ   rº  rž  r   ÚNotImplementedr  s     r…   Ú__add__ÚDMP.__add__`  óD   € Ü�aœ×ÑØ—5‘5˜“8ˆOð&Ø—|‘| A“Ð&øÜ!ó &Ü%Ò%ð&úó   ¨9 ¹AÁAc                ó$   • U R                  U5      $ r~   ©rÂ  r  s     r…   Ú__radd__ÚDMP.__radd__i  ó   € Ø�y‰y˜‹|Ðr‡   c                óž   • [        U[        5      (       a  U R                  U5      $  U R                  U5      $ ! [         a	    [
        s $ f = fr~   )r“   rŒ   rÀ  r¤  r   rÁ  r  s     r…   Ú__sub__ÚDMP.__sub__l  rÄ  rÅ  c                ó&   • U * R                  U5      $ r~   rÇ  r  s     r…   Ú__rsub__ÚDMP.__rsub__u  ó   € Ø��|‰|˜A‹Ðr‡   c                óž   • [        U[        5      (       a  U R                  U5      $  U R                  U5      $ ! [         a	    [
        s $ f = fr~   )r“   rŒ   rÅ  r©  r   rÁ  r  s     r…   Ú__mul__ÚDMP.__mul__x  rÄ  rÅ  c                ó$   • U R                  U5      $ r~   ©rÓ  r  s     r…   Ú__rmul__ÚDMP.__rmul__�  rÊ  r‡   c                óž   • [        U[        5      (       a  U R                  U5      $  U R                  U5      $ ! [         a	    [
        s $ f = fr~   )r“   rŒ   r   r©  r   rÁ  r  s     r…   Ú__truediv__ÚDMP.__truediv__„  sE   € Ü�aœ×ÑØ—7‘7˜1“:Ðð&Ø—|‘| A“Ð&øÜ!ó &Ü%Ò%ð&úrÅ  c                óØ   • [        U[        5      (       a  UR                  U 5      $  U R                  5       R	                  U5      R                  U 5      $ ! [
         a	    [        s $ f = fr~   )r“   rŒ   r   râ   r©  r   rÁ  r  s     r…   Ú__rtruediv__ÚDMP.__rtruediv__�  sY   € Ü�aœ×ÑØ—7‘7˜1“:Ðð&Ø—v‘v“x×*Ñ*¨1Ó-×3Ñ3°AÓ6Ð6øÜ!ó &Ü%Ò%ð&ús   ¨-A ÁA)Á(A)c                ó$   • U R                  U5      $ r~   ©rÓ  rÒ  s     r…   Ú__pow__ÚDMP.__pow__–  ó   € Ø�u‰u�Q‹xˆr‡   c                ó$   • U R                  U5      $ r~   ©rñ  r  s     r…   Ú
__divmod__ÚDMP.__divmod__™  rã  r‡   c                ó$   • U R                  U5      $ r~   ©rö  r  s     r…   Ú__mod__ÚDMP.__mod__œ  rã  r‡   c                óž   • [        U[        5      (       a  U R                  U5      $  U R                  U5      $ ! [         a	    [
        s $ f = fr~   )r“   rŒ   rû  r®  rÐ  rÁ  r  s     r…   Ú__floordiv__ÚDMP.__floordiv__Ÿ  sD   € Ü�aœ×ÑØ—5‘5˜“8ˆOð&Ø—|‘| A“Ð&øÜó &Ü%Ò%ð&úrÅ  c                ó¬   • XL a  g[        U[        5      (       d  [        $  U R                  U5      u  p#UR	                  U5      $ ! [
         a     gf = f)NTF)r“   rŒ   rÁ  r  Ú
_strict_eqrz   r¸  s       r…   Ú__eq__Ú
DMP.__eq__¨  sU   € ØŠ6ØÜ˜!œS×!Ñ!Ü!Ð!ð	#Ø—;‘;˜q“>‰DˆAð —<‘< “?Ð"øô !ó 	Ùð	ús   ¢A Á
AÁAc                ó   • [         er~   rÖ   r  s     r…   rð  ÚDMP._strict_eq´  rÙ   r‡   c                ó:   • U(       d  X:H  $ U R                  U5      $ r~   )rð  ©r§   r  Ústricts      r…   ÚeqÚDMP.eq·  s   € ÞØ‘6ˆMà—<‘< “?Ð"r‡   c                ó*   • U R                  XS9(       + $ )N)r÷  )rø  rö  s      r…   ÚneÚDMP.ne½  s   € Ø—4‘4˜�4Ð)Ô)Ð)r‡   c                ój   • U R                  U5      u  p#UR                  5       UR                  5       :  $ r~   ©r  r¥   r¸  s       r…   Ú__lt__Ú
DMP.__lt__À  ó(   € Ø�{‰{˜1‹~‰ˆØ�y‰y‹{˜QŸY™Y›[Ñ(Ð(r‡   c                ój   • U R                  U5      u  p#UR                  5       UR                  5       :*  $ r~   rþ  r¸  s       r…   Ú__le__Ú
DMP.__le__Ä  ó(   € Ø�{‰{˜1‹~‰ˆØ�y‰y‹{˜aŸi™i›kÑ)Ð)r‡   c                ój   • U R                  U5      u  p#UR                  5       UR                  5       :„  $ r~   rþ  r¸  s       r…   Ú__gt__Ú
DMP.__gt__È  r  r‡   c                ój   • U R                  U5      u  p#UR                  5       UR                  5       :¬  $ r~   rþ  r¸  s       r…   Ú__ge__Ú
DMP.__ge__Ì  r  r‡   c                ó$   • U R                   (       + $ r~   )rN  r¦   s    r…   Ú__bool__ÚDMP.__bool__Ð  s   € Ø—9‘9Œ}Ðr‡   r~   ©FrM  ©rµ   r   ©T)FNNNFF)NNF©NN)Õrê   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__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+  r0  r:  r4  r5  rÊ   rÉ   rD  rO  rW  r^  ra  rf  re  rm  rt  rz  r�  r}  r‰  r†  r�  r“  r˜  rž  r¤  r©  r®  r³  rº  rÀ  rÅ  rË  rÓ  rÙ  rà  ræ  rì  rñ  rö  rû  r   rœ  r£  r¨  r­  r²  r·  r¿  rÄ  rÊ  rÑ  rØ  rß  rå  rë  rð  rõ  rú  rÿ  rZ  r)  r0  r5  rB  rH  rL  rQ  rZ  rW  r`  rd  rh  rl  rr  rp  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+  r3  r2  r:  r9  r@  rD  rH  rN  rQ  rV  rY  rf  rb  ra  rd  rc  rw  rt  r~  r‚  rN  rŠ  r�  r”  r˜  rœ  r   r¤  r¨  r­  r²  r¶  r¹  r¾  rÂ  rÈ  rÌ  rÏ  rÓ  r×  rÚ  rÝ  rá  ræ  rê  rí  rñ  rð  rø  rû  rÿ  r  r  r
  r  Ú__static_attributes__rŠ   r‡   r…   rŒ   rŒ   Š   sR  ‡ Ù3à€Ià	ƒHØ	ƒKô&ð ñ	.ó ð	.ð ñó ðò 
ð ñó ðð ñ&ó ð&ð ñCó ðCð ñ@ó ð@ð ñ>ó ð>ò3ò&"ð ñ,ó ð,ð ñ0ó ð0ò"òIòHò2ò"ò
ôAôò0ò"ò"ò+ò,ò,ô)ò"ò"ô6ô6ô)ô"ò%ò
Cò
Hò#ò"ò"ô"ô"òò&"òò&"ò"ò"ò"ò/ò/ò/ò/ò1òò
ò
ò
òòò
ò
ò
ò
ò
ò
ò
ò
"ò"ò"ò"ò"ò"ò"ò"ò"ò"ò"ò"ò"ò"ò"ò"ò"ò"ôò"ò"ò"òEò&ò "ò"ò?ò"ò"ò"ò"ò"ô"ò"ôò"ô
ò"ò"ò ò"ò
ò"òò"òò"ò#ò
"ô#ô"ò"òò
"òò
"òò
"ô ò"ò"ò*ò"ò"ò"ò"òò
"òò"ò*ò ò
"ò	"ò"òò"ò'ò"ò'ò"ò/ò"òò"ò"ò"ò"ô"ô"ò"ò"ôOò"ò"ò"ò"ôJò"ô"ô"ð ñ"ó ð"ð ñ"ó ð"ð ñ"ó ð"ð ñ"ó ð"ð ñ"ó ð"ð ñ"ó ð"ð ñ"ó ð"ð ñ"ó ð"ð ñ"ó ð"ð ñ"ó ð"ð ñ"ó ð"ð ñ"ó ð"òòò&òò&òò&òò&ò&òòòò&ò
#ò"ô#ô*ò)ò*ò)ò*õr‡   rŒ   c                  óH  • \ rS rSrSrSr\S 5       rS rS r	S r
S rS	 rS
 rS rS rS rS rS rSqS jrS rS rSrS jrSrS jrS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S% r'S& r(S' r)S( r*S) r+S* r,S+ r-S, r.SsS- jr/S. r0S/ r1S0 r2S1 r3S2 r4S3 r5S4 r6S5 r7S6 r8StS7 jr9StS8 jr:S9 r;S: r<S; r=S< r>S= r?S> r@S? rAS@ rBSA rCSB rDSC rESD rFSE rGSF rHSG rISH rJSI rKSJ rLSK rMSL rNSM rOSN rPSO rQSP rRSQ rSSR rTSS rUST rVSU rWSV rXSW rYSX rZSrSY jr[SrSZ jr\S[ r]S\ r^S] r_S^ r`S_ raS` rbSa rcSuSb jrdSuSc jre\fSd 5       rg\fSe 5       rh\fSf 5       ri\fSg 5       rj\fSh 5       rk\fSi 5       rl\fSj 5       rm\fSk 5       rn\fSl 5       ro\fSm 5       rp\fSn 5       rq\fSo 5       rrSprsg)vr    iÔ  rŽ   )rª   r‘   r�   c                óT   • [         R                  U 5      nXl        X4l        X$l        U$ r~   )Úobjectrš   rª   r�   r‘   )r˜   r™   r‘   r�   Úobjs        r…   rŸ   ÚDMP_Python._newÙ  s$   € ä�n‰n˜SÓ!ˆØŒØŒØŒØˆ
r‡   c                óæ   • [        U 5      [        U5      :w  a  gU R                  UR                  :H  =(       a9    U R                  UR                  :H  =(       a    U R                  UR                  :H  $ r‰   )r•   r�   r‘   rª   r  s     r…   rð  ÚDMP_Python._strict_eqá  sJ   € Ü�‹7”d˜1“gÓØØ�u‰u˜Ÿ™‰~×E !§%¡%¨1¯5©5¡.×E°Q·V±V¸q¿v¹vÑ5EÐEr‡   c                óN   • U R                  XR                  U R                  5      $ )ú.Create a DMP out of the given representation. )rŸ   r‘   r�   ©r§   r™   s     r…   ÚperÚDMP_Python.peræ  s   € à�v‰v�cŸ5™5 !§%¡%Ó(Ð(r‡   c                óv   • U R                  [        XR                  5      U R                  U R                  5      $ rø   )rŸ   r    r�   r‘   rù   s     r…   rû   ÚDMP_Python.ground_newê  s&   € à�v‰v”j ¯©Ó.°·±°q·u±uÓ=Ð=r‡   c                óN   • U R                  U R                  U R                  5      $ r~   )rß   r�   r‘   r¦   s    r…   râ   ÚDMP_Python._oneî  s   € Ø�u‰u�Q—U‘U˜AŸE™EÓ"Ð"r‡   c                ó:  ^ ^^• [        U[        5      (       a  T R                  UR                  :w  a  [        ST < SU< 35      eT R                  UR                  :X  a9  T R                  T R                  T R
                  T R                  UR                  4$ T R                  T R                  R                  UR                  5      smm[        T R                  TT R                  T5      n[        UR                  TUR                  T5      nUU U4S jnTTXBU4$ )z7Unify representations of two multivariate polynomials. r   r  c                ó*   >• TR                  U TT5      $ r~   )rŸ   )r™   r‘   r§   r�   s    €€€r…   r&  ÚDMP_Python.unify.<locals>.per   s   ø€ Ø—v‘v˜c 3¨Ó,Ð,r‡   )	r“   rŒ   r�   rz   r‘   r&  rª   r  r   )r§   r  r€  r¹  r&  r‘   r�   s   `    @@r…   r  ÚDMP_Python.unifyñ  sÊ   ú€ ô ˜!œS×!Ñ! Q§U¡U¨a¯e©e£^Ý#ÃÂAÐ$FÓGÐGà�5‰5�A—E‘E‹>Ø—5‘5˜!Ÿ%™% §¡¨¯©°·±Ð6Ð6à—u‘u˜aŸe™eŸk™k¨!¯%©%Ó0ˆHˆC�ä˜AŸF™F C¨¯©°Ó4ˆAÜ˜AŸF™F C¨¯©°Ó4ˆA÷-ð ˜˜S QÐ&Ð&r‡   c                ól   • [         R                  U R                  U R                  U R                  5      $ )z)Convert ``f`` to a Flint representation. )rž   rŸ   rª   r‘   r�   r¦   s    r…   rÐ   ÚDMP_Python.to_DUP_Flint  s!   € ä�~‰~˜aŸf™f a§e¡e¨Q¯U©UÓ3Ð3r‡   c                ó,   • [        U R                  5      $ r  )r”   rª   r¦   s    r…   r¥   ÚDMP_Python.to_list	  s   € ä�A—F‘F‹|Ðr‡   c                óB   • [        U R                  U R                  5      $ ©zBConvert ``f`` to a tuple representation with native coefficients. )r1   rª   r�   r¦   s    r…   rï   ÚDMP_Python.to_tuple  s   € ä˜AŸF™F A§E¡EÓ*Ð*r‡   c                óŽ   • U R                  [        U R                  U R                  U R                  U5      XR                  5      $ )ú$Convert the ground domain of ``f``. )rŸ   r   rª   r�   r‘   rÒ   s     r…   rÎ   ÚDMP_Python._convert  s.   € à�v‰v”k !§&¡&¨!¯%©%°·±¸Ó<¸cÇ5Á5ÓIÐIr‡   c                ó�   • [        U R                  XU R                  5      nU R                  X0R                  U R                  5      $ r3  )r.   rª   r‘   rŸ   r�   )r§   r7  r8  r™   s       r…   r4  ÚDMP_Python._slice  s1   € ä˜Ÿ™  a§e¡eÓ,ˆØ�v‰v�cŸ5™5 !§%¡%Ó(Ð(r‡   c                ó¦   • [        U R                  XX0R                  U R                  5      nU R	                  X@R                  U R                  5      $ r3  )r/   rª   r�   r‘   rŸ   )r§   r7  r8  r9  r™   s        r…   r5  ÚDMP_Python._slice_lev  s7   € ä˜1Ÿ6™6 1¨¯E©E°1·5±5Ó9ˆØ�v‰v�cŸ5™5 !§%¡%Ó(Ð(r‡   Nc                óV   • [        U R                  U R                  U R                  US9$ )rL  rA  )r,   rª   r�   r‘   rS  s     r…   rO  ÚDMP_Python._terms  s   € ä˜aŸf™f a§e¡e¨Q¯U©U¸%Ñ@Ð@r‡   c                ó¸   • [        U R                  U R                  U R                  5      nU R	                  XR                  R                  U R                  5      $ rd  )rY   rª   r�   r‘   rŸ   ©r§   r·   s     r…   re  ÚDMP_Python._lift#  s9   € ä�Q—V‘V˜QŸU™U A§E¡EÓ*ˆØ�v‰v�aŸ™Ÿ™ A§E¡EÓ*Ð*r‡   c                ó€   • [        U R                  U R                  U R                  5      u  pXR	                  U5      4$ rk  )r(   rª   r�   r‘   r&  r~  s      r…   rm  ÚDMP_Python.deflate(  s.   € ä˜1Ÿ6™6 1§5¡5¨!¯%©%Ó0‰ˆØ—%‘%˜“(ˆ{Ðr‡   c                ó¦   • [        U R                  U R                  U R                  US9u  p#U R	                  X R                  R                  U5      $ )rq  ©rs  )r)   rª   r�   r‘   rŸ   )r§   rs  r€  r�   s       r…   rt  ÚDMP_Python.inject-  s9   € ä˜AŸF™F A§E¡E¨1¯5©5¸Ñ>‰ˆà�v‰v�aŸ™Ÿ™ CÓ(Ð(r‡   c                ó¤   • [        U R                  U R                  XS9nU R                  X1U R                  [	        UR
                  5      -
  5      $ )rx  rF  )r*   rª   r�   rŸ   r8  Úsymbols)r§   r‘   rs  r€  s       r…   rz  ÚDMP_Python.eject3  s;   € ä�a—f‘f˜aŸe™e SÑ6ˆà�v‰v�a˜aŸe™e¤c¨#¯+©+Ó&6Ñ6Ó7Ð7r‡   c                ó˜   • [        U R                  U R                  U R                  5      u  pnXR	                  X R                  U5      4$ ©z&Remove useless generators from ``f``. )r-   rª   r�   r‘   rŸ   )r§   r  r€  Úus       r…   r}  ÚDMP_Python._exclude9  s8   € ä˜aŸf™f a§e¡e¨Q¯U©UÓ3‰ˆˆaà—&‘&˜ŸE™E 1Ó%Ð%Ð%r‡   c                óv   • U R                  [        U R                  XR                  U R                  5      5      $ ©z6Returns a polynomial in `K[x_{P(1)}, ..., x_{P(n)}]`. )r&  r0   rª   r�   r‘   r‡  s     r…   r†  ÚDMP_Python._permute?  s&   € à�u‰u”[ §¡¨¯E©E°1·5±5Ó9Ó:Ð:r‡   c                ó€   • [        U R                  U R                  U R                  5      u  pXR	                  U5      4$ rŽ  )r+   rª   r�   r‘   r&  r~  s      r…   r�  ÚDMP_Python.terms_gcdC  s.   € ä˜QŸV™V Q§U¡U¨A¯E©EÓ2‰ˆØ—%‘%˜“(ˆ{Ðr‡   c                óv   • U R                  [        U R                  XR                  U R                  5      5      $ r›  )r&  r2   rª   r�   r‘   r�  s     r…   rœ  ÚDMP_Python._add_groundH  ó&   € à�u‰u”^ A§F¡F¨A¯u©u°a·e±eÓ<Ó=Ð=r‡   c                óv   • U R                  [        U R                  XR                  U R                  5      5      $ r¢  )r&  r3   rª   r�   r‘   r�  s     r…   r£  ÚDMP_Python._sub_groundL  rV  r‡   c                óv   • U R                  [        U R                  XR                  U R                  5      5      $ r§  )r&  r4   rª   r�   r‘   r�  s     r…   r¨  ÚDMP_Python._mul_groundP  rV  r‡   c                óv   • U R                  [        U R                  XR                  U R                  5      5      $ r¬  )r&  r5   rª   r�   r‘   r�  s     r…   r­  ÚDMP_Python._quo_groundT  rV  r‡   c                óv   • U R                  [        U R                  XR                  U R                  5      5      $ r±  )r&  r6   rª   r�   r‘   r�  s     r…   r²  ÚDMP_Python._exquo_groundX  ó'   € à�u‰uÔ% a§f¡f¨a·±¸¿¹Ó>Ó?Ð?r‡   c                óv   • U R                  [        U R                  U R                  U R                  5      5      $ r’  )r&  r7   rª   r�   r‘   r¦   s    r…   r“  ÚDMP_Python.abs\  ó&   € à�u‰u”W˜QŸV™V Q§U¡U¨A¯E©EÓ2Ó3Ð3r‡   c                óv   • U R                  [        U R                  U R                  U R                  5      5      $ r–  )r&  r8   rª   r�   r‘   r¦   s    r…   r˜  ÚDMP_Python.neg`  rb  r‡   c                óŒ   • U R                  [        U R                  UR                  U R                  U R                  5      5      $ r¶  )r&  r9   rª   r�   r‘   r  s     r…   r·  ÚDMP_Python._addd  ó,   € à�u‰u”W˜QŸV™V Q§V¡V¨Q¯U©U°A·E±EÓ:Ó;Ð;r‡   c                óŒ   • U R                  [        U R                  UR                  U R                  U R                  5      5      $ r¾  )r&  r:   rª   r�   r‘   r  s     r…   r¿  ÚDMP_Python._subh  rg  r‡   c                óŒ   • U R                  [        U R                  UR                  U R                  U R                  5      5      $ rÃ  )r&  r;   rª   r�   r‘   r  s     r…   rÄ  ÚDMP_Python._mull  rg  r‡   c                óv   • U R                  [        U R                  U R                  U R                  5      5      $ rÈ  )r&  r<   rª   r�   r‘   r¦   s    r…   rË  ÚDMP_Python.sqrp  rb  r‡   c                óv   • U R                  [        U R                  XR                  U R                  5      5      $ ©rÎ  )r&  r=   rª   r�   r‘   rÒ  s     r…   rÑ  ÚDMP_Python._powt  s&   € à�u‰u”W˜QŸV™V Q¯©¨q¯u©uÓ5Ó6Ð6r‡   c                ó¶   • [        U R                  UR                  U R                  U R                  5      u  p#U R	                  U5      U R	                  U5      4$ rÖ  )r>   rª   r�   r‘   r&  ©r§   r  r  r·   s       r…   rØ  ÚDMP_Python._pdivx  s?   € ä˜Ÿ™ §¡¨¯©¨q¯u©uÓ5‰ˆØ�u‰u�Q‹x˜Ÿ™˜q›Ð!Ð!r‡   c                óŒ   • U R                  [        U R                  UR                  U R                  U R                  5      5      $ rÝ  )r&  r?   rª   r�   r‘   r  s     r…   rß  ÚDMP_Python._prem}  ó,   € à�u‰u”X˜aŸf™f a§f¡f¨a¯e©e°Q·U±UÓ;Ó<Ð<r‡   c                óŒ   • U R                  [        U R                  UR                  U R                  U R                  5      5      $ rã  )r&  r@   rª   r�   r‘   r  s     r…   rå  ÚDMP_Python._pquo�  rv  r‡   c                óŒ   • U R                  [        U R                  UR                  U R                  U R                  5      5      $ ré  )r&  rA   rª   r�   r‘   r  s     r…   rë  ÚDMP_Python._pexquo…  s,   € à�u‰u”Z §¡¨¯©°·±°q·u±uÓ=Ó>Ð>r‡   c                ó¶   • [        U R                  UR                  U R                  U R                  5      u  p#U R	                  U5      U R	                  U5      4$ rï  )rB   rª   r�   r‘   r&  rr  s       r…   rð  ÚDMP_Python._div‰  s?   € ä�q—v‘v˜qŸv™v q§u¡u¨a¯e©eÓ4‰ˆØ�u‰u�Q‹x˜Ÿ™˜q›Ð!Ð!r‡   c                óŒ   • U R                  [        U R                  UR                  U R                  U R                  5      5      $ rô  )r&  rC   rª   r�   r‘   r  s     r…   rõ  ÚDMP_Python._remŽ  rg  r‡   c                óŒ   • U R                  [        U R                  UR                  U R                  U R                  5      5      $ rù  )r&  rD   rª   r�   r‘   r  s     r…   rú  ÚDMP_Python._quo’  rg  r‡   c                óŒ   • U R                  [        U R                  UR                  U R                  U R                  5      5      $ rþ  )r&  rE   rª   r�   r‘   r  s     r…   rÿ  ÚDMP_Python._exquo–  s,   € à�u‰u”Y˜qŸv™v q§v¡v¨q¯u©u°a·e±eÓ<Ó=Ð=r‡   c                óB   • [        U R                  XR                  5      $ )r(  )r   rª   r�   r*  s     r…   r)  ÚDMP_Python._degreeš  s   € ä˜QŸV™V Q¯©Ó.Ð.r‡   c                óB   • [        U R                  U R                  5      $ r/  )r   rª   r�   r¦   s    r…   r0  ÚDMP_Python.degree_listž  s   € ä˜qŸv™v q§u¡uÓ-Ð-r‡   c                óB   • [        S U R                  5        5       5      $ )r4  c              3  ó8   #   • U  H  n[        U5      v •  M     g 7fr~   ©r9  )r±   r7  s     r…   r³   Ú*DMP_Python.total_degree.<locals>.<genexpr>¤  s   é € Ð.¢:˜a”3�q—6�6¢:ùs   ‚)ÚmaxrÉ   r¦   s    r…   r5  ÚDMP_Python.total_degree¢  s   € äÑ. 1§8¡8¤:Ó.Ó.Ð.r‡   c                óX   • [        U R                  U R                  U R                  5      $ rK  )r   rª   r�   r‘   r¦   s    r…   rL  ÚDMP_Python.LC¦  ó   € ä˜QŸV™V Q§U¡U¨A¯E©EÓ2Ð2r‡   c                óX   • [        U R                  U R                  U R                  5      $ rO  )r   rª   r�   r‘   r¦   s    r…   rQ  ÚDMP_Python.TCª  r�  r‡   c                óX   • [        U R                  XR                  U R                  5      $ ©rT  )r   rª   r�   r‘   rX  s     r…   rW  ÚDMP_Python._nth®  s   € ä˜aŸf™f a¯©°·±Ó6Ð6r‡   c                óX   • [        U R                  U R                  U R                  5      $ r_  )rH   rª   r�   r‘   r¦   s    r…   r`  ÚDMP_Python.max_norm²  s   € ä˜AŸF™F A§E¡E¨1¯5©5Ó1Ð1r‡   c                óX   • [        U R                  U R                  U R                  5      $ rc  )rI   rª   r�   r‘   r¦   s    r…   rd  ÚDMP_Python.l1_norm¶  s   € ä˜1Ÿ6™6 1§5¡5¨!¯%©%Ó0Ð0r‡   c                óX   • [        U R                  U R                  U R                  5      $ rg  )rJ   rª   r�   r‘   r¦   s    r…   rh  ÚDMP_Python.l2_norm_squaredº  s   € ä" 1§6¡6¨1¯5©5°!·%±%Ó8Ð8r‡   c                ó€   • [        U R                  U R                  U R                  5      u  pXR	                  U5      4$ rk  )rK   rª   r�   r‘   r&  )r§   rú   r€  s      r…   rl  ÚDMP_Python.clear_denoms¾  s.   € ä# A§F¡F¨A¯E©E°1·5±5Ó9‰ˆØ—e‘e˜A“hˆÐr‡   c           	     óx   • U R                  [        U R                  XU R                  U R                  5      5      $ )ro  )r&  rL   rª   r�   r‘   rq  s      r…   rp  ÚDMP_Python._integrateÃ  s)   € à�u‰uÔ% a§f¡f¨a°A·E±E¸1¿5¹5ÓAÓBÐBr‡   c           	     óx   • U R                  [        U R                  XU R                  U R                  5      5      $ )rw  )r&  rM   rª   r�   r‘   rq  s      r…   rx  ÚDMP_Python._diffÇ  s(   € à�u‰u”[ §¡¨¨q¯u©u°a·e±eÓ<Ó=Ð=r‡   c                óŽ   • [        U R                  U R                  R                  U5      SU R                  U R                  5      $ r�   )rN   rª   r‘   rÓ   r�   r†  s     r…   r€  ÚDMP_Python._evalË  s.   € Ü˜1Ÿ6™6 1§5¡5§=¡=°Ó#3°Q¸¿¹¸q¿u¹uÓEÐEr‡   c                óÞ   • [        U R                  U R                  R                  U5      X R                  U R                  5      nU R                  X0R                  U R                  S-
  5      $ ©Nrµ   )rN   rª   r‘   rÓ   r�   r–   )r§   r‚  r9  r™   s       r…   r  ÚDMP_Python._eval_levÎ  sH   € Ü˜!Ÿ&™& !§%¡%§-¡-°Ó"2°A·u±u¸a¿e¹eÓDˆØ�u‰u�SŸ%™% §¡¨¡Ó+Ð+r‡   c                ó    • [        U R                  UR                  U R                  5      u  p#U R                  U5      U R                  U5      4$ )r‹  )rZ   rª   r‘   r&  ©r§   r  r;  Úhs       r…   r�  ÚDMP_Python._half_gcdexÒ  s9   € ä˜aŸf™f a§f¡f¨a¯e©eÓ4‰ˆØ�u‰u�Q‹x˜Ÿ™˜q›Ð!Ð!r‡   c                óÂ   • [        U R                  UR                  U R                  5      u  p#nU R                  U5      U R                  U5      U R                  U5      4$ )r“  )r[   rª   r‘   r&  )r§   r  r;  rv  r¨  s        r…   r•  ÚDMP_Python._gcdex×  sE   € ä˜AŸF™F A§F¡F¨A¯E©EÓ2‰ˆˆaØ�u‰u�Q‹x˜Ÿ™˜q› 1§5¡5¨£8Ð+Ð+r‡   c                óz   • [        U R                  UR                  U R                  5      nU R                  U5      $ )r›  )r\   rª   r‘   r&  )r§   r  r;  s      r…   rœ  ÚDMP_Python._invertÜ  s)   € ä�q—v‘v˜qŸv™v q§u¡uÓ-ˆØ�u‰u�Q‹xˆr‡   c                ó`   • U R                  [        U R                  XR                  5      5      $ ©r¢  )r&  rO   rª   r‘   rÒ  s     r…   r£  ÚDMP_Python._revertá  s    € à�u‰u”Z §¡¨¯5©5Ó1Ó2Ð2r‡   c                ó¬   • [        U R                  UR                  U R                  U R                  5      n[	        [        U R                  U5      5      $ r©  )r]   rª   r�   r‘   r”   Úmapr&  ©r§   r  ÚRs      r…   rª  ÚDMP_Python._subresultantså  s7   € ä˜aŸf™f a§f¡f¨a¯e©e°Q·U±UÓ;ˆÜ”C˜Ÿ™˜q“MÓ"Ð"r‡   c                ó&  • [        U R                  UR                  U R                  U R                  SS9u  p#U R                  (       a)  U R	                  X R                  U R                  S-
  5      nU[        [        U R                  U5      5      4$ )r±  T)r´  rµ   )r^   rª   r�   r‘   r–   r”   r²  r&  ©r§   r  Úresr´  s       r…   r²  Ú DMP_Python._resultant_includePRSê  sc   € ä˜qŸv™v q§v¡v¨q¯u©u°a·e±eÈÑM‰ˆØ�5�5Ø—%‘%˜ŸU™U A§E¡E¨A¡IÓ.ˆCØ”Dœ˜QŸU™U A›Ó'Ð'Ð'r‡   c                óæ   • [        U R                  UR                  U R                  U R                  5      nU R                  (       a)  U R	                  X R                  U R                  S-
  5      nU$ r¤  )r^   rª   r�   r‘   r–   )r§   r  r¸  s      r…   r³  ÚDMP_Python._resultantñ  sJ   € Ü˜AŸF™F A§F¡F¨A¯E©E°1·5±5Ó9ˆØ�5�5Ø—%‘%˜ŸU™U A§E¡E¨A¡IÓ.ˆCØˆ
r‡   c                óÐ   • [        U R                  U R                  U R                  5      nU R                  (       a)  U R	                  XR                  U R                  S-
  5      nU$ )r»  rµ   )r_   rª   r�   r‘   r–   )r§   r¸  s     r…   r¼  ÚDMP_Python.discriminant÷  sD   € ä˜qŸv™v q§u¡u¨a¯e©eÓ4ˆØ�5�5Ø—%‘%˜ŸU™U A§E¡E¨A¡IÓ.ˆCØˆ
r‡   c                óØ   • [        U R                  UR                  U R                  U R                  5      u  p#nU R	                  U5      U R	                  U5      U R	                  U5      4$ r¿  )r`   rª   r�   r‘   r&  )r§   r  r¨  ÚcffÚcfgs        r…   rÀ  ÚDMP_Python._cofactorsþ  sK   € ä# A§F¡F¨A¯F©F°A·E±E¸1¿5¹5ÓA‰ˆ�Ø�u‰u�Q‹x˜Ÿ™˜s› Q§U¡U¨3£ZÐ/Ð/r‡   c                óŒ   • U R                  [        U R                  UR                  U R                  U R                  5      5      $ rÆ  )r&  ra   rª   r�   r‘   r  s     r…   rÇ  ÚDMP_Python._gcd  rg  r‡   c                óŒ   • U R                  [        U R                  UR                  U R                  U R                  5      5      $ rÍ  )r&  rb   rª   r�   r‘   r  s     r…   rÏ  ÚDMP_Python._lcm  rg  r‡   c                ó¸   • [        U R                  UR                  U R                  U R                  SS9u  p#pEX#U R	                  U5      U R	                  U5      4$ )rÖ  F©rÙ  ©rc   rª   r�   r‘   r&  ©r§   r  ÚcFÚcGr€  r¹  s         r…   rØ  ÚDMP_Python._cancel  sE   € ä! !§&¡&¨!¯&©&°!·%±%¸¿¹ÈÑN‰ˆ�Ø�q—u‘u˜Q“x §¡ q£Ð)Ð)r‡   c                ó´   • [        U R                  UR                  U R                  U R                  SS9u  p#U R	                  U5      U R	                  U5      4$ )rÖ  TrÇ  rÈ  r¸  s       r…   r×  ÚDMP_Python._cancel_include  sA   € ä˜!Ÿ&™& !§&¡&¨!¯%©%°·±ÀÑE‰ˆØ�u‰u�Q‹x˜Ÿ™˜q›Ð!Ð!r‡   c                óv   • U R                  [        U R                  XR                  U R                  5      5      $ rá  )r&  rP   rª   r�   r‘   rã  s     r…   râ  ÚDMP_Python._trunc  r_  r‡   c                óv   • U R                  [        U R                  U R                  U R                  5      5      $ rê  )r&  rS   rª   r�   r‘   r¦   s    r…   rë  ÚDMP_Python.monic  s'   € à�u‰uÔ% a§f¡f¨a¯e©e°Q·U±UÓ;Ó<Ð<r‡   c                óX   • [        U R                  U R                  U R                  5      $ rî  )rQ   rª   r�   r‘   r¦   s    r…   rï  ÚDMP_Python.content  s   € ä! !§&¡&¨!¯%©%°·±Ó7Ð7r‡   c                ó€   • [        U R                  U R                  U R                  5      u  pXR	                  U5      4$ rò  )rR   rª   r�   r‘   r&  )r§   Úcontr€  s      r…   ró  ÚDMP_Python.primitive!  s.   € ä& q§v¡v¨q¯u©u°a·e±eÓ<‰ˆØ—U‘U˜1“Xˆ~Ðr‡   c                óŒ   • U R                  [        U R                  UR                  U R                  U R                  5      5      $ rö  )r&  rT   rª   r�   r‘   r  s     r…   r÷  ÚDMP_Python._compose&  s,   € à�u‰u”[ §¡¨¯©°·±¸¿¹Ó>Ó?Ð?r‡   c           	     ó|   • [        [        U R                  [        U R                  U R
                  5      5      5      $ ©rý  )r”   r²  r&  rU   rª   r‘   r¦   s    r…   rþ  ÚDMP_Python._decompose*  s'   € ä”C˜Ÿ™œ}¨Q¯V©V°Q·U±UÓ;Ó<Ó=Ð=r‡   c                ó`   • U R                  [        U R                  XR                  5      5      $ ©r  )r&  rV   rª   r‘   r†  s     r…   r  ÚDMP_Python._shift.  s    € à�u‰u”Y˜qŸv™v q¯%©%Ó0Ó1Ð1r‡   c                óv   • U R                  [        U R                  XR                  U R                  5      5      $ r	  )r&  rW   rª   r�   r‘   r†  s     r…   r
  ÚDMP_Python._shift_list2  s&   € à�u‰u”Y˜qŸv™v q¯%©%°·±Ó7Ó8Ð8r‡   c                óŒ   • U R                  [        U R                  UR                  UR                  U R                  5      5      $ ©r  )r&  rX   rª   r‘   r  s      r…   r  ÚDMP_Python._transform6  s,   € à�u‰u”] 1§6¡6¨1¯6©6°1·6±6¸1¿5¹5ÓAÓBÐBr‡   c           	     ó|   • [        [        U R                  [        U R                  U R
                  5      5      5      $ ©r  )r”   r²  r&  rv   rª   r‘   r¦   s    r…   r  ÚDMP_Python._sturm:  s'   € ä”C˜Ÿ™œy¨¯©°·±Ó7Ó8Ó9Ð9r‡   c                óB   • [        U R                  U R                  5      $ ©r"  )rw   rª   r‘   r¦   s    r…   r#  ÚDMP_Python._cauchy_upper_bound>  ó   € ä% a§f¡f¨a¯e©eÓ4Ð4r‡   c                óB   • [        U R                  U R                  5      $ ©r*  )rx   rª   r‘   r¦   s    r…   r+  ÚDMP_Python._cauchy_lower_boundB  rë  r‡   c                óB   • [        U R                  U R                  5      $ ©r1  )ry   rª   r‘   r¦   s    r…   r2  Ú&DMP_Python._mignotte_sep_bound_squaredF  s   € ä-¨a¯f©f°a·e±eÓ<Ð<r‡   c                óš   • [        U R                  U R                  5       VVs/ s H  u  pU R                  U5      U4PM     snn$ s  snnf ©r8  )rd   rª   r‘   r&  )r§   r  r  s      r…   r9  ÚDMP_Python._gff_listJ  s9   € ä+7¸¿¹ÀÇÁÔ+FÔHÒ+F¡4 1�!—%‘%˜“(˜A“Ñ+FÒHÐHùÓHs   ¤Ac                ó¸   • [        U R                  U R                  U R                  5      nU R	                  XR                  R                  U R                  5      $ r?  )re   rª   r�   r‘   r–   rA  s     r…   r@  ÚDMP_Python.normN  s9   € ä�Q—V‘V˜QŸU™U A§E¡EÓ*ˆØ�u‰u�QŸ™Ÿ	™	 1§5¡5Ó)Ð)r‡   c                óà   • [        U R                  U R                  U R                  5      u  pnXR	                  U5      U R                  X0R                  R                  U R                  5      4$ rC  )rg   rª   r�   r‘   r&  r–   )r§   r;  r  r·   s       r…   rD  ÚDMP_Python.sqf_normS  sJ   € ä˜qŸv™v q§u¡u¨a¯e©eÓ4‰ˆˆaØ—%‘%˜“(˜AŸE™E !§U¡U§Y¡Y°·±Ó6Ð6Ð6r‡   c                óv   • U R                  [        U R                  U R                  U R                  5      5      $ rG  )r&  rh   rª   r�   r‘   r¦   s    r…   rH  ÚDMP_Python.sqf_partX  s&   € à�u‰u”\ !§&¡&¨!¯%©%°·±Ó7Ó8Ð8r‡   c                ó¼   • [        U R                  U R                  U R                  U5      u  p#X# VVs/ s H  u  pEU R	                  U5      U4PM     snn4$ s  snnf rK  )ri   rª   r�   r‘   r&  ©r§   r¶   rú   Úfactorsr  r  s         r…   rN  ÚDMP_Python.sqf_list\  sK   € ä% a§f¡f¨a¯e©e°Q·U±U¸CÓ@‰ˆØ°'Ô;²'©$¨!˜Ÿ™˜q› 1›±'Ò;Ð;Ð;ùÓ;s   ´Ac                ó¶   • [        U R                  U R                  U R                  U5      nU VVs/ s H  u  p4U R	                  U5      U4PM     snn$ s  snnf rK  )rj   rª   r�   r‘   r&  ©r§   r¶   rý  r  r  s        r…   rQ  ÚDMP_Python.sqf_list_includea  sD   € ä& q§v¡v¨q¯u©u°a·e±e¸SÓAˆÙ+2Ô4ª7¡4 1�!—%‘%˜“(˜A“©7Ò4Ð4ùÓ4s   ²Ac                óº   • [        U R                  U R                  U R                  5      u  pX VVs/ s H  u  p4U R	                  U5      U4PM     snn4$ s  snnf rT  )rm   rª   r�   r‘   r&  )r§   rú   rý  r  r  s        r…   rV  ÚDMP_Python.factor_listf  sI   € ä(¨¯©°·±¸¿¹Ó>‰ˆØ°'Ô;²'©$¨!˜Ÿ™˜q› 1›±'Ò;Ð;Ð;ùÓ;s   ³Ac                ó´   • [        U R                  U R                  U R                  5      nU VVs/ s H  u  p#U R	                  U5      U4PM     snn$ s  snnf rT  )rn   rª   r�   r‘   r&  ©r§   rý  r  r  s       r…   rY  ÚDMP_Python.factor_list_includek  sB   € ä)¨!¯&©&°!·%±%¸¿¹Ó?ˆÙ+2Ô4ª7¡4 1�!—%‘%˜“(˜A“©7Ò4Ð4ùÓ4s   ±Ac           	     óB   • [        U R                  U R                  XX4S9$ ©Nr\  )rp   rª   r‘   ri  s        r…   rd  ÚDMP_Python._isolate_real_rootsp  s   € Ü% a§f¡f¨a¯e©e¸È3ÑZÐZr‡   c           	     óB   • [        U R                  U R                  XX4S9$ r  )ro   rª   r‘   ri  s        r…   rc  Ú"DMP_Python._isolate_real_roots_sqfs  s   € Ü)¨!¯&©&°!·%±%¸SÈsÑ^Ð^r‡   c           	     óB   • [        U R                  U R                  XX4S9$ r  )rr   rª   r‘   ri  s        r…   rb  ÚDMP_Python._isolate_all_rootsv  s   € Ü$ Q§V¡V¨Q¯U©U¸È#ÑYÐYr‡   c           	     óB   • [        U R                  U R                  XX4S9$ r  )rq   rª   r‘   ri  s        r…   ra  Ú!DMP_Python._isolate_all_roots_sqfy  s   € Ü(¨¯©°·±¸CÈcÑ]Ð]r‡   c           
     óD   • [        U R                  XU R                  X4US9$ )Nrr  )rs   rª   r‘   ru  s         r…   rt  ÚDMP_Python._refine_real_root|  s   € Ü# A§F¡F¨A°!·%±%¸SÐTXÑYÐYr‡   c                ó@   • [        U R                  U R                  XS9$ ©r|  ©r^  r_  )rt   rª   r‘   r}  s      r…   r~  ÚDMP_Python.count_real_roots  s   € ä# A§F¡F¨A¯E©E°sÑDÐDr‡   c                ó@   • [        U R                  U R                  XS9$ ©r�  r  )ru   rª   r‘   r}  s      r…   r‚  ÚDMP_Python.count_complex_rootsƒ  s   € ä& q§v¡v¨q¯u©u¸#ÑGÐGr‡   c                óB   • [        U R                  U R                  5      $ r…  )r"   rª   r�   r¦   s    r…   rN  ÚDMP_Python.is_zero‡  s   € ô ˜!Ÿ&™& !§%¡%Ó(Ð(r‡   c                óX   • [        U R                  U R                  U R                  5      $ r‰  )r#   rª   r�   r‘   r¦   s    r…   rŠ  ÚDMP_Python.is_oneŒ  ó   € ô ˜Ÿ™ §¡¨¯©Ó.Ð.r‡   c                óD   • [        U R                  SU R                  5      $ )rŽ  N)r$   rª   r�   r¦   s    r…   r�  ÚDMP_Python.is_ground‘  s   € ô ˜AŸF™F D¨!¯%©%Ó0Ð0r‡   c                óX   • [        U R                  U R                  U R                  5      $ r’  )rf   rª   r�   r‘   r¦   s    r…   r”  ÚDMP_Python.is_sqf–  r  r‡   c                óŠ   • U R                   R                  [        U R                  U R                  U R                   5      5      $ r—  )r‘   rŠ  r   rª   r�   r¦   s    r…   r˜  ÚDMP_Python.is_monic›  s,   € ð �u‰u�|‰|œM¨!¯&©&°!·%±%¸¿¹Ó?Ó@Ð@r‡   c                óŠ   • U R                   R                  [        U R                  U R                  U R                   5      5      $ r›  )r‘   rŠ  rQ   rª   r�   r¦   s    r…   rœ  ÚDMP_Python.is_primitive   s-   € ð �u‰u�|‰|Ô.¨q¯v©v°q·u±u¸a¿e¹eÓDÓEÐEr‡   c                ó”   • [        S [        U R                  U R                  U R                  5      R                  5        5       5      $ )rŸ  c              3  ó>   #   • U  H  n[        U5      S :*  v •  M     g7f)rµ   Nr‰  ©r±   rF  s     r…   r³   Ú'DMP_Python.is_linear.<locals>.<genexpr>¨  ó   é € ÐYÒ0X u”3�u“: –?Ò0Xùó   ‚©r¶   r'   rª   r�   r‘   Úkeysr¦   s    r…   r   ÚDMP_Python.is_linear¥  ó3   € ô ÑY´¸A¿F¹FÀAÇEÁEÈ1Ï5É5Ó0Q×0VÑ0VÔ0XÓYÓYÐYr‡   c                ó”   • [        S [        U R                  U R                  U R                  5      R                  5        5       5      $ )r£  c              3  ó>   #   • U  H  n[        U5      S :*  v •  M     g7f)é   Nr‰  r(  s     r…   r³   Ú*DMP_Python.is_quadratic.<locals>.<genexpr>­  r*  r+  r,  r¦   s    r…   r¤  ÚDMP_Python.is_quadraticª  r/  r‡   c                ó:   • [        U R                  5       5      S:*  $ )r§  rµ   )r8  r
  r¦   s    r…   r¨  ÚDMP_Python.is_monomial¯  s   € ô �1—9‘9“;Ó 1Ñ$Ð$r‡   c                ó&   • U R                  5       SL$ )r¬  N)rH  r¦   s    r…   r­  ÚDMP_Python.is_homogeneous´  s   € ð ×"Ñ"Ó$¨DÐ0Ð0r‡   c                óX   • [        U R                  U R                  U R                  5      $ r°  )rl   rª   r�   r‘   r¦   s    r…   r²  ÚDMP_Python.is_irreducible¹  s   € ô ! §¡¨¯©°·±Ó6Ð6r‡   c                óf   • U R                   (       d   [        U R                  U R                  5      $ g©rµ  F)r�   rk   rª   r‘   r¦   s    r…   r¶  ÚDMP_Python.is_cyclotomic¾  s#   € ð �u�uÜ# A§F¡F¨A¯E©EÓ2Ð2àr‡   rŠ   r~   r  rM  r  r  )trê   r  r  r  r  r  r  rŸ   rð  r&  rû   râ   r  rÐ   r¥   rï   rÎ   r4  r5  rO  re  rm  rt  rz  r}  r†  r�  rœ  r£  r¨  r­  r²  r“  r˜  r·  r¿  rÄ  rË  rÑ  rØ  rß  rå  rë  rð  rõ  rú  rÿ  r)  r0  r5  rL  rQ  rW  r`  rd  rh  rl  rp  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+  r2  r9  r@  rD  rH  rN  rQ  rV  rY  rd  rc  rb  ra  rt  r~  r‚  r  rN  rŠ  r�  r”  r˜  rœ  r   r¤  r¨  r­  r²  r¶  r  rŠ   r‡   r…   r    r    Ô  sû  † Ù3à&€Iàñó ðòFò
)ò>ò#ò'ò(4òò+òJò)ò
)ô
Aò+ò
ô
)ô8ò&ò;òò
>ò>ò>ò>ò@ò4ò4ò<ò<ò<ò4ò7ò"ò
=ò=ò?ò"ò
<ò<ò>ô/ò.ò/ò3ò3ò7ò2ò1ò9òô
Cô>òFò,ò"ò
,ò
ò
3ò#ò
(òòò0ò
<ò<ò*ò
"ò
@ò=ò8òò
@ò>ò2ò9òCò:ò5ò5ò=òIò*ò
7ò
9ô<ô
5ò
<ò
5ò
[ò_òZò^òZôEôHð ñ)ó ð)ð ñ/ó ð/ð ñ1ó ð1ð ñ/ó ð/ð ñAó ðAð ñFó ðFð ñZó ðZð ñZó ðZð ñ%ó ð%ð ñ1ó ð1ð ñ7ó ð7ð ñó ór‡   r    c                  ó|  • \ rS rSrSrSrSrS r\S 5       r	S r
\S 5       r\S	 5       r\S
 5       rS rS rS rS rS rS rS rS rS rSuS jrS rS rSvS jrSvS jrS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S% r'S& r(S' r)S( r*S) r+S* r,S+ r-S, r.S- r/S. r0S/ r1S0 r2SwS1 jr3S2 r4S3 r5S4 r6S5 r7S6 r8S7 r9S8 r:S9 r;S: r<SxS; jr=SxS< jr>S= r?S> r@S? rAS@ rBSA rCSB rDSC rESD rFSE rGSF rHSG rISH rJSI rKSJ rLSK rMSL rNSM rOSN rPSO rQSP rRSQ rSSR rTSS rUST rVSU rWSV rXSW rYSX rZSY r[SZ r\S[ r]SvS\ jr^SvS] jr_S^ r`S_ raS` rbSa rcSb rdSc reSd rfSe rgSySf jrhSySg jri\jSh 5       rk\jSi 5       rl\jSj 5       rm\jSk 5       rn\jSl 5       ro\jSm 5       rp\jSn 5       rq\jSo 5       rr\jSp 5       rs\jSq 5       rt\jSr 5       ru\jSs 5       rvStrwg)zrž   iÇ  rŽ   r   )rª   r‘   Ú_clsc                óh   • U R                   U R                  5       U R                  U R                  44$ r~   )ré   r¥   r‘   r�   ró   s    r…   Ú
__reduce__ÚDUP_Flint.__reduce__Î  s&   € Ø�~‰~ §¡£°·±¸$¿(¹(ÐCÐCÐCr‡   c                óT   • U R                  US S S2   X#5      nU R                  X5      $ ©Néÿÿÿÿ)Ú_flint_polyÚfrom_repr—   s       r…   rŸ   ÚDUP_Flint._newÑ  s)   € à�o‰o˜c¡$ B $™i¨Ó2ˆØ�|‰|˜CÓ%Ð%r‡   c                óB   • U R                   R                  5       SSS2   $ )r   NrE  )rª   rÊ   r¦   s    r…   r¥   ÚDUP_Flint.to_listÖ  s   € à�v‰v�}‰}‹™t ˜tÑ$Ð$r‡   c                óh   • [        U5      (       d   eUS:X  d   eU R                  U5      nU" U5      $ r�   )r†   Ú_get_flint_poly_cls)r˜   r™   r‘   r�   Ú	flint_clss        r…   rF  ÚDUP_Flint._flint_polyÚ  s8   € ä& s×+Ñ+Ð+Ð+Ø�a‹xˆˆxØ×+Ñ+¨CÓ0ˆ	Ù˜‹~Ðr‡   c                óÜ   • UR                   (       a  [        R                  $ UR                  (       a  [        R                  $ UR
                  (       a  UR                  $ [        SU-  5      e)Nú%Domain %s is not supported with flint)r   r|   Ú	fmpz_polyr€   Ú	fmpq_polyr�   Ú	_poly_ctxrÑ   )r˜   r‘   s     r…   rL  ÚDUP_Flint._get_flint_poly_clsá  sF   € à�9�9Ü—?‘?Ð"Ø�Y�YÜ—?‘?Ð"Ø�Y�YØ—=‘=Ð äÐFÈÑLÓMÐMr‡   c                óJ  ^^• UR                   (       a2  [        U[        R                  5      (       d   e[        R                  nO¶UR                  (       a2  [        U[        R
                  5      (       d   e[        R
                  nOsUR                  (       aT  [        U[        R                  [        R                  45      (       d   eUR                  5       m[        U5      mUU4S jnO[        SU-  5      e[        R                  U 5      nX$l        Xl        X4l        U$ )z,Create a DMP from the given representation. c                ó   >• T" U T5      $ r~   rŠ   )ÚeÚ_DUP_Flint__clsr²   s    €€r…   Ú<lambda>Ú$DUP_Flint.from_rep.<locals>.<lambda>ú  s   ø€ ™U 1 aœ[r‡   rP  )r   r“   r|   rQ  r€   rR  r�   Ú	nmod_polyÚfmpz_mod_polyÚcharacteristicr•   rÑ   r  rš   r‘   rª   r?  )r˜   r™   r‘   r?  r  rX  r²   s        @@r…   rG  ÚDUP_Flint.from_repì  sË   ù€ ð �9�9Ü˜c¤5§?¡?×3Ñ3Ð3Ð3Ü—?‘?‰DØ�Y�YÜ˜c¤5§?¡?×3Ñ3Ð3Ð3Ü—?‘?‰DØ�Y�YÜ˜c¤E§O¡O´U×5HÑ5HÐ#I×JÑJÐJÐJØ×"Ñ"Ó$ˆAÜ˜“IˆEÝ(‰DäÐFÈÑLÓMÐMä�n‰n˜SÓ!ˆØŒØŒØŒàˆ
r‡   c                ó¦   • [        U 5      [        U5      :w  a  gU R                  UR                  :H  =(       a    U R                  UR                  :H  $ r‰   )r•   r‘   rª   r  s     r…   rð  ÚDUP_Flint._strict_eq  s9   € Ü�‹7”d˜1“gÓØØ�u‰u˜Ÿ™‰~×2 !§&¡&¨A¯F©FÑ"2Ð2r‡   c                óZ   • U R                  U R                  U/5      U R                  5      $ rø   ©rG  r?  r‘   rù   s     r…   rû   ÚDUP_Flint.ground_new
  s!   € à�z‰z˜!Ÿ&™& % ›/¨1¯5©5Ó1Ð1r‡   c                óL   • U R                  U R                  R                  5      $ r~   )rû   r‘   rß   r¦   s    r…   râ   ÚDUP_Flint._one  s   € Ø�|‰|˜AŸE™EŸI™IÓ&Ð&r‡   c                ó   • [         e)z*Unify representations of two polynomials. )rÑ   r  s     r…   r  ÚDUP_Flint.unify  s   € äÐr‡   c                ót   • [         R                  U R                  5       U R                  U R                  5      $ )z1Convert ``f`` to a Python native representation. )r    rŸ   r¥   r‘   r�   r¦   s    r…   rÏ   ÚDUP_Flint.to_DMP_Python  s#   € ä�‰˜qŸy™y›{¨A¯E©E°1·5±5Ó9Ð9r‡   c                ó4   • [        U R                  5       5      $ r5  )r:  r¥   r¦   s    r…   rï   ÚDUP_Flint.to_tuple  s   € ä�Q—Y‘Y“[Ó!Ð!r‡   c                ó‚  • U[         :X  aD  U R                  [        :X  a0  U R                  [        R
                  " U R                  5      U5      $ [        U5      (       aG  [        U R                  5      (       a-  U R                  5       R                  U5      R                  5       $ [        SU R                   SU 35      e)r8  zDUP_Flint: Cannot convert z to )r   r‘   r   rG  r|   rR  rª   r†   rÏ   rÎ   rÐ   rÑ   rÒ   s     r…   rÎ   ÚDUP_Flint._convert  s‰   € à”"‹9˜Ÿ™¤"›Ø—:‘:œeŸošo¨a¯f©fÓ5°sÓ;Ð;Ü$ S×)Ñ)Ô.EÀaÇeÁe×.LÑ.Là—?‘?Ó$×-Ñ-¨cÓ2×?Ñ?ÓAÐAäÐ!;¸A¿E¹E¸7À$ÀsÀeÐLÓMÐMr‡   c                ó�   • U R                   R                  5       X nU R                  U R                  U5      U R                  5      $ r3  )rª   rÊ   rG  r?  r‘   )r§   r7  r8  rÊ   s       r…   r4  ÚDUP_Flint._slice'  s3   € à—‘—‘“ Ð%ˆØ�z‰z˜!Ÿ&™& ›.¨!¯%©%Ó0Ð0r‡   c                ó   • [         er3  rÖ   r6  s       r…   r5  ÚDUP_Flint._slice_lev,  r‡  r‡   Nc                ó  • Ub  UR                   S:X  aK  [        U R                  R                  5       5       VVs/ s H  u  p#U(       d  M  U4U4PM     nnnUSSS2   $ U R	                  5       R                  US9$ s  snnf )rL  NÚlexrE  rA  )Úaliasr[  rª   rÊ   rÏ   rO  )r§   rB  r8  r²   rD  s        r…   rO  ÚDUP_Flint._terms1  st   € à‰=˜EŸK™K¨5Ó0Ü,5°a·f±f·m±m³oÔ,FÔMÒ,F¡D AÌ!“i˜�t˜Q“iÑ,FˆEÑMØ™˜2˜‘;Ðð —?‘?Ó$×+Ñ+°%Ð+Ð8Ð8ùó Ns   ºA<Á	A<c                ó   • [         erd  rÖ   r¦   s    r…   re  ÚDUP_Flint._lift?  r‡  r‡   c                ó    • U R                   (       a  SU 4$ U R                  R                  5       u  pU4U R                  XR                  5      4$ )rl  )rµ   )rN  rª   Ú	deflationrG  r‘   )r§   r  r8  s      r…   rm  ÚDUP_Flint.deflateD  sB   € ð �9�9Ø˜�7ˆNØ�v‰v×ÑÓ!‰ˆØˆt�Q—Z‘Z §5¡5Ó)Ð)Ð)r‡   c                ó   • [         erp  rÖ   rr  s     r…   rt  ÚDUP_Flint.injectQ  r‡  r‡   c                ó   • [         erw  rÖ   ry  s      r…   rz  ÚDUP_Flint.ejectV  r‡  r‡   c                ó   • [         erL  rÖ   r¦   s    r…   r}  ÚDUP_Flint._exclude[  r‡  r‡   c                ó   • [         erP  rÖ   r‡  s     r…   r†  ÚDUP_Flint._permute`  r‡  r‡   c                ód   • U R                  5       R                  5       u  pXR                  5       4$ rŽ  )rÏ   r�  rÐ   r~  s      r…   r�  ÚDUP_Flint.terms_gcde  s+   € ð �‰Ó ×*Ñ*Ó,‰ˆØ—.‘.Ó"Ð"Ð"r‡   c                óT   • U R                  U R                  U-   U R                  5      $ r›  ©rG  rª   r‘   r�  s     r…   rœ  ÚDUP_Flint._add_groundk  ó   € à�z‰z˜!Ÿ&™& 1™* a§e¡eÓ,Ð,r‡   c                óT   • U R                  U R                  U-
  U R                  5      $ r¢  r†  r�  s     r…   r£  ÚDUP_Flint._sub_groundo  rˆ  r‡   c                óT   • U R                  U R                  U-  U R                  5      $ r§  r†  r�  s     r…   r¨  ÚDUP_Flint._mul_grounds  rˆ  r‡   c                óT   • U R                  U R                  U-  U R                  5      $ r¬  r†  r�  s     r…   r­  ÚDUP_Flint._quo_groundw  ó   € à�z‰z˜!Ÿ&™& A™+ q§u¡uÓ-Ð-r‡   c                óŒ   • [        U R                  U5      u  p#U(       a  [        X5      eU R                  X R                  5      $ )z<Exact quotient of ``f`` by an element of the ground domain. )Údivmodrª   r   rG  r‘   )r§   r²   r  r·   s       r…   r²  ÚDUP_Flint._exquo_ground{  s5   € ä�a—f‘f˜aÓ ‰ˆÞÜ% aÓ+Ð+Ø�z‰z˜!ŸU™UÓ#Ð#r‡   c                óZ   • U R                  5       R                  5       R                  5       $ r’  )rÏ   r“  rÐ   r¦   s    r…   r“  ÚDUP_Flint.abs‚  s!   € à�‰Ó ×$Ñ$Ó&×3Ñ3Ó5Ð5r‡   c                óP   • U R                  U R                  * U R                  5      $ r–  r†  r¦   s    r…   r˜  ÚDUP_Flint.neg†  s   € à�z‰z˜1Ÿ6™6˜' 1§5¡5Ó)Ð)r‡   c                óh   • U R                  U R                  UR                  -   U R                  5      $ r¶  r†  r  s     r…   r·  ÚDUP_Flint._addŠ  ó#   € à�z‰z˜!Ÿ&™& 1§6¡6™/¨1¯5©5Ó1Ð1r‡   c                óh   • U R                  U R                  UR                  -
  U R                  5      $ r¾  r†  r  s     r…   r¿  ÚDUP_Flint._subŽ  r™  r‡   c                óh   • U R                  U R                  UR                  -  U R                  5      $ rÃ  r†  r  s     r…   rÄ  ÚDUP_Flint._mul’  r™  r‡   c                óT   • U R                  U R                  S-  U R                  5      $ )rÉ  r2  r†  r¦   s    r…   rË  ÚDUP_Flint.sqr–  r�  r‡   c                óT   • U R                  U R                  U-  U R                  5      $ ro  r†  rÒ  s     r…   rÑ  ÚDUP_Flint._powš  r�  r‡   c                ó"  • U R                  5       UR                  5       -
  S-   n[        UR                  5       U-  U R                  -  UR                  5      u  p4U R	                  X0R
                  5      U R	                  X@R
                  5      4$ )r×  rµ   )rZ  r‘  rL  rª   rG  r‘   ©r§   r  r@  r  r·   s        r…   rØ  ÚDUP_Flint._pdivž  sg   € à�H‰H‹J˜Ÿ™›Ñ# aÑ'ˆÜ�a—d‘d“f˜a‘i !§&¡&Ñ(¨!¯&©&Ó1‰ˆØ�z‰z˜!ŸU™UÓ# Q§Z¡Z°·5±5Ó%9Ð9Ð9r‡   c                óÚ   • U R                  5       UR                  5       -
  S-   nUR                  5       U-  U R                  -  UR                  -  nU R                  X0R                  5      $ )rÞ  rµ   ©rZ  rL  rª   rG  r‘   )r§   r  r@  r  s       r…   rß  ÚDUP_Flint._prem¤  sQ   € à�H‰H‹J˜Ÿ™›Ñ# aÑ'ˆØ�T‰T‹V�Q‰Y˜Ÿ™Ñ 1§6¡6Ñ)ˆØ�z‰z˜!ŸU™UÓ#Ð#r‡   c                óÚ   • U R                  5       UR                  5       -
  S-   nUR                  5       U-  U R                  -  UR                  -  nU R                  X0R                  5      $ )rä  rµ   r¦  )r§   r  r@  r·   s       r…   rå  ÚDUP_Flint._pquoª  sQ   € à�H‰H‹J˜Ÿ™›Ñ# aÑ'ˆØ�T‰T‹V�Q‰Y˜Ÿ™Ñ A§F¡FÑ*ˆØ�z‰z˜!ŸU™UÓ#Ð#r‡   c                ó  • U R                  5       UR                  5       -
  S-   n[        UR                  5       U-  U R                  -  UR                  5      u  p4U(       a  [	        X5      eU R                  X0R                  5      $ )rê  rµ   )rZ  r‘  rL  rª   r   rG  r‘   r£  s        r…   rë  ÚDUP_Flint._pexquo°  sc   € à�H‰H‹J˜Ÿ™›Ñ# aÑ'ˆÜ�a—d‘d“f˜a‘i !§&¡&Ñ(¨!¯&©&Ó1‰ˆÞÜ% aÓ+Ð+Ø�z‰z˜!ŸU™UÓ#Ð#r‡   c                ó†  • U R                   R                  (       aX  [        U R                  UR                  5      u  p#U R	                  X R                   5      U R	                  X0R                   5      4$ U R                  5       R                  UR                  5       5      u  p#UR                  5       UR                  5       4$ rï  )r‘   r”  r‘  rª   rG  rÏ   rð  rÐ   rr  s       r…   rð  ÚDUP_Flint._div¸  sƒ   € à�5‰5�>�>Ü˜!Ÿ&™& !§&¡&Ó)‰DˆAØ—:‘:˜a§¡Ó'¨¯©°A·u±uÓ)=Ð=Ð=ð —?‘?Ó$×)Ñ)¨!¯/©/Ó*;Ó<‰DˆAØ—>‘>Ó# Q§^¡^Ó%5Ð5Ð5r‡   c                óh   • U R                  U R                  UR                  -  U R                  5      $ rô  r†  r  s     r…   rõ  ÚDUP_Flint._remÂ  r™  r‡   c                óh   • U R                  U R                  UR                  -  U R                  5      $ rù  r†  r  s     r…   rú  ÚDUP_Flint._quoÆ  s$   € à�z‰z˜!Ÿ&™& A§F¡FÑ*¨A¯E©EÓ2Ð2r‡   c                óP   • U R                  U5      u  p#U(       a  [        X5      eU$ rþ  )rð  r   rr  s       r…   rÿ  ÚDUP_Flint._exquoÊ  s$   € à�v‰v�a‹y‰ˆÞÜ% aÓ+Ð+Øˆr‡   c                óR   • U R                   R                  5       nUS:X  a  [        nU$ )r(  rE  )rª   rZ  r   )r§   r9  r@  s      r…   r)  ÚDUP_Flint._degreeÑ  s"   € à�F‰F�M‰M‹OˆØ�‹7ÜˆAØˆr‡   c                ó$   • U R                  5       4$ r/  ©r)  r¦   s    r…   r0  ÚDUP_Flint.degree_listØ  s   € à—‘“ÐÐr‡   c                ó"   • U R                  5       $ r3  r·  r¦   s    r…   r5  ÚDUP_Flint.total_degreeÜ  s   € à�y‰y‹{Ðr‡   c                óP   • U R                   U R                   R                  5          $ rK  ©rª   rZ  r¦   s    r…   rL  ÚDUP_Flint.LCà  s   € à�v‰v�a—f‘f—m‘m“oÑ&Ð&r‡   c                ó    • U R                   S   $ )rP  r   ©rª   r¦   s    r…   rQ  ÚDUP_Flint.TCä  s   € à�v‰v�a‰yÐr‡   c                ó(   • Uu  nU R                   U   $ r“  r¿  )r§   rY  r8  s      r…   rW  ÚDUP_Flint._nthè  s   € à‰ˆØ�v‰v�a‰yÐr‡   c                ó>   • U R                  5       R                  5       $ r_  )rÏ   r`  r¦   s    r…   r`  ÚDUP_Flint.max_normí  s   € à�‰Ó ×)Ñ)Ó+Ð+r‡   c                ó>   • U R                  5       R                  5       $ rc  )rÏ   rd  r¦   s    r…   rd  ÚDUP_Flint.l1_normñ  s   € à�‰Ó ×(Ñ(Ó*Ð*r‡   c                ó>   • U R                  5       R                  5       $ rg  )rÏ   rh  r¦   s    r…   rh  ÚDUP_Flint.l2_norm_squaredõ  s   € à�‰Ó ×0Ñ0Ó2Ð2r‡   c                óh  • U R                   nUR                  (       a`  U R                  R                  5       nU R	                  U R                  U R                  R                  5       5      U R                   5      nX#4$ UR                  (       d  UR                  (       a  UR                  U 4$ [        erk  )r‘   r€   rª   ÚdenomrG  r?  Únumerr   Úis_FiniteFieldrß   r×   )r§   r´  rÊ  rË  s       r…   rl  ÚDUP_Flint.clear_denomsù  sr   € à�E‰EˆØ�7�7Ø—F‘F—L‘L“NˆEØ—J‘J˜qŸv™v a§f¡f§l¡l£nÓ5°q·u±uÓ=ˆEØ�<ÐØ�W�W˜×(×(Ø—5‘5˜!�8ˆOä%Ð%r‡   c                ó0  • US:X  d   eU R                   R                  (       aI  U R                  n[        U5       H  nUR	                  5       nM     U R                  X0R                   5      $ U R                  5       R                  XS9R                  5       $ )ro  r   )r7  r9  )	r‘   r”  rª   ÚrangeÚintegralrG  rÏ   rp  rÐ   ©r§   r7  r9  r™   r]  s        r…   rp  ÚDUP_Flint._integrate  sq   € à�A‹vˆˆvØ�5‰5�>�>Ø—&‘&ˆCÜ˜1–X�Ø—l‘l“n’ñ à—:‘:˜c§5¡5Ó)Ð)à—?‘?Ó$×/Ñ/°!Ð/Ð9×FÑFÓHÐHr‡   c                ó¤   • US:X  d   eU R                   n[        U5       H  nUR                  5       nM     U R                  X0R                  5      $ )z1Computes the ``m``-th order derivative of ``f``. r   )rª   rÏ  Ú
derivativerG  r‘   rÑ  s        r…   rx  ÚDUP_Flint._diff  sC   € à�A‹vˆˆvØ�f‰fˆÜ�q–ˆAØ—.‘.Ó"ŠCñ à�z‰z˜#Ÿu™uÓ%Ð%r‡   c                ó@   • U R                  5       R                  U5      $ r~   )rÏ   r€  r†  s     r…   r€  ÚDUP_Flint._eval  s   € ð
 �‰Ó ×&Ñ& qÓ)Ð)r‡   c                ó   • [         er~   rÖ   r�  s      r…   r  ÚDUP_Flint._eval_lev  rý   r‡   c                ó    • U R                  5       R                  UR                  5       5      u  p#UR                  5       UR                  5       4$ )z#Half extended Euclidean algorithm. )rÏ   r�  rÐ   r§  s       r…   r�  ÚDUP_Flint._half_gcdex#  s;   € à�‰Ó ×,Ñ,¨Q¯_©_Ó->Ó?‰ˆØ�~‰~Ó §¡Ó!1Ð1Ð1r‡   c                óò   • U R                   R                  UR                   5      u  p#nU R                  X0R                  5      U R                  X@R                  5      U R                  X R                  5      4$ )zExtended Euclidean algorithm. )rª   ÚxgcdrG  r‘   )r§   r  r¨  r;  rv  s        r…   r•  ÚDUP_Flint._gcdex(  sP   € à—&‘&—+‘+˜aŸf™fÓ%‰ˆˆaØ�z‰z˜!ŸU™UÓ# Q§Z¡Z°·5±5Ó%9¸1¿:¹:ÀaÏÉÓ;OÐOÐOr‡   c                óR  • U R                   nUR                  (       aP  U R                  R                  UR                  5      u  p4nUSU-  S-   :w  a  [	        S5      eU R                  XB5      $ U R                  5       R                  UR                  5       5      R                  5       $ )r›  r   rµ   úzero divisor)	r‘   r”  rª   rÝ  r   rG  rÏ   rœ  rÐ   )r§   r  r´  rÈ  ÚF_invrE  s         r…   rœ  ÚDUP_Flint._invert-  s‚   € à�E‰EˆØ�:�:ØŸF™FŸK™K¨¯©Ó/‰MˆC˜ð �a˜‘e˜a‘iÓÜ# NÓ3Ð3Ø—:‘:˜eÓ'Ð'ð —?‘?Ó$×,Ñ,¨Q¯_©_Ó->Ó?×LÑLÓNÐNr‡   c                ó\   • U R                  5       R                  U5      R                  5       $ r¯  )rÏ   r£  rÐ   rÒ  s     r…   r£  ÚDUP_Flint._revert<  s%   € ð �‰Ó ×(Ñ(¨Ó+×8Ñ8Ó:Ð:r‡   c                ó¦   • U R                  5       R                  UR                  5       5      nU Vs/ s H  oR                  5       PM     sn$ s  snf r©  )rÏ   rª  rÐ   r³  s      r…   rª  ÚDUP_Flint._subresultantsB  s?   € ð �O‰OÓ×,Ñ,¨Q¯_©_Ó->Ó?ˆÙ+,Ó.ª1 a—‘Ö!©1Ñ.Ð.ùÒ.s   ²Ac                ó¬   • U R                  5       R                  UR                  5       5      u  p#X# Vs/ s H  oR                  5       PM     sn4$ s  snf r°  )rÏ   r²  rÐ   r·  s       r…   r²  ÚDUP_Flint._resultant_includePRSH  sF   € ð —‘Ó"×8Ñ8¸¿¹Ó9JÓK‰ˆØ°Ó3²¨1—n‘nÖ&±Ñ3Ð3Ð3ùÒ3s   ´Ac                ó\   • U R                  5       R                  UR                  5       5      $ )z'Computes resultant of ``f`` and ``g``. )rÏ   r³  r  s     r…   r³  ÚDUP_Flint._resultantN  s#   € ð �‰Ó ×+Ñ+¨A¯O©OÓ,=Ó>Ð>r‡   c                ó>   • U R                  5       R                  5       $ rº  )rÏ   r¼  r¦   s    r…   r¼  ÚDUP_Flint.discriminantS  s   € ð �‰Ó ×-Ñ-Ó/Ð/r‡   c                óh   • U R                  U5      nX R                  U5      UR                  U5      4$ r¿  )rÈ  r   )r§   r  r¨  s      r…   rÀ  ÚDUP_Flint._cofactorsX  s*   € à�E‰E�!‹HˆØ—'‘'˜!“*˜aŸg™g a›jÐ(Ð(r‡   c                ó€   • U R                  U R                  R                  UR                  5      U R                  5      $ rÆ  )rG  rª   rÈ  r‘   r  s     r…   rÇ  ÚDUP_Flint._gcd]  s(   € à�z‰z˜!Ÿ&™&Ÿ*™* Q§V¡VÓ,¨a¯e©eÓ4Ð4r‡   c                ól  • U (       a  U(       d%  U R                  U R                  R                  5      $ U R                  U5      R	                  U R                  U5      5      nUR                  R                  (       a  UR                  5       nU$ UR                  5       S:  a  UR                  5       nU$ )rÎ  r   )
rû   r‘   rÜ   rÄ  rÿ  rÇ  r”  rë  rL  r˜  )r§   r  rA  s      r…   rÏ  ÚDUP_Flint._lcma  s|   € ö –aØ—<‘< §¡§
¡
Ó+Ð+à�F‰F�1‹I×Ñ˜QŸV™V A›YÓ'ˆà�5‰5�>�>Ø—‘“	ˆAð ˆð �T‰T‹V�a‹ZØ—‘“ˆAàˆr‡   c                ó¾  • U R                   UR                   :X  d   eU R                   nUR                  (       d$  UR                  (       d  UR                  (       d   eUR                  (       aK  U R	                  U5      nU R                  U5      UR                  U5      pTUR                  UR                  XE4$ UR                  (       a%  U R                  5       u  pdUR                  5       u  puOUR                  U pFUR                  UpWUR                  U5      nXx-  Xh-  pgUR	                  U5      n	UR                  U	5      UR                  U	5      pTUR                  5       S:  n
UR                  5       S:  nU
(       a'  U(       a   UR                  5       UR                  5       pTO3U
(       a  U* UR                  5       pGOU(       a  U* UR                  5       pWXvXE4$ )rÖ  r   )r‘   r   r€   rÌ  rÇ  r   rß   rl  rÈ  rL  r˜  )r§   r  r´  r¨  r€  r¹  rË  rÊ  ÚcHÚHÚf_negÚg_negs               r…   rØ  ÚDUP_Flint._cancelp  sY  € à�u‰u˜Ÿ™‹~Ðˆ~Ø�E‰Eˆð �w�w˜!Ÿ'Ÿ' Q×%5×%5Ð5Ð5à××Ø—‘�q“	ˆAØ—7‘7˜1“:˜qŸw™w q›zˆqØ—5‘5˜!Ÿ%™% Ð%Ð%à�7�7Ø—N‘NÓ$‰EˆBØ—N‘NÓ$‰EˆB�à—E‘E˜1�Ø—E‘E˜1�à�V‰V�B‹ZˆØ‘˜2™8ˆBà�F‰F�1‹IˆØ�w‰w�q‹z˜1Ÿ7™7 1›:ˆ1à—‘“˜‘
ˆØ—‘“˜‘
ˆæ–UØ—5‘5“7˜AŸE™E›G‰qÞØ�C˜Ÿ™›‘ÞØ�C˜Ÿ™›�à�qˆ|Ðr‡   c                ón   • U R                  U5      u  p#pEUR                  U5      UR                  U5      4$ rÕ  )rØ  r¨  rÉ  s         r…   r×  ÚDUP_Flint._cancel_include—  s0   € à—y‘y “|‰ˆ�Ø�}‰}˜RÓ  !§-¡-°Ó"3Ð3Ð3r‡   c                ó\   • U R                  5       R                  U5      R                  5       $ rá  )rÏ   râ  rÐ   rã  s     r…   râ  ÚDUP_Flint._truncœ  s#   € à�‰Ó ×'Ñ'¨Ó*×7Ñ7Ó9Ð9r‡   c                ó@   • U R                  U R                  5       5      $ rê  )r²  rL  r¦   s    r…   rë  ÚDUP_Flint.monic   s   € ð �‰˜qŸt™t›vÓ&Ð&r‡   c                ó>   • U R                  5       R                  5       $ rî  )rÏ   rï  r¦   s    r…   rï  ÚDUP_Flint.content¥  s   € ð �‰Ó ×(Ñ(Ó*Ð*r‡   c                óœ   • U R                  5       nU R                  (       a  U R                  R                  U 4$ U R	                  U5      nX4$ rò  )rï  rN  r‘   rÜ   r²  )r§   rÖ  Úprims      r…   ró  ÚDUP_Flint.primitiveª  s<   € à�y‰y‹{ˆØ�9�9Ø—5‘5—:‘:˜q�=Ð Ø�‰˜tÓ$ˆØˆzÐr‡   c                ól   • U R                  U R                  UR                  5      U R                  5      $ rö  r†  r  s     r…   r÷  ÚDUP_Flint._compose²  s#   € à�z‰z˜!Ÿ&™& §¡›.¨!¯%©%Ó0Ð0r‡   c                ó„   • U R                  5       R                  5        Vs/ s H  oR                  5       PM     sn$ s  snf rÛ  )rÏ   rþ  rÐ   r  s     r…   rþ  ÚDUP_Flint._decompose¶  s1   € à+,¯?©?Ó+<×+GÑ+GÔ+IÓKÒ+I a—‘Ö!Ñ+IÑKÐKùÒKó   ¡=c                ó¤   • U R                  XR                  R                  /5      nU R                  U R	                  U5      U R                  5      $ rÞ  )r?  r‘   rß   rG  rª   )r§   r‚  Úx_plus_as      r…   r  ÚDUP_Flint._shiftº  s8   € à—6‘6˜1Ÿe™eŸi™i˜.Ó)ˆØ�z‰z˜!Ÿ&™& Ó*¨A¯E©EÓ2Ð2r‡   c                óž   • U R                  5       UR                  5       UR                  5       pTnUR                  XE5      R                  5       $ rã  )rÏ   r  rÐ   )r§   rä  r  r€  rˆ  r  s         r…   r  ÚDUP_Flint._transform¿  s:   € à—/‘/Ó# Q§_¡_Ó%6¸¿¹Ó8IˆaˆØ�{‰{˜1Ó ×-Ñ-Ó/Ð/r‡   c                ó„   • U R                  5       R                  5        Vs/ s H  oR                  5       PM     sn$ s  snf ræ  )rÏ   r  rÐ   r  s     r…   r  ÚDUP_Flint._sturmÄ  s1   € à+,¯?©?Ó+<×+CÑ+CÔ+EÓGÒ+E a—‘Ö!Ñ+EÑGÐGùÒGr  c                ó>   • U R                  5       R                  5       $ ré  )rÏ   r#  r¦   s    r…   r#  ÚDUP_Flint._cauchy_upper_boundÈ  ó   € à�‰Ó ×4Ñ4Ó6Ð6r‡   c                ó>   • U R                  5       R                  5       $ rí  )rÏ   r+  r¦   s    r…   r+  ÚDUP_Flint._cauchy_lower_boundÌ  r  r‡   c                ó>   • U R                  5       R                  5       $ rð  )rÏ   r2  r¦   s    r…   r2  Ú%DUP_Flint._mignotte_sep_bound_squaredÐ  s   € à�‰Ó ×<Ñ<Ó>Ð>r‡   c                ó˜   • U R                  5       nUR                  5        VVs/ s H  u  p#UR                  5       U4PM     snn$ s  snnf ró  )rÏ   r:  rÐ   )r§   r€  r  r  s       r…   r9  ÚDUP_Flint._gff_listÔ  s:   € à�O‰OÓˆØ34·:±:´<ÔA²<©4¨1�!—.‘.Ó" AÓ&±<ÒAÐAùÓAó   ¤Ac                ó   • [         er?  rÖ   r¦   s    r…   r@  ÚDUP_Flint.normÙ  r‡  r‡   c                ó   • [         erC  rÖ   r¦   s    r…   rD  ÚDUP_Flint.sqf_normÞ  r‡  r‡   c                ó^   • U R                  U R                  U R                  5       5      5      $ rG  )rÿ  rÇ  rx  r¦   s    r…   rH  ÚDUP_Flint.sqf_partã  s    € à�x‰x˜Ÿ™˜qŸw™w›yÓ)Ó*Ð*r‡   c                óœ   • U R                  5       R                  US9u  p#X# VVs/ s H  u  pEUR                  5       U4PM     snn4$ s  snnf ©rL  )r¶   )rÏ   rN  rÐ   rü  s         r…   rN  ÚDUP_Flint.sqf_listç  sK   € ð Ÿ™Ó*×3Ñ3¸Ð3Ð<‰ˆØ¸'ÔCº'±$°!˜Ÿ™Ó)¨1Ó-¹'ÒCÐCÐCùÓCs   ¥Ac                ó–   • U R                  5       R                  US9nU VVs/ s H  u  p4UR                  5       U4PM     snn$ s  snnf r!  )rÏ   rQ  rÐ   r   s        r…   rQ  ÚDUP_Flint.sqf_list_includeí  sB   € à—/‘/Ó#×4Ñ4¸Ð4Ð=ˆÙ3:Ô<²7©4¨1�!—.‘.Ó" AÓ&±7Ò<Ð<ùÓ<s   £Ac                ó¼  • U R                   R                  (       d  U R                   R                  (       aN  U R                  R	                  5       u  pU VVs/ s H"  u  p4U R                  X0R                   5      U4PM$     nnnO¹U R                   R                  (       a†  U R                  R	                  5       u  pU VVs/ s H"  u  p4U R                  X0R                   5      U4PM$     nnn/ nU H0  u  p4UR                  5       u  pcXU-  -  nUR                  X445        M2     O[        SU R                   -  5      eU R                  U5      nX4$ s  snnf s  snnf )rU  rP  )r‘   r   r�   rª   ÚfactorrG  r€   rl  r  rÑ   r	   )r§   rú   rý  r  r  Úfactors_monicr@  s          r…   rV  ÚDUP_Flint.factor_listò  s  € ð �5‰5�;�;˜!Ÿ%™%Ÿ+Ÿ+àŸV™VŸ]™]›_‰NˆEÙ>EÔGºg±d°a˜Ÿ™ A§u¡uÓ-¨qÓ1¹gˆGÑGˆGà�U‰U�[�[ð ŸV™VŸ]™]›_‰NˆEÙDKÔMÂG¹D¸A˜qŸz™z¨!¯U©UÓ3°QÓ7ÁGˆMÑMð ˆGÛ%‘�Ø—~‘~Ó'‘�Ø˜A™‘�Ø—‘ ˜vÖ&ò &ô ÐFÈÏÉÑNÓOÐOð —/‘/ 'Ó*ˆàˆ~Ðùó- Hùó Ns   Á)EÃ)Ec                ó˜   • U R                  5       R                  5       nU VVs/ s H  u  p#UR                  5       U4PM     snn$ s  snnf rT  )rÏ   rY  rÐ   r  s       r…   rY  ÚDUP_Flint.factor_list_include	  s?   € ð —/‘/Ó#×7Ñ7Ó9ˆÙ3:Ô<²7©4¨1�!—.‘.Ó" AÓ&±7Ò<Ð<ùÓ<r  c                óÆ   ^ • U VVs/ s H  u  p#UR                  5       U4PM     nnn[        USS9nU 4S jnU VVs/ s H  u  p#U" U5      U4PM     snn$ s  snnf s  snnf )z+Sort a list of factors to canonical order. T)Úmultiplec                óf   >• TR                  TR                  U S S S2   5      TR                  5      $ rD  rb  )r  r§   s    €r…   rY  Ú)DUP_Flint._sort_factors.<locals>.<lambda> 	  s$   ø€  §¡¨A¯F©F°1±T°r°T±7«O¸Q¿U¹UÔ!Cr‡   )r¥   r	   )r§   rý  r  r  Úto_dup_flints   `    r…   r	   ÚDUP_Flint._sort_factors	  sa   ø€ ñ 29Ô:²©¨�Q—Y‘Y“[ !Ó$±ˆÑ:Ü °$Ñ7ˆÜCˆÙ29Ô;²'©$¨!‘,˜q“/ 1Ó%±'Ò;Ð;ùó ;ùó <s
   ‡A½Ac                óB   • U R                  5       R                  XX45      $ r~   )rÏ   rd  ri  s        r…   rd  ÚDUP_Flint._isolate_real_roots#	  s   € Ø�‰Ó ×4Ñ4°S¸sÓIÐIr‡   c                óB   • U R                  5       R                  XX45      $ r~   )rÏ   rc  ri  s        r…   rc  Ú!DUP_Flint._isolate_real_roots_sqf&	  s   € Ø�‰Ó ×8Ñ8¸À3ÓMÐMr‡   c                óB   • U R                  5       R                  XX45      $ r~   )rÏ   rb  ri  s        r…   rb  ÚDUP_Flint._isolate_all_roots)	  s   € ð �‰Ó ×3Ñ3°C¸cÓHÐHr‡   c                óB   • U R                  5       R                  XX45      $ r~   )rÏ   ra  ri  s        r…   ra  Ú DUP_Flint._isolate_all_roots_sqf/	  s   € Ø�‰Ó ×7Ñ7¸À#ÓLÐLr‡   c                óD   • U R                  5       R                  XX4U5      $ r~   )rÏ   rt  ru  s         r…   rt  ÚDUP_Flint._refine_real_root2	  s   € Ø�‰Ó ×2Ñ2°1¸ÀTÓJÐJr‡   c                ó<   • U R                  5       R                  XS9$ r  )rÏ   r~  r}  s      r…   r~  ÚDUP_Flint.count_real_roots5	  s   € à�‰Ó ×1Ñ1°cÐ1ÐCÐCr‡   c                ó<   • U R                  5       R                  XS9$ r  )rÏ   r‚  r}  s      r…   r‚  ÚDUP_Flint.count_complex_roots9	  s   € à�‰Ó ×4Ñ4¸Ð4ÐFÐFr‡   c                ó$   • U R                   (       + $ r…  r¿  r¦   s    r…   rN  ÚDUP_Flint.is_zero=	  s   € ð —6‘6ŒzÐr‡   c                óH   • U R                   U R                  R                  :H  $ r‰  )rª   r‘   rß   r¦   s    r…   rŠ  ÚDUP_Flint.is_oneB	  s   € ð �v‰v˜Ÿ™Ÿ™Ñ"Ð"r‡   c                ó<   • U R                   R                  5       S:*  $ )rŽ  r   r¼  r¦   s    r…   r�  ÚDUP_Flint.is_groundG	  ó   € ð �v‰v�}‰}‹ !Ñ#Ð#r‡   c                ó<   • U R                   R                  5       S:*  $ )rŸ  rµ   r¼  r¦   s    r…   r   ÚDUP_Flint.is_linearL	  rE  r‡   c                ó<   • U R                   R                  5       S:*  $ )r£  r2  r¼  r¦   s    r…   r¤  ÚDUP_Flint.is_quadraticQ	  rE  r‡   c                ó²   ^• U R                   mTR                  5       S:  =(       d1    [        U4S j[        TR                  5       5       5       5      (       + $ )r§  r   c              3  ó.   >#   • U  H
  nTU   v •  M     g 7fr~   rŠ   )r±   r8  Úfrs     €r…   r³   Ú(DUP_Flint.is_monomial.<locals>.<genexpr>Z	  s   øé € Ð)LÒ9K°A¨"¨Q®%Ò9Kùs   ƒ)rª   rZ  ÚanyrÏ  )r§   rL  s    @r…   r¨  ÚDUP_Flint.is_monomialV	  s<   ø€ ð �V‰VˆØ�y‰y‹{˜Q‰×L¤cÔ)L¼¸r¿y¹y»{Ô9KÓ)LÓ&LÔ"LÐLr‡   c                óP   • U R                  5       U R                  R                  :H  $ r—  )rL  r‘   rß   r¦   s    r…   r˜  ÚDUP_Flint.is_monic\	  s   € ð �t‰t‹v˜Ÿ™Ÿ™Ñ"Ð"r‡   c                ó6   • U R                  5       R                  $ r›  )rÏ   rœ  r¦   s    r…   rœ  ÚDUP_Flint.is_primitivea	  s   € ð �‰Ó ×-Ñ-Ð-r‡   c                ó6   • U R                  5       R                  $ r«  )rÏ   r­  r¦   s    r…   r­  ÚDUP_Flint.is_homogeneousf	  s   € ð �‰Ó ×/Ñ/Ð/r‡   c                óŽ   • U R                   R                  U R                   R                  5       5      nUR                  5       S:*  $ )r“  r   )rª   rÈ  rÔ  rZ  r  s     r…   r”  ÚDUP_Flint.is_sqfk	  s3   € ð �F‰F�J‰J�q—v‘v×(Ñ(Ó*Ó+ˆØ�x‰x‹z˜Q‰Ðr‡   c                ó�   • U R                   R                  5       u  p[        U5      S:X  a  g[        U5      S:X  a  US   S   S:H  $ g)r±  r   Trµ   F)rª   r&  r8  )r§   rE  rý  s      r…   r²  ÚDUP_Flint.is_irreducibleq	  sF   € ð —V‘V—]‘]“_‰
ˆÜˆw‹<˜1ÓØÜ�‹\˜QÓØ˜1‘:˜a‘= AÑ%Ð%àr‡   c                ó  • U R                   R                  (       a   U R                  [        5      n U R                   R
                  (       a#  [        U R                  R                  5       5      $ g! [         a     gf = fr<  )	r‘   r€   rÓ   r   r   r   Úboolrª   r¶  r¦   s    r…   r¶  ÚDUP_Flint.is_cyclotomic|	  s_   € ð �5‰5�;�;ðØ—I‘Iœb“M�ð �5‰5�;�;Ü˜Ÿ™×,Ñ,Ó.Ó/Ð/ð øô "ó Ùðús   �A1 Á1
A>Á=A>rŠ   r~   r  rM  r  r  )xrê   r  r  r  r  r�   r  rA  r  rŸ   r¥   rF  rL  rG  rð  rû   râ   r  rÏ   rï   rÎ   r4  r5  rO  re  rm  rt  rz  r}  r†  r�  rœ  r£  r¨  r­  r²  r“  r˜  r·  r¿  rÄ  rË  rÑ  rØ  rß  rå  rë  rð  rõ  rú  rÿ  r)  r0  r5  rL  rQ  rW  r`  rd  rh  rl  rp  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+  r2  r9  r@  rD  rH  rN  rQ  rV  rY  r	   rd  rc  rb  ra  rt  r~  r‚  r  rN  rŠ  r�  r   r¤  r¨  r˜  rœ  r­  r”  r²  r¶  r  rŠ   r‡   r…   rž   rž   Ç  s:  † Ù3à
€Cà'€IòDð ñ&ó ð&ò%ð ñó ðð ñNó ðNð ñó ðò03ò
2ò'òò:ò"òNò1ò
"ô
9ò"ò
*ô"ô
"ò
"ò
"ò
#ò-ò-ò-ò.ò$ò6ò*ò2ò2ò2ò.ò.ò:ò$ò$ò$ò6ò2ò3òôò òò'òòò
,ò+ò3ò
&ô	Iô&ò*ò"ò2ò
Pò
Oò;ò/ò4ò?ò
0ò
)ò
5òò%òN4ò
:ò'ò
+ò
ò1òLò3ò
0ò
Hò7ò7ò?òBò
"ò
"ò
+ôDô=ò
ò<	=ò<òJòNòIòMòKôDôGð ñó ðð ñ#ó ð#ð ñ$ó ð$ð ñ$ó ð$ð ñ$ó ð$ð ñMó ðMð
 ñ#ó ð#ð ñ.ó ð.ð ñ0ó ð0ð ñó ðð
 ñó ðð ñó ór‡   rž   c                óD   • [        [        XU5      [        XU5      X25      $ r~   )ÚDMFr   ©ÚnumÚdenr�   r‘   s       r…   Úinit_normal_DMFrb  ‹	  s$   € ÜŒz˜# CÓ(Ü˜# CÓ(¨#ó4ð 4r‡   c                  óp  • \ rS rSrSrSrS0S jr\S0S j5       rS r	\S0S j5       r
S	 rS
 rS rS rS1S jrS2S jr\S 5       r\S 5       rS rS rS rS rS rS rS rS rS rS r\rS3S jr\S 5       r \S 5       r!S r"S r#S  r$S! r%S" r&S# r'S$ r(S% r)S& r*S' r+S( r,S) r-S* r.S+ r/S, r0S- r1S. r2S/r3g)4r^  i�	  z'Dense Multivariate Fractions over `K`. r_  Nc                óz   • U R                  XU5      u  pEn[        XEX25      u  pEX@l        XPl        X0l        X l        g r~   )Ú_parserc   r`  ra  r�   r‘   )rô   r™   r‘   r�   r`  ra  s         r…   Ú__init__ÚDMF.__init__•	  s8   € ØŸ™ C¨cÓ2‰ˆ�#Ü˜c¨Ó1‰ˆàŒØŒØŒØ�r‡   c                óŠ   • U R                  XU5      u  pEn[        R                  U 5      nXFl        XVl        X6l        X&l        U$ r~   )re  r  rš   r`  ra  r�   r‘   )r˜   r™   r‘   r�   r`  ra  r  s          r…   r–   ÚDMF.newž	  s=   € àŸ
™
 3¨SÓ1‰ˆ�#ä�n‰n˜SÓ!ˆàŒØŒØŒØŒàˆ
r‡   c                óN   • U R                  XR                  U R                  5      $ r~   )r–   r‘   r�   )rô   r™   s     r…   rû   ÚDMF.ground_new«	  s   € Ø�x‰x˜ŸX™X t§x¡xÓ0Ð0r‡   c                óÄ  • [        U[        5      (       aØ  Uu  pEUbC  [        U[        5      (       a  [        XCU5      n[        U[        5      (       a  [        XSU5      nO-[	        U5      u  pF[	        U5      u  pWXg:X  a  UnO[        S5      e[        XS5      (       a  [        S5      e[        XC5      (       a  [        X25      nOš[        XSU5      (       a  [        XCU5      n[        XSU5      nOpUnUbS  [        U[        5      (       a  [        XCU5      nO>[        U[        5      (       d  [        UR                  U5      U5      nO[	        U5      u  pC[        X25      nXEU4$ )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`  ra  Únum_levÚden_levs           r…   re  Ú
DMF._parse®	  s5  € ä�cœ5×!Ñ!Ø‰HˆCà‰Ü˜c¤4×(Ñ(Ü'¨°#Ó6�Cä˜c¤4×(Ñ(Ü'¨°#Ó6�Cøä+¨CÓ0‘�Ü+¨CÓ0‘�àÓ%Ø!‘Cä$Ð%DÓEÐEä˜#×#Ñ#Ü'Ð(>Ó?Ð?ä˜#×#Ñ#Ü˜cÓ'‘ä! #¨C×0Ñ0Ü! #¨CÓ0�CÜ! #¨CÓ0�CøàˆCà‰Ü˜c¤4×(Ñ(Ü'¨°#Ó6‘CÜ# C¬×.Ñ.Ü$ S§[¡[°Ó%5°sÓ;�Cøä'¨Ó,‘�ä˜#Ó#ˆCà˜ˆ}Ðr‡   c                óŠ   • U R                   R                  < SU R                  < SU R                  < SU R                  < S3$ )Nz((rç   z), rè   )ré   rê   r`  ra  r‘   r¦   s    r…   rë   ÚDMF.__repr__Ú	  s'   € Ø%&§[¡[×%9Ô%9¸1¿5¼5À!Ç%Ä%ÈÏÌÐOÐOr‡   c                óê   • [        U R                  R                  [        U R                  U R
                  5      [        U R                  U R
                  5      U R
                  U R                  45      $ r~   )rî   ré   rê   r1   r`  r�   ra  r‘   r¦   s    r…   rð   ÚDMF.__hash__Ý	  sO   € Ü�Q—[‘[×)Ñ)¬<¸¿¹¸q¿u¹uÓ+EÜ˜Ÿ™ §¡Ó&¨¯©¨q¯u©uð6ó 7ð 	7r‡   c                óš  ^ ^• [        U[        5      (       a  T R                  UR                  :w  a  [        ST < SU< 35      eT R                  UR                  :X  aE  T R                  T R                  T R
                  T R                  T R                  4UR                  4$ T R                  T R                  R                  UR                  5      snm[        T R                  UT R                  T5      [        T R                  UT R                  T5      4n[        UR                  X!R                  T5      nSSU4UU 4S jjnUTXSU4$ )z0Unify a multivariate fraction and a polynomial. r   r  TFc                óš   >• U(       a  U(       d  X-  $ US-
  nU(       a  [        XUT5      u  pTR                  R                  X4TU5      $ r¤  ©rc   ré   r–   ©r`  ra  rÚ  Úkillr�   r‘   r§   s        €€r…   r&  ÚDMF.poly_unify.<locals>.perð	  óE   ø€ ÞÞØ"™w˜à! A™g˜æÜ)¨#°C¸Ó=‘H�Cà—{‘{—‘¨ z°3¸Ó<Ð<r‡   )r“   rŒ   r�   rz   r‘   r&  r`  ra  rª   r  r   ©r§   r  r�   r€  r¹  r&  r‘   s   `     @r…   Ú
poly_unifyÚDMF.poly_unifyá	  s÷   ù€ ä˜!œS×!Ñ! Q§U¡U¨a¯e©e£^Ý#ÃÂAÐ$FÓGÐGà�5‰5�A—E‘E‹>Ø—E‘E˜1Ÿ5™5 !§%¡%¨!¯%©%°·±¨¸¿¹Ð@Ð@à—u‘u˜aŸe™eŸk™k¨!¯%©%Ó0ˆHˆC�ä˜QŸU™U C¨¯©°Ó4Ü˜QŸU™U C¨¯©°Ó4ð6ˆAô ˜AŸF™F C¯©°Ó4ˆAà%)°¸3÷ 
=ð 
=ð ˜˜S QÐ&Ð&r‡   c                óô  ^ ^• [        U[        5      (       a  T R                  UR                  :w  a  [        ST < SU< 35      eT R                  UR                  :X  aQ  T R                  T R                  T R
                  T R                  T R                  4UR                  UR                  44$ T R                  T R                  R                  UR                  5      snm[        T R                  UT R                  T5      [        T R                  UT R                  T5      4n[        UR                  X!R                  T5      [        UR                  X!R                  T5      4nSSU4UU 4S jjnUTXSU4$ )z5Unify representations of two multivariate fractions. r   r  TFc                óš   >• U(       a  U(       d  X-  $ US-
  nU(       a  [        XUT5      u  pTR                  R                  X4TU5      $ r¤  rw  rx  s        €€r…   r&  ÚDMF.frac_unify.<locals>.per
  r{  r‡   )
r“   r^  r�   rz   r‘   r&  r`  ra  r  r   r|  s   `     @r…   Ú
frac_unifyÚDMF.frac_unifyþ	  s!  ù€ ä˜!œS×!Ñ! Q§U¡U¨a¯e©e£^Ý#ÃÂAÐ$FÓGÐGà�5‰5�A—E‘E‹>Ø—E‘E˜1Ÿ5™5 !§%¡%¨!¯%©%°·±¨Ø*+¯%©%°·±¨ð9ð 9ð —u‘u˜aŸe™eŸk™k¨!¯%©%Ó0ˆHˆC�ä˜QŸU™U C¨¯©°Ó4Ü˜QŸU™U C¨¯©°Ó4ð6ˆAô ˜QŸU™U C¯©°Ó4Ü˜QŸU™U C¯©°Ó4ð6ˆAð &*°¸3÷ 
=ð 
=ð ˜˜S QÐ&Ð&r‡   c                óÂ   • U R                   U R                  peU(       a  U(       d  X-  $ US-  nU(       a  [        XXV5      u  pU R                  R	                  X4Xe5      $ )z.Create a DMF out of the given representation. rµ   )r�   r‘   rc   ré   r–   )r§   r`  ra  rÚ  ry  r�   r‘   s          r…   r&  ÚDMF.per
  sO   € à—5‘5˜!Ÿ%™%ˆSæÞØ‘w�à�q‘�æÜ! #¨CÓ5‰HˆCà�{‰{�‰ ˜z¨3Ó4Ð4r‡   c                óp   • U R                   nU(       a  U(       d  U$ US-  n[        XR                  U5      $ )r$  rµ   )r�   rŒ   r‘   )r§   r™   ry  r�   s       r…   Úhalf_perÚDMF.half_per,
  s0   € à�e‰eˆæÞØ�
à�q‘�ä�3Ÿ™˜sÓ#Ð#r‡   c                ó&   • U R                  SX!5      $ r�   ©r–   rÛ   s      r…   rÜ   ÚDMF.zero8
  ó   € à�w‰w�q˜#Ó#Ð#r‡   c                ó&   • U R                  SX!5      $ r¤  rŠ  rÛ   s      r…   rß   ÚDMF.one<
  rŒ  r‡   c                ó8   • U R                  U R                  5      $ )z Returns the numerator of ``f``. )r‡  r`  r¦   s    r…   rË  Ú	DMF.numer@
  ó   € à�z‰z˜!Ÿ%™%Ó Ð r‡   c                ó8   • U R                  U R                  5      $ )z"Returns the denominator of ``f``. )r‡  ra  r¦   s    r…   rÊ  Ú	DMF.denomD
  r‘  r‡   c                óN   • U R                  U R                  U R                  5      $ )z4Remove common factors from ``f.num`` and ``f.den``. )r&  r`  ra  r¦   s    r…   rÚ  Ú
DMF.cancelH
  s   € à�u‰u�Q—U‘U˜AŸE™EÓ"Ð"r‡   c                óŠ   • U R                  [        U R                  U R                  U R                  5      U R
                  SS9$ )r—  F©rÚ  )r&  r8   r`  r�   r‘   ra  r¦   s    r…   r˜  ÚDMF.negL
  s0   € à�u‰u”W˜QŸU™U A§E¡E¨1¯5©5Ó1°1·5±5ÀˆuÐGÐGr‡   c                ó(   • X R                  U5      -   $ r›  )rû   r�  s     r…   rž  ÚDMF.add_groundP
  s   € à—<‘< “?Ñ"Ð"r‡   c           	     ó  • [        U[        5      (       a'  U R                  U5      u  p#nu  pVn[        XVXrU5      Up˜OJU R	                  U5      u  p#pJnX§su  pVu  p¼[        [        X\X#5      [        XkX#5      X#5      n[        XlX#5      n	U" X‰5      $ )z0Add two multivariate fractions ``f`` and ``g``. )r“   rŒ   r}  rF   r‚  r9   r;   ©r§   r  r�   r‘   r&  ÚF_numÚF_denr¹  r`  ra  r€  ÚG_numÚG_dens                r…   rº  ÚDMF.addT
  ó�   € ä�aœ×ÑØ/0¯|©|¸A«Ñ,ˆC�c™>˜E¨1Ü" 5°¸Ó=¸u‘à"#§,¡,¨q£/ÑˆC�c˜aØ-.Ð*‰NˆU™N˜Uäœ' %°Ó9Ü! %°Ó9¸3óEˆCä˜%¨Ó1ˆCá�3‹}Ðr‡   c           	     ó  • [        U[        5      (       a'  U R                  U5      u  p#nu  pVn[        XVXrU5      Up˜OJU R	                  U5      u  p#pJnX§su  pVu  p¼[        [        X\X#5      [        XkX#5      X#5      n[        XlX#5      n	U" X‰5      $ )z5Subtract two multivariate fractions ``f`` and ``g``. )r“   rŒ   r}  rG   r‚  r:   r;   rœ  s                r…   rÀ  ÚDMF.subc
  r¢  r‡   c                óò   • [        U[        5      (       a&  U R                  U5      u  p#nu  pVn[        XWX#5      Up˜O5U R	                  U5      u  p#pJnX§su  pVu  p¼[        X[X#5      n[        XlX#5      n	U" X‰5      $ )z5Multiply two multivariate fractions ``f`` and ``g``. ©r“   rŒ   r}  r;   r‚  rœ  s                r…   rÅ  ÚDMF.mulr
  sy   € ä�aœ×ÑØ/0¯|©|¸A«Ñ,ˆC�c™>˜E¨1Ü˜u¨Ó2°E‘à"#§,¡,¨q£/ÑˆC�c˜aØ-.Ð*‰NˆU™N˜Uä˜%¨Ó1ˆCÜ˜%¨Ó1ˆCá�3‹}Ðr‡   c           	     ó<  • [        U[        5      (       aq  U R                  U R                  p2US:  a  X2U* pnU R	                  [        X!U R                  U R                  5      [        X1U R                  U R                  5      SS9$ [        S[        U5      -  5      e)rÎ  r   Fr—  rÏ  )
r“   r�   r`  ra  r&  r=   r�   r‘   rÐ  r•   )r§   r8  r`  ra  s       r…   rÓ  ÚDMF.pow€
  sˆ   € ä�aœ×ÑØ—u‘u˜aŸe™e�Ø�1‹uØ!¨¨˜!�Ø—5‘5œ ¨¯©°·±Ó6Ü  ¨¯©°·±Ó6¸uð ð Fð Fô Ð6¼¸a»Ñ@ÓAÐAr‡   c                óò   • [        U[        5      (       a&  U R                  U5      u  p#nu  pVnU[        XgX#5      p˜O5U R	                  U5      u  p#pJnX§su  pVu  p¼[        X\X#5      n[        XkX#5      n	U" X‰5      $ )z0Computes quotient of fractions ``f`` and ``g``. r¦  rœ  s                r…   rû  ÚDMF.quo‹
  sy   € ä�aœ×ÑØ/0¯|©|¸A«Ñ,ˆC�c™>˜E¨1Øœg e°Ó9‘à"#§,¡,¨q£/ÑˆC�c˜aØ-.Ð*‰NˆU™N˜Uä˜%¨Ó1ˆCÜ˜%¨Ó1ˆCá�3‹}Ðr‡   c                óL   • U R                  U R                  U R                  SS9$ )z&Computes inverse of a fraction ``f``. Fr—  )r&  ra  r`  )r§   Úchecks     r…   r�  Ú
DMF.invert›
  s   € à�u‰u�Q—U‘U˜AŸE™E¨%ˆuÐ0Ð0r‡   c                óB   • [        U R                  U R                  5      $ )z.Returns ``True`` if ``f`` is a zero fraction. ©r"   r`  r�   r¦   s    r…   rN  ÚDMF.is_zeroŸ
  s   € ô ˜!Ÿ%™% §¡Ó'Ð'r‡   c                ó¼   • [        U R                  U R                  U R                  5      =(       a+    [        U R                  U R                  U R                  5      $ )z.Returns ``True`` if ``f`` is a unit fraction. )r#   r`  r�   r‘   ra  r¦   s    r…   rŠ  Ú
DMF.is_one¤
  s>   € ô ˜Ÿ™ §¡ q§u¡uÓ-÷ +Ü�a—e‘e˜QŸU™U A§E¡EÓ*ð	+r‡   c                ó"   • U R                  5       $ r~   r½  r¦   s    r…   r¾  ÚDMF.__neg__ª
  r»  r‡   c                óP  • [        U[        [        45      (       a  U R                  U5      $ XR                  ;   a*  U R                  U R                  R                  U5      5      $  U R                  U R                  U5      5      $ ! [        [        [        4 a	    [        s $ f = fr~   )r“   rŒ   r^  rº  r‘   rž  rÓ   r‡  rÐ  r   r×   rÁ  r  s     r…   rÂ  ÚDMF.__add__­
  s~   € Ü�aœ#œs˜×$Ñ$Ø—5‘5˜“8ˆOØ—%‘%‹ZØ—<‘< §¡§¡¨aÓ 0Ó1Ð1ð	"Ø—5‘5˜Ÿ™ A›Ó'Ð'øÜœ>Ô+>Ð?ó 	"Ü!Ò!ð	"ús   Á'B ÂB%Â$B%c                ó$   • U R                  U5      $ r~   rÇ  r  s     r…   rÈ  ÚDMF.__radd__¸
  rÊ  r‡   c                óÞ   • [        U[        [        45      (       a  U R                  U5      $  U R                  U R	                  U5      5      $ ! [
        [        [        4 a	    [        s $ f = fr~   )	r“   rŒ   r^  rÀ  r‡  rÐ  r   r×   rÁ  r  s     r…   rÌ  ÚDMF.__sub__»
  óY   € Ü�aœ#œs˜×$Ñ$Ø—5‘5˜“8ˆOð	"Ø—5‘5˜Ÿ™ A›Ó'Ð'øÜœ>Ô+>Ð?ó 	"Ü!Ò!ð	"úó   ®A ÁA,Á+A,c                ó&   • U * R                  U5      $ r~   rÇ  r  s     r…   rÏ  ÚDMF.__rsub__Ä
  rÑ  r‡   c                óÞ   • [        U[        [        45      (       a  U R                  U5      $  U R                  U R	                  U5      5      $ ! [
        [        [        4 a	    [        s $ f = fr~   )	r“   rŒ   r^  rÅ  r‡  rÐ  r   r×   rÁ  r  s     r…   rÓ  ÚDMF.__mul__Ç
  r¼  r½  c                ó$   • U R                  U5      $ r~   rÖ  r  s     r…   r×  ÚDMF.__rmul__Ð
  rÊ  r‡   c                ó$   • U R                  U5      $ r~   rà  rÒ  s     r…   rá  ÚDMF.__pow__Ó
  rã  r‡   c                óÞ   • [        U[        [        45      (       a  U R                  U5      $  U R                  U R	                  U5      5      $ ! [
        [        [        4 a	    [        s $ f = fr~   )	r“   rŒ   r^  rû  r‡  rÐ  r   r×   rÁ  r  s     r…   rÚ  ÚDMF.__truediv__Ö
  r¼  r½  c                ó&   • U R                  SS9U-  $ )NF)r­  )r�  )rô   r  s     r…   rÝ  ÚDMF.__rtruediv__ß
  s   € Ø�{‰{ ˆ{Ð'¨Ñ)Ð)r‡   c                óz  •  [        U[        5      (       a`  U R                  U5      u      nu  p4nU R                  UR                  :X  a+  [	        X@R                  U R
                  5      =(       a    X5:H  $  gU R                  U5      u      p&nU R                  UR                  :X  a  Xe:H  $  g! [         a     gf = fr‰   ©r“   rŒ   r}  r�   r#   r‘   r‚  rz   ©r§   r  rE  r�  rž  r¹  r€  s          r…   rñ  Ú
DMF.__eq__â
  s±   € ð	Ü˜!œS×!Ñ!Ø-.¯\©\¸!«_Ñ*��1�a™˜%¨à—5‘5˜AŸE™E“>Ü$ U¯E©E°1·5±5Ó9×H¸e¹jÐHð "ð ð !"§¡¨Q£‘��1�a˜Aà—5‘5˜AŸE™E“>Ø™6�Mð "ð
 øô !ó 	Øàð	ús   ‚A2B- Á73B- Â-
B:Â9B:c                ó„  •  [        U[        5      (       ae  U R                  U5      u      nu  p4nU R                  UR                  :X  a0  [	        X@R                  U R
                  5      =(       a    X5:H  (       + $  gU R                  U5      u      p&nU R                  UR                  :X  a  Xe:g  $  g! [         a     gf = f)NTrË  rÌ  s          r…   Ú__ne__Ú
DMF.__ne__ó
  s´   € ð	Ü˜!œS×!Ñ!Ø-.¯\©\¸!«_Ñ*��1�a™˜%¨à—5‘5˜AŸE™E“>Ü )¨%·±¸¿¹Ó >× MÀ5Á:ÔNÐNð "ð ð !"§¡¨Q£‘��1�a˜Aà—5‘5˜AŸE™E“>Ø™6�Mð "ð
 øô !ó 	Øàð	ús   ‚A7B2 Á<3B2 Â2
B?Â>B?c                ó6   • U R                  U5      u      p#nX4:  $ r~   ©r‚  ©r§   r  rE  r€  r¹  s        r…   rÿ  Ú
DMF.__lt__  ó   € ØŸ™ Q›‰ˆˆ1ˆa�AØ‰uˆr‡   c                ó6   • U R                  U5      u      p#nX4:*  $ r~   rÒ  rÓ  s        r…   r  Ú
DMF.__le__  ó   € ØŸ™ Q›‰ˆˆ1ˆa�AØ‰vˆr‡   c                ó6   • U R                  U5      u      p#nX4:„  $ r~   rÒ  rÓ  s        r…   r  Ú
DMF.__gt__  rÕ  r‡   c                ó6   • U R                  U5      u      p#nX4:¬  $ r~   rÒ  rÓ  s        r…   r
  Ú
DMF.__ge__  rØ  r‡   c                óL   • [        U R                  U R                  5      (       + $ r~   r°  r¦   s    r…   r  ÚDMF.__bool__  s   € Ü˜aŸe™e Q§U¡UÓ+Ô+Ð+r‡   )ra  r‘   r�   r`  r~   )TFr  r  )4rê   r  r  r  r  r  rf  r  r–   rû   re  rë   rð   r}  r‚  r&  r‡  rÜ   rß   rË  rÊ  rÚ  r˜  rž  rº  rÀ  rÅ  rÓ  rû  r   r�  r  rN  rŠ  r¾  rÂ  rÈ  rÌ  rÏ  rÓ  r×  rá  rÚ  rÝ  rñ  rÏ  rÿ  r  r  r
  r  r  rŠ   r‡   r…   r^  r^  �	  sA  † Ù1à,€Iôð ó
ó ð
ò1ð ó)ó ð)òVPò7ò'ò:'ô>5ô
$ð ñ$ó ð$ð ñ$ó ð$ò!ò!ò#òHò#òòòò	Bòð €Eô1ð ñ(ó ð(ð ñ+ó ð+ò
ò	"òò"òò"òòò"ò*òò"ò"òòòõ,r‡   r^  c                ó@   • [        [        X5      [        X5      U5      $ r~   )ÚANPr   )r™   Úmodr‘   s      r…   Úinit_normal_ANPrâ    s    € ÜŒz˜#Ó#Ü˜#Ó# Só*ð *r‡   c                  óæ  ^ • \ rS rSrSrSrS r\U 4S j5       rS r	\
S 5       r\
S 5       rS	 rS
 rS rS rS rS rS rS r\S 5       r\S 5       rS rS rS rS rS rS r\S 5       rS rS rS r S r!S r"S r#S  r$S! r%S" r&S# r'S$ r(S% r)S& r*S' r+S( r,\
S) 5       r-\
S* 5       r.\
S+ 5       r/S, r0S- r1S. r2S/ r3S0 r4S1 r5S2 r6S3 r7S4 r8S5 r9S6 r:S7 r;S8 r<S9 r=S: r>S; r?S< r@S= rAS> rBS?rCU =rD$ )@rà  i  z1Dense Algebraic Number Polynomials over a field. )rª   Ú_modr‘   c                ó  • [        U[        5      (       a  O‡[        U5      [        L a  [        [	        X5      US5      nO^[        U[
        5      (       a!  U Vs/ s H  oCR                  U5      PM     nnOUR                  U5      /n[        [        U5      US5      n[        U[        5      (       a  OB[        U[        5      (       a  [        [	        X#5      US5      nO[        [        U5      US5      nU R                  XU5      $ s  snf r�   )	r“   rŒ   r•   rÇ   r%   r”   rÓ   r   r–   )r˜   r™   rá  r‘   r‚  s        r…   rš   ÚANP.__new__"  sÕ   € Ü�cœ3×ÑØÜ�#‹Yœ$ÒÜ”m CÓ-¨s°AÓ6‰Cä˜#œt×$Ñ$Ù/2Ó3ªs¨!—{‘{ 1–~©s�Ð3�à—{‘{ 3Ó'Ð(�Ü”i “n c¨1Ó-ˆCä�cœ3×ÑØÜ˜œT×"Ñ"Ü”m CÓ-¨s°AÓ6‰Cä”i “n c¨1Ó-ˆCà�w‰w�s Ó%Ð%ùò 4s   ÁDc                ó¦   >• UR                   UR                   s=:X  a  U:X  d  O  [        S5      e[        TU ]  U 5      nXl        X$l        X4l         U$ )NzInconsistent domain)r‘   rÑ   Úsuperrš   rª   rä  )r˜   r™   rá  r‘   r  ré   s        €r…   r–   ÚANP.new7  sF   ø€ à—‘˜3Ÿ7™7Õ) cÕ)ÜÐ4Ó5Ð5Ü‰g‰o˜cÓ"ˆØŒØŒØŒØˆ
r‡   c                óT   • [         U R                  U R                  U R                  44$ r~   )rà  r™   rá  r‘   ró   s    r…   rA  ÚANP.__reduce__D  s    € Ü�T—X‘X˜tŸx™x¨¯©Ð2Ð2Ð2r‡   c                ó6   • U R                   R                  5       $ r~   ©rª   r¥   ró   s    r…   r™   ÚANP.repG  s   € à�y‰y× Ñ Ó"Ð"r‡   c                ó"   • U R                  5       $ r~   )Úmod_to_listró   s    r…   rá  ÚANP.modK  s   € à×ÑÓ!Ð!r‡   c                ó   • U R                   $ r~   r¿  ró   s    r…   Úto_DMPÚ
ANP.to_DMPO  ó   € Ø�y‰yÐr‡   c                ó   • U R                   $ r~   )rä  ró   s    r…   Ú
mod_to_DMPÚANP.mod_to_DMPR  rõ  r‡   c                óN   • U R                  XR                  U R                  5      $ r~   )r–   rä  r‘   r%  s     r…   r&  ÚANP.perU  s   € Ø�u‰u�SŸ&™& !§%¡%Ó(Ð(r‡   c                óÂ   • U R                   R                  < SU R                  R                  5       < SU R                  R                  5       < SU R
                  < S3$ rå   )ré   rê   rª   r¥   rä  r‘   r¦   s    r…   rë   ÚANP.__repr__X  s8   € Ø#$§;¡;×#7Ô#7¸¿¹¿¹Ö9IÈ1Ï6É6Ï>É>ÖK[Ð]^×]bÔ]bÐcÐcr‡   c                ó¨   • [        U R                  R                  U R                  5       U R                  R                  5       U R
                  45      $ r~   )rî   ré   rê   rï   rä  r‘   r¦   s    r…   rð   ÚANP.__hash__[  s5   € Ü�Q—[‘[×)Ñ)¨1¯:©:«<¸¿¹¿¹Ó9JÈAÏEÉEÐRÓSÐSr‡   c                ó°   • U R                   U:X  a  U $ U R                  U R                  R                  U5      U R                  R                  U5      U5      $ )z.Convert ``f`` to a ``ANP`` over a new domain. )r‘   r–   rª   rÓ   rä  rÒ   s     r…   rÓ   ÚANP.convert^  s?   € à�5‰5�C‹<ØˆHà—5‘5˜Ÿ™Ÿ™¨Ó,¨a¯f©f¯n©n¸SÓ.AÀ3ÓGÐGr‡   c                óî  ^^• [        U[        5      (       a  U R                  UR                  :w  a  [        SU < SU< 35      eU R                  UR                  :X  a9  U R                  U R
                  U R                  UR                  U R                  4$ U R                  R                  UR                  5      m[        U R                  U R                  T5      n[        UR                  UR                  T5      nTU R                  :w  a2  TUR                  :w  a"  [        U R                  U R                  T5      mO)TU R                  :X  a  U R                  mOUR                  mUU4S jnTXBUT4$ )z0Unify representations of two algebraic numbers. r   r  c                ó   >• [        U TT5      $ r~   ©rà  )r™   r‘   rá  s    €€r…   rY  ÚANP.unify.<locals>.<lambda>~  s   ø€ œc # s¨CÔ0r‡   )	r“   rà  rá  rz   r‘   r&  r™   r  r   )r§   r  r€  r¹  r&  r‘   rá  s        @@r…   r  Ú	ANP.unifye  s  ù€ ô ˜!œS×!Ñ! Q§U¡U¨a¯e©e£^Ý#ÃÂAÐ$FÓGÐGà�5‰5�A—E‘E‹>Ø—5‘5˜!Ÿ%™% §¡¨¯©¨q¯u©uÐ4Ð4à—%‘%—+‘+˜aŸe™eÓ$ˆCä˜AŸE™E 1§5¡5¨#Ó.ˆAÜ˜AŸE™E 1§5¡5¨#Ó.ˆAà�a—e‘e‹|  q§u¡u£Ü! !§%¡%¨¯©°Ó4‘à˜!Ÿ%™%“<ØŸ%™%‘CàŸ%™%�Cå0ˆCà�C˜A˜sÐ"Ð"r‡   c                ó¤  • [        U[        5      (       a  U R                  UR                  :w  a  [        SU < SU< 35      eU R                  UR                  :w  aG  U R                  R                  UR                  5      nU R                  U5      n UR                  U5      nU R                  UR                  U R                  U R                  4$ rÿ   )r“   rà  rä  rz   r‘   r  rÓ   rª   r  s      r…   Ú	unify_ANPÚANP.unify_ANP‚  sŽ   € ä˜!œS×!Ñ! Q§V¡V¨q¯v©vÓ%5Ý#ÃÂAÐ$FÓGÐGð �5‰5�A—E‘E‹>Ø—%‘%—+‘+˜aŸe™eÓ$ˆCØ—	‘	˜#“ˆAØ—	‘	˜#“ˆAà�v‰v�q—v‘v˜qŸv™v q§u¡uÐ,Ð,r‡   c                ó   • [        SX5      $ r�   r  ©r˜   rá  r‘   s      r…   rÜ   ÚANP.zero�  ó   € ä�1�cÓÐr‡   c                ó   • [        SX5      $ r¤  r  r
  s      r…   rß   ÚANP.one“  r  r‡   c                ó6   • U R                   R                  5       $ )r  )rª   r
  r¦   s    r…   r
  ÚANP.to_dict—  ó   € à�v‰v�~‰~ÓÐr‡   c                ó´   • [        U R                  SU R                  5      nUR                  5        H"  u  p#U R                  R	                  U5      X'   M$     U$ )r  r   )r'   r™   r‘   r  r  )r§   r™   r  r  s       r…   r  ÚANP.to_sympy_dict›  sE   € ä˜!Ÿ%™%  A§E¡EÓ*ˆà—I‘I–K‰DˆAØ—U‘U—^‘^ AÓ&ˆC‹Fñ  ð ˆ
r‡   c                ó6   • U R                   R                  5       $ r  rí  r¦   s    r…   r¥   ÚANP.to_list¤  r  r‡   c                ó6   • U R                   R                  5       $ )z5Return ``f.mod`` as a list with native coefficients. )rä  r¥   r¦   s    r…   rð  ÚANP.mod_to_list¨  r  r‡   c                ó~   • U R                  5        Vs/ s H  oR                  R                  U5      PM     sn$ s  snf )r  )r¥   r‘   r  r�  s     r…   r  ÚANP.to_sympy_list¬  s+   € à,-¯I©I¬KÓ9ªK q—‘—‘ Ö"©KÑ9Ð9ùÒ9s   “$:c                ó6   • U R                   R                  5       $ r#  )rª   rï   r¦   s    r…   rï   ÚANP.to_tuple°  s   € ð �v‰v�‰Ó Ð r‡   c           
     óf   • [        [        [        [        UR                  U5      5      5      X#5      $ r~   )rà  r   r”   r²  rÓ   )r˜   r™   rá  r‘   s       r…   rÁ   ÚANP.from_list¸  s$   € ä”9œT¤# c§k¡k°3Ó"7Ó8Ó9¸3ÓDÐDr‡   c                óV   • U R                  U R                  R                  U5      5      $ r›  )r&  rª   rž  r�  s     r…   rž  ÚANP.add_ground¼  ó    € à�u‰u�Q—V‘V×&Ñ& qÓ)Ó*Ð*r‡   c                óV   • U R                  U R                  R                  U5      5      $ r¢  )r&  rª   r¤  r�  s     r…   r¤  ÚANP.sub_groundÀ  r   r‡   c                óV   • U R                  U R                  R                  U5      5      $ )z3Multiply ``f`` by an element of the ground domain. )r&  rª   r©  r�  s     r…   r©  ÚANP.mul_groundÄ  r   r‡   c                óV   • U R                  U R                  R                  U5      5      $ )z6Quotient of ``f`` by an element of the ground domain. )r&  rª   r®  r�  s     r…   r®  ÚANP.quo_groundÈ  r   r‡   c                óT   • U R                  U R                  R                  5       5      $ r~   )r&  rª   r˜  r¦   s    r…   r˜  ÚANP.negÌ  s   € Ø�u‰u�Q—V‘V—Z‘Z“\Ó"Ð"r‡   c                ól   • U R                  U5      u  p#pEU R                  UR                  U5      XE5      $ r~   )r  r–   rº  ©r§   r  r€  r¹  rá  r‘   s         r…   rº  ÚANP.addÏ  ó,   € ØŸ™ Q›‰ˆˆcØ�u‰u�Q—U‘U˜1“X˜sÓ(Ð(r‡   c                ól   • U R                  U5      u  p#pEU R                  UR                  U5      XE5      $ r~   )r  r–   rÀ  r*  s         r…   rÀ  ÚANP.subÓ  r,  r‡   c                óŠ   • U R                  U5      u  p#pEU R                  UR                  U5      R                  U5      XE5      $ r~   )r  r–   rÅ  rö  r*  s         r…   rÅ  ÚANP.mul×  s5   € ØŸ™ Q›‰ˆˆcØ�u‰u�Q—U‘U˜1“X—\‘\ #Ó&¨Ó1Ð1r‡   c                óD  • [        U[        5      (       d  [        S[        U5      -  5      eU R                  nU R
                  nUS:  a  UR                  U5      U* pU R                  UR                  U5      R                  U R                  5      X R                  5      $ )rÎ  rÏ  r   )r“   r�   rÐ  r•   rä  rª   r�  r–   rÓ  rö  r‘   )r§   r8  rá  r€  s       r…   rÓ  ÚANP.powÛ  sz   € ä˜!œS×!Ñ!ÜÐ6¼¸a»Ñ@ÓAÐAà�f‰fˆØ�F‰Fˆàˆq‹5Ø—8‘8˜C“= 1 "ˆqð �u‰u�Q—U‘U˜1“X—\‘\ !§&¡&Ó)¨3·±Ó6Ð6r‡   c                ó¨   • U R                  U5      u  p#pEU R                  UR                  UR                  U5      5      R	                  U5      XE5      $ r~   )r  r–   rÅ  r�  rö  r*  s         r…   r   Ú	ANP.exquoé  s@   € ØŸ™ Q›‰ˆˆcØ�u‰u�Q—U‘U˜1Ÿ8™8 C›=Ó)×-Ñ-¨cÓ2°CÓ=Ð=r‡   c                óp   • U R                  U5      U R                  U R                  U R                  5      4$ r~   )r   rÜ   rä  r‘   r  s     r…   rñ  ÚANP.diví  s(   € Ø�w‰w�q‹z˜1Ÿ6™6 !§&¡&¨!¯%©%Ó0Ð0Ð0r‡   c                ó$   • U R                  U5      $ r~   )r   r  s     r…   rû  ÚANP.quoð  s   € Ø�w‰w�q‹zÐr‡   c                óª   • U R                  U5      u  p#pEUR                  U5      u  pgUR                  (       a  U R                  XE5      $ [	        S5      e)Nrà  )r  rŽ  rŠ  rÜ   r   )r§   r  r€  r¹  rá  r‘   r;  r¨  s           r…   rö  ÚANP.remó  sC   € ØŸ™ Q›‰ˆˆcØ�|‰|˜A‹‰ˆà�8�8Ø—6‘6˜#Ó#Ð#ä Ó/Ð/r‡   c                ó6   • U R                   R                  5       $ rK  )rª   rL  r¦   s    r…   rL  ÚANP.LCü  ó   € à�v‰v�y‰y‹{Ðr‡   c                ó6   • U R                   R                  5       $ rO  )rª   rQ  r¦   s    r…   rQ  ÚANP.TC   r=  r‡   c                ó.   • U R                   R                  $ )z6Returns ``True`` if ``f`` is a zero algebraic number. )rª   rN  r¦   s    r…   rN  ÚANP.is_zero  s   € ð �v‰v�~‰~Ðr‡   c                ó.   • U R                   R                  $ )z6Returns ``True`` if ``f`` is a unit algebraic number. )rª   rŠ  r¦   s    r…   rŠ  Ú
ANP.is_one	  s   € ð �v‰v�}‰}Ðr‡   c                ó.   • U R                   R                  $ r�  )rª   r�  r¦   s    r…   r�  ÚANP.is_ground  s   € ð �v‰v×ÑÐr‡   c                ó   • U $ r~   rŠ   r¦   s    r…   Ú__pos__ÚANP.__pos__  s   € Øˆr‡   c                ó"   • U R                  5       $ r~   r½  r¦   s    r…   r¾  ÚANP.__neg__  r»  r‡   c                óÔ   • [        U[        5      (       a  U R                  U5      $  U R                  R	                  U5      nU R                  U5      $ ! [         a	    [        s $ f = fr~   )r“   rà  rº  r‘   rÓ   rž  r   rÁ  r  s     r…   rÂ  ÚANP.__add__  óZ   € Ü�aœ×ÑØ—5‘5˜“8ˆOð	#Ø—‘—‘˜aÓ ˆAð —<‘< “?Ð"øô ó 	"Ü!Ò!ð	"úó   ¨A ÁA'Á&A'c                ó$   • U R                  U5      $ r~   rÇ  r  s     r…   rÈ  ÚANP.__radd__#  rÊ  r‡   c                óÔ   • [        U[        5      (       a  U R                  U5      $  U R                  R	                  U5      nU R                  U5      $ ! [         a	    [        s $ f = fr~   )r“   rà  rÀ  r‘   rÓ   r¤  r   rÁ  r  s     r…   rÌ  ÚANP.__sub__&  rM  rN  c                ó&   • U * R                  U5      $ r~   rÇ  r  s     r…   rÏ  ÚANP.__rsub__0  rÑ  r‡   c                óÔ   • [        U[        5      (       a  U R                  U5      $  U R                  R	                  U5      nU R                  U5      $ ! [         a	    [        s $ f = fr~   )r“   rà  rÅ  r‘   rÓ   r©  r   rÁ  r  s     r…   rÓ  ÚANP.__mul__3  rM  rN  c                ó$   • U R                  U5      $ r~   rÖ  r  s     r…   r×  ÚANP.__rmul__=  rÊ  r‡   c                ó$   • U R                  U5      $ r~   rà  rÒ  s     r…   rá  ÚANP.__pow__@  rã  r‡   c                ó$   • U R                  U5      $ r~   rå  r  s     r…   ræ  ÚANP.__divmod__C  rã  r‡   c                ó$   • U R                  U5      $ r~   ré  r  s     r…   rê  ÚANP.__mod__F  rã  r‡   c                óÔ   • [        U[        5      (       a  U R                  U5      $  U R                  R	                  U5      nU R                  U5      $ ! [         a	    [        s $ f = fr~   )r“   rà  rû  r‘   rÓ   r®  r   rÁ  r  s     r…   rÚ  ÚANP.__truediv__I  rM  rN  c                ób   •  U R                  U5      u  p#  nX#:H  $ ! [         a	    [        s $ f = fr~   ©r  rz   rÁ  ©r§   r  r€  r¹  rE  s        r…   rñ  Ú
ANP.__eq__S  ó:   € ð	"ØŸ™ Q›‰JˆA�!�Qð ‰vˆøô !ó 	"Ü!Ò!ð	"úó   ‚ ›.­.c                ób   •  U R                  U5      u  p#  nX#:g  $ ! [         a	    [        s $ f = fr~   rb  rc  s        r…   rÏ  Ú
ANP.__ne__Z  re  rf  c                ó4   • U R                  U5      u  p#  nX#:  $ r~   ©r  rc  s        r…   rÿ  Ú
ANP.__lt__a  ó   € Ø—[‘[ “^‰
ˆˆa�Ø‰uˆr‡   c                ó4   • U R                  U5      u  p#  nX#:*  $ r~   rj  rc  s        r…   r  Ú
ANP.__le__e  ó   € Ø—[‘[ “^‰
ˆˆa�Ø‰vˆr‡   c                ó4   • U R                  U5      u  p#  nX#:„  $ r~   rj  rc  s        r…   r  Ú
ANP.__gt__i  rl  r‡   c                ó4   • U R                  U5      u  p#  nX#:¬  $ r~   rj  rc  s        r…   r
  Ú
ANP.__ge__m  ro  r‡   c                ó,   • [        U R                  5      $ r~   )r[  rª   r¦   s    r…   r  ÚANP.__bool__q  s   € Ü�A—F‘F‹|Ðr‡   rŠ   )Erê   r  r  r  r  r  rš   r  r–   rA  r  r™   rá  ró  r÷  r&  rë   rð   rÓ   r  r  rÜ   rß   r
  r  r¥   rð  r  rï   rÁ   rž  r¤  r©  r®  r˜  rº  rÀ  rÅ  rÓ  r   rñ  rû  rö  rL  rQ  rN  rŠ  r�  rG  r¾  rÂ  rÈ  rÌ  rÏ  rÓ  r×  rá  ræ  rê  rÚ  rñ  rÏ  rÿ  r  r  r
  r  r  Ú__classcell__)ré   s   @r…   rà  rà    sÃ  ø† Ù;à'€Iò&ð* ôó ðò3ð ñ#ó ð#ð ñ"ó ð"òòò)òdòTòHò#ò:-ð ñ ó ð ð ñ ó ð ò òò ò ò:ò!ð ñEó ðEò+ò+ò+ò+ò#ò)ò)ò2ò7ò>ò1òò0òòð ñó ðð ñó ðð ñ ó ð òòò#òò#òò#òòòòò#òòòòòò÷ð r‡   rà  )’r  Ú
__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ž   rb  r^  râ  rà  rŠ   r‡   r…   Ú<module>r†     sI  ðÙ 7å "å ,å @å !Ý *ß Cß .Ñ .÷ó ÷÷ ÷ ÷ ÷ ÷ ÷ ÷ õ ÷0÷ ÷ ÷ ÷ ÷ õ ÷4÷ ÷ ÷ ñ ÷"÷ ÷ ÷(÷ (ñ (÷.ó .÷$÷ $÷ $ñ $÷ð
 �7ÓÛó=ð €EòôGˆ+ô GôT"p�ô pôfA�ô AòH4ô
E,Ð
˜kô E,òP*ô
Uˆ+õ Ur‡   