Spec-Zone.ru › Eigen3

Eigen::BlockSparseMatrix

template<typename _Scalar, int _BlockAtCompileTime, int _Options, typename _StorageIndex>
class Eigen::BlockSparseMatrix< _Scalar, _BlockAtCompileTime, _Options, _StorageIndex >

Многофункциональное разреженное представление матрицы, где каждый элемент — это блок.

Этот класс предоставляет функции для работы с блочно-разреженными матрицами, хранящимися в представлении, подобном BSR. Существуют два основных типа:

  1. Все блоки имеют одинаковое количество строк и столбцов, называемое размером блока в дальнейшем. В этом случае, если этот размер блока известен на этапе компиляции, он может быть задан как параметр шаблона, как
    BlockSparseMatrix<Scalar, 3, ColMajor> bmat(b_rows, b_cols);
    
    Здесь bmat — это блочно-разреженная матрица b_rows x b_cols, где каждый коэффициент — это плотная матрица 3x3. Если размер блока фиксирован, но будет задан во время выполнения,
    BlockSparseMatrix<Scalar, Dynamic, ColMajor> bmat(b_rows, b_cols);
    bmat.setBlockSize(block_size);
    
  2. Второй случай — для блочно-разреженных матриц с переменным размером блоков. Здесь каждый блок имеет свои собственные размеры. Единственное ограничение заключается в том, что все блоки в строке (соответственно, в столбце) должны иметь одинаковое количество строк (соответственно, столбцов). Таким образом, в этом случае необходимо описать структуру матрицы, вызвав setBlockLayout(rowBlocks, colBlocks).

В любом из предыдущих случаев матрицу можно заполнить, вызвав setFromTriplets(). Обычную разреженную матрицу можно преобразовать в блочно-разреженную и наоборот. Очевидно, необходимо предварительно описать структуру блоков, вызвав либо setBlockSize() для блоков фиксированного размера, либо setBlockLayout для блоков переменного размера.

Параметры шаблона
_Scalar Тип скаляра
_BlockAtCompileTime Параметр структуры блоков. Он принимает следующие значения Dynamic : размер блока известен во время выполнения число : фиксированный размер блока известен на этапе компиляции
Inheritance graph
Индекс blockCols () const
Индекс blockColsIndex (Индекс bj) const
Индекс blockPtr (Индекс id) const
Индекс blockRows () const
Индекс blockRowsIndex (Индекс bi) const
BlockSparseMatrix (const BlockSparseMatrix &other)
Конструктор копирования.
template<typename MatrixType >
BlockSparseMatrix (const MatrixType &spmat)
Конструктор из разреженной матрицы.
BlockSparseMatrix (Индекс brow, Индекс bcol)
Создать и переопределить размер.
Map< const BlockScalar > coeff (Индекс brow, Индекс bcol) const
Ref< BlockScalar > coeffRef (Индекс brow, Индекс bcol)
Индекс cols () const
Индекс innerToBlock (Индекс inner) const
bool isCompressed () const
для совместимости с классом SparseMatrix
Индекс nonZeros () const
Индекс nonZerosBlocks () const
template<typename MatrixType >
BlockSparseMatrix & operator= (const MatrixType &spmat)
Присваивание из разреженной матрицы с тем же порядком хранения. Подробнее...
Индекс outerToBlock (Индекс outer) const
void reserve (const Индекс nonzerosblocks)
Выделить внутренний массив указателей на блоки и их внутренние индексы. Подробнее...
void resize (Индекс brow, Индекс bcol)
Установить количество строк и столбцов блоков.
Индекс rows () const
void setBlockLayout (const VectorXi &rowBlocks, const VectorXi &colBlocks)
Установить макет блоков строк и столбцов,. Подробнее...
void setBlockSize (Индекс blockSize)
установить размер блока во время выполнения для макета блока фиксированного размера Подробнее...
template<typename MatrixType >
void setBlockStructure (const MatrixType &blockPattern)
Установить шаблон ненулевых блоков матрицы. Подробнее...
template<typename InputIterator >
void setFromTriplets (const InputIterator &begin, const InputIterator &end)
Заполнить значения в матрице из списка троек. Подробнее...

blockCols()

template<typename _Scalar , int _BlockAtCompileTime, int _Options, typename _StorageIndex >
Индекс Eigen::BlockSparseMatrix< _Scalar, _BlockAtCompileTime, _Options, _StorageIndex >::blockCols ( ) const
inline
Возвращает
количество столбцов, сгруппированных по блокам

blockColsIndex()

template<typename _Scalar , int _BlockAtCompileTime, int _Options, typename _StorageIndex >
Индекс Eigen::BlockSparseMatrix< _Scalar, _BlockAtCompileTime, _Options, _StorageIndex >::blockColsIndex ( Индекс bj ) const
inline
Возвращает
начальный индекс bj блока столбца

blockPtr()

template<typename _Scalar , int _BlockAtCompileTime, int _Options, typename _StorageIndex >
Индекс Eigen::BlockSparseMatrix< _Scalar, _BlockAtCompileTime, _Options, _StorageIndex >::blockPtr ( Индекс id ) const
inline
Возвращает
начальную позицию блока id в массиве значений

blockRows()

template<typename _Scalar , int _BlockAtCompileTime, int _Options, typename _StorageIndex >
Индекс Eigen::BlockSparseMatrix< _Scalar, _BlockAtCompileTime, _Options, _StorageIndex >::blockRows ( ) const
inline
Возвращает
количество строк, сгруппированных по блокам

blockRowsIndex()

template<typename _Scalar , int _BlockAtCompileTime, int _Options, typename _StorageIndex >
Индекс Eigen::BlockSparseMatrix< _Scalar, _BlockAtCompileTime, _Options, _StorageIndex >::blockRowsIndex ( Индекс bi ) const
inline
Возвращает
начальный индекс блока строки bi

coeff()

template<typename _Scalar , int _BlockAtCompileTime, int _Options, typename _StorageIndex >
Map<const BlockScalar> Eigen::BlockSparseMatrix< _Scalar, _BlockAtCompileTime, _Options, _StorageIndex >::coeff ( Индекс brow,
Индекс bcol
) const
inline
Возвращает
значение блока (i,j) в виде матрицы Eigen Dense Matrix

coeffRef()

template<typename _Scalar , int _BlockAtCompileTime, int _Options, typename _StorageIndex >
Ref<BlockScalar> Eigen::BlockSparseMatrix< _Scalar, _BlockAtCompileTime, _Options, _StorageIndex >::coeffRef ( Индекс brow,
Индекс bcol
)
inline
Возвращает
ссылку на блок (i,j) в виде матрицы Eigen Dense Matrix

cols()

template<typename _Scalar , int _BlockAtCompileTime, int _Options, typename _StorageIndex >
Индекс Eigen::BlockSparseMatrix< _Scalar, _BlockAtCompileTime, _Options, _StorageIndex >::cols ( ) const
inline
Возвращает
количество столбцов

innerToBlock()

template<typename _Scalar , int _BlockAtCompileTime, int _Options, typename _StorageIndex >
Индекс Eigen::BlockSparseMatrix< _Scalar, _BlockAtCompileTime, _Options, _StorageIndex >::innerToBlock ( Индекс inner ) const
inline
Возвращает
индекс блока, к которому относится inner

nonZeros()

template<typename _Scalar , int _BlockAtCompileTime, int _Options, typename _StorageIndex >
Индекс Eigen::BlockSparseMatrix< _Scalar, _BlockAtCompileTime, _Options, _StorageIndex >::nonZeros ( ) const
inline
Возвращает
общее количество ненулевых элементов, включая возможные явные нули в блоках

nonZerosBlocks()

template<typename _Scalar , int _BlockAtCompileTime, int _Options, typename _StorageIndex >
Индекс Eigen::BlockSparseMatrix< _Scalar, _BlockAtCompileTime, _Options, _StorageIndex >::nonZerosBlocks ( ) const
inline
Возвращает
количество ненулевых блоков

operator=()

template<typename _Scalar , int _BlockAtCompileTime, int _Options, typename _StorageIndex >
template<typename MatrixType >
BlockSparseMatrix& Eigen::BlockSparseMatrix< _Scalar, _BlockAtCompileTime, _Options, _StorageIndex >::operator= ( const MatrixType & spmat )
inline

Присваивание из разреженной матрицы с тем же порядком хранения.

Преобразование из разреженной матрицы в блочно-разреженную матрицу.

