mcmc-0.8.3.0: src/Mcmc/Likelihood.hs
-- |
-- Module : Mcmc.Likelihood
-- Description : Types and convenience functions for computing likelihoods
-- Copyright : 2021 Dominik Schrempf
-- License : GPL-3.0-or-later
--
-- Maintainer : dominik.schrempf@gmail.com
-- Stability : experimental
-- Portability : portable
--
-- Creation date: Wed Mar 3 11:39:04 2021.
module Mcmc.Likelihood
( Likelihood,
LikelihoodFunction,
LikelihoodFunctionG,
noLikelihood,
)
where
import Numeric.Log
-- | Likelihood values are stored in log domain.
type Likelihood = Log Double
-- | Likelihood function.
type LikelihoodFunction a = a -> Log Double
-- | Generalized likelihood function.
type LikelihoodFunctionG a b = a -> Log b
-- | Flat likelihood function. Useful for testing and debugging.
noLikelihood :: (RealFloat b) => LikelihoodFunctionG a b
noLikelihood = const 1.0
{-# SPECIALIZE noLikelihood :: LikelihoodFunction Double #-}