对方阵 \(LU\) 分解 \(A=P*L*U\)(其中 \(P\) 是置换矩阵),并求解矩阵方程 \(A*X=B\)。函数通过参数 info 返回置换 \(P\) 的符号。
- 参数
-
src1 | 指向输入矩阵 \(A\) 的指针,按行优先顺序存储。完成工作后,src1 至少包含 \(LU\) 分解的 \(U\) 部分,这适用于确定行列式运算:\(det(A)=sign*\prod_{j=1}^{M}a_{jj}\)。 |
src1_step | 矩阵 \(A\) 的两行之间的字节数。 |
m | 方阵 \(A\) 的大小。 |
src2 | 指向 \(M\times N\) 矩阵 \(B\) 的指针,该矩阵是系统 \(A*X=B\) 的右侧。\(B\) 按行优先顺序存储。如果 src2 为空指针,则只执行 \(LU\) 分解。完成工作后,src2 将包含系统 \(A*X=B\) 的解 \(X\)。 |
src2_step | 矩阵 \(B\) 的两行之间的字节数。 |
n | \(M\times N\) 矩阵 \(B\) 中右侧向量的数量。 |
info | 指示分解成功。如果 *info 等于零,表示分解失败,否则 *info 等于 \(sign\)。 |
|
int | hal_ni_LU32f (float *src1, size_t src1_step, int m, float *src2, size_t src2_step, int n, int *info) |
|
int | hal_ni_LU64f (double *src1, size_t src1_step, int m, double *src2, size_t src2_step, int n, int *info) |
|
◆ hal_ni_LU32f()
int hal_ni_LU32f |
( |
float * |
src1, |
|
|
size_t |
src1_step, |
|
|
int |
m, |
|
|
float * |
src2, |
|
|
size_t |
src2_step, |
|
|
int |
n, |
|
|
int * |
info |
|
) |
| |
|
inline |
◆ hal_ni_LU64f()
int hal_ni_LU64f |
( |
double * |
src1, |
|
|
size_t |
src1_step, |
|
|
int |
m, |
|
|
double * |
src2, |
|
|
size_t |
src2_step, |
|
|
int |
n, |
|
|
int * |
info |
|
) |
| |
|
inline |