@@ -186,13 +186,22 @@ o_1_space_concat value =
186186 , benchIOSrc1
187187 "concatMapWithWSerial (sqrtVal of sqrtVal)"
188188 (concatStreamsWith wSerial sqrtVal sqrtVal)
189+ ]
190+ ]
191+
192+ where
193+
194+ sqrtVal = round $ sqrt (fromIntegral value :: Double)
195+
196+o_n_space_concat :: Int -> [Benchmark]
197+o_n_space_concat value =
198+ [ bgroup "concatMapWith"
199+ [
189200 -- concatMapWith using StreamD versions of interleave operations are
190201 -- all quadratic, we just measure the sqrtVal benchmark for comparison.
191− {-
192− , benchIOSrc1
202+ benchIOSrc1
193203 "concatMapWithInterleave (n of 1)"
194204 (concatStreamsWith Internal.interleave value 1)
195− -}
196205 , benchIOSrc1
197206 "concatMapWithInterleave (sqrtVal of sqrtVal)"
198207 (concatStreamsWith Internal.interleave sqrtVal sqrtVal)
@@ -353,5 +362,6 @@ main = runWithCLIOpts defaultStreamSize allBenchmarks
353362 , o_1_space_outerProduct size
354363 ]
355364 , 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
357367 ]