def get_rounding_distance() -> RBig:
k_min = get_min_k(T) if k < k_min: raise f"k ({k}) must not be smaller than {k_min}"
input_gran = x_mul_2k(RBig.ONE, k_min)
output_gran = x_mul_2k(RBig.ONE, k)
distance = output_gran - input_gran
if not distance.is_zero(): if size is None: raise "domain size must be known if discretization is not exact"
match P:
case 1:
distance *= RBig.from_(size)
case 2:
distance *= RBig.try_from(f64.inf_cast(size).inf_sqrt())
case _:
raise f"norm ({P}) must be one or two"
return distance