Safe Haskell | None |
---|---|
Language | Haskell2010 |
A GADT encoding of (a selection of) primitive distributions along with their corresponding sampling and density functions.
Synopsis
- data PrimDist a where
- BernoulliDist :: Double -> PrimDist Bool
- BetaDist :: Double -> Double -> PrimDist Double
- BinomialDist :: Int -> Double -> PrimDist Int
- CategoricalDist :: (Eq a, Show a, Member a PrimVal) => [(a, Double)] -> PrimDist a
- CauchyDist :: Double -> Double -> PrimDist Double
- HalfCauchyDist :: Double -> PrimDist Double
- DeterministicDist :: (Eq a, Show a, Member a PrimVal) => a -> PrimDist a
- DirichletDist :: [Double] -> PrimDist [Double]
- DiscreteDist :: [Double] -> PrimDist Int
- DiscrUniformDist :: Int -> Int -> PrimDist Int
- GammaDist :: Double -> Double -> PrimDist Double
- NormalDist :: Double -> Double -> PrimDist Double
- HalfNormalDist :: Double -> PrimDist Double
- PoissonDist :: Double -> PrimDist Int
- UniformDist :: Double -> Double -> PrimDist Double
- type PrimVal = '[Int, Double, [Double], Bool, String]
- data IsPrimVal x where
- pattern PrimDistPrf :: () => (Show x, Member x PrimVal) => PrimDist x -> PrimDist x
- data ErasedPrimDist where
- ErasedPrimDist :: forall a. Show a => PrimDist a -> ErasedPrimDist
- sample :: PrimDist a -> Sampler a
- prob :: PrimDist a -> a -> Double
- logProb :: PrimDist a -> a -> Double
Primitive distribution
data PrimDist a where Source #
Primitive distribution
BernoulliDist | |
BetaDist | |
BinomialDist | |
CategoricalDist | |
CauchyDist | |
HalfCauchyDist | |
DeterministicDist | |
DirichletDist | |
DiscreteDist | |
DiscrUniformDist | |
GammaDist | |
NormalDist | |
HalfNormalDist | |
PoissonDist | |
UniformDist | |
Instances
type PrimVal = '[Int, Double, [Double], Bool, String] Source #
An ad-hoc specification of primitive value types, for constraining the outputs of distributions
pattern PrimDistPrf :: () => (Show x, Member x PrimVal) => PrimDist x -> PrimDist x Source #
For pattern-matching on an arbitrary PrimDist
with proof that it generates a primitive value
data ErasedPrimDist where Source #
For erasing the types of primitive distributions
ErasedPrimDist :: forall a. Show a => PrimDist a -> ErasedPrimDist |
Instances
Show ErasedPrimDist Source # | |
Defined in PrimDist showsPrec :: Int -> ErasedPrimDist -> ShowS # show :: ErasedPrimDist -> String # showList :: [ErasedPrimDist] -> ShowS # |
Sampling
sample :: PrimDist a -> Sampler a Source #
Draw a value from a primitive distribution in the Sampler
monad
Density
Compute the density of a primitive distribution generating an observed value