-
Notifications
You must be signed in to change notification settings - Fork 57
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Release 1.11.0 #191
Release 1.11.0 #191
Commits on Apr 1, 2021
-
Configuration menu - View commit details
-
Copy full SHA for f39af44 - Browse repository at this point
Copy the full SHA f39af44View commit details
Commits on Apr 2, 2021
-
Bump Clang version on GitHub Actions to 9
The default version on the Ubuntu 16.04 image was change to clang 9.0.1, change to that for now, investigate installing older versions later.
Configuration menu - View commit details
-
Copy full SHA for 0a403e5 - Browse repository at this point
Copy the full SHA 0a403e5View commit details -
Optimize probe::enc with lower_monobound_n when possible
Monobound binary search is a variation on standard binary search proposed by @scandum: instead of computing the exact size of the next partition where to look for an element, it always recurses in a partition of size n-n/2. This change means that a few redudant operations are performed when the size isn't a power of 2, but it also means that the generated code can be much smaller. Here we use it for probe::enc when the comparison and projection functions are likely branchless: benchmarks showed that tis measure of presortedness becomes up to 40% when measuring the presortedness of a std::vector<double>. The gain is sufficient to switch to monobound binary search for the cases where it is an obvious improvement. probe::enc still uses a standard binary search the rest of the time.
Configuration menu - View commit details
-
Copy full SHA for bc296f2 - Browse repository at this point
Copy the full SHA bc296f2View commit details -
Remove [[nodiscard]] in fixed_size_list::is_empty
The attribute isn't C++14, warns in Clang because of that, is not in the public interface, and unlike empty() it's obvious that the function is not modifying the collection, so it's not worth adding more macros for that single function.
Configuration menu - View commit details
-
Copy full SHA for 4aebb4d - Browse repository at this point
Copy the full SHA 4aebb4dView commit details
Commits on Apr 4, 2021
-
Improve container_aware_adapter(insertion_sort) over std::list
The algorithm was using upper_bound in the inner loop, which was recomputing the size of the range where to insert the new element at each iteration. This changes the algorithm which now manages the size itself and feeds it to upper_bound_n instead, saving O(n) operations per iteration.
Configuration menu - View commit details
-
Copy full SHA for e6c7cae - Browse repository at this point
Copy the full SHA e6c7caeView commit details
Commits on Apr 5, 2021
-
Fix bug in container_aware_adapter(insertion_sort) for std::forward_list
This bug basically made the algorithm unusable, and slow when it actually happened to work. This commit fixes the bug and uses binary search instead of linear search to perform no more than O(n log n) comparisons.
Configuration menu - View commit details
-
Copy full SHA for b2b39fc - Browse repository at this point
Copy the full SHA b2b39fcView commit details
Commits on Apr 6, 2021
-
fixed_size_list: extract iteration to list_node_base
Many operations on list nodes only act on the iteration and the relinking, and the specific type of the list node isn't required for those. This creates a new non-template list_node_base class with the pointers prev & next, and changes many operations to accept a pointer to a list_node_base instead of a node_list<T>. The major gain is that it allows to use a list_node_base for sentinel nodes instead of a full list_node<T>, saving sizeof(T) space for every list - space that was never used anyway. This means that the memory cost of melsort is reduced by up to sqrt(n)*sizeof(T) while that of slbasort is reduced by up to 2log(n)*sizeof(T).
Configuration menu - View commit details
-
Copy full SHA for 16d746c - Browse repository at this point
Copy the full SHA 16d746cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 11f72af - Browse repository at this point
Copy the full SHA 11f72afView commit details
Commits on Apr 7, 2021
-
Make benchmark results easier to read
Add "lower is better" to the legend of the relevant axis in each plot drawing script.
Configuration menu - View commit details
-
Copy full SHA for 0f0e9d4 - Browse repository at this point
Copy the full SHA 0f0e9d4View commit details -
Benchmarks: add a projection to turn an interger into a long string
This allows to test every existing distribution in the benchmark suite (save maybe the ones that generate negative numbers) with std::string in a way that makes the comparison expensive: the constructed string is always 50-character long and ends with the characters corresponding to the digits of the input number.
Configuration menu - View commit details
-
Copy full SHA for 6b5862c - Browse repository at this point
Copy the full SHA 6b5862cView commit details -
Fix potential small issues in stable_adapter
stable_compare was calling std::forwarf twice on its parameters, and a few other functions were calling std::move instead of std::forward on forwardinf references. It probably hadn't caused any issue so far, but those issues are still best fixed.
Configuration menu - View commit details
-
Copy full SHA for c74eeaa - Browse repository at this point
Copy the full SHA c74eeaaView commit details
Commits on Apr 8, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 4a0bcc0 - Browse repository at this point
Copy the full SHA 4a0bcc0View commit details
Commits on Apr 10, 2021
-
Configuration menu - View commit details
-
Copy full SHA for dd5c370 - Browse repository at this point
Copy the full SHA dd5c370View commit details
Commits on Apr 14, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 359e120 - Browse repository at this point
Copy the full SHA 359e120View commit details
Commits on Apr 15, 2021
-
Configuration menu - View commit details
-
Copy full SHA for aa65714 - Browse repository at this point
Copy the full SHA aa65714View commit details
Commits on Apr 17, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 68236fe - Browse repository at this point
Copy the full SHA 68236feView commit details
Commits on Apr 20, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 30d7ce9 - Browse repository at this point
Copy the full SHA 30d7ce9View commit details -
Configuration menu - View commit details
-
Copy full SHA for cf52466 - Browse repository at this point
Copy the full SHA cf52466View commit details
Commits on Apr 24, 2021
-
Introduce immovable_vector class
Really similar to std::sort, but with the following properties: it's got a fixed capacity determined at construction time, and it is not movable. Unlike std::vector it allows to store immovable types. We use that new class everywhere it makes sense, simplifying a bunch of std::unique_ptr/destroy_n thingies. This commit also changes cartesian_tree_sort quite a bit and fixes a potential bug in its destructor: when an exception was thrown during the construction of the Cartesian tree, destroy_at was called on every allocated element instead of every constructed element.
Configuration menu - View commit details
-
Copy full SHA for edfd576 - Browse repository at this point
Copy the full SHA edfd576View commit details
Commits on Apr 26, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 6c9f003 - Browse repository at this point
Copy the full SHA 6c9f003View commit details
Commits on Apr 27, 2021
-
Configuration menu - View commit details
-
Copy full SHA for c3d940f - Browse repository at this point
Copy the full SHA c3d940fView commit details -
Configuration menu - View commit details
-
Copy full SHA for e8634ef - Browse repository at this point
Copy the full SHA e8634efView commit details
Commits on May 5, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 25431c6 - Browse repository at this point
Copy the full SHA 25431c6View commit details
Commits on May 6, 2021
-
Configuration menu - View commit details
-
Copy full SHA for f177a77 - Browse repository at this point
Copy the full SHA f177a77View commit details
Commits on May 7, 2021
-
Configuration menu - View commit details
-
Copy full SHA for b35ee98 - Browse repository at this point
Copy the full SHA b35ee98View commit details
Commits on May 15, 2021
-
Add [[nodiscard]] to relevant sized_iterator operations
Changed inspired by P2377
Configuration menu - View commit details
-
Copy full SHA for a2ccbbf - Browse repository at this point
Copy the full SHA a2ccbbfView commit details -
Configuration menu - View commit details
-
Copy full SHA for fe80545 - Browse repository at this point
Copy the full SHA fe80545View commit details -
Configuration menu - View commit details
-
Copy full SHA for b90d1e9 - Browse repository at this point
Copy the full SHA b90d1e9View commit details
Commits on May 16, 2021
-
Configuration menu - View commit details
-
Copy full SHA for e7d06a1 - Browse repository at this point
Copy the full SHA e7d06a1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5fd5432 - Browse repository at this point
Copy the full SHA 5fd5432View commit details -
Configuration menu - View commit details
-
Copy full SHA for 96889ef - Browse repository at this point
Copy the full SHA 96889efView commit details
Commits on May 18, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 2e47b7c - Browse repository at this point
Copy the full SHA 2e47b7cView commit details -
Configuration menu - View commit details
-
Copy full SHA for f8c7043 - Browse repository at this point
Copy the full SHA f8c7043View commit details -
Introduce wiki_sort, deprecate block_sort
WikiSort is just *a* block sort and we already have grail_sort in the library which is another block sort which works differently. Therefore reserving the name block_sort to wiki feels a bit misleading, especially with the growing body of block sorts that appear nowadays.
Configuration menu - View commit details
-
Copy full SHA for ccaf3ac - Browse repository at this point
Copy the full SHA ccaf3acView commit details
Commits on May 22, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 2eb4f9a - Browse repository at this point
Copy the full SHA 2eb4f9aView commit details
Commits on May 24, 2021
-
Configuration menu - View commit details
-
Copy full SHA for b5b5cab - Browse repository at this point
Copy the full SHA b5b5cabView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8bebb90 - Browse repository at this point
Copy the full SHA 8bebb90View commit details
Commits on May 27, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 475816a - Browse repository at this point
Copy the full SHA 475816aView commit details
Commits on May 30, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 830f23d - Browse repository at this point
Copy the full SHA 830f23dView commit details
Commits on Jun 6, 2021
-
Configuration menu - View commit details
-
Copy full SHA for fef74e7 - Browse repository at this point
Copy the full SHA fef74e7View commit details -
Configuration menu - View commit details
-
Copy full SHA for f1f01ca - Browse repository at this point
Copy the full SHA f1f01caView commit details
Commits on Jun 7, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 05960cd - Browse repository at this point
Copy the full SHA 05960cdView commit details
Commits on Jun 27, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 1cd52a2 - Browse repository at this point
Copy the full SHA 1cd52a2View commit details
Commits on Jun 29, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 15d00b8 - Browse repository at this point
Copy the full SHA 15d00b8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6d70316 - Browse repository at this point
Copy the full SHA 6d70316View commit details
Commits on Jul 3, 2021
-
Compare-exchange units -> compare-exchange operations
Also abbreviate to CEs instead of CEUs to match the abbreviation used by the SorterHunter project, which is currently the main source of information used for the sorting networks. Some drive-by documentation fixes.
Configuration menu - View commit details
-
Copy full SHA for ccd2fd1 - Browse repository at this point
Copy the full SHA ccd2fd1View commit details
Commits on Jul 12, 2021
-
Configuration menu - View commit details
-
Copy full SHA for b49c5ec - Browse repository at this point
Copy the full SHA b49c5ecView commit details -
Configuration menu - View commit details
-
Copy full SHA for c54d6a0 - Browse repository at this point
Copy the full SHA c54d6a0View commit details
Commits on Jul 14, 2021
-
Configuration menu - View commit details
-
Copy full SHA for d574ae6 - Browse repository at this point
Copy the full SHA d574ae6View commit details
Commits on Jul 17, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 8f9e016 - Browse repository at this point
Copy the full SHA 8f9e016View commit details -
Configuration menu - View commit details
-
Copy full SHA for 313c2f8 - Browse repository at this point
Copy the full SHA 313c2f8View commit details
Commits on Jul 18, 2021
-
Merge pull request #190 from Morwenn/comparator-networks
Comparator networks (#71)
Configuration menu - View commit details
-
Copy full SHA for d9a4341 - Browse repository at this point
Copy the full SHA d9a4341View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4518060 - Browse repository at this point
Copy the full SHA 4518060View commit details -
Configuration menu - View commit details
-
Copy full SHA for a8ec718 - Browse repository at this point
Copy the full SHA a8ec718View commit details
Commits on Jul 19, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 3b52b86 - Browse repository at this point
Copy the full SHA 3b52b86View commit details
Commits on Jul 22, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 4c0ca3b - Browse repository at this point
Copy the full SHA 4c0ca3bView commit details
Commits on Jul 24, 2021
-
Configuration menu - View commit details
-
Copy full SHA for ca9bfcb - Browse repository at this point
Copy the full SHA ca9bfcbView commit details