Spec-Zone.ru › Eigen3

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

Inheritance graph
struct keep_diag
template<typename MatrixType >
IncompleteLUT & compute (const MatrixType &amat)
ComputationInfo info () const
Сообщает, была ли предыдущая вычисление успешной. Подробнее...
void setDroptol (const RealScalar &droptol)
void setFillfactor (int fillfactor)
- Публичные методы, унаследованные от Eigen::SparseSolverBase< IncompleteLUT< _Scalar, int > >
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()

template<typename _Scalar , typename _StorageIndex = int>
template<typename MatrixType >
IncompleteLUT& Eigen::IncompleteLUT< _Scalar, _StorageIndex >::compute ( const MatrixType & amat )
inline

Вычислить неполное LU разложение с двойным порогом для матрицы mat. В этой версии не используется поворачивание.

info()

template<typename _Scalar , typename _StorageIndex = int>
ComputationInfo Eigen::IncompleteLUT< _Scalar, _StorageIndex >::info ( ) const
inline

Сообщает, была ли предыдущая вычисление успешной.

Возвращает
Success если вычисление прошло успешно, NumericalIssue если матрица, кажется, отрицательной.

setDroptol()

template<typename Scalar , typename StorageIndex >
void Eigen::IncompleteLUT< Scalar, StorageIndex >::setDroptol ( const RealScalar & droptol )

Установить параметр управления droptol

Параметры
droptol Отбросить любой элемент, модуль которого меньше этого порога

setFillfactor()

template<typename Scalar , typename StorageIndex >
void Eigen::IncompleteLUT< Scalar, StorageIndex >::setFillfactor ( int fillfactor )

Установить параметр управления fillfactor

Параметры
fillfactor Используется для вычисления числа fill_in наибольших элементов для сохранения в каждой строке.

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

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

Spec-Zone.ru

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