Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <eigen3/Eigen/Dense>
- int main(int argc, char const *argv[]) {
- /* code */
- const int M = 320;
- const int N = 640;
- const int K = 320;
- const int alpha = 2;
- const int beta = 1;
- Eigen::Matrix<int32_t, Eigen::Dynamic,Eigen::Dynamic> A = Eigen::Matrix<int32_t, Eigen::Dynamic,Eigen::Dynamic>::Random(M,K);
- Eigen::Matrix<int32_t, Eigen::Dynamic,Eigen::Dynamic> B = Eigen::Matrix<int32_t, Eigen::Dynamic,Eigen::Dynamic>::Random(K,N);
- Eigen::Matrix<int32_t, Eigen::Dynamic,Eigen::Dynamic> C = Eigen::Matrix<int32_t, Eigen::Dynamic,Eigen::Dynamic>::Random(M,N);
- //Following http://eigen.tuxfamily.org/dox/TopicWritingEfficientProductExpression.html
- C.noalias() += (A*alpha)*(B*beta); //WORKS
- C.noalias() += A*B;
- Eigen::Map<Eigen::Matrix<int32_t, M, K, Eigen::ColMajor> > map_a(A.data());
- Eigen::Map<Eigen::Matrix<int32_t, K, N, Eigen::ColMajor> > map_b(B.data());
- Eigen::Map<Eigen::Matrix<int32_t, M, N, Eigen::ColMajor> > map_c(C.data());
- map_c.noalias() += map_a*map_b; //WORKS
- map_c.noalias() += (map_a*alpha)*(map_b*beta); //COMPILE ERROR HERE
- return 0;
- }
Add Comment
Please, Sign In to add comment