Open twesterhout opened 6 years ago
I'd like to support simd
Not really, std::complex<Vc::simd<T,...>>
would give me a SoA layout (or am I missing something?). Nowadays, however, most linear algebra libraries, for example, use AoS layout for complex numbers. So I really want Vc::simd<std::complex<T>,...>
to e.g. pass in to functions like https://software.intel.com/sites/landingpage/IntrinsicsGuide/#!=undefined&text=clog&expand=661 without extra shuffling.
P.S. Definitely interested in helping out with the proposal.
True, but consider that std::log/exp/sin/... are defined on std::complex
struct complex {
simd<float> real, imag;
};
is, in my experience, the best you can get for speeding up your computation. Because that way you won't need any horizontal operations (which effectively reduce you're achievable parallelism by >=2). I understand your argument for compatibility to existing Intel APIs. But let's just force Intel to support complex
The only thing complex<simd
A question: are there any plans to add support for complex numbers?
For example,
Vc::simd<std::complex<float>, Vc::simd_abi::sse>
would still use__m128
as underlying type, butsize()
would return 2 rather than 4.