@@ -46,28 +46,6 @@ def scipy_delaunay(points_np, query_points_np, use_voronoi_areas, areas_factor):
4646 points ,
4747 )
4848
49- # --- DEBUG / SAFETY CHECK: Voronoi areas ---
50- if not np .isfinite (areas ).all ():
51- n_nan = np .isnan (areas ).sum ()
52- n_inf = np .isinf (areas ).sum ()
53- print (
54- f"[pure_callback] Voronoi areas NON-FINITE: "
55- f"n_nan={ n_nan } n_inf={ n_inf } "
56- f"min={ np .nanmin (areas )} max={ np .nanmax (areas )} "
57- )
58-
59- # Save everything needed to reproduce offline
60- np .savez (
61- "callback_bad_voronoi_areas.npz" ,
62- points = points ,
63- areas = areas ,
64- )
65-
66- raise FloatingPointError (
67- "voronoi_areas_numpy produced NaN/inf; "
68- "saved callback_bad_voronoi_areas.npz"
69- )
70-
7149 max_area = np .percentile (areas , 90.0 )
7250
7351 areas [areas == - 1 ] = max_area
@@ -89,6 +67,28 @@ def scipy_delaunay(points_np, query_points_np, use_voronoi_areas, areas_factor):
8967 area_weights = split_point_areas ,
9068 )
9169
70+ # --- DEBUG / SAFETY CHECK: Voronoi areas ---
71+ if not np .isfinite (split_points ).all ():
72+ n_nan = np .isnan (split_points ).sum ()
73+ n_inf = np .isinf (split_points ).sum ()
74+ print (
75+ f"[pure_callback] Voronoi split_points NON-FINITE: "
76+ f"n_nan={ n_nan } n_inf={ n_inf } "
77+ f"min={ np .nanmin (split_points )} max={ np .nanmax (split_points )} "
78+ )
79+
80+ # Save everything needed to reproduce offline
81+ np .savez (
82+ "callback_bad_voronoi_split_points.npz" ,
83+ points = points ,
84+ split_points = split_points ,
85+ )
86+
87+ raise FloatingPointError (
88+ "voronoi_split_points_numpy produced NaN/inf; "
89+ "saved callback_bad_voronoi_split_points.npz"
90+ )
91+
9292 # ---------- find_simplex for split cross points ----------
9393 split_points_idx = tri .find_simplex (split_points )
9494
0 commit comments