执行方阵 \(A=P*L*U\) 的\(LU\)分解(其中\(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 ) |
|
内联 |
◆ 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 ) |
|
内联 |