Commit Graph

56 Commits

Author SHA1 Message Date
Ion Gaztañaga 9d49cef31b Make sure erase wrappers are inlined 2026-04-22 01:10:16 +02:00
Ion Gaztañaga 1eded9b487 Fix warnings for old GCCs and make it work without exceptions 2026-04-20 13:30:46 +02:00
Ion Gaztañaga 4f72690084 Make non-trivial element with memset in the constructor 2026-04-20 00:46:50 +02:00
Ion Gaztañaga b7d984bf04 Add C++14 mismatch overloads 2026-04-20 00:45:54 +02:00
Ion Gaztañaga ad16326d43 Fix segmented_mismatch warnings 2026-04-20 00:29:30 +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 9bb9ac07aa Fix Wsign-conversion warnings 2026-04-12 21:09:11 +02:00
Ion Gaztañaga a12422b678 Refactor benchmark to avoid repeated code 2026-04-12 20:04:58 +02:00
Ion Gaztañaga f0b9c5cf92 Add explicit bench for newly refactored dual segmented algorithms. 2026-04-11 22:52:37 +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 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 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 a7443d0f92 Test move-only types in the corresponding algorithms 2026-04-04 10:10:40 +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 20ddb76037 Improve segmented_algo benchmarks, unrolling alll oops 2026-04-03 19:26:22 +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 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 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 1f8f55a5f8 Add median calculation to benchmark 2026-03-29 22:21:18 +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 c2d135e2bb Erase segmented_find_if_original_dispatch 2026-03-28 23:39:47 +01:00
Ion Gaztañaga 0ab7e5d0af Add bidirectional iterator support for find_last overloads 2026-03-28 22:29:17 +01:00
Ion Gaztañaga bd642effb9 Condition on less_than_ref is wrong. 2026-03-23 12:06:15 +01:00
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 0f99763ea7 Add mark for slower than expected results 2026-03-20 15:20:51 +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 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 18edb763fb Add segmented_mismatch algorithm 2026-03-17 21:48:13 +01:00
Ion Gaztañaga c5d40dfe58 Add partition_point benchmark 2026-03-17 15:30:31 +01:00
Ion Gaztañaga 031d05c423 Add merge to benchmarks 2026-03-17 13:31:19 +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 8e19a4965d Improve escape mechanism to avoid unwanted loop optimizations. 2026-03-17 10:38:10 +01:00
Ion Gaztañaga 13ee44c848 Take container by value to avoid replacing values in mutating algorithms 2026-03-17 00:10:13 +01:00
Ion Gaztañaga 703720b186 Add segmented_set_union to benchmark 2026-03-17 00:09:43 +01:00
Ion Gaztañaga e4fc3e6852 Add "segmented_is_sorted_until" to benchmark 2026-03-16 22:55:49 +01:00
Ion Gaztañaga 85785938d5 Use C++11 standard library implementation when available. 2026-03-16 19:13:02 +01:00
Ion Gaztañaga f5032dad86 Added find_if_not, partition and stable_partition to benchmark 2026-03-16 15:35:08 +01:00