Skip to content
Open
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
727 commits
Select commit Hold shift + click to select a range
8dc2a1e
include/oneapi/dpl/pstl/algorithm_impl.h - call in parallel source of…
SergeyKopienko Feb 18, 2026
ea10d4b
Merge remote-tracking branch 'origin/dev/skopienko/serial-set_fresh' …
SergeyKopienko Feb 18, 2026
18a10e6
include/oneapi/dpl/pstl/algorithm_impl.h - fix compile error: unused …
SergeyKopienko Feb 18, 2026
e3bf1f9
Apply GitHUB clang format
SergeyKopienko Feb 18, 2026
f83a70a
include/oneapi/dpl/pstl/algorithm_impl.h - fix compile error: unused …
SergeyKopienko Feb 18, 2026
f7578a7
Merge remote-tracking branch 'origin/dev/skopienko/serial-set_fresh' …
SergeyKopienko Feb 18, 2026
cbb3c19
Appply GitHUB clang format
SergeyKopienko Feb 18, 2026
8f3eaf9
Fix spelling check errors
SergeyKopienko Feb 18, 2026
45aac5f
Merge remote-tracking branch 'origin/dev/skopienko/serial-set_fresh' …
SergeyKopienko Feb 18, 2026
c01b5ee
Fix spelling check errors
SergeyKopienko Feb 18, 2026
e71ba93
include/oneapi/dpl/pstl/algorithm_impl.h - fix compile error: .... is…
SergeyKopienko Feb 18, 2026
382b43a
test/general/implementation_details/test_set_op_details.pass.cpp - ch…
SergeyKopienko Feb 18, 2026
c180746
include/oneapi/dpl/pstl/algorithm_impl.h - fix compile error: .... is…
SergeyKopienko Feb 18, 2026
8856899
include/oneapi/dpl/pstl/algorithm_impl.h - fix compile error: .... is…
SergeyKopienko Feb 18, 2026
223d227
include/oneapi/dpl/pstl/algorithm_ranges_impl.h - fix compile error
SergeyKopienko Feb 18, 2026
5f78ef2
test/general/implementation_details/test_set_op_details.pass.cpp - ch…
SergeyKopienko Feb 18, 2026
30b8cbc
include/oneapi/dpl/pstl/algorithm_impl.h - fix compile error: .... is…
SergeyKopienko Feb 18, 2026
1e9197d
include/oneapi/dpl/pstl/algorithm_ranges_impl.h - fix compile error
SergeyKopienko Feb 18, 2026
07f6965
Merge branch 'dev/skopienko/serial-set_fresh' into dev/skopienko/seri…
SergeyKopienko Feb 18, 2026
e85a2ba
test/parallel_api/ranges/std_ranges_unique_copy.pass.cpp - fix compil…
SergeyKopienko Feb 18, 2026
7a24645
test/parallel_api/ranges/std_ranges_unique_copy.pass.cpp - fix compil…
SergeyKopienko Feb 18, 2026
534119f
Merge remote-tracking branch 'origin/dev/skopienko/serial-set_fresh' …
SergeyKopienko Feb 18, 2026
3b33f40
test/support/utils.h - fix review comment: This function overload cre…
SergeyKopienko Feb 18, 2026
f370503
test/support/utils.h - fix review comment
SergeyKopienko Feb 18, 2026
8257473
Update test/support/utils.h
SergeyKopienko Feb 18, 2026
3d56790
Merge remote-tracking branch 'origin/dev/skopienko/serial-set_fresh_t…
SergeyKopienko Feb 18, 2026
374c161
include/oneapi/dpl/pstl/utils_ranges.h - fix review comment
SergeyKopienko Feb 18, 2026
fdf5019
include/oneapi/dpl/pstl/utils_ranges.h - fix review comment
SergeyKopienko Feb 18, 2026
2b3a426
Merge remote-tracking branch 'origin/dev/skopienko/serial-set_fresh' …
SergeyKopienko Feb 18, 2026
e34b9d7
include/oneapi/dpl/pstl/algorithm_ranges_impl.h - fix review comment
SergeyKopienko Feb 18, 2026
41e40f1
test/general/implementation_details/test_set_op_details.pass.cpp - fi…
SergeyKopienko Feb 18, 2026
0d42b0a
Update test/support/utils.h
SergeyKopienko Feb 19, 2026
016a822
Update include/oneapi/dpl/pstl/parallel_backend_utils.h
SergeyKopienko Feb 19, 2026
ed46f26
test/parallel_api/ranges/std_ranges_test.h - fix review comment: fix …
SergeyKopienko Feb 19, 2026
dd8ee73
include/oneapi/dpl/pstl/parallel_backend_utils.h - fix self review co…
SergeyKopienko Feb 19, 2026
fec4c95
include/oneapi/dpl/pstl/algorithm_impl.h - remove extra changes in st…
SergeyKopienko Feb 19, 2026
6ba6e9c
Fix error in works with projection and compare
SergeyKopienko Feb 19, 2026
dfa4c69
test/parallel_api/ranges/std_ranges_test.h - fix review comment: fix …
SergeyKopienko Feb 19, 2026
74290d1
Update include/oneapi/dpl/pstl/parallel_backend_utils.h
SergeyKopienko Feb 19, 2026
90348c3
Update test/support/utils.h
SergeyKopienko Feb 19, 2026
d40f6e2
test/general/implementation_details/test_set_op_details.pass.cpp - fi…
SergeyKopienko Feb 18, 2026
f0ce29b
include/oneapi/dpl/pstl/algorithm_ranges_impl.h - fix review comment
SergeyKopienko Feb 18, 2026
a2b7bf4
include/oneapi/dpl/pstl/parallel_backend_utils.h - fix self review co…
SergeyKopienko Feb 19, 2026
5c192a8
include/oneapi/dpl/pstl/algorithm_impl.h - remove extra changes in st…
SergeyKopienko Feb 19, 2026
7f8b006
Fix error in works with projection and compare
SergeyKopienko Feb 19, 2026
6a76729
Merge branch 'dev/skopienko/serial-set_fresh' into dev/skopienko/seri…
SergeyKopienko Feb 19, 2026
8880161
Define bool __val1_lt_val2, __val2_lt_val1 outside of loops
SergeyKopienko Feb 19, 2026
d8fb41b
include/oneapi/dpl/pstl/algorithm_impl.h - fix review comment in __pa…
SergeyKopienko Feb 19, 2026
5c3c795
include/oneapi/dpl/pstl/algorithm_impl.h - fix review comment in __pa…
SergeyKopienko Feb 19, 2026
d833ade
Merge branch 'dev/skopienko/serial-set_fresh' into dev/skopienko/seri…
SergeyKopienko Feb 19, 2026
ce0f17c
Remove extra local variables in main loops of set operations
SergeyKopienko Feb 19, 2026
6ef3b1e
Merge remote-tracking branch 'origin/dev/skopienko/serial-set_fresh' …
SergeyKopienko Feb 19, 2026
ecf4bd2
Merge branch 'main' into dev/skopienko/serial-set_fresh
SergeyKopienko Feb 19, 2026
001f6c2
Merge remote-tracking branch 'origin/dev/skopienko/serial-set_fresh' …
SergeyKopienko Feb 19, 2026
9ac6085
Restore set operations on if - else if - else
SergeyKopienko Feb 19, 2026
90c02ff
Merge remote-tracking branch 'origin/dev/skopienko/serial-set_fresh' …
SergeyKopienko Feb 19, 2026
e5c73e1
Fix review comments
SergeyKopienko Feb 19, 2026
4deb1e2
test/parallel_api/ranges/std_ranges_test.h - fix review comment
SergeyKopienko Feb 19, 2026
bafe04a
include/oneapi/dpl/pstl/parallel_backend_utils.h - fix spelling check…
SergeyKopienko Feb 19, 2026
8840c31
Apply GitHUB clang format
SergeyKopienko Feb 19, 2026
778f910
Merge branch 'main' into dev/skopienko/serial-set_fresh
SergeyKopienko Feb 20, 2026
21af06e
Merge remote-tracking branch 'origin/dev/skopienko/serial-set_fresh' …
SergeyKopienko Feb 20, 2026
5a09679
Re-design calculation of finish positions for the source data sets
SergeyKopienko Feb 20, 2026
87c8992
Merge branch 'dev/skopienko/serial-set_fresh' into dev/skopienko/seri…
SergeyKopienko Feb 23, 2026
878eab9
include/oneapi/dpl/pstl/algorithm_impl.h - redesign class _SetRangeIm…
SergeyKopienko Feb 23, 2026
fed54f8
include/oneapi/dpl/pstl/algorithm_impl.h - fix compile error
SergeyKopienko Feb 23, 2026
6a1e08d
Apply GitHUB clang format
SergeyKopienko Feb 23, 2026
a7b67a1
include/oneapi/dpl/pstl/algorithm_impl.h - fix compile error
SergeyKopienko Feb 23, 2026
f969f89
Merge branch 'dev/skopienko/serial-set_fresh' into dev/skopienko/seri…
SergeyKopienko Feb 23, 2026
a0e178c
include/oneapi/dpl/pstl/parallel_backend_utils.h - introduce _union_c…
SergeyKopienko Feb 23, 2026
45e5bab
Introduce statistic about copied data count from the first and second…
SergeyKopienko Feb 23, 2026
19b8183
include/oneapi/dpl/pstl/algorithm_impl.h - fix compile error: unused …
SergeyKopienko Feb 23, 2026
4225ac0
Apply GitHUB clang format
SergeyKopienko Feb 23, 2026
8ac2092
include/oneapi/dpl/pstl/algorithm_impl.h - fix compile error: : no ma…
SergeyKopienko Feb 23, 2026
b7acd30
include/oneapi/dpl/pstl/algorithm_impl.h - fix compile error: : lambd…
SergeyKopienko Feb 23, 2026
a0b5a8b
include/oneapi/dpl/pstl/algorithm_impl.h - fix compile error: : lambd…
SergeyKopienko Feb 23, 2026
c019987
include/oneapi/dpl/pstl/algorithm_impl.h - fix compile error: unused …
SergeyKopienko Feb 23, 2026
56eaf96
include/oneapi/dpl/pstl/algorithm_impl.h - fix compile error: : no ma…
SergeyKopienko Feb 23, 2026
672de8e
include/oneapi/dpl/pstl/algorithm_impl.h - fix compile error: : lambd…
SergeyKopienko Feb 23, 2026
d58786c
include/oneapi/dpl/pstl/algorithm_impl.h - fix compile error: : lambd…
SergeyKopienko Feb 23, 2026
ffd73fe
include/oneapi/dpl/pstl/algorithm_impl.h - fix compile error: variabl…
SergeyKopienko Feb 23, 2026
cff9d7a
test/parallel_api/ranges/std_ranges_set_symmetric_difference.pass.cpp…
SergeyKopienko Feb 24, 2026
5e695b0
Fix incorrect logic
SergeyKopienko Feb 24, 2026
ef687e4
test/general/implementation_details/test_set_op_details.pass.cpp - re…
SergeyKopienko Feb 24, 2026
4971e59
Restore normal work and test mode by define states
SergeyKopienko Feb 24, 2026
1aac1d8
test/support/utils.h - restore exit on error
SergeyKopienko Feb 24, 2026
b4a3705
Merge branch 'dev/skopienko/serial-set_fresh' into dev/skopienko/seri…
SergeyKopienko Feb 24, 2026
9541262
include/oneapi/dpl/pstl/algorithm_impl.h - restore __is_set_algo_cuto…
SergeyKopienko Feb 24, 2026
f6e7fce
Merge remote-tracking branch 'origin/dev/skopienko/serial-set_fresh' …
SergeyKopienko Feb 24, 2026
1957d44
Apply GitHUB clang format
SergeyKopienko Feb 24, 2026
3f5a969
Restore old names of enum __parallel_set_op_mask values
SergeyKopienko Feb 24, 2026
5e3197c
Merge remote-tracking branch 'origin/dev/skopienko/serial-set_fresh' …
SergeyKopienko Feb 24, 2026
0fe713c
test/general/implementation_details/test_set_op_details.pass.cpp - in…
SergeyKopienko Feb 24, 2026
8d9c23e
include/oneapi/dpl/pstl/parallel_backend_utils.h - declare __set_iter…
SergeyKopienko Feb 24, 2026
9ca73f2
Merge remote-tracking branch 'origin/dev/skopienko/serial-set_fresh' …
SergeyKopienko Feb 24, 2026
3ace1d4
Merge branch 'main' into dev/skopienko/serial-set_fresh
SergeyKopienko Feb 25, 2026
90d9837
test/CMakeLists.txt - add enable_testing() call
SergeyKopienko Feb 25, 2026
9dc5730
include/oneapi/dpl/pstl/algorithm_impl.h - avoid evaluation of reache…
SergeyKopienko Feb 25, 2026
0c78288
Merge branch 'dev/skopienko/serial-set_fresh' into dev/skopienko/seri…
SergeyKopienko Feb 25, 2026
18ebf4e
Apply GitHUB clang format
SergeyKopienko Feb 25, 2026
b0a1305
include/oneapi/dpl/pstl/algorithm_impl.h - fix spelling check error i…
SergeyKopienko Feb 25, 2026
707e136
include/oneapi/dpl/pstl/algorithm_impl.h - remove copy data/mask from…
SergeyKopienko Feb 25, 2026
985978e
Merge branch 'dev/skopienko/serial-set_fresh' into dev/skopienko/seri…
SergeyKopienko Feb 25, 2026
4b7ab2c
include/oneapi/dpl/pstl/algorithm_impl.h - fix compile error
SergeyKopienko Feb 25, 2026
6923da4
Revert "include/oneapi/dpl/pstl/algorithm_impl.h - remove copy data/m…
SergeyKopienko Feb 25, 2026
24132b0
Merge remote-tracking branch 'origin/dev/skopienko/serial-set_fresh' …
SergeyKopienko Feb 25, 2026
3fc10d6
include/oneapi/dpl/pstl/parallel_backend_utils.h - simplify __set_ite…
SergeyKopienko Feb 25, 2026
96bfbaf
Merge branch 'dev/skopienko/serial-set_fresh' into dev/skopienko/seri…
SergeyKopienko Feb 25, 2026
f823f3d
include/oneapi/dpl/pstl/parallel_backend_utils.h - declare __set_iter…
SergeyKopienko Feb 25, 2026
88987e8
Merge remote-tracking branch 'origin/dev/skopienko/serial-set_fresh' …
SergeyKopienko Feb 25, 2026
dd733d5
Apply GitHUB clang format
SergeyKopienko Feb 25, 2026
f8de6d5
Remove info about copied data items from the first and second data se…
SergeyKopienko Feb 25, 2026
62efbbf
Merge remote-tracking branch 'origin/dev/skopienko/serial-set_fresh' …
SergeyKopienko Feb 25, 2026
3892c67
Merge branch 'main' into dev/skopienko/serial-set_fresh
SergeyKopienko Feb 25, 2026
719733d
Merge remote-tracking branch 'origin/dev/skopienko/serial-set_fresh' …
SergeyKopienko Feb 25, 2026
ded1ee1
Apply GitHUB clang format
SergeyKopienko Feb 25, 2026
4be88f8
Introduce the amount of generated mask data items
SergeyKopienko Feb 26, 2026
7f6b952
@@@
SergeyKopienko Feb 26, 2026
f8cf0d3
Change order of __set_union_construct() and etc. functions
SergeyKopienko Feb 26, 2026
8e53989
@@@ ok
SergeyKopienko Feb 26, 2026
1ac07c4
Remove extra __mask_buffers usages
SergeyKopienko Feb 26, 2026
f7ecf28
Remove extra __mask_buffers usages
SergeyKopienko Feb 26, 2026
2416c5b
include/oneapi/dpl/pstl/algorithm_impl.h - remove temporary windowed …
SergeyKopienko Feb 26, 2026
0c3296c
include/oneapi/dpl/pstl/algorithm_impl.h - remove struct __mask_buffers
SergeyKopienko Feb 26, 2026
3e146b7
Declare copy operation as template parameter in __set_union_construct…
SergeyKopienko Feb 26, 2026
a9036ff
include/oneapi/dpl/pstl/algorithm_impl.h - extend __on_output_pos_rea…
SergeyKopienko Feb 26, 2026
1524055
@@@ ok
SergeyKopienko Feb 27, 2026
e214e6d
include/oneapi/dpl/pstl/algorithm_impl.h - remove mask data part _Mas…
SergeyKopienko Feb 27, 2026
21f44b9
include/oneapi/dpl/pstl/algorithm_impl.h - restore EVAL_REACHED_POS_I…
SergeyKopienko Feb 27, 2026
dad7310
include/oneapi/dpl/pstl/algorithm_impl.h - restore the logic about ca…
SergeyKopienko Feb 27, 2026
8d462fa
include/oneapi/dpl/pstl/algorithm_impl.h - restore __is_set_algo_cuto…
SergeyKopienko Feb 27, 2026
f7bbc02
Remove the mask_count last fiend from the return value of __set_union…
SergeyKopienko Feb 27, 2026
8b4d21d
Merge branch 'dev/skopienko/serial-set_fresh_mem_opt' into dev/skopie…
SergeyKopienko Feb 27, 2026
d0ecd7f
Merge remote-tracking branch 'origin/dev/skopienko/serial-set_fresh' …
SergeyKopienko Feb 27, 2026
3fa8bcd
Remove debug code
SergeyKopienko Feb 27, 2026
4a61c02
include/oneapi/dpl/pstl/algorithm_impl.h - fix compile errors
SergeyKopienko Feb 27, 2026
5c8b243
Remove unused variable
SergeyKopienko Feb 27, 2026
83a4935
Remove unused variable
SergeyKopienko Feb 27, 2026
ce03f28
Remove unused variable
SergeyKopienko Feb 27, 2026
bb40919
Remove unused variable
SergeyKopienko Feb 27, 2026
31ce711
Remove unused variable
SergeyKopienko Feb 27, 2026
0f19042
Remove unused variable
SergeyKopienko Feb 27, 2026
2afd2c3
Remove unused variable
SergeyKopienko Feb 27, 2026
19efb71
Remove extra argument from test_range_algo::operator() calls
SergeyKopienko Mar 2, 2026
0117658
include/oneapi/dpl/pstl/algorithm_impl.h - fix compile error : unused…
SergeyKopienko Mar 2, 2026
559e2f6
include/oneapi/dpl/pstl/algorithm_impl.h - fix compile error : unused…
SergeyKopienko Mar 2, 2026
7429b57
include/oneapi/dpl/pstl/algorithm_ranges_impl.h - fix compile error :…
SergeyKopienko Mar 2, 2026
f0eea9b
include/oneapi/dpl/pstl/algorithm_ranges_impl.h - fix compile error :…
SergeyKopienko Mar 2, 2026
12a5508
fix compile error : unused type alias '_RandomAccessIterator1', '_Ran…
SergeyKopienko Mar 2, 2026
c73bda0
Merge branch 'main' into dev/skopienko/serial-set_fresh
SergeyKopienko Mar 2, 2026
1d5423a
Merge remote-tracking branch 'origin/dev/skopienko/serial-set_fresh' …
SergeyKopienko Mar 2, 2026
136862e
Apply GitHUB clang format
SergeyKopienko Mar 2, 2026
046d61f
@@@ include/oneapi/dpl/pstl/algorithm_impl.h - avoid compile error in…
SergeyKopienko Mar 2, 2026
3771066
include/oneapi/dpl/pstl/algorithm_impl.h - remove extra comments
SergeyKopienko Mar 2, 2026
c4afe8d
Remove extra argument from test_range_algo::operator() calls
SergeyKopienko Mar 2, 2026
f633f76
test/parallel_api/ranges/std_ranges_test.h - remove extra changes
SergeyKopienko Mar 2, 2026
ca84ba1
include/oneapi/dpl/pstl/parallel_backend_utils.h - fix spelling check…
SergeyKopienko Mar 2, 2026
441be06
test/support/utils.h - fix review comment
SergeyKopienko Mar 2, 2026
6abb2cb
test/support/utils.h - fix review comment
SergeyKopienko Mar 2, 2026
d3ed037
test/parallel_api/ranges/std_ranges_test.h - fix review comment
SergeyKopienko Mar 2, 2026
d159bce
include/oneapi/dpl/pstl/parallel_backend_utils.h - fix error in struc…
SergeyKopienko Mar 2, 2026
1ca64b9
include/oneapi/dpl/pstl/algorithm_ranges_impl.h - fix todo comment
SergeyKopienko Mar 2, 2026
b89352b
include/oneapi/dpl/pstl/algorithm_impl.h - fix error in __is_output_p…
SergeyKopienko Mar 2, 2026
3959282
include/oneapi/dpl/pstl/algorithm_impl.h - remove dummy define from _…
SergeyKopienko Mar 2, 2026
2446657
include/oneapi/dpl/pstl/algorithm_impl.h - remove unused code
SergeyKopienko Mar 2, 2026
0738f8c
include/oneapi/dpl/pstl/parallel_backend_utils.h - remove extra inclu…
SergeyKopienko Mar 2, 2026
e2fa419
include/oneapi/dpl/pstl/algorithm_ranges_impl.h - fix comment in __se…
SergeyKopienko Mar 2, 2026
2aa0229
include/oneapi/dpl/pstl/algorithm_ranges_impl.h - remove duplicated i…
SergeyKopienko Mar 2, 2026
e2387f2
include/oneapi/dpl/pstl/parallel_backend_utils.h - fix review comment…
SergeyKopienko Mar 2, 2026
fffe3d6
include/oneapi/dpl/pstl/utils_ranges.h - fix error in __get_range_bou…
SergeyKopienko Mar 2, 2026
d59d89e
test/general/implementation_details/test_set_op_details.pass.cpp - fi…
SergeyKopienko Mar 2, 2026
d7b169d
test/general/implementation_details/test_set_op_details.pass.cpp - fi…
SergeyKopienko Mar 2, 2026
28f58dc
Fix self review comment: we should have initialized memory for mask b…
SergeyKopienko Mar 2, 2026
7aa80f1
test/general/implementation_details/test_set_op_details.pass.cpp - fi…
SergeyKopienko Mar 2, 2026
cd178ff
include/oneapi/dpl/pstl/algorithm_impl.h - fix spelling check error
SergeyKopienko Mar 2, 2026
55183f7
Using _DataPart to describe source data reached positions and source …
SergeyKopienko Mar 2, 2026
8d56a27
Fix broken tests std_ranges_set_difference.pass and std_ranges_set_un…
SergeyKopienko Mar 2, 2026
43f7769
include/oneapi/dpl/pstl/algorithm_impl.h - remove extra comments + fo…
SergeyKopienko Mar 2, 2026
8074b0d
Apply GitHUB clang format
SergeyKopienko Mar 2, 2026
e159106
Merge branch 'main' into dev/skopienko/serial-set_fresh
SergeyKopienko Mar 2, 2026
5e02fcf
Merge remote-tracking branch 'origin/dev/skopienko/serial-set_fresh' …
SergeyKopienko Mar 2, 2026
e22a60d
test/general/implementation_details/test_set_op_details.pass.cpp - re…
SergeyKopienko Mar 2, 2026
e7b3ce4
test/general/implementation_details/test_set_op_details.pass.cpp - fi…
SergeyKopienko Mar 2, 2026
6d8c8cc
test/support/utils.h - fix review coomment
SergeyKopienko Mar 2, 2026
e7da333
include/oneapi/dpl/pstl/algorithm_impl.h - fix review comment: destro…
SergeyKopienko Mar 3, 2026
d8f17bf
include/oneapi/dpl/pstl/algorithm_ranges_impl.h - fix review comment:…
SergeyKopienko Mar 3, 2026
15ed39e
Fix review comment: fix testing mode resolves for host and hetero pol…
SergeyKopienko Mar 3, 2026
16349a1
test/parallel_api/ranges/std_ranges_test.h - remove debug code
SergeyKopienko Mar 3, 2026
a6c57df
include/oneapi/dpl/pstl/algorithm_impl.h - fix spelling check error
SergeyKopienko Mar 3, 2026
7b3bd7c
include/oneapi/dpl/pstl/parallel_backend_utils.h - fix comment
SergeyKopienko Mar 3, 2026
e52c5ed
include/oneapi/dpl/pstl/algorithm_ranges_impl.h - revert extra changes
SergeyKopienko Mar 3, 2026
fdbbc6d
include/oneapi/dpl/pstl/parallel_backend_utils.h - fix review comment…
SergeyKopienko Mar 3, 2026
e0886e1
test/general/implementation_details/test_set_op_details.pass.cpp - fi…
SergeyKopienko Mar 3, 2026
2c0bad5
test/CMakeLists.txt - revert extra changes
SergeyKopienko Mar 3, 2026
5724028
test/parallel_api/ranges/std_ranges_test.h - revert extra changes
SergeyKopienko Mar 3, 2026
480a395
include/oneapi/dpl/pstl/algorithm_impl.h - rename struct _SourceProce…
SergeyKopienko Mar 3, 2026
672a096
test/general/implementation_details/test_set_op_details.pass.cpp - fi…
SergeyKopienko Mar 2, 2026
b23adb3
test/general/implementation_details/test_set_op_details.pass.cpp - fi…
SergeyKopienko Mar 2, 2026
424f361
test/support/utils.h - fix review coomment
SergeyKopienko Mar 2, 2026
c295f5b
include/oneapi/dpl/pstl/algorithm_impl.h - fix review comment: destro…
SergeyKopienko Mar 3, 2026
1cd6d0f
include/oneapi/dpl/pstl/algorithm_ranges_impl.h - fix review comment:…
SergeyKopienko Mar 3, 2026
0fe4791
Fix review comment: fix testing mode resolves for host and hetero pol…
SergeyKopienko Mar 3, 2026
8bdd5e6
test/parallel_api/ranges/std_ranges_test.h - remove debug code
SergeyKopienko Mar 3, 2026
b276e9f
include/oneapi/dpl/pstl/algorithm_impl.h - fix spelling check error
SergeyKopienko Mar 3, 2026
36f7cc9
include/oneapi/dpl/pstl/parallel_backend_utils.h - fix comment
SergeyKopienko Mar 3, 2026
560abf1
include/oneapi/dpl/pstl/algorithm_ranges_impl.h - revert extra changes
SergeyKopienko Mar 3, 2026
5a595bc
include/oneapi/dpl/pstl/parallel_backend_utils.h - fix review comment…
SergeyKopienko Mar 3, 2026
077669b
test/general/implementation_details/test_set_op_details.pass.cpp - fi…
SergeyKopienko Mar 3, 2026
69b6d58
test/CMakeLists.txt - revert extra changes
SergeyKopienko Mar 3, 2026
b09ae90
test/parallel_api/ranges/std_ranges_test.h - revert extra changes
SergeyKopienko Mar 3, 2026
bc2614b
Remove _PSTL_LIBCPP_RANGE_SET_BROKEN broken tests macro
SergeyKopienko Mar 3, 2026
fc75d2b
Merge remote-tracking branch 'origin/dev/skopienko/serial-set_fresh' …
SergeyKopienko Mar 3, 2026
dce41fd
include/oneapi/dpl/pstl/algorithm_impl.h - fix self review comment: r…
SergeyKopienko Mar 3, 2026
0b36f3c
Merge branch 'main' into dev/skopienko/serial-set_fresh_to_dev
SergeyKopienko Mar 5, 2026
59a4b49
include/oneapi/dpl/pstl/parallel_backend_utils.h - combine two struct…
SergeyKopienko Mar 5, 2026
b8ad11c
Rename struct _NullIterator to struct _SetOpDiscardIterator
SergeyKopienko Mar 5, 2026
9e906d4
include/oneapi/dpl/pstl/algorithm_impl.h - remove extra local variabl…
SergeyKopienko Mar 5, 2026
780f6a7
include/oneapi/dpl/pstl/algorithm_impl.h - renames: struct _SourceFin…
SergeyKopienko Mar 5, 2026
92cdf1c
include/oneapi/dpl/pstl/algorithm_impl.h - rename struct _ScanPred ->…
SergeyKopienko Mar 5, 2026
2e78a60
include/oneapi/dpl/pstl/algorithm_impl.h - rename struct _ParallelSet…
SergeyKopienko Mar 5, 2026
c76bfc9
include/oneapi/dpl/pstl/algorithm_impl.h - rename struct _SetRangeCom…
SergeyKopienko Mar 5, 2026
067a9a9
include/oneapi/dpl/pstl/algorithm_impl.h - extract struct _ParallelSe…
SergeyKopienko Mar 5, 2026
2986ea7
include/oneapi/dpl/pstl/algorithm_impl.h - refactoring of __parallel_…
SergeyKopienko Mar 5, 2026
0d9d678
include/oneapi/dpl/pstl/algorithm_impl.h - avoid auto in struct _Para…
SergeyKopienko Mar 5, 2026
1c473c8
include/oneapi/dpl/pstl/algorithm_impl.h - avoid auto in __parallel_s…
SergeyKopienko Mar 5, 2026
40689b2
include/oneapi/dpl/pstl/algorithm_impl.h - avoid auto in __pattern_se…
SergeyKopienko Mar 5, 2026
3dd092d
include/oneapi/dpl/pstl/algorithm_impl.h - avoid auto in __pattern_se…
SergeyKopienko Mar 5, 2026
5766420
include/oneapi/dpl/pstl/algorithm_impl.h - avoid auto in __pattern_se…
SergeyKopienko Mar 5, 2026
7937a33
include/oneapi/dpl/pstl/algorithm_impl.h - avoid auto in __pattern_se…
SergeyKopienko Mar 5, 2026
db9fa93
include/oneapi/dpl/pstl/algorithm_impl.h - renames struct _SourceData…
SergeyKopienko Mar 5, 2026
3a9b3f7
include/oneapi/dpl/pstl/algorithm_impl.h - rename struct _SetRangeImp…
SergeyKopienko Mar 5, 2026
133dae0
include/oneapi/dpl/pstl/algorithm_impl.h - rename struct _SetOpReache…
SergeyKopienko Mar 5, 2026
b59fc79
include/oneapi/dpl/pstl/algorithm_impl.h - fix spelling check errors
SergeyKopienko Mar 5, 2026
b83daa3
test/parallel_api/ranges/std_ranges_set_difference.pass.cpp - introdu…
SergeyKopienko Mar 6, 2026
ac17661
test/parallel_api/ranges/std_ranges_set_intersection.pass.cpp - intro…
SergeyKopienko Mar 6, 2026
904caa8
test/parallel_api/ranges/std_ranges_test.h - remove debug code
SergeyKopienko Mar 6, 2026
8491bca
include/oneapi/dpl/pstl/parallel_backend_utils.h - fix compile error
SergeyKopienko Mar 6, 2026
d306a15
@@@ Implement new logic of source data stop positions evaluation for …
SergeyKopienko Mar 6, 2026
ef84ee2
Apply GitHUB clang format
SergeyKopienko Mar 6, 2026
bf1086d
include/oneapi/dpl/pstl/hetero/algorithm_ranges_impl_hetero.h - fix c…
SergeyKopienko Mar 9, 2026
d5ed5ef
Merge branch 'main' into dev/skopienko/serial-set_fresh_to_dev
SergeyKopienko Mar 11, 2026
ea0f687
Merge branch 'main' into dev/skopienko/serial-set_fresh_to_dev
SergeyKopienko Mar 13, 2026
5841a7b
Merge commit 'fa4508665e3adad4feac3d7988b729bafdf36b5f' into dev/skop…
SergeyKopienko Mar 18, 2026
a04d490
@@@ test/support/test_config.h - fix CR/LF state
SergeyKopienko Mar 18, 2026
6622179
@@@ test/parallel_api/ranges/std_ranges_test.h - fix tab/space state
SergeyKopienko Mar 18, 2026
f3b45b2
Merge branch 'main' into dev/skopienko/serial-set_fresh_to_dev
SergeyKopienko Mar 18, 2026
1029119
Merge branch 'main' into dev/skopienko/serial-set_fresh_to_dev
SergeyKopienko Mar 20, 2026
954b852
include/oneapi/dpl/pstl/hetero/algorithm_ranges_impl_hetero.h - remov…
SergeyKopienko Mar 20, 2026
ee66717
Merge branch 'main' into dev/skopienko/serial-set_fresh_to_dev
SergeyKopienko Mar 24, 2026
1e7ef7b
Merge branch 'main' into dev/skopienko/serial-set_fresh_to_dev
SergeyKopienko Mar 25, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
736 changes: 556 additions & 180 deletions include/oneapi/dpl/pstl/algorithm_impl.h

