Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > c5653a35bb94fee65ffe21230992c863 > files > 337

linbox-doc-1.2.1-1.fc15.noarch.rpm

<!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>linbox: UnparametricRandIter&lt; K &gt; Class Template 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.7.4 -->
<script type="text/javascript">
function hasClass(ele,cls) {
  return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}

function addClass(ele,cls) {
  if (!this.hasClass(ele,cls)) ele.className += " "+cls;
}

function removeClass(ele,cls) {
  if (hasClass(ele,cls)) {
    var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
    ele.className=ele.className.replace(reg,' ');
  }
}

function toggleVisibility(linkObj) {
 var base = linkObj.getAttribute('id');
 var summary = document.getElementById(base + '-summary');
 var content = document.getElementById(base + '-content');
 var trigger = document.getElementById(base + '-trigger');
 if ( hasClass(linkObj,'closed') ) {
   summary.style.display = 'none';
   content.style.display = 'block';
   trigger.src = 'open.png';
   removeClass(linkObj,'closed');
   addClass(linkObj,'opened');
 } else if ( hasClass(linkObj,'opened') ) {
   summary.style.display = 'block';
   content.style.display = 'none';
   trigger.src = 'closed.png';
   removeClass(linkObj,'opened');
   addClass(linkObj,'closed');
 }
 return false;
}
</script>
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">linbox</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;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>Data&#160;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespace_lin_box.html">LinBox</a>      </li>
      <li class="navelem"><a class="el" href="class_lin_box_1_1_unparametric_rand_iter.html">UnparametricRandIter</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="headertitle">
<div class="title">UnparametricRandIter&lt; K &gt; Class Template Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="LinBox::UnparametricRandIter" -->
<p>Unparameterized random field element generator template.  
 <a href="class_lin_box_1_1_unparametric_rand_iter.html#details">More...</a></p>

<p><code>#include &lt;unparametric.h&gt;</code></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Implementation-Specific Methods.</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>These methods are not required of all <a class="el" href="namespace_lin_box.html">LinBox</a>\ Random\ field\ element\ generators and are included only for this implementation of the archetype. </p>
</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a235d2ca6d43baf1abc711f1fd259e6a4"></a><!-- doxytag: member="LinBox::UnparametricRandIter::UnparametricRandIter" ref="a235d2ca6d43baf1abc711f1fd259e6a4" args="(void)" -->
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_unparametric_rand_iter.html#a235d2ca6d43baf1abc711f1fd259e6a4">UnparametricRandIter</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. <br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">class RR.</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>Rational number field.</p>
<p>This field is provided as a convenience in a few places. Use with caution because expression swell.</p>
<p>This specialization allows the <a class="el" href="group___unparametric_field.html">UnparametricField</a> template class to be used to wrap NTL's RR class as a <a class="el" href="namespace_lin_box.html" title="Namespace in which all linbox code resides.">LinBox</a> field. </p>
</div></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;&gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">NTL::RR &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_unparametric_rand_iter.html#a86779a2d797681cca6788d7a010c6007">random</a> (NTL::RR &amp;elt) const</td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
Common Object Interface.</h2></td></tr>
<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrp3e56614df595c8ae7715d6e2d35c3e26"></a>These methods are required of all <a class="el" href="namespace_lin_box.html" title="Namespace in which all linbox code resides.">LinBox</a> random field element generators. </p>
</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef K&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_unparametric_rand_iter.html#a3f09bdc246930a5dde1ed03a2357b656">Element</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Field element type.  <a href="#a3f09bdc246930a5dde1ed03a2357b656"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_unparametric_rand_iter.html#aabc5b914bbe7ef5884b42083c69cd472">UnparametricRandIter</a> (const UnparametricField&lt; K &gt; &amp;F, const <a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a> &amp;size=0, const <a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a> &amp;seed=0)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor from field, sampling size, and seed.  <a href="#aabc5b914bbe7ef5884b42083c69cd472"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_unparametric_rand_iter.html#a1635f0695b7d579412b713d6dfb55eb7">UnparametricRandIter</a> (const <a class="el" href="class_lin_box_1_1_unparametric_rand_iter.html">UnparametricRandIter</a> &amp;R)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor.  <a href="#a1635f0695b7d579412b713d6dfb55eb7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_unparametric_rand_iter.html#a37223dd4e1714c5a6b35a03fbbbb57eb">~UnparametricRandIter</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#a37223dd4e1714c5a6b35a03fbbbb57eb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_unparametric_rand_iter.html">UnparametricRandIter</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_unparametric_rand_iter.html#ae6ff5811549510a3ceb92545a65f5504">operator=</a> (const <a class="el" href="class_lin_box_1_1_unparametric_rand_iter.html">UnparametricRandIter</a> &amp;R)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment operator.  <a href="#ae6ff5811549510a3ceb92545a65f5504"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_unparametric_rand_iter.html#a3f09bdc246930a5dde1ed03a2357b656">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_unparametric_rand_iter.html#aef7dd194b9b37f0af4995e975be2fc8f">random</a> (<a class="el" href="class_lin_box_1_1_unparametric_rand_iter.html#a3f09bdc246930a5dde1ed03a2357b656">Element</a> &amp;x) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Random field element creator.  <a href="#aef7dd194b9b37f0af4995e975be2fc8f"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><h3>template&lt;class K&gt;<br/>
class LinBox::UnparametricRandIter&lt; K &gt;</h3>

