ReflectTridiagonalToQ

Генерирует ортогональную матрицу Q, которая представляется в виде произведения n-1 элементарных отражений порядка n, как при использовании метода ReduceSymmetricToTridiagona:

Если верхняя, Q = H(n-1) . . . H(2) H(1),

если нижняя, Q = H(1) H(2) . . . H(n-1).

Lapack-функции ORGTR, UNGTR.

Входными данными является преобразованная матрица reflect_q того же размера n×n, что и исходная матрица A.

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

bool  matrix::ReflectTridiagonalToQ(
   vector&         tau_q,        // скалярные коэффициенты элементарных отражателей Q
   matrix&                     // матрица Q
   );

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

bool  matrix::ReflectTridiagonalToQ(
   vectorf&        tau_q,        // скалярные коэффициенты элементарных отражателей Q
   matrixf&                    // матрица Q
   );

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

bool  matrix::ReflectTridiagonalToQ(
   vectorc&        tau_q,        // скалярные коэффициенты элементарных отражателей Q
   matrixc&                    // матрица Q
   );

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

bool  matrix::ReflectTridiagonalToQ(
   vectorcf&       tau_q,        // скалярные коэффициенты элементарных отражателей Q
   matrixcf&                   // матрица Q
   );

Параметры

tau_q

[in] Вектор скалярных множителей элементарных отражателей, представляющих ортогональную матрицу Q.

Q

[out]  Ортогональная матрица Q.

 

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

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