⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 block2d.html

📁 Matrix_Template_Library.rar c++矩阵模块库函数
💻 HTML
字号:
<HTML><!--  -- Copyright (c) 1998,1999  -- University of Notre Dame  --  -- Permission to use, copy, modify, distribute and sell this software  -- and its documentation for any purpose is hereby granted without fee,  -- provided that the above copyright notice appears in all copies and  -- that both that copyright notice and this permission notice appear  -- in supporting documentation.  The University of Notre Dame makes no  -- representations about the suitability of this software for any  -- purpose.  It is provided "as is" without express or implied warranty.  --  --><HEAD><TITLE>Description of block2D</TITLE></HEAD><BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b" 	ALINK="#ff0000"> <FONT FACE=Helvetica><!--end header--><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=2 WIDTH=100%><TR><TD><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%><TR><TD Align=left valign=middle width=440 rowspan=2><FONT FACE=verdana,arial,helvetica SIZE=+3 COLOR=#110088><B>block2D&#60;Block, OffsetGen&#62;</B></FONT></TD><TD valign=middle Align=right width=128 rowspan=2><A HREF="http://lsc.nd.edu/research/mtl"><IMG BORDER=0 SRC="./glossy-mtl-logo.jpg" height=48 ALT="[MTL Home]"></A></TD><TD Align=center width=280 nowrap><Font face=verdana,arial,helvetica size=+3><b>Programmers Guide</b></font></TD></TR><TR BGCOLOR='#2020b0'><TD HEIGHT=20 VALIGN='MIDDLE' NOWRAP align=center STYLE="font-family:verdana,arial,helvetica;font-weight:bold;">&nbsp;&nbsp;<A STYLE="text-decoration:none;color:white;font-family:verdana,arial,helvetica;font-weight:bold;" HREF="./table_of_contents.html">Contents</A>&nbsp;|&nbsp;<A STYLE="text-decoration:none;color:white;font-family:verdana,arial,helvetica;font-weight:bold;" HREF="./mtl_index.html">Index</A>&nbsp;|&nbsp;&nbsp;<A STYLE="text-decoration:none;color:white;font-family:verdana,arial,helvetica;font-weight:bold;" HREF="http://lsc.nd.edu/research/mtl/search.html">Search</A>&nbsp;</TD></TR></TABLE></TD></TR><TR><TD><Table Border=0 CellPadding=0 CellSpacing=0 width=100% cols=2><TR><TD Align=left><BR><TABLE BORDER=0 CellSpacing=0 CellPadding=0><TR><TD><Img src = "containers.gif" Alt="" WIDTH = "194"  HEIGHT = "38" ></TD></TR><TR><TD><Img src = "adaptors.gif" Alt="" WIDTH = "194"  HEIGHT = "38" ></TD></TR></TABLE></TD><TD Align=right><BR><TABLE BORDER=0 CellSpacing=0 CellPadding=0><TR><TD><Img src = "type.gif" Alt="" WIDTH = "194"  HEIGHT = "38" ></TD></TR></TABLE></TD></TR><TR><TD Align=left VAlign=top><b>Category</b>:containers,adaptors</TD><TD Align=right VAlign=top><b>Component type</b>:type</TD></TR></Table></TD></TR><TR><TD><IMG SRC="whitespace.gif" Alt="" WIDTH="32" HEIGHT="10" ALIGN="TOP"></TD></TR><TR BGCOLOR=#e0e0e0><TD VALIGN=BOTTOM><FONT FACE=arial,helvetica SIZE=+1><B>Description</B></FONT></TD></TR><TR><TD> For use in blocked algorithms with <A HREF="rectangle.html" >rectangle</A> <A HREF="dense.html" >dense</A> matrices. The blocks all have the same size (vs. variable sizes as in a partitioned <A HREF="matrix.html" >matrix</A>). The <A HREF="matrix.html" >matrix</A> objects for each block are not stored, they are generated on the fly as they are requested, and they are lightweight object on the stack so no overhead is incurred.  <p> The blocking size must divide evenly into the original <A HREF="matrix.html" >matrix</A> size. One good way to ensure this is to partition the original <A HREF="matrix.html" >matrix</A> into a main region that divides evenly and into the blocks, and 3 others edge regions that do not get blocked.  <p> Use the <A HREF="block_view.html" >block_view</A> type constructor and the blocked function to create matrices of this type.</TD></TR><TR><TD><IMG SRC="whitespace.gif" Alt="" WIDTH="32" HEIGHT="15" ALIGN="TOP"></TD></TR><TR BGCOLOR=#e0e0e0><TD VALIGN=BOTTOM><FONT FACE=arial,helvetica SIZE=+1><B>Example</B></FONT></TD></TR><TR><TD>In <A HREF=../../contrib/examples/blocked_matrix.cc>blocked_matrix.cc</A>:<PRE>  const int M = 4;  const int N = 4;  typedef matrix&lt;double,                 rectangle&lt;&gt;,                  dense&lt;&gt;,                  column_major &gt;::type Matrix;  Matrix A(M,N);  for (int i = 0; i &lt; M; ++i)    for (int j = 0; j &lt; N; ++j)      A(i, j) = i * N + j;  print_all_matrix(A);  block_view&lt;Matrix,2,2&gt;::type                     bA = blocked(A, blk&lt;2,2&gt;());  print_partitioned_matrix(bA);  block_view&lt;Matrix&gt;::type cA = blocked(A, 2, 2);  print_partitioned_by_column(cA);</PRE></TD></TR><TR><TD><IMG SRC="whitespace.gif" Alt="" WIDTH="32" HEIGHT="15" ALIGN="TOP"></TD></TR><TR BGCOLOR=#e0e0e0><TD VALIGN=BOTTOM><FONT FACE=arial,helvetica SIZE=+1><B>Definition</B></FONT></TD></TR><TR><TD><A HREF="block2D.h">block2D.h</A></TD></TR><TR><TD><IMG SRC="whitespace.gif" Alt="" WIDTH="32" HEIGHT="15" ALIGN="TOP"></TD></TR><TR BGCOLOR=#e0e0e0><TD VALIGN=BOTTOM><FONT FACE=arial,helvetica SIZE=+1><B>Template Parameters</B></FONT></TD></TR><TR><TD><BR><TABLE BORDER><TR><TH>Parameter</TH><TH>Description</TH><TH>Default</TH></TR><TR><TD><TT>Block</TT></TD><TD>The submatrix block, a <A HREF="dense.html" >dense</A> external <A HREF="matrix.html" >matrix</A>.</TD><TD><TT>&nbsp;</TT></TD></TR><TR><TD><TT>OffsetGen</TT></TD><TD>The <A HREF="Offset.html" >Offset</A> generator.</TD><TD><TT>&nbsp;</TT></TD></TR></TABLE></TD></TR><TR><TD><IMG SRC="whitespace.gif" Alt="" WIDTH="32" HEIGHT="15" ALIGN="TOP"></TD></TR><TR BGCOLOR=#e0e0e0><TD VALIGN=BOTTOM><FONT FACE=arial,helvetica SIZE=+1><B>Model of</B></FONT></TD></TR><TR><TD></TD></TR><TR><TD><IMG SRC="whitespace.gif" Alt="" WIDTH="32" HEIGHT="15" ALIGN="TOP"></TD></TR><TR BGCOLOR=#e0e0e0><TD VALIGN=BOTTOM><FONT FACE=arial,helvetica SIZE=+1><B>Members</B></FONT></TD></TR><TR><TD><TABLE BORDER><TR><TH>Member</TH><TH>Where defined</TH><TH>Description</TH></TR>    <TR><TD VALIGN="TOP"><TT>        <TT>self         </TT></TD>    <TD><FONT FACE=Times SIZE=3>      &nbsp;     </FONT></TD>    <TD><FONT FACE=Times SIZE=3>             &nbsp;      </FONT></TD>	    </TR>    <TR><TD VALIGN="TOP"><TT>        <TT>T         </TT></TD>    <TD><FONT FACE=Times SIZE=3>      &nbsp;     </FONT></TD>    <TD><FONT FACE=Times SIZE=3>             &nbsp;      </FONT></TD>	    </TR>    <TR><TD VALIGN="TOP"><TT>        <TT>enum      { M = 0, N = 0, BM = Block::M, BN = Block::N }     </TT></TD>    <TD><FONT FACE=Times SIZE=3>      &nbsp;     </FONT></TD>    <TD><FONT FACE=Times SIZE=3>             &nbsp;      </FONT></TD>	    </TR>    <TR><TD VALIGN="TOP"><TT>        <TT>size_type         </TT></TD>    <TD><FONT FACE=Times SIZE=3>      &nbsp;     </FONT></TD>    <TD><FONT FACE=Times SIZE=3>      The 1D container type      </FONT></TD>	    </TR>    <TR><TD VALIGN="TOP"><TT>        <TT>difference_type         </TT></TD>    <TD><FONT FACE=Times SIZE=3>      &nbsp;     </FONT></TD>    <TD><FONT FACE=Times SIZE=3>      The type for differences between iterators      </FONT></TD>	    </TR>    <TR><TD VALIGN="TOP"><TT>        <TT>block_dim_type         </TT></TD>    <TD><FONT FACE=Times SIZE=3>      &nbsp;     </FONT></TD>    <TD><FONT FACE=Times SIZE=3>             &nbsp;      </FONT></TD>	    </TR>    <TR><TD VALIGN="TOP"><TT>        <TT>Offset         </TT></TD>    <TD><FONT FACE=Times SIZE=3>      &nbsp;     </FONT></TD>    <TD><FONT FACE=Times SIZE=3>             &nbsp;      </FONT></TD>	    </TR>    <TR><TD VALIGN="TOP"><TT>        <TT>dim_type         </TT></TD>    <TD><FONT FACE=Times SIZE=3>      &nbsp;     </FONT></TD>    <TD><FONT FACE=Times SIZE=3>             &nbsp;      </FONT></TD>	    </TR>    <TR><TD VALIGN="TOP"><TT>        <TT>sparsity         </TT></TD>    <TD><FONT FACE=Times SIZE=3>      &nbsp;     </FONT></TD>    <TD><FONT FACE=Times SIZE=3>      This is a <A HREF="dense.html" >dense</A> 2D container      </FONT></TD>	    </TR>    <TR><TD VALIGN="TOP"><TT>        <TT>storage_loc         </TT></TD>    <TD><FONT FACE=Times SIZE=3>      &nbsp;     </FONT></TD>    <TD><FONT FACE=Times SIZE=3>      This has external storage      </FONT></TD>	    </TR>    <TR><TD VALIGN="TOP"><TT>        <TT>strideability         </TT></TD>    <TD><FONT FACE=Times SIZE=3>      &nbsp;     </FONT></TD>    <TD><FONT FACE=Times SIZE=3>      This is <A HREF="strideable.html" >strideable</A>      </FONT></TD>	    </TR>    <TR><TD VALIGN="TOP"><TT>        <TT>value_type         </TT></TD>    <TD><FONT FACE=Times SIZE=3>      &nbsp;     </FONT></TD>    <TD><FONT FACE=Times SIZE=3>      The 1D container type      </FONT></TD>	    </TR>    <TR><TD VALIGN="TOP"><TT>        <TT>reference         </TT></TD>    <TD><FONT FACE=Times SIZE=3>      &nbsp;     </FONT></TD>    <TD><FONT FACE=Times SIZE=3>      A reference to the value type      </FONT></TD>	    </TR>    <TR><TD VALIGN="TOP"><TT>        <TT>pointer         </TT></TD>    <TD><FONT FACE=Times SIZE=3>      &nbsp;     </FONT></TD>    <TD><FONT FACE=Times SIZE=3>      The type for pointers to the value type      </FONT></TD>	    </TR>    <TR><TD VALIGN="TOP"><TT>    template &#60;int isConst&#62;<br> class     <TT>__iterator         </TT></TD>    <TD><FONT FACE=Times SIZE=3>      &nbsp;     </FONT></TD>    <TD><FONT FACE=Times SIZE=3>      The iterator type      </FONT></TD>	    </TR>    <TR><TD VALIGN="TOP"><TT>        <TT>iterator         </TT></TD>    <TD><FONT FACE=Times SIZE=3>      &nbsp;     </FONT></TD>    <TD><FONT FACE=Times SIZE=3>             &nbsp;      </FONT></TD>	    </TR>    <TR><TD VALIGN="TOP"><TT>        <TT>const_iterator         </TT></TD>    <TD><FONT FACE=Times SIZE=3>      &nbsp;     </FONT></TD>    <TD><FONT FACE=Times SIZE=3>             &nbsp;      </FONT></TD>	    </TR>    <TR><TD VALIGN="TOP"><TT>        <TT>dyn_dim         </TT></TD>    <TD><FONT FACE=Times SIZE=3>      &nbsp;     </FONT></TD>    <TD><FONT FACE=Times SIZE=3>             &nbsp;      </FONT></TD>	    </TR>    <TR><TD VALIGN="TOP"><TT>        <TT>bdt         </TT></TD>    <TD><FONT FACE=Times SIZE=3>      &nbsp;     </FONT></TD>    <TD><FONT FACE=Times SIZE=3>             &nbsp;      </FONT></TD>	    </TR>    <TR><TD VALIGN="TOP"><TT>    template &#60;class TwoD&#62;<br>      <TT>block2D (TwoD&#38; x, dyn_dim b) </TT>            </TT></TD>    <TD><FONT FACE=Times SIZE=3>      &nbsp;     </FONT></TD>    <TD><FONT FACE=Times SIZE=3>      Constructor from underlying 2D container      </FONT></TD>	    </TR>    <TR><TD VALIGN="TOP"><TT>         <TT>block2D (const <A HREF="block2D.html" >block2D</A>&#38; x) </TT>            </TT></TD>    <TD><FONT FACE=Times SIZE=3>      &nbsp;     </FONT></TD>    <TD><FONT FACE=Times SIZE=3>      Copy Constructor      </FONT></TD>	    </TR>    <TR><TD VALIGN="TOP"><TT>     const <A HREF="block2D.html" >block2D</A>&#38;     <TT>operator= (const <A HREF="block2D.html" >block2D</A>&#38; x) </TT>            </TT></TD>    <TD><FONT FACE=Times SIZE=3>      &nbsp;     </FONT></TD>    <TD><FONT FACE=Times SIZE=3>             &nbsp;      </FONT></TD>	    </TR>    <TR><TD VALIGN="TOP"><TT>         <TT>block2D () </TT>            </TT></TD>    <TD><FONT FACE=Times SIZE=3>      &nbsp;     </FONT></TD>    <TD><FONT FACE=Times SIZE=3>      Default Constructor      </FONT></TD>	    </TR>    <TR><TD VALIGN="TOP"><TT>         <TT>~block2D () </TT>            </TT></TD>    <TD><FONT FACE=Times SIZE=3>      &nbsp;     </FONT></TD>    <TD><FONT FACE=Times SIZE=3>      Destructor      </FONT></TD>	    </TR>    <TR><TD VALIGN="TOP"><TT>     iterator     <TT>begin () </TT>            </TT></TD>    <TD><FONT FACE=Times SIZE=3>      &nbsp;     </FONT></TD>    <TD><FONT FACE=Times SIZE=3>      Return an iterator pointing to the first 1D container      </FONT></TD>	    </TR>    <TR><TD VALIGN="TOP"><TT>     iterator     <TT>end () </TT>            </TT></TD>    <TD><FONT FACE=Times SIZE=3>      &nbsp;     </FONT></TD>    <TD><FONT FACE=Times SIZE=3>      Return an iterator pointing past the end of the 2D container      </FONT></TD>	    </TR>    <TR><TD VALIGN="TOP"><TT>     const_iterator     <TT>begin () const</TT>            </TT></TD>    <TD><FONT FACE=Times SIZE=3>      &nbsp;     </FONT></TD>    <TD><FONT FACE=Times SIZE=3>      Return a const iterator pointing to the first 1D container      </FONT></TD>	    </TR>    <TR><TD VALIGN="TOP"><TT>     const_iterator     <TT>end () const</TT>            </TT></TD>    <TD><FONT FACE=Times SIZE=3>      &nbsp;     </FONT></TD>    <TD><FONT FACE=Times SIZE=3>      Return a const iterator pointing past the end of the 2D container      </FONT></TD>	    </TR>    <TR><TD VALIGN="TOP"><TT>     block_vector     <TT>operator[] (size_type i) </TT>            </TT></TD>    <TD><FONT FACE=Times SIZE=3>      &nbsp;     </FONT></TD>    <TD><FONT FACE=Times SIZE=3>      Return a reference to the ith 1D container      </FONT></TD>	    </TR>    <TR><TD VALIGN="TOP"><TT>     Block     <TT>operator() (size_type i, size_type j) </TT>            </TT></TD>    <TD><FONT FACE=Times SIZE=3>      &nbsp;     </FONT></TD>    <TD><FONT FACE=Times SIZE=3>      Return a reference to the (i,j) element, where (i,j) is in the 2D coordinate system      </FONT></TD>	    </TR>    <TR><TD VALIGN="TOP"><TT>     const Block     <TT>operator() (size_type i, size_type j) const</TT>            </TT></TD>    <TD><FONT FACE=Times SIZE=3>      &nbsp;     </FONT></TD>    <TD><FONT FACE=Times SIZE=3>      Return a const reference to the (i,j) element, where (i,j) is in the 2D coordinate system       </FONT></TD>	    </TR>    <TR><TD VALIGN="TOP"><TT>     size_type     <TT>ld () const</TT>            </TT></TD>    <TD><FONT FACE=Times SIZE=3>      &nbsp;     </FONT></TD>    <TD><FONT FACE=Times SIZE=3>      The leading <A HREF="dimension.html" >dimension</A>      </FONT></TD>	    </TR></TABLE></TD></TR><TR><TD><IMG SRC="whitespace.gif" Alt="" WIDTH="32" HEIGHT="15" ALIGN="TOP"></TD></TR><TR BGCOLOR=#e0e0e0><TD VALIGN=BOTTOM><FONT FACE=arial,helvetica SIZE=+1><B>New members</B></FONT></TD></TR><TR><TD></TD></TR><TR><TD><IMG SRC="whitespace.gif" Alt="" WIDTH="32" HEIGHT="15" ALIGN="TOP"></TD></TR><TR BGCOLOR=#e0e0e0><TD VALIGN=BOTTOM><FONT FACE=arial,helvetica SIZE=+1><B>Notes</B></FONT></TD></TR><TR><TD></TD></TR><TR><TD><IMG SRC="whitespace.gif" Alt="" WIDTH="32" HEIGHT="15" ALIGN="TOP"></TD></TR><TR BGCOLOR=#e0e0e0><TD VALIGN=BOTTOM><FONT FACE=arial,helvetica SIZE=+1><B>See also</B></FONT></TD></TR><TR><TD></TD></TR></TABLE><!--start footer--> <P><CENTER><CENTER><IMG SRC="./blue-bar.jpg" width=640></CENTER></CENTER><P><A HREF="http://www.nd.edu"><IMG BORDER=0 SRC="./ndtoclogo.gif" ALT="[MTL Home]" ALIGN=absmiddle></A></A><FONT SIZE="-2"><A HREF="../LICENSE.htm">Copyright &copy;1998,1999 University of Notre Dame.  All Rights Reserved.</FONT></FONT></BODY></HTML> 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -