anchor.diff:  %%       0: turn off subgrouping;
   %%       N: subgroup N orders of magnitude into one (defaults to 3)
   %%
  +%%   samples: N (must be an integer power of 2)
  +%%       sample buffer size for collecting example data
  +%%
   %%   strlen: true | false
   %%     subgrouping of strings by length
   %%
  
positive.code: %% do this in a computationally cheap manner.
  
  %% Algorithm: we have a certain capacity of samples in sample_data,
  %% ?N_SAMPLES. When it is filled, we throw every other away.
  %% From then, we put only every other incoming sample in the list.
  %% When sample_data is filled again, we again throw every other away.
  %% From then, only every fourth incoming sample is put in the list,
  %% etc.
  
  -define(N_SAMPLES, 16).
  
  sample_data(Data) ->
      {0, 1, 1, [Data]}. % divisor, n_received, size, sample_data
  
  sample_data(_Data, {Div, N, Size, Samples}) when (N+1) band Div =/= 0 ->
      {Div, N+1, Size, Samples};
  sample_data(_Data, {Div, N, Size, Samples}) when Size =:= ?N_SAMPLES ->
      {Div bsl 1 + 1, N+1, Size bsr 1, drop2(Samples)};
  sample_data(Data, {Div, N, Size, Samples}) ->
      {Div, N+1, Size+1, [Data|Samples]}.
  
  drop2(L) -> drop2(L, false, []).
  
  
negative.code: %%       false: no output
  %%       N: output progress info every N samples
  
  opts() ->
      %% The following table specifies the options interpreted
      %%
      %%      name: name of option
  