File 2871-Clean-up-code.patch of Package erlang

From 5f6aa65d086a86b88953d57f04b18dee0155c253 Mon Sep 17 00:00:00 2001
From: Raimo Niskanen <raimo@erlang.org>
Date: Tue, 8 Dec 2020 16:31:21 +0100
Subject: [PATCH 1/6] Clean up code

Use Alg and AlgHandler in the right places.
---
 lib/stdlib/src/rand.erl | 165 +++++++++++++++++++++-------------------
 1 file changed, 85 insertions(+), 80 deletions(-)

diff --git a/lib/stdlib/src/rand.erl b/lib/stdlib/src/rand.erl
index 3a9a1e007b..b743bd5798 100644
--- a/lib/stdlib/src/rand.erl
+++ b/lib/stdlib/src/rand.erl
@@ -1,7 +1,7 @@
 %%
 %% %CopyrightBegin%
 %%
-%% Copyright Ericsson AB 2015-2018. All Rights Reserved.
+%% Copyright Ericsson AB 2015-2020. All Rights Reserved.
 %%
 %% Licensed under the Apache License, Version 2.0 (the "License");
 %% you may not use this file except in compliance with the License.
@@ -147,32 +147,32 @@
 %% =====================================================================
 
 -define(
-   uniform_range(Range, Alg, R, V, MaxMinusRange, I),
+   uniform_range(Range, AlgHandler, R, V, MaxMinusRange, I),
    if
        0 =< (MaxMinusRange) ->
            if
                %% Really work saving in odd cases;
                %% large ranges in particular
                (V) < (Range) ->
-                   {(V) + 1, {(Alg), (R)}};
+                   {(V) + 1, {(AlgHandler), (R)}};
                true ->
                    (I) = (V) rem (Range),
                    if
                        (V) - (I) =< (MaxMinusRange) ->
-                           {(I) + 1, {(Alg), (R)}};
+                           {(I) + 1, {(AlgHandler), (R)}};
                        true ->
                            %% V in the truncated top range
                            %% - try again
-                           ?FUNCTION_NAME((Range), {(Alg), (R)})
+                           ?FUNCTION_NAME((Range), {(AlgHandler), (R)})
                    end
            end;
        true ->
-           uniform_range((Range), (Alg), (R), (V))
+           uniform_range((Range), (AlgHandler), (R), (V))
    end).
 
 %% For ranges larger than the algorithm bit size
