我试图使用gsl-random将GSL绑定到使用haskell的分发采样器。我知道随机fu是一个更高级别的选项,但我发现random-fu对我来说太慢了。
说我想从测试版发布中进行抽样。基于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 :(得分:2)
您必须使用mt19937
模块中的rngType
和GSL.Random.Gen
函数来构建RNGType
,因为RNGType
的实现是内部的库。