- When: Thursday, October 19, 2017 from 11:00 AM to 12:00 PM
- Speakers: Jack Snoeyink
- Location: ENGR 4201
- Export to iCal

As computer scientists, it is important for us to recognize when our favorite abstractions break and to consider alternatives. In this talk we will look at a particular geometric example exposing that computers actually don't do real number arithmetic, but typically do use fast IEEE 754 floating-point hardware to do arithmetic. The problem is suggested by David Greisheimer of Bettis labs: track neutrons in a CAD model of a nuclear reactor. As I'll describe, his reactor is defined by a hierarchical Constructive Solid Geometry representation, which forms unions and intersections of geometric primitives bounded by quadratic surfaces. A neutron is a point, so the task is to follow a point as it crosses each surface in order. This is easier said than done; analysis of the degrees of the geometric operations used reveals why. A point representing a neutron can actually get stuck in a reactor -- something that makes a nuclear physicist very nervous, since it breaks basic physical laws of conservation. Degree-driven analysis suggests changing the problem to tracking line segments where we apply geometric rounding to the segment endpoints. By doing so, we can continue to use fast floating-point, but can give guarantees on both geometric and topological properties (e.g., every neutron going into a bounded region must come out). This is work with David Millman and Michael Deakin.

Posted 1 year, 1 month ago