| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Traq.Data.Probability.Class
Synopsis
- class (ProbType probT, Monad m) => MonadProb probT m | m -> probT where
- class MonadProb probT m => MonadExp probT m where
- expectationA :: forall f r a. (Applicative f, RVType probT r) => (a -> f r) -> m a -> f r
- type Event a = a -> Bool
- type ProbType probT = (Num probT, Monoidal probT)
- type RandVar a r = a -> r
- type RVType probT r = (Monoidal r, Module probT r)
- zero :: MonadProb probT m => m a
- choose2 :: MonadProb probT m => probT -> m a -> m a -> m a
- uniform :: (MonadProb probT m, Fractional probT) => [a] -> m a
- bernoulli :: MonadProb probT m => probT -> m Bool
- expectation :: forall probT r m a. (MonadExp probT m, RVType probT r) => RandVar a r -> m a -> r
- mass :: (Num probT, MonadExp probT m, RVType probT probT) => m a -> probT
- probabilityOf :: forall probT m a. (MonadExp probT m, RVType probT probT) => Event a -> m a -> probT
- scale :: MonadProb probT m => probT -> m a -> m a
- normalize :: (Fractional probT, Eq probT, MonadExp probT m, RVType probT probT) => m a -> m a
- conditional :: (MonadExp probT m, Fractional probT, Eq probT, RVType probT probT) => Event a -> m a -> m a
- postselect :: (MonadExp probT m, Fractional probT, Eq probT, RVType probT probT) => Event a -> m a -> m a
- support :: forall p m a. (MonadExp p m, Module p ()) => m a -> [a]
- outcomes :: (MonadExp p m, Eq a, RVType p p, Module p ()) => m a -> [(a, p)]
- toDeterministicValue :: (MonadExp p m, Eq a, Module p ()) => m a -> Maybe a
Probability Classes
class (ProbType probT, Monad m) => MonadProb probT m | m -> probT where #
A probability monad, with a zero distribution and a choice operation.
Methods
choose :: ProbType probT => [(probT, m a)] -> m a #
Weighted choice from a given list of distributions.
class MonadProb probT m => MonadExp probT m where #
A probability monad with support for computing expectation of random variables.
Methods
expectationA :: forall f r a. (Applicative f, RVType probT r) => (a -> f r) -> m a -> f r #
compute the expectation of a random variable, by sequencing the outcomes.
Instances
| ProbType probT => MonadExp probT (ExpMonad probT) # | |
Defined in Traq.Data.Probability.Cont Methods expectationA :: (Applicative f, RVType probT r) => (a -> f r) -> ExpMonad probT a -> f r # | |
| ProbType probT => MonadExp probT (ProbList probT) # | |
Defined in Traq.Data.Probability.List Methods expectationA :: (Applicative f, RVType probT r) => (a -> f r) -> ProbList probT a -> f r # | |
| ProbType probT => MonadExp probT (Distr probT) # | |
Defined in Traq.Data.Probability.Tree Methods expectationA :: (Applicative f, RVType probT r) => (a -> f r) -> Distr probT a -> f r # | |
Types
Special Distributions
uniform :: (MonadProb probT m, Fractional probT) => [a] -> m a #
uniform random choice from a list of values
Properties
expectation :: forall probT r m a. (MonadExp probT m, RVType probT r) => RandVar a r -> m a -> r #
compute the expectation of a random variable.
mass :: (Num probT, MonadExp probT m, RVType probT probT) => m a -> probT #
Compute the mass or total probability of a given probability distribution.
probabilityOf :: forall probT m a. (MonadExp probT m, RVType probT probT) => Event a -> m a -> probT #
Probability of a given event.
Transforms
normalize :: (Fractional probT, Eq probT, MonadExp probT m, RVType probT probT) => m a -> m a #
Normalize a distribution
conditional :: (MonadExp probT m, Fractional probT, Eq probT, RVType probT probT) => Event a -> m a -> m a #
unnormalized conditional probability distribution
postselect :: (MonadExp probT m, Fractional probT, Eq probT, RVType probT probT) => Event a -> m a -> m a #
Normalized conditional probability of an event.