Ë
    7^(hfL  ã                   ó¦   — d dl mZmZmZmZmZmZ d dlmZ d dl	m
Z
 d dlmZmZmZmZ d dlmZ d dlmZmZ d dlmZ d dlmZmZ  G d	„ d
e«      ZeZy)é    )ÚSÚsympifyÚExprÚDummyÚAddÚMul)Úcacheit)ÚTuple)ÚFunctionÚ	PoleErrorÚexpand_power_baseÚ
expand_log©Údefault_sort_key)ÚexpÚlog)Ú
Complement)ÚuniqÚis_sequencec                   ó¼   — e Zd ZdZdZdZed„ «       Zdd„Ze	d„ «       Z
e	d„ «       Ze	d„ «       Ze	d	„ «       Zd
„ Zd„ Zd„ Zd„ Zed„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚOrdera   Represents the limiting behavior of some function.

    Explanation
    ===========

    The order of a function characterizes the function based on the limiting
    behavior of the function as it goes to some limit. Only taking the limit
    point to be a number is currently supported. This is expressed in
    big O notation [1]_.

    The formal definition for the order of a function `g(x)` about a point `a`
    is such that `g(x) = O(f(x))` as `x \rightarrow a` if and only if there
    exists a `\delta > 0` and an `M > 0` such that `|g(x)| \leq M|f(x)|` for
    `|x-a| < \delta`.  This is equivalent to `\limsup_{x \rightarrow a}
    |g(x)/f(x)| < \infty`.

    Let's illustrate it on the following example by taking the expansion of
    `\sin(x)` about 0:

    .. math ::
        \sin(x) = x - x^3/3! + O(x^5)

    where in this case `O(x^5) = x^5/5! - x^7/7! + \cdots`. By the definition
    of `O`, there is a `\delta > 0` and an `M` such that:

    .. math ::
        |x^5/5! - x^7/7! + ....| <= M|x^5| \text{ for } |x| < \delta

    or by the alternate definition:

    .. math ::
        \lim_{x \rightarrow 0} | (x^5/5! - x^7/7! + ....) / x^5| < \infty

    which surely is true, because

    .. math ::
        \lim_{x \rightarrow 0} | (x^5/5! - x^7/7! + ....) / x^5| = 1/5!


    As it is usually used, the order of a function can be intuitively thought
    of representing all terms of powers greater than the one specified. For
    example, `O(x^3)` corresponds to any terms proportional to `x^3,
    x^4,\ldots` and any higher power. For a polynomial, this leaves terms
    proportional to `x^2`, `x` and constants.

    Examples
    ========

    >>> from sympy import O, oo, cos, pi
    >>> from sympy.abc import x, y

    >>> O(x + x**2)
    O(x)
    >>> O(x + x**2, (x, 0))
    O(x)
    >>> O(x + x**2, (x, oo))
    O(x**2, (x, oo))

    >>> O(1 + x*y)
    O(1, x, y)
    >>> O(1 + x*y, (x, 0), (y, 0))
    O(1, x, y)
    >>> O(1 + x*y, (x, oo), (y, oo))
    O(x*y, (x, oo), (y, oo))

    >>> O(1) in O(1, x)
    True
    >>> O(1, x) in O(1)
    False
    >>> O(x) in O(1, x)
    True
    >>> O(x**2) in O(x)
    True

    >>> O(x)*x
    O(x**2)
    >>> O(x) - O(x)
    O(x)
    >>> O(cos(x))
    O(1)
    >>> O(cos(x), (x, pi/2))
    O(x - pi/2, (x, pi/2))

    References
    ==========

    .. [1] `Big O notation <https://en.wikipedia.org/wiki/Big_O_notation>`_

    Notes
    =====

    In ``O(f(x), x)`` the expression ``f(x)`` is assumed to have a leading
    term.  ``O(f(x), x)`` is automatically transformed to
    ``O(f(x).as_leading_term(x),x)``.

        ``O(expr*f(x), x)`` is ``O(f(x), x)``

        ``O(expr, x)`` is ``O(1)``

        ``O(0, x)`` is 0.

    Multivariate O is also supported:

        ``O(f(x, y), x, y)`` is transformed to
        ``O(f(x, y).as_leading_term(x,y).as_leading_term(y), x, y)``

    In the multivariate case, it is assumed the limits w.r.t. the various
    symbols commute.

    If no symbols are passed then all symbols in the expression are used
    and the limit point is assumed to be zero.

    T© c           	      óº  ‡!— t        |«      }|sX|j                  r|j                  }|j                  Š!nÛt	        |j
                  «      }t        j                  gt        |«      z  Š!n¨t	        t        |«      r|n|g«      }g g c}Š!t        |d   «      rF|D ]@  }t	        t        t         |«      «      \  }}|j                  |«       ‰!j                  |«       ŒB n6t	        t        t         |«      «      }t        j                  gt        |«      z  Š!t        d„ |D «       «      st        d|z  «      ‚t        t	        t        |«      «      «      t        |«      k7  rt        d|z  «      ‚|j                  rÜt!        |j"                  dd  «      }t!        |«      }	t!        t%        |‰!«      «      }
