[PATCH] D34038: Implement the non-parallel versions of exclusive_scan and transform_exclusive_scan

2017-06-13 Thread Marshall Clow via Phabricator via cfe-commits
mclow.lists accepted this revision. mclow.lists added a comment. This revision is now accepted and ready to land. This was committed as r305136 https://reviews.llvm.org/D34038 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[PATCH] D34038: Implement the non-parallel versions of exclusive_scan and transform_exclusive_scan

2017-06-09 Thread Bryce Adelstein Lelbach via Phabricator via cfe-commits
wash added a comment. The init typedef test looks good to me. This all looks good to go. https://reviews.llvm.org/D34038 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D34038: Implement the non-parallel versions of exclusive_scan and transform_exclusive_scan

2017-06-09 Thread Marshall Clow via Phabricator via cfe-commits
mclow.lists updated this revision to Diff 102100. mclow.lists added a comment. Previous update was br0ken. This is better. :-) Add a test to ensure that the calculations are done using the correct type. https://reviews.llvm.org/D34038 Files: include/numeric

[PATCH] D34038: Implement the non-parallel versions of exclusive_scan and transform_exclusive_scan

2017-06-09 Thread Marshall Clow via Phabricator via cfe-commits
mclow.lists updated this revision to Diff 102097. mclow.lists added a comment. Add extra tests to make sure that the calculations are not done using the source sequence value_type. https://reviews.llvm.org/D34038 Files: include/numeric

[PATCH] D34038: Implement the non-parallel versions of exclusive_scan and transform_exclusive_scan

2017-06-08 Thread Marshall Clow via Phabricator via cfe-commits
mclow.lists updated this revision to Diff 101989. mclow.lists added a comment. Turn the for loops into do-while loops, saving a comparison. https://reviews.llvm.org/D34038 Files: include/numeric test/std/numerics/numeric.ops/exclusive.scan/exclusive_scan_iter_iter_iter.pass.cpp

[PATCH] D34038: Implement the non-parallel versions of exclusive_scan and transform_exclusive_scan

2017-06-08 Thread Marshall Clow via Phabricator via cfe-commits
mclow.lists updated this revision to Diff 101988. mclow.lists added a comment. Added a `_VSTD::`, made some assertions `static_assert`, and addressed Bryce's concerns about doing an init when the input range is empty. https://reviews.llvm.org/D34038 Files: include/numeric

[PATCH] D34038: Implement the non-parallel versions of exclusive_scan and transform_exclusive_scan

2017-06-08 Thread Bryce Adelstein Lelbach via Phabricator via cfe-commits
wash added a comment. This implementation works, but performs unnecessary operations. https://gist.github.com/brycelelbach/907ac3b8a74603cc189897ab789a65a9 The "next" result is calculated in each iteration; this means one unnecessary application of the binary op (the "next" result on the final

[PATCH] D34038: Implement the non-parallel versions of exclusive_scan and transform_exclusive_scan

2017-06-08 Thread Bryce Adelstein Lelbach via Phabricator via cfe-commits
wash added a comment. https://gist.github.com/brycelelbach/137f1e45b737d615134e228ec0c84f3a <- some crude tests I wrote based on slides/notes of mine. https://reviews.llvm.org/D34038 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[PATCH] D34038: Implement the non-parallel versions of exclusive_scan and transform_exclusive_scan

2017-06-08 Thread Bryce Adelstein Lelbach via Phabricator via cfe-commits
wash added inline comments. Comment at: include/numeric:182 +{ + _Tp __saved = __init; + for (; __first != __last; ++__first, (void) ++__result) { If `__first == __last`, this initialization is unnecessary; I'd refactor this so that we check for

[PATCH] D34038: Implement the non-parallel versions of exclusive_scan and transform_exclusive_scan

2017-06-08 Thread Marshall Clow via Phabricator via cfe-commits
mclow.lists created this revision. These are part of C++17. Later, we'll get the parallel versions. https://reviews.llvm.org/D34038 Files: include/numeric test/std/numerics/numeric.ops/exclusive.scan/exclusive_scan_iter_iter_iter.pass.cpp