#include <relation_type.h>
Collaboration diagram for relation:

To compile really large models, these must be memory pooled and properly aligned.
Data Fields | |
| RelationUnion * | share |
| double | residual |
| double | multiplier |
| double | nominal |
| int | iscond |
| gl_list_t * | vars |
| dim_type * | d |
| void * | externalData |
| union RelationUnion* relation::share |
Contains information mapping from the index in *vars to value slots in the calculation. Each RelationInstance has its own struct relation and vars gl_list-- if the vars list is changed for one of the instances sharing a the RelationUnion, then a new share structure must be created for that instance. If this is not done, the other instances will miscalculate or core dump. Usually just miscalculates in silence.
Should never be NULL but at creation.
| double relation::multiplier |
| struct gl_list_t* relation::vars |
list of RealAtomInst pointers
| void* relation::externalData |
null for token relations, struct BlackBoxData * for bbox, other things for other critters.
1.5.1