执行 \(M\times N\)( \(M>N\)) 矩阵 \(A = Q*R\) 的 QR 分解并求解矩阵方程 \(A*X=B\)。
- 参数
-
| src1 | 指向以行优先顺序存储的输入矩阵 \(A\) 的指针。工作完成后,src1 包含上三角 \(N\times N\) 矩阵 \(R\)。src1 的下三角将填充基本反射器的向量。有关详细信息,请参见 [287] 和 Lapack 的 DGEQRF 文档。 |
| src1_step | 矩阵 \(A\) 中两个连续行之间的字节数。 |
| m | 矩阵 \(A\) 中的行数。 |
| n | 矩阵 \(A\) 中的列数。 |
| k | \(M\times K\) 矩阵 \(B\) 中右手向量的数量。 |
| src2 | 指向 \(M\times K\) 矩阵 \(B\) 的指针,该矩阵是系统 \(A*X=B\) 的右手边。\((B)\) 以行优先顺序存储。如果 src2 为空指针,则仅执行 QR 分解。否则,将求解系统,并且 src1 将用作临时缓冲区,因此在工作完成后,src2 包含系统 \(A*X=B\) 的解 \(X\)。 |
| src2_step | 矩阵 \(B\) 中两个连续行之间的字节数。 |
| dst | 指向基本反射器的标量因子的连续 \(N\times 1\) 数组的指针。有关详细信息,请参见 [287]。 |
| info | 指示分解是否成功。如果 *info 为零,则分解失败。 |
|
| int | hal_ni_QR32f (float *src1, size_t src1_step, int m, int n, int k, float *src2, size_t src2_step, float *dst, int *info) |
| |
| int | hal_ni_QR64f (double *src1, size_t src1_step, int m, int n, int k, double *src2, size_t src2_step, double *dst, int *info) |
| |
◆ hal_ni_QR32f()
| int hal_ni_QR32f |
( |
float * | src1, |
|
|
size_t | src1_step, |
|
|
int | m, |
|
|
int | n, |
|
|
int | k, |
|
|
float * | src2, |
|
|
size_t | src2_step, |
|
|
float * | dst, |
|
|
int * | info ) |
|
inline |
◆ hal_ni_QR64f()
| int hal_ni_QR64f |
( |
如果传入NULL,则假定尺度参数c为1.0。否则,指向的变量将被设置为最优尺度。 | src1, |
|
|
size_t | src1_step, |
|
|
int | m, |
|
|
int | n, |
|
|
int | k, |
|
|
如果传入NULL,则假定尺度参数c为1.0。否则,指向的变量将被设置为最优尺度。 | src2, |
|
|
size_t | src2_step, |
|
|
如果传入NULL,则假定尺度参数c为1.0。否则,指向的变量将被设置为最优尺度。 | dst, |
|
|
int * | info ) |
|
inline |