+
    ‹°³jâZ  ã                   óî  € ^ RI t ^ RIHt ^ RIHt ^ RIHt ^ RIHt	 ^ RI
Ht ^ RIHt ^ RIHt ^ R	IHt ^ R
IHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHtH t  ^ RI!H"t"H#t#H$t$H%t%H&t&H't'H(t(H)t)H*t*H+t+ . R!Ot,](PZ                  ! ]4      R 4       t.](PZ                  ! ]"4      R 4       t. ! R R]4      t/ ! R R]4      t0 ! R R]4      t1 ! R R]4      t2 ! R R]4      t3 ! R R ]4      t4R# )"é    N)ÚSum)ÚAdd)ÚExpr)Úexpand)ÚMul)ÚEq)ÚS)ÚSymbol)ÚIntegral)ÚNot)Úglobal_parameters)Údefault_sort_key)Ú_sympify)Ú
Relational)ÚBoolean)ÚvarianceÚ
covariance)
ÚRandomSymbolÚpspaceÚ	dependentÚgivenÚ
sampling_EÚRandomIndexedSymbolÚ	is_randomÚPSpaceÚ
sampling_PÚrandom_symbolsÚProbabilityÚExpectationÚVarianceÚ
Covariancec                 óØ   € V P                   p\        V4      ^8X  d   \        \        V4      4      V 8X  d   R# \        ;QJ d    R V 4       F  '       g   K   R# 	  R# ! R V 4       4      # )é   Fc              3   ó8   "  € T F  p\        V4      x € K  	  R # 5i©N)r   )Ú.0Úis   & Úa/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sympy/stats/symbolic_probability.pyÚ	<genexpr>Ú_.<locals>.<genexpr>   s   é € Ð+¡U Œy˜�|ˆ|£Uùs   ‚T)Úfree_symbolsÚlenÚnextÚiterÚany)ÚxÚatomss   & r(   Ú_r2      sR   € à�N‰N€EÜ
ˆ5ƒz�Q„œ4¤ U£Ó,°Ô1Ùß‹3Ñ+¡UÓ+�3Œ3Ð+Š3Ð+ˆ3Ñ+¡UÓ+Ó+Ð+ó    c                 ó   € R # )T© )r0   s   &r(   r2   r2       s   € ár3   c                   óL   a € ] tR t^%t o RtRtR	R ltR tR	R lt]t	R t
RtV tR# )
r   a×  
Symbolic expression for the probability.

Examples
========

>>> from sympy.stats import Probability, Normal
>>> from sympy import Integral
>>> X = Normal("X", 0, 1)
>>> prob = Probability(X > 1)
>>> prob
Probability(X > 1)

Integral representation:

>>> prob.rewrite(Integral)
Integral(sqrt(2)*exp(-_z**2/2)/(2*sqrt(pi)), (_z, 1, oo))

Evaluation of the integral:

>>> prob.evaluate_integral()
sqrt(2)*(-sqrt(2)*sqrt(pi)*erf(sqrt(2)/2) + sqrt(2)*sqrt(pi))/(4*sqrt(pi))
TNc                ó¢   € \        V4      pVf   \        P                  ! W4      pM"\        V4      p\        P                  ! WV4      pW$n        V# r%   )r   r   Ú__new__Ú
_condition)ÚclsÚprobÚ	conditionÚkwargsÚobjs   &&&, r(   r8   ÚProbability.__new__@   sC   € Ü˜‹~ˆØÒÜ—,’,˜sÓ)‰Cä  Ó+ˆIÜ—,’,˜s¨)Ó4ˆCØ"ŒØˆ
r3   c                ó  a€ V P                   ^ ,          pV P                  oVP                  RR4      pVP                  RR4      p\        V\        4      '       dK   \
        P                  V P                  VP                   ^ ,          SVR7      P                  ! R/ VB ,
          # VP                  \        4      '       d   \        V4      P                  VSVR7      # \        S\        4      '       d¾   \        V4      p\        V4      ^8X  d>   V^ ,          S8X  d0   ^ RIHp V! V P                  V4      P                  ! R/ VB ^ ^4      # \$        ;QJ d    V3R lV 4       F  '       g   K   RM	  RM! V3R lV 4       4      '       d   \'        VS4      # \'        V4      P                  4       # Se/   \        S\(        \*        34      '       g   \-        RS,          4      hSR8X  g   V\
        P.                  J d   \
        P0                  # \        V\(        \*        34      '       g   \-        RV,          4      hV\
        P2                  J d   \
        P                  # V'       d   \5        VSVR	7      # Se$   \'        \7        VS4      4      P                  4       # \        V4      \9        4       8X  d   \'        VS4      # \        V4      P                  V4      p\;        VR
