正方行列 \(A=P*L*U\)(ここで \(P\) は置換行列)の \(LU\) 分解を行い、行列方程式 \(A*X=B\) を解く。関数は置換 \(P\) の \(sign\) を引数 info を介して返す。
- 引数
-
| src1 | 行優先順で格納された入力行列 \(A\) へのポインタ。処理完了後、src1には少なくとも行列式計算に適した \(LU\) 分解の \(U\) 部分が格納される: \(det(A)=sign*\prod_{j=1}^{M}a_{jj}\)。 |
| src1_step | 行列 \(A\) の連続する2行間のバイト数。 |
| m | 正方行列 \(A\) のサイズ。 |
| src2 | 連立方程式 \(A*X=B\) の右辺である \(M\times N\) 行列 \(B\) へのポインタ。\(B\) は行優先順で格納される。src2がヌルポインタの場合は \(LU\) 分解のみが実行される。処理完了後、src2には連立方程式 \(A*X=B\) の解 \(X\) が格納される。 |
| src2_step | 行列 \(B\) の連続する2つの行の間のバイト数。 |
| n | \(M\times N\) 行列 \(B\) における右辺ベクトルの数。 |
| info | 分解の成否を示す。*info が 0 の場合は分解に失敗、それ以外の場合は \(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 |