Subject: Re: [boost] [xint] Boost.XInt formal review
From: Joel Falcou (joel.falcou_at_[hidden])
Date: 2011-03-03 13:51:51


On 03/03/11 19:34, Jeremy Maitin-Shepard wrote:
> This whole explicitly passing simd<T> in place of T, which seems to be
> the same thing done in nt2, in order to make use of certain
> optimizations seems like a poor interface choice. In almost all
> cases, the user logically cares about a container of T, and wants to
> work with individual elements, and the library should ensure that SIMD
> operations are used whenever possible. In particular, the design of
> the Eigen library, at least in this respect, seems more appropriate.
> Perhaps I am just misinterpreting the intended semantics of using
> simd<T>, but if it in fact it results in the logical value_type still
> being T, then the question is why you would even need to specify simd
> at all, rather than having it always be used. I also don't see how
> the optimization can be externalized in the (quite common) case of
> doing more than element-wise operations.
heeee, no. pack<T,N> is used internally by nt2. The nt2, matrix and
table interface dont require anything at this level.
nt2::table<T> DO vectorize withotu anythign special.

pack is however available as a generic sized packet with potential
simdization for people wanting to write
low level SIMD code.