high precision mathematics

Karl M. Syring syring at email.com
Thu Feb 21 08:29:02 CET 2002

"Carl Banks" <idot at vt.edu> schrieb im Newsbeitrag
news:r2615a.ii.ln at
> Karl M. Syring wrote:
> > "Carl Banks" <idot at vt.edu> schrieb>
> > <snip>
> >> Flight simulation: The earth's radius is about 20 million feet (about
> >> 7 million meters for my SI using friends), and the simulator must
> >> resolve, at a minimum, distances of about 0.1 feet.  That's a
> >> difference of 9 decimal places.  We then need several more places for
> >> numerical robustness.
> > <snip>
> >
> > You surely are joking, Mr. Banks?
> > This is exactly the kind of misuse of floating point that was referred
to in
> > a previous posting. Every computational geometry software would use a
> > rational data type here, although you might get away with simple point
> > binning in this case.
> I suspect you don't know what I'm talking about, since what I'm
> referring to is nothing like computational geometry.  Nevertheless,
> I'll answer this.
> No, I'm not joking.
> I have seen the source code of maybe a dozen flight simulators, and
> I've written several myself (not in Python, though, yet).  Several of
> the simulators are used in research, one came out of NASA, and one was
> proprietary.  I have yet to see anything stored as a rational number.
> High-fidelity, long-period spacecraft simulations might require
> something more precise than 64-bit floating point, but for atmospheric
> flight, unmodeled disturbances make the extra precision pointless.

But this is really dilettantic work and NASA today is an organization run by
amateurs. If you look at real computational geometry programs like CGAL, you
can see, how it is done.
Anyway, it is not necessary to appeal to authorities to get a grasp of the
problem.: Imagine, you have a polygon in the plane and you do a series of
rotations and translations on it. Now, you want to know whether the position
is exactly identical to another polygon. If you do this with floating point,
you will never get an exact result, while in rational coordinates you always

Karl M. Syring

More information about the Python-list mailing list