§
    OŠtjfL  ã                   ó®   — 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dS )é    )Ú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dS )Ú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          |¦  «        }|sI|j        r|j        }|j        Š�nt	          |j        ¦  «        }t          j        gt          |¦  «        z  ŠnÏt	          t          |¦  «        r|n|g¦  «        }g g c}Št          |d         ¦  «        rU|D ]Q}t	          t          t           |¦  «        ¦  «        \  }}|                     |¦  «         ‰                     |¦  «         ŒRn?t	          t          t           |¦  «        ¦  «        }t          j        gt          |¦  «        z  Št          d„ |D ¦   «         ¦  «        st          d|z  ¦  «        ‚t          t	          t          |¦  «        ¦  «        ¦  «        t          |¦  «        k    rt          d|z  ¦  «        ‚|j        �rt!          |j        dd …         ¦  «        }t!          |¦  «        Št!          t%          |‰¦  «        ¦  «        Š‰                     ¦   «         D ]<\  }}|‰                     ¦   «         v r|‰|         k    rt+          d¦  «        ‚Œ7|‰|<   Œ=t-          |                     ¦   «         ¦  «        t-          ‰                     ¦   «         ¦  «        k    r|S t	          ‰                     ¦   «         ¦  «        }ˆfd„|D ¦   «         Š|t          j        u rt          j        S t1          ˆfd„|D ¦   «         ¦  «        rt          d	‰z  ¦  «        ‚|�rSt1          ˆfd
„‰D ¦   «         ¦  «        rt+          d¦  «        ‚‰d         t          j        t          j        t          j        z  fv r7d„ |D ¦   «         }	d„ |	                     ¦   «         D ¦   «         }
d„ ‰D ¦   «         }nÆ‰d         t          j        t          j        t          j        z  fv r7d„ |D ¦   «         }	d„ |	                     ¦   «         D ¦   «         }
d„ ‰D ¦   «         }nb‰d         t          j        ur;ˆfd„|D ¦   «         }	ˆfd„|	                     ¦   «         D ¦   «         }
d„ ‰D ¦   «         }nd}	d}
t	          ‰¦  «        }|                     |	¦  «        }|j        r|                     ¦   «         }|	r,t?          d„ |
                     ¦   «         D ¦   «         ¦  «        }nt?          |¦  «        }t          |¦  «        dk    r|                      ¦   «         }d }||k    �rM|}|j        r*| !                    |¦  «        }tE          d„ |D ¦   «         Ž }�n|�r	  |j#        |Ž }�n_# tH          $ �rQ tK          |tL          ¦  «        st          d„ |j        D ¦   «         ¦  «        r�ng }t?          t%          ||¦  «        ¦  «        }|j        D ]V}	  |j#        |Ž }n# tH          $ r |}Y nw xY w||vrtO          |¦  «        }ntO          |g|¢R Ž }|                     |¦  «         ŒW|j        rFtO          tE          |Ž g|¢R Ž }|j        r#tO          tE          d„ |j        D ¦   «         Ž g|¢R Ž }|j(        }nO|j)        rtU          d„ |D ¦   «         Ž }n4|j+        r-|j,        }|j-        }tY          |t]          |¦  «        z  ¦  «        }Y nw xY w|j/        rt          j        }n |j0        |ddiŽd         }tc          |¦  «        }te          |¦  «        }t          |¦  «        dk    �rK|d         }t	          tU          j3        | 0                    |d¬¦  «        d         ¦  «        ¦  «        }ti          |¦  «        D ]î\  }}|j+        râ|j        \  }}||| fv r%|j5        r| 6                    |¦  «        s	||z  ||<   ŒB|j+        r>|j,         6                    |¦  «        s$|j        \  }}||| fv r|j5        r|||z  z  ||<   Œ‡|j)        r`|j        d         t          j7        u rG| }|j+        r=|j,         6                    |¦  «        s#|j        \  }}||| fv r|j5        r|||z  z  ||<   ŒïtU          |Ž }||k    �°M|                     |
