#include <F4ThomasLS.hpp>
Inheritance diagram for F4ThomasLS:


LU Tri diagonal solver
Used to solve a set of linearized differencial equations,....
Some restoration are of the style: A * iNew = iOld
iNew could be X, and iOld could be b.
Optimisations:
1) aligned 16 vectors + aligned moves movaps
2) reduction of cycles using recipocal+multiplication instead of division
3) reducing data in/out via combination of LR and forward substitution
this increase also computation complexity
Unsuccesfull optimisations
4) (Tried prefetch: no advantage (data too small?))
5) (Tried movntps: not good movaps is much better!!!)
Basic Memory Usage: 9*N
@ Copyrights: Bernard De Cuyper & Eddy Fraiha 2002, Eggs & Pictures. MIT/Open BSD copyright model.
Public Methods | |
| F4ThomasLS (int asize) | |
| F4ThomasLS (int asize, int lines) | |
| virtual | ~F4ThomasLS () |
| virtual void | loadA (F4TriDiagonalMatrix *m) |
| virtual void | loadMatrix (Float4Vector *u1, Float4Vector *d1, Float4Vector *l1) |
| virtual void | loadX (Float4Vector *data) |
| virtual void | loadB (Float4Vector *data) |
| void | solve () |
| virtual void | output () |
| virtual void | output (FILE *file) |
Protected Methods | |
| void | computeLRdecomposition () |
| Equivalent to filter parametrisation. | |
| void | forwardSubstitution () |
| Equivalent to filter causal part. | |
| void | backwardSubstitution () |
| Equivalent to filter non-causal part. | |
| void | computeLR_forward () |
| Equivalent to filter parametrisation. | |
Private Attributes | |
| Float4Vector * | uOut |
| Float4Vector * | dOut |
| Float4Vector * | lOut |
| Float4Vector * | y |
![]() |
