Sophie

Sophie

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

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: ComposeOwner&lt; _Blackbox1, _Blackbox2 &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_compose_owner.html">ComposeOwner</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">ComposeOwner&lt; _Blackbox1, _Blackbox2 &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__blackbox.html">blackbox</a></div></div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="LinBox::ComposeOwner" --><!-- doxytag: inherits="LinBox::BlackboxInterface" -->
<p>Blackbox of a product: <img class="formulaInl" alt="$C = AB$" src="form_23.png"/>, i.e <img class="formulaInl" alt="$Cx \gets A(Bx)$" src="form_24.png"/>.  
 <a href="class_lin_box_1_1_compose_owner.html#details">More...</a></p>

<p><code>#include &lt;compose.h&gt;</code></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png"/> Inheritance diagram for ComposeOwner&lt; _Blackbox1, _Blackbox2 &gt;:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
 <div class="center">
  <img src="class_lin_box_1_1_compose_owner.png" usemap="#ComposeOwner&lt; _Blackbox1, _Blackbox2 &gt;_map" alt=""/>
  <map id="ComposeOwner&lt; _Blackbox1, _Blackbox2 &gt;_map" name="ComposeOwner&lt; _Blackbox1, _Blackbox2 &gt;_map">
<area href="class_lin_box_1_1_blackbox_interface.html" title="This blackbox base class exists solely to aid documentation organization." alt="BlackboxInterface" shape="rect" coords="0,0,265,24"/>
</map>
 </div></div>
<table class="memberdecls">
<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_compose_owner.html#a818a11e57c3c3bc6ad0567ff6838475e">ComposeOwner</a> (const Blackbox1 &amp;A, const Blackbox2 &amp;B)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor of C := A*B from blackbox matrices A and B.  <a href="#a818a11e57c3c3bc6ad0567ff6838475e"></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_compose_owner.html#ac179ab4797ea089d20b3b0256b7981c2">ComposeOwner</a> (const Blackbox1 *A_data, const Blackbox2 *B_data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor of C := (*A_data)*(*B_data).  <a href="#ac179ab4797ea089d20b3b0256b7981c2"></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_compose_owner.html#ab1c19ab64baebe29211fe20d5d40861e">ComposeOwner</a> (const <a class="el" href="class_lin_box_1_1_compose_owner.html">ComposeOwner</a>&lt; Blackbox1, Blackbox2 &gt; &amp;Mat)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor.  <a href="#ab1c19ab64baebe29211fe20d5d40861e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad856016bb88bc227abc82d87d0b43559"></a><!-- doxytag: member="LinBox::ComposeOwner::~ComposeOwner" ref="ad856016bb88bc227abc82d87d0b43559" args="()" -->
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_compose_owner.html#ad856016bb88bc227abc82d87d0b43559">~ComposeOwner</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class OutVector , class InVector &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">OutVector &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_compose_owner.html#aa37d57c030b1db0c198478268aa3cc15">apply</a> (OutVector &amp;y, const InVector &amp;x) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Matrix * column vector product.  <a href="#aa37d57c030b1db0c198478268aa3cc15"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class OutVector , class InVector &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">OutVector &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_compose_owner.html#ac1a9817268900b78faa5a6eb17d9badf">applyTranspose</a> (OutVector &amp;y, const InVector &amp;x) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">row vector * matrix product <img class="formulaInl" alt="$y= (A \times B)^T \cdot x$" src="form_28.png"/>.  <a href="#ac1a9817268900b78faa5a6eb17d9badf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a09202c1aaa6c5a4c8e69a2339a27bcfe"></a><!-- doxytag: member="LinBox::ComposeOwner::rowdim" ref="a09202c1aaa6c5a4c8e69a2339a27bcfe" args="(void) const " -->
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_compose_owner.html#a09202c1aaa6c5a4c8e69a2339a27bcfe">rowdim</a> (void) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of rows. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a63d5df22c5024e979e3462155d0fe814"></a><!-- doxytag: member="LinBox::ComposeOwner::coldim" ref="a63d5df22c5024e979e3462155d0fe814" args="(void) const " -->
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_compose_owner.html#a63d5df22c5024e979e3462155d0fe814">coldim</a> (void) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of columns. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a66be394bace6f92c18729a119581d7bd"></a><!-- doxytag: member="LinBox::ComposeOwner::field" ref="a66be394bace6f92c18729a119581d7bd" args="() const " -->
const Field &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_compose_owner.html#a66be394bace6f92c18729a119581d7bd">field</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The field. <br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><h3>template&lt;class _Blackbox1, class _Blackbox2&gt;<br/>
class LinBox::ComposeOwner&lt; _Blackbox1, _Blackbox2 &gt;</h3>