|
j'                  «       D ]0  \  }}||	j)                  «       v r||	|   k7  sŒ!t+        d«      ‚||	|<   Œ2 t-        |j)                  «       «      t-        |	j)                  «       «      k(  r|S t	        |	j)                  «       «      }|D �cg c]  }|	|   ‘Œ	 c}Š!|t        j.                  u rt        j.                  S t1        ˆ!fd„|D «       «      rt        d‰!z  «      ‚|�r¿t1        ˆ!fd	„‰!D «       «      rt+        d
«      ‚‰!d   t        j2                  t        j2                  t        j4                  z  fv rc|D �ci c]  }|dt7        «       z  “Œ }}|j'                  «       D ��ci c]  \  }}d|z  d|z  “Œ }}}‰!D �cg c]  }t        j                  ‘Œ }}�n5‰!d   t        j8                  t        j8                  t        j4                  z  fv rb|D �ci c]  }|dt7        «       z  “Œ }}|j'                  «       D ��ci c]  \  }}d|z  d|z  “Œ }}}‰!D �cg c]  }t        j                  ‘Œ }}n�‰!d   t        j                  ury|D �ci c]  }|t7        «       ‰!d   z   “Œ }}|j'                  «       D ��ci c]"  \  }}|‰!d   z
  j;                  «       |‰!d   z
  “Œ$ }}}‰!D �cg c]  }t        j                  ‘Œ }}nd}d}t	        ‰!«      }|j=                  |«      }|j>                  r|jA                  «       }|r+tC        |j'                  «       D �cg c]  }|d   ‘Œ	 c}«      }ntC        |«      }t        |«      dkD  r|jE                  «       }d }||k7  �r6|}|j>                  r8|jG                  |«      }tI        |D ��cg c]  \  }}|jJ                  ‘Œ c}}Ž }�né|�ræ	  |jL                  |Ž }|jb                  rt        j                  }n |jd                  |ddiŽd   }tg        |«      }ti        |«      }t        |«      dk(  �r|d   }t	        tY        jj                  |je                  |d¬«      d   «      «      }tm        |«      D �]1  \  }}|jZ                  sŒ|j"                  \  }}||| fv r&|jn                  r|jq                  |«      s	||z  ||<   ŒP|jZ                  rK|j\                  jq                  |«      s0|j"                  \  }}||| fv sŒŽ|jn                  sŒ›|||z  z  ||<   Œ§|jV                  sŒ´|j"                  d   t        jr                  u sŒÔ| }|jZ                  sŒä|j\                  jq                  |«      r�Œ|j"                  \  }}||| fv s�Œ|jn                  s�Œ'|||z  z  ||<   �Œ4 tY        |Ž }||k7  r�Œ6|j=                  |«      }|j                  r|jJ                  } |jp                  |Ž s|jb                  st        jt                  }t!        t%        |‰!«      «      }
