diff --git a/Statistics/Distribution/Poisson.hs b/Statistics/Distribution/Poisson.hs index ba1441d..389843a 100644 --- a/Statistics/Distribution/Poisson.hs +++ b/Statistics/Distribution/Poisson.hs @@ -31,15 +31,18 @@ import Data.Aeson (FromJSON(..), ToJSON, Value(..), (.:)) import Data.Binary (Binary(..)) import Data.Data (Data, Typeable) import GHC.Generics (Generic) + +import qualified System.Random.MWC.Distributions as MWC + import Numeric.SpecFunctions (incompleteGamma,logFactorial) import Numeric.MathFunctions.Constants (m_neg_inf) + import qualified Statistics.Distribution as D import qualified Statistics.Distribution.Poisson.Internal as I import Statistics.Internal - newtype PoissonDistribution = PD { poissonLambda :: Double } deriving (Eq, Typeable, Data, Generic) @@ -93,6 +96,14 @@ instance D.Entropy PoissonDistribution where instance D.MaybeEntropy PoissonDistribution where maybeEntropy = Just . D.entropy +-- | @since 0.16.5.0 +instance D.DiscreteGen PoissonDistribution where + genDiscreteVar (PD lambda) = MWC.poisson lambda + +-- | @since 0.16.5.0 +instance D.ContGen PoissonDistribution where + genContVar (PD lambda) gen = fromIntegral <$> MWC.poisson lambda gen + -- | Create Poisson distribution. poisson :: Double -> PoissonDistribution poisson l = maybe (error $ errMsg l) id $ poissonE l diff --git a/changelog.md b/changelog.md index bff0b21..97729ed 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,8 @@ +## Changes in 0.16.5.0 [2026.01.09] + + * `ContGen` and `DiscreteGen` instances for `Poisson` distributions are added. + + ## Changes in 0.16.4.0 [2025.10.23] * Bartlett's test (`Statistics.Test.Bartlett`) and Levene's test diff --git a/statistics.cabal b/statistics.cabal index 4bb5c9f..65322a6 100644 --- a/statistics.cabal +++ b/statistics.cabal @@ -2,7 +2,7 @@ cabal-version: 3.0 build-type: Simple name: statistics -version: 0.16.4.0 +version: 0.16.5.0 synopsis: A library of statistical types, data, and functions description: This library provides a number of common functions and types useful @@ -128,7 +128,7 @@ library build-depends: base >= 4.9 && < 5 -- , math-functions >= 0.3.4.1 - , mwc-random >= 0.15.0.0 + , mwc-random >= 0.15.3.0 , random >= 1.2 -- , aeson >= 0.6.0.0