[ODE] Faster ODE
Henri Hakl
henri at cs.sun.ac.za
Thu Nov 21 11:53:01 2002
hmmm... no website springs to mind, but you can probably find one.
The basic algorithm for factorizing A into LDL' runs as follows:
initialize L and D to zero matrices
for i = 1 to n do
for j = 1 to i - 1 do Vj = LijDjj
Dii = Aii - SUM(from j = 1 to i - 1): LijVj
for j = i + 1 to n do Lji = (Aji - SUM(from k = 1 to i - 1)LjkVk) / Dii
This creates matrices L and D such that:
A = L D L'
holds.
ODE uses a similar approach, it still has the same big-O of n^3, but is
still faster then the vanilla version from above.
The original ODE version is in "fastldlt.c" of the ODE source; I've
maintained the algorithm but modified the code executing it in
"fastldlt_henri.c" (available at:
http://www.cs.sun.ac.za/~henri/fastldlt_henri.c) in theory the replacement
should be faster then the original. I cannot be sure until somebody verifies
that it is correct and indeed faster. In ODE the "A" matrix is infact the
Jacobian matrix that contains the current-step world constraint details.
hope this helps to start off :)
Henri
>Hi,
>
>The mathematics behind what you're talking about
>sounds really cool but over my head.
>
>Do you know of any resource (web page or book) that
>provides a background on LDLT, Lower Diagonal Lower
>Transposed?
>
>thanks,
>
>john