Filtered_kernel<CK>is a kernel that uses the filtering technique [BBP01] to achieve a kernel with exact and efficient predicates. The geometric constructions are exactly those of the kernel CK, which means that they are not necessarily exact.

Is Model for the Concept


#include <CGAL/Filtered_kernel.h>


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;


The implementation uses CGAL::Filtered_predicate<EP, FP, C2E, C2F> over each predicate of the kernel traits interface. Additionally, faster static filters are used for a few selected critical predicates. The static filters can be disabled by compiling with -DCGAL_NO_STATIC_FILTERS.