module Light_cones:sig
..end
typelc_index =
int array array
The first element of a light cone is the part of the light at the current date, ie
an array containing only (the index of) the cell itself.
The second is the nearest (according to time) slice, thus the neighbourhood of the cell.
The third is also the neighbourhood of the neighbourhood, but without repetitions, and so on.
(*type lc_state = Types.Cellular_automaton.state array array*)
val identifier_of_lc : ('a array array, int) Hashtbl.t -> (unit -> int) -> 'a array array -> int
lc_state
.
Creates a new entry in hash_table
if needed, and
copy lc:state array array
before adding it into the table.val build_lc_index : int array array -> int -> int -> lc_index
build_lc_index neighbourhoods depth cell
builds the light cone of the given cell in terms of indexes.
Note that it is either the past or the future light cone since it contains the indexes (or
"pointers") to the cells and not the states.val lcState_of_lcIndex : 'a array array -> lc_index -> 'a array array
lcState_of_lcIndex depth present_configuration pf_configurations lc
converts the index representation of cells into a state representation.
It merely look for the given indexes into the given configurations.
Asserts depth = Array.length pf_configurations +1
.
"pf" means past or future, since this function can translate
either the past light cones or the future light cones.
type
hackish_hastbl = {
|
mutable size : |
(* | number of elements | *) |
val hackish_hastbl_size : ('a, 'b) Hashtbl.t -> int
val non_discarded_cell : int -> (int -> bool) -> int
val lc_identifiers : lc_index array ->
(lc_index -> 'a array array) -> int array * int
-1
on cells the light cone of wich is [||]
.[||]
) have the same dimensions.