[Webkit-unassigned] [Bug 174715] Add a data structure for fixed sets of data that can switch its implementation strategy based on the input

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sat Jul 22 11:55:04 PDT 2017


https://bugs.webkit.org/show_bug.cgi?id=174715

--- Comment #6 from Sam Weinig <sam at webkit.org> ---
Created attachment 316206

  --> https://bugs.webkit.org/attachment.cgi?id=316206&action=review

FixedSet Proof of Concept

I played with this idea a little this morning and got a simple proof of concept done that works with integers. It will need more work to generalize it, but that's why it's a proof of concept.

The way it works is you do something like:

    static constexpr auto set = makeFixedSet<unsigned>( 5, 4, 1, 2, 3 );

If chooses the data structure to use based on how many arguments are passed to makeFixedSet. For a single argument, it uses a FixedSetSingle. For 4 or less, it uses a FixedSetLinearSearchArray. And for 5 and more, it uses FixedSetBinarySearchArray.

The input does not need to be pre-sorted, as the FixedSetBinarySearchArray does a constexpr sort of the contents.

I left out a HashTable or Perfect Hash variant from this proof of concept, but once additional types are added, I don't think adding those will be too much trouble (famous last words).

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20170722/35010ea2/attachment.html>


More information about the webkit-unassigned mailing list