Eigen :: सरणी क्या है (Eigen :: Array नहीं)

Sep 02 2020

मैं eigen टेंसर लाइब्रेरी का उपयोग कर रहा हूं और यह मुझे लगता है कि फेरबदल () विधि इनपुट के रूप में एक वस्तु चाहता है Eigen :: सरणी <प्रकार, int>।

मेरे कार्यान्वयन में मेरे पास एक std है: int की सूची मुझे फेरबदल करने के लिए पास करने की आवश्यकता है (निश्चित रूप से मैं दूसरे इंटम पैराम (रैंक) को केवल रनटाइम पर जानता हूं!)

जवाब

3 dtell Sep 02 2020 at 01:17

कुछ समय पहले Eigen का Tensor मॉड्यूल C ++ 03 संगत था। इसका मतलब है कि std::arrayउपलब्ध नहीं है। उस कारण से Tensor मॉड्यूल ने अपने स्वयं के Eigen::arrayवर्ग को परिभाषित किया जो वास्तव में std::arrayC ++ 11 उपलब्ध होने के लिए एक टाइपराइफ है।

फ़ाइल असमर्थित / Eigen / CXX11 / src / उपयोग / EmulateArray.h में कुछ ऐसा होता है जो फोड़े के लिए नीचे आता है (छद्म कोड)

#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

Tensor मॉड्यूल ने C ++ 03 संगतता को गिरा दिया है और इस कोड के कुछ हिस्सों को शायद हटाया जा सकता है।