[reference] Summary of Dependency relationships

September 19, 2013
Project Tulips
Subproject Data Association v3
Working path projects/​tulips/​trunk/​src/​matlab/​data_association_3
SVN Revision 15229
Unless otherwise noted, all filesystem paths are relative to the "Working path" named above.

The dependency between individual variables is a bit complicated, but if we group variables together, the relationship between the groups is simple. We group parameters into "self" parameters and "inherited" parameters.

Self parameters are immune to changes to parents or children. Inherited parameters are affected by any changes to parent.

This can be summarized as follows:

Any time a curve is changed in any way, we must recursively update all inherited parameters.

This "if anything changes, update everything" rule is a bit broad, and we can use a finer-grained definition to update fewer inherited fields, but in general, we only avoid updating fields that are inexpensive to update anyway. For heavy-wieght fields (e.g. branch distribution and ML), they are affected by everything, so we're forced to update them after every change. Thus, the simpler rule is only nominally less efficeint, and much easier to implement and understand.

Posted by Kyle Simek
blog comments powered by Disqus