Commit Graph

462 Commits

Author SHA1 Message Date
Panagiotis Cheilaris 907f1d8b69 fix vertex conflict when t is endpoint of r
This is a fix for field number types, for a vertex conflict
(p,q,r,t) when t is an endpoint of r and t is not axis-parallel.

The problem manifested for input n11.cin:

s 4.7031002 61  4.70013 60.996868
s 4.7356453 61  4.7417111 61.018108
s 4.743824 61.0336  4.7237062 61.037254

(s A B, s C D, s E F)

The vertex conflict predicate (A, CD, F ; C) returned NEGATIVE.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:52 +02:00
Panagiotis Cheilaris 2b9c6ad3bd fix p,q,inf vertex conflict when p, q share coord
This fixes a problem when a floating point filtering kernel is
used and the input consists of non-integer numbers. The problem
manifestated with input n2scaled.cin:

s 4.703 61.000  4.700 60.996
s 4.732 60.997  4.735 61.000

(s A B, s C D)

The vertex conflict predicate (A, D, inf ; AB) returned NEGATIVE.
This was because an oriented side predicate for line AD and point
A of segment AB was computed. This predicate does not have to be
run, because we already know that A is an endpoint of AB.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:52 +02:00
Panagiotis Cheilaris 7eafd4d0cc remove redefinition of OrientationLinf
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:52 +02:00
Panagiotis Cheilaris a93f1694fb put parentheses around some ?-operator arguments
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:52 +02:00
Panagiotis Cheilaris 3be5e2e376 differentiate kernel ray and segment
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:52 +02:00
Panagiotis Cheilaris 45f3b36509 count_eq >= 0 is always true
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:52 +02:00
Panagiotis Cheilaris cff7555c67 p, q, r on corners and t on side interior
If p, q, r on corners and t on interior of a side,
then there is a conflict.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:51 +02:00
Panagiotis Cheilaris 7b08dec920 minmax also returns points
It seems unavoidable but some of the unnatural coordinates
of the extreme points are needed. For example, the x coordinate
of the bottom point is needed in side of bounded square.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:51 +02:00
Panagiotis Cheilaris eecc11a2a2 avoid comparisons when expanding rectangle
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:50 +02:00
Panagiotis Cheilaris a3fa5a8716 use MinMaxTuple as return value of minmax
This might slow things down.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:50 +02:00
Panagiotis Cheilaris 3e40227feb minmax function takes three template arguments
This is to prepare a possible passing of coordinates.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:50 +02:00
Panagiotis Cheilaris bf63b5b6be speedup in some cases of pppp incircle
Introduction of analyze_smalleq that returns a SmallerEqTuple,
is_L_shaped check and are_at_three_corners check.
Avoid checking some Comparison_result.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:50 +02:00
Panagiotis Cheilaris 4382defa9e more carfeul compute_v_if_not_computed for ring
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:50 +02:00
Panagiotis Cheilaris 34945ef50d add is_v_computed assertions
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:50 +02:00
Panagiotis Cheilaris 6c81fdc38b compute vertex in oriented_side of ring
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:50 +02:00
Panagiotis Cheilaris f619dd32b1 specify infinite vertices in debug messages
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:50 +02:00
Panagiotis Cheilaris 61c4d6fac6 avoid comparisons in exist_two_with_same_y
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:49 +02:00
Panagiotis Cheilaris 7ea56eac67 avoid comparisons in exist_two_with_same_x
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:49 +02:00
Panagiotis Cheilaris dd4da7d78d move mirror computation inside same coord cases
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:49 +02:00
Panagiotis Cheilaris 2cc45a8b98 exist_two_with_same_(x|y) computed from the start
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:49 +02:00
Panagiotis Cheilaris ecaa0f8193 assertions on extremity of different coord point
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:49 +02:00
Panagiotis Cheilaris db9b3f43bb bounded side extreme points debug message earlier
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:49 +02:00
Panagiotis Cheilaris f344d9dfa9 minmax function in side of bounded square
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:49 +02:00
Panagiotis Cheilaris 208775665e use division by two instead of half in sidebs
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:48 +02:00
Panagiotis Cheilaris d981327ea6 do not compute always vertex for incircle ring
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:48 +02:00
Panagiotis Cheilaris 37f7b0a301 remove half from ring compute_ppp
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:48 +02:00
Panagiotis Cheilaris be3ef8cfa4 remove another warning for s2 pointer
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:45 +02:00
Panagiotis Cheilaris c70fc29971 remove dx warning in Side_of_bounded_square_2.h
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:45 +02:00
Panagiotis Cheilaris 8e27388e73 change pref to rref in two comments
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:44 +02:00
Panagiotis Cheilaris e75e7498ec fix for a touching non-hv segment
This fixes a bug in the validity test for input pssd5aless2.cin:
p 100 0
s 150 0 50 -100
p 100 100
p -100 100
(A, BC, D, E)

