We describe a filtering approach that uses bounding boxes to accelerate specific predicates of the geometric traits class of the cgal Apollonius graph 2 package. These predicates extend the Filtered bbox circular kernel 2, and should be important in the upcoming package of the Voronoi diagram of ellipses. In this report, we show extensive benchmarking instances to attest the extent of acceleration gained by the filtering. The overall conclusion is mixed; although individual predicates are accelerated by up to 25%, the combination of filtered and non-filtered predicates does not offer a clear improvement. Moreover, algebraic filtering may overshadow geometric filtering for the Apollonius diagram. This report completes the work presented in report [EKT07]. 1 Geometric filtering and the bounding boxes Running geometric applications with implementations of exact number types leads to faultless results but also to unaffordably large execution times. In an attempt to provide a speed up , the geometric objects are enclosed in much simpler shapes that are represented by an inexact, yet faster number type. The predicates on which the algorithm is based shall then filter out easily some trivial cases; in such instances the crude enclosing shapes are sufficient for the predicate to return a certain answer, avoiding this way heavier operations with the exact versions of the geometric objects. Such an enclosing shape is the bounding box (denoted bbox) which is an axis-alligned rectangular. In CGAL it is implemented so that its vertices have coordinates of the C++ built-in double number type. 1.1 The filtered circular kernel with bboxes In order to improve the performance of its new Circular kernel 2 package, CGAL 3.2 public release introduced a filtering kernel ( Filtered bbox circular kernel 2, [PTT06]) that contains new versions of the predicates of the circular kernel that use bounding boxes . This filtering kernel is templated to an exact kernel or even to a hierarchy of other filtering kernels . Each predicate of the bbox kernel attempts to give a certain answer to each query utilising only the bboxes of the geometric objects involved and when this is not possible it calls the equivalent predicate of the next kernel in the hierarchy. The types of the ∗Current affiliation: TU Eindhoven, Holland
We measure the efficiency of the recently extended Circular kernel 2 cgal package in relation with the 2D Apollonius graph application. We provide results of benchmarking for both of the new and the stand-alone version of the code. This allows us to quantify the performance of the new version of the kernel, based on a concrete application. The proposed version seems to accelerate the construction of the Apollonius graph when using exact number types, while the opposite happens if algebraic filtering with inexact number types is included. We plan to further investigate this discrepancy.
We describe a filtering approach of specific predicates of the 2D Circular Kernel using bounding boxes. These predicates have been recently incorporated in the kernel , being until now part of the geometric traits class of the Apollonius graph 2 package.
We extend the existing Circular kernel 2 in order to cover predicatesfor Voronoi diagrams and Delaunay graphs of weighted points on the Eu-clidean plane. We describe how some more general predicates and objecttypes of the existing Apollonius graph 2 package (CGAL public release3.2) can be incorporated in the Circular kernel 2 and thus retargeting the Apollonius graph 2 . 1 Introduction The Circular kernel 2 package (noted CK) is a platform that ofiers detailedimplementation of 2D circular geometric objects and related primitives. Themost important object types included in this kernel are circular arcs ( Cir-cular arc 2 ), circles (borrowed from the older linear cartesian kernels),pointswhose coordinates are roots of polynomials of degree 2 ( Circular arc point 2 )and linear segments with endpoints of the Circular arc point 2 type ( Linearc 2 ). The need of non-linear algebraic operations is satisfled by the Al-gberaic kernel for circles 2 2 package that is engulfed to CK as a templateparameter. The circular kernel is mainly used by the
Arrangements of planar curves are fundamental structures in computational geometry. Algorithms for computing such arrangements consist of a topological part and a geometric part. For both parts different algorithmic approaches and implementations are possible. In ECG, we further developed and implemented these approaches. We followed modern software design and encapsulated our solutions into modules with well-defined and tight interfaces. In particular, we can combine different realizations of the topological part (we have two) with different realizations of the geometric part (we have three, which in turn are parametrized by different implementations of the underlying number types). The implementations of the geometric part follow quite different designs. In this report, we provide first comparisons of our different designs. In a later version of the report, we also plan to compare implementations outside the ECG-project. The report is preliminary and rises more questions than it answers. We consider it as proof that our modular architecture is valuable and allows us to experiment and compare different approaches. We also consider it as proof for the close cooperation within the project.
Our work goes towards answering the growing need for the robust and efficient manipulation of curved objects in numerous applications. The kernel of the CGAL library provides several functionalities which are, however, mostly restricted to linear objects. We focus here on the arrangement of conic arcs in the plane. Our first contribution is the design, implementation and testing of a kernel for computing arrangements of circular arcs.A preliminary C++ implementation exists also for arbitrary conic curves. We discuss the representation and predicates of the geometric objects. Our implementation is targeted for inclusion in the CGAL library. Our second contribution concerns exact and efficient algebraic algorithms for the case of conics. They treat all inputs, including degeneracies, and they are implemented as part of the library SYNAPS 2.1.Our tools include Sturm sequences, resultants, Descartes' rule, andisolating points. Thirdly, our experiments on circular arcs show that our methods compare favorably to existing alternatives using CORE 1.6x and LEDA 4.5.
This report describes some adjustments that have been made to the Curved Kernel. Some of them have been made with performance in mind, others for interoperability and some, necessary modifications toward s the isolation of the Curved Kernel from CGAL environment. Furthermore this report describes the use of various types a s parameters to the Curved Kernel, along with some benchmarks using the planar map with intersections of Circular Arcs construction program on eac h, so the interested reader may have some idea on the properties of each type and how each type affects the performance of the Curved Kernel.
We describe a flltering approach of speciflc predicates of the 2D Cir- cular Kernel using bounding boxes. These predicates have been recently incorporated in the kernel , being until now part of the geometric traits class of the Apollonius graph 2 package.
We describe a filtering approach that uses bounding boxes to accel- erate specific predicates of the geometric traits class of the cgal Apollo- nius graph 2 package. These predicates extend the Filtered bbox circular kernel 2, and should be important in the upcoming package of the Voronoi diagram of ellipses. In this report, we show extensive benchmarking instances to attest the extent of acceleration gained by the filtering. The overall con- clusion is mixed; although individual predicates are accelerated by up to 25%, the combination of filtered and non-filtered predicates does not of- fer a clear improvement. Moreover, algebraic filtering may overshadow geometric filtering for the Apollonius diagram. This report completes the work presented in report (EKT07). 1 Geometric filtering and the bounding boxes Running geometric applications with implementations of exact number types leads to faultless results but also to unaffordably large execution times. In an attempt to provide a speed up , the geometric objects are enclosed in much simpler shapes that are represented by an inexact, yet faster number type. The predicates on which the algorithm is based shall then filter out easily some trivial cases; in such instances the crude enclosing shapes are sufficient for the predicate to return a certain answer, avoiding this way heavier operations with the exact versions of the geometric objects. Such an enclosing shape is the bounding box (denoted bbox) which is an axis-alligned rectangular. In CGAL it is implemented so that its vertices have coordinates of the C++ built-in double number type.
Sylvain Pion合作论文数INRIA Sophia Antipolis4
Arno Eigenwillig合作论文数Google2