Large diffs are not rendered by default.

715 changes: 577 additions & 138 deletions include/oneapi/dpl/pstl/algorithm_ranges_impl.h

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion include/oneapi/dpl/pstl/parallel_backend_tbb.h
Original file line number Diff line number Diff line change
Expand Up @@ -478,7 +478,7 @@ class __func_task : public __task
execute()
{
return _M_func(this);
};
}

public:
template <typename _Fn>
Expand Down
218 changes: 187 additions & 31 deletions include/oneapi/dpl/pstl/parallel_backend_utils.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
#include <utility>
#include <vector>
#include <cassert>
#include <cstdint> // for std::uint8_t (used, e.g., as underlying type of __parallel_set_op_mask)
#include "utils.h"
#include "memory_fwd.h"
#include "functional_impl.h" // for oneapi::dpl::identity, std::invoke
Expand Down Expand Up @@ -217,48 +218,135 @@ struct __serial_move_merge
}
};

template <typename _ForwardIterator1, typename _ForwardIterator2, typename _OutputIterator,
template <bool _Bounded>
struct _MaskSize;

template <>
struct _MaskSize<false>
{
template <typename _DifferenceType1, typename _DifferenceType2>
std::common_type_t<_DifferenceType1, _DifferenceType2>
operator()(_DifferenceType1, _DifferenceType2) const
{
// For unbounded set operations, the maximum possible mask size is always zero
return 0;
}
};