4      '       d   V'       d   VP                  4       # V# )r   Ú
numsamplesFÚevaluateT©rB   )ÚBernoulliDistributionc              3   ó<   <"  € T F  p\        VS4      x € K  	  R # 5ir%   )r   )r&   ÚrvÚgiven_conditions   & €r(   r)   Ú#Probability.doit.<locals>.<genexpr>]   s   øé € ÐC¹F°b”9˜R ×1Ð1»Fùs   ƒz4%s is not a relational or combination of relationals)rA   Údoitr5   )Úargsr9   ÚgetÚ
isinstancer   r	   ÚOneÚfuncrI   Úhasr   r   Úprobabilityr   r   r,   Úsympy.stats.frv_typesrD   r/   r   r   r   Ú
ValueErrorÚfalseÚZeroÚtruer   r   r   Úhasattr)	ÚselfÚhintsr<   rA   rB   ÚcondrvrD   ÚresultrG   s	   &,      @r(   rI   ÚProbability.doitJ   sz  ø€ Ø—I‘I˜a•Lˆ	ØŸ/™/ˆØ—Y‘Y˜|¨UÓ3ˆ
Ø—9‘9˜Z¨Ó.ˆä�i¤×%Ò%Ü—5‘5˜4Ÿ9™9 Y§^¡^°AÕ%6¸Ø-5ð %ó 7ß7;±tð<ñ EØ>CñEõ Eð Eð �=‰=Ô,×-Ò-Ü˜)Ó$×0Ñ0°¸OØ6>ð 1ó @ð @ô �o¤|×4Ò4Ü# IÓ.ˆFÜ�6‹{˜aÔ F¨1¥I°Ô$@ÝGÙ,¨T¯Y©Y°yÓ-A×-FÒ-FÑ-OÈÑ-OÐQRÐTUÓVÐVß‹sÔC¹FÓC�s�sŠsÔC¹FÓC×CÒCÜ" 9¨oÓ>Ð>ä" 9Ó-×2Ñ2Ó4Ð4àÒ&Ü˜´¼WÐ0E×FÒFÜÐSØ&õ(ó )ð )ð ˜eÔ# y´A·G±GÓ';Ü—6‘6ˆMÜ˜)¤j´'Ð%:×;Ò;ÜÐSØ õ"ó #ð #àœŸ™ÓÜ—5‘5ˆLçÜ˜i¨ÀZÔPÐPØÒ&äœu Y°Ó@ÓA×FÑFÓHÐHô �)Ó¤£Ô(Ü˜y¨/Ó:Ð:ä˜	Ó"×.Ñ.¨yÓ9ˆÜ�6˜6×"Ò"§xØ—;‘;“=Ð àˆMr3   c                óF   € V P                  WR 7      P                  RR7      # )©r<   FrC   ©rN   rI   ©rW   Úargr<   r=   s   &&&,r(   Ú_eval_rewrite_as_IntegralÚ%Probability._eval_rewrite_as_Integral   s!   € Ø�y‰y˜ˆyÓ2×7Ñ7ÀÐ7ÓGÐGr3   c                óH   € V P                  \        4      P                  4       # r%   ©Úrewriter   rI   ©rW   s   &r(   Úevaluate_integralÚProbability.evaluate_integral„   ó   € Ø�|‰|œHÓ%×*Ñ*Ó,Ð,r3   r5   r%   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Úis_commutativer8   rI   ra   Ú_eval_rewrite_as_Sumrg   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r(   r   r   %   s4   ø‡ € ñð0 €Nôò3ôjHð 5Ð÷-ð -r3   c                   ób   a € ] tR t^ˆt o RtRR ltR tR tR tRR lt	RR lt
]
tR	 t]tR
tV tR# )r   a`  
Symbolic expression for the expectation.

Examples
========

>>> from sympy.stats import Expectation, Normal, Probability, Poisson
>>> from sympy import symbols, Integral, Sum
>>> mu = symbols("mu")
>>> sigma = symbols("sigma", positive=True)
>>> X = Normal("X", mu, sigma)
>>> Expectation(X)
Expectation(X)
>>> Expectation(X).evaluate_integral().simplify()
mu

To get the integral expression of the expectation:

>>> Expectation(X).rewrite(Integral)
Integral(sqrt(2)*X*exp(-(X - mu)**2/(2*sigma**2))/(2*sqrt(pi)*sigma), (X, -oo, oo))

The same integral expression, in more abstract terms:

>>> Expectation(X).rewrite(Probability)
Integral(x*Probability(Eq(X, x)), (x, -oo, oo))

To get the Summation expression of the expectation for discrete random variables:

>>> lamda = symbols('lamda', positive=True)
>>> Z = Poisson('Z', lamda)
>>> Expectation(Z).rewrite(Sum)
Sum(Z*lamda**Z*exp(-lamda)/factorial(Z), (Z, 0, oo))

This class is aware of some properties of the expectation:

>>> from sympy.abc import a
>>> Expectation(a*X)
Expectation(a*X)
>>> Y = Normal("Y", 1, 2)
>>> Expectation(X + Y)
Expectation(X + Y)

To expand the ``Expectation`` into its expression, use ``expand()``:

>>> Expectation(X + Y).expand()
Expectation(X) + Expectation(Y)
>>> Expectation(a*X + Y).expand()
a*Expectation(X) + Expectation(Y)
>>> Expectation(a*X + Y)
Expectation(a*X + Y)
>>> Expectation((X + Y)*(X - Y)).expand()
Expectation(X**2) - Expectation(Y**2)

To evaluate the ``Expectation``, use ``doit()``:

>>> Expectation(X + Y).doit()
mu + 1
>>> Expectation(X + Expectation(Y + Expectation(2*X))).doit()
3*mu + 1

To prevent evaluating nested ``Expectation``, use ``doit(deep=False)``

