- Use templates instead of macros.

This commit is contained in:
Sylvain Pion 2006-01-28 23:19:08 +00:00
parent b0230a4b6b
commit 9da9e8d3dd
4 changed files with 26 additions and 56 deletions

View File

@ -15,7 +15,6 @@ include $(CGAL_MAKEFILE)
CXXFLAGS = \
-I../../include \
-I../../../Number_types/include \
$(TESTSUITE_CXXFLAGS) \
$(EXTRA_FLAGS) \
$(CGAL_CXXFLAGS) \
@ -40,26 +39,30 @@ LDFLAGS = \
#---------------------------------------------------------------------#
all: \
bench_IA$(EXE_EXT) \
Filtered_kernel$(EXE_EXT) \
gcc_3.0_bug$(EXE_EXT) \
Interval_nt$(EXE_EXT) \
Lazy_exact_nt$(EXE_EXT) \
Static_filters$(EXE_EXT) \
to_interval_test$(EXE_EXT) \
tst0$(EXE_EXT) \
tst10$(EXE_EXT) \
tst1$(EXE_EXT) \
tst2$(EXE_EXT) \
tst3$(EXE_EXT) \
tst4$(EXE_EXT) \
tst5$(EXE_EXT) \
tst6$(EXE_EXT)
bench_IA$(EXE_EXT): bench_IA$(OBJ_EXT)
$(CGAL_CXX) $(LIBPATH) $(EXE_OPT)bench_IA bench_IA$(OBJ_EXT) $(LDFLAGS)
Filtered_kernel$(EXE_EXT): Filtered_kernel$(OBJ_EXT)
$(CGAL_CXX) $(LIBPATH) $(EXE_OPT)Filtered_kernel Filtered_kernel$(OBJ_EXT) $(LDFLAGS)
gcc_3.0_bug$(EXE_EXT): gcc_3.0_bug$(OBJ_EXT)
$(CGAL_CXX) $(LIBPATH) $(EXE_OPT)gcc_3.0_bug gcc_3.0_bug$(OBJ_EXT) $(LDFLAGS)
Interval_nt$(EXE_EXT): Interval_nt$(OBJ_EXT)
$(CGAL_CXX) $(LIBPATH) $(EXE_OPT)Interval_nt Interval_nt$(OBJ_EXT) $(LDFLAGS)
Lazy_exact_nt$(EXE_EXT): Lazy_exact_nt$(OBJ_EXT)
$(CGAL_CXX) $(LIBPATH) $(EXE_OPT)Lazy_exact_nt Lazy_exact_nt$(OBJ_EXT) $(LDFLAGS)
@ -75,18 +78,6 @@ tst0$(EXE_EXT): tst0$(OBJ_EXT)
tst10$(EXE_EXT): tst10$(OBJ_EXT)
$(CGAL_CXX) $(LIBPATH) $(EXE_OPT)tst10 tst10$(OBJ_EXT) $(LDFLAGS)
tst1$(EXE_EXT): tst1$(OBJ_EXT)
$(CGAL_CXX) $(LIBPATH) $(EXE_OPT)tst1 tst1$(OBJ_EXT) $(LDFLAGS)
tst2$(EXE_EXT): tst2$(OBJ_EXT)
$(CGAL_CXX) $(LIBPATH) $(EXE_OPT)tst2 tst2$(OBJ_EXT) $(LDFLAGS)
tst3$(EXE_EXT): tst3$(OBJ_EXT)
$(CGAL_CXX) $(LIBPATH) $(EXE_OPT)tst3 tst3$(OBJ_EXT) $(LDFLAGS)
tst4$(EXE_EXT): tst4$(OBJ_EXT)
$(CGAL_CXX) $(LIBPATH) $(EXE_OPT)tst4 tst4$(OBJ_EXT) $(LDFLAGS)
tst5$(EXE_EXT): tst5$(OBJ_EXT)
$(CGAL_CXX) $(LIBPATH) $(EXE_OPT)tst5 tst5$(OBJ_EXT) $(LDFLAGS)
@ -94,17 +85,15 @@ tst6$(EXE_EXT): tst6$(OBJ_EXT)
$(CGAL_CXX) $(LIBPATH) $(EXE_OPT)tst6 tst6$(OBJ_EXT) $(LDFLAGS)
clean: \
bench_IA.clean \
Filtered_kernel.clean \
gcc_3.0_bug.clean \
Interval_nt.clean \
Lazy_exact_nt.clean \
Static_filters.clean \
to_interval_test.clean \
tst0.clean \
tst10.clean \
tst1.clean \
tst2.clean \
tst3.clean \
tst4.clean \
tst5.clean \
tst6.clean

View File

@ -1,9 +1,5 @@
// Generic bench file for the IA package.
// Sylvain Pion, 1997-2000.
// This file is included from tst[34].C, that do just a #define:
// #define TESTED_TYPE Interval_nt_advanced // For tst3.C
// #define TESTED_TYPE Interval_nt // For tst4.C
// Sylvain Pion, 1997-2005.
#include <CGAL/basic.h>
#include <CGAL/Timer.h>
@ -12,8 +8,6 @@
#include <cassert>
typedef TESTED_TYPE IA_nt;
#ifndef LOOPS
# define LOOPS 1000
#endif
@ -22,6 +16,7 @@ const int loops = LOOPS;
// Some simple operators benchmarks.
template < typename IA_nt >
void bench()
{
int i;
@ -80,6 +75,7 @@ void bench()
// OrientationC2() benchmark.
template < typename IA_nt >
void bench_orientation()
{
IA_nt a(0.12);
@ -100,30 +96,29 @@ void bench_orientation()
}
int main()
template < typename IA_nt >
void bench_main()
{
#ifdef ADVANCED
CGAL::FPU_CW_t backup = CGAL::FPU_get_cw();
CGAL::FPU_set_cw(CGAL_FE_UPWARD);
std::cout << "Benching the class Interval_nt_advanced.\n";
#else
std::cout << "Benching the class Interval_nt.\n";
#endif
typename IA_nt::Protector p;
double d;
if ((((long) &d) & 7) != 0)
std::cout << "Benchmark might not be meaningful due to bad alignment\n";
std::cout.precision(20);
bench();
bench_orientation();
bench<IA_nt>();
bench_orientation<IA_nt>();
IA_nt a=1, b=2;
(void) CGAL_NTS sign(a);
(void) CGAL_NTS compare(a,b);
}
#ifdef ADVANCED
CGAL::FPU_set_cw(backup);
#endif
int main()
{
std::cout << "Benching the class Interval_nt.\n";
bench_main<CGAL::Interval_nt<> >();
std::cout << "\nBenching the class Interval_nt_advanced.\n";
bench_main<CGAL::Interval_nt_advanced>();
return 0;
}

View File

@ -1,7 +0,0 @@
// Bench file #3 for the IA package.
// $Revision$
// $Date$
#define NOT_ADVANCED
#define TESTED_TYPE CGAL::Interval_nt<>
#include "include/bench_generic.C"

View File

@ -1,7 +0,0 @@
// Bench file #4 for the IA package.
// $Revision$
// $Date$
#define ADVANCED
#define TESTED_TYPE CGAL::Interval_nt_advanced
#include "include/bench_generic.C"