Skip to Content.
Sympa Menu

cgal-discuss - Re : Re : Re : Re : [cgal-discuss] An error when trying to compute intersection of polygons

Subject: CGAL users discussion list

List archive

Re : Re : Re : Re : [cgal-discuss] An error when trying to compute intersection of polygons


Chronological Thread 
  • From: BBB HHH <>
  • To:
  • Subject: Re : Re : Re : Re : [cgal-discuss] An error when trying to compute intersection of polygons
  • Date: Sun, 27 Sep 2009 09:26:04 -0700 (PDT)
  • Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.fr; h=Message-ID:X-YMail-OSG:Received:X-Mailer:References:Date:From:Subject:To:In-Reply-To:MIME-Version:Content-Type; b=XHqoJ/V1IVm+eTyhBg8DoIgau66Kg01JtDMLROsvlxORQmnt4+uAbDy/JqUDU4fDGKaJJbbaGmA3PRzU8BXRxKkuKtinb3W765WO0akzEpLC0F6LMux70KfFuUEDikml11mOQQg/FeaBM1daoExApSQaK7+vc9xSVt7HA+XzXkQ=;

Hi Ben,

I am not an expert in computational geometry, nor in exact computations. However, I think that the lazy-exact-NT adapter is intended to use sufficient precision for the computation at hand. So its use allows to speed up computations without affecting their accuracy.

I tried to do the same job (computing intersections) by changing from the CGAL::Simple_cartesian<CGAL::Lazy_exact_nt<Gmpq> > kernel to the CGAL::Lazy_exact_nt<Gmpq> kernel (without the Lazy_exact_nt adapter) and i still have the same error as before. Does this mean that absence of evidence is evidence of absence ;-)

Thanks
Hichem



De : Ben Supnik <>
À :
Envoyé le : Dimanche, 27 Septembre 2009, 17h43mn 11s
Objet : Re: Re : Re : Re : [cgal-discuss] An error when trying to compute intersection of polygons

Hi Hichem,

BBB HHH wrote:
> I think the problem is not related to the -frounding-math version because of the successful execution of the second version of source code. Moreover, i am using exact number types.

Wait - I think this does not follow.

IF the CGAL code is correct:

- If rounding math is correct, boolean ops will succeed 100% of the time.
- If ronding math is incorrect, boolean ops will fail < 100% of the time.

In other words, the absence of evidence is not the evidence of absence.  I went a few weeks before I realized my rounding math was off...because a lot of the time the code succeeds.

Rounding math affects the exact kernel based on MP_float and quotient. I do not know how it affects gmp-based kernels or any of the filters/wrappers you might put around a kernel.

(My guess is that the lazy-exact-NT wrapper around your kernel might depend on rounding math for it's interval calcs.)

I am not saying here that you have a rounding problem...just that those two conditions (successful execution of the same data with other code and the use of an exact kernel) exactly match the case where I _did_ have a rounding error.

But...that may be moot -- we will see what Efi says.

Actually one thing to try: remove the lazy_exact wrapper from your kernel - just use simple_cartesian<gmpq>.  Besides being really slow, does the first code work? :-)

cheers
Ben
-- You are currently subscribed to cgal-discuss.
To unsubscribe or access the archives, go to
https://lists-sop.inria.fr/wws/info/cgal-discuss




Archive powered by MHonArc 2.6.16.

Top of Page