>>> Expectation(X + Expectation(Y)).doit(deep=False)
mu + Expectation(Expectation(Y))
>>> Expectation(X + Expectation(Y + Expectation(2*X))).doit(deep=False)
mu + Expectation(Expectation(Expectation(2*X) + Y))

Nc                ó  € \        V4      pVP                  '       d   ^ RIHp V! W4      # Vf+   \	        V4      '       g   V# \
        P                  ! W4      pM"\        V4      p\
        P                  ! WV4      pW%n        V# )r   )ÚExpectationMatrix)r   Ú	is_MatrixÚ-sympy.stats.symbolic_multivariate_probabilityrw   r   r   r8   r9   )r:   Úexprr<   r=   rw   r>   s   &&&,  r(   r8   ÚExpectation.__new__Î   sh   € Ü˜‹~ˆØ�>�>ˆ>ÝWÙ$ TÓ5Ð5ØÒÜ˜T—?’?Ø�Ü—,’,˜sÓ)‰Cä  Ó+ˆIÜ—,’,˜s¨)Ó4ˆCØ"ŒØˆ
r3   c                ó<   € V P                   ^ ,          P                  # ©r   ©rJ   ro   rf   s   &r(   Ú_eval_is_commutativeÚ Expectation._eval_is_commutativeÝ   s   € Ø�y‰y˜�|×*Ñ*Ð+r3   c                ó¾  a€ V P                   ^ ,          pV P                  o\        V4      '       g   V# \        V\        4      '       d+   \        P
                  ! V3R lVP                    4       4      # \        V4      p\        V\        4      '       d+   \        P
                  ! V3R lVP                    4       4      # \        V\        4      '       d‰   . p. pVP                    F8  p\        V4      '       d   VP                  V4       K'  VP                  V4       K:  	  \        P
                  ! V4      \        \        P
                  ! V4      SR7      ,          # V # )r   c              3   óZ   <"  € T F   p\        VSR 7      P                  4       x € K"  	  R# 5i©r]   N©r   r   ©r&   Úar<   s   & €r(   r)   Ú%Expectation.expand.<locals>.<genexpr>è   s+   øé € ð  (Ù&˜ô !,¨A¸Ô C× JÑ J× LÐ LÛ&ùó   ƒ(+c              3   óZ   <"  € T F   p\        VSR 7      P                  4       x € K"  	  R# 5irƒ   r„   r…   s   & €r(   r)   r‡   í   s+   øé € ð  /Ù-˜ô !,¨A¸Ô C× JÑ J× LÐ LÛ-ùrˆ   r]   )
