Ion Gaztañaga
9113249359
Add additional tests for special segment conditions in code
2026-03-23 12:03:34 +01:00
Ion Gaztañaga
06d259dd5c
Put early algorithm termination positions in the middle of the sequence to have a better representation of the average performance of the algorithms
2026-03-22 23:39:16 +01:00
Ion Gaztañaga
37f5e0aacb
Simplify code to make them more readable and concise.
2026-03-22 23:35:08 +01:00
Ion Gaztañaga
90906ed450
Simplify recursive segmented path
2026-03-22 23:34:18 +01:00
Ion Gaztañaga
033f8c2f53
Implement segmented_equal in terms of segmented_mismatch
2026-03-22 23:33:29 +01:00
Ion Gaztañaga
a00f0e3707
Add select BOOST_CONTAINER_FORCEINLINE to iterator basic members
2026-03-22 23:33:08 +01:00
Ion Gaztañaga
be71e621db
Make back search also recursively segmented using "segmented_find_last_if" and simplify code to clearly distinguish the two search phases.
2026-03-22 23:32:50 +01:00
Ion Gaztañaga
f346b061c8
Simplified implementation refactoring code
2026-03-22 20:45:49 +01:00
Ion Gaztañaga
cf29b2aee5
Simplified (less to-be inlined calls) segmented_find_if for the compiler
2026-03-22 20:45:09 +01:00
Ion Gaztañaga
52c16441ad
Simplified segmented_count_if
2026-03-22 18:33:00 +01:00
Ion Gaztañaga
2d5155302d
Removed commented bug report code
2026-03-22 18:32:28 +01:00
Ion Gaztañaga
e2f52c7bd9
Minor indenting fixes
2026-03-22 17:32:59 +01:00
Ion Gaztañaga
d26c4c4ae1
Simplify implementation to ease work to the compiler and rely less on inlining
2026-03-22 17:32:41 +01:00
Ion Gaztañaga
1863ccae97
Minor indenting fixes
2026-03-22 17:31:37 +01:00
Ion Gaztañaga
6b76844096
Simplify segmented_replace_if implementation
2026-03-22 17:30:55 +01:00
Ion Gaztañaga
c5a54b13a9
Simplify partition_copy implementation.
2026-03-22 17:30:06 +01:00
Ion Gaztañaga
ce12d2aec5
Fixes #334 ("Wrong overload resolution protection in implementation of P2363R5") and adds tests with transparent comparator for associative containers.
2026-03-22 17:26:15 +01:00
Ion Gaztañaga
0f99763ea7
Add mark for slower than expected results
2026-03-20 15:20:51 +01:00
Ion Gaztañaga
bb355d1b6c
Optimized segmented_mismatch:
...
- avoid reference parameters
- avoid extra "bool" information, and extra "mismatch1" parameter
- Simplify implementation to help compiler optimize the code
2026-03-20 15:20:29 +01:00
Ion Gaztañaga
f113af51fa
Simplify code, avoiding unneded local variables.
2026-03-20 14:03:44 +01:00
Ion Gaztañaga
34636439eb
Use segmented_find_if_not to simplify the implementation and improve multi-level segmentation support.
2026-03-20 13:42:09 +01:00
Ion Gaztañaga
9ae621b01d
Properly propagate iterator category in recursive scan calls.
2026-03-20 13:37:52 +01:00
Ion Gaztañaga
cf26a274e5
Simplify end condition checking.
2026-03-20 13:02:34 +01:00
Ion Gaztañaga
57ae7a82d3
Added segmented_find_last, segmented_find_last_if, segmented_find_last_if_not
2026-03-20 01:33:48 +01:00
Ion Gaztañaga
60761d2df4
Avoid benchmarking suboptimal algorithms
2026-03-19 01:34:21 +01:00
Ion Gaztañaga
7df642649a
Add bidirectional iterator support
2026-03-19 01:34:01 +01:00
Ion Gaztañaga
69c983fa9d
Add note saying that the algorithm is suboptimal
2026-03-19 01:31:44 +01:00
Ion Gaztañaga
f922de3b08
Optimize segmented_generate to avoid copying the generator
2026-03-19 01:30:50 +01:00
Ion Gaztañaga
f59c02a1e8
Added all_of, any_of, none_of to the benchmark, add "clobber()" call for each iteration to make sure each algorithm iteration starts with "unknown" memory contents.
2026-03-18 16:33:56 +01:00
Ion Gaztañaga
d4bd58ad1f
Added tests for all_of, any_of, none_of
2026-03-18 16:32:57 +01:00
Ion Gaztañaga
97a90eed77
Re-implement as segmented_find_if_not + segmented_none_of
2026-03-18 16:32:28 +01:00
Ion Gaztañaga
b16b2d2aea
Added segmented all_of, none_of, any_of versions
2026-03-18 16:31:56 +01:00
Ion Gaztañaga
5da77bc668
Avoid redundant predicate call in "is_partitioned_with_state"
2026-03-17 23:55:18 +01:00
Ion Gaztañaga
7a21853b26
Add test for segment and local iterators
2026-03-17 23:26:44 +01:00
Ion Gaztañaga
384bb236c4
Implement partial "operator-" for local iterators.
2026-03-17 23:26:06 +01:00
Ion Gaztañaga
ba853bbd0d
Fix indentation in visit_while
2026-03-17 21:53:28 +01:00
Ion Gaztañaga
18edb763fb
Add segmented_mismatch algorithm
2026-03-17 21:48:13 +01:00
Ion Gaztañaga
cdfda037a6
More code cleanup, removed some reference parameters
2026-03-17 18:57:45 +01:00
Ion Gaztañaga
c5d40dfe58
Add partition_point benchmark
2026-03-17 15:30:31 +01:00
Ion Gaztañaga
bffe61830a
Tidy code: use return statements to shorten functions, indentation, shorten auxiliary function calls avoiding ADL.
2026-03-17 15:30:18 +01:00
Ion Gaztañaga
29855f3aab
Move the function object to supprot move-only function objects
2026-03-17 15:28:49 +01:00
Ion Gaztañaga
0bcb33e03a
Hoist "in_true_part" outside loop to improve performance.
2026-03-17 15:28:19 +01:00
Ion Gaztañaga
000372ebab
Avoid reference parameters in partition_scan
2026-03-17 15:27:30 +01:00
Ion Gaztañaga
031d05c423
Add merge to benchmarks
2026-03-17 13:31:19 +01:00
Ion Gaztañaga
5451da7434
Replace reference parameters with return value
2026-03-17 13:31:00 +01:00
Ion Gaztañaga
9524edaf65
Fix typo
2026-03-17 12:05:53 +01:00
Ion Gaztañaga
d3fd6c5a51
Added set_difference, set_intersection, set_symmetric_difference to the benchmark. Reorder execution of algorithms lexicographicaly.
2026-03-17 11:58:35 +01:00
Ion Gaztañaga
2897bad30a
Add forceinline to trivial functions.
2026-03-17 11:46:42 +01:00
Ion Gaztañaga
0ee02823ad
Use segmented_copy instead of raw loops
2026-03-17 11:46:24 +01:00
Ion Gaztañaga
bf10746f96
Add BOOST_CONTAINER_FORCEINLINE
2026-03-17 10:56:58 +01:00