simd comparison operator?

John Colvin john.loughran.colvin at gmail.com
Tue Feb 19 08:28:14 PST 2013


On Tuesday, 19 February 2013 at 16:03:58 UTC, bearophile wrote:
> Don:
>
>> Simd comparison generally doesn't return a bool, it returns a 
>> bool array,
>> one per element.
>>
>> Does  (arr[] < 10) mean "is every element in arr less than 10" 
>> OR "is any element of arr less than 10" OR "create a bool 
>> array which is true for each element which is less than 10" ?
>>
>> All make sense. That's the problem.
>
> Right, it's a design problem.
> I think the right thing to do is to take a look at what's an 
> efficient operation to do in hardware (and then look at what's 
> the most commonly useful operation for users). I think the 
> right design here is to return a bool[N].
> So in this case monarch_dodra has to add some more code to test 
> all/any.
>
> Bye,
> bearophile

There is significant opposition to any simd operators that 
allocate. The reasoning is that they appear fast but are in 
actual fact slow (for most normal size vectors, the allocation 
would be much slower than the calculation itself).

I love the features of numpy and matlab etc. when it comes to 
array operations, many of which allocate implicitly, but Walter 
and others were quite adamant they they do not belong in D, a 
position I've come to agree with.


More information about the Digitalmars-d mailing list