diff options
author | Kenji Rikitake <[email protected]> | 2016-11-04 14:53:10 +0900 |
---|---|---|
committer | Kenji Rikitake <[email protected]> | 2016-11-14 19:37:16 +0900 |
commit | ff568b5e818d04048009926a7fa2ea537d2e656d (patch) | |
tree | ea303d975cb356a80f093f24893bd10d69bc49f3 /lib/stdlib/src/erl_eval.erl | |
parent | fc020db74ae4a27ee0b64251a29fdf306f1f4e5d (diff) | |
download | otp-ff568b5e818d04048009926a7fa2ea537d2e656d.tar.gz otp-ff568b5e818d04048009926a7fa2ea537d2e656d.tar.bz2 otp-ff568b5e818d04048009926a7fa2ea537d2e656d.zip |
Add jump functions to rand module
Jump functions returns the state after performing jump calculation to a
rand module internal state, which is equivalent to perform a large
number of calls of calculating new states for XorShift*/+ algorithms.
This commit add jump functions for exsplus and exs1024 algorithms, and a
wrapper function jump/1. The wrapper function will cause error with
reason "not_implemented" if the jump function for the algorithm is not
implemented.
This commit adds following new functionalities:
- Add new functions rand:jump/0 and rand:jump/1
- Add the member jump to type alg_handler(), a fun for performing
the jump function
- Add jump functions for exsplus, equivalent to 2^64 calls
- Add jump functions for exs1024, equivalent to 2^512 calls
- Revise seed_put/1, seed/1, seed/2
See <https://github.com/erlang/otp/pull/1235#discussion_r86950557>
- Add dummy jump function for exs64 calling
erlang:error(not_implemented)
- Add jump function test cases as follows:
* Add Common Test group reference_jump
* Add tests for jump/0 to reference_jump_procdict/1
* Rename tests for jump/1 to reference_jump_state/1
* Rename gen_jump/1 to gen_jump_1/1
* Add Common Tests reference_jump_procdict and reference_jump_state
to the group reference_jump
- Add jump function documentation
This commit also changes the Copyright year for Kenji Rikitake's code
from 2015 to 2015-2016.
Diffstat (limited to 'lib/stdlib/src/erl_eval.erl')
0 files changed, 0 insertions, 0 deletions