Separation criterion for list 3 far switches target and source radii
Here:
inline bool meets_sep_smaller_criterion(
coord_t root_extent,
coord_vec_t target_center, int target_level,
coord_vec_t source_center, int source_level,
coord_t stick_out_factor)
{
coord_t target_rad = LEVEL_TO_RAD(target_level);
coord_t source_rad = LEVEL_TO_RAD(source_level);
coord_t max_allowed_center_l_inf_dist = (
3 * target_rad
+ (1 + stick_out_factor) * source_rad);
coord_t l_inf_dist = 0;
%for i in range(dimensions):
l_inf_dist = fmax(
l_inf_dist,
fabs(target_center.s${i} - source_center.s${i}));
%endfor
return l_inf_dist >= max_allowed_center_l_inf_dist * (1 - 8 * COORD_T_MACH_EPS);
}
I am pretty sure the line should be
coord_t max_allowed_center_l_inf_dist = (
3 * source_rad
+ (1 + stick_out_factor) * target_rad);
because the stickout is on the target and not the source.