template <>
struct _MaskSize<true>
{
template <typename _DifferenceType1, typename _DifferenceType2>
std::common_type_t<_DifferenceType1, _DifferenceType2>
operator()(_DifferenceType1 __n, _DifferenceType2 __m) const
{
using _DifferenceType = std::common_type_t<_DifferenceType1, _DifferenceType2>;

// For bounded set operations, the maximum possible mask size is the sum of sizes of both input ranges
return _DifferenceType{__n} + _DifferenceType{__m};
}
};

enum class __parallel_set_op_mask : std::uint8_t
{
eData1 = 0x10, // mask for first input data item usage
eData2 = 0x01, // mask for second input data item usage
eBoth = eData1 | eData2 // mask for both input data items usage
};

inline std::nullptr_t
__set_iterator_mask(std::nullptr_t, __parallel_set_op_mask)
{
return nullptr;
}

inline __parallel_set_op_mask*
__set_iterator_mask(__parallel_set_op_mask* __mask, __parallel_set_op_mask __state)
{
*__mask = __state;
return ++__mask;
}

template <typename _Size>
std::nullptr_t
__set_iterator_mask_n(std::nullptr_t, __parallel_set_op_mask, _Size)
{
return nullptr;
}

template <typename _Size>
__parallel_set_op_mask*
__set_iterator_mask_n(__parallel_set_op_mask* __mask, __parallel_set_op_mask __state, _Size __count)
{
std::fill_n(__mask, __count, __state);
return __mask + __count;
}

