Subject: CGAL users discussion list
List archive
- From: Ben Supnik <>
- To:
- Subject: Re: [cgal-discuss] CGAL::symmetric_difference error
- Date: Thu, 03 Sep 2009 13:04:21 -0400
Hi Laurent,
Two thoughts:
- Make the kernel numeric requirements a lot more obvious...I would suggest that the minimum kernel requirements be:
1. On the package overview page so that for any given package I can see "can I use this, or will I need a new kernel that's more expensive and powerful than what I've got?". (For example, if I'm using CGAL for triangulations I might have an exact pred/inexact ctor kernel, but would have to "upgrade" to use boolean ops.)
2. Similarly, looking at the ref and user's manuals for both arrangement and boolean ops, the kernel requirement is sort of 'burried'. I would suggest that it be at the top of any class definition that can be templated directly on the kernel and in the intro to the package.
I can see how this might be frustrating to the developers of CGAL (why don't those users read the manuals) but perhaps it is an indication of the power of CGAL that we (the users) can use these immensely powerful and efficient computational geometry algorithms without knowing enough about how they work to realize when we're in kernel-trouble.
(And sometimes it's not entirely obvious. If you didn't know that the boolean operations construct an arrangement and may do so repeatedly in several steps when doing a join of many polygons, it might not be obvious why exact constructions and not just exact predicates are required.)
- My other idea is: simply use some C++ tagging in the kernel to cause the compiler to catch requirement failures. For example, in my experience arrangement_2 is almost completely unusable without exact constructions...it wouldn't be a loss to require an exact constructions kernel.
cheers
Ben
Laurent Rineau (GeometryFactory) wrote:
Le jeudi 03 septembre 2009 16:33:53, Bernd Gaertner a écrit :
Genís wrote:
CGAL error:The cause is most likely this line:
precondition violation!
Expr: comp_f(object, nodeP->object) != LARGER
File: /usr/include/CGAL/Multiset.h
Line: 214
typedef CGAL::Cartesian<double> Kernel;This is an inexact kernel that comes with no guarantee and whose usage
may lead to the indicated failures. CGAL has other kernels that do come
with guarantees, please see the FAQ item at
http://www.cgal.org/FAQ.html#inexact_NT, and the philosophy page at
http://www.cgal.org/philosophy.html.
Genis, as you are not at all the only user of CGAL that made that error. Can you tell us how you have happened to use that kernel? Did you see occurrences of that error-prone kernel in the manual? Where? Have you copied an example from CGAL? Which one?
There are only a few cases where the use of CGAL::Cartesian<double> is the right choice, and we, CGAL developers, should try to enhance the CGAL manual and example so that our users are not guided to make such errors. That is why I ask for feedback.
--
Scenery Home Page: http://scenery.x-plane.com/
Scenery blog: http://xplanescenery.blogspot.com/
Plugin SDK: http://www.xsquawkbox.net/xpsdk/
X-Plane Wiki: http://wiki.x-plane.com/
Scenery mailing list:
Developer mailing list:
- [cgal-discuss] CGAL::symmetric_difference error, Genís, 09/03/2009
- Re: [cgal-discuss] CGAL::symmetric_difference error, Bernd Gaertner, 09/03/2009
- Re: [cgal-discuss] CGAL::symmetric_difference error, Laurent Rineau (GeometryFactory), 09/03/2009
- Re: [cgal-discuss] CGAL::symmetric_difference error, Ben Supnik, 09/03/2009
- Re: [cgal-discuss] CGAL::symmetric_difference error, Genís, 09/03/2009
- Re: [cgal-discuss] CGAL::symmetric_difference error, Ben Supnik, 09/03/2009
- Re: [cgal-discuss] CGAL::symmetric_difference error, Laurent Rineau (GeometryFactory), 09/03/2009
- Re: [cgal-discuss] CGAL::symmetric_difference error, Bernd Gaertner, 09/03/2009
Archive powered by MHonArc 2.6.16.