|jw                  tx        ¬«       |D �cg c]  }|
|   ‘Œ	 c}Š!|ft{        t%        |‰!«      Ž z   }t}        j~                  | g|¢­Ž } | S c c}w c c}w c c}}w c c}w c c}w c c}}w c c}w c c}w c c}}w c c}w c c}w c c}}w # tN        $ �rˆ tQ        |tR        «      st        d„ |j"                  D «       «      r�nVg }tC        t%        ||«      «      }|j"                  D ]Q  }	  |jL                  |Ž }n# tN        $ r |}Y nw xY w||vrtU        |«      }ntU        |g|¢­Ž }|j                  |«       ŒS |j>                  retU        tI        |Ž g|¢­Ž }|j>                  r:tU        tI        |j"                  D �cg c]  }|jJ                  ‘Œ nc c}w c}Ž g|¢­Ž }|jJ                  }nn|jV                  r'tY        |D �cg c]  }|jJ                  ‘Œ nc c}w c}Ž }n;|jZ                  r/|j\                  }|j^                  }t]        |ta        |«      z  «      }Y �Œnw xY wc c}w )Nr   c              3   ó4   K  — | ]  }|j                   –— Œ y ­w©N)Ú	is_symbol)Ú.0Úvs     úP/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/series/order.pyú	<genexpr>z Order.__new__.<locals>.<genexpr>™   s   è ø€ Ò2 1�1—;•;Ñ2ùs   ‚z!Variables are not symbols, got %sz3Variables are supposed to be unique symbols, got %sé   z2Mixing Order at different points is not supported.c              3   óH   •K  — | ]  }‰D ]  }||j                   v –— Œ Œ y ­wr   )Úfree_symbols)r   ÚxÚpÚpoints      €r   r    z Order.__new__.<locals>.<genexpr>³   s'   øè ø€ ÒE q¸uÒE¸!ˆq�A—N‘NÔ"ÐEÐ"ÑEùs   ƒ"zGot %s as a point.c              3   ó.   •K  — | ]  }|‰d    k7  –— Œ y­w©r   Nr   ©r   r%   r&   s     €r   r    z Order.__new__.<locals>.<genexpr>·   s   øè ø€ Ò0 Q�1˜˜a™•=Ñ0ùs   ƒz;Multivariable orders at different points are not supported.éÿÿÿÿr   c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wr   )Ú
isinstancer   )r   Úargs     r   r    z Order.__new__.<locals>.<genexpr>é   s   è ø€ Ò#SÀ#¤J¨s´H×$=Ñ#Sùs   ‚Úas_AddF©r.   ©Úkey)@r   Úis_OrderÚ	variablesr&   Úlistr#   r   ÚZeroÚlenr   ÚmapÚappendÚallÚ	TypeErrorr   Ú
ValueErrorÚdictÚargsÚzipÚitemsÚkeysÚNotImplementedErrorÚsetÚNaNÚanyÚInfinityÚImaginaryUnitr   ÚNegativeInfinityÚtogetherÚsubsÚis_AddÚfactorÚtupleÚexpandÚextract_leading_orderr   ÚexprÚas_leading_termr   r,   r   r   Úis_Mulr   Úis_Powr   Úbaser   Úis_zeroÚas_independentr   r   Ú	make_argsÚ	enumerateÚis_realÚhasÚNegativeOneÚOneÚsortr   r
   r   Ú__new__)"ÚclsrO   r=   Úkwargsr3   Úar   r%   Úexpr_vpÚnew_vpÚvpÚkÚsÚrsÚpsÚrÚold_exprÚlstÚeÚfÚordersÚptsr-   ÚltÚorderÚnew_exprÚbr$   ÚmargsÚiÚtÚqÚobjr&   s"                                    @r   r]   zOrder.__new__‚   su  ø€ ä�t‹}ˆáØ�}Š}Ø ŸN™N�	ØŸ
™
‘ä  ×!2Ñ!2Ó3�	ÜŸ™˜¤ Y£Ñ/‘ä¤¨DÔ 1™¸°vÓ>ˆDØ! 2ÐˆI�uÜ˜4 ™7Ô#Øò $�AÜ¤¤G¨Q£Ó0‘D�A�qØ×$Ñ$ QÔ'Ø—L‘L •Oñ$ô
 !¤¤W¨dÓ!3Ó4�	ÜŸ™˜¤ Y£Ñ/�äÑ2¨	Ô2Ô2ÜÐ?À)ÑKÓLÐLäŒt”D˜“OÓ$Ó%¬¨Y«Ò7ÜÐRÐU^Ñ^Ó_Ð_à�=Š=Ü˜4Ÿ9™9 Q R˜=Ó)ˆGÜ˜'“]ˆFÜ”c˜) UÓ+Ó,ˆBØŸ™›