<p>Blackbox of a product: <img class="formulaInl" alt="$C = AB$" src="form_23.png"/>, i.e <img class="formulaInl" alt="$Cx \gets A(Bx)$" src="form_24.png"/>. </p>
<p>This is a class that multiplies two matrices by implementing an apply method that calls the apply methods of both of the consituent matrices, one after the other.</p>
<p>This class, like the Black Box archetype from which it is derived, is templatized by the vector type to which the matrix is applied. Both constituent matrices must also use this same vector type. For specification of the blackbox members see <a class="el" href="class_lin_box_1_1_blackbox_archetype.html">BlackboxArchetype</a>.</p>
<p><b> Template parameter:</b> must meet the <a class="el" href="group___vector.html">vector</a> requirement. General case </p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a818a11e57c3c3bc6ad0567ff6838475e"></a><!-- doxytag: member="LinBox::ComposeOwner::ComposeOwner" ref="a818a11e57c3c3bc6ad0567ff6838475e" args="(const Blackbox1 &amp;A, const Blackbox2 &amp;B)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_compose_owner.html">ComposeOwner</a> </td>
          <td>(</td>
          <td class="paramtype">const Blackbox1 &amp;&#160;</td>
          <td class="paramname"><em>A</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Blackbox2 &amp;&#160;</td>
          <td class="paramname"><em>B</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor of C := A*B from blackbox matrices A and B. </p>
<p>Build the product A*B of any two black box matrices of compatible dimensions. Requires A.coldim() equals B.rowdim(). </p>

</div>
</div>
<a class="anchor" id="ac179ab4797ea089d20b3b0256b7981c2"></a><!-- doxytag: member="LinBox::ComposeOwner::ComposeOwner" ref="ac179ab4797ea089d20b3b0256b7981c2" args="(const Blackbox1 *A_data, const Blackbox2 *B_data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_compose_owner.html">ComposeOwner</a> </td>
          <td>(</td>
          <td class="paramtype">const Blackbox1 *&#160;</td>
          <td class="paramname"><em>A_data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Blackbox2 *&#160;</td>
          <td class="paramname"><em>B_data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor of C := (*A_data)*(*B_data). </p>
<p>This constructor creates a matrix that is a product of two black box matrices: A*B from pointers to them. </p>

</div>
</div>
<a class="anchor" id="ab1c19ab64baebe29211fe20d5d40861e"></a><!-- doxytag: member="LinBox::ComposeOwner::ComposeOwner" ref="ab1c19ab64baebe29211fe20d5d40861e" args="(const ComposeOwner&lt; Blackbox1, Blackbox2 &gt; &amp;Mat)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_compose_owner.html">ComposeOwner</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_compose_owner.html">ComposeOwner</a>&lt; Blackbox1, Blackbox2 &gt; &amp;&#160;</td>
          <td class="paramname"><em>Mat</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Copy constructor. </p>
<p>Copies the composed matrix (a small handle). The underlying two matrices are not copied. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">M</td><td>matrix to be copied. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="aa37d57c030b1db0c198478268aa3cc15"></a><!-- doxytag: member="LinBox::ComposeOwner::apply" ref="aa37d57c030b1db0c198478268aa3cc15" args="(OutVector &amp;y, const InVector &amp;x) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">OutVector&amp; apply </td>
          <td>(</td>
          <td class="paramtype">OutVector &amp;&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const InVector &amp;&#160;</td>
          <td class="paramname"><em>x</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Matrix * column vector product. </p>
<p><img class="formulaInl" alt="$ y= (A\cdot B) \cdot x.$" src="form_27.png"/> Applies B, then A. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>reference to vector y containing output. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>constant reference to vector to contain input </td></tr>
    <tr><td class="paramname">y</td><td>result </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ac1a9817268900b78faa5a6eb17d9badf"></a><!-- doxytag: member="LinBox::ComposeOwner::applyTranspose" ref="ac1a9817268900b78faa5a6eb17d9badf" args="(OutVector &amp;y, const InVector &amp;x) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">OutVector&amp; applyTranspose </td>
          <td>(</td>
          <td class="paramtype">OutVector &amp;&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const InVector &amp;&#160;</td>
          <td class="paramname"><em>x</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>row vector * matrix product <img class="formulaInl" alt="$y= (A \times B)^T \cdot x$" src="form_28.png"/>. </p>
<p>Applies A^t then B^t. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>reference to vector y containing output. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>constant reference to vector to contain input </td></tr>
    <tr><td class="paramname">y</td><td></td></tr>
  </table>
  </dd>
</dl>

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