Ë
    täiÎE  ã                   ó  — d dl mZ d dlmZ d dlmZmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZmZmZ d d	lmZ d d
lmZ d dlmZmZ d dlmZ d dlmZ d dlmZ d dlm Z m!Z! d dl"m#Z# d„ Z$dd„Z%d„ Z&d„ Z'd„ Z(ddœd„Z)y)é    )ÚAdd)Úfactor_terms)Ú
expand_logÚ_mexpand)ÚPow)ÚS)Úordered)ÚDummy)ÚLambertWÚexpÚlog)Úroot)Úroots)ÚPolyÚfactor)Úseparatevars)Úcollect)Úpowsimp)ÚsolveÚ_invert)Úuniqc                 ó
  — | j                   D �ch c]  }||j                  v sŒ|’Œ }}t        |«      D ]G  }d|z  }||v sŒ||v sŒ|j                  «       d   t        j
                  ur|}|j                  |«       ŒI |S c c}w )aª  process the generators of ``poly``, returning the set of generators that
    have ``symbol``.  If there are two generators that are inverses of each other,
    prefer the one that has no denominator.

    Examples
    ========

    >>> from sympy.solvers.bivariate import _filtered_gens
    >>> from sympy import Poly, exp
    >>> from sympy.abc import x
    >>> _filtered_gens(Poly(x + 1/x + exp(x)), x)
    {x, exp(x)}

    é   )ÚgensÚfree_symbolsÚlistÚas_numer_denomr   ÚOneÚremove)ÚpolyÚsymbolÚgr   Úags        úf/Volumes/fast/ai/experiments/MLX_z-image/.venv/lib/python3.12/site-packages/sympy/solvers/bivariate.pyÚ_filtered_gensr%      s�   € ð$ —y’yÓ=‘y�! F¨a¯n©nÒ$<ŠA�y€DÐ=Ü�$ŽZˆØˆq‰SˆØ�Š9˜˜tšØ× Ñ Ó" 1Ñ%¬Q¯U©UÑ2Ø�Ø�K‰K˜�Nð ð €Kùò >s
   �B £B Nc                 ó,  ‡— | j                  ‰«      D �cg c]=  }|r7|j                  r||j                  v s|j                  s|j                  |«      r|‘Œ? }}t	        |«      dk(  r|d   S |r"t        t        t        |«      «      ˆfd„¬«      S yc c}w )a+  Returns the term in lhs which contains the most of the
    func-type things e.g. log(log(x)) wins over log(x) if both terms appear.

    ``func`` can be a function (exp, log, etc...) or any other SymPy object,
    like Pow.

    If ``X`` is not ``None``, then the function returns the term composed with the
    most ``func`` having the specified variable.

    Examples
    ========

    >>> from sympy.solvers.bivariate import _mostfunc
    >>> from sympy import exp
    >>> from sympy.abc import x, y
    >>> _mostfunc(exp(x) + exp(exp(x) + 2), exp)
    exp(exp(x) + 2)
    >>> _mostfunc(exp(x) + exp(exp(y) + 2), exp)
    exp(exp(y) + 2)
    >>> _mostfunc(exp(x) + exp(exp(y) + 2), exp, x)
    exp(x)
    >>> _mostfunc(x, exp, x) is None
    True
    >>> _mostfunc(exp(x) + exp(x*y), exp, x)
    exp(x)
    r   r   c                 ó&   •— | j                  ‰«      S ©N)Úcount)ÚxÚfuncs    €r$   Ú<lambda>z_mostfunc.<locals>.<lambda>P   s   ø€ ¸¿¹À¼ó    )ÚkeyN)ÚatomsÚ	is_Symbolr   ÚhasÚlenÚmaxr   r	   )Úlhsr+   ÚXÚtmpÚftermss    `   r$   Ú	_mostfuncr8   /   s‰   ø€ ð6 !ŸY™Y tœ_ó )™_�c±QØ	�Š˜˜S×-Ñ-Ñ-Ø�KŠK˜CŸG™G AœJò ˜_€Fð )ô ˆ6ƒ{�aÒØ�a‰yÐÙ	Ü”4œ ›Ó(Ó.EÔFÐFØùò)s   •ABc                 ó`  — t        | j                  «       «      } | j                  |«      \  }}| j                  r'|j                  rt        ||«      \  }}}||z  ||z  |fS | j                  sd}||}}n!|}t        |«      j                  |d¬«      \  }}|j                  «       r| }| }|||fS )aî  Return ``a, b, X`` assuming ``arg`` can be written as ``a*X + b``
    where ``X`` is a symbol-dependent factor and ``a`` and ``b`` are
    independent of ``symbol``.

    Examples
    ========

    >>> from sympy.solvers.bivariate import _linab
    >>> from sympy.abc import x, y
    >>> from sympy import exp, S
    >>> _linab(S(2), x)
    (2, 0, 1)
    >>> _linab(2*x, x)
    (2, 0, x)
    >>> _linab(y + y*x + 2*x, x)
    (y + 2, y, x)
    >>> _linab(3 + 2*exp(x), x)
    (2, 3, exp(x))
    r   F©Úas_Add)r   ÚexpandÚas_independentÚis_MulÚis_AddÚ_linabr   Úcould_extract_minus_sign)Úargr!   ÚindÚdepÚaÚbr*   s          r$   r@   r@   T   s¸   € ô( �s—z‘z“|Ó
$€CØ×!Ñ! &Ó)�H€CˆØ
‡z‚z�c—j’jÜ˜˜fÓ%‰ˆˆ1ˆaØ�1‰u�c˜!‘e˜QˆÐØ�:Š:ØˆØ�Cˆ1‰àˆÜ˜CÓ ×/Ñ/°¸uÐ/ÓE‰ˆˆ1Ø×!Ñ!Ô#ØˆBˆØˆBˆØˆa�ˆ7€Nr-   c                 ó<  ‡‡— t        t        | «      «      } t        | t        |«      }|sg S | j	                  |d«      }t        | t        «      rY| |z
  j	                  ||j                  d   «      } |j                  d   }t        |t        «      sg S | j                  d    }| |z  } ||j                  vrg S t        ||«      \  }}}t        | |z
  |«      }|j                  |«      }|�||j                  v rg S |j                  d   }	t        |	|«      \  }
}}||k7  rg S t        d«      Št        |‰z
  |«      }ddg}g }||z  |
