
Joel Falcou wrote:
* Arch.Types: some low level traits and generation class including things like : -> make_integer that build an integer type able to hold at most N bytes and with a given signedness e.g : make_interger<3,signed>::type returns int32_t.
Isn't that the same as Boost.Integer's int_t family? http://www.boost.org/doc/libs/1_36_0/boost/integer.hpp
* Arch.SIMD : a SIMD computation library that provides a small scale binding to internal representation of a SIMD register on SIMD-enabled machine. Using Proto, a small DSEL is provided so one can write code like :
vec<float> k = {5,5,5,5},r; r = ((2*k)/(3-k)).min();
and have vec generate a proper SSEx or Altivec code. This also require some large config code to be added so we cna detect which extension can/is being used. Traits like is_simd, cardinal, vector_of, scalar_of are provided. Current plan is to see if vec can also act as some Fusion container and to see how to properly optimize fused operation (have an actual PHD student on this) and make it easily extensible for upcoming SIMD extension (including AVX, SSE5 or Cell SPU).
This sounds very interesting. Working with SSE intrinsics is rather a pain. Sebastian