¿Qué es un Eigen :: array (no Eigen :: Array)?

Sep 02 2020

Estoy usando la biblioteca de tensor propio y me parece que el método shuffle () quiere como entrada un objeto Eigen :: array <type, int>.

En mi implementación, tengo un std :: list de int que necesito pasar para mezclar (¡por supuesto, conozco el segundo int param (el rango) solo en tiempo de ejecución!)

Respuestas

3 dtell Sep 02 2020 at 01:17

No hace mucho tiempo, el módulo Tensor de Eigen era compatible con C ++ 03. Eso implica que std::arrayno está disponible. Por esa razón, el módulo Tensor definió su propia Eigen::arrayclase que de hecho es un typedef para std::arraysi C ++ 11 está disponible.

El archivo unsupported / Eigen / CXX11 / src / util / EmulateArray.h contiene algo que se reduce a (pseudo-código)

#if C++11 not available
  // Define a custom std::array like Eigen::array class
#else
  template <typename T, std::size_t N> using array = std::array<T, N>;
#endif

El módulo Tensor ha eliminado la compatibilidad con C ++ 03 y probablemente se podrían eliminar partes de este código.