From ae945cd329dd1faae3787fa4ea70ae37ea4fa32a Mon Sep 17 00:00:00 2001 From: Andreas Fabri Date: Thu, 18 Mar 2021 14:14:42 +0100 Subject: [PATCH] Avoid division for bounded side test --- .../include/CGAL/Cartesian/function_objects.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Cartesian_kernel/include/CGAL/Cartesian/function_objects.h b/Cartesian_kernel/include/CGAL/Cartesian/function_objects.h index 943cc686804..1bd6debebc4 100644 --- a/Cartesian_kernel/include/CGAL/Cartesian/function_objects.h +++ b/Cartesian_kernel/include/CGAL/Cartesian/function_objects.h @@ -253,18 +253,18 @@ namespace CartesianKernelFunctors { result_type operator()( const Tetrahedron_3& t, const Point_3& p) const { - FT alpha, beta, gamma; + FT alpha, beta, gamma, denom; Cartesian_internal::solve(t.vertex(1)-t.vertex(0), t.vertex(2)-t.vertex(0), t.vertex(3)-t.vertex(0), - p - t.vertex(0), alpha, beta, gamma); + p - t.vertex(0), alpha, beta, gamma, denom); if ( (alpha < 0) || (beta < 0) || (gamma < 0) - || (alpha + beta + gamma > 1) ) + || (alpha + beta + gamma > denom) ) return ON_UNBOUNDED_SIDE; if ( (alpha == 0) || (beta == 0) || (gamma == 0) - || (alpha+beta+gamma == 1) ) + || (alpha+beta+gamma == denom) ) return ON_BOUNDARY; return ON_BOUNDED_SIDE; @@ -3860,10 +3860,10 @@ namespace CartesianKernelFunctors { v1 = t.vertex(1)-o, v2 = t.vertex(2)-o; - FT alpha, beta, gamma; - Cartesian_internal::solve(v0, v1, v2, p-o, alpha, beta, gamma); + FT alpha, beta, gamma, denum; + Cartesian_internal::solve(v0, v1, v2, p-o, alpha, beta, gamma, denum); return (alpha >= FT(0)) && (beta >= FT(0)) && (gamma >= FT(0)) - && ((alpha+beta+gamma == FT(1))); + && ((alpha+beta+gamma == denum)); } result_type