template <typename _ForwardIterator1, typename _ForwardIterator2, typename _OutputIterator, typename _MaskIterator,
typename _CopyConstructRange, typename _Compare, typename _Proj1, typename _Proj2>
_OutputIterator
std::tuple<_OutputIterator, _MaskIterator>
__set_union_construct(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2,
_ForwardIterator2 __last2, _OutputIterator __result, _CopyConstructRange __cc_range,
_Compare __comp, _Proj1 __proj1, _Proj2 __proj2)
_ForwardIterator2 __last2, _OutputIterator __result, _MaskIterator __mask,
_CopyConstructRange __cc_range, _Compare __comp, _Proj1 __proj1, _Proj2 __proj2)
{
using _Tp = typename ::std::iterator_traits<_OutputIterator>::value_type;
assert(__first1 <= __last1);
assert(__first2 <= __last2);

using _Tp = typename std::iterator_traits<_OutputIterator>::value_type;

for (; __first1 != __last1; ++__result)
{
if (__first2 == __last2)
return __cc_range(__first1, __last1, __result);
{
__mask = __set_iterator_mask_n(__mask, __parallel_set_op_mask::eData1, __last1 - __first1);
return {__cc_range(__first1, __last1, __result), __mask};
}

if (std::invoke(__comp, std::invoke(__proj2, *__first2), std::invoke(__proj1, *__first1)))
{
::new (::std::addressof(*__result)) _Tp(*__first2);
new (std::addressof(*__result)) _Tp(*__first2);
++__first2;
__mask = __set_iterator_mask(__mask, __parallel_set_op_mask::eData2);
}
else
{
::new (::std::addressof(*__result)) _Tp(*__first1);
new (std::addressof(*__result)) _Tp(*__first1);
if (!std::invoke(__comp, std::invoke(__proj1, *__first1), std::invoke(__proj2, *__first2)))
{
++__first2;
__mask = __set_iterator_mask(__mask, __parallel_set_op_mask::eBoth);
}
else
{
__mask = __set_iterator_mask(__mask, __parallel_set_op_mask::eData1);
}
++__first1;
}
}
return __cc_range(__first2, __last2, __result);

__mask = __set_iterator_mask_n(__mask, __parallel_set_op_mask::eData2, __last2 - __first2);
return {__cc_range(__first2, __last2, __result), __mask};
}

