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 #pragma GCC diagnostic ignored "-Wuninitialized"
33 #pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
34 #include <Eigen/Dense>
35 #include <Eigen/Sparse>
36 #include <unsupported/Eigen/CXX11/Tensor>
37 #pragma GCC diagnostic pop
42 template<
class T1,
class T2,
class T3>
45 const Eigen::Tensor<T1,3>&
a,
46 const Eigen::Matrix<T2,Eigen::Dynamic,1>&
b,
47 Eigen::Matrix<T3,Eigen::Dynamic,Eigen::Dynamic>&
c)
50 size_t ni =
a.dimension(0);
51 size_t nj =
a.dimension(1);
52 size_t nk =
a.dimension(2);
54 for (
size_t j = 0; j < nj; ++j) {
55 for (
size_t k = 0; k < nk; ++k) {
57 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.