MCPcopy Create free account
hub / github.com/PX4/eigen / run

Method run

test/vectorization_logic.cpp:264–375  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

262 PacketSize = internal::unpacket_traits<PacketType>::size
263 };
264 static void run()
265 {
266
267 typedef Matrix<Scalar,PacketSize,1> Vector1;
268 typedef Matrix<Scalar,PacketSize,PacketSize> Matrix11;
269 typedef Matrix<Scalar,5*PacketSize,7,ColMajor> Matrix57;
270 typedef Matrix<Scalar,3*PacketSize,5,ColMajor> Matrix35;
271 typedef Matrix<Scalar,5*PacketSize,7,DontAlign|ColMajor> Matrix57u;
272// typedef Matrix<Scalar,(Matrix11::Flags&RowMajorBit)?16:4*PacketSize,(Matrix11::Flags&RowMajorBit)?4*PacketSize:16> Matrix44;
273// typedef Matrix<Scalar,(Matrix11::Flags&RowMajorBit)?16:4*PacketSize,(Matrix11::Flags&RowMajorBit)?4*PacketSize:16,DontAlign|EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION> Matrix44u;
274// typedef Matrix<Scalar,4*PacketSize,4*PacketSize,ColMajor> Matrix44c;
275// typedef Matrix<Scalar,4*PacketSize,4*PacketSize,RowMajor> Matrix44r;
276
277 typedef Matrix<Scalar,
278 (PacketSize==8 ? 4 : PacketSize==4 ? 2 : PacketSize==2 ? 1 : /*PacketSize==1 ?*/ 1),
279 (PacketSize==8 ? 2 : PacketSize==4 ? 2 : PacketSize==2 ? 2 : /*PacketSize==1 ?*/ 1)
280 > Matrix1;
281
282 typedef Matrix<Scalar,
283 (PacketSize==8 ? 4 : PacketSize==4 ? 2 : PacketSize==2 ? 1 : /*PacketSize==1 ?*/ 1),
284 (PacketSize==8 ? 2 : PacketSize==4 ? 2 : PacketSize==2 ? 2 : /*PacketSize==1 ?*/ 1),
285 DontAlign|((Matrix1::Flags&RowMajorBit)?RowMajor:ColMajor)> Matrix1u;
286
287 // this type is made such that it can only be vectorized when viewed as a linear 1D vector
288 typedef Matrix<Scalar,
289 (PacketSize==8 ? 4 : PacketSize==4 ? 6 : PacketSize==2 ? ((Matrix11::Flags&RowMajorBit)?2:3) : /*PacketSize==1 ?*/ 1),
290 (PacketSize==8 ? 6 : PacketSize==4 ? 2 : PacketSize==2 ? ((Matrix11::Flags&RowMajorBit)?3:2) : /*PacketSize==1 ?*/ 3)
291 > Matrix3;
292
293 #if !EIGEN_GCC_AND_ARCH_DOESNT_WANT_STACK_ALIGNMENT
294 VERIFY(test_assign(Vector1(),Vector1(),
295 InnerVectorizedTraversal,CompleteUnrolling));
296 VERIFY(test_assign(Vector1(),Vector1()+Vector1(),
297 InnerVectorizedTraversal,CompleteUnrolling));
298 VERIFY(test_assign(Vector1(),Vector1().template segment<PacketSize>(0).derived(),
299 EIGEN_UNALIGNED_VECTORIZE ? InnerVectorizedTraversal : LinearVectorizedTraversal,CompleteUnrolling));
300 VERIFY(test_assign(Vector1(),Scalar(2.1)*Vector1()-Vector1(),
301 InnerVectorizedTraversal,CompleteUnrolling));
302 VERIFY(test_assign(Vector1(),(Scalar(2.1)*Vector1().template segment<PacketSize>(0)-Vector1().template segment<PacketSize>(0)).derived(),
303 EIGEN_UNALIGNED_VECTORIZE ? InnerVectorizedTraversal : LinearVectorizedTraversal,CompleteUnrolling));
304 VERIFY(test_assign(Vector1(),Vector1().cwiseProduct(Vector1()),
305 InnerVectorizedTraversal,CompleteUnrolling));
306 VERIFY(test_assign(Vector1(),Vector1().template cast<Scalar>(),
307 InnerVectorizedTraversal,CompleteUnrolling));
308
309
310 VERIFY(test_assign(Vector1(),Vector1(),
311 InnerVectorizedTraversal,CompleteUnrolling));
312 VERIFY(test_assign(Vector1(),Vector1()+Vector1(),
313 InnerVectorizedTraversal,CompleteUnrolling));
314 VERIFY(test_assign(Vector1(),Vector1().cwiseProduct(Vector1()),
315 InnerVectorizedTraversal,CompleteUnrolling));
316
317 VERIFY(test_assign(Matrix57(),Matrix57()+Matrix57(),
318 InnerVectorizedTraversal,InnerUnrolling));
319
320 VERIFY(test_assign(Matrix57u(),Matrix57()+Matrix57(),
321 EIGEN_UNALIGNED_VECTORIZE ? InnerVectorizedTraversal : LinearTraversal,

Callers

nothing calls this directly

Calls 6

lazyProductMethod · 0.80
test_assignFunction · 0.70
test_reduxFunction · 0.70
cwiseProductMethod · 0.45
rowMethod · 0.45
colMethod · 0.45

Tested by

no test coverage detected