Sophie

Sophie

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

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: FieldAXPY&lt; Field &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_field_a_x_p_y.html">FieldAXPY</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a>  </div>
  <div class="headertitle">
<div class="title">FieldAXPY&lt; Field &gt; Class Template Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="LinBox::FieldAXPY" -->
<p><a class="el" href="class_lin_box_1_1_field_a_x_p_y.html" title="FieldAXPY object.">FieldAXPY</a> object.  
 <a href="class_lin_box_1_1_field_a_x_p_y.html#details">More...</a></p>

<p><code>#include &lt;field-axpy.h&gt;</code></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a41bf9f872e3af67d367637e745169dc7"></a><!-- doxytag: member="LinBox::FieldAXPY::Element" ref="a41bf9f872e3af67d367637e745169dc7" args="" -->
typedef Field::Element&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_a_x_p_y.html#a41bf9f872e3af67d367637e745169dc7">Element</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Definition of element type. <br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></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_field_a_x_p_y.html#a4e7f85a29218e48bf83b1527a339f700">FieldAXPY</a> (const <a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> &amp;F)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a4e7f85a29218e48bf83b1527a339f700"></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_field_a_x_p_y.html#a363d992668451daf17997ad272befa5d">FieldAXPY</a> (const <a class="el" href="class_lin_box_1_1_field_a_x_p_y.html">FieldAXPY</a>&lt; <a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> &gt; &amp;faxpy)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor.  <a href="#a363d992668451daf17997ad272befa5d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_field_a_x_p_y.html">FieldAXPY</a>&lt; <a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_a_x_p_y.html#acf9d1e1a014d289f6b177565b613c7df">operator=</a> (const <a class="el" href="class_lin_box_1_1_field_a_x_p_y.html">FieldAXPY</a> &amp;faxpy)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment operator.  <a href="#acf9d1e1a014d289f6b177565b613c7df"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_field_a_x_p_y.html#a41bf9f872e3af67d367637e745169dc7">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_a_x_p_y.html#a6e12c03576cd433c4276aa5d29f55509">mulacc</a> (const <a class="el" href="class_lin_box_1_1_field_a_x_p_y.html#a41bf9f872e3af67d367637e745169dc7">Element</a> &amp;a, const <a class="el" href="class_lin_box_1_1_field_a_x_p_y.html#a41bf9f872e3af67d367637e745169dc7">Element</a> &amp;x)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a*x to y y += a*x.  <a href="#a6e12c03576cd433c4276aa5d29f55509"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_field_a_x_p_y.html#a41bf9f872e3af67d367637e745169dc7">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_a_x_p_y.html#afbfef52c4fbdc26d05aebbcffe26269a">get</a> (<a class="el" href="class_lin_box_1_1_field_a_x_p_y.html#a41bf9f872e3af67d367637e745169dc7">Element</a> &amp;y)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve y.  <a href="#afbfef52c4fbdc26d05aebbcffe26269a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_field_a_x_p_y.html">FieldAXPY</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_a_x_p_y.html#a74a6228559b1446ff286bcc2df2c6fb9">assign</a> (const <a class="el" href="class_lin_box_1_1_field_a_x_p_y.html#a41bf9f872e3af67d367637e745169dc7">Element</a> y)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Assign method.  <a href="#a74a6228559b1446ff286bcc2df2c6fb9"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3ec69a565e26d3a7e937f23bd4e93983"></a><!-- doxytag: member="LinBox::FieldAXPY::_F" ref="a3ec69a565e26d3a7e937f23bd4e93983" args="" -->
<a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_a_x_p_y.html#a3ec69a565e26d3a7e937f23bd4e93983">_F</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Field in which arithmetic is done Not sure why it must be mutable, but the compiler complains otherwise. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adddb90051a3f87d8fa904f1eb53d47f0"></a><!-- doxytag: member="LinBox::FieldAXPY::_y" ref="adddb90051a3f87d8fa904f1eb53d47f0" args="" -->
<a class="el" href="class_lin_box_1_1_field_a_x_p_y.html#a41bf9f872e3af67d367637e745169dc7">Element</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_a_x_p_y.html#adddb90051a3f87d8fa904f1eb53d47f0">_y</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Field element for arithmetic. <br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><h3>template&lt;class Field&gt;<br/>
class LinBox::FieldAXPY&lt; Field &gt;</h3>

