anchor.diff:                    % start resolve similar to a trivial recon but using the full diff!
                     % (as if non-initiator in trivial recon)
                     % NOTE: reduce P1E for the two parts here (SHash and trivial RC)
  +                  P1E_sub = calc_n_subparts_p1e(2, P1E),
                     {BuildTime, {MyDiff, SigSizeT, VSizeT}} =
                         util:tc(fun() ->
                                         compress_kv_list_p1e(
                                           NewKVList, FullDiffSize,
  -                                        OtherItemCount, ?SHASH_B * P1E)
  +                                        OtherItemCount, P1E_sub)
                                 end),
                     KList = [element(1, KV) || KV <- NewKVList],
                     OtherDBChunkOrig = Params#shash_recon_struct.db_chunk,
  
positive.code:     0; % invalid but since there are 0 items, this is ok!
  shash_signature_sizes(ItemCount, OtherItemCount, P1E) ->
      % reduce P1E for the two parts here (hash and trivial phases)
      A = 1 - ?SHASH_B,
      % 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, A * P1E, 128),
      % align if required
      Res = case config:read(rr_align_to_bytes) of
                false -> SigSize0;
  
negative.code: 
  %% @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).
  