Collaboration diagram for DSPF_dp_lud_inverse_cmplx:
int | DSPF_dp_lud_inverse_cmplx (const int order, unsigned short *restrict P, double *restrict L, double *restrict U, double *restrict inv_A) |
int DSPF_dp_lud_inverse_cmplx | ( | const int | order, | |
unsigned short *restrict | P, | |||
double *restrict | L, | |||
double *restrict | U, | |||
double *restrict | inv_A | |||
) |
This function processes a permutation matrix P, a lower triangular matrix L, and an upper triangular matrix U generated by DSPF_dp_lud and generates the inverse of the A matrix where inv_A=inv(U)*inv(L)*P. In place processing is performed on the L and U matrices such that their original contents are modified. 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.
Nrows | = number of rows in square complex matrix A | |
P | = pointer to permutation matrix P[2*Nrows*Nrows] | |
L | = pointer to lower triangular matrix L[2*Nrows*Nrows] | |
U | = pointer to upper triangular matrix U[2*Nrows*Nrows] | |
inv_A | = pointer to inverse of A matrix[2*Nrows*Nrows] |