ò "‘��1Ø˜Ÿ™›Ñ%Ø˜F 1™I“~Ü1ØPóRð Rð !"�F˜1’Ið"ô �7—<‘<“>Ó"¤c¨&¯+©+«-Ó&8Ò8Ø�ä  §¡£Ó/�	Ø,5Ö6 q˜ ›Ò6�à”1—5‘5‰=Ü—5‘5ˆLäÓE¨IÔEÔEÜÐ1°EÑ9Ó:Ð:âÜÓ0¨%Ô0Ô0Ü)ØQóSð Sà�Q‰xœAŸJ™J¬¯
©
´1·?±?Ñ(BÐCÑCØ+4Ö5 a�Q˜œ%›'™	‘\Ð5�Ð5Ø+,¯7©7«9×5¡4 1 a�a˜‘c˜1˜Q™3‘hÐ5�Ñ5Ø&+Ö, ”a—f“fÐ,�Ò,Ø�q‘œa×0Ñ0´!×2DÑ2DÄQÇ_Á_Ñ2TÐUÑUØ,5Ö6 q�Q˜œ5›7™
‘]Ð6�Ð6Ø-.¯W©W«Y×7¡T Q¨�b˜‘d˜B˜q™D‘jÐ7�Ñ7Ø&+Ö, ”a—f“fÐ,�Ñ,Ø�q‘¤§¡Ñ'Ø4=Ö>¨q�Qœ› %¨¡(Ñ*Ñ*Ð>�Ð>ØJKÏ'É'Ë)×TÁ$À!ÀQ�q˜5 ™8‘|×-Ñ-Ó/°°U¸1±X±Ñ=ÐT�ÑTØ&+Ö, ”a—f“fÐ,�Ñ,à�Ø�Ü˜%“[�à—9‘9˜Q“<ˆDà�{Š{Ø—{‘{“}�áÜ¨B¯H©H«JÖ7 q˜a ›dÒ7Ó8‘ä˜YÓ'�ä�9‹~ Ò!ð —{‘{“}�àˆHØ˜dÓ"Ø�Ø—;’;Ø×4Ñ4°TÓ:�CÜ°c× :©F¨Q° §£Ó :Ð;’Dâð 7Ø3˜t×3Ñ3°TÐ:˜ðH —|’|Ü Ÿv™v™à2˜t×2Ñ2°DÐGÀÑGÈÑJ˜ä,¨TÓ2�DÜ% dÓ+�Dä˜4“y A“~ð ! ™G˜Ü $¤S§]¡]Ø ×/Ñ/°¸%Ð/Ó@ÀÑCó&Eó !F˜ô %.¨eÓ$4ó @™D˜A˜qØ Ÿx›xØ'(§v¡v¡  1Ø#$¨¨Q¨B¨¡<°A·I²IÀaÇeÁeÈAÄhØ/0°!©t E¨!¢HØ%&§X¢X°a·e±e·i±iÀ´lØ+,¯6©6¡D A qØ'(¨Q°°¨G¢|¸¿	»	Ø34°q¸±s±8¨¨aªØ%&§X£X°!·&±&¸±)¼q¿}¹}Ò2LØ)*¨ AØ'(§x£x¸¿¹¿	¹	À!¾Ø/0¯v©v©¨¨1Ø+,°°Q°B°«<¸A¿I¼IØ78¸1¸Q¹3±x¨E°!«Hð@ô   # E˜{˜ð] ˜dÔ"ð` —9‘9˜R“=ˆDà�=Š=Ø—9‘9ˆDàˆt�x‰x˜Ñ#¨D¯LªLÜ—5‘5ˆDô ”#�i Ó'Ó(ˆØ�‰Ô+ˆÔ,Ø )Ö*˜1��A“Ò*ˆØˆwœ¤ I¨uÓ 5Ð6Ñ6ˆÜ�l‰l˜3Ð& Ò&ˆØˆ
ùò] 7ùò 6ùÛ5ùÚ,ùâ6ùÛ7ùÚ,ùâ>ùÛTùÚ,ùò 8ùó" !;øô
 %ó 7Ü% d¬HÔ5Ü #Ñ#SÈÏÉÔ#SÔ Sñ !à%'˜FÜ"'¬¨D°"«Ó"6˜CØ'+§y¡yò 	5 ð!-Ø)<¨×)<Ñ)<¸dÐ)C¡BøÜ'0ò !-Ø),¢Bð!-úà#%¨T¡>Ü,1°"«I¡Eä,1°"¨O°sªO EØ &§¡¨eÕ 4ð	5ð  $Ÿ{š{Ü+0´°f°Ð+DÀÒ+D Ø#+§?¢?Ü/4´SÈ8Ï=É=Ö:YÀa¸1¿6»6Ñ:YùÔ:YÐ5ZÐ/aÐ]`Ò/a HØ'/§}¡}¡Ø!%§¢Ü'*¸VÖ,D¸¨Q¯V«VÑ,DùÔ,DÐ'E¡Ø!%§¢Ø$(§H¡H Ø$(§I¡I Ü'*¨1¬s°1«v©:£ úð=7üòd +sŸ   È?`Ë.`Ì`Ì2`Î`Î1`Ï`#Ï>`(Ð+'`-Ñ`3Ó`8Ô6`=
Õa ßgáAgâ"b2â1gâ2c â=gâ?c ã A4gä4eå1gå8f
æAgçgc                 ó   — | S r   r   )Úselfr$   ÚnÚlogxÚcdirs        r   Ú_eval_nserieszOrder._eval_nseries>  ó   € Øˆó    c                 ó    — | j                   d   S ©Nr   ©r=   ©ry   s    r   rO   z
Order.exprA  s   € à�y‰y˜‰|Ðr   c                 ó`   — | j                   dd  rt        d„ | j                   dd  D «       «      S y)Nr!   c              3   ó&   K  — | ]	  }|d    –— Œ y­wr(   r   ©r   r$   s     r   r    z"Order.variables.<locals>.<genexpr>H  ó   è ø€ Ò5 !˜˜1�Ñ5ùó   ‚r   ©r=   rL   rƒ   s    r   r3   zOrder.variablesE  ó-   € à�9‰9�Q�R‰=ÜÑ5 t§y¡y°° }Ô5Ó5Ð5àr   c                 ó`   — | j                   dd  rt        d„ | j                   dd  D «       «      S y)Nr!   c              3   ó&   K  — | ]	  }|d    –— Œ y­w©r!   Nr   r†   s     r   r    zOrder.point.<locals>.<genexpr>O  r‡   rˆ   r   r‰   rƒ   s    r   r&   zOrder.pointL  rŠ   r   c                 óZ   — | j                   j                  t        | j                  «      z  S r   )rO   r#   rB   r3   rƒ   s    r   r#   zOrder.free_symbolsS  s    € à�y‰y×%Ñ%¬¨D¯N©NÓ(;Ñ;Ð;r   c                 ó®   — |j                   r9|j                  r- | j                  | j                  |z  g| j                  dd  ¢­Ž S |t        d«      k(  r| S y ©Nr!   )Ú	is_NumberÚis_nonnegativeÚfuncrO   r=   ÚO)rr   rk   s     r   Ú_eval_powerzOrder._eval_powerW  sL   € Ø�;Š;˜1×+Ò+Ø�1—6‘6˜!Ÿ&™& A™+Ð3¨¯©¨q¨r¨
Ò3Ð3Ø”�!“Š9ØˆHØr   c                 ó  ‡ ‡— ‰€‰ j                   dd  ŠnÜt        ˆfd„‰D «       «      s6t        ˆ fd„‰ j                  D «       «      st        d‰ j                  z  «      ‚‰r#‰d   d   ‰ j                  d   k7  rt        d«      ‚t	        ‰«      Št	        ‰ j                   dd  «      j                  «       D ]  \  }}|‰j                  «       vsŒ|‰|<   Œ t        ‰j                  «       d„ ¬«      Š‰ j                  t        ‰«      fS )	Nr!   c              3   ó:   •K  — | ]  }|d    ‰d   d    k(  –— Œ y­w)r!   r   Nr   )r   ÚoÚorder_symbolss     €r   r    z*Order.as_expr_variables.<locals>.<genexpr>b  s$   øè ø€ ÒK¸˜˜!™ ¨aÑ 0°Ñ 3Õ3ÑKùs   ƒc              3   óB   •K  — | ]  }|‰j                   d    k(  –— Œ y­wr(   )r&   )r   r%   ry   s     €r   r    z*Order.as_expr_variables.<locals>.<genexpr>c  s   øè ø€ ÒC°1˜A §¡¨A¡Õ.ÑCùs   ƒzDOrder at points other than 0 or oo not supported, got %s as a point.r   z7Multiplying Order at different points is not supported.c                 ó   — t        | d   «      S r�   r   )r$   s    r   ú<lambda>z)Order.as_expr_variables.<locals>.<lambda>m  s   € ÔHXÐYZÐ[\ÑY]ÓH^€ r   r0   )
r=   r9   r&   rA   r<   r?   r@   ÚsortedrO   rL   )ry   r™   re   r%   s   ``  r   Úas_expr_variableszOrder.as_expr_variables^  s  ù€ ØÐ Ø ŸI™I a b˜M‰MäÓK¸]ÔKÔKÜÓC¸¿
¹
ÔCÔCÜ)ð +>Ø@DÇ
Á
ñ+Kó Lð Lá ¨qÑ!1°!Ñ!4¸¿
¹
À1¹Ò!EÜ)ØQóSð Sä  Ó/ˆMÜ˜TŸY™Y q r˜]Ó+×1Ñ1Ó3ò )‘��1Ø˜M×.Ñ.Ó0Ò0Ø'(�M !Ò$ð)ô # =×#6Ñ#6Ó#8Ñ>^Ô_ˆMØ�y‰yœ% Ó.Ð.Ð.r   c                 ó"   — t         j                  S r   )r   r5   rƒ   s    r   ÚremoveOzOrder.removeOp  s   € Ü�v‰vˆr   c                 ó   — | S r   r   rƒ   s    r   ÚgetOz
Order.getOs  r~   r   c                 óF	  ‡ ‡‡— t        ‰«      Š‰j                  ry‰t        j                  u ry‰ j                  r‰ j                  d   nt        j
                  Š‰j                  �r	t        ˆfd„‰j                  D «       «      st        ˆfd„‰ j                  D «       «      ry‰j                  ‰ j                  k(  r!t        ˆ fd„‰j                  dd D «       «      S ‰j                  j                  r(t        ˆ fd	„‰j                  j                  D «       «      S ‰ j                  j                  r5‰j                  r)t        ˆˆ fd
„‰ j                  j                  D «       «      S ‰ j                  r?‰j                  r3t        ‰ j                  D �cg c]  }|‰j                  v sŒ|‘Œ c}«      }n%‰ j                  r‰ j                  }n‰j                  }|sy‰ j                  j                  �r
t        ‰ j                  «      dk(  rò‰ j                  ‰j                  k(  rÙ‰ j                  d   }‰j                  j!                  |d¬«      d   }|j                  rž|j"                  |k(  r�‰ j                  j"                  |k(  rv‰j                  r-‰ j                  j$                  |j$                  z
  j&                  }‰j(                  r-‰ j                  j$                  |j$                  z
  j*                  }�|S ddlm} d}‰ j                  ‰j                  z  }	 ||	dd¬«      }	|D ]B  }ddlm}
  |
