[Boost-bugs] [Boost C++ Libraries] #10904: Assertion failure in cart_intersect->side->ratio for very small segments.

Subject: [Boost-bugs] [Boost C++ Libraries] #10904: Assertion failure in cart_intersect->side->ratio for very small segments.
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2014-12-27 21:56:48


#10904: Assertion failure in cart_intersect->side->ratio for very small segments.
---------------------------------------------+---------------------------
 Reporter: awulkiew | Owner: barendgehrels
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: geometry
  Version: Boost 1.57.0 | Severity: Problem
 Keywords: equals,relate,intersection,side |
---------------------------------------------+---------------------------
 When the intersection points are calculated for very small segments the
 segments may be considered as collinear. If then one of the segment is
 vertical or horizontal dx or dy is 0. Since the coordinates are very small
 the greater sum of coordinates' differences may correspond to the
 Dimension for which dx or dy is 0. Then relate_collinear() may be called
 for invalid Dimension which at the end causes the creation of ratios
 containing denumerator = 0 and assert failure in ratio less compare. This
 can be observed e.g. for:

 {{{
 "LINESTRING(5.6956521739130430148634331999347
 -0.60869565217391330413931882503675,5.5
 -0.50000000000000066613381477509392)"
 "LINESTRING(5.5 -0.50000000000000066613381477509392,5.5 -0.5)
 }}}

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/10904>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:17 UTC