Eigen::IncompleteLUT
template<typename _Scalar, typename _StorageIndex = int>
class Eigen::IncompleteLUT< _Scalar, _StorageIndex >
Неполное LU разложение с двойной стратегией порога.
Этот класс следует концепции решателя разреженных систем.
Во время численного разложения используются два правила отбрасывания: 1) любой элемент, модуль которого меньше некоторого порога, отбрасывается. Этот порог получается путём умножения входного порога droptol на среднее значение всех исходных элементов в текущей строке. 2) После исключения строки сохраняются только fill наибольших элементов в части L и fill наибольших элементов в части U (кроме диагонального элемента). Обратите внимание, что fill вычисляется из входного параметра fillfactor, который используется для управления заполнением по отношению к начальному количеству ненулевых элементов.
Два крайних случая: когда droptol=0 (для сохранения всех fill*2 наибольших элементов) и когда fill=n/2 с droptol отличным от нуля.
Ссылки: Юсеф Саад, ILUT: Неполное LU разложение с двойным порогом, Численная линейная алгебра с приложениями, 1(4), стр. 387-402, 1994.
ПРИМЕЧАНИЕ: Данная реализация основана на реализации ILUT в пакете SPARSKIT, Авторское право (C) 2005, Регенты Университета Миннесоты, выпущенная в соответствии с условиями GNU LGPL: http://www-users.cs.umn.edu/~saad/software/SPARSKIT/README Однако Юсеф Саад разрешил нам повторно лицензировать его код ILUT под MPL2. См. архив рассылки Eigen, тема: ILUT, дата: 8 июля 2012 г.: http://listengine.tuxfamily.org/lists.tuxfamily.org/eigen/2012/07/msg00064.html или на GMANE: http://comments.gmane.org/gmane.comp.lib.eigen/3302
| struct | keep_diag |
| template<typename MatrixType > | |
| IncompleteLUT & | compute (const MatrixType &amat) |
| ComputationInfo | info () const |
| Сообщает, была ли предыдущая вычисление успешной. Подробнее... |
|
| void | setDroptol (const RealScalar &droptol) |
| void | setFillfactor (int fillfactor) |
|
| |
| const Solve< IncompleteLUT< _Scalar, int >, Rhs > | solve (const MatrixBase< Rhs > &b) const |
| const Solve< IncompleteLUT< _Scalar, int >, Rhs > | solve (const SparseMatrixBase< Rhs > &b) const |
| SparseSolverBase () | |
compute()
| inline |
Вычислить неполное LU разложение с двойным порогом для матрицы mat. В этой версии не используется поворачивание.
info()
| inline |
Сообщает, была ли предыдущая вычисление успешной.
- Возвращает
-
Successесли вычисление прошло успешно,NumericalIssueесли матрица, кажется, отрицательной.
setDroptol()
| void Eigen::IncompleteLUT< Scalar, StorageIndex >::setDroptol | ( | const RealScalar & | droptol | ) |
Установить параметр управления droptol
- Параметры
-
droptol Отбросить любой элемент, модуль которого меньше этого порога
setFillfactor()
| void Eigen::IncompleteLUT< Scalar, StorageIndex >::setFillfactor | ( | int | fillfactor | ) |
Установить параметр управления fillfactor
- Параметры
-
fillfactor Используется для вычисления числа fill_inнаибольших элементов для сохранения в каждой строке.
Документация для этого класса была сгенерирована из следующего файла:
© Eigen.
Licensed under the MPL2 License.
https://eigen.tuxfamily.org/dox/classEigen_1_1IncompleteLUT.html