📄 indexer.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 Indexer</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>Indexer</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;"> <A STYLE="text-decoration:none;color:white;font-family:verdana,arial,helvetica;font-weight:bold;" HREF="./table_of_contents.html">Contents</A> | <A STYLE="text-decoration:none;color:white;font-family:verdana,arial,helvetica;font-weight:bold;" HREF="./mtl_index.html">Index</A> | <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> </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 = "utilities.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 = "concept.gif" Alt="" WIDTH = "194" HEIGHT = "38" ></TD></TR></TABLE></TD></TR><TR><TD Align=left VAlign=top><b>Category</b>:utilities</TD><TD Align=right VAlign=top><b>Component type</b>:concept</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> <p>The utility concept is in charge of mapping indices from normal <A HREF="Matrix.html" >Matrix</A> coordinates into the TwoD coordinate system. Here is an example of such a mapping for a <A HREF="banded.html" >banded</A> <A HREF="matrix.html" >matrix</A>. <pre> [ 1 2 3 ] <A HREF="Matrix.html" >Matrix</A> = [ 4 5 6 ] [ 7 8 ] </pre> <p>The element whose value is 4 is at (1,1) in <A HREF="Matrix.html" >Matrix</A> coordinates. The TwoD mapping of this <A HREF="matrix.html" >matrix</A> would look as follows. <pre> [ 1 2 3 ] TwoD = [ 4 5 6 ] [ 7 8 ] </pre> <p>In TwoD coordinates the 4 is at (1,0). <p>There are three models of the <A HREF="Indexer.html" >Indexer</A> concept, and each one provides a different mapping. There is the <A HREF="rect_indexer.html" >rect_indexer</A>, the <A HREF="banded_indexer.html" >banded_indexer</A>, and the <A HREF="diagonal_indexer.html" >diagonal_indexer</A>. Used in oned_part, inside its iterators Called from by <A HREF="matrix_implementation.html" >matrix_implementation</A>::operator()(i,j) Called from by <tt><A HREF="matrix_implementation.html" >matrix_implementation</A>::operator()(i,j)</tt></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>Refinement of</B></FONT></TD></TR><TR><TD></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>Associated types</B></FONT></TD></TR><TR><TD><TABLE BORDER><TR><TH>Concept</TH><TH>Type name</TH><TH>Description</TH></TR> <TR><TD VALIGN="TOP"> <TT>size_type </TT> </TD> <TD VALIGN="TOP"> <TT>X::M</TT> </TD> <TD><FONT FACE=Times SIZE=3> </FONT></TD> </TR> <TR><TD VALIGN="TOP"> <TT>size_type </TT> </TD> <TD VALIGN="TOP"> <TT>X::N</TT> </TD> <TD><FONT FACE=Times SIZE=3> </FONT></TD> </TR> <TR><TD VALIGN="TOP"> <TT>Dimension </TT> </TD> <TD VALIGN="TOP"> <TT>X::dim_type</TT> </TD> <TD><FONT FACE=Times SIZE=3> </FONT></TD> </TR> <TR><TD VALIGN="TOP"> <TT>Dimension </TT> </TD> <TD VALIGN="TOP"> <TT>X::dyn_dim</TT> </TD> <TD><FONT FACE=Times SIZE=3> </FONT></TD> </TR> <TR><TD VALIGN="TOP"> <TT>Dimension </TT> </TD> <TD VALIGN="TOP"> <TT>X::band_type</TT> </TD> <TD><FONT FACE=Times SIZE=3> </FONT></TD> </TR> <TR><TD VALIGN="TOP"> <TT>Tag </TT> </TD> <TD VALIGN="TOP"> <TT>X::orientation</TT> </TD> <TD><FONT FACE=Times SIZE=3> See <A HREF="matrix_traits.html" >matrix_traits</A> </FONT></TD> </TR> <TR><TD VALIGN="TOP"> <TT>Tag </TT> </TD> <TD VALIGN="TOP"> <TT>X::shape</TT> </TD> <TD><FONT FACE=Times SIZE=3> See <A HREF="matrix_traits.html" >matrix_traits</A> </FONT></TD> </TR> <TR><TD VALIGN="TOP"> <TT><A HREF="Indexer.html" >Indexer</A> </TT> </TD> <TD VALIGN="TOP"> <TT>X::transpose_type</TT> </TD> <TD><FONT FACE=Times SIZE=3> </FONT></TD> </TR> <TR><TD VALIGN="TOP"> <TT><A HREF="Indexer.html" >Indexer</A> </TT> </TD> <TD VALIGN="TOP"> <TT>X::strided_type</TT> </TD> <TD><FONT FACE=Times SIZE=3> </FONT></TD> </TR> <TR><TD VALIGN="TOP"> <TT><A HREF="OneDIndexer.html" >OneDIndexer</A> </TT> </TD> <TD VALIGN="TOP"> <TT>X::oned_indexer</TT> </TD> <TD><FONT FACE=Times SIZE=3> </FONT></TD> </TR> <TR><TD VALIGN="TOP"> <TT>Orienter </TT> </TD> <TD VALIGN="TOP"> <TT>X::orienter</TT> </TD> <TD><FONT FACE=Times SIZE=3> </FONT></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>Notations</B></FONT></TD></TR><TR><TD></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>Definitions</B></FONT></TD></TR><TR><TD><UL></UL></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>Expression semantics</B></FONT></TD></TR><TR><TD><TABLE BORDER><TR><TH>Description</TH><TH>Expression</TH><TH>Semantics</TH></TR> <TR> <TD><FONT FACE=Times SIZE=3> Default Constructor </FONT></TD> <TD VALIGN="TOP"> <TT> X() or X A;</TT> </TD> <TD VALIGN="TOP"> <TT> </TT> </TD> </TR> <TR> <TD><FONT FACE=Times SIZE=3> Construct from <A HREF="Matrix.html" >Matrix</A> <A HREF="dimension.html" >dimension</A> </FONT></TD> <TD VALIGN="TOP"> <TT> X(dim) or X A(dim)</TT> </TD> <TD VALIGN="TOP"> <TT> </TT> </TD> </TR> <TR> <TD><FONT FACE=Times SIZE=3> Construct from <A HREF="Matrix.html" >Matrix</A> <A HREF="dimension.html" >dimension</A> and bandwidth </FONT></TD> <TD VALIGN="TOP"> <TT> X(dim, bw) or X A(dim, bw)</TT> </TD> <TD VALIGN="TOP"> <TT> </TT> </TD> </TR> <TR> <TD><FONT FACE=Times SIZE=3> Copy Constructor </FONT></TD> <TD VALIGN="TOP"> <TT> X(x) or X A(x)</TT> </TD> <TD VALIGN="TOP"> <TT> </TT> </TD> </TR> <TR> <TD><FONT FACE=Times SIZE=3> Constructor from other <A HREF="Indexer.html" >Indexer</A> </FONT></TD> <TD VALIGN="TOP"> <TT> X(x) or X A(x)</TT> </TD> <TD VALIGN="TOP"> <TT> </TT> </TD> </TR> <TR> <TD><FONT FACE=Times SIZE=3> Construct a <A HREF="OneDIndexer.html" >OneDIndexer</A> </FONT></TD> <TD VALIGN="TOP"> <TT> x.deref(i)</TT> </TD> <TD VALIGN="TOP"> <TT> </TT> </TD> </TR> <TR> <TD><FONT FACE=Times SIZE=3> Map the point from <A HREF="Matrix.html" >Matrix</A> coordinates to TwoD coordinates </FONT></TD> <TD VALIGN="TOP"> <TT> x.at(p)</TT> </TD> <TD VALIGN="TOP"> <TT> </TT> </TD> </TR> <TR> <TD><FONT FACE=Times SIZE=3> Map the point from <A HREF="Matrix.html" >Matrix</A> coordinates to TwoD coordinates </FONT></TD> <TD VALIGN="TOP"> <TT> x.at(p)</TT> </TD> <TD VALIGN="TOP"> <TT> </TT> </TD> </TR> <TR> <TD><FONT FACE=Times SIZE=3> Calculate the <A HREF="dimension.html" >dimension</A> that the TwoD container should have </FONT></TD> <TD VALIGN="TOP"> <TT> X::twod_dim(dim)</TT> </TD> <TD VALIGN="TOP"> <TT> </TT> </TD> </TR> <TR> <TD><FONT FACE=Times SIZE=3> Calculate the bandwith that the TwoD container should have </FONT></TD> <TD VALIGN="TOP"> <TT> X::twod_band(dim)</TT> </TD> <TD VALIGN="TOP"> <TT> </TT> </TD> </TR> <TR> <TD><FONT FACE=Times SIZE=3> Number of rows </FONT></TD> <TD VALIGN="TOP"> <TT> x.nrows()</TT> </TD> <TD VALIGN="TOP"> <TT> </TT> </TD> </TR> <TR> <TD><FONT FACE=Times SIZE=3> Number of columns </FONT></TD> <TD VALIGN="TOP"> <TT> x.ncols()</TT> </TD> <TD VALIGN="TOP"> <TT> </TT> </TD> </TR> <TR> <TD><FONT FACE=Times SIZE=3> Bandwidth sub </FONT></TD> <TD VALIGN="TOP"> <TT> x.sub()</TT> </TD> <TD VALIGN="TOP"> <TT> </TT> </TD> </TR> <TR> <TD><FONT FACE=Times SIZE=3> Bandwidth super </FONT></TD> <TD VALIGN="TOP"> <TT> x.super()</TT> </TD> <TD VALIGN="TOP"> <TT> </TT> </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>Function specification</B></FONT></TD></TR><TR><TD><TABLE BORDER><TR><TH>Name</TH><TH>Function</TH><TH>Complexity</TH></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>Invariants</B></FONT></TD></TR><TR><TD></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>Models</B></FONT></TD></TR><TR><TD><UL><LI> <A HREF="rect_indexer.html" >rect_indexer</A><LI> <A HREF="banded_indexer.html" >banded_indexer</A><LI> <A HREF="diagonal_indexer.html" >diagonal_indexer</A></UL></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 ©1998,1999 University of Notre Dame. All Rights Reserved.</FONT></FONT></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -