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

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
base:comparison_of_6502_random_generators [2021-11-12 01:58] – wording: good -> medium 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 | medium (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   | medium (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