on master help sign in
Fix filterScan. Revert to using maxBound over streamLen.

Quoting, harendra-kumar, > Since we are adding the numbers in the stream, <= streamLen would terminate > the stream much earlier. We should use maxBound instead. That's because we > compose this with filter again in the mixed benchmarks

commit029e6873e72eb3b77948dbbc85b431fb8bc320ed authorAdithya Kumar <adithya@composewell.com> dateMon 29 Mar 2021, 23:16 (6 years ago) parent876b904
1 file changed+5−6
benchmark/Streamly/Benchmark/Data/Stream/StreamK.hs+5−6
benchmark/Streamly/Benchmark/Data/Stream/StreamK.hs+5−6
@@ -326,10 +326,9 @@ filterDrop streamLen n = composeN n $ S.drop 1 . S.filter (<= streamLen)
326326filterTake :: Monad m => Int -> Int -> Stream m Int -> m ()
327327filterTake streamLen n = composeN n $ S.take streamLen . S.filter (<= streamLen)
328328
329−-- Initially, this used maxBound not streamLen
330329{-# INLINE filterScan #-}
331−filterScan :: Monad m => Int -> Int -> Stream m Int -> m ()
332−filterScan streamLen n = composeN n $ S.scanl' (+) 0 . S.filter (<= streamLen)
330+filterScan :: Monad m => Int -> Stream m Int -> m ()
331+filterScan n = composeN n $ S.scanl' (+) 0 . S.filter (<= maxBound)
333332
334333{-# INLINE filterMap #-}
335334filterMap :: Monad m => Int -> Int -> Stream m Int -> m ()
@@ -643,7 +642,7 @@ o_1_space_mixed streamLen =
643642 , benchFold "take-map" (takeMap streamLen 1) (sourceUnfoldrM streamLen)
644643 , benchFold "filter-drop" (filterDrop streamLen 1) (sourceUnfoldrM streamLen)
645644 , benchFold "filter-take" (filterTake streamLen 1) (sourceUnfoldrM streamLen)
646− , benchFold "filter-scan" (filterScan streamLen 1) (sourceUnfoldrM streamLen)
645+ , benchFold "filter-scan" (filterScan 1) (sourceUnfoldrM streamLen)
647646 , benchFold "filter-map" (filterMap streamLen 1) (sourceUnfoldrM streamLen)
648647 ]
649648
@@ -658,7 +657,7 @@ o_1_space_mixedX2 streamLen =
658657 , benchFold "take-map" (takeMap streamLen 2) (sourceUnfoldrM streamLen)
659658 , benchFold "filter-drop" (filterDrop streamLen 2) (sourceUnfoldrM streamLen)
660659 , benchFold "filter-take" (filterTake streamLen 2) (sourceUnfoldrM streamLen)
661− , benchFold "filter-scan" (filterScan streamLen 2) (sourceUnfoldrM streamLen)
660+ , benchFold "filter-scan" (filterScan 2) (sourceUnfoldrM streamLen)
662661 , benchFold "filter-map" (filterMap streamLen 2) (sourceUnfoldrM streamLen)
663662 ]
664663
@@ -673,7 +672,7 @@ o_1_space_mixedX4 streamLen =
673672 , benchFold "take-map" (takeMap streamLen 4) (sourceUnfoldrM streamLen)
674673 , benchFold "filter-drop" (filterDrop streamLen 4) (sourceUnfoldrM streamLen)
675674 , benchFold "filter-take" (filterTake streamLen 4) (sourceUnfoldrM streamLen)
676− , benchFold "filter-scan" (filterScan streamLen 4) (sourceUnfoldrM streamLen)
675+ , benchFold "filter-scan" (filterScan 4) (sourceUnfoldrM streamLen)
677676 , benchFold "filter-map" (filterMap streamLen 4) (sourceUnfoldrM streamLen)
678677 ]
679678