User Tools

Site Tools


base:comparison_of_6502_random_generators

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Next revisionBoth sides next revision
base:comparison_of_6502_random_generators [2021-11-12 01:52] – created comparison of 6502 random generators wilbase:comparison_of_6502_random_generators [2021-11-12 13:03] – updated execution time model wil
Line 1: Line 1:
-====== Comparison of 6502 random generators ======+====== Comparison of 6502 pseudo random generators ======
  
 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 time includes the JSR/RTS commands+Each algorithm was implemented as stated in the linked articles. Code size, execution time was measured. Execution times do not include the RTS command
-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 13: Line 12:
  
 |              ^ result size  ^ execution cycles  ^ size (bytes)  ^seed=0   ^ quality ^ plot | |              ^ result size  ^ execution cycles  ^ size (bytes)  ^seed=0   ^ quality ^ plot |
-^ [[16bit xorshift random generator|798 Xorshift]] | 16bit        | 42                | 21            | stuck   | high    | {{:base:rand_798xorshift.png?nolink&200|}} | +^ [[16bit xorshift random generator|798 Xorshift]] | 16bit        | 30                | 21            | stuck   | high    | {{:base:rand_798xorshift.png?nolink&200|}} | 
-^ [[X ABC Random Number Generator (8/16 bit)|X ABC]]         | 16bit        | 50                | 28            | handled | high    | {{:base:rand_x_abc.png?nolink&200|}} | +^ [[X ABC Random Number Generator (8/16 bit)|X ABC]]         | 16bit        | 38                | 28            | handled | high    | {{:base:rand_x_abc.png?nolink&200|}} | 
-^ [[Small, fast 16-bit PRNG|Whiteflame16]] | 16bit        | 42*               | 35            | handled | good (some horizontal dashes visible)    | {{:base:rand_wf16.png?nolink&200|}} | +^ [[Small, fast 16-bit PRNG|Whiteflame16]] | 16bit        | 30*               | 35            | handled | medium (some horizontal dashes visible)    | {{:base:rand_wf16.png?nolink&200|}} | 
-^ [[32bit Galois LFSR|Galois LFSR]]  | 32bit        | 78                | 50            | stuck   good (but too many 0s)    | {{:base:rand32_galois.png?nolink&200|}} | +^ [[32bit Galois LFSR|Galois LFSR]]  | 32bit        | 60                | 50            | stuck   medium (too many 0s)    | {{:base:rand32_galois.png?nolink&200|}} | 
-^ [[Two very fast 16bit pseudo random generators as LFSR|Two16 PRG LSFR]]        | 16bit        | 120               | 66            | stuck   | high    | {{:base:rand16_2.png?nolink&200|}} | +^ [[Two very fast 16bit pseudo random generators as LFSR|Two16 PRG LSFR]]        | 16bit        | 108               | 66            | stuck   | high    | {{:base:rand16_2.png?nolink&200|}} | 
-^ [[another 16bit pseudo random generator|another 16bit PRG]] | 16bit        | 42                | 21            | stuck   | low     | {{:base:rand16_another.png?nolink&200|}} | +^ [[another 16bit pseudo random generator|another 16bit PRG]] | 16bit        | 30                | 21            | stuck   | low     | {{:base:rand16_another.png?nolink&200|}} | 
-^ [[16bit pseudo random generator|16bit PRG]]        | 16bit        | 81                | 49            | stuck   | low     | {{:base:rand16_1.png?nolink&200|}} | +^ [[16bit pseudo random generator|16bit PRG]]        | 16bit        | 69                | 49            | stuck   | low     | {{:base:rand16_1.png?nolink&200|}} | 
-^ [[Small, fast 8-bit PRNG|Whiteflame8]]  | 8bit         28*               | 14            | handled | low     | {{:base:rand_wf8.png?nolink&200|}} |+^ [[Small, fast 8-bit PRNG|Whiteflame8]]  | 8bit         16*               | 14            | handled | low     | {{:base:rand_wf8.png?nolink&200|}} |
 * implementation has branches, execution time varies * implementation has branches, execution time varies
  
  
base/comparison_of_6502_random_generators.txt · Last modified: 2021-11-28 00:15 by wil