Commit Graph

1009 Commits

Author SHA1 Message Date
Ion Gaztañaga 30352d2651 Add segtrio and sent_filter utilities 2026-05-02 00:30:45 +02:00
Ion Gaztañaga 70bfb493be remove forceinline 2026-05-02 00:30:18 +02:00
Ion Gaztañaga 6539476422 Alternative dual random-access iterator dispatching to avoid demoting iterators, removed make_wrapped_iterator usage. 2026-04-29 00:45:22 +02:00
Ion Gaztañaga f7990bd034 Reimplemented segmented_is_sorted_until to simplify and speed it up. The new implementation does an early check and there is no longer need to pass a boolean validity flag for the previous iterator. 2026-04-27 01:16:55 +02:00
Ion Gaztañaga 216e6b7f01 Implement deepest_local_iterator_impl::get 2026-04-27 01:07:52 +02:00
Ion Gaztañaga 8a8aff2e9d Fix compilation error when BOOST_CONTAINER_SEGMENTED_LOOP_UNROLLING is activated 2026-04-27 01:07:23 +02:00
Ion Gaztañaga ed68c8ea15 Simplify segment loop exit conditions. 2026-04-26 23:56:45 +02:00
Ion Gaztañaga ff744ecf2f Apply dual random access optimization to several algorithms 2026-04-26 00:41:41 +02:00
Ion Gaztañaga 1daeb0b488 Make segduo convertible from another segduo and activate the dual random-access optimization. 2026-04-26 00:40:59 +02:00
Ion Gaztañaga 4d407c8282 Make wrapped_iterator convertible to the original 2026-04-26 00:39:49 +02:00
Ion Gaztañaga a13ed0a7e8 forceinline core loop and simplify outside dest loop to avoid repeating conditions 2026-04-25 01:04:49 +02:00
Ion Gaztañaga 8cb5c0f093 Make segmented_copy multi segmented 2026-04-25 01:04:16 +02:00
Ion Gaztañaga 432439e8ba Further improve segmented_reverse for random-access iterators 2026-04-25 00:09:45 +02:00
Ion Gaztañaga 798133991c Optimize segmented_reverse for random-access iterators 2026-04-25 00:06:42 +02:00
Ion Gaztañaga f2b048a685 Direct implementation of segmented_fill[_n], calling segmented_generate[_n] can be suboptimal in some compilers. 2026-04-24 13:19:57 +02:00
Ion Gaztañaga 1586338ce0 Better formating for the unrolled code to avoid GCC warnings 2026-04-24 13:19:13 +02:00
Ion Gaztañaga d985b1d6cf Take "gen" by reference to avoid surprises 2026-04-24 13:18:46 +02:00
Ion Gaztañaga ac111207df correct wrapped_iterator file name 2026-04-23 23:58:22 +02:00
Ion Gaztañaga 345edcbc13 Tuned a bit is_sorted_until (sentinel case) 2026-04-23 23:53:28 +02:00
Ion Gaztañaga 050d688246 Added wrapped_iterator utility 2026-04-23 23:45:17 +02:00
Ion Gaztañaga 76fc1922e1 Remove redundant tests in segmented_copy_if_dst_dispatch 2026-04-22 23:19:46 +02:00
Ion Gaztañaga dcaf49b677 Performance improvements to nest, and fixed bug when allocators are unequal 2026-04-22 01:11:10 +02:00
Ion Gaztañaga 4039017e9b Make clear supporting negative difference requirs additional checks 2026-04-20 23:05:38 +02:00
Ion Gaztañaga 89218bfb41 Enable BOOST_CONTAINER_NEST_PREFETCH_NEXT_ELEMENT 2026-04-20 22:57:05 +02:00
Ion Gaztañaga 4c84305677 Enable forceinline again in Clang and MinGW 2026-04-20 00:47:18 +02:00
Ion Gaztañaga be299e5c47 Update "hub" and "nest" to review version 2026-04-20 00:46:29 +02:00
Ion Gaztañaga df92a474a9 Make segmented_search and segmented_mismatch work with recursively segmented iterators 2026-04-18 12:33:44 +02:00
Ion Gaztañaga 4c2038394b Implemented recursively segmented iterator support for segmented_is_sorted 2026-04-17 01:08:59 +02:00
Ion Gaztañaga af799513aa Fix misleading indentation 2026-04-17 01:08:48 +02:00
Ion Gaztañaga 373ceb8476 Unify "xxx_default_less" function objects 2026-04-17 00:29:53 +02:00
Ion Gaztañaga dadaabe91f Define segduo constructors again, eliminating them breaks code 2026-04-12 21:10:21 +02:00
Ion Gaztañaga c0b63942f8 Take generator again by reference, as it breaks stateful generators 2026-04-12 21:09:39 +02:00
Ion Gaztañaga 9bb9ac07aa Fix Wsign-conversion warnings 2026-04-12 21:09:11 +02:00
Ion Gaztañaga 6f39505ff6 Move generator instead of taking by reference to improve code generation. 2026-04-12 20:46:37 +02:00
Ion Gaztañaga e1933006e5 Simplify segduo 2026-04-12 20:43:31 +02:00
Ion Gaztañaga 7ec679d696 Use segudo instead of reference parameters 2026-04-12 20:17:34 +02:00
Ion Gaztañaga 34d265190c Return simple pair struct instead of using references 2026-04-12 20:04:44 +02:00
Ion Gaztañaga 12bcea58ea Define BOOST_CONTAINER_DISABLE_MULTI_SEGMENTED_ALGO to be able to test multi-segmentation 2026-04-11 23:14:20 +02:00
Ion Gaztañaga 67e5dbfafa Simplify loop unrolling final switch with BOOST_FALLTHROUGH 2026-04-11 23:03:45 +02:00
Ion Gaztañaga 562af5a13a Implement segmented_equal without relying in mismatch, as the implementation is slower in some compilers. 2026-04-11 22:52:17 +02:00
Ion Gaztañaga af38102d50 Implement dual segmentation to copy_if, copy_n and mismatch. 2026-04-11 22:51:23 +02:00
Ion Gaztañaga 923d7b360c Remove mask check 2026-04-11 20:09:12 +02:00
Ion Gaztañaga 0cfd5721e3 Add hub implementation as the reference implementation for benchmarks. 2026-04-06 20:07:05 +02:00
Ion Gaztañaga e5a4028827 Implement BOOST_CONTAINER_DISABLE_SEGMENTED_OUTPUT macro 2026-04-04 13:38:59 +02:00
Ion Gaztañaga b3bc6c77b4 Test segmented output optimization in benchamark 2026-04-04 12:46:49 +02:00
Ion Gaztañaga aab32bfa54 Add missing move utility core header 2026-04-04 11:01:57 +02:00
Ion Gaztañaga 8cf79b7140 Reimplement segmented_remove_copy_if to support recursively segmented iterators, make the implementation detail move-configurable, and make segmented_remove_if a thin wrapper again based on that. 2026-04-04 10:11:49 +02:00
Ion Gaztañaga a4307966bc Implement fully recursive segmented_remove_if 2026-04-04 00:43:56 +02:00
Ion Gaztañaga fffd74843a Introduce "unreachable_sentinel_t" to reuse bounded algorithms to implement unbounded ones. 2026-04-04 00:42:52 +02:00
Ion Gaztañaga b986047bf6 Implement random-access local_iterator and improve performance. 2026-04-03 19:26:56 +02:00