FactorizationLDLComplexSyRaw

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

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

или

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

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

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

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

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

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

Параметры

AF

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

ipiv

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

 

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

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

Примечания

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

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