switching to high quality piper tts and added label translations
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
from sympy.core.basic import Basic
|
||||
from sympy.stats.joint_rv import ProductPSpace
|
||||
from sympy.stats.rv import ProductDomain, _symbol_converter, Distribution
|
||||
|
||||
|
||||
class StochasticPSpace(ProductPSpace):
|
||||
"""
|
||||
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.
|
||||
"""
|
||||
|
||||
def __new__(cls, sym, process, distribution=None):
|
||||
sym = _symbol_converter(sym)
|
||||
from sympy.stats.stochastic_process_types import StochasticProcess
|
||||
if not isinstance(process, StochasticProcess):
|
||||
raise TypeError("`process` must be an instance of StochasticProcess.")
|
||||
if distribution is None:
|
||||
distribution = Distribution()
|
||||
return Basic.__new__(cls, sym, process, distribution)
|
||||
|
||||
@property
|
||||
def process(self):
|
||||
"""
|
||||
The associated stochastic process.
|
||||
"""
|
||||
return self.args[1]
|
||||
|
||||
@property
|
||||
def domain(self):
|
||||
return ProductDomain(self.process.index_set,
|
||||
self.process.state_space)
|
||||
|
||||
@property
|
||||
def symbol(self):
|
||||
return self.args[0]
|
||||
|
||||
@property
|
||||
def distribution(self):
|
||||
return self.args[2]
|
||||
|
||||
def probability(self, condition, given_condition=None, evaluate=True, **kwargs):
|
||||
"""
|
||||
Transfers the task of handling queries to the specific stochastic
|
||||
process because every process has their own logic of handling such
|
||||
queries.
|
||||
"""
|
||||
return self.process.probability(condition, given_condition, evaluate, **kwargs)
|
||||
|
||||
def compute_expectation(self, expr, condition=None, evaluate=True, **kwargs):
|
||||
"""
|
||||
Transfers the task of handling queries to the specific stochastic
|
||||
process because every process has their own logic of handling such
|
||||
queries.
|
||||
"""
|
||||
return self.process.expectation(expr, condition, evaluate, **kwargs)
|
||||
Reference in New Issue
Block a user