ó
    Š*£hfL  ã                   ó¦   • S SK JrJrJrJrJrJr  S SKJr  S SK	J
r
  S SKJrJrJrJr  S SKJr  S SKJrJr  S SKJr  S SKJrJr   " S	 S
\5      r\rg)é    )ÚSÚsympifyÚExprÚDummyÚAddÚMul)Úcacheit)ÚTuple)ÚFunctionÚ	PoleErrorÚexpand_power_baseÚ
expand_log©Údefault_sort_key)ÚexpÚlog)Ú
Complement)ÚuniqÚis_sequencec                   óÆ   • \ rS rSrSrSrSr\S 5       rSS jr	\
S 5       r\
S 5       r\
S	 5       r\
S
 5       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g)ÚOrderé   a¼
  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           	      ó¤  ^!• [        U5      nU(       d]  UR                  (       a  UR                  nUR                  m!Oæ[	        UR
                  5      n[        R                  /[        U5      -  m!O³[	        [        U5      (       a  UOU/5      n/ / snm![        US   5      (       aG  U H@  n[	        [        [         U5      5      u  pgUR                  U5        T!R                  U5        MB     O6[	        [        [         U5      5      n[        R                  /[        U5      -  m![        S U 5       5      (       d  [        SU-  5      e[        [	        [        U5      5      5      [        U5      :w  a  [        SU-  5      eUR                  (       aá  [!        UR"                  SS  5      n[!        U5      n	[!        [%        UT!5      5      n
U
R'                  5        H1  u  pgXiR)                  5       ;   a  XyU   :w  a  [+        S5      eM-  XyU'   M3     [-        UR)                  5       5      [-        U	R)                  5       5      :X  a  U$ [	        U	R)                  5       5      nU Vs/ s H  oiU   PM	     snm!U[        R.                  L a  [        R.                  $ [1        U!4S jU 5       5      (       a  [        ST!-  5      eU(       GaH  [1        U!4S	 jT! 5       5      (       a  [+        S
5      eT!S   [        R2                  [        R2                  [        R4                  -  4;   aj  U Vs0 s H  o»S[7        5       -  _M     nnUR'                  5        VVs0 s H  u  p¶SU-  SU-  _M     nnnT! Vs/ s H  n[        R                  PM     nnGOFT!S   [        R8                  [        R8                  [        R4                  -  4;   ai  U Vs0 s H  o»S[7        5       -  _M     nnUR'                  5        VVs0 s H  u  p¶SU-  SU-  _M     nnnT! Vs/ s H  n[        R                  PM     nnO¥T!S   [        R                  La€  U Vs0 s H  o»[7        5       T!S   -   _M     nnUR'                  5        VVs0 s H"  u  p¶UT!S   -
  R;                  5       UT!S   -
  _M$     nnnT! Vs/ s H  n[        R                  PM     nnOSnSn[	        T!5      nUR=                  U5      nUR>                  (       a  URA                  5       nU(       a-  [C        UR'                  5        Vs/ s H  oÿS   PM	     sn5      nO[C        U5      n[        U5      S:”  a  URE                  5       nS nUU:w  Ga‘  UnUR>                  (       a;  URG                  U5      n[I        U VVs/ s H  u  nnURJ                  PM     snn6 nGO:U(       Ga2   URL                  " U6 nURb                  (       a  [        R                  nOURd                  " USS06S   n[g        U5      n[i        U5      n[        U5      S:X  GaÅ  US   n[	        [X        Rj                  " URe                  USS9S   5      5      n[m        U5       GHx  u  nnURZ                  (       d  M  UR"                  u  nnUUU* 4;   a1  URn                  (       a   URq                  U5      (       d
  UU-  UU'   Mc  URZ                  (       aZ  UR\                  Rq                  U5      (       d:  UR"                  u  nnUUU* 4;   a   URn                  (       a  UUU-  -  UU'   MÊ  MÌ  MÎ  URV                  (       d  Má  UR"                  S   [        Rr                  L d  GM  U* nURZ                  (       d  GM  UR\                  Rq                  U5      (       a  GM>  UR"                  u  nnUUU* 4;   d  GMY  URn                  (       d  GMm  UUU-  -  UU'   GM{     [Y        U6 nUU:w  a  GM‘  UR=                  U5      nUR                  (       a  URJ                  nURp                  " U6 (       d!  URb                  (       d  [        Rt                  n[!        [%        UT!5      5      n
URw                  [x        S9  U Vs/ s H  ojU   PM	     snm!U4[{        [%        UT!5      6 -   n[|        R~                  " U /UQ76 n U $ s  snf s  snf s  snnf s  snf s  snf s  snnf s  snf s  snf s  snnf s  snf s  snf s  snnf ! [N         Ga³    [Q        U[R        5      (       d!  [        S UR"                   5       5      (       a   GN~/ n[C        [%        X.5      5      nUR"                   HU  n URL                  " U6 nO! [N         a    Un Of = fUU;  a  [U        U5      nO[U        U/UQ76 nUR                  U5        MW     UR>                  (       an  [U        [I        U6 /UQ76 nUR>                  (       a<  [U        [I        UR"                   Vs/ s H  oURJ                  PM     Os  snf sn6 /UQ76 nURJ                  n GNxURV                  (       a+  [Y        U Vs/ s H  oURJ                  PM     Os  snf sn6 n GN´URZ                  (       a/  UR\                  nUR^                  n[]        U[a        U5      -  5      n GN÷f = fs  snf )Nr   c              3   ó8   #   • U  H  oR                   v •  M     g 7f©N)Ú	is_symbol)Ú.0Úvs     ÚO/home/mande/repo/quber/.venv/lib/python3.13/site-packages/sympy/series/order.pyÚ	<genexpr>Ú Order.__new__.<locals>.<genexpr>™   s   é € Ð2ª	 1—;–;ª	ù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   óT   >#   • U  H  nT  H  o!UR                   ;   v •  M     M     g 7fr   )Úfree_symbols)r   ÚxÚpÚpoints      €r    r!   r"   ³   s!   øé € ÐEªI q¼u¸!�A—N‘NÖ"¹uÑ"ªIùs   ƒ%(zGot %s as a point.c              3   ó2   >#   • U  H  oTS    :g  v •  M     g7f©r   Nr   ©r   r'   r(   s     €r    r!   r"   ·   s   øé € Ð0ª% Q˜˜a™–=ª%ùs   ƒz;Multivariable orders at different points are not supported.éÿÿÿÿr   c              3   óB   #   • U  H  n[        U[        5      v •  M     g 7fr   )Ú
isinstancer   )r   Úargs     r    r!   r"   é   s   é € Ð#SÊÀ#¤J¨s´H×$=Ð$=Êùs   ‚Úas_AddF©r0   ©Ú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__)"ÚclsrQ   r?   Úkwargsr5   Ú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_   ÚOrder.__new__‚   s†  ø€ ä�t‹}ˆæØ�}�}Ø ŸN™N�	ØŸ
™
‘ä  ×!2Ñ!2Ó3�	ÜŸ™˜¤ Y£Ñ/‘ä¤¨D× 1Ñ 1™¸°vÓ>ˆDØ! 2ÐˆI�uÜ˜4 ™7×#Ñ#Û�AÜ¤¤G¨Q£Ó0‘D�AØ×$Ñ$ QÔ'Ø—L‘L –Oò ô
 !¤¤W¨dÓ!3Ó4�	ÜŸ™˜¤ Y£Ñ/�äÑ2©	Ó2×2Ñ2ÜÐ?À)ÑKÓLÐLäŒt”D˜“OÓ$Ó%¬¨Y«Ó7ÜÐRÐU^Ñ^Ó_Ð_à�=�=Ü˜4Ÿ9™9 Q R˜=Ó)ˆGÜ˜'“]ˆFÜ”c˜) UÓ+Ó,ˆBØŸ™ž
‘�ØŸ™›Ó%Ø 1™I“~Ü1ØPóRð Rñ &ð !"˜1“Iñ #ô �7—<‘<“>Ó"¤c¨&¯+©+«-Ó&8Ó8Ø�ä  §¡£Ó/�	Ù,5Ó6ªI q œ©IÑ6�à”1—5‘5Š=Ü—5‘5ˆLäÔE©IÓE×EÑEÜÐ1°EÑ9Ó:Ð:çÜÔ0©%Ó0×0Ñ0Ü)ØQóSð Sà�Q‰xœAŸJ™J¬¯
©
´1·?±?Ñ(BÐCÓCÙ+4Ó5ª9 a˜œ%›'™	’\©9�Ð5Ø+,¯7©7¬9Ô5ª9¡4 1�a˜‘c˜1˜Q™3’h©9�Ñ5Ù&+Ó,¢e ”a—f”f¡e�Ð,‘Ø�q‘œa×0Ñ0´!×2DÑ2DÄQÇ_Á_Ñ2TÐUÓUÙ,5Ó6ªI q˜œ5›7™
’]©I�Ð6Ø-.¯W©W¬YÔ7ªY¡T Q�b˜‘d˜B˜q™D’j©Y�Ñ7Ù&+Ó,¢e ”a—f”f¡e�Ð,�Ø�q‘¤§¡Ò'Ù4=Ó>²I¨qœ› %¨¡(Ñ*Ò*±I�Ð>ØJKÏ'É'Ì)ÔTÊ)Á$À!�q˜5 ™8‘|×-Ñ-Ó/°°U¸1±X±Ò=É)�ÑTÙ&+Ó,¢e ”a—f”f¡e�Ð,�à�Ø�Ü˜%“[�à—9‘9˜Q“<ˆDà�{�{Ø—{‘{“}�æÜ¨B¯H©H¬JÓ7ªJ q œd©JÑ7Ó8‘ä˜YÓ'�ä�9‹~ Ó!ð —{‘{“}�àˆHØ˜dÔ"Ø�Ø—;—;Ø×4Ñ4°TÓ:�CÜ±cÔ :²c©F¨Q° §¤±cÒ :Ð;’Dçð 7Ø#×3Ò3°TÐ:˜ðH —|—|Ü Ÿv™v™à#×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™xØ'(§v¡v¡  1Ø#$¨¨Q¨B¨£<°A·I·IÀaÇeÁeÈAÇhÁhØ/0°!©t E¨!£HØ%&§X§X°a·e±e·i±iÀ·l±lØ+,¯6©6¡D A qØ'(¨Q°°¨G£|¸¿	¿	Ø34°q¸±s±8¨¨a«ñ 9B¡|à%&§X§X¡X°!·&±&¸±)¼q¿}¹}Õ2LØ)*¨ AØ'(§x§x¢x¸¿¹¿	¹	À!¿¼Ø/0¯v©v©¨¨1Ø+,°°Q°B°®<¸A¿I¿IºIØ78¸1¸Q¹3±x¨E°!¬Hñ %5ô   # E˜{˜ð] ˜dÖ"ð` —9‘9˜R“=ˆDà�=�=Ø—9‘9ˆDà�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Ñ5Ü #Ñ#SÈÏÊÓ#S× SÑ Sò !à%'˜FÜ"'¬¨D«Ó"6˜CØ'+§y¤y ð!-Ø),×)<Ò)<¸dÐ)C¡BøÜ'0ó !-Ø),¢Bð!-úà#%¨T£>Ü,1°"«I¡Eä,1°"¨O°sªO EØ &§¡¨eÖ 4ñ (1ð  $Ÿ{Ÿ{Ü+0´°f°Ð+DÀÒ+D Ø#+§?§?Ü/4´SÈ8Ï=Ê=Ó:YÊ=Àa¿6¼6Ê=ùÔ:YÐ5ZÐ/aÐ]`Ò/a HØ'/§}¡}£Ø!%§§Ü'*¹VÓ,DºV¸¯V¬VºVùÔ,DÐ'E£Ø!%§§Ø$(§H¡H Ø$(§I¡I Ü'*¨1¬s°1«v©:£ úð=7üòd +s±   É"cÌ'cÍcÍ/cÏ	c!Ï5c&Ðc,Ñc1Ñ7)c6Ò'c<Ô#dÖd
×d âkäAk
å%k
å6fæk
æfæk
æfæBk
èh-è,k
é
k
é$i:
é9
k
êA k
ë	k
c                 ó   • U $ r   r   )Úselfr&   ÚnÚlogxÚcdirs        r    Ú_eval_nseriesÚOrder._eval_nseries>  ó   € Øˆó    c                 ó    • U R                   S   $ ©Nr   ©r?   ©r|   s    r    rQ   Ú
Order.exprA  s   € à�y‰y˜‰|Ðrƒ   c                 ój   • U R                   SS  (       a  [        S U R                   SS   5       5      $ g)Nr#   c              3   ó*   #   • U  H	  oS    v •  M     g7fr*   r   ©r   r&   s     r    r!   Ú"Order.variables.<locals>.<genexpr>H  ó   é € Ð5¢} !˜1ž¢}ùó   ‚r   ©r?   rN   r‡   s    r    r5   ÚOrder.variablesE  ó-   € à�9‰9�Q�RŽ=ÜÑ5 t§y¡y°°¡}Ó5Ó5Ð5àrƒ   c                 ój   • U R                   SS  (       a  [        S U R                   SS   5       5      $ g)Nr#   c              3   ó*   #   • U  H	  oS    v •  M     g7f©r#   Nr   r‹   s     r    r!   ÚOrder.point.<locals>.<genexpr>O  r�   rŽ   r   r�   r‡   s    r    r(   ÚOrder.pointL  r‘   rƒ   c                 óZ   • U R                   R                  [        U R                  5      -  $ r   )rQ   r%   rD   r5   r‡   s    r    r%   ÚOrder.free_symbolsS  s    € à�y‰y×%Ñ%¬¨D¯N©NÓ(;Ñ;Ð;rƒ   c                 óÄ   • UR                   (       a>  UR                  (       a-  U R                  " U R                  U-  /U R                  SS  Q76 $ U[        S5      :X  a  U $ g ©Nr#   )Ú	is_NumberÚis_nonnegativeÚfuncrQ   r?   ÚO)rt   rm   s     r    Ú_eval_powerÚOrder._eval_powerW  sJ   € Ø�;�;˜1×+×+Ø—6’6˜!Ÿ&™& A™+Ð3¨¯©¨q¨r¨
Ò3Ð3Ø”�!“‹9ØˆHØrƒ   c                 ó8  ^ ^• Tc  T R                   SS  mOï[        U4S jT 5       5      (       d<  [        U 4S jT R                   5       5      (       d  [        ST R                  -  5      eT(       a$  TS   S   T R                  S   :w  a  [        S5      e[	        T5      m[	        T R                   SS  5      R                  5        H   u  p#UTR                  5       ;  d  M  UTU'   M"     [        TR                  5       S S9mT R                  [        T5      4$ )	Nr#   c              3   ó>   >#   • U  H  oS    TS   S    :H  v •  M     g7f)r#   r   Nr   )r   ÚoÚorder_symbolss     €r    r!   Ú*Order.as_expr_variables.<locals>.<genexpr>b  s"   øé € ÐKº]¸˜!™ ¨aÑ 0°Ñ 3Ö3º]ùs   ƒc              3   óF   >#   • U  H  oTR                   S    :H  v •  M     g7fr*   )r(   )r   r'   r|   s     €r    r!   r¥   c  s   øé € ÐCº
°1 §¡¨A¡Ö.º
ùó   ƒ!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                 ó   • [        U S   5      $ r…   r   )r&   s    r    Ú<lambda>Ú)Order.as_expr_variables.<locals>.<lambda>m  s   € ÔHXÐYZÐ[\ÑY]ÔH^rƒ   r2   )
r?   r;   r(   rC   r>   rA   rB   ÚsortedrQ   rN   )r|   r¤   rg   r'   s   ``  r    Úas_expr_variablesÚOrder.as_expr_variables^  s  ù€ ØÑ Ø ŸI™I a b˜M‰MäÔK¹]ÓK×KÑKÜÔC¸¿
º
ÓC×CÑCÜ)ð +>Ø@DÇ
Á
ñ+Kó Lð Læ ¨qÑ!1°!Ñ!4¸¿
¹
À1¹Ó!EÜ)ØQóSð Sä  Ó/ˆMÜ˜TŸY™Y q r˜]Ó+×1Ñ1Ö3‘�Ø˜M×.Ñ.Ó0Õ0Ø'(�M !Ó$ñ 4ô # =×#6Ñ#6Ó#8Ñ>^Ñ_ˆMØ�y‰yœ% Ó.Ð.Ð.rƒ   c                 ó"   • [         R                  $ r   )r   r7   r‡   s    r    ÚremoveOÚOrder.removeOp  s   € Ü�v‰vˆrƒ   c                 ó   • U $ r   r   r‡   s    r    ÚgetOÚ
Order.getOs  r‚   rƒ   c                 ó0
  ^ ^^• [        T5      mTR                  (       a  gT[        R                  L a  gT R                  (       a  T R                  S   O[        R
                  mTR                  (       GaY  [        U4S jTR                   5       5      (       d$  [        U4S jT R                   5       5      (       a  gTR                  T R                  :X  a"  [        U 4S jTR                  SS  5       5      $ TR                  R                  (       a)  [        U 4S	 jTR                  R                   5       5      $ T R                  R                  (       a;  TR                  (       a*  [        UU 4S
 jT R                  R                   5       5      $ T R                  (       aI  TR                  (       a8  [        T R                   Vs/ s H  o"TR                  ;   d  M  UPM     sn5      nO*T R                  (       a  T R                  nOTR                  nU(       d  gT R                  R                  (       Ga  [        T R                  5      S:X  Ga  T R                  TR                  :X  aè  T R                  S   nTR                  R!                  USS9S   nUR                  (       a«  UR"                  U:X  a›  T R                  R"                  U:X  a�  TR                  (       a-  T R                  R$                  UR$                  -
  R&                  nTR(                  (       a-  T R                  R$                  UR$                  -
  R*                  nWb  U$ SSKJn  SnT R                  TR                  -  n	U" U	SSS9n	U HE  nSSKJn
  U
" X’T5      R5                  SS9n[7        Xº5      (       d  US:g  nOSnUc  UnM>  X‹:w  d  ME    g   U$ T R                  R                  (       a÷  [        T R                  5      S:X  aÞ  T R                  S   nTR!                  USS9S   nUR                  (       a«  UR"                  U:X  a›  T R                  R"                  U:X  a�  TR                  (       a-  T R                  R$                  UR$                  -
  R&                  nTR(                  (       a-  T R                  R$                  UR$                  -
  R*                  nWb  U$ T R8                  " T/T R                  SS Q76 nT R;                  U5      $ s  snf )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   ó,   >#   • U  H	  oT:g  v •  M     g 7fr   r   r+   s     €r    r!   Ú!Order.contains.<locals>.<genexpr>…  s   øé € Ð3ª
 1˜–Jª
ùó   ƒc              3   ó,   >#   • U  H	  oT:g  v •  M     g 7fr   r   r+   s     €r    r!   r¶   †  s   øé € Ð6ª: a˜E–zª:ùr·   Nc              3   óF   >#   • U  H  oTR                   S S ;   v •  M     g7fr”   r†   ©r   r&   r|   s     €r    r!   r¶   Š  s   øé € ÐE²}°! §	¡	¨!¨" Ö-²}ùr§   r#   c              3   óF   >#   • U  H  nTR                  U5      v •  M     g 7fr   )Úcontainsrº   s     €r    r!   r¶   Œ  s   øé € ÐD²^°˜4Ÿ=™=¨×+Ð+²^ùr§   c              3   ó‚   >#   • U  H4  nTR                   " U/TR                  S S Q76 R                  T5      v •  M6     g7fr”   )r�   r?   r¼   )r   r&   rQ   r|   s     €€r    r!   r¶   Ž  s>   øé € ð 5Ú%3 ð  Ÿ9š9 QÐ7¨¯©°1°2¨Ò7×@Ñ@À×FÐFÚ%3ùs   ƒ<?r1   )Úpowsimpr   )ÚdeepÚcombine)ÚLimit)Ú
heuristics)r   rV   r   rE   r(   r7   r4   rF   rQ   r;   r?   rL   r5   rN   rT   r8   rW   rU   r   Úis_nonpositiveÚis_infiniterœ   Úsympy.simplify.powsimpr¾   Úsympy.series.limitsrÁ   Údoitr.   r�   r¼   )r|   rQ   rg   Úcommon_symbolsÚsymbolÚotherÚrvr¾   rj   ÚratiorÁ   Úlry   r(   s   ``           @r    r¼   ÚOrder.containsv  sŽ  ú€ ô �t‹}ˆØ�<�<ØØ”1—5‘5Š=ØØ!%§§�—
‘
˜1’´·±ˆØ�=�=ˆ=ÜÔ3¨¯
ª
Ó3×3Ñ3ÜÔ6¨4¯:ª:Ó6×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�Ü! !×+Ñ+Ø˜Q™‘Aà�AØ‘9Ø’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˜Ø‘~Ø!˜	à�iŠi˜Ð-˜tŸy™y¨¨˜}Ò-ˆØ�}‰}˜SÓ!Ð!ùòg Gs   ÇTÇ"Tc                 óD   • U R                  U5      nUc  [        S5      eU$ )Nz#contains did not evaluate to a bool)r¼   r<   )r|   rÊ   Úresults      r    Ú__contains__ÚOrder.__contains__Ç  s&   € Ø—‘˜uÓ%ˆØ‰>ÜÐAÓBÐBØˆrƒ   c                 ó¶  • XR                   ;   GaÉ  U R                  R                  X5      nU R                   R                  U5      n[	        U R                   5      n[	        U R
                  5      nUR                  (       a  X%U'   GO=UR                  n[        U5      S:X  d  X;   Ga»  X;   a  U R                   U   nOUR                  5       nSSK
Jn	  UR                  [        5      (       a‚  U	" UR                  5       R                  X‚R                  5       R
                  S   5      U R
                  U   :X  a5  UR                  5       R
                  S   n
[        U/[        U/U
/5      Q76 $ UR                  X€R
                  U   5      n
X R
                  U   :w  a»  SSKJn  [%        5       nU" XR                  XŒ5      -
  U5      n['        U[(        5      (       a5  UR*                  S   nUR*                  S   n[-        U5      [-        U5      -
  n[/        [        U4U5      5      /nUR                  US   5      R                  XR
                  U   5      n
X…U'   X¦U'   OaX;  a[  XT	 Xd	 U(       dO  X R
                  U   :X  a=  UR1                  U5        UR1                  [2        R4                  /[        U5      -  5        Og [        U/[        XV5      Q76 $ g )Nr#   r   )Úlimit)Úsolveset)r5   rQ   rK   Úindexr6   r(   r   r%   r8   ÚpopÚsympyrÔ   r[   r   r²   r@   Úsympy.solvers.solvesetrÕ   r   r.   r   r?   rD   r>   Úextendr   r7   )r|   ÚoldÚnewÚnewexprrv   ÚnewvarsÚnewptÚsymsÚvarrÔ   r(   rÕ   ÚdÚsolÚe1Úe2Úress                    r    Ú
_eval_subsÚOrder._eval_subsÍ  s8  € Ø—.‘.Ô Ø—i‘i—n‘n SÓ.ˆGØ—‘×$Ñ$ SÓ)ˆAÜ˜4Ÿ>™>Ó*ˆGÜ˜Ÿ™Ó$ˆEØ�}�}Ø ˜“
à×'Ñ'�Ü�t“9 “> S¤[Ø“{Ø"Ÿn™n¨QÑ/™à"Ÿh™h›j˜õ ,Ø—w‘wœu—~‘~©%°·±³
·±ÀÇ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à #§¡¨¯j©j¸©mÓ <˜Ø§
¡
¨1¡Ó-ÝCÜ!›G˜Ù& s¯X©X°cÓ-=Ñ'=¸qÓA˜Ü% c¬:×6Ñ6Ø!$§¡¨!¡˜BØ!$§¡¨!¡˜BÜ"% b£'¬C°«GÑ"3˜CÜ#¤C¨¨¨s£OÓ4Ð5˜Ø !§¡ s¨1¡v£× 4Ñ 4°S¿*¹*ÀQ¹-Ó H˜Ø!$˜A‘JØ$˜!’HØ“_Ø˜
 E HÞ C¯:©:°a©=Ó$8ØŸ™ tÔ,ØŸ™¤a§f¡f X¬c°$«iÑ%7Ô8øàÜ˜Ð7¤3 wÓ#6Ò7Ð7ðU !rƒ   c                 ó~   • U R                   R                  5       nUb   U R                  " U/U R                  SS  Q76 $ g rš   )rQ   Ú_eval_conjugater�   r?   ©r|   rQ   s     r    rê   ÚOrder._eval_conjugateú  ó=   € Ø�y‰y×(Ñ(Ó*ˆØÑØ—9’9˜TÐ2 D§I¡I¨a¨b MÒ2Ð2ð rƒ   c                 ó†   • U R                   " U R                  R                  U5      /U R                  SS  Q76 =(       d    U $ rš   )r�   rQ   Údiffr?   )r|   r&   s     r    Ú_eval_derivativeÚOrder._eval_derivativeÿ  s2   € Ø�yŠy˜Ÿ™Ÿ™¨Ó*Ð;¨T¯Y©Y°q°r¨]Ò;×C¸tÐCrƒ   c                 ó~   • U R                   R                  5       nUb   U R                  " U/U R                  SS  Q76 $ g rš   )rQ   Ú_eval_transposer�   r?   rë   s     r    ró   ÚOrder._eval_transpose  rí   rƒ   c                 ó   • U $ r   r   r‡   s    r    Ú__neg__ÚOrder.__neg__  r‚   rƒ   N)r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r4   Ú	__slots__r	   r_   r€   ÚpropertyrQ   r5   r(   r%   rŸ   r¬   r¯   r²   r¼   rÑ   rç   rê   rð   ró   rö   Ú__static_attributes__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ƒ   