diff --git a/src/shadowswift/algorithm3d/delaunay.h b/src/shadowswift/algorithm3d/delaunay.h index 48fe36877808f05f98db91e309194753f4b5aba5..379c965ad9432fa060884eedf6bc7878e3f91416 100644 --- a/src/shadowswift/algorithm3d/delaunay.h +++ b/src/shadowswift/algorithm3d/delaunay.h @@ -2256,8 +2256,8 @@ inline static void delaunay_compute_circumcenters( const double r3 = sqrt((cx - v3r[0]) * (cx - v3r[0]) + (cy - v3r[1]) * (cy - v3r[1]) + (cz - v3r[2]) * (cz - v3r[2])); - delaunay_assert(double_cmp(r0, r1, 6) && double_cmp(r0, r2, 6) && - double_cmp(r0, r3, 6)); + delaunay_assert(approx_equals(r0, r1, 1e-6) && + approx_equals(r0, r2, 1e-6) && approx_equals(r0, r3, 1e-6)); #endif } } diff --git a/src/shadowswift/algorithm3d/geometry.h b/src/shadowswift/algorithm3d/geometry.h index 0057075c19f5f71e03144416d6baf60992a01e58..9dd6545159d4c84e8612238bbdc24330dfb3e043 100644 --- a/src/shadowswift/algorithm3d/geometry.h +++ b/src/shadowswift/algorithm3d/geometry.h @@ -1035,20 +1035,24 @@ static inline double geometry3d_compute_circumradius2_adaptive( circumcenter[2] * circumcenter[2]; #ifdef SWIFT_DEBUG_CHECKS /* Check validity */ + double c_non_rel[3] = {v0->x_f64[0] + circumcenter[0], + v0->x_f64[1] + circumcenter[1], + v0->x_f64[2] + circumcenter[2]}; const double r12 = - (circumcenter[0] - v1->x_f64[0]) * (circumcenter[0] - v1->x_f64[0]) + - (circumcenter[1] - v1->x_f64[1]) * (circumcenter[1] - v1->x_f64[1]) + - (circumcenter[2] - v1->x_f64[2]) * (circumcenter[2] - v1->x_f64[2]); + (c_non_rel[0] - v1->x_f64[0]) * (c_non_rel[0] - v1->x_f64[0]) + + (c_non_rel[1] - v1->x_f64[1]) * (c_non_rel[1] - v1->x_f64[1]) + + (c_non_rel[2] - v1->x_f64[2]) * (c_non_rel[2] - v1->x_f64[2]); const double r22 = - (circumcenter[0] - v2->x_f64[0]) * (circumcenter[0] - v2->x_f64[0]) + - (circumcenter[1] - v2->x_f64[1]) * (circumcenter[1] - v2->x_f64[1]) + - (circumcenter[2] - v2->x_f64[2]) * (circumcenter[2] - v2->x_f64[2]); + (c_non_rel[0] - v2->x_f64[0]) * (c_non_rel[0] - v2->x_f64[0]) + + (c_non_rel[1] - v2->x_f64[1]) * (c_non_rel[1] - v2->x_f64[1]) + + (c_non_rel[2] - v2->x_f64[2]) * (c_non_rel[2] - v2->x_f64[2]); const double r32 = - (circumcenter[0] - v3->x_f64[0]) * (circumcenter[0] - v3->x_f64[0]) + - (circumcenter[1] - v3->x_f64[1]) * (circumcenter[1] - v3->x_f64[1]) + - (circumcenter[2] - v3->x_f64[2]) * (circumcenter[2] - v3->x_f64[2]); - assert(double_cmp(radius2, r12, 1e3) && double_cmp(radius2, r22, 1e3) && - double_cmp(radius2, r32, 1e3)); + (c_non_rel[0] - v3->x_f64[0]) * (c_non_rel[0] - v3->x_f64[0]) + + (c_non_rel[1] - v3->x_f64[1]) * (c_non_rel[1] - v3->x_f64[1]) + + (c_non_rel[2] - v3->x_f64[2]) * (c_non_rel[2] - v3->x_f64[2]); + assert(approx_equals(radius2, r12, 1e-6) && + approx_equals(radius2, r22, 1e-6) && + approx_equals(radius2, r32, 1e-6)); #endif return radius2 * box_side * box_side;