on master help sign in
Small tweak
commitbaed7eec035a12578faf1a602e53cc1c0ea3ba79 authorArmando Santos <armandoifsantos@gmail.com> dateSat 8 Feb 2020, 19:22 (7 years ago) parent7bbce48
1 file changed+12−10
app/Benchmarks.hs+12−10
app/Benchmarks.hs+12−10
@@ -104,12 +104,14 @@ normalize3 as l = let s = sum l
104104 probs = map (/ s) l
105105 in zip as probs
106106
107−randomDistF :: forall a b . (CoArbitrary a, Arbitrary b) => Gen (Dist' (a -> b))
107+randomDistF :: forall a b . (CountableDimensions a b, CoArbitrary a, Arbitrary b) => Gen (Dist' (a -> b))
108108randomDistF = do
109− let size = 200
109+ let a = fromInteger (natVal (Proxy :: Proxy (Count a)))
110+ b = fromInteger (natVal (Proxy :: Proxy (Count b)))
111+ size = a * b
110112 l <- vectorOf size (arbitrary :: Gen Prob)
111113 l2 <- vectorOf size (arbitrary :: Gen (a -> b))
112− let ln = normalize3 l2 (map P l)
114+ let !ln = normalize3 l2 (map P l)
113115 return (D' ln)
114116
115117instance CoArbitrary (Natural a b)
@@ -134,11 +136,11 @@ setupEnv = do
134136
135137setupEnv2 = do
136138 m21 <- generate (resize 1 (randomMatrix @(Natural 0 100) @(Natural 0 100) ))
137− m40 <- generate (resize 1 (randomMatrix @(Natural 0 300) @(Either (Natural 0 100) (Natural 0 100) )))
138− dist <- generate (resize 1 (randomDist @(Either (Natural 0 1000) (Natural 0 1000)) ))
139− dist2 <- generate (resize 1 (randomMatrix @(Natural 0 1000) @(Natural 0 1000) ))
140− distList1 <- generate (resize 1 (randomDist2 @(Either (Natural 0 1000) (Natural 0 1000))))
141− distList2 <- generate (resize 1 (randomDistF @(Natural 0 1000) @(Natural 0 1000)))
139+ m40 <- generate (resize 1 (randomMatrix @(Natural 0 100) @(Either (Natural 0 100) (Natural 0 100) )))
140+ dist <- generate (resize 1 (randomDist @(Either (Natural 0 100) (Natural 0 100)) ))
141+ dist2 <- generate (resize 1 (randomMatrix @(Natural 0 100) @(Natural 0 100) ))
142+ distList1 <- generate (resize 1 (randomDist2 @(Either (Natural 0 100) (Natural 0 100))))
143+ distList2 <- generate (resize 1 (randomDistF @(Natural 0 100) @(Natural 0 100)))
142144 return (m21, m40, dist, dist2, distList1, distList2)
143145
144146benchmark :: IO ()
@@ -157,12 +159,12 @@ benchmark = defaultMain [
157159 , bench "NF - 200x200" $ nf (comp m31) m32
158160 ] ],
159161 env setupEnv2 $ \ ~(m21, m40, dist, dist2, dl1, dl2) -> bgroup "Matrix vs List - `select`" [
160− bgroup "Distribution" [
162+ bgroup "Distribution `select` - 100+100 / 100x100" [
161163 bench "List Distribution - Applicative version" $ nf (select dl1) dl2
162164 , bench "Matrix Distribution - Applicative version" $ nf (selectD2 dist) dist2
163165 , bench "Matrix Distribution - Selective version" $ nf (selectD dist) dist2
164166 ],
165− bgroup "Matrix `select`" [
167+ bgroup "Matrix `select` - 100x(100+100) / 100x100" [
166168 bench "Applicative version" $ nf (selectM2 m40) m21
167169 , bench "Selective version" $ nf (selectM m40) m21
168170 ] ] ]