anchor.diff:       16#6c6145ffa1169d,16#18ec2c393d45359,16#1f1a5f256e7130c,16#131cc2f49b8004f,
        16#36f715a249f4ec2,16#1c27629826c50d3,16#914d9a6648726a,16#27f5bf5ce2301e8,
        16#3dd493b8012970f,16#be13bed1e00e5c,16#ceef033b74ae10,16#3da38c6a50abe03,
  -     16#15cbd1a421c7a8c,16#22794e3ec6ef3b1,16#26154d26e7ea99f,16#3a66681359a6ab6].
  -
  -%%%
  +     16#15cbd1a421c7a8c,16#22794e3ec6ef3b1,16#26154d26e7ea99f,16#3a66681359a6ab6];
  +
  +reference_val(exsp) ->
  +    reference_val(exsplus);
  +reference_val(exs1024s) ->
  +    reference_val(exs1024);
  +reference_val(exrop) ->
  +%% #include <stdint.h>
  +%% #include <stdio.h>
  +%%
  +%% uint64_t s[2];
  +%% uint64_t next(void);
  +%% /* Xoroshiro116+ PRNG here */
  +%%
  +%% int main(char *argv[]) {
  +%%     int n;
  +%%     uint64_t r;
  +%%     s[0] = 12345678;
  +%%     s[1] = 12345678;
  +%%
  +%%     for (n = 1000000;  n > 0;  n--) {
  +%%         r = next();
  +%%         if ((n % 10000) == 0) {
  +%%             printf("%llu,", (unsigned long long) (r + 1));
  +%%         }
  +%%     }
  +%%     printf("\n");
  +%% }
  +    [24691357,29089185972758626,135434857127264790,
  +     277209758236304485,101045429972817342,
  +     241950202080388093,283018380268425711,268233672110762489,
  +     173241488791227202,245038518481669421,
  +     253627577363613736,234979870724373477,115607127954560275,
  +     96445882796968228,166106849348423677,
  +     83614184550774836,109634510785746957,68415533259662436,
  +     12078288820568786,246413981014863011,
  +     96953486962147513,138629231038332640,206078430370986460,
  +     11002780552565714,238837272913629203,
  +     60272901610411077,148828243883348685,203140738399788939,
  +     131001610760610046,30717739120305678,
  +     262903815608472425,31891125663924935,107252017522511256,
  +     241577109487224033,263801934853180827,
  +     155517416581881714,223609336630639997,112175917931581716,
  +     16523497284706825,201453767973653420,
  +     35912153101632769,211525452750005043,96678037860996922,
  +     70962216125870068,107383886372877124,
  +     223441708670831233,247351119445661499,233235283318278995,
  +     280646255087307741,232948506631162445,
  +     %%
  +     117394974124526779,55395923845250321,274512622756597759,
  +     31754154862553492,222645458401498438,
  +     161643932692872858,11771755227312868,93933211280589745,
  +     92242631276348831,197206910466548143,
  +     150370169849735808,229903773212075765,264650708561842793,
  +     30318996509793571,158249985447105184,
  +     220423733894955738,62892844479829080,112941952955911674,
  +     203157000073363030,54175707830615686,
  +     50121351829191185,115891831802446962,62298417197154985,
  +     6569598473421167,69822368618978464,
  +     176271134892968134,160793729023716344,271997399244980560,
  +     59100661824817999,150500611720118722,
  +     23707133151561128,25156834940231911,257788052162304719,
  +     176517852966055005,247173855600850875,
  +     83440973524473396,94711136045581604,154881198769946042,
  +     236537934330658377,152283781345006019,
  +     250789092615679985,78848633178610658,72059442721196128,
  +     98223942961505519,191144652663779840,
  +     102425686803727694,89058927716079076,80721467542933080,
  +     8462479817391645,2774921106204163].
  +
  +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   
   reference_jump_val(exsplus) ->
       [82445318862816932, 145810727464480743, 16514517716894509, 247642377064868650,
  
positive.code:     end.
  
  gen(Algo) ->
      Seed = case Algo of
  	       exsplus -> %% Printed with orig 'C' code and this seed
  		   rand:seed_s({exsplus, [12345678|12345678]});
  	       exs64 -> %% Printed with orig 'C' code and this seed
  		   rand:seed_s({exs64, 12345678});
  	       exs1024 -> %% Printed with orig 'C' code and this seed
  		   rand:seed_s({exs1024, {lists:duplicate(16, 12345678), []}});
  	       _ ->
  		   rand:seed(Algo, {100, 200, 300})
  	   end,
      gen(?LOOP, Seed, []).
  
  gen(N, State0 = {#{max:=Max}, _}, Acc) when N > 0 ->
      {Random, State} = rand:uniform_s(Max, State0),
      case N rem (?LOOP div 100) of
  	0 -> gen(N-1, State, [Random|Acc]);
  	_ -> gen(N-1, State, Acc)
      end;
  gen(_, _, Acc) -> lists:reverse(Acc).
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% This just tests the basics so we have not made any serious errors
  
negative.code:     basic_uniform_1(N-1, S, Sum+X, A);
  basic_uniform_1(0, {#{type:=Alg}, _}, Sum, A) ->
      AverN = Sum / ?LOOP,
      io:format("~.12w: Average: ~.4f~n", [Alg, AverN]),
      Counters = array:to_list(A),
      Min = lists:min(Counters),
      Max = lists:max(Counters),
      io:format("~.12w: Min: ~p Max: ~p~n", [Alg, Min, Max]),
  
      %% Verify that the basic statistics are ok
      %% be gentle we don't want to see to many failing tests
  