monte-carlo 0.4 → 0.4.1
raw patch · 3 files changed
+12/−5 lines, 3 filesdep ~mtl
Dependency ranges changed: mtl
Files
- NEWS +5/−0
- lib/Control/Monad/MC/Sample.hs +5/−3
- monte-carlo.cabal +2/−2
NEWS view
@@ -1,3 +1,8 @@+Changes in 0.4.1:++* Get project to compile with ghc7.++ Changes in 0.4: * Felipe Lessa added applicative instances to GSL's MC and MCT.
lib/Control/Monad/MC/Sample.hs view
@@ -236,12 +236,13 @@ shuffle :: (MonadMC m) => [a] -> m [a] shuffle xs = let n = length xs- in shuffleInt n >>= \swaps -> (return . BV.toList . BV.create) $ do- marr <- MV.new n :: ST s (BMV.MVector s a)+ in shuffleInt n >>= \swaps -> (return . BV.toList) $ BV.create $ do+ marr <- MV.new n zipWithM_ (MV.unsafeWrite marr) [0 .. n-1] xs mapM_ (swap marr) swaps return marr where+ swap :: BMV.MVector s a -> (Int,Int) -> ST s () swap marr (i,j) | i == j = return () | otherwise = do x <- MV.unsafeRead marr i@@ -253,12 +254,13 @@ shuffleU :: (Unbox a, MonadMC m) => [a] -> m [a] shuffleU xs = let n = length xs- in shuffleInt n >>= \swaps -> (return . V.toList . V.create) $ do+ in shuffleInt n >>= \swaps -> (return . V.toList) $ V.create $ do marr <- MV.new n zipWithM_ (MV.unsafeWrite marr) [0 .. n-1] xs mapM_ (swap marr) swaps return marr where+ swap :: (Unbox a) => MVector s a -> (Int,Int) -> ST s () swap marr (i,j) | i == j = return () | otherwise = do x <- MV.unsafeRead marr i
monte-carlo.cabal view
@@ -1,5 +1,5 @@ name: monte-carlo-version: 0.4+version: 0.4.1 license: BSD3 license-file: LICENSE author: Patrick Perry@@ -45,7 +45,7 @@ build-depends: base >= 4 && < 5, gsl-random >= 0.4.3 && < 0.5,- mtl >= 1.1 && < 1.2,+ mtl >= 1.1 && < 3.0, vector >= 0.6 && < 0.8 hs-source-dirs: lib