|z  z
  |z  |
z  j                  «       \  }}|j                  «       \  }}t        ||z  «      }t        d«      }t!        ||z  |z
  |«      j#                  «       D �cg c]  }|||
z  z  |z  ‘Œ }}|D ]N  }|D ]G  }t%        ||«      }|r|j&                  sŒ| |
z  ||z  |z  z   Š|j)                  ˆˆfd„|D «       «       ŒI ŒP |S c c}w )zô
    Given an expression assumed to be in the form
        ``F(X, a..f) = a*log(b*X + c) + d*X + f = 0``
    where X = g(x) and x = g^-1(X), return the Lambert solution,
        ``x = g^-1(-c/b + (a/d)*W(d/(a*b)*exp(c*d/a/b)*exp(-f/a)))``.
    r   ÚrhséÿÿÿÿÚtc              3   óB   •K  — | ]  }|j                  ‰‰«      –— Œ y ­wr(   )Úsubs)Ú.0ÚxurH   Úus     €€r$   Ú	<genexpr>z_lambert.<locals>.<genexpr>½   s   øè ø€ Ð9±¨2�r—w‘w˜q #—±ùs   ƒ)r   r   r8   r   rL   Ú
isinstanceÚargsr   r@   r   Úas_coefficientr
   r   r   Úas_coeff_Mulr   r   Úkeysr   Úis_realÚextend)Úeqr*   ÚmainlogÚotherÚdÚfÚX2ÚlogtermrE   ÚlogargrF   ÚcÚX1ÚxusolnsÚlambert_real_branchesÚsolÚnumÚdenÚpÚerJ   rR   rB   ÚkÚwrH   rO   s                            @@r$   Ú_lambertrk   y   s9  ù€ ô 
