Spec-Zone.ru › Eigen3

Eigen::Tensor

шаблон<typename Scalar_, int NumIndices_, int Options_, typename IndexType_>
класс Eigen::Tensor< Scalar_, NumIndices_, Options_, IndexType_ >

Класс тензора.

Класс Tensor является рабочим классом для всех плотных тензоров в библиотеке Eigen.

Класс Tensor пока охватывает только объекты с динамическим размером.

Первые два параметра шаблона обязательны:

Параметры шаблона
Scalar_ Числовой тип, например, float, double, int или std::complex<float>. Также поддерживаются пользовательские типы скаляров (см. здесь).
NumIndices_ Количество индексов (т.е. ранг тензора)

Остальные параметры шаблона необязательны – в большинстве случаев вам не нужно о них беспокоиться.

Параметры шаблона
Options_ Сочетание RowMajor или ColMajor, и AutoAlign или DontAlign. Первый параметр управляет порядком хранения, и по умолчанию равен строчному. Последний параметр управляет выравниванием, необходимом для векторизации. По умолчанию тензоры выравниваются. Обратите внимание, что тензоры в настоящее время не поддерживают операции, которые выигрывают от векторизации. Поддержка таких операций (т.е. сложение двух тензоров и т.д.) планируется.

Вы можете получить доступ к элементам тензоров с помощью обычного индексирования:

Eigen::Tensor<double, 4> t(10, 10, 10, 10);
t(0, 1, 2, 3) = 42.0;

Этот класс можно расширить с помощью механизма плагинов, описанного на странице Расширение MatrixBase (и других классов), определив препроцессорную метку EIGEN_TENSOR_PLUGIN.

Некоторые замечания:

Связь с другими частями Eigen:
Конечная цель разработки этого класса — иметь иерархию, аналогичную используемой в Eigen для матриц, чтобы извлечение блоков или использование тензоров в выражениях было простым, включая интерфейс с кодом векторов/матриц, предоставляя методы .asMatrix() и .asVector() (или аналогичные) для тензоров ранга 2 и 1. Однако в настоящее время класс Tensor не предоставляет ни одной из этих функций и доступен только как самостоятельный класс, который просто позволяет получить доступ к коэффициентам. Кроме того, при реализации тензоров фиксированного размера количество параметров шаблона, вероятно, значительно изменится.

Порядки хранения

Inheritance graph
void resize (const array< Index, NumIndices > &dimensions)
шаблон<typename std::ptrdiff_t... Indices>
void resize (const Sizes< Indices... > &dimensions)
Tensor (const array< Index, NumIndices > &dimensions)

Tensor()

шаблон<typename Scalar_ , int NumIndices_, int Options_, typename IndexType_ >
Eigen::Tensor< Scalar_, NumIndices_, Options_, IndexType_ >::Tensor ( const array< Index, NumIndices > & dimensions )
inlineexplicit

Нормальный размер

resize() [1/2]

шаблон<typename Scalar_ , int NumIndices_, int Options_, typename IndexType_ >
void Eigen::Tensor< Scalar_, NumIndices_, Options_, IndexType_ >::resize ( const array< Index, NumIndices > & dimensions )
inline

Нормальный размер

resize() [2/2]

шаблон<typename Scalar_ , int NumIndices_, int Options_, typename IndexType_ >
шаблон<typename std::ptrdiff_t... Indices>
void Eigen::Tensor< Scalar_, NumIndices_, Options_, IndexType_ >::resize ( const Sizes< Indices... > & dimensions )
inline

Пользовательский размер


Документация для этого класса была сгенерирована из следующего файла:
  • Tensor.h

© Eigen.
Licensed under the MPL2 License.
https://eigen.tuxfamily.org/dox/unsupported/classEigen_1_1Tensor.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API