\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)
CGAL 4.7 - 2D and 3D Linear Geometry Kernel
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
CGAL::Filtered_kernel< CK > Class Template Reference

#include <CGAL/Filtered_kernel.h>

Definition

Filtered_kernel is a kernel that uses a filtering technique based on interval arithmetic from to achieve exact and efficient predicates.

It is based on [cgal:bbp-iayed-01.] In addition, a few selected important predicates are implemented using the formally proved, semi-static, filtering techniques from [cgal:mp-fcafg-05.]

The geometric constructions are exactly those of the kernel CK, which means that they are not necessarily exact.

Parameters

The first parameter, CK, is the "Construction Kernel", namely the kernel from which are taken the types of the geometric objects as well as the geometric constructions.

The second parameter, UseStaticFilters, is a Boolean value which activates or not an additional layer of semi-static filters. It defaults to true (activated), unless the CGAL_NO_STATIC_FILTERS macro is defined. This option is mostly for debugging and testing, there should be no production use for deactivating static filters.

Is Model Of:
Kernel

Example

The following example shows how to produce a kernel whose geometric objects and constructions are those of Simple_cartesian<double> but the predicates are exact.

#include <CGAL/Simple_cartesian.h>
#include <CGAL/Filtered_kernel.h>

Implementation

The implementation uses CGAL::Filtered_predicate<EP, FP, C2E, C2F> over each predicate of the kernel traits interface. Additionally, faster static filters may be used for a few selected critical predicates.

Types

typedef EK Exact_kernel
 The type of the exact kernel. More...
 
typedef FK Approximate_kernel
 The type of the approximate "filtering" kernel. More...
 

Constants

static const bool Has_static_filters
 A Boolean value corresponding to the second template argument. More...
 

Member Typedef Documentation

template<typename CK >
typedef FK CGAL::Filtered_kernel< CK >::Approximate_kernel

The type of the approximate "filtering" kernel.

template<typename CK >
typedef EK CGAL::Filtered_kernel< CK >::Exact_kernel

The type of the exact kernel.

Member Data Documentation

template<typename CK >
const bool CGAL::Filtered_kernel< CK >::Has_static_filters
static

A Boolean value corresponding to the second template argument.

Tells whether static filters are provided.