The boltzmann-samplers package

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.



Random generators with a uniform distribution conditioned to a given size. See also testing-feat, which is currently a faster method with similar results.

[Skip to ReadMe]


Change logNone available
Dependenciesad, base (>=4.9 && <5), containers, hashable, hmatrix, ieee754, MonadRandom, mtl, QuickCheck, transformers, unordered-containers, vector [details]
AuthorLi-yao Xia
CategoryData, Generic, Random
Home page
Source repositoryhead: git clone
UploadedSun Mar 5 20:22:44 UTC 2017 by lyxia




testEnable testing. Disabled by default because the current test suite is slow and can fail with non-zero probability.DisabledManual

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainers' corner

For package maintainers and hackage trustees

Readme for boltzmann-samplers-

Boltzmann samplers Hackage Build Status


Define sized random generators for Data.Data generic types.

    {-# LANGUAGE DeriveDataTypeable #-}

    import Data.Data
    import Test.QuickCheck
    import Boltzmann.Data

    data Term = Lambda Int Term | App Term Term | Var Int
      deriving (Show, Data)

    instance Arbitrary Term where
      arbitrary = sized $ generatorPWith [positiveInts]

    positiveInts :: Alias Gen
    positiveInts =
      alias $ \() -> fmap getPositive arbitrary :: Gen Int

    main = sample (arbitrary :: Gen Term)


An experimental interface to obtain Boltzmann samplers from an applicative specification of a combinatorial system.

No documentation (yet).