diff --git a/Filtered_kernel/include/CGAL/internal/Static_filters/Collinear_3.h b/Filtered_kernel/include/CGAL/internal/Static_filters/Collinear_3.h index 723ae59fa0c..6038bfef01f 100644 --- a/Filtered_kernel/include/CGAL/internal/Static_filters/Collinear_3.h +++ b/Filtered_kernel/include/CGAL/internal/Static_filters/Collinear_3.h @@ -77,32 +77,18 @@ public: upper_bound_1 = max1; int int_tmp_result; - if (lower_bound_1 < 5.00368081960964635413e-147) + + if ( (lower_bound_1 < 5.00368081960964635413e-147) || (upper_bound_1 > 1.67597599124282407923e+153) ) return Base::operator()(p, q, r); - else - { - if (upper_bound_1 > 1.67597599124282407923e+153) - return Base::operator()(p, q, r); - double eps = (8.88720573725927976811e-16 * (max1 * max2)); - if (double_tmp_result > eps) - int_tmp_result = 1; - else - { - if (double_tmp_result < -eps) - int_tmp_result = -1; - else - return Base::operator()(p, q, r); - } - } - - int sign_of_determinant_return_value = int_tmp_result; - if (sign_of_determinant_return_value != 0) + double eps = (8.88720573725927976811e-16 * (max1 * max2)); + if ( (double_tmp_result > eps) || (double_tmp_result < -eps) ) return false; + double dpz = (pz - rz); double dqz = (qz - rz); - int int_tmp_result_3SPBwDj; + double double_tmp_result_k3Lzf6g = ((dpx * dqz) - (dpz * dqx)); double max3 = CGAL::abs(dpz); @@ -117,28 +103,13 @@ public: else if (max3 > upper_bound_1) upper_bound_1 = max3; - if (lower_bound_1 < 5.00368081960964635413e-147) - return Base::operator()(p, q, r); - else - { - if (upper_bound_1 > 1.67597599124282407923e+153) + if ( (lower_bound_1 < 5.00368081960964635413e-147) || (upper_bound_1 > 1.67597599124282407923e+153) ) return Base::operator()(p, q, r); - double eps = (8.88720573725927976811e-16 * (max1 * max3)); - if (double_tmp_result_k3Lzf6g > eps) - int_tmp_result_3SPBwDj = 1; - else - { - if (double_tmp_result_k3Lzf6g < -eps) - int_tmp_result_3SPBwDj = -1; - else - return Base::operator()(p, q, r); - } - } + eps = (8.88720573725927976811e-16 * (max1 * max3)); + if ( std::abs(double_tmp_result_k3Lzf6g) > eps) + return false; - int sign_of_determinant_return_value_FFWKCAA = int_tmp_result_3SPBwDj; - - int int_tmp_result_Gx4H; double double_tmp_result_AvrrXBP = ((dpy * dqz) - (dpz * dqy)); lower_bound_1 = max2; @@ -149,26 +120,12 @@ public: else if (max3 > upper_bound_1) upper_bound_1 = max3; - if (lower_bound_1 < 5.00368081960964635413e-147) - return Base::operator()(p, q, r); - else - { - if (upper_bound_1 > 1.67597599124282407923e+153) + if ( (lower_bound_1 < 5.00368081960964635413e-147) || (upper_bound_1 > 1.67597599124282407923e+153) ) return Base::operator()(p, q, r); - double eps = (8.88720573725927976811e-16 * (max2 * max3)); - if (double_tmp_result_AvrrXBP > eps) - int_tmp_result_Gx4H = 1; - else - { - if (double_tmp_result_AvrrXBP < -eps) - int_tmp_result_Gx4H = -1; - else - return Base::operator()(p, q, r); - } - } - int sign_of_determinant_return_value_k60Ocge = int_tmp_result_Gx4H; - return ((sign_of_determinant_return_value_FFWKCAA == 0) && (sign_of_determinant_return_value_k60Ocge == 0)); + eps = (8.88720573725927976811e-16 * (max2 * max3)); + if ( std::abs(double_tmp_result_AvrrXBP) > eps) + return false; } return Base::operator()(p, q, r); }