Skip to content
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

Merged
merged 57 commits into from
Jul 24, 2021
Merged

Release 1.11.0 #191

merged 57 commits into from
Jul 24, 2021

Commits on Apr 1, 2021

  1. Configuration menu
    Copy the full SHA
    f39af44 View commit details
    Browse the repository at this point in the history

Commits on Apr 2, 2021

  1. 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.
    Morwenn committed Apr 2, 2021
    Configuration menu
    Copy the full SHA
    0a403e5 View commit details
    Browse the repository at this point in the history
  2. 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.
    Morwenn committed Apr 2, 2021
    Configuration menu
    Copy the full SHA
    bc296f2 View commit details
    Browse the repository at this point in the history
  3. 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.
    Morwenn committed Apr 2, 2021
    Configuration menu
    Copy the full SHA
    4aebb4d View commit details
    Browse the repository at this point in the history

Commits on Apr 4, 2021

  1. 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.
    Morwenn committed Apr 4, 2021
    Configuration menu
    Copy the full SHA
    e6c7cae View commit details
    Browse the repository at this point in the history

Commits on Apr 5, 2021

  1. 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.
    Morwenn committed Apr 5, 2021
    Configuration menu
    Copy the full SHA
    b2b39fc View commit details
    Browse the repository at this point in the history

Commits on Apr 6, 2021

  1. 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).
    Morwenn committed Apr 6, 2021
    Configuration menu
    Copy the full SHA
    16d746c View commit details
    Browse the repository at this point in the history
  2. Remove unused includes

    Morwenn committed Apr 6, 2021
    Configuration menu
    Copy the full SHA
    11f72af View commit details
    Browse the repository at this point in the history

Commits on Apr 7, 2021

  1. Make benchmark results easier to read

    Add "lower is better" to the legend of the relevant axis in each plot
    drawing script.
    Morwenn committed Apr 7, 2021
    Configuration menu
    Copy the full SHA
    0f0e9d4 View commit details
    Browse the repository at this point in the history
  2. 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.
    Morwenn committed Apr 7, 2021
    Configuration menu
    Copy the full SHA
    6b5862c View commit details
    Browse the repository at this point in the history
  3. 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.
    Morwenn committed Apr 7, 2021
    Configuration menu
    Copy the full SHA
    c74eeaa View commit details
    Browse the repository at this point in the history

Commits on Apr 8, 2021

  1. Configuration menu
    Copy the full SHA
    4a0bcc0 View commit details
    Browse the repository at this point in the history

Commits on Apr 10, 2021

  1. Configuration menu
    Copy the full SHA
    dd5c370 View commit details
    Browse the repository at this point in the history

Commits on Apr 14, 2021

  1. Configuration menu
    Copy the full SHA
    359e120 View commit details
    Browse the repository at this point in the history

Commits on Apr 15, 2021

  1. Configuration menu
    Copy the full SHA
    aa65714 View commit details
    Browse the repository at this point in the history

Commits on Apr 17, 2021

  1. Configuration menu
    Copy the full SHA
    68236fe View commit details
    Browse the repository at this point in the history

Commits on Apr 20, 2021

  1. Configuration menu
    Copy the full SHA
    30d7ce9 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    cf52466 View commit details
    Browse the repository at this point in the history

Commits on Apr 24, 2021

  1. 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.
    Morwenn committed Apr 24, 2021
    Configuration menu
    Copy the full SHA
    edfd576 View commit details
    Browse the repository at this point in the history

Commits on Apr 26, 2021

  1. Add and use destroy/destroy_n

    Morwenn committed Apr 26, 2021
    Configuration menu
    Copy the full SHA
    6c9f003 View commit details
    Browse the repository at this point in the history

Commits on Apr 27, 2021

  1. Configuration menu
    Copy the full SHA
    c3d940f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e8634ef View commit details
    Browse the repository at this point in the history

Commits on May 5, 2021

  1. Tiny grailsort tweaks

    Morwenn committed May 5, 2021
    Configuration menu
    Copy the full SHA
    25431c6 View commit details
    Browse the repository at this point in the history

Commits on May 6, 2021

  1. Configuration menu
    Copy the full SHA
    f177a77 View commit details
    Browse the repository at this point in the history

