# DSPF_sp_lud_inverse_cmplx [Matrix]

Collaboration diagram for DSPF_sp_lud_inverse_cmplx:

## Detailed Description

 int DSPF_sp_lud_inverse_cmplx (const int order, unsigned short *restrict P, float *restrict L, float *restrict U, float *restrict inv_A)

## Function Documentation

 int DSPF_sp_lud_inverse_cmplx ( const int order, unsigned short *restrict P, float *restrict L, float *restrict U, float *restrict inv_A )

This function processes a permutation matrix P, a lower triangular matrix L, and an upper triangular matrix U generated by DSPF_sp_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 float precision floating point values. This code is suitable for dense matrices. No optimizations are made for sparse matrices.

Parameters:
 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]
Algorithm:
DSPF_sp_lud_inverse.c is the natural C equivalent of the optimized intrinsic C code without restrictions. Note that the intrinsic C code is optimized and restrictions may apply.
Assumptions:
1. The arrays P, L, U, and inv_A are stored in distinct arrays. In-place processing of L and U is done.
2. The arrays consist of complex number entries with alternating real and imaginary parts: real0,imag0,real1,imag1,...
Implementation Notes:
Interruptibility : The code is interruptible.
Endian support : supports both Little and Big endian modes.