In particular vertex conflict (BC, D, E, A) was returning -1
and now it returns ZERO.

At the same time, we should keep a negative predicate return value
for input parpar2.cin:
s -250 50 -50 -150
p -100 -50
p -60 -50
p -150 50

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:44 +02:00
Panagiotis Cheilaris 0e3f2d5e3b PSS case bdiff=5 compute_pss_side_p_known
All bisector computations have been removed.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:44 +02:00
Panagiotis Cheilaris 61c70120c9 compute_pss_ortho_wedge function for PSS case
This function is called for bdiff in {3,4}.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:44 +02:00
Panagiotis Cheilaris cbd9493722 compute_pss_nonhv_consecutive for field
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:44 +02:00
Panagiotis Cheilaris aecf35b0c9 compute_pss_nonhv_consecutive for ring
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:43 +02:00
Panagiotis Cheilaris 523bbd5475 use points_inside_touching_sides_v for POSITIVE
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:43 +02:00
Panagiotis Cheilaris 0e6397c432 more general points_inside_touching_sides_v
Function points_inside_touching_sides_v now supports PPPx, PPSx,
and PSSx cases. Before, it supported only cases with two segments.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:43 +02:00
Panagiotis Cheilaris 371bdd0379 use points_inside_touching_sides_v in field
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:43 +02:00
Panagiotis Cheilaris b256187e6e check that points are indeed on different sides
fix in points_inside_touching_sides_v

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:42 +02:00
Panagiotis Cheilaris 6e05a7c73f fix when two points hide a segment from vv in ring
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:42 +02:00
Panagiotis Cheilaris 1b5db71997 assertion in place of a check for corner line
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:42 +02:00
Panagiotis Cheilaris 117ff8ff01 partial removal of PSS bisectors
There are several changes here, also in using a new typedef for Bearing.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:42 +02:00
Panagiotis Cheilaris 0223cdf33a fix: use compute_pss_bisectors
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:42 +02:00
Panagiotis Cheilaris 0d73c4e71e add an assertion in orient_line_nonendp
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:42 +02:00
Panagiotis Cheilaris 45db1cc34a prepare for compute_pss_nonendp
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:42 +02:00
Panagiotis Cheilaris 7231f3ba9a use Homogeneous_point_2 with compute_line_dir
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:42 +02:00
Panagiotis Cheilaris 5f82f17a9b PSS case, add compute_pss_endp to ring
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:41 +02:00
Panagiotis Cheilaris f34e42e1d0 PSS endpoint case speedup for field case
Avoid using polychainline bisectors.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:41 +02:00
Panagiotis Cheilaris 12bdb79360 use homogeneous methods in point use in ring
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:41 +02:00
Panagiotis Cheilaris 8893e03d23 SSS case done without polychainline bisectors
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:41 +02:00
Panagiotis Cheilaris 1a0e53e311 change signature of orient_lines_linf
The last argument is now an array of 3 lines.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:41 +02:00
Panagiotis Cheilaris c05ba6558a orient_lines_linf for SSS case
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:41 +02:00
Panagiotis Cheilaris c58c9c72fb put some boolean variables later
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:41 +02:00
Panagiotis Cheilaris fac1837664 Linf hierarchy: include L2 hier., remove constants
This change allows to use both hierarchies at the same time.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:41 +02:00
Panagiotis Cheilaris a71e948e4b small change in implementing compare_distances_ss
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:40 +02:00
Panagiotis Cheilaris 343c267ef5 different compare_distance_to_point_linf
Different compare_distance_to_point_linf implementation.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:40 +02:00
Panagiotis Cheilaris 232f1f8d46 use compute_linf_distance for point and line
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:40 +02:00
Panagiotis Cheilaris b7a56dc72e compute_linf_distance for point and line
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:40 +02:00
Panagiotis Cheilaris 3a083a94ac bug fix related to a PSS vertex
The bug is shown, for example, in input pssprob1.cin:

s 0 100 100 100
s 0 100 0 0
p 20 -40

