GEOS 3.14.0dev
|
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.
|
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.