<p><a class="el" href="class_lin_box_1_1_field_a_x_p_y.html" title="FieldAXPY object.">FieldAXPY</a> object. </p>
<p>This class is used to wrap the operation <code>y = y + a * x</code>. It acts as an accumulator for <code>y</code>.</p>
<p>Through the use of template specialization, objects of this type can be used to speed up vector dot product operations. In particular, for finite fields, dividing by the modulus and taking the remainder is expensive. In many cases, this can be postponed until the end of the dot product operation, thus vastly improving performance.</p>
<p>This object is constructed from the field object <code>F</code> and a field element a which it stores and thus can use several times. The use of an object instead of a static variable to store the element a makes this method thread-safe.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Field</td><td><a class="el" href="namespace_lin_box.html">LinBox</a> <a class="el" href="group___fields.html">field</a> </td></tr>
  </table>
  </dd>
</dl>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a4e7f85a29218e48bf83b1527a339f700"></a><!-- doxytag: member="LinBox::FieldAXPY::FieldAXPY" ref="a4e7f85a29218e48bf83b1527a339f700" args="(const Field &amp;F)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_field_a_x_p_y.html">FieldAXPY</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> &amp;&#160;</td>
          <td class="paramname"><em>F</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor. </p>
<p>A faxpy object if constructed from a Field and a field element. Copies of this objects are stored in the faxpy object. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">F</td><td>field F in which arithmetic is done </td></tr>
  </table>
  </dd>
</dl>

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

<p>Copy constructor. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">faxpy</td><td></td></tr>
  </table>
  </dd>
</dl>

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

<p>Assignment operator. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">faxpy</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a6e12c03576cd433c4276aa5d29f55509"></a><!-- doxytag: member="LinBox::FieldAXPY::mulacc" ref="a6e12c03576cd433c4276aa5d29f55509" args="(const Element &amp;a, const Element &amp;x)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_field_a_x_p_y.html#a41bf9f872e3af67d367637e745169dc7">Element</a>&amp; mulacc </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_field_a_x_p_y.html#a41bf9f872e3af67d367637e745169dc7">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_field_a_x_p_y.html#a41bf9f872e3af67d367637e745169dc7">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add a*x to y y += a*x. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>constant reference to element a </td></tr>
    <tr><td class="paramname">x</td><td>constant reference to element x </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="afbfef52c4fbdc26d05aebbcffe26269a"></a><!-- doxytag: member="LinBox::FieldAXPY::get" ref="afbfef52c4fbdc26d05aebbcffe26269a" args="(Element &amp;y)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_field_a_x_p_y.html#a41bf9f872e3af67d367637e745169dc7">Element</a>&amp; get </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_field_a_x_p_y.html#a41bf9f872e3af67d367637e745169dc7">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>y</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retrieve y. </p>
<p>Performs the delayed modding out if necessary </p>

</div>
</div>
<a class="anchor" id="a74a6228559b1446ff286bcc2df2c6fb9"></a><!-- doxytag: member="LinBox::FieldAXPY::assign" ref="a74a6228559b1446ff286bcc2df2c6fb9" args="(const Element y)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_field_a_x_p_y.html">FieldAXPY</a>&amp; assign </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_field_a_x_p_y.html#a41bf9f872e3af67d367637e745169dc7">Element</a>&#160;</td>
          <td class="paramname"><em>y</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Assign method. </p>
<p>Stores new field element for arithmetic. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>reference to self </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">y</td><td>constant reference to element a </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>field-axpy.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>