I have _probably_ found at least one reason for this bug.

I was able to constantly create a FPE when running fgfs --enable-fpe 
and /sim/traffic-manager/enabled=true
I was able to locate the offending code in FGAISchedule::update when the new 
position of some AI aircraft was calculated by multiplying the start position 
with a rotation matrix.

When computing the geodetic position from cartesian coordinates in 
  current = SGGeod::fromCart(newPos);
it happened, that within SGGeodesy::SGCartToGeod() the value for 's'
was _very_ close to zero and slightly negative causing sqrt(s*(2+s)) fail 
which is ony defined for s greater or equals zero or less than or equals -2.

The workaround clamps 's' to values greater than zero. This is probably 
mathematically incorrect but should keep us running.

Maybe someone who fully understands the math in this method can explain, 
if 's' ever can legally go negative or if this is a rounding error.

Greetings, Torsten


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

Reply via email to