+
    ‹°³j  ã                   óè   € ^ 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HtHtHtHtHt ^ RIHtHt ^ RIHtHt ^ R	IHtHt ^ R
IHt ^ RIHt ^ RIH t   ! R R]4      t! ! R R]]4      t"R# )é    )ÚSum)ÚBasic)ÚLambda)ÚDummy)ÚIntegral)ÚNamedArgsMixinÚrandom_symbolsÚ_symbol_converterÚPSpaceÚRandomSymbolÚ	is_randomÚDistribution)ÚContinuousDistributionÚSingleContinuousPSpace)ÚDiscreteDistributionÚSingleDiscretePSpace)ÚSingleFiniteDistributionÚSingleFinitePSpace)ÚContinuousDistributionHandmade)ÚDiscreteDistributionHandmade)ÚFiniteDistributionHandmadec                   ó  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
 4       t]R 4       tRR ltR tRR/R ltRR/R ltRR ltRR/R ltRR/R ltRtV tR# )ÚCompoundPSpacez¢
A temporary Probability Space for the Compound Distribution. After
Marginalization, this returns the corresponding Probability Space of the
parent distribution.
c                ó\  € \        V4      p\        V\        4      '       d   \        W4      # \        V\        4      '       d   \        W4      # \        V\        4      '       d   \        W4      # \        V\        4      '       g   \        R V,          4      h\        P                  ! WV4      # )z2%s should be an isinstance of CompoundDistribution)r
   Ú