Let the above input be: AB, AC, D. The vertex computed for the
triple (D, AB, AC) was (140,30) and now it is the correct (70,30).

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:40 +02:00
Panagiotis Cheilaris 9f5140bc47 use return when calling axis-parallel PSS and SSS
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:40 +02:00
Panagiotis Cheilaris 5eacf1d61a sss case for axis-parallel segments redone
Avoid using bisectors for SSS axis-parallel segments.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:40 +02:00
Panagiotis Cheilaris 2c259bbec3 make some variables constant in field sqrt
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:39 +02:00
Panagiotis Cheilaris cdd7f6dbb0 sqrt pss case, axis-parallel segments changes
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:39 +02:00
Panagiotis Cheilaris 65de76fb62 new compute_vv_bisectors PSS_Type function
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:39 +02:00
Panagiotis Cheilaris 6262550710 ring pss, compute_pss_both_hv_nonpar_nonendp
Avoid bisectors in the following case:
one segment is horizontal and the other is vertical and
the point p is not an endpoint of the segments

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:39 +02:00
Panagiotis Cheilaris e19129f57d ring, introduce compute_pss_both_hv_nonpar_nonendp
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:39 +02:00
Panagiotis Cheilaris fae41574b2 ring pss case, axis-parallel segments changes
Avoid using bisector computations; partially done for the
pss case with axis-parallel segments; it remains to do the
case when the two segments are not parallel and the point
is not the endpoint of any of the segments.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:39 +02:00
Panagiotis Cheilaris 23d7be438b create compute_pss_bisectors function in ring
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:39 +02:00
Panagiotis Cheilaris 60cd49856b sqrt pps axis-par., avoid delegating to ppp
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:39 +02:00
Panagiotis Cheilaris afa330619d in ring pps axis-par., avoid delegating to ppp
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:38 +02:00
Panagiotis Cheilaris c39cc80bb3 in pps, partially avoid delegating to a ppp
In the pps case, avoid delegating to a ppp computation when the
segment is axis-parallel and the two points share a coordinate and
the line connecting the two points is parallel to the segment.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:38 +02:00
Panagiotis Cheilaris d2d8afba8c hvseg_coord: compute constant coordinate
new function hvseg_coord:
compute constant coordinate of an axis-parallel segment

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:38 +02:00
Panagiotis Cheilaris 8286a8a46d sqrt pps case does not use bisectors
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:38 +02:00
Panagiotis Cheilaris 61262decd2 slightly different comparison in pps ring case
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:38 +02:00
Panagiotis Cheilaris 8d842de9e7 ring pps case does not use bisectors
Voronoi vertex computation in ring for PPS case
does not use bisectors any more.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:38 +02:00
Panagiotis Cheilaris 5486b10557 ring non-axis parallel segment in pps subcase
This is only partially implemented. Still, it improves the
performance of the norway.cin benchmark.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:38 +02:00
Panagiotis Cheilaris 87d26ad035 compute_pps_nonendp_nonhv_nonsamec use comment
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:38 +02:00
Panagiotis Cheilaris dd930c0577 remove debug macro defintions from linf algorithm
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:37 +02:00
Panagiotis Cheilaris 17229c6a17 narrow scope of current_face in linf algorithms
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:37 +02:00
Panagiotis Cheilaris 2ee5837d8b narrow scope of some variables in Linf algorithms
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:37 +02:00
Panagiotis Cheilaris 1b22fecea1 use a slightly less trivial assertion
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:37 +02:00
Panagiotis Cheilaris 8442895269 reomve old incircle sqrt for Linf
It was not used and was not maintained anyway.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:37 +02:00
Panagiotis Cheilaris 075e9d3fda sqrt new const and scope changes
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:37 +02:00
Panagiotis Cheilaris 8076c9760d ring const variables and narrow scope
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:37 +02:00
Panagiotis Cheilaris f379f53454 correct indentation for test1d function
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:37 +02:00
Panagiotis Cheilaris 5e9749f4d6 Side_of_bounded_square_2: avoid some comparisons
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:36 +02:00
Panagiotis Cheilaris 308d356bea remove tests that show orientations of lines
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:36 +02:00
Panagiotis Cheilaris ab3f955e45 ring start compute_pps_nonendp_nonhv_nonsamec
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:36 +02:00
Panagiotis Cheilaris 097972d9b2 compute_pps_nonendp_nonhv added to ring
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:36 +02:00
Panagiotis Cheilaris 0ee5294312 sqrt new pps same coordinate points case
Implementation without bisectors. To do it for ring.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:36 +02:00
Panagiotis Cheilaris 8e5f88e242 tuple use for assigning sites
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:36 +02:00
Panagiotis Cheilaris ba033fe009 make compute_vv_bisectors inline
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:36 +02:00
Panagiotis Cheilaris e509085931 introduce compute_pps_nonendp_nonhv function
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:36 +02:00
Panagiotis Cheilaris e0deec43b1 remove another too-strong assertion
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:36 +02:00
Panagiotis Cheilaris 3f5e75e2f2 remove a too-strong assertion (triangle case)
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:35 +02:00
Panagiotis Cheilaris ae0689180b adapt sqrt new for ring changes
These changes are related to inputs ppsphor1.cin etc.
and brsp1less.cin:
s 50 100 250 300
s -100 110 200 80
p 0 150
p 0 100

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:35 +02:00
Panagiotis Cheilaris 868b27e970 bug fix for pssp brsp1less.cin in ring
Fix for input brsp1less.cin validity problem:
s 50 100 250 300
s -100 110 200 80
p 0 150
p 0 100

