Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] Difference between Lazy_exact and Filtered_kernel?

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] Difference between Lazy_exact and Filtered_kernel?


Chronological Thread 
  • From: Andreas Fabri <>
  • To:
  • Subject: Re: [cgal-discuss] Difference between Lazy_exact and Filtered_kernel?
  • Date: Sun, 10 Aug 2008 18:26:04 -0700

Hi Thomas,

Thomas Zangl - Home wrote:
Am Thu, 03 Jul 2008 15:21:43 +0200, schrieb "Andreas Fabri" <>:

Hi!

Sorry, but I did not get yet what the *main* difference between the
Lazy_kernel and Filtered_kernel is.
The main difference is that
The lazy kernel is exact_predicates_exact_constructions
The Filtered kernel is only exact_predicates

I tried to summarize your explainations about the lazy kernel and the
DAG of the geometric operations:

If geometric and arithmetic operations are carried out using the exact number
type, the lazy kernel stores a DAG (''directed acyclic graph'') for every
operation. Each node of the DAG stores:

* A geometric object or number with intervals of doubles,
* The type of the geometric or arithmetic operation,
* Pointers to the DAG nodes representing the operands of the
geometric/arithmetic operation.
The DAG for each operation is stored in a history-like way. If a
predicate on the lazy kernel fails, the postponed exact computation is
replayed from the information stored in the DAG. The lazy kernel fails
if e.g., a comparison is performed using Interval arithmetic and the
interval overlaps, hence, the filter cannot securely decide.
-----

However, some questions arise:

-> Is a Geometric object something like a point, line, segment, plane,
triangle?

right
-> The type of geometric or artihmetic operation is: +,-, etc. or
"intersection(x,y)"?

It's not 'or' but 'and'. Also the lazy geometric objects have
a lazy number type for the coordinates, that is

Lazy_exact_nt Lazy<Point>::x();


The DAG of the number stores the DAG of the point.



How are the constructions filtered? Can you please give me an example?


When you perform an orientation test for three lazy points
it is first performed on the approximate points with double intervals.
If this cannot been done the exact versions of the points are
computed by applying the exact constructions of the DAG.

andreas

Thank you!




Archive powered by MHonArc 2.6.16.

Top of Page