Performs \(LU\) decomposition of square matrix \(A=P*L*U\) (where \(P\) is permutation matrix) and solves matrix equation \(A*X=B\). Function returns the \(sign\) of permutation \(P\) via parameter info.
- Parameters
-
src1 | pointer to input matrix \(A\) stored in row major order. After finish of work src1 contains at least \(U\) part of \(LU\) decomposition which is appropriate for determainant calculation: \(det(A)=sign*\prod_{j=1}^{M}a_{jj}\). |
src1_step | number of bytes between two consequent rows of matrix \(A\). |
m | size of square matrix \(A\). |
src2 | pointer to \(M\times N\) matrix \(B\) which is the right-hand side of system \(A*X=B\). \(B\) stored in row major order. If src2 is null pointer only \(LU\) decomposition will be performed. After finish of work src2 contains solution \(X\) of system \(A*X=B\). |
src2_step | number of bytes between two consequent rows of matrix \(B\). |
n | number of right-hand vectors in \(M\times N\) matrix \(B\). |
info | indicates success of decomposition. If *info is equals to zero decomposition failed, othervise *info is equals to \(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 |