Collaboration diagram for DSPF_dp_lud:
int | DSPF_dp_lud (const int order, double *restrict A, double *restrict L, double *restrict U, unsigned short *restrict P) |
int DSPF_dp_lud | ( | const int | order, | |
double *restrict | A, | |||
double *restrict | L, | |||
double *restrict | U, | |||
unsigned short *restrict | P | |||
) |
This function decomposes the square matrix A into a lower triangular matrix L, upper triangular matrix U, and a permutation matrix P where A=transpose(P)*L*U. The band Gaussian elimination outer product algorithm is used. The permutation matrix P keeps track of the reordering of rows in the A matrix such that the first element of the permuted matrix is maximum and nonzero. The values stored in the matrices are assumed to be double precision floating point values. This code is suitable for dense matrices. No optimizations are made for sparse matrices.
order | = order of matrix A | |
A | = pointer to matrix A[order*order] | |
L | = pointer to lower triangular matrix L[order*order] | |
U | = pointer to upper triangular matrix U[order*order] | |
P | = pointer to permutation matrix P[order*order] |