📄 banded.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 banded</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>banded<int MemLoc=internal></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 = "containers.gif" Alt="" WIDTH = "194" HEIGHT = "38" ></TD></TR><TR><TD><Img src = "selectors.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,selectors</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> <h4>Shape Type Selectors</h4> A <A HREF="banded.html" >banded</A> shape <A HREF="matrix.html" >matrix</A> is one in which non-zero <A HREF="matrix.html" >matrix</A> elements only appear within a ``band'' of a <A HREF="matrix.html" >matrix</A>. The bandwidth of a <A HREF="matrix.html" >matrix</A> is described by the number of diagonals in the band that are below the main <A HREF="diagonal.html" >diagonal</A>, refered to as the <i>sub</i> diagonals, and the number of diagonals in the band above the main <A HREF="diagonal.html" >diagonal</A>, refered to as the <i>super</i> diagonals. The following is an example of a <A HREF="matrix.html" >matrix</A> with a bandwidth of (1,2). <pre> [ 1 2 3 0 0 ] [ 4 5 6 7 0 ] [ 0 8 9 10 11 ] [ 0 0 12 13 14 ] [ 0 0 0 15 16 ] </pre> There are many storage types that can be used to efficiently represent <A HREF="banded.html" >banded</A> matrices. The MTL storage types that can be used are <tt><A HREF="banded.html" >banded</A></tt>, <tt><A HREF="packed.html" >packed</A></tt>, <tt><A HREF="banded_view.html" >banded_view</A></tt>, and <tt><A HREF="array.html" >array</A></tt>. Here are some examples of creating <A HREF="banded.html" >banded</A> <A HREF="matrix.html" >matrix</A> types: <pre> typedef <A HREF="matrix.html" >matrix</A> < double, <A HREF="banded.html" >banded</A><>, <A HREF="packed.html" >packed</A><>, <A HREF="column_major.html" >column_major</A> >::type BLAS_Packed; typedef <A HREF="matrix.html" >matrix</A> < double, <A HREF="banded.html" >banded</A><>, <A HREF="banded.html" >banded</A><>, <A HREF="column_major.html" >column_major</A> >::type BLAS_Banded; </pre> <h4>Storage Type Selectors</h4> <tt><A HREF="banded.html" >banded</A></tt> is also the type selectors for the <A HREF="banded.html" >banded</A> storage format. This storage format is equivalent to the <A HREF="banded.html" >banded</A> storage used in the BLAS and LAPACK. Similar to the <tt><A HREF="dense.html" >dense</A></tt> storage format, a single contiguous chunk of memory is allocated. The <A HREF="banded.html" >banded</A> storage format maps the bands of the <A HREF="matrix.html" >matrix</A> to a twod-<A HREF="array.html" >array</A> of <A HREF="dimension.html" >dimension</A> (sub + super + 1) by min(M, N + sub). In MTL the 2D <A HREF="array.html" >array</A> can be row or column major (for the BLAS it is always column major). The twod-<A HREF="array.html" >array</A> is then in turn mapped the the linear memory space of the single chunk of memory. The following is an example <A HREF="banded.html" >banded</A> <A HREF="matrix.html" >matrix</A> with the mapping to the row-major and column-major 2D arrays. The x's represent memory locations that are not used. <pre> [ 1 2 3 0 0 0 ] [ 4 5 6 7 0 0 ] [ 0 8 9 10 11 0 ] [ 0 0 12 13 14 15 ] [ 0 0 0 16 17 18 ] [ 0 0 0 0 19 20 ] row-major [ 1 2 3 x ] [ 4 5 6 7 ] [ 8 9 10 11 ] [ 12 13 14 15 ] [ x 16 17 18 ] [ x x 19 20 ] column-major [ x x 3 7 11 15 ] [ x 2 6 10 14 18 ] [ 1 5 9 13 17 20 ] [ 4 8 12 16 19 x ] </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>Example</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>Definition</B></FONT></TD></TR><TR><TD><A HREF="../../mtl/matrix.h">matrix.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>MemLoc</TT></TD><TD>Specify whether the memory used is "owned" by the <A HREF="matrix.html" >matrix</A> or if it was provided to the <A HREF="matrix.html" >matrix</A> from some external source (with a pointer to some data) </TD><TD><TT> internal</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>size_type </TT></TD> <TD><FONT FACE=Times SIZE=3> </FONT></TD> <TD><FONT FACE=Times SIZE=3> </FONT></TD> </TR> <TR><TD VALIGN="TOP"><TT> <TT>enum { id = BAND, oned_id, uplo, ext=MemLoc, M=0, N=0, issparse=0, index } </TT></TD> <TD><FONT FACE=Times SIZE=3> </FONT></TD> <TD><FONT FACE=Times SIZE=3> </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 ©1998,1999 University of Notre Dame. All Rights Reserved.</FONT></FONT></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -