\( \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.8 - 2D and 3D Linear Geometry Kernel

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members
CGAL::Filtered_kernel< CK > Class Template Reference
Kernel Classes

`#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 [1]. In addition, a few selected important predicates are implemented using the formally proved, semi-static, filtering techniques from [4].

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>
typedef CGAL::Simple_cartesian<double> CK;
typedef CGAL::Filtered_kernel<CK> K;

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.
typedef FK | Approximate_kernel
| The type of the approximate "filtering" kernel.

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

## 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.