2015-04-23 49 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實施是內部的這個庫。