For that:
- Split internal::Static_filters into two classes: one with only filtered
functors, for Epeck, and one that use the filtered functors, but also use
directory unfiltered functors of the Cartesian kernel (for predicates that
only compare doubles).
- Add a functor Get_approx in <CGAL/internal/Static_filters/tools.h>, that
is the identity for all types but lazy types (in that case its returns
"x.approx()").
- Use Get_approx in static-filters versions of predicates, so that they can
be used with Lazy_kernel too.
- Use Static_filters<K_base, false> as base class of Lazy_kernel.
- Rewrite <CGAL/Exact_predicate_exact_constructions_kernel.h>, to use
static filters for Epeck, but also to simplify that file by the use
Exact_type_selector<double>::Type as number type.
(The testsuite of Kernel_23 is OK on the platform
x86-64_Linux-2.6_g++-4.4.4_F13).
in revision 58154, Filtered_bbox_circular_kernel_2<Lazy_circular_kernel_2<K> >
was no longer working.
In Circular_kernel_2:
*The Rep type of Circular_arc_2, Line_arc_2 and Circular_arc_point_2 in
Filtered_bbox_circular_kernel_2 now inherits from the Rep of the kernel
template parameter. To allow Lazy filtering mechanism on
Filtered_bbox_circular_kernel_2::{Circular_arc_2,Line_arc_2,Circular_arc_point_2}
it was needed to explicit some conversions (with Lazy_circular_kernel, we add another
implicit construction, thus the compiler cannot find the correct constructor).
In Filtered_kernel:
*explicit some conversions
by namespace CGAL { and } //namespace CGAL. in all .h and .cpp files
in a directory.
Apply it to all packages in the trunk
Remove macro definition from the config.h file.
that allows to specify if static filters are activated or not.
It allows to have both variants at the same time, which allows for
a faster test-suite.
CGAL_NO_STATIC_FILTERS still allows to tweak the default.
a better alternative to Protect_FPU_rounding(CGAL_FE_TONEAREST) which is
slightly unrelated.
If it works, then let's use it in the places that have recently been using
Protect_FPU_rounding for this issue.
(it was alrady the same type, but now the filtering code can be independent on Interval_nt_advanced
(think other interval types, or other types of filters).