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.
This method initializes the attributes of the new entity-roots that are hypothesized during inference.
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.
This method proposes new attributes for entities by sampling from their childrens' attributes
Abstract method must be implemented in sub-classes.
Peels off the entity "right", second argument not necessary except for error checking/debuggin.
Ensure that chains are not created in our tree.