DSPF_sp_lud_solver_cmplx
[Matrix]

Collaboration diagram for DSPF_sp_lud_solver_cmplx:


Detailed Description

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


Function Documentation

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

This function solves the system of linear equations A*x=b for x using the inputs produced by DSPF_sp_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 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[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_sp_lud_sol_cmplx_cn.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