{"id":13507347,"url":"https://github.com/jj1bdx/tinymt-erlang","last_synced_at":"2025-03-30T07:32:52.055Z","repository":{"id":3118331,"uuid":"4145365","full_name":"jj1bdx/tinymt-erlang","owner":"jj1bdx","description":"This software is no longer maintained. For archive/reference use only. -- Tiny Mersenne Twister (TinyMT) for Erlang","archived":true,"fork":false,"pushed_at":"2021-12-08T01:53:28.000Z","size":385,"stargazers_count":26,"open_issues_count":4,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-18T09:06:41.343Z","etag":null,"topics":["erlang","random","tinymt"],"latest_commit_sha":null,"homepage":"","language":"Erlang","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jj1bdx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-04-26T07:32:16.000Z","updated_at":"2023-01-28T03:55:24.000Z","dependencies_parsed_at":"2022-09-02T12:50:56.749Z","dependency_job_id":null,"html_url":"https://github.com/jj1bdx/tinymt-erlang","commit_stats":null,"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jj1bdx%2Ftinymt-erlang","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jj1bdx%2Ftinymt-erlang/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jj1bdx%2Ftinymt-erlang/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jj1bdx%2Ftinymt-erlang/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jj1bdx","download_url":"https://codeload.github.com/jj1bdx/tinymt-erlang/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222535179,"owners_count":16999233,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["erlang","random","tinymt"],"created_at":"2024-08-01T02:00:31.720Z","updated_at":"2024-11-01T06:31:47.917Z","avatar_url":"https://github.com/jj1bdx.png","language":"Erlang","funding_links":[],"categories":["Algorithms and Data structures"],"sub_categories":[],"readme":"\u003c!-- -*- coding: utf-8 -*- --\u003e\n# tinymt-erlang: Tiny Mersenne Twister (TinyMT) for Erlang\n\n## This software is no longer maintained\n\n*CAUTION*: this software is no longer maintained. *Migrate to the default rand module for OTP 18 and later, because they are maintained and using faster and better algorithms.*\n\n## Version and credit information\n\n* Version: 0.3.2\n* Release date: 9-JUL-2017\n* Edited and written by Kenji Rikitake\n* Email contact: \u003ckenji.rikitake@acm.org\u003e\n\n## Travis CI build status for the master branch\n\n[![Build Status](https://travis-ci.org/jj1bdx/tinymt-erlang.svg?branch=master)](https://travis-ci.org/jj1bdx/tinymt-erlang)\n\n## License\n\nCopyright (c) 2012-2017 Kenji Rikitake and Kyoto University.\nAll rights reserved.\n\nCopyright (c) 2011-2012 Mutsuo Saito, Makoto Matsumoto, Hiroshima\nUniversity, and the University of Tokyo. All rights reserved.\n\nSee the file `LICENSE` for the license (new/simplified BSD license). (Note:\nlicense of rebar is Apache 2.0 License.)\n\n## Details of TinyMT algorithm\n\nThis software is based on\nTiny Mersenne Twister (TinyMT) Version 1.0.1\nby Mutsuo Saito (Hiroshima University) and Makoto Matsumoto (The University of Tokyo).\nSee \u003chttp://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/TINYMT/index.html\u003e.\nAlso see \u003chttps://github.com/jj1bdx/TinyMT/\u003e for my fork of the reference code.\n\n## Changes from the old version\n\n* `make speed` now compares with `rand` module `exsplus` algorithm (from 0.3.2)\n* Output `X` interval for `uniform/0` and `uniform_s/1` is now `0.0 \u003c X \u003c 1.0`, consistent with random and rand modules (from 0.3.0)\n* Old NIF-supported version tagged as `20140409`\n* Old include file can be found in version tagged as `20140409`\n* NIF support removed\n* Type specs updated for 17.0 (notably `array()` to `array:array()`)\n* The internal state now have opaque type `tinymt32:intstate32/0`\n* `tinymt32:uniform_s_list/{2,3}` are removed\n* EDoc comment added: do `make doc` for generating the documentation\n* New functions for changing generation parameters `tinymt32:setgenparams/{1,3}` are added\n* Common Test suite added as `test/tinymt32_SUITE.erl`\n* Removed EUnit code\n* HiPE options can be activatied in `Makefile.tinymt`\n\n## Notes\n\n* Output `X` interval for `uniform/0` and `uniform_s/1` is now `0.0 \u003c X \u003c 1.0`, consistent with random and rand modules (from 0.3.0)\n* *Test bug*: In versions released previously before 13-JAN-2014,\n  `test_speed_orig_uniform_rec1/5` in `tinymt32_tests` and `tinymt32_nif_tests`\n  errorneously called `test_speed_orig_uniform_n_rec1/5` (note `_n_`).\n  This bug would have been affected the evaluation result of the Erlang Workshop 2012 paper.\n  The re-measured loop test execution time of `random:uniform_s/1` is approx. 70 to 80 percent of\n  that of `random:uniform_s/2`.  This bug was found with the dialyzer program of R16B03.\n\n* In versions released previously before 31-MAY-2012 (inclusive),\n  `seed0/0` had a wrong value in the `#status2` member of the record\n  which exceeded the limit of 2^32.  This has been fixed by the\n  corresponding 32-bit value.\n\n## On execution speed\n\n* The HiPE version is about two to three times faster than non-HiPE\n  version, measured in overall execution time, on x86\\_64/amd64\n  architectures. (see `test-scripts/testspeed.escript`) If you need a\n  fast execution, compile with the HiPE option. (see `rebar.config`)\n\n* The non-HiPE version is about six times slower than `random` module\n  on x86\\_64/amd64, measured by `fprof`.  This is presumably due to increased\n  computational complexity of the algorithm.\n\n## Tested platforms\n\n* OS X 10.12.5 with Erlang/OTP 20.0.1\n\n## Make options (of erlang.mk)\n\n* `Makefile` works on both BSD/GNU make\n* `Makefile.tinymt` is the real GNU make file; edit this file for modification\n* Building: `make`\n* Documentation: `make docs`\n* Testing: `make tests`\n* Execution speed benchmark: `make speed`\n* See also [erlang.mk](https://github.com/extend/erlang.mk) for the details\n\n## hex.pm support\n\n* Package name: `tinymt`\n* See `mix.exs`\n\n## TODO\n\n* More documentation and code\n* More evaluation and refactoring\n\n## Code authors\n\n* Kenji Rikitake\n* Mutsuo Saito\n* Makoto Matsumoto\n\n## THANKS to\n\n* Dave \"dizzyd\" Smith\n* Tuncer Ayaz\n* Ryosuke \"Voluntas\" Nakai\n* Loïc Hoguin\n\n## Acknowledgments\n\n* Kenji Rikitake used the supercomputer service provided by Academic\n  Center for Computing and Media Studies (ACCMS), Kyoto University, for\n  testing this program and fundamental studies of TinyMT generation\n  parameters.\n\n* Kenji Rikitake thanks the Program Committee of ACM Erlang Workshop\n  2012 to give him a chance to present this work as a Practice and\n  Application paper.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjj1bdx%2Ftinymt-erlang","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjj1bdx%2Ftinymt-erlang","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjj1bdx%2Ftinymt-erlang/lists"}