1899 Commits

Author SHA1 Message Date
Ion Gaztañaga 6d935f243e Unroll segmented_generate 2026-03-29 15:41:18 +02:00
Ion Gaztañaga 099463c515 Fix unrolling bug in segmented_for_each 2026-03-29 15:40:56 +02:00
Ion Gaztañaga 112ab48698 Unroll segmented mismatch 2026-03-29 15:28:33 +02:00
Ion Gaztañaga d7f4f1927a Comment todo to improve merge in the future 2026-03-29 15:25:51 +02:00
Ion Gaztañaga 0d88d6512b Fix generate_n bug 2026-03-29 15:25:12 +02:00
Ion Gaztañaga 40570911bc Avoid aliasing in merge scan 2026-03-29 15:24:41 +02:00
Ion Gaztañaga 7595cb9a08 Unrolled generate_n 2026-03-29 12:57:01 +02:00
Ion Gaztañaga c8118e6bad Loop unrolling for segmented_for_each 2026-03-29 12:28:49 +02:00
Ion Gaztañaga 78ad3d8dcf Add loop unrolling to segmented_find_last_if 2026-03-29 00:28:09 +01:00
Ion Gaztañaga 692358b21c Add loop unrolling to partition point 2026-03-29 00:03:27 +01:00
Ion Gaztañaga b785bcb0d7 Use container's iterators traits 2026-03-28 23:46:26 +01:00
Ion Gaztañaga 8f31a67af8 Activate loop unrolling for segmented algorithms 2026-03-28 23:40:13 +01:00
Ion Gaztañaga c2d135e2bb Erase segmented_find_if_original_dispatch 2026-03-28 23:39:47 +01:00
Ion Gaztañaga 8ebe442396 Loop unrolling for count_if 2026-03-28 23:39:24 +01:00
Ion Gaztañaga f9d2a224bd Add loop unrolling to segmented find if 2026-03-28 23:31:51 +01:00
Ion Gaztañaga 4dd02fb6cb Use segmented_find for count == 1 2026-03-28 23:31:38 +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 d56993febc Added unchecked_push_back to vector/small_vector/static_vector 2026-03-28 00:42:21 +01:00
Ion Gaztañaga 3c30008aca Update unchecked_emplace_back changelog with static_vector 2026-03-27 22:54:23 +01:00
Ion Gaztañaga 4f6237bc15 Implemented unchecked_emplace_back 2026-03-27 22:53:44 +01:00
Ion Gaztañaga ab510fc3af Remove BOOST_CONTAINER_NOINLINE as it pessimizes code generation because the compiler can't see if embers are modified 2026-03-27 07:12:14 +01:00
Ion Gaztañaga 25a6ddc971 First fully recursive segmented reverse implementaton. Probably too complicated for the final algo and will need some refactoring. 2026-03-23 23:54:55 +01:00
Ion Gaztañaga 97d8a828a7 Update 1.92 changelog with #334 2026-03-23 23:48:53 +01:00
Ion Gaztañaga bd642effb9 Condition on less_than_ref is wrong. 2026-03-23 12:06:15 +01:00
Ion Gaztañaga c825477043 Cosmetic changes 2026-03-23 12:05:46 +01:00
Ion Gaztañaga bafa579499 Simplified recursive segmented iterator handling to improve inlining opportunities 2026-03-23 12:05:17 +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 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