<p>Unparameterized random field element generator template. </p>
<p>Implements <a class="el" href="namespace_lin_box.html" title="Namespace in which all linbox code resides.">LinBox</a> random field element generator common object interface for unparameterized fields. Used to generate efficient field classes for unparameterized fields. Constructs <a class="el" href="namespace_lin_box.html" title="Namespace in which all linbox code resides.">LinBox</a> unparameterized random field element generators from field types K. In particular, constructs <a class="el" href="namespace_lin_box.html" title="Namespace in which all linbox code resides.">LinBox</a> random field element generators for unparameterized fields from field types that adhere to the operations for double, for example UnparametricRandIter&lt; float &gt;. Can be used as a pattern to write a particular field interface, such as, UnparametricRandIter&lt; SaclibQ &gt; as a template specialization. This implementation uses the standard C++ random number generator. Thus, only one random field element generator can be used at a time since creating a new one will re-seed the built-in generator and affect all current <a class="el" href="namespace_lin_box.html" title="Namespace in which all linbox code resides.">LinBox</a> generators. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">K</td><td>unparameterized field class </td></tr>
  </table>
  </dd>
</dl>
</div><hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="a3f09bdc246930a5dde1ed03a2357b656"></a><!-- doxytag: member="LinBox::UnparametricRandIter::Element" ref="a3f09bdc246930a5dde1ed03a2357b656" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef K <a class="el" href="class_lin_box_1_1_unparametric_rand_iter.html#a3f09bdc246930a5dde1ed03a2357b656">Element</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Field element type. </p>
<p>The field element must contain a default constructor, a copy constructor, a destructor, and an assignment operator. </p>

