📄 todo
字号:
* gfsr: for consistency (Charles A. Wemple). Make this change in 2.0 127a142> state->nd = i-1;133,134c148,149< for (i=0; i<32; ++i) {< int k=7+i*3;---> for (i=0; i<32; i++) {> int k=7*i+3;141d155< state->nd = i;* Sort out "const" in prototypes, it looks odd since there are constsfor many functions which modify the state. (Applies to both qrng and rng)* New 64 bit generators in "Tables of 64-bit Mersenne Twisters",Takuji Nishimura, ACM Transactions on Modeling and ComputerSimulation, Volumen 10, No 4, October 2000, p 348--357* Need to run tests over the space of seeds, in addition to serialtests (DIEHARD) for the default seed. The congruences used forseeding will give poor initial vectors for some seed values, e.g. 2^n.Improve the seeding procedure by using a high-quality generator(e.g. hash functions, md5 or sha) to generate the initial vectors.Even if this is moderately expensive it is worthwhile since theseeding is usually a one-off cost at program initialization, and theresults of all subsequent calls to the generator depend on it. TheGSFR4 generator is particularly likely to benefit from this procedure.* Add SWNS generator Phys.Rev.E 50 (2) p. 1607-1615 (1994), Phys.Rev.E60 (6), p.7626-7628 (1999)* Add get_array type methods which can provide optimized versions ofeach function (?). We should offer the possibility of eliminatingfunction call overhead -- there are various possible ways to implementit.* Add ISAAC generator (??)* Add (A)RC4 and hash based random number generators MD5, SHA. Thisshould give crypto quality randomness, and guarantee differentsequences for each seed. Make the state (seed, count) where countincrements on each call of the generator. Implement count as a biginteger stored in separate unsigned integers so that the period issufficiently long (e.g. 2^64 or 2^96). The generator would returnHASH(seed, count) on each call.* Check that RANLXS will work on machines with non-standard width offloat/dbl (original has checks for DBL_MANT_DIG ..)* mention more clearly why not all Cokus used (or recheck MT pages forimprovements)* run the DIEHARD tests on all the generators, especially the ones weare listing as "Simulation Quality" -- some of those are a bit old andmight fail one or two diehard tests.* Add NAG, missing, gave up! CDC 48-bit missing * Check out the bug fix to mrand48 that was made in glibc2, pr757* Check out the following paper, On the anomaly of ran1() in Monte Carlo pricing of financial derivatives; Akira Tajima , Syoiti Ninomiya , and Shu Tezuka ; Winter simulation , 1996, Page 360, from ACM* The following papers have been published, I think we refer to them(or could do), Pierre L'Ecuyer, "Tables of Linear Congruential Generators of different size and good lattice structure", Mathematics of Computation, Vol 68, No 225, Jan 1999, p249-260 Pierre L'Ecuyer, "Tables of Maximally equidistributed combined LSFR generators", ibid, p261-270* Look at this paper: I. Vattulainen, "Framework for testing random numbers in parallel calculations", Phys. Rev. E, 59, 6, June 1999, p7200----------------------------------------------------------------------DONEx1. Improve the seeding for routines that use the LCG seed generator.It can only generate 130,000 different initial states. We shouldchange it to provide 2^31 different initial states (this will alsoprevent the high bits being zero). DONE - we now use a 32-bitgenerator.x8. Get the macros from the faster MT19937 generator and use them. Weneed to make MT be the fastest of the simulation quality generators ifit is the default. DONE. It didn't improve the speed on otherplatforms, so I just used the tricks which also worked on the pentium(e.g. changing mag[x&1] to x&1 ? mag[1] : mag[0])
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -