Документы говорят:
Эта функция использует библиотеку SuperLU.
Код проходит через:
return _superlu.gstrf(N, A.nnz, A.data, A.indices, A.indptr,
csc_construct_func=csc_construct_func,
ilu=True, options=_options)
, то есть просто оболочка SuperLU:
static char gstrf_doc[] = "gstrf(A, ...)\n\
\n\
performs a factorization of the sparse matrix A=*(N,nnz,nzvals,rowind,colptr) and \n\
returns a factored_lu object.\n\
\n\
arguments\n\
---------\n\
\n\
Matrix to be factorized is represented as N,nnz,nzvals,rowind,colptr\n\
as separate arguments. This is compressed sparse column representation.\n\
\n\
N number of rows and columns \n\
nnz number of non-zero elements\n\
nzvals non-zero values \n\
rowind row-index for this column (same size as nzvals)\n\
colptr index into rowind for first non-zero value in this column\n\
size is (N+1). Last value should be nnz. \n\
\n\
additional keyword arguments:\n\
-----------------------------\n\
options specifies additional options for SuperLU\n\
(same keys and values as in superlu_options_t C structure,\n\
and additionally 'Relax' and 'PanelSize')\n\
\n\
ilu whether to perform an incomplete LU decomposition\n\
(default: false)\n\
";
посмотрите на последний аргумент -> ilu!
splu выглядит следующим образом:
return _superlu.gstrf(N, A.nnz, A.data, A.indices, A.indptr,
csc_construct_func=csc_construct_func,
ilu=False, options=_options)
, что указывает на то, что весь полный и неполный логи c передается в SuperLU.
Теперь давайте рассмотрим SuperLU's manual :
2.7 Прекондиционер неполной LU-факторизации (ILU)
Начиная с версии SuperLU 4.0, мы предоставляем подпрограммы ILU, которые будут использоваться в качестве предобусловливателей для итерационных решателей. Наш метод ILU можно рассматривать как вариант метода ILUTP, первоначально предложенного Саадом [31], который сочетает в себе стратегию двойного отбрасывания с числовым поворотом («T» обозначает порог, а «P» обозначает поворот).
Ссылка [31]:
Саад, Юсеф. «ILUT: двухпороговая неполная факторизация LU». Числовая линейная алгебра с приложениями 1.4 (1994): 387-402.
Для меня это выглядит ПРЯМЫМ методом ( Эйген тоже использует его ) , но я думаю, что вы сможете найти то, что вам нужно знать.