2
0
mirror of https://github.com/boostorg/ublas.git synced 2026-02-21 03:22:14 +00:00
Files
ublas/doc/doxyfiles/html/a00641_source.html
David Bellot 64ba5b055d new doxyfiles
svn path=/trunk/libs/numeric/ublas/; revision=75573
2011-11-20 14:50:03 +00:00

2023 lines
320 KiB
HTML

<!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>Boost.uBlas: vector.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.7.3 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<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 id="projectlogo"><img alt="Logo" src="logo boost ublas.png"></td>
<td style="padding-left: 0.5em;">
<div id="projectname">Boost.uBlas&#160;<span id="projectnumber">1.49</span></div>
<div id="projectbrief">Linear Algebra in C++: matrices, vectors and numeric algorithms</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="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li id="searchli">
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('a00641.html','');
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<h1>vector.hpp</h1> </div>
</div>
<div class="contents">
<a href="a00641.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">// Copyright (c) 2000-2011 Joerg Walter, Mathias Koch, David Bellot</span>
<a name="l00002"></a>00002 <span class="comment">//</span>
<a name="l00003"></a>00003 <span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
<a name="l00004"></a>00004 <span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
<a name="l00005"></a>00005 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
<a name="l00006"></a>00006
<a name="l00007"></a>00007 <span class="preprocessor">#ifndef _BOOST_UBLAS_VECTOR_</span>
<a name="l00008"></a>00008 <span class="preprocessor"></span><span class="preprocessor">#define _BOOST_UBLAS_VECTOR_</span>
<a name="l00009"></a>00009 <span class="preprocessor"></span>
<a name="l00010"></a>00010 <span class="preprocessor">#include &lt;boost/numeric/ublas/storage.hpp&gt;</span>
<a name="l00011"></a>00011 <span class="preprocessor">#include &lt;boost/numeric/ublas/vector_expression.hpp&gt;</span>
<a name="l00012"></a>00012 <span class="preprocessor">#include &lt;boost/numeric/ublas/detail/vector_assign.hpp&gt;</span>
<a name="l00013"></a>00013 <span class="preprocessor">#include &lt;boost/serialization/collection_size_type.hpp&gt;</span>
<a name="l00014"></a>00014 <span class="preprocessor">#include &lt;boost/serialization/nvp.hpp&gt;</span>
<a name="l00015"></a>00015
<a name="l00016"></a>00016
<a name="l00017"></a>00017 <span class="comment">// Iterators based on ideas of Jeremy Siek</span>
<a name="l00018"></a>00018
<a name="l00019"></a>00019 <span class="keyword">namespace </span>boost { <span class="keyword">namespace </span>numeric { <span class="keyword">namespace </span>ublas {
<a name="l00020"></a>00020
<a name="l00030"></a>00030 <span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keyword">class</span> A&gt;
<a name="l00031"></a><a class="code" href="a00481.html">00031</a> <span class="keyword">class </span><a class="code" href="a00481.html" title="A dense vector of values of type T.">vector</a>:
<a name="l00032"></a>00032 <span class="keyword">public</span> <a class="code" href="a00506.html" title="Base class for Vector container models.">vector_container</a>&lt;vector&lt;T, A&gt; &gt; {
<a name="l00033"></a>00033
<a name="l00034"></a><a class="code" href="a00481.html#a8e91c23097fdfba25cce77f82e094dea">00034</a> <span class="keyword">typedef</span> <a class="code" href="a00481.html" title="A dense vector of values of type T.">vector&lt;T, A&gt;</a> <a class="code" href="a00481.html#a8e91c23097fdfba25cce77f82e094dea">self_type</a>;
<a name="l00035"></a>00035 <span class="keyword">public</span>:
<a name="l00036"></a>00036 <span class="preprocessor">#ifdef BOOST_UBLAS_ENABLE_PROXY_SHORTCUTS</span>
<a name="l00037"></a>00037 <span class="preprocessor"></span> <span class="keyword">using</span> <a class="code" href="a00506.html" title="Base class for Vector container models.">vector_container&lt;self_type&gt;::operator </a>();
<a name="l00038"></a>00038 <span class="preprocessor">#endif</span>
<a name="l00039"></a>00039 <span class="preprocessor"></span>
<a name="l00040"></a><a class="code" href="a00481.html#a738b42501164c4bf04477aeb866f2928">00040</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> A::size_type <a class="code" href="a00481.html#a738b42501164c4bf04477aeb866f2928">size_type</a>;
<a name="l00041"></a><a class="code" href="a00481.html#a30f565fa5b60bbd5be461cd944d70166">00041</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> A::difference_type <a class="code" href="a00481.html#a30f565fa5b60bbd5be461cd944d70166">difference_type</a>;
<a name="l00042"></a><a class="code" href="a00481.html#a676ded0b5b43617c292d2564eabd0040">00042</a> <span class="keyword">typedef</span> T <a class="code" href="a00481.html#a676ded0b5b43617c292d2564eabd0040">value_type</a>;
<a name="l00043"></a><a class="code" href="a00481.html#af22dff817d4a7b6366a1c525b2605d0a">00043</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00465.html#a08949c1a73f05352f6251c84ba2862eb">type_traits&lt;T&gt;::const_reference</a> <a class="code" href="a00481.html#af22dff817d4a7b6366a1c525b2605d0a">const_reference</a>;
<a name="l00044"></a><a class="code" href="a00481.html#a6aebdce7445c7a3fd99acfe776b786f7">00044</a> <span class="keyword">typedef</span> T &amp;<a class="code" href="a00481.html#a6aebdce7445c7a3fd99acfe776b786f7">reference</a>;
<a name="l00045"></a><a class="code" href="a00481.html#a65d2d017e9a37d6f689b2dfb96998941">00045</a> <span class="keyword">typedef</span> T *<a class="code" href="a00481.html#a65d2d017e9a37d6f689b2dfb96998941">pointer</a>;
<a name="l00046"></a><a class="code" href="a00481.html#aed4961c84062e6300d2485181b005da7">00046</a> <span class="keyword">typedef</span> <span class="keyword">const</span> T *<a class="code" href="a00481.html#aed4961c84062e6300d2485181b005da7">const_pointer</a>;
<a name="l00047"></a><a class="code" href="a00481.html#a4b017fbba268675224aa85dbbd99d7d9">00047</a> <span class="keyword">typedef</span> A <a class="code" href="a00481.html#a4b017fbba268675224aa85dbbd99d7d9">array_type</a>;
<a name="l00048"></a><a class="code" href="a00481.html#aa719ce379bdca8d749dc45deb8dd40a4">00048</a> <span class="keyword">typedef</span> <span class="keyword">const</span> <a class="code" href="a00531.html">vector_reference&lt;const self_type&gt;</a> <a class="code" href="a00481.html#aa719ce379bdca8d749dc45deb8dd40a4">const_closure_type</a>;
<a name="l00049"></a><a class="code" href="a00481.html#aeb2397308be8751c95e1d1f6d763ab8e">00049</a> <span class="keyword">typedef</span> <a class="code" href="a00531.html">vector_reference&lt;self_type&gt;</a> <a class="code" href="a00481.html#aeb2397308be8751c95e1d1f6d763ab8e">closure_type</a>;
<a name="l00050"></a><a class="code" href="a00481.html#a02b06259c875aa24d930fbe49d4fa977">00050</a> <span class="keyword">typedef</span> <a class="code" href="a00481.html">self_type</a> <a class="code" href="a00481.html#a02b06259c875aa24d930fbe49d4fa977">vector_temporary_type</a>;
<a name="l00051"></a><a class="code" href="a00481.html#a763f08245549e265ded4e36288c06839">00051</a> <span class="keyword">typedef</span> <a class="code" href="a00083.html">dense_tag</a> <a class="code" href="a00481.html#a763f08245549e265ded4e36288c06839">storage_category</a>;
<a name="l00052"></a>00052
<a name="l00053"></a>00053 <span class="comment">// Construction and destruction</span>
<a name="l00054"></a>00054
<a name="l00057"></a>00057 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00058"></a><a class="code" href="a00481.html#a477a17fb1a95d016e4465de7ae9f7bd0">00058</a> <a class="code" href="a00481.html#a477a17fb1a95d016e4465de7ae9f7bd0" title="Constructor of a vector By default it is empty, i.e. size()==0.">vector</a> ():
<a name="l00059"></a>00059 <a class="code" href="a00506.html" title="Base class for Vector container models.">vector_container</a>&lt;<a class="code" href="a00481.html">self_type</a>&gt; (),
<a name="l00060"></a>00060 <a class="code" href="a00481.html#aa26cf7b9be0ccf4587d6bc4b92bfdf1f">data_</a> () {}
<a name="l00061"></a>00061
<a name="l00065"></a>00065 <span class="keyword">explicit</span> <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00066"></a><a class="code" href="a00481.html#ae75b77993f678047c69b985f8450edc0">00066</a> <a class="code" href="a00481.html#a477a17fb1a95d016e4465de7ae9f7bd0" title="Constructor of a vector By default it is empty, i.e. size()==0.">vector</a> (<a class="code" href="a00481.html#a738b42501164c4bf04477aeb866f2928">size_type</a> <a class="code" href="a00481.html#a1b9ef7522219d74ebd27bab25e4b6841" title="Return the size of the vector.">size</a>):
<a name="l00067"></a>00067 <a class="code" href="a00506.html" title="Base class for Vector container models.">vector_container</a>&lt;<a class="code" href="a00481.html">self_type</a>&gt; (),
<a name="l00068"></a>00068 <a class="code" href="a00481.html#aa26cf7b9be0ccf4587d6bc4b92bfdf1f">data_</a> (size) {
<a name="l00069"></a>00069 }
<a name="l00070"></a>00070
<a name="l00076"></a>00076 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00077"></a><a class="code" href="a00481.html#aa2cdc17765d1689ac52d261dcc123724">00077</a> <a class="code" href="a00481.html#a477a17fb1a95d016e4465de7ae9f7bd0" title="Constructor of a vector By default it is empty, i.e. size()==0.">vector</a> (<a class="code" href="a00481.html#a738b42501164c4bf04477aeb866f2928">size_type</a> <a class="code" href="a00481.html#a1b9ef7522219d74ebd27bab25e4b6841" title="Return the size of the vector.">size</a>, <span class="keyword">const</span> <a class="code" href="a00040.html">array_type</a> &amp;<a class="code" href="a00481.html#a941dea529f7d464d5f044657528c4922" title="Return a const reference to the container. Useful to access data directly for specific type of contai...">data</a>):
<a name="l00078"></a>00078 <a class="code" href="a00506.html" title="Base class for Vector container models.">vector_container</a>&lt;<a class="code" href="a00481.html">self_type</a>&gt; (),
<a name="l00079"></a>00079 <a class="code" href="a00481.html#aa26cf7b9be0ccf4587d6bc4b92bfdf1f">data_</a> (data) {}
<a name="l00080"></a>00080
<a name="l00084"></a>00084 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00085"></a><a class="code" href="a00481.html#a2c095b29597c40a1695c26486f34edba">00085</a> <a class="code" href="a00481.html#a477a17fb1a95d016e4465de7ae9f7bd0" title="Constructor of a vector By default it is empty, i.e. size()==0.">vector</a> (<span class="keyword">const</span> <a class="code" href="a00040.html">array_type</a> &amp;<a class="code" href="a00481.html#a941dea529f7d464d5f044657528c4922" title="Return a const reference to the container. Useful to access data directly for specific type of contai...">data</a>):
<a name="l00086"></a>00086 <a class="code" href="a00506.html" title="Base class for Vector container models.">vector_container</a>&lt;<a class="code" href="a00481.html">self_type</a>&gt; (),
<a name="l00087"></a>00087 <a class="code" href="a00481.html#aa26cf7b9be0ccf4587d6bc4b92bfdf1f">data_</a> (data) {}
<a name="l00088"></a>00088
<a name="l00092"></a>00092 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00093"></a><a class="code" href="a00481.html#a812bdffb89c10f69cc9af3963cfb02ea">00093</a> <a class="code" href="a00481.html#a477a17fb1a95d016e4465de7ae9f7bd0" title="Constructor of a vector By default it is empty, i.e. size()==0.">vector</a> (<a class="code" href="a00481.html#a738b42501164c4bf04477aeb866f2928">size_type</a> <a class="code" href="a00481.html#a1b9ef7522219d74ebd27bab25e4b6841" title="Return the size of the vector.">size</a>, <span class="keyword">const</span> <a class="code" href="a00481.html#a676ded0b5b43617c292d2564eabd0040">value_type</a> &amp;init):
<a name="l00094"></a>00094 <a class="code" href="a00506.html" title="Base class for Vector container models.">vector_container</a>&lt;<a class="code" href="a00481.html">self_type</a>&gt; (),
<a name="l00095"></a>00095 <a class="code" href="a00481.html#aa26cf7b9be0ccf4587d6bc4b92bfdf1f">data_</a> (size, init) {}
<a name="l00096"></a>00096
<a name="l00099"></a>00099 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00100"></a><a class="code" href="a00481.html#a18dae81ff4bcd46986e99f58764e773b">00100</a> <a class="code" href="a00481.html#a477a17fb1a95d016e4465de7ae9f7bd0" title="Constructor of a vector By default it is empty, i.e. size()==0.">vector</a> (<span class="keyword">const</span> <a class="code" href="a00481.html" title="A dense vector of values of type T.">vector</a> &amp;v):
<a name="l00101"></a>00101 <a class="code" href="a00506.html" title="Base class for Vector container models.">vector_container</a>&lt;<a class="code" href="a00481.html">self_type</a>&gt; (),
<a name="l00102"></a>00102 <a class="code" href="a00481.html#aa26cf7b9be0ccf4587d6bc4b92bfdf1f">data_</a> (v.<a class="code" href="a00481.html#aa26cf7b9be0ccf4587d6bc4b92bfdf1f">data_</a>) {}
<a name="l00103"></a>00103
<a name="l00108"></a>00108 <span class="keyword">template</span>&lt;<span class="keyword">class</span> AE&gt;
<a name="l00109"></a>00109 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00110"></a><a class="code" href="a00481.html#a7b0b649369be331ad80513f220b086dc">00110</a> <a class="code" href="a00481.html#a477a17fb1a95d016e4465de7ae9f7bd0" title="Constructor of a vector By default it is empty, i.e. size()==0.">vector</a> (<span class="keyword">const</span> <a class="code" href="a00507.html" title="Base class for Vector Expression models.">vector_expression&lt;AE&gt;</a> &amp;ae):
<a name="l00111"></a>00111 <a class="code" href="a00506.html" title="Base class for Vector container models.">vector_container</a>&lt;<a class="code" href="a00481.html">self_type</a>&gt; (),
<a name="l00112"></a>00112 <a class="code" href="a00481.html#aa26cf7b9be0ccf4587d6bc4b92bfdf1f">data_</a> (ae ().<a class="code" href="a00481.html#a1b9ef7522219d74ebd27bab25e4b6841" title="Return the size of the vector.">size</a> ()) {
<a name="l00113"></a>00113 vector_assign&lt;scalar_assign&gt; (*<span class="keyword">this</span>, ae);
<a name="l00114"></a>00114 }
<a name="l00115"></a>00115
<a name="l00116"></a>00116 <span class="comment">// -----------------------</span>
<a name="l00117"></a>00117 <span class="comment">// Random Access Container</span>
<a name="l00118"></a>00118 <span class="comment">// -----------------------</span>
<a name="l00119"></a>00119
<a name="l00122"></a>00122 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00123"></a><a class="code" href="a00481.html#a40757a37ac3ad92fc89895a200ac5de3">00123</a> <a class="code" href="a00481.html#a738b42501164c4bf04477aeb866f2928">size_type</a> <a class="code" href="a00481.html#a40757a37ac3ad92fc89895a200ac5de3" title="Return the maximum size of the data container. Return the upper bound (maximum size) on the data cont...">max_size</a> ()<span class="keyword"> const </span>{
<a name="l00124"></a>00124 <span class="keywordflow">return</span> <a class="code" href="a00481.html#aa26cf7b9be0ccf4587d6bc4b92bfdf1f">data_</a>.<a class="code" href="a00040.html#a8a2d843876637bdc235283cb158fc988">max_size</a> ();
<a name="l00125"></a>00125 }
<a name="l00126"></a>00126
<a name="l00129"></a>00129 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00130"></a><a class="code" href="a00481.html#a5ca7b44d2563752edcd0cc0ad5f2113c">00130</a> <span class="keywordtype">bool</span> <a class="code" href="a00481.html#a5ca7b44d2563752edcd0cc0ad5f2113c" title="Return true if the vector is empty (size==0)">empty</a> ()<span class="keyword"> const </span>{
<a name="l00131"></a>00131 <span class="keywordflow">return</span> <a class="code" href="a00481.html#aa26cf7b9be0ccf4587d6bc4b92bfdf1f">data_</a>.<a class="code" href="a00040.html#a9baeb6af213c42e2e9ed2258aec209d8">size</a> () == 0;
<a name="l00132"></a>00132 }
<a name="l00133"></a>00133
<a name="l00134"></a>00134 <span class="comment">// ---------</span>
<a name="l00135"></a>00135 <span class="comment">// Accessors</span>
<a name="l00136"></a>00136 <span class="comment">// ---------</span>
<a name="l00137"></a>00137
<a name="l00139"></a>00139 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00140"></a><a class="code" href="a00481.html#a1b9ef7522219d74ebd27bab25e4b6841">00140</a> <a class="code" href="a00481.html#a738b42501164c4bf04477aeb866f2928">size_type</a> <a class="code" href="a00481.html#a1b9ef7522219d74ebd27bab25e4b6841" title="Return the size of the vector.">size</a> ()<span class="keyword"> const </span>{
<a name="l00141"></a>00141 <span class="keywordflow">return</span> <a class="code" href="a00481.html#aa26cf7b9be0ccf4587d6bc4b92bfdf1f">data_</a>.<a class="code" href="a00040.html#a9baeb6af213c42e2e9ed2258aec209d8">size</a> ();
<a name="l00142"></a>00142 }
<a name="l00143"></a>00143
<a name="l00144"></a>00144 <span class="comment">// -----------------</span>
<a name="l00145"></a>00145 <span class="comment">// Storage accessors</span>
<a name="l00146"></a>00146 <span class="comment">// -----------------</span>
<a name="l00147"></a>00147
<a name="l00149"></a>00149 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00150"></a><a class="code" href="a00481.html#a941dea529f7d464d5f044657528c4922">00150</a> <span class="keyword">const</span> <a class="code" href="a00040.html">array_type</a> &amp;<a class="code" href="a00481.html#a941dea529f7d464d5f044657528c4922" title="Return a const reference to the container. Useful to access data directly for specific type of contai...">data</a> ()<span class="keyword"> const </span>{
<a name="l00151"></a>00151 <span class="keywordflow">return</span> <a class="code" href="a00481.html#aa26cf7b9be0ccf4587d6bc4b92bfdf1f">data_</a>;
<a name="l00152"></a>00152 }
<a name="l00153"></a>00153
<a name="l00155"></a>00155 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00156"></a><a class="code" href="a00481.html#a2fa457a2e17d4a1b56730078a9eed38f">00156</a> <a class="code" href="a00040.html">array_type</a> &amp;<a class="code" href="a00481.html#a2fa457a2e17d4a1b56730078a9eed38f" title="Return a reference to the container. Useful to speed-up write operations to the data in very specific...">data</a> () {
<a name="l00157"></a>00157 <span class="keywordflow">return</span> <a class="code" href="a00481.html#aa26cf7b9be0ccf4587d6bc4b92bfdf1f">data_</a>;
<a name="l00158"></a>00158 }
<a name="l00159"></a>00159
<a name="l00160"></a>00160 <span class="comment">// --------</span>
<a name="l00161"></a>00161 <span class="comment">// Resizing</span>
<a name="l00162"></a>00162 <span class="comment">// --------</span>
<a name="l00163"></a>00163
<a name="l00168"></a>00168 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00169"></a><a class="code" href="a00481.html#a113118def88db3755da6690b6ec903f0">00169</a> <span class="keywordtype">void</span> <a class="code" href="a00481.html#a113118def88db3755da6690b6ec903f0" title="Resize the vector Resize the vector to a new size. If preserve is true, data are copied otherwise dat...">resize</a> (<a class="code" href="a00481.html#a738b42501164c4bf04477aeb866f2928">size_type</a> <a class="code" href="a00481.html#a1b9ef7522219d74ebd27bab25e4b6841" title="Return the size of the vector.">size</a>, <span class="keywordtype">bool</span> preserve = <span class="keyword">true</span>) {
<a name="l00170"></a>00170 <span class="keywordflow">if</span> (preserve)
<a name="l00171"></a>00171 <a class="code" href="a00481.html#a941dea529f7d464d5f044657528c4922" title="Return a const reference to the container. Useful to access data directly for specific type of contai...">data</a> ().<a class="code" href="a00040.html#ac0df6d6b95d929e24ca8d9cf59c843fa">resize</a> (size, <span class="keyword">typename</span> A::value_type ());
<a name="l00172"></a>00172 <span class="keywordflow">else</span>
<a name="l00173"></a>00173 <a class="code" href="a00481.html#a941dea529f7d464d5f044657528c4922" title="Return a const reference to the container. Useful to access data directly for specific type of contai...">data</a> ().<a class="code" href="a00040.html#ac0df6d6b95d929e24ca8d9cf59c843fa">resize</a> (size);
<a name="l00174"></a>00174 }
<a name="l00175"></a>00175
<a name="l00176"></a>00176 <span class="comment">// ---------------</span>
<a name="l00177"></a>00177 <span class="comment">// Element support</span>
<a name="l00178"></a>00178 <span class="comment">// ---------------</span>
<a name="l00179"></a>00179
<a name="l00182"></a>00182 <span class="comment">// XXX this semantic is not the one expected by the name of this method</span>
<a name="l00183"></a>00183 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00184"></a><a class="code" href="a00481.html#a0ad6b2bb8196fc36e33d3aa47d296500">00184</a> <a class="code" href="a00481.html#a65d2d017e9a37d6f689b2dfb96998941">pointer</a> <a class="code" href="a00481.html#a0ad6b2bb8196fc36e33d3aa47d296500" title="Return a pointer to the element .">find_element</a> (<a class="code" href="a00481.html#a738b42501164c4bf04477aeb866f2928">size_type</a> i) {
<a name="l00185"></a>00185 <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span><a class="code" href="a00481.html#a65d2d017e9a37d6f689b2dfb96998941">pointer</a><span class="keyword">&gt;</span> (<span class="keyword">const_cast&lt;</span><span class="keyword">const </span><a class="code" href="a00481.html">self_type</a>&amp;<span class="keyword">&gt;</span>(*this).<a class="code" href="a00481.html#a0ad6b2bb8196fc36e33d3aa47d296500" title="Return a pointer to the element .">find_element</a> (i));
<a name="l00186"></a>00186 }
<a name="l00187"></a>00187
<a name="l00190"></a>00190 <span class="comment">// XXX this semantic is not the one expected by the name of this method</span>
<a name="l00191"></a>00191 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00192"></a><a class="code" href="a00481.html#a5b1de2ac98f634b04640bcea98fe8298">00192</a> <a class="code" href="a00481.html#aed4961c84062e6300d2485181b005da7">const_pointer</a> <a class="code" href="a00481.html#a5b1de2ac98f634b04640bcea98fe8298" title="Return a const pointer to the element .">find_element</a> (<a class="code" href="a00481.html#a738b42501164c4bf04477aeb866f2928">size_type</a> i)<span class="keyword"> const </span>{
<a name="l00193"></a>00193 <span class="keywordflow">return</span> &amp; (<a class="code" href="a00481.html#a941dea529f7d464d5f044657528c4922" title="Return a const reference to the container. Useful to access data directly for specific type of contai...">data</a> () [i]);
<a name="l00194"></a>00194 }
<a name="l00195"></a>00195
<a name="l00196"></a>00196 <span class="comment">// --------------</span>
<a name="l00197"></a>00197 <span class="comment">// Element access</span>
<a name="l00198"></a>00198 <span class="comment">// --------------</span>
<a name="l00199"></a>00199
<a name="l00203"></a>00203 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00204"></a><a class="code" href="a00481.html#aa511fcff4d8dba52bf163fbc9664dfbf">00204</a> <a class="code" href="a00481.html#af22dff817d4a7b6366a1c525b2605d0a">const_reference</a> <a class="code" href="a00506.html#a1fb3e3c565194eaf99e6af65daadc76a">operator () </a>(<a class="code" href="a00481.html#a738b42501164c4bf04477aeb866f2928">size_type</a> i)<span class="keyword"> const </span>{
<a name="l00205"></a>00205 <span class="keywordflow">return</span> <a class="code" href="a00481.html#a941dea529f7d464d5f044657528c4922" title="Return a const reference to the container. Useful to access data directly for specific type of contai...">data</a> () [i];
<a name="l00206"></a>00206 }
<a name="l00207"></a>00207
<a name="l00211"></a>00211 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00212"></a><a class="code" href="a00481.html#a4b53f6b15f6aaa81b059bbdcaaf00fab">00212</a> <a class="code" href="a00481.html#a6aebdce7445c7a3fd99acfe776b786f7">reference</a> <a class="code" href="a00506.html#a1fb3e3c565194eaf99e6af65daadc76a">operator () </a>(<a class="code" href="a00481.html#a738b42501164c4bf04477aeb866f2928">size_type</a> i) {
<a name="l00213"></a>00213 <span class="keywordflow">return</span> <a class="code" href="a00481.html#a941dea529f7d464d5f044657528c4922" title="Return a const reference to the container. Useful to access data directly for specific type of contai...">data</a> () [i];
<a name="l00214"></a>00214 }
<a name="l00215"></a>00215
<a name="l00218"></a>00218 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00219"></a><a class="code" href="a00481.html#a0cfc171dac4e78549a96c43062a052c6">00219</a> <a class="code" href="a00481.html#af22dff817d4a7b6366a1c525b2605d0a">const_reference</a> <a class="code" href="a00481.html#a0cfc171dac4e78549a96c43062a052c6" title="Return a const reference to the element .">operator [] </a>(<a class="code" href="a00481.html#a738b42501164c4bf04477aeb866f2928">size_type</a> i)<span class="keyword"> const </span>{
<a name="l00220"></a>00220 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) (i);
<a name="l00221"></a>00221 }
<a name="l00222"></a>00222
<a name="l00225"></a>00225 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00226"></a><a class="code" href="a00481.html#a10b3c5c3a5042f21a996eeb75c447529">00226</a> <a class="code" href="a00481.html#a6aebdce7445c7a3fd99acfe776b786f7">reference</a> <a class="code" href="a00481.html#a0cfc171dac4e78549a96c43062a052c6" title="Return a const reference to the element .">operator [] </a>(<a class="code" href="a00481.html#a738b42501164c4bf04477aeb866f2928">size_type</a> i) {
<a name="l00227"></a>00227 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) (i);
<a name="l00228"></a>00228 }
<a name="l00229"></a>00229
<a name="l00230"></a>00230 <span class="comment">// ------------------</span>
<a name="l00231"></a>00231 <span class="comment">// Element assignment</span>
<a name="l00232"></a>00232 <span class="comment">// ------------------</span>
<a name="l00233"></a>00233
<a name="l00237"></a>00237 <span class="comment">// XXX semantic of this is to insert a new element and therefore size=size+1 ?</span>
<a name="l00238"></a>00238 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00239"></a><a class="code" href="a00481.html#a35b8f3eae165e33d8d4e33f86f40b954">00239</a> <a class="code" href="a00481.html#a6aebdce7445c7a3fd99acfe776b786f7">reference</a> <a class="code" href="a00481.html#a35b8f3eae165e33d8d4e33f86f40b954" title="Set element to the value t.">insert_element</a> (<a class="code" href="a00481.html#a738b42501164c4bf04477aeb866f2928">size_type</a> i, <a class="code" href="a00481.html#af22dff817d4a7b6366a1c525b2605d0a">const_reference</a> t) {
<a name="l00240"></a>00240 <span class="keywordflow">return</span> (<a class="code" href="a00481.html#a941dea529f7d464d5f044657528c4922" title="Return a const reference to the container. Useful to access data directly for specific type of contai...">data</a> () [i] = t);
<a name="l00241"></a>00241 }
<a name="l00242"></a>00242
<a name="l00245"></a>00245 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00246"></a><a class="code" href="a00481.html#ac3700c206fa1bf8e5205edbb859432c1">00246</a> <span class="keywordtype">void</span> <a class="code" href="a00481.html#ac3700c206fa1bf8e5205edbb859432c1" title="Set element to the zero value.">erase_element</a> (<a class="code" href="a00481.html#a738b42501164c4bf04477aeb866f2928">size_type</a> i) {
<a name="l00247"></a>00247 <a class="code" href="a00481.html#a941dea529f7d464d5f044657528c4922" title="Return a const reference to the container. Useful to access data directly for specific type of contai...">data</a> () [i] = <a class="code" href="a00481.html#a676ded0b5b43617c292d2564eabd0040">value_type</a><span class="comment">/*zero*/</span>();
<a name="l00248"></a>00248 }
<a name="l00249"></a>00249
<a name="l00250"></a>00250 <span class="comment">// -------</span>
<a name="l00251"></a>00251 <span class="comment">// Zeroing</span>
<a name="l00252"></a>00252 <span class="comment">// -------</span>
<a name="l00253"></a>00253
<a name="l00255"></a>00255 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00256"></a><a class="code" href="a00481.html#aad56668044d71db97be9e44db273f09a">00256</a> <span class="keywordtype">void</span> <a class="code" href="a00481.html#aad56668044d71db97be9e44db273f09a" title="Clear the vector, i.e. set all values to the zero value.">clear</a> () {
<a name="l00257"></a>00257 std::fill (<a class="code" href="a00481.html#a941dea529f7d464d5f044657528c4922" title="Return a const reference to the container. Useful to access data directly for specific type of contai...">data</a> ().<a class="code" href="a00481.html#a3737e9b662f9ba10fa87789de4fa37f6" title="return an iterator on the first element of the vector">begin</a> (), <a class="code" href="a00481.html#a941dea529f7d464d5f044657528c4922" title="Return a const reference to the container. Useful to access data directly for specific type of contai...">data</a> ().<a class="code" href="a00481.html#a0bde39bb3dac56f1c0c8cc6e044942ab" title="return an iterator after the last element of the vector">end</a> (), <a class="code" href="a00481.html#a676ded0b5b43617c292d2564eabd0040">value_type</a><span class="comment">/*zero*/</span>());
<a name="l00258"></a>00258 }
<a name="l00259"></a>00259
<a name="l00260"></a>00260 <span class="comment">// Assignment</span>
<a name="l00261"></a>00261 <span class="preprocessor">#ifdef BOOST_UBLAS_MOVE_SEMANTICS</span>
<a name="l00262"></a>00262 <span class="preprocessor"></span>
<a name="l00266"></a>00266
<a name="l00267"></a>00267 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00268"></a>00268 <a class="code" href="a00481.html" title="A dense vector of values of type T.">vector</a> &amp;<a class="code" href="a00481.html#a1724d353e3006619a995342bc6be134e" title="Assign a full vector (RHS-vector) to the current vector (LHS-vector)">operator = </a>(<a class="code" href="a00481.html" title="A dense vector of values of type T.">vector</a> v) {
<a name="l00269"></a>00269 <a class="code" href="a00481.html#a2ece9f4455a3a98e4ab98d131d440f85" title="Assign a full vector (RHS-vector) to the current vector (LHS-vector)">assign_temporary</a>(v);
<a name="l00270"></a>00270 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00271"></a>00271 }
<a name="l00272"></a>00272 <span class="preprocessor">#else</span>
<a name="l00273"></a>00273 <span class="preprocessor"></span>
<a name="l00274"></a>00274
<a name="l00275"></a>00275
<a name="l00276"></a>00276 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00277"></a><a class="code" href="a00481.html#a1724d353e3006619a995342bc6be134e">00277</a> <a class="code" href="a00481.html" title="A dense vector of values of type T.">vector</a> &amp;<a class="code" href="a00481.html#a1724d353e3006619a995342bc6be134e" title="Assign a full vector (RHS-vector) to the current vector (LHS-vector)">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00481.html" title="A dense vector of values of type T.">vector</a> &amp;v) {
<a name="l00278"></a>00278 <a class="code" href="a00481.html#a941dea529f7d464d5f044657528c4922" title="Return a const reference to the container. Useful to access data directly for specific type of contai...">data</a> () = v.<a class="code" href="a00481.html#a941dea529f7d464d5f044657528c4922" title="Return a const reference to the container. Useful to access data directly for specific type of contai...">data</a> ();
<a name="l00279"></a>00279 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00280"></a>00280 }
<a name="l00281"></a>00281 <span class="preprocessor">#endif</span>
<a name="l00282"></a>00282 <span class="preprocessor"></span>
<a name="l00287"></a>00287 <span class="keyword">template</span>&lt;<span class="keyword">class</span> C&gt; <span class="comment">// Container assignment without temporary</span>
<a name="l00288"></a>00288 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00289"></a><a class="code" href="a00481.html#af778c9aad1d18346fe2ec22642454755">00289</a> <a class="code" href="a00481.html" title="A dense vector of values of type T.">vector</a> &amp;<a class="code" href="a00481.html#a1724d353e3006619a995342bc6be134e" title="Assign a full vector (RHS-vector) to the current vector (LHS-vector)">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00506.html" title="Base class for Vector container models.">vector_container&lt;C&gt;</a> &amp;v) {
<a name="l00290"></a>00290 <a class="code" href="a00481.html#a113118def88db3755da6690b6ec903f0" title="Resize the vector Resize the vector to a new size. If preserve is true, data are copied otherwise dat...">resize</a> (v ().<a class="code" href="a00481.html#a1b9ef7522219d74ebd27bab25e4b6841" title="Return the size of the vector.">size</a> (), <span class="keyword">false</span>);
<a name="l00291"></a>00291 <a class="code" href="a00481.html#a449aa3da7748032b856c4ad74549f14d" title="Assign the result of a vector_expression to the vector Assign the result of a vector_expression to th...">assign</a> (v);
<a name="l00292"></a>00292 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00293"></a>00293 }
<a name="l00294"></a>00294
<a name="l00298"></a>00298 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00299"></a><a class="code" href="a00481.html#a2ece9f4455a3a98e4ab98d131d440f85">00299</a> <a class="code" href="a00481.html" title="A dense vector of values of type T.">vector</a> &amp;<a class="code" href="a00481.html#a2ece9f4455a3a98e4ab98d131d440f85" title="Assign a full vector (RHS-vector) to the current vector (LHS-vector)">assign_temporary</a> (<a class="code" href="a00481.html" title="A dense vector of values of type T.">vector</a> &amp;v) {
<a name="l00300"></a>00300 <a class="code" href="a00481.html#aedce8a2ea66b86b1e3efb21bba7be0c5" title="Swap the content of the vector with another vector.">swap</a> (v);
<a name="l00301"></a>00301 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00302"></a>00302 }
<a name="l00303"></a>00303
<a name="l00309"></a>00309 <span class="keyword">template</span>&lt;<span class="keyword">class</span> AE&gt;
<a name="l00310"></a>00310 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00311"></a><a class="code" href="a00481.html#af7df90fe154185ba4688750a8acc0c68">00311</a> <a class="code" href="a00481.html" title="A dense vector of values of type T.">vector</a> &amp;<a class="code" href="a00481.html#a1724d353e3006619a995342bc6be134e" title="Assign a full vector (RHS-vector) to the current vector (LHS-vector)">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00507.html" title="Base class for Vector Expression models.">vector_expression&lt;AE&gt;</a> &amp;ae) {
<a name="l00312"></a>00312 <a class="code" href="a00481.html">self_type</a> temporary (ae);
<a name="l00313"></a>00313 <span class="keywordflow">return</span> <a class="code" href="a00481.html#a2ece9f4455a3a98e4ab98d131d440f85" title="Assign a full vector (RHS-vector) to the current vector (LHS-vector)">assign_temporary</a> (temporary);
<a name="l00314"></a>00314 }
<a name="l00315"></a>00315
<a name="l00321"></a>00321 <span class="keyword">template</span>&lt;<span class="keyword">class</span> AE&gt;
<a name="l00322"></a>00322 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00323"></a><a class="code" href="a00481.html#a449aa3da7748032b856c4ad74549f14d">00323</a> <a class="code" href="a00481.html" title="A dense vector of values of type T.">vector</a> &amp;<a class="code" href="a00481.html#a449aa3da7748032b856c4ad74549f14d" title="Assign the result of a vector_expression to the vector Assign the result of a vector_expression to th...">assign</a> (<span class="keyword">const</span> <a class="code" href="a00507.html" title="Base class for Vector Expression models.">vector_expression&lt;AE&gt;</a> &amp;ae) {
<a name="l00324"></a>00324 vector_assign&lt;scalar_assign&gt; (*<span class="keyword">this</span>, ae);
<a name="l00325"></a>00325 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00326"></a>00326 }
<a name="l00327"></a>00327
<a name="l00328"></a>00328 <span class="comment">// -------------------</span>
<a name="l00329"></a>00329 <span class="comment">// Computed assignment</span>
<a name="l00330"></a>00330 <span class="comment">// -------------------</span>
<a name="l00331"></a>00331
<a name="l00338"></a>00338 <span class="keyword">template</span>&lt;<span class="keyword">class</span> AE&gt;
<a name="l00339"></a>00339 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00340"></a><a class="code" href="a00481.html#a9ec4c7260a33c9ad841339b4f59aa73b">00340</a> <a class="code" href="a00481.html" title="A dense vector of values of type T.">vector</a> &amp;<a class="code" href="a00481.html#a9ec4c7260a33c9ad841339b4f59aa73b" title="Assign the sum of the vector and a vector_expression to the vector Assign the sum of the vector and a...">operator += </a>(<span class="keyword">const</span> <a class="code" href="a00507.html" title="Base class for Vector Expression models.">vector_expression&lt;AE&gt;</a> &amp;ae) {
<a name="l00341"></a>00341 <a class="code" href="a00481.html">self_type</a> temporary (*<span class="keyword">this</span> + ae);
<a name="l00342"></a>00342 <span class="keywordflow">return</span> <a class="code" href="a00481.html#a2ece9f4455a3a98e4ab98d131d440f85" title="Assign a full vector (RHS-vector) to the current vector (LHS-vector)">assign_temporary</a> (temporary);
<a name="l00343"></a>00343 }
<a name="l00344"></a>00344
<a name="l00351"></a>00351 <span class="keyword">template</span>&lt;<span class="keyword">class</span> C&gt; <span class="comment">// Container assignment without temporary</span>
<a name="l00352"></a>00352 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00353"></a><a class="code" href="a00481.html#a953fa9e2fa2e610674e5f94391f60333">00353</a> <a class="code" href="a00481.html" title="A dense vector of values of type T.">vector</a> &amp;<a class="code" href="a00481.html#a9ec4c7260a33c9ad841339b4f59aa73b" title="Assign the sum of the vector and a vector_expression to the vector Assign the sum of the vector and a...">operator += </a>(<span class="keyword">const</span> <a class="code" href="a00506.html" title="Base class for Vector container models.">vector_container&lt;C&gt;</a> &amp;v) {
<a name="l00354"></a>00354 <a class="code" href="a00481.html#afd874b1ba7fe6a5b961cc3b228cd1208" title="Assign the sum of the vector and a vector_expression to the vector Assign the sum of the vector and a...">plus_assign</a> (v);
<a name="l00355"></a>00355 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00356"></a>00356 }
<a name="l00357"></a>00357
<a name="l00364"></a>00364 <span class="keyword">template</span>&lt;<span class="keyword">class</span> AE&gt;
<a name="l00365"></a>00365 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00366"></a><a class="code" href="a00481.html#afd874b1ba7fe6a5b961cc3b228cd1208">00366</a> <a class="code" href="a00481.html" title="A dense vector of values of type T.">vector</a> &amp;<a class="code" href="a00481.html#afd874b1ba7fe6a5b961cc3b228cd1208" title="Assign the sum of the vector and a vector_expression to the vector Assign the sum of the vector and a...">plus_assign</a> (<span class="keyword">const</span> <a class="code" href="a00507.html" title="Base class for Vector Expression models.">vector_expression&lt;AE&gt;</a> &amp;ae) {
<a name="l00367"></a>00367 vector_assign&lt;scalar_plus_assign&gt; (*<span class="keyword">this</span>, ae);
<a name="l00368"></a>00368 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00369"></a>00369 }
<a name="l00370"></a>00370
<a name="l00376"></a>00376 <span class="keyword">template</span>&lt;<span class="keyword">class</span> AE&gt;
<a name="l00377"></a>00377 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00378"></a><a class="code" href="a00481.html#a74138b9c59c7dee5d4cfea50359efaa3">00378</a> <a class="code" href="a00481.html" title="A dense vector of values of type T.">vector</a> &amp;<a class="code" href="a00481.html#a74138b9c59c7dee5d4cfea50359efaa3" title="Assign the difference of the vector and a vector_expression to the vector Assign the difference of th...">operator -= </a>(<span class="keyword">const</span> <a class="code" href="a00507.html" title="Base class for Vector Expression models.">vector_expression&lt;AE&gt;</a> &amp;ae) {
<a name="l00379"></a>00379 <a class="code" href="a00481.html">self_type</a> temporary (*<span class="keyword">this</span> - ae);
<a name="l00380"></a>00380 <span class="keywordflow">return</span> <a class="code" href="a00481.html#a2ece9f4455a3a98e4ab98d131d440f85" title="Assign a full vector (RHS-vector) to the current vector (LHS-vector)">assign_temporary</a> (temporary);
<a name="l00381"></a>00381 }
<a name="l00382"></a>00382
<a name="l00389"></a>00389 <span class="keyword">template</span>&lt;<span class="keyword">class</span> C&gt; <span class="comment">// Container assignment without temporary</span>
<a name="l00390"></a>00390 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00391"></a><a class="code" href="a00481.html#a04918781e246fb21d1fb0f36948c04fb">00391</a> <a class="code" href="a00481.html" title="A dense vector of values of type T.">vector</a> &amp;<a class="code" href="a00481.html#a74138b9c59c7dee5d4cfea50359efaa3" title="Assign the difference of the vector and a vector_expression to the vector Assign the difference of th...">operator -= </a>(<span class="keyword">const</span> <a class="code" href="a00506.html" title="Base class for Vector container models.">vector_container&lt;C&gt;</a> &amp;v) {
<a name="l00392"></a>00392 <a class="code" href="a00481.html#ac02f6ccd9710c186f9ae734e6395b742" title="Assign the difference of the vector and a vector_expression to the vector Assign the difference of th...">minus_assign</a> (v);
<a name="l00393"></a>00393 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00394"></a>00394 }
<a name="l00395"></a>00395
<a name="l00402"></a>00402 <span class="keyword">template</span>&lt;<span class="keyword">class</span> AE&gt;
<a name="l00403"></a>00403 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00404"></a><a class="code" href="a00481.html#ac02f6ccd9710c186f9ae734e6395b742">00404</a> <a class="code" href="a00481.html" title="A dense vector of values of type T.">vector</a> &amp;<a class="code" href="a00481.html#ac02f6ccd9710c186f9ae734e6395b742" title="Assign the difference of the vector and a vector_expression to the vector Assign the difference of th...">minus_assign</a> (<span class="keyword">const</span> <a class="code" href="a00507.html" title="Base class for Vector Expression models.">vector_expression&lt;AE&gt;</a> &amp;ae) {
<a name="l00405"></a>00405 vector_assign&lt;scalar_minus_assign&gt; (*<span class="keyword">this</span>, ae);
<a name="l00406"></a>00406 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00407"></a>00407 }
<a name="l00408"></a>00408
<a name="l00415"></a>00415 <span class="keyword">template</span>&lt;<span class="keyword">class</span> AT&gt;
<a name="l00416"></a>00416 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00417"></a><a class="code" href="a00481.html#a6cee4bffbd0981075d11f4e7fc5e04d2">00417</a> <a class="code" href="a00481.html" title="A dense vector of values of type T.">vector</a> &amp;<a class="code" href="a00481.html#a6cee4bffbd0981075d11f4e7fc5e04d2" title="Assign the product of the vector and a scalar to the vector Assign the product of the vector and a sc...">operator *= </a>(<span class="keyword">const</span> AT &amp;at) {
<a name="l00418"></a>00418 vector_assign_scalar&lt;scalar_multiplies_assign&gt; (*<span class="keyword">this</span>, at);
<a name="l00419"></a>00419 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00420"></a>00420 }
<a name="l00421"></a>00421
<a name="l00428"></a>00428 <span class="keyword">template</span>&lt;<span class="keyword">class</span> AT&gt;
<a name="l00429"></a>00429 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00430"></a><a class="code" href="a00481.html#a6800b804a49a7bd4ce3767d1ea0aafc0">00430</a> <a class="code" href="a00481.html" title="A dense vector of values of type T.">vector</a> &amp;<a class="code" href="a00481.html#a6800b804a49a7bd4ce3767d1ea0aafc0" title="Assign the division of the vector by a scalar to the vector Assign the division of the vector by a sc...">operator /= </a>(<span class="keyword">const</span> AT &amp;at) {
<a name="l00431"></a>00431 vector_assign_scalar&lt;scalar_divides_assign&gt; (*<span class="keyword">this</span>, at);
<a name="l00432"></a>00432 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00433"></a>00433 }
<a name="l00434"></a>00434
<a name="l00435"></a>00435 <span class="comment">// --------</span>
<a name="l00436"></a>00436 <span class="comment">// Swapping</span>
<a name="l00437"></a>00437 <span class="comment">// --------</span>
<a name="l00438"></a>00438
<a name="l00441"></a>00441 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00442"></a><a class="code" href="a00481.html#aedce8a2ea66b86b1e3efb21bba7be0c5">00442</a> <span class="keywordtype">void</span> <a class="code" href="a00481.html#aedce8a2ea66b86b1e3efb21bba7be0c5" title="Swap the content of the vector with another vector.">swap</a> (<a class="code" href="a00481.html" title="A dense vector of values of type T.">vector</a> &amp;v) {
<a name="l00443"></a>00443 <span class="keywordflow">if</span> (<span class="keyword">this</span> != &amp;v) {
<a name="l00444"></a>00444 <a class="code" href="a00481.html#a941dea529f7d464d5f044657528c4922" title="Return a const reference to the container. Useful to access data directly for specific type of contai...">data</a> ().<a class="code" href="a00040.html#a01bd75791ff92895a99d79729f0bb40d">swap</a> (v.<a class="code" href="a00481.html#a941dea529f7d464d5f044657528c4922" title="Return a const reference to the container. Useful to access data directly for specific type of contai...">data</a> ());
<a name="l00445"></a>00445 }
<a name="l00446"></a>00446 }
<a name="l00447"></a>00447
<a name="l00451"></a>00451 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00452"></a><a class="code" href="a00481.html#a7ec2565da7f04f5f8ba42785be772df7">00452</a> <span class="keyword">friend</span> <span class="keywordtype">void</span> <a class="code" href="a00481.html#a7ec2565da7f04f5f8ba42785be772df7" title="Swap the content of two vectors.">swap</a> (<a class="code" href="a00481.html" title="A dense vector of values of type T.">vector</a> &amp;v1, <a class="code" href="a00481.html" title="A dense vector of values of type T.">vector</a> &amp;v2) {
<a name="l00453"></a>00453 v1.<a class="code" href="a00481.html#aedce8a2ea66b86b1e3efb21bba7be0c5" title="Swap the content of the vector with another vector.">swap</a> (v2);
<a name="l00454"></a>00454 }
<a name="l00455"></a>00455
<a name="l00456"></a>00456 <span class="comment">// Iterator types</span>
<a name="l00457"></a>00457 <span class="keyword">private</span>:
<a name="l00458"></a>00458 <span class="comment">// Use the storage array iterator</span>
<a name="l00459"></a><a class="code" href="a00481.html#a3f4857d44bc39c9c639a61be06f56c1c">00459</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> A::const_iterator <a class="code" href="a00481.html#a3f4857d44bc39c9c639a61be06f56c1c">const_subiterator_type</a>;
<a name="l00460"></a><a class="code" href="a00481.html#a90020beeb08aa8ff72c59edf6c202b11">00460</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> A::iterator <a class="code" href="a00481.html#a90020beeb08aa8ff72c59edf6c202b11">subiterator_type</a>;
<a name="l00461"></a>00461
<a name="l00462"></a>00462 <span class="keyword">public</span>:
<a name="l00463"></a>00463 <span class="preprocessor">#ifdef BOOST_UBLAS_USE_INDEXED_ITERATOR</span>
<a name="l00464"></a>00464 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00168.html" title="A class implementing an indexed random access iterator.">indexed_iterator&lt;self_type, dense_random_access_iterator_tag&gt;</a> <a class="code" href="a00593.html">iterator</a>;
<a name="l00465"></a>00465 <span class="keyword">typedef</span> <a class="code" href="a00165.html" title="A class implementing an indexed random access iterator.">indexed_const_iterator&lt;self_type, dense_random_access_iterator_tag&gt;</a> const_iterator;
<a name="l00466"></a>00466 <span class="preprocessor">#else</span>
<a name="l00467"></a>00467 <span class="preprocessor"></span> <span class="keyword">class </span>const_iterator;
<a name="l00468"></a>00468 <span class="keyword">class </span><a class="code" href="a00593.html">iterator</a>;
<a name="l00469"></a>00469 <span class="preprocessor">#endif</span>
<a name="l00470"></a>00470 <span class="preprocessor"></span>
<a name="l00471"></a>00471 <span class="comment">// --------------</span>
<a name="l00472"></a>00472 <span class="comment">// Element lookup</span>
<a name="l00473"></a>00473 <span class="comment">// --------------</span>
<a name="l00474"></a>00474
<a name="l00477"></a>00477 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00478"></a><a class="code" href="a00481.html#a3be04f746cfe32f0de3aaa2a5273f3a1">00478</a> const_iterator <a class="code" href="a00481.html#a3be04f746cfe32f0de3aaa2a5273f3a1" title="Return a const iterator to the element i.">find</a> (<a class="code" href="a00481.html#a738b42501164c4bf04477aeb866f2928">size_type</a> i)<span class="keyword"> const </span>{
<a name="l00479"></a>00479 <span class="preprocessor">#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR</span>
<a name="l00480"></a>00480 <span class="preprocessor"></span> <span class="keywordflow">return</span> const_iterator (*<span class="keyword">this</span>, <a class="code" href="a00481.html#a941dea529f7d464d5f044657528c4922" title="Return a const reference to the container. Useful to access data directly for specific type of contai...">data</a> ().<a class="code" href="a00481.html#a3737e9b662f9ba10fa87789de4fa37f6" title="return an iterator on the first element of the vector">begin</a> () + i);
<a name="l00481"></a>00481 <span class="preprocessor">#else</span>
<a name="l00482"></a>00482 <span class="preprocessor"></span> <span class="keywordflow">return</span> const_iterator (*<span class="keyword">this</span>, i);
<a name="l00483"></a>00483 <span class="preprocessor">#endif</span>
<a name="l00484"></a>00484 <span class="preprocessor"></span> }
<a name="l00485"></a>00485
<a name="l00488"></a>00488 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00489"></a><a class="code" href="a00481.html#ac7ed001baef390b605d6b932a055e5f3">00489</a> <a class="code" href="a00593.html">iterator</a> <a class="code" href="a00481.html#ac7ed001baef390b605d6b932a055e5f3" title="Return an iterator to the element i.">find</a> (<a class="code" href="a00481.html#a738b42501164c4bf04477aeb866f2928">size_type</a> i) {
<a name="l00490"></a>00490 <span class="preprocessor">#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR</span>
<a name="l00491"></a>00491 <span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="a00593.html">iterator</a> (*<span class="keyword">this</span>, <a class="code" href="a00481.html#a941dea529f7d464d5f044657528c4922" title="Return a const reference to the container. Useful to access data directly for specific type of contai...">data</a> ().<a class="code" href="a00481.html#a3737e9b662f9ba10fa87789de4fa37f6" title="return an iterator on the first element of the vector">begin</a> () + i);
<a name="l00492"></a>00492 <span class="preprocessor">#else</span>
<a name="l00493"></a>00493 <span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="a00593.html">iterator</a> (*<span class="keyword">this</span>, i);
<a name="l00494"></a>00494 <span class="preprocessor">#endif</span>
<a name="l00495"></a>00495 <span class="preprocessor"></span> }
<a name="l00496"></a>00496
<a name="l00497"></a>00497 <span class="preprocessor">#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR</span>
<a name="l00498"></a><a class="code" href="a00482.html">00498</a> <span class="preprocessor"></span> <span class="keyword">class </span><a class="code" href="a00482.html">const_iterator</a>:
<a name="l00499"></a>00499 <span class="keyword">public</span> <a class="code" href="a00069.html" title="Base class of all proxy classes that contain a (redirectable) reference to an immutable object...">container_const_reference</a>&lt;vector&gt;,
<a name="l00500"></a>00500 <span class="keyword">public</span> <a class="code" href="a00365.html" title="Base class of all random access iterators.">random_access_iterator_base</a>&lt;dense_random_access_iterator_tag,
<a name="l00501"></a>00501 const_iterator, value_type, difference_type&gt; {
<a name="l00502"></a>00502 <span class="keyword">public</span>:
<a name="l00503"></a><a class="code" href="a00482.html#a81848b295d0b0ab616b22389d68f6def">00503</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00481.html#a30f565fa5b60bbd5be461cd944d70166">vector::difference_type</a> <a class="code" href="a00482.html#a81848b295d0b0ab616b22389d68f6def">difference_type</a>;
<a name="l00504"></a><a class="code" href="a00482.html#a029aa181f31af03b071933ee838147c2">00504</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00481.html#a676ded0b5b43617c292d2564eabd0040">vector::value_type</a> <a class="code" href="a00482.html#a029aa181f31af03b071933ee838147c2">value_type</a>;
<a name="l00505"></a><a class="code" href="a00482.html#a851cffb01627a8de952391198ba96f46">00505</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00481.html#af22dff817d4a7b6366a1c525b2605d0a">vector::const_reference</a> <a class="code" href="a00482.html#a851cffb01627a8de952391198ba96f46">reference</a>;
<a name="l00506"></a><a class="code" href="a00482.html#acb410b8942585911aede4e2fcc43f73c">00506</a> <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="keyword">typename</span> <a class="code" href="a00481.html#a65d2d017e9a37d6f689b2dfb96998941">vector::pointer</a> <a class="code" href="a00482.html#acb410b8942585911aede4e2fcc43f73c">pointer</a>;
<a name="l00507"></a>00507
<a name="l00508"></a>00508 <span class="comment">// ----------------------------</span>
<a name="l00509"></a>00509 <span class="comment">// Construction and destruction</span>
<a name="l00510"></a>00510 <span class="comment">// ----------------------------</span>
<a name="l00511"></a>00511
<a name="l00512"></a>00512
<a name="l00513"></a>00513 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00514"></a><a class="code" href="a00482.html#a0348e16da88b348aa42bc1ea98b3a281">00514</a> <a class="code" href="a00482.html#a0348e16da88b348aa42bc1ea98b3a281">const_iterator</a> ():
<a name="l00515"></a>00515 <a class="code" href="a00069.html" title="Base class of all proxy classes that contain a (redirectable) reference to an immutable object...">container_const_reference</a>&lt;<a class="code" href="a00481.html" title="A dense vector of values of type T.">self_type</a>&gt; (), <a class="code" href="a00482.html#a3671e4c0381919ea210722f59d25c60d">it_</a> () {}
<a name="l00516"></a>00516 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00517"></a><a class="code" href="a00482.html#aa30ad12c30e7ca61c41729eb2a758989">00517</a> <a class="code" href="a00482.html#a0348e16da88b348aa42bc1ea98b3a281">const_iterator</a> (<span class="keyword">const</span> <a class="code" href="a00481.html" title="A dense vector of values of type T.">self_type</a> &amp;v, <span class="keyword">const</span> <a class="code" href="a00481.html#a3f4857d44bc39c9c639a61be06f56c1c">const_subiterator_type</a> &amp;it):
<a name="l00518"></a>00518 <a class="code" href="a00069.html" title="Base class of all proxy classes that contain a (redirectable) reference to an immutable object...">container_const_reference</a>&lt;<a class="code" href="a00481.html" title="A dense vector of values of type T.">self_type</a>&gt; (v), <a class="code" href="a00482.html#a3671e4c0381919ea210722f59d25c60d">it_</a> (it) {}
<a name="l00519"></a>00519 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00520"></a><a class="code" href="a00482.html#a399baf4c78baff15274a4791f8985097">00520</a> <a class="code" href="a00482.html#a0348e16da88b348aa42bc1ea98b3a281">const_iterator</a> (<span class="keyword">const</span> <span class="keyword">typename</span> <a class="code" href="a00483.html">self_type::iterator</a> &amp;it): <span class="comment">// ISSUE vector:: stops VC8 using std::iterator here</span>
<a name="l00521"></a>00521 <a class="code" href="a00069.html" title="Base class of all proxy classes that contain a (redirectable) reference to an immutable object...">container_const_reference</a>&lt;<a class="code" href="a00481.html" title="A dense vector of values of type T.">self_type</a>&gt; (it ()), <a class="code" href="a00482.html#a3671e4c0381919ea210722f59d25c60d">it_</a> (it.<a class="code" href="a00482.html#a3671e4c0381919ea210722f59d25c60d">it_</a>) {}
<a name="l00522"></a>00522
<a name="l00523"></a>00523 <span class="comment">// ----------</span>
<a name="l00524"></a>00524 <span class="comment">// Arithmetic</span>
<a name="l00525"></a>00525 <span class="comment">// ----------</span>
<a name="l00526"></a>00526
<a name="l00529"></a>00529 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00530"></a><a class="code" href="a00482.html#aa3d01d666d746827ce47ea7c8efd819c">00530</a> <a class="code" href="a00482.html">const_iterator</a> &amp;<a class="code" href="a00482.html#aa3d01d666d746827ce47ea7c8efd819c" title="Increment by 1 the position of the iterator.">operator ++ </a>() {
<a name="l00531"></a>00531 ++ <a class="code" href="a00482.html#a3671e4c0381919ea210722f59d25c60d">it_</a>;
<a name="l00532"></a>00532 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00533"></a>00533 }
<a name="l00534"></a>00534
<a name="l00537"></a>00537 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00538"></a><a class="code" href="a00482.html#a8e6b816b5c240010d285b79610c40103">00538</a> <a class="code" href="a00482.html">const_iterator</a> &amp;<a class="code" href="a00482.html#a8e6b816b5c240010d285b79610c40103" title="Decrement by 1 the position of the iterator.">operator -- </a>() {
<a name="l00539"></a>00539 -- <a class="code" href="a00482.html#a3671e4c0381919ea210722f59d25c60d">it_</a>;
<a name="l00540"></a>00540 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00541"></a>00541 }
<a name="l00542"></a>00542
<a name="l00545"></a>00545 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00546"></a><a class="code" href="a00482.html#a4f6ce40c99053ba8eb1e772bcbe4e808">00546</a> <a class="code" href="a00482.html">const_iterator</a> &amp;<a class="code" href="a00482.html#a4f6ce40c99053ba8eb1e772bcbe4e808" title="Increment by n the position of the iterator.">operator += </a>(<a class="code" href="a00482.html#a81848b295d0b0ab616b22389d68f6def">difference_type</a> n) {
<a name="l00547"></a>00547 <a class="code" href="a00482.html#a3671e4c0381919ea210722f59d25c60d">it_</a> += n;
<a name="l00548"></a>00548 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00549"></a>00549 }
<a name="l00550"></a>00550
<a name="l00553"></a>00553 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00554"></a><a class="code" href="a00482.html#ab9bfac800ab3856232f55e4b7c16948e">00554</a> <a class="code" href="a00482.html">const_iterator</a> &amp;<a class="code" href="a00482.html#ab9bfac800ab3856232f55e4b7c16948e" title="Decrement by n the position of the iterator.">operator -= </a>(<a class="code" href="a00482.html#a81848b295d0b0ab616b22389d68f6def">difference_type</a> n) {
<a name="l00555"></a>00555 <a class="code" href="a00482.html#a3671e4c0381919ea210722f59d25c60d">it_</a> -= n;
<a name="l00556"></a>00556 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00557"></a>00557 }
<a name="l00558"></a>00558
<a name="l00560"></a>00560 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00561"></a><a class="code" href="a00482.html#abc6917fe636fb1a3640faad786cabe58">00561</a> <a class="code" href="a00482.html#a81848b295d0b0ab616b22389d68f6def">difference_type</a> <a class="code" href="a00482.html#abc6917fe636fb1a3640faad786cabe58" title="Return the different in number of positions between 2 iterators.">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00482.html">const_iterator</a> &amp;it)<span class="keyword"> const </span>{
<a name="l00562"></a>00562 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&amp;(*<span class="keyword">this</span>) () == &amp;it (), <a class="code" href="a00132.html">external_logic</a> ());
<a name="l00563"></a>00563 <span class="keywordflow">return</span> <a class="code" href="a00482.html#a3671e4c0381919ea210722f59d25c60d">it_</a> - it.<a class="code" href="a00482.html#a3671e4c0381919ea210722f59d25c60d">it_</a>;
<a name="l00564"></a>00564 }
<a name="l00565"></a>00565
<a name="l00569"></a>00569 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00570"></a><a class="code" href="a00482.html#a4cc48bcf7a236d3270d1194e7f76dd94">00570</a> <a class="code" href="a00481.html#af22dff817d4a7b6366a1c525b2605d0a">const_reference</a> <a class="code" href="a00482.html#a4cc48bcf7a236d3270d1194e7f76dd94" title="Dereference an iterator Dereference an iterator: a bounds&amp;#39; check is done before returning the val...">operator * </a>()<span class="keyword"> const </span>{
<a name="l00571"></a>00571 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00482.html#a3671e4c0381919ea210722f59d25c60d">it_</a> &gt;= (*<span class="keyword">this</span>) ().<a class="code" href="a00481.html#a3737e9b662f9ba10fa87789de4fa37f6" title="return an iterator on the first element of the vector">begin</a> ().<a class="code" href="a00482.html#a3671e4c0381919ea210722f59d25c60d">it_</a> &amp;&amp; <a class="code" href="a00482.html#a3671e4c0381919ea210722f59d25c60d">it_</a> &lt; (*<span class="keyword">this</span>) ().<a class="code" href="a00481.html#a0bde39bb3dac56f1c0c8cc6e044942ab" title="return an iterator after the last element of the vector">end</a> ().<a class="code" href="a00482.html#a3671e4c0381919ea210722f59d25c60d">it_</a>, <a class="code" href="a00015.html">bad_index</a> ());
<a name="l00572"></a>00572 <span class="keywordflow">return</span> *<a class="code" href="a00482.html#a3671e4c0381919ea210722f59d25c60d">it_</a>;
<a name="l00573"></a>00573 }
<a name="l00574"></a>00574
<a name="l00579"></a>00579 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00580"></a><a class="code" href="a00482.html#aed6e116cffebf9bcf3af11136e8c483e">00580</a> <a class="code" href="a00481.html#af22dff817d4a7b6366a1c525b2605d0a">const_reference</a> <a class="code" href="a00482.html#aed6e116cffebf9bcf3af11136e8c483e" title="Dereference an iterator at the n-th forward value Dereference an iterator at the n-th forward value...">operator [] </a>(<a class="code" href="a00482.html#a81848b295d0b0ab616b22389d68f6def">difference_type</a> n)<span class="keyword"> const </span>{
<a name="l00581"></a>00581 <span class="keywordflow">return</span> *(<a class="code" href="a00482.html#a3671e4c0381919ea210722f59d25c60d">it_</a> + n);
<a name="l00582"></a>00582 }
<a name="l00583"></a>00583
<a name="l00584"></a>00584 <span class="comment">// Index</span>
<a name="l00586"></a>00586 <span class="comment"></span> <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00587"></a><a class="code" href="a00482.html#aa6bbfc9b7f699a2588b3b6067dd4268a">00587</a> <a class="code" href="a00481.html#a738b42501164c4bf04477aeb866f2928">size_type</a> <a class="code" href="a00482.html#aa6bbfc9b7f699a2588b3b6067dd4268a" title="return the index of the element referenced by the iterator">index</a> ()<span class="keyword"> const </span>{
<a name="l00588"></a>00588 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00482.html#a3671e4c0381919ea210722f59d25c60d">it_</a> &gt;= (*<span class="keyword">this</span>) ().<a class="code" href="a00481.html#a3737e9b662f9ba10fa87789de4fa37f6" title="return an iterator on the first element of the vector">begin</a> ().<a class="code" href="a00482.html#a3671e4c0381919ea210722f59d25c60d">it_</a> &amp;&amp; <a class="code" href="a00482.html#a3671e4c0381919ea210722f59d25c60d">it_</a> &lt; (*<span class="keyword">this</span>) ().<a class="code" href="a00481.html#a0bde39bb3dac56f1c0c8cc6e044942ab" title="return an iterator after the last element of the vector">end</a> ().<a class="code" href="a00482.html#a3671e4c0381919ea210722f59d25c60d">it_</a>, <a class="code" href="a00015.html">bad_index</a> ());
<a name="l00589"></a>00589 <span class="keywordflow">return</span> <a class="code" href="a00482.html#a3671e4c0381919ea210722f59d25c60d">it_</a> - (*this) ().<a class="code" href="a00481.html#a3737e9b662f9ba10fa87789de4fa37f6" title="return an iterator on the first element of the vector">begin</a> ().<a class="code" href="a00482.html#a3671e4c0381919ea210722f59d25c60d">it_</a>;
<a name="l00590"></a>00590 }
<a name="l00591"></a>00591
<a name="l00592"></a>00592 <span class="comment">// Assignment</span>
<a name="l00593"></a>00593 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00595"></a><a class="code" href="a00482.html#ae50919d7a80c0db6c4639854af11121a">00595</a> <a class="code" href="a00482.html">const_iterator</a> &amp;<a class="code" href="a00482.html#ae50919d7a80c0db6c4639854af11121a" title="assign the value of an iterator to the iterator">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00482.html">const_iterator</a> &amp;it) {
<a name="l00596"></a>00596 <a class="code" href="a00069.html#ab14250fc4fe5b9bcab4eb9fba8a5b5f8">container_const_reference&lt;self_type&gt;::assign</a> (&amp;it ());
<a name="l00597"></a>00597 <a class="code" href="a00482.html#a3671e4c0381919ea210722f59d25c60d">it_</a> = it.<a class="code" href="a00482.html#a3671e4c0381919ea210722f59d25c60d">it_</a>;
<a name="l00598"></a>00598 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00599"></a>00599 }
<a name="l00600"></a>00600
<a name="l00601"></a>00601 <span class="comment">// Comparison</span>
<a name="l00604"></a>00604 <span class="comment"></span> <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00605"></a><a class="code" href="a00482.html#ac73d92631ffa4397960976491849af60">00605</a> <span class="keywordtype">bool</span> <a class="code" href="a00482.html#ac73d92631ffa4397960976491849af60" title="compare the value of two itetarors">operator == </a>(<span class="keyword">const</span> <a class="code" href="a00482.html">const_iterator</a> &amp;it)<span class="keyword"> const </span>{
<a name="l00606"></a>00606 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&amp;(*<span class="keyword">this</span>) () == &amp;it (), <a class="code" href="a00132.html">external_logic</a> ());
<a name="l00607"></a>00607 <span class="keywordflow">return</span> <a class="code" href="a00482.html#a3671e4c0381919ea210722f59d25c60d">it_</a> == it.<a class="code" href="a00482.html#a3671e4c0381919ea210722f59d25c60d">it_</a>;
<a name="l00608"></a>00608 }
<a name="l00609"></a>00609
<a name="l00610"></a>00610
<a name="l00613"></a>00613 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00614"></a><a class="code" href="a00482.html#ad7c19d9c67393b8f8dcf92835f2a59f7">00614</a> <span class="keywordtype">bool</span> <a class="code" href="a00482.html#ad7c19d9c67393b8f8dcf92835f2a59f7" title="compare the value of two iterators">operator &lt; </a>(<span class="keyword">const</span> <a class="code" href="a00482.html">const_iterator</a> &amp;it)<span class="keyword"> const </span>{
<a name="l00615"></a>00615 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&amp;(*<span class="keyword">this</span>) () == &amp;it (), <a class="code" href="a00132.html">external_logic</a> ());
<a name="l00616"></a>00616 <span class="keywordflow">return</span> <a class="code" href="a00482.html#a3671e4c0381919ea210722f59d25c60d">it_</a> &lt; it.<a class="code" href="a00482.html#a3671e4c0381919ea210722f59d25c60d">it_</a>;
<a name="l00617"></a>00617 }
<a name="l00618"></a>00618
<a name="l00619"></a>00619 <span class="keyword">private</span>:
<a name="l00620"></a><a class="code" href="a00482.html#a3671e4c0381919ea210722f59d25c60d">00620</a> <a class="code" href="a00481.html#a3f4857d44bc39c9c639a61be06f56c1c">const_subiterator_type</a> <a class="code" href="a00482.html#a3671e4c0381919ea210722f59d25c60d">it_</a>;
<a name="l00621"></a>00621
<a name="l00622"></a><a class="code" href="a00482.html#a67171474c4da6cc8efe0c7fafefd2b2d">00622</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="a00483.html">iterator</a>;
<a name="l00623"></a>00623 };
<a name="l00624"></a>00624 <span class="preprocessor">#endif</span>
<a name="l00625"></a>00625 <span class="preprocessor"></span>
<a name="l00627"></a>00627 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00628"></a><a class="code" href="a00481.html#a3737e9b662f9ba10fa87789de4fa37f6">00628</a> const_iterator <a class="code" href="a00481.html#a3737e9b662f9ba10fa87789de4fa37f6" title="return an iterator on the first element of the vector">begin</a> ()<span class="keyword"> const </span>{
<a name="l00629"></a>00629 <span class="keywordflow">return</span> <a class="code" href="a00481.html#a3be04f746cfe32f0de3aaa2a5273f3a1" title="Return a const iterator to the element i.">find</a> (0);
<a name="l00630"></a>00630 }
<a name="l00631"></a>00631
<a name="l00633"></a>00633 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00634"></a><a class="code" href="a00481.html#a0bde39bb3dac56f1c0c8cc6e044942ab">00634</a> const_iterator <a class="code" href="a00481.html#a0bde39bb3dac56f1c0c8cc6e044942ab" title="return an iterator after the last element of the vector">end</a> ()<span class="keyword"> const </span>{
<a name="l00635"></a>00635 <span class="keywordflow">return</span> <a class="code" href="a00481.html#a3be04f746cfe32f0de3aaa2a5273f3a1" title="Return a const iterator to the element i.">find</a> (<a class="code" href="a00481.html#aa26cf7b9be0ccf4587d6bc4b92bfdf1f">data_</a>.<a class="code" href="a00040.html#a9baeb6af213c42e2e9ed2258aec209d8">size</a> ());
<a name="l00636"></a>00636 }
<a name="l00637"></a>00637
<a name="l00638"></a>00638 <span class="preprocessor">#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR</span>
<a name="l00639"></a><a class="code" href="a00483.html">00639</a> <span class="preprocessor"></span> <span class="keyword">class </span><a class="code" href="a00483.html">iterator</a>:
<a name="l00640"></a>00640 <span class="keyword">public</span> <a class="code" href="a00070.html" title="Base class of all proxy classes that contain a (redirectable) reference to a mutable object...">container_reference</a>&lt;vector&gt;,
<a name="l00641"></a>00641 <span class="keyword">public</span> <a class="code" href="a00365.html" title="Base class of all random access iterators.">random_access_iterator_base</a>&lt;dense_random_access_iterator_tag,
<a name="l00642"></a>00642 iterator, value_type, difference_type&gt; {
<a name="l00643"></a>00643 <span class="keyword">public</span>:
<a name="l00644"></a><a class="code" href="a00483.html#ad8dc2233f3059d05c891cc3cecd5adf8">00644</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00481.html#a30f565fa5b60bbd5be461cd944d70166">vector::difference_type</a> <a class="code" href="a00483.html#ad8dc2233f3059d05c891cc3cecd5adf8">difference_type</a>;
<a name="l00645"></a><a class="code" href="a00483.html#a3cdb755e9705aecd7dbbe82b7dd36e9b">00645</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00481.html#a676ded0b5b43617c292d2564eabd0040">vector::value_type</a> <a class="code" href="a00483.html#a3cdb755e9705aecd7dbbe82b7dd36e9b">value_type</a>;
<a name="l00646"></a><a class="code" href="a00483.html#a5411b11923d8ffdcf62676124f81372d">00646</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00481.html#a6aebdce7445c7a3fd99acfe776b786f7">vector::reference</a> <a class="code" href="a00483.html#a5411b11923d8ffdcf62676124f81372d">reference</a>;
<a name="l00647"></a><a class="code" href="a00483.html#a694820f2fcf32f63e8c606daf8a7f179">00647</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00481.html#a65d2d017e9a37d6f689b2dfb96998941">vector::pointer</a> <a class="code" href="a00483.html#a694820f2fcf32f63e8c606daf8a7f179">pointer</a>;
<a name="l00648"></a>00648
<a name="l00649"></a>00649
<a name="l00650"></a>00650 <span class="comment">// Construction and destruction</span>
<a name="l00651"></a>00651 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00652"></a><a class="code" href="a00483.html#a2acd95d85f19f5c858b1069e2eff5e32">00652</a> <a class="code" href="a00483.html#a2acd95d85f19f5c858b1069e2eff5e32">iterator</a> ():
<a name="l00653"></a>00653 <a class="code" href="a00070.html" title="Base class of all proxy classes that contain a (redirectable) reference to a mutable object...">container_reference</a>&lt;<a class="code" href="a00481.html" title="A dense vector of values of type T.">self_type</a>&gt; (), <a class="code" href="a00483.html#a17186d817a396ccf5df97af1b8d8fd7a">it_</a> () {}
<a name="l00654"></a>00654 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00655"></a><a class="code" href="a00483.html#af80618f0fbd9443672d5a21470aa097a">00655</a> <a class="code" href="a00483.html#a2acd95d85f19f5c858b1069e2eff5e32">iterator</a> (<a class="code" href="a00481.html" title="A dense vector of values of type T.">self_type</a> &amp;v, <span class="keyword">const</span> <a class="code" href="a00481.html#a90020beeb08aa8ff72c59edf6c202b11">subiterator_type</a> &amp;it):
<a name="l00656"></a>00656 <a class="code" href="a00070.html" title="Base class of all proxy classes that contain a (redirectable) reference to a mutable object...">container_reference</a>&lt;<a class="code" href="a00481.html" title="A dense vector of values of type T.">self_type</a>&gt; (v), <a class="code" href="a00483.html#a17186d817a396ccf5df97af1b8d8fd7a">it_</a> (it) {}
<a name="l00657"></a>00657
<a name="l00658"></a>00658 <span class="comment">// Arithmetic</span>
<a name="l00659"></a>00659 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00660"></a><a class="code" href="a00483.html#a44591f679a4536850ab6176027fd5d79">00660</a> <a class="code" href="a00483.html">iterator</a> &amp;<a class="code" href="a00483.html#a44591f679a4536850ab6176027fd5d79">operator ++ </a>() {
<a name="l00661"></a>00661 ++ <a class="code" href="a00483.html#a17186d817a396ccf5df97af1b8d8fd7a">it_</a>;
<a name="l00662"></a>00662 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00663"></a>00663 }
<a name="l00664"></a>00664 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00665"></a><a class="code" href="a00483.html#af802c2c2ca604d63b9655e3ce81dab1f">00665</a> <a class="code" href="a00483.html">iterator</a> &amp;<a class="code" href="a00483.html#af802c2c2ca604d63b9655e3ce81dab1f">operator -- </a>() {
<a name="l00666"></a>00666 -- <a class="code" href="a00483.html#a17186d817a396ccf5df97af1b8d8fd7a">it_</a>;
<a name="l00667"></a>00667 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00668"></a>00668 }
<a name="l00669"></a>00669 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00670"></a><a class="code" href="a00483.html#a23515620d60e79aa12200540046ac7f0">00670</a> <a class="code" href="a00483.html">iterator</a> &amp;<a class="code" href="a00483.html#a23515620d60e79aa12200540046ac7f0">operator += </a>(<a class="code" href="a00483.html#ad8dc2233f3059d05c891cc3cecd5adf8">difference_type</a> n) {
<a name="l00671"></a>00671 <a class="code" href="a00483.html#a17186d817a396ccf5df97af1b8d8fd7a">it_</a> += n;
<a name="l00672"></a>00672 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00673"></a>00673 }
<a name="l00674"></a>00674 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00675"></a><a class="code" href="a00483.html#ad5bb0e3d4843b4a82430ce4b8da036fd">00675</a> <a class="code" href="a00483.html">iterator</a> &amp;<a class="code" href="a00483.html#ad5bb0e3d4843b4a82430ce4b8da036fd">operator -= </a>(<a class="code" href="a00483.html#ad8dc2233f3059d05c891cc3cecd5adf8">difference_type</a> n) {
<a name="l00676"></a>00676 <a class="code" href="a00483.html#a17186d817a396ccf5df97af1b8d8fd7a">it_</a> -= n;
<a name="l00677"></a>00677 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00678"></a>00678 }
<a name="l00679"></a>00679 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00680"></a><a class="code" href="a00483.html#a37af82c13bea28b7a3ecfd509d51ee1c">00680</a> <a class="code" href="a00483.html#ad8dc2233f3059d05c891cc3cecd5adf8">difference_type</a> <a class="code" href="a00483.html#a37af82c13bea28b7a3ecfd509d51ee1c">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00483.html">iterator</a> &amp;it)<span class="keyword"> const </span>{
<a name="l00681"></a>00681 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&amp;(*<span class="keyword">this</span>) () == &amp;it (), <a class="code" href="a00132.html">external_logic</a> ());
<a name="l00682"></a>00682 <span class="keywordflow">return</span> <a class="code" href="a00483.html#a17186d817a396ccf5df97af1b8d8fd7a">it_</a> - it.<a class="code" href="a00483.html#a17186d817a396ccf5df97af1b8d8fd7a">it_</a>;
<a name="l00683"></a>00683 }
<a name="l00684"></a>00684
<a name="l00685"></a>00685 <span class="comment">// Dereference</span>
<a name="l00686"></a>00686 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00687"></a><a class="code" href="a00483.html#a3b7a5da46b5f05e9440b2173e42df9cc">00687</a> <a class="code" href="a00483.html#a5411b11923d8ffdcf62676124f81372d">reference</a> <a class="code" href="a00483.html#a3b7a5da46b5f05e9440b2173e42df9cc">operator * </a>()<span class="keyword"> const </span>{
<a name="l00688"></a>00688 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00483.html#a17186d817a396ccf5df97af1b8d8fd7a">it_</a> &gt;= (*<span class="keyword">this</span>) ().<a class="code" href="a00481.html#a3737e9b662f9ba10fa87789de4fa37f6" title="return an iterator on the first element of the vector">begin</a> ().<a class="code" href="a00483.html#a17186d817a396ccf5df97af1b8d8fd7a">it_</a> &amp;&amp; <a class="code" href="a00483.html#a17186d817a396ccf5df97af1b8d8fd7a">it_</a> &lt; (*<span class="keyword">this</span>) ().<a class="code" href="a00481.html#a0bde39bb3dac56f1c0c8cc6e044942ab" title="return an iterator after the last element of the vector">end</a> ().<a class="code" href="a00483.html#a17186d817a396ccf5df97af1b8d8fd7a">it_</a> , <a class="code" href="a00015.html">bad_index</a> ());
<a name="l00689"></a>00689 <span class="keywordflow">return</span> *<a class="code" href="a00483.html#a17186d817a396ccf5df97af1b8d8fd7a">it_</a>;
<a name="l00690"></a>00690 }
<a name="l00691"></a>00691 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00692"></a><a class="code" href="a00483.html#a522327d2a1c28dfe69522c823b240bad">00692</a> <a class="code" href="a00483.html#a5411b11923d8ffdcf62676124f81372d">reference</a> <a class="code" href="a00483.html#a522327d2a1c28dfe69522c823b240bad">operator [] </a>(<a class="code" href="a00483.html#ad8dc2233f3059d05c891cc3cecd5adf8">difference_type</a> n)<span class="keyword"> const </span>{
<a name="l00693"></a>00693 <span class="keywordflow">return</span> *(<a class="code" href="a00483.html#a17186d817a396ccf5df97af1b8d8fd7a">it_</a> + n);
<a name="l00694"></a>00694 }
<a name="l00695"></a>00695
<a name="l00696"></a>00696 <span class="comment">// Index</span>
<a name="l00697"></a>00697 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00698"></a><a class="code" href="a00483.html#a7240ecd5e748108833a508a77a28cff8">00698</a> <a class="code" href="a00481.html#a738b42501164c4bf04477aeb866f2928">size_type</a> <a class="code" href="a00483.html#a7240ecd5e748108833a508a77a28cff8">index</a> ()<span class="keyword"> const </span>{
<a name="l00699"></a>00699 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00483.html#a17186d817a396ccf5df97af1b8d8fd7a">it_</a> &gt;= (*<span class="keyword">this</span>) ().<a class="code" href="a00481.html#a3737e9b662f9ba10fa87789de4fa37f6" title="return an iterator on the first element of the vector">begin</a> ().<a class="code" href="a00483.html#a17186d817a396ccf5df97af1b8d8fd7a">it_</a> &amp;&amp; <a class="code" href="a00483.html#a17186d817a396ccf5df97af1b8d8fd7a">it_</a> &lt; (*<span class="keyword">this</span>) ().<a class="code" href="a00481.html#a0bde39bb3dac56f1c0c8cc6e044942ab" title="return an iterator after the last element of the vector">end</a> ().<a class="code" href="a00483.html#a17186d817a396ccf5df97af1b8d8fd7a">it_</a> , <a class="code" href="a00015.html">bad_index</a> ());
<a name="l00700"></a>00700 <span class="keywordflow">return</span> <a class="code" href="a00483.html#a17186d817a396ccf5df97af1b8d8fd7a">it_</a> - (*this) ().<a class="code" href="a00481.html#a3737e9b662f9ba10fa87789de4fa37f6" title="return an iterator on the first element of the vector">begin</a> ().<a class="code" href="a00482.html#a3671e4c0381919ea210722f59d25c60d">it_</a>;
<a name="l00701"></a>00701 }
<a name="l00702"></a>00702
<a name="l00703"></a>00703 <span class="comment">// Assignment</span>
<a name="l00704"></a>00704 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00705"></a><a class="code" href="a00483.html#a35c48542099b1673fccd678e207d30f1">00705</a> <a class="code" href="a00483.html">iterator</a> &amp;<a class="code" href="a00483.html#a35c48542099b1673fccd678e207d30f1">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00483.html">iterator</a> &amp;it) {
<a name="l00706"></a>00706 <a class="code" href="a00070.html#a8ee5b7e2ac6a45d59e4873df582a02b2">container_reference&lt;self_type&gt;::assign</a> (&amp;it ());
<a name="l00707"></a>00707 <a class="code" href="a00483.html#a17186d817a396ccf5df97af1b8d8fd7a">it_</a> = it.<a class="code" href="a00483.html#a17186d817a396ccf5df97af1b8d8fd7a">it_</a>;
<a name="l00708"></a>00708 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00709"></a>00709 }
<a name="l00710"></a>00710
<a name="l00711"></a>00711 <span class="comment">// Comparison</span>
<a name="l00712"></a>00712 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00713"></a><a class="code" href="a00483.html#a551229fe5a79dd525f18c013e32c19c2">00713</a> <span class="keywordtype">bool</span> <a class="code" href="a00483.html#a551229fe5a79dd525f18c013e32c19c2">operator == </a>(<span class="keyword">const</span> <a class="code" href="a00483.html">iterator</a> &amp;it)<span class="keyword"> const </span>{
<a name="l00714"></a>00714 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&amp;(*<span class="keyword">this</span>) () == &amp;it (), <a class="code" href="a00132.html">external_logic</a> ());
<a name="l00715"></a>00715 <span class="keywordflow">return</span> <a class="code" href="a00483.html#a17186d817a396ccf5df97af1b8d8fd7a">it_</a> == it.<a class="code" href="a00483.html#a17186d817a396ccf5df97af1b8d8fd7a">it_</a>;
<a name="l00716"></a>00716 }
<a name="l00717"></a>00717 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00718"></a><a class="code" href="a00483.html#aff6cd43ffde352ccbea69e9d38f4afda">00718</a> <span class="keywordtype">bool</span> <a class="code" href="a00483.html#aff6cd43ffde352ccbea69e9d38f4afda">operator &lt; </a>(<span class="keyword">const</span> <a class="code" href="a00483.html">iterator</a> &amp;it)<span class="keyword"> const </span>{
<a name="l00719"></a>00719 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&amp;(*<span class="keyword">this</span>) () == &amp;it (), <a class="code" href="a00132.html">external_logic</a> ());
<a name="l00720"></a>00720 <span class="keywordflow">return</span> <a class="code" href="a00483.html#a17186d817a396ccf5df97af1b8d8fd7a">it_</a> &lt; it.<a class="code" href="a00483.html#a17186d817a396ccf5df97af1b8d8fd7a">it_</a>;
<a name="l00721"></a>00721 }
<a name="l00722"></a>00722
<a name="l00723"></a>00723 <span class="keyword">private</span>:
<a name="l00724"></a><a class="code" href="a00483.html#a17186d817a396ccf5df97af1b8d8fd7a">00724</a> <a class="code" href="a00481.html#a90020beeb08aa8ff72c59edf6c202b11">subiterator_type</a> <a class="code" href="a00483.html#a17186d817a396ccf5df97af1b8d8fd7a">it_</a>;
<a name="l00725"></a>00725
<a name="l00726"></a><a class="code" href="a00483.html#ac220ce1c155db1ac44146c12d178056f">00726</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="a00482.html">const_iterator</a>;
<a name="l00727"></a>00727 };
<a name="l00728"></a>00728 <span class="preprocessor">#endif</span>
<a name="l00729"></a>00729 <span class="preprocessor"></span>
<a name="l00731"></a>00731 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00732"></a><a class="code" href="a00481.html#a3160d419e77bfd6fe805e4a70cbf882b">00732</a> <a class="code" href="a00593.html">iterator</a> <a class="code" href="a00481.html#a3160d419e77bfd6fe805e4a70cbf882b" title="Return an iterator on the first element of the vector.">begin</a> () {
<a name="l00733"></a>00733 <span class="keywordflow">return</span> <a class="code" href="a00481.html#a3be04f746cfe32f0de3aaa2a5273f3a1" title="Return a const iterator to the element i.">find</a> (0);
<a name="l00734"></a>00734 }
<a name="l00735"></a>00735
<a name="l00737"></a>00737 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00738"></a><a class="code" href="a00481.html#afdb08490029b3d55cdec200d665bfa04">00738</a> <a class="code" href="a00593.html">iterator</a> <a class="code" href="a00481.html#afdb08490029b3d55cdec200d665bfa04" title="Return an iterator at the end of the vector.">end</a> () {
<a name="l00739"></a>00739 <span class="keywordflow">return</span> <a class="code" href="a00481.html#a3be04f746cfe32f0de3aaa2a5273f3a1" title="Return a const iterator to the element i.">find</a> (<a class="code" href="a00481.html#aa26cf7b9be0ccf4587d6bc4b92bfdf1f">data_</a>.<a class="code" href="a00040.html#a9baeb6af213c42e2e9ed2258aec209d8">size</a> ());
<a name="l00740"></a>00740 }
<a name="l00741"></a>00741
<a name="l00742"></a>00742 <span class="comment">// Reverse iterator</span>
<a name="l00743"></a><a class="code" href="a00481.html#a85a7d4737407e5ec795ee955da94864d">00743</a> <span class="keyword">typedef</span> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">reverse_iterator_base&lt;const_iterator&gt;</a> <a class="code" href="a00481.html#a85a7d4737407e5ec795ee955da94864d">const_reverse_iterator</a>;
<a name="l00744"></a><a class="code" href="a00481.html#a19a09f65e5e981526e05b7a5b2a8bee9">00744</a> <span class="keyword">typedef</span> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">reverse_iterator_base&lt;iterator&gt;</a> <a class="code" href="a00481.html#a19a09f65e5e981526e05b7a5b2a8bee9">reverse_iterator</a>;
<a name="l00745"></a>00745
<a name="l00747"></a>00747 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00748"></a><a class="code" href="a00481.html#a1860dd32b80e7418fbf49fe7b99f6012">00748</a> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">const_reverse_iterator</a> <a class="code" href="a00481.html#a1860dd32b80e7418fbf49fe7b99f6012" title="Return a const reverse iterator before the first element of the reversed vector (i.e. end() of normal vector)">rbegin</a> ()<span class="keyword"> const </span>{
<a name="l00749"></a>00749 <span class="keywordflow">return</span> <a class="code" href="a00481.html#a85a7d4737407e5ec795ee955da94864d">const_reverse_iterator</a> (<a class="code" href="a00481.html#a0bde39bb3dac56f1c0c8cc6e044942ab" title="return an iterator after the last element of the vector">end</a> ());
<a name="l00750"></a>00750 }
<a name="l00751"></a>00751
<a name="l00753"></a>00753 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00754"></a><a class="code" href="a00481.html#a0098add795c37e4d67f6f98436e1aac8">00754</a> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">const_reverse_iterator</a> <a class="code" href="a00481.html#a0098add795c37e4d67f6f98436e1aac8" title="Return a const reverse iterator on the end of the reverse vector (i.e. first element of the normal ve...">rend</a> ()<span class="keyword"> const </span>{
<a name="l00755"></a>00755 <span class="keywordflow">return</span> <a class="code" href="a00481.html#a85a7d4737407e5ec795ee955da94864d">const_reverse_iterator</a> (<a class="code" href="a00481.html#a3737e9b662f9ba10fa87789de4fa37f6" title="return an iterator on the first element of the vector">begin</a> ());
<a name="l00756"></a>00756 }
<a name="l00757"></a>00757
<a name="l00759"></a>00759 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00760"></a><a class="code" href="a00481.html#a1595a26c1f668988af4a8bbe86ae4ed4">00760</a> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">reverse_iterator</a> <a class="code" href="a00481.html#a1595a26c1f668988af4a8bbe86ae4ed4" title="Return a const reverse iterator before the first element of the reversed vector (i.e. end() of normal vector)">rbegin</a> () {
<a name="l00761"></a>00761 <span class="keywordflow">return</span> <a class="code" href="a00481.html#a19a09f65e5e981526e05b7a5b2a8bee9">reverse_iterator</a> (<a class="code" href="a00481.html#a0bde39bb3dac56f1c0c8cc6e044942ab" title="return an iterator after the last element of the vector">end</a> ());
<a name="l00762"></a>00762 }
<a name="l00763"></a>00763
<a name="l00765"></a>00765 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00766"></a><a class="code" href="a00481.html#a423d1dc8dbf20b2180093a504dea0ea2">00766</a> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">reverse_iterator</a> <a class="code" href="a00481.html#a423d1dc8dbf20b2180093a504dea0ea2" title="Return a const reverse iterator on the end of the reverse vector (i.e. first element of the normal ve...">rend</a> () {
<a name="l00767"></a>00767 <span class="keywordflow">return</span> <a class="code" href="a00481.html#a19a09f65e5e981526e05b7a5b2a8bee9">reverse_iterator</a> (<a class="code" href="a00481.html#a3737e9b662f9ba10fa87789de4fa37f6" title="return an iterator on the first element of the vector">begin</a> ());
<a name="l00768"></a>00768 }
<a name="l00769"></a>00769
<a name="l00770"></a>00770 <span class="comment">// -------------</span>
<a name="l00771"></a>00771 <span class="comment">// Serialization</span>
<a name="l00772"></a>00772 <span class="comment">// -------------</span>
<a name="l00773"></a>00773
<a name="l00777"></a>00777 <span class="keyword">template</span>&lt;<span class="keyword">class</span> Archive&gt;
<a name="l00778"></a><a class="code" href="a00481.html#a44062e23411cf30e80dd25d500cdfe2e">00778</a> <span class="keywordtype">void</span> <a class="code" href="a00481.html#a44062e23411cf30e80dd25d500cdfe2e">serialize</a>(Archive &amp; ar, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <span class="comment">/* file_version */</span>){
<a name="l00779"></a>00779 ar &amp; serialization::make_nvp(<span class="stringliteral">&quot;data&quot;</span>,<a class="code" href="a00481.html#aa26cf7b9be0ccf4587d6bc4b92bfdf1f">data_</a>);
<a name="l00780"></a>00780 }
<a name="l00781"></a>00781
<a name="l00782"></a>00782 <span class="keyword">private</span>:
<a name="l00783"></a><a class="code" href="a00481.html#aa26cf7b9be0ccf4587d6bc4b92bfdf1f">00783</a> <a class="code" href="a00040.html">array_type</a> <a class="code" href="a00481.html#aa26cf7b9be0ccf4587d6bc4b92bfdf1f">data_</a>;
<a name="l00784"></a>00784 };
<a name="l00785"></a>00785
<a name="l00786"></a>00786
<a name="l00787"></a>00787 <span class="comment">// --------------------</span>
<a name="l00788"></a>00788 <span class="comment">// Bounded vector class</span>
<a name="l00789"></a>00789 <span class="comment">// --------------------</span>
<a name="l00790"></a>00790
<a name="l00794"></a>00794 <span class="keyword">template</span>&lt;<span class="keyword">class</span> T, std::<span class="keywordtype">size_t</span> N&gt;
<a name="l00795"></a><a class="code" href="a00042.html">00795</a> <span class="keyword">class </span><a class="code" href="a00042.html" title="a dense vector of values of type T, of variable size but with maximum . A dense vector of values of t...">bounded_vector</a>:
<a name="l00796"></a>00796 <span class="keyword">public</span> <a class="code" href="a00481.html" title="A dense vector of values of type T.">vector</a>&lt;T, bounded_array&lt;T, N&gt; &gt; {
<a name="l00797"></a>00797
<a name="l00798"></a><a class="code" href="a00042.html#aba7d0fdf63f086f1b308f9359330ea55">00798</a> <span class="keyword">typedef</span> <a class="code" href="a00481.html" title="A dense vector of values of type T.">vector&lt;T, bounded_array&lt;T, N&gt;</a> &gt; <a class="code" href="a00042.html#aba7d0fdf63f086f1b308f9359330ea55">vector_type</a>;
<a name="l00799"></a>00799 <span class="keyword">public</span>:
<a name="l00800"></a><a class="code" href="a00042.html#a32aec41bf0bc357d0339f6a94ed6becb">00800</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00481.html#a738b42501164c4bf04477aeb866f2928">vector_type::size_type</a> <a class="code" href="a00042.html#a32aec41bf0bc357d0339f6a94ed6becb">size_type</a>;
<a name="l00801"></a><a class="code" href="a00042.html#a12d8c229a8addafedfe09c15ceeced07">00801</a> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="a00042.html#a32aec41bf0bc357d0339f6a94ed6becb">size_type</a> <a class="code" href="a00481.html#a40757a37ac3ad92fc89895a200ac5de3" title="Return the maximum size of the data container. Return the upper bound (maximum size) on the data cont...">max_size</a> = N;
<a name="l00802"></a>00802
<a name="l00803"></a>00803 <span class="comment">// Construction and destruction</span>
<a name="l00804"></a>00804 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00805"></a><a class="code" href="a00042.html#a4656cefa63a1b9f8046b361433909014">00805</a> <a class="code" href="a00042.html#a4656cefa63a1b9f8046b361433909014">bounded_vector</a> ():
<a name="l00806"></a>00806 <a class="code" href="a00481.html">vector_type</a> (N) {}
<a name="l00807"></a>00807 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00808"></a><a class="code" href="a00042.html#a84a6ae2ab1dc2184ac76171c22123c14">00808</a> <a class="code" href="a00042.html#a4656cefa63a1b9f8046b361433909014">bounded_vector</a> (<a class="code" href="a00042.html#a32aec41bf0bc357d0339f6a94ed6becb">size_type</a> <a class="code" href="a00481.html#a1b9ef7522219d74ebd27bab25e4b6841" title="Return the size of the vector.">size</a>):
<a name="l00809"></a>00809 <a class="code" href="a00481.html">vector_type</a> (size) {}
<a name="l00810"></a>00810 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00811"></a><a class="code" href="a00042.html#a91c50999b0c84c4cfb0baa6e2b5db2de">00811</a> <a class="code" href="a00042.html#a4656cefa63a1b9f8046b361433909014">bounded_vector</a> (<span class="keyword">const</span> <a class="code" href="a00042.html" title="a dense vector of values of type T, of variable size but with maximum . A dense vector of values of t...">bounded_vector</a> &amp;v):
<a name="l00812"></a>00812 <a class="code" href="a00481.html">vector_type</a> (v) {}
<a name="l00813"></a>00813 <span class="keyword">template</span>&lt;<span class="keyword">class</span> A2&gt; <span class="comment">// Allow vector&lt;T,bounded_array&lt;N&gt; construction</span>
<a name="l00814"></a>00814 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00815"></a><a class="code" href="a00042.html#afce136dff3ee3e8b1ff10c44b147c10b">00815</a> <a class="code" href="a00042.html#a4656cefa63a1b9f8046b361433909014">bounded_vector</a> (<span class="keyword">const</span> <a class="code" href="a00481.html" title="A dense vector of values of type T.">vector&lt;T, A2&gt;</a> &amp;v):
<a name="l00816"></a>00816 <a class="code" href="a00481.html">vector_type</a> (v) {}
<a name="l00817"></a>00817 <span class="keyword">template</span>&lt;<span class="keyword">class</span> AE&gt;
<a name="l00818"></a>00818 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00819"></a><a class="code" href="a00042.html#adfbb4aa1e572c8ca4323111877f04487">00819</a> <a class="code" href="a00042.html#a4656cefa63a1b9f8046b361433909014">bounded_vector</a> (<span class="keyword">const</span> <a class="code" href="a00507.html" title="Base class for Vector Expression models.">vector_expression&lt;AE&gt;</a> &amp;ae):
<a name="l00820"></a>00820 <a class="code" href="a00481.html">vector_type</a> (ae) {}
<a name="l00821"></a>00821 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00822"></a><a class="code" href="a00042.html#adc9e3054dea36634fc8f4a06f0911bea">00822</a> <a class="code" href="a00042.html#adc9e3054dea36634fc8f4a06f0911bea">~bounded_vector</a> () {}
<a name="l00823"></a>00823
<a name="l00824"></a>00824 <span class="comment">// Assignment</span>
<a name="l00825"></a>00825 <span class="preprocessor">#ifdef BOOST_UBLAS_MOVE_SEMANTICS</span>
<a name="l00826"></a>00826 <span class="preprocessor"></span>
<a name="l00828"></a>00828 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00829"></a>00829 <a class="code" href="a00042.html" title="a dense vector of values of type T, of variable size but with maximum . A dense vector of values of t...">bounded_vector</a> &amp;<a class="code" href="a00042.html#a33d66943a8492d0f6107a28cef819794">operator = </a>(<a class="code" href="a00042.html" title="a dense vector of values of type T, of variable size but with maximum . A dense vector of values of t...">bounded_vector</a> v) {
<a name="l00830"></a>00830 <a class="code" href="a00481.html#a1724d353e3006619a995342bc6be134e" title="Assign a full vector (RHS-vector) to the current vector (LHS-vector)">vector_type::operator = </a>(v);
<a name="l00831"></a>00831 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00832"></a>00832 }
<a name="l00833"></a>00833 <span class="preprocessor">#else</span>
<a name="l00834"></a>00834 <span class="preprocessor"></span> <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00835"></a><a class="code" href="a00042.html#a33d66943a8492d0f6107a28cef819794">00835</a> <a class="code" href="a00042.html" title="a dense vector of values of type T, of variable size but with maximum . A dense vector of values of t...">bounded_vector</a> &amp;<a class="code" href="a00042.html#a33d66943a8492d0f6107a28cef819794">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00042.html" title="a dense vector of values of type T, of variable size but with maximum . A dense vector of values of t...">bounded_vector</a> &amp;v) {
<a name="l00836"></a>00836 <a class="code" href="a00481.html#a1724d353e3006619a995342bc6be134e" title="Assign a full vector (RHS-vector) to the current vector (LHS-vector)">vector_type::operator = </a>(v);
<a name="l00837"></a>00837 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00838"></a>00838 }
<a name="l00839"></a>00839 <span class="preprocessor">#endif</span>
<a name="l00840"></a>00840 <span class="preprocessor"></span> <span class="keyword">template</span>&lt;<span class="keyword">class</span> A2&gt; <span class="comment">// Generic vector assignment</span>
<a name="l00841"></a>00841 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00842"></a><a class="code" href="a00042.html#a1851bc7224c352bdb06fa59383dd9dc0">00842</a> <a class="code" href="a00042.html" title="a dense vector of values of type T, of variable size but with maximum . A dense vector of values of t...">bounded_vector</a> &amp;<a class="code" href="a00042.html#a33d66943a8492d0f6107a28cef819794">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00481.html" title="A dense vector of values of type T.">vector&lt;T, A2&gt;</a> &amp;v) {
<a name="l00843"></a>00843 <a class="code" href="a00481.html#a1724d353e3006619a995342bc6be134e" title="Assign a full vector (RHS-vector) to the current vector (LHS-vector)">vector_type::operator = </a>(v);
<a name="l00844"></a>00844 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00845"></a>00845 }
<a name="l00846"></a>00846 <span class="keyword">template</span>&lt;<span class="keyword">class</span> C&gt; <span class="comment">// Container assignment without temporary</span>
<a name="l00847"></a>00847 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00848"></a><a class="code" href="a00042.html#a4a7502fc64dded94ce5b719da367c2f4">00848</a> <a class="code" href="a00042.html" title="a dense vector of values of type T, of variable size but with maximum . A dense vector of values of t...">bounded_vector</a> &amp;<a class="code" href="a00042.html#a33d66943a8492d0f6107a28cef819794">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00506.html" title="Base class for Vector container models.">vector_container&lt;C&gt;</a> &amp;v) {
<a name="l00849"></a>00849 <a class="code" href="a00481.html#a1724d353e3006619a995342bc6be134e" title="Assign a full vector (RHS-vector) to the current vector (LHS-vector)">vector_type::operator = </a>(v);
<a name="l00850"></a>00850 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00851"></a>00851 }
<a name="l00852"></a>00852 <span class="keyword">template</span>&lt;<span class="keyword">class</span> AE&gt;
<a name="l00853"></a>00853 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00854"></a><a class="code" href="a00042.html#a4d152b88addf11aa2754b3a24f46ba86">00854</a> <a class="code" href="a00042.html" title="a dense vector of values of type T, of variable size but with maximum . A dense vector of values of t...">bounded_vector</a> &amp;<a class="code" href="a00042.html#a33d66943a8492d0f6107a28cef819794">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00507.html" title="Base class for Vector Expression models.">vector_expression&lt;AE&gt;</a> &amp;ae) {
<a name="l00855"></a>00855 <a class="code" href="a00481.html#a1724d353e3006619a995342bc6be134e" title="Assign a full vector (RHS-vector) to the current vector (LHS-vector)">vector_type::operator = </a>(ae);
<a name="l00856"></a>00856 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00857"></a>00857 }
<a name="l00858"></a>00858 };
<a name="l00859"></a>00859
<a name="l00860"></a>00860
<a name="l00861"></a>00861 <span class="comment">// -----------------</span>
<a name="l00862"></a>00862 <span class="comment">// Zero vector class</span>
<a name="l00863"></a>00863 <span class="comment">// -----------------</span>
<a name="l00864"></a>00864
<a name="l00869"></a>00869 <span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keyword">class</span> ALLOC&gt;
<a name="l00870"></a><a class="code" href="a00590.html">00870</a> <span class="keyword">class </span><a class="code" href="a00590.html" title="A zero vector of type T and a given size A zero vector of type T and a given size. This is a virtual vector in the sense that no memory is allocated for storing the zero values: it still acts like any other vector. However assigning values to it will not change the zero vector into a normal vector. It must first be assigned to another normal vector by any suitable means. Its memory footprint is constant.">zero_vector</a>:
<a name="l00871"></a>00871 <span class="keyword">public</span> <a class="code" href="a00506.html" title="Base class for Vector container models.">vector_container</a>&lt;zero_vector&lt;T, ALLOC&gt; &gt; {
<a name="l00872"></a>00872
<a name="l00873"></a><a class="code" href="a00590.html#a1b7b1eecc408104519064382686bef3a">00873</a> <span class="keyword">typedef</span> <span class="keyword">const</span> T *<a class="code" href="a00590.html#a1b7b1eecc408104519064382686bef3a">const_pointer</a>;
<a name="l00874"></a><a class="code" href="a00590.html#a2585d461207b176f9b894818ec25d6ce">00874</a> <span class="keyword">typedef</span> <a class="code" href="a00590.html" title="A zero vector of type T and a given size A zero vector of type T and a given size. This is a virtual vector in the sense that no memory is allocated for storing the zero values: it still acts like any other vector. However assigning values to it will not change the zero vector into a normal vector. It must first be assigned to another normal vector by any suitable means. Its memory footprint is constant.">zero_vector&lt;T, ALLOC&gt;</a> <a class="code" href="a00590.html#a2585d461207b176f9b894818ec25d6ce">self_type</a>;
<a name="l00875"></a>00875 <span class="keyword">public</span>:
<a name="l00876"></a>00876 <span class="preprocessor">#ifdef BOOST_UBLAS_ENABLE_PROXY_SHORTCUTS</span>
<a name="l00877"></a>00877 <span class="preprocessor"></span> <span class="keyword">using</span> <a class="code" href="a00506.html" title="Base class for Vector container models.">vector_container&lt;self_type&gt;::operator </a>();
<a name="l00878"></a>00878 <span class="preprocessor">#endif</span>
<a name="l00879"></a><a class="code" href="a00590.html#aefb8a27a818268d70603c469e86372e7">00879</a> <span class="preprocessor"></span> <span class="keyword">typedef</span> <span class="keyword">typename</span> ALLOC::size_type <a class="code" href="a00590.html#aefb8a27a818268d70603c469e86372e7">size_type</a>;
<a name="l00880"></a><a class="code" href="a00590.html#a87c0d8be3e7a9e96839323cac5b6b69f">00880</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> ALLOC::difference_type <a class="code" href="a00590.html#a87c0d8be3e7a9e96839323cac5b6b69f">difference_type</a>;
<a name="l00881"></a><a class="code" href="a00590.html#a8d25f2e2340597a7f0f7afac5ff27474">00881</a> <span class="keyword">typedef</span> T <a class="code" href="a00590.html#a8d25f2e2340597a7f0f7afac5ff27474">value_type</a>;
<a name="l00882"></a><a class="code" href="a00590.html#a2672481f20b0960002f46a97298ed1a3">00882</a> <span class="keyword">typedef</span> <span class="keyword">const</span> T &amp;<a class="code" href="a00590.html#a2672481f20b0960002f46a97298ed1a3">const_reference</a>;
<a name="l00883"></a><a class="code" href="a00590.html#aa1ae2320ffd68d2da43245f03ba136b7">00883</a> <span class="keyword">typedef</span> T &amp;<a class="code" href="a00590.html#aa1ae2320ffd68d2da43245f03ba136b7">reference</a>;
<a name="l00884"></a><a class="code" href="a00590.html#a356928776dab375c20e7ab5399fcc071">00884</a> <span class="keyword">typedef</span> <span class="keyword">const</span> <a class="code" href="a00531.html">vector_reference&lt;const self_type&gt;</a> <a class="code" href="a00590.html#a356928776dab375c20e7ab5399fcc071">const_closure_type</a>;
<a name="l00885"></a><a class="code" href="a00590.html#ae0a7da5c5ec416870d3eda0646381246">00885</a> <span class="keyword">typedef</span> <a class="code" href="a00531.html">vector_reference&lt;self_type&gt;</a> <a class="code" href="a00590.html#ae0a7da5c5ec416870d3eda0646381246">closure_type</a>;
<a name="l00886"></a><a class="code" href="a00590.html#ae95777612d11c8512bf566c226554173">00886</a> <span class="keyword">typedef</span> <a class="code" href="a00410.html">sparse_tag</a> <a class="code" href="a00590.html#ae95777612d11c8512bf566c226554173">storage_category</a>;
<a name="l00887"></a>00887
<a name="l00888"></a>00888 <span class="comment">// Construction and destruction</span>
<a name="l00889"></a>00889 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00890"></a><a class="code" href="a00590.html#a37ed8423cc212df0638c094d9f24b0a5">00890</a> <a class="code" href="a00590.html#a37ed8423cc212df0638c094d9f24b0a5">zero_vector</a> ():
<a name="l00891"></a>00891 <a class="code" href="a00506.html" title="Base class for Vector container models.">vector_container</a>&lt;<a class="code" href="a00590.html" title="A zero vector of type T and a given size A zero vector of type T and a given size. This is a virtual vector in the sense that no memory is allocated for storing the zero values: it still acts like any other vector. However assigning values to it will not change the zero vector into a normal vector. It must first be assigned to another normal vector by any suitable means. Its memory footprint is constant.">self_type</a>&gt; (),
<a name="l00892"></a>00892 <a class="code" href="a00590.html#a279a1cc2ee143370736b7aa0301e0e57">size_</a> (0) {}
<a name="l00893"></a>00893 <span class="keyword">explicit</span> <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00894"></a><a class="code" href="a00590.html#a248448bb394708627259c7413a597eed">00894</a> <a class="code" href="a00590.html#a37ed8423cc212df0638c094d9f24b0a5">zero_vector</a> (<a class="code" href="a00590.html#aefb8a27a818268d70603c469e86372e7">size_type</a> <a class="code" href="a00590.html#a81b9994470ffeed81135406dbe956a2d">size</a>):
<a name="l00895"></a>00895 <a class="code" href="a00506.html" title="Base class for Vector container models.">vector_container</a>&lt;<a class="code" href="a00590.html" title="A zero vector of type T and a given size A zero vector of type T and a given size. This is a virtual vector in the sense that no memory is allocated for storing the zero values: it still acts like any other vector. However assigning values to it will not change the zero vector into a normal vector. It must first be assigned to another normal vector by any suitable means. Its memory footprint is constant.">self_type</a>&gt; (),
<a name="l00896"></a>00896 <a class="code" href="a00590.html#a279a1cc2ee143370736b7aa0301e0e57">size_</a> (size) {}
<a name="l00897"></a>00897 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00898"></a><a class="code" href="a00590.html#aacc2e79da6af500e60008add483be5aa">00898</a> <a class="code" href="a00590.html#a37ed8423cc212df0638c094d9f24b0a5">zero_vector</a> (<span class="keyword">const</span> <a class="code" href="a00590.html" title="A zero vector of type T and a given size A zero vector of type T and a given size. This is a virtual vector in the sense that no memory is allocated for storing the zero values: it still acts like any other vector. However assigning values to it will not change the zero vector into a normal vector. It must first be assigned to another normal vector by any suitable means. Its memory footprint is constant.">zero_vector</a> &amp;v):
<a name="l00899"></a>00899 <a class="code" href="a00506.html" title="Base class for Vector container models.">vector_container</a>&lt;<a class="code" href="a00590.html" title="A zero vector of type T and a given size A zero vector of type T and a given size. This is a virtual vector in the sense that no memory is allocated for storing the zero values: it still acts like any other vector. However assigning values to it will not change the zero vector into a normal vector. It must first be assigned to another normal vector by any suitable means. Its memory footprint is constant.">self_type</a>&gt; (),
<a name="l00900"></a>00900 <a class="code" href="a00590.html#a279a1cc2ee143370736b7aa0301e0e57">size_</a> (v.<a class="code" href="a00590.html#a279a1cc2ee143370736b7aa0301e0e57">size_</a>) {}
<a name="l00901"></a>00901
<a name="l00902"></a>00902 <span class="comment">// Accessors</span>
<a name="l00903"></a>00903 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00904"></a><a class="code" href="a00590.html#a81b9994470ffeed81135406dbe956a2d">00904</a> <a class="code" href="a00590.html#aefb8a27a818268d70603c469e86372e7">size_type</a> <a class="code" href="a00590.html#a81b9994470ffeed81135406dbe956a2d">size</a> ()<span class="keyword"> const </span>{
<a name="l00905"></a>00905 <span class="keywordflow">return</span> <a class="code" href="a00590.html#a279a1cc2ee143370736b7aa0301e0e57">size_</a>;
<a name="l00906"></a>00906 }
<a name="l00907"></a>00907
<a name="l00908"></a>00908 <span class="comment">// Resizing</span>
<a name="l00909"></a>00909 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00910"></a><a class="code" href="a00590.html#ac2e3354700c3e84a82384178f6bf9d83">00910</a> <span class="keywordtype">void</span> <a class="code" href="a00590.html#ac2e3354700c3e84a82384178f6bf9d83">resize</a> (<a class="code" href="a00590.html#aefb8a27a818268d70603c469e86372e7">size_type</a> <a class="code" href="a00590.html#a81b9994470ffeed81135406dbe956a2d">size</a>, <span class="keywordtype">bool</span> <span class="comment">/*preserve*/</span> = <span class="keyword">true</span>) {
<a name="l00911"></a>00911 <a class="code" href="a00590.html#a279a1cc2ee143370736b7aa0301e0e57">size_</a> = <a class="code" href="a00590.html#a81b9994470ffeed81135406dbe956a2d">size</a>;
<a name="l00912"></a>00912 }
<a name="l00913"></a>00913
<a name="l00914"></a>00914 <span class="comment">// Element support</span>
<a name="l00915"></a>00915 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00916"></a><a class="code" href="a00590.html#a37f25d2ffbaa40338368b1d8fa4274d5">00916</a> <a class="code" href="a00590.html#a1b7b1eecc408104519064382686bef3a">const_pointer</a> <a class="code" href="a00590.html#a37f25d2ffbaa40338368b1d8fa4274d5">find_element</a> (<a class="code" href="a00590.html#aefb8a27a818268d70603c469e86372e7">size_type</a> i)<span class="keyword"> const </span>{
<a name="l00917"></a>00917 <span class="keywordflow">return</span> &amp; <a class="code" href="a00590.html#a842a27f0cab7bd550a0888b7b3107db9">zero_</a>;
<a name="l00918"></a>00918 }
<a name="l00919"></a>00919
<a name="l00920"></a>00920 <span class="comment">// Element access</span>
<a name="l00921"></a>00921 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00922"></a><a class="code" href="a00590.html#a308430d0164388aba01996ee24a45064">00922</a> <a class="code" href="a00590.html#a2672481f20b0960002f46a97298ed1a3">const_reference</a> <a class="code" href="a00506.html#a1fb3e3c565194eaf99e6af65daadc76a">operator () </a>(<a class="code" href="a00590.html#aefb8a27a818268d70603c469e86372e7">size_type</a> <span class="comment">/* i */</span>)<span class="keyword"> const </span>{
<a name="l00923"></a>00923 <span class="keywordflow">return</span> <a class="code" href="a00590.html#a842a27f0cab7bd550a0888b7b3107db9">zero_</a>;
<a name="l00924"></a>00924 }
<a name="l00925"></a>00925
<a name="l00926"></a>00926 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00927"></a><a class="code" href="a00590.html#a1f35a9c45e85dc1fc0be70756f10ef06">00927</a> <a class="code" href="a00590.html#a2672481f20b0960002f46a97298ed1a3">const_reference</a> <a class="code" href="a00590.html#a1f35a9c45e85dc1fc0be70756f10ef06">operator [] </a>(<a class="code" href="a00590.html#aefb8a27a818268d70603c469e86372e7">size_type</a> i)<span class="keyword"> const </span>{
<a name="l00928"></a>00928 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) (i);
<a name="l00929"></a>00929 }
<a name="l00930"></a>00930
<a name="l00931"></a>00931 <span class="comment">// Assignment</span>
<a name="l00932"></a>00932 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00933"></a><a class="code" href="a00590.html#a9e9417949b8404a3fb47b5fe99362a7d">00933</a> <a class="code" href="a00590.html" title="A zero vector of type T and a given size A zero vector of type T and a given size. This is a virtual vector in the sense that no memory is allocated for storing the zero values: it still acts like any other vector. However assigning values to it will not change the zero vector into a normal vector. It must first be assigned to another normal vector by any suitable means. Its memory footprint is constant.">zero_vector</a> &amp;<a class="code" href="a00590.html#a9e9417949b8404a3fb47b5fe99362a7d">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00590.html" title="A zero vector of type T and a given size A zero vector of type T and a given size. This is a virtual vector in the sense that no memory is allocated for storing the zero values: it still acts like any other vector. However assigning values to it will not change the zero vector into a normal vector. It must first be assigned to another normal vector by any suitable means. Its memory footprint is constant.">zero_vector</a> &amp;v) {
<a name="l00934"></a>00934 <a class="code" href="a00590.html#a279a1cc2ee143370736b7aa0301e0e57">size_</a> = v.<a class="code" href="a00590.html#a279a1cc2ee143370736b7aa0301e0e57">size_</a>;
<a name="l00935"></a>00935 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00936"></a>00936 }
<a name="l00937"></a>00937 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00938"></a><a class="code" href="a00590.html#aa76ea554dcaf5454d49f0bb3fe154ced">00938</a> <a class="code" href="a00590.html" title="A zero vector of type T and a given size A zero vector of type T and a given size. This is a virtual vector in the sense that no memory is allocated for storing the zero values: it still acts like any other vector. However assigning values to it will not change the zero vector into a normal vector. It must first be assigned to another normal vector by any suitable means. Its memory footprint is constant.">zero_vector</a> &amp;<a class="code" href="a00590.html#aa76ea554dcaf5454d49f0bb3fe154ced">assign_temporary</a> (<a class="code" href="a00590.html" title="A zero vector of type T and a given size A zero vector of type T and a given size. This is a virtual vector in the sense that no memory is allocated for storing the zero values: it still acts like any other vector. However assigning values to it will not change the zero vector into a normal vector. It must first be assigned to another normal vector by any suitable means. Its memory footprint is constant.">zero_vector</a> &amp;v) {
<a name="l00939"></a>00939 <a class="code" href="a00590.html#a6d56941b86b7b3ee24b834b35d885fb7">swap</a> (v);
<a name="l00940"></a>00940 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00941"></a>00941 }
<a name="l00942"></a>00942
<a name="l00943"></a>00943 <span class="comment">// Swapping</span>
<a name="l00944"></a>00944 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00945"></a><a class="code" href="a00590.html#a6d56941b86b7b3ee24b834b35d885fb7">00945</a> <span class="keywordtype">void</span> <a class="code" href="a00590.html#a6d56941b86b7b3ee24b834b35d885fb7">swap</a> (<a class="code" href="a00590.html" title="A zero vector of type T and a given size A zero vector of type T and a given size. This is a virtual vector in the sense that no memory is allocated for storing the zero values: it still acts like any other vector. However assigning values to it will not change the zero vector into a normal vector. It must first be assigned to another normal vector by any suitable means. Its memory footprint is constant.">zero_vector</a> &amp;v) {
<a name="l00946"></a>00946 <span class="keywordflow">if</span> (<span class="keyword">this</span> != &amp;v) {
<a name="l00947"></a>00947 <a class="code" href="a00590.html#a6d56941b86b7b3ee24b834b35d885fb7">std::swap</a> (<a class="code" href="a00590.html#a279a1cc2ee143370736b7aa0301e0e57">size_</a>, v.<a class="code" href="a00590.html#a279a1cc2ee143370736b7aa0301e0e57">size_</a>);
<a name="l00948"></a>00948 }
<a name="l00949"></a>00949 }
<a name="l00950"></a>00950 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00951"></a><a class="code" href="a00590.html#aeda22f10eb7a022d0eff5788b439d8ef">00951</a> <span class="keyword">friend</span> <span class="keywordtype">void</span> <a class="code" href="a00590.html#aeda22f10eb7a022d0eff5788b439d8ef">swap</a> (<a class="code" href="a00590.html" title="A zero vector of type T and a given size A zero vector of type T and a given size. This is a virtual vector in the sense that no memory is allocated for storing the zero values: it still acts like any other vector. However assigning values to it will not change the zero vector into a normal vector. It must first be assigned to another normal vector by any suitable means. Its memory footprint is constant.">zero_vector</a> &amp;v1, <a class="code" href="a00590.html" title="A zero vector of type T and a given size A zero vector of type T and a given size. This is a virtual vector in the sense that no memory is allocated for storing the zero values: it still acts like any other vector. However assigning values to it will not change the zero vector into a normal vector. It must first be assigned to another normal vector by any suitable means. Its memory footprint is constant.">zero_vector</a> &amp;v2) {
<a name="l00952"></a>00952 v1.<a class="code" href="a00590.html#a6d56941b86b7b3ee24b834b35d885fb7">swap</a> (v2);
<a name="l00953"></a>00953 }
<a name="l00954"></a>00954
<a name="l00955"></a>00955 <span class="comment">// Iterator types</span>
<a name="l00956"></a>00956 <span class="keyword">public</span>:
<a name="l00957"></a>00957 <span class="keyword">class </span>const_iterator;
<a name="l00958"></a>00958
<a name="l00959"></a>00959 <span class="comment">// Element lookup</span>
<a name="l00960"></a>00960 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00961"></a><a class="code" href="a00590.html#ab111d86b78b4c2362056c7d5b5391be5">00961</a> <a class="code" href="a00591.html">const_iterator</a> <a class="code" href="a00590.html#ab111d86b78b4c2362056c7d5b5391be5">find</a> (<a class="code" href="a00590.html#aefb8a27a818268d70603c469e86372e7">size_type</a> <span class="comment">/*i*/</span>)<span class="keyword"> const </span>{
<a name="l00962"></a>00962 <span class="keywordflow">return</span> <a class="code" href="a00591.html">const_iterator</a> (*<span class="keyword">this</span>);
<a name="l00963"></a>00963 }
<a name="l00964"></a>00964
<a name="l00965"></a><a class="code" href="a00591.html">00965</a> <span class="keyword">class </span><a class="code" href="a00591.html">const_iterator</a>:
<a name="l00966"></a>00966 <span class="keyword">public</span> <a class="code" href="a00069.html" title="Base class of all proxy classes that contain a (redirectable) reference to an immutable object...">container_const_reference</a>&lt;zero_vector&gt;,
<a name="l00967"></a>00967 <span class="keyword">public</span> <a class="code" href="a00003.html" title="Base class of all bidirectional iterators.">bidirectional_iterator_base</a>&lt;sparse_bidirectional_iterator_tag,
<a name="l00968"></a>00968 const_iterator, value_type&gt; {
<a name="l00969"></a>00969 <span class="keyword">public</span>:
<a name="l00970"></a><a class="code" href="a00591.html#a5a828efeed49eab33f0ab614ef236bfc">00970</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00590.html#a87c0d8be3e7a9e96839323cac5b6b69f">zero_vector::difference_type</a> <a class="code" href="a00591.html#a5a828efeed49eab33f0ab614ef236bfc">difference_type</a>;
<a name="l00971"></a><a class="code" href="a00591.html#aff4508c4c8ebbe4d12fcbc082174f79a">00971</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00590.html#a8d25f2e2340597a7f0f7afac5ff27474">zero_vector::value_type</a> <a class="code" href="a00591.html#aff4508c4c8ebbe4d12fcbc082174f79a">value_type</a>;
<a name="l00972"></a><a class="code" href="a00591.html#aa445908f1d73bbc22ed9a50665070b2e">00972</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00590.html#a2672481f20b0960002f46a97298ed1a3">zero_vector::const_reference</a> <a class="code" href="a00591.html#aa445908f1d73bbc22ed9a50665070b2e">reference</a>;
<a name="l00973"></a><a class="code" href="a00591.html#aa141f7fc23e77d5539426ce979279a87">00973</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00590.html#a1b7b1eecc408104519064382686bef3a">zero_vector::const_pointer</a> <a class="code" href="a00591.html#aa141f7fc23e77d5539426ce979279a87">pointer</a>;
<a name="l00974"></a>00974
<a name="l00975"></a>00975 <span class="comment">// Construction and destruction</span>
<a name="l00976"></a>00976 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00977"></a><a class="code" href="a00591.html#a2f802728d0722237bcc67c8f06e677f2">00977</a> <a class="code" href="a00591.html#a2f802728d0722237bcc67c8f06e677f2">const_iterator</a> ():
<a name="l00978"></a>00978 <a class="code" href="a00069.html" title="Base class of all proxy classes that contain a (redirectable) reference to an immutable object...">container_const_reference</a>&lt;<a class="code" href="a00590.html" title="A zero vector of type T and a given size A zero vector of type T and a given size. This is a virtual vector in the sense that no memory is allocated for storing the zero values: it still acts like any other vector. However assigning values to it will not change the zero vector into a normal vector. It must first be assigned to another normal vector by any suitable means. Its memory footprint is constant.">self_type</a>&gt; () {}
<a name="l00979"></a>00979 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00980"></a><a class="code" href="a00591.html#afc4152592d809102c7b5bcaea6933b51">00980</a> <a class="code" href="a00591.html#a2f802728d0722237bcc67c8f06e677f2">const_iterator</a> (<span class="keyword">const</span> <a class="code" href="a00590.html" title="A zero vector of type T and a given size A zero vector of type T and a given size. This is a virtual vector in the sense that no memory is allocated for storing the zero values: it still acts like any other vector. However assigning values to it will not change the zero vector into a normal vector. It must first be assigned to another normal vector by any suitable means. Its memory footprint is constant.">self_type</a> &amp;v):
<a name="l00981"></a>00981 <a class="code" href="a00069.html" title="Base class of all proxy classes that contain a (redirectable) reference to an immutable object...">container_const_reference</a>&lt;<a class="code" href="a00590.html" title="A zero vector of type T and a given size A zero vector of type T and a given size. This is a virtual vector in the sense that no memory is allocated for storing the zero values: it still acts like any other vector. However assigning values to it will not change the zero vector into a normal vector. It must first be assigned to another normal vector by any suitable means. Its memory footprint is constant.">self_type</a>&gt; (v) {}
<a name="l00982"></a>00982
<a name="l00983"></a>00983 <span class="comment">// Arithmetic</span>
<a name="l00984"></a>00984 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00985"></a><a class="code" href="a00591.html#a38df16577b7efb2a0cbf39ee27a49d56">00985</a> <a class="code" href="a00591.html">const_iterator</a> &amp;<a class="code" href="a00591.html#a38df16577b7efb2a0cbf39ee27a49d56">operator ++ </a>() {
<a name="l00986"></a>00986 <a class="code" href="a00610.html#a852836a12b58c546c095c00e49f1894e">BOOST_UBLAS_CHECK_FALSE</a> (<a class="code" href="a00015.html">bad_index</a> ());
<a name="l00987"></a>00987 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00988"></a>00988 }
<a name="l00989"></a>00989 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00990"></a><a class="code" href="a00591.html#a0fec0ef64ed084f459ea6edc0afdf617">00990</a> <a class="code" href="a00591.html">const_iterator</a> &amp;<a class="code" href="a00591.html#a0fec0ef64ed084f459ea6edc0afdf617">operator -- </a>() {
<a name="l00991"></a>00991 <a class="code" href="a00610.html#a852836a12b58c546c095c00e49f1894e">BOOST_UBLAS_CHECK_FALSE</a> (<a class="code" href="a00015.html">bad_index</a> ());
<a name="l00992"></a>00992 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00993"></a>00993 }
<a name="l00994"></a>00994
<a name="l00995"></a>00995 <span class="comment">// Dereference</span>
<a name="l00996"></a>00996 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l00997"></a><a class="code" href="a00591.html#a68d4f3511c52095a12167da59f7d6c8b">00997</a> <a class="code" href="a00590.html#a2672481f20b0960002f46a97298ed1a3">const_reference</a> <a class="code" href="a00591.html#a68d4f3511c52095a12167da59f7d6c8b">operator * </a>()<span class="keyword"> const </span>{
<a name="l00998"></a>00998 <a class="code" href="a00610.html#a852836a12b58c546c095c00e49f1894e">BOOST_UBLAS_CHECK_FALSE</a> (<a class="code" href="a00015.html">bad_index</a> ());
<a name="l00999"></a>00999 <span class="keywordflow">return</span> <a class="code" href="a00590.html#a842a27f0cab7bd550a0888b7b3107db9">zero_</a>; <span class="comment">// arbitary return value</span>
<a name="l01000"></a>01000 }
<a name="l01001"></a>01001
<a name="l01002"></a>01002 <span class="comment">// Index</span>
<a name="l01003"></a>01003 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01004"></a><a class="code" href="a00591.html#ade9693c97f1dd62fb79e92d1d2c74303">01004</a> <a class="code" href="a00590.html#aefb8a27a818268d70603c469e86372e7">size_type</a> <a class="code" href="a00591.html#ade9693c97f1dd62fb79e92d1d2c74303">index</a> ()<span class="keyword"> const </span>{
<a name="l01005"></a>01005 <a class="code" href="a00610.html#a852836a12b58c546c095c00e49f1894e">BOOST_UBLAS_CHECK_FALSE</a> (<a class="code" href="a00015.html">bad_index</a> ());
<a name="l01006"></a>01006 <span class="keywordflow">return</span> 0; <span class="comment">// arbitary return value</span>
<a name="l01007"></a>01007 }
<a name="l01008"></a>01008
<a name="l01009"></a>01009 <span class="comment">// Assignment</span>
<a name="l01010"></a>01010 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01011"></a><a class="code" href="a00591.html#a820b725d1adafdf1f53beef392d56bea">01011</a> <a class="code" href="a00591.html">const_iterator</a> &amp;<a class="code" href="a00591.html#a820b725d1adafdf1f53beef392d56bea">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00591.html">const_iterator</a> &amp;it) {
<a name="l01012"></a>01012 <a class="code" href="a00069.html#ab14250fc4fe5b9bcab4eb9fba8a5b5f8">container_const_reference&lt;self_type&gt;::assign</a> (&amp;it ());
<a name="l01013"></a>01013 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01014"></a>01014 }
<a name="l01015"></a>01015
<a name="l01016"></a>01016 <span class="comment">// Comparison</span>
<a name="l01017"></a>01017 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01018"></a><a class="code" href="a00591.html#a767c048a175d196714acb5c13e7ed2e3">01018</a> <span class="keywordtype">bool</span> <a class="code" href="a00591.html#a767c048a175d196714acb5c13e7ed2e3">operator == </a>(<span class="keyword">const</span> <a class="code" href="a00591.html">const_iterator</a> &amp;it)<span class="keyword"> const </span>{
<a name="l01019"></a>01019 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&amp;(*<span class="keyword">this</span>) () == &amp;it (), <a class="code" href="a00132.html">external_logic</a> ());
<a name="l01020"></a>01020 <a class="code" href="a00653.html#a3a2e7ac9dee5d32c7720afbbbe124942">detail::ignore_unused_variable_warning</a>(it);
<a name="l01021"></a>01021 <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l01022"></a>01022 }
<a name="l01023"></a>01023 };
<a name="l01024"></a>01024
<a name="l01025"></a><a class="code" href="a00590.html#a291d2a0f49172db7c78805e48c389d61">01025</a> <span class="keyword">typedef</span> <a class="code" href="a00591.html">const_iterator</a> <a class="code" href="a00590.html#a291d2a0f49172db7c78805e48c389d61">iterator</a>;
<a name="l01026"></a>01026
<a name="l01027"></a>01027 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01028"></a><a class="code" href="a00590.html#a2ff1956210ec2cbf708151d6c2eecea4">01028</a> <a class="code" href="a00591.html">const_iterator</a> <a class="code" href="a00590.html#a2ff1956210ec2cbf708151d6c2eecea4">begin</a> ()<span class="keyword"> const </span>{
<a name="l01029"></a>01029 <span class="keywordflow">return</span> <a class="code" href="a00591.html">const_iterator</a> (*<span class="keyword">this</span>);
<a name="l01030"></a>01030 }
<a name="l01031"></a>01031 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01032"></a><a class="code" href="a00590.html#af7e32ece8dc95e6c0aa557820d98dde7">01032</a> <a class="code" href="a00591.html">const_iterator</a> <a class="code" href="a00590.html#af7e32ece8dc95e6c0aa557820d98dde7">end</a> ()<span class="keyword"> const </span>{
<a name="l01033"></a>01033 <span class="keywordflow">return</span> <a class="code" href="a00591.html">const_iterator</a> (*<span class="keyword">this</span>);
<a name="l01034"></a>01034 }
<a name="l01035"></a>01035
<a name="l01036"></a>01036 <span class="comment">// Reverse iterator</span>
<a name="l01037"></a><a class="code" href="a00590.html#a0d9e5ff5c9c9a9ade369cf0afe3669e6">01037</a> <span class="keyword">typedef</span> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">reverse_iterator_base&lt;const_iterator&gt;</a> <a class="code" href="a00590.html#a0d9e5ff5c9c9a9ade369cf0afe3669e6">const_reverse_iterator</a>;
<a name="l01038"></a>01038
<a name="l01039"></a>01039 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01040"></a><a class="code" href="a00590.html#ab242ef1e1ed313b7124a864e46f4ba88">01040</a> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">const_reverse_iterator</a> <a class="code" href="a00590.html#ab242ef1e1ed313b7124a864e46f4ba88">rbegin</a> ()<span class="keyword"> const </span>{
<a name="l01041"></a>01041 <span class="keywordflow">return</span> <a class="code" href="a00590.html#a0d9e5ff5c9c9a9ade369cf0afe3669e6">const_reverse_iterator</a> (<a class="code" href="a00590.html#af7e32ece8dc95e6c0aa557820d98dde7">end</a> ());
<a name="l01042"></a>01042 }
<a name="l01043"></a>01043 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01044"></a><a class="code" href="a00590.html#af6ed283880e876a7b9baea860081a56d">01044</a> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">const_reverse_iterator</a> <a class="code" href="a00590.html#af6ed283880e876a7b9baea860081a56d">rend</a> ()<span class="keyword"> const </span>{
<a name="l01045"></a>01045 <span class="keywordflow">return</span> <a class="code" href="a00590.html#a0d9e5ff5c9c9a9ade369cf0afe3669e6">const_reverse_iterator</a> (<a class="code" href="a00590.html#a2ff1956210ec2cbf708151d6c2eecea4">begin</a> ());
<a name="l01046"></a>01046 }
<a name="l01047"></a>01047
<a name="l01048"></a>01048 <span class="comment">// Serialization</span>
<a name="l01049"></a>01049 <span class="keyword">template</span>&lt;<span class="keyword">class</span> Archive&gt;
<a name="l01050"></a><a class="code" href="a00590.html#a8e3701adbc2225c5fb30c4fbaae8b9e9">01050</a> <span class="keywordtype">void</span> <a class="code" href="a00590.html#a8e3701adbc2225c5fb30c4fbaae8b9e9">serialize</a>(Archive &amp; ar, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <span class="comment">/* file_version */</span>){
<a name="l01051"></a>01051 serialization::collection_size_type s (<a class="code" href="a00590.html#a279a1cc2ee143370736b7aa0301e0e57">size_</a>);
<a name="l01052"></a>01052 ar &amp; serialization::make_nvp(<span class="stringliteral">&quot;size&quot;</span>,s);
<a name="l01053"></a>01053 <span class="keywordflow">if</span> (Archive::is_loading::value) {
<a name="l01054"></a>01054 <a class="code" href="a00590.html#a279a1cc2ee143370736b7aa0301e0e57">size_</a> = s;
<a name="l01055"></a>01055 }
<a name="l01056"></a>01056 }
<a name="l01057"></a>01057
<a name="l01058"></a>01058 <span class="keyword">private</span>:
<a name="l01059"></a><a class="code" href="a00590.html#a279a1cc2ee143370736b7aa0301e0e57">01059</a> <a class="code" href="a00590.html#aefb8a27a818268d70603c469e86372e7">size_type</a> <a class="code" href="a00590.html#a279a1cc2ee143370736b7aa0301e0e57">size_</a>;
<a name="l01060"></a><a class="code" href="a00590.html#a8aeaaa37bd613f26e5db33447081a808">01060</a> <span class="keyword">typedef</span> <span class="keyword">const</span> <a class="code" href="a00590.html#a8d25f2e2340597a7f0f7afac5ff27474">value_type</a> <a class="code" href="a00590.html#a8aeaaa37bd613f26e5db33447081a808">const_value_type</a>;
<a name="l01061"></a><a class="code" href="a00590.html#a842a27f0cab7bd550a0888b7b3107db9">01061</a> <span class="keyword">static</span> <a class="code" href="a00590.html#a8aeaaa37bd613f26e5db33447081a808">const_value_type</a> <a class="code" href="a00590.html#a842a27f0cab7bd550a0888b7b3107db9">zero_</a>;
<a name="l01062"></a>01062 };
<a name="l01063"></a>01063
<a name="l01064"></a>01064 <span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keyword">class</span> ALLOC&gt;
<a name="l01065"></a>01065 <span class="keyword">typename</span> <a class="code" href="a00590.html#a8aeaaa37bd613f26e5db33447081a808">zero_vector&lt;T, ALLOC&gt;::const_value_type</a> <a class="code" href="a00590.html" title="A zero vector of type T and a given size A zero vector of type T and a given size. This is a virtual vector in the sense that no memory is allocated for storing the zero values: it still acts like any other vector. However assigning values to it will not change the zero vector into a normal vector. It must first be assigned to another normal vector by any suitable means. Its memory footprint is constant.">zero_vector&lt;T, ALLOC&gt;::zero_</a> = T(<span class="comment">/*zero*/</span>);
<a name="l01066"></a>01066
<a name="l01067"></a>01067
<a name="l01068"></a>01068 <span class="comment">// Unit vector class</span>
<a name="l01074"></a>01074 <span class="comment"></span> <span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keyword">class</span> ALLOC&gt;
<a name="l01075"></a><a class="code" href="a00476.html">01075</a> <span class="keyword">class </span><a class="code" href="a00476.html" title="unit_vector represents a canonical unit vector unit_vector represents a canonical unit vector...">unit_vector</a>:
<a name="l01076"></a>01076 <span class="keyword">public</span> <a class="code" href="a00506.html" title="Base class for Vector container models.">vector_container</a>&lt;unit_vector&lt;T, ALLOC&gt; &gt; {
<a name="l01077"></a>01077
<a name="l01078"></a><a class="code" href="a00476.html#a16f6de28fc2528d44e44e79cd9162e41">01078</a> <span class="keyword">typedef</span> <span class="keyword">const</span> T *<a class="code" href="a00476.html#a16f6de28fc2528d44e44e79cd9162e41">const_pointer</a>;
<a name="l01079"></a><a class="code" href="a00476.html#ae8c78f89d973980e802bb17a112fdb6c">01079</a> <span class="keyword">typedef</span> <a class="code" href="a00476.html" title="unit_vector represents a canonical unit vector unit_vector represents a canonical unit vector...">unit_vector&lt;T, ALLOC&gt;</a> <a class="code" href="a00476.html#ae8c78f89d973980e802bb17a112fdb6c">self_type</a>;
<a name="l01080"></a>01080 <span class="keyword">public</span>:
<a name="l01081"></a>01081 <span class="preprocessor">#ifdef BOOST_UBLAS_ENABLE_PROXY_SHORTCUTS</span>
<a name="l01082"></a>01082 <span class="preprocessor"></span> <span class="keyword">using</span> <a class="code" href="a00506.html" title="Base class for Vector container models.">vector_container&lt;self_type&gt;::operator </a>();
<a name="l01083"></a>01083 <span class="preprocessor">#endif</span>
<a name="l01084"></a><a class="code" href="a00476.html#a166b9f6c95cac0532a13400d7d82f54f">01084</a> <span class="preprocessor"></span> <span class="keyword">typedef</span> <span class="keyword">typename</span> ALLOC::size_type <a class="code" href="a00476.html#a166b9f6c95cac0532a13400d7d82f54f">size_type</a>;
<a name="l01085"></a><a class="code" href="a00476.html#a721734426392eb902340b0d26436ac52">01085</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> ALLOC::difference_type <a class="code" href="a00476.html#a721734426392eb902340b0d26436ac52">difference_type</a>;
<a name="l01086"></a><a class="code" href="a00476.html#a72e29cd368ce1cdffd8b7880a27ccb4b">01086</a> <span class="keyword">typedef</span> T <a class="code" href="a00476.html#a72e29cd368ce1cdffd8b7880a27ccb4b">value_type</a>;
<a name="l01087"></a><a class="code" href="a00476.html#a9970a2c2c6c2dbaaf7340166300c1c45">01087</a> <span class="keyword">typedef</span> <span class="keyword">const</span> T &amp;<a class="code" href="a00476.html#a9970a2c2c6c2dbaaf7340166300c1c45">const_reference</a>;
<a name="l01088"></a><a class="code" href="a00476.html#a0b6bef4517e109d605f4e6d6ce1e4e68">01088</a> <span class="keyword">typedef</span> T &amp;<a class="code" href="a00476.html#a0b6bef4517e109d605f4e6d6ce1e4e68">reference</a>;
<a name="l01089"></a><a class="code" href="a00476.html#ab147979d70207a25cb023771375ee3d1">01089</a> <span class="keyword">typedef</span> <span class="keyword">const</span> <a class="code" href="a00531.html">vector_reference&lt;const self_type&gt;</a> <a class="code" href="a00476.html#ab147979d70207a25cb023771375ee3d1">const_closure_type</a>;
<a name="l01090"></a><a class="code" href="a00476.html#a3279f0fd86c21cd508523fa614034614">01090</a> <span class="keyword">typedef</span> <a class="code" href="a00531.html">vector_reference&lt;self_type&gt;</a> <a class="code" href="a00476.html#a3279f0fd86c21cd508523fa614034614">closure_type</a>;
<a name="l01091"></a><a class="code" href="a00476.html#a3b4db29ee6d9e52bcf9480c0842bb983">01091</a> <span class="keyword">typedef</span> <a class="code" href="a00410.html">sparse_tag</a> <a class="code" href="a00476.html#a3b4db29ee6d9e52bcf9480c0842bb983">storage_category</a>;
<a name="l01092"></a>01092
<a name="l01093"></a>01093 <span class="comment">// Construction and destruction</span>
<a name="l01095"></a>01095 <span class="comment"></span> <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01096"></a><a class="code" href="a00476.html#a2c9563ed01b1c1ed02f6889e666ea57b">01096</a> <a class="code" href="a00476.html#a2c9563ed01b1c1ed02f6889e666ea57b" title="Simple constructor with dimension and index 0.">unit_vector</a> ():
<a name="l01097"></a>01097 <a class="code" href="a00506.html" title="Base class for Vector container models.">vector_container</a>&lt;<a class="code" href="a00476.html" title="unit_vector represents a canonical unit vector unit_vector represents a canonical unit vector...">self_type</a>&gt; (),
<a name="l01098"></a>01098 <a class="code" href="a00476.html#af5be12971e8647eb23745270266631f7">size_</a> (0), <a class="code" href="a00476.html#a4fa9ba516030b74a88664adfdfd267cc">index_</a> (0) {}
<a name="l01099"></a>01099
<a name="l01103"></a>01103 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01104"></a><a class="code" href="a00476.html#a902e22f9b4ee33ade864ec4166c7933c">01104</a> <span class="keyword">explicit</span> <a class="code" href="a00476.html#a2c9563ed01b1c1ed02f6889e666ea57b" title="Simple constructor with dimension and index 0.">unit_vector</a> (<a class="code" href="a00476.html#a166b9f6c95cac0532a13400d7d82f54f">size_type</a> <a class="code" href="a00476.html#ae3cab9225c79b18e895d4f1d0f045b80" title="Return the size (dimension) of the vector.">size</a>, <a class="code" href="a00476.html#a166b9f6c95cac0532a13400d7d82f54f">size_type</a> <a class="code" href="a00476.html#acaa259e1495730cd27c61241f4068f28" title="Return the order of the unit vector.">index</a> = 0):
<a name="l01105"></a>01105 <a class="code" href="a00506.html" title="Base class for Vector container models.">vector_container</a>&lt;<a class="code" href="a00476.html" title="unit_vector represents a canonical unit vector unit_vector represents a canonical unit vector...">self_type</a>&gt; (),
<a name="l01106"></a>01106 <a class="code" href="a00476.html#af5be12971e8647eb23745270266631f7">size_</a> (size), <a class="code" href="a00476.html#a4fa9ba516030b74a88664adfdfd267cc">index_</a> (<a class="code" href="a00476.html#acaa259e1495730cd27c61241f4068f28" title="Return the order of the unit vector.">index</a>) {}
<a name="l01107"></a>01107
<a name="l01109"></a>01109 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01110"></a><a class="code" href="a00476.html#a7474b9a13870610d40f7a4e2b584decd">01110</a> <a class="code" href="a00476.html#a2c9563ed01b1c1ed02f6889e666ea57b" title="Simple constructor with dimension and index 0.">unit_vector</a> (<span class="keyword">const</span> <a class="code" href="a00476.html" title="unit_vector represents a canonical unit vector unit_vector represents a canonical unit vector...">unit_vector</a> &amp;v):
<a name="l01111"></a>01111 <a class="code" href="a00506.html" title="Base class for Vector container models.">vector_container</a>&lt;<a class="code" href="a00476.html" title="unit_vector represents a canonical unit vector unit_vector represents a canonical unit vector...">self_type</a>&gt; (),
<a name="l01112"></a>01112 <a class="code" href="a00476.html#af5be12971e8647eb23745270266631f7">size_</a> (v.<a class="code" href="a00476.html#af5be12971e8647eb23745270266631f7">size_</a>), <a class="code" href="a00476.html#a4fa9ba516030b74a88664adfdfd267cc">index_</a> (v.<a class="code" href="a00476.html#a4fa9ba516030b74a88664adfdfd267cc">index_</a>) {}
<a name="l01113"></a>01113
<a name="l01114"></a>01114 <span class="comment">// Accessors</span>
<a name="l01115"></a>01115 <span class="comment">//----------</span>
<a name="l01116"></a>01116
<a name="l01118"></a>01118 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01119"></a><a class="code" href="a00476.html#ae3cab9225c79b18e895d4f1d0f045b80">01119</a> <a class="code" href="a00476.html#a166b9f6c95cac0532a13400d7d82f54f">size_type</a> <a class="code" href="a00476.html#ae3cab9225c79b18e895d4f1d0f045b80" title="Return the size (dimension) of the vector.">size</a> ()<span class="keyword"> const </span>{
<a name="l01120"></a>01120 <span class="keywordflow">return</span> <a class="code" href="a00476.html#af5be12971e8647eb23745270266631f7">size_</a>;
<a name="l01121"></a>01121 }
<a name="l01122"></a>01122
<a name="l01124"></a>01124 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01125"></a><a class="code" href="a00476.html#acaa259e1495730cd27c61241f4068f28">01125</a> <a class="code" href="a00476.html#a166b9f6c95cac0532a13400d7d82f54f">size_type</a> <a class="code" href="a00476.html#acaa259e1495730cd27c61241f4068f28" title="Return the order of the unit vector.">index</a> ()<span class="keyword"> const </span>{
<a name="l01126"></a>01126 <span class="keywordflow">return</span> <a class="code" href="a00476.html#a4fa9ba516030b74a88664adfdfd267cc">index_</a>;
<a name="l01127"></a>01127 }
<a name="l01128"></a>01128
<a name="l01129"></a>01129 <span class="comment">// Resizing</span>
<a name="l01130"></a>01130 <span class="comment">// --------</span>
<a name="l01131"></a>01131
<a name="l01134"></a>01134 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01135"></a><a class="code" href="a00476.html#a7d5c93416d68c17a93bc3dec0a8ad914">01135</a> <span class="keywordtype">void</span> <a class="code" href="a00476.html#a7d5c93416d68c17a93bc3dec0a8ad914" title="Resize the vector. The values are preserved by default (i.e. the index does not change)">resize</a> (<a class="code" href="a00476.html#a166b9f6c95cac0532a13400d7d82f54f">size_type</a> <a class="code" href="a00476.html#ae3cab9225c79b18e895d4f1d0f045b80" title="Return the size (dimension) of the vector.">size</a>, <span class="keywordtype">bool</span> <span class="comment">/*preserve*/</span> = <span class="keyword">true</span>) {
<a name="l01136"></a>01136 <a class="code" href="a00476.html#af5be12971e8647eb23745270266631f7">size_</a> = <a class="code" href="a00476.html#ae3cab9225c79b18e895d4f1d0f045b80" title="Return the size (dimension) of the vector.">size</a>;
<a name="l01137"></a>01137 }
<a name="l01138"></a>01138
<a name="l01139"></a>01139 <span class="comment">// Element support</span>
<a name="l01140"></a>01140 <span class="comment">// ---------------</span>
<a name="l01141"></a>01141
<a name="l01143"></a>01143 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01144"></a><a class="code" href="a00476.html#a3a332a696c21d95de23451238db15248">01144</a> <a class="code" href="a00476.html#a16f6de28fc2528d44e44e79cd9162e41">const_pointer</a> <a class="code" href="a00476.html#a3a332a696c21d95de23451238db15248" title="Return a const pointer to the element of index i.">find_element</a> (<a class="code" href="a00476.html#a166b9f6c95cac0532a13400d7d82f54f">size_type</a> i)<span class="keyword"> const </span>{
<a name="l01145"></a>01145 <span class="keywordflow">if</span> (i == <a class="code" href="a00476.html#a4fa9ba516030b74a88664adfdfd267cc">index_</a>)
<a name="l01146"></a>01146 <span class="keywordflow">return</span> &amp; <a class="code" href="a00476.html#ab7e65d1140b4d53b0bfea9d25d3943b8">one_</a>;
<a name="l01147"></a>01147 <span class="keywordflow">else</span>
<a name="l01148"></a>01148 <span class="keywordflow">return</span> &amp; <a class="code" href="a00476.html#ad6702109aae3e333e77896f10a5fcdbb">zero_</a>;
<a name="l01149"></a>01149 }
<a name="l01150"></a>01150
<a name="l01151"></a>01151 <span class="comment">// Element access</span>
<a name="l01152"></a>01152 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01153"></a><a class="code" href="a00476.html#af54b6cd388c53674328dc399a71cd552">01153</a> <a class="code" href="a00476.html#a9970a2c2c6c2dbaaf7340166300c1c45">const_reference</a> <a class="code" href="a00506.html#a1fb3e3c565194eaf99e6af65daadc76a">operator () </a>(<a class="code" href="a00476.html#a166b9f6c95cac0532a13400d7d82f54f">size_type</a> i)<span class="keyword"> const </span>{
<a name="l01154"></a>01154 <span class="keywordflow">if</span> (i == <a class="code" href="a00476.html#a4fa9ba516030b74a88664adfdfd267cc">index_</a>)
<a name="l01155"></a>01155 <span class="keywordflow">return</span> <a class="code" href="a00476.html#ab7e65d1140b4d53b0bfea9d25d3943b8">one_</a>;
<a name="l01156"></a>01156 <span class="keywordflow">else</span>
<a name="l01157"></a>01157 <span class="keywordflow">return</span> <a class="code" href="a00476.html#ad6702109aae3e333e77896f10a5fcdbb">zero_</a>;
<a name="l01158"></a>01158 }
<a name="l01159"></a>01159
<a name="l01160"></a>01160 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01161"></a><a class="code" href="a00476.html#a23805c3a5fea6a3788dc0cb63b6e7a74">01161</a> <a class="code" href="a00476.html#a9970a2c2c6c2dbaaf7340166300c1c45">const_reference</a> <a class="code" href="a00476.html#a23805c3a5fea6a3788dc0cb63b6e7a74">operator [] </a>(<a class="code" href="a00476.html#a166b9f6c95cac0532a13400d7d82f54f">size_type</a> i)<span class="keyword"> const </span>{
<a name="l01162"></a>01162 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) (i);
<a name="l01163"></a>01163 }
<a name="l01164"></a>01164
<a name="l01165"></a>01165 <span class="comment">// Assignment</span>
<a name="l01166"></a>01166 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01167"></a><a class="code" href="a00476.html#aa50aceaf91a9e6953760cf0aa9876d8e">01167</a> <a class="code" href="a00476.html" title="unit_vector represents a canonical unit vector unit_vector represents a canonical unit vector...">unit_vector</a> &amp;<a class="code" href="a00476.html#aa50aceaf91a9e6953760cf0aa9876d8e">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00476.html" title="unit_vector represents a canonical unit vector unit_vector represents a canonical unit vector...">unit_vector</a> &amp;v) {
<a name="l01168"></a>01168 <a class="code" href="a00476.html#af5be12971e8647eb23745270266631f7">size_</a> = v.<a class="code" href="a00476.html#af5be12971e8647eb23745270266631f7">size_</a>;
<a name="l01169"></a>01169 <a class="code" href="a00476.html#a4fa9ba516030b74a88664adfdfd267cc">index_</a> = v.<a class="code" href="a00476.html#a4fa9ba516030b74a88664adfdfd267cc">index_</a>;
<a name="l01170"></a>01170 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01171"></a>01171 }
<a name="l01172"></a>01172 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01173"></a><a class="code" href="a00476.html#a357159e6773ab40d99a281b7d9e1a9b9">01173</a> <a class="code" href="a00476.html" title="unit_vector represents a canonical unit vector unit_vector represents a canonical unit vector...">unit_vector</a> &amp;<a class="code" href="a00476.html#a357159e6773ab40d99a281b7d9e1a9b9">assign_temporary</a> (<a class="code" href="a00476.html" title="unit_vector represents a canonical unit vector unit_vector represents a canonical unit vector...">unit_vector</a> &amp;v) {
<a name="l01174"></a>01174 <a class="code" href="a00476.html#ab4f349715ff0bc9ded47b1a22fc9d68f">swap</a> (v);
<a name="l01175"></a>01175 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01176"></a>01176 }
<a name="l01177"></a>01177
<a name="l01178"></a>01178 <span class="comment">// Swapping</span>
<a name="l01179"></a>01179 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01180"></a><a class="code" href="a00476.html#ab4f349715ff0bc9ded47b1a22fc9d68f">01180</a> <span class="keywordtype">void</span> <a class="code" href="a00476.html#ab4f349715ff0bc9ded47b1a22fc9d68f">swap</a> (<a class="code" href="a00476.html" title="unit_vector represents a canonical unit vector unit_vector represents a canonical unit vector...">unit_vector</a> &amp;v) {
<a name="l01181"></a>01181 <span class="keywordflow">if</span> (<span class="keyword">this</span> != &amp;v) {
<a name="l01182"></a>01182 <a class="code" href="a00476.html#ab4f349715ff0bc9ded47b1a22fc9d68f">std::swap</a> (<a class="code" href="a00476.html#af5be12971e8647eb23745270266631f7">size_</a>, v.<a class="code" href="a00476.html#af5be12971e8647eb23745270266631f7">size_</a>);
<a name="l01183"></a>01183 <a class="code" href="a00476.html#ab4f349715ff0bc9ded47b1a22fc9d68f">std::swap</a> (<a class="code" href="a00476.html#a4fa9ba516030b74a88664adfdfd267cc">index_</a>, v.<a class="code" href="a00476.html#a4fa9ba516030b74a88664adfdfd267cc">index_</a>);
<a name="l01184"></a>01184 }
<a name="l01185"></a>01185 }
<a name="l01186"></a>01186 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01187"></a><a class="code" href="a00476.html#a6d499390b71672a1ce03f86c523ffa0b">01187</a> <span class="keyword">friend</span> <span class="keywordtype">void</span> <a class="code" href="a00476.html#a6d499390b71672a1ce03f86c523ffa0b">swap</a> (<a class="code" href="a00476.html" title="unit_vector represents a canonical unit vector unit_vector represents a canonical unit vector...">unit_vector</a> &amp;v1, <a class="code" href="a00476.html" title="unit_vector represents a canonical unit vector unit_vector represents a canonical unit vector...">unit_vector</a> &amp;v2) {
<a name="l01188"></a>01188 v1.<a class="code" href="a00476.html#ab4f349715ff0bc9ded47b1a22fc9d68f">swap</a> (v2);
<a name="l01189"></a>01189 }
<a name="l01190"></a>01190
<a name="l01191"></a>01191 <span class="comment">// Iterator types</span>
<a name="l01192"></a>01192 <span class="keyword">private</span>:
<a name="l01193"></a>01193 <span class="comment">// Use bool to indicate begin (one_ as value)</span>
<a name="l01194"></a><a class="code" href="a00476.html#a9b4b8284aa9adddbe171b51853b2a3bb">01194</a> <span class="keyword">typedef</span> <span class="keywordtype">bool</span> <a class="code" href="a00476.html#a9b4b8284aa9adddbe171b51853b2a3bb">const_subiterator_type</a>;
<a name="l01195"></a>01195 <span class="keyword">public</span>:
<a name="l01196"></a>01196 <span class="keyword">class </span><a class="code" href="a00477.html">const_iterator</a>;
<a name="l01197"></a>01197
<a name="l01198"></a>01198 <span class="comment">// Element lookup</span>
<a name="l01199"></a>01199 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01200"></a><a class="code" href="a00476.html#af9596d73f68dd4af81194acb858e3389">01200</a> <a class="code" href="a00477.html">const_iterator</a> <a class="code" href="a00476.html#af9596d73f68dd4af81194acb858e3389">find</a> (<a class="code" href="a00476.html#a166b9f6c95cac0532a13400d7d82f54f">size_type</a> i)<span class="keyword"> const </span>{
<a name="l01201"></a>01201 <span class="keywordflow">return</span> <a class="code" href="a00477.html">const_iterator</a> (*<span class="keyword">this</span>, i &lt;= <a class="code" href="a00476.html#a4fa9ba516030b74a88664adfdfd267cc">index_</a>);
<a name="l01202"></a>01202 }
<a name="l01203"></a>01203
<a name="l01204"></a><a class="code" href="a00477.html">01204</a> <span class="keyword">class </span><a class="code" href="a00477.html">const_iterator</a>:
<a name="l01205"></a>01205 <span class="keyword">public</span> <a class="code" href="a00069.html" title="Base class of all proxy classes that contain a (redirectable) reference to an immutable object...">container_const_reference</a>&lt;unit_vector&gt;,
<a name="l01206"></a>01206 <span class="keyword">public</span> <a class="code" href="a00003.html" title="Base class of all bidirectional iterators.">bidirectional_iterator_base</a>&lt;sparse_bidirectional_iterator_tag,
<a name="l01207"></a>01207 const_iterator, value_type&gt; {
<a name="l01208"></a>01208 <span class="keyword">public</span>:
<a name="l01209"></a><a class="code" href="a00477.html#a490b05a5aefb0779148c4ded007228f7">01209</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00476.html#a721734426392eb902340b0d26436ac52">unit_vector::difference_type</a> <a class="code" href="a00477.html#a490b05a5aefb0779148c4ded007228f7">difference_type</a>;
<a name="l01210"></a><a class="code" href="a00477.html#ad907bd77e61fdb3f9fc618d522fab75f">01210</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00476.html#a72e29cd368ce1cdffd8b7880a27ccb4b">unit_vector::value_type</a> <a class="code" href="a00477.html#ad907bd77e61fdb3f9fc618d522fab75f">value_type</a>;
<a name="l01211"></a><a class="code" href="a00477.html#a61866e2c275591827553f8a1f97f0470">01211</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00476.html#a9970a2c2c6c2dbaaf7340166300c1c45">unit_vector::const_reference</a> <a class="code" href="a00477.html#a61866e2c275591827553f8a1f97f0470">reference</a>;
<a name="l01212"></a><a class="code" href="a00477.html#a803b1eb950b98640f920484e6a2db2f3">01212</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00476.html#a16f6de28fc2528d44e44e79cd9162e41">unit_vector::const_pointer</a> <a class="code" href="a00477.html#a803b1eb950b98640f920484e6a2db2f3">pointer</a>;
<a name="l01213"></a>01213
<a name="l01214"></a>01214 <span class="comment">// Construction and destruction</span>
<a name="l01215"></a>01215 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01216"></a><a class="code" href="a00477.html#aa0f5c9d60e6ae21f609df94725a78664">01216</a> <a class="code" href="a00477.html#aa0f5c9d60e6ae21f609df94725a78664">const_iterator</a> ():
<a name="l01217"></a>01217 <a class="code" href="a00069.html" title="Base class of all proxy classes that contain a (redirectable) reference to an immutable object...">container_const_reference</a>&lt;<a class="code" href="a00476.html" title="unit_vector represents a canonical unit vector unit_vector represents a canonical unit vector...">unit_vector</a>&gt; (), <a class="code" href="a00477.html#a0884b19c7028aa532eb554e57377e6b3">it_</a> () {}
<a name="l01218"></a>01218 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01219"></a><a class="code" href="a00477.html#a6a1e85f7e7fc002d2e5057983358d7c8">01219</a> <a class="code" href="a00477.html#aa0f5c9d60e6ae21f609df94725a78664">const_iterator</a> (<span class="keyword">const</span> <a class="code" href="a00476.html" title="unit_vector represents a canonical unit vector unit_vector represents a canonical unit vector...">unit_vector</a> &amp;v, <span class="keyword">const</span> <a class="code" href="a00476.html#a9b4b8284aa9adddbe171b51853b2a3bb">const_subiterator_type</a> &amp;it):
<a name="l01220"></a>01220 <a class="code" href="a00069.html" title="Base class of all proxy classes that contain a (redirectable) reference to an immutable object...">container_const_reference</a>&lt;<a class="code" href="a00476.html" title="unit_vector represents a canonical unit vector unit_vector represents a canonical unit vector...">unit_vector</a>&gt; (v), <a class="code" href="a00477.html#a0884b19c7028aa532eb554e57377e6b3">it_</a> (it) {}
<a name="l01221"></a>01221
<a name="l01222"></a>01222 <span class="comment">// Arithmetic</span>
<a name="l01223"></a>01223 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01224"></a><a class="code" href="a00477.html#a6198f0c7f2dcbcd22faa27f822448961">01224</a> <a class="code" href="a00477.html">const_iterator</a> &amp;<a class="code" href="a00477.html#a6198f0c7f2dcbcd22faa27f822448961">operator ++ </a>() {
<a name="l01225"></a>01225 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00477.html#a0884b19c7028aa532eb554e57377e6b3">it_</a>, <a class="code" href="a00015.html">bad_index</a> ());
<a name="l01226"></a>01226 <a class="code" href="a00477.html#a0884b19c7028aa532eb554e57377e6b3">it_</a> = !<a class="code" href="a00477.html#a0884b19c7028aa532eb554e57377e6b3">it_</a>;
<a name="l01227"></a>01227 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01228"></a>01228 }
<a name="l01229"></a>01229 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01230"></a><a class="code" href="a00477.html#a5ff69ec2157cacc3515f42414c20bada">01230</a> <a class="code" href="a00477.html">const_iterator</a> &amp;<a class="code" href="a00477.html#a5ff69ec2157cacc3515f42414c20bada">operator -- </a>() {
<a name="l01231"></a>01231 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (!<a class="code" href="a00477.html#a0884b19c7028aa532eb554e57377e6b3">it_</a>, <a class="code" href="a00015.html">bad_index</a> ());
<a name="l01232"></a>01232 <a class="code" href="a00477.html#a0884b19c7028aa532eb554e57377e6b3">it_</a> = !<a class="code" href="a00477.html#a0884b19c7028aa532eb554e57377e6b3">it_</a>;
<a name="l01233"></a>01233 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01234"></a>01234 }
<a name="l01235"></a>01235
<a name="l01236"></a>01236 <span class="comment">// Dereference</span>
<a name="l01237"></a>01237 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01238"></a><a class="code" href="a00477.html#a97a570dda021307b20e4161fbd221181">01238</a> <a class="code" href="a00476.html#a9970a2c2c6c2dbaaf7340166300c1c45">const_reference</a> <a class="code" href="a00477.html#a97a570dda021307b20e4161fbd221181">operator * </a>()<span class="keyword"> const </span>{
<a name="l01239"></a>01239 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00477.html#a0884b19c7028aa532eb554e57377e6b3">it_</a>, <a class="code" href="a00015.html">bad_index</a> ());
<a name="l01240"></a>01240 <span class="keywordflow">return</span> <a class="code" href="a00476.html#ab7e65d1140b4d53b0bfea9d25d3943b8">one_</a>;
<a name="l01241"></a>01241 }
<a name="l01242"></a>01242
<a name="l01243"></a>01243 <span class="comment">// Index</span>
<a name="l01244"></a>01244 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01245"></a><a class="code" href="a00477.html#af708fd882ab4170bc44cb5bac7d32ba1">01245</a> <a class="code" href="a00476.html#a166b9f6c95cac0532a13400d7d82f54f">size_type</a> <a class="code" href="a00477.html#af708fd882ab4170bc44cb5bac7d32ba1">index</a> ()<span class="keyword"> const </span>{
<a name="l01246"></a>01246 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00477.html#a0884b19c7028aa532eb554e57377e6b3">it_</a>, <a class="code" href="a00015.html">bad_index</a> ());
<a name="l01247"></a>01247 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00476.html#a4fa9ba516030b74a88664adfdfd267cc">index_</a>;
<a name="l01248"></a>01248 }
<a name="l01249"></a>01249
<a name="l01250"></a>01250 <span class="comment">// Assignment</span>
<a name="l01251"></a>01251 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01252"></a><a class="code" href="a00477.html#ae4eff211bfe0e02978d9feb9bc8292ab">01252</a> <a class="code" href="a00477.html">const_iterator</a> &amp;<a class="code" href="a00477.html#ae4eff211bfe0e02978d9feb9bc8292ab">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00477.html">const_iterator</a> &amp;it) {
<a name="l01253"></a>01253 <a class="code" href="a00069.html#ab14250fc4fe5b9bcab4eb9fba8a5b5f8">container_const_reference&lt;unit_vector&gt;::assign</a> (&amp;it ());
<a name="l01254"></a>01254 <a class="code" href="a00477.html#a0884b19c7028aa532eb554e57377e6b3">it_</a> = it.<a class="code" href="a00477.html#a0884b19c7028aa532eb554e57377e6b3">it_</a>;
<a name="l01255"></a>01255 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01256"></a>01256 }
<a name="l01257"></a>01257
<a name="l01258"></a>01258 <span class="comment">// Comparison</span>
<a name="l01259"></a>01259 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01260"></a><a class="code" href="a00477.html#a3ac14142eada5c036e2dbdd1ed9c2a1e">01260</a> <span class="keywordtype">bool</span> <a class="code" href="a00477.html#a3ac14142eada5c036e2dbdd1ed9c2a1e">operator == </a>(<span class="keyword">const</span> <a class="code" href="a00477.html">const_iterator</a> &amp;it)<span class="keyword"> const </span>{
<a name="l01261"></a>01261 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&amp;(*<span class="keyword">this</span>) () == &amp;it (), <a class="code" href="a00132.html">external_logic</a> ());
<a name="l01262"></a>01262 <span class="keywordflow">return</span> <a class="code" href="a00477.html#a0884b19c7028aa532eb554e57377e6b3">it_</a> == it.<a class="code" href="a00477.html#a0884b19c7028aa532eb554e57377e6b3">it_</a>;
<a name="l01263"></a>01263 }
<a name="l01264"></a>01264
<a name="l01265"></a>01265 <span class="keyword">private</span>:
<a name="l01266"></a><a class="code" href="a00477.html#a0884b19c7028aa532eb554e57377e6b3">01266</a> <a class="code" href="a00476.html#a9b4b8284aa9adddbe171b51853b2a3bb">const_subiterator_type</a> <a class="code" href="a00477.html#a0884b19c7028aa532eb554e57377e6b3">it_</a>;
<a name="l01267"></a>01267 };
<a name="l01268"></a>01268
<a name="l01269"></a><a class="code" href="a00476.html#a9f0021c8c79d9a835353ed75bf002f69">01269</a> <span class="keyword">typedef</span> <a class="code" href="a00477.html">const_iterator</a> <a class="code" href="a00476.html#a9f0021c8c79d9a835353ed75bf002f69">iterator</a>;
<a name="l01270"></a>01270
<a name="l01271"></a>01271 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01272"></a><a class="code" href="a00476.html#aa8b3cc803adb5b9e853cbe512e98fd0e">01272</a> <a class="code" href="a00477.html">const_iterator</a> <a class="code" href="a00476.html#aa8b3cc803adb5b9e853cbe512e98fd0e">begin</a> ()<span class="keyword"> const </span>{
<a name="l01273"></a>01273 <span class="keywordflow">return</span> <a class="code" href="a00477.html">const_iterator</a> (*<span class="keyword">this</span>, <span class="keyword">true</span>);
<a name="l01274"></a>01274 }
<a name="l01275"></a>01275 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01276"></a><a class="code" href="a00476.html#a0e9e12707c55f23863f103ed867000bd">01276</a> <a class="code" href="a00477.html">const_iterator</a> <a class="code" href="a00476.html#a0e9e12707c55f23863f103ed867000bd">end</a> ()<span class="keyword"> const </span>{
<a name="l01277"></a>01277 <span class="keywordflow">return</span> <a class="code" href="a00477.html">const_iterator</a> (*<span class="keyword">this</span>, <span class="keyword">false</span>);
<a name="l01278"></a>01278 }
<a name="l01279"></a>01279
<a name="l01280"></a>01280 <span class="comment">// Reverse iterator</span>
<a name="l01281"></a><a class="code" href="a00476.html#a442f5841bac20b9318f32d3f74319921">01281</a> <span class="keyword">typedef</span> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">reverse_iterator_base&lt;const_iterator&gt;</a> <a class="code" href="a00476.html#a442f5841bac20b9318f32d3f74319921">const_reverse_iterator</a>;
<a name="l01282"></a>01282
<a name="l01283"></a>01283 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01284"></a><a class="code" href="a00476.html#a826047d26d9210a4a1ffa6610c3652f1">01284</a> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">const_reverse_iterator</a> <a class="code" href="a00476.html#a826047d26d9210a4a1ffa6610c3652f1">rbegin</a> ()<span class="keyword"> const </span>{
<a name="l01285"></a>01285 <span class="keywordflow">return</span> <a class="code" href="a00476.html#a442f5841bac20b9318f32d3f74319921">const_reverse_iterator</a> (<a class="code" href="a00476.html#a0e9e12707c55f23863f103ed867000bd">end</a> ());
<a name="l01286"></a>01286 }
<a name="l01287"></a>01287 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01288"></a><a class="code" href="a00476.html#acca53554d7278e9270792246e318762c">01288</a> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">const_reverse_iterator</a> <a class="code" href="a00476.html#acca53554d7278e9270792246e318762c">rend</a> ()<span class="keyword"> const </span>{
<a name="l01289"></a>01289 <span class="keywordflow">return</span> <a class="code" href="a00476.html#a442f5841bac20b9318f32d3f74319921">const_reverse_iterator</a> (<a class="code" href="a00476.html#aa8b3cc803adb5b9e853cbe512e98fd0e">begin</a> ());
<a name="l01290"></a>01290 }
<a name="l01291"></a>01291
<a name="l01292"></a>01292 <span class="comment">// Serialization</span>
<a name="l01293"></a>01293 <span class="keyword">template</span>&lt;<span class="keyword">class</span> Archive&gt;
<a name="l01294"></a><a class="code" href="a00476.html#a1a0fd0bc71b0a51a3ff722b1be318b58">01294</a> <span class="keywordtype">void</span> <a class="code" href="a00476.html#a1a0fd0bc71b0a51a3ff722b1be318b58">serialize</a>(Archive &amp; ar, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <span class="comment">/* file_version */</span>){
<a name="l01295"></a>01295 serialization::collection_size_type s (<a class="code" href="a00476.html#af5be12971e8647eb23745270266631f7">size_</a>);
<a name="l01296"></a>01296 ar &amp; serialization::make_nvp(<span class="stringliteral">&quot;size&quot;</span>,s);
<a name="l01297"></a>01297 <span class="keywordflow">if</span> (Archive::is_loading::value) {
<a name="l01298"></a>01298 <a class="code" href="a00476.html#af5be12971e8647eb23745270266631f7">size_</a> = s;
<a name="l01299"></a>01299 }
<a name="l01300"></a>01300 ar &amp; serialization::make_nvp(<span class="stringliteral">&quot;index&quot;</span>, <a class="code" href="a00476.html#a4fa9ba516030b74a88664adfdfd267cc">index_</a>);
<a name="l01301"></a>01301 }
<a name="l01302"></a>01302
<a name="l01303"></a>01303 <span class="keyword">private</span>:
<a name="l01304"></a><a class="code" href="a00476.html#af5be12971e8647eb23745270266631f7">01304</a> <a class="code" href="a00476.html#a166b9f6c95cac0532a13400d7d82f54f">size_type</a> <a class="code" href="a00476.html#af5be12971e8647eb23745270266631f7">size_</a>;
<a name="l01305"></a><a class="code" href="a00476.html#a4fa9ba516030b74a88664adfdfd267cc">01305</a> <a class="code" href="a00476.html#a166b9f6c95cac0532a13400d7d82f54f">size_type</a> <a class="code" href="a00476.html#a4fa9ba516030b74a88664adfdfd267cc">index_</a>;
<a name="l01306"></a><a class="code" href="a00476.html#ae74636bbf8b66a29bd91b99447bf675e">01306</a> <span class="keyword">typedef</span> <span class="keyword">const</span> <a class="code" href="a00476.html#a72e29cd368ce1cdffd8b7880a27ccb4b">value_type</a> <a class="code" href="a00476.html#ae74636bbf8b66a29bd91b99447bf675e">const_value_type</a>;
<a name="l01307"></a><a class="code" href="a00476.html#ad6702109aae3e333e77896f10a5fcdbb">01307</a> <span class="keyword">static</span> <a class="code" href="a00476.html#ae74636bbf8b66a29bd91b99447bf675e">const_value_type</a> <a class="code" href="a00476.html#ad6702109aae3e333e77896f10a5fcdbb">zero_</a>;
<a name="l01308"></a><a class="code" href="a00476.html#ab7e65d1140b4d53b0bfea9d25d3943b8">01308</a> <span class="keyword">static</span> <a class="code" href="a00476.html#ae74636bbf8b66a29bd91b99447bf675e">const_value_type</a> <a class="code" href="a00476.html#ab7e65d1140b4d53b0bfea9d25d3943b8">one_</a>;
<a name="l01309"></a>01309 };
<a name="l01310"></a>01310
<a name="l01311"></a>01311 <span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keyword">class</span> ALLOC&gt;
<a name="l01312"></a>01312 <span class="keyword">typename</span> <a class="code" href="a00476.html#ae74636bbf8b66a29bd91b99447bf675e">unit_vector&lt;T, ALLOC&gt;::const_value_type</a> <a class="code" href="a00476.html" title="unit_vector represents a canonical unit vector unit_vector represents a canonical unit vector...">unit_vector&lt;T, ALLOC&gt;::zero_</a> = T(<span class="comment">/*zero*/</span>);
<a name="l01313"></a>01313 <span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keyword">class</span> ALLOC&gt;
<a name="l01314"></a>01314 <span class="keyword">typename</span> <a class="code" href="a00476.html#ae74636bbf8b66a29bd91b99447bf675e">unit_vector&lt;T, ALLOC&gt;::const_value_type</a> <a class="code" href="a00476.html#ab7e65d1140b4d53b0bfea9d25d3943b8">unit_vector&lt;T, ALLOC&gt;::one_</a> (1); <span class="comment">// ISSUE: need &#39;one&#39;-traits here</span>
<a name="l01315"></a>01315
<a name="l01321"></a>01321 <span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keyword">class</span> ALLOC&gt;
<a name="l01322"></a><a class="code" href="a00404.html">01322</a> <span class="keyword">class </span><a class="code" href="a00404.html" title="A scalar (i.e. unique value) vector of type T and a given size A scalar (i.e. unique value) vector of...">scalar_vector</a>:
<a name="l01323"></a>01323 <span class="keyword">public</span> <a class="code" href="a00506.html" title="Base class for Vector container models.">vector_container</a>&lt;scalar_vector&lt;T, ALLOC&gt; &gt; {
<a name="l01324"></a>01324
<a name="l01325"></a><a class="code" href="a00404.html#a9fd837d75c5dde68d1f7affe2c2489d4">01325</a> <span class="keyword">typedef</span> <span class="keyword">const</span> T *<a class="code" href="a00404.html#a9fd837d75c5dde68d1f7affe2c2489d4">const_pointer</a>;
<a name="l01326"></a><a class="code" href="a00404.html#acd3e94794d8d92cd0e100c1866459a8b">01326</a> <span class="keyword">typedef</span> <a class="code" href="a00404.html" title="A scalar (i.e. unique value) vector of type T and a given size A scalar (i.e. unique value) vector of...">scalar_vector&lt;T, ALLOC&gt;</a> <a class="code" href="a00404.html#acd3e94794d8d92cd0e100c1866459a8b">self_type</a>;
<a name="l01327"></a>01327 <span class="keyword">public</span>:
<a name="l01328"></a>01328 <span class="preprocessor">#ifdef BOOST_UBLAS_ENABLE_PROXY_SHORTCUTS</span>
<a name="l01329"></a>01329 <span class="preprocessor"></span> <span class="keyword">using</span> <a class="code" href="a00506.html" title="Base class for Vector container models.">vector_container&lt;self_type&gt;::operator </a>();
<a name="l01330"></a>01330 <span class="preprocessor">#endif</span>
<a name="l01331"></a><a class="code" href="a00404.html#a3f59de9148cd19fd9c9e047d2df7c9b3">01331</a> <span class="preprocessor"></span> <span class="keyword">typedef</span> <span class="keyword">typename</span> ALLOC::size_type <a class="code" href="a00404.html#a3f59de9148cd19fd9c9e047d2df7c9b3">size_type</a>;
<a name="l01332"></a><a class="code" href="a00404.html#a1ac3aca926b7ac85d26b74245265aca8">01332</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> ALLOC::difference_type <a class="code" href="a00404.html#a1ac3aca926b7ac85d26b74245265aca8">difference_type</a>;
<a name="l01333"></a><a class="code" href="a00404.html#a4abe24032ff1c77a13f588ddb6e631fc">01333</a> <span class="keyword">typedef</span> T <a class="code" href="a00404.html#a4abe24032ff1c77a13f588ddb6e631fc">value_type</a>;
<a name="l01334"></a><a class="code" href="a00404.html#afa5cd51ee96ac10bf6f31a60c3a35d43">01334</a> <span class="keyword">typedef</span> <span class="keyword">const</span> T &amp;<a class="code" href="a00404.html#afa5cd51ee96ac10bf6f31a60c3a35d43">const_reference</a>;
<a name="l01335"></a><a class="code" href="a00404.html#abfadb20f76e5ff8c6cc8188d4d6e59a1">01335</a> <span class="keyword">typedef</span> T &amp;<a class="code" href="a00404.html#abfadb20f76e5ff8c6cc8188d4d6e59a1">reference</a>;
<a name="l01336"></a><a class="code" href="a00404.html#ac20e17d23fc178962102227fc0907d54">01336</a> <span class="keyword">typedef</span> <span class="keyword">const</span> <a class="code" href="a00531.html">vector_reference&lt;const self_type&gt;</a> <a class="code" href="a00404.html#ac20e17d23fc178962102227fc0907d54">const_closure_type</a>;
<a name="l01337"></a><a class="code" href="a00404.html#a6863ed84b5f2802ff3a7497da200a04b">01337</a> <span class="keyword">typedef</span> <a class="code" href="a00531.html">vector_reference&lt;self_type&gt;</a> <a class="code" href="a00404.html#a6863ed84b5f2802ff3a7497da200a04b">closure_type</a>;
<a name="l01338"></a><a class="code" href="a00404.html#a4e0aed7e2f1cc73b267def85d49234bf">01338</a> <span class="keyword">typedef</span> <a class="code" href="a00083.html">dense_tag</a> <a class="code" href="a00404.html#a4e0aed7e2f1cc73b267def85d49234bf">storage_category</a>;
<a name="l01339"></a>01339
<a name="l01340"></a>01340 <span class="comment">// Construction and destruction</span>
<a name="l01341"></a>01341 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01342"></a><a class="code" href="a00404.html#afac7555f872fbfda06fea192c4d41041">01342</a> <a class="code" href="a00404.html#afac7555f872fbfda06fea192c4d41041">scalar_vector</a> ():
<a name="l01343"></a>01343 <a class="code" href="a00506.html" title="Base class for Vector container models.">vector_container</a>&lt;<a class="code" href="a00404.html" title="A scalar (i.e. unique value) vector of type T and a given size A scalar (i.e. unique value) vector of...">self_type</a>&gt; (),
<a name="l01344"></a>01344 <a class="code" href="a00404.html#a04d4c54cbe8a288f943d0070f9c35bd1">size_</a> (0), <a class="code" href="a00404.html#ad8e4bf5b7047a50b0de28a8514109aeb">value_</a> () {}
<a name="l01345"></a>01345 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01346"></a><a class="code" href="a00404.html#ace1b2c763e6ee934a1e89475f4faad3c">01346</a> <span class="keyword">explicit</span> <a class="code" href="a00404.html#afac7555f872fbfda06fea192c4d41041">scalar_vector</a> (<a class="code" href="a00404.html#a3f59de9148cd19fd9c9e047d2df7c9b3">size_type</a> <a class="code" href="a00404.html#a42005788b88036a300b6fa1f6ab5c3b7">size</a>, <span class="keyword">const</span> <a class="code" href="a00404.html#a4abe24032ff1c77a13f588ddb6e631fc">value_type</a> &amp;value = <a class="code" href="a00404.html#a4abe24032ff1c77a13f588ddb6e631fc">value_type</a>(1)):
<a name="l01347"></a>01347 <a class="code" href="a00506.html" title="Base class for Vector container models.">vector_container</a>&lt;<a class="code" href="a00404.html" title="A scalar (i.e. unique value) vector of type T and a given size A scalar (i.e. unique value) vector of...">self_type</a>&gt; (),
<a name="l01348"></a>01348 <a class="code" href="a00404.html#a04d4c54cbe8a288f943d0070f9c35bd1">size_</a> (size), <a class="code" href="a00404.html#ad8e4bf5b7047a50b0de28a8514109aeb">value_</a> (value) {}
<a name="l01349"></a>01349 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01350"></a><a class="code" href="a00404.html#ae6d6e3a70872e6f1fb2ba3dc386feb58">01350</a> <a class="code" href="a00404.html#afac7555f872fbfda06fea192c4d41041">scalar_vector</a> (<span class="keyword">const</span> <a class="code" href="a00404.html" title="A scalar (i.e. unique value) vector of type T and a given size A scalar (i.e. unique value) vector of...">scalar_vector</a> &amp;v):
<a name="l01351"></a>01351 <a class="code" href="a00506.html" title="Base class for Vector container models.">vector_container</a>&lt;<a class="code" href="a00404.html" title="A scalar (i.e. unique value) vector of type T and a given size A scalar (i.e. unique value) vector of...">self_type</a>&gt; (),
<a name="l01352"></a>01352 <a class="code" href="a00404.html#a04d4c54cbe8a288f943d0070f9c35bd1">size_</a> (v.<a class="code" href="a00404.html#a04d4c54cbe8a288f943d0070f9c35bd1">size_</a>), <a class="code" href="a00404.html#ad8e4bf5b7047a50b0de28a8514109aeb">value_</a> (v.<a class="code" href="a00404.html#ad8e4bf5b7047a50b0de28a8514109aeb">value_</a>) {}
<a name="l01353"></a>01353
<a name="l01354"></a>01354 <span class="comment">// Accessors</span>
<a name="l01355"></a>01355 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01356"></a><a class="code" href="a00404.html#a42005788b88036a300b6fa1f6ab5c3b7">01356</a> <a class="code" href="a00404.html#a3f59de9148cd19fd9c9e047d2df7c9b3">size_type</a> <a class="code" href="a00404.html#a42005788b88036a300b6fa1f6ab5c3b7">size</a> ()<span class="keyword"> const </span>{
<a name="l01357"></a>01357 <span class="keywordflow">return</span> <a class="code" href="a00404.html#a04d4c54cbe8a288f943d0070f9c35bd1">size_</a>;
<a name="l01358"></a>01358 }
<a name="l01359"></a>01359
<a name="l01360"></a>01360 <span class="comment">// Resizing</span>
<a name="l01361"></a>01361 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01362"></a><a class="code" href="a00404.html#a402be9dd846ee5d5e27e05b30cd2026a">01362</a> <span class="keywordtype">void</span> <a class="code" href="a00404.html#a402be9dd846ee5d5e27e05b30cd2026a">resize</a> (<a class="code" href="a00404.html#a3f59de9148cd19fd9c9e047d2df7c9b3">size_type</a> size, <span class="keywordtype">bool</span> <span class="comment">/*preserve*/</span> = <span class="keyword">true</span>) {
<a name="l01363"></a>01363 <a class="code" href="a00404.html#a04d4c54cbe8a288f943d0070f9c35bd1">size_</a> = <a class="code" href="a00404.html#a42005788b88036a300b6fa1f6ab5c3b7">size</a>;
<a name="l01364"></a>01364 }
<a name="l01365"></a>01365
<a name="l01366"></a>01366 <span class="comment">// Element support</span>
<a name="l01367"></a>01367 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01368"></a><a class="code" href="a00404.html#a31c9fb999575c82d2610d916ce4c586f">01368</a> <a class="code" href="a00404.html#a9fd837d75c5dde68d1f7affe2c2489d4">const_pointer</a> <a class="code" href="a00404.html#a31c9fb999575c82d2610d916ce4c586f">find_element</a> (<a class="code" href="a00404.html#a3f59de9148cd19fd9c9e047d2df7c9b3">size_type</a> <span class="comment">/*i*/</span>)<span class="keyword"> const </span>{
<a name="l01369"></a>01369 <span class="keywordflow">return</span> &amp; <a class="code" href="a00404.html#ad8e4bf5b7047a50b0de28a8514109aeb">value_</a>;
<a name="l01370"></a>01370 }
<a name="l01371"></a>01371
<a name="l01372"></a>01372 <span class="comment">// Element access</span>
<a name="l01373"></a>01373 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01374"></a><a class="code" href="a00404.html#a8fb363048a8931a622ff143a2e4277e9">01374</a> <a class="code" href="a00404.html#afa5cd51ee96ac10bf6f31a60c3a35d43">const_reference</a> <a class="code" href="a00506.html#a1fb3e3c565194eaf99e6af65daadc76a">operator () </a>(<a class="code" href="a00404.html#a3f59de9148cd19fd9c9e047d2df7c9b3">size_type</a> <span class="comment">/*i*/</span>)<span class="keyword"> const </span>{
<a name="l01375"></a>01375 <span class="keywordflow">return</span> <a class="code" href="a00404.html#ad8e4bf5b7047a50b0de28a8514109aeb">value_</a>;
<a name="l01376"></a>01376 }
<a name="l01377"></a>01377
<a name="l01378"></a>01378 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01379"></a><a class="code" href="a00404.html#a9f794040baba8d3ecface509d4df3386">01379</a> <a class="code" href="a00404.html#afa5cd51ee96ac10bf6f31a60c3a35d43">const_reference</a> <a class="code" href="a00404.html#a9f794040baba8d3ecface509d4df3386">operator [] </a>(<a class="code" href="a00404.html#a3f59de9148cd19fd9c9e047d2df7c9b3">size_type</a> <span class="comment">/*i*/</span>)<span class="keyword"> const </span>{
<a name="l01380"></a>01380 <span class="keywordflow">return</span> <a class="code" href="a00404.html#ad8e4bf5b7047a50b0de28a8514109aeb">value_</a>;
<a name="l01381"></a>01381 }
<a name="l01382"></a>01382
<a name="l01383"></a>01383 <span class="comment">// Assignment</span>
<a name="l01384"></a>01384 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01385"></a><a class="code" href="a00404.html#a72f2abd66c47897bf8eb449201c5a475">01385</a> <a class="code" href="a00404.html" title="A scalar (i.e. unique value) vector of type T and a given size A scalar (i.e. unique value) vector of...">scalar_vector</a> &amp;<a class="code" href="a00404.html#a72f2abd66c47897bf8eb449201c5a475">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00404.html" title="A scalar (i.e. unique value) vector of type T and a given size A scalar (i.e. unique value) vector of...">scalar_vector</a> &amp;v) {
<a name="l01386"></a>01386 <a class="code" href="a00404.html#a04d4c54cbe8a288f943d0070f9c35bd1">size_</a> = v.<a class="code" href="a00404.html#a04d4c54cbe8a288f943d0070f9c35bd1">size_</a>;
<a name="l01387"></a>01387 <a class="code" href="a00404.html#ad8e4bf5b7047a50b0de28a8514109aeb">value_</a> = v.<a class="code" href="a00404.html#ad8e4bf5b7047a50b0de28a8514109aeb">value_</a>;
<a name="l01388"></a>01388 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01389"></a>01389 }
<a name="l01390"></a>01390 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01391"></a><a class="code" href="a00404.html#aa42ddab2112cebd8a646ef7d59236a1b">01391</a> <a class="code" href="a00404.html" title="A scalar (i.e. unique value) vector of type T and a given size A scalar (i.e. unique value) vector of...">scalar_vector</a> &amp;<a class="code" href="a00404.html#aa42ddab2112cebd8a646ef7d59236a1b">assign_temporary</a> (<a class="code" href="a00404.html" title="A scalar (i.e. unique value) vector of type T and a given size A scalar (i.e. unique value) vector of...">scalar_vector</a> &amp;v) {
<a name="l01392"></a>01392 <a class="code" href="a00404.html#a3b1d02dc22090a5e8d3f9bff62e3c1ca">swap</a> (v);
<a name="l01393"></a>01393 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01394"></a>01394 }
<a name="l01395"></a>01395
<a name="l01396"></a>01396 <span class="comment">// Swapping</span>
<a name="l01397"></a>01397 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01398"></a><a class="code" href="a00404.html#a3b1d02dc22090a5e8d3f9bff62e3c1ca">01398</a> <span class="keywordtype">void</span> <a class="code" href="a00404.html#a3b1d02dc22090a5e8d3f9bff62e3c1ca">swap</a> (<a class="code" href="a00404.html" title="A scalar (i.e. unique value) vector of type T and a given size A scalar (i.e. unique value) vector of...">scalar_vector</a> &amp;v) {
<a name="l01399"></a>01399 <span class="keywordflow">if</span> (<span class="keyword">this</span> != &amp;v) {
<a name="l01400"></a>01400 <a class="code" href="a00404.html#a3b1d02dc22090a5e8d3f9bff62e3c1ca">std::swap</a> (<a class="code" href="a00404.html#a04d4c54cbe8a288f943d0070f9c35bd1">size_</a>, v.<a class="code" href="a00404.html#a04d4c54cbe8a288f943d0070f9c35bd1">size_</a>);
<a name="l01401"></a>01401 <a class="code" href="a00404.html#a3b1d02dc22090a5e8d3f9bff62e3c1ca">std::swap</a> (<a class="code" href="a00404.html#ad8e4bf5b7047a50b0de28a8514109aeb">value_</a>, v.<a class="code" href="a00404.html#ad8e4bf5b7047a50b0de28a8514109aeb">value_</a>);
<a name="l01402"></a>01402 }
<a name="l01403"></a>01403 }
<a name="l01404"></a>01404 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01405"></a><a class="code" href="a00404.html#a7af3655b93716bb1a0c26f23f3a330d9">01405</a> <span class="keyword">friend</span> <span class="keywordtype">void</span> <a class="code" href="a00404.html#a7af3655b93716bb1a0c26f23f3a330d9">swap</a> (<a class="code" href="a00404.html" title="A scalar (i.e. unique value) vector of type T and a given size A scalar (i.e. unique value) vector of...">scalar_vector</a> &amp;v1, <a class="code" href="a00404.html" title="A scalar (i.e. unique value) vector of type T and a given size A scalar (i.e. unique value) vector of...">scalar_vector</a> &amp;v2) {
<a name="l01406"></a>01406 v1.<a class="code" href="a00404.html#a3b1d02dc22090a5e8d3f9bff62e3c1ca">swap</a> (v2);
<a name="l01407"></a>01407 }
<a name="l01408"></a>01408
<a name="l01409"></a>01409 <span class="comment">// Iterator types</span>
<a name="l01410"></a>01410 <span class="keyword">private</span>:
<a name="l01411"></a>01411 <span class="comment">// Use an index</span>
<a name="l01412"></a><a class="code" href="a00404.html#af815d0f7a0f2a8d1c43f7e6dd675d297">01412</a> <span class="keyword">typedef</span> <a class="code" href="a00404.html#a3f59de9148cd19fd9c9e047d2df7c9b3">size_type</a> <a class="code" href="a00404.html#af815d0f7a0f2a8d1c43f7e6dd675d297">const_subiterator_type</a>;
<a name="l01413"></a>01413
<a name="l01414"></a>01414 <span class="keyword">public</span>:
<a name="l01415"></a>01415 <span class="preprocessor">#ifdef BOOST_UBLAS_USE_INDEXED_ITERATOR</span>
<a name="l01416"></a>01416 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00165.html" title="A class implementing an indexed random access iterator.">indexed_const_iterator&lt;self_type, dense_random_access_iterator_tag&gt;</a> <a class="code" href="a00404.html#a853fa75318e037846b40ae32dc336b96">iterator</a>;
<a name="l01417"></a>01417 <span class="keyword">typedef</span> <a class="code" href="a00165.html" title="A class implementing an indexed random access iterator.">indexed_const_iterator&lt;self_type, dense_random_access_iterator_tag&gt;</a> <a class="code" href="a00405.html">const_iterator</a>;
<a name="l01418"></a>01418 <span class="preprocessor">#else</span>
<a name="l01419"></a>01419 <span class="preprocessor"></span> <span class="keyword">class </span><a class="code" href="a00405.html">const_iterator</a>;
<a name="l01420"></a>01420 <span class="preprocessor">#endif</span>
<a name="l01421"></a>01421 <span class="preprocessor"></span>
<a name="l01422"></a>01422 <span class="comment">// Element lookup</span>
<a name="l01423"></a>01423 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01424"></a><a class="code" href="a00404.html#a8d9c8a1603340a9be87af509ee433a57">01424</a> <a class="code" href="a00405.html">const_iterator</a> <a class="code" href="a00404.html#a8d9c8a1603340a9be87af509ee433a57">find</a> (<a class="code" href="a00404.html#a3f59de9148cd19fd9c9e047d2df7c9b3">size_type</a> i)<span class="keyword"> const </span>{
<a name="l01425"></a>01425 <span class="keywordflow">return</span> <a class="code" href="a00405.html">const_iterator</a> (*<span class="keyword">this</span>, i);
<a name="l01426"></a>01426 }
<a name="l01427"></a>01427
<a name="l01428"></a>01428 <span class="preprocessor">#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR</span>
<a name="l01429"></a><a class="code" href="a00405.html">01429</a> <span class="preprocessor"></span> <span class="keyword">class </span><a class="code" href="a00405.html">const_iterator</a>:
<a name="l01430"></a>01430 <span class="keyword">public</span> <a class="code" href="a00069.html" title="Base class of all proxy classes that contain a (redirectable) reference to an immutable object...">container_const_reference</a>&lt;scalar_vector&gt;,
<a name="l01431"></a>01431 <span class="keyword">public</span> <a class="code" href="a00365.html" title="Base class of all random access iterators.">random_access_iterator_base</a>&lt;dense_random_access_iterator_tag,
<a name="l01432"></a>01432 const_iterator, value_type&gt; {
<a name="l01433"></a>01433 <span class="keyword">public</span>:
<a name="l01434"></a><a class="code" href="a00405.html#ae17f994c0e3f2d5f01ce24ae32edcae3">01434</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00404.html#a1ac3aca926b7ac85d26b74245265aca8">scalar_vector::difference_type</a> <a class="code" href="a00405.html#ae17f994c0e3f2d5f01ce24ae32edcae3">difference_type</a>;
<a name="l01435"></a><a class="code" href="a00405.html#a297e71960221b8b7a9342e2bba50dc72">01435</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00404.html#a4abe24032ff1c77a13f588ddb6e631fc">scalar_vector::value_type</a> <a class="code" href="a00405.html#a297e71960221b8b7a9342e2bba50dc72">value_type</a>;
<a name="l01436"></a><a class="code" href="a00405.html#a1949b8300cf409825e7b767df29e1fec">01436</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00404.html#afa5cd51ee96ac10bf6f31a60c3a35d43">scalar_vector::const_reference</a> <a class="code" href="a00405.html#a1949b8300cf409825e7b767df29e1fec">reference</a>;
<a name="l01437"></a><a class="code" href="a00405.html#a7fbb91f040abb4b2caac4851d562534b">01437</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00404.html#a9fd837d75c5dde68d1f7affe2c2489d4">scalar_vector::const_pointer</a> <a class="code" href="a00405.html#a7fbb91f040abb4b2caac4851d562534b">pointer</a>;
<a name="l01438"></a>01438
<a name="l01439"></a>01439 <span class="comment">// Construction and destruction</span>
<a name="l01440"></a>01440 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01441"></a><a class="code" href="a00405.html#a9155878ddc4b3d189dc9b0a5a4ddc2b8">01441</a> <a class="code" href="a00405.html#a9155878ddc4b3d189dc9b0a5a4ddc2b8">const_iterator</a> ():
<a name="l01442"></a>01442 <a class="code" href="a00069.html" title="Base class of all proxy classes that contain a (redirectable) reference to an immutable object...">container_const_reference</a>&lt;<a class="code" href="a00404.html" title="A scalar (i.e. unique value) vector of type T and a given size A scalar (i.e. unique value) vector of...">scalar_vector</a>&gt; (), <a class="code" href="a00405.html#a77f1a1f41010a6f1b5bc6aadeb5e4b55">it_</a> () {}
<a name="l01443"></a>01443 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01444"></a><a class="code" href="a00405.html#a7123dac777c75622557211f26e9602b4">01444</a> <a class="code" href="a00405.html#a9155878ddc4b3d189dc9b0a5a4ddc2b8">const_iterator</a> (<span class="keyword">const</span> <a class="code" href="a00404.html" title="A scalar (i.e. unique value) vector of type T and a given size A scalar (i.e. unique value) vector of...">scalar_vector</a> &amp;v, <span class="keyword">const</span> <a class="code" href="a00404.html#af815d0f7a0f2a8d1c43f7e6dd675d297">const_subiterator_type</a> &amp;it):
<a name="l01445"></a>01445 <a class="code" href="a00069.html" title="Base class of all proxy classes that contain a (redirectable) reference to an immutable object...">container_const_reference</a>&lt;<a class="code" href="a00404.html" title="A scalar (i.e. unique value) vector of type T and a given size A scalar (i.e. unique value) vector of...">scalar_vector</a>&gt; (v), <a class="code" href="a00405.html#a77f1a1f41010a6f1b5bc6aadeb5e4b55">it_</a> (it) {}
<a name="l01446"></a>01446
<a name="l01447"></a>01447 <span class="comment">// Arithmetic</span>
<a name="l01448"></a>01448 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01449"></a><a class="code" href="a00405.html#aed04ed43832515d1e6deae84218a3a6c">01449</a> <a class="code" href="a00405.html">const_iterator</a> &amp;<a class="code" href="a00405.html#aed04ed43832515d1e6deae84218a3a6c">operator ++ </a>() {
<a name="l01450"></a>01450 ++ <a class="code" href="a00405.html#a77f1a1f41010a6f1b5bc6aadeb5e4b55">it_</a>;
<a name="l01451"></a>01451 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01452"></a>01452 }
<a name="l01453"></a>01453 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01454"></a><a class="code" href="a00405.html#aa44c34a88db4198d88a0144e05ec5356">01454</a> <a class="code" href="a00405.html">const_iterator</a> &amp;<a class="code" href="a00405.html#aa44c34a88db4198d88a0144e05ec5356">operator -- </a>() {
<a name="l01455"></a>01455 -- <a class="code" href="a00405.html#a77f1a1f41010a6f1b5bc6aadeb5e4b55">it_</a>;
<a name="l01456"></a>01456 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01457"></a>01457 }
<a name="l01458"></a>01458 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01459"></a><a class="code" href="a00405.html#a68711021d64459974258827bd1f9210a">01459</a> <a class="code" href="a00405.html">const_iterator</a> &amp;<a class="code" href="a00405.html#a68711021d64459974258827bd1f9210a">operator += </a>(<a class="code" href="a00405.html#ae17f994c0e3f2d5f01ce24ae32edcae3">difference_type</a> n) {
<a name="l01460"></a>01460 <a class="code" href="a00405.html#a77f1a1f41010a6f1b5bc6aadeb5e4b55">it_</a> += n;
<a name="l01461"></a>01461 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01462"></a>01462 }
<a name="l01463"></a>01463 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01464"></a><a class="code" href="a00405.html#a91aca52ee5cd42af2f5a7a618f46b80a">01464</a> <a class="code" href="a00405.html">const_iterator</a> &amp;<a class="code" href="a00405.html#a91aca52ee5cd42af2f5a7a618f46b80a">operator -= </a>(<a class="code" href="a00405.html#ae17f994c0e3f2d5f01ce24ae32edcae3">difference_type</a> n) {
<a name="l01465"></a>01465 <a class="code" href="a00405.html#a77f1a1f41010a6f1b5bc6aadeb5e4b55">it_</a> -= n;
<a name="l01466"></a>01466 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01467"></a>01467 }
<a name="l01468"></a>01468 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01469"></a><a class="code" href="a00405.html#af601c8f2ae7f4af7758f52f77c2551e4">01469</a> <a class="code" href="a00405.html#ae17f994c0e3f2d5f01ce24ae32edcae3">difference_type</a> <a class="code" href="a00405.html#af601c8f2ae7f4af7758f52f77c2551e4">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00405.html">const_iterator</a> &amp;it)<span class="keyword"> const </span>{
<a name="l01470"></a>01470 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&amp;(*<span class="keyword">this</span>) () == &amp;it (), <a class="code" href="a00132.html">external_logic</a> ());
<a name="l01471"></a>01471 <span class="keywordflow">return</span> <a class="code" href="a00405.html#a77f1a1f41010a6f1b5bc6aadeb5e4b55">it_</a> - it.<a class="code" href="a00405.html#a77f1a1f41010a6f1b5bc6aadeb5e4b55">it_</a>;
<a name="l01472"></a>01472 }
<a name="l01473"></a>01473
<a name="l01474"></a>01474 <span class="comment">// Dereference</span>
<a name="l01475"></a>01475 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01476"></a><a class="code" href="a00405.html#abf2b8c740354d83decf8f8dec84cde9f">01476</a> <a class="code" href="a00404.html#afa5cd51ee96ac10bf6f31a60c3a35d43">const_reference</a> <a class="code" href="a00405.html#abf2b8c740354d83decf8f8dec84cde9f">operator * </a>()<span class="keyword"> const </span>{
<a name="l01477"></a>01477 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00405.html#a77f1a1f41010a6f1b5bc6aadeb5e4b55">it_</a> &lt; (*<span class="keyword">this</span>) ().size (), <a class="code" href="a00015.html">bad_index</a> ());
<a name="l01478"></a>01478 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) () (<a class="code" href="a00405.html#afe6cef6d9b87dc13a1a0738db37c52f0">index</a> ());
<a name="l01479"></a>01479 }
<a name="l01480"></a>01480 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01481"></a><a class="code" href="a00405.html#a78d23aed29fd910862aa06dea4c34777">01481</a> <a class="code" href="a00404.html#afa5cd51ee96ac10bf6f31a60c3a35d43">const_reference</a> <a class="code" href="a00405.html#a78d23aed29fd910862aa06dea4c34777">operator [] </a>(<a class="code" href="a00405.html#ae17f994c0e3f2d5f01ce24ae32edcae3">difference_type</a> n)<span class="keyword"> const </span>{
<a name="l01482"></a>01482 <span class="keywordflow">return</span> *(*<span class="keyword">this</span> + n);
<a name="l01483"></a>01483 }
<a name="l01484"></a>01484
<a name="l01485"></a>01485 <span class="comment">// Index</span>
<a name="l01486"></a>01486 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01487"></a><a class="code" href="a00405.html#afe6cef6d9b87dc13a1a0738db37c52f0">01487</a> <a class="code" href="a00404.html#a3f59de9148cd19fd9c9e047d2df7c9b3">size_type</a> <a class="code" href="a00405.html#afe6cef6d9b87dc13a1a0738db37c52f0">index</a> ()<span class="keyword"> const </span>{
<a name="l01488"></a>01488 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00405.html#a77f1a1f41010a6f1b5bc6aadeb5e4b55">it_</a> &lt; (*<span class="keyword">this</span>) ().size (), <a class="code" href="a00015.html">bad_index</a> ());
<a name="l01489"></a>01489 <span class="keywordflow">return</span> <a class="code" href="a00405.html#a77f1a1f41010a6f1b5bc6aadeb5e4b55">it_</a>;
<a name="l01490"></a>01490 }
<a name="l01491"></a>01491
<a name="l01492"></a>01492 <span class="comment">// Assignment</span>
<a name="l01493"></a>01493 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01494"></a><a class="code" href="a00405.html#a7823894ed7c5cafecd45fc2f834bf984">01494</a> <a class="code" href="a00405.html">const_iterator</a> &amp;<a class="code" href="a00405.html#a7823894ed7c5cafecd45fc2f834bf984">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00405.html">const_iterator</a> &amp;it) {
<a name="l01495"></a>01495 <a class="code" href="a00069.html#ab14250fc4fe5b9bcab4eb9fba8a5b5f8">container_const_reference&lt;scalar_vector&gt;::assign</a> (&amp;it ());
<a name="l01496"></a>01496 <a class="code" href="a00405.html#a77f1a1f41010a6f1b5bc6aadeb5e4b55">it_</a> = it.<a class="code" href="a00405.html#a77f1a1f41010a6f1b5bc6aadeb5e4b55">it_</a>;
<a name="l01497"></a>01497 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01498"></a>01498 }
<a name="l01499"></a>01499
<a name="l01500"></a>01500 <span class="comment">// Comparison</span>
<a name="l01501"></a>01501 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01502"></a><a class="code" href="a00405.html#aaa4444e7ba4ac4fe93512b3d2794d8e5">01502</a> <span class="keywordtype">bool</span> <a class="code" href="a00405.html#aaa4444e7ba4ac4fe93512b3d2794d8e5">operator == </a>(<span class="keyword">const</span> <a class="code" href="a00405.html">const_iterator</a> &amp;it)<span class="keyword"> const </span>{
<a name="l01503"></a>01503 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&amp;(*<span class="keyword">this</span>) () == &amp;it (), <a class="code" href="a00132.html">external_logic</a> ());
<a name="l01504"></a>01504 <span class="keywordflow">return</span> <a class="code" href="a00405.html#a77f1a1f41010a6f1b5bc6aadeb5e4b55">it_</a> == it.<a class="code" href="a00405.html#a77f1a1f41010a6f1b5bc6aadeb5e4b55">it_</a>;
<a name="l01505"></a>01505 }
<a name="l01506"></a>01506 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01507"></a><a class="code" href="a00405.html#ab49cd217f6f17f9032bd42343454d852">01507</a> <span class="keywordtype">bool</span> <a class="code" href="a00405.html#ab49cd217f6f17f9032bd42343454d852">operator &lt; </a>(<span class="keyword">const</span> <a class="code" href="a00405.html">const_iterator</a> &amp;it)<span class="keyword"> const </span>{
<a name="l01508"></a>01508 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&amp;(*<span class="keyword">this</span>) () == &amp;it (), <a class="code" href="a00132.html">external_logic</a> ());
<a name="l01509"></a>01509 <span class="keywordflow">return</span> <a class="code" href="a00405.html#a77f1a1f41010a6f1b5bc6aadeb5e4b55">it_</a> &lt; it.<a class="code" href="a00405.html#a77f1a1f41010a6f1b5bc6aadeb5e4b55">it_</a>;
<a name="l01510"></a>01510 }
<a name="l01511"></a>01511
<a name="l01512"></a>01512 <span class="keyword">private</span>:
<a name="l01513"></a><a class="code" href="a00405.html#a77f1a1f41010a6f1b5bc6aadeb5e4b55">01513</a> <a class="code" href="a00404.html#af815d0f7a0f2a8d1c43f7e6dd675d297">const_subiterator_type</a> <a class="code" href="a00405.html#a77f1a1f41010a6f1b5bc6aadeb5e4b55">it_</a>;
<a name="l01514"></a>01514 };
<a name="l01515"></a>01515
<a name="l01516"></a><a class="code" href="a00404.html#a853fa75318e037846b40ae32dc336b96">01516</a> <span class="keyword">typedef</span> <a class="code" href="a00405.html">const_iterator</a> <a class="code" href="a00404.html#a853fa75318e037846b40ae32dc336b96">iterator</a>;
<a name="l01517"></a>01517 <span class="preprocessor">#endif</span>
<a name="l01518"></a>01518 <span class="preprocessor"></span>
<a name="l01519"></a>01519 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01520"></a><a class="code" href="a00404.html#a41d8bd2613c4c7e91d0088bc742ad1fc">01520</a> <a class="code" href="a00405.html">const_iterator</a> <a class="code" href="a00404.html#a41d8bd2613c4c7e91d0088bc742ad1fc">begin</a> ()<span class="keyword"> const </span>{
<a name="l01521"></a>01521 <span class="keywordflow">return</span> <a class="code" href="a00404.html#a8d9c8a1603340a9be87af509ee433a57">find</a> (0);
<a name="l01522"></a>01522 }
<a name="l01523"></a>01523 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01524"></a><a class="code" href="a00404.html#abe649bf35f6c5aaf5b4dc06da3521a80">01524</a> <a class="code" href="a00405.html">const_iterator</a> <a class="code" href="a00404.html#abe649bf35f6c5aaf5b4dc06da3521a80">end</a> ()<span class="keyword"> const </span>{
<a name="l01525"></a>01525 <span class="keywordflow">return</span> <a class="code" href="a00404.html#a8d9c8a1603340a9be87af509ee433a57">find</a> (<a class="code" href="a00404.html#a04d4c54cbe8a288f943d0070f9c35bd1">size_</a>);
<a name="l01526"></a>01526 }
<a name="l01527"></a>01527
<a name="l01528"></a>01528 <span class="comment">// Reverse iterator</span>
<a name="l01529"></a><a class="code" href="a00404.html#a9cddf30eb51038908a89ee83fe736a63">01529</a> <span class="keyword">typedef</span> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">reverse_iterator_base&lt;const_iterator&gt;</a> <a class="code" href="a00404.html#a9cddf30eb51038908a89ee83fe736a63">const_reverse_iterator</a>;
<a name="l01530"></a>01530
<a name="l01531"></a>01531 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01532"></a><a class="code" href="a00404.html#a67d013c961a8cc082cc0d2bd8b5d4ed0">01532</a> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">const_reverse_iterator</a> <a class="code" href="a00404.html#a67d013c961a8cc082cc0d2bd8b5d4ed0">rbegin</a> ()<span class="keyword"> const </span>{
<a name="l01533"></a>01533 <span class="keywordflow">return</span> <a class="code" href="a00404.html#a9cddf30eb51038908a89ee83fe736a63">const_reverse_iterator</a> (<a class="code" href="a00404.html#abe649bf35f6c5aaf5b4dc06da3521a80">end</a> ());
<a name="l01534"></a>01534 }
<a name="l01535"></a>01535 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01536"></a><a class="code" href="a00404.html#adf7e5abead47b14151c7ed60f09f96f3">01536</a> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">const_reverse_iterator</a> <a class="code" href="a00404.html#adf7e5abead47b14151c7ed60f09f96f3">rend</a> ()<span class="keyword"> const </span>{
<a name="l01537"></a>01537 <span class="keywordflow">return</span> <a class="code" href="a00404.html#a9cddf30eb51038908a89ee83fe736a63">const_reverse_iterator</a> (<a class="code" href="a00404.html#a41d8bd2613c4c7e91d0088bc742ad1fc">begin</a> ());
<a name="l01538"></a>01538 }
<a name="l01539"></a>01539
<a name="l01540"></a>01540 <span class="comment">// Serialization</span>
<a name="l01541"></a>01541 <span class="keyword">template</span>&lt;<span class="keyword">class</span> Archive&gt;
<a name="l01542"></a><a class="code" href="a00404.html#a6b354fd766d6601b1a878b1ccbd712e8">01542</a> <span class="keywordtype">void</span> <a class="code" href="a00404.html#a6b354fd766d6601b1a878b1ccbd712e8">serialize</a>(Archive &amp; ar, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <span class="comment">/* file_version */</span>){
<a name="l01543"></a>01543 serialization::collection_size_type s (<a class="code" href="a00404.html#a04d4c54cbe8a288f943d0070f9c35bd1">size_</a>);
<a name="l01544"></a>01544 ar &amp; serialization::make_nvp(<span class="stringliteral">&quot;size&quot;</span>,s);
<a name="l01545"></a>01545 <span class="keywordflow">if</span> (Archive::is_loading::value) {
<a name="l01546"></a>01546 <a class="code" href="a00404.html#a04d4c54cbe8a288f943d0070f9c35bd1">size_</a> = s;
<a name="l01547"></a>01547 }
<a name="l01548"></a>01548 ar &amp; serialization::make_nvp(<span class="stringliteral">&quot;value&quot;</span>, <a class="code" href="a00404.html#ad8e4bf5b7047a50b0de28a8514109aeb">value_</a>);
<a name="l01549"></a>01549 }
<a name="l01550"></a>01550
<a name="l01551"></a>01551 <span class="keyword">private</span>:
<a name="l01552"></a><a class="code" href="a00404.html#a04d4c54cbe8a288f943d0070f9c35bd1">01552</a> <a class="code" href="a00404.html#a3f59de9148cd19fd9c9e047d2df7c9b3">size_type</a> <a class="code" href="a00404.html#a04d4c54cbe8a288f943d0070f9c35bd1">size_</a>;
<a name="l01553"></a><a class="code" href="a00404.html#ad8e4bf5b7047a50b0de28a8514109aeb">01553</a> <a class="code" href="a00404.html#a4abe24032ff1c77a13f588ddb6e631fc">value_type</a> <a class="code" href="a00404.html#ad8e4bf5b7047a50b0de28a8514109aeb">value_</a>;
<a name="l01554"></a>01554 };
<a name="l01555"></a>01555
<a name="l01556"></a>01556 <span class="comment">// ------------------------</span>
<a name="l01557"></a>01557 <span class="comment">// Array based vector class</span>
<a name="l01558"></a>01558 <span class="comment">// ------------------------</span>
<a name="l01559"></a>01559
<a name="l01561"></a>01561 <span class="keyword">template</span>&lt;<span class="keyword">class</span> T, std::<span class="keywordtype">size_t</span> N&gt;
<a name="l01562"></a><a class="code" href="a00049.html">01562</a> <span class="keyword">class </span><a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">c_vector</a>:
<a name="l01563"></a>01563 <span class="keyword">public</span> <a class="code" href="a00506.html" title="Base class for Vector container models.">vector_container</a>&lt;c_vector&lt;T, N&gt; &gt; {
<a name="l01564"></a>01564
<a name="l01565"></a><a class="code" href="a00049.html#a1ebd89910d36b06fa5000f24bf57e87c">01565</a> <span class="keyword">typedef</span> <a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">c_vector&lt;T, N&gt;</a> <a class="code" href="a00049.html#a1ebd89910d36b06fa5000f24bf57e87c">self_type</a>;
<a name="l01566"></a>01566 <span class="keyword">public</span>:
<a name="l01567"></a>01567 <span class="preprocessor">#ifdef BOOST_UBLAS_ENABLE_PROXY_SHORTCUTS</span>
<a name="l01568"></a>01568 <span class="preprocessor"></span> <span class="keyword">using</span> <a class="code" href="a00506.html" title="Base class for Vector container models.">vector_container&lt;self_type&gt;::operator </a>();
<a name="l01569"></a>01569 <span class="preprocessor">#endif</span>
<a name="l01570"></a><a class="code" href="a00049.html#a1b7d3ee4f291fe1e6dbd47ad08c9028e">01570</a> <span class="preprocessor"></span> <span class="keyword">typedef</span> std::size_t <a class="code" href="a00049.html#a1b7d3ee4f291fe1e6dbd47ad08c9028e">size_type</a>;
<a name="l01571"></a><a class="code" href="a00049.html#a3367631b974305ae4e6a66492299a12b">01571</a> <span class="keyword">typedef</span> std::ptrdiff_t <a class="code" href="a00049.html#a3367631b974305ae4e6a66492299a12b">difference_type</a>;
<a name="l01572"></a><a class="code" href="a00049.html#a0511768649554fe6715ce55ebea8cff4">01572</a> <span class="keyword">typedef</span> T <a class="code" href="a00049.html#a0511768649554fe6715ce55ebea8cff4">value_type</a>;
<a name="l01573"></a><a class="code" href="a00049.html#addf52fb18ebdcb11b7bf049c6f28de6d">01573</a> <span class="keyword">typedef</span> <span class="keyword">const</span> T &amp;<a class="code" href="a00049.html#addf52fb18ebdcb11b7bf049c6f28de6d">const_reference</a>;
<a name="l01574"></a><a class="code" href="a00049.html#a415dd09b8a4bb6b6e102f4a7aa87ae9b">01574</a> <span class="keyword">typedef</span> T &amp;<a class="code" href="a00049.html#a415dd09b8a4bb6b6e102f4a7aa87ae9b">reference</a>;
<a name="l01575"></a><a class="code" href="a00049.html#a120db239ad958c3b29f39430baaafa98">01575</a> <span class="keyword">typedef</span> <a class="code" href="a00049.html#a0511768649554fe6715ce55ebea8cff4">value_type</a> <a class="code" href="a00049.html#a120db239ad958c3b29f39430baaafa98">array_type</a>[N];
<a name="l01576"></a><a class="code" href="a00049.html#a02d246159dd98e4abef97e8a90c6f933">01576</a> <span class="keyword">typedef</span> T *<a class="code" href="a00049.html#a02d246159dd98e4abef97e8a90c6f933">pointer</a>;
<a name="l01577"></a><a class="code" href="a00049.html#adc305ee0bb1f9e86da65db1e0497a422">01577</a> <span class="keyword">typedef</span> <span class="keyword">const</span> T *<a class="code" href="a00049.html#adc305ee0bb1f9e86da65db1e0497a422">const_pointer</a>;
<a name="l01578"></a><a class="code" href="a00049.html#ac6df4ffbbabb0916a83299a79c5bcad8">01578</a> <span class="keyword">typedef</span> <span class="keyword">const</span> <a class="code" href="a00531.html">vector_reference&lt;const self_type&gt;</a> <a class="code" href="a00049.html#ac6df4ffbbabb0916a83299a79c5bcad8">const_closure_type</a>;
<a name="l01579"></a><a class="code" href="a00049.html#aa4d721ac7b2007e344b7a30cd33a54e2">01579</a> <span class="keyword">typedef</span> <a class="code" href="a00531.html">vector_reference&lt;self_type&gt;</a> <a class="code" href="a00049.html#aa4d721ac7b2007e344b7a30cd33a54e2">closure_type</a>;
<a name="l01580"></a><a class="code" href="a00049.html#ac51e4409abf952fc249c3319438f9c2a">01580</a> <span class="keyword">typedef</span> <a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">self_type</a> <a class="code" href="a00049.html#ac51e4409abf952fc249c3319438f9c2a">vector_temporary_type</a>;
<a name="l01581"></a><a class="code" href="a00049.html#a02e08ec9f0be53099a0f141c2fd53dc1">01581</a> <span class="keyword">typedef</span> <a class="code" href="a00083.html">dense_tag</a> <a class="code" href="a00049.html#a02e08ec9f0be53099a0f141c2fd53dc1">storage_category</a>;
<a name="l01582"></a>01582
<a name="l01583"></a>01583 <span class="comment">// Construction and destruction</span>
<a name="l01584"></a>01584 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01585"></a><a class="code" href="a00049.html#a40916b22875a2a79fbce4112249ac36d">01585</a> <a class="code" href="a00049.html#a40916b22875a2a79fbce4112249ac36d">c_vector</a> ():
<a name="l01586"></a>01586 <a class="code" href="a00049.html#adf05c15d9f3d838d3974d89f6dd63346">size_</a> (N) <span class="comment">/* , data_ () */</span> {}
<a name="l01587"></a>01587 <span class="keyword">explicit</span> <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01588"></a><a class="code" href="a00049.html#a3caead8d6c10e17a4047f399840f4b6a">01588</a> <a class="code" href="a00049.html#a40916b22875a2a79fbce4112249ac36d">c_vector</a> (<a class="code" href="a00049.html#a1b7d3ee4f291fe1e6dbd47ad08c9028e">size_type</a> <a class="code" href="a00049.html#ac36ebd5612df68dee9d07a50f978851e">size</a>):
<a name="l01589"></a>01589 <a class="code" href="a00049.html#adf05c15d9f3d838d3974d89f6dd63346">size_</a> (size) <span class="comment">/* , data_ () */</span> {
<a name="l01590"></a>01590 <span class="keywordflow">if</span> (<a class="code" href="a00049.html#adf05c15d9f3d838d3974d89f6dd63346">size_</a> &gt; N)
<a name="l01591"></a>01591 <a class="code" href="a00016.html">bad_size</a> ().<a class="code" href="a00016.html#a00338404f646152e4401e7929824adf2">raise</a> ();
<a name="l01592"></a>01592 }
<a name="l01593"></a>01593 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01594"></a><a class="code" href="a00049.html#a27214ccedcae7f7d84bc896d87039c8f">01594</a> <a class="code" href="a00049.html#a40916b22875a2a79fbce4112249ac36d">c_vector</a> (<span class="keyword">const</span> <a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">c_vector</a> &amp;v):
<a name="l01595"></a>01595 <a class="code" href="a00049.html#adf05c15d9f3d838d3974d89f6dd63346">size_</a> (v.<a class="code" href="a00049.html#adf05c15d9f3d838d3974d89f6dd63346">size_</a>) <span class="comment">/* , data_ () */</span> {
<a name="l01596"></a>01596 <span class="keywordflow">if</span> (<a class="code" href="a00049.html#adf05c15d9f3d838d3974d89f6dd63346">size_</a> &gt; N)
<a name="l01597"></a>01597 <a class="code" href="a00016.html">bad_size</a> ().<a class="code" href="a00016.html#a00338404f646152e4401e7929824adf2">raise</a> ();
<a name="l01598"></a>01598 <a class="code" href="a00049.html#aa012b722fab525314e395ff783bb2962">assign</a>(v);
<a name="l01599"></a>01599 }
<a name="l01600"></a>01600 <span class="keyword">template</span>&lt;<span class="keyword">class</span> AE&gt;
<a name="l01601"></a>01601 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01602"></a><a class="code" href="a00049.html#a45cef171dc35d4f0f8ea4c1539a53131">01602</a> <a class="code" href="a00049.html#a40916b22875a2a79fbce4112249ac36d">c_vector</a> (<span class="keyword">const</span> <a class="code" href="a00507.html" title="Base class for Vector Expression models.">vector_expression&lt;AE&gt;</a> &amp;ae):
<a name="l01603"></a>01603 <a class="code" href="a00049.html#adf05c15d9f3d838d3974d89f6dd63346">size_</a> (ae ().<a class="code" href="a00049.html#ac36ebd5612df68dee9d07a50f978851e">size</a> ()) <span class="comment">/* , data_ () */</span> {
<a name="l01604"></a>01604 <span class="keywordflow">if</span> (<a class="code" href="a00049.html#adf05c15d9f3d838d3974d89f6dd63346">size_</a> &gt; N)
<a name="l01605"></a>01605 <a class="code" href="a00016.html">bad_size</a> ().<a class="code" href="a00016.html#a00338404f646152e4401e7929824adf2">raise</a> ();
<a name="l01606"></a>01606 vector_assign&lt;scalar_assign&gt; (*<span class="keyword">this</span>, ae);
<a name="l01607"></a>01607 }
<a name="l01608"></a>01608
<a name="l01609"></a>01609 <span class="comment">// Accessors</span>
<a name="l01610"></a>01610 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01611"></a><a class="code" href="a00049.html#ac36ebd5612df68dee9d07a50f978851e">01611</a> <a class="code" href="a00049.html#a1b7d3ee4f291fe1e6dbd47ad08c9028e">size_type</a> <a class="code" href="a00049.html#ac36ebd5612df68dee9d07a50f978851e">size</a> ()<span class="keyword"> const </span>{
<a name="l01612"></a>01612 <span class="keywordflow">return</span> <a class="code" href="a00049.html#adf05c15d9f3d838d3974d89f6dd63346">size_</a>;
<a name="l01613"></a>01613 }
<a name="l01614"></a>01614 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01615"></a><a class="code" href="a00049.html#adb1ba1f7d36ad0b3a7c9297e56d78810">01615</a> <a class="code" href="a00049.html#adc305ee0bb1f9e86da65db1e0497a422">const_pointer</a> <a class="code" href="a00049.html#adb1ba1f7d36ad0b3a7c9297e56d78810">data</a> ()<span class="keyword"> const </span>{
<a name="l01616"></a>01616 <span class="keywordflow">return</span> <a class="code" href="a00049.html#a0f04d4f184ddab15216a73d4964175e8">data_</a>;
<a name="l01617"></a>01617 }
<a name="l01618"></a>01618 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01619"></a><a class="code" href="a00049.html#ad803bcbefdf905fb7da27887004e35ff">01619</a> <a class="code" href="a00049.html#a02d246159dd98e4abef97e8a90c6f933">pointer</a> <a class="code" href="a00049.html#ad803bcbefdf905fb7da27887004e35ff">data</a> () {
<a name="l01620"></a>01620 <span class="keywordflow">return</span> <a class="code" href="a00049.html#a0f04d4f184ddab15216a73d4964175e8">data_</a>;
<a name="l01621"></a>01621 }
<a name="l01622"></a>01622
<a name="l01623"></a>01623 <span class="comment">// Resizing</span>
<a name="l01624"></a>01624 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01625"></a><a class="code" href="a00049.html#ab78a17bb4fb2eeb20a71f374f75b731c">01625</a> <span class="keywordtype">void</span> <a class="code" href="a00049.html#ab78a17bb4fb2eeb20a71f374f75b731c">resize</a> (<a class="code" href="a00049.html#a1b7d3ee4f291fe1e6dbd47ad08c9028e">size_type</a> <a class="code" href="a00049.html#ac36ebd5612df68dee9d07a50f978851e">size</a>, <span class="keywordtype">bool</span> preserve = <span class="keyword">true</span>) {
<a name="l01626"></a>01626 <span class="keywordflow">if</span> (size &gt; N)
<a name="l01627"></a>01627 <a class="code" href="a00016.html">bad_size</a> ().<a class="code" href="a00016.html#a00338404f646152e4401e7929824adf2">raise</a> ();
<a name="l01628"></a>01628 <a class="code" href="a00049.html#adf05c15d9f3d838d3974d89f6dd63346">size_</a> = <a class="code" href="a00049.html#ac36ebd5612df68dee9d07a50f978851e">size</a>;
<a name="l01629"></a>01629 }
<a name="l01630"></a>01630
<a name="l01631"></a>01631 <span class="comment">// Element support</span>
<a name="l01632"></a>01632 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01633"></a><a class="code" href="a00049.html#a1fe588925d612885719cf96735291bfa">01633</a> <a class="code" href="a00049.html#a02d246159dd98e4abef97e8a90c6f933">pointer</a> <a class="code" href="a00049.html#a1fe588925d612885719cf96735291bfa">find_element</a> (<a class="code" href="a00049.html#a1b7d3ee4f291fe1e6dbd47ad08c9028e">size_type</a> i) {
<a name="l01634"></a>01634 <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span><a class="code" href="a00049.html#a02d246159dd98e4abef97e8a90c6f933">pointer</a><span class="keyword">&gt;</span> (<span class="keyword">const_cast&lt;</span><span class="keyword">const </span><a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">self_type</a>&amp;<span class="keyword">&gt;</span>(*this).<a class="code" href="a00049.html#a1fe588925d612885719cf96735291bfa">find_element</a> (i));
<a name="l01635"></a>01635 }
<a name="l01636"></a>01636 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01637"></a><a class="code" href="a00049.html#a4670a13ddd0193b6fb16ea1d77be3eea">01637</a> <a class="code" href="a00049.html#adc305ee0bb1f9e86da65db1e0497a422">const_pointer</a> <a class="code" href="a00049.html#a4670a13ddd0193b6fb16ea1d77be3eea">find_element</a> (<a class="code" href="a00049.html#a1b7d3ee4f291fe1e6dbd47ad08c9028e">size_type</a> i)<span class="keyword"> const </span>{
<a name="l01638"></a>01638 <span class="keywordflow">return</span> &amp; <a class="code" href="a00049.html#a0f04d4f184ddab15216a73d4964175e8">data_</a> [i];
<a name="l01639"></a>01639 }
<a name="l01640"></a>01640
<a name="l01641"></a>01641 <span class="comment">// Element access</span>
<a name="l01642"></a>01642 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01643"></a><a class="code" href="a00049.html#a1832787f54f27465c1318809d10c92d5">01643</a> <a class="code" href="a00049.html#addf52fb18ebdcb11b7bf049c6f28de6d">const_reference</a> <a class="code" href="a00506.html#a1fb3e3c565194eaf99e6af65daadc76a">operator () </a>(<a class="code" href="a00049.html#a1b7d3ee4f291fe1e6dbd47ad08c9028e">size_type</a> i)<span class="keyword"> const </span>{
<a name="l01644"></a>01644 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (i &lt; <a class="code" href="a00049.html#adf05c15d9f3d838d3974d89f6dd63346">size_</a>, <a class="code" href="a00015.html">bad_index</a> ());
<a name="l01645"></a>01645 <span class="keywordflow">return</span> <a class="code" href="a00049.html#a0f04d4f184ddab15216a73d4964175e8">data_</a> [i];
<a name="l01646"></a>01646 }
<a name="l01647"></a>01647 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01648"></a><a class="code" href="a00049.html#a1e9846a6e593608c91c47e11889957d2">01648</a> <a class="code" href="a00049.html#a415dd09b8a4bb6b6e102f4a7aa87ae9b">reference</a> <a class="code" href="a00506.html#a1fb3e3c565194eaf99e6af65daadc76a">operator () </a>(<a class="code" href="a00049.html#a1b7d3ee4f291fe1e6dbd47ad08c9028e">size_type</a> i) {
<a name="l01649"></a>01649 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (i &lt; <a class="code" href="a00049.html#adf05c15d9f3d838d3974d89f6dd63346">size_</a>, <a class="code" href="a00015.html">bad_index</a> ());
<a name="l01650"></a>01650 <span class="keywordflow">return</span> <a class="code" href="a00049.html#a0f04d4f184ddab15216a73d4964175e8">data_</a> [i];
<a name="l01651"></a>01651 }
<a name="l01652"></a>01652
<a name="l01653"></a>01653 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01654"></a><a class="code" href="a00049.html#aeb0192ad0b79f8c178279d3611644728">01654</a> <a class="code" href="a00049.html#addf52fb18ebdcb11b7bf049c6f28de6d">const_reference</a> <a class="code" href="a00049.html#aeb0192ad0b79f8c178279d3611644728">operator [] </a>(<a class="code" href="a00049.html#a1b7d3ee4f291fe1e6dbd47ad08c9028e">size_type</a> i)<span class="keyword"> const </span>{
<a name="l01655"></a>01655 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) (i);
<a name="l01656"></a>01656 }
<a name="l01657"></a>01657 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01658"></a><a class="code" href="a00049.html#aab19b9a2faed35ab6f992f7b85debac5">01658</a> <a class="code" href="a00049.html#a415dd09b8a4bb6b6e102f4a7aa87ae9b">reference</a> <a class="code" href="a00049.html#aeb0192ad0b79f8c178279d3611644728">operator [] </a>(<a class="code" href="a00049.html#a1b7d3ee4f291fe1e6dbd47ad08c9028e">size_type</a> i) {
<a name="l01659"></a>01659 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) (i);
<a name="l01660"></a>01660 }
<a name="l01661"></a>01661
<a name="l01662"></a>01662 <span class="comment">// Element assignment</span>
<a name="l01663"></a>01663 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01664"></a><a class="code" href="a00049.html#aa3617fcd962ea435a28905344f40412d">01664</a> <a class="code" href="a00049.html#a415dd09b8a4bb6b6e102f4a7aa87ae9b">reference</a> <a class="code" href="a00049.html#aa3617fcd962ea435a28905344f40412d">insert_element</a> (<a class="code" href="a00049.html#a1b7d3ee4f291fe1e6dbd47ad08c9028e">size_type</a> i, <a class="code" href="a00049.html#addf52fb18ebdcb11b7bf049c6f28de6d">const_reference</a> t) {
<a name="l01665"></a>01665 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (i &lt; <a class="code" href="a00049.html#adf05c15d9f3d838d3974d89f6dd63346">size_</a>, <a class="code" href="a00015.html">bad_index</a> ());
<a name="l01666"></a>01666 <span class="keywordflow">return</span> (<a class="code" href="a00049.html#a0f04d4f184ddab15216a73d4964175e8">data_</a> [i] = t);
<a name="l01667"></a>01667 }
<a name="l01668"></a>01668 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01669"></a><a class="code" href="a00049.html#ad4e419cb756c4bb2a80e4daf9cf37eb7">01669</a> <span class="keywordtype">void</span> <a class="code" href="a00049.html#ad4e419cb756c4bb2a80e4daf9cf37eb7">erase_element</a> (<a class="code" href="a00049.html#a1b7d3ee4f291fe1e6dbd47ad08c9028e">size_type</a> i) {
<a name="l01670"></a>01670 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (i &lt; <a class="code" href="a00049.html#adf05c15d9f3d838d3974d89f6dd63346">size_</a>, <a class="code" href="a00015.html">bad_index</a> ());
<a name="l01671"></a>01671 <a class="code" href="a00049.html#a0f04d4f184ddab15216a73d4964175e8">data_</a> [i] = <a class="code" href="a00049.html#a0511768649554fe6715ce55ebea8cff4">value_type</a><span class="comment">/*zero*/</span>();
<a name="l01672"></a>01672 }
<a name="l01673"></a>01673
<a name="l01674"></a>01674 <span class="comment">// Zeroing</span>
<a name="l01675"></a>01675 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01676"></a><a class="code" href="a00049.html#a9a62bbe7f9f7c19cb4c471d77009d33d">01676</a> <span class="keywordtype">void</span> <a class="code" href="a00049.html#a9a62bbe7f9f7c19cb4c471d77009d33d">clear</a> () {
<a name="l01677"></a>01677 std::fill (<a class="code" href="a00049.html#a0f04d4f184ddab15216a73d4964175e8">data_</a>, <a class="code" href="a00049.html#a0f04d4f184ddab15216a73d4964175e8">data_</a> + <a class="code" href="a00049.html#adf05c15d9f3d838d3974d89f6dd63346">size_</a>, <a class="code" href="a00049.html#a0511768649554fe6715ce55ebea8cff4">value_type</a><span class="comment">/*zero*/</span>());
<a name="l01678"></a>01678 }
<a name="l01679"></a>01679
<a name="l01680"></a>01680 <span class="comment">// Assignment</span>
<a name="l01681"></a>01681 <span class="preprocessor">#ifdef BOOST_UBLAS_MOVE_SEMANTICS</span>
<a name="l01682"></a>01682 <span class="preprocessor"></span>
<a name="l01684"></a>01684 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01685"></a>01685 <a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">c_vector</a> &amp;<a class="code" href="a00049.html#ad8bb98e430fb4246b3ee4c98ebf10dd8">operator = </a>(<a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">c_vector</a> v) {
<a name="l01686"></a>01686 <a class="code" href="a00049.html#a886468819ba34f811ae0884635bedb08">assign_temporary</a>(v);
<a name="l01687"></a>01687 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01688"></a>01688 }
<a name="l01689"></a>01689 <span class="preprocessor">#else</span>
<a name="l01690"></a>01690 <span class="preprocessor"></span> <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01691"></a><a class="code" href="a00049.html#ad8bb98e430fb4246b3ee4c98ebf10dd8">01691</a> <a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">c_vector</a> &amp;<a class="code" href="a00049.html#ad8bb98e430fb4246b3ee4c98ebf10dd8">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">c_vector</a> &amp;v) {
<a name="l01692"></a>01692 <a class="code" href="a00049.html#adf05c15d9f3d838d3974d89f6dd63346">size_</a> = v.<a class="code" href="a00049.html#adf05c15d9f3d838d3974d89f6dd63346">size_</a>;
<a name="l01693"></a>01693 <a class="code" href="a00651.html#aeb7460bec576eb9c5217050d6baa4f6f">std::copy</a> (v.<a class="code" href="a00049.html#a0f04d4f184ddab15216a73d4964175e8">data_</a>, v.<a class="code" href="a00049.html#a0f04d4f184ddab15216a73d4964175e8">data_</a> + v.<a class="code" href="a00049.html#adf05c15d9f3d838d3974d89f6dd63346">size_</a>, <a class="code" href="a00049.html#a0f04d4f184ddab15216a73d4964175e8">data_</a>);
<a name="l01694"></a>01694 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01695"></a>01695 }
<a name="l01696"></a>01696 <span class="preprocessor">#endif</span>
<a name="l01697"></a>01697 <span class="preprocessor"></span> <span class="keyword">template</span>&lt;<span class="keyword">class</span> C&gt; <span class="comment">// Container assignment without temporary</span>
<a name="l01698"></a>01698 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01699"></a><a class="code" href="a00049.html#a0bc6532a8c5f9da8d8dc2b8b146013c5">01699</a> <a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">c_vector</a> &amp;<a class="code" href="a00049.html#ad8bb98e430fb4246b3ee4c98ebf10dd8">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00506.html" title="Base class for Vector container models.">vector_container&lt;C&gt;</a> &amp;v) {
<a name="l01700"></a>01700 <a class="code" href="a00049.html#ab78a17bb4fb2eeb20a71f374f75b731c">resize</a> (v ().<a class="code" href="a00049.html#ac36ebd5612df68dee9d07a50f978851e">size</a> (), <span class="keyword">false</span>);
<a name="l01701"></a>01701 <a class="code" href="a00049.html#aa012b722fab525314e395ff783bb2962">assign</a> (v);
<a name="l01702"></a>01702 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01703"></a>01703 }
<a name="l01704"></a>01704 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01705"></a><a class="code" href="a00049.html#a886468819ba34f811ae0884635bedb08">01705</a> <a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">c_vector</a> &amp;<a class="code" href="a00049.html#a886468819ba34f811ae0884635bedb08">assign_temporary</a> (<a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">c_vector</a> &amp;v) {
<a name="l01706"></a>01706 <a class="code" href="a00049.html#a0d6817a322c9168a0f329294d2ab888c">swap</a> (v);
<a name="l01707"></a>01707 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01708"></a>01708 }
<a name="l01709"></a>01709 <span class="keyword">template</span>&lt;<span class="keyword">class</span> AE&gt;
<a name="l01710"></a>01710 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01711"></a><a class="code" href="a00049.html#a310f1ba98ab8187848b2665e0d949378">01711</a> <a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">c_vector</a> &amp;<a class="code" href="a00049.html#ad8bb98e430fb4246b3ee4c98ebf10dd8">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00507.html" title="Base class for Vector Expression models.">vector_expression&lt;AE&gt;</a> &amp;ae) {
<a name="l01712"></a>01712 <a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">self_type</a> temporary (ae);
<a name="l01713"></a>01713 <span class="keywordflow">return</span> <a class="code" href="a00049.html#a886468819ba34f811ae0884635bedb08">assign_temporary</a> (temporary);
<a name="l01714"></a>01714 }
<a name="l01715"></a>01715 <span class="keyword">template</span>&lt;<span class="keyword">class</span> AE&gt;
<a name="l01716"></a>01716 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01717"></a><a class="code" href="a00049.html#aa012b722fab525314e395ff783bb2962">01717</a> <a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">c_vector</a> &amp;<a class="code" href="a00049.html#aa012b722fab525314e395ff783bb2962">assign</a> (<span class="keyword">const</span> <a class="code" href="a00507.html" title="Base class for Vector Expression models.">vector_expression&lt;AE&gt;</a> &amp;ae) {
<a name="l01718"></a>01718 vector_assign&lt;scalar_assign&gt; (*<span class="keyword">this</span>, ae);
<a name="l01719"></a>01719 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01720"></a>01720 }
<a name="l01721"></a>01721
<a name="l01722"></a>01722 <span class="comment">// Computed assignment</span>
<a name="l01723"></a>01723 <span class="keyword">template</span>&lt;<span class="keyword">class</span> AE&gt;
<a name="l01724"></a>01724 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01725"></a><a class="code" href="a00049.html#a83e53883e5a93d1cce865c6fff2811e8">01725</a> <a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">c_vector</a> &amp;<a class="code" href="a00049.html#a83e53883e5a93d1cce865c6fff2811e8">operator += </a>(<span class="keyword">const</span> <a class="code" href="a00507.html" title="Base class for Vector Expression models.">vector_expression&lt;AE&gt;</a> &amp;ae) {
<a name="l01726"></a>01726 <a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">self_type</a> temporary (*<span class="keyword">this</span> + ae);
<a name="l01727"></a>01727 <span class="keywordflow">return</span> <a class="code" href="a00049.html#a886468819ba34f811ae0884635bedb08">assign_temporary</a> (temporary);
<a name="l01728"></a>01728 }
<a name="l01729"></a>01729 <span class="keyword">template</span>&lt;<span class="keyword">class</span> C&gt; <span class="comment">// Container assignment without temporary</span>
<a name="l01730"></a>01730 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01731"></a><a class="code" href="a00049.html#ac5129a5e44038911420b3634b8b63f38">01731</a> <a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">c_vector</a> &amp;<a class="code" href="a00049.html#a83e53883e5a93d1cce865c6fff2811e8">operator += </a>(<span class="keyword">const</span> <a class="code" href="a00506.html" title="Base class for Vector container models.">vector_container&lt;C&gt;</a> &amp;v) {
<a name="l01732"></a>01732 <a class="code" href="a00049.html#a57c367861dea5efdfc5697c0b1f7603f">plus_assign</a> (v);
<a name="l01733"></a>01733 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01734"></a>01734 }
<a name="l01735"></a>01735 <span class="keyword">template</span>&lt;<span class="keyword">class</span> AE&gt;
<a name="l01736"></a>01736 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01737"></a><a class="code" href="a00049.html#a57c367861dea5efdfc5697c0b1f7603f">01737</a> <a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">c_vector</a> &amp;<a class="code" href="a00049.html#a57c367861dea5efdfc5697c0b1f7603f">plus_assign</a> (<span class="keyword">const</span> <a class="code" href="a00507.html" title="Base class for Vector Expression models.">vector_expression&lt;AE&gt;</a> &amp;ae) {
<a name="l01738"></a>01738 vector_assign&lt;scalar_plus_assign&gt; ( *<span class="keyword">this</span>, ae);
<a name="l01739"></a>01739 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01740"></a>01740 }
<a name="l01741"></a>01741 <span class="keyword">template</span>&lt;<span class="keyword">class</span> AE&gt;
<a name="l01742"></a>01742 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01743"></a><a class="code" href="a00049.html#a0685be88872103239081c00b98941636">01743</a> <a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">c_vector</a> &amp;<a class="code" href="a00049.html#a0685be88872103239081c00b98941636">operator -= </a>(<span class="keyword">const</span> <a class="code" href="a00507.html" title="Base class for Vector Expression models.">vector_expression&lt;AE&gt;</a> &amp;ae) {
<a name="l01744"></a>01744 <a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">self_type</a> temporary (*<span class="keyword">this</span> - ae);
<a name="l01745"></a>01745 <span class="keywordflow">return</span> <a class="code" href="a00049.html#a886468819ba34f811ae0884635bedb08">assign_temporary</a> (temporary);
<a name="l01746"></a>01746 }
<a name="l01747"></a>01747 <span class="keyword">template</span>&lt;<span class="keyword">class</span> C&gt; <span class="comment">// Container assignment without temporary</span>
<a name="l01748"></a>01748 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01749"></a><a class="code" href="a00049.html#ab78782c94ed83b2fde9d4736aef67997">01749</a> <a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">c_vector</a> &amp;<a class="code" href="a00049.html#a0685be88872103239081c00b98941636">operator -= </a>(<span class="keyword">const</span> <a class="code" href="a00506.html" title="Base class for Vector container models.">vector_container&lt;C&gt;</a> &amp;v) {
<a name="l01750"></a>01750 <a class="code" href="a00049.html#a303d8ba0a965f2f0f275d49f60b5b9d5">minus_assign</a> (v);
<a name="l01751"></a>01751 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01752"></a>01752 }
<a name="l01753"></a>01753 <span class="keyword">template</span>&lt;<span class="keyword">class</span> AE&gt;
<a name="l01754"></a>01754 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01755"></a><a class="code" href="a00049.html#a303d8ba0a965f2f0f275d49f60b5b9d5">01755</a> <a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">c_vector</a> &amp;<a class="code" href="a00049.html#a303d8ba0a965f2f0f275d49f60b5b9d5">minus_assign</a> (<span class="keyword">const</span> <a class="code" href="a00507.html" title="Base class for Vector Expression models.">vector_expression&lt;AE&gt;</a> &amp;ae) {
<a name="l01756"></a>01756 vector_assign&lt;scalar_minus_assign&gt; (*<span class="keyword">this</span>, ae);
<a name="l01757"></a>01757 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01758"></a>01758 }
<a name="l01759"></a>01759 <span class="keyword">template</span>&lt;<span class="keyword">class</span> AT&gt;
<a name="l01760"></a>01760 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01761"></a><a class="code" href="a00049.html#a51e4485f9ed5ae8095b64a7865e13975">01761</a> <a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">c_vector</a> &amp;<a class="code" href="a00049.html#a51e4485f9ed5ae8095b64a7865e13975">operator *= </a>(<span class="keyword">const</span> AT &amp;at) {
<a name="l01762"></a>01762 vector_assign_scalar&lt;scalar_multiplies_assign&gt; (*<span class="keyword">this</span>, at);
<a name="l01763"></a>01763 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01764"></a>01764 }
<a name="l01765"></a>01765 <span class="keyword">template</span>&lt;<span class="keyword">class</span> AT&gt;
<a name="l01766"></a>01766 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01767"></a><a class="code" href="a00049.html#a8b8206ff69b9ff87b345a40ea149ca37">01767</a> <a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">c_vector</a> &amp;<a class="code" href="a00049.html#a8b8206ff69b9ff87b345a40ea149ca37">operator /= </a>(<span class="keyword">const</span> AT &amp;at) {
<a name="l01768"></a>01768 vector_assign_scalar&lt;scalar_divides_assign&gt; (*<span class="keyword">this</span>, at);
<a name="l01769"></a>01769 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01770"></a>01770 }
<a name="l01771"></a>01771
<a name="l01772"></a>01772 <span class="comment">// Swapping</span>
<a name="l01773"></a>01773 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01774"></a><a class="code" href="a00049.html#a0d6817a322c9168a0f329294d2ab888c">01774</a> <span class="keywordtype">void</span> <a class="code" href="a00049.html#a0d6817a322c9168a0f329294d2ab888c">swap</a> (<a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">c_vector</a> &amp;v) {
<a name="l01775"></a>01775 <span class="keywordflow">if</span> (<span class="keyword">this</span> != &amp;v) {
<a name="l01776"></a>01776 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00049.html#adf05c15d9f3d838d3974d89f6dd63346">size_</a> == v.<a class="code" href="a00049.html#adf05c15d9f3d838d3974d89f6dd63346">size_</a>, <a class="code" href="a00016.html">bad_size</a> ());
<a name="l01777"></a>01777 <a class="code" href="a00049.html#a0d6817a322c9168a0f329294d2ab888c">std::swap</a> (<a class="code" href="a00049.html#adf05c15d9f3d838d3974d89f6dd63346">size_</a>, v.<a class="code" href="a00049.html#adf05c15d9f3d838d3974d89f6dd63346">size_</a>);
<a name="l01778"></a>01778 std::swap_ranges (<a class="code" href="a00049.html#a0f04d4f184ddab15216a73d4964175e8">data_</a>, <a class="code" href="a00049.html#a0f04d4f184ddab15216a73d4964175e8">data_</a> + <a class="code" href="a00049.html#adf05c15d9f3d838d3974d89f6dd63346">size_</a>, v.<a class="code" href="a00049.html#a0f04d4f184ddab15216a73d4964175e8">data_</a>);
<a name="l01779"></a>01779 }
<a name="l01780"></a>01780 }
<a name="l01781"></a>01781 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01782"></a><a class="code" href="a00049.html#a6323e92bbb43f889d0e00dabaaba9dcf">01782</a> <span class="keyword">friend</span> <span class="keywordtype">void</span> <a class="code" href="a00049.html#a6323e92bbb43f889d0e00dabaaba9dcf">swap</a> (<a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">c_vector</a> &amp;v1, <a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">c_vector</a> &amp;v2) {
<a name="l01783"></a>01783 v1.<a class="code" href="a00049.html#a0d6817a322c9168a0f329294d2ab888c">swap</a> (v2);
<a name="l01784"></a>01784 }
<a name="l01785"></a>01785
<a name="l01786"></a>01786 <span class="comment">// Iterator types</span>
<a name="l01787"></a>01787 <span class="keyword">private</span>:
<a name="l01788"></a>01788 <span class="comment">// Use pointers for iterator</span>
<a name="l01789"></a><a class="code" href="a00049.html#a5467c8d0775787b28c7c3308a4d04d39">01789</a> <span class="keyword">typedef</span> <a class="code" href="a00049.html#adc305ee0bb1f9e86da65db1e0497a422">const_pointer</a> <a class="code" href="a00049.html#a5467c8d0775787b28c7c3308a4d04d39">const_subiterator_type</a>;
<a name="l01790"></a><a class="code" href="a00049.html#a67a93f7f2fc8a0c3c258f4c10121fe10">01790</a> <span class="keyword">typedef</span> <a class="code" href="a00049.html#a02d246159dd98e4abef97e8a90c6f933">pointer</a> <a class="code" href="a00049.html#a67a93f7f2fc8a0c3c258f4c10121fe10">subiterator_type</a>;
<a name="l01791"></a>01791
<a name="l01792"></a>01792 <span class="keyword">public</span>:
<a name="l01793"></a>01793 <span class="preprocessor">#ifdef BOOST_UBLAS_USE_INDEXED_ITERATOR</span>
<a name="l01794"></a>01794 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00168.html" title="A class implementing an indexed random access iterator.">indexed_iterator&lt;self_type, dense_random_access_iterator_tag&gt;</a> <a class="code" href="a00051.html">iterator</a>;
<a name="l01795"></a>01795 <span class="keyword">typedef</span> <a class="code" href="a00165.html" title="A class implementing an indexed random access iterator.">indexed_const_iterator&lt;self_type, dense_random_access_iterator_tag&gt;</a> <a class="code" href="a00050.html">const_iterator</a>;
<a name="l01796"></a>01796 <span class="preprocessor">#else</span>
<a name="l01797"></a>01797 <span class="preprocessor"></span> <span class="keyword">class </span><a class="code" href="a00050.html">const_iterator</a>;
<a name="l01798"></a>01798 <span class="keyword">class </span><a class="code" href="a00051.html">iterator</a>;
<a name="l01799"></a>01799 <span class="preprocessor">#endif</span>
<a name="l01800"></a>01800 <span class="preprocessor"></span>
<a name="l01801"></a>01801 <span class="comment">// Element lookup</span>
<a name="l01802"></a>01802 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01803"></a><a class="code" href="a00049.html#aae5c219cc831ce3981b8cca91a78c654">01803</a> <a class="code" href="a00050.html">const_iterator</a> <a class="code" href="a00049.html#aae5c219cc831ce3981b8cca91a78c654">find</a> (<a class="code" href="a00049.html#a1b7d3ee4f291fe1e6dbd47ad08c9028e">size_type</a> i)<span class="keyword"> const </span>{
<a name="l01804"></a>01804 <span class="preprocessor">#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR</span>
<a name="l01805"></a>01805 <span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="a00050.html">const_iterator</a> (*<span class="keyword">this</span>, &amp;<a class="code" href="a00049.html#a0f04d4f184ddab15216a73d4964175e8">data_</a> [i]);
<a name="l01806"></a>01806 <span class="preprocessor">#else</span>
<a name="l01807"></a>01807 <span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="a00050.html">const_iterator</a> (*<span class="keyword">this</span>, i);
<a name="l01808"></a>01808 <span class="preprocessor">#endif</span>
<a name="l01809"></a>01809 <span class="preprocessor"></span> }
<a name="l01810"></a>01810 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01811"></a><a class="code" href="a00049.html#ab8cf2e8989a4bfb0e16e7671025c11bc">01811</a> <a class="code" href="a00051.html">iterator</a> <a class="code" href="a00049.html#ab8cf2e8989a4bfb0e16e7671025c11bc">find</a> (<a class="code" href="a00049.html#a1b7d3ee4f291fe1e6dbd47ad08c9028e">size_type</a> i) {
<a name="l01812"></a>01812 <span class="preprocessor">#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR</span>
<a name="l01813"></a>01813 <span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="a00051.html">iterator</a> (*<span class="keyword">this</span>, &amp;<a class="code" href="a00049.html#a0f04d4f184ddab15216a73d4964175e8">data_</a> [i]);
<a name="l01814"></a>01814 <span class="preprocessor">#else</span>
<a name="l01815"></a>01815 <span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="a00051.html">iterator</a> (*<span class="keyword">this</span>, i);
<a name="l01816"></a>01816 <span class="preprocessor">#endif</span>
<a name="l01817"></a>01817 <span class="preprocessor"></span> }
<a name="l01818"></a>01818
<a name="l01819"></a>01819 <span class="preprocessor">#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR</span>
<a name="l01820"></a><a class="code" href="a00050.html">01820</a> <span class="preprocessor"></span> <span class="keyword">class </span><a class="code" href="a00050.html">const_iterator</a>:
<a name="l01821"></a>01821 <span class="keyword">public</span> <a class="code" href="a00069.html" title="Base class of all proxy classes that contain a (redirectable) reference to an immutable object...">container_const_reference</a>&lt;c_vector&gt;,
<a name="l01822"></a>01822 <span class="keyword">public</span> <a class="code" href="a00365.html" title="Base class of all random access iterators.">random_access_iterator_base</a>&lt;dense_random_access_iterator_tag,
<a name="l01823"></a>01823 const_iterator, value_type&gt; {
<a name="l01824"></a>01824 <span class="keyword">public</span>:
<a name="l01825"></a><a class="code" href="a00050.html#a260321ce6dfaa05d2c809acb9399ef99">01825</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00049.html#a3367631b974305ae4e6a66492299a12b">c_vector::difference_type</a> <a class="code" href="a00050.html#a260321ce6dfaa05d2c809acb9399ef99">difference_type</a>;
<a name="l01826"></a><a class="code" href="a00050.html#ab18f6567401249274c63cfa9144c4c2d">01826</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00049.html#a0511768649554fe6715ce55ebea8cff4">c_vector::value_type</a> <a class="code" href="a00050.html#ab18f6567401249274c63cfa9144c4c2d">value_type</a>;
<a name="l01827"></a><a class="code" href="a00050.html#a82299e7b6ab6acf4e8cfbb5bdad5f307">01827</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00049.html#addf52fb18ebdcb11b7bf049c6f28de6d">c_vector::const_reference</a> <a class="code" href="a00050.html#a82299e7b6ab6acf4e8cfbb5bdad5f307">reference</a>;
<a name="l01828"></a><a class="code" href="a00050.html#a45929ee18e2f5d44e88d18ed62030b85">01828</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00049.html#adc305ee0bb1f9e86da65db1e0497a422">c_vector::const_pointer</a> <a class="code" href="a00050.html#a45929ee18e2f5d44e88d18ed62030b85">pointer</a>;
<a name="l01829"></a>01829
<a name="l01830"></a>01830 <span class="comment">// Construction and destruction</span>
<a name="l01831"></a>01831 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01832"></a><a class="code" href="a00050.html#a9beb9895113334dd14efcbc5ce51f355">01832</a> <a class="code" href="a00050.html#a9beb9895113334dd14efcbc5ce51f355">const_iterator</a> ():
<a name="l01833"></a>01833 <a class="code" href="a00069.html" title="Base class of all proxy classes that contain a (redirectable) reference to an immutable object...">container_const_reference</a>&lt;<a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">self_type</a>&gt; (), <a class="code" href="a00050.html#a939d9f0f1ae881fc106b3742175096c5">it_</a> () {}
<a name="l01834"></a>01834 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01835"></a><a class="code" href="a00050.html#a098e501b6e383a16959a0670568e65fb">01835</a> <a class="code" href="a00050.html#a9beb9895113334dd14efcbc5ce51f355">const_iterator</a> (<span class="keyword">const</span> <a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">self_type</a> &amp;v, <span class="keyword">const</span> <a class="code" href="a00049.html#a5467c8d0775787b28c7c3308a4d04d39">const_subiterator_type</a> &amp;it):
<a name="l01836"></a>01836 <a class="code" href="a00069.html" title="Base class of all proxy classes that contain a (redirectable) reference to an immutable object...">container_const_reference</a>&lt;<a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">self_type</a>&gt; (v), <a class="code" href="a00050.html#a939d9f0f1ae881fc106b3742175096c5">it_</a> (it) {}
<a name="l01837"></a>01837 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01838"></a><a class="code" href="a00050.html#a0f82433c56777fa4822af971d2abb082">01838</a> <a class="code" href="a00050.html#a9beb9895113334dd14efcbc5ce51f355">const_iterator</a> (<span class="keyword">const</span> <span class="keyword">typename</span> <a class="code" href="a00051.html">self_type::iterator</a> &amp;it): <span class="comment">// ISSUE self_type:: stops VC8 using std::iterator here</span>
<a name="l01839"></a>01839 <a class="code" href="a00069.html" title="Base class of all proxy classes that contain a (redirectable) reference to an immutable object...">container_const_reference</a>&lt;<a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">self_type</a>&gt; (it ()), <a class="code" href="a00050.html#a939d9f0f1ae881fc106b3742175096c5">it_</a> (it.<a class="code" href="a00050.html#a939d9f0f1ae881fc106b3742175096c5">it_</a>) {}
<a name="l01840"></a>01840
<a name="l01841"></a>01841 <span class="comment">// Arithmetic</span>
<a name="l01842"></a>01842 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01843"></a><a class="code" href="a00050.html#abadc8323248ead9e94ccde3b2e03ddae">01843</a> <a class="code" href="a00050.html">const_iterator</a> &amp;<a class="code" href="a00050.html#abadc8323248ead9e94ccde3b2e03ddae">operator ++ </a>() {
<a name="l01844"></a>01844 ++ <a class="code" href="a00050.html#a939d9f0f1ae881fc106b3742175096c5">it_</a>;
<a name="l01845"></a>01845 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01846"></a>01846 }
<a name="l01847"></a>01847 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01848"></a><a class="code" href="a00050.html#ab902781dcdd0d779285165fcf91182e3">01848</a> <a class="code" href="a00050.html">const_iterator</a> &amp;<a class="code" href="a00050.html#ab902781dcdd0d779285165fcf91182e3">operator -- </a>() {
<a name="l01849"></a>01849 -- <a class="code" href="a00050.html#a939d9f0f1ae881fc106b3742175096c5">it_</a>;
<a name="l01850"></a>01850 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01851"></a>01851 }
<a name="l01852"></a>01852 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01853"></a><a class="code" href="a00050.html#afb7c18c725b58c7e3bd7c8c350dc1d08">01853</a> <a class="code" href="a00050.html">const_iterator</a> &amp;<a class="code" href="a00050.html#afb7c18c725b58c7e3bd7c8c350dc1d08">operator += </a>(<a class="code" href="a00050.html#a260321ce6dfaa05d2c809acb9399ef99">difference_type</a> n) {
<a name="l01854"></a>01854 <a class="code" href="a00050.html#a939d9f0f1ae881fc106b3742175096c5">it_</a> += n;
<a name="l01855"></a>01855 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01856"></a>01856 }
<a name="l01857"></a>01857 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01858"></a><a class="code" href="a00050.html#adab3857fd828e59426b30c4b0d8d5b1d">01858</a> <a class="code" href="a00050.html">const_iterator</a> &amp;<a class="code" href="a00050.html#adab3857fd828e59426b30c4b0d8d5b1d">operator -= </a>(<a class="code" href="a00050.html#a260321ce6dfaa05d2c809acb9399ef99">difference_type</a> n) {
<a name="l01859"></a>01859 <a class="code" href="a00050.html#a939d9f0f1ae881fc106b3742175096c5">it_</a> -= n;
<a name="l01860"></a>01860 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01861"></a>01861 }
<a name="l01862"></a>01862 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01863"></a><a class="code" href="a00050.html#a61dd02fbee6fe57491696fd7f073aa28">01863</a> <a class="code" href="a00050.html#a260321ce6dfaa05d2c809acb9399ef99">difference_type</a> <a class="code" href="a00050.html#a61dd02fbee6fe57491696fd7f073aa28">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00050.html">const_iterator</a> &amp;it)<span class="keyword"> const </span>{
<a name="l01864"></a>01864 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&amp;(*<span class="keyword">this</span>) () == &amp;it (), <a class="code" href="a00132.html">external_logic</a> ());
<a name="l01865"></a>01865 <span class="keywordflow">return</span> <a class="code" href="a00050.html#a939d9f0f1ae881fc106b3742175096c5">it_</a> - it.<a class="code" href="a00050.html#a939d9f0f1ae881fc106b3742175096c5">it_</a>;
<a name="l01866"></a>01866 }
<a name="l01867"></a>01867
<a name="l01868"></a>01868 <span class="comment">// Dereference</span>
<a name="l01869"></a>01869 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01870"></a><a class="code" href="a00050.html#a877fce712e582fe81a6b6c28e755dcdf">01870</a> <a class="code" href="a00049.html#addf52fb18ebdcb11b7bf049c6f28de6d">const_reference</a> <a class="code" href="a00050.html#a877fce712e582fe81a6b6c28e755dcdf">operator * </a>()<span class="keyword"> const </span>{
<a name="l01871"></a>01871 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00050.html#a939d9f0f1ae881fc106b3742175096c5">it_</a> &gt;= (*<span class="keyword">this</span>) ().<a class="code" href="a00049.html#ac9869918a3542f87851114286a461528">begin</a> ().<a class="code" href="a00050.html#a939d9f0f1ae881fc106b3742175096c5">it_</a> &amp;&amp; <a class="code" href="a00050.html#a939d9f0f1ae881fc106b3742175096c5">it_</a> &lt; (*<span class="keyword">this</span>) ().<a class="code" href="a00049.html#affba3ac7a458218860732ba40d05b892">end</a> ().<a class="code" href="a00050.html#a939d9f0f1ae881fc106b3742175096c5">it_</a>, <a class="code" href="a00015.html">bad_index</a> ());
<a name="l01872"></a>01872 <span class="keywordflow">return</span> *<a class="code" href="a00050.html#a939d9f0f1ae881fc106b3742175096c5">it_</a>;
<a name="l01873"></a>01873 }
<a name="l01874"></a>01874 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01875"></a><a class="code" href="a00050.html#a18983652e01c8489ee3d4c9cfccaa265">01875</a> <a class="code" href="a00049.html#addf52fb18ebdcb11b7bf049c6f28de6d">const_reference</a> <a class="code" href="a00050.html#a18983652e01c8489ee3d4c9cfccaa265">operator [] </a>(<a class="code" href="a00050.html#a260321ce6dfaa05d2c809acb9399ef99">difference_type</a> n)<span class="keyword"> const </span>{
<a name="l01876"></a>01876 <span class="keywordflow">return</span> *(<a class="code" href="a00050.html#a939d9f0f1ae881fc106b3742175096c5">it_</a> + n);
<a name="l01877"></a>01877 }
<a name="l01878"></a>01878
<a name="l01879"></a>01879 <span class="comment">// Index</span>
<a name="l01880"></a>01880 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01881"></a><a class="code" href="a00050.html#ad1d2d0bbefb42128ac2ea5b87473612d">01881</a> <a class="code" href="a00049.html#a1b7d3ee4f291fe1e6dbd47ad08c9028e">size_type</a> <a class="code" href="a00050.html#ad1d2d0bbefb42128ac2ea5b87473612d">index</a> ()<span class="keyword"> const </span>{
<a name="l01882"></a>01882 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00050.html#a939d9f0f1ae881fc106b3742175096c5">it_</a> &gt;= (*<span class="keyword">this</span>) ().<a class="code" href="a00049.html#ac9869918a3542f87851114286a461528">begin</a> ().<a class="code" href="a00050.html#a939d9f0f1ae881fc106b3742175096c5">it_</a> &amp;&amp; <a class="code" href="a00050.html#a939d9f0f1ae881fc106b3742175096c5">it_</a> &lt; (*<span class="keyword">this</span>) ().<a class="code" href="a00049.html#affba3ac7a458218860732ba40d05b892">end</a> ().<a class="code" href="a00050.html#a939d9f0f1ae881fc106b3742175096c5">it_</a>, <a class="code" href="a00015.html">bad_index</a> ());
<a name="l01883"></a>01883 <span class="keyword">const</span> <a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">self_type</a> &amp;v = (*this) ();
<a name="l01884"></a>01884 <span class="keywordflow">return</span> <a class="code" href="a00050.html#a939d9f0f1ae881fc106b3742175096c5">it_</a> - v.<a class="code" href="a00049.html#ac9869918a3542f87851114286a461528">begin</a> ().<a class="code" href="a00050.html#a939d9f0f1ae881fc106b3742175096c5">it_</a>;
<a name="l01885"></a>01885 }
<a name="l01886"></a>01886
<a name="l01887"></a>01887 <span class="comment">// Assignment</span>
<a name="l01888"></a>01888 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01889"></a><a class="code" href="a00050.html#a6a017ead147439fb3629b8ca28c1d4c6">01889</a> <a class="code" href="a00050.html">const_iterator</a> &amp;<a class="code" href="a00050.html#a6a017ead147439fb3629b8ca28c1d4c6">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00050.html">const_iterator</a> &amp;it) {
<a name="l01890"></a>01890 <a class="code" href="a00069.html#ab14250fc4fe5b9bcab4eb9fba8a5b5f8">container_const_reference&lt;self_type&gt;::assign</a> (&amp;it ());
<a name="l01891"></a>01891 <a class="code" href="a00050.html#a939d9f0f1ae881fc106b3742175096c5">it_</a> = it.<a class="code" href="a00050.html#a939d9f0f1ae881fc106b3742175096c5">it_</a>;
<a name="l01892"></a>01892 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01893"></a>01893 }
<a name="l01894"></a>01894
<a name="l01895"></a>01895 <span class="comment">// Comparison</span>
<a name="l01896"></a>01896 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01897"></a><a class="code" href="a00050.html#aae921d4bb031e2f0b5c0f6823dc42223">01897</a> <span class="keywordtype">bool</span> <a class="code" href="a00050.html#aae921d4bb031e2f0b5c0f6823dc42223">operator == </a>(<span class="keyword">const</span> <a class="code" href="a00050.html">const_iterator</a> &amp;it)<span class="keyword"> const </span>{
<a name="l01898"></a>01898 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&amp;(*<span class="keyword">this</span>) () == &amp;it (), <a class="code" href="a00132.html">external_logic</a> ());
<a name="l01899"></a>01899 <span class="keywordflow">return</span> <a class="code" href="a00050.html#a939d9f0f1ae881fc106b3742175096c5">it_</a> == it.<a class="code" href="a00050.html#a939d9f0f1ae881fc106b3742175096c5">it_</a>;
<a name="l01900"></a>01900 }
<a name="l01901"></a>01901 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01902"></a><a class="code" href="a00050.html#a2eca29016a8efee403ee72dda888edfe">01902</a> <span class="keywordtype">bool</span> <a class="code" href="a00050.html#a2eca29016a8efee403ee72dda888edfe">operator &lt; </a>(<span class="keyword">const</span> <a class="code" href="a00050.html">const_iterator</a> &amp;it)<span class="keyword"> const </span>{
<a name="l01903"></a>01903 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&amp;(*<span class="keyword">this</span>) () == &amp;it (), <a class="code" href="a00132.html">external_logic</a> ());
<a name="l01904"></a>01904 <span class="keywordflow">return</span> <a class="code" href="a00050.html#a939d9f0f1ae881fc106b3742175096c5">it_</a> &lt; it.<a class="code" href="a00050.html#a939d9f0f1ae881fc106b3742175096c5">it_</a>;
<a name="l01905"></a>01905 }
<a name="l01906"></a>01906
<a name="l01907"></a>01907 <span class="keyword">private</span>:
<a name="l01908"></a><a class="code" href="a00050.html#a939d9f0f1ae881fc106b3742175096c5">01908</a> <a class="code" href="a00049.html#a5467c8d0775787b28c7c3308a4d04d39">const_subiterator_type</a> <a class="code" href="a00050.html#a939d9f0f1ae881fc106b3742175096c5">it_</a>;
<a name="l01909"></a>01909
<a name="l01910"></a><a class="code" href="a00050.html#a67171474c4da6cc8efe0c7fafefd2b2d">01910</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="a00051.html">iterator</a>;
<a name="l01911"></a>01911 };
<a name="l01912"></a>01912 <span class="preprocessor">#endif</span>
<a name="l01913"></a>01913 <span class="preprocessor"></span>
<a name="l01914"></a>01914 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01915"></a><a class="code" href="a00049.html#ac9869918a3542f87851114286a461528">01915</a> <a class="code" href="a00050.html">const_iterator</a> <a class="code" href="a00049.html#ac9869918a3542f87851114286a461528">begin</a> ()<span class="keyword"> const </span>{
<a name="l01916"></a>01916 <span class="keywordflow">return</span> <a class="code" href="a00049.html#aae5c219cc831ce3981b8cca91a78c654">find</a> (0);
<a name="l01917"></a>01917 }
<a name="l01918"></a>01918 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01919"></a><a class="code" href="a00049.html#affba3ac7a458218860732ba40d05b892">01919</a> <a class="code" href="a00050.html">const_iterator</a> <a class="code" href="a00049.html#affba3ac7a458218860732ba40d05b892">end</a> ()<span class="keyword"> const </span>{
<a name="l01920"></a>01920 <span class="keywordflow">return</span> <a class="code" href="a00049.html#aae5c219cc831ce3981b8cca91a78c654">find</a> (<a class="code" href="a00049.html#adf05c15d9f3d838d3974d89f6dd63346">size_</a>);
<a name="l01921"></a>01921 }
<a name="l01922"></a>01922
<a name="l01923"></a>01923 <span class="preprocessor">#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR</span>
<a name="l01924"></a><a class="code" href="a00051.html">01924</a> <span class="preprocessor"></span> <span class="keyword">class </span><a class="code" href="a00051.html">iterator</a>:
<a name="l01925"></a>01925 <span class="keyword">public</span> <a class="code" href="a00070.html" title="Base class of all proxy classes that contain a (redirectable) reference to a mutable object...">container_reference</a>&lt;c_vector&gt;,
<a name="l01926"></a>01926 <span class="keyword">public</span> <a class="code" href="a00365.html" title="Base class of all random access iterators.">random_access_iterator_base</a>&lt;dense_random_access_iterator_tag,
<a name="l01927"></a>01927 iterator, value_type&gt; {
<a name="l01928"></a>01928 <span class="keyword">public</span>:
<a name="l01929"></a><a class="code" href="a00051.html#ae0c03e1da9ec85ef29d3a9a0fdcdb3d6">01929</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00049.html#a3367631b974305ae4e6a66492299a12b">c_vector::difference_type</a> <a class="code" href="a00051.html#ae0c03e1da9ec85ef29d3a9a0fdcdb3d6">difference_type</a>;
<a name="l01930"></a><a class="code" href="a00051.html#a59770c2a737e4cfe845ada231fb2b272">01930</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00049.html#a0511768649554fe6715ce55ebea8cff4">c_vector::value_type</a> <a class="code" href="a00051.html#a59770c2a737e4cfe845ada231fb2b272">value_type</a>;
<a name="l01931"></a><a class="code" href="a00051.html#ae0cec7c4b39088c3c83d407f58481274">01931</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00049.html#a415dd09b8a4bb6b6e102f4a7aa87ae9b">c_vector::reference</a> <a class="code" href="a00051.html#ae0cec7c4b39088c3c83d407f58481274">reference</a>;
<a name="l01932"></a><a class="code" href="a00051.html#ad53ef60ba8d6991300e678f4b7372aad">01932</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00049.html#a02d246159dd98e4abef97e8a90c6f933">c_vector::pointer</a> <a class="code" href="a00051.html#ad53ef60ba8d6991300e678f4b7372aad">pointer</a>;
<a name="l01933"></a>01933
<a name="l01934"></a>01934 <span class="comment">// Construction and destruction</span>
<a name="l01935"></a>01935 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01936"></a><a class="code" href="a00051.html#a2a0ed1244669ff76085f5908f7a57ce0">01936</a> <a class="code" href="a00051.html#a2a0ed1244669ff76085f5908f7a57ce0">iterator</a> ():
<a name="l01937"></a>01937 <a class="code" href="a00070.html" title="Base class of all proxy classes that contain a (redirectable) reference to a mutable object...">container_reference</a>&lt;<a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">self_type</a>&gt; (), <a class="code" href="a00051.html#a688b85cc5b811b29948ebd42d838d43b">it_</a> () {}
<a name="l01938"></a>01938 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01939"></a><a class="code" href="a00051.html#a9b28e8f60babd8ed3228e9163a42e291">01939</a> <a class="code" href="a00051.html#a2a0ed1244669ff76085f5908f7a57ce0">iterator</a> (<a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">self_type</a> &amp;v, <span class="keyword">const</span> <a class="code" href="a00049.html#a67a93f7f2fc8a0c3c258f4c10121fe10">subiterator_type</a> &amp;it):
<a name="l01940"></a>01940 <a class="code" href="a00070.html" title="Base class of all proxy classes that contain a (redirectable) reference to a mutable object...">container_reference</a>&lt;<a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">self_type</a>&gt; (v), <a class="code" href="a00051.html#a688b85cc5b811b29948ebd42d838d43b">it_</a> (it) {}
<a name="l01941"></a>01941
<a name="l01942"></a>01942 <span class="comment">// Arithmetic</span>
<a name="l01943"></a>01943 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01944"></a><a class="code" href="a00051.html#aa46a7ad887477c4ab933004580a94f47">01944</a> <a class="code" href="a00051.html">iterator</a> &amp;<a class="code" href="a00051.html#aa46a7ad887477c4ab933004580a94f47">operator ++ </a>() {
<a name="l01945"></a>01945 ++ <a class="code" href="a00051.html#a688b85cc5b811b29948ebd42d838d43b">it_</a>;
<a name="l01946"></a>01946 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01947"></a>01947 }
<a name="l01948"></a>01948 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01949"></a><a class="code" href="a00051.html#ae330a4226faf34a8cee6518961cc2f6e">01949</a> <a class="code" href="a00051.html">iterator</a> &amp;<a class="code" href="a00051.html#ae330a4226faf34a8cee6518961cc2f6e">operator -- </a>() {
<a name="l01950"></a>01950 -- <a class="code" href="a00051.html#a688b85cc5b811b29948ebd42d838d43b">it_</a>;
<a name="l01951"></a>01951 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01952"></a>01952 }
<a name="l01953"></a>01953 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01954"></a><a class="code" href="a00051.html#a29f626153fee27e043b86e94e86dec6e">01954</a> <a class="code" href="a00051.html">iterator</a> &amp;<a class="code" href="a00051.html#a29f626153fee27e043b86e94e86dec6e">operator += </a>(<a class="code" href="a00051.html#ae0c03e1da9ec85ef29d3a9a0fdcdb3d6">difference_type</a> n) {
<a name="l01955"></a>01955 <a class="code" href="a00051.html#a688b85cc5b811b29948ebd42d838d43b">it_</a> += n;
<a name="l01956"></a>01956 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01957"></a>01957 }
<a name="l01958"></a>01958 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01959"></a><a class="code" href="a00051.html#a5149e04b474bf5ae38673d17d8fd82e5">01959</a> <a class="code" href="a00051.html">iterator</a> &amp;<a class="code" href="a00051.html#a5149e04b474bf5ae38673d17d8fd82e5">operator -= </a>(<a class="code" href="a00051.html#ae0c03e1da9ec85ef29d3a9a0fdcdb3d6">difference_type</a> n) {
<a name="l01960"></a>01960 <a class="code" href="a00051.html#a688b85cc5b811b29948ebd42d838d43b">it_</a> -= n;
<a name="l01961"></a>01961 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01962"></a>01962 }
<a name="l01963"></a>01963 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01964"></a><a class="code" href="a00051.html#acfa3122f3cff8b2233b1e89e55073e8a">01964</a> <a class="code" href="a00051.html#ae0c03e1da9ec85ef29d3a9a0fdcdb3d6">difference_type</a> <a class="code" href="a00051.html#acfa3122f3cff8b2233b1e89e55073e8a">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00051.html">iterator</a> &amp;it)<span class="keyword"> const </span>{
<a name="l01965"></a>01965 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&amp;(*<span class="keyword">this</span>) () == &amp;it (), <a class="code" href="a00132.html">external_logic</a> ());
<a name="l01966"></a>01966 <span class="keywordflow">return</span> <a class="code" href="a00051.html#a688b85cc5b811b29948ebd42d838d43b">it_</a> - it.<a class="code" href="a00051.html#a688b85cc5b811b29948ebd42d838d43b">it_</a>;
<a name="l01967"></a>01967 }
<a name="l01968"></a>01968
<a name="l01969"></a>01969 <span class="comment">// Dereference</span>
<a name="l01970"></a>01970 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01971"></a><a class="code" href="a00051.html#a2c282df7f8de78b9340ab49d0f69e1e8">01971</a> <a class="code" href="a00051.html#ae0cec7c4b39088c3c83d407f58481274">reference</a> <a class="code" href="a00051.html#a2c282df7f8de78b9340ab49d0f69e1e8">operator * </a>()<span class="keyword"> const </span>{
<a name="l01972"></a>01972 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00051.html#a688b85cc5b811b29948ebd42d838d43b">it_</a> &gt;= (*<span class="keyword">this</span>) ().<a class="code" href="a00049.html#ac9869918a3542f87851114286a461528">begin</a> ().<a class="code" href="a00051.html#a688b85cc5b811b29948ebd42d838d43b">it_</a> &amp;&amp; <a class="code" href="a00051.html#a688b85cc5b811b29948ebd42d838d43b">it_</a> &lt; (*<span class="keyword">this</span>) ().<a class="code" href="a00049.html#affba3ac7a458218860732ba40d05b892">end</a> ().<a class="code" href="a00051.html#a688b85cc5b811b29948ebd42d838d43b">it_</a>, <a class="code" href="a00015.html">bad_index</a> ());
<a name="l01973"></a>01973 <span class="keywordflow">return</span> *<a class="code" href="a00051.html#a688b85cc5b811b29948ebd42d838d43b">it_</a>;
<a name="l01974"></a>01974 }
<a name="l01975"></a>01975 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01976"></a><a class="code" href="a00051.html#aba18d98636432f15fea1766d1c3692c9">01976</a> <a class="code" href="a00051.html#ae0cec7c4b39088c3c83d407f58481274">reference</a> <a class="code" href="a00051.html#aba18d98636432f15fea1766d1c3692c9">operator [] </a>(<a class="code" href="a00051.html#ae0c03e1da9ec85ef29d3a9a0fdcdb3d6">difference_type</a> n)<span class="keyword"> const </span>{
<a name="l01977"></a>01977 <span class="keywordflow">return</span> *(<a class="code" href="a00051.html#a688b85cc5b811b29948ebd42d838d43b">it_</a> + n);
<a name="l01978"></a>01978 }
<a name="l01979"></a>01979
<a name="l01980"></a>01980 <span class="comment">// Index</span>
<a name="l01981"></a>01981 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01982"></a><a class="code" href="a00051.html#a36b13667d633b0d13b0870f911047bed">01982</a> <a class="code" href="a00049.html#a1b7d3ee4f291fe1e6dbd47ad08c9028e">size_type</a> <a class="code" href="a00051.html#a36b13667d633b0d13b0870f911047bed">index</a> ()<span class="keyword"> const </span>{
<a name="l01983"></a>01983 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00051.html#a688b85cc5b811b29948ebd42d838d43b">it_</a> &gt;= (*<span class="keyword">this</span>) ().<a class="code" href="a00049.html#ac9869918a3542f87851114286a461528">begin</a> ().<a class="code" href="a00051.html#a688b85cc5b811b29948ebd42d838d43b">it_</a> &amp;&amp; <a class="code" href="a00051.html#a688b85cc5b811b29948ebd42d838d43b">it_</a> &lt; (*<span class="keyword">this</span>) ().<a class="code" href="a00049.html#affba3ac7a458218860732ba40d05b892">end</a> ().<a class="code" href="a00051.html#a688b85cc5b811b29948ebd42d838d43b">it_</a>, <a class="code" href="a00015.html">bad_index</a> ());
<a name="l01984"></a>01984 <span class="comment">// EDG won&#39;t allow const self_type it doesn&#39;t allow friend access to it_</span>
<a name="l01985"></a>01985 <a class="code" href="a00049.html" title="A dense vector of values of type T with the given size. The data is stored as an ordinary C++ array T...">self_type</a> &amp;v = (*this) ();
<a name="l01986"></a>01986 <span class="keywordflow">return</span> <a class="code" href="a00051.html#a688b85cc5b811b29948ebd42d838d43b">it_</a> - v.<a class="code" href="a00049.html#ac9869918a3542f87851114286a461528">begin</a> ().<a class="code" href="a00050.html#a939d9f0f1ae881fc106b3742175096c5">it_</a>;
<a name="l01987"></a>01987 }
<a name="l01988"></a>01988
<a name="l01989"></a>01989 <span class="comment">// Assignment</span>
<a name="l01990"></a>01990 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01991"></a><a class="code" href="a00051.html#aa922a92b1b1b48c7af05b6983268df60">01991</a> <a class="code" href="a00051.html">iterator</a> &amp;<a class="code" href="a00051.html#aa922a92b1b1b48c7af05b6983268df60">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00051.html">iterator</a> &amp;it) {
<a name="l01992"></a>01992 <a class="code" href="a00070.html#a8ee5b7e2ac6a45d59e4873df582a02b2">container_reference&lt;self_type&gt;::assign</a> (&amp;it ());
<a name="l01993"></a>01993 <a class="code" href="a00051.html#a688b85cc5b811b29948ebd42d838d43b">it_</a> = it.<a class="code" href="a00051.html#a688b85cc5b811b29948ebd42d838d43b">it_</a>;
<a name="l01994"></a>01994 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01995"></a>01995 }
<a name="l01996"></a>01996
<a name="l01997"></a>01997 <span class="comment">// Comparison</span>
<a name="l01998"></a>01998 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l01999"></a><a class="code" href="a00051.html#a1f176cb9928e11342b7bc7993a56d41e">01999</a> <span class="keywordtype">bool</span> <a class="code" href="a00051.html#a1f176cb9928e11342b7bc7993a56d41e">operator == </a>(<span class="keyword">const</span> <a class="code" href="a00051.html">iterator</a> &amp;it)<span class="keyword"> const </span>{
<a name="l02000"></a>02000 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&amp;(*<span class="keyword">this</span>) () == &amp;it (), <a class="code" href="a00132.html">external_logic</a> ());
<a name="l02001"></a>02001 <span class="keywordflow">return</span> <a class="code" href="a00051.html#a688b85cc5b811b29948ebd42d838d43b">it_</a> == it.<a class="code" href="a00051.html#a688b85cc5b811b29948ebd42d838d43b">it_</a>;
<a name="l02002"></a>02002 }
<a name="l02003"></a>02003 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l02004"></a><a class="code" href="a00051.html#a3fb0d9023275b63d7d7c25410c04937a">02004</a> <span class="keywordtype">bool</span> <a class="code" href="a00051.html#a3fb0d9023275b63d7d7c25410c04937a">operator &lt; </a>(<span class="keyword">const</span> <a class="code" href="a00051.html">iterator</a> &amp;it)<span class="keyword"> const </span>{
<a name="l02005"></a>02005 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&amp;(*<span class="keyword">this</span>) () == &amp;it (), <a class="code" href="a00132.html">external_logic</a> ());
<a name="l02006"></a>02006 <span class="keywordflow">return</span> <a class="code" href="a00051.html#a688b85cc5b811b29948ebd42d838d43b">it_</a> &lt; it.<a class="code" href="a00051.html#a688b85cc5b811b29948ebd42d838d43b">it_</a>;
<a name="l02007"></a>02007 }
<a name="l02008"></a>02008
<a name="l02009"></a>02009 <span class="keyword">private</span>:
<a name="l02010"></a><a class="code" href="a00051.html#a688b85cc5b811b29948ebd42d838d43b">02010</a> <a class="code" href="a00049.html#a67a93f7f2fc8a0c3c258f4c10121fe10">subiterator_type</a> <a class="code" href="a00051.html#a688b85cc5b811b29948ebd42d838d43b">it_</a>;
<a name="l02011"></a>02011
<a name="l02012"></a><a class="code" href="a00051.html#ac220ce1c155db1ac44146c12d178056f">02012</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="a00050.html">const_iterator</a>;
<a name="l02013"></a>02013 };
<a name="l02014"></a>02014 <span class="preprocessor">#endif</span>
<a name="l02015"></a>02015 <span class="preprocessor"></span>
<a name="l02016"></a>02016 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l02017"></a><a class="code" href="a00049.html#a9883fecdaec73619e8b1d828557677e2">02017</a> <a class="code" href="a00051.html">iterator</a> <a class="code" href="a00049.html#a9883fecdaec73619e8b1d828557677e2">begin</a> () {
<a name="l02018"></a>02018 <span class="keywordflow">return</span> <a class="code" href="a00049.html#aae5c219cc831ce3981b8cca91a78c654">find</a> (0);
<a name="l02019"></a>02019 }
<a name="l02020"></a>02020 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l02021"></a><a class="code" href="a00049.html#a212a8e321879fd11585e17779a55fdab">02021</a> <a class="code" href="a00051.html">iterator</a> <a class="code" href="a00049.html#a212a8e321879fd11585e17779a55fdab">end</a> () {
<a name="l02022"></a>02022 <span class="keywordflow">return</span> <a class="code" href="a00049.html#aae5c219cc831ce3981b8cca91a78c654">find</a> (<a class="code" href="a00049.html#adf05c15d9f3d838d3974d89f6dd63346">size_</a>);
<a name="l02023"></a>02023 }
<a name="l02024"></a>02024
<a name="l02025"></a>02025 <span class="comment">// Reverse iterator</span>
<a name="l02026"></a><a class="code" href="a00049.html#aed0a4d4bb823ec359558e6832f553767">02026</a> <span class="keyword">typedef</span> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">reverse_iterator_base&lt;const_iterator&gt;</a> <a class="code" href="a00049.html#aed0a4d4bb823ec359558e6832f553767">const_reverse_iterator</a>;
<a name="l02027"></a><a class="code" href="a00049.html#a4c98f1ea65ce9a64a44aef28de7e592c">02027</a> <span class="keyword">typedef</span> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">reverse_iterator_base&lt;iterator&gt;</a> <a class="code" href="a00049.html#a4c98f1ea65ce9a64a44aef28de7e592c">reverse_iterator</a>;
<a name="l02028"></a>02028
<a name="l02029"></a>02029 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l02030"></a><a class="code" href="a00049.html#a9b772d40d5c791ba335aa180515cd708">02030</a> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">const_reverse_iterator</a> <a class="code" href="a00049.html#a9b772d40d5c791ba335aa180515cd708">rbegin</a> ()<span class="keyword"> const </span>{
<a name="l02031"></a>02031 <span class="keywordflow">return</span> <a class="code" href="a00049.html#aed0a4d4bb823ec359558e6832f553767">const_reverse_iterator</a> (<a class="code" href="a00049.html#affba3ac7a458218860732ba40d05b892">end</a> ());
<a name="l02032"></a>02032 }
<a name="l02033"></a>02033 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l02034"></a><a class="code" href="a00049.html#a1cf8946b35e1232183bd08d19f46b46b">02034</a> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">const_reverse_iterator</a> <a class="code" href="a00049.html#a1cf8946b35e1232183bd08d19f46b46b">rend</a> ()<span class="keyword"> const </span>{
<a name="l02035"></a>02035 <span class="keywordflow">return</span> <a class="code" href="a00049.html#aed0a4d4bb823ec359558e6832f553767">const_reverse_iterator</a> (<a class="code" href="a00049.html#ac9869918a3542f87851114286a461528">begin</a> ());
<a name="l02036"></a>02036 }
<a name="l02037"></a>02037 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l02038"></a><a class="code" href="a00049.html#a5e4cd2fac5eaa943f5330094703ea404">02038</a> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">reverse_iterator</a> <a class="code" href="a00049.html#a5e4cd2fac5eaa943f5330094703ea404">rbegin</a> () {
<a name="l02039"></a>02039 <span class="keywordflow">return</span> <a class="code" href="a00049.html#a4c98f1ea65ce9a64a44aef28de7e592c">reverse_iterator</a> (<a class="code" href="a00049.html#affba3ac7a458218860732ba40d05b892">end</a> ());
<a name="l02040"></a>02040 }
<a name="l02041"></a>02041 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
<a name="l02042"></a><a class="code" href="a00049.html#a3c3b723f0f99efe603c0c2fe87516469">02042</a> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">reverse_iterator</a> <a class="code" href="a00049.html#a3c3b723f0f99efe603c0c2fe87516469">rend</a> () {
<a name="l02043"></a>02043 <span class="keywordflow">return</span> <a class="code" href="a00049.html#a4c98f1ea65ce9a64a44aef28de7e592c">reverse_iterator</a> (<a class="code" href="a00049.html#ac9869918a3542f87851114286a461528">begin</a> ());
<a name="l02044"></a>02044 }
<a name="l02045"></a>02045
<a name="l02046"></a>02046 <span class="comment">// Serialization</span>
<a name="l02047"></a>02047 <span class="keyword">template</span>&lt;<span class="keyword">class</span> Archive&gt;
<a name="l02048"></a><a class="code" href="a00049.html#a28f4a3dc34df59ea5c01405b1ff7e47a">02048</a> <span class="keywordtype">void</span> <a class="code" href="a00049.html#a28f4a3dc34df59ea5c01405b1ff7e47a">serialize</a>(Archive &amp; ar, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <span class="comment">/* file_version */</span>){
<a name="l02049"></a>02049 serialization::collection_size_type s (<a class="code" href="a00049.html#adf05c15d9f3d838d3974d89f6dd63346">size_</a>);
<a name="l02050"></a>02050 ar &amp; serialization::make_nvp(<span class="stringliteral">&quot;size&quot;</span>,s);
<a name="l02051"></a>02051
<a name="l02052"></a>02052 <span class="comment">// copy the value back if loading</span>
<a name="l02053"></a>02053 <span class="keywordflow">if</span> (Archive::is_loading::value) {
<a name="l02054"></a>02054 <span class="keywordflow">if</span> (s &gt; N) <a class="code" href="a00016.html">bad_size</a>(<span class="stringliteral">&quot;too large size in bounded_vector::load()\n&quot;</span>).<a class="code" href="a00016.html#a00338404f646152e4401e7929824adf2">raise</a>();
<a name="l02055"></a>02055 <a class="code" href="a00049.html#adf05c15d9f3d838d3974d89f6dd63346">size_</a> = s;
<a name="l02056"></a>02056 }
<a name="l02057"></a>02057 <span class="comment">// ISSUE: this writes the full array</span>
<a name="l02058"></a>02058 ar &amp; serialization::make_nvp(<span class="stringliteral">&quot;data&quot;</span>,<a class="code" href="a00049.html#a0f04d4f184ddab15216a73d4964175e8">data_</a>);
<a name="l02059"></a>02059 }
<a name="l02060"></a>02060
<a name="l02061"></a>02061 <span class="keyword">private</span>:
<a name="l02062"></a><a class="code" href="a00049.html#adf05c15d9f3d838d3974d89f6dd63346">02062</a> <a class="code" href="a00049.html#a1b7d3ee4f291fe1e6dbd47ad08c9028e">size_type</a> <a class="code" href="a00049.html#adf05c15d9f3d838d3974d89f6dd63346">size_</a>;
<a name="l02063"></a><a class="code" href="a00049.html#a0f04d4f184ddab15216a73d4964175e8">02063</a> <a class="code" href="a00049.html#a120db239ad958c3b29f39430baaafa98">array_type</a> <a class="code" href="a00049.html#a0f04d4f184ddab15216a73d4964175e8">data_</a>;
<a name="l02064"></a>02064 };
<a name="l02065"></a>02065
<a name="l02066"></a>02066 }}}
<a name="l02067"></a>02067
<a name="l02068"></a>02068 <span class="preprocessor">#endif</span>
</pre></div></div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00641.html">vector.hpp</a> </li>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Defines</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<small>
<small>
<small>
<table width="100%">
<tr>
<td align="right">
Copyright &#169; 2010-2011 David Bellot - Distributed under the <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">Boost Software License, Version 1.0.</a>
</td>
</tr>
</table>
</small>
</small>
</small>