The subproblems are defined in terms of formal variables.
The subproblems are defined in terms of formal variables. We need to create actual variables for each of the subproblems to replace the formal variables with in their solutions.
Gets the constraint factors for this component.
Gets the constraint factors for this component. Returns the lower bound factors unless an Upper argument is provided.
Lower bound factors resulting from conditions and constraints on this element.
Lower bound factors resulting from conditions and constraints on this element. These should be updated when the range changes but otherwise should be left alone.
Upper bound factors resulting from conditions and constraints on this element.
Upper bound factors resulting from conditions and constraints on this element. These should be updated when the range changes but otherwise should be left alone.
Create a subproblem for a particular parent value.
Create a subproblem for a particular parent value. Memoized.
Expand for all values of the parent, based on the current range of the parent.
Expand for all values of the parent, based on the current range of the parent.
Generate a range of values for this component.
Generate a range of values for this component. Also sets the variable for this component. The optional argument is the number of values to include in the range. This argument is only used for atomic elements. If an argument is not in the component collection, we do not generate the argument, but instead assume its only value is *. This doesn't change the range of any other element or expand any subproblems. The range will include * based on argument ranges including * or any subproblem not being expanded.\
Generate the constraint factors based on the current range.
Generate the constraint factors based on the current range. Bounds specifies whether these should be created for computing lower or upper bounds.
Make the non-constraint factors for this component by using the solutions to the subproblems.
Make the non-constraint factors for this component by using the solutions to the subproblems.
All non-constraint factors resulting from the definition of this element.
All non-constraint factors resulting from the definition of this element. For many element classes, these factors will be generated directly in the usual way. For chains, they will include the solutions of subproblems.
The current range of the element.
The current range of the element. May grow or change over time.
Set the variable associated with this component to the given variable.
Set the variable associated with this component to the given variable.
The subproblems nested inside this expandable component.
The subproblems nested inside this expandable component. They are created for particular parent values.
The current variable representing this component in factors.
The current variable representing this component in factors. This is set automatically when the range is updated.
A problem component created for a chain element.