ReflectBidiagonalToQP

Генерирует ортогональные матрицы Q и P**T (или P**H для комплексных типов), определяемые методом ReduceToBidiagonal при приведении вещественной или комплексной матрицы A к бидиагональному виду: A = Q * B * P**T. Матрицы Q и P**T представляют собой произведения элементарных отражений H(i) или G(i) соответственно. Функции Lapack ORGBR и UNGBR.

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

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

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

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

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

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

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

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

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

Параметры

tau_q

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

tau_p

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

Q

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

PT (PH)

[out]  Транспонированная (или эрмитово сопряженная) матрица P.

 

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

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

Примечание

Если m >= n, то матрица Q имеет размер m×n, а матрица PT имеет размер имеет размер n×n.

Если m < n, то матрица Q имеет размер m×m, а матрица PT имеет размер имеет размер m×n.