isinstancer   r   r   r   r   r   ÚCompoundDistributionÚ
ValueErrorr   Ú__new__)ÚclsÚsÚdistributions   &&&ÚX/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sympy/stats/compound_rv.pyr   ÚCompoundPSpace.__new__   s�   € Ü˜aÓ ˆÜ�lÔ$:×;Ò;Ü)¨!Ó:Ð:Ü�lÔ$8×9Ò9Ü'¨Ó8Ð8Ü�lÔ$<×=Ò=Ü% aÓ6Ð6Ü˜,Ô(<×=Ò=Üð /Ø0<õ>ó ?ð ?ä�}Š}˜S \Ó2Ð2ó    c                ó.   € \        V P                  V 4      # ©N)r   Úsymbol©Úselfs   &r"   ÚvalueÚCompoundPSpace.value$   s   € ä˜DŸK™K¨Ó.Ð.r$   c                ó(   € V P                   ^ ,          # ©r   ©Úargsr(   s   &r"   r'   ÚCompoundPSpace.symbol(   ó   € à�y‰y˜�|Ðr$   c                ó.   € V P                   P                  # r&   )r!   Úis_Continuousr(   s   &r"   r3   ÚCompoundPSpace.is_Continuous,   s   € à× Ñ ×.Ñ.Ð.r$   c                ó.   € V P                   P                  # r&   )r!   Ú	is_Finiter(   s   &r"   r6   ÚCompoundPSpace.is_Finite0   s   € à× Ñ ×*Ñ*Ð*r$   c                ó.   € V P                   P                  # r&   )r!   Úis_Discreter(   s   &r"   r9   ÚCompoundPSpace.is_Discrete4   s   € à× Ñ ×,Ñ,Ð,r$   c                ó(   € V P                   ^,          # )é   r.   r(   s   &r"   r!   ÚCompoundPSpace.distribution8   r1   r$   c                óL   € V P                   P                  V P                  4      # r&   )r!   Úpdfr'   r(   s   &r"   r?   ÚCompoundPSpace.pdf<   s   € à× Ñ ×$Ñ$ T§[¡[Ó1Ð1r$   c                ó.   € V P                   P                  # r&   )r!   Úsetr(   s   &r"   rB   ÚCompoundPSpace.set@   s   € à× Ñ ×$Ñ$Ð$r$   c                ó6   € V P                  4       P                  # r&   )Ú_get_newpspaceÚdomainr(   s   &r"   rF   ÚCompoundPSpace.domainD   s   € à×"Ñ"Ó$×+Ñ+Ð+r$   c                ó  € \        R 4      pV P                  P                  ^ ,          p\        W P                  P	                  W!4      4      pV P                  V P                  W44      pVe   V# R\        V4      ,          p\        V4      h)Úxú3Compound Distribution for %s is not implemented yet)	r   r!   r/   r   r?   Ú_transform_pspacer'   ÚstrÚNotImplementedError)r)   ÚevaluaterI   Úparent_distÚfuncÚ
new_pspaceÚmessages   &&     r"   rE   ÚCompoundPSpace._get_newpspaceH   sx   € Ü�#‹JˆØ×'Ñ'×,Ñ,¨QÕ/ˆÜ�a×*Ñ*×.Ñ.¨qÓ;Ó<ˆØ×+Ñ+¨D¯K©K¸ÓKˆ
ØÒ!ØÐØHÌ3È{ÓK[Õ[ˆÜ! 'Ó*Ð*r$   c                óz  € \        W! V4      4      pVP                  p\        V\        4      '       d   \	        V\        W44      4      # \        V\        4      '       d   \        V\        W44      4      # \        V\        4      '       d-   V Uu/ uF  qUV! V4      bK  	  pp\        V\        V4      4      # R# u upi )zw
This function returns the new pspace of the distribution using handmade
Distributions and their corresponding pspace.
N)r   rB   r   r   r   r   r   r   r   r   r   r   )r)   ÚsymÚdistr?   Ú_setÚkÚdenss   &&&&   r"   rK   Ú CompoundPSpace._transform_pspaceR   s¢   € ô
 �S˜#˜c›(Ó#ˆØ�x‰xˆÜ�dÔ2×3Ò3Ü)¨#Ô/MÈcÓ/XÓYÐYÜ˜Ô2×3Ò3Ü'¨Ô-IÈ#Ó-TÓUÐUÜ˜Ô6×7Ò7Ù'+Ó,¡t !‘s˜1“v’I¡tˆDÐ,Ü% cÔ+EÀdÓ+KÓLÐLñ 8ùÚ,s   ÂB8Úcompound_evaluateTc               ó˜   € V P                  V4      pVP                  V P                  VP                  /4      pVP                  ! V3/ VB # r&   )rE   Úsubsr*   Úcompute_density©r)   Úexprr[   ÚkwargsrQ   s   &&$, r"   r^   ÚCompoundPSpace.compute_densitya   sF   € Ø×(Ñ(Ð):Ó;ˆ
Ø�y‰y˜$Ÿ*™* j×&6Ñ&6Ð7Ó8ˆØ×)Ò)¨$Ñ9°&Ñ9Ð9r$   c               ó˜   € V P                  V4      pVP                  V P                  VP                  /4      pVP                  ! V3/ VB # r&   )rE   r]   r*   Úcompute_cdfr_   s   &&$, r"   rd   ÚCompoundPSpace.compute_cdff   sF   € Ø×(Ñ(Ð):Ó;ˆ
Ø�y‰y˜$Ÿ*™* j×&6Ñ&6Ð7Ó8ˆØ×%Ò% dÑ5¨fÑ5Ð5r$   Nc                óJ  € V P                  V4      pVP                  V P                  VP                  /4      pV'       d(   VP                  V P                  VP                  /4      p\        V\        4      '       d   VP
                  ! W3/ VB # VP
                  ! WV3/ VB # r&   )rE   r]   r*   r   r   Úcompute_expectation)r)   r`   ÚrvsrN   ra   rQ   s   &&&&, r"   rg   Ú"CompoundPSpace.compute_expectationk   s‹   € Ø×(Ñ(¨Ó2ˆ