Предупреждение
Перед вызовом этой функции необходимо вызвать либо setBlockLayout() (матрицы с блоками переменной длины) или setBlockSize() (для блоков фиксированного размера).

outerToBlock()

template<typename _Scalar , int _BlockAtCompileTime, int _Options, typename _StorageIndex >
Индекс Eigen::BlockSparseMatrix< _Scalar, _BlockAtCompileTime, _Options, _StorageIndex >::outerToBlock ( Индекс outer ) const
inline
Возвращает
индекс блока, к которому относится outer

reserve()

template<typename _Scalar , int _BlockAtCompileTime, int _Options, typename _StorageIndex >
void Eigen::BlockSparseMatrix< _Scalar, _BlockAtCompileTime, _Options, _StorageIndex >::reserve ( const Индекс nonzerosblocks )
inline

Выделить внутренний массив указателей на блоки и их внутренние индексы.

Примечание
Для блоков фиксированного размера вызовите setBlockSize(), чтобы установить блок. И для блоков переменного размера вызовите setBlockLayout() перед использованием этой функции
Параметры
nonzerosblocks Количество ненулевых блоков. Общее количество ненулевых элементов вычисляется в setBlockLayout() для блоков переменного размера
См. также
setBlockSize()

rows()

template<typename _Scalar , int _BlockAtCompileTime, int _Options, typename _StorageIndex >
Index Eigen::BlockSparseMatrix< _Scalar, _BlockAtCompileTime, _Options, _StorageIndex >::rows ( ) const
inline
Возвращает
количество строк

setBlockLayout()

template<typename _Scalar , int _BlockAtCompileTime, int _Options, typename _StorageIndex >
void Eigen::BlockSparseMatrix< _Scalar, _BlockAtCompileTime, _Options, _StorageIndex >::setBlockLayout ( const VectorXi & rowBlocks,
const VectorXi & colBlocks
)
inline

Устанавливает макет блоков строк и столбцов.

Эта функция устанавливает размер каждого блока строки и столбца. Поэтому эта функция должна использоваться только для блоков с переменным размером.

Параметры
rowBlocks : Количество строк на блок строки
colBlocks : Количество столбцов на блок столбца
См. также
resize(), setBlockSize()

setBlockSize()

template<typename _Scalar , int _BlockAtCompileTime, int _Options, typename _StorageIndex >
void Eigen::BlockSparseMatrix< _Scalar, _BlockAtCompileTime, _Options, _StorageIndex >::setBlockSize ( Index blockSize )
inline

устанавливает размер блока во время выполнения для макета блока фиксированного размера

Вызывайте это только для блоков фиксированного размера

setBlockStructure()

template<typename _Scalar , int _BlockAtCompileTime, int _Options, typename _StorageIndex >
template<typename MatrixType >
void Eigen::BlockSparseMatrix< _Scalar, _BlockAtCompileTime, _Options, _StorageIndex >::setBlockStructure ( const MatrixType & blockPattern )
inline

Устанавливает шаблон ненулевых блоков матрицы.

Учитывая разреженную матрицу, описывающую шаблон ненулевых блоков, эта функция подготавливает внутренние указатели для значений. После вызова этой функции любой ненулевой блок (bi, bj) можно установить с помощью простого вызова coeffRef(bi,bj).

Предупреждение
Перед вызовом этой функции необходимо вызвать либо setBlockLayout() (матрицы с блоками переменного размера) или setBlockSize() (для блоков фиксированного размера).
Параметры
blockPattern Разреженная матрица булевых элементов, описывающих структуру блока
См. также
setBlockLayout()
setBlockSize()

setFromTriplets()

template<typename _Scalar , int _BlockAtCompileTime, int _Options, typename _StorageIndex >
template<typename InputIterator >
void Eigen::BlockSparseMatrix< _Scalar, _BlockAtCompileTime, _Options, _StorageIndex >::setFromTriplets ( const InputIterator & begin,
const InputIterator & end
)
inline

Заполните значения в матрице из списка троек.

Каждый элемент тройки хранит блок в плотной матрице Eigen. Класс InputIterator должен предоставлять функции row(), col() и value()

Примечание
Для блоков фиксированного размера вызовите setBlockSize() перед этой функцией.

FIXME Не принимайте дубликаты


The documentation for this class was generated from the following file:
  • BlockSparseMatrix.h

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

Spec-Zone.ru

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