¦  «        }|j        r|j(        } |j6        |Ž s|j/        st          j8        }t!          t%          |‰¦  «        ¦  «        Š| 9                    tt          ¬¦  «         ˆfd„|D ¦   «         Š|ftw          t%          |‰¦  «        Ž z   }ty          j=        | g|¢R Ž }|S ) Nr   c              3   ó$   K  — | ]}|j         V — Œd S ©N)Ú	is_symbol)Ú.0Úvs     úP/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/series/order.pyú	<genexpr>z Order.__new__.<locals>.<genexpr>™   s$   è è € Ð2Ð2 1�1”;Ð2Ð2Ð2Ð2Ð2Ð2ó    z!Variables are not symbols, got %sz3Variables are supposed to be unique symbols, got %sé   z2Mixing Order at different points is not supported.c                 ó    •— g | ]
}‰|         ‘ŒS r   r   )r   r   Únew_vps     €r   ú
<listcomp>z!Order.__new__.<locals>.<listcomp>®   s   ø€ Ð6Ð6Ð6 q˜ œÐ6Ð6Ð6r!   c              3   ó4   •K  — | ]}‰D ]}||j         v V — ŒŒd S r   )Úfree_symbols)r   ÚxÚpÚpoints      €r   r    z Order.__new__.<locals>.<genexpr>³   s7   øè è € ÐEÐE q¸uÐEÐE¸!ˆq�A”NÐ"ÐEÐEÐEÐEÐEÐEÐEr!   zGot %s as a point.c              3   ó0   •K  — | ]}|‰d          k    V — ŒdS ©r   Nr   ©r   r)   r*   s     €r   r    z Order.__new__.<locals>.<genexpr>·   s+   øè è € Ð0Ð0 Q�1˜˜aœ’=Ð0Ð0Ð0Ð0Ð0Ð0r!   z;Multivariable orders at different points are not supported.c                 ó2   — i | ]}|d t          ¦   «         z  “ŒS ©r"   ©r   ©r   Úks     r   ú
<dictcomp>z!Order.__new__.<locals>.<dictcomp>»   s"   € Ð5Ð5Ð5 a�Q˜�%™'œ'™	Ð5Ð5Ð5r!   c                 ó&   — i | ]\  }}d |z  d |z  “ŒS r/   r   ©r   r2   r   s      r   r3   z!Order.__new__.<locals>.<dictcomp>¼   s&   € Ð5Ð5Ð5¡4 1 a�a˜‘c˜1˜Q™3Ð5Ð5Ð5r!   c                 ó&   — g | ]}t           j        ‘ŒS r   ©r   ÚZero©r   r)   s     r   r%   z!Order.__new__.<locals>.<listcomp>½   ó   € Ð,Ð,Ð, •a”fÐ,Ð,Ð,r!   c                 ó2   — i | ]}|d t          ¦   «         z  “ŒS ©éÿÿÿÿr0   r1   s     r   r3   z!Order.__new__.<locals>.<dictcomp>¿   s"   € Ð6Ð6Ð6 q�Q˜�5™7œ7™
Ð6Ð6Ð6r!   c                 ó&   — i | ]\  }}d |z  d |z  “ŒS r<   r   r5   s      r   r3   z!Order.__new__.<locals>.<dictcomp>À   s&   € Ð7Ð7Ð7¡T Q¨�b˜‘d˜B˜q™DÐ7Ð7Ð7r!   c                 ó&   — g | ]}t           j        ‘ŒS r   r7   r9   s     r   r%   z!Order.__new__.<locals>.<listcomp>Á   r:   r!   c                 ó@   •— i | ]}|t          ¦   «         ‰d          z   “ŒS ©r   r0   )r   r2   r*   s     €r   r3   z!Order.__new__.<locals>.<dictcomp>Ã   s(   ø€ Ð>Ð>Ð>¨q�Q�™œ %¨¤(Ñ*Ð>Ð>Ð>r!   c                 ód   •— i | ],\  }}|‰d          z
                        ¦   «         |‰d          z
  “Œ-S rA   )Útogether)r   r2   r   r*   s      €r   r3   z!Order.__new__.<locals>.<dictcomp>Ä   s;   ø€ ÐTÐTÐTÁ$À!ÀQ�q˜5 œ8‘|×-Ò-Ñ/Ô/°°U¸1´X±ÐTÐTÐTr!   c                 ó&   — g | ]}t           j        ‘ŒS r   r7   r9   s     r   r%   z!Order.__new__.<locals>.<listcomp>Å   r:   r!   r   c                 ó   — g | ]
}|d          ‘ŒS rA   r   )r   Úrs     r   r%   z!Order.__new__.<locals>.<listcomp>Ñ   s   € Ð7Ð7Ð7 q˜a œdÐ7Ð7Ð7r!   c                 ó"   — g | ]\  }}|j         ‘ŒS r   ©Úexpr)r   ÚeÚfs      r   r%   z!Order.__new__.<locals>.<listcomp>â   s   € Ð :Ð :Ð :©F¨Q° ¤Ð :Ð :Ð :r!   c              3   ó@   K  — | ]}t          |t          ¦  «        V — Œd S r   )Ú
isinstancer   )r   Úargs     r   r    z Order.__new__.<locals>.<genexpr>é   s,   è è € Ð#SÐ#SÀ#¥J¨sµHÑ$=Ô$=Ð#SÐ#SÐ#SÐ#SÐ#SÐ#Sr!   c                 ó   — g | ]	}|j         ‘Œ
S r   rH   ©r   Úas     r   r%   z!Order.__new__.<locals>.<listcomp>þ   s   € Ð:YÐ:YÐ:YÀa¸1¼6Ð:YÐ:YÐ:Yr!   c                 ó   — g | ]	}|j         ‘Œ
S r   rH   rP   s     r   r%   z!Order.__new__.<locals>.<listcomp>  s   € Ð,DÐ,DÐ,D¸¨Q¬VÐ,DÐ,DÐ,Dr!   Úas_AddF©rS   ©Úkeyc                 ó    •— g | ]
}‰|         ‘ŒS r   r   )r   r   Úvps     €r   r%   z!Order.__new__.<locals>.<listcomp>9  s   ø€ Ð*Ð*Ð*˜1��A”Ð*Ð*Ð*r!   )>r   Úis_OrderÚ	variablesr*   Úlistr'   r   r8   Úlenr   ÚmapÚappendÚallÚ	TypeErrorr   Ú
ValueErrorÚdictÚargsÚzipÚitemsÚkeysÚNotImplementedErrorÚsetÚNaNÚanyÚInfinityÚImaginaryUnitÚNegativeInfinityÚsubsÚis_AddÚfactorÚtupleÚexpandÚextract_leading_orderr   Úas_leading_termr   rM   r   r   rI   Úis_Mulr   Úis_Powr   Úbaser   Úis_zeroÚas_independentr   r   Ú	make_argsÚ	enumerateÚis_realÚhasÚNegativeOneÚOneÚsortr   r
   r   Ú__new__) ÚclsrI   rc   ÚkwargsrZ   rQ   r   r)   Úexpr_vpÚsÚrsÚpsÚold_exprÚlstÚordersÚptsrN   ÚltÚorderÚnew_exprrJ   Úbr(   ÚmargsÚiÚtÚqrF   Úobjr$   r*   rX   s                                 @@@r   r�   zOrder.__new__‚   sœ	  øøø€ å�t‰}Œ}ˆàð 	0ØŒ}ð 0Ø œN�	Øœ