|	|‰«      j5                  d¬«      }t7        ||
«      s|dk7  }nd}|€|}Œ<||k7  sŒB y |S ‰ j                  j                  rçt        ‰ j                  «      dk(  rÏ‰ j                  d   }‰j!                  |d¬«      d   }|j                  rž|j"                  |k(  r�‰ j                  j"                  |k(  rv‰j                  r-‰ j                  j$                  |j$                  z
  j&                  }‰j(                  r-‰ j                  j$                  |j$                  z
  j*                  }�|S  ‰ j8                  ‰g‰ j                  dd ¢­Ž }‰ j;                  |«      S c c}w )zÿ
        Return True if expr belongs to Order(self.expr, \*self.variables).
        Return False if self belongs to expr.
        Return None if the inclusion relation cannot be determined
        (e.g. when self and expr have different symbols).
        TFr   c              3   ó(   •K  — | ]	  }|‰k7  –— Œ y ­wr   r   r)   s     €r   r    z!Order.contains.<locals>.<genexpr>…  s   øè ø€ Ò3 1�A˜•JÑ3ùó   ƒc              3   ó(   •K  — | ]	  }|‰k7  –— Œ y ­wr   r   r)   s     €r   r    z!Order.contains.<locals>.<genexpr>†  s   øè ø€ Ò6 a�q˜E•zÑ6ùr¥   Nc              3   ó@   •K  — | ]  }|‰j                   d d v –— Œ y­wr�   r‚   ©r   r$   ry   s     €r   r    z!Order.contains.<locals>.<genexpr>Š  s    øè ø€ ÒE°!˜1 §	¡	¨!¨" Ô-ÑEùó   ƒr!   c              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr   )Úcontainsr¨   s     €r   r    z!Order.contains.<locals>.<genexpr>Œ  s   øè ø€ ÒD°˜4Ÿ=™=¨×+ÑDùr©   c              3   ó|   •K  — | ]3  } ‰j                   |g‰j                  d d ¢­Ž j                  ‰«      –— Œ5 y­wr�   )r“   r=   r«   )r   r$   rO   ry   s     €€r   r    z!Order.contains.<locals>.<genexpr>Ž  s>   øè ø€ ò 5Ø !ð %˜4Ÿ9™9 QÐ7¨¯©°1°2¨Ò7×@Ñ@À×Fñ 5ùs   ƒ9<r/   )Úpowsimpr   )ÚdeepÚcombine)ÚLimit)Ú