rJ   r9   r   rL   r   ÚfromiterÚ_expandr   Úappendr   )rW   rX   rz   Úexpand_exprrF   Únonrvr†   r<   s   &,     @r(   r   ÚExpectation.expandà   s  ø€ Ø�y‰y˜�|ˆØ—O‘Oˆ	ä˜�ŠØˆKä�dœC× Ò Ü—<’<ô  (Ø!ŸYšYó (ó (ð (ô ˜d“mˆÜ�k¤3×'Ò'Ü—<’<ô  /Ø(×-Ò-ó /ó /ð /ô ˜œc×"Ò"ØˆBØˆEØ—Y”Y�Ü˜Q—<’<Ø—I‘I˜a–Là—L‘L –Oñ	 ô
 —<’< Ó&¤{´3·<²<ÀÓ3CÈyÔ'YÕYÐYàˆr3   c           
     óˆ  € VP                  R R4      pV P                  pV P                  ^ ,          pVP                  RR4      pVP                  RR4      pV'       d   VP                  ! R	/ VB p\	        V4      '       d   \        V\        4      '       d   V# V'       d    VP                  RR4      p\        WCWWR7      # VP                  \        4      '       d   \        V4      P                  WC4      # Ve+   V P                  \        WC4      4      P                  ! R	/ VB # VP                  '       dj   \        VP                   Uu. uFK  p\        V\        4      '       g"   V P                  Wƒ4      P                  ! R	/ VB MV P                  Wƒ4      NKM  	  up!  # VP                   '       d   VP#                  \        4      '       d   V# \        V4      \%        4       8X  d   V P                  V4      # \        V4      P                  WFR7      p	\'        V	R4      '       d   V'       d   V	P                  ! R	/ VB # V	# u upi )
ÚdeepTrA   FrB   Úevalf)rA   r’   rC   rI   r5   )rK   r9   rJ   rI   r   rL   r   r   rO   r   r   Úcompute_expectationrN   r   Úis_Addr   Úis_Mulr1   r   rV   )
rW   rX   r‘   r<   rz   rA   rB   r’   r`   rZ   s
   &,        r(   rI   ÚExpectation.doitü   sÑ  € Ø�y‰y˜ Ó&ˆØ—O‘Oˆ	Ø�y‰y˜�|ˆØ—Y‘Y˜|¨UÓ3ˆ
Ø—9‘9˜Z¨Ó.ˆçØ—9’9Ñ%˜uÑ%ˆDä˜�Š¤*¨T´;×"?Ò"?ØˆKßØ—I‘I˜g tÓ,ˆEÜ˜d¸*ÔRÐRà�8‰8Ô'×(Ò(Ü˜$“<×3Ñ3°DÓDÐDð Ò Ø—9‘9œU 4Ó3Ó4×9Ò9ÑB¸EÑBÐBð �;�;ˆ;Üà$(§I¢Ió/á$-˜Sô & c¬;×7Ò7ð Ÿ™ 3Ó2×7Ò7Ñ@¸%Ò@Ø=A¿Y¹YÀsÓ=VòWá$-ñ/ñ 0ð 0ð �;�;ˆ;Ø�z‰zœ+×&Ò&Ø�ä�$‹<œ6›8Ô#Ø—9‘9˜T“?Ð"ä˜“×1Ñ1°$Ð1ÓJˆÜ�6˜6×"Ò"§xØ—;’;Ñ' Ñ'Ð'àˆMùò/s   ÅAH?c           	     ó@  € VP                  \        4      p\        V4      ^8”  d   \        4       h\        V4      ^ 8X  d   V# VP	                  4       pVP
                  f   \        R4      hVP                  pVP                  ^ ,          P                  4       '       d%   \        VP                  P                  4       4      pM\        VP                  R,           4      pVP
                  P                  '       dˆ   \        VP                  WV4      \        \!        WV4      V4      ,          WeP
                  P"                  P$                  P&                  VP
                  P"                  P$                  P(                  34      # VP
                  P*                  '       d   \        h\-        VP                  WV4      \        \!        WV4      V4      ,          WeP
                  P"                  P$                  P&                  VP
                  P$                  P(                  34      # )r#   zProbability space not knownÚ_1)r1   r   r,   ÚNotImplementedErrorÚpopr   rR   ÚsymbolÚnameÚisupperr
   ÚlowerÚis_Continuousr   Úreplacer   r   ÚdomainÚsetÚinfÚsupÚ	is_Finiter   )rW   r`   r<   r=   ÚrvsrF   r›   s   &&&,   r(   Ú_eval_rewrite_as_ProbabilityÚ(Expectation._eval_rewrite_as_Probability'  sÎ  € Ø�i‰iœÓ%ˆÜˆs‹8�aŒ<Ü%Ó'Ð'Üˆs‹8�qŒ=ØˆJà�W‰W‹YˆØ�9‰9ÒÜÐ:Ó;Ð;à—‘ˆØ�;‰;�q�>×!Ñ!×#Ò#Ü˜FŸK™K×-Ñ-Ó/Ó0‰Fä˜FŸK™K¨$Õ.Ó/ˆFà�9‰9×"×"Ð"Ü˜CŸK™K¨Ó3´KÄÀ2ÃÐPYÓ4ZÕZÐ]c×enÑen×euÑeu×eyÑey×e}Ñe}ð  @B÷  @Iñ  @I÷  @Pñ  @P÷  @Tñ  @T÷  @Xñ  @Xð  ]Yó  Zð  Zà�y‰y×"×"Ð"Ü)Ð)ä˜3Ÿ;™; rÓ2´;¼rÀ"»~ÈyÓ3YÕYÐ\b×dmÑdm×dtÑdt×dxÑdx×d|Ñd|ð  A÷  Hñ  H÷  Lñ  L÷  Pñ  Pð  \Qó  Rð  Rr3   c                óH   € V P                  WR 7      P                  RVR7      # )r]   F)r‘   rB   r^   )rW   r`   r<   rB   r=   s   &&&&,r(   ra   Ú%Expectation._eval_rewrite_as_Integral@  s#   € Ø�y‰y˜ˆyÓ2×7Ñ7¸UÈXÐ7ÓVÐVr3   c                óH   € V P                  \        4      P                  4       # r%   rd   rf   s   &r(   rg   ÚExpectation.evaluate_integralE  ri   r3   r5   r%   )NF)rj   rk   rl   rm   rn   r8   r   r   rI   r§   ra   rp   rg   Úevaluate_sumrq   rr   rs   s   @r(   r   r   ˆ   sA   ø‡ € ñCôJò,òò8(ôVRô2Wð 5Ðò-ð %†Lr3   c                   ób   a € ] tR tRt o RtRR ltR tR tRR ltRR lt	RR	 lt
]
tR
 tRtV tR# )r    iJ  a.  
Symbolic expression for the variance.

Examples
========

>>> from sympy import symbols, Integral
>>> from sympy.stats import Normal, Expectation, Variance, Probability
>>> mu = symbols("mu", positive=True)
>>> sigma = symbols("sigma", positive=True)
>>> X = Normal("X", mu, sigma)
>>> Variance(X)
Variance(X)
>>> Variance(X).evaluate_integral()
sigma**2

Integral representation of the underlying calculations:

>>> Variance(X).rewrite(Integral)
Integral(sqrt(2)*(X - Integral(sqrt(2)*X*exp(-(X - mu)**2/(2*sigma**2))/(2*sqrt(pi)*sigma), (X, -oo, oo)))**2*exp(-(X - mu)**2/(2*sigma**2))/(2*sqrt(pi)*sigma), (X, -oo, oo))

Integral representation, without expanding the PDF:

>>> Variance(X).rewrite(Probability)
-Integral(x*Probability(Eq(X, x)), (x, -oo, oo))**2 + Integral(x**2*Probability(Eq(X, x)), (x, -oo, oo))

Rewrite the variance in terms of the expectation

>>> Variance(X).rewrite(Expectation)
-Expectation(X)**2 + Expectation(X**2)

Some transformations based on the properties of the variance may happen:

>>> from sympy.abc import a
>>> Y = Normal("Y", 0, 1)
>>> Variance(a*X)
Variance(a*X)

To expand the variance in its expression, use ``expand()``:

>>> Variance(a*X).expand()
a**2*Variance(X)
>>> Variance(X + Y)
Variance(X + Y)
>>> Variance(X + Y).expand()
2*Covariance(X, Y) + Variance(X) + Variance(Y)

Nc                óâ   € \        V4      pVP                  '       d   ^ RIHp V! W4      # Vf   \        P
                  ! W4      pM"\        V4      p\        P
                  ! WV4      pW%n        V# )r   )ÚVarianceMatrix)r   rx   ry   r°   r   r8   r9   )r:   r`   r<   r=   r°   r>   s   &&&,  r(   r8   ÚVariance.__new__{  sZ   € Ü�s‹mˆà�=�=ˆ=ÝTÙ! #Ó1Ð1ØÒÜ—,’,˜sÓ(‰Cä  Ó+ˆIÜ—,’,˜s¨Ó3ˆCØ"ŒØˆ
r3   c                ó<   € V P                   ^ ,          P                  # r}   r~   rf   s   &r(   r   ÚVariance._eval_is_commutative‰  ó   € Ø�y‰y˜�|×*Ñ*Ð*r3   c           	     óp  a	€ V P                   ^ ,          pV P                  o	\        V4      '       g   \        P                  # \        V\        4      '       d   V # \        V\        4      '       dƒ   . pVP                    F'  p\        V4      '       g   K  VP                  V4       K)  	  \        V	3R lV 4       !  pV	3R lp\        \        V\        P                  ! V^4      4      !  pWW,           # \        V\        4      '       d¯   . p. pVP                    F?  p\        V4      '       d   VP                  V4       K'  VP                  V^,          4       KA  	  \        V4      ^ 8X  d   \        P                  # \        P                  ! V4      \        \        P                  ! V4      S	4      ,          # V # )r   c              3   óX   <"  € T F  p\        VS4      P                  4       x € K!  	  R # 5ir%   )r    r   )r&   Úxvr<   s   & €r(   r)   Ú"Variance.expand.<locals>.<genexpr>š  s$   øé € ÐLÉÀ2œh r¨9Ó5×<Ñ<×>Ð>Ëùs   ƒ'*c                 óD   <€ ^\        V RS/ P                  4       ,          # )é   r<   )r!   r   )r0   r<   s   &€r(   Ú<lambda>Ú!Variance.expand.<locals>.<lambda>›  s   ø€  Q¤z°1Ð'JÀ	Ñ'J×'QÑ'QÓ'SÖ%Sr3   )rJ   r9   r   r	   rT   rL   r   r   rŒ   ÚmapÚ	itertoolsÚcombinationsr   r,   rŠ   r    )
rW   rX   r`   rF   r†   Ú	variancesÚmap_to_covarÚcovariancesrŽ   r<   s
   &,       @r(   r   ÚVariance.expandŒ  s9  ø€ Ø�i‰i˜�lˆØ—O‘Oˆ	ä˜�~Š~Ü—6‘6ˆMä�cœ<×(Ò(ØˆKÜ˜œS×!Ò!ØˆBØ—X”X�Ü˜Q—<”<Ø—I‘I˜a–Lñ ô ÔLÉÓLÑMˆIÜSˆLÜœs <´×1GÒ1GÈÈAÓ1NÓOÑPˆKØÕ*Ð*Ü˜œS×!Ò!ØˆEØˆBØ—X”X�Ü˜Q—<’<Ø—I‘I˜a–Là—L‘L  A¥Ö&ñ	 ô
 �2‹w˜!Œ|Ü—v‘v�Ü—<’< Ó&¤x´·²¸RÓ0@À)Ó'LÕLÐLð ˆr3   c                ó\   € \        V^,          V4      p\        W4      ^,          pWE,
          # )rº   ©r   )rW   r`   r<   r=   Úe1Úe2s   &&&,  r(   Ú_eval_rewrite_as_ExpectationÚ%Variance._eval_rewrite_as_Expectation­  s(   € Ü˜S !�V YÓ/ˆBÜ˜SÓ,¨aÕ/ˆBØ•7ˆNr3   c                óR   € V P                  \        4      P                  \        4      # r%   ©re   r   r   r_   s   &&&,r(   r§   Ú%Variance._eval_rewrite_as_Probability²  ó   € Ø�|‰|œKÓ(×0Ñ0´Ó=Ð=r3   c                óT   € \        V P                  ^ ,          V P                  RR7      # ©r   FrC   )r   rJ   r9   r_   s   &&&,r(   ra   Ú"Variance._eval_rewrite_as_Integralµ  s   € Ü˜Ÿ	™	 !� d§o¡oÀÔFÐFr3   c                óH   € V P                  \        4      P                  4       # r%   rd   rf   s   &r(   rg   ÚVariance.evaluate_integralº  ri   r3   r5   r%   )rj   rk   rl   rm   rn   r8   r   r   rÈ   r§   ra   rp   rg   rq   rr   rs   s   @r(   r    r    J  s=   ø‡ € ñ/ô`ò+òôBô
>ôGð 5Ð÷-ð -r3   c                   ó‚   a € ] tR tRt o RtRR ltR tR t]R 4       t	]R 4       t
RR	 ltRR
 ltRR lt]tR tRtV tR# )r!   i¾  a  
Symbolic expression for the covariance.

Examples
========

>>> from sympy.stats import Covariance
>>> from sympy.stats import Normal
>>> X = Normal("X", 3, 2)
>>> Y = Normal("Y", 0, 1)
>>> Z = Normal("Z", 0, 1)
>>> W = Normal("W", 0, 1)
>>> cexpr = Covariance(X, Y)
>>> cexpr
Covariance(X, Y)

Evaluate the covariance, `X` and `Y` are independent,
therefore zero is the result:

>>> cexpr.evaluate_integral()
0

Rewrite the covariance expression in terms of expectations:

>>> from sympy.stats import Expectation
>>> cexpr.rewrite(Expectation)
Expectation(X*Y) - Expectation(X)*Expectation(Y)

In order to expand the argument, use ``expand()``:

>>> from sympy.abc import a, b, c, d
>>> Covariance(a*X + b*Y, c*Z + d*W)
Covariance(a*X + b*Y, c*Z + d*W)
>>> Covariance(a*X + b*Y, c*Z + d*W).expand()
a*c*Covariance(X, Z) + a*d*Covariance(W, X) + b*c*Covariance(Y, Z) + b*d*Covariance(W, Y)

This class is aware of some properties of the covariance:

>>> Covariance(X, X).expand()
Variance(X)
>>> Covariance(a*X, b*Y).expand()
a*b*Covariance(X, Y)
Nc                ó”  € \        V4      p\        V4      pVP                  '       g   VP                  '       d   ^ RIHp V! WV4      # VP	                  R\
        P                  4      '       d   \        W.\        R7      w  rVf   \        P                  ! WV4      pM"\        V4      p\        P                  ! WW#4      pW6n        V# )r   )ÚCrossCovarianceMatrixrB   ©Úkey)r   rx   ry   rÕ   rš   r   rB   Úsortedr   r   r8   r9   )r:   Úarg1Úarg2r<   r=   rÕ   r>   s   &&&&,  r(   r8   ÚCovariance.__new__ë  s˜   € Ü˜‹~ˆÜ˜‹~ˆà�>�>ˆ>˜TŸ^Ÿ^˜^Ý[Ù(¨°YÓ?Ð?à�:‰:�jÔ"3×"<Ñ"<×=Ò=Ü  Ô2BÔC‰JˆDàÒÜ—,’,˜s¨$Ó/‰Cä  Ó+ˆIÜ—,’,˜s¨$Ó:ˆCØ"ŒØˆ
r3   c                ó<   € V P                   ^ ,          P                  # r}   r~   rf   s   &r(   r   ÚCovariance._eval_is_commutativeþ  r´   r3   c                ó  € V P                   ^ ,          pV P                   ^,          pV P                  pW#8X  d   \        W$4      P                  4       # \	        V4      '       g   \
        P                  # \	        V4      '       g   \
        P                  # \        W#.\        R7      w  r#\        V\        4      '       d#   \        V\        4      '       d   \        W#V4      # V P                  VP                  4       4      pV P                  VP                  4       4      pV UUU	U
u. uF8  w  rxV F-  w  ršWy,          \        \        WŠ.\        R7      RV/ ,          NK/  	  K:  	  pp	ppp
\        P                  ! V4      # u up
p	ppi )r   rÖ   r<   )rJ   r9   r    r   r   r	   rT   rØ   r   rL   r   r!   Ú_expand_single_argumentr   rŠ   )rW   rX   rÙ   rÚ   r<   Úcoeff_rv_list1Úcoeff_rv_list2r†   Úr1ÚbÚr2Úaddendss   &,          r(   r   ÚCovariance.expand  s.  € Ø�y‰y˜�|ˆØ�y‰y˜�|ˆØ—O‘Oˆ	àŒ<Ü˜DÓ,×3Ñ3Ó5Ð5ä˜�ŠÜ—6‘6ˆMÜ˜�ŠÜ—6‘6ˆMä˜T˜LÔ.>Ô?‰
ˆä�dœL×)Ò)¬j¸¼|×.LÒ.LÜ˜d¨)Ó4Ð4à×5Ñ5°d·k±k³mÓDˆØ×5Ñ5°d·k±k³mÓDˆñ #1öPÙ"0‘w˜Ã±W°að •3”z¤6¨2¨(Ô8HÔ#IÐ_ÐU^Ñ_×_Ð_Ù@Nñ `Ù"0ð 	ó Pä�|Š|˜GÓ$Ð$ùõPs   Ä%>E>
c                ó"  € \        V\        4      '       d   \        P                  V3.# \        V\        4      '       d„   . pVP
                   Fo  p\        V\        4      '       d#   VP                  V P                  V4      4       K;  \        V4      '       g   KN  VP                  \        P                  V34       Kq  	  V# \        V\        4      '       d   V P                  V4      .# \        V4      '       d   \        P                  V3.# R # r%   )