Commits on May 7, 2021

  1. Fix ADL issue in destroy_n

    Morwenn committed May 7, 2021
    Configuration menu
    Copy the full SHA
    b35ee98 View commit details
    Browse the repository at this point in the history

Commits on May 15, 2021

  1. Add [[nodiscard]] to relevant sized_iterator operations

    Changed inspired by P2377
    Morwenn committed May 15, 2021
    Configuration menu
    Copy the full SHA
    a2ccbbf View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    fe80545 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    b90d1e9 View commit details
    Browse the repository at this point in the history

Commits on May 16, 2021

  1. Configuration menu
    Copy the full SHA
    e7d06a1 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    5fd5432 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    96889ef View commit details
    Browse the repository at this point in the history

Commits on May 18, 2021

  1. Configuration menu
    Copy the full SHA
    2e47b7c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f8c7043 View commit details
    Browse the repository at this point in the history
  3. 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.
    Morwenn committed May 18, 2021
    Configuration menu
    Copy the full SHA
    ccaf3ac View commit details
    Browse the repository at this point in the history

Commits on May 22, 2021

  1. Configuration menu
    Copy the full SHA
    2eb4f9a View commit details
    Browse the repository at this point in the history

Commits on May 24, 2021

  1. Configuration menu
    Copy the full SHA
    b5b5cab View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8bebb90 View commit details
    Browse the repository at this point in the history

Commits on May 27, 2021

  1. Configuration menu
    Copy the full SHA
    475816a View commit details
    Browse the repository at this point in the history

Commits on May 30, 2021

  1. Configuration menu
    Copy the full SHA
    830f23d View commit details
    Browse the repository at this point in the history

Commits on Jun 6, 2021

  1. Configuration menu
    Copy the full SHA
    fef74e7 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f1f01ca View commit details
    Browse the repository at this point in the history

Commits on Jun 7, 2021

  1. More immovable_vector

    Morwenn committed Jun 7, 2021
    Configuration menu
    Copy the full SHA
    05960cd View commit details
    Browse the repository at this point in the history

Commits on Jun 27, 2021

  1. Tools for comparator networks

    Morwenn committed Jun 27, 2021
    Configuration menu
    Copy the full SHA
    1cd52a2 View commit details
    Browse the repository at this point in the history

Commits on Jun 29, 2021

  1. Configuration menu
    Copy the full SHA
    15d00b8 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6d70316 View commit details
    Browse the repository at this point in the history

Commits on Jul 3, 2021

  1. 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.
    Morwenn committed Jul 3, 2021
    Configuration menu
    Copy the full SHA
    ccd2fd1 View commit details
    Browse the repository at this point in the history

Commits on Jul 12, 2021

  1. Configuration menu
    Copy the full SHA
    b49c5ec View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c54d6a0 View commit details
    Browse the repository at this point in the history

Commits on Jul 14, 2021

  1. Tweak CMake/Conan integration

    Morwenn committed Jul 14, 2021
    Configuration menu
    Copy the full SHA
    d574ae6 View commit details
    Browse the repository at this point in the history

Commits on Jul 17, 2021

  1. Configuration menu
    Copy the full SHA
    8f9e016 View commit details
    Browse the repository at this point in the history
  2. tweak fixed-size sorters doc

    Morwenn committed Jul 17, 2021
    Configuration menu
    Copy the full SHA
    313c2f8 View commit details
    Browse the repository at this point in the history

Commits on Jul 18, 2021

  1. Merge pull request #190 from Morwenn/comparator-networks

    Comparator networks (#71)
    Morwenn committed Jul 18, 2021
    Configuration menu
    Copy the full SHA
    d9a4341 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4518060 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    a8ec718 View commit details
    Browse the repository at this point in the history

Commits on Jul 19, 2021

  1. Configuration menu
    Copy the full SHA
    3b52b86 View commit details
    Browse the repository at this point in the history

Commits on Jul 22, 2021

  1. Configuration menu
    Copy the full SHA
    4c0ca3b View commit details
    Browse the repository at this point in the history

Commits on Jul 24, 2021

  1. Preparing release 1.11.0

    Morwenn committed Jul 24, 2021
    Configuration menu
    Copy the full SHA
    ca9bfcb View commit details
    Browse the repository at this point in the history