ó
    ‰*£hJU  ã                   ó4  • S SK Jr  S SKJr  S SKJr  S SKJrJr  S SK	J
r
  S SK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KJr  S SKJr  S SKJrJr  S SKJ r   S SK!J"r"  S SK#J$r$  S SK%J&r&J'r'  S SK(J)r)  S r*SS.S jr+ " S S\5      r, " S S\,5      r-g)é    )ÚAdd)ÚTuple)ÚExpr)ÚAppliedUndefÚUndefinedFunction)ÚMul)ÚEqualityÚ
Relational)ÚS)ÚSymbolÚDummy)Úsympify)Úpiecewise_foldÚ	Piecewise)ÚBooleanFunction)Ú
MatrixBase)ÚIntervalÚSet)ÚRange)ÚIdx)Úflatten)ÚsiftÚis_sequence)Úsympy_deprecation_warningc                ó¬  • [        U5      n[        U[        5      (       ao  [        USU06u  pVU(       a  [	        S U 5       5      (       d  [        SSSSS9  UR                  nUR                  n[        U " U/UQ70 UD6U " U/UQ70 UD65      $ U[        R                  L a  [        R                  $ U(       aX  [        USU06u  pV[        U5       H;  u  pš[        U
5      S:X  d  M  UR                  U
S	   U
S
   5      n[        U
SS
 6 XY'   M=     OFUR                  n[        U5      S:w  a  [        SU-  5      eU Vs/ s H  n[        U5      PM     snSpeU [!        U5      :X  a5  [#        UR$                  5      U-   nUR&                  nU [!        U5      :X  a  M5  0 nU V	s1 s H  o™S	   iM	     nn	UR)                  [*        5       H%  nUR,                  " U6 (       a  M  [/        5       Xß'   M'     UR1                  U5      n[3        U5      nUR1                  UR5                  5        VVs0 s H	  u  nnUU_M     snn5      nXU4$ s  snf s  sn	f s  snnf )z‘Return either a special return value or the tuple,
(function, limits, orientation). This code is common to
both ExprWithLimits and AddWithLimits.Údiscretec              3   ó>   #   • U  H  n[        U5      S :H  v •  M     g7f©é   N©Úlen)Ú.0Úlimits     Ú\/home/mande/repo/quber/.venv/lib/python3.13/site-packages/sympy/concrete/expr_with_limits.pyÚ	<genexpr>Ú_common_new.<locals>.<genexpr>    s   é € ÐCºF°5œs 5›z¨QžºFùs   ‚ax  
                Creating a indefinite integral with an Eq() argument is
                deprecated.

                This is because indefinite integrals do not preserve equality
                due to the arbitrary constants. If you want an equality of
                indefinite integrals, use Eq(Integral(a, x), Integral(b, x))
                explicitly.
                z1.6z!deprecated-indefinite-integral-eqé   )Údeprecated_since_versionÚactive_deprecations_targetÚ
stacklevelé   r   éÿÿÿÿNé   zspecify dummy variables for %s)r   Ú
isinstancer	   Ú_process_limitsÚallr   ÚlhsÚrhsr   ÚNaNÚ	enumerater!   Úsubsr   Úfree_symbolsÚ
ValueErrorÚtypeÚlistÚlimitsÚfunctionÚatomsr   Úhasr   Úxreplacer   Úitems)Úclsr;   r   ÚsymbolsÚassumptionsr:   Úorientationr1   r2   ÚiÚliÚfreeÚsÚrepsÚsymbols_of_integrationÚpÚkÚvs                     r$   Ú_common_newrM      s>  € ô �xÓ €Hä�(œH×%Ñ%ô .¨wÐJÀÑJÑˆÞœ3ÑC¹FÓC×CÑCÜ%ðð */Ø+NØòð �l‰lˆØ�l‰lˆÜ™˜CÐ9 'Ò9¨[Ñ9Ù˜CÐ9 'Ò9¨[Ñ9ó;ð 	;ð ”1—5‘5ÒÜ�u‰uˆæÜ-¨wÐJÀÑJÑˆÜ˜vÖ&‰EˆAÜ�2‹w˜!�|Ø#Ÿ=™=¨¨A©°°2±Ó7�Ü! 2 c r 7˜O�“	ò 'ð ×$Ñ$ˆÜˆt‹9˜‹>ÜØ0°8Ñ;ó=ð =á15Ó6²¨Aœu Qžx±Ñ6¸�ð ”�h“Ó
Ü�h—o‘oÓ&¨Ñ/ˆØ×$Ñ$ˆð ”�h“Õ
ð €DÙ,2Ó3ªF q œd©FÐÐ3Ø�^‰^œIÖ&ˆØ�uŠuÐ,×-Ð-Ü“gˆD‹Gñ 'ð × Ñ  Ó&€Hä˜hÓ'€Hà× Ñ °4·:±:´<Ô!@²<©4¨1¨a ! Q¢$±<Ò!@ÓA€Hà˜[Ð(Ð(ùò- 7ùò 4ùó "As   Ä?IÆ"IÈ*I
N)r   c                 ór	  • / nSnU c  SnOU (       a  SnOSnU GHs  n[        U[        [        45      (       aG  U (       a  [        U5      eUR	                  [
        5      R                  5       nXeR                  5       4nO¾[        U[
        5      (       d  [        USS5      (       a—  [        U[        5      (       ae  UR                  b  UR                  c  UR                  [        U5      5        OJUR                  [        XUR                  UR                  5      5        OUR                  [        U5      5        GM$  [        U5      (       Ga*  [        U[        5      (       Gd  [!        U5      S:X  GaG  [        US   [        5      (       Ga.  [#        U5      n[        US   [$        5      (       a4  U (       a  [        U5      eUS   R&                  US   R(                  4USS& O×[        US   [*        5      (       a§  U (       d  [        U5      eUS   R&                  nUS   R(                  n[-        US   R.                  5      n	U	S:X  a  Xx/USS& OjU[0        R2                  La  US	   /S	X‡-
  U	-  X•S	   -  U-   /-   nO=US	   /S	[0        R4                  U	* US	   -  U-   /-   nO[7        U (       a  S
5      eS5      e[9        [;        U5      5      n[        US	   [
        [        45      (       d  [        US	   SS5      (       Gau  US	   n
[!        U5      S:X  a/  US   c  US   b  US-  nU
/USS  Vs/ s H	  o»c  M  UPM     sn-   n[!        U5      n[        U
[        5      (       a  US:X  Ga  US:X  a  UR                  [        U6 5        GMt  US:X  a�  [        U
[        5      (       aa  U
R                  U
R                  p‡ Ub!  [=        US   U:¬  5      (       d  [?        S5      e Ub!  [=        US   U:*  5      (       d  [?        S5      eUR                  [        U6 5        GM
  US:X  d  US:X  a#  US   c  UR                  [        U
5      5        GM9  US:X  a   UR                  [        X¥S   5      5        GM_  [?        S[A        U5      -  5      e   X#4$ s  snf ! [         a     NÁf = f! [         a     N¬f = f)aé  Process the list of symbols and convert them to canonical limits,
storing them as Tuple(symbol, lower, upper). The orientation of
the function is also returned when the upper limit is missing
so (x, 1, None) becomes (x, None, 1) and the orientation is changed.
In the case that a limit is specified as (symbol, Range), a list of
length 4 may be returned if a change of variables is needed; the
expression that should replace the symbol in the expression is
the fourth element in the list.
r-   Nzdiscrete must be True or Falsez%use Range, not Interval or Relationalz%use Interval or Relational, not RangeÚ	_diff_wrtFé   r   zexpecting RangezRelational or single Intervalr   r,   r+   z%Summation will set Idx value too low.z&Summation will set Idx value too high.zInvalid limits given: %s)!r.   r
   r   Ú	TypeErrorr<   r   ÚpopÚas_setÚgetattrr   ÚlowerÚupperÚappendr   r   r   r!   r9   r   ÚinfÚsupr   ÚabsÚstepr   ÚNegativeInfinityÚInfinityÚNotImplementedErrorr   r   Úboolr7   Ústr)r   rA   r:   rC   Úerr_msgÚVÚvariableÚloÚhiÚdxÚ	newsymbolrD   ÚlenVs                r$   r/   r/   ]   s!  € ð €FØ€KØÑØ2‰Þ	Ø9‰à9ˆÜˆÜ�aœ*¤oÐ6×7Ñ7ÞÜ Ó(Ð(Ø—w‘wœv“×*Ñ*Ó,ˆHØŸ8™8›:Ð&‰AÜ˜œ6×"Ñ"¤g¨a°¸e×&DÑ&DÜ˜!œS×!Ñ!Ø—7‘7‘? a§g¡g¡oØ—M‘M¤%¨£(Õ+à—M‘M¤%¨¯7©7°A·G±GÓ"<Õ=à—‘œe A›hÔ'ÚÜ�q�>Š>¤*¨Q´×"4Ò"4Ü�1‹v˜Œ{œz¨!¨A©$´×4Ò4Ü˜“G�Ü˜a ™d¤H×-Ñ-ÞÜ'¨Ó0Ð0Ø˜a™DŸH™H a¨¡d§h¡hÐ.�A�a�b‘EÜ  !¡¤e×,Ñ,Þ#Ü'¨Ó0Ð0Ø˜1™Ÿ™�BØ˜1™Ÿ™�BÜ˜Q˜q™TŸY™Y›�BØ˜Q“wØ!# ˜˜!˜"™à¤Q×%7Ñ%7Ò7Ø!" 1¡ ¨!¨b©g¸©]¸BÀ¹t¹GÀb¹LÐ)IÑ I™Aà!" 1¡ ¨!¬Q¯Z©Z¸"¸¸Q¸q¹T¹ÀB¹Ð)GÑ G™Aô .Þ-5Ð)ó:ð :à7ó:ð :ô œ ›
Ó#ˆAÜ˜!˜A™$¤¬ ×.Ñ.´'¸!¸A¹$ÀÈU×2SÒ2SØ˜a™D�	Ü�q“6˜Q“;à˜‘t‘|¨¨!©Ñ(8Ø# rÑ)˜Ø"˜°!°A°B±%Ó&I²%¨Q§q±%Ñ&IÑI�Aä˜1“v�Ü! )¬S×1Ñ1°T¸Q´YØ˜q“yØŸ™¤e¨Q iÔ0Ú Ø˜q“yÜ% i´×5Ñ5ð &/§_¡_°i·o±o ð%Ø#%¡>¼$¸qÀ¹tÀr¹z×:JÑ:JÜ*4Ð5\Ó*]Ð$]ð%Ø#%¡>¼$¸qÀ¹tÀr¹z×:JÑ:JÜ*4Ð5]Ó*^Ð$^ð Ÿ™¤e¨Q iÔ0Ú Ø˜q“y T¨Q£Y°1°Q±4±<ØŸ™¤e¨IÓ&6Ô7Ú Ø ›ØŸ™¤e¨I¸±tÓ&<Ô=Ú äÐ3´c¸'³lÑBÓCÐCñg ðj ÐÐùòK 'Jøô& $-ó %Ù $ð%ûô
 $-ó %Ù $ð%ús0   Ì1RÌ;RÏ $RÏ%$R)Ò
R&Ò%R&Ò)
R6Ò5R6c                   óº   • \ rS rSrSrS r\S 5       r\S 5       r\S 5       r	\S 5       r
\S 5       r\S	 5       r\S
 5       rS rS r\S 5       r\S 5       rSrg)ÚExprWithLimitséÇ   )Úis_commutativec                 ó\  • SSK Jn  [        X/UQ7S[        X5      0UD6n[	        U[
        5      (       a  Uu  pnOU$ [        S U 5       5      (       a  [        S5      e[        R                  " U 40 UD6nU/n	U	R                  U5        [        U	5      Ul        UR                  Ul        U$ )Nr   )ÚProductr   c              3   óV   #   • U  H  n[        U5      S :g  =(       d    SU;   v •  M!     g7fr   r    ©r"   Úls     r$   r%   Ú)ExprWithLimits.__new__.<locals>.<genexpr>Õ   s$   é € Ð8²¨AŒs�1‹v˜‰{×'˜d a™iÔ'²ùs   ‚')z:ExprWithLimits requires values for lower and upper bounds.)Úsympy.concrete.productsrn   rM   Ú
issubclassr.   ÚtupleÚanyr7   r   Ú__new__ÚextendÚ_argsrl   )
r@   r;   rA   rB   rn   Úprer:   Ú_ÚobjÚarglists
             r$   rw   ÚExprWithLimits.__new__Ê   s¬   € Ý3Ü˜#ð >¨'ò >Ü Ó-ð>Ø1<ñ>ˆä�cœ5×!Ñ!Ø"%ÑˆH™aàˆJô Ñ8±Ó8×8Ñ8ÜÐYÓZÐZä�lŠl˜3Ñ. +Ñ.ˆØ�*ˆØ�‰�vÔÜ˜'“NˆŒ	Ø%×4Ñ4ˆÔàˆ
ó    c                 ó    • U R                   S   $ )zÕReturn the function applied across limits.

Examples
========

>>> from sympy import Integral
>>> from sympy.abc import x
>>> Integral(x**2, (x,)).function
x**2

See Also
========

limits, variables, free_symbols
r   ©ry   ©Úselfs    r$   r;   ÚExprWithLimits.functionà   s   € ð" �z‰z˜!‰}Ðr   c                 ó.   • U R                   R                  $ ©N)r;   Úkindr‚   s    r$   r‡   ÚExprWithLimits.kindó   s   € à�}‰}×!Ñ!Ð!r   c                 ó    • U R                   SS $ )zÛReturn the limits of expression.

Examples
========

>>> from sympy import Integral
>>> from sympy.abc import x, i
>>> Integral(x**i, (i, 1, 3)).limits
((i, 1, 3),)

See Also
========

function, variables, free_symbols
r-   Nr�   r‚   s    r$   r:   ÚExprWithLimits.limits÷   s   € ð" �z‰z˜!˜"ˆ~Ðr   c                 óJ   • U R                    Vs/ s H  oS   PM	     sn$ s  snf )a1  Return a list of the limit variables.

>>> from sympy import Sum
>>> from sympy.abc import x, i
>>> Sum(x**i, (i, 1, 3)).variables
[i]

See Also
========

function, limits, free_symbols
as_dummy : Rename dummy variables
sympy.integrals.integrals.Integral.transform : Perform mapping on the dummy variable
r   )r:   ©rƒ   rq   s     r$   Ú	variablesÚExprWithLimits.variables
  s"   € ð  #ŸkškÓ*šk˜�!”™kÑ*Ð*ùÒ*s   � c                 ón   • U R                    Vs/ s H  n[        U5      S:w  d  M  US   PM     sn$ s  snf )ap  Return only variables that are dummy variables.

Examples
========

>>> from sympy import Integral
>>> from sympy.abc import x, i, j, k
>>> Integral(x**i, (i, 1, 3), (j, 2), k).bound_symbols
[i, j]

See Also
========

function, limits, free_symbols
as_dummy : Rename dummy variables
sympy.integrals.integrals.Integral.transform : Perform mapping on the dummy variable
r-   r   )r:   r!   rŒ   s     r$   Úbound_symbolsÚExprWithLimits.bound_symbols  s0   € ð& #ŸkškÓ9šk˜¬S°«V°q©[“��!”™kÑ9Ð9ùÒ9s   �2¦	2c                 óz  • U R                   U R                  p!U R                   Vs0 s H-  nUS   US   R                  US   1:X  a  US   O	[        5       _M/     nnUR	                  U5      nUR                  nU Hi  nXFS      n[        U5      S:X  a  UR                  U5        M,  Xu;   a  UR                  U5        USS  H  nUR                  UR                  5        M      Mk     UR                  5        VVs0 s H  u  p‡Xx_M	     nnnU V	s1 s H  o”R                  X™5      iM     sn	$ s  snf s  snnf s  sn	f )zì
This method returns the symbols in the object, excluding those
that take on a specific value (i.e. the dummy symbols).

Examples
========

>>> from sympy import Sum
>>> from sympy.abc import x, y
>>> Sum(x, (x, y, 1)).free_symbols
{y}
r   r-   N)r;   r:   r6   r   r>   r!   ÚaddÚremoveÚupdater?   Úget)
rƒ   r;   r:   rD   rH   ÚisymsÚxabrL   rK   r{   s
             r$   r6   ÚExprWithLimits.free_symbols1  s"  € ð"  Ÿ=™=¨$¯+©+�&ð —[’[ó"Ú �ð �!‘˜a ™d×/Ñ/°A°a±D°6Ó9�a˜’d¼u»wÒFÙ ð 	ð "à×$Ñ$ TÓ*ˆØ×%Ñ%ˆÛˆCØ˜‘V‘ˆAÜ�3‹x˜1‹}Ø—	‘	˜!”Ùà‹zØ—‘˜Q”à˜˜“W�Ø—‘˜QŸ^™^Ö,ó ñ ð "&§¡¤Ô.¢™˜�’¡ˆÑ.Ù(-Ó.ª 1—‘˜–©Ñ.Ð.ùò!"ùó /ùÚ.s   ¦4D-Ã;D2ÄD8c                 ó$   • U R                   (       + $ )z7Return True if the Sum has no free symbols, else False.)r6   r‚   s    r$   Ú	is_numberÚExprWithLimits.is_numberW  s   € ð ×$Ñ$Ô$Ð$r   c                 óš   • U R                    Vs/ s H  oDS   U:w  a  UOXU4PM     nnU R                  nU R                  " U/UQ76 $ s  snf )Nr   )r:   r;   Úfunc)rƒ   ÚxÚaÚbrD   r:   Ú	integrands          r$   Ú_eval_intervalÚExprWithLimits._eval_interval\  sN   € Ø;?¿;º;ÓGº;°a˜!™ ›	‘1¨¨a yÒ0¹;ˆÐGØ—M‘Mˆ	Ø�yŠy˜Ð, VÒ,Ð,ùò Hs   �Ac                 ó   • U R                   [        U R                  5      pCUR                  5         [	        U[
        5      (       a+  UR                  R                  U R                  5      (       Ga  Sn[        U5       H   u  pgS[        U5      :X  a   XS   :X  a  UR                  (       a  U4nOX4n[        US   /USS  Vs/ s H  oˆR                  X5      PM     snQ76 XF'   [        US   R                  R                  UR                  5      5      S:w  d  Mž  Sn  O   [	        U[        [        45      (       aš  [        U R                   5      R                  [        UR#                  [
        5      5      5      n	[        U R                   5      R                  [        UR$                  5      5      n
U	R'                  U
5      (       d  [)        S5      eSnU(       a  UR+                  X5      nOb[        U5       HS  u  pg[        U5      S:X  d  M  [        US   /USS  Vs/ s H  oˆR                  X5      PM     snQ76 XF'   XS   :X  d  MS    O   [        U5       HB  u  pg[        U5      S:X  d  M  US   US   -
  R,                  (       d  M2  [        US   5      XF'   MD     UR                  5         U R.                  " U/UQ76 $ s  snf s  snf )	ao  
Perform substitutions over non-dummy variables
of an expression with limits.  Also, can be used
to specify point-evaluation of an abstract antiderivative.

Examples
========

>>> from sympy import Sum, oo
>>> from sympy.abc import s, n
>>> Sum(1/n**s, (n, 1, oo)).subs(s, 2)
Sum(n**(-2), (n, 1, oo))

>>> from sympy import Integral
>>> from sympy.abc import x, a
>>> Integral(a*x**2, x).subs(x, 4)
Integral(a*x**2, (x, 4))

See Also
========

variables : Lists the integration variables
transform : Perform mapping on the dummy variable for integrals
change_index : Perform mapping on the sum and product dummy variables

Tr-   r   NFz-substitution cannot create dummy dependenciesr   rP   )r;   r9   r:   Úreverser.   r   r6   Úintersectionr4   r!   rO   r   Ú_subsr   r   Úsetr�   r<   ÚargsÚissubsetr7   r5   Úis_zerorž   )rƒ   ÚoldÚnewrž   r:   Úsub_into_funcrD   r˜   rq   Úsy2Úsy1s              r$   Ú
_eval_subsÚExprWithLimits._eval_subsa  sM  € ð6 —}‘}¤d¨4¯;©;Ó&7ˆfð 	�‰Ôä˜#œv×&Ñ&Ø× Ñ ×-Ñ-¨d×.?Ñ.?×@Ò@Ø ˆMÜ# FÖ+‘�Øœ˜C›“= S°©F£]Ø—}—}Ø"˜f™à"˜j˜Ü! # a¡&ÐPÀsÈ1È2ÁwÓ+OÂwÀ!¯G©G°CÖ,=ÁwÑ+OÒP�‘	Ü�s˜1‘v×*Ñ*×7Ñ7¸×8HÑ8HÓIÓJÈaÕOØ$)�MÙñ ,ô ˜#¤Ô.?Ð@×AÑAÜ˜$Ÿ.™.Ó)×6Ñ6´s¸3¿9¹9ÄVÓ;LÓ7MÓN�Ü˜$Ÿ.™.Ó)×6Ñ6´s¸3¿8¹8³}ÓE�Ø—|‘| C×(Ñ(Ü$ØGóIð Ià $�ÞØ—y‘y Ó*�øô $ FÖ+‘�Ü�s“8˜q•=Ü % c¨!¡fÐ TÈ3ÈqÈrÉ7Ó/SÊ7Àa·±¸Ö0AÉ7Ñ/SÒ T�F‘IØ !™f•}Ùñ	 ,ô   Ö'‰FˆAÜ�3‹x˜1�} # a¡&¨3¨q©6¡/×!:×!:Ñ!:Ü! # a¡&›O�“	ñ (ð
 	�‰Ôà�yŠy˜Ð' Ò'Ð'ùò9 ,Pùò" 0Ts   ÃKÈ"Kc                 ó   • SnU R                    Ht  n[        U5      S:X  aN  [        S USS  5       5      (       a    g[        S USS  5       5      (       a  US   R                  c  SnM\  M^  M`  US   R                  b  Mr  SnMv     U(       a  gg)	a{  
Returns True if the limits are known to be finite, either by the
explicit bounds, assumptions on the bounds, or assumptions on the
variables.  False if known to be infinite, based on the bounds.
None if not enough information is available to determine.

Examples
========

>>> from sympy import Sum, Integral, Product, oo, Symbol
>>> x = Symbol('x')
>>> Sum(x, (x, 1, 8)).has_finite_limits
True

>>> Integral(x, (x, 1, oo)).has_finite_limits
False

>>> M = Symbol('M')
>>> Sum(x, (x, 1, M)).has_finite_limits

>>> N = Symbol('N', integer=True)
>>> Product(x, (x, 1, N)).has_finite_limits
True

See Also
========

has_reversed_limits

Fr   c              3   ó8   #   • U  H  oR                   v •  M     g 7fr†   ©Úis_infiniterp   s     r$   r%   Ú3ExprWithLimits.has_finite_limits.<locals>.<genexpr>Ô  s   é € Ð6ªg¨—}–}ªgùó   ‚r-   Nc              3   ó<   #   • U  H  oR                   S L v •  M     g 7fr†   r¶   rp   s     r$   r%   r¸   ×  s   é € Ð@º°1Ÿ™¨$Õ.ºùs   ‚r   T)r:   r!   rv   r·   )rƒ   Úret_NoneÚlims      r$   Úhas_finite_limitsÚ ExprWithLimits.has_finite_limits°  s–   € ðB ˆØ—;”;ˆCÜ�3‹x˜1‹}ÜÑ6¨c°!°"©gÓ6×6Ñ6á ÜÑ@¸¸A¸B¹Ó@×@Ñ@à˜1‘v×)Ñ)Ñ1Ø#'šñ 2ñ Að
 �q‘6×%Ñ%Ó-Ø#’Hñ ö ØØr   c                 óÂ   • SnU R                    HE  n[        U5      S:X  a3  Uu  p4nXT-
  nUR                  (       a    gUR                  (       a  MA  SnME    g   U(       a  gg)aH  
Returns True if the limits are known to be in reversed order, either
by the explicit bounds, assumptions on the bounds, or assumptions on the
variables.  False if known to be in normal order, based on the bounds.
None if not enough information is available to determine.

Examples
========

>>> from sympy import Sum, Integral, Product, oo, Symbol
>>> x = Symbol('x')
>>> Sum(x, (x, 8, 1)).has_reversed_limits
True

>>> Sum(x, (x, 1, oo)).has_reversed_limits
False

>>> M = Symbol('M')
>>> Integral(x, (x, 1, M)).has_reversed_limits

>>> N = Symbol('N', integer=True, positive=True)
>>> Sum(x, (x, 1, N)).has_reversed_limits
False

>>> Product(x, (x, 2, N)).has_reversed_limits

>>> Product(x, (x, 2, N)).subs(N, N + 2).has_reversed_limits
False

See Also
========

sympy.concrete.expr_with_intlimits.ExprWithIntLimits.has_empty_sequence

Fr   TN)r:   r!   Úis_extended_negativeÚis_extended_nonnegative)rƒ   r»   r¼   Úvarr    r¡   Údifs          r$   Úhas_reversed_limitsÚ"ExprWithLimits.has_reversed_limitsã  s^   € ðJ ˆØ—;”;ˆCÜ�3‹x˜1‹}Ø‘	�˜Ø‘e�Ø×+×+ÙØ×0×0Ùà#’Háñ ö ØØr   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú	__slots__rw   Úpropertyr;   r‡   r:   r�   r�   r6   r›   r£   r²   r½   rÄ   Ú__static_attributes__rÆ   r   r$   rj   rj   Ç   sÎ   † Ø#€Iòð, ñó ðð$ ñ"ó ð"ð ñó ðð$ ñ+ó ð+ð" ñ:ó ð:ð( ñ#/ó ð#/ðJ ñ%ó ð%ò-ò
M(ð^ ñ0ó ð0ðd ñ3ó ó3r   rj   c                   ó@   • \ rS rSrSrSrS rS rS rS r	S r
S	 rSrg
)ÚAddWithLimitsi  zNRepresents unevaluated oriented additions.
Parent class for Integral and Sum.
rÆ   c                 ó  • SSK Jn  [        X/UQ7S[        X5      0UD6n[	        U[
        5      (       a  Uu  pnOU$ [        R                  " U 40 UD6nXq-  /n	U	R                  U5        [        U	5      Ul	        UR                  Ul
        U$ )Nr   )ÚSumr   )Úsympy.concrete.summationsrÑ   rM   rt   r.   ru   r   rw   rx   ry   rl   )
r@   r;   rA   rB   rÑ   rz   r:   rC   r|   r}   s
             r$   rw   ÚAddWithLimits.__new__!  s‘   € Ý1Ü˜#ð :¨'ò :Ü Ó)ð:Ø-8ñ:ˆä�cœ5×!Ñ!Ø,/Ñ)ˆH™kàˆJä�lŠl˜3Ñ. +Ñ.ˆØÑ'Ð(ˆØ�‰�vÔÜ˜'“NˆŒ	Ø%×4Ñ4ˆÔàˆ
r   c                 óÂ   • [        S [        U R                  5       5       5      (       a5  U R                  " U R                  R                  5       /U R                  Q76 $ g )Nc              3   ó8   #   • U  H  oR                   v •  M     g 7fr†   ©Úis_real©r"   rŸ   s     r$   r%   Ú.AddWithLimits._eval_adjoint.<locals>.<genexpr>3  ó   é € Ð7Ò"6˜Q�yŽyÒ"6ùr¹   )r0   r   r:   rž   r;   Úadjointr‚   s    r$   Ú_eval_adjointÚAddWithLimits._eval_adjoint2  sD   € ÜÑ7¤'¨$¯+©+Ô"6Ó7×7Ñ7Ø—9’9˜TŸ]™]×2Ñ2Ó4ÐC°t·{±{ÒCÐCØr   c                 óÂ   • [        S [        U R                  5       5       5      (       a5  U R                  " U R                  R                  5       /U R                  Q76 $ g )Nc              3   ó8   #   • U  H  oR                   v •  M     g 7fr†   rÖ   rØ   s     r$   r%   Ú0AddWithLimits._eval_conjugate.<locals>.<genexpr>8  rÚ   r¹   )r0   r   r:   rž   r;   Ú	conjugater‚   s    r$   Ú_eval_conjugateÚAddWithLimits._eval_conjugate7  óD   € ÜÑ7¤'¨$¯+©+Ô"6Ó7×7Ñ7Ø—9’9˜TŸ]™]×4Ñ4Ó6ÐE¸¿¹ÒEÐEØr   c                 óÂ   • [        S [        U R                  5       5       5      (       a5  U R                  " U R                  R                  5       /U R                  Q76 $ g )Nc              3   ó8   #   • U  H  oR                   v •  M     g 7fr†   rÖ   rØ   s     r$   r%   Ú0AddWithLimits._eval_transpose.<locals>.<genexpr>=  rÚ   r¹   )r0   r   r:   rž   r;   Ú	transposer‚   s    r$   Ú_eval_transposeÚAddWithLimits._eval_transpose<  rä   r   c                 óÎ  ^ • S[        T R                  5      :X  a|  T R                  R                  " S0 UD6nUR                  (       aL  [        UR                  U 4S j5      n[        US   6 T R                  " [        US   6 /T R                  Q76 -  $  T $ T R                  " T R                  /T R                  SS Q76 R                  5       nUR                  T R                  S   5      (       d1  T R                  ST R                  S   /5      R                  5       U-  $ [        U[        5      (       a-  T R                  UT R                  S   5      R                  5       $ T $ )Nr-   c                 óx   >• U R                   =(       a'    [        TR                  5      U R                  -  (       + $ r†   )rl   r©   r�   r6   )Úwrƒ   s    €r$   Ú<lambda>Ú,AddWithLimits._eval_factor.<locals>.<lambda>E  s/   ø€ °1×3CÑ3C÷ 4AÜ §¡Ó/°!·.±.Ñ@Ô@ð4Ar   TFr   r,   rÆ   )r!   r:   r;   ÚfactorÚis_Mulr   rª   r   rž   r=   r�   Údoitr.   )rƒ   ÚhintsÚsummandÚouts   `   r$   Ú_eval_factorÚAddWithLimits._eval_factorA  s/  ø€ Ø”�D—K‘KÓ Ó Ø—m‘m×*Ò*Ñ3¨UÑ3ˆGØ�~�~Ü˜7Ÿ<™<ô *Aó B�ä˜C ™I� t§y¢y´°c¸%±jÐ1Að ("Ø—[‘[ò("ñ "ð "ð ð ˆð —i’i §¡ÐB°·±¸A¸bÐ0AÒB×IÑIÓKˆGØ—;‘;˜tŸ~™~¨bÑ1×2Ñ2Ø—y‘y  T§[¡[°¡_Ð$5Ó6×;Ñ;Ó=¸gÑEÐEÜ˜G¤S×)Ñ)Ø—y‘y ¨$¯+©+°b©/Ó:×AÑAÓCÐCØˆr   c           	      ó  ^ • T R                   R                  " S0 UD6nUR                  SS5      nUR                  (       ae  U(       d   UR                  (       aM  T R
                  SLa>  [        UR                   Vs/ s H   nT R                  " U/T R                  Q76 PM"     sn6 $ [        U[        5      (       a  UR                  U 4S j5      $ UT R                   :w  a  T R                  " U/T R                  Q76 $ T $ s  snf )NÚforceFc                 ó>   >• TR                   " U /TR                  Q76 $ r†   )rž   r:   )rŸ   rƒ   s    €r$   rî   Ú2AddWithLimits._eval_expand_basic.<locals>.<lambda>X  s   ø€ ¨t¯yªy¸Ð/I¸T¿[¹[Ó/Ir   rÆ   )r;   Úexpandr–   Úis_Addrl   r½   r   rª   rž   r:   r.   r   Ú	applyfunc)rƒ   ró   rô   rù   rD   s   `    r$   Ú_eval_expand_basicÚ AddWithLimits._eval_expand_basicQ  sÇ   ø€ Ø—-‘-×&Ò&Ñ/¨Ñ/ˆØ—	‘	˜' 5Ó)ˆØ�N�N¦¨×)?×)?Ø×'Ñ'¨uÒ4Ü¸W¿\º\ÓJº\¸˜Ÿš 1Ð3 t§{¡{Õ3¹\ÑJÐKÐKÜ˜¤×,Ñ,Ø×$Ñ$Ô%IÓJÐJØ˜Ÿ™Ó%Ø—9’9˜WÐ3 t§{¡{Ò3Ð3Øˆùò Ks   Á;'C?N)rÇ   rÈ   rÉ   rÊ   Ú__doc__rË   rw   rÜ   râ   ré   rö   rÿ   rÍ   rÆ   r   r$   rÏ   rÏ     s,   † ñð €Iòò"ò
ò
ò
õ 
r   rÏ   ).Úsympy.core.addr   Úsympy.core.containersr   Úsympy.core.exprr   Úsympy.core.functionr   r   Úsympy.core.mulr   Úsympy.core.relationalr	   r
   Úsympy.core.singletonr   Úsympy.core.symbolr   r   Úsympy.core.sympifyr   Ú$sympy.functions.elementary.piecewiser   r   Úsympy.logic.boolalgr   Úsympy.matrices.matrixbaser   Úsympy.sets.setsr   r   Úsympy.sets.fancysetsr   Úsympy.tensor.indexedr   Úsympy.utilitiesr   Úsympy.utilities.iterablesr   r   Úsympy.utilities.exceptionsr   rM   r/   rj   rÏ   rÆ   r   r$   Ú<module>r     sm   ðÝ Ý 'Ý  ß ?Ý ß 6Ý "ß +Ý &÷å /Ý 0ß )Ý &Ý $Ý #ß 7Ý @òD)ðN (,õ gôTP�Tô Pôf
A�Nõ Ar   