- FactorizationQR
- FactorizationQRNonNeg
- FactorizationQRPivot
- FactorizationQRTallSkinny
- FactorizationLQ
- FactorizationLQShortWide
- FactorizationQL
- FactorizationRQ
- FactorizationRZ
- FactorizationQR2
- FactorizationRQ2
FactorizationLQShortWide
Вычисляет блочное LQ-разложение низкой широкой матрицы размера m на n (m<n): A = L * Q. Функция LAPACK LASWLQ.
Вычисления для типа matrix<double>
bool matrix::FactorizationLQShortWide(
|
Вычисления для типа matrix<float>
bool matrix::FactorizationLQShortWide(
|
Вычисления для типа matrix<complex>
bool matrix::FactorizationLQShortWide(
|
Вычисления для типа matrix<complexf>
bool matrix::FactorizationLQShortWide(
|
Параметры
reduced
[in] Режим вычислений. Если параметр reduced установлен в значение true, матрицы L и Q вычисляются с укороченными размерностями (M,K), (K,N). Если параметр reduced установлен в значение false, выполняется полный расчет матриц L и Q с размерностями (M,N), (N,N).
mb
[in,out] Размер блока строк для блочного LQ-разложения. M >= MB >= 1. Если в параметре передано значение 0, оптимальное значение MB будет вычислено функцией ILAENV и возвращено.
nb
[in,out] Размер блока столбцов для блочного LQ-разложения. NB > M. Если в параметре передано значение 0, оптимальное значение NB будет вычислено функцией ILAENV и возвращено.
L
[out] Нижнетреугольная матрица L.
Q
[out] Ортогональная или унитарная матрица Q.
Возвращаемое значение
Возвращает true в случае успеха, иначе false в случае ошибки.
Примечание
Если reduced = true, матрица L имеет размер m на m, матрица Q — m на n.
Если reduced = false, матрица L имеет размер m на n, матрица Q — n на n.
Несмотря на то, что LAPACK-функция ILAENV рассчитывает оптимальные значения MB и NB, можно самостоятельно подобрать эти параметры с учётом размера кеша процессора. Это даст значительный прирост производительности. Хорошее правило:
MB = min(M, 32 или 64 или 128)
NB = max(2*M, cache_bytes / (sizeof(type)*M))
NB = max(NB, M + MB)
NB = min(NB, N-1)