</div>
</div>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="aabc5b914bbe7ef5884b42083c69cd472"></a><!-- doxytag: member="LinBox::UnparametricRandIter::UnparametricRandIter" ref="aabc5b914bbe7ef5884b42083c69cd472" args="(const UnparametricField&lt; K &gt; &amp;F, const integer &amp;size=0, const integer &amp;seed=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_unparametric_rand_iter.html">UnparametricRandIter</a> </td>
          <td>(</td>
          <td class="paramtype">const UnparametricField&lt; K &gt; &amp;&#160;</td>
          <td class="paramname"><em>F</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a> &amp;&#160;</td>
          <td class="paramname"><em>size</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a> &amp;&#160;</td>
          <td class="paramname"><em>seed</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor from field, sampling size, and seed. </p>
<p>The random field element iterator works in the field F, is seeded by seed, and it returns any one element with probability no more than 1/min(size, F.cardinality(c)). A sampling size of zero means to sample from the entire field. A seed of zero means to use some arbitrary seed for the generator. This implementation sets the sampling size to be no more than the cardinality of the field. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">F</td><td><a class="el" href="namespace_lin_box.html" title="Namespace in which all linbox code resides.">LinBox</a> field archetype object in which to do arithmetic </td></tr>
    <tr><td class="paramname">size</td><td>constant integer reference of sample size from which to sample (default = 0) </td></tr>
    <tr><td class="paramname">seed</td><td>constant integer reference from which to seed random number generator (default = 0) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1635f0695b7d579412b713d6dfb55eb7"></a><!-- doxytag: member="LinBox::UnparametricRandIter::UnparametricRandIter" ref="a1635f0695b7d579412b713d6dfb55eb7" args="(const UnparametricRandIter &amp;R)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_unparametric_rand_iter.html">UnparametricRandIter</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_unparametric_rand_iter.html">UnparametricRandIter</a>&lt; K &gt; &amp;&#160;</td>
          <td class="paramname"><em>R</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Copy constructor. </p>
<p>Constructs <a class="el" href="class_lin_box_1_1_unparametric_rand_iter.html" title="Unparameterized random field element generator template.">UnparametricRandIter</a> object by copying the random field element generator. This is required to allow generator objects to be passed by value into functions. In this implementation, this means copying the random field element generator to which R._randIter_ptr points. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">R</td><td><a class="el" href="class_lin_box_1_1_unparametric_rand_iter.html" title="Unparameterized random field element generator template.">UnparametricRandIter</a> object. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a37223dd4e1714c5a6b35a03fbbbb57eb"></a><!-- doxytag: member="LinBox::UnparametricRandIter::~UnparametricRandIter" ref="a37223dd4e1714c5a6b35a03fbbbb57eb" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">~<a class="el" href="class_lin_box_1_1_unparametric_rand_iter.html">UnparametricRandIter</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destructor. </p>
<p>This destructs the random field element generator object. In this implementation, this destroys the generator by deleting the random generator object to which _randIter_ptr points. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="ae6ff5811549510a3ceb92545a65f5504"></a><!-- doxytag: member="LinBox::UnparametricRandIter::operator=" ref="ae6ff5811549510a3ceb92545a65f5504" args="(const UnparametricRandIter &amp;R)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_unparametric_rand_iter.html">UnparametricRandIter</a>&amp; operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_unparametric_rand_iter.html">UnparametricRandIter</a>&lt; K &gt; &amp;&#160;</td>
          <td class="paramname"><em>R</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Assignment operator. </p>
<p>Assigns <a class="el" href="class_lin_box_1_1_unparametric_rand_iter.html" title="Unparameterized random field element generator template.">UnparametricRandIter</a> object R to generator. In this implementation, this means copying the generator to which R._randIter_ptr points. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">R</td><td><a class="el" href="class_lin_box_1_1_unparametric_rand_iter.html" title="Unparameterized random field element generator template.">UnparametricRandIter</a> object. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aef7dd194b9b37f0af4995e975be2fc8f"></a><!-- doxytag: member="LinBox::UnparametricRandIter::random" ref="aef7dd194b9b37f0af4995e975be2fc8f" args="(Element &amp;x) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_unparametric_rand_iter.html#a3f09bdc246930a5dde1ed03a2357b656">Element</a>&amp; random </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_unparametric_rand_iter.html#a3f09bdc246930a5dde1ed03a2357b656">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Random field element creator. </p>
<p>This returns a random field element from the information supplied at the creation of the generator. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>random field element </dd></dl>

</div>
</div>
<a class="anchor" id="a86779a2d797681cca6788d7a010c6007"></a><!-- doxytag: member="LinBox::UnparametricRandIter::random" ref="a86779a2d797681cca6788d7a010c6007" args="(NTL::RR &amp;elt) const" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">NTL::RR &amp; random </td>
          <td>(</td>
          <td class="paramtype">NTL::RR &amp;&#160;</td>
          <td class="paramname"><em>elt</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This returns a random field element from the information supplied at the creation of the generator. This generator uses the built-in C++ random number generator instead of NTL's random function because the NTL function does not allow as much control over the sampling size as the generic <a class="el" href="namespace_lin_box.html" title="Namespace in which all linbox code resides.">LinBox</a> template. This specialization is included only to allow conversion to an NTL object. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>random field element </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>randiter/unparametric.h</li>
</ul>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Tue Aug 30 2011 for linbox by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
</html>