. This article is within the scope of, a collaborative effort to improve the coverage of, and on Wikipedia. If you would like to participate, please visit the project page, where you can join the and see a list of open tasks. This article has been rated as C-Class on the project's. This article has been rated as High-importance on the project's.
For:. Discuss comparison with other notable generators - specifically Linear Congruentials. Discuss.why. it isn't suitable for cryptography.
Explain what all the pseudocode actually means, and some of the thinking behind the steps. Graphics - an illustration showing the effects of the tempering steps would be nice. Start working on the article. Add an article about the new variant of Mersenne Twister. Resolve the conflict in the published literature as to MT19937's ability (or inability) to pass ALL BigCrush TestU01 tests (e.g. Linear complexity). The following is a closed discussion of a.
Cryptographically secure modification of Mersenne twister from Mr. Matsumoto's website – he is one of the two creaters of Mersenne twister. Check the C codes on this site, the modification is that you can seed the algorithm with an array of seeds. An other solution to make Mersenne twister cryptographically secure (written by Mr.
Please do not modify it. Subsequent comments should be made in a new section on the talk page. Editors desiring to contest the closing decision should consider a. No further edits should be made to this section. The result of the move request was: moved per request. Unopposed for two weeks. 13:06, 21 March 2015 (UTC) 13:06, 21 March 2015 (UTC) → – Most academic sources (see and ) capitalise its second word.
00:09, 14 March 2015 (UTC) ⎆ 18:44, 6 March 2015 (UTC). Info: All instances of 'Twister' in the article's body are capitalized and appear to have been so since sometime in 2013, with the exception of the bolded instance in the lede which was capitalized in 15 September 2014 edit. 23:49, 6 March 2015 (UTC) The above discussion is preserved as an archive of a.
Please do not modify it. Subsequent comments should be made in a new section on this talk page or in a. No further edits should be made to this section. Plagiarism The sections on and are very similar to Section II in Tian, Xiang, and Khaled Benkrid, Mersenne Twister random number generation on FPGA, CPU and GPU, Adaptive Hardware and Systems, 2009. I don't think this is an example of fair use. 04:26, 20 March 2015 (UTC) For anyone trying to investigate/resolve this complaint,. I will attempt to digest the explanation in the paper and rewrite it.
At the very least, I have begun rewriting the pseudocode based on extracting the commonalities in multiple different real implementations. 11:39, 19 July 2015 (UTC) I believe my latest edit fixes these plagiarism issues. 21:32, 19 July 2015 (UTC) Though looking through the history, I see now that this is more likely a case of the paper author pulling from wikipedia than the other way around - the pseudocode used in the paper appeared on wikipedia first. I still think my new pseudocode is an improvement - covering more cases - but there was never a need to rewrite it on plagiarism grounds. 12:47, 20 July 2015 (UTC) Can't edit page because of Wikipeda server bogus 'old page' edit conflict I put my edit at:. I hope whoever is editing concurrently sees my last edit and didn't overwrite that one.
14:00, 10 June 2016 (UTC) dash, Apache Commons, minus sign According to, the preferred use seems to be an em dash. Even if the two uses were equally preferred, there is no reason to change from em dash, unless there is a consensus of editors. Additionally, the title of the web page for Julia has an em dash, and that cannot be changed under any circumstances. As for Apache Commons, MT is part of that; specifying a subpart breaks consistency with the other citations and also might add confusion (e.g. It is unlinked). As for the minus sign, this should be consistent throughout the article.
18:20, 17 June 2016 (UTC) Python Sample Code accepts any size seeds, despite using hardcoded 32-bit parameters I note that the python 32-bit implementation as given does not limit the seed to a 32bit int despite using hardcoded 32 bit MT values. In python this allows the seed to accept an int of virtually unlimited size. The remainder appears correct and all subsequent values are trimmed to 32 bits with the masking in twist and indeed in the remainder of init, thus: self.mti = int32(. Perhaps it is useful. But, I think it is an oversight maybe. Another minor comment is that the seed function comment says 'Initialize the index to 0' then immediately sets it to a hard coded constant very unlike 0. Updated to correct and explain.
Existing code: class MT19937: def init(self, seed): # Initialize the index to 0 self.index = 624 etc. Suggested replacement: class MT19937: def init(self, seed): # Make it clear the seed is going to be a 32-bit int seed = int32(seed) # Initialize the index to 'n' as used by the 32-bit values (change it to 312 for 64-bit implementations). # This ensures an immediate twist on the first extract call.
Self.index = 624 etc. Edits: many 07:22, 31 May 2017 (UTC) epoch-1 Structure of the article The article was previously written in a way that allowed non-technical readers to understand the first few sections. The first three sections were these: 'Adoption in software systems', 'Advantages', 'Disadvantages'. Following those sections were sections that supplied technical details. That structure made it easy for non-technical readers to understand the wide usage of the Mersenne Twister, why the Mersenne Twister is important, and what possible shortcomings are.
The structure was also in conformance with. States, in particular, that 'It can be helpful to have a section on motivation or applications in the informal introduction'. The article was revised so that it began with these sections: ' k-distribution', 'Algorithmic detail'. Those sections are highly technical, and will only be understandable to people who have relevant technical background and are willing to put in significant time and effort to comprehend them. Non-technical readers will get turned off: they will generally get much less benefit from the article.
Even some technical readers will get less benefit, because they will skim over the first two sections, and then read little more (that is what I would probably do). The revised structure also does not adhere to guidelines, which state that 'A general approach is to start simple, then move toward more formal and technical statements as the article proceeds'. I have restored the original structure of the article. 08:57, 16 November 2017 (UTC) I agree with you on the article structure.
I have also followed you in removing code from the article. I think snippets of code should generally only appear in articles in the context of a discussion or explanation.- 16:06, 20 November 2017 (UTC) Code for the Mersenne Twister This article previously contained code for the Mersenne Twister, in several programming languages. I created a new article named 'Mersenne Twister code', and then moved the code to the new article. Afterward, the new article was deleted, by a consensus of editors. The that led to that consensus is copied below.
One conclusion from the discussion is that this article should not contain code for the Mersenne Twister. Note, though, that this article can, and does, have external links to such code. 15:29, 2 December 2017 (UTC). The following discussion is an archived debate of the proposed deletion of the article below. Please do not modify it.
Subsequent comments should be made on the appropriate discussion page (such as the article's or in a ). No further edits should be made to this page. The result was delete. I'm not an expert on licensing, but you might want to verify that the attribution in the new github repo is still appropriate. After deleting this page, the link to this article is going to break.
01:49, 28 November 2017 (UTC) ( ) – ( ) ( Find sources: ( ) ) Wikipedia isn't a code repository. Should we have a bunch of articles entitled code? No, we shouldn't. 15:26, 20 November 2017 (UTC). Delete per nom.
Wikipedia is not a code repository, the code is not notable of itself, and the article isn't cited. If there was anything to say here that wasn't better said already in then I'd say redirect, but the title isn't a plausible redirect anyway, and if the code wasn't at the target (as it shouldn't be), the redirect would also be misleading. So delete is my!vote. 15:30, 20 November 2017 (UTC). Neutral. I am the creator of the article 'Mersenne Twister code'. As stated in the edit summary at creation, the code was simply copied from the article; it was then deleted from that article.
I wanted to remove the code from the article, because I believed that the code cluttered up that article. Copying the code into a new article seemed to be the easiest approach, but I have no opinion on whether Wikipedia should include the code. Ergo, I am neutral on the proposed deletion. 17:53, 20 November 2017 (UTC) Note: This debate has been included in the. 23:20, 20 November 2017 (UTC) Note: This debate has been included in the. 23:20, 20 November 2017 (UTC).
Delete per: Wikipedia is not a code repository. Code is another language than English, and this is the English Wikipedia not the Python or C or whatever encyclopedia.
Not useful to people who wish to read this, and not the right way to share code with people who wish to use shared code. And to the extent that it is not a copyvio, it is also. Removing it from the Mersenne twister article was the right thing to do, but it should have been removed, not just moved elsewhere. — 23:52, 20 November 2017 (UTC). Keep or re-integrate into the main article.
'Code is another language than English' is not a valid argument because mathematical equations are also another language than English, and could you imagine a Wikipedia where all math articles had to use only English? That being said, pseudocode is often more clear than mathematical formulae when it comes to computational algorithms, and the main MT article is sorely lacking a (pseudo)code example now. 14:01, 21 November 2017 (UTC) About pseudocode, the article previously included this. The pseudocode was removed on November 20th; the edit summary for the removal says this: 'unsourced - readers wanting code can avail themselves of the external links given at the end of the article'. I believe that the article benefited from including pseudocode, but I also understand the concern with lack of source,. 16:32, 21 November 2017 (UTC). Comment I've copied this code into a github repository, along with some other examples from other sources.
18:36, 22 November 2017 (UTC) This is a really nice approach. I have put a link to the repository in the 'External links' section of the article. 14:57, 23 November 2017 (UTC). Delete as per above. An external link to a Github repo is significantly better.
(, ) 23:16, 26 November 2017 (UTC). The above discussion is preserved as an archive of the debate. Please do not modify it. Subsequent comments should be made on the appropriate discussion page (such as the article's or in a ). No further edits should be made to this page. Missing description of operation In Section 6.1 ('Initialization'), the symbol '×' is used in the mathematical formula without precisions about what operation is denotes (unlike in previous formulas where other symbols like '⊕' are explained).
Looking at the pseudocode it seems that here '×' means integer multiplication followed by truncation to the lowest w bits. If this is the case it would be nice to mention it right below the formula, just like it is done in other formulas. 12:57, 15 November 2018 (UTC).