template <typename _ForwardIterator1, typename _ForwardIterator2, typename _OutputIterator, typename _CopyFunc,
typename _CopyFromFirstSet, typename _Compare, typename _Proj1, typename _Proj2>
_OutputIterator
template <typename _ForwardIterator1, typename _ForwardIterator2, typename _OutputIterator, typename _MaskIterator,
typename _CopyFunc, typename _CopyFromFirstSet, typename _Compare, typename _Proj1, typename _Proj2>
std::tuple<_OutputIterator, _MaskIterator>
__set_intersection_construct(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2,
_ForwardIterator2 __last2, _OutputIterator __result, _CopyFunc _copy, _CopyFromFirstSet,
_Compare __comp, _Proj1 __proj1, _Proj2 __proj2)
_ForwardIterator2 __last2, _OutputIterator __result, _MaskIterator __mask, _CopyFunc _copy,
_CopyFromFirstSet, _Compare __comp, _Proj1 __proj1, _Proj2 __proj2)
{
while (__first1 != __last1 && __first2 != __last2)
{
if (std::invoke(__comp, std::invoke(__proj1, *__first1), std::invoke(__proj2, *__first2)))
{
++__first1;
__mask = __set_iterator_mask(__mask, __parallel_set_op_mask::eData1);
}
else if (std::invoke(__comp, std::invoke(__proj2, *__first2), std::invoke(__proj1, *__first1)))
{
++__first2;
__mask = __set_iterator_mask(__mask, __parallel_set_op_mask::eData2);
}
else
{
if constexpr (_CopyFromFirstSet::value)
Expand All @@ -269,74 +357,102 @@ __set_intersection_construct(_ForwardIterator1 __first1, _ForwardIterator1 __las
++__first1;
++__first2;
++__result;
__mask = __set_iterator_mask(__mask, __parallel_set_op_mask::eBoth);
}
}
return __result;

// This needed to save in mask that we processed all data till the end
__mask = __set_iterator_mask_n(__mask, __parallel_set_op_mask::eData1, __last1 - __first1);
__mask = __set_iterator_mask_n(__mask, __parallel_set_op_mask::eData2, __last2 - __first2);

return {__result, __mask};
}

template <typename _ForwardIterator1, typename _ForwardIterator2, typename _OutputIterator,
template <typename _ForwardIterator1, typename _ForwardIterator2, typename _OutputIterator, typename _MaskIterator,
typename _CopyConstructRange, typename _Compare, typename _Proj1, typename _Proj2>
_OutputIterator
std::tuple<_OutputIterator, _MaskIterator>
__set_difference_construct(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2,
_ForwardIterator2 __last2, _OutputIterator __result, _CopyConstructRange __cc_range,
_Compare __comp, _Proj1 __proj1, _Proj2 __proj2)
_ForwardIterator2 __last2, _OutputIterator __result, _MaskIterator __mask,
_CopyConstructRange __cc_range, _Compare __comp, _Proj1 __proj1, _Proj2 __proj2)
{
using _Tp = typename ::std::iterator_traits<_OutputIterator>::value_type;

for (; __first1 != __last1;)
while (__first1 != __last1)
{
if (__first2 == __last2)
return __cc_range(__first1, __last1, __result);
{
__mask = __set_iterator_mask_n(__mask, __parallel_set_op_mask::eData1, __last1 - __first1);
return {__cc_range(__first1, __last1, __result), __mask};
}

if (std::invoke(__comp, std::invoke(__proj1, *__first1), std::invoke(__proj2, *__first2)))
{
::new (::std::addressof(*__result)) _Tp(*__first1);
new (std::addressof(*__result)) _Tp(*__first1);
++__result;
++__first1;
__mask = __set_iterator_mask(__mask, __parallel_set_op_mask::eData1);
}
else
{
if (!std::invoke(__comp, std::invoke(__proj2, *__first2), std::invoke(__proj1, *__first1)))
{
++__first1;
__mask = __set_iterator_mask(__mask, __parallel_set_op_mask::eBoth);
}
else
{
__mask = __set_iterator_mask(__mask, __parallel_set_op_mask::eData2);
}
++__first2;
}
}
return __result;

return {__result, __mask};
}

