DSPF_dp_lud_solver_cmplx
[Matrix]

Collaboration diagram for DSPF_dp_lud_solver_cmplx:


Detailed Description

int DSPF_dp_lud_solver_cmplx (const int order, unsigned short *restrict P, double *restrict L, double *restrict U, double *restrict b, double *restrict b_mod, double *restrict y, double *restrict x)


Function Documentation

int DSPF_dp_lud_solver_cmplx ( const int  order,
unsigned short *restrict  P,
double *restrict  L,
double *restrict  U,
double *restrict  b,
double *restrict  b_mod,
double *restrict  y,
double *restrict  x 
)

This function solves the system of linear equations A*x=b for x using the inputs produced by DSPF_dp_lud where A*x=transpose(P)*L*U*x=b. The following procedure is performed.

1. Modify b using permutation matrix: b_mod = L*U*x = P*b
2. Use forward substitution to solve for y: y = U*x = inv(L)*b_mod
3. Use backward substitution for solve for x: x = inv(U)*y

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 rows in square complex matrix A
P = pointer to permutation matrix P[Nrows*Nrows]
L = pointer to lower triangular matrix complex L[2*Nrows*Nrows]
U = pointer to upper triangular matrix complex U[2*Nrows*Nrows]
b = pointer to complex vector b[2*Nrows]
b_mod = pointer to modified complex vector b_mod[2*Nrows]
y = pointer to temporary complex vector y[2*Nrows]
x = pointer to final solver output complex vector x[2*Nrows]
Algorithm:
DSPF_dp_lud_solver.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 is not 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.


Copyright 2014, Texas Instruments Incorporated