Considérez ce qui suit (travail) extrait:Eigen const TensorMap
Eigen::ArrayXd x (8);
x << 1, 2, 3, 4, 5, 6, 7, 8;
Eigen::TensorMap<Eigen::Tensor<double, 2>> y (x.data(), 2, 4);
C'est fonctionne aussi:
const Eigen::ArrayXd const_x = x;
const Eigen::Map<const Eigen::ArrayXXd> z (const_x.data(), 2, 4);
J'essaie de comprendre pourquoi je ne peux pas le faire si:
const Eigen::TensorMap<const Eigen::Tensor<double, 2>> const_y (const_x.data(), 2, 4);
J'utilise Eigen 3.3.3 (également essayé 3.3.4)
Pouvez-vous ajouter votre compilation message d'erreur? –
Essayez "const Eigen :: TensorMap> const_y (const_x.data(), 2, 4);". Notez le "const double" dans Eigen :: Tenseur. –
Avez-vous essayé la suggestion de @CarlodelMundo? Cela semble fonctionner, même si ce n'est pas une syntaxe Eigen standard - mais le module Tensor dans son ensemble ne suit pas plusieurs standards Eigen (en commençant par le nommer 'TensorMap', au lieu de' Map 'et' Map '). –
chtz