2015-04-23 25 views
0

我正在尝试使用gsl-random将GSL绑定到在haskell中工作的分发采样器。我知道random-fu是一个更高级的选项,但是我发现random-fu对于我的目的来说太慢了。Haskell gsl-random - 如何指定RNGType?

假设我想从测试版发布样本。基于Hackage文档上的型号规格为:

getBeta :: RNG -> Double -> Double -> IO Double 

我需要一个RNG对象,这来自于MkRNG

newRNG :: RNGType -> IO RNG 

如何指定RNGType?

λ> :i RNGType 
newtype RNGType 
    = gsl-random-0.5.0:GSL.Random.Gen.Internal.MkRNGType (GHC.Ptr.Ptr 
                 ()) 
    -- Defined in ‘gsl-random-0.5.0:GSL.Random.Gen.Internal’ 

这就是我卡住的地方。我不明白如何基于此实例化RNGType对象。

+0

您是否尝试过'GSL.Random.Gen.mt19937'或'GSL.Random.Gen.rngType'?这两个函数都会返回一个'RNGType'。 – bheklilr

+0

工作,如果你张贴作为答案我会接受它 – daj

回答

2

你要使用的功能mt19937rngTypeGSL.Random.Gen模块构建RNGType,因为RNGType实施是内部的这个库。