lots of miscellaneous cleanups
authorCarter Tazio Schonwald <carter.schonwald@gmail.com>
Thu, 1 Jun 2017 02:58:26 +0000 (22:58 -0400)
committerCarter Tazio Schonwald <carter.schonwald@gmail.com>
Thu, 1 Jun 2017 02:58:26 +0000 (22:58 -0400)
random.cabal
readme.md [new file with mode: 0644]
src/Data/Distribution/FloatingInterval.hs
src/Data/Distribution/Integers.hs
src/Data/Distribution/Normal.hs

index 678e561..027cbf4 100644 (file)
@@ -43,7 +43,12 @@ build-type:          Simple
 
 -- Extra files to be distributed with the package, such as examples or a
 -- README.
-extra-source-files:  CHANGELOG.md
+extra-source-files:
+    CHANGELOG.md
+    .travis.yml
+    readme.md
+
+
 
 -- Constraint on the version of Cabal needed to build this package.
 cabal-version:       >=1.10
@@ -73,6 +78,8 @@ library
                       ,entropy == 0.3.*
                       ,numeric-extras == 0.1.*
                       ,primitive >= 0.6
+                      ,transformers >= 0.2
+                      ,transformers-compat >= 0.3
                   -- entropy will later be folded into random, probably
 
   -- Directories containing source files.
diff --git a/readme.md b/readme.md
new file mode 100644 (file)
index 0000000..e87917c
--- /dev/null
+++ b/readme.md
@@ -0,0 +1,5 @@
+https://travis-ci.org/cartazio/random.svg?branch=master
+
+# Random
+
+a random number generation and sampling library for haskell
index b9e8860..62cda75 100644 (file)
@@ -37,6 +37,7 @@ binary32 bias == 127
 binary64 bias == 1023
 -}
 
+
 {- |  sampleUnitIntervalDoubleM uniformly samples over the [+0,1) interval  of
   representable floating point numbers
 
@@ -78,7 +79,7 @@ extracted docs from the original site:
    #include <stdint.h>
 
     (x >> 11) * (1. / (UINT64_C(1) << 53))
-This conversion guarantees that all dyadic rationals of the form k / 253 will be equally likely. Note that this conversion prefers the high bits of x, but you can alternatively use the lowest bits.
+This conversion guarantees that all dyadic rationals of the form k / 2^53 will be equally likely. Note that this conversion prefers the high bits of x, but you can alternatively use the lowest bits.
 
 An alternative, faster multiplication-free operation is
 
index a004950..e0d4959 100644 (file)
@@ -11,7 +11,9 @@ assumes mod 2^n wrap around
 -}
 
 {- | @'sampleWordRange' wordSampler (lo,hi)@ will return a uniform sample from the closed interval
-@[min lo hi, max lo hi]@ -}
+@[min lo hi, max lo hi]@
+maybe should throw error instead, not sure :)
+-}
 sampleWordRange :: Monad m => m Word64 -> (Word64,Word64) -> m Word64
 sampleWordRange mword (lo,hi)
     | lo == hi = return lo
index afdb433..4c25e38 100644 (file)
@@ -22,8 +22,8 @@ unitNormalPolarMethodM unitSampler boolSampler = getSample
     getSample = do
       x <- unitSampler
       y <- unitSampler
-      sqrtSumSq <- return $ hypot x y
-      straightSum <- return $ x*x + y * y
+      sqrtSumSq   <- return $ hypot x y
+      straightSum <- return $ x*x + y*y
       if straightSum > 1 || straightSum == 0
         --- the usual condition is  x^2 + y^2 > 1, but the same bound holds for the sqrt thereof
         then getSample