<!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: Selector 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>Selector Class Reference</h1><!-- doxytag: class="Selector" -->a random permutation of a random combination <p> <code>#include <<a class="el" href="Selector_8h_source.html">Selector.h</a>></code> <p> <p> <a href="classSelector-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0"> <tr><td></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="classSelector.html#cc52824162ed137decacc0edc1b0b1e1">Selector</a> (<a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a> m, std::string pp)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSelector.html#8873699208d4c5dc2cb65173503f385a">Selector</a> (<a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a> m)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSelector.html#f872fa2e722baccf4333afc219785e04">Selector</a> (const std::vector< <a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a> > &retvals)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSelector.html#961800f205d55026d33890664b5599ca">~Selector</a> (void)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSelector.html#67c22f0caa7be017426c03fa0b4bcbe0">operator[]</a> (<a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a> i)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSelector.html#ea9e7dde9d21cdf66c872fe5e3f31a49">getRange</a> (void) 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="classSelector.html#499a21441da9a8363f36adf4692b175a">calculate</a> (<a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a> m)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSelector.html#02926bbb359fd45af3c17ca4bf038425">idxX</a> (<a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a> v, <a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a> m, <a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a> *p) const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSelector.html#533b70ee161de028022ea2cbf9e743ba">setX</a> (<a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a> i, <a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a> v)</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="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSelector.html#9caaded60e133e61c4e33e93307abb6f">X</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">std::vector< <a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSelector.html#73d5c0af7145d1a7f57af997ad4e7b7a">Y</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">sgi::hash_map< <a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a>, <a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSelector.html#c550990891ddaa2025312e9803097d8e">Xreversed</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSelector.html#3a48b553233d96fb718ebe39bcf20ba0">Maximum</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">operator[] will return a value in {0,...,Maximum-1} <a href="#3a48b553233d96fb718ebe39bcf20ba0"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSelector.html#c22e09b027bcf728eef8380e47543507">NumInArray</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">the number of calculated positions in the arrays <a href="#c22e09b027bcf728eef8380e47543507"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classPseudoRandomSource.html">PseudoRandomSource</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSelector.html#5b0a5a96d37e69b6e0b994cfa480d215">PRandom</a></td></tr> </table> <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="cc52824162ed137decacc0edc1b0b1e1"></a><!-- doxytag: member="Selector::Selector" ref="cc52824162ed137decacc0edc1b0b1e1" args="(UWORD32 m, std::string pp)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Selector::Selector </td> <td>(</td> <td class="paramtype"><a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a> </td> <td class="paramname"> <em>m</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">std::string </td> <td class="paramname"> <em>pp</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> construct a <a class="el" href="classSelector.html" title="a random permutation of a random combination">Selector</a> object <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>m</em> </td><td>the range - operator[] will return numbers in {0,...,m-1} </td></tr> <tr><td valign="top"></td><td valign="top"><em>pp</em> </td><td>a passphrase used to generate the seed </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="8873699208d4c5dc2cb65173503f385a"></a><!-- doxytag: member="Selector::Selector" ref="8873699208d4c5dc2cb65173503f385a" args="(UWORD32 m)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Selector::Selector </td> <td>(</td> <td class="paramtype"><a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a> </td> <td class="paramname"> <em>m</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> construct a <a class="el" href="classSelector.html" title="a random permutation of a random combination">Selector</a> object that resembles the identity permutation with range m <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>m</em> </td><td>the range - (*this)[i] will be i for i in {0,...,m-1} </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="f872fa2e722baccf4333afc219785e04"></a><!-- doxytag: member="Selector::Selector" ref="f872fa2e722baccf4333afc219785e04" args="(const std::vector< UWORD32 > &retvals)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Selector::Selector </td> <td>(</td> <td class="paramtype">const std::vector< <a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a> > & </td> <td class="paramname"> <em>retvals</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> construct a <a class="el" href="classSelector.html" title="a random permutation of a random combination">Selector</a> object that will return predefined values <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>retvals</em> </td><td>the values that operator[] shall return</td></tr> </table> </dl> The Maximum is set to retvals.size(). </div> </div><p> <a class="anchor" name="961800f205d55026d33890664b5599ca"></a><!-- doxytag: member="Selector::~Selector" ref="961800f205d55026d33890664b5599ca" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Selector::~Selector </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="499a21441da9a8363f36adf4692b175a"></a><!-- doxytag: member="Selector::calculate" ref="499a21441da9a8363f36adf4692b175a" args="(UWORD32 m)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Selector::calculate </td> <td>(</td> <td class="paramtype"><a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a> </td> <td class="paramname"> <em>m</em> </td> <td> ) </td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p> fill X, Y and Xreversed until but not including index m </div> </div><p> <a class="anchor" name="ea9e7dde9d21cdf66c872fe5e3f31a49"></a><!-- doxytag: member="Selector::getRange" ref="ea9e7dde9d21cdf66c872fe5e3f31a49" args="(void) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a> Selector::getRange </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="02926bbb359fd45af3c17ca4bf038425"></a><!-- doxytag: member="Selector::idxX" ref="02926bbb359fd45af3c17ca4bf038425" args="(UWORD32 v, UWORD32 m, UWORD32 *p) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool Selector::idxX </td> <td>(</td> <td class="paramtype"><a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a> </td> <td class="paramname"> <em>v</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a> </td> <td class="paramname"> <em>m</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a> * </td> <td class="paramname"> <em>p</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td> const<code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p> search an index i such that 0 <= i < m and X[i] == v <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>v</em> </td><td>the value to be searched for in the X-array </td></tr> <tr><td valign="top"></td><td valign="top"><em>m</em> </td><td>the upper bound for the index </td></tr> <tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>a pointer to a variable where the found index can be stored </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>true iff such an index is found (*p is set to i in this case </dd></dl> </div> </div><p> <a class="anchor" name="67c22f0caa7be017426c03fa0b4bcbe0"></a><!-- doxytag: member="Selector::operator[]" ref="67c22f0caa7be017426c03fa0b4bcbe0" args="(UWORD32 i)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a> Selector::operator[] </td> <td>(</td> <td class="paramtype"><a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a> </td> <td class="paramname"> <em>i</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> get the value at the i-th position <dl compact><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>an index </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="533b70ee161de028022ea2cbf9e743ba"></a><!-- doxytag: member="Selector::setX" ref="533b70ee161de028022ea2cbf9e743ba" args="(UWORD32 i, UWORD32 v)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Selector::setX </td> <td>(</td> <td class="paramtype"><a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a> </td> <td class="paramname"> <em>i</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a> </td> <td class="paramname"> <em>v</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p> set X[i] to v while maintaining Xreversed </div> </div><p> <hr><h2>Member Data Documentation</h2> <a class="anchor" name="3a48b553233d96fb718ebe39bcf20ba0"></a><!-- doxytag: member="Selector::Maximum" ref="3a48b553233d96fb718ebe39bcf20ba0" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a> <a class="el" href="classSelector.html#3a48b553233d96fb718ebe39bcf20ba0">Selector::Maximum</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="c22e09b027bcf728eef8380e47543507"></a><!-- doxytag: member="Selector::NumInArray" ref="c22e09b027bcf728eef8380e47543507" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a> <a class="el" href="classSelector.html#c22e09b027bcf728eef8380e47543507">Selector::NumInArray</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="5b0a5a96d37e69b6e0b994cfa480d215"></a><!-- doxytag: member="Selector::PRandom" ref="5b0a5a96d37e69b6e0b994cfa480d215" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classPseudoRandomSource.html">PseudoRandomSource</a>* <a class="el" href="classSelector.html#5b0a5a96d37e69b6e0b994cfa480d215">Selector::PRandom</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="9caaded60e133e61c4e33e93307abb6f"></a><!-- doxytag: member="Selector::X" ref="9caaded60e133e61c4e33e93307abb6f" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::vector<<a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a>> <a class="el" href="classSelector.html#9caaded60e133e61c4e33e93307abb6f">Selector::X</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="c550990891ddaa2025312e9803097d8e"></a><!-- doxytag: member="Selector::Xreversed" ref="c550990891ddaa2025312e9803097d8e" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">sgi::hash_map<<a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a>,<a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a>> <a class="el" href="classSelector.html#c550990891ddaa2025312e9803097d8e">Selector::Xreversed</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="73d5c0af7145d1a7f57af997ad4e7b7a"></a><!-- doxytag: member="Selector::Y" ref="73d5c0af7145d1a7f57af997ad4e7b7a" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::vector<<a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a>> <a class="el" href="classSelector.html#73d5c0af7145d1a7f57af997ad4e7b7a">Selector::Y</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="Selector_8h_source.html">Selector.h</a><li><a class="el" href="Selector_8cc.html">Selector.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>