Ø�y‰y˜$Ÿ*™* j×&6Ñ&6Ð7Ó8ˆßØ—(‘(˜DŸJ™J¨
×(8Ñ(8Ð9Ó:ˆCÜ�jÔ"4×5Ò5Ø×1Ò1°$ÑF¸vÑFÐFØ×-Ò-¨d¸ÑLÀVÑLÐLr$   c               ó”   € V P                  V4      pVP                  V P                  VP                  /4      pVP                  V4      # r&   )rE   r]   r*   Úprobability©r)   Ú	conditionr[   ra   rQ   s   &&$, r"   rk   ÚCompoundPSpace.probabilityt   sA   € Ø×(Ñ(Ð):Ó;ˆ
Ø—N‘N D§J¡J°
×0@Ñ0@Ð#AÓBˆ	Ø×%Ñ% iÓ0Ð0r$   c               ó”   € V P                  V4      pVP                  V P                  VP                  /4      pVP                  V4      # r&   )rE   r]   r*   Úconditional_spacerl   s   &&$, r"   rp   Ú CompoundPSpace.conditional_spacey   sA   € Ø×(Ñ(Ð):Ó;ˆ
Ø—N‘N D§J¡J°
×0@Ñ0@Ð#AÓBˆ	Ø×+Ñ+¨IÓ6Ð6r$   © ©F)NF)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Úpropertyr*   r'   r3   r6   r9   r!   r?   rB   rF   rE   rK   r^   rd   rg   rk   rp   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r"   r   r      s	  ø‡ € ñò3ð ñ/ó ð/ð ñó ðð ñ/ó ð/ð ñ+ó ð+ð ñ-ó ð-ð ñó ðð ñ2ó ð2ð ñ%ó ð%ð ñ,ó ð,ô+òMð:¸ô :ð
6°Tô 6ô
Mð1¸$ô 1ð
7À÷ 7ò 7r$   r   c                   óŠ   a € ] tR t^t o RtR t]R 4       t]R 4       t]R 4       t	]R 4       t
RR ltR t]R	 4       tR
tV tR# )r   ap  
Class for Compound Distributions.

Parameters
==========

dist : Distribution
    Distribution must contain a random parameter

Examples
========

>>> from sympy.stats.compound_rv import CompoundDistribution
>>> from sympy.stats.crv_types import NormalDistribution
>>> from sympy.stats import Normal
>>> from sympy.abc import x
>>> X = Normal('X', 2, 4)
>>> N = NormalDistribution(X, 4)
>>> C = CompoundDistribution(N)
>>> C.set
Interval(-oo, oo)
>>> C.pdf(x, evaluate=True).simplify()
exp(-x**2/64 + x/16 - 1/16)/(8*sqrt(pi))

References
==========

.. [1] https://en.wikipedia.org/wiki/Compound_probability_distribution