rL   r   r	   rM   r   rJ   r   rŒ   Ú_get_mul_nonrv_rv_tupler   )r:   rz   Úoutvalr†   s   &&  r(   rß   Ú"Covariance._expand_single_argument  sÈ   € ô �dœL×)Ò)Ü—U‘U˜D�M�?Ð"Ü˜œc×"Ò"ØˆFØ—Y”Y�Ü˜a¤×%Ò%Ø—M‘M #×"=Ñ"=¸aÓ"@ÖAÜ˜q—\”\Ø—M‘M¤1§5¡5¨! *Ö-ñ	 ð ˆMÜ˜œc×"Ò"Ø×/Ñ/°Ó5Ð6Ð6Ü�t�_Š_Ü—U‘U˜D�M�?Ð"ñ r3   c                óò   € . p. pVP                    F8  p\        V4      '       d   VP                  V4       K'  VP                  V4       K:  	  \        P                  ! V4      \        P                  ! V4      3# r%   )rJ   r   rŒ   r   rŠ   )r:   ÚmrF   rŽ   r†   s   &&   r(   rè   Ú"Covariance._get_mul_nonrv_rv_tuple-  sX   € àˆØˆØ—”ˆAÜ˜�|Š|Ø—	‘	˜!–à—‘˜Q–ñ	 ô
 —’˜UÓ#¤S§\¢\°"Ó%5Ð6Ð6r3   c                ól   € \        W,          V4      p\        W4      \        W#4      ,          pWV,
          # r%   rÅ   )rW   rÙ   rÚ   r<   r=   rÆ   rÇ   s   &&&&,  r(   rÈ   Ú'Covariance._eval_rewrite_as_Expectation8  s+   € Ü˜� IÓ.ˆÜ˜Ó)¬+°dÓ*FÕFˆØ�wˆr3   c                óR   € V P                  \        4      P                  \        4      # r%   rË   ©rW   rÙ   rÚ   r<   r=   s   &&&&,r(   r§   Ú'Covariance._eval_rewrite_as_Probability=  rÍ   r3   c                óx   € \        V P                  ^ ,          V P                  ^,          V P                  RR7      # rÏ   )r   rJ   r9   rñ   s   &&&&,r(   ra   Ú$Covariance._eval_rewrite_as_Integral@  s(   € Ü˜$Ÿ)™) A�,¨¯	©	°!­°d·o±oÐPUÔVÐVr3   c                óH   € V P                  \        4      P                  4       # r%   rd   rf   s   &r(   rg   ÚCovariance.evaluate_integralE  ri   r3   r5   r%   )rj   rk   rl   rm   rn   r8   r   r   Úclassmethodrß   rè   rÈ   r§   ra   rp   rg   rq   rr   rs   s   @r(   r!   r!   ¾  sd   ø‡ € ñ*ôXò&+ò%ð2 ñ#ó ð#ð$ ñ7ó ð7ôô
>ôWð 5Ð÷-ð -r3   c                   ó^   a a€ ] tR tRt oRtR	V 3R lltR tR	R ltR	R ltR	R lt	Rt
VtV ;t# )
ÚMomentiI  a7  
Symbolic class for Moment