heuristics)r   rT   r   rC   r&   r5   r2   rD   rO   r9   r=   rJ   r3   rL   rR   r6   rU   rS   r   Úis_nonpositiveÚis_infiniter’   Úsympy.simplify.powsimpr­   Úsympy.series.limitsr°   Údoitr,   r“   r«   )ry   rO   re   Úcommon_symbolsÚsymbolÚotherÚrvr­   rh   Úratior°   Úlrw   r&   s   ``           @r   r«   zOrder.containsv  s‹  ú€ ô �t‹}ˆØ�<Š<ØØ”1—5‘5‰=ØØ!%§¢�—
‘
˜1’´·±ˆØ�=‹=ÜÓ3¨¯
©
Ô3Ô3ÜÓ6¨4¯:©:Ô6Ô6ØØ�y‰y˜DŸI™IÒ%äÓE°t·y±yÀÀ°}ÔEÓEÐEØ�y‰y×ÒÜÓD°T·Y±Y·^±^ÔDÓDÐDØ�y‰y×Ò E§M¢MÜô 5Ø%)§Y¡Y§^¡^ô5ó 5ð 5à�~Š~ $§.¢.Ü!&Ø $§¡ÖF˜1°!°t·~±~Ò2E’QÒFó"H‘à—’Ø!%§¡‘à!%§¡�Ù!ØØ—	‘	× Ó ¤S¨¯©Ó%8¸AÒ%=Ø—N‘N d§n¡nÒ4Ø!Ÿ^™^¨AÑ.�FØ ŸI™I×4Ñ4°VÀEÐ4ÓJÈ1ÑM�EØŸš¨¯©°vÒ)=ØŸ	™	Ÿ™¨&Ò0Ø$Ÿ}š}Ø&*§i¡i§m¡m°e·i±iÑ&?×%OÑ%O Ø$×0Ò0Ø&*§i¡i§m¡m°e·i±iÑ&?×%OÑ%O Ø!˜~Ø') 	å6ØˆAØ—I‘I˜dŸi™iÑ'ˆEÙ˜E¨°eÔ<ˆEØ#ò �Ý5Ù˜%  EÓ*×/Ñ/¸5Ð/ÓA�Ü! ! UÔ+Ø˜Q™‘Aà�AØ�9Ø‘Aà˜A“vÙðð ˆHà�9‰9×Ò¤ D§N¡NÓ 3°qÒ 8Ø—^‘^ AÑ&ˆFØ×'Ñ'¨°uÐ'Ó=¸aÑ@ˆEØ—’ §¡¨vÒ!5Ø—	‘	—‘ &Ò(Ø—}’}Ø"Ÿi™iŸm™m¨e¯i©iÑ7×GÑG˜Ø×(Ò(Ø"Ÿi™iŸm™m¨e¯i©iÑ7×GÑG˜Ø�~Ø!˜	àˆd�i‰i˜Ð-˜tŸy™y¨¨˜}Ò-ˆØ�}‰}˜SÓ!Ð!ùòg Gs   ÆRÆ&Rc                 óB   — | j                  |«      }|€t        d«      ‚|S )Nz#contains did not evaluate to a bool)r«   r:   )ry   r¹   Úresults      r   Ú__contains__zOrder.__contains__Ç  s&   € Ø—‘˜uÓ%ˆØˆ>ÜÐAÓBÐBØˆr   c                 óš  — || j                   v �r¼| j                  j                  ||«      }| j                   j                  |«      }t	        | j                   «      }t	        | j
                  «      }|j                  r|||<   �n2|j                  }t        |«      dk(  s||v �r¶||v r| j                   |   }n|j                  «       }ddl
