Commit Graph

192 Commits

Author SHA1 Message Date
Laurent Rineau 00c7151ce0 merge change from next 2011-12-06 14:23:47 +00:00
Laurent Rineau 8e44b6acde Change the name in the profiler of Do_intersect_3 static filter
Do_intersect_3 has a template member function. If one use
CGAL_PRETTY_FUNCTION as function name, then the compiler gives the full
name of the function, with its parameters.
2011-12-06 11:51:09 +00:00
Andreas Fabri 67e591188f Remove unnecessary abs() 2011-12-02 22:00:04 +00:00
Laurent Rineau 41915d0d4c Remove the executable bit 2011-11-30 14:50:08 +00:00
Andreas Fabri 63c1b84c0d Add static filter for Is_degenerate 2011-11-30 13:48:15 +00:00
Laurent Rineau f551b78e47 Add a comment 2011-11-28 14:53:15 +00:00
Laurent Rineau fef3253301 Static filter Angle_3: now handle over/underflows 2011-11-28 14:52:43 +00:00
Laurent Rineau c9b29f87c7 Static filter for Angle_3
TODO: overflow/underflow
2011-11-25 18:15:38 +00:00
Andreas Fabri c4c4a24029 cleanup 2011-11-24 14:15:32 +00:00
Laurent Rineau 997b298413 Add overloads for operator()(Bbox_3, query) 2011-11-21 16:12:50 +00:00
Andreas Fabri d83bd11544 Add generic operator 2011-11-21 15:22:10 +00:00
Laurent Rineau e8466cfcc4 Fix a stupid bug: the condition "tmax > dmax" must not be tested for rays 2011-11-21 15:01:06 +00:00
Laurent Rineau d8448a1367 Better comments 2011-11-21 14:00:43 +00:00
Laurent Rineau 8feb65360c Clean and fix Do_intersect_3()(Ray_3, Bbox_3) 2011-11-21 13:25:59 +00:00
Andreas Fabri 4dc8b774ff Getting started with the Bbox_3_Ray_3 do_intersect 2011-11-19 09:51:43 +00:00
Laurent Rineau ac72450bcb Handling of over|underflow in the static filter of Do_intersect_3 2011-11-18 16:45:41 +00:00
Laurent Rineau 1ea6830233 New version of Do_intersect_3 static filter
This time we hope it is correct.
2011-11-18 15:34:26 +00:00
Laurent Rineau 14e12485c0 Integration of a static filter for Do_intersect_3
So far, only operator()(BBox_3, Segment_3) has a static filter.

The result is gain by factor of 2 on a bench that does random segment
queries in an aabb tree of a real object (test/AABB_tree/data/finger.off).

The results on ten runs follow.

Without the static filter of Do_intersect_3:
| Epic kernel |10.21 | 
| Epic kernel |10.15 | 
| Epic kernel |10.46 | 
| Epic kernel |10.17 | 
| Epic kernel |10.12 | 
| Epic kernel |10.13 | 
| Epic kernel |10.16 | 
| Epic kernel |10.34 | 
| Epic kernel |10.2 | 
| Epic kernel |10.38 | 

With the static filter of Do_intersect_3()(BBox_3, Segment_3):
| Epic kernel |5.42 | 
| Epic kernel |5.4 | 
| Epic kernel |5.36 | 
| Epic kernel |5.41 | 
| Epic kernel |5.38 | 
| Epic kernel |5.41 | 
| Epic kernel |5.79 | 
| Epic kernel |5.53 | 
| Epic kernel |5.66 | 
| Epic kernel |5.45 |
2011-11-17 16:51:37 +00:00
Andreas Fabri 810ab2568f Add static filter for do_intersect(Bbox_3, Segment_3) Do_intersect_3.h 2011-11-17 15:48:44 +00:00
Sébastien Loriot 554f62d411 remove executable property from copyright files 2011-10-03 08:18:16 +00:00
Andreas Fabri d10a333947 Add a file with the copyright holder(s) to the package_info 2011-09-29 20:45:16 +00:00
Sébastien Loriot dff6dda8b3 Remove from copyright holder
Freie Universitaet Berlin (Germany), Martin-Luther-University Halle-Wittenberg
(Germany) and RISC Linz (Austria) as they transfer the copyright to other
sites.
2011-09-21 19:46:31 +00:00
Philipp Möller f9b288db90 Merged branch ^/branches/features/gsoc2011-copy_n-pmoeller.
Small feature page: https://cgal.geometryfactory.com/CGAL/Members/wiki/Features/Small_Features/Replace_copy_n
2011-08-26 14:34:10 +00:00
Sébastien Loriot b32ccc4959 BUGFIX: The commit done at revision 64278 for handling
vectors of points in CGAL::Object when intersecting with Lazy_kernel
was missing the case when the construction failed with approximate
kernel. Add into make_lazy overload of object code to handle it.
Update the testsuite to test this (crash if not here).
2011-08-25 13:19:36 +00:00
Laurent Rineau 65519c0f63 Fix a warning from MSVC
The warning on x64_Cygwin-Vista_MSVS2010-64bits was:

