Torbjörn Granlund wrote, On 2017-02-15 00:45: > Pedro Gimeno <gmpdisc...@formauri.es> writes: > > Torbjörn Granlund wrote, On 2017-02-14 01:41: > > > One can change Mersenne_Twister_Generator_Noseed to > > Mersenne_Twister_Generator to fix this (and move __gmp_randiset_mt to > > randmts.c as mandated by Mersenne_Twister_Generator's scope), and then > > your code supposedly runs without a crash. But I don't see why one ever > > wants Mersenne_Twister_Generator_Noseed, which suggests my understanding > > of this code is very poor indeed. > > It's been about 15 years ago, but my recollection is that the rationale > behind the _Noseed version was to avoid a dependency on randmts.c, and it > seems I neglected to consider this use case. > > I agree with your fix. > > I realised a serious flaw with that fix; it introduces a dependency from > mpn_random* to mpz. That's not OK, I'm afraid.
Ah, yes, that was a problem that needed to be avoided. Thanks for looking into this. One possible fix would be to resurrect my patch for a different seeding routine, which was based on the xxtea encryption algorithm. That one is faster and uses far less mpz code, and I think it wouldn't be difficult to get rid of mpz usage totally. It was written in or before 2006, I believe, and I rebased it in 2009, so merging it with current code might be troublesome. Fortunately, that part of the code doesn't seem to have changed a lot. The problem is that it wouldn't be a good idea to apply that patch to stable versions, because it causes the sequences to be different. I've attached the patch as it was in 2009 (against revision af3f365253c5).
mt-xxtea-patch-against-13003.diff
Description: plain/text
_______________________________________________ gmp-bugs mailing list gmp-bugs@gmplib.org https://gmplib.org/mailman/listinfo/gmp-bugs