<!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_Decision_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__Decision__Node.html">PIP_Decision_Node</a> </div> </div> <div class="contents"> <h1>Parma_Polyhedra_Library::PIP_Decision_Node Class Reference</h1><!-- doxytag: class="Parma_Polyhedra_Library::PIP_Decision_Node" --><!-- doxytag: inherits="Parma_Polyhedra_Library::PIP_Tree_Node" --> <p>A tree node representing a decision in 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__Decision__Node-members.html">List of all members.</a></p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa5e48e146300e08949a783b435f7672c"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Decision_Node::clone" ref="aa5e48e146300e08949a783b435f7672c" 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__Decision__Node.html#aa5e48e146300e08949a783b435f7672c">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="ad096a02cc969dcd4b8606cd77d501070"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Decision_Node::~PIP_Decision_Node" ref="ad096a02cc969dcd4b8606cd77d501070" args="()" --> virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classParma__Polyhedra__Library_1_1PIP__Decision__Node.html#ad096a02cc969dcd4b8606cd77d501070">~PIP_Decision_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="a47e031aae6928828862422b0ceedec71"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Decision_Node::OK" ref="a47e031aae6928828862422b0ceedec71" args="() const " --> virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classParma__Polyhedra__Library_1_1PIP__Decision__Node.html#a47e031aae6928828862422b0ceedec71">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="af8feb908f5def7ba99abb739dd2dc6cc"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Decision_Node::as_decision" ref="af8feb908f5def7ba99abb739dd2dc6cc" args="() const " --> virtual const <a class="el" href="classParma__Polyhedra__Library_1_1PIP__Decision__Node.html">PIP_Decision_Node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classParma__Polyhedra__Library_1_1PIP__Decision__Node.html#af8feb908f5def7ba99abb739dd2dc6cc">as_decision</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"><a class="anchor" id="a3d06dcc99da3a287c6881d2b1e43935a"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Decision_Node::child_node" ref="a3d06dcc99da3a287c6881d2b1e43935a" args="(bool b) const " --> const <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__Decision__Node.html#a3d06dcc99da3a287c6881d2b1e43935a">child_node</a> (bool b) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns a const pointer to the <code>b</code> (true or false) branch of <code>*this</code>. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a27ccfe6ce15264f53bda385c5d93d0c3"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Decision_Node::child_node" ref="a27ccfe6ce15264f53bda385c5d93d0c3" args="(bool b)" --> <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__Decision__Node.html#a27ccfe6ce15264f53bda385c5d93d0c3">child_node</a> (bool b)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns a pointer to the <code>b</code> (true or false) branch of <code>*this</code>. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a031ecc9f79496b10a1b48d6626fd98aa"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Decision_Node::ascii_dump" ref="a031ecc9f79496b10a1b48d6626fd98aa" args="(std::ostream &s) const " --> void </td><td class="memItemRight" valign="bottom"><a class="el" href="classParma__Polyhedra__Library_1_1PIP__Decision__Node.html#a031ecc9f79496b10a1b48d6626fd98aa">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="af6356910030e23dc05bd4e500f073428"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Decision_Node::ascii_load" ref="af6356910030e23dc05bd4e500f073428" args="(std::istream &s)" --> bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classParma__Polyhedra__Library_1_1PIP__Decision__Node.html#af6356910030e23dc05bd4e500f073428">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__Decision__Node.html#a031ecc9f79496b10a1b48d6626fd98aa" 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="a81497d1095efd042cd3034335a3d19e6"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Decision_Node::total_memory_in_bytes" ref="a81497d1095efd042cd3034335a3d19e6" 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__Decision__Node.html#a81497d1095efd042cd3034335a3d19e6">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="ab6e5b1dd2b5b7cc9dae9b4ca656cd05a"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Decision_Node::external_memory_in_bytes" ref="ab6e5b1dd2b5b7cc9dae9b4ca656cd05a" 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__Decision__Node.html#ab6e5b1dd2b5b7cc9dae9b4ca656cd05a">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="aebe39b79533783e53ef583a9ea308fdc"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Decision_Node::PIP_Decision_Node" ref="aebe39b79533783e53ef583a9ea308fdc" args="(const PIP_Decision_Node &y)" --> </td><td class="memItemRight" valign="bottom"><a class="el" href="classParma__Polyhedra__Library_1_1PIP__Decision__Node.html#aebe39b79533783e53ef583a9ea308fdc">PIP_Decision_Node</a> (const <a class="el" href="classParma__Polyhedra__Library_1_1PIP__Decision__Node.html">PIP_Decision_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"><a class="anchor" id="a4d75a1f9b3e618d337fde1b4de9fdac6"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Decision_Node::update_tableau" ref="a4d75a1f9b3e618d337fde1b4de9fdac6" 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__Decision__Node.html#a4d75a1f9b3e618d337fde1b4de9fdac6">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"><a class="anchor" id="a06d16b96542481b3a4d2de4ebed025bd"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Decision_Node::solve" ref="a06d16b96542481b3a4d2de4ebed025bd" 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__Decision__Node.html#a06d16b96542481b3a4d2de4ebed025bd">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"><a class="anchor" id="aafdb58651683fa65f4bbfccf374249ff"></a><!-- doxytag: member="Parma_Polyhedra_Library::PIP_Decision_Node::print_tree" ref="aafdb58651683fa65f4bbfccf374249ff" 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__Decision__Node.html#aafdb58651683fa65f4bbfccf374249ff">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 a decision in the space of solutions. </p> <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>