anchor.diff:  
   %% @doc Splits P1E into N equal independent sub-processes and returns the P1E
   %%      to use for each of these sub-processes: p_sub = 1 - (1 - p1e)^(1/n).
  +%%      This is based on p0e(total) = (1 - p1e(total)) = p0e(each)^n = (1 - p1e(each))^n.
   -spec calc_n_subparts_p1e(N::pos_integer(), P1E::float()) -> P1E_sub::float().
   calc_n_subparts_p1e(N, P1E) when P1E > 0 andalso P1E < 1 ->
   %%     _VP = 1 - math:pow(1 - P1E, 1 / N).
  
positive.code: %%      NOTE: reduces P1E for the two parts here (bloom and trivial RC)
  -spec bloom_fp(MaxItems::non_neg_integer(), P1E::float()) -> float().
  bloom_fp(MaxItems, P1E) ->
      1 - math:pow(1 - (1 - ?BLOOM_B) * P1E, 1 / erlang:max(MaxItems, 1)).
  
  -spec build_recon_struct(method(), OldSyncStruct::sync_struct() | {},
                           DestI::intervals:non_empty_interval(), db_chunk_kv(),
  
negative.code:     case get_min_version_bits() of
          variable ->
              % reduce P1E for the two parts here (key and version comparison)
              P1E_sub = calc_n_subparts_p1e(2, P1E),
              % cut off at 128 bit (rt_chord uses md5 - must be enough for all other RT implementations, too)
              SigSize0 = calc_signature_size_nm_pair(ItemCount, OtherItemCount, P1E_sub, 128),
              % note: we have n one-to-one comparisons
              VP = calc_n_subparts_p1e(erlang:max(1, VCompareCount), P1E_sub),
              VSize0 = min_max(util:ceil(util:log2(1 / VP)), get_min_version_bits(), 128),
              ok;
          VSize0 ->
  