�‘å  Ô!2Ñ3Ô3�	Ýœ˜¥ Y¡¤Ñ/��å¥¨DÑ 1Ô 1Ð=˜˜¸°vÑ>Ô>ˆDØ! 2ÐˆI�uÝ˜4 œ7Ñ#Ô#ð 0Øð $ð $�AÝ¥¥G¨Q¡¤Ñ0Ô0‘D�A�qØ×$Ò$ QÑ'Ô'Ð'Ø—L’L ‘O”O�O�Oð$õ
 !¥¥W¨dÑ!3Ô!3Ñ4Ô4�	Ýœ˜¥ Y¡¤Ñ/�åÐ2Ð2¨	Ð2Ñ2Ô2Ñ2Ô2ð 	MÝÐ?À)ÑKÑLÔLÐLå�t•D˜‘O”OÑ$Ô$Ñ%Ô%­¨Y©¬Ò7Ð7ÝÐRÐU^Ñ^Ñ_Ô_Ð_àŒ=ñ 	7Ý˜4œ9 Q R Rœ=Ñ)Ô)ˆGÝ˜'‘]”]ˆFÝ•c˜) UÑ+Ô+Ñ,Ô,ˆBØŸš™
œ
ð "ð "‘��1Ø˜Ÿš™œÐ%Ð%Ø˜F 1œI’~�~Ý1ØPñRô Rð Rð &ð !"�F˜1‘I�IÝ�7—<’<‘>”>Ñ"Ô"¥c¨&¯+ª+©-¬-Ñ&8Ô&8Ò8Ð8Ø�å  §¢¡¤Ñ/Ô/�	Ø6Ð6Ð6Ð6¨IÐ6Ñ6Ô6�à•1”5ˆ=ˆ=Ý”5ˆLåÐEÐEÐEÐE¨IÐEÑEÔEÑEÔEð 	;ÝÐ1°EÑ9Ñ:Ô:Ð:àñ x	!ÝÐ0Ð0Ð0Ð0¨%Ð0Ñ0Ô0Ñ0Ô0ð SÝ)ØQñSô Sð Sà�QŒx�AœJ­¬
µ1´?Ñ(BÐCÐCÐCØ5Ð5¨9Ð5Ñ5Ô5�Ø5Ð5¨1¯7ª7©9¬9Ð5Ñ5Ô5�Ø,Ð, eÐ,Ñ,Ô,��Ø�q”�aÔ0µ!Ô2DÅQÄ_Ñ2TÐUÐUÐUØ6Ð6¨IÐ6Ñ6Ô6�Ø7Ð7¨Q¯WªW©Y¬YÐ7Ñ7Ô7�Ø,Ð, eÐ,Ñ,Ô,��Ø�q”¥¤Ð'Ð'Ø>Ð>Ð>Ð>°IÐ>Ñ>Ô>�ØTÐTÐTÐTÈ!Ï'Ê'É)Ì)ÐTÑTÔT�Ø,Ð, eÐ,Ñ,Ô,��à�Ø�Ý˜%‘[”[�à—9’9˜Q‘<”<ˆDàŒ{ð %Ø—{’{‘}”}�àð (ÝÐ7Ð7¨B¯HªH©J¬JÐ7Ñ7Ô7Ñ8Ô8��å˜YÑ'Ô'�å�9‰~Œ~ Ò!Ð!ð —{’{‘}”}�àˆHØ˜dÒ"Ñ"Ø�Ø”;ð L+Ø×4Ò4°TÑ:Ô:�CÝÐ :Ð :°cÐ :Ñ :Ô :Ð;�D‘Dàñ H+ð 7Ø3˜tÔ3°TÐ:˜™øÝ$ð 7ñ 7ð 7Ý% d­HÑ5Ô5ð 7Ý #Ð#SÐ#SÈÌÐ#SÑ#SÔ#SÑ SÔ Sð7ñ
 !à%'˜FÝ"'­¨D°"©¬Ñ"6Ô"6˜CØ'+¤yð 	5ð 	5 ð!-Ø)<¨Ô)<¸dÐ)C B BøÝ'0ð !-ð !-ð !-Ø), B B Bð!-øøøà#%¨T > >Ý,1°"©I¬I E Eå,1°"¨O°s¨O¨O¨O EØ &§¢¨eÑ 4Ô 4Ð 4Ð 4Ø#œ{ð 
7Ý+0µ°f°Ð+DÀÐ+DÐ+DÐ+D Ø#+¤?ð !bÝ/4µSÐ:YÐ:YÈ8Ì=Ð:YÑ:YÔ:YÐ5ZÐ/aÐ]`Ð/aÐ/aÐ/a HØ'/¤}  Ø!%¤ð 7Ý'*Ð,DÐ,D¸VÐ,DÑ,DÔ,DÐ'E  Ø!%¤ð 7Ø$(¤H Ø$(¤I Ý'*¨1­s°1©v¬v©:¡¤ øøð=7øøøðF ”|ð KÝ œv˜˜à2˜tÔ2°DÐGÀÐGÐGÈÔJ˜å,¨TÑ2Ô2�DÝ% dÑ+Ô+�Då˜4‘y”y A’~‘~ð ! œG˜Ý $¥S¤]Ø ×/Ò/°¸%Ð/Ñ@Ô@ÀÔCñ&Eô &Eñ !Fô !F˜õ %.¨eÑ$4Ô$4ð @ð @™D˜A˜qØ œxð @Ø'(¤v¡  1Ø#$¨¨Q¨B¨ < <°A´I <ÀaÇeÂeÈAÁhÄh <Ø/0°!©t E¨!¡H HØ%&¤Xð 	!@°a´e·i²iÀ±l´lð 	!@Ø+,¬6¡D A qØ'(¨Q°°¨G | |¸¼	 |Ø34°q¸±s±8¨¨a©øØ%&¤Xð !@°!´&¸´)½q¼}Ð2LÐ2LØ)*¨ AØ'(¤xð %@¸¼¿	º	À!¹¼ð %@Ø/0¬v©¨¨1Ø+,°°Q°B°¨<¨<¸A¼I¨<Ø78¸1¸Q¹3±x¨E°!©Høå" E˜{˜ð] ˜dÒ"Ñ"ð` —9’9˜R‘=”=ˆDàŒ=ð 	Ø”9ˆDàˆtŒx˜Ð#ð 	¨D¬Lð 	Ý”5ˆDõ •#�i Ñ'Ô'Ñ(Ô(ˆØ�ŠÕ+ˆÑ,Ô,Ð,Ø*Ð*Ð*Ð* 	Ð*Ñ*Ô*ˆØˆw�¥ I¨uÑ 5Ô 5Ð6Ñ6ˆÝŒl˜3Ð& Ð&Ð&Ð&ˆØˆ
s8   Ô,
T8 Ô8A(ZÖ!
V,Ö+ZÖ,V;Ö8ZÖ:V;Ö;CZÚZr   c                 ó   — | S r   r   )Úselfr(   ÚnÚlogxÚcdirs        r   Ú_eval_nserieszOrder._eval_nseries>  ó   € Øˆr!   c                 ó   — | j         d         S ©Nr   ©rc   ©r–   s    r   rI   z
Order.exprA  s   € àŒy˜Œ|Ðr!   c                 óp   — | j         dd …         r&t          d„ | j         dd …         D ¦   «         ¦  «        S dS )Nr"   c              3   ó&   K  — | ]}|d          V — ŒdS r,   r   ©r   r(   s     r   r    z"Order.variables.<locals>.<genexpr>H  ó&   è è € Ð5Ð5 !˜˜1œÐ5Ð5Ð5Ð5Ð5Ð5r!   r   ©rc   rq   rŸ   s    r   rZ   zOrder.variablesE  ó@   € àŒ9�Q�R�RŒ=ð 	ÝÐ5Ð5 t¤y°°°¤}Ð5Ñ5Ô5Ñ5Ô5Ð5à�2r!   c                 óp   — | j         dd …         r&t          d„ | j         dd …         D ¦   «         ¦  «        S dS )Nr"   c              3   ó&   K  — | ]}|d          V — ŒdS ©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                 óD   — | j         j        t          | j        ¦  «        z  S r   )rI   r'   rh   rZ   rŸ   s    r   r'   zOrder.free_symbolsS  s   € àŒyÔ%­¨D¬NÑ(;Ô(;Ñ;Ð;r!   c                 ó’   — |j         r*|j        r# | j        | j        |z  g| j        dd …         ¢R Ž S |t          d¦  «        k    r| S d S ©Nr"   )Ú	is_NumberÚis_nonnegativeÚfuncrI   rc   ÚO)r�   rJ   s     r   Ú_eval_powerzOrder._eval_powerW  sY   € ØŒ;ð 	4˜1Ô+ð 	4Ø�1”6˜!œ& A™+Ð3¨¬¨q¨r¨r¬
Ð3Ð3Ð3Ð3Ø•�!‘”Š9ˆ9ØˆHØˆr!   c                 ó\  ‡ ‡— ‰€‰ j         dd …         Š�nt          ˆfd„‰D ¦   «         ¦  «        s7t          ˆ fd„‰ j        D ¦   «         ¦  «        st          d‰ j        z  ¦  «        ‚‰r,‰d         d         ‰ j        d         k    rt          d¦  «        ‚t	          ‰¦  «        Št	          ‰ j         dd …         ¦  «                             ¦   «         D ] \  }}|‰                     ¦   «         vr|‰|<   Œ!t          ‰                     ¦   «         d„ ¬¦  «        Š‰ j        t          ‰¦  «        fS )	Nr"   c              3   óH   •K  — | ]}|d          ‰d         d          k    V — ŒdS )r"   r   Nr   )r   ÚoÚorder_symbolss     €r   r    z*Order.as_expr_variables.<locals>.<genexpr>b  s6   øè è € ÐKÐK¸˜˜!œ ¨aÔ 0°Ô 3Ò3ÐKÐKÐKÐKÐKÐKr!   c              3   ó:   •K  — | ]}|‰j         d          k    V — ŒdS r,   )r*   )r   r)   r–   s     €r   r    z*Order.as_expr_variables.<locals>.<genexpr>c  s.   øè è € ÐCÐC°1˜A ¤¨A¤Ò.ÐCÐCÐCÐCÐCÐCr!   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^ÔH^€ r!   rU   )
rc   r_   r*   rg   rb   re   rf   ÚsortedrI   rq   )r–   r´   r…   r)   s   ``  r   Úas_expr_variableszOrder.as_expr_variables^  s`  øø€ ØÐ Ø œI a b bœMˆM‰MåÐKÐKÐKÐK¸]ÐKÑKÔKÑKÔKð LÝÐCÐCÐCÐC¸¼
ÐCÑCÔCÑCÔCðLå)ð +>Ø@DÄ
ñ+Kñ Lô Lð Làð S ¨qÔ!1°!Ô!4¸¼
À1¼Ò!EÐ!EÝ)ØQñSô Sð Så  Ñ/Ô/ˆMÝ˜TœY q r rœ]Ñ+Ô+×1Ò1Ñ3Ô3ð )ð )‘��1Ø˜M×.Ò.Ñ0Ô0Ð0Ð0Ø'(�M !Ñ$øÝ" =×#6Ò#6Ñ#8Ô#8Ð>^Ð>^Ð_Ñ_Ô_ˆMØŒy�% Ñ.Ô.Ð.Ð.r!   c                 ó   — t           j        S r   r7   rŸ   s    r   ÚremoveOzOrder.removeOp  s	   € ÝŒvˆr!   c                 ó   — | S r   r   rŸ   s    r   ÚgetOz
Order.getOs  r›   r!   c                 óP  ‡ ‡‡— t          ‰¦  «        Š‰j        rdS ‰t          j        u rdS ‰ j        r‰ j        d         nt          j        Š‰j        �rpt          ˆfd„‰j        D ¦   «         ¦  «        s t          ˆfd„‰ j        D ¦   «         ¦  «        rdS ‰j        ‰ j        k    r(t          ˆ fd„‰j
        dd…         D ¦   «         ¦  «        S ‰j        j        r%t          ˆ fd	„‰j        j
        D ¦   «         ¦  «        S ‰ j        j        r-‰j        r&t          ˆˆ fd
„‰ j        j
        D ¦   «         ¦  «        S ‰ j        r(‰j        r!t          ˆfd„‰ j        D ¦   «         ¦  «        }n‰ j        r‰ j        }n‰j        }|sdS ‰ j        j        r½t          ‰ j        ¦  «        dk    r¥‰ j        ‰j        k    r•‰ j        d         }‰j                             |d¬¦  «        d         }|j        r_|j        |k    rT‰ j        j        |k    rD‰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 ]P}	ddlm}
  |
||	‰¦  «                             d¬¦  «        }t7          ||
¦  «        s|dk    }nd}|€|}ŒG||k    r dS ŒQ|S ‰ j        j        r¨t          ‰ j        ¦  «        dk    r�‰ j        d         }‰                     |d¬¦  «        d         }|j        r_|j        |k    rT‰ j        j        |k    rD‰j        r‰ j        j        |j        z
  j        }‰j        r‰ j        j        |j        z
  j        }|�|S  ‰ j        ‰g‰ j
        dd…         ¢R Ž }‰                      |¦  «        S )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  — | ]
}|‰k    V — Œd S r   r   r-   s     €r   r    z!Order.contains.<locals>.<genexpr>…  s'   øè è € Ð3Ð3 1�A˜’JÐ3Ð3Ð3Ð3Ð3Ð3r!   c              3   ó$   •K  — | ]
}|‰k    V — Œd S r   r   r-   s     €r   r    z!Order.contains.<locals>.<genexpr>†  s'   øè è € Ð6Ð6 a�q˜E’zÐ6Ð6Ð6Ð6Ð6Ð6r!   Nc              3   ó:   •K  — | ]}|‰j         d d…         v V — ŒdS r¨   rž   ©r   r(   r–   s     €r   r    z!Order.contains.<locals>.<genexpr>Š  s2   øè è € ÐEÐE°!˜1 ¤	¨!¨"¨"¤Ð-ÐEÐEÐEÐEÐEÐEr!   r"   c              3   óB   •K  — | ]}‰                      |¦  «        V — Œd S r   )ÚcontainsrÂ   s     €r   r    z!Order.contains.<locals>.<genexpr>Œ  s/   øè è € ÐDÐD°˜4Ÿ=š=¨Ñ+Ô+ÐDÐDÐDÐDÐDÐDr!   c              3   ót   •K  — | ]2} ‰j         |g‰j        d d…         ¢R Ž                      ‰¦  «        V — Œ3dS r¨   )r®   rc   rÄ   )r   r(   rI   r–   s     €€r   r    z!Order.contains.<locals>.<genexpr>Ž  sc   øè è € ð 5ð 5Ø !ð %˜4œ9 QÐ7¨¬°1°2°2¬Ð7Ð7Ð7×@Ò@ÀÑFÔFð 5ð 5ð 5ð 5ð 5ð 5r!   c                 ó&   •— g | ]}|‰j         v ¯|‘ŒS r   )rZ   )r   r…   rI   s     €r   r%   z"Order.contains.<locals>.<listcomp>’  s%   ø€ ÐFÐFÐF˜1°!°t´~Ð2EÐ2E�QÐ2EÐ2EÐ2Er!   rT   )Úpowsimpr   )ÚdeepÚcombine)ÚLimit)Ú
heuristics)r   rx   r   ri   r*   r8   rY   rj   rI   r_   rc   ro   rZ   rq   rv   r\   ry   rw   r   Úis_nonpositiveÚis_infiniter­   Úsympy.simplify.powsimprÇ   Úsympy.series.limitsrÊ   ÚdoitrM   r®   rÄ   )r–   rI   Úcommon_symbolsÚsymbolÚotherÚrvrÇ   rF   Úratior…   rÊ   Úlr”   r*   s   ``           @r   rÄ   zOrder.containsv  sN  øøø€ õ �t‰}Œ}ˆØŒ<ð 	Ø�4Ø•1”5ˆ=ˆ=Ø�5Ø!%¤Ð7�”
˜1”�µ´ˆØŒ=ñ 2	ÝÐ3Ð3Ð3Ð3¨¬
Ð3Ñ3Ô3Ñ3Ô3ð ÝÐ6Ð6Ð6Ð6¨4¬:Ð6Ñ6Ô6Ñ6Ô6ðà�tØŒy˜DœIÒ%Ð%åÐEÐEÐEÐE°t´yÀÀÀ´}ÐEÑEÔEÑEÔEÐEØŒyÔð EÝÐDÐDÐDÐD°T´Y´^ÐDÑDÔDÑDÔDÐDØŒyÔð 5 E¤Mð 5Ýð 5ð 5ð 5ð 5ð 5Ø%)¤Y¤^ð5ñ 5ô 5ñ 5ô 5ð 5àŒ~ð 0 $¤.ð 0Ý!&ØFÐFÐFÐF ¤ÐFÑFÔFñ"Hô "H��à”ð 0Ø!%¤��à!%¤�Ø!ð Ø�tØ”	Ô ð *¥S¨¬Ñ%8Ô%8¸AÒ%=Ð%=Ø”N d¤nÒ4Ð4Ø!œ^¨AÔ.�FØ œI×4Ò4°VÀEÐ4ÑJÔJÈ1ÔM�EØœð *¨¬°vÒ)=Ð)=Øœ	œ¨&Ò0Ð0Ø$œ}ð PØ&*¤i¤m°e´iÑ&?Ô%O Ø$Ô0ð PØ&*¤i¤m°e´iÑ&?Ô%O Ø!˜~Ø') 	à6Ð6Ð6Ð6Ð6Ð6ØˆAØ”I˜dœiÑ'ˆEØ�G˜E¨°eÐ<Ñ<Ô<ˆEØ#ð ð �Ø5Ð5Ð5Ð5Ð5Ð5Ø�E˜%  EÑ*Ô*×/Ò/¸5Ð/ÑAÔA�Ý! ! UÑ+Ô+ð Ø˜Qš�A�Aà�AØ�9Ø�A�Aà˜A’v�vØ˜˜ð àˆHàŒ9Ôð 
	"¥ D¤NÑ 3Ô 3°qÒ 8Ð 8Ø”^ AÔ&ˆFØ×'Ò'¨°uÐ'Ñ=Ô=¸aÔ@ˆEØ”ð " ¤¨vÒ!5Ð!5Ø”	” &Ò(Ð(Ø”}ð HØ"œiœm¨e¬iÑ7ÔG˜ØÔ(ð HØ"œiœm¨e¬iÑ7ÔG˜Ø�~Ø!˜	àˆdŒi˜Ð-˜tœy¨¨¨œ}Ð-Ð-Ð-ˆØ�}Š}˜SÑ!Ô!Ð!r!   c                 óR   — |                       |¦  «        }|€t          d¦  «        ‚|S )Nz#contains did not evaluate to a bool)rÄ   r`   )r–   rÓ   Úresults      r   Ú__contains__zOrder.__contains__Ç  s,   € Ø—’˜uÑ%Ô%ˆØˆ>ÝÐAÑBÔBÐBØˆr!   c                 ó  — || j         v �r÷| j                             ||¦  «        }| j                              |¦  «        }t	          | j         ¦  «        }t	          | j        ¦  «        }|j        r|||<   �nq|j        }t          |¦  «        dk    s||v �rí||v r| j         |         }n| 	                    ¦   «         }ddl
