| PPL
    1.1
    | 
A tree node representing part of the space of solutions. More...
#include <ppl.hh>

| Classes | |
| struct | No_Constraints | 
| A tag type to select the alternative copy constructor.  More... | |
| Public Member Functions | |
| PIP_Solution_Node (const PIP_Problem *owner) | |
| Constructor: builds a solution node owned by *owner. | |
| virtual PIP_Tree_Node * | clone () const | 
| Returns a pointer to a dynamically-allocated copy of *this. | |
| virtual | ~PIP_Solution_Node () | 
| Destructor. | |
| virtual bool | OK () const | 
| Returns trueif and only if*thisis well formed. | |
| virtual const PIP_Solution_Node * | as_solution () const | 
| Returns this. | |
| virtual const PIP_Decision_Node * | as_decision () const | 
| Returns 0, since thisis not a decision node. | |
| const Linear_Expression & | parametric_values (Variable var) const | 
| Returns a parametric expression for the values of problem variable var.  More... | |
| void | ascii_dump (std::ostream &os) const | 
| Dumps to osan ASCII representation of*this. | |
| bool | ascii_load (std::istream &is) | 
| Loads from isan ASCII representation (as produced by ascii_dump(std::ostream&) const) and sets*thisaccordingly. Returnstrueif successful,falseotherwise. | |
| virtual memory_size_type | total_memory_in_bytes () const | 
| Returns the total size in bytes of the memory occupied by *this. | |
| virtual memory_size_type | external_memory_in_bytes () const | 
| Returns the size in bytes of the memory managed by *this. | |
|  Public Member Functions inherited from Parma_Polyhedra_Library::PIP_Tree_Node | |
| virtual | ~PIP_Tree_Node () | 
| Destructor. | |
| const Constraint_System & | constraints () const | 
| Returns the system of parameter constraints controlling *this.  More... | |
| Artificial_Parameter_Sequence::const_iterator | art_parameter_begin () const | 
| Returns a const_iterator to the beginning of local artificial parameters. | |
| Artificial_Parameter_Sequence::const_iterator | art_parameter_end () const | 
| Returns a const_iterator to the end of local artificial parameters. | |
| dimension_type | art_parameter_count () const | 
| Returns the number of local artificial parameters. | |
| void | print (std::ostream &s, int indent=0) const | 
| Prints on sthe tree rooted in*this.  More... | |
| void | ascii_dump (std::ostream &s) const | 
| Dumps to san ASCII representation of*this. | |
| bool | ascii_load (std::istream &s) | 
| Loads from san ASCII representation (as produced by ascii_dump(std::ostream&) const) and sets*thisaccordingly. Returnstrueif successful,falseotherwise. | |
| Protected Member Functions | |
| PIP_Solution_Node (const PIP_Solution_Node &y) | |
| Copy constructor. | |
| PIP_Solution_Node (const PIP_Solution_Node &y, No_Constraints) | |
| Alternative copy constructor.  More... | |
| virtual void | set_owner (const PIP_Problem *owner) | 
| Sets the pointer to the PIP_Problem owning object. | |
| virtual bool | check_ownership (const PIP_Problem *owner) const | 
| Returns trueif and only if all the nodes in the subtree rooted in*thisis owned by*pip. | |
| virtual void | update_tableau (const PIP_Problem &pip, dimension_type external_space_dim, dimension_type first_pending_constraint, const Constraint_Sequence &input_cs, const Variables_Set ¶meters) | 
| Implements pure virtual method PIP_Tree_Node::update_tableau. | |
| void | update_solution (const std::vector< bool > &pip_dim_is_param) const | 
| Update the solution values.  More... | |
| void | update_solution () const | 
| Helper method. | |
| virtual PIP_Tree_Node * | solve (const PIP_Problem &pip, bool check_feasible_context, const Matrix< Row > &context, const Variables_Set ¶ms, dimension_type space_dim, int indent_level) | 
| Implements pure virtual method PIP_Tree_Node::solve. | |
| void | generate_cut (dimension_type index, Variables_Set ¶meters, Matrix< Row > &context, dimension_type &space_dimension, int indent_level) | 
| Generate a Gomory cut using non-integer tableau row index.  More... | |
| virtual void | print_tree (std::ostream &s, int indent, const std::vector< bool > &pip_dim_is_param, dimension_type first_art_dim) const | 
| Prints on sthe tree rooted in*this. | |
|  Protected Member Functions inherited from Parma_Polyhedra_Library::PIP_Tree_Node | |
| PIP_Tree_Node (const PIP_Problem *owner) | |
| Constructor: builds a node owned by *owner. | |
| PIP_Tree_Node (const PIP_Tree_Node &y) | |
| Copy constructor. | |
| const PIP_Problem * | get_owner () const | 
| Returns a pointer to the PIP_Problem owning object. | |
| const PIP_Decision_Node * | parent () const | 
| Returns a pointer to this node's parent. | |
| void | set_parent (const PIP_Decision_Node *p) | 
| Set this node's parent to *p. | |
| void | add_constraint (const Row &row, const Variables_Set ¶meters) | 
| Inserts a new parametric constraint in internal row format. | |
| void | parent_merge () | 
| Merges parent's artificial parameters into *this. | |
| Additional Inherited Members | |
|  Public Types inherited from Parma_Polyhedra_Library::PIP_Tree_Node | |
| typedef std::vector < Artificial_Parameter > | Artificial_Parameter_Sequence | 
| A type alias for a sequence of Artificial_Parameter's. | |
|  Protected Types inherited from Parma_Polyhedra_Library::PIP_Tree_Node | |
| typedef std::vector< Constraint > | Constraint_Sequence | 
| A type alias for a sequence of constraints. | |
|  Static Protected Member Functions inherited from Parma_Polyhedra_Library::PIP_Tree_Node | |
| static void | indent_and_print (std::ostream &s, int indent, const char *str) | 
| A helper function used when printing PIP trees. | |
| static bool | compatibility_check (Matrix< Row > &s) | 
| Checks whether a context matrix is satisfiable.  More... | |
| static bool | compatibility_check (const Matrix< Row > &context, const Row &row) | 
| Helper method: checks for satisfiability of the restricted context obtained by adding rowtocontext. | |
|  Protected Attributes inherited from Parma_Polyhedra_Library::PIP_Tree_Node | |
| const PIP_Problem * | owner_ | 
| A pointer to the PIP_Problem object owning this node. | |
| const PIP_Decision_Node * | parent_ | 
| A pointer to the parent of *this, null if*thisis the root. | |
| Constraint_System | constraints_ | 
| The local system of parameter constraints. | |
| Artificial_Parameter_Sequence | artificial_parameters | 
| The local sequence of expressions for local artificial parameters. | |
|  Related Functions inherited from Parma_Polyhedra_Library::PIP_Tree_Node | |
| std::ostream & | operator<< (std::ostream &os, const PIP_Tree_Node &x) | 
| Output operator: prints the solution tree rooted in x.  More... | |
A tree node representing part of the space of solutions.
| 
 | protected | 
