QuickLife: Difference between revisions
consistent formatting for bulleted lists; move external links to footnotes |
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 | 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: | ||
** | ** [https://sourceforge.net/p/golly/code/ci/master/tree/gollybase/qlifealgo.h {{filename|qlifealgo.h}}] | ||
** | ** [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
- ↑ Cf. Alan Hensel's description for details on his applet.
External links
- QuickLife at Golly's online help
- Quicklife Algorithm (discussion thread) at the ConwayLife.com forums
- Golly source code:
| ||||||||||||||||||||