c                óÜ   € \        V\        \        \        34      '       g   R \	        V4      ,          p\        V4      hV P                  V4      '       g   V# \        P                  ! W4      # )rJ   )	r   r   r   r   rL   rM   Ú_compound_checkr   r   )r   rV   rR   s   && r"   r   ÚCompoundDistribution.__new__Ÿ   sa   € Ü˜$Ô!7Ü(Ô*>ð!@÷ Aò AàKÌcÐRVËiÕWˆGÜ% gÓ.Ð.Ø×"Ñ" 4×(Ò(ØˆKÜ�}Š}˜SÓ'Ð'r$   c                ó<   € V P                   ^ ,          P                  # r-   )r/   rB   r(   s   &r"   rB   ÚCompoundDistribution.set¨   s   € à�y‰y˜�|×ÑÐr$   c                óD   € \        V P                  ^ ,          \        4      # r-   )r   r/   r   r(   s   &r"   r3   Ú"CompoundDistribution.is_Continuous¬   s   € ä˜$Ÿ)™) A�,Ô(>Ó?Ð?r$   c                óD   € \        V P                  ^ ,          \        4      # r-   )r   r/   r   r(   s   &r"   r6   ÚCompoundDistribution.is_Finite°   s   € ä˜$Ÿ)™) A�,Ô(@ÓAÐAr$   c                óD   € \        V P                  ^ ,          \        4      # r-   )r   r/   r   r(   s   &r"   r9   Ú CompoundDistribution.is_Discrete´   s   € ä˜$Ÿ)™) A�,Ô(<Ó=Ð=r$   c                óŠ  € V P                   ^ ,          pVP                    Uu. uF  p\        V4      '       g   K  VNK  	  pp\        V\        4      '       d!   \	        RRRR7      pVP                  V4      pM\	        R4      pVP                  V4      pV F  pV P                  WtV4      pK  	  \        Wg4      ! V4      # u upi )r   ÚyTF)ÚintegerÚnegative)	r/   r   r   r   r   Úpmfr?   Ú_marginaliser   )r)   rI   rN   rV   ÚrvÚrandomsr‹   r`   s   &&&     r"   r?   ÚCompoundDistribution.pdf¸   sž   € Ø�y‰y˜�|ˆØ $§	¢	Ó;¡	˜"¬Y°r¯]—2�2¡	ˆÐ;Ü�dÔ4×5Ò5Ü�c 4°%Ô8ˆAØ—8‘8˜A“;‰Dä�c“
ˆAØ—8‘8˜A“;ˆDÛˆBØ×$Ñ$ T¨xÓ8ŠDñ ä�aŒ˜qÓ!Ð!ùò <s
   ¢C ºC c                ór  € \        VP                  P                  \        4      '       d'   VP                  P                  P	                  V4      pM%VP                  P                  P                  V4      pVP                  P                  P                  pVP                  P                  '       g   VP                  P                  '       d*   \        W,          W%P                  VP                  34      pM(\        W,          W%P                  VP                  34      pV'       d   VP                  4       # V# r&   )r   Úpspacer!   r   rŽ   r?   rF   rB   r9   r6   r   Ú_infÚ_supr   Údoit)r)   r`   r�   rN   Úrv_densÚrv_doms   &&&&  r"   r�   Ú!CompoundDistribution._marginaliseÅ   sØ   € Ü�b—i‘i×,Ñ,Ô.F×GÒGØ—i‘i×,Ñ,×0Ñ0°Ó4‰Gà—i‘i×,Ñ,×0Ñ0°Ó4ˆGØ—‘×!Ñ!×%Ñ%ˆØ�9‰9× × Ð  B§I¡I×$7×$7Ð$7Ü�t•| b¯+©+Ø—K‘Kð&!ó "‰Dô ˜D�L¨2¯{©{Ø—K‘Kð+!ó "ˆDçØ—9‘9“;ÐØˆr$   c                óˆ   € . pVP                    F  pVP                  \        V4      4       K  	  \        V4      ^ 8X  d   R# R# )z>
Checks if the given distribution contains random parameters.
FT)r/   Úextendr	   Úlen)r)   rV   r‘   Úargs   &&  r"   r€   Ú$CompoundDistribution._compound_checkÕ   s:   € ð
 ˆØ—9”9ˆCØ�N‰Nœ>¨#Ó.Ö/ñ äˆw‹<˜1ÔÙÙr$   rr   Nrs   )rt   ru   rv   rw   rx   r   ry   rB   r3   r6   r9   r?   r�   Úclassmethodr€   rz   r{   r|   s   @r"   r   r      s�   ø‡ € ñò>(ð ñ ó ð ð ñ@ó ð@ð ñBó ðBð ñ>ó ð>ô"òð  ñ	ó ö	r$   r   N)#Úsympy.concrete.summationsr   Úsympy.core.basicr   Úsympy.core.functionr   Úsympy.core.symbolr   Úsympy.integrals.integralsr   Úsympy.stats.rvr   r	   r
   r   r   r   r   Úsympy.stats.crvr   r   Úsympy.stats.drvr   r   Úsympy.stats.frvr   r   Úsympy.stats.crv_typesr   Úsympy.stats.drv_typesr   Úsympy.stats.frv_typesr   r   r   rr   r$   r"   Ú<module>r­      sW   ðÝ )Ý "Ý &Ý #Ý .÷G÷ Gñ Gç Jß Fß HÝ @Ý >Ý <ôl7�Vô l7ô^`˜<¨ö `r$   