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

Method run

test/vectorization_logic.cpp:105–247  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

103 HalfPacketSize = internal::unpacket_traits<HalfPacketType>::size
104 };
105 static void run()
106 {
107
108 typedef Matrix<Scalar,PacketSize,1> Vector1;
109 typedef Matrix<Scalar,Dynamic,1> VectorX;
110 typedef Matrix<Scalar,Dynamic,Dynamic> MatrixXX;
111 typedef Matrix<Scalar,PacketSize,PacketSize> Matrix11;
112 typedef Matrix<Scalar,2*PacketSize,2*PacketSize> Matrix22;
113 typedef Matrix<Scalar,(Matrix11::Flags&RowMajorBit)?16:4*PacketSize,(Matrix11::Flags&RowMajorBit)?4*PacketSize:16> Matrix44;
114 typedef Matrix<Scalar,(Matrix11::Flags&RowMajorBit)?16:4*PacketSize,(Matrix11::Flags&RowMajorBit)?4*PacketSize:16,DontAlign|EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION> Matrix44u;
115 typedef Matrix<Scalar,4*PacketSize,4*PacketSize,ColMajor> Matrix44c;
116 typedef Matrix<Scalar,4*PacketSize,4*PacketSize,RowMajor> Matrix44r;
117
118 typedef Matrix<Scalar,
119 (PacketSize==8 ? 4 : PacketSize==4 ? 2 : PacketSize==2 ? 1 : /*PacketSize==1 ?*/ 1),
120 (PacketSize==8 ? 2 : PacketSize==4 ? 2 : PacketSize==2 ? 2 : /*PacketSize==1 ?*/ 1)
121 > Matrix1;
122
123 typedef Matrix<Scalar,
124 (PacketSize==8 ? 4 : PacketSize==4 ? 2 : PacketSize==2 ? 1 : /*PacketSize==1 ?*/ 1),
125 (PacketSize==8 ? 2 : PacketSize==4 ? 2 : PacketSize==2 ? 2 : /*PacketSize==1 ?*/ 1),
126 DontAlign|((Matrix1::Flags&RowMajorBit)?RowMajor:ColMajor)> Matrix1u;
127
128 // this type is made such that it can only be vectorized when viewed as a linear 1D vector
129 typedef Matrix<Scalar,
130 (PacketSize==8 ? 4 : PacketSize==4 ? 6 : PacketSize==2 ? ((Matrix11::Flags&RowMajorBit)?2:3) : /*PacketSize==1 ?*/ 1),
131 (PacketSize==8 ? 6 : PacketSize==4 ? 2 : PacketSize==2 ? ((Matrix11::Flags&RowMajorBit)?3:2) : /*PacketSize==1 ?*/ 3)
132 > Matrix3;
133
134 #if !EIGEN_GCC_AND_ARCH_DOESNT_WANT_STACK_ALIGNMENT
135 VERIFY(test_assign(Vector1(),Vector1(),
136 InnerVectorizedTraversal,CompleteUnrolling));
137 VERIFY(test_assign(Vector1(),Vector1()+Vector1(),
138 InnerVectorizedTraversal,CompleteUnrolling));
139 VERIFY(test_assign(Vector1(),Vector1().cwiseProduct(Vector1()),
140 InnerVectorizedTraversal,CompleteUnrolling));
141 VERIFY(test_assign(Vector1(),Vector1().template cast<Scalar>(),
142 InnerVectorizedTraversal,CompleteUnrolling));
143
144
145 VERIFY(test_assign(Vector1(),Vector1(),
146 InnerVectorizedTraversal,CompleteUnrolling));
147 VERIFY(test_assign(Vector1(),Vector1()+Vector1(),
148 InnerVectorizedTraversal,CompleteUnrolling));
149 VERIFY(test_assign(Vector1(),Vector1().cwiseProduct(Vector1()),
150 InnerVectorizedTraversal,CompleteUnrolling));
151
152 VERIFY(test_assign(Matrix44(),Matrix44()+Matrix44(),
153 InnerVectorizedTraversal,InnerUnrolling));
154
155 VERIFY(test_assign(Matrix44u(),Matrix44()+Matrix44(),
156 EIGEN_UNALIGNED_VECTORIZE ? InnerVectorizedTraversal : LinearTraversal,
157 EIGEN_UNALIGNED_VECTORIZE ? InnerUnrolling : NoUnrolling));
158
159 VERIFY(test_assign(Matrix1(),Matrix1()+Matrix1(),
160 (Matrix1::InnerSizeAtCompileTime % PacketSize)==0 ? InnerVectorizedTraversal : LinearVectorizedTraversal,
161 CompleteUnrolling));
162

Callers

nothing calls this directly

Calls 6

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

Tested by

no test coverage detected