m}	 |                     t          ¦  «        rŒ |	|                     ¦   «         j        ||                     ¦   «         j        d         ¦  «        | j        |         k    r<|                     ¦   «         j        d         }
t          |gt          |g|
g¦  «        ¢R Ž S |                     || j        |         ¦  «        }
|
| j        |         k    rÞddlm} t%          ¦   «         } |||                     ||¦  «        z
  |¦  «        }t'          |t(          ¦  «        r9|j        d         }|j        d         }t-          |¦  «        t-          |¦  «        z
  }t/          t          |f|¦  «        ¦  «        g}|                     |d         ¦  «                             || j        |         ¦  «        }
|||<   |
||<   ne||vr_||= ||= |sV|| j        |         k    rE|                     |¦  «         |                     t2          j        gt          |¦  «        z  ¦  «         nd S t          |gt          ||¦  «        ¢R Ž S d S )Nr"   r   )Úlimit)Úsolveset)rZ   rI   rn   Úindexr[   r*   r   r'   r\   ÚpopÚsympyrÛ   r}   r   r½   rd   Úsympy.solvers.solvesetrÜ   r   rM   r   rc   rh   rb   Úextendr   r8   )r–   ÚoldÚnewÚnewexprr‘   ÚnewvarsÚnewptÚsymsÚvarrÛ   r*   rÜ   ÚdÚsolÚe1Úe2Úress                    r   Ú
_eval_subszOrder._eval_subsÍ  sÙ  € Ø�$”.Ð Ñ Ø”i—n’n S¨#Ñ.Ô.ˆGØ”×$Ò$ SÑ)Ô)ˆAÝ˜4œ>Ñ*Ô*ˆGÝ˜œÑ$Ô$ˆEØŒ}ð $Ø �˜‘
‘
àÔ'�Ý�t‘9”9 ’>�> S¨D [¡[Ø˜d�{�{Ø"œn¨QÔ/˜˜à"Ÿhšh™jœj˜ð ,Ð+Ð+Ð+Ð+Ð+Ø—w’w�u‘~”~ð =¨%¨%°·²±
´
´ÀÀcÇhÂhÁjÄjÔFVÐWXÔFYÑ*ZÔ*ZÐ^bÔ^hÐijÔ^kÒ*kÐ*kØ #§¢¡
¤
Ô 0°Ô 3˜Ý$ WÐC­s°C°5¸5¸'Ñ/BÔ/BÐCÐCÐCÐCà #§¢¨¨d¬j¸¬mÑ <Ô <˜Ø ¤
¨1¤Ò-Ð-ØCÐCÐCÐCÐCÐCÝ!™GœG˜Ø&˜h s¨S¯XªX°c¸1Ñ-=Ô-=Ñ'=¸qÑAÔA˜Ý% c­:Ñ6Ô6ð 4Ø!$¤¨!¤˜BØ!$¤¨!¤˜BÝ"% b¡'¤'­C°©G¬GÑ"3˜CÝ#¥C¨¨¨s¡O¤OÑ4Ô4Ð5˜Ø !§¢ s¨1¤v¡¤× 4Ò 4°S¸$¼*ÀQ¼-Ñ HÔ H˜Ø!$�G˜A‘JØ$�E˜!‘H�HØ �_�_Ø ˜
 E¨! HØð 9 C¨4¬:°a¬=Ò$8Ð$8ØŸš tÑ,Ô,Ð,ØŸš¥a¤f X­c°$©i¬iÑ%7Ñ8Ô8Ð8øà�FÝ˜Ð7¥3 w°Ñ#6Ô#6Ð7Ð7Ð7Ð7ðU !Ð r!   c                 ór   — | j                              ¦   «         }|� | j        |g| j        dd …         ¢R Ž S d S r«   )rI   Ú_eval_conjugater®   rc   ©r–   rI   s     r   rð   zOrder._eval_conjugateú  óG   € ØŒy×(Ò(Ñ*Ô*ˆØÐØ�4”9˜TÐ2 D¤I¨a¨b¨b¤MÐ2Ð2Ð2Ð2ð Ðr!   c                 ól   —  | j         | j                             |¦  «        g| j        dd …         ¢R Ž p| S r«   )r®   rI   Údiffrc   )r–   r(   s     r   Ú_eval_derivativezOrder._eval_derivativeÿ  s9   € ØˆtŒy˜œŸš¨Ñ*Ô*Ð;¨T¬Y°q°r°r¬]Ð;Ð;Ð;ÐC¸tÐCr!   c                 ór   — | j                              ¦   «         }|� | j        |g| j        dd …         ¢R Ž S d S r«   )rI   Ú_eval_transposer®   rc   rñ   s     r   r÷   zOrder._eval_transpose  rò   r!   c                 ó   — | S r   r   rŸ   s    r   Ú__neg__zOrder.__neg__  r›   r!   NrA   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__rY   Ú	__slots__r	   r�   rš   ÚpropertyrI   rZ   r*   r'   r°   r¹   r»   r½   rÄ   rÙ   rî   rð   rõ   r÷   rù   r   r!   r   r   r      sƒ  € € € € € ðpð pðd €Hà€Iàðyð yñ „Wðyðvð ð ð ð ðð ñ „Xðð ðð ñ „Xðð ðð ñ „Xðð ð<ð <ñ „Xð<ðð ð ð/ð /ð /ð$ð ð ðð ð ð ðN"ð N"ñ „WðN"ð`ð ð ð+8ð +8ð +8ðZ3ð 3ð 3ð
Dð Dð Dð3ð 3ð 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     s  ðØ 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø $Ð $Ð $Ð $Ð $Ð $Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RØ /Ð /Ð /Ð /Ð /Ð /Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø &Ð &Ð &Ð &Ð &Ð &Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7ð}ð }ð }ð }ð }ˆDñ }ô }ð }ð~ 
€€€r!   