aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2014-07-09 16:01:24 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2014-07-09 16:01:24 +0200
commit62f948c56a782689947e4bbdcaab2b5cb0247ac5 (patch)
treef4ca956b2d54cb2fef24e44b384f8674e6ba18b5 /test
parentda1e3563060f1d2cb817834fb39285baddbcadaa (diff)
Generalize unit testing of pscatter
Diffstat (limited to 'test')
-rw-r--r--test/packetmath.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/test/packetmath.cpp b/test/packetmath.cpp
index a51d31dbd..e5dc473c2 100644
--- a/test/packetmath.cpp
+++ b/test/packetmath.cpp
@@ -408,14 +408,17 @@ template<typename Scalar> void packetmath_scatter_gather() {
for (int i=0; i<PacketSize; ++i) {
data1[i] = internal::random<Scalar>()/RealScalar(PacketSize);
}
- EIGEN_ALIGN_DEFAULT Scalar buffer[PacketSize*11];
- memset(buffer, 0, 11*sizeof(Packet));
+
+ int stride = internal::random<int>(1,20);
+
+ EIGEN_ALIGN_DEFAULT Scalar buffer[PacketSize*20];
+ memset(buffer, 0, 20*sizeof(Packet));
Packet packet = internal::pload<Packet>(data1);
- internal::pscatter<Scalar, Packet>(buffer, packet, 11);
+ internal::pscatter<Scalar, Packet>(buffer, packet, stride);
- for (int i = 0; i < PacketSize*11; ++i) {
- if ((i%11) == 0) {
- VERIFY(isApproxAbs(buffer[i], data1[i/11], refvalue) && "pscatter");
+ for (int i = 0; i < PacketSize*20; ++i) {
+ if ((i%stride) == 0 && i<stride*PacketSize) {
+ VERIFY(isApproxAbs(buffer[i], data1[i/stride], refvalue) && "pscatter");
} else {
VERIFY(isApproxAbs(buffer[i], Scalar(0), refvalue) && "pscatter");
}