Robust geometric computation: Difference between revisions

Content deleted Content added
Undid revision 954574118 by TakuyaMurata (talk) there is no such link
top: for ex
Line 3:
For instance, algorithms for problems like the construction of a [[convex hull]] rely on testing whether certain "numerical predicates" have values that are positive, negative, or zero. If an inexact floating-point computation causes a value that is near zero to have a different sign than its exact value, the resulting inconsistencies can propagate through the algorithm causing it to produce output that is far from the correct output, or even to crash.
 
One method for avoiding this problem involves using integers rather than floating point numbers for all coordinates and other quantities represented by the algorithm, and determining the precision required for all calculations to avoid [[integer overflow]] conditions. For instance, two-dimensional convex hulls can be computed using predicates that test the sign of [[quadratic polynomial]]s, and therefore may require twice as many bits of precision within these calculations as the input numbers. When thisinteger arithmetic cannot be practicedused (for instance, when the result of a calculation is an [[algebraic number]] rather than an integer or rational number), a second method is to use [[symbolic algebra]] to perform all computations with exactly represented algebraic numbers rather than numerical approximations to them. A third method, sometimes called a "floating point filter", is to compute numerical predicates first using an inexact method based on floating point arithmetic, but to maintain bounds on how accurate the result is, and repeat the calculation using slower symbolic algebra methods or numerically with additional precision when these bounds do not separate the calculated value from zero.
 
== References ==