# DSPF_dp_lud_cmplx [Matrix]

Collaboration diagram for DSPF_dp_lud_cmplx:

## Detailed Description

 int DSPF_dp_lud_cmplx (const int order, double *restrict A, double *restrict L, double *restrict U, unsigned short *restrict P)

## Function Documentation

 int DSPF_dp_lud_cmplx ( const int order, double *restrict A, double *restrict L, double *restrict U, unsigned short *restrict P )

This function decomposes the square complex 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.

Parameters:
 Nrows = number of square complex matrix A A = pointer to complex matrix A[2*Nrows*Nrows] L = pointer to lower triangular complex matrix L[2*Nrows*Nrows] U = pointer to upper triangular complex matrix U[2*Nrows*Nrows] P = pointer to permutation complex matrix P[2*Nrows*Nrows]
Algorithm:
DSPF_dp_lud.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 A, L, U, and P are stored in distinct arrays. In-place processing is not allowed.
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.