10 #define EIGEN_NO_STATIC_ASSERT
23 matAstatic.cwiseProduct(matBstatic.transpose()).sum() );
25 MatrixXf matAdynamic(1,3);
26 MatrixXf matBdynamic(3,1);
27 matAdynamic.setRandom();
28 matBdynamic.setRandom();
30 matAdynamic.cwiseProduct(matBdynamic.transpose()).sum() );
33 template<
typename TC,
typename TA,
typename TB>
38 for(
Index k=0;k<
A.cols();++k)
43 template<
typename T,
int Rows,
int Cols,
int Depth,
int OC,
int OA,
int OB>
44 typename internal::enable_if<! ( (Rows ==1&&Depth!=1&&OA==
ColMajor)
45 || (Depth==1&&Rows !=1&&OA==
RowMajor)
61 int rows = internal::random<int>(1,64);
62 int cols = internal::random<int>(1,64);
63 int depth = internal::random<int>(1,65);
72 for(
Index k=0;k<
A.cols();++k)
73 D.coeffRef(
i,
j) |=
A.coeff(
i,k) &
B.coeff(k,
j);
77 MatrixX
E =
B.transpose();
83 template<
typename T,
int Rows,
int Cols,
int Depth,
int OC,
int OA,
int OB>
84 typename internal::enable_if< ( (Rows ==1&&Depth!=1&&OA==
ColMajor)
85 || (Depth==1&&Rows !=1&&OA==
RowMajor)
94 template<
typename T,
int Rows,
int Cols,
int Depth>
110 int rows = internal::random<int>(1,12);
111 int cols = internal::random<int>(1,12);
112 int depth = internal::random<int>(1,12);
139 int rows = internal::random<int>(1,12);
140 int cols = internal::random<int>(1,12);
141 int depth = internal::random<int>(1,12);
175 int rows = internal::random<int>(1,12);
176 int cols = internal::random<int>(1,12);
177 int depth = internal::random<int>(1,12);
205 template<
typename T,
int N,
int M,
int K>
220 C.noalias() =
A.template topLeftCorner<1,M>() * (
B.template topRows<M>()+
B.template bottomRows<M>());
221 R.noalias() =
A.template topLeftCorner<1,M>() * (
B.template topRows<M>()+
B.template bottomRows<M>()).
eval();
231 C.noalias() = (
B.template leftCols<M>()+
B.template rightCols<M>()) *
A.template topLeftCorner<M,1>();
232 R.noalias() = (
B.template leftCols<M>()+
B.template rightCols<M>()).
eval() *
A.template topLeftCorner<M,1>();
241 Vector2d
b = Vector2d::Random() ;
243 res.noalias() = 1. * (
A *
b);
245 res.noalias() = 1.*
A *
b;
247 res.noalias() = (1.*
A).lazyProduct(
b);
249 res.noalias() = (1.*
A).lazyProduct(1.*
b);
251 res.noalias() = (
A).lazyProduct(1.*
b);
260 Vector3f
v = Vector3f::Random();
277 for(
int k=0; k<79; ++k)
312 CALL_SUBTEST_7(( test_linear_but_not_vectorizable<float,2,1,Dynamic>() ));
313 CALL_SUBTEST_7(( test_linear_but_not_vectorizable<float,3,1,Dynamic>() ));
314 CALL_SUBTEST_7(( test_linear_but_not_vectorizable<float,2,1,16>() ));