Subject: Re: [boost] Accelerating algorithms with SIMD - Segmented iterators and alternatives
From: Mathias Gaunard (mathias.gaunard_at_[hidden])
Date: 2010-10-16 14:01:12
On 15/10/2010 04:48, David Abrahams wrote:
> At Thu, 14 Oct 2010 20:00:15 +0100,
> Mathias Gaunard wrote:
>> On 13/10/10 18:50, David Abrahams wrote:
>>> I think you mean
>>> 1 2 | 3 4 5 6 | 7 8 9 10 | 11
>> What is that nonsense supposed to be?
> I fear this conversation is becoming uncivil.
Sorry, I just couldn't make sense of what this is supposed to be, and
used bad phrasing.
What would the value type of that range be?
> That's what "if" statements are for.
We want to avoid these.
>>> I think they do. However, you might find that you need some dynamic
>>> dispatching to get it to work. In other words,
>>> if (operating on complete segment)
>>> SIMD algorithm
>>> elementwise algorithm
>> Therefore they do not allow to avoid the inefficiency, and they are no
>> different from standard iterators in that respect.
> Yes, they are different, because you don't need to do that test at the
> lowest level, for each element. That test would only be done at the
> segment level.
The way I see if, I would need that if at every increment.
> Unless you process the uneven end bits with non-SIMD code.
I would quite like a provide a way to do this.
A range, however, must be homogeneous, and have all its elements be the
same type, so it's either a scalar or a vector, can't be both.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk