GEOS
3.9.1dev
|
Provides a test for whether an interval is so small it should be considered as zero for the purposes of inserting it into a binary tree. More...
#include <IntervalSize.h>
Static Public Member Functions | |
static bool | isZeroWidth (double min, double max) |
Static Public Attributes | |
static const int | MIN_BINARY_EXPONENT = -50 |
Provides a test for whether an interval is so small it should be considered as zero for the purposes of inserting it into a binary tree.
The reason this check is necessary is that round-off error can cause the algorithm used to subdivide an interval to fail, by computing a midpoint value which does not lie strictly between the endpoints.
Definition at line 41 of file IntervalSize.h.
|
static |
Computes whether the interval [min, max] is effectively zero width. I.e. the width of the interval is so much less than the location of the interval that the midpoint of the interval cannot be represented precisely.
|
static |
This value is chosen to be a few powers of 2 less than the number of bits available in the double representation (i.e. 53). This should allow enough extra precision for simple computations to be correct, at least for comparison purposes.
Definition at line 49 of file IntervalSize.h.