FactorizationLDLRaw

Вычисляет разложение для вещественной симметричной или комплексной эрмитовой матрицы A с использованием диагонального выбора ведущего элемента по методу Банча-Кауфмана. Разложение имеет вид:

   A = L * D * L**T, если используется нижнетреугольная или симметричная матрица A,

или

   A = U**T * D * U, если используется верхнетреугольная матрица A,

где L — нижнетреугольная матрица с единицами на диагонали, U — верхнетреугольная матрица с единицами на диагонали. D — симметричная блочно-диагональная матрица с диагональными блоками размером 1x1 и 2x2. LAPACK-функции SYTRF и HETRF.

Вычисления для типа matrix<double>

bool  matrix::FactorizationLDLRaw(
   matrix&         AF,           // факторизованная матрица A
   long[]&         ipiv          // массив индексов опорных точек
   );

Вычисления для типа matrix<float>

bool  matrixf::FactorizationLDLRaw(
   matrixf&        AF,           // факторизованная матрица A
   long[]&         ipiv          // массив индексов опорных точек
   );

Вычисления для типа matrix<complex>

bool  matrixc::FactorizationLDLRaw(
   matrixc&        AF,           // факторизованная матрица A
   long[]&         ipiv          // массив индексов опорных точек
   );

Вычисления для типа matrix<complexf>

bool  matrixcf::FactorizationLDLRaw(
   matrixcf&       AF,           // факторизованная матрица A
   long[]&         ipiv          // массив индексов опорных точек
   );

Параметры

AF

[out] Факторизованная матрица A. Блочно-диагональная матрица D и множитель L или U.

ipiv

[out]  Массив индексов перестановок размера N с информацией о выполненных перестановках и блочной структуре матрицы D.

 

Возвращаемое значение

Возвращает true в случае успеха и false в случае ошибки.

Примечания

На вход можно подать симметричную (эрмитову), верхнетреугольную или нижнетреугольную матрицу. Треугольные матрицы подразумеваются симметричными (эрмитово-сопряженными).

Матрица AF и массив индексов ipiv[] являются "сырым" выходом функции SYTRF (HETRF) и могут использоваться для последующих вычислений методами LDLLinearEquationsSolution, LDLInverse и LDLCondNumReciprocal.