aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib/src/random.erl
diff options
context:
space:
mode:
authorRickard Green <[email protected]>2014-12-17 22:18:27 +0100
committerRickard Green <[email protected]>2015-03-20 15:28:53 +0100
commitfbaa0becc787e73fa539e0d497b0d74be27c9534 (patch)
treec89e004b5e33d51ca07635678415c8dc4e8f2f23 /lib/stdlib/src/random.erl
parent1d9350693fe2c4d1d6b2baa504aacd070e023a1a (diff)
downloadotp-fbaa0becc787e73fa539e0d497b0d74be27c9534.tar.gz
otp-fbaa0becc787e73fa539e0d497b0d74be27c9534.tar.bz2
otp-fbaa0becc787e73fa539e0d497b0d74be27c9534.zip
Replace usage of erlang:now() with usage of new API
Diffstat (limited to 'lib/stdlib/src/random.erl')
-rw-r--r--lib/stdlib/src/random.erl8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/stdlib/src/random.erl b/lib/stdlib/src/random.erl
index d7b51a151c..cf84f8cecf 100644
--- a/lib/stdlib/src/random.erl
+++ b/lib/stdlib/src/random.erl
@@ -57,11 +57,17 @@ seed() ->
%% seed({A1, A2, A3})
%% Seed random number generation
--spec seed({A1, A2, A3}) -> 'undefined' | ran() when
+-spec seed(SValue) -> 'undefined' | ran() when
+ SValue :: {A1, A2, A3} | integer(),
A1 :: integer(),
A2 :: integer(),
A3 :: integer().
+seed(Int) when is_integer(Int) ->
+ A1 = (Int bsr 16) band 16#fffffff,
+ A2 = Int band 16#ffffff,
+ A3 = (Int bsr 36) bor (A2 bsr 16),
+ seed(A1, A2, A3);
seed({A1, A2, A3}) ->
seed(A1, A2, A3).