std.simd module

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

On 6 February 2012 15:13, a <a at> 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