QuickLife: Difference between revisions

From LifeWiki
Jump to navigation Jump to search
Confocal (talk | contribs)
consistent formatting for bulleted lists; move external links to footnotes
Confocal (talk | contribs)
m links, formatting
 
Line 2: Line 2:
'''QuickLife''' is an algorithm used in [[Golly]] to efficiently and quickly run [[isotropic non-totalistic cellular automata]]. It was written from scratch, but originally inspired by both [[xlife]] and the algorithm used in [[Alan Hensel]]'s Java-based Life applet.{{refn|group=note|Cf. [http://www.ibiblio.org/lifepatterns/lifeapplet.html Alan Hensel's description] for details on his applet.}}
'''QuickLife''' is an algorithm used in [[Golly]] to efficiently and quickly run [[isotropic non-totalistic cellular automata]]. It was written from scratch, but originally inspired by both [[xlife]] and the algorithm used in [[Alan Hensel]]'s Java-based Life applet.{{refn|group=note|Cf. [http://www.ibiblio.org/lifepatterns/lifeapplet.html Alan Hensel's description] for details on his applet.}}


QuickLife uses a tree structure<ref>{{LinkWikipedia|Tree_(computer_science)|name=Tree|nobullet=nobullet}}</ref> to represent the universe, with each level increasing one of the dimensons by a factor of 8; this makes it possible to avoid using coordinates, and thus restricting the size of the [[universe]]. Distinct structures are used for 4&times;8, 32&times;8, and 32&times;32 sections of the universe; the sizes at the following levels are 256&times;32, 256&times;256, 2048&times;256, 2048&times;2048, etc. The tree contains both an even and odd generation, along with flags indicating if a subtree is [[stable]], [[oscillator|oscillating]] with period 2, or active. Details of the algorithm can be found in Golly's source code, specifically in the files <tt>qlifealgo.h</tt> and <tt>qlifealgo.cpp</tt>.
QuickLife uses a tree structure<ref>{{LinkWikipedia|Tree_(computer_science)|name=Tree|nobullet=nobullet}}</ref> to represent the universe, with each level increasing one of the dimensons by a factor of 8; this makes it possible to avoid using coordinates, and thus restricting the size of the [[universe]]. Distinct structures are used for {{times|4|8}}, {{times|32|8}}, and {{times|32|32}} sections of the universe; the sizes at the following levels are {{times|256|32}}, {{times|256|256}}, {{times|2048|256}}, {{times|2048|2048}}, etc. The tree contains both an even and odd generation, along with flags indicating if a subtree is [[Still life|stable]], [[Oscillator|oscillating]] with period 2, or active. Details of the algorithm can be found in Golly's source code, specifically in the files {{filename|qlifealgo.h}} and {{filename|qlifealgo.cpp}}.


==Notes and references==
==Notes and references==
Line 12: Line 12:
* {{LinkForumThread|f=7|t=3237|title=Quicklife Algorithm}}
* {{LinkForumThread|f=7|t=3237|title=Quicklife Algorithm}}
* [[Golly]] source code:
* [[Golly]] source code:
** <tt>[https://sourceforge.net/p/golly/code/ci/master/tree/gollybase/qlifealgo.h qlifealgo.h]</tt>
** [https://sourceforge.net/p/golly/code/ci/master/tree/gollybase/qlifealgo.h {{filename|qlifealgo.h}}]
** <tt>[https://sourceforge.net/p/golly/code/ci/master/tree/gollybase/qlifealgo.cpp qlifealgo.cpp]</tt>
** [https://sourceforge.net/p/golly/code/ci/master/tree/gollybase/qlifealgo.cpp {{filename|qlifealgo.cpp}}]


{{GollyNavbox}}
{{GollyNavbox}}


[[Category:Algorithms]]
[[Category:Algorithms]]

Latest revision as of 01:01, 21 March 2023

QuickLife is an algorithm used in Golly to efficiently and quickly run isotropic non-totalistic cellular automata. It was written from scratch, but originally inspired by both xlife and the algorithm used in Alan Hensel's Java-based Life applet.[note 1]

QuickLife uses a tree structure[1] to represent the universe, with each level increasing one of the dimensons by a factor of 8; this makes it possible to avoid using coordinates, and thus restricting the size of the universe. Distinct structures are used for 4 × 8, 32 × 8, and 32 × 32 sections of the universe; the sizes at the following levels are 256 × 32, 256 × 256, 2048 × 256, 2048 × 2048, etc. The tree contains both an even and odd generation, along with flags indicating if a subtree is stable, oscillating with period 2, or active. Details of the algorithm can be found in Golly's source code, specifically in the files qlifealgo.h and qlifealgo.cpp.

Notes and references

  1. ↑ Cf. Alan Hensel's description for details on his applet.
  1. ↑ Tree at Wikipedia