anchor.diff:  %%      probability of P1E, given we compare N hashes with M other hashes
   %%      pairwise with each other (assuming that ExpDelta percent of them are
   %%      different).
  +%%      NOTE: if multiple items are affected by the collision, simply divide
  +%%            P1E by the number of affected items!
   -spec calc_signature_size_nm_pair(N::non_neg_integer(), M::non_neg_integer(),
                                     ExpDelta::number(), P1E::float(),
                                     MaxSize::signature_size())
  
positive.code: trivial_signature_sizes(ItemCount, OtherItemCount, ExpDelta, P1E) ->
      MaxKeySize = 128, % see compress_key/2
      VSize = get_min_version_bits(),
      SigSize = calc_signature_size_nm_pair(
                  ItemCount, OtherItemCount, ExpDelta, P1E, MaxKeySize),
  %%     log:pal("trivial [ ~p ] - P1E: ~p, \tSigSize: ~B, \tVSizeL: ~B~n"
  %%             "MyIC: ~B, \tOtIC: ~B",
  %%             [self(), P1E, SigSize, VSize, ItemCount, OtherItemCount]),
  
negative.code:     % reduce P1E for the two parts here (hash and trivial phases)
      P1E_sub = calc_n_subparts_p1e(2, P1E),
      MaxKeySize = 128, % see compress_key/2
      % note: there are up to 2 affected items for a hash collision
      %       -> use (P1E_sub / 2)
      SigSize = calc_signature_size_nm_pair(
                  ItemCount, OtherItemCount, ExpDelta, P1E_sub / 2, MaxKeySize),
  %%     log:pal("shash [ ~p ] - P1E: ~p, \tSigSize: ~B, \tMyIC: ~B, \tOtIC: ~B",
  %%             [self(), P1E, SigSize, ItemCount, OtherItemCount]),
      {SigSize, 0}.
  