Ignacio Vera created LUCENE-8583:
------------------------------------

             Summary: Make GeoUtils#orientation method more stable
                 Key: LUCENE-8583
                 URL: https://issues.apache.org/jira/browse/LUCENE-8583
             Project: Lucene - Core
          Issue Type: Improvement
          Components: core/other
            Reporter: Ignacio Vera


The method GeoUtils#orient is problematic when called with points that are 
almost collinear but not quite. In that case the sign of the determinant is not 
reliable, so for example calling the method with points (a, b, c) and with (c, 
b, a) gives the same orientation. 

There is a complex implementation described here 
(https://www.cs.cmu.edu/~quake/robust.html) where the method becomes more 
reliable. I have been playing with such implementation and still is not 100% 
reliable.

My proposal is not to be fully precise and define a precision constant for this 
method. Therefore whenever the value of determinant is small to that precision, 
we consider the points to be collinear. In this case the results of the method 
are reliable.




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to