FactorizationLDL

Вычисляет разложение для вещественной симметричной или комплексной эрмитовой матрицы 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::FactorizationLDL(
   matrix&         L,            // нижнетреугольная или верхнетреугольная матрица
   matrix&         D             // диагональная матрица D
   );

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

bool  matrix::FactorizationLDL(
   matrixf&        L,            // нижнетреугольная или верхнетреугольная матрица
   matrixf&        D             // диагональная матрица D
   );

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

bool  matrix::FactorizationLDL(
   matrixc&        L,            // нижнетреугольная или верхнетреугольная матрица
   matrixc&        D             // диагональная матрица D
   );

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

bool  matrix::FactorizationLDL(
   matrixcf&       L,            // нижнетреугольная или верхнетреугольная матрица
   matrixcf&       D             // диагональная матрица D
   );

Параметры

L

[out] Нижнетреугольная или верхнетреугольная матрица с единицами по диагонали.

D

[out]  Симметричная блочно-диагональная матрица D.

 

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

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

Примечание

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