Examples
========

>>> from sympy import Symbol, Integral
>>> from sympy.stats import Normal, Expectation, Probability, Moment
>>> mu = Symbol('mu', real=True)
>>> sigma = Symbol('sigma', positive=True)
>>> X = Normal('X', mu, sigma)
>>> M = Moment(X, 3, 1)

To evaluate the result of Moment use `doit`:

>>> M.doit()
mu**3 - 3*mu**2 + 3*mu*sigma**2 + 3*mu - 3*sigma**2 - 1

Rewrite the Moment expression in terms of Expectation:

>>> M.rewrite(Expectation)
Expectation((X - 1)**3)

Rewrite the Moment expression in terms of Probability:

>>> M.rewrite(Probability)
Integral((x - 1)**3*Probability(Eq(X, x)), (x, -oo, oo))

Rewrite the Moment expression in terms of Integral:

>>> M.rewrite(Integral)
Integral(sqrt(2)*(X - 1)**3*exp(-(X - mu)**2/(2*sigma**2))/(2*sqrt(pi)*sigma), (X, -oo, oo))

c                ó¦   <€ \        V4      p\        V4      p\        V4      pVe   \        V4      p\        SV `	  WW#V4      # \        SV `	  WW#4      # r%   ©r   Úsuperr8   )r:   ÚXÚnÚcr<   r=   Ú	__class__s   &&&&&,€r(   r8   ÚMoment.__new__l  sR   ø€ Ü�Q‹KˆÜ�Q‹KˆÜ�Q‹KˆØÒ Ü  Ó+ˆIÜ‘7‘? 3¨1°Ó;Ð;ä‘7‘? 3¨1Ó0Ð0r3   c                óL   € V P                  \        4      P                  ! R/ VB # ©Nr5   ©re   r   rI   ©rW   rX   s   &,r(   rI   ÚMoment.doitv  ó   € Ø�|‰|œKÓ(×-Ò-Ñ6°Ñ6Ð6r3   c                ó4   € \        W,
          V,          V4      # r%   rÅ   ©rW   rý   rþ   rÿ   r<   r=   s   &&&&&,r(   rÈ   Ú#Moment._eval_rewrite_as_Expectationy  s   € Ü˜A�E A�: yÓ1Ð1r3   c                óR   € V P                  \        4      P                  \        4      # r%   rË   r	  s   &&&&&,r(   r§   Ú#Moment._eval_rewrite_as_Probability|  rÍ   r3   c                óR   € V P                  \        4      P                  \        4      # r%   ©re   r   r   r	  s   &&&&&,r(   ra   Ú Moment._eval_rewrite_as_Integral  ó   € Ø�|‰|œKÓ(×0Ñ0´Ó:Ð:r3   r5   )r   N©rj   rk   rl   rm   rn   r8   rI   rÈ   r§   ra   rq   rr   Ú__classcell__©r   rt   s   @@r(   rù   rù   I  s)   ù‡ € ñ!÷D1ò7ô2ô>÷;ô ;r3   rù   c                   ó^   a a€ ] tR tRt oRtR	V 3R lltR tR	R ltR	R ltR	R lt	Rt
