learning-hmm-0.1.1.0: src/Data/Random/Distribution/Uniform/Util.hs
{-# LANGUAGE FlexibleContexts, FlexibleInstances, MultiParamTypeClasses #-}
module Data.Random.Distribution.Uniform.Util () where
import Control.Applicative ((<$>))
import Data.Number.LogFloat (LogFloat, logFloat, fromLogFloat)
import Data.Random.Distribution (Distribution)
import Data.Random.Distribution.Uniform -- (StdUniform(..), Uniform(..), doubleUniform)
import Data.Random (rvarT)
import Data.Random.Source (getRandomDouble)
instance Distribution Uniform LogFloat where
rvarT (Uniform a b) = do x <- doubleUniform (fromLogFloat a) (fromLogFloat b)
return $ logFloat x
instance Distribution StdUniform LogFloat where
rvarT _ = logFloat <$> getRandomDouble