Я хочу использовать LAPACK для вычисления Q * x и Q ^ T * x, где Q получается из уменьшенной QR-факторизации матрицы m на n A (m> n), хранящейся в форме отражателей домохозяев и вектора tau, полученный из DGEQRF, а x - это вектор длины n в случае Q * x и длины m в случае Q ^ T * x.
Документация DORMQR утверждает, что x перезаписывается с результатом, что уже смущает меня, поскольку x и Q * x имеют разную размерность, если исходная матрица A и, следовательно, ее уменьшенное Q не являются квадратными. Кроме того, в нем говорится, что
"Q имеет порядок M, если SIDE = 'L', и порядок N, если SIDE = 'R'."
В моем случае применяется только первая половина, и М относится к длине х. Что они подразумевают под заказом? Я редко когда-либо слышал термин «порядок» в контексте неквадратных матриц, и если это так, это было бы что-то вроде m на n, а не просто одно число. Они означают ранг?
Могу ли я даже использовать DORMQR для вычисления Q * x и Q ^ T * x для неквадратного Q, или он не предназначен для этого? Нужно ли дополнять x нулями?