VtV ;t# )
ÚCentralMomentiƒ  aÏ  
Symbolic class Central Moment

Examples
========

>>> from sympy import Symbol, Integral
>>> from sympy.stats import Normal, Expectation, Probability, CentralMoment
>>> mu = Symbol('mu', real=True)
>>> sigma = Symbol('sigma', positive=True)
>>> X = Normal('X', mu, sigma)
>>> CM = CentralMoment(X, 4)

To evaluate the result of CentralMoment use `doit`:

>>> CM.doit().simplify()
3*sigma**4

Rewrite the CentralMoment expression in terms of Expectation:

>>> CM.rewrite(Expectation)
Expectation((-Expectation(X) + X)**4)

Rewrite the CentralMoment expression in terms of Probability:

>>> CM.rewrite(Probability)
Integral((x - Integral(x*Probability(True), (x, -oo, oo)))**4*Probability(Eq(X, x)), (x, -oo, oo))

Rewrite the CentralMoment expression in terms of Integral:

>>> CM.rewrite(Integral)
Integral(sqrt(2)*(X - Integral(sqrt(2)*X*exp(-(X - mu)**2/(2*sigma**2))/(2*sqrt(pi)*sigma), (X, -oo, oo)))**4*exp(-(X - mu)**2/(2*sigma**2))/(2*sqrt(pi)*sigma), (X, -oo, oo))

