The number of calls to process that resulted in a change (a non-empty DiffList)
Removes an intermediate node in the tree, merging that nodes children to their grandparent.
The number of calls to process(numIterations:Int) or process(contexts:C,numIterations:Int).
If true, calls to "newDiffList" will create a new DiffList to describe the changes they made, otherwise "newDiffList" will return null.
Jump function that proposes merge: entity1<----entity2
Jump function that proposes merge: entity1--->NEW-PARENT-ENTITY<---entity2
In your implementation of "process1" use this method to optionally create a new DiffList, obeying "makeNewDiffList".
Returns a random entity that 'exists'
Convenient method for setting makeNewDiffList to false, and returning this.
Garbage collects all the deleted entities from the master list of entities
Called after each iteration of sampling the full list of variables.
Call just after each step of sampling.
Called just before each step of sampling.
Do one step of sampling.
The underlying protected method that actually does the work.
The number of calls to process(context:C)
Identify entities that are created by accepted jumps so we can add them to our master entity list.
Abstract method must be implemented in sub-classes.
Peels off the entity "right", does not really need both arguments unless we want to error check.
Ensure that chains are not created in our tree.