caLib_abstract

Modules

lattice
module caLib_abstract.lattice

This module defines the notion of a $(LATTICE). A $(LATTICE) is the data structure in wich all the cells are stored. Each generation, a $(RULE) changes the cells in the $(LATTICE). The most common example of a $(LATTICE) is a infinite square grid. Each square is the cell and it can contain any data such as a number or color. All of the cells then have a x,y coordinates associated with them. But some $(LATTICE)s can have other dimensions, like a 3-dimensional grid of cubes where each cube have an x,y,z coordinate. Or it can have som other shape, like a grid with hexagons instead of squares. The only limitation is that the coordinates must be integers.

neighbourhood
module caLib_abstract.neighbourhood

This module defines the notion of a $(NEIGHBOURHOOD). A $(NEIGHBOURHOOD) defines what cells in the lattice that are "neighbours". Most ca $(RULE)s change the state of a cell depending on the cells neighbours.

palette
module caLib_abstract.palette

This module defines the notion of a $(PALETTE). $(PALETTE)s abstract the process of determining how to render the cells in a $(LATTICE) by the $(RENDERER), Allowing for more customization.

renderer
module caLib_abstract.renderer

This module defines the notion of a $(RENDERER). A $(RENDERER) is responsible for "rendering" the ca's $(LATTICE) in a way that humans can appriciate. While a $(RENDERER) is not "mathematicly" part of a cellular automaton, it is here for obvious reasons.

rule
module caLib_abstract.rule

This module defines the notion of a $(RULE). A $(RULE) is the part of a cellular automaton responsible for changing the ca's cells state. Each generation the $(RULE) is applied to the cellular automaton in order to get it's cells new state.

util
module caLib_abstract.util

This module is contains utility templates and functions used by the other modules in $(CALIB_ABSTRACT).