include\CGAL/Filtered_kernel/Cartesian_coordinate_iterator_3.h(68) :
warning C4800: 'const CGAL::Vector_3<R_> *const *' : forcing value to bool
'true' or 'false' (performance warning)
2011-07-05 12:16:28 +00:00
Sébastien Loriot 6d22a78acd cosmetic 2011-06-21 13:53:15 +00:00
Sébastien Loriot cfd2c9fa94 Andreas' fix for handling vectors of points in CGAL::Object
when intersecting with Lazy_kernel. Add a testfile.
2011-06-21 13:36:00 +00:00
Sébastien Loriot 91131de01f add three argument version operator() to Lazy_construction_object.
It enables intersection(Plane_3,Plane_3,Plane_3) to work with EPEC
2011-06-20 13:55:23 +00:00
Sébastien Loriot ea598e5a45 fix bug in Construct_cartesian_const_iterator_[23]
The operator() for constructing past the end iterator was
forwarding the int value to the iterator type.
2011-05-13 12:05:51 +00:00
Laurent Rineau 3c02e07b23 Try to fix my last revision about cmake_policy, with CMake-2.6.x
CMake gives an error if one tries to use cmake_policy(VERSION x.y.z) if
x.y.z is greater than the current CMake version.
2011-04-28 17:45:22 +00:00
Laurent Rineau c97205f085 Global handling of CMake policies (second part)
We declare 
  cmake_minimum_required(VERSION 2.6.2)
but we also use
  cmake_policy(VERSION 2.8.4)
to declare that our CMake scripts are OK with all the defaults of CMake policies
as of CMake-2.8.4. That shuts down the warnings of CMake-2.8.4.

That way, we no longer need any declaration of specific policies.

Those two lines must be present and maintained in all our CMakeLists.txt
files (the one for the libraries, and also the one for examples and demos,
and maybe tests).
2011-04-28 10:55:56 +00:00
Laurent Rineau 0631943153 Uniform capitalization in our CMake script: use lowercase for commands 2011-04-28 10:36:18 +00:00
Laurent Rineau 6f05e72cef Global maintenance of CMakeLists.txt: CMake minimal version is -2.6.2
The documentation of CGAL says that the minimal version of CMake must be
CMake-2.6.2.
  - change cmake_minimum_required to VERSION 2.6.2
  - no longer any need for the policy CMP0003 (was for 2.4.x)
  - no longer any need for CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS (was for 2.4)
2011-04-27 18:06:32 +00:00
Andreas Fabri e7748c9dce Use SSE2 based versions of abs, min, max
Their usage is controlled with CGAL_USE_SSE2_FABS CGAL_USE_SSE2_MAX
2011-04-01 14:02:58 +00:00
Laurent Rineau 13bdda717f more powerfull version, to test four things at once 2011-03-17 18:01:12 +00:00
Laurent Rineau 68a662b195 Update CMakeLists.txt so that bench_simple_comparisons does not link with CGAL 2011-03-17 11:50:41 +00:00
Laurent Rineau f1558ad575 Reduce the size of the vector, to reduce the effect of the L1 cache 2011-03-17 10:57:33 +00:00
Laurent Rineau 73c767025b bench_simple_comparisons: do not use vector but an C array. 2011-03-17 10:44:08 +00:00
Laurent Rineau c9988f7796 Non-CGAL code to bench the simple comparison of doubles 2011-03-16 15:00:39 +00:00
Laurent Rineau 1086527e03 CMake trick: use set_property and the property COMPILE_DEFINITIONS to build
two different executable from one source.
2011-03-16 14:01:54 +00:00
Laurent Rineau 0223ee8abb Can also bench comparisons 2011-03-16 13:38:37 +00:00
Laurent Rineau ae39f5d707 Get_approx<T, has_approx> must be CGAL::Identity when has_approx==false 2011-03-16 11:40:02 +00:00
Andreas Fabri cbf54d65d8 Add a bench which only compares coordinates 2011-03-16 11:22:47 +00:00
Andreas Fabri e89ff5ba71 Testbed for figuring out why VC++ is much slower than g++ 2011-03-16 11:15:56 +00:00
Sébastien Loriot 1481d66ec7 add missing declarations 2011-02-17 07:28:05 +00:00
Andreas Fabri 3326bf5316 Use CGAL::abs instead of fabs 2011-02-16 15:51:53 +00:00
Andreas Fabri 64a1a3a18c Use CGAL::abs instead of fabs 2011-02-16 14:28:33 +00:00
Sébastien Loriot 3539a9f144 update for Filtered_kernel 2010-12-29 08:51:11 +00:00
Sébastien Loriot 0607d7650f update profile script for change in CGAL 2010-12-29 08:47:09 +00:00
Laurent Rineau 8eac6ca650 Improvement: add static filters to Lazy_kernel (which is the EPEC kernel).
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).
2010-12-17 13:53:26 +00:00