template <typename _ForwardIterator1, typename _ForwardIterator2, typename _OutputIterator,
template <typename _ForwardIterator1, typename _ForwardIterator2, typename _OutputIterator, typename _MaskIterator,
typename _CopyConstructRange, typename _Compare, typename _Proj1, typename _Proj2>
_OutputIterator
std::tuple<_OutputIterator, _MaskIterator>
__set_symmetric_difference_construct(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2,
_ForwardIterator2 __last2, _OutputIterator __result,
_ForwardIterator2 __last2, _OutputIterator __result, _MaskIterator __mask,
_CopyConstructRange __cc_range, _Compare __comp, _Proj1 __proj1, _Proj2 __proj2)
{
using _Tp = typename ::std::iterator_traits<_OutputIterator>::value_type;

for (; __first1 != __last1;)
while (__first1 != __last1)
{
if (__first2 == __last2)
return __cc_range(__first1, __last1, __result);
{
__mask = __set_iterator_mask_n(__mask, __parallel_set_op_mask::eData1, __last1 - __first1);
return {__cc_range(__first1, __last1, __result), __mask};
}

if (std::invoke(__comp, std::invoke(__proj1, *__first1), std::invoke(__proj2, *__first2)))
{
::new (::std::addressof(*__result)) _Tp(*__first1);
new (std::addressof(*__result)) _Tp(*__first1);
++__result;
++__first1;
__mask = __set_iterator_mask(__mask, __parallel_set_op_mask::eData1);
}
else
{
if (std::invoke(__comp, std::invoke(__proj2, *__first2), std::invoke(__proj1, *__first1)))
{
::new (::std::addressof(*__result)) _Tp(*__first2);
new (std::addressof(*__result)) _Tp(*__first2);
++__result;
__mask = __set_iterator_mask(__mask, __parallel_set_op_mask::eData2);
}
else
{
++__first1;
__mask = __set_iterator_mask(__mask, __parallel_set_op_mask::eBoth);
}
++__first2;
}
}
return __cc_range(__first2, __last2, __result);

__mask = __set_iterator_mask_n(__mask, __parallel_set_op_mask::eData2, __last2 - __first2);
return {__cc_range(__first2, __last2, __result), __mask};
}

