
On 23/10/13 21:17, Fabian Bösch wrote:
Boost.SIMD is heading toward API stability. We want to tackle ons ome more compile time issues before going for an actual Boost Review.
Dear Joel
I very much like to see your NT2 and especially the SIMD support in Boost. It looks to me very comprehensible and almost ready to use.
Thank you for your support. The blocking point at this stage is the compilation time. Fixing this issue could affect the design of the library significantly, so we'd like to work on this before we integrate the library in Boost.
Up to now, I've always written the wrappers myself - of course far away from boost quality. What I was wondering, did you also considering a vector of simd::pack which can be accessed either by its simd::pack type or by the underlying element type? This way, you'd avoid calling the loading function.
There are iterator adaptors that you can use to treat a sequence of elements as a sequence of packs.
One other thing I was wondering: some implementations of SSE/AVX (particularly Intel) support additional arithmetic functions i.e. log , exp which are absent in other implementations. Did you consider emulating these functions where absent and dispatching to the vectorized versions where available?
NT2 has about all the mathematical functions you can think of (C99, TR1, and more), most of them vectorized. Exponential and trigonometric functions are very well vectorized in particular. They do not appear in Boost.SIMD because they're not simply wrappers of architecture-specific intrinsics. The code for those functions is written with Boost.SIMD but is otherwise entirely platform-agnostic.