1 #ifndef _RHEOLEF_COMPILER_EIGEN_H
2 #define _RHEOLEF_COMPILER_EIGEN_H
27 #include "rheolef/compiler.h"
29 #pragma GCC diagnostic push
30 #pragma GCC diagnostic ignored "-Weffc++"
31 #pragma GCC diagnostic ignored "-Wignored-attributes"
32 #include <Eigen/Dense>
33 #include <Eigen/Sparse>
34 #include <unsupported/Eigen/CXX11/Tensor>
35 #pragma GCC diagnostic pop
40 template<
class T1,
class T2,
class T3>
43 const Eigen::Tensor<T1,3>&
a,
44 const Eigen::Matrix<T2,Eigen::Dynamic,1>&
b,
45 Eigen::Matrix<T3,Eigen::Dynamic,Eigen::Dynamic>&
c)
48 size_t ni =
a.dimension(0);
49 size_t nj =
a.dimension(1);
50 size_t nk =
a.dimension(2);
52 for (
size_t j = 0; j < nj; ++j) {
53 for (
size_t k = 0; k < nk; ++k) {
55 for (
size_t i = 0; i < ni; ++i) {
void contract0_tensor3_vector(const Eigen::Tensor< T1, 3 > &a, const Eigen::Matrix< T2, Eigen::Dynamic, 1 > &b, Eigen::Matrix< T3, Eigen::Dynamic, Eigen::Dynamic > &c)
This file is part of Rheolef.