<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>PPL: Parma_Polyhedra_Library::PIP_Solution_Node Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.6.3 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="main.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="annotated.html"><span>Classes</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <div class="navpath"><a class="el" href="namespaceParma__Polyhedra__Library.html">Parma_Polyhedra_Library</a>::<a class="el" href="classParma__Polyhedra__Library_1_1PIP__Solution__Node.html">PIP_Solution_Node</a> </div> </div> <div class="contents"> <h1>Parma_Polyhedra_Library::PIP_Solution_Node Class Reference</h1><!-- doxytag: class="Parma_Polyhedra_Library::PIP_Solution_Node" --><!-- doxytag: inherits="Parma_Polyhedra_Library::PIP_Tree_Node" --> <p>A tree node representing part of the space of solutions. <a href="#_details">More...</a></p> <p><code>#include <ppl.hh></code></p> <p>Inherits <a class="el" href="classParma__Polyhedra__Library_1_1PIP__Tree__Node.html">Parma_Polyhedra_Library::PIP_Tree_Node</a>.</p> <p><a href="classParma__Polyhedra__Library_1_1PIP__Solution__Node-members.html">List of all members.</a></p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Classes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structParma__Polyhedra__Library_1_1PIP__Solution__Node_1_1No__Constraints.html">No_Constraints</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A tag type to select the alternative copy constructor. <a href="structParma__Polyhedra__Library_1_1PIP__Solution__Node_1_1No__Constraints.html#_details">More...</a><br/></td></tr> <tr><td colspan="2"><h2>Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8db329a321108295b995b5af1058ff37"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Solution_Node::PIP_Solution_Node" ref="a8db329a321108295b995b5af1058ff37" args="(const PIP_Problem *owner)" --> </td><td class="memItemRight" valign="bottom"><a class="el" href="classParma__Polyhedra__Library_1_1PIP__Solution__Node.html#a8db329a321108295b995b5af1058ff37">PIP_Solution_Node</a> (const <a class="el" href="classParma__Polyhedra__Library_1_1PIP__Problem.html">PIP_Problem</a> *owner)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor: builds a solution node owned by <code>*owner</code>. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a996dc24a90ed7bf0e7231563f3c78975"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Solution_Node::clone" ref="a996dc24a90ed7bf0e7231563f3c78975" args="() const " --> virtual <a class="el" href="classParma__Polyhedra__Library_1_1PIP__Tree__Node.html">PIP_Tree_Node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classParma__Polyhedra__Library_1_1PIP__Solution__Node.html#a996dc24a90ed7bf0e7231563f3c78975">clone</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns a pointer to a dynamically-allocated copy of <code>*this</code>. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6c1045d83957e66a37f4b9605431945c"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Solution_Node::~PIP_Solution_Node" ref="a6c1045d83957e66a37f4b9605431945c" args="()" --> virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classParma__Polyhedra__Library_1_1PIP__Solution__Node.html#a6c1045d83957e66a37f4b9605431945c">~PIP_Solution_Node</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abb1b3eeef8a1a793899d9b66f1200fb0"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Solution_Node::OK" ref="abb1b3eeef8a1a793899d9b66f1200fb0" args="() const " --> virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classParma__Polyhedra__Library_1_1PIP__Solution__Node.html#abb1b3eeef8a1a793899d9b66f1200fb0">OK</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns <code>true</code> if and only if <code>*this</code> is well formed. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a49e1548e93467d9fd12ba992f8712c56"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Solution_Node::as_solution" ref="a49e1548e93467d9fd12ba992f8712c56" args="() const " --> virtual const <a class="el" href="classParma__Polyhedra__Library_1_1PIP__Solution__Node.html">PIP_Solution_Node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classParma__Polyhedra__Library_1_1PIP__Solution__Node.html#a49e1548e93467d9fd12ba992f8712c56">as_solution</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns <code>this</code>. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classParma__Polyhedra__Library_1_1Linear__Expression.html">Linear_Expression</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classParma__Polyhedra__Library_1_1PIP__Solution__Node.html#a4ec7c4c8093efb70675c35a17d6a7e28">parametric_values</a> (<a class="el" href="classParma__Polyhedra__Library_1_1Variable.html">Variable</a> var) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns a parametric expression for the values of problem variable <code>var</code>. <a href="#a4ec7c4c8093efb70675c35a17d6a7e28"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a35a36fe85a7865e86d210e8db5e26a04"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Solution_Node::ascii_dump" ref="a35a36fe85a7865e86d210e8db5e26a04" args="(std::ostream &s) const " --> void </td><td class="memItemRight" valign="bottom"><a class="el" href="classParma__Polyhedra__Library_1_1PIP__Solution__Node.html#a35a36fe85a7865e86d210e8db5e26a04">ascii_dump</a> (std::ostream &s) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Dumps to <code>s</code> an ASCII representation of <code>*this</code>. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2890d075ea848067ec261a99518ba12d"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Solution_Node::ascii_load" ref="a2890d075ea848067ec261a99518ba12d" args="(std::istream &s)" --> bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classParma__Polyhedra__Library_1_1PIP__Solution__Node.html#a2890d075ea848067ec261a99518ba12d">ascii_load</a> (std::istream &s)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Loads from <code>s</code> an ASCII representation (as produced by <a class="el" href="classParma__Polyhedra__Library_1_1PIP__Solution__Node.html#a35a36fe85a7865e86d210e8db5e26a04" title="Dumps to s an ASCII representation of *this.">ascii_dump(std::ostream&) const</a>) and sets <code>*this</code> accordingly. Returns <code>true</code> if successful, <code>false</code> otherwise. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a082a2f74f2c88339b84f233dc45e3370"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Solution_Node::total_memory_in_bytes" ref="a082a2f74f2c88339b84f233dc45e3370" args="() const " --> virtual <a class="el" href="group__PPL__CXX__interface.html#ga760aa1f95d13e389ec6eb33fdbf88783">memory_size_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classParma__Polyhedra__Library_1_1PIP__Solution__Node.html#a082a2f74f2c88339b84f233dc45e3370">total_memory_in_bytes</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the total size in bytes of the memory occupied by <code>*this</code>. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab41e16bb175c436813472be1b131f853"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Solution_Node::external_memory_in_bytes" ref="ab41e16bb175c436813472be1b131f853" args="() const " --> virtual <a class="el" href="group__PPL__CXX__interface.html#ga760aa1f95d13e389ec6eb33fdbf88783">memory_size_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classParma__Polyhedra__Library_1_1PIP__Solution__Node.html#ab41e16bb175c436813472be1b131f853">external_memory_in_bytes</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the size in bytes of the memory managed by <code>*this</code>. <br/></td></tr> <tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7ef6a6a1d69f65fd28e518f0de795ffa"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Solution_Node::PIP_Solution_Node" ref="a7ef6a6a1d69f65fd28e518f0de795ffa" args="(const PIP_Solution_Node &y)" --> </td><td class="memItemRight" valign="bottom"><a class="el" href="classParma__Polyhedra__Library_1_1PIP__Solution__Node.html#a7ef6a6a1d69f65fd28e518f0de795ffa">PIP_Solution_Node</a> (const <a class="el" href="classParma__Polyhedra__Library_1_1PIP__Solution__Node.html">PIP_Solution_Node</a> &y)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Copy constructor. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classParma__Polyhedra__Library_1_1PIP__Solution__Node.html#a02d378f2284277bd0cf98f4f5e9daa37">PIP_Solution_Node</a> (const <a class="el" href="classParma__Polyhedra__Library_1_1PIP__Solution__Node.html">PIP_Solution_Node</a> &y, <a class="el" href="structParma__Polyhedra__Library_1_1PIP__Solution__Node_1_1No__Constraints.html">No_Constraints</a>)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Alternative copy constructor. <a href="#a02d378f2284277bd0cf98f4f5e9daa37"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4f54448c4e6823e33a0f5121e5d27d4c"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Solution_Node::set_owner" ref="a4f54448c4e6823e33a0f5121e5d27d4c" args="(const PIP_Problem *owner)" --> virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classParma__Polyhedra__Library_1_1PIP__Solution__Node.html#a4f54448c4e6823e33a0f5121e5d27d4c">set_owner</a> (const <a class="el" href="classParma__Polyhedra__Library_1_1PIP__Problem.html">PIP_Problem</a> *owner)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the pointer to the <a class="el" href="classParma__Polyhedra__Library_1_1PIP__Problem.html" title="A Parametric Integer (linear) Programming problem.">PIP_Problem</a> owning object. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac3cf88993e63370f39ad5ea8915ba2af"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Solution_Node::check_ownership" ref="ac3cf88993e63370f39ad5ea8915ba2af" args="(const PIP_Problem *owner) const " --> virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classParma__Polyhedra__Library_1_1PIP__Solution__Node.html#ac3cf88993e63370f39ad5ea8915ba2af">check_ownership</a> (const <a class="el" href="classParma__Polyhedra__Library_1_1PIP__Problem.html">PIP_Problem</a> *owner) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns <code>true</code> if and only if all the nodes in the subtree rooted in <code>*this</code> is owned by <code>*pip</code>. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad5d38b578c833abb397e67cacce7f54d"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Solution_Node::update_tableau" ref="ad5d38b578c833abb397e67cacce7f54d" args="(const PIP_Problem &pip, dimension_type external_space_dim, dimension_type first_pending_constraint, const Constraint_Sequence &input_cs, const Variables_Set &parameters)" --> virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classParma__Polyhedra__Library_1_1PIP__Solution__Node.html#ad5d38b578c833abb397e67cacce7f54d">update_tableau</a> (const <a class="el" href="classParma__Polyhedra__Library_1_1PIP__Problem.html">PIP_Problem</a> &pip, <a class="el" href="group__PPL__CXX__interface.html#ga853432469169b07e42c557e1d6d144de">dimension_type</a> external_space_dim, <a class="el" href="group__PPL__CXX__interface.html#ga853432469169b07e42c557e1d6d144de">dimension_type</a> first_pending_constraint, const <a class="el" href="classParma__Polyhedra__Library_1_1PIP__Tree__Node.html#afe89a5e748cfb2fabd6c6d46458f0d4e">Constraint_Sequence</a> &input_cs, const <a class="el" href="classParma__Polyhedra__Library_1_1Variables__Set.html">Variables_Set</a> &parameters)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Implements pure virtual method <a class="el" href="classParma__Polyhedra__Library_1_1PIP__Tree__Node.html#a263d8e40807241816cef0286661553e1" title="Populates the parametric simplex tableau using external data.">PIP_Tree_Node::update_tableau</a>. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classParma__Polyhedra__Library_1_1PIP__Solution__Node.html#a727cd68e90dd481583b6a2bd5fdfb492">update_solution</a> (const std::vector< bool > &pip_dim_is_param) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Update the solution values. <a href="#a727cd68e90dd481583b6a2bd5fdfb492"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6c2621d99e009a3c99558671ab046b9b"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Solution_Node::update_solution" ref="a6c2621d99e009a3c99558671ab046b9b" args="() const " --> void </td><td class="memItemRight" valign="bottom"><a class="el" href="classParma__Polyhedra__Library_1_1PIP__Solution__Node.html#a6c2621d99e009a3c99558671ab046b9b">update_solution</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Helper method. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab7bee7241acd10a165a5dcaaa15d40e4"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Solution_Node::solve" ref="ab7bee7241acd10a165a5dcaaa15d40e4" args="(const PIP_Problem &pip, bool check_feasible_context, const Matrix &context, const Variables_Set &params, dimension_type space_dim, unsigned indent_level)" --> virtual <a class="el" href="classParma__Polyhedra__Library_1_1PIP__Tree__Node.html">PIP_Tree_Node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classParma__Polyhedra__Library_1_1PIP__Solution__Node.html#ab7bee7241acd10a165a5dcaaa15d40e4">solve</a> (const <a class="el" href="classParma__Polyhedra__Library_1_1PIP__Problem.html">PIP_Problem</a> &pip, bool check_feasible_context, const Matrix &context, const <a class="el" href="classParma__Polyhedra__Library_1_1Variables__Set.html">Variables_Set</a> &params, <a class="el" href="group__PPL__CXX__interface.html#ga853432469169b07e42c557e1d6d144de">dimension_type</a> space_dim, unsigned indent_level)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Implements pure virtual method <a class="el" href="classParma__Polyhedra__Library_1_1PIP__Tree__Node.html#a5f0557451b4e3556d65bb5bb703e9b46" title="Executes a parametric simplex on the tableau, under specified context.">PIP_Tree_Node::solve</a>. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classParma__Polyhedra__Library_1_1PIP__Solution__Node.html#a91a8e2ea09adb555ec9808380d95446e">generate_cut</a> (<a class="el" href="group__PPL__CXX__interface.html#ga853432469169b07e42c557e1d6d144de">dimension_type</a> i, <a class="el" href="classParma__Polyhedra__Library_1_1Variables__Set.html">Variables_Set</a> &parameters, Matrix &context, <a class="el" href="group__PPL__CXX__interface.html#ga853432469169b07e42c557e1d6d144de">dimension_type</a> &space_dimension, unsigned indent_level)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Generate a Gomory cut using non-integer tableau row <code>i</code>. <a href="#a91a8e2ea09adb555ec9808380d95446e"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a330d5c424c32abef2330e921ed0743c7"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Solution_Node::print_tree" ref="a330d5c424c32abef2330e921ed0743c7" args="(std::ostream &s, unsigned indent, const std::vector< bool > &pip_dim_is_param, dimension_type first_art_dim) const " --> virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classParma__Polyhedra__Library_1_1PIP__Solution__Node.html#a330d5c424c32abef2330e921ed0743c7">print_tree</a> (std::ostream &s, unsigned indent, const std::vector< bool > &pip_dim_is_param, <a class="el" href="group__PPL__CXX__interface.html#ga853432469169b07e42c557e1d6d144de">dimension_type</a> first_art_dim) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Prints on <code>s</code> the tree rooted in <code>*this</code>. <br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>A tree node representing part of the space of solutions. </p> <hr/><h2>Constructor & Destructor Documentation</h2> <a class="anchor" id="a02d378f2284277bd0cf98f4f5e9daa37"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Solution_Node::PIP_Solution_Node" ref="a02d378f2284277bd0cf98f4f5e9daa37" args="(const PIP_Solution_Node &y, No_Constraints)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Parma_Polyhedra_Library::PIP_Solution_Node::PIP_Solution_Node </td> <td>(</td> <td class="paramtype">const <a class="el" href="classParma__Polyhedra__Library_1_1PIP__Solution__Node.html">PIP_Solution_Node</a> & </td> <td class="paramname"> <em>y</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structParma__Polyhedra__Library_1_1PIP__Solution__Node_1_1No__Constraints.html">No_Constraints</a> </td> <td class="paramname"></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Alternative copy constructor. </p> <p>This constructor differs from the default copy constructor in that it will not copy the constraint system, nor the artificial parameters. </p> </div> </div> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="a4ec7c4c8093efb70675c35a17d6a7e28"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Solution_Node::parametric_values" ref="a4ec7c4c8093efb70675c35a17d6a7e28" args="(Variable var) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="classParma__Polyhedra__Library_1_1Linear__Expression.html">Linear_Expression</a>& Parma_Polyhedra_Library::PIP_Solution_Node::parametric_values </td> <td>(</td> <td class="paramtype"><a class="el" href="classParma__Polyhedra__Library_1_1Variable.html">Variable</a> </td> <td class="paramname"> <em>var</em></td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Returns a parametric expression for the values of problem variable <code>var</code>. </p> <p>The returned linear expression may involve problem parameters as well as artificial parameters.</p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>var</em> </td><td>The problem variable which is queried about.</td></tr> </table> </dd> </dl> <dl><dt><b>Exceptions:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>std::invalid_argument</em> </td><td>Thrown if <code>var</code> is dimension-incompatible with the <a class="el" href="classParma__Polyhedra__Library_1_1PIP__Problem.html" title="A Parametric Integer (linear) Programming problem.">PIP_Problem</a> owning this solution node, or if <code>var</code> is a problem parameter. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a727cd68e90dd481583b6a2bd5fdfb492"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Solution_Node::update_solution" ref="a727cd68e90dd481583b6a2bd5fdfb492" args="(const std::vector< bool > &pip_dim_is_param) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Parma_Polyhedra_Library::PIP_Solution_Node::update_solution </td> <td>(</td> <td class="paramtype">const std::vector< bool > & </td> <td class="paramname"> <em>pip_dim_is_param</em></td> <td> ) </td> <td> const<code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Update the solution values. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>pip_dim_is_param</em> </td><td>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). </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a91a8e2ea09adb555ec9808380d95446e"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Solution_Node::generate_cut" ref="a91a8e2ea09adb555ec9808380d95446e" args="(dimension_type i, Variables_Set &parameters, Matrix &context, dimension_type &space_dimension, unsigned indent_level)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Parma_Polyhedra_Library::PIP_Solution_Node::generate_cut </td> <td>(</td> <td class="paramtype"><a class="el" href="group__PPL__CXX__interface.html#ga853432469169b07e42c557e1d6d144de">dimension_type</a> </td> <td class="paramname"> <em>i</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classParma__Polyhedra__Library_1_1Variables__Set.html">Variables_Set</a> & </td> <td class="paramname"> <em>parameters</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">Matrix & </td> <td class="paramname"> <em>context</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__PPL__CXX__interface.html#ga853432469169b07e42c557e1d6d144de">dimension_type</a> & </td> <td class="paramname"> <em>space_dimension</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned </td> <td class="paramname"> <em>indent_level</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Generate a Gomory cut using non-integer tableau row <code>i</code>. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>i</em> </td><td>Row index in simplex tableau from which the cut is generated</td></tr> <tr><td valign="top"></td><td valign="top"><em>parameters</em> </td><td>A std::set of the current parameter dimensions (including artificials); to be updated if a new artificial parameter is to be created</td></tr> <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A set of linear inequalities on the parameters, in matrix form; to be updated if a new artificial parameter is to be created</td></tr> <tr><td valign="top"></td><td valign="top"><em>space_dimension</em> </td><td>The current space dimension, including variables and all parameters; to be updated if an extra parameter is to be created</td></tr> <tr><td valign="top"></td><td valign="top"><em>indent_level</em> </td><td>The indentation level (for debugging output only). </td></tr> </table> </dd> </dl> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li>ppl.hh</li> </ul> </div> <hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Feb 27 10:10:57 2011 for PPL by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address> </body> </html>