base:comparison_of_6502_random_generators
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
base:comparison_of_6502_random_generators [2021-11-12 02:12] – updated heading wil | base:comparison_of_6502_random_generators [2021-11-28 00:15] (current) – formatting of second footnote wil | ||
---|---|---|---|
Line 3: | Line 3: | ||
This is an overview of the main properties of eight algorithms here on codebase. | This is an overview of the main properties of eight algorithms here on codebase. | ||
- | Each algorithm was implemented as stated in the linked articles. Code size, execution time was measured. Execution | + | Each algorithm was implemented as stated in the linked articles. Code size, execution time was measured. Execution |
- | Many PRNGs have a problem when the internal state becomes 0. Since this might be an important feature, it was stated | + | Many PRNGs have a problem when the internal state becomes 0. Since this might be an important feature, it was stated which algorithms can also eventually output and handle a 0. |
- | which algorithms can also eventually output and handle a 0. | + | |
The quality was assessed by a test if the low byte hits all 256 numbers for 2000 random numbers and by a graphical check of the plot of 51200 random values. | The quality was assessed by a test if the low byte hits all 256 numbers for 2000 random numbers and by a graphical check of the plot of 51200 random values. | ||
Line 12: | Line 11: | ||
- | | ^ result size ^ execution cycles | + | | ^ result size ^ execution cycles |
- | ^ [[16bit xorshift random generator|798 Xorshift]] | 16bit | 42 | 21 | stuck | high | {{: | + | ^ [[16bit xorshift random generator|798 Xorshift]] | 16bit | 30 | 21 | all except 0 | high | {{: |
- | ^ [[X ABC Random Number Generator (8/16 bit)|X ABC]] | 16bit | 50 | 28 | handled | + | ^ [[X ABC Random Number Generator (8/16 bit)|X ABC]] | 16bit | 38 | 28 | risk of short cycle | high | {{: |
- | ^ [[Small, fast 16-bit PRNG|Whiteflame16]] | 16bit | 42* | 35 | handled | + | ^ [[Small, fast 16-bit PRNG|Whiteflame16]] | 16bit | 30* | 35 | all values| medium (some horizontal dashes visible) |
- | ^ [[32bit Galois LFSR|Galois LFSR]] | + | ^ [[32bit Galois LFSR|Galois LFSR]] |
- | ^ [[Two very fast 16bit pseudo random generators as LFSR|Two16 PRG LSFR]] | + | ^ [[Two very fast 16bit pseudo random generators as LFSR|Two16 PRG LSFR]] |
- | ^ [[another 16bit pseudo random generator|another 16bit PRG]] | 16bit | 42 | 21 | stuck | low | {{: | + | ^ [[another 16bit pseudo random generator|another 16bit PRG]] | 16bit | 30 | 21 | all except 0 | low | {{: |
- | ^ [[16bit pseudo random generator|16bit PRG]] | 16bit | 81 | 49 | stuck | low | {{: | + | ^ [[16bit pseudo random generator|16bit PRG]] | 16bit | 69 | 49 | all except 0 | low | {{: |
- | ^ [[Small, fast 8-bit PRNG|Whiteflame8]] | + | ^ [[Small, fast 8-bit PRNG|Whiteflame8]] |
- | * implementation has branches, execution time varies | + | ^ [[AX+ Tinyrand8]] |
+ | * implementation has branches, execution time varies\\ | ||
+ | + not including separate 13 byte function for setting an 8bit seed | ||
base/comparison_of_6502_random_generators.1636679544.txt.gz · Last modified: 2021-11-12 02:12 by wil