+
    ‹°³j[>  ã                   óÐ  € R 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 ^ RIHt ^ RIHt ^ R	IHt ^ R
IHtHt ^ RIHt ^ RIHtHt ^ RIHtHtHt ^ RI H!t!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. ^ RI/H0t0 ^ RI1H2t2 ^ RI3H4t4  ! R R]'4      t5 ! R R4      t6 ! R R4      t7 ! R R4      t8R]6R]8R]8R]7/t9 ! R  R!])](4      t: ! R" R#]+4      t; ! R$ R%])4      t<R&# )'zq
Joint Random Variables Module

See Also
========
sympy.stats.rv
sympy.stats.frv
sympy.stats.crv
sympy.stats.drv
)Úprod)ÚBasic)ÚLambda)ÚS)ÚDummyÚSymbol)Úsympify)Ú
ProductSet©ÚIndexed)ÚProduct)ÚSumÚ	summation)ÚTuple)ÚIntegralÚ	integrate)ÚImmutableMatrixÚmatrix2numpyÚ
list2numpy)ÚSingleContinuousDistributionÚSingleContinuousPSpace)ÚSingleDiscreteDistributionÚSingleDiscretePSpace)ÚProductPSpaceÚNamedArgsMixinÚDistributionÚProductDomainÚRandomSymbolÚrandom_symbolsÚSingleDomainÚ_symbol_converter)Úiterable)Ú
filldedent)Úimport_modulec                   óÌ   a € ] tR t^$t o RtR t]R 4       t]R 4       t]R 4       t	]R 4       t
]R 4       t]R 4       t]R	 4       tR
 tR tRR ltR tR tRR ltR tRtV tR# )ÚJointPSpacezh
Represents a joint probability space. Represented using symbols for
each component and a distribution.
c                óÊ   € \        V\        4      '       d   \        W4      # \        V\        4      '       d   \	        W4      # \        V4      p\        P                  ! WV4      # ©N)Ú
isinstancer   r   r   r   r    r   Ú__new__)ÚclsÚsymÚdists   &&&ÚU/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sympy/stats/joint_rv.pyr)   ÚJointPSpace.__new__)   sO   € Ü�dÔ8×9Ò9Ü)¨#Ó4Ð4Ü�dÔ6×7Ò7Ü'¨Ó2Ð2Ü Ó$ˆÜ�}Š}˜S tÓ,Ð,ó    c                ó.   € V P                   P                  # r'   )ÚdomainÚset©Úselfs   &r-   r2   ÚJointPSpace.set1   s   € à�{‰{�‰Ðr/   c                ó(   € V P                   ^ ,          # )é    ©Úargsr3   s   &r-   ÚsymbolÚJointPSpace.symbol5   ó   € à�y‰y˜�|Ðr/   c                ó(   € V P                   ^,          # ©é   r8   r3   s   &r-   ÚdistributionÚJointPSpace.distribution9   r<   r/   c                ó.   € \        V P                  V 4      # r'   )ÚJointRandomSymbolr:   r3   s   &r-   ÚvalueÚJointPSpace.value=   s   € ä  §¡¨dÓ3Ð3r/   c                ó  € V P                   P                  p\        V\        4      '       d   \	        \        VP                  4      4      # \        V\        4      '       d   VP                  ^ ,          R,          # \        P                  # )r7   éÿÿÿÿ)
r@   r2   r(   r	   r   Úlenr9   r   ÚlimitsÚOne)r4   Ú_sets   & r-   Úcomponent_countÚJointPSpace.component_countA   s\   € à× Ñ ×$Ñ$ˆÜ�dœJ×'Ò'Ü”S˜Ÿ™“^Ó$Ð$Ü˜œg×&Ò&Ø—;‘;˜q•> "Õ%Ð%Ü�u‰uˆr/   c                óœ   € \        V P                  4       Uu. uF  p\        V P                  V4      NK  	  ppV P                  ! V!  # u upi r'   )ÚrangerL   r   r:   r@   )r4   Úir+   s   &  r-   ÚpdfÚJointPSpace.pdfJ   sE   € ä05°d×6JÑ6JÔ0KÓLÑ0K¨1Œw�t—{‘{ AÖ&Ñ0KˆÐLØ× Ò  #Ñ&Ð&ùò Ms   ˜A	c                óò   € \        V P                  4      pV'       g+   \        V P                  V P                  P                  4      # \        V Uu. uF  q"P                  P                  NK  	  up!  # u upi r'   )r   r@   r   r:   r2   r   Úpspacer1   ©r4   ÚrvsÚrvs   &  r-   r1   ÚJointPSpace.domainO   sW   € ä˜T×.Ñ.Ó/ˆßÜ §¡¨T×->Ñ->×-BÑ-BÓCÐCÜ¹#Ó>¹#°BŸy™y×/Ô/¹#Ñ>Ñ?Ð?ùÒ>s   ÁA4c                ó<   € V P                   P                  V,          # r'   )r2   r9   )r4   Úindexs   &&r-   Úcomponent_domainÚJointPSpace.component_domainV   s   € Ø�x‰x�}‰}˜UÕ#Ð#r/   c           	     óø  a € S P                   pVP                  \        4      '       d   \        R 4      h\	        V4       Uu. uF  p\        S P                  V4      NK  	  ppV Uu. uF  p\        \        V4      4      NK  	  pp\        \        WT4      4      p\        ;QJ d    . V 3R lV 4       F  NK  	  5M! V 3R lV 4       4      pV Uu. uF  q3V9  g   K  V.NK  	  pp^ p	\	        V4       Fc  pW19  g   K  W‰,          P                  S P                  P                  P                  V,          4       \        W‰,          4      W‰&   V	^,          p	Ke  	  S P                  P                  '       d'   \!        V\#        S P                  ! V!  .VO5!  4      p
MAS P                  P$                  '       d&   \!        V\'        S P                  ! V!  .VO5!  4      p
X
P)                  V4      # u upi u upi u upi )z_Marginal distributions cannot be computed for symbolic dimensions. It is a work under progress.c           	   3   ót   <"  € T F-  p\        \        \        SP                  V4      4      4      x € K/  	  R # 5ir'   )r   Ústrr   r:   ©Ú.0rP   r4   s   & €r-   Ú	<genexpr>Ú4JointPSpace.marginal_distribution.<locals>.<genexpr>a   s)   øé € ÐJÁ'¸Q”Fœ3œw t§{¡{°AÓ6Ó7×8Ð8Ã'ùs   ƒ58)rL   Úatomsr   Ú
ValueErrorrO   r   r:   r_   ÚdictÚzipÚtupleÚappendr@   r2   r9   Úis_Continuousr   r   Úis_Discreter   Úxreplace)r4   ÚindicesÚcountrP   ÚorigÚall_symsÚreplace_dictr+   rI   rZ   Úfs   f*         r-   Úmarginal_distributionÚ!JointPSpace.marginal_distributionY   s•  ø€ Ø×$Ñ$ˆØ�;‰;”v×ÒÜð Xó Yð Yä16°u´Ó>±¨A”˜Ÿ™ QÖ'±ˆÐ>Ù,0Ó1©D q”Fœ3˜q›6–N©DˆÐ1ÜœC Ó/Ó0ˆßŒeÔJÁ'ÓJ�e‰eÔJÁ'ÓJÓJˆÙ (Ó9¡˜1°S©L”$�1“$¡ˆÐ9ØˆÜ�u–ˆAØÖØ•×$Ñ$ T×%6Ñ%6×%:Ñ%:×%?Ñ%?ÀÕ%BÔCÜ % f¥mÓ 4�‘Ø˜•
’ñ	 ð
 ×Ñ×*×*Ð*Ü�sœI d×&7Ò&7¸Ñ&BÐLÀVÓLÓM‰AØ×Ñ×*×*Ð*Ü�sœI d×&7Ò&7¸Ñ&BÐLÀVÓLÓMˆAØ�z‰z˜,Ó'Ð'ùò ?ùÚ1ùò :s   ÁG-Á&G2ÃG7ÃG7Nc           	     ó~  a a€ \         ;QJ d*    . V 3R  l\        S P                  4       4       F  NK  	  5M#! V 3R  l\        S P                  4       4       4      pS;'       g    To\        ;QJ d    V3R lV 4       F  '       g   K   RM	  RM! V3R lV 4       4      '       g   V# VS P                  ,          pS F�  p\        V\        4      '       dD   VP                  V\        \        VP                  4      VP                  ^,          4      /4      pK\  \        V\        4      '       g   Kt  VP                  WfP                  /4      pK’  	  S P                  \        V4      9   d   \        \!        R4      4      h\         ;QJ d    . V 3R lV 4       F  NK  	  5M! V 3R lV 4       4      p\#        V.VO5!  # )c              3   óJ   <"  € T F  pSP                   V,          x € K  	  R # 5ir'   )rD   r`   s   & €r-   rb   Ú2JointPSpace.compute_expectation.<locals>.<genexpr>p   s   øé € ÐHÑ,G q�T—Z‘Z —]’]Ó,Gùs   ƒ #c              3   ó,   <"  € T F	  qS9   x € K  	  R # 5ir'   © )ra   rP   rV   s   & €r-   rb   rw   r   s   øé € Ð*¡T ˜–8£Tùs   ƒTFzq
            Expectations of expression with unindexed joint random symbols
            cannot be calculated yet.c              3   óô   <"  € T Fm  p\        \        VP                  4      VP                  ^,          4      SP                  P
                  P                  VP                  ^,          ,          3x € Ko  	  R# 5i)r?   N)r   r_   Úbaser9   r@   r2   )ra   rW   r4   s   & €r-   rb   rw   ~   sW   øé € ð DÙ>B¸ô  ¤ B§G¡G£¨R¯W©W°Q­ZÓ8Ø×Ñ×!Ñ!×&Ñ& r§w¡w¨q¥zÕ2õ4Û>Bùs   ƒA5A8)rh   rO   rL   ÚanyrQ   r(   r   rl   r_   r{   r9   r   r:   rD   r   ÚNotImplementedErrorr"   r   )r4   ÚexprrV   ÚevaluateÚkwargsÚsymsrW   rI   s   f&f&,   r-   Úcompute_expectationÚJointPSpace.compute_expectationo   sD  ù€ ßŒuÔH¬E°$×2FÑ2FÔ,GÓH�u‰uÔH¬E°$×2FÑ2FÔ,GÓHÓHˆØ�kˆk�Tˆß‹sÔ*¡TÓ*�s�sŠsÔ*¡TÓ*×*Ò*ØˆKØ�D—H‘H�}ˆÛˆBÜ˜"œg×&Ò&Ø—}‘} b¬'´#°b·g±g³,ÀÇÁÈÅ