template <template <typename, typename...> typename _Concrete, typename _ValueType, typename... _Args>
Expand Down Expand Up @@ -405,6 +521,46 @@ struct __enumerable_thread_local_storage_base
const std::tuple<_Args...> __args;
};

template <typename _RandomAccessIterator1, typename _RandomAccessIterator2, typename _RandomAccessOutputIterator>
struct __set_operations_result
{
_RandomAccessIterator1 __in1;
_RandomAccessIterator2 __in2;
_RandomAccessOutputIterator __it_out;

// Get reached input1 and output iterators
template <typename TResult>
TResult
__get_reached_in1_out() const
{
return {__in1, __it_out};
}

// Get reached input1, input2 and output iterators
template <typename TResult>
TResult
__get_reached_in1_in2_out() const
{
return {__in1, __in2, __it_out};
}

// Get reached output iterator
_RandomAccessOutputIterator
__get_reached_out() const
{
return __it_out;
}

__set_operations_result<_RandomAccessIterator1, _RandomAccessIterator2, _RandomAccessOutputIterator>
operator+(std::tuple<typename std::iterator_traits<_RandomAccessIterator1>::difference_type,
typename std::iterator_traits<_RandomAccessIterator2>::difference_type,
typename std::iterator_traits<_RandomAccessOutputIterator>::difference_type>
__offsets) const
{
return {__in1 + std::get<0>(__offsets), __in2 + std::get<1>(__offsets), __it_out + std::get<2>(__offsets)};
}
};

} // namespace __utils
} // namespace dpl
} // namespace oneapi
Expand Down
24 changes: 24 additions & 0 deletions include/oneapi/dpl/pstl/utils_ranges.h
Original file line number Diff line number Diff line change
Expand Up @@ -834,6 +834,30 @@ __get_subscription_view(_View&& __view)
}
#endif // _ONEDPL_CPP20_RANGES_PRESENT

// Returns begin and end of the range
template <typename _Range>
auto
__get_range_bounds(_Range&& __rng)
{
const auto __size = oneapi::dpl::__ranges::__size(__rng);

auto __begin = oneapi::dpl::__ranges::__begin(__rng);

return std::make_tuple(__begin, __begin + __size);
}

// Returns begin, end and size of the range
template <typename _Range>
auto
__get_range_bounds_n(_Range&& __rng)
{
const auto __size = oneapi::dpl::__ranges::__size(__rng);

auto __begin = oneapi::dpl::__ranges::__begin(__rng);

return std::make_tuple(__begin, __begin + __size, __size);
}

} // namespace __ranges
} // namespace dpl
} // namespace oneapi
Expand Down
Loading
Loading