Incircle predicate (A, AB, F, E) is now ZERO.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:35 +02:00
Panagiotis Cheilaris 2d1d601ffe use refs in ring pssp predicate
Also, reuse some code.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:35 +02:00
Panagiotis Cheilaris 75b45ba931 fixes to make pssphor2.cin work in ring case
This returns ZERO (instead of POSITIVE) in some pssp incircle tests
like in the case of input pssphor2.cin:
s -100 -50 50 100
s 100 0 100 -100
p 0 0

Similar changes have to be made to the sqrt new code.

This will probably break some inputs like brsp1less.cin:
s 50 100 250 300
s -100 110 200 80
p 0 150
p 0 100
and pps predicates should be changed too.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:35 +02:00
Panagiotis Cheilaris 1c4985c326 clean-up and simplification in ring pss
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:35 +02:00
Panagiotis Cheilaris ca6aa27eee bug fix for compute_pos_45_line_at
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:35 +02:00
Panagiotis Cheilaris d53af0382a fix of pss ring with points_inside_touching_sides
Change of function point_inside_touching_sides (renamed
to points_inside_touching_sides) in order to process correctly
inputs like br80.cin:
s       10      120     60      20
s       60      40      70      60
s       30      110     100     40

(segments AB, CD, EF, respectively)

The incircle predicate (CD, B, F, EF) returns 0.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:35 +02:00
Panagiotis Cheilaris 25952ab183 use s1, s2 refs to simplify pss ring code
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:34 +02:00
Panagiotis Cheilaris 2e652509cb use refs instead of pointers in vring pss
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:34 +02:00
Panagiotis Cheilaris 95721c8422 fix for 3segstepnosegbef.cin pss predicate
This fixes a bug with input 3segstepnosegbef.cin:

s -50 50 50 -50
s 0 50 0 100
p 50 0

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:34 +02:00
Panagiotis Cheilaris dfb7212f47 rearrange some assertions in sqrt new
I also added a new assertion that has to be checked more.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:34 +02:00
Panagiotis Cheilaris c1e7fac2f5 rearrange some compute_sss endp tests in ring
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:34 +02:00
Panagiotis Cheilaris f46bf86ee7 use inline compute_sss_bisectors function
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:34 +02:00
Panagiotis Cheilaris c646b6ff30 make hor/ver predicates inline
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:34 +02:00
Panagiotis Cheilaris 05389da3d8 replace *0.5 with /2 in FT bisector computations
This fix is to avoid the following warning when Gmpz is used:

CGAL warning: check violation!
Expression : is_integer(d)
  File       : /Users/philaris/code/mycgal/Number_types/include/CGAL/GMP/Gmpz_type.h
  Line       : 102
  Explanation: Gmpz constructed from non-integer double value

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:34 +02:00
Panagiotis Cheilaris 20a6206a03 fix for compute_pps nonendp vertical
Fix for input ppsnonendpver.cin:
p 20 0
p 60 0
s 0 -80 0 80
p 40 40

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:33 +02:00
Panagiotis Cheilaris e479f3fa33 sqrt new compute_pps nonendp h/v
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:33 +02:00
Panagiotis Cheilaris 3d8489cf6b remove unused variable qpar in ring
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:33 +02:00
Panagiotis Cheilaris 66eaf13e0c ring compute_pps nonendp h/v case
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:33 +02:00
Panagiotis Cheilaris a786a5e235 horseg_y_coord and verseg_x_coord functions
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:33 +02:00
Panagiotis Cheilaris 84a2a701ff are_in_same_open_halfspace_of assertion in ring
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:33 +02:00
Panagiotis Cheilaris e74c1fa436 add are_in_same_open_halfspace_of for assertions
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:33 +02:00
Panagiotis Cheilaris f24867858b sqrt new compute_pps_endp
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:33 +02:00
Panagiotis Cheilaris 26c967b0db vertex ring compute_pps_endp
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:32 +02:00
Panagiotis Cheilaris 03a66ee5e1 warning fix in hv Vertex_conflict_C2.h
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:32 +02:00
Panagiotis Cheilaris 52c6e3138a use variables in ring
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:32 +02:00
Panagiotis Cheilaris 5ce9700141 more changes for warning suppression
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:32 +02:00
Panagiotis Cheilaris 137898e952 remove Voronoi_vertex_ring_C2.h variable warnings
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:32 +02:00
Panagiotis Cheilaris 2135db7159 remove dista, distb warnings
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:32 +02:00
Panagiotis Cheilaris 0b0653a36e remove dy pointer warning
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:32 +02:00
Panagiotis Cheilaris a41c1b105b remove qref related warnings
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:32 +02:00
Panagiotis Cheilaris 96cdb0e91d remove closest point warning from some compilers
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:32 +02:00
Panagiotis Cheilaris c908153a6f remove has_lseg_neg_slope and simplify logic
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:31 +02:00
Panagiotis Cheilaris 188f7bdfa8 f_i and g_i warning fixes (also with assertions)
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:31 +02:00
Panagiotis Cheilaris 112983a440 corrected is_nop, is_pon, etc. assertions
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:31 +02:00
Panagiotis Cheilaris af246ba5d8 put some assertion code into debug code
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:31 +02:00
Panagiotis Cheilaris 624a3d071e put first_found_f2 in assertions
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:31 +02:00
Panagiotis Cheilaris 1bbc871009 fix typo fi -> g_i
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:31 +02:00
Panagiotis Cheilaris dc8c6cf0f1 remove unused type definition
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:31 +02:00
Panagiotis Cheilaris f6741c6a04 change some CGAL_SDG_DEBUG to CGAL_assertion_code
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:31 +02:00
Panagiotis Cheilaris 3329b73e13 put some bool computations in debug mode only
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:30 +02:00
Panagiotis Cheilaris 17ba6e5507 remove site computation warnings
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:30 +02:00
Panagiotis Cheilaris 75f53e7007 put is_q_ssrc etc. in assertion code
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:30 +02:00
Panagiotis Cheilaris fd1f51e987 remove warning for have_common_qr
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:30 +02:00
Panagiotis Cheilaris fb53c58677 remove warnings with num counters
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:30 +02:00
Panagiotis Cheilaris ac34b778de removed unused sv1 and sv2
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:30 +02:00
Panagiotis Cheilaris 33061ecee2 use sitev only in verbose mode
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:30 +02:00
Panagiotis Cheilaris 1db79df71c remove unused but set variable sss1
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:30 +02:00
Panagiotis Cheilaris 87027f2125 g2 and esym put in assertions to suppress warnings
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:30 +02:00
Panagiotis Cheilaris e5247dda4c removed too-strong assertions in infinite edge cf
This fixes an assertion failure for the input vbc1a.cin:
s 60  20 60 220
p 40 160
p 30  50
p 40  50

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:29 +02:00
Panagiotis Cheilaris c14f3cd711 CGAL_SDG_VERY_VERBOSE used in printing diagram
Print the SDG Linf diagram if CGAL_SDG_VERY_VERBOSE is defined.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:29 +02:00
Panagiotis Cheilaris 5e66a3f262 access outgoing direction through function
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:29 +02:00
Panagiotis Cheilaris cc3c33d569 use the line optimization for parallel segments
Use the line optimization when computing the bisector of two
parallel segments.

This also fixes a bug for inputs of the following form:

s 100 20 0 20
s 0 80 100 80
s 30 40 30 60

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:29 +02:00
Panagiotis Cheilaris cc2c3e69d0 support line optimization in first intersection
Addition of is_line_optimization boolean member variable in object
of class Polychainline_2. Suppose this variable of an obect is set
to true. If this object is tried for an intersection with another
Polychainline object pcl, using the function
first_intersection_point_with, then instead the function
line_first_intersection_point_with is used.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:29 +02:00
Panagiotis Cheilaris ff949fd5f7 show debug message for compute_sss in vring
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:29 +02:00
Panagiotis Cheilaris cbf199c252 bug fix in debug message for a bisector
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:29 +02:00