c                óŽ   <€ \        V4      p\        V4      pVe   \        V4      p\        SV `	  WW#4      # \        SV `	  WV4      # r%   rû   )r:   rý   rþ   r<   r=   r   s   &&&&,€r(   r8   ÚCentralMoment.__new__¦  sG   ø€ Ü�Q‹KˆÜ�Q‹KˆØÒ Ü  Ó+ˆIÜ‘7‘? 3¨1Ó8Ð8ä‘7‘? 3¨1Ó-Ð-r3   c                óL   € V P                  \        4      P                  ! R/ VB # r  r  r  s   &,r(   rI   ÚCentralMoment.doit¯  r  r3   c                óZ   € \        W3/ VB p\        WWS3/ VB P                  \         4      # r%   )r   rù   re   )rW   rý   rþ   r<   r=   Úmus   &&&&, r(   rÈ   Ú*CentralMoment._eval_rewrite_as_Expectation²  s.   € Ü˜Ñ0¨Ñ0ˆÜ�a˜BÑ4¨VÑ4×<Ñ<¼[ÓIÐIr3   c                óR   € V P                  \        4      P                  \        4      # r%   rË   ©rW   rý   rþ   r<   r=   s   &&&&,r(   r§   Ú*CentralMoment._eval_rewrite_as_Probability¶  rÍ   r3   c                óR   € V P                  \        4      P                  \        4      # r%   r  r  s   &&&&,r(   ra   Ú'CentralMoment._eval_rewrite_as_Integral¹  r  r3   r5   r%   r  r  s   @@r(   r  r  ƒ  s*   ù‡ € ñ!÷D.ò7ôJô>÷;ô ;r3   r  )r   r   r    r!   )5r¾   Úsympy.concrete.summationsr   Úsympy.core.addr   Úsympy.core.exprr   Úsympy.core.functionr   r‹   Úsympy.core.mulr   Úsympy.core.relationalr   Úsympy.core.singletonr	   Úsympy.core.symbolr
   Úsympy.integrals.integralsr   Úsympy.logic.boolalgr   Úsympy.core.parametersr   Úsympy.core.sortingr   Úsympy.core.sympifyr   r   r   Úsympy.statsr   r   Úsympy.stats.rvr   r   r   r   r   r   r   r   r   r   Ú__all__Úregisterr2   r   r   r    r!   rù   r  r5   r3   r(   Ú<module>r3     så   ðÛ Ý )Ý Ý  Ý 1Ý Ý $Ý "Ý $Ý .Ý #Ý 3Ý /Ý 'Ý ,Ý 'ß ,÷@÷ @÷ @ò C€ð ×Ò�DÓñ,ó ð,ð ×Ò�LÓ!ñó "ðô`-�$ô `-ôF@%�$ô @%ôDq-ˆtô q-ôhH-�ô H-ôV7;ˆTô 7;ôt7;�Dö 7;r3   