
    \h	                     F    S SK Jr  S SKJr  S SKJrJrJr   " S S\5      rg)    )Basic)ProductPSpace)ProductDomain_symbol_converterDistributionc                   v    \ rS rSrSrSS jr\S 5       r\S 5       r\S 5       r	\S 5       r
SS	 jrSS
 jrSrg)StochasticPSpace   a  
Represents probability space of stochastic processes
and their random variables. Contains mechanics to do
computations for queries of stochastic processes.

Explanation
===========

Initialized by symbol, the specific process and
distribution(optional) if the random indexed symbols
of the process follows any specific distribution, like,
in Bernoulli Process, each random indexed symbol follows
Bernoulli distribution. For processes with memory, this
parameter should not be passed.
Nc                     [        U5      nSSKJn  [        X$5      (       d  [	        S5      eUc
  [        5       n[        R                  " XX#5      $ )Nr   )StochasticProcessz3`process` must be an instance of StochasticProcess.)r   $sympy.stats.stochastic_process_typesr   
isinstance	TypeErrorr   r   __new__)clssymprocessdistributionr   s        V/var/www/auris/envauris/lib/python3.13/site-packages/sympy/stats/stochastic_process.pyr   StochasticPSpace.__new__   sD    $J'55QRR'>L}}Sw==    c                      U R                   S   $ )z$
The associated stochastic process.
   argsselfs    r   r   StochasticPSpace.process    s    
 yy|r   c                 j    [        U R                  R                  U R                  R                  5      $ N)r   r   	index_setstate_spacer   s    r   domainStochasticPSpace.domain'   s(    T\\33!\\557 	7r   c                      U R                   S   $ )Nr   r   r   s    r   symbolStochasticPSpace.symbol,       yy|r   c                      U R                   S   $ )N   r   r   s    r   r   StochasticPSpace.distribution0   r(   r   c                 >    U R                   R                  " XU40 UD6$ z
Transfers the task of handling queries to the specific stochastic
process because every process has their own logic of handling such
queries.
)r   probability)r   	conditiongiven_conditionevaluatekwargss        r   r.   StochasticPSpace.probability4   s!     ||''	HWPVWWr   c                 >    U R                   R                  " XU40 UD6$ r-   )r   expectation)r   exprr/   r1   r2   s        r   compute_expectation$StochasticPSpace.compute_expectation<   s      ||''LVLLr    r    )NT)__name__
__module____qualname____firstlineno____doc__r   propertyr   r#   r&   r   r.   r7   __static_attributes__r9   r   r   r	   r	      sh     >   7 7    XMr   r	   N)	sympy.core.basicr   sympy.stats.joint_rvr   sympy.stats.rvr   r   r   r	   r9   r   r   <module>rD      s    " . I I<M} <Mr   