<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>steghide: Matching 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.5.9 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</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> <div class="contents"> <h1>Matching Class Reference</h1><!-- doxytag: class="Matching" -->represent a matching on a graph <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="Matching_8h_source.html">Matching.h</a>></code> <p> <p> <a href="classMatching-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Classes</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching_1_1VertexInfo.html">VertexInfo</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">contains information about a vertex that is possibly in a matching <a href="classMatching_1_1VertexInfo.html#_details">More...</a><br></td></tr> <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching.html#ed84a04e309df94f8eb9005ffe957bbd">Matching</a> (<a class="el" href="classGraph.html">Graph</a> *g, <a class="el" href="classProgressOutput.html">ProgressOutput</a> *po=NULL)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching.html#d2d812a2bf359a0aba56c4b010d593ca">~Matching</a> (void)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching.html#93686c64dcfc1434222cb6757cff749c">isMatched</a> (<a class="el" href="classVertex.html">Vertex</a> *v) const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching.html#1088d622a0c54ba5e91d4e10cb885000">isMatched</a> (<a class="el" href="common_8h.html#b9c88dfaf90b738f73f1700aa77d06ef">VertexLabel</a> vlbl) const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching.html#de383d31cab08d99b25cad92cac8d884">isExposed</a> (<a class="el" href="classVertex.html">Vertex</a> *v) const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching.html#4a0e7844ca3b75bb44a6e7ac838d271f">isExposed</a> (<a class="el" href="common_8h.html#b9c88dfaf90b738f73f1700aa77d06ef">VertexLabel</a> vlbl) const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classEdge.html">Edge</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching.html#58690371c2d43a2386db627a23d5d921">getMatchingEdge</a> (<a class="el" href="classVertex.html">Vertex</a> *v) const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching.html#93fa0d140bacc42b07eaebbcd8615bdc">includesEdge</a> (const <a class="el" href="classEdge.html">Edge</a> *e) const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching.html#3e94bdfedcf31b6196174e20ceefd233">includesEdge</a> (const <a class="el" href="classEdge.html">Edge</a> &e) const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned long </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching.html#e44f8cb10b0fa9d04719836f74d952af">getCardinality</a> (void) const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const std::list< <a class="el" href="classVertex.html">Vertex</a> * > & </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching.html#87d307472315d9908ad9181048c35b4f">getExposedVertices</a> (void) const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching.html#402a96de4e745c99aa6bc9fc6c41382e">getMatchedRate</a> (void) const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching.html#ab01d98a2c5698dfcd7e7b32eada211e">getAvgEdgeWeight</a> (void) const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const std::list< <a class="el" href="classVertex.html">Vertex</a> * > * </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching.html#b17fd83f0421de3f7f5012f9fe9b408b">getExposedVerticesLink</a> (void) const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching.html#6c838465213fedaf6fc3604498bc4872">addEdge</a> (const <a class="el" href="classEdge.html">Edge</a> &e)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching.html#96c361574c82870fb2def9ee837a661b">addEdge</a> (<a class="el" href="classEdge.html">Edge</a> *e)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching.html#050930214af9313531a041cd7b0cfdc9">removeEdge</a> (const <a class="el" href="classEdge.html">Edge</a> &e)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const std::list< <a class="el" href="classEdge.html">Edge</a> * > & </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching.html#33afa89c36a00b01fa989d1f1dc72094">getEdges</a> (void) const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classMatching.html">Matching</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching.html#129ad66579ab15131149c450f0d228bb">augment</a> (const <a class="el" href="classEdge.html">Edge</a> **path, unsigned long len)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classMatching.html">Matching</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching.html#c7a3a965840629702953743d21798e98">augment</a> (const std::vector< <a class="el" href="classEdge.html">Edge</a> * > &path)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching.html#d1d55c82b6db09f95eb29631ff9d2e8c">printVerboseInfo</a> (void) const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching.html#f3d4af541e7e7442e0b334fa490b6a10">check</a> (void) const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching.html#f5f3551de8bef05d941f3130c0b840dd">check_MatchingEdges_vs_VertexInformation</a> (void) const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching.html#2ec0f42fe59996cbfe4a89ae518bdd0c">check_ExposedVertices_vs_VertexInformation</a> (void) const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching.html#568e1e5824a2224da40c652f756a4fca">check_VertexInformation_Integrity</a> (void) const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching.html#2bcc2b056019a9e15f40e3610905286a">check_ValidAugPath</a> (const std::vector< <a class="el" href="classEdge.html">Edge</a> * > &path) const </td></tr> <tr><td colspan="2"><br><h2>Private Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching.html#bb3bd68cfac697812d6719cc72a42915">setCardinality</a> (unsigned long c)</td></tr> <tr><td colspan="2"><br><h2>Private Attributes</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">std::vector< <a class="el" href="classMatching_1_1VertexInfo.html">VertexInfo</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching.html#0942e9b5f7ebac36164d003fd84d7f32">VertexInformation</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">contains a <a class="el" href="classMatching_1_1VertexInfo.html" title="contains information about a vertex that is possibly in a matching">VertexInfo</a> object for every vertex <a href="#0942e9b5f7ebac36164d003fd84d7f32"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">std::list< <a class="el" href="classVertex.html">Vertex</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching.html#d13336c41a30e91d0e43d76d9a3472d0">ExposedVertices</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">the std::list of all exposed vertices <a href="#d13336c41a30e91d0e43d76d9a3472d0"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">std::list< <a class="el" href="classEdge.html">Edge</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching.html#101468aa7aa0d515d5f26a90aff23635">MatchingEdges</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">the std::list of all edges in the matching <a href="#101468aa7aa0d515d5f26a90aff23635"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned long </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching.html#0010374751f5cb6a24a103d020125df2">Cardinality</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">the number of edges in the matching <a href="#0010374751f5cb6a24a103d020125df2"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classGraph.html">Graph</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching.html#eca9faeb654b61cd465de583e57ff991">TheGraph</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">the graph underlying this <a class="el" href="classMatching.html" title="represent a matching on a graph">Matching</a> <a href="#eca9faeb654b61cd465de583e57ff991"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classProgressOutput.html">ProgressOutput</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classMatching.html#557079f39cb4955db24659100f391eef">PrOut</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">the <a class="el" href="classProgressOutput.html" title="prints the progress to stdout">ProgressOutput</a> object that will print the number of matched vertices (as percentage) <a href="#557079f39cb4955db24659100f391eef"></a><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> A <a class="el" href="classMatching.html" title="represent a matching on a graph">Matching</a> object will copy all Edges that are passed to it and will take care of them, i.e. delete them if they are no longer used. Edges do only "leave" a <a class="el" href="classMatching.html" title="represent a matching on a graph">Matching</a> object as const pointers. <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="ed84a04e309df94f8eb9005ffe957bbd"></a><!-- doxytag: member="Matching::Matching" ref="ed84a04e309df94f8eb9005ffe957bbd" args="(Graph *g, ProgressOutput *po=NULL)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Matching::Matching </td> <td>(</td> <td class="paramtype"><a class="el" href="classGraph.html">Graph</a> * </td> <td class="paramname"> <em>g</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classProgressOutput.html">ProgressOutput</a> * </td> <td class="paramname"> <em>po</em> = <code>NULL</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> create an empty matching that is ready for adding and augmenting <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>g</em> </td><td>the underlying graph </td></tr> <tr><td valign="top"></td><td valign="top"><em>po</em> </td><td>a <a class="el" href="classProgressOutput.html" title="prints the progress to stdout">ProgressOutput</a> object that will print the number of matched vertices (in percent) </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="d2d812a2bf359a0aba56c4b010d593ca"></a><!-- doxytag: member="Matching::~Matching" ref="d2d812a2bf359a0aba56c4b010d593ca" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Matching::~Matching </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="96c361574c82870fb2def9ee837a661b"></a><!-- doxytag: member="Matching::addEdge" ref="96c361574c82870fb2def9ee837a661b" args="(Edge *e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Matching::addEdge </td> <td>(</td> <td class="paramtype"><a class="el" href="classEdge.html">Edge</a> * </td> <td class="paramname"> <em>e</em> </td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="6c838465213fedaf6fc3604498bc4872"></a><!-- doxytag: member="Matching::addEdge" ref="6c838465213fedaf6fc3604498bc4872" args="(const Edge &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Matching::addEdge </td> <td>(</td> <td class="paramtype">const <a class="el" href="classEdge.html">Edge</a> & </td> <td class="paramname"> <em>e</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> add an edge to the matching <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>e</em> </td><td>the edge to add.</td></tr> </table> </dl> For e=(v1,v2): neither v1 nor v2 are allowed to be adjacent to an edge that is already in the matching, </div> </div><p> <a class="anchor" name="c7a3a965840629702953743d21798e98"></a><!-- doxytag: member="Matching::augment" ref="c7a3a965840629702953743d21798e98" args="(const std::vector< Edge * > &path)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classMatching.html">Matching</a> & Matching::augment </td> <td>(</td> <td class="paramtype">const std::vector< <a class="el" href="classEdge.html">Edge</a> * > & </td> <td class="paramname"> <em>path</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="129ad66579ab15131149c450f0d228bb"></a><!-- doxytag: member="Matching::augment" ref="129ad66579ab15131149c450f0d228bb" args="(const Edge **path, unsigned long len)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classMatching.html">Matching</a> & Matching::augment </td> <td>(</td> <td class="paramtype">const <a class="el" href="classEdge.html">Edge</a> ** </td> <td class="paramname"> <em>path</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned long </td> <td class="paramname"> <em>len</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> augment this matching along the given augmenting path <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>path</em> </td><td>an augmenting path </td></tr> <tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>the length (number of edges) of the augmenting path</td></tr> </table> </dl> An augementing path is a path where edges with odd indices (the first, third,...) are not in the matching and edges with even indices are and the path has an odd length. </div> </div><p> <a class="anchor" name="f3d4af541e7e7442e0b334fa490b6a10"></a><!-- doxytag: member="Matching::check" ref="f3d4af541e7e7442e0b334fa490b6a10" args="(void) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool Matching::check </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"> </td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="2ec0f42fe59996cbfe4a89ae518bdd0c"></a><!-- doxytag: member="Matching::check_ExposedVertices_vs_VertexInformation" ref="2ec0f42fe59996cbfe4a89ae518bdd0c" args="(void) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool Matching::check_ExposedVertices_vs_VertexInformation </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"> </td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="f5f3551de8bef05d941f3130c0b840dd"></a><!-- doxytag: member="Matching::check_MatchingEdges_vs_VertexInformation" ref="f5f3551de8bef05d941f3130c0b840dd" args="(void) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool Matching::check_MatchingEdges_vs_VertexInformation </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"> </td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="2bcc2b056019a9e15f40e3610905286a"></a><!-- doxytag: member="Matching::check_ValidAugPath" ref="2bcc2b056019a9e15f40e3610905286a" args="(const std::vector< Edge * > &path) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool Matching::check_ValidAugPath </td> <td>(</td> <td class="paramtype">const std::vector< <a class="el" href="classEdge.html">Edge</a> * > & </td> <td class="paramname"> <em>path</em> </td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="568e1e5824a2224da40c652f756a4fca"></a><!-- doxytag: member="Matching::check_VertexInformation_Integrity" ref="568e1e5824a2224da40c652f756a4fca" args="(void) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool Matching::check_VertexInformation_Integrity </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"> </td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="ab01d98a2c5698dfcd7e7b32eada211e"></a><!-- doxytag: member="Matching::getAvgEdgeWeight" ref="ab01d98a2c5698dfcd7e7b32eada211e" args="(void) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float Matching::getAvgEdgeWeight </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"> </td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p> get the average weight of all edges that are in this matching </div> </div><p> <a class="anchor" name="e44f8cb10b0fa9d04719836f74d952af"></a><!-- doxytag: member="Matching::getCardinality" ref="e44f8cb10b0fa9d04719836f74d952af" args="(void) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned long Matching::getCardinality </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"> </td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> get the cardinality (the number of matched edges) </div> </div><p> <a class="anchor" name="33afa89c36a00b01fa989d1f1dc72094"></a><!-- doxytag: member="Matching::getEdges" ref="33afa89c36a00b01fa989d1f1dc72094" args="(void) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const std::list<<a class="el" href="classEdge.html">Edge</a>*>& Matching::getEdges </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"> </td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> get the list of all edges in this matching </div> </div><p> <a class="anchor" name="87d307472315d9908ad9181048c35b4f"></a><!-- doxytag: member="Matching::getExposedVertices" ref="87d307472315d9908ad9181048c35b4f" args="(void) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const std::list<<a class="el" href="classVertex.html">Vertex</a>*>& Matching::getExposedVertices </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"> </td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="b17fd83f0421de3f7f5012f9fe9b408b"></a><!-- doxytag: member="Matching::getExposedVerticesLink" ref="b17fd83f0421de3f7f5012f9fe9b408b" args="(void) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const std::list<<a class="el" href="classVertex.html">Vertex</a>*>* Matching::getExposedVerticesLink </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"> </td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> get access to the std::list of exposed vertices <dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to the std::list of exposed vertices in this matching.</dd></dl> The std::list that is pointed to by return value contains the exposed vertices even after augment has been called (it is the ExposedVertices member) an arbitrary number of times. </div> </div><p> <a class="anchor" name="402a96de4e745c99aa6bc9fc6c41382e"></a><!-- doxytag: member="Matching::getMatchedRate" ref="402a96de4e745c99aa6bc9fc6c41382e" args="(void) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float Matching::getMatchedRate </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"> </td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p> get the rate of vertices of the underlying graph that are currently matched in this matching <dl class="return" compact><dt><b>Returns:</b></dt><dd>a value between 0 and 1 </dd></dl> </div> </div><p> <a class="anchor" name="58690371c2d43a2386db627a23d5d921"></a><!-- doxytag: member="Matching::getMatchingEdge" ref="58690371c2d43a2386db627a23d5d921" args="(Vertex *v) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="classEdge.html">Edge</a>* Matching::getMatchingEdge </td> <td>(</td> <td class="paramtype"><a class="el" href="classVertex.html">Vertex</a> * </td> <td class="paramname"> <em>v</em> </td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> get the edge that is in the matching and adjacent to v <dl class="return" compact><dt><b>Returns:</b></dt><dd>the matched edge or NULL if v is exposed </dd></dl> </div> </div><p> <a class="anchor" name="3e94bdfedcf31b6196174e20ceefd233"></a><!-- doxytag: member="Matching::includesEdge" ref="3e94bdfedcf31b6196174e20ceefd233" args="(const Edge &e) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool Matching::includesEdge </td> <td>(</td> <td class="paramtype">const <a class="el" href="classEdge.html">Edge</a> & </td> <td class="paramname"> <em>e</em> </td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="93fa0d140bacc42b07eaebbcd8615bdc"></a><!-- doxytag: member="Matching::includesEdge" ref="93fa0d140bacc42b07eaebbcd8615bdc" args="(const Edge *e) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool Matching::includesEdge </td> <td>(</td> <td class="paramtype">const <a class="el" href="classEdge.html">Edge</a> * </td> <td class="paramname"> <em>e</em> </td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> does this matching include the edge e ? <dl class="return" compact><dt><b>Returns:</b></dt><dd>true iff the edge e is element of this matching </dd></dl> </div> </div><p> <a class="anchor" name="4a0e7844ca3b75bb44a6e7ac838d271f"></a><!-- doxytag: member="Matching::isExposed" ref="4a0e7844ca3b75bb44a6e7ac838d271f" args="(VertexLabel vlbl) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool Matching::isExposed </td> <td>(</td> <td class="paramtype"><a class="el" href="common_8h.html#b9c88dfaf90b738f73f1700aa77d06ef">VertexLabel</a> </td> <td class="paramname"> <em>vlbl</em> </td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> returns true iff the vertex with the label vlbl is exposed (not matched) in this matching. </div> </div><p> <a class="anchor" name="de383d31cab08d99b25cad92cac8d884"></a><!-- doxytag: member="Matching::isExposed" ref="de383d31cab08d99b25cad92cac8d884" args="(Vertex *v) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool Matching::isExposed </td> <td>(</td> <td class="paramtype"><a class="el" href="classVertex.html">Vertex</a> * </td> <td class="paramname"> <em>v</em> </td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> returns true iff the vertex v is exposed (not matched) in this matching. </div> </div><p> <a class="anchor" name="1088d622a0c54ba5e91d4e10cb885000"></a><!-- doxytag: member="Matching::isMatched" ref="1088d622a0c54ba5e91d4e10cb885000" args="(VertexLabel vlbl) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool Matching::isMatched </td> <td>(</td> <td class="paramtype"><a class="el" href="common_8h.html#b9c88dfaf90b738f73f1700aa77d06ef">VertexLabel</a> </td> <td class="paramname"> <em>vlbl</em> </td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> returns true iff the vertex with the label vlbl is matched in this matching. </div> </div><p> <a class="anchor" name="93686c64dcfc1434222cb6757cff749c"></a><!-- doxytag: member="Matching::isMatched" ref="93686c64dcfc1434222cb6757cff749c" args="(Vertex *v) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool Matching::isMatched </td> <td>(</td> <td class="paramtype"><a class="el" href="classVertex.html">Vertex</a> * </td> <td class="paramname"> <em>v</em> </td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> returns true iff the vertex v is matched in this matching. </div> </div><p> <a class="anchor" name="d1d55c82b6db09f95eb29631ff9d2e8c"></a><!-- doxytag: member="Matching::printVerboseInfo" ref="d1d55c82b6db09f95eb29631ff9d2e8c" args="(void) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Matching::printVerboseInfo </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"> </td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="050930214af9313531a041cd7b0cfdc9"></a><!-- doxytag: member="Matching::removeEdge" ref="050930214af9313531a041cd7b0cfdc9" args="(const Edge &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Matching::removeEdge </td> <td>(</td> <td class="paramtype">const <a class="el" href="classEdge.html">Edge</a> & </td> <td class="paramname"> <em>e</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> remove an edge from the matching <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>e</em> </td><td>the edge to remove</td></tr> </table> </dl> The edge e _must_ be in this matching </div> </div><p> <a class="anchor" name="bb3bd68cfac697812d6719cc72a42915"></a><!-- doxytag: member="Matching::setCardinality" ref="bb3bd68cfac697812d6719cc72a42915" args="(unsigned long c)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Matching::setCardinality </td> <td>(</td> <td class="paramtype">unsigned long </td> <td class="paramname"> <em>c</em> </td> <td> ) </td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p> set the cardinality (thereby updating PrOut) </div> </div><p> <hr><h2>Member Data Documentation</h2> <a class="anchor" name="0010374751f5cb6a24a103d020125df2"></a><!-- doxytag: member="Matching::Cardinality" ref="0010374751f5cb6a24a103d020125df2" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned long <a class="el" href="classMatching.html#0010374751f5cb6a24a103d020125df2">Matching::Cardinality</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="d13336c41a30e91d0e43d76d9a3472d0"></a><!-- doxytag: member="Matching::ExposedVertices" ref="d13336c41a30e91d0e43d76d9a3472d0" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::list<<a class="el" href="classVertex.html">Vertex</a>*> <a class="el" href="classMatching.html#d13336c41a30e91d0e43d76d9a3472d0">Matching::ExposedVertices</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="101468aa7aa0d515d5f26a90aff23635"></a><!-- doxytag: member="Matching::MatchingEdges" ref="101468aa7aa0d515d5f26a90aff23635" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::list<<a class="el" href="classEdge.html">Edge</a>*> <a class="el" href="classMatching.html#101468aa7aa0d515d5f26a90aff23635">Matching::MatchingEdges</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="557079f39cb4955db24659100f391eef"></a><!-- doxytag: member="Matching::PrOut" ref="557079f39cb4955db24659100f391eef" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classProgressOutput.html">ProgressOutput</a>* <a class="el" href="classMatching.html#557079f39cb4955db24659100f391eef">Matching::PrOut</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="eca9faeb654b61cd465de583e57ff991"></a><!-- doxytag: member="Matching::TheGraph" ref="eca9faeb654b61cd465de583e57ff991" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classGraph.html">Graph</a>* <a class="el" href="classMatching.html#eca9faeb654b61cd465de583e57ff991">Matching::TheGraph</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="0942e9b5f7ebac36164d003fd84d7f32"></a><!-- doxytag: member="Matching::VertexInformation" ref="0942e9b5f7ebac36164d003fd84d7f32" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::vector<<a class="el" href="classMatching_1_1VertexInfo.html">VertexInfo</a>> <a class="el" href="classMatching.html#0942e9b5f7ebac36164d003fd84d7f32">Matching::VertexInformation</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <hr>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="Matching_8h_source.html">Matching.h</a><li><a class="el" href="Matching_8cc.html">Matching.cc</a></ul> </div> <hr size="1"><address style="text-align: right;"><small>Generated on Mon Aug 17 10:58:32 2009 for steghide by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address> </body> </html>