ReduceToHessenberg

Преобразует вещественную или комплексную общую матрицу A размера n на n к верхней форме Хессенберга H с помощью ортогонального преобразования подобия: Q**T * A * Q = H. Функция LAPACK GEHRD.

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

bool  matrix::ReduceToHessenberg(
   matrix&         H,            // верхняя матрица Хессенберга
   matrix&         reflect_q,    // q-рефлекторы
   vector&         tau_q         // скалярные множители элементарных отражателей Q
   );

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

bool  matrixf::ReduceToHessenberg(
   matrixf&        H,            // верхняя матрица Хессенберга
   matrixf&        reflect_q,    // q-рефлекторы
   vectorf&        tau_q         // скалярные множители элементарных отражателей Q
   );

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

bool  matrixc::ReduceToHessenberg(
   matrixc&        H,            // верхняя матрица Хессенберга
   matrixc&        reflect_q,    // q-рефлекторы
   vectorc&        tau_q         // скалярные множители элементарных отражателей Q
   );

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

bool  matrixcf::ReduceToHessenberg(
   matrixcf&       H,            // верхняя матрица Хессенберга
   matrixcf&       reflect_q,    // q- и p-рефлекторы
   vectorcf&       tau_q         // скалярные множители элементарных отражателей Q
   );

Параметры

H

[out]  Верхняя матрица Хессенберга.

reflect_q

[out] Перезаписанная матрица A. Элементы ниже первой поддиагонали вместе с массивом tau_q представляют ортогональную матрицу Q как произведение элементарных отражений.

tau_q

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

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

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

Примечание

Матрица Q может быть получена с помощью метода ReflectHessenbergToQ.