-- | -- Module : Mcmc.Likelihood -- Description : Types and convenience functions for computing likelihoods -- Copyright : (c) 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, noLikelihood, ) where import Numeric.Log -- | Likelihood values are stored in log domain. type Likelihood = Log Double -- | Likelihood function. type LikelihoodFunction a = a -> Log Double -- | Flat likelihood function. Useful for testing and debugging. noLikelihood :: LikelihoodFunction a noLikelihood :: LikelihoodFunction a noLikelihood = Log Double -> LikelihoodFunction a forall a b. a -> b -> a const Log Double 1.0