On Thursday, 19 May 2016 at 22:04:56 UTC, Andrei Alexandrescu
wrote:
On 05/19/2016 05:36 PM, Jens Müller wrote:
I removed the code to optimize for large gaps. Because it is
only
confusing. I may generate some benchmark data with larger gaps
later to
see whether it is worthwhile for such data.
For skipping large gaps quickly, check galloping search (google
for it, we also have it in phobos). -- Andrei
Sure. I've already seen this. It's nice. But you have to include
it in the sparse dot product (or list intersection) algorithm
somehow. Then you require random access and galloping is only
beneficial if the gaps are large. As a library writer this is a
difficult position because this turns easily into over
engineering. Optimally one just exposes the primitives and the
user plugs them together. Ideally without having to many knobs
per algorithm.
Jens