m}	 |j                  t        «      r‚ |	|j                  «       j                  ||j                  «       j
                  d   «      | j
                  |   k(  r5|j                  «       j
                  d   }
t        |gt        |g|
g«      ¢­Ž S |j                  || j
                  |   «      }
|
| j
                  |   k7  r¹ddlm} t%        «       } |||j                  ||«      z
  |«      }t'        |t(        «      r5|j*                  d   }|j*                  d   }t-        |«      t-        |«      z
  }t/        t        |f|«      «      g}|j                  |d   «      j                  || j
                  |   «      }
|||<   |
||<   n]||vrX||= ||= |sQ|| j
                  |   k(  r?|j1                  |«       |j1                  t2        j4                  gt        |«      z  «       ny t        |gt        ||«      ¢­Ž S y )Nr!   r   )Úlimit)Úsolveset)r3   rO   rI   Úindexr4   r&   r   r#   r6   ÚpopÚsympyrÁ   rY   r   r¢   r>   Úsympy.solvers.solvesetrÂ   r   r,   r   r=   rB   r<   Úextendr   r5   )ry   ÚoldÚnewÚnewexprrt   ÚnewvarsÚnewptÚsymsÚvarrÁ   r&   rÂ   ÚdÚsolÚe1Úe2Úress                    r   Ú
