mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-07-25 22:34:30 +08:00
bugfix in sum
This commit is contained in:
parent
cb71dc4bbf
commit
4432cf8ca3
@ -231,11 +231,18 @@ template<typename Derived>
|
|||||||
struct ei_sum_impl<Derived, LinearVectorization, CompleteUnrolling, IsDense>
|
struct ei_sum_impl<Derived, LinearVectorization, CompleteUnrolling, IsDense>
|
||||||
{
|
{
|
||||||
typedef typename Derived::Scalar Scalar;
|
typedef typename Derived::Scalar Scalar;
|
||||||
|
typedef typename ei_packet_traits<Scalar>::type PacketScalar;
|
||||||
|
enum {
|
||||||
|
PacketSize = ei_packet_traits<Scalar>::size,
|
||||||
|
Size = Derived::SizeAtCompileTime,
|
||||||
|
VectorizationSize = (Size / PacketSize) * PacketSize
|
||||||
|
};
|
||||||
static Scalar run(const Derived& mat)
|
static Scalar run(const Derived& mat)
|
||||||
{
|
{
|
||||||
return ei_predux(
|
Scalar res = ei_predux(ei_sum_vec_unroller<Derived, 0, VectorizationSize>::run(mat));
|
||||||
ei_sum_vec_unroller<Derived, 0, Derived::SizeAtCompileTime>::run(mat)
|
if (VectorizationSize != Size)
|
||||||
);
|
res += ei_sum_novec_unroller<Derived, VectorizationSize, Size-VectorizationSize>::run(mat);
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user