1899 Commits

Author SHA1 Message Date
Ion Gaztañaga 7afb76786b Added bench for hub vs nest 2026-04-06 20:04:36 +02:00
Ion Gaztañaga 5ba527c3a0 Simplified variables and changed order to see if 2x segmentation helps. 2026-04-06 19:35:57 +02:00
Ion Gaztañaga e5a4028827 Implement BOOST_CONTAINER_DISABLE_SEGMENTED_OUTPUT macro 2026-04-04 13:38:59 +02:00
Ion Gaztañaga 6d26a89aa5 Test segmented output optimization in benchmark 2026-04-04 12:47:01 +02:00
Ion Gaztañaga b3bc6c77b4 Test segmented output optimization in benchamark 2026-04-04 12:46:49 +02:00
Ion Gaztañaga bc93697612 Used boost::container::vector instead of std::vector 2026-04-04 11:10:35 +02:00
Ion Gaztañaga e682580bf2 Use C++03 friendly escape calls 2026-04-04 11:02:53 +02:00
Ion Gaztañaga 7bd65d4dc3 Use boost::container::vector instead of std::vector in test helpers 2026-04-04 11:02:22 +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 a7443d0f92 Test move-only types in the corresponding algorithms 2026-04-04 10:10:40 +02:00
Ion Gaztañaga a4307966bc Implement fully recursive segmented_remove_if 2026-04-04 00:43:56 +02:00
Ion Gaztañaga a14cf02e24 Add less_and_greater_ref to implement a better bench_remove_copy_if bench 2026-04-04 00:43:33 +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 8e1506d02a Add missing <vector> include 2026-04-03 19:50:16 +02:00
Ion Gaztañaga b986047bf6 Implement random-access local_iterator and improve performance. 2026-04-03 19:26:56 +02:00
Ion Gaztañaga 20ddb76037 Improve segmented_algo benchmarks, unrolling alll oops 2026-04-03 19:26:22 +02:00
Ion Gaztañaga 053adb2b22 Simplify set_symetric_difference code 2026-04-03 15:31:22 +02:00
Ion Gaztañaga e102644fde Simplify set difference code 2026-04-03 15:30:53 +02:00
Ion Gaztañaga eadc1fe6e9 Implemented directly segmented_none_of for better performance 2026-04-03 15:29:27 +02:00
Ion Gaztañaga a585aaf964 Fix escape argument 2026-04-01 01:24:29 +02:00
Ion Gaztañaga 4783549285 totally rewrite benchmark code to include:
- optimized escape/clobber
- repeating bench several times and calculating the median
2026-04-01 01:17:27 +02:00
Ion Gaztañaga dc7d558b14 Add BOOST_ATTRIBUTE_NO_UNIQUE_ADDRESS to not_pred 2026-03-31 16:08:35 +02:00
Ion Gaztañaga 1621e667cf Algorithm fine-tuning 2026-03-31 16:07:47 +02:00
Ion Gaztañaga 6c14535339 Move t1 time measurement after the test to avoid any interference. 2026-03-31 13:13:40 +02:00
Ion Gaztañaga ee8ca90509 forceinline trivial functions 2026-03-31 00:25:57 +02:00
Ion Gaztañaga 9c02f05faf Fix segmented generate_n bug 2026-03-31 00:25:33 +02:00
Ion Gaztañaga 7fbad9c0d7 Add test for every position to non-mutating algorithms 2026-03-31 00:09:12 +02:00
Ion Gaztañaga 76bdafa045 Fix "compose" operation to always return a valid upper iterator 2026-03-30 13:43:15 +02:00
Ion Gaztañaga f8c3d63016 Fix "compose" in segmented_iterator_traits, the returned deque iterator must be always valid. 2026-03-30 11:18:26 +02:00
Ion Gaztañaga 662450b989 Cosmetic changes to simplify function reading 2026-03-30 00:02:25 +02:00
Ion Gaztañaga e02d16f29f Add missing header 2026-03-29 23:23:35 +02:00
Ion Gaztañaga 40174dec40 Fix bug: iterator category was not properly passed in the recursive segmented calls. 2026-03-29 23:23:25 +02:00
Ion Gaztañaga 530b41dad9 Add BOOST_CONTAINER_ENABLE_SEGMENTED_LOOP_UNROLLING / BOOST_CONTAINER_DISABLE_SEGMENTED_LOOP_UNROLLING options to easier test unrolling. 2026-03-29 22:56:47 +02:00
Ion Gaztañaga 57e95d43a7 Unroll segmented_copy, segmented_copy_if, segmented_copy_n 2026-03-29 22:52:47 +02:00
Ion Gaztañaga 1f8f55a5f8 Add median calculation to benchmark 2026-03-29 22:21:18 +02:00
Ion Gaztañaga b468c97627 Simplify (using repetitions) unrollings so that the compiler find them easier to parallelize. 2026-03-29 22:20:58 +02:00
Ion Gaztañaga 704a6dbe33 Unroll segmented_transform 2026-03-29 19:07:08 +02:00
Ion Gaztañaga 97b9037ee5 Use generic category for fallback implementations 2026-03-29 19:06:50 +02:00
Ion Gaztañaga 63a4df535e Unrolled segmented_reverse_copy 2026-03-29 18:57:18 +02:00
Ion Gaztañaga 568bfdfc2b Unroll segmented_reverse 2026-03-29 18:53:13 +02:00
Ion Gaztañaga 1ca061fb10 Cosmetic indenting 2026-03-29 18:37:23 +02:00
Ion Gaztañaga 066627c818 Unrolled segmented_replace_if 2026-03-29 17:52:57 +02:00
Ion Gaztañaga c3c79053bb Unrolled segmented_remove_copy 2026-03-29 17:52:42 +02:00
Ion Gaztañaga 8951e3eae2 unroll segmented partition_copy 2026-03-29 17:29:52 +02:00
Ion Gaztañaga 3d36bd57b3 Unroll segmented_is_sorted_until 2026-03-29 17:26:30 +02:00
Ion Gaztañaga b68fceb101 Remove unneeded iterator increment for the "case 1" switch case 2026-03-29 17:26:15 +02:00
Ion Gaztañaga f566b64272 Modified benchmark to take the original container as const reference and for those mutating algorithms, copy construct a copy for each iteration. 2026-03-29 16:58:31 +02:00
Ion Gaztañaga 72120b665a Unrolled segmented_partition 2026-03-29 16:57:45 +02:00
Ion Gaztañaga 1b221fcca0 Fixed unrolling bug in segmented_count_if 2026-03-29 15:42:51 +02:00