@@ -186,13 +186,22 @@ o_1_space_concat value =
186 , benchIOSrc1
186 , benchIOSrc1
187 "concatMapWithWSerial (sqrtVal of sqrtVal)"
187 "concatMapWithWSerial (sqrtVal of sqrtVal)"
188 (concatStreamsWith wSerial sqrtVal sqrtVal)
188 (concatStreamsWith wSerial sqrtVal sqrtVal)
194+ sqrtVal = round $ sqrt (fromIntegral value :: Double)
196+o_n_space_concat :: Int -> [Benchmark]
197+o_n_space_concat value =
198+ [ bgroup "concatMapWith"
189 -- concatMapWith using StreamD versions of interleave operations are
200 -- concatMapWith using StreamD versions of interleave operations are
190 -- all quadratic, we just measure the sqrtVal benchmark for comparison.
201 -- all quadratic, we just measure the sqrtVal benchmark for comparison.
192− , benchIOSrc1
202+ benchIOSrc1
193 "concatMapWithInterleave (n of 1)"
203 "concatMapWithInterleave (n of 1)"
194 (concatStreamsWith Internal.interleave value 1)
204 (concatStreamsWith Internal.interleave value 1)
196 , benchIOSrc1
205 , benchIOSrc1
197 "concatMapWithInterleave (sqrtVal of sqrtVal)"
206 "concatMapWithInterleave (sqrtVal of sqrtVal)"
198 (concatStreamsWith Internal.interleave sqrtVal sqrtVal)
207 (concatStreamsWith Internal.interleave sqrtVal sqrtVal)
@@ -353,5 +362,6 @@ main = runWithCLIOpts defaultStreamSize allBenchmarks
353 , o_1_space_outerProduct size
362 , o_1_space_outerProduct size
355 , bgroup (o_n_heap_prefix moduleName) (o_n_heap_concat size)
364 , bgroup (o_n_heap_prefix moduleName) (o_n_heap_concat size)
356− , bgroup (o_n_space_prefix moduleName) (o_n_space_outerProduct size)
365+ , bgroup (o_n_space_prefix moduleName) $
366+ o_n_space_outerProduct size ++ o_n_space_concat size