std.simd module

Iain Buclaw ibuclaw at ubuntu.com
Mon Feb 6 07:22:18 PST 2012


On 6 February 2012 15:13, a <a at a.com> wrote:
>> True, I have only been working in x86 GDC so far, but I just wanted to get
>> feedback about my approach and API design at this point.
>> It seems there are no serious objections, I'll continue as is.
>
>
> I have one proposal about API design of matrix operations. Maybe there could
> be functions that would take row vectors as parameters in addition to those
> that take matrix structs. That way one could call matrix functions on data
> that isn't stored as matrix structures without copying. So for example for
> the transpose function there would also be a function that would be used
> like this (a* are inputs and r* are outputs):
>
> transpose(aX, aY, aZ, aW, rX, rY, rZ, rW);
>
> Maybe those functions could be used to implement the functions that take and
> return structs.
>
> I also think that interleave and deinterleave operations would be useful.
> For four element float vectors those can be implemented with only one
> instruction at least for SSE (using unpcklps, unpckhps and shufps) and  NEON
> (using vuzp and vzip).
>
>
>> I have an
>> ARM compiler too now, so I'll be implementing/testing against that as
>> reference also.
>
>
> Could you please tell me how did you get the ARM compiler to work?

There's a thread in d.gnu with Linux and MinGW cross compiler binaries.


-- 
Iain Buclaw

*(p < e ? p++ : p) = (c & 0x0f) + '0';


More information about the Digitalmars-d mailing list