Alternative copy constructor.
This constructor differs from the default copy constructor in that it will not copy the constraint system, nor the artificial parameters.
| const Linear_Expression& Parma_Polyhedra_Library::PIP_Solution_Node::parametric_values | ( | Variable | var) | const | 
Returns a parametric expression for the values of problem variable var. 
The returned linear expression may involve problem parameters as well as artificial parameters.
| var | The problem variable which is queried about. | 
| std::invalid_argument | Thrown if varis dimension-incompatible with the PIP_Problem owning this solution node, or ifvaris a problem parameter. | 
| 
 | protected | 
Update the solution values.
| pip_dim_is_param | A vector of Boolean flags telling which PIP problem dimensions are problem parameters. The size of the vector is equal to the PIP problem internal space dimension (i.e., no artificial parameters). | 
| 
 | protected | 
Generate a Gomory cut using non-integer tableau row index. 
| index | Row index in simplex tableau from which the cut is generated. | 
| parameters | A std::set of the current parameter dimensions (including artificials); to be updated if a new artificial parameter is to be created. | 
| context | A set of linear inequalities on the parameters, in matrix form; to be updated if a new artificial parameter is to be created. | 
| space_dimension | The current space dimension, including variables and all parameters; to be updated if an extra parameter is to be created. | 
| indent_level | The indentation level (for debugging output only). |