-uniform_range(Range, #{next:=Next, bits:=Bits} = Alg, R, V) ->
-    WeakLowBits = maps:get(weak_low_bits, Alg, 0),
+uniform_range(Range, #{next:=Next, bits:=Bits} = AlgHandler, R, V) ->
+    WeakLowBits = maps:get(weak_low_bits, AlgHandler, 0),
     %% Maybe waste the lowest bit(s) when shifting in new bits
     Shift = Bits - WeakLowBits,
     ShiftMask = bnot ?MASK(WeakLowBits),
@@ -183,7 +183,7 @@ uniform_range(Range, #{next:=Next, bits:=Bits} = Alg, R, V) ->
             {V1, R1, _} =
                 uniform_range(
                   Range bsr Bits, Next, R, V, ShiftMask, Shift, Bits),
-            {(V1 band RangeMinus1) + 1, {Alg, R1}};
+            {(V1 band RangeMinus1) + 1, {AlgHandler, R1}};
         true ->
             %% Generate a value with at least two bits more than the range
             %% and try that for a fit, otherwise recurse
@@ -203,12 +203,12 @@ uniform_range(Range, #{next:=Next, bits:=Bits} = Alg, R, V) ->
             I = V1 rem Range,
             if
                 (V1 - I) =< (1 bsl B) - Range ->
-                    {I + 1, {Alg, R1}};
+                    {I + 1, {AlgHandler, R1}};
                 true ->
                     %% V1 drawn from the truncated top range
                     %% - try again
                     {V2, R2} = Next(R1),
-                    uniform_range(Range, Alg, R2, V2)
+                    uniform_range(Range, AlgHandler, R2, V2)
             end
     end.
 %%
@@ -230,10 +230,10 @@ uniform_range(Range, Next, R, V, ShiftMask, Shift, B) ->
 %% =====================================================================
 
 %% Return algorithm and seed so that RNG state can be recreated with seed/1
--spec export_seed() -> undefined | export_state().
+-spec export_seed() -> 'undefined' | export_state().
 export_seed() ->
     case get(?SEED_DICT) of
-	{#{type:=Alg}, Seed} -> {Alg, Seed};
+	{#{type:=Alg}, AlgState} -> {Alg, AlgState};
 	_ -> undefined
     end.
 
@@ -307,14 +307,14 @@ uniform(N) ->
 -spec uniform_s(State :: state()) -> {X :: float(), NewState :: state()}.
 uniform_s(State = {#{uniform:=Uniform}, _}) ->
     Uniform(State);
-uniform_s({#{bits:=Bits, next:=Next} = Alg, R0}) ->
+uniform_s({#{bits:=Bits, next:=Next} = AlgHandler, R0}) ->
     {V, R1} = Next(R0),
     %% Produce floats on the form N * 2^(-53)
-    {(V bsr (Bits - 53)) * ?TWO_POW_MINUS53, {Alg, R1}};
-uniform_s({#{max:=Max, next:=Next} = Alg, R0}) ->
+    {(V bsr (Bits - 53)) * ?TWO_POW_MINUS53, {AlgHandler, R1}};
+uniform_s({#{max:=Max, next:=Next} = AlgHandler, R0}) ->
     {V, R1} = Next(R0),
     %% Old algorithm with non-uniform density
-    {V / (Max + 1), {Alg, R1}}.
+    {V / (Max + 1), {AlgHandler, R1}}.
 
 
 %% uniform_s/2: given an integer N >= 1 and a state, uniform_s/2
@@ -326,22 +326,22 @@ uniform_s({#{max:=Max, next:=Next} = Alg, R0}) ->
 uniform_s(N, State = {#{uniform_n:=UniformN}, _})
   when is_integer(N), 1 =< N ->
     UniformN(N, State);
-uniform_s(N, {#{bits:=Bits, next:=Next} = Alg, R0})
+uniform_s(N, {#{bits:=Bits, next:=Next} = AlgHandler, R0})
   when is_integer(N), 1 =< N ->
     {V, R1} = Next(R0),
     MaxMinusN = ?BIT(Bits) - N,
-    ?uniform_range(N, Alg, R1, V, MaxMinusN, I);
-uniform_s(N, {#{max:=Max, next:=Next} = Alg, R0})
+    ?uniform_range(N, AlgHandler, R1, V, MaxMinusN, I);
+uniform_s(N, {#{max:=Max, next:=Next} = AlgHandler, R0})
   when is_integer(N), 1 =< N ->
     %% Old algorithm with skewed probability
     %% and gap in ranges > Max
     {V, R1} = Next(R0),  
     if
         N =< Max ->
-            {(V rem N) + 1, {Alg, R1}};
+            {(V rem N) + 1, {AlgHandler, R1}};
         true ->
             F = V / (Max + 1),
-            {trunc(F * N) + 1, {Alg, R1}}
+            {trunc(F * N) + 1, {AlgHandler, R1}}
     end.
 
 %% uniform_real/0: returns a random float X where 0.0 < X =< 1.0,
@@ -388,7 +388,7 @@ uniform_real() ->
 %%-define(TWO_POW_MINUS110, 7.7037197775489436e-34).
 %%
 -spec uniform_real_s(State :: state()) -> {X :: float(), NewState :: state()}.
-uniform_real_s({#{bits:=Bits, next:=Next} = Alg, R0}) ->
+uniform_real_s({#{bits:=Bits, next:=Next} = AlgHandler, R0}) ->
     %% Generate a 56 bit number without using the weak low bits.
     %%
     %% Be sure to use only 53 bits when multiplying with
@@ -400,22 +400,22 @@ uniform_real_s({#{bits:=Bits, next:=Next} = Alg, R0}) ->
     if
         ?BIT(55) =< M1 ->
             %% We have 56 bits - waste 3
-            {(M1 bsr 3) * math:pow(2.0, -53), {Alg, R1}};
+            {(M1 bsr 3) * math:pow(2.0, -53), {AlgHandler, R1}};
         ?BIT(54) =< M1 ->
             %% We have 55 bits - waste 2
-            {(M1 bsr 2) * math:pow(2.0, -54), {Alg, R1}};
+            {(M1 bsr 2) * math:pow(2.0, -54), {AlgHandler, R1}};
         ?BIT(53) =< M1 ->
             %% We have 54 bits - waste 1
-            {(M1 bsr 1) * math:pow(2.0, -55), {Alg, R1}};
+            {(M1 bsr 1) * math:pow(2.0, -55), {AlgHandler, R1}};
         ?BIT(52) =< M1 ->
             %% We have 53 bits - use all
-            {M1 * math:pow(2.0, -56), {Alg, R1}};
+            {M1 * math:pow(2.0, -56), {AlgHandler, R1}};
         true ->
             %% Need more bits
             {V2, R2} = Next(R1),
-            uniform_real_s(Alg, Next, M1, -56, R2, V2, Bits)
+            uniform_real_s(AlgHandler, Next, M1, -56, R2, V2, Bits)
     end;
-uniform_real_s({#{max:=_, next:=Next} = Alg, R0}) ->
+uniform_real_s({#{max:=_, next:=Next} = AlgHandler, R0}) ->
     %% Generate a 56 bit number.
     %% Ignore the weak low bits for these old algorithms,
     %% just produce something reasonable.
@@ -429,23 +429,23 @@ uniform_real_s({#{max:=_, next:=Next} = Alg, R0}) ->
     if
         ?BIT(55) =< M1 ->
             %% We have 56 bits - waste 3
-            {(M1 bsr 3) * math:pow(2.0, -53), {Alg, R1}};
+            {(M1 bsr 3) * math:pow(2.0, -53), {AlgHandler, R1}};
         ?BIT(54) =< M1 ->
             %% We have 55 bits - waste 2
-            {(M1 bsr 2) * math:pow(2.0, -54), {Alg, R1}};
+            {(M1 bsr 2) * math:pow(2.0, -54), {AlgHandler, R1}};
         ?BIT(53) =< M1 ->
             %% We have 54 bits - waste 1
-            {(M1 bsr 1) * math:pow(2.0, -55), {Alg, R1}};
+            {(M1 bsr 1) * math:pow(2.0, -55), {AlgHandler, R1}};
         ?BIT(52) =< M1 ->
             %% We have 53 bits - use all
-            {M1 * math:pow(2.0, -56), {Alg, R1}};
+            {M1 * math:pow(2.0, -56), {AlgHandler, R1}};
         true ->
             %% Need more bits
             {V2, R2} = Next(R1),
-            uniform_real_s(Alg, Next, M1, -56, R2, V2, 56)
+            uniform_real_s(AlgHandler, Next, M1, -56, R2, V2, 56)
     end.
 
-uniform_real_s(Alg, _Next, M0, -1064, R1, V1, Bits) -> % 19*56
+uniform_real_s(AlgHandler, _Next, M0, -1064, R1, V1, Bits) -> % 19*56
     %% This is a very theoretical bottom case.
     %% The odds of getting here is about 2^-1008,
     %% through a white box test case, or thanks to
@@ -454,8 +454,8 @@ uniform_real_s(Alg, _Next, M0, -1064, R1, V1, Bits) -> % 19*56
     %% Fill up to 53 bits, we have at most 52
     B0 = (53 - ?BC(M0, 52)), % Missing bits
     {(((M0 bsl B0) bor (V1 bsr (Bits - B0))) * math:pow(2.0, -1064 - B0)),
-     {Alg, R1}};
-uniform_real_s(Alg, Next, M0, BitNo, R1, V1, Bits) ->
+     {AlgHandler, R1}};
+uniform_real_s(AlgHandler, Next, M0, BitNo, R1, V1, Bits) ->
     if
         %% Optimize the most probable.
         %% Fill up to 53 bits.
@@ -463,32 +463,36 @@ uniform_real_s(Alg, Next, M0, BitNo, R1, V1, Bits) ->
             %% We have 52 bits in M0 - need 1
             {(((M0 bsl 1) bor (V1 bsr (Bits - 1)))
               * math:pow(2.0, BitNo - 1)),
-             {Alg, R1}};
+             {AlgHandler, R1}};
         ?BIT(50) =< M0 ->
             %% We have 51 bits in M0 - need 2
             {(((M0 bsl 2) bor (V1 bsr (Bits - 2)))
               * math:pow(2.0, BitNo - 2)),
-             {Alg, R1}};
+             {AlgHandler, R1}};
         ?BIT(49) =< M0 ->
             %% We have 50 bits in M0 - need 3
             {(((M0 bsl 3) bor (V1 bsr (Bits - 3)))
               * math:pow(2.0, BitNo - 3)),
-             {Alg, R1}};
+             {AlgHandler, R1}};
         M0 == 0 ->
             M1 = V1 bsr (Bits - 56),
             if
                 ?BIT(55) =< M1 ->
                     %% We have 56 bits - waste 3
-                    {(M1 bsr 3) * math:pow(2.0, BitNo - 53), {Alg, R1}};
+                    {(M1 bsr 3) * math:pow(2.0, BitNo - 53),
+                     {AlgHandler, R1}};
                 ?BIT(54) =< M1 ->
                     %% We have 55 bits - waste 2
-                    {(M1 bsr 2) * math:pow(2.0, BitNo - 54), {Alg, R1}};
+                    {(M1 bsr 2) * math:pow(2.0, BitNo - 54),
+                     {AlgHandler, R1}};
                 ?BIT(53) =< M1 ->
                     %% We have 54 bits - waste 1
-                    {(M1 bsr 1) * math:pow(2.0, BitNo - 55), {Alg, R1}};
+                    {(M1 bsr 1) * math:pow(2.0, BitNo - 55),
+                     {AlgHandler, R1}};
                 ?BIT(52) =< M1 ->
                     %% We have 53 bits - use all
-                    {M1 * math:pow(2.0, BitNo - 56), {Alg, R1}};
+                    {M1 * math:pow(2.0, BitNo - 56),
+                     {AlgHandler, R1}};
                 BitNo =:= -1008 ->
                     %% Endgame
                     %% For the last round we cannot have 14 zeros or more
@@ -497,7 +501,8 @@ uniform_real_s(Alg, Next, M0, BitNo, R1, V1, Bits) ->
                     if
                         ?BIT(42) =< M1 ->
                             %% We have 43 bits - get the last bits
-                            uniform_real_s(Alg, Next, M1, BitNo - 56, R1);
+                            uniform_real_s(
+                              AlgHandler, Next, M1, BitNo - 56, R1);
                         true ->
                             %% Would underflow 2^-1022 - start all over
                             %%
@@ -506,26 +511,26 @@ uniform_real_s(Alg, Next, M0, BitNo, R1, V1, Bits) ->
                             %% for a good PRNG generating this many zeros
                             %% in a row.  Maybe we should write an error
                             %% report or call this a system limit...?
-                            uniform_real_s({Alg, R1})
+                            uniform_real_s({AlgHandler, R1})
                     end;
                 true ->
                     %% Need more bits
-                    uniform_real_s(Alg, Next, M1, BitNo - 56, R1)
+                    uniform_real_s(AlgHandler, Next, M1, BitNo - 56, R1)
             end;
         true ->
             %% Fill up to 53 bits
             B0 = 53 - ?BC(M0, 49), % Number of bits we need to append
             {(((M0 bsl B0) bor (V1 bsr (Bits - B0)))
               * math:pow(2.0, BitNo - B0)),
-             {Alg, R1}}
+             {AlgHandler, R1}}
     end.
 %%
-uniform_real_s(#{bits:=Bits} = Alg, Next, M0, BitNo, R0) ->
+uniform_real_s(#{bits:=Bits} = AlgHandler, Next, M0, BitNo, R0) ->
     {V1, R1} = Next(R0),
-    uniform_real_s(Alg, Next, M0, BitNo, R1, V1, Bits);
-uniform_real_s(#{max:=_} = Alg, Next, M0, BitNo, R0) ->
+    uniform_real_s(AlgHandler, Next, M0, BitNo, R1, V1, Bits);
+uniform_real_s(#{max:=_} = AlgHandler, Next, M0, BitNo, R0) ->
     {V1, R1} = Next(R0),
-    uniform_real_s(Alg, Next, M0, BitNo, R1, ?MASK(56, V1), 56).
+    uniform_real_s(AlgHandler, Next, M0, BitNo, R1, ?MASK(56, V1), 56).
 
 %% jump/1: given a state, jump/1
 %% returns a new state which is equivalent to that
@@ -789,25 +794,25 @@ exsss_next([S1|S0]) ->
     {?scramble_starstar(S0, V_0, V_1), [S0|NewS1]}.
 %%    {?MASK(58, S0 + NewS1), [S0|NewS1]}.
 
-exsp_uniform({Alg, R0}) ->
+exsp_uniform({AlgHandler, R0}) ->
     {I, R1} = exsplus_next(R0),
     %% Waste the lowest bit since it is of lower
     %% randomness quality than the others
-    {(I bsr (58-53)) * ?TWO_POW_MINUS53, {Alg, R1}}.
+    {(I bsr (58-53)) * ?TWO_POW_MINUS53, {AlgHandler, R1}}.
 
-exsss_uniform({Alg, R0}) ->
+exsss_uniform({AlgHandler, R0}) ->
     {I, R1} = exsss_next(R0),
-    {(I bsr (58-53)) * ?TWO_POW_MINUS53, {Alg, R1}}.
+    {(I bsr (58-53)) * ?TWO_POW_MINUS53, {AlgHandler, R1}}.
 
-exsp_uniform(Range, {Alg, R}) ->
+exsp_uniform(Range, {AlgHandler, R}) ->
     {V, R1} = exsplus_next(R),
     MaxMinusRange = ?BIT(58) - Range,
-    ?uniform_range(Range, Alg, R1, V, MaxMinusRange, I).
+    ?uniform_range(Range, AlgHandler, R1, V, MaxMinusRange, I).
 
-exsss_uniform(Range, {Alg, R}) ->
+exsss_uniform(Range, {AlgHandler, R}) ->
     {V, R1} = exsss_next(R),
     MaxMinusRange = ?BIT(58) - Range,
-    ?uniform_range(Range, Alg, R1, V, MaxMinusRange, I).
+    ?uniform_range(Range, AlgHandler, R1, V, MaxMinusRange, I).
 
 
 %% This is the jump function for the exs* generators,
@@ -848,10 +853,10 @@ exsss_uniform(Range, {Alg, R}) ->
 -dialyzer({no_improper_lists, exsplus_jump/1}).
 -spec exsplus_jump({alg_handler(), exsplus_state()}) ->
                           {alg_handler(), exsplus_state()}.
-exsplus_jump({Alg, S}) ->
+exsplus_jump({AlgHandler, S}) ->
     {S1, AS1} = exsplus_jump(S, [0|0], ?JUMPCONST1, ?JUMPELEMLEN),
     {_,  AS2} = exsplus_jump(S1, AS1,  ?JUMPCONST2, ?JUMPELEMLEN),
-    {Alg, AS2}.
+    {AlgHandler, AS2}.
 
 -dialyzer({no_improper_lists, exsplus_jump/4}).
 exsplus_jump(S, AS, _, 0) ->
@@ -953,13 +958,13 @@ exs1024_next({[H], RL}) ->
 
 -spec exs1024_jump({alg_handler(), exs1024_state()}) ->
                           {alg_handler(), exs1024_state()}.
-exs1024_jump({Alg, {L, RL}}) ->
+exs1024_jump({AlgHandler, {L, RL}}) ->
     P = length(RL),
     AS = exs1024_jump({L, RL},
          [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
          ?JUMPCONSTTAIL, ?JUMPCONSTHEAD, ?JUMPELEMLEN, ?JUMPTOTALLEN),
     {ASL, ASR} = lists:split(?RINGLEN - P, AS),
-    {Alg, {ASL, lists:reverse(ASR)}}.
+    {AlgHandler, {ASL, lists:reverse(ASR)}}.
 
 exs1024_jump(_, AS, _, _, _, 0) ->
     AS;
@@ -1122,20 +1127,20 @@ exro928_next_state(Ss, Rs, S15, S0) ->
     {[NewS0|Ss], [NewS15|Rs]}.
 
 
-exro928ss_uniform({Alg, SR}) ->
+exro928ss_uniform({AlgHandler, SR}) ->
     {V, NewSR} = exro928ss_next(SR),
-    {(V bsr (58-53)) * ?TWO_POW_MINUS53, {Alg, NewSR}}.
+    {(V bsr (58-53)) * ?TWO_POW_MINUS53, {AlgHandler, NewSR}}.
 
-exro928ss_uniform(Range, {Alg, SR}) ->
+exro928ss_uniform(Range, {AlgHandler, SR}) ->
     {V, NewSR} = exro928ss_next(SR),
     MaxMinusRange = ?BIT(58) - Range,
-    ?uniform_range(Range, Alg, NewSR, V, MaxMinusRange, I).
+    ?uniform_range(Range, AlgHandler, NewSR, V, MaxMinusRange, I).
 
 
 -spec exro928_jump({alg_handler(), exro928_state()}) ->
                           {alg_handler(), exro928_state()}.
-exro928_jump({Alg, SR}) ->
-    {Alg,exro928_jump_2pow512(SR)}.
+exro928_jump({AlgHandler, SR}) ->
+    {AlgHandler,exro928_jump_2pow512(SR)}.
 
 -spec exro928_jump_2pow512(exro928_state()) -> exro928_state().
 exro928_jump_2pow512(SR) ->
@@ -1268,16 +1273,16 @@ exrop_next_s(S0, S1) ->
 exrop_next([S0|S1]) ->
     {?MASK(58, S0 + S1), ?exrop_next_s(S0, S1, S1_a)}.
 
-exrop_uniform({Alg, R}) ->
+exrop_uniform({AlgHandler, R}) ->
     {V, R1} = exrop_next(R),
     %% Waste the lowest bit since it is of lower
     %% randomness quality than the others
-    {(V bsr (58-53)) * ?TWO_POW_MINUS53, {Alg, R1}}.
+    {(V bsr (58-53)) * ?TWO_POW_MINUS53, {AlgHandler, R1}}.
 
-exrop_uniform(Range, {Alg, R}) ->
+exrop_uniform(Range, {AlgHandler, R}) ->
     {V, R1} = exrop_next(R),
     MaxMinusRange = ?BIT(58) - Range,
-    ?uniform_range(Range, Alg, R1, V, MaxMinusRange, I).
+    ?uniform_range(Range, AlgHandler, R1, V, MaxMinusRange, I).
 
 %% Split a 116 bit constant into two 58 bit words,
 %% a top '1' marks the end of the low word.
@@ -1285,9 +1290,9 @@ exrop_uniform(Range, {Alg, R}) ->
    JUMP_116(Jump),
    [?BIT(58) bor ?MASK(58, (Jump)),(Jump) bsr 58]).
 %%
-exrop_jump({Alg,S}) ->
+exrop_jump({AlgHandler,S}) ->
     [J|Js] = ?JUMP_116(16#9863200f83fcd4a11293241fcb12a),
-    {Alg, exrop_jump(S, 0, 0, J, Js)}.
+    {AlgHandler, exrop_jump(S, 0, 0, J, Js)}.
 %%
 -dialyzer({no_improper_lists, exrop_jump/5}).
 exrop_jump(_S, S0, S1, 0, []) -> % End of jump constant
@@ -1447,13 +1452,13 @@ format_jumpconst58_value(J) ->
 -define(NOR_INV_R, 1/?NOR_R).
 
 %% return a {sign, Random51bits, State}
-get_52({Alg=#{bits:=Bits, next:=Next}, S0}) ->
+get_52({#{bits:=Bits, next:=Next} = AlgHandler, S0}) ->
     %% Use the high bits
     {Int,S1} = Next(S0),
-    {?BIT(Bits - 51 - 1) band Int, Int bsr (Bits - 51), {Alg, S1}};
-get_52({Alg=#{next:=Next}, S0}) ->
+    {?BIT(Bits - 51 - 1) band Int, Int bsr (Bits - 51), {AlgHandler, S1}};
+get_52({#{next:=Next} = AlgHandler, S0}) ->
     {Int,S1} = Next(S0),
-    {?BIT(51) band Int, ?MASK(51, Int), {Alg, S1}}.
+    {?BIT(51) band Int, ?MASK(51, Int), {AlgHandler, S1}}.
 
 %% Slow path
 normal_s(0, Sign, X0, State0) ->
-- 
2.26.2

openSUSE Build Service is sponsored by