Ó*KÐ%LÓM’Ü˜B¤×-Ô-Ø—}‘} b¯)©) _Ó5’ñ	 ð
 �:‰:œ¨Ó-Ô-Ü%¤jð 2)ó '*ó +ð +÷ ”ô DÙ>BóD—‘ô DÙ>BóDó Dˆä˜Ð&˜vÓ&Ð&r/   c                ó   € \        4       hr'   ©r}   ©r4   Ú	conditions   &&r-   ÚwhereÚJointPSpace.where‚   ó   € Ü!Ó#Ð#r/   c                ó   € \        4       hr'   r…   )r4   r~   s   &&r-   Úcompute_densityÚJointPSpace.compute_density…   rŠ   r/   c                óh   € \        V P                  V 4      V P                  P                  VW#R7      /# )zW
Internal sample method

Returns dictionary mapping RandomSymbol to realization value.
)ÚlibraryÚseed)r   r:   r@   Úsample)r4   Úsizer�   r�   s   &&&&r-   r‘   ÚJointPSpace.sampleˆ   s:   € ô ˜TŸ[™[¨$Ó/°×1BÑ1B×1IÑ1IÈ$Ø#ð 2Jó 20ð 1ð 	1r/   c                ó   € \        4       hr'   r…   r†   s   &&r-   ÚprobabilityÚJointPSpace.probability‘   rŠ   r/   ry   )NF©ry   ÚscipyN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r)   Úpropertyr2   r:   r@   rD   rL   rQ   r1   r[   rs   r‚   rˆ   rŒ   r‘   r•   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r-   r%   r%   $   sÅ   ø‡ € ñò-ð ñó ðð ñó ðð ñó ðð ñ4ó ð4ð ñó ðð ñ'ó ð'ð ñ@ó ð@ò$ò(ô,'ò&$ò$ô1÷$ð $r/   r%   c                   ó>   a € ] tR t^•t o RtRR lt]R 4       tRtV t	R# )ÚSampleJointScipyz7Returns the sample from scipy of the given distributionNc                ó&   € V P                  WV4      # r'   )Ú_sample_scipy©r*   r,   r’   r�   s   &&&&r-   r)   ÚSampleJointScipy.__new__—   ó   € Ø× Ñ  ¨TÓ2Ð2r/   c                óÞ  a	a
€ ^ RI pVe   \        V\        4      '       d   VP                  P	                  VR7      o	MVo	^ RIHo
 RV	V
3R lRV	V
3R lRV	V
3R	 l/pRR
 RR RR /pVP                  4       pVP                  P                  V9  d   R# WQP                  P                  ,          ! W4      pVP                  W&VP                  P                  ,          ! V4      ,           4      # )zSample from SciPy.N©r�   )ÚstatsÚMultivariateNormalDistributionc                 óª   <€ SP                   P                  \        V P                  4      P	                  4       \        V P
                  4      VSR 7      # ))ÚmeanÚcovr’   Úrandom_state)Úmultivariate_normalrV   r   ÚmuÚflattenÚsigma©r,   r’   Ú
rand_stateÚscipy_statss   &&€€r-   Ú<lambda>Ú0SampleJointScipy._sample_scipy.<locals>.<lambda>¥   sD   ø€ À×A`ÑA`×AdÑAdÜ! $§'¡'Ó*×2Ñ2Ó4Ü  §¡Ó,°4Àjð Beô BRr/   ÚMultivariateBetaDistributionc                 óŒ   <€ SP                   P                  \        V P                  \        4      P                  4       VSR 7      # ))Úalphar’   r±   )Ú	dirichletrV   r   r½   Úfloatr´   r¶   s   &&€€r-   r¹   rº   ¨   s;   ø€ ¸{×?TÑ?T×?XÑ?XÜ  §¡¬UÓ3×;Ñ;Ó=ÀDÐWað @Yô @cr/   ÚMultinomialDistributionc                 ó´   <€ SP                   P                  \        V P                  4      \	        V P
                  \        4      P                  4       VSR 7      # ))ÚnÚpr’   r±   )ÚmultinomialrV   ÚintrÂ   r   rÃ   r¿   r´   r¶   s   &&€€r-   r¹   rº   ª   sC   ø€ ¸+×:QÑ:Q×:UÑ:UÜ�d—f‘f“+¤¨D¯F©F´EÓ!:×!BÑ!BÓ!DÈ4Ð^hð ;Vô ;jr/   c                 ó\   € \        V P                  4      P                  4       P                  # r'   ©r   r³   r´   Úshape©r,   s   &r-   r¹   rº   ¯   ó   € ¼<ÈÏÉÓ;P×;XÑ;XÓ;Z×;`Ò;`r/   c                 ó\   € \        V P                  4      P                  4       P                  # r'   ©r   r½   r´   rÈ   rÉ   s   &r-   r¹   rº   °   ó   € ¼ÀDÇJÁJÓ9O×9WÑ9WÓ9Y×9_Ò9_r/   c                 ó\   € \        V P                  4      P                  4       P                  # r'   ©r   rÃ   r´   rÈ   rÉ   s   &r-   r¹   rº   ±   ó   € ´J¸t¿v¹vÓ4F×4NÑ4NÓ4P×4VÒ4Vr/   )Únumpyr(   rÅ   ÚrandomÚdefault_rngr˜   r¬   ÚkeysÚ	__class__r™   Úreshape)r*   r,   r’   r�   rÑ   Úscipy_rv_mapÚsample_shapeÚ	dist_listÚsamplesr·   r¸   s   &&&&     @@r-   r¦   ÚSampleJointScipy._sample_scipyš   sÙ   ù€ ó 	ØŠ<œ: d¬C×0Ò0ØŸ™×1Ñ1°tÐ1Ó<‰JàˆJÝ.à,õ /Rð +õ -cà%õ (jð
ˆð -Ñ.`Ø*Ñ,_Ø%Ñ'Vð
ˆð !×%Ñ%Ó'ˆ	à�>‰>×"Ñ"¨)Ô3ÙàŸ~™~×6Ñ6Ö7¸ÓCˆØ�‰˜t°4·>±>×3JÑ3JÖ&KÈDÓ&QÕQÓRÐRr/   ry   r'   )
r™   rš   r›   rœ   r�   r)   Úclassmethodr¦   rŸ   r    r¡   s   @r-   r¤   r¤   •   s#   ø‡ € ÙAô3ð ñSó öSr/   r¤   c                   ó>   a € ] tR t^¼t o RtRR lt]R 4       tRtV t	R# )ÚSampleJointNumpyz7Returns the sample from numpy of the given distributionNc                ó&   € V P                  WV4      # r'   )Ú_sample_numpyr§   s   &&&&r-   r)   ÚSampleJointNumpy.__new__¿   r©   r/   c                óÞ  a	€ ^ RI pVe   \        V\        4      '       d   VP                  P	                  VR7      o	MVo	RV	3R lRV	3R lRV	3R l/pRR	 RR
 RR /pVP                  4       pVP                  P                  V9  d   R# WQP                  P                  ,          ! V\        V4      4      pVP                  W&VP                  P                  ,          ! V4      ,           4      # )zSample from NumPy.Nr«   r­   c                 ó¨   <€ SP                  \        V P                  \        4      P	                  4       \        V P
                  \        4      VR 7      # ))r¯   r°   r’   )r²   r   r³   r¿   r´   rµ   ©r,   r’   r·   s   &&€r-   r¹   Ú0SampleJointNumpy._sample_numpy.<locals>.<lambda>Ì   s@   ø€ À×A_ÑA_Ü! $§'¡'¬5Ó1×9Ñ9Ó;Ü  §¡¬UÓ3¸$ð B`ô B@r/   r»   c                 óv   <€ SP                  \        V P                  \        4      P	                  4       VR 7      # ))r½   r’   )r¾   r   r½   r¿   r´   rä   s   &&€r-   r¹   rå   Ï   s2   ø€ ¸z×?SÑ?SÜ  §¡¬UÓ3×;Ñ;Ó=ÀDð @Tô @Jr/   rÀ   c                 óž   <€ SP                  \        V P                  4      \        V P                  \
        4      P                  4       VR 7      # ))rÂ   Úpvalsr’   )rÄ   rÅ   rÂ   r   rÃ   r¿   r´   rä   s   &&€r-   r¹   rå   Ñ   s:   ø€ ¸*×:PÑ:PÜ�d—f‘f“+¤Z°·±¼Ó%>×%FÑ%FÓ%HÈtð ;Qô ;Ur/   c                 ó\   € \        V P                  4      P                  4       P                  # r'   rÇ   rÉ   s   &r-   r¹   rå   Ö   rÊ   r/   c                 ó\   € \        V P                  4      P                  4       P                  # r'   rÌ   rÉ   s   &r-   r¹   rå   ×   rÍ   r/   c                 ó\   € \        V P                  4      P                  4       P                  # r'   rÏ   rÉ   s   &r-   r¹   rå   Ø   rÐ   r/   )
rÑ   r(   rÅ   rÒ   rÓ   rÔ   rÕ   r™   r   rÖ   )
r*   r,   r’   r�   rÑ   Únumpy_rv_maprØ   rÙ   rÚ   r·   s
   &&&&     @r-   rà   ÚSampleJointNumpy._sample_numpyÂ   sÜ   ø€ ó 	ØŠ<œ: d¬C×0Ò0ØŸ™×1Ñ1°tÐ1Ó<‰JàˆJà,ô /@ð +ô -Jà%ô (Uð
ˆð -Ñ.`Ø*Ñ,_Ø%Ñ'Vð
ˆð !×%Ñ%Ó'ˆ	à�>‰>×"Ñ"¨)Ô3ÙàŸ~™~×6Ñ6Ö7¸¼dÀ4»jÓIˆØ�‰˜t°4·>±>×3JÑ3JÖ&KÈDÓ&QÕQÓRÐRr/   ry   r'   )
r™   rš   r›   rœ   r�   r)   rÜ   rà   rŸ   r    r¡   s   @r-   rÞ   rÞ   ¼   s#   ø‡ € ÙAô3ð ñSó öSr/   rÞ   c                   ó>   a € ] tR t^ãt o RtRR lt]R 4       tRtV t	R# )ÚSampleJointPymcz6Returns the sample from pymc of the given distributionNc                ó&   € V P                  WV4      # r'   )Ú_sample_pymcr§   s   &&&&r-   r)   ÚSampleJointPymc.__new__æ   s   € Ø×Ñ ¨DÓ1Ð1r/   c                ó¦  a	€  ^ RI o	RV	3R lRV	3R lRV	3R l/pRR RR	 RR
 /pVP                  4       pVP                  P
                  V9  d   R# ^ RIpVP                  R4      P                  VP                  4       S	P                  4       ;_uu_ 4        WAP                  P
                  ,          ! V4       S	P                  \        V4      ^RVRRR7      R,          R,          pRRR4       XP                  W%VP                  P
                  ,          ! V4      ,           4      #   \         d	    ^ RIo	 EL5i ; i  + '       g   i     L^; i)zSample from PyMC.Nr­   c                 óä   <€ SP                  R \        V P                  \        4      P	                  4       \        V P
                  \        4      ^V P                  P                  ^ ,          3R7      # )ÚX)r³   r°   rÈ   )ÚMvNormalr   r³   r¿   r´   rµ   rÈ   ©r,   Úpymcs   &€r-   r¹   Ú.SampleJointPymc._sample_pymc.<locals>.<lambda>ò   sO   ø€ Ø—‘˜c¤l°4·7±7¼EÓ&B×&JÑ&JÓ&LÜ  §¡¬UÓ3¸A¸t¿w¹w¿}¹}ÈQÕ?OÐ;Pð ô Rr/   r»   c                 óv   <€ SP                  R \        V P                  \        4      P	                  4       R7      # )rõ   )Úa)Ú	Dirichletr   r½   r¿   r´   r÷   s   &€r-   r¹   rù   õ   s'   ø€ Ø—‘˜s¤j°·±¼UÓ&C×&KÑ&KÓ&M�ÔNr/   rÀ   c           	      óÊ   <€ SP                  R \        V P                  4      \        V P                  \
        4      P                  4       ^\        V P                  4      3R7      # )rõ   )rÂ   rÃ   rÈ   )ÚMultinomialrÅ   rÂ   r   rÃ   r¿   r´   rH   r÷   s   &€r-   r¹   rù   ÷   sI   ø€ Ø× Ñ  ¬¨D¯F©F«Ü˜TŸV™V¤UÓ+×3Ñ3Ó5¸aÄÀTÇVÁVÃÐ=Mð !ô Or/   c                 ó\   € \        V P                  4      P                  4       P                  # r'   rÇ   rÉ   s   &r-   r¹   rù   ý   rÊ   r/   c                 ó\   € \        V P                  4      P                  4       P                  # r'   rÌ   rÉ   s   &r-   r¹   rù   þ   rÍ   r/   c                 ó\   € \        V P                  4      P                  4       P                  # r'   rÏ   rÉ   s   &r-   r¹   rù   ÿ   rÐ   r/   Úpymc3F)ÚdrawsÚchainsÚprogressbarÚrandom_seedÚreturn_inferencedataÚcompute_convergence_checks:NNNrõ   )rø   ÚImportErrorr  rÔ   rÕ   r™   ÚloggingÚ	getLoggerÚsetLevelÚERRORÚModelr‘   r   rÖ   )
r*   r,   r’   r�   Úpymc_rv_maprØ   rÙ   r
  rÚ   rø   s
   &&&&     @r-   rñ   ÚSampleJointPymc._sample_pymcé   s<  ø€ ð	!Ûð -ô /Rð +ô -Oà%ô (Oð	
ˆð -Ñ.`Ø*Ñ,_Ø%Ñ'Vð
ˆð  ×$Ñ$Ó&ˆ	à�>‰>×"Ñ"¨)Ô3ÙãØ×Ñ˜'Ó"×+Ñ+¨G¯M©MÔ:Ø�Z‰Z�\�\ØŸ™×/Ñ/Ö0°Ô6Ø—k‘k¬¨T«
¸1È%Ð]aÐx}ð  [`�kó  að  bcõ  dð  ehõ  iˆG÷ ð �‰˜t°4·>±>×3JÑ3JÖ&KÈDÓ&QÕQÓRÐRøô; ô 	!Þ ð	!ú÷4 �\ús   ƒD* ÂAE Ä*D=Ä<D=Å E	ry   r'   )
r™   rš   r›   rœ   r�   r)   rÜ   rñ   rŸ   r    r¡   s   @r-   rï   rï   ã   s#   ø‡ € Ù@ô2ð ñ"Só ö"Sr/   rï   r˜   r  rø   rÑ   c                   ód   a € ] tR tRt o RtRtR t]R 4       t]R 4       t	R t
RR ltR	 tR
tV tR# )ÚJointDistributioni  z‡
Represented by the random variables part of the joint distribution.
Contains methods for PDF, CDF, sampling, marginal densities, etc.
c                óü   € \        \        \        V4      4      p\        \	        V4      4       F4  p\        W,          \         4      '       g   K!  \        W,          4      W&   K6  	  \        P                  ! V .VO5!  # r'   )	ÚlistÚmapr   rO   rH   r(   r   r   r)   )r*   r9   rP   s   &* r-   r)   ÚJointDistribution.__new__  sY   € Ü”Cœ Ó&Ó'ˆÜ”s˜4“yÖ!ˆAÜ˜$�'¤4×(Ô(Ü)¨$­'Ó2�“ñ "ô �}Š}˜SÐ( 4Ó(Ð(r/   c                ó,   € \        V P                  4      # r'   )r   Úsymbolsr3   s   &r-   r1   ÚJointDistribution.domain%  s   € ä˜TŸ\™\Ó*Ð*r/   c                ó<   € V P                   P                  ^,          # r>   )Údensityr9   r3   s   &r-   rQ   ÚJointDistribution.pdf)  s   € à�|‰|× Ñ  Õ#Ð#r/   c           	     óÌ  € \        V\        4      '       g   \        V: R \        V4      : 24      hVP	                  4       pV P
                  P                  P                  pT P                  \        ;QJ d    . R V P                   4       F  NK  	  5M! R V P                   4       4      4      p\        \        V4      4       F›  pW%,          P                  '       d5   \        WBV,          W5,          P                  WV,          ,          34      pKO  W%,          P                   '       g   Ki  \#        WBV,          W5,          P                  WV,          ,          34      pK�  	  X# )z should be of type dict, got c              3   óF   "  € T F  qP                   ^ ,          x € K  	  R# 5i©r7   Nr8   )ra   rP   s   & r-   rb   Ú(JointDistribution.cdf.<locals>.<genexpr>2  s   é € Ð>±¨AŸf™f QŸiši³ùs   ‚!)r(   rf   re   ÚtyperÔ   r1   r2   ÚsetsrQ   rh   r  rO   rH   rj   r   Úinfrk   r   )r4   ÚotherrV   rK   r~   rP   r  s   &&     r-   ÚcdfÚJointDistribution.cdf-  sò   € Ü˜%¤×&Ò&ÜÃ%ÌÈeÍÐUÓVÐVØ�j‰j‹lˆØ�{‰{�‰×#Ñ#ˆØ�x‰xŸœÑ>°·²Ó>Ÿ™Ñ>°·²Ó>Ó>Ó?ˆÜ”s˜5“zÖ"ˆAØ�v×#×#Ð#Ü" 4¨a­&°$µ'·+±+Ø˜a�&•Mð*#ó $’à•×#×#Ò#Ü˜d¨¥V¨T­W¯[©[Ø˜a�&•Mð%#ó $’ñ #ð ˆr/   Nc                ó  € RpW$9  d   \        R\        V4      ,          4      h\        V4      '       g   \        RV,          4      h\        V,          ! WVR7      pVe   V# \        RV P
                  P                  : RV: 24      h)z+A random realization from the distribution z&Sampling from %s is not supported yet.zFailed to import %sr«   zSampling for z# is not currently implemented from )r˜   rÑ   r  rø   )r}   r_   r#   re   Ú_get_sample_class_jrvrÕ   r™   )r4   r’   r�   r�   Ú	librariesÚsampss   &&&&  r-   r‘   ÚJointDistribution.sample<  s„   € ð 8ˆ	ØÔ#Ü%Ð&NÜ*-¨g«,õ'7ó 8ð 8ä˜W×%Ò%ÜÐ2°WÕ<Ó=Ð=ä% gÖ.¨tÀÔEˆàÒØˆLÝ!à—>‘>×*Ô*ªGð5óð 	r/   c                ó"   € V P                   ! V!  # r'   ©rQ   ©r4   r9   s   &*r-   Ú__call__ÚJointDistribution.__call__O  ó   € Ø�xŠx˜‰Ðr/   ry   r-  r—   )r™   rš   r›   rœ   r�   Ú	_argnamesr)   rž   r1   rQ   r%  r‘   r/  rŸ   r    r¡   s   @r-   r  r    sR   ø‡ € ñð
 €Iò)ð ñ+ó ð+ð ñ$ó ð$òô÷&ð r/   r  c                   ó*   a € ] tR tRt o RtR tRtV tR# )rC   iR  z[
Representation of random symbols with joint probability distributions
to allow indexing."
c                ó
  € \        V P                  \        4      '       dc   V P                  P                  V8*  R 8X  d:   \	        RV P
                  : RV P                  P                  ^,
          : R24      h\        W4      # R# )TzIndex keys for z can only up to Ú.N)r(   rT   r%   rL   re   Únamer   )r4   Úkeys   &&r-   Ú__getitem__ÚJointRandomSymbol.__getitem__W  sj   € Ü�d—k‘k¤;×/Ò/Ø—‘×+Ñ+¨sÑ2°tÔ;Ý Ø—Y”Y §¡× ;Ñ ;¸a× ?Ð ?ð"Aó Bð Bä˜4Ó%Ð%ñ	 0r/   ry   N)r™   rš   r›   rœ   r�   r8  rŸ   r    r¡   s   @r-   rC   rC   R  s   ø‡ € ñ÷&ð &r/   rC   c                   óh   a € ] tR tRt o RtR tR t]R 4       t]R 4       t	R t
R tR	 tR
 tRtV tR# )ÚMarginalDistributioni`  zÚ
Represents the marginal distribution of a joint probability space.

Initialised using a probability distribution and random variables(or
their indexed components) which should be a part of the resultant
distribution.
c                óÜ  € \        V4      ^8X  d+   \        V^ ,          4      '       d   \        V^ ,          4      p\        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       g   \	        \        R4      4      h\        P                  ! R V 4       4      p\        V\        4      '       g   \        \        V4      4      ^ 8X  d   V# \        P                  ! WV4      # )r?   c              3   óN   "  € T F  p\        V\        \        34      x € K  	  R # 5ir'   )r(   r   r   ©ra   rW   s   & r-   rb   Ú/MarginalDistribution.__new__.<locals>.<genexpr>l  s   é € ÐIÁS¸r”:˜b¤7¬LÐ"9×:Ð:ÃSùs   ‚#%FTz�Marginal distribution can be
             intitialised only in terms of random variables or indexed random
             variablesc              3   ó$   "  € T F  qx € K  	  R # 5ir'   ry   r>  s   & r-   rb   r?  p  s   é € Ð.©# BœR«#ùs   ‚)rH   r!   rh   Úallre   r"   r   Úfromiterr(   r  r   r   r)   )r*   r,   rV   s   &&*r-   r)   ÚMarginalDistribution.__new__i  s®   € Üˆs‹8�qŒ=œX c¨!¥f×-Ò-Ü˜˜A�“-ˆCß‹sÑIÁSÓI�s�sŠsÑIÁSÓI×IÒIÜœZð )ó ó ð ô �nŠnÑ.©#Ó.Ó.ˆÜ˜$Ô 1×2Ò2´s¼>È$Ó;OÓ7PÐTUÔ7UØˆKÜ�}Š}˜S¨Ó,Ð,r/   c                ó   € R # r'   ry   r3   s   &r-   ÚcheckÚMarginalDistribution.checku  s   € Ùr/   c                óâ   € V P                   ^,           Uu. uF  p\        V\        4      '       g   K  VNK  	  pp\        V Uu. uF  q3P                  P
                  NK  	  up!  # u upi u upi r>   )r9   r(   r   r	   rT   r2   )r4   rP   rV   rW   s   &   r-   r2   ÚMarginalDistribution.setx  sR   € àŸ)™) Až,ÓF™,�Q¬*°Q¼×*E�qˆq™,ˆÐFÜ±CÓ8±C¨bŸI™IŸMœM±CÑ8Ñ9Ð9ùò GùÚ8s   –A'³A'ÁA,c                ó|   € V P                   ^,          pV Uu0 uF  q"P                  P                  kK  	  up# u upi r>   )r9   rT   r:   rU   s   &  r-   r  ÚMarginalDistribution.symbols}  s/   € à�i‰i˜�lˆÙ+.Ó/©3 R—	‘	× Ô ©3Ñ/Ð/ùÒ/s   ˜9c                ó<  a€ V P                   ^ ,          V P                   ^,          r2\        V4       Uu. uF  qDV9  g   K  VNK  	  pp\        V\        4      '       dq   \	        VP
                  P                   4      p\        RRR7      o\        ;QJ d    . V3R lV 4       F  NK  	  5M! V3R lV 4       4      pVP                  V4      pM,\        ;QJ d    . R V 4       F  NK  	  5M! R V 4       4      p\        WpP                  W%4      4      ! S!  # u upi )r7   ÚxT)Úrealc              3   ó<   <"  € T F  p\        SV4      x € K  	  R # 5ir'   r
   )ra   rP   rL  s   & €r-   rb   Ú+MarginalDistribution.pdf.<locals>.<genexpr>ˆ  s   øé € Ð6±¨1œ  AŸ˜³ùs   ƒc              3   ó    "  € T FD  p\        V\        4      '       d   VP                  P                  MVP                  ^ ,          x € KF  	  R# 5ir  )r(   r   rT   r:   r9   r>  s   & r-   rb   rO  ‹  s7   é € ÐhÑdgÐ^`¬Z¸¼L×-IÒ-I˜Ÿ™×)Ò)ÈrÏwÉwÐWXÍzÔYÓdgùs   ‚AA)r9   r   r(   r  rH   r1   r   rh   rQ   r   Úcompute_pdf)r4   rL  r~   rV   rP   Úmarginalise_outrn   r�   s   &j      r-   rQ   ÚMarginalDistribution.pdf‚  sÕ   ø€ Ø—I‘I˜a•L $§)¡)¨A¥,ˆcÜ&4°TÔ&:ÓKÑ&: Às¹lŸ1˜1Ñ&:ˆÐKÜ�dÔ-×.Ò.Ü˜Ÿ™×(Ñ(Ó)ˆEÜ�c Ô%ˆAß”5Ô6±Ó6—5‘5Ô6±Ó6Ó6ˆDØ—8‘8˜D“>‰Dç”5ÑhÑdgÓh—5‘5ÑhÑdgÓhÓhˆDÜ�d×,Ñ,¨TÓCÔDÀaÑHÐHùò Ls   ´DÁDc                ó¤   € V FI  p^p\        V\        4      '       d   VP                  P                  pV P	                  W,          V4      pKK  	  V# r>   )r(   r   rT   rQ   rR  )r4   r~   rV   rW   Úlpdfs   &&&  r-   rQ  Ú MarginalDistribution.compute_pdfŽ  sF   € ÛˆBØˆDÜ˜"œl×+Ò+Ø—y‘y—}‘}�Ø×'Ñ'¨­	°2Ó6ŠDñ	 ð
 ˆr/   c                óø  € ^ RI Hp \        V\        4      '       d   VP                  P
                  pM[\        V\        4      '       dF   VP                  P                  VP                  P                  VP                  ^,          4      4      pVP                  W"P                  P                  /4      pVP                  P                  '       d$   \        WP                  P                  X34      pV# VP                  P                  '       dk   X\        P                   \        P"                  \        P$                  39   d   VP&                  VP(                  3pV! WP                  P                  V34      pV# )r7   )r   )Úsympy.concrete.summationsr   r(   r   rT   r2   r   r{   r[   r9   rl   r:   rj   r   rk   r   ÚIntegersÚNaturalsÚ	Naturals0r#  Úsup)r4   r~   rW   r   Údoms   &&&  r-   rR  Ú$MarginalDistribution.marginalise_out–  s  € Ý1Ü�bœ,×'Ò'Ø—)‘)—-‘-‰CÜ˜œG×$Ò$Ø—'‘'×*Ñ*Ø—	‘	×*Ñ*¨2¯7©7°1­:Ó6ó8ˆCà�}‰}˜b§)¡)×"2Ñ"2Ð3Ó4ˆØ�9‰9×"×"Ð"ô ˜D§9¡9×#3Ñ#3°SÐ"9Ó:ˆDð ˆð �Y‰Y×"×"Ð"à”q—z‘z¤1§:¡:¬q¯{©{Ð;Ô;Ø—w‘w §¡Ð(�Ù�tŸi™i×.Ñ.°Ð4Ó5ˆDØˆr/   c                ó"   € V P                   ! V!  # r'   r-  r.  s   &*r-   r/  ÚMarginalDistribution.__call__©  r1  r/   ry   N)r™   rš   r›   rœ   r�   r)   rE  rž   r2   r  rQ   rQ  rR  r/  rŸ   r    r¡   s   @r-   r;  r;  `  sV   ø‡ € ñò
-òð ñ:ó ð:ð ñ0ó ð0ò
Iòò÷&ð r/   r;  N)=r�   Úmathr   Úsympy.core.basicr   Úsympy.core.functionr   Úsympy.core.singletonr   Úsympy.core.symbolr   r   Úsympy.core.sympifyr   Úsympy.sets.setsr	   Úsympy.tensor.indexedr   Úsympy.concrete.productsr   rX  r   r   Úsympy.core.containersr   Úsympy.integrals.integralsr   r   Úsympy.matricesr   r   r   Úsympy.stats.crvr   r   Úsympy.stats.drvr   r   Úsympy.stats.rvr   r   r   r   r   r   r   r    Úsympy.utilities.iterablesr!   Úsympy.utilities.miscr"   Úsympy.externalr#   r%   r¤   rÞ   rï   r(  r  rC   r;  ry   r/   r-   Ú<module>rs     sÕ   ðñ	õ å "Ý &Ý "ß -Ý &Ý &Ý (Ý +ß 4Ý 'ß 9ß DÑ Dß Pß L÷=÷ =ó =õ /Ý +Ý (ôn$�-ô n$÷b%Sñ %S÷N%Sñ %S÷N)Sñ )SðZ ÐØˆ_Ø
ˆOØÐð	Ð ô:˜ nô :ôx
&˜ô 
&ôJ˜<ö Jr/   