[ODE] Faster ODE

Henri Hakl henri at cs.sun.ac.za
Thu Nov 21 02:48:02 2002


This is a multi-part message in MIME format.

------=_NextPart_000_0218_01C29154.09E63F40
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hi ODE :)

Please can somebody look at this and experiment with the file?

LDLT decomposition is one of the primary computational activities in =
ODE's physics engine. LDLT =3D Lower Diagonal Lower Transposed, meaning =
a constraint matrix A (that describes the physics of a world) can be =
decomposed into two matrices (L and D, where L is a lower triangular =
matrix (all entries above the diagonal are zero) and D is a diagonal =
matrix (all entries except the diagonal are zero)). Now  A =3D L D L'  =
(A equals the lower matrix times the diagonal matrix times the =
transposed lower matrix.) The A matrix varies in size and is typically =
between 10x10 and 500x500 for ODE (depending on
how many constraints/collisions/etc need to be solved for a given =
simulation step).

This LDLT decomposition needs to be solved with every step and is quite =
computationally intensive. I've looked at the stldlt.c file that is part =
of the ODE source and it looks to me like it could be improved upon. =
Unforetunately I use Delphi, so I cannot test my suggested modifications =
directly (though the Delphi version seems fine and considerably faster =
then the original).

The file http://www.cs.sun.ac.za/~henri/fastldlt_henri.c is a =
replacement for fastldlt.c and should (barring errors) work flawlessly =
and faster then the original.

Let me know if it works, thanks :)
  Henri


------=_NextPart_000_0218_01C29154.09E63F40
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2600.0" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV>Hi ODE :)</DIV>
<DIV>&nbsp;</DIV>
<DIV>Please can somebody look at this and experiment with the =
file?</DIV>
<DIV>&nbsp;</DIV>
<DIV>LDLT decomposition is one of the primary computational activities =
in ODE's=20
physics engine. LDLT =3D Lower Diagonal Lower Transposed, meaning a =
constraint=20
matrix A (that describes the physics of a world) can be decomposed into =
two=20
matrices (L and D, where L is a lower triangular matrix (all entries =
above the=20
diagonal are zero) and D is a diagonal matrix (all entries&nbsp;except =
the=20
diagonal are zero)). Now&nbsp; A =3D L D L'&nbsp; (A equals the lower =
matrix times=20
the diagonal matrix times the transposed lower matrix.) The A matrix =
varies in=20
size and is typically between 10x10 and 500x500 for ODE (depending =
on<BR>how=20
many constraints/collisions/etc need to be solved for a given simulation =

step).<BR><BR>This LDLT decomposition needs to be solved with every step =
and is=20
quite computationally intensive. I've looked at the stldlt.c file that =
is part=20
of the ODE source and it looks to me like it could be improved upon.=20
Unforetunately I use Delphi, so I cannot test my=20
suggested&nbsp;modifications&nbsp;directly (though the Delphi version =
seems fine=20
and considerably faster then the original).<BR><BR>The file <A=20
href=3D"http://www.cs.sun.ac.za/~henri/fastldlt_henri.c">http://www.cs.su=
n.ac.za/~henri/fastldlt_henri.c</A>=20
is a replacement for fastldlt.c and should (barring errors) work =
flawlessly and=20
faster then the original.</DIV>
<DIV>&nbsp;</DIV>
<DIV>Let me know if it works, thanks :)</DIV>
<DIV>&nbsp; Henri</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV></BODY></HTML>

------=_NextPart_000_0218_01C29154.09E63F40--