Module

Math.Probability

Package
purescript-probability
Repository
pseudonom/purescript-probability

Provides monadic interface for computation with discrete random variables. Based on: http://web.engr.oregonstate.edu/~erwig/papers/PFP_JFP06.pdf

#Prob Source

type Prob = Prob

#runProb Source

#ProbList Source

#Dist Source

type Dist = Dist

#dist Source

dist :: forall a. Array (Tuple a Prob) -> Maybe (Dist a)

#zipDist Source

zipDist :: forall a. Array a -> ProbList -> Dist a

#fromFreqs Source

fromFreqs :: forall a. Array (Tuple a Number) -> Maybe (Dist a)

#choose Source

choose :: forall a. Prob -> a -> a -> Dist a

#runDist Source

runDist :: forall a. Dist a -> Array (Tuple a Number)

#distProbs Source

distProbs :: forall a. Dist a -> ProbList

#extract Source

extract :: forall a. Dist a -> Array a

#Spread Source

type Spread a = Array a -> Maybe (Dist a)

#uniform Source

uniform :: forall a. Spread a

#relative Source

relative :: forall a. Array Number -> Spread a

#reshape Source

reshape :: forall a. Spread a -> Dist a -> Maybe (Dist a)

#norm Source

norm :: forall a. Ord a => Dist a -> Dist a

#Event Source

type Event a = a -> Boolean

#oneOf Source

oneOf :: forall a. Eq a => Array a -> Event a

#just Source

just :: forall a. Eq a => a -> Event a

#(??) Source

Operator alias for Math.Probability.lookup (right-associative / precedence 1)

#lookup Source

lookup :: forall a. Event a -> Dist a -> Prob

#(>>=?) Source

Operator alias for Math.Probability.ffilter (left-associative / precedence 1)

#(?=<<) Source

Operator alias for Math.Probability.filter (right-associative / precedence 1)

#ffilter Source

ffilter :: forall a. Dist a -> Event a -> Maybe (Dist a)

#filter Source

filter :: forall a. Event a -> Dist a -> Maybe (Dist a)

#cond Source

cond :: forall a. Dist Boolean -> Dist a -> Dist a -> Dist a

#joinDists Source

joinDists :: forall c b a. (a -> b -> c) -> Dist a -> (a -> Dist b) -> Dist c

#marginalize Source

marginalize :: forall b a. Eq b => (a -> b) -> Dist a -> Dist b

#Iso Source

data Iso a b

Constructors

  • Iso (a -> b) (b -> a)

#to Source

to :: forall b a. Iso a b -> a -> b

#from Source

from :: forall b a. Iso a b -> b -> a

#expected Source

expected :: forall a. Iso a Number -> Dist a -> a

#variance Source

variance :: forall a. Iso a Number -> Dist a -> a

#stdDev Source

stdDev :: forall a. Iso a Number -> Dist a -> a

#approx Source

approx :: forall a. Ord a => Dist a -> Dist a -> Boolean

#size Source

size :: forall a. Dist a -> Number

#map Source

map :: forall b a. Ord b => (a -> b) -> Dist a -> Dist b

#mapMaybe Source

mapMaybe :: forall b a. (a -> Maybe b) -> Dist a -> Maybe (Dist b)