_eval_subszOrder._eval_subsÍ  sV  € Ø�$—.‘.Ò Ø—i‘i—n‘n S¨#Ó.ˆGØ—‘×$Ñ$ SÓ)ˆAÜ˜4Ÿ>™>Ó*ˆGÜ˜Ÿ™Ó$ˆEØ�}Š}Ø �˜“
à×'Ñ'�Ü�t“9 ’> S¨D¢[Ø˜d‘{Ø"Ÿn™n¨QÑ/™à"Ÿh™h›j˜õ ,Ø—w‘wœu”~©%°·±³
·±ÀÀcÇhÁhÃj×FVÑFVÐWXÑFYÓ*ZÐ^b×^hÑ^hÐijÑ^kÒ*kØ #§¡£
× 0Ñ 0°Ñ 3˜Ü$ WÐC¬s°C°5¸5¸'Ó/BÒCÐCà #§¡¨¨d¯j©j¸©mÓ <˜Ø §
¡
¨1¡Ò-ÝCÜ!›G˜Ù& s¨S¯X©X°c¸1Ó-=Ñ'=¸qÓA˜Ü% c¬:Ô6Ø!$§¡¨!¡˜BØ!$§¡¨!¡˜BÜ"% b£'¬C°«GÑ"3˜CÜ#¤C¨¨¨s£OÓ4Ð5˜Ø !§¡ s¨1¡v£× 4Ñ 4°S¸$¿*¹*ÀQ¹-Ó H˜Ø!$�G˜A‘JØ$�E˜!’HØ ‘_Ø ˜
 E¨! HÙ C¨4¯:©:°a©=Ò$8ØŸ™ tÔ,ØŸ™¤a§f¡f X¬c°$«iÑ%7Õ8àÜ˜Ð7¤3 w°Ó#6Ò7Ð7ðU !r   c                 ó|   — | j                   j                  «       }|�  | j                  |g| j                  dd  ¢­Ž S y r�   )rO   Ú_eval_conjugater“   r=   ©ry   rO   s     r   rÖ   zOrder._eval_conjugateú  ó?   € Ø�y‰y×(Ñ(Ó*ˆØÐØ�4—9‘9˜TÐ2 D§I¡I¨a¨b MÒ2Ð2ð r   c                 ó|   —  | j                   | j                  j                  |«      g| j                  dd  ¢­Ž xs | S r�   )r“   rO   Údiffr=   )ry   r$   s     r   Ú_eval_derivativezOrder._eval_derivativeÿ  s4   € Øˆt�y‰y˜Ÿ™Ÿ™¨Ó*Ð;¨T¯Y©Y°q°r¨]Ò;ÒC¸tÐCr   c                 ó|   — | j                   j                  «       }|�  | j                  |g| j                  dd  ¢­Ž S y r�   )rO   Ú_eval_transposer“   r=   r×   s     r   rÝ   zOrder._eval_transpose  rØ   r   c                 ó   — | S r   r   rƒ   s    r   Ú__neg__zOrder.__neg__  r~   r   N)r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r2   Ú	__slots__r	   r]   r}   ÚpropertyrO   r3   r&   r#   r•   rž   r    r¢   r«   r¿   rÔ   rÖ   rÛ   rÝ   rß   r   r   r   r   r      sÊ   „ ñpðd €Hà€Iàñyó ðyóvð ñó ðð ñó ðð ñó ðð ñ<ó ð<òò/ò$òð ñN"ó ðN"ò`ò+8òZ3ò
Dò3ó
r   r   N)Ú
sympy.corer   r   r   r   r   r   Úsympy.core.cacher	   Úsympy.core.containersr
   Úsympy.core.functionr   r   r   r   Úsympy.core.sortingr   Ú&sympy.functions.elementary.exponentialr   r   Úsympy.sets.setsr   Úsympy.utilities.iterablesr   r   r   r”   r   r   r   ú<module>rî      s9   ðß 8× 8Ý $Ý 'ß RÓ RÝ /ß ;Ý &ß 7ô}ˆDô }ð~ 
�r   