”*˜R“.Ó	!€BÜ˜œC Ó#€GÙØˆ	Ø�G‰G�G˜QÓ€EÜ�5�&œ#ÔØ�5‰j×Ñ˜w¨¯©°Q©Ó8ˆØ—,‘,˜q‘/ˆÜ˜'¤3Ô'ØˆIØ�&—‘˜qÑ!Ð!ˆØ
ˆe‰ˆØ�×"Ñ"Ñ"Øˆ	Ü�e˜QÓ�H€A€qˆ"Ü�b˜5‘j 'Ó*€GØ×Ñ˜wÓ'€AØ€y�A˜Ÿ™Ñ'Øˆ	Ø�\‰\˜!‰_€FÜ�f˜aÓ �H€A€qˆ"Ø	ˆR‚xØˆ	ô 	ˆe‹€AÜ�B˜‘F˜AÓ€Gð   ˜GÐØ
€Cð �1‘�Q�q‘S‘˜!‘˜A‘×-Ñ-Ó/�H€CˆØ×ÑÓ�F€A€sÜˆC�‰G‹€AÜˆc‹
€AÜ$ Q¨¡T¨A¡X¨qÓ1×6Ñ6Ô8Ó9Ñ8˜!ˆAˆq�‰s‰G�A‹IÐ8€DÐ9ó ˆÛ&ˆAÜ˜˜aÓ ˆAÙ˜ŸšØØ�"�Q‘$˜!˜A™#˜q™‘.ˆCà�J‰JÔ9±Ó9Õ9ñ 'ð ð €Jùò :s   Æ0Hc                 óÔ	  ‡‡‡— ˆfd„}| j                  ‰d¬«      \  }}| }‰D �cg c]@  }|j                  t        t        fv s$|j                  r‰|j                  j
                  v r|‘ŒB }}|s
t        «       ‚|j                  s|j                  �r:t        di ‰j                  ¤ŽŠ|j                  ˆfd„ˆfd„«      }|j                  r“|j                  ‰«      r‚|j                  ‰d«      }	||	z
  }
||	z
  }|
j                  sµ|r³|
j                  t        j                  t        j                   «      s…t#        t        |
«      t        |«      z
  «      } ||‰‰«      S |j                  rO|rMt#        t        |«      d¬«      }t        |«      }|j                  ‰«      r|j                  r||z
  } ||‰‰«      S |j%                  ‰‰i«      }t'        t)        |d¬«      «      }t        «       }t+        ||z
  ‰«      \  }}|j%                  ||i«      }g }|�st-        |t        ‰«      }|rï|j                  r'|dk7  r"t/        t        |«      t        |«      z
  ‰«      }n¼|j                  r°|j                  |d«      }|r�|j                  s�|j1                  t2        «      D �cg c]  }‰|j
                  v r|‘Œ c}rP|st        |«      t        ||z
  «      z
  }nt        ||z
  «      t        ||z
  «      z
  }t/        t#        |«      ‰«      }nt/        ||z
  ‰«      }|sÙt-        |t        ‰«      }|rÆt5        ||«      }|j                  r0|dk7  r+t/        t#        t        |«      t        |«      z
  «      ‰«      }n~|j                  rr|j                  |d«      }||z
  }||z
  }|j7                  «       r|j7                  «       r
|d	z  }|d	z  }t        |«      t        |«      z
  }t/        t#        |«      ‰«      }|sÇt-        |t2        ‰«      }|r´‰|j                  j
                  v rœt5        ||«      }|j                  r0|dk7  r+t/        t#        t        |«      t        |«      z
  «      ‰«      }nT|j                  rH|j                  |d«      }||z
  }||z
  }t        |«      t        |«      z
  }t/        t#        |«      ‰«      }|st        d
| z  «      ‚t9        t;        |«      «      S c c}w c c}w )aä  Return solution to ``f`` if it is a Lambert-type expression
    else raise NotImplementedError.

    For ``f(X, a..f) = a*log(b*X + c) + d*X - f = 0`` the solution
    for ``X`` is ``X = -c/b + (a/d)*W(d/(a*b)*exp(c*d/a/b)*exp(f/a))``.
    There are a variety of forms for `f(X, a..f)` as enumerated below:

    1a1)
      if B**B = R for R not in [0, 1] (since those cases would already
      be solved before getting here) then log of both sides gives
      log(B) + log(log(B)) = log(log(R)) and
      X = log(B), a = 1, b = 1, c = 0, d = 1, f = log(log(R))
    1a2)
      if B*(b*log(B) + c)**a = R then log of both sides gives
      log(B) + a*log(b*log(B) + c) = log(R) and
      X = log(B), d=1, f=log(R)
    1b)
      if a*log(b*B + c) + d*B = R and
      X = B, f = R
    2a)
      if (b*B + c)*exp(d*B + g) = R then log of both sides gives
      log(b*B + c) + d*B + g = log(R) and
      X = B, a = 1, f = log(R) - g
    2b)
      if g*exp(d*B + h) - b*B = c then the log form is
      log(g) + d*B + h - log(b*B + c) = 0 and
      X = B, a = -1, f = -h - log(g)
    3)
      if d*p**(a*B + g) - b*B = c then the log form is
      log(d) + (a*B + g)*log(p) - log(b*B + c) = 0 and
      X = B, a = -1, d = a*log(p), f = -log(d) - g*log(p)
    c                 óà   •— dD �cg c]  }| j                  |||z  i«      ‘Œ c}\  }}t        ||‰«      }||k7  r|j                  t        ||‰«      «       t        t	        |«      «      S c c}w )a„  Return the unique solutions of equations derived from
        ``expr`` by replacing ``t`` with ``+/- symbol``.

        Parameters
        ==========

        expr : Expr
            The expression which includes a dummy variable t to be
            replaced with +symbol and -symbol.

        symbol : Symbol
            The symbol for which a solution is being sought.

        Returns
        =======

        List of unique solution of the two equations generated by
        replacing ``t`` with positive and negative ``symbol``.

        Notes
        =====

        If ``expr = 2*log(t) + x/2` then solutions for
        ``2*log(x) + x/2 = 0`` and ``2*log(-x) + x/2 = 0`` are
        returned by this function. Though this may seem
        counter-intuitive, one must note that the ``expr`` being
        solved here has been derived from a different expression. For
        an expression like ``eq = x**2*g(x) = 1``, if we take the
        log of both sides we obtain ``log(x**2) + log(g(x)) = 0``. If
        x is positive then this simplifies to
        ``2*log(x) + log(g(x)) = 0``; the Lambert-solving routines will
        return solutions for this, but we must also consider the
        solutions for  ``2*log(-x) + log(g(x))`` since those must also
        be a solution of ``eq`` which has the same value when the ``x``
        in ``x**2`` is negated. If `g(x)` does not have even powers of
        symbol then we do not want to replace the ``x`` there with
        ``-x``. So the role of the ``t`` in the expression received by
        this function is to mark where ``+/-x`` should be inserted
        before obtaining the Lambert solutions.

        )rI   r   )ÚxreplaceÚ_solve_lambertrW   r   r   )ÚexprrJ   r!   ÚsgnÚnlhsÚplhsÚsolsr   s          €r$   Ú_solve_even_degree_exprz/_solve_lambert.<locals>._solve_even_degree_exprã   st   ø€ ñV 7>ó?Ù6=¨sˆD�M‰M˜1˜c &™j˜/Õ*°gñ?‰
ˆˆdä˜d F¨DÓ1ˆØ�4Š<Ø�K‰Kœ t¨V°TÓ:Ô;ô ”D˜“JÓÐùò?s   †A+Tr:   c                 ón   •— | j                   xr' | j                  ‰k(  xr | j                  j                  S r(   )Úis_PowÚbaser   Úis_even)Úir!   s    €r$   r,   z _solve_lambert.<locals>.<lambda>(  s(   ø€ Ø—‘Ò?˜QŸV™V vÑ-Ò?°!·%±%·-±-Ð?r-   c                 ó"   •— ‰| j                   z  S r(   )r   )rz   rJ   s    €r$   r,   z _solve_lambert.<locals>.<lambda>*  s   ø€ Ø�1—5‘5’r-   r   )Úforce)ÚdeeprI   z:%s does not appear to have a solution in terms of LambertW)rJ   )r=   r+   r   r   rw   r   ÚNotImplementedErrorr?   r>   r
   Úassumptions0Úreplacer1   rL   r   ÚComplexInfinityÚNaNr   rn   r   r   r   r8   rk   r/   r   r   rA   r   r	   )r\   r!   r   ru   Únrhsr4   rH   r6   ÚlamcheckÚt_indepÚt_termÚ_rhsrX   Úrrz   ÚsolnrY   rZ   ÚdiffÚmainexpÚmaintermÚmainpowrJ   s    ``                   @r$   ro   ro   Á   sj  ú€ ôD4 ðl × Ñ  °Ð Ó5�I€Dˆ#Øˆ%€Cá#ó B™t˜Ø—H‘H¤¤c 
Ñ*Ø—’ ¨#¯'©'×*>Ñ*>Ñ >ò ˜t€Hð Bñ Ü!Ó#Ð#à
‡z‚z�S—Z“Zô Ñ-˜×,Ñ,Ñ-ˆØ�k‰kó@óóˆð �:Š:˜#Ÿ'™' !œ*Ø—h‘h˜q !“nˆGØ˜7‘]ˆFØ˜‘=ˆDØ—=’=¡TØ—J‘Jœq×0Ñ0´!·%±%Ô8Ü¤ F£¬c°$«iÑ 7Ó8�Ù.¨r°1°fÓ=Ð=Ø�ZŠZ™CäœS ›X¨TÔ2ˆCÜ�c“(ˆCØ�w‰w�qŒz˜cŸjšjà˜3‘Y�Ù.¨r°1°fÓ=Ð=ð �l‰l˜A˜v˜;Ó'ˆä
”&˜ 4Ô(Ó
)€Cô 	‹€AÜ�S˜1‘W˜fÓ%�F€A€sØ
�*‰*�a˜�XÓ
€Cð €DÚÜ˜C¤ fÓ-ˆÙØ�zŠz˜c QšhÜ¤ C£¬3¨s«8Ñ 3°VÓ<‘Ø—’ØŸ™ ¨!Ó,�Ù §¢Ø',§{¡{´3Ô'7ó37Ù'7 Ø! S×%5Ñ%5Ñ5ò Ð'7ò37ñ Ü" 5›z¬C°¸±Ó,<Ñ<™ä" 3¨¡;Ó/´#°c¸E±kÓ2BÑB˜Ü#¤J¨tÓ$4°fÓ=‘Dô $ C¨#¡I¨vÓ6�Dñ Ü˜C¤ fÓ-ˆÙÜ˜#˜wÓ'ˆCØ�zŠz˜c QšhÜ¤
¬3¨s«8´c¸#³hÑ+>Ó ?ÀÓH‘Ø—’àŸ™ ¨!Ó,�Ø ™;�Ø˜E‘k�Ø×5Ñ5Ô7Ø×0Ñ0Ô2Ø ‘N�HØ˜2‘I�CÜ˜8“}¤s¨3£xÑ/�Ü¤
¨4Ó 0°&Ó9�ñ Ü˜C¤ fÓ-ˆÙ�v §¡×!9Ñ!9Ñ9Ü˜#˜wÓ'ˆCØ�zŠz˜c Qšhä¤
¬3¨s«8´c¸#³hÑ+>Ó ?ÀÓH‘Ø—’àŸ™ ¨!Ó,�Ø ™;�Ø˜E‘k�Ü˜8“}¤s¨3£xÑ/�Ü¤
¨4Ó 0°&Ó9�áÜ!ð # Ø"#ñ#$ó %ð 	%ô ”˜“ÓÐùòEBùò@37s   ¦AS ÊS%T©Úfirstc          
      óÚ  ‡‡— t        dd¬«      }|r“t        | ‰‰«      }|j                  «       } t        «       }t        «       }t        t        | j	                  ‰|‰|i«      ||«      ||d¬«      }|r2|‰|‰i}	|d   j                  |	«      |d   j                  |	«      |d   fS y	| }|j                  «       } t        j                  |j                  «       «      }
g }|
D ]G  }t        |j	                  ‰|‰z  «      «      }|j                  }‰|v s‰|v r n!|j                  |«       ŒI ‰‰z  t        |Ž |fS ˆˆfd
„}g }|j                  ‰«      }|j                  ‰«      |k(  r_t        |j                  ‰|z  «      |«      }t        |j                  ‰|z  «      |«      } || ‰||‰z  z
  |z  «      }|�|‰z  |‰z  z   ||fS g }|j                  ‰«      }|j                  ‰«      |k(  rƒt        d«      D ]t  }t        |j                  ‰|z  ‰|z  z  «      |«      }t        |j                  ‰|z  «      |«      } || ‰||‰z  z
  |z  ‰z  «      }|�|‰z  ‰z  |‰z  z   ||fc S ‰‰cŠŠŒv y	y	)aç  Given an expression, f, 3 tests will be done to see what type
    of composite bivariate it might be, options for u(x, y) are::

        x*y
        x+y
        x*y+x
        x*y+y

    If it matches one of these types, ``u(x, y)``, ``P(u)`` and dummy
    variable ``u`` will be returned. Solving ``P(u)`` for ``u`` and
    equating the solutions to ``u(x, y)`` and then solving for ``x`` or
    ``y`` is equivalent to solving the original expression for ``x`` or
    ``y``. If ``x`` and ``y`` represent two functions in the same
    variable, e.g. ``x = g(t)`` and ``y = h(t)``, then if ``u(x, y) - p``
    can be solved for ``t`` then these represent the solutions to
    ``P(u) = 0`` when ``p`` are the solutions of ``P(u) = 0``.

    Only positive values of ``u`` are considered.

    Examples
    ========

    >>> from sympy import solve
    >>> from sympy.solvers.bivariate import bivariate_type
    >>> from sympy.abc import x, y
    >>> eq = (x**2 - 3).subs(x, x + y)
    >>> bivariate_type(eq, x, y)
    (x + y, _u**2 - 3, _u)
    >>> uxy, pu, u = _
    >>> usol = solve(pu, u); usol
    [sqrt(3)]
    >>> [solve(uxy - s) for s in solve(pu, u)]
    [[{x: -y + sqrt(3)}]]
    >>> all(eq.subs(s).equals(0) for sol in _ for s in sol)
    True

    rO   T)ÚpositiveFrŽ   r   r   é   Nc                 ój   •— t        | j                  ||«      «      }|j                  }‰|v s‰|v rd S |S r(   )r   rL   r   )r\   Úvr`   ÚnewÚfreer*   Úys        €€r$   Úokzbivariate_type.<locals>.okä  s9   ø€ Ü�q—v‘v˜a “|Ó$ˆØ×ÑˆØ˜T™	 Q¨$¡YˆtÐ8°SÐ8r-   )r
   r   Úas_exprÚbivariate_typerL   rn   r   Ú	make_argsr   r   ÚappendÚdegreer   Úcoeff_monomialÚrange)r\   r*   r—   r�   rO   rg   Ú_xÚ_yÚrvÚrepsrR   r•   rE   r–   r˜   r[   rF   Úitrys    ``               r$   rš   rš   ¡  sƒ  ù€ ôN 	ˆc˜DÔ!€AáÜ��A�q‹MˆØ�I‰I‹KˆÜ‹WˆÜ‹WˆÜœD §¡¨¨B°°2¨Ó!7¸¸RÓ@À"ÀbÐPUÔVˆÙØ˜˜2˜q�>ˆDØ�a‘5—>‘> $Ó'¨¨A©¯©¸Ó)=¸rÀ!¹uÐDÐDØà	€AØ	�	‰	‹€Aô �=‰=˜Ÿ™›Ó%€DØ
€CÛˆÜ�Q—V‘V˜A˜q ™s“^Ó$ˆØ�~‰~ˆØ�‰9˜˜T™	ÙØ�
‰
�1�ð ð �‰s”C˜�I˜qÐ Ð õ9ð €CØ	�‰�‹€AØ‡x�x�ƒ{�aÒÜ�×!Ñ! ! Q¡$Ó'¨Ó+ˆÜ�×!Ñ! ! Q¡$Ó'¨Ó+ˆÙ��A˜˜A˜a™C™ ‘{Ó#ˆØˆ?Ø�Q‘3˜˜1™‘9˜c 1Ð$Ð$ð €CØ	�‰�‹€AØ‡x�x�ƒ{�aÒÜ˜!–HˆDÜ�Q×%Ñ% a¨¡d¨1¨a©4¡iÓ0°!Ó4ˆAÜ�Q×%Ñ% a¨¡dÓ+¨QÓ/ˆAÙ�Q˜˜A  !¡™G Q™; q™=Ó)ˆCØˆØ˜‘s˜1‘u˜q ™s‘{ C¨Ð*Ò*Ø�aˆDˆA‰qñ ð r-   r(   )*Úsympy.core.addr   Úsympy.core.exprtoolsr   Úsympy.core.functionr   r   Úsympy.core.powerr   Úsympy.core.singletonr   Úsympy.core.sortingr	   Úsympy.core.symbolr
   Ú&sympy.functions.elementary.exponentialr   r   r   Ú(sympy.functions.elementary.miscellaneousr   Úsympy.polys.polyrootsr   Úsympy.polys.polytoolsr   r   Úsympy.simplify.simplifyr   Úsympy.simplify.radsimpr   r   Úsympy.solvers.solversr   r   Úsympy.utilities.iterablesr   r%   r8   r@   rk   ro   rš   © r-   r$   Ú<module>rµ      sb   ðÝ Ý -ß 4Ý  Ý "Ý &Ý #ß GÑ GÝ 9Ý 'ß .Ý 0Ý *Ý +ß 0Ý *òó8"òJ"òJEòP]ð@ &*õ \r-   