mirror of
https://github.com/boostorg/ublas.git
synced 2026-02-22 03:42:19 +00:00
2290 lines
390 KiB
HTML
2290 lines
390 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: symmetric.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 <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 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 List</span></a></li>
|
|
<li><a href="globals.html"><span>File 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('a00636.html','');
|
|
</script>
|
|
<div id="doc-content">
|
|
<div class="header">
|
|
<div class="headertitle">
|
|
<h1>symmetric.hpp</h1> </div>
|
|
</div>
|
|
<div class="contents">
|
|
<a href="a00636.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//</span>
|
|
<a name="l00002"></a>00002 <span class="comment">// Copyright (c) 2000-2002</span>
|
|
<a name="l00003"></a>00003 <span class="comment">// Joerg Walter, Mathias Koch</span>
|
|
<a name="l00004"></a>00004 <span class="comment">//</span>
|
|
<a name="l00005"></a>00005 <span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
|
|
<a name="l00006"></a>00006 <span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
|
|
<a name="l00007"></a>00007 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
|
|
<a name="l00008"></a>00008 <span class="comment">//</span>
|
|
<a name="l00009"></a>00009 <span class="comment">// The authors gratefully acknowledge the support of</span>
|
|
<a name="l00010"></a>00010 <span class="comment">// GeNeSys mbH & Co. KG in producing this work.</span>
|
|
<a name="l00011"></a>00011 <span class="comment">//</span>
|
|
<a name="l00012"></a>00012
|
|
<a name="l00013"></a>00013 <span class="preprocessor">#ifndef _BOOST_UBLAS_SYMMETRIC_</span>
|
|
<a name="l00014"></a>00014 <span class="preprocessor"></span><span class="preprocessor">#define _BOOST_UBLAS_SYMMETRIC_</span>
|
|
<a name="l00015"></a>00015 <span class="preprocessor"></span>
|
|
<a name="l00016"></a>00016 <span class="preprocessor">#include <boost/numeric/ublas/matrix.hpp></span>
|
|
<a name="l00017"></a>00017 <span class="preprocessor">#include <boost/numeric/ublas/triangular.hpp></span>
|
|
<a name="l00018"></a>00018 <span class="preprocessor">#include <boost/numeric/ublas/detail/temporary.hpp></span>
|
|
<a name="l00019"></a>00019
|
|
<a name="l00020"></a>00020 <span class="comment">// Iterators based on ideas of Jeremy Siek</span>
|
|
<a name="l00021"></a>00021 <span class="comment">// Symmetric matrices are square. Thanks to Peter Schmitteckert for spotting this.</span>
|
|
<a name="l00022"></a>00022
|
|
<a name="l00023"></a>00023 <span class="keyword">namespace </span>boost { <span class="keyword">namespace </span>numeric { <span class="keyword">namespace </span>ublas {
|
|
<a name="l00024"></a>00024
|
|
<a name="l00025"></a>00025 <span class="keyword">template</span><<span class="keyword">class</span> M>
|
|
<a name="l00026"></a><a class="code" href="a00595.html#a9146b300ae66fcafc8e1950634df6a91">00026</a> <span class="keywordtype">bool</span> <a class="code" href="a00595.html#a9146b300ae66fcafc8e1950634df6a91">is_symmetric</a> (<span class="keyword">const</span> M &m) {
|
|
<a name="l00027"></a>00027 <span class="keyword">typedef</span> <span class="keyword">typename</span> M::size_type size_type;
|
|
<a name="l00028"></a>00028
|
|
<a name="l00029"></a>00029 <span class="keywordflow">if</span> (m.size1 () != m.size2 ())
|
|
<a name="l00030"></a>00030 <span class="keywordflow">return</span> <span class="keyword">false</span>;
|
|
<a name="l00031"></a>00031 size_type <a class="code" href="a00595.html#a21019ef1d90c1854094dffa247fe1daf" title="Return the number of columns.">size</a> = <a class="code" href="a00610.html#ad7bb3e64acf4cd355a9985bdf879cf2a">BOOST_UBLAS_SAME</a> (m.size1 (), m.size2 ());
|
|
<a name="l00032"></a>00032 <span class="keywordflow">for</span> (size_type i = 0; i < <a class="code" href="a00595.html#a21019ef1d90c1854094dffa247fe1daf" title="Return the number of columns.">size</a>; ++ i) {
|
|
<a name="l00033"></a>00033 <span class="keywordflow">for</span> (size_type j = i; j < <a class="code" href="a00595.html#a21019ef1d90c1854094dffa247fe1daf" title="Return the number of columns.">size</a>; ++ j) {
|
|
<a name="l00034"></a>00034 <span class="keywordflow">if</span> (m (i, j) != m (j, i))
|
|
<a name="l00035"></a>00035 <span class="keywordflow">return</span> <span class="keyword">false</span>;
|
|
<a name="l00036"></a>00036 }
|
|
<a name="l00037"></a>00037 }
|
|
<a name="l00038"></a>00038 <span class="keywordflow">return</span> <span class="keyword">true</span>;
|
|
<a name="l00039"></a>00039 }
|
|
<a name="l00040"></a>00040
|
|
<a name="l00041"></a>00041 <span class="comment">// Array based symmetric matrix class</span>
|
|
<a name="l00042"></a>00042 <span class="keyword">template</span><<span class="keyword">class</span> T, <span class="keyword">class</span> TRI, <span class="keyword">class</span> L, <span class="keyword">class</span> A>
|
|
<a name="l00043"></a><a class="code" href="a00440.html">00043</a> <span class="keyword">class </span><a class="code" href="a00440.html">symmetric_matrix</a>:
|
|
<a name="l00044"></a>00044 <span class="keyword">public</span> <a class="code" href="a00250.html" title="Base class for Matrix container models.">matrix_container</a><symmetric_matrix<T, TRI, L, A> > {
|
|
<a name="l00045"></a>00045
|
|
<a name="l00046"></a><a class="code" href="a00440.html#a9caf7a7e039551cd09fb3e690696a942">00046</a> <span class="keyword">typedef</span> T *<a class="code" href="a00440.html#a9caf7a7e039551cd09fb3e690696a942">pointer</a>;
|
|
<a name="l00047"></a><a class="code" href="a00440.html#a726b262318c23397bbc15bdecb714f64">00047</a> <span class="keyword">typedef</span> TRI <a class="code" href="a00440.html#a726b262318c23397bbc15bdecb714f64">triangular_type</a>;
|
|
<a name="l00048"></a><a class="code" href="a00440.html#ae557f06429606b86a3cfa1d61f80f266">00048</a> <span class="keyword">typedef</span> L <a class="code" href="a00440.html#ae557f06429606b86a3cfa1d61f80f266">layout_type</a>;
|
|
<a name="l00049"></a><a class="code" href="a00440.html#a0ee40e3aa436a94891d479a4464f9fe2">00049</a> <span class="keyword">typedef</span> <a class="code" href="a00440.html">symmetric_matrix<T, TRI, L, A></a> <a class="code" href="a00440.html#a0ee40e3aa436a94891d479a4464f9fe2">self_type</a>;
|
|
<a name="l00050"></a>00050 <span class="keyword">public</span>:
|
|
<a name="l00051"></a>00051 <span class="preprocessor">#ifdef BOOST_UBLAS_ENABLE_PROXY_SHORTCUTS</span>
|
|
<a name="l00052"></a>00052 <span class="preprocessor"></span> <span class="keyword">using</span> <a class="code" href="a00250.html" title="Base class for Matrix container models.">matrix_container<self_type>::operator </a>();
|
|
<a name="l00053"></a>00053 <span class="preprocessor">#endif</span>
|
|
<a name="l00054"></a><a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">00054</a> <span class="preprocessor"></span> <span class="keyword">typedef</span> <span class="keyword">typename</span> A::size_type <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a>;
|
|
<a name="l00055"></a><a class="code" href="a00440.html#a9078f12e2780cecfea77be9fe04689fa">00055</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> A::difference_type <a class="code" href="a00440.html#a9078f12e2780cecfea77be9fe04689fa">difference_type</a>;
|
|
<a name="l00056"></a><a class="code" href="a00440.html#ab1fd95bb9e2934955655b3d355101ad9">00056</a> <span class="keyword">typedef</span> T <a class="code" href="a00440.html#ab1fd95bb9e2934955655b3d355101ad9">value_type</a>;
|
|
<a name="l00057"></a><a class="code" href="a00440.html#a1648a21cda6323fc6245b13cc7568106">00057</a> <span class="keyword">typedef</span> <span class="keyword">const</span> T &<a class="code" href="a00440.html#a1648a21cda6323fc6245b13cc7568106">const_reference</a>;
|
|
<a name="l00058"></a><a class="code" href="a00440.html#afe5da26fd29294505df9589b45696c7b">00058</a> <span class="keyword">typedef</span> T &<a class="code" href="a00440.html#afe5da26fd29294505df9589b45696c7b">reference</a>;
|
|
<a name="l00059"></a><a class="code" href="a00440.html#a06a2dbd6b557056cfca58a173dd2631c">00059</a> <span class="keyword">typedef</span> A <a class="code" href="a00440.html#a06a2dbd6b557056cfca58a173dd2631c">array_type</a>;
|
|
<a name="l00060"></a>00060
|
|
<a name="l00061"></a><a class="code" href="a00440.html#a37614a1ee034f91a433fbd33a5fa6fc6">00061</a> <span class="keyword">typedef</span> <span class="keyword">const</span> <a class="code" href="a00275.html">matrix_reference<const self_type></a> <a class="code" href="a00440.html#a37614a1ee034f91a433fbd33a5fa6fc6">const_closure_type</a>;
|
|
<a name="l00062"></a><a class="code" href="a00440.html#a6fc85bd2cf09266ab360811e80931ecb">00062</a> <span class="keyword">typedef</span> <a class="code" href="a00275.html">matrix_reference<self_type></a> <a class="code" href="a00440.html#a6fc85bd2cf09266ab360811e80931ecb">closure_type</a>;
|
|
<a name="l00063"></a><a class="code" href="a00440.html#a3fee4467b986a434f955c381ecccd289">00063</a> <span class="keyword">typedef</span> <a class="code" href="a00481.html" title="A dense vector of values of type T.">vector<T, A></a> <a class="code" href="a00440.html#a3fee4467b986a434f955c381ecccd289">vector_temporary_type</a>;
|
|
<a name="l00064"></a><a class="code" href="a00440.html#a5a66a7bdcf288d94792e31127818f45a">00064</a> <span class="keyword">typedef</span> <a class="code" href="a00218.html" title="A dense matrix of values of type T.">matrix<T, L, A></a> <a class="code" href="a00440.html#a5a66a7bdcf288d94792e31127818f45a">matrix_temporary_type</a>; <span class="comment">// general sub-matrix</span>
|
|
<a name="l00065"></a><a class="code" href="a00440.html#a310db413d4edb9a454dcebd18f8f9444">00065</a> <span class="keyword">typedef</span> <a class="code" href="a00362.html">packed_tag</a> <a class="code" href="a00440.html#a310db413d4edb9a454dcebd18f8f9444">storage_category</a>;
|
|
<a name="l00066"></a><a class="code" href="a00440.html#a25e3e75fee57ae0239b446666d9be41b">00066</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> L::orientation_category <a class="code" href="a00440.html#a25e3e75fee57ae0239b446666d9be41b">orientation_category</a>;
|
|
<a name="l00067"></a>00067
|
|
<a name="l00068"></a>00068 <span class="comment">// Construction and destruction</span>
|
|
<a name="l00069"></a>00069 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00070"></a><a class="code" href="a00440.html#a23ecbf3902b92249ef1942c5f0acdc2d">00070</a> <a class="code" href="a00440.html#a23ecbf3902b92249ef1942c5f0acdc2d">symmetric_matrix</a> ():
|
|
<a name="l00071"></a>00071 <a class="code" href="a00250.html" title="Base class for Matrix container models.">matrix_container</a><<a class="code" href="a00440.html">self_type</a>> (),
|
|
<a name="l00072"></a>00072 <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a> (0), <a class="code" href="a00440.html#aa4ac522e86d52e7ec0d9e84c57379700">data_</a> (0) {}
|
|
<a name="l00073"></a>00073 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00074"></a><a class="code" href="a00440.html#a006c73655549b4096f1543ce0c9d6820">00074</a> <a class="code" href="a00440.html#a23ecbf3902b92249ef1942c5f0acdc2d">symmetric_matrix</a> (<a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> <a class="code" href="a00595.html#a21019ef1d90c1854094dffa247fe1daf" title="Return the number of columns.">size</a>):
|
|
<a name="l00075"></a>00075 <a class="code" href="a00250.html" title="Base class for Matrix container models.">matrix_container</a><<a class="code" href="a00440.html">self_type</a>> (),
|
|
<a name="l00076"></a>00076 <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a> (<a class="code" href="a00610.html#ad7bb3e64acf4cd355a9985bdf879cf2a">BOOST_UBLAS_SAME</a> (size, size)), <a class="code" href="a00440.html#aa4ac522e86d52e7ec0d9e84c57379700">data_</a> (<a class="code" href="a00440.html#a726b262318c23397bbc15bdecb714f64">triangular_type</a>::packed_size (<a class="code" href="a00440.html#ae557f06429606b86a3cfa1d61f80f266">layout_type</a> (), size, size)) {
|
|
<a name="l00077"></a>00077 }
|
|
<a name="l00078"></a>00078 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00079"></a><a class="code" href="a00440.html#a7dfb3caea7cbbfaf06f5b194a0fc2680">00079</a> <a class="code" href="a00440.html#a23ecbf3902b92249ef1942c5f0acdc2d">symmetric_matrix</a> (<a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> <a class="code" href="a00440.html#aa61929b3b8ad985c57fa2ecb2902838d">size1</a>, <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> <a class="code" href="a00440.html#aa649f019f5de73cda4bade278797ea9c">size2</a>):
|
|
<a name="l00080"></a>00080 <a class="code" href="a00250.html" title="Base class for Matrix container models.">matrix_container</a><<a class="code" href="a00440.html">self_type</a>> (),
|
|
<a name="l00081"></a>00081 <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a> (<a class="code" href="a00610.html#ad7bb3e64acf4cd355a9985bdf879cf2a">BOOST_UBLAS_SAME</a> (size1, size2)), <a class="code" href="a00440.html#aa4ac522e86d52e7ec0d9e84c57379700">data_</a> (<a class="code" href="a00440.html#a726b262318c23397bbc15bdecb714f64">triangular_type</a>::packed_size (<a class="code" href="a00440.html#ae557f06429606b86a3cfa1d61f80f266">layout_type</a> (), size1, size2)) {
|
|
<a name="l00082"></a>00082 }
|
|
<a name="l00083"></a>00083 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00084"></a><a class="code" href="a00440.html#a3b027ba3f2ba516e805b8cd6323fefce">00084</a> <a class="code" href="a00440.html#a23ecbf3902b92249ef1942c5f0acdc2d">symmetric_matrix</a> (<a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> <a class="code" href="a00595.html#a21019ef1d90c1854094dffa247fe1daf" title="Return the number of columns.">size</a>, <span class="keyword">const</span> <a class="code" href="a00440.html#a06a2dbd6b557056cfca58a173dd2631c">array_type</a> &<a class="code" href="a00440.html#a8b4b2423c9e59de06ceadb920467ea03">data</a>):
|
|
<a name="l00085"></a>00085 <a class="code" href="a00250.html" title="Base class for Matrix container models.">matrix_container</a><<a class="code" href="a00440.html">self_type</a>> (),
|
|
<a name="l00086"></a>00086 <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a> (size), <a class="code" href="a00440.html#aa4ac522e86d52e7ec0d9e84c57379700">data_</a> (data) {}
|
|
<a name="l00087"></a>00087 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00088"></a><a class="code" href="a00440.html#a131527cbe4a93f77a2e37f59a10b0809">00088</a> <a class="code" href="a00440.html#a23ecbf3902b92249ef1942c5f0acdc2d">symmetric_matrix</a> (<span class="keyword">const</span> <a class="code" href="a00440.html">symmetric_matrix</a> &m):
|
|
<a name="l00089"></a>00089 <a class="code" href="a00250.html" title="Base class for Matrix container models.">matrix_container</a><<a class="code" href="a00440.html">self_type</a>> (),
|
|
<a name="l00090"></a>00090 <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a> (m.<a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a>), <a class="code" href="a00440.html#aa4ac522e86d52e7ec0d9e84c57379700">data_</a> (m.<a class="code" href="a00440.html#aa4ac522e86d52e7ec0d9e84c57379700">data_</a>) {}
|
|
<a name="l00091"></a>00091 <span class="keyword">template</span><<span class="keyword">class</span> AE>
|
|
<a name="l00092"></a>00092 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00093"></a><a class="code" href="a00440.html#a01f8443c6c2232e792d004d0e9eb4408">00093</a> <a class="code" href="a00440.html#a23ecbf3902b92249ef1942c5f0acdc2d">symmetric_matrix</a> (<span class="keyword">const</span> <a class="code" href="a00251.html" title="Base class for Matrix Expression models.">matrix_expression<AE></a> &ae):
|
|
<a name="l00094"></a>00094 <a class="code" href="a00250.html" title="Base class for Matrix container models.">matrix_container</a><<a class="code" href="a00440.html">self_type</a>> (),
|
|
<a name="l00095"></a>00095 <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a> (<a class="code" href="a00610.html#ad7bb3e64acf4cd355a9985bdf879cf2a">BOOST_UBLAS_SAME</a> (ae ().<a class="code" href="a00440.html#aa61929b3b8ad985c57fa2ecb2902838d">size1</a> (), ae ().<a class="code" href="a00440.html#aa649f019f5de73cda4bade278797ea9c">size2</a> ())),
|
|
<a name="l00096"></a>00096 <a class="code" href="a00440.html#aa4ac522e86d52e7ec0d9e84c57379700">data_</a> (<a class="code" href="a00440.html#a726b262318c23397bbc15bdecb714f64">triangular_type</a>::packed_size (<a class="code" href="a00440.html#ae557f06429606b86a3cfa1d61f80f266">layout_type</a> (), <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a>, <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a>)) {
|
|
<a name="l00097"></a>00097 matrix_assign<scalar_assign> (*<span class="keyword">this</span>, ae);
|
|
<a name="l00098"></a>00098 }
|
|
<a name="l00099"></a>00099
|
|
<a name="l00100"></a>00100 <span class="comment">// Accessors</span>
|
|
<a name="l00101"></a>00101 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00102"></a><a class="code" href="a00440.html#aa61929b3b8ad985c57fa2ecb2902838d">00102</a> <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> <a class="code" href="a00440.html#aa61929b3b8ad985c57fa2ecb2902838d">size1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00103"></a>00103 <span class="keywordflow">return</span> <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a>;
|
|
<a name="l00104"></a>00104 }
|
|
<a name="l00105"></a>00105 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00106"></a><a class="code" href="a00440.html#aa649f019f5de73cda4bade278797ea9c">00106</a> <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> <a class="code" href="a00440.html#aa649f019f5de73cda4bade278797ea9c">size2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00107"></a>00107 <span class="keywordflow">return</span> <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a>;
|
|
<a name="l00108"></a>00108 }
|
|
<a name="l00109"></a>00109
|
|
<a name="l00110"></a>00110 <span class="comment">// Storage accessors</span>
|
|
<a name="l00111"></a>00111 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00112"></a><a class="code" href="a00440.html#a8b4b2423c9e59de06ceadb920467ea03">00112</a> <span class="keyword">const</span> <a class="code" href="a00440.html#a06a2dbd6b557056cfca58a173dd2631c">array_type</a> &<a class="code" href="a00440.html#a8b4b2423c9e59de06ceadb920467ea03">data</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00113"></a>00113 <span class="keywordflow">return</span> <a class="code" href="a00440.html#aa4ac522e86d52e7ec0d9e84c57379700">data_</a>;
|
|
<a name="l00114"></a>00114 }
|
|
<a name="l00115"></a>00115 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00116"></a><a class="code" href="a00440.html#af9c6152549fdd3f997f6d0de3a76e82b">00116</a> <a class="code" href="a00440.html#a06a2dbd6b557056cfca58a173dd2631c">array_type</a> &<a class="code" href="a00440.html#af9c6152549fdd3f997f6d0de3a76e82b">data</a> () {
|
|
<a name="l00117"></a>00117 <span class="keywordflow">return</span> <a class="code" href="a00440.html#aa4ac522e86d52e7ec0d9e84c57379700">data_</a>;
|
|
<a name="l00118"></a>00118 }
|
|
<a name="l00119"></a>00119
|
|
<a name="l00120"></a>00120 <span class="comment">// Resizing</span>
|
|
<a name="l00121"></a>00121 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00122"></a><a class="code" href="a00440.html#a7f437100e95dbcbc3f731a30462fd133">00122</a> <span class="keywordtype">void</span> <a class="code" href="a00440.html#a7f437100e95dbcbc3f731a30462fd133">resize</a> (<a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> <a class="code" href="a00595.html#a21019ef1d90c1854094dffa247fe1daf" title="Return the number of columns.">size</a>, <span class="keywordtype">bool</span> preserve = <span class="keyword">true</span>) {
|
|
<a name="l00123"></a>00123 <span class="keywordflow">if</span> (preserve) {
|
|
<a name="l00124"></a>00124 <a class="code" href="a00440.html">self_type</a> temporary (size, size);
|
|
<a name="l00125"></a>00125 detail::matrix_resize_preserve<layout_type, triangular_type> (*<span class="keyword">this</span>, temporary);
|
|
<a name="l00126"></a>00126 }
|
|
<a name="l00127"></a>00127 <span class="keywordflow">else</span> {
|
|
<a name="l00128"></a>00128 <a class="code" href="a00440.html#a8b4b2423c9e59de06ceadb920467ea03">data</a> ().resize (triangular_type::packed_size (<a class="code" href="a00440.html#ae557f06429606b86a3cfa1d61f80f266">layout_type</a> (), size, size));
|
|
<a name="l00129"></a>00129 <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a> = <a class="code" href="a00595.html#a21019ef1d90c1854094dffa247fe1daf" title="Return the number of columns.">size</a>;
|
|
<a name="l00130"></a>00130 }
|
|
<a name="l00131"></a>00131 }
|
|
<a name="l00132"></a>00132 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00133"></a><a class="code" href="a00440.html#a5fb7973916326311cdacd7e7bc5c1f1e">00133</a> <span class="keywordtype">void</span> <a class="code" href="a00440.html#a5fb7973916326311cdacd7e7bc5c1f1e">resize</a> (<a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> <a class="code" href="a00440.html#aa61929b3b8ad985c57fa2ecb2902838d">size1</a>, <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> <a class="code" href="a00440.html#aa649f019f5de73cda4bade278797ea9c">size2</a>, <span class="keywordtype">bool</span> preserve = <span class="keyword">true</span>) {
|
|
<a name="l00134"></a>00134 <a class="code" href="a00440.html#a7f437100e95dbcbc3f731a30462fd133">resize</a> (<a class="code" href="a00610.html#ad7bb3e64acf4cd355a9985bdf879cf2a">BOOST_UBLAS_SAME</a> (size1, size2), preserve);
|
|
<a name="l00135"></a>00135 }
|
|
<a name="l00136"></a>00136 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00137"></a><a class="code" href="a00440.html#af38235a88b5cbc5ff649835c7e875e22">00137</a> <span class="keywordtype">void</span> <a class="code" href="a00440.html#af38235a88b5cbc5ff649835c7e875e22">resize_packed_preserve</a> (<a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> <a class="code" href="a00595.html#a21019ef1d90c1854094dffa247fe1daf" title="Return the number of columns.">size</a>) {
|
|
<a name="l00138"></a>00138 <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a> = <a class="code" href="a00610.html#ad7bb3e64acf4cd355a9985bdf879cf2a">BOOST_UBLAS_SAME</a> (size, size);
|
|
<a name="l00139"></a>00139 <a class="code" href="a00440.html#a8b4b2423c9e59de06ceadb920467ea03">data</a> ().resize (triangular_type::packed_size (<a class="code" href="a00440.html#ae557f06429606b86a3cfa1d61f80f266">layout_type</a> (), <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a>, <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a>), <a class="code" href="a00440.html#ab1fd95bb9e2934955655b3d355101ad9">value_type</a> ());
|
|
<a name="l00140"></a>00140 }
|
|
<a name="l00141"></a>00141
|
|
<a name="l00142"></a>00142 <span class="comment">// Element access</span>
|
|
<a name="l00143"></a>00143 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00144"></a><a class="code" href="a00440.html#a966216f98146d5cb7d6bebb6806ecd51">00144</a> <a class="code" href="a00440.html#a1648a21cda6323fc6245b13cc7568106">const_reference</a> <a class="code" href="a00250.html#a0a79c4eb5e6af6ce11daa350b797c648">operator () </a>(<a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> i, <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> j)<span class="keyword"> const </span>{
|
|
<a name="l00145"></a>00145 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (i < <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a>, <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l00146"></a>00146 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (j < <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a>, <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l00147"></a>00147 <span class="keywordflow">if</span> (triangular_type::other (i, j))
|
|
<a name="l00148"></a>00148 <span class="keywordflow">return</span> <a class="code" href="a00440.html#a8b4b2423c9e59de06ceadb920467ea03">data</a> () [triangular_type::element (<a class="code" href="a00440.html#ae557f06429606b86a3cfa1d61f80f266">layout_type</a> (), i, <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a>, j, <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a>)];
|
|
<a name="l00149"></a>00149 <span class="keywordflow">else</span>
|
|
<a name="l00150"></a>00150 <span class="keywordflow">return</span> <a class="code" href="a00440.html#a8b4b2423c9e59de06ceadb920467ea03">data</a> () [triangular_type::element (<a class="code" href="a00440.html#ae557f06429606b86a3cfa1d61f80f266">layout_type</a> (), j, <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a>, i, <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a>)];
|
|
<a name="l00151"></a>00151 }
|
|
<a name="l00152"></a>00152 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00153"></a><a class="code" href="a00440.html#a888e2be26c36280cb9da55a92fc8b690">00153</a> <a class="code" href="a00440.html#afe5da26fd29294505df9589b45696c7b">reference</a> <a class="code" href="a00440.html#a888e2be26c36280cb9da55a92fc8b690">at_element</a> (<a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> i, <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> j) {
|
|
<a name="l00154"></a>00154 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (i < <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a>, <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l00155"></a>00155 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (j < <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a>, <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l00156"></a>00156 <span class="keywordflow">return</span> <a class="code" href="a00440.html#a8b4b2423c9e59de06ceadb920467ea03">data</a> () [triangular_type::element (<a class="code" href="a00440.html#ae557f06429606b86a3cfa1d61f80f266">layout_type</a> (), i, <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a>, j, <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a>)];
|
|
<a name="l00157"></a>00157 }
|
|
<a name="l00158"></a>00158 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00159"></a><a class="code" href="a00440.html#a28a0d79aa22fe4fa280efda7d2623de0">00159</a> <a class="code" href="a00440.html#afe5da26fd29294505df9589b45696c7b">reference</a> <a class="code" href="a00250.html#a0a79c4eb5e6af6ce11daa350b797c648">operator () </a>(<a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> i, <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> j) {
|
|
<a name="l00160"></a>00160 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (i < <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a>, <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l00161"></a>00161 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (j < <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a>, <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l00162"></a>00162 <span class="keywordflow">if</span> (triangular_type::other (i, j))
|
|
<a name="l00163"></a>00163 <span class="keywordflow">return</span> <a class="code" href="a00440.html#a8b4b2423c9e59de06ceadb920467ea03">data</a> () [triangular_type::element (<a class="code" href="a00440.html#ae557f06429606b86a3cfa1d61f80f266">layout_type</a> (), i, <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a>, j, <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a>)];
|
|
<a name="l00164"></a>00164 <span class="keywordflow">else</span>
|
|
<a name="l00165"></a>00165 <span class="keywordflow">return</span> <a class="code" href="a00440.html#a8b4b2423c9e59de06ceadb920467ea03">data</a> () [triangular_type::element (<a class="code" href="a00440.html#ae557f06429606b86a3cfa1d61f80f266">layout_type</a> (), j, <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a>, i, <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a>)];
|
|
<a name="l00166"></a>00166 }
|
|
<a name="l00167"></a>00167
|
|
<a name="l00168"></a>00168 <span class="comment">// Element assignment</span>
|
|
<a name="l00169"></a>00169 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00170"></a><a class="code" href="a00440.html#a312cb786d4df40a1d1fcff913cac2190">00170</a> <a class="code" href="a00440.html#afe5da26fd29294505df9589b45696c7b">reference</a> <a class="code" href="a00440.html#a312cb786d4df40a1d1fcff913cac2190">insert_element</a> (<a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> i, <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> j, <a class="code" href="a00440.html#a1648a21cda6323fc6245b13cc7568106">const_reference</a> t) {
|
|
<a name="l00171"></a>00171 <span class="keywordflow">return</span> (<span class="keyword">operator</span> () (i, j) = t);
|
|
<a name="l00172"></a>00172 }
|
|
<a name="l00173"></a>00173 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00174"></a><a class="code" href="a00440.html#a1a3da96f576856c1acd07eaf2379ecbb">00174</a> <span class="keywordtype">void</span> <a class="code" href="a00440.html#a1a3da96f576856c1acd07eaf2379ecbb">erase_element</a> (<a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> i, <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> j) {
|
|
<a name="l00175"></a>00175 <a class="code" href="a00250.html#a0a79c4eb5e6af6ce11daa350b797c648">operator () </a>(i, j) = <a class="code" href="a00440.html#ab1fd95bb9e2934955655b3d355101ad9">value_type</a><span class="comment">/*zero*/</span>();
|
|
<a name="l00176"></a>00176 }
|
|
<a name="l00177"></a>00177
|
|
<a name="l00178"></a>00178 <span class="comment">// Zeroing</span>
|
|
<a name="l00179"></a>00179 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00180"></a><a class="code" href="a00440.html#a289b5fa8d2f19c248079b969d3faa2d9">00180</a> <span class="keywordtype">void</span> <a class="code" href="a00440.html#a289b5fa8d2f19c248079b969d3faa2d9">clear</a> () {
|
|
<a name="l00181"></a>00181 <span class="comment">// data ().clear ();</span>
|
|
<a name="l00182"></a>00182 std::fill (<a class="code" href="a00440.html#a8b4b2423c9e59de06ceadb920467ea03">data</a> ().<a class="code" href="a00595.html#ae2297dd9051333c2ec1d0f63175f66fe" title="An iterator to the first element of the given vector expression.">begin</a> (), <a class="code" href="a00440.html#a8b4b2423c9e59de06ceadb920467ea03">data</a> ().<a class="code" href="a00595.html#a5e8a7fc1352cd3e148064608dad9f38d" title="An iterator to the last element of the given vector expression.">end</a> (), <a class="code" href="a00440.html#ab1fd95bb9e2934955655b3d355101ad9">value_type</a><span class="comment">/*zero*/</span>());
|
|
<a name="l00183"></a>00183 }
|
|
<a name="l00184"></a>00184
|
|
<a name="l00185"></a>00185 <span class="comment">// Assignment</span>
|
|
<a name="l00186"></a>00186 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00187"></a><a class="code" href="a00440.html#a9feb7d904dbbae76230f79bd676ebfaa">00187</a> <a class="code" href="a00440.html">symmetric_matrix</a> &<a class="code" href="a00440.html#a9feb7d904dbbae76230f79bd676ebfaa">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00440.html">symmetric_matrix</a> &m) {
|
|
<a name="l00188"></a>00188 <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a> = m.<a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a>;
|
|
<a name="l00189"></a>00189 <a class="code" href="a00440.html#a8b4b2423c9e59de06ceadb920467ea03">data</a> () = m.<a class="code" href="a00440.html#a8b4b2423c9e59de06ceadb920467ea03">data</a> ();
|
|
<a name="l00190"></a>00190 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00191"></a>00191 }
|
|
<a name="l00192"></a>00192 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00193"></a><a class="code" href="a00440.html#a71a4a8a7dd3de07d3979da5ff81eb133">00193</a> <a class="code" href="a00440.html">symmetric_matrix</a> &<a class="code" href="a00440.html#a71a4a8a7dd3de07d3979da5ff81eb133">assign_temporary</a> (<a class="code" href="a00440.html">symmetric_matrix</a> &m) {
|
|
<a name="l00194"></a>00194 <a class="code" href="a00440.html#a8d51e01eed58dae5791dbb1447b672c8">swap</a> (m);
|
|
<a name="l00195"></a>00195 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00196"></a>00196 }
|
|
<a name="l00197"></a>00197 <span class="keyword">template</span><<span class="keyword">class</span> AE>
|
|
<a name="l00198"></a>00198 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00199"></a><a class="code" href="a00440.html#aa73ad37e9137bab1cabf26d6c7930a9e">00199</a> <a class="code" href="a00440.html">symmetric_matrix</a> &<a class="code" href="a00440.html#a9feb7d904dbbae76230f79bd676ebfaa">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00251.html" title="Base class for Matrix Expression models.">matrix_expression<AE></a> &ae) {
|
|
<a name="l00200"></a>00200 <a class="code" href="a00440.html">self_type</a> temporary (ae);
|
|
<a name="l00201"></a>00201 <span class="keywordflow">return</span> <a class="code" href="a00440.html#a71a4a8a7dd3de07d3979da5ff81eb133">assign_temporary</a> (temporary);
|
|
<a name="l00202"></a>00202 }
|
|
<a name="l00203"></a>00203 <span class="keyword">template</span><<span class="keyword">class</span> AE>
|
|
<a name="l00204"></a>00204 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00205"></a><a class="code" href="a00440.html#a8b818e83501598e4ad4f92fd8bf67c6b">00205</a> <a class="code" href="a00440.html">symmetric_matrix</a> &<a class="code" href="a00440.html#a8b818e83501598e4ad4f92fd8bf67c6b">assign</a> (<span class="keyword">const</span> <a class="code" href="a00251.html" title="Base class for Matrix Expression models.">matrix_expression<AE></a> &ae) {
|
|
<a name="l00206"></a>00206 matrix_assign<scalar_assign> (*<span class="keyword">this</span>, ae);
|
|
<a name="l00207"></a>00207 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00208"></a>00208 }
|
|
<a name="l00209"></a>00209 <span class="keyword">template</span><<span class="keyword">class</span> AE>
|
|
<a name="l00210"></a>00210 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00211"></a><a class="code" href="a00440.html#af09f01d9b1aa6182b5e6a1c263d661d7">00211</a> <a class="code" href="a00440.html">symmetric_matrix</a>& <a class="code" href="a00440.html#af09f01d9b1aa6182b5e6a1c263d661d7">operator += </a>(<span class="keyword">const</span> <a class="code" href="a00251.html" title="Base class for Matrix Expression models.">matrix_expression<AE></a> &ae) {
|
|
<a name="l00212"></a>00212 <a class="code" href="a00440.html">self_type</a> temporary (*<span class="keyword">this</span> + ae);
|
|
<a name="l00213"></a>00213 <span class="keywordflow">return</span> <a class="code" href="a00440.html#a71a4a8a7dd3de07d3979da5ff81eb133">assign_temporary</a> (temporary);
|
|
<a name="l00214"></a>00214 }
|
|
<a name="l00215"></a>00215 <span class="keyword">template</span><<span class="keyword">class</span> AE>
|
|
<a name="l00216"></a>00216 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00217"></a><a class="code" href="a00440.html#a24a31af31270fde494424655b1737c37">00217</a> <a class="code" href="a00440.html">symmetric_matrix</a> &<a class="code" href="a00440.html#a24a31af31270fde494424655b1737c37">plus_assign</a> (<span class="keyword">const</span> <a class="code" href="a00251.html" title="Base class for Matrix Expression models.">matrix_expression<AE></a> &ae) {
|
|
<a name="l00218"></a>00218 matrix_assign<scalar_plus_assign> (*<span class="keyword">this</span>, ae);
|
|
<a name="l00219"></a>00219 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00220"></a>00220 }
|
|
<a name="l00221"></a>00221 <span class="keyword">template</span><<span class="keyword">class</span> AE>
|
|
<a name="l00222"></a>00222 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00223"></a><a class="code" href="a00440.html#a1d528de3059081ff277d0e7e62bb94f3">00223</a> <a class="code" href="a00440.html">symmetric_matrix</a>& <a class="code" href="a00440.html#a1d528de3059081ff277d0e7e62bb94f3">operator -= </a>(<span class="keyword">const</span> <a class="code" href="a00251.html" title="Base class for Matrix Expression models.">matrix_expression<AE></a> &ae) {
|
|
<a name="l00224"></a>00224 <a class="code" href="a00440.html">self_type</a> temporary (*<span class="keyword">this</span> - ae);
|
|
<a name="l00225"></a>00225 <span class="keywordflow">return</span> <a class="code" href="a00440.html#a71a4a8a7dd3de07d3979da5ff81eb133">assign_temporary</a> (temporary);
|
|
<a name="l00226"></a>00226 }
|
|
<a name="l00227"></a>00227 <span class="keyword">template</span><<span class="keyword">class</span> AE>
|
|
<a name="l00228"></a>00228 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00229"></a><a class="code" href="a00440.html#ad326e00ceb451f96b20ca985b9e4a4e1">00229</a> <a class="code" href="a00440.html">symmetric_matrix</a> &<a class="code" href="a00440.html#ad326e00ceb451f96b20ca985b9e4a4e1">minus_assign</a> (<span class="keyword">const</span> <a class="code" href="a00251.html" title="Base class for Matrix Expression models.">matrix_expression<AE></a> &ae) {
|
|
<a name="l00230"></a>00230 matrix_assign<scalar_minus_assign> (*<span class="keyword">this</span>, ae);
|
|
<a name="l00231"></a>00231 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00232"></a>00232 }
|
|
<a name="l00233"></a>00233 <span class="keyword">template</span><<span class="keyword">class</span> AT>
|
|
<a name="l00234"></a>00234 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00235"></a><a class="code" href="a00440.html#a60811471dd0462c63922c9d65aa05bbd">00235</a> <a class="code" href="a00440.html">symmetric_matrix</a>& <a class="code" href="a00440.html#a60811471dd0462c63922c9d65aa05bbd">operator *= </a>(<span class="keyword">const</span> AT &at) {
|
|
<a name="l00236"></a>00236 matrix_assign_scalar<scalar_multiplies_assign> (*<span class="keyword">this</span>, at);
|
|
<a name="l00237"></a>00237 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00238"></a>00238 }
|
|
<a name="l00239"></a>00239 <span class="keyword">template</span><<span class="keyword">class</span> AT>
|
|
<a name="l00240"></a>00240 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00241"></a><a class="code" href="a00440.html#a5f74c1f73f11fa9b9a5eedbb232dce99">00241</a> <a class="code" href="a00440.html">symmetric_matrix</a>& <a class="code" href="a00440.html#a5f74c1f73f11fa9b9a5eedbb232dce99">operator /= </a>(<span class="keyword">const</span> AT &at) {
|
|
<a name="l00242"></a>00242 matrix_assign_scalar<scalar_divides_assign> (*<span class="keyword">this</span>, at);
|
|
<a name="l00243"></a>00243 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00244"></a>00244 }
|
|
<a name="l00245"></a>00245
|
|
<a name="l00246"></a>00246 <span class="comment">// Swapping</span>
|
|
<a name="l00247"></a>00247 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00248"></a><a class="code" href="a00440.html#a8d51e01eed58dae5791dbb1447b672c8">00248</a> <span class="keywordtype">void</span> <a class="code" href="a00440.html#a8d51e01eed58dae5791dbb1447b672c8">swap</a> (<a class="code" href="a00440.html">symmetric_matrix</a> &m) {
|
|
<a name="l00249"></a>00249 <span class="keywordflow">if</span> (<span class="keyword">this</span> != &m) {
|
|
<a name="l00250"></a>00250 <a class="code" href="a00440.html#a8d51e01eed58dae5791dbb1447b672c8">std::swap</a> (<a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a>, m.<a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a>);
|
|
<a name="l00251"></a>00251 <a class="code" href="a00440.html#a8b4b2423c9e59de06ceadb920467ea03">data</a> ().swap (m.<a class="code" href="a00440.html#a8b4b2423c9e59de06ceadb920467ea03">data</a> ());
|
|
<a name="l00252"></a>00252 }
|
|
<a name="l00253"></a>00253 }
|
|
<a name="l00254"></a>00254 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00255"></a><a class="code" href="a00440.html#ad03d3554dff551116add9cef8408ae95">00255</a> <span class="keyword">friend</span> <span class="keywordtype">void</span> <a class="code" href="a00440.html#ad03d3554dff551116add9cef8408ae95">swap</a> (<a class="code" href="a00440.html">symmetric_matrix</a> &m1, <a class="code" href="a00440.html">symmetric_matrix</a> &m2) {
|
|
<a name="l00256"></a>00256 m1.<a class="code" href="a00440.html#a8d51e01eed58dae5791dbb1447b672c8">swap</a> (m2);
|
|
<a name="l00257"></a>00257 }
|
|
<a name="l00258"></a>00258
|
|
<a name="l00259"></a>00259 <span class="comment">// Iterator types</span>
|
|
<a name="l00260"></a>00260 <span class="preprocessor">#ifdef BOOST_UBLAS_USE_INDEXED_ITERATOR</span>
|
|
<a name="l00261"></a>00261 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00169.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_iterator1<self_type, packed_random_access_iterator_tag></a> iterator1;
|
|
<a name="l00262"></a>00262 <span class="keyword">typedef</span> <a class="code" href="a00170.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_iterator2<self_type, packed_random_access_iterator_tag></a> iterator2;
|
|
<a name="l00263"></a>00263 <span class="keyword">typedef</span> <a class="code" href="a00166.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_const_iterator1<self_type, dense_random_access_iterator_tag></a> const_iterator1;
|
|
<a name="l00264"></a>00264 <span class="keyword">typedef</span> <a class="code" href="a00167.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_const_iterator2<self_type, dense_random_access_iterator_tag></a> const_iterator2;
|
|
<a name="l00265"></a>00265 <span class="preprocessor">#else</span>
|
|
<a name="l00266"></a>00266 <span class="preprocessor"></span> <span class="keyword">class </span>const_iterator1;
|
|
<a name="l00267"></a>00267 <span class="keyword">class </span>iterator1;
|
|
<a name="l00268"></a>00268 <span class="keyword">class </span>const_iterator2;
|
|
<a name="l00269"></a><a class="code" href="a00440.html#aa557ed661cfad0943eb39de1143843a7">00269</a> <span class="keyword">class </span><a class="code" href="a00444.html">iterator2</a>;
|
|
<a name="l00270"></a>00270 <span class="preprocessor">#endif</span>
|
|
<a name="l00271"></a>00271 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base1<const_iterator1></a> <a class="code" href="a00440.html#aa557ed661cfad0943eb39de1143843a7">const_reverse_iterator1</a>;
|
|
<a name="l00272"></a><a class="code" href="a00440.html#a86414b413fec33b5a6b1a596c6fc36d4">00272</a> <span class="keyword">typedef</span> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base1<iterator1></a> <a class="code" href="a00440.html#a86414b413fec33b5a6b1a596c6fc36d4">reverse_iterator1</a>;
|
|
<a name="l00273"></a><a class="code" href="a00440.html#a5648cd295d735b5ab22d2ae2e312798c">00273</a> <span class="keyword">typedef</span> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base2<const_iterator2></a> <a class="code" href="a00440.html#a5648cd295d735b5ab22d2ae2e312798c">const_reverse_iterator2</a>;
|
|
<a name="l00274"></a><a class="code" href="a00440.html#a83f8c931136f4f82b9d8dff6cfe67acd">00274</a> <span class="keyword">typedef</span> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base2<iterator2></a> <a class="code" href="a00440.html#a83f8c931136f4f82b9d8dff6cfe67acd">reverse_iterator2</a>;
|
|
<a name="l00275"></a>00275
|
|
<a name="l00276"></a>00276 <span class="comment">// Element lookup</span>
|
|
<a name="l00277"></a>00277 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00278"></a><a class="code" href="a00440.html#aa71d9875bdf2bc0903583e04463cc6a4">00278</a> <a class="code" href="a00441.html">const_iterator1</a> <a class="code" href="a00440.html#aa71d9875bdf2bc0903583e04463cc6a4">find1</a> (<span class="keywordtype">int</span> <span class="comment">/* rank */</span>, <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> i, <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> j)<span class="keyword"> const </span>{
|
|
<a name="l00279"></a>00279 <span class="keywordflow">return</span> <a class="code" href="a00441.html">const_iterator1</a> (*<span class="keyword">this</span>, i, j);
|
|
<a name="l00280"></a>00280 }
|
|
<a name="l00281"></a>00281 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00282"></a><a class="code" href="a00440.html#af8e356265a2d741da463d3e2ccacb941">00282</a> <a class="code" href="a00443.html">iterator1</a> <a class="code" href="a00440.html#af8e356265a2d741da463d3e2ccacb941">find1</a> (<span class="keywordtype">int</span> rank, <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> i, <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> j) {
|
|
<a name="l00283"></a>00283 <span class="keywordflow">if</span> (rank == 1)
|
|
<a name="l00284"></a>00284 i = triangular_type::mutable_restrict1 (i, j, <a class="code" href="a00440.html#aa61929b3b8ad985c57fa2ecb2902838d">size1</a>(), <a class="code" href="a00440.html#aa649f019f5de73cda4bade278797ea9c">size2</a>());
|
|
<a name="l00285"></a>00285 <span class="keywordflow">if</span> (rank == 0)
|
|
<a name="l00286"></a>00286 i = triangular_type::global_mutable_restrict1 (i, <a class="code" href="a00440.html#aa61929b3b8ad985c57fa2ecb2902838d">size1</a>(), j, <a class="code" href="a00440.html#aa649f019f5de73cda4bade278797ea9c">size2</a>());
|
|
<a name="l00287"></a>00287 <span class="keywordflow">return</span> <a class="code" href="a00443.html">iterator1</a> (*<span class="keyword">this</span>, i, j);
|
|
<a name="l00288"></a>00288 }
|
|
<a name="l00289"></a>00289 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00290"></a><a class="code" href="a00440.html#a8aad0a132f2a32f032fd0de90e709c1c">00290</a> <a class="code" href="a00442.html">const_iterator2</a> <a class="code" href="a00440.html#a8aad0a132f2a32f032fd0de90e709c1c">find2</a> (<span class="keywordtype">int</span> <span class="comment">/* rank */</span>, <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> i, <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> j)<span class="keyword"> const </span>{
|
|
<a name="l00291"></a>00291 <span class="keywordflow">return</span> <a class="code" href="a00442.html">const_iterator2</a> (*<span class="keyword">this</span>, i, j);
|
|
<a name="l00292"></a>00292 }
|
|
<a name="l00293"></a>00293 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00294"></a><a class="code" href="a00440.html#a68263e9ed5c2961cfc7a971b5565a924">00294</a> <a class="code" href="a00444.html">iterator2</a> <a class="code" href="a00440.html#a68263e9ed5c2961cfc7a971b5565a924">find2</a> (<span class="keywordtype">int</span> rank, <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> i, <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> j) {
|
|
<a name="l00295"></a>00295 <span class="keywordflow">if</span> (rank == 1)
|
|
<a name="l00296"></a>00296 j = triangular_type::mutable_restrict2 (i, j, <a class="code" href="a00440.html#aa61929b3b8ad985c57fa2ecb2902838d">size1</a>(), <a class="code" href="a00440.html#aa649f019f5de73cda4bade278797ea9c">size2</a>());
|
|
<a name="l00297"></a>00297 <span class="keywordflow">if</span> (rank == 0)
|
|
<a name="l00298"></a>00298 j = triangular_type::global_mutable_restrict2 (i, <a class="code" href="a00440.html#aa61929b3b8ad985c57fa2ecb2902838d">size1</a>(), j, <a class="code" href="a00440.html#aa649f019f5de73cda4bade278797ea9c">size2</a>());
|
|
<a name="l00299"></a>00299 <span class="keywordflow">return</span> <a class="code" href="a00444.html">iterator2</a> (*<span class="keyword">this</span>, i, j);
|
|
<a name="l00300"></a>00300 }
|
|
<a name="l00301"></a>00301
|
|
<a name="l00302"></a>00302 <span class="comment">// Iterators simply are indices.</span>
|
|
<a name="l00303"></a>00303
|
|
<a name="l00304"></a>00304 <span class="preprocessor">#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR</span>
|
|
<a name="l00305"></a><a class="code" href="a00441.html">00305</a> <span class="preprocessor"></span> <span class="keyword">class </span><a class="code" href="a00441.html">const_iterator1</a>:
|
|
<a name="l00306"></a>00306 <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><symmetric_matrix>,
|
|
<a name="l00307"></a>00307 <span class="keyword">public</span> <a class="code" href="a00365.html" title="Base class of all random access iterators.">random_access_iterator_base</a><dense_random_access_iterator_tag,
|
|
<a name="l00308"></a>00308 const_iterator1, value_type> {
|
|
<a name="l00309"></a>00309 <span class="keyword">public</span>:
|
|
<a name="l00310"></a><a class="code" href="a00441.html#af380a88461f91c51f64d51b5accf805c">00310</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00440.html#ab1fd95bb9e2934955655b3d355101ad9">symmetric_matrix::value_type</a> <a class="code" href="a00441.html#af380a88461f91c51f64d51b5accf805c">value_type</a>;
|
|
<a name="l00311"></a><a class="code" href="a00441.html#ae8a367d5cd5f7fb7c016d05f3566cd5a">00311</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00440.html#a9078f12e2780cecfea77be9fe04689fa">symmetric_matrix::difference_type</a> <a class="code" href="a00441.html#ae8a367d5cd5f7fb7c016d05f3566cd5a">difference_type</a>;
|
|
<a name="l00312"></a><a class="code" href="a00441.html#a86473501524cc043d55c4faec991b042">00312</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00440.html#a1648a21cda6323fc6245b13cc7568106">symmetric_matrix::const_reference</a> <a class="code" href="a00441.html#a86473501524cc043d55c4faec991b042">reference</a>;
|
|
<a name="l00313"></a><a class="code" href="a00441.html#a62557c568180cdf88f06d1350bac4db7">00313</a> <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="keyword">typename</span> <a class="code" href="a00440.html#a9caf7a7e039551cd09fb3e690696a942">symmetric_matrix::pointer</a> <a class="code" href="a00441.html#a62557c568180cdf88f06d1350bac4db7">pointer</a>;
|
|
<a name="l00314"></a>00314
|
|
<a name="l00315"></a><a class="code" href="a00441.html#aeb370b3938bc8c6078ead8ab3ff3fa04">00315</a> <span class="keyword">typedef</span> <a class="code" href="a00442.html">const_iterator2</a> <a class="code" href="a00441.html#aeb370b3938bc8c6078ead8ab3ff3fa04">dual_iterator_type</a>;
|
|
<a name="l00316"></a><a class="code" href="a00441.html#aa3c3bebfb39c86cf5c5da8002420dbdc">00316</a> <span class="keyword">typedef</span> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">const_reverse_iterator2</a> <a class="code" href="a00441.html#aa3c3bebfb39c86cf5c5da8002420dbdc">dual_reverse_iterator_type</a>;
|
|
<a name="l00317"></a>00317
|
|
<a name="l00318"></a>00318 <span class="comment">// Construction and destruction</span>
|
|
<a name="l00319"></a>00319 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00320"></a><a class="code" href="a00441.html#a4d48783ff863e57a98aedc37e0167dc7">00320</a> <a class="code" href="a00441.html#a4d48783ff863e57a98aedc37e0167dc7">const_iterator1</a> ():
|
|
<a name="l00321"></a>00321 <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><<a class="code" href="a00440.html">self_type</a>> (), <a class="code" href="a00441.html#a45a685282917a3c7862612d4ec106b5a">it1_</a> (), <a class="code" href="a00441.html#a9b6cee038ae1289a8063dae3ee7fc1c8">it2_</a> () {}
|
|
<a name="l00322"></a>00322 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00323"></a><a class="code" href="a00441.html#a2a9e5ad20679d504779bd041b9a419e6">00323</a> <a class="code" href="a00441.html#a4d48783ff863e57a98aedc37e0167dc7">const_iterator1</a> (<span class="keyword">const</span> <a class="code" href="a00440.html">self_type</a> &m, <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> it1, <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> it2):
|
|
<a name="l00324"></a>00324 <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><<a class="code" href="a00440.html">self_type</a>> (m), <a class="code" href="a00441.html#a45a685282917a3c7862612d4ec106b5a">it1_</a> (it1), <a class="code" href="a00441.html#a9b6cee038ae1289a8063dae3ee7fc1c8">it2_</a> (it2) {}
|
|
<a name="l00325"></a>00325 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00326"></a><a class="code" href="a00441.html#adc6aebebaa95fe7afddb2ddffd42a1e3">00326</a> <a class="code" href="a00441.html#a4d48783ff863e57a98aedc37e0167dc7">const_iterator1</a> (<span class="keyword">const</span> <a class="code" href="a00443.html">iterator1</a> &it):
|
|
<a name="l00327"></a>00327 <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><<a class="code" href="a00440.html">self_type</a>> (it ()), <a class="code" href="a00441.html#a45a685282917a3c7862612d4ec106b5a">it1_</a> (it.<a class="code" href="a00441.html#a45a685282917a3c7862612d4ec106b5a">it1_</a>), <a class="code" href="a00441.html#a9b6cee038ae1289a8063dae3ee7fc1c8">it2_</a> (it.<a class="code" href="a00441.html#a9b6cee038ae1289a8063dae3ee7fc1c8">it2_</a>) {}
|
|
<a name="l00328"></a>00328
|
|
<a name="l00329"></a>00329 <span class="comment">// Arithmetic</span>
|
|
<a name="l00330"></a>00330 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00331"></a><a class="code" href="a00441.html#a9f4e9e555b3da29d97bfd0ff505dd584">00331</a> <a class="code" href="a00441.html">const_iterator1</a> &<a class="code" href="a00441.html#a9f4e9e555b3da29d97bfd0ff505dd584">operator ++ </a>() {
|
|
<a name="l00332"></a>00332 ++ <a class="code" href="a00441.html#a45a685282917a3c7862612d4ec106b5a">it1_</a>;
|
|
<a name="l00333"></a>00333 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00334"></a>00334 }
|
|
<a name="l00335"></a>00335 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00336"></a><a class="code" href="a00441.html#a46c0e5d30a951ae07e654af9737bfe51">00336</a> <a class="code" href="a00441.html">const_iterator1</a> &<a class="code" href="a00441.html#a46c0e5d30a951ae07e654af9737bfe51">operator -- </a>() {
|
|
<a name="l00337"></a>00337 -- <a class="code" href="a00441.html#a45a685282917a3c7862612d4ec106b5a">it1_</a>;
|
|
<a name="l00338"></a>00338 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00339"></a>00339 }
|
|
<a name="l00340"></a>00340 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00341"></a><a class="code" href="a00441.html#a81720830fdcc6b875b1c71686550687b">00341</a> <a class="code" href="a00441.html">const_iterator1</a> &<a class="code" href="a00441.html#a81720830fdcc6b875b1c71686550687b">operator += </a>(<a class="code" href="a00441.html#ae8a367d5cd5f7fb7c016d05f3566cd5a">difference_type</a> n) {
|
|
<a name="l00342"></a>00342 <a class="code" href="a00441.html#a45a685282917a3c7862612d4ec106b5a">it1_</a> += n;
|
|
<a name="l00343"></a>00343 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00344"></a>00344 }
|
|
<a name="l00345"></a>00345 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00346"></a><a class="code" href="a00441.html#a56ea00776a64608caea567269cf227d8">00346</a> <a class="code" href="a00441.html">const_iterator1</a> &<a class="code" href="a00441.html#a56ea00776a64608caea567269cf227d8">operator -= </a>(<a class="code" href="a00441.html#ae8a367d5cd5f7fb7c016d05f3566cd5a">difference_type</a> n) {
|
|
<a name="l00347"></a>00347 <a class="code" href="a00441.html#a45a685282917a3c7862612d4ec106b5a">it1_</a> -= n;
|
|
<a name="l00348"></a>00348 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00349"></a>00349 }
|
|
<a name="l00350"></a>00350 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00351"></a><a class="code" href="a00441.html#ac973cf54a7a85f0c5df4d324db0a6042">00351</a> <a class="code" href="a00441.html#ae8a367d5cd5f7fb7c016d05f3566cd5a">difference_type</a> <a class="code" href="a00441.html#ac973cf54a7a85f0c5df4d324db0a6042">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00441.html">const_iterator1</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00352"></a>00352 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00353"></a>00353 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00441.html#a9b6cee038ae1289a8063dae3ee7fc1c8">it2_</a> == it.<a class="code" href="a00441.html#a9b6cee038ae1289a8063dae3ee7fc1c8">it2_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00354"></a>00354 <span class="keywordflow">return</span> <a class="code" href="a00441.html#a45a685282917a3c7862612d4ec106b5a">it1_</a> - it.<a class="code" href="a00441.html#a45a685282917a3c7862612d4ec106b5a">it1_</a>;
|
|
<a name="l00355"></a>00355 }
|
|
<a name="l00356"></a>00356
|
|
<a name="l00357"></a>00357 <span class="comment">// Dereference</span>
|
|
<a name="l00358"></a>00358 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00359"></a><a class="code" href="a00441.html#ab2311328b875b8f06359bf8cc6e5e844">00359</a> <a class="code" href="a00440.html#a1648a21cda6323fc6245b13cc7568106">const_reference</a> <a class="code" href="a00441.html#ab2311328b875b8f06359bf8cc6e5e844">operator * </a>()<span class="keyword"> const </span>{
|
|
<a name="l00360"></a>00360 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) () (<a class="code" href="a00441.html#a45a685282917a3c7862612d4ec106b5a">it1_</a>, <a class="code" href="a00441.html#a9b6cee038ae1289a8063dae3ee7fc1c8">it2_</a>);
|
|
<a name="l00361"></a>00361 }
|
|
<a name="l00362"></a>00362 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00363"></a><a class="code" href="a00441.html#ae93190d6cea01aac6e18f1b8f734394c">00363</a> <a class="code" href="a00440.html#a1648a21cda6323fc6245b13cc7568106">const_reference</a> <a class="code" href="a00441.html#ae93190d6cea01aac6e18f1b8f734394c">operator [] </a>(<a class="code" href="a00441.html#ae8a367d5cd5f7fb7c016d05f3566cd5a">difference_type</a> n)<span class="keyword"> const </span>{
|
|
<a name="l00364"></a>00364 <span class="keywordflow">return</span> *(*<span class="keyword">this</span> + n);
|
|
<a name="l00365"></a>00365 }
|
|
<a name="l00366"></a>00366
|
|
<a name="l00367"></a>00367 <span class="preprocessor">#ifndef BOOST_UBLAS_NO_NESTED_CLASS_RELATION</span>
|
|
<a name="l00368"></a>00368 <span class="preprocessor"></span> <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00369"></a>00369 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l00370"></a>00370 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00440.html">self_type</a>::
|
|
<a name="l00371"></a>00371 <span class="preprocessor">#endif</span>
|
|
<a name="l00372"></a><a class="code" href="a00441.html#ac6243a911f5f7b68a73303e32ae58c1a">00372</a> <span class="preprocessor"></span> <a class="code" href="a00442.html">const_iterator2</a> <a class="code" href="a00441.html#ac6243a911f5f7b68a73303e32ae58c1a">begin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00373"></a>00373 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00440.html#a8aad0a132f2a32f032fd0de90e709c1c">find2</a> (1, <a class="code" href="a00441.html#a45a685282917a3c7862612d4ec106b5a">it1_</a>, 0);
|
|
<a name="l00374"></a>00374 }
|
|
<a name="l00375"></a>00375 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00376"></a>00376 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l00377"></a>00377 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00440.html">self_type</a>::
|
|
<a name="l00378"></a>00378 <span class="preprocessor">#endif</span>
|
|
<a name="l00379"></a><a class="code" href="a00441.html#a9a33b70701dc81d99888374c57c11d0d">00379</a> <span class="preprocessor"></span> <a class="code" href="a00442.html">const_iterator2</a> <a class="code" href="a00441.html#a9a33b70701dc81d99888374c57c11d0d">end</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00380"></a>00380 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00440.html#a8aad0a132f2a32f032fd0de90e709c1c">find2</a> (1, <a class="code" href="a00441.html#a45a685282917a3c7862612d4ec106b5a">it1_</a>, (*<span class="keyword">this</span>) ().<a class="code" href="a00440.html#aa649f019f5de73cda4bade278797ea9c">size2</a> ());
|
|
<a name="l00381"></a>00381 }
|
|
<a name="l00382"></a>00382 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00383"></a>00383 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l00384"></a>00384 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00440.html">self_type</a>::
|
|
<a name="l00385"></a>00385 <span class="preprocessor">#endif</span>
|
|
<a name="l00386"></a><a class="code" href="a00441.html#aa04b8d11d009ca6054d0f0a7d3daa890">00386</a> <span class="preprocessor"></span> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">const_reverse_iterator2</a> <a class="code" href="a00441.html#aa04b8d11d009ca6054d0f0a7d3daa890">rbegin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00387"></a>00387 <span class="keywordflow">return</span> <a class="code" href="a00440.html#a5648cd295d735b5ab22d2ae2e312798c">const_reverse_iterator2</a> (<a class="code" href="a00441.html#a9a33b70701dc81d99888374c57c11d0d">end</a> ());
|
|
<a name="l00388"></a>00388 }
|
|
<a name="l00389"></a>00389 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00390"></a>00390 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l00391"></a>00391 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00440.html">self_type</a>::
|
|
<a name="l00392"></a>00392 <span class="preprocessor">#endif</span>
|
|
<a name="l00393"></a><a class="code" href="a00441.html#ad938255d5ec234d63ea43bcc9f8b3b4e">00393</a> <span class="preprocessor"></span> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">const_reverse_iterator2</a> <a class="code" href="a00441.html#ad938255d5ec234d63ea43bcc9f8b3b4e">rend</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00394"></a>00394 <span class="keywordflow">return</span> <a class="code" href="a00440.html#a5648cd295d735b5ab22d2ae2e312798c">const_reverse_iterator2</a> (<a class="code" href="a00441.html#ac6243a911f5f7b68a73303e32ae58c1a">begin</a> ());
|
|
<a name="l00395"></a>00395 }
|
|
<a name="l00396"></a>00396 <span class="preprocessor">#endif</span>
|
|
<a name="l00397"></a>00397 <span class="preprocessor"></span>
|
|
<a name="l00398"></a>00398 <span class="comment">// Indices</span>
|
|
<a name="l00399"></a>00399 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00400"></a><a class="code" href="a00441.html#aff344871c13a27618e8a86ca7417477c">00400</a> <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> <a class="code" href="a00441.html#aff344871c13a27618e8a86ca7417477c">index1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00401"></a>00401 <span class="keywordflow">return</span> <a class="code" href="a00441.html#a45a685282917a3c7862612d4ec106b5a">it1_</a>;
|
|
<a name="l00402"></a>00402 }
|
|
<a name="l00403"></a>00403 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00404"></a><a class="code" href="a00441.html#ad6845925d7b5150855354f4fffdc1d3a">00404</a> <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> <a class="code" href="a00441.html#ad6845925d7b5150855354f4fffdc1d3a">index2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00405"></a>00405 <span class="keywordflow">return</span> <a class="code" href="a00441.html#a9b6cee038ae1289a8063dae3ee7fc1c8">it2_</a>;
|
|
<a name="l00406"></a>00406 }
|
|
<a name="l00407"></a>00407
|
|
<a name="l00408"></a>00408 <span class="comment">// Assignment</span>
|
|
<a name="l00409"></a>00409 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00410"></a><a class="code" href="a00441.html#aa42d1c2d8d2b346045eb034af6199dda">00410</a> <a class="code" href="a00441.html">const_iterator1</a> &<a class="code" href="a00441.html#aa42d1c2d8d2b346045eb034af6199dda">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00441.html">const_iterator1</a> &it) {
|
|
<a name="l00411"></a>00411 <a class="code" href="a00069.html#ab14250fc4fe5b9bcab4eb9fba8a5b5f8">container_const_reference<self_type>::assign</a> (&it ());
|
|
<a name="l00412"></a>00412 <a class="code" href="a00441.html#a45a685282917a3c7862612d4ec106b5a">it1_</a> = it.<a class="code" href="a00441.html#a45a685282917a3c7862612d4ec106b5a">it1_</a>;
|
|
<a name="l00413"></a>00413 <a class="code" href="a00441.html#a9b6cee038ae1289a8063dae3ee7fc1c8">it2_</a> = it.<a class="code" href="a00441.html#a9b6cee038ae1289a8063dae3ee7fc1c8">it2_</a>;
|
|
<a name="l00414"></a>00414 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00415"></a>00415 }
|
|
<a name="l00416"></a>00416
|
|
<a name="l00417"></a>00417 <span class="comment">// Comparison</span>
|
|
<a name="l00418"></a>00418 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00419"></a><a class="code" href="a00441.html#a63c490b0e170a3b455955045f29c0ad1">00419</a> <span class="keywordtype">bool</span> <a class="code" href="a00441.html#a63c490b0e170a3b455955045f29c0ad1">operator == </a>(<span class="keyword">const</span> <a class="code" href="a00441.html">const_iterator1</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00420"></a>00420 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00421"></a>00421 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00441.html#a9b6cee038ae1289a8063dae3ee7fc1c8">it2_</a> == it.<a class="code" href="a00441.html#a9b6cee038ae1289a8063dae3ee7fc1c8">it2_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00422"></a>00422 <span class="keywordflow">return</span> <a class="code" href="a00441.html#a45a685282917a3c7862612d4ec106b5a">it1_</a> == it.<a class="code" href="a00441.html#a45a685282917a3c7862612d4ec106b5a">it1_</a>;
|
|
<a name="l00423"></a>00423 }
|
|
<a name="l00424"></a>00424 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00425"></a><a class="code" href="a00441.html#a1bab92095047d93bf0d7af4c138b26e0">00425</a> <span class="keywordtype">bool</span> <a class="code" href="a00441.html#a1bab92095047d93bf0d7af4c138b26e0">operator < </a>(<span class="keyword">const</span> <a class="code" href="a00441.html">const_iterator1</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00426"></a>00426 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00427"></a>00427 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00441.html#a9b6cee038ae1289a8063dae3ee7fc1c8">it2_</a> == it.<a class="code" href="a00441.html#a9b6cee038ae1289a8063dae3ee7fc1c8">it2_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00428"></a>00428 <span class="keywordflow">return</span> <a class="code" href="a00441.html#a45a685282917a3c7862612d4ec106b5a">it1_</a> < it.<a class="code" href="a00441.html#a45a685282917a3c7862612d4ec106b5a">it1_</a>;
|
|
<a name="l00429"></a>00429 }
|
|
<a name="l00430"></a>00430
|
|
<a name="l00431"></a>00431 <span class="keyword">private</span>:
|
|
<a name="l00432"></a><a class="code" href="a00441.html#a45a685282917a3c7862612d4ec106b5a">00432</a> <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> <a class="code" href="a00441.html#a45a685282917a3c7862612d4ec106b5a">it1_</a>;
|
|
<a name="l00433"></a><a class="code" href="a00441.html#a9b6cee038ae1289a8063dae3ee7fc1c8">00433</a> <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> <a class="code" href="a00441.html#a9b6cee038ae1289a8063dae3ee7fc1c8">it2_</a>;
|
|
<a name="l00434"></a>00434 };
|
|
<a name="l00435"></a>00435 <span class="preprocessor">#endif</span>
|
|
<a name="l00436"></a>00436 <span class="preprocessor"></span>
|
|
<a name="l00437"></a>00437 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00438"></a><a class="code" href="a00440.html#adb5c72c83b51795d3ca6cad9793a25a3">00438</a> <a class="code" href="a00441.html">const_iterator1</a> <a class="code" href="a00440.html#adb5c72c83b51795d3ca6cad9793a25a3">begin1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00439"></a>00439 <span class="keywordflow">return</span> <a class="code" href="a00440.html#aa71d9875bdf2bc0903583e04463cc6a4">find1</a> (0, 0, 0);
|
|
<a name="l00440"></a>00440 }
|
|
<a name="l00441"></a>00441 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00442"></a><a class="code" href="a00440.html#abd088da9856a6cb1c8b6c93a286c862f">00442</a> <a class="code" href="a00441.html">const_iterator1</a> <a class="code" href="a00440.html#abd088da9856a6cb1c8b6c93a286c862f">end1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00443"></a>00443 <span class="keywordflow">return</span> <a class="code" href="a00440.html#aa71d9875bdf2bc0903583e04463cc6a4">find1</a> (0, <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a>, 0);
|
|
<a name="l00444"></a>00444 }
|
|
<a name="l00445"></a>00445
|
|
<a name="l00446"></a>00446 <span class="preprocessor">#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR</span>
|
|
<a name="l00447"></a><a class="code" href="a00443.html">00447</a> <span class="preprocessor"></span> <span class="keyword">class </span><a class="code" href="a00443.html">iterator1</a>:
|
|
<a name="l00448"></a>00448 <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><symmetric_matrix>,
|
|
<a name="l00449"></a>00449 <span class="keyword">public</span> <a class="code" href="a00365.html" title="Base class of all random access iterators.">random_access_iterator_base</a><packed_random_access_iterator_tag,
|
|
<a name="l00450"></a>00450 iterator1, value_type> {
|
|
<a name="l00451"></a>00451 <span class="keyword">public</span>:
|
|
<a name="l00452"></a><a class="code" href="a00443.html#a7d15e500e3e1761eb0eae314ba57628d">00452</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00440.html#ab1fd95bb9e2934955655b3d355101ad9">symmetric_matrix::value_type</a> <a class="code" href="a00443.html#a7d15e500e3e1761eb0eae314ba57628d">value_type</a>;
|
|
<a name="l00453"></a><a class="code" href="a00443.html#a82b06fad776c8208347428209ac3a11d">00453</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00440.html#a9078f12e2780cecfea77be9fe04689fa">symmetric_matrix::difference_type</a> <a class="code" href="a00443.html#a82b06fad776c8208347428209ac3a11d">difference_type</a>;
|
|
<a name="l00454"></a><a class="code" href="a00443.html#a09e0cef82860d3af3f580e8366b49a7d">00454</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00440.html#afe5da26fd29294505df9589b45696c7b">symmetric_matrix::reference</a> <a class="code" href="a00443.html#a09e0cef82860d3af3f580e8366b49a7d">reference</a>;
|
|
<a name="l00455"></a><a class="code" href="a00443.html#ae29af4be4fccba9d53a7478e87a15d90">00455</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00440.html#a9caf7a7e039551cd09fb3e690696a942">symmetric_matrix::pointer</a> <a class="code" href="a00443.html#ae29af4be4fccba9d53a7478e87a15d90">pointer</a>;
|
|
<a name="l00456"></a><a class="code" href="a00443.html#a639e7bcf01f5d9558b97364a40c9a9ba">00456</a> <span class="keyword">typedef</span> <a class="code" href="a00444.html">iterator2</a> <a class="code" href="a00443.html#a639e7bcf01f5d9558b97364a40c9a9ba">dual_iterator_type</a>;
|
|
<a name="l00457"></a><a class="code" href="a00443.html#ac85faab2bd5f0ea3c4b3ba492981bbbf">00457</a> <span class="keyword">typedef</span> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator2</a> <a class="code" href="a00443.html#ac85faab2bd5f0ea3c4b3ba492981bbbf">dual_reverse_iterator_type</a>;
|
|
<a name="l00458"></a>00458
|
|
<a name="l00459"></a>00459 <span class="comment">// Construction and destruction</span>
|
|
<a name="l00460"></a>00460 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00461"></a><a class="code" href="a00443.html#ae25984d838b9a201f4c54919af54ce8e">00461</a> <a class="code" href="a00443.html#ae25984d838b9a201f4c54919af54ce8e">iterator1</a> ():
|
|
<a name="l00462"></a>00462 <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><<a class="code" href="a00440.html">self_type</a>> (), <a class="code" href="a00443.html#a46ba0aab126380180672ff6117025aae">it1_</a> (), <a class="code" href="a00443.html#a8e7f0da6409fb4c07e41053acbf69823">it2_</a> () {}
|
|
<a name="l00463"></a>00463 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00464"></a><a class="code" href="a00443.html#a9f287a9d35351c3dea82cfeda6fa8f85">00464</a> <a class="code" href="a00443.html#ae25984d838b9a201f4c54919af54ce8e">iterator1</a> (<a class="code" href="a00440.html">self_type</a> &m, <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> it1, <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> it2):
|
|
<a name="l00465"></a>00465 <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><<a class="code" href="a00440.html">self_type</a>> (m), <a class="code" href="a00443.html#a46ba0aab126380180672ff6117025aae">it1_</a> (it1), <a class="code" href="a00443.html#a8e7f0da6409fb4c07e41053acbf69823">it2_</a> (it2) {}
|
|
<a name="l00466"></a>00466
|
|
<a name="l00467"></a>00467 <span class="comment">// Arithmetic</span>
|
|
<a name="l00468"></a>00468 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00469"></a><a class="code" href="a00443.html#a4b998dc1de3e9cda4d0a59709427d426">00469</a> <a class="code" href="a00443.html">iterator1</a> &<a class="code" href="a00443.html#a4b998dc1de3e9cda4d0a59709427d426">operator ++ </a>() {
|
|
<a name="l00470"></a>00470 ++ <a class="code" href="a00443.html#a46ba0aab126380180672ff6117025aae">it1_</a>;
|
|
<a name="l00471"></a>00471 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00472"></a>00472 }
|
|
<a name="l00473"></a>00473 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00474"></a><a class="code" href="a00443.html#a6ef3eee1d5a5d0fa4d77dc4a673f11d6">00474</a> <a class="code" href="a00443.html">iterator1</a> &<a class="code" href="a00443.html#a6ef3eee1d5a5d0fa4d77dc4a673f11d6">operator -- </a>() {
|
|
<a name="l00475"></a>00475 -- <a class="code" href="a00443.html#a46ba0aab126380180672ff6117025aae">it1_</a>;
|
|
<a name="l00476"></a>00476 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00477"></a>00477 }
|
|
<a name="l00478"></a>00478 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00479"></a><a class="code" href="a00443.html#a7f3b2fa28fe82f609279a1df6328956a">00479</a> <a class="code" href="a00443.html">iterator1</a> &<a class="code" href="a00443.html#a7f3b2fa28fe82f609279a1df6328956a">operator += </a>(<a class="code" href="a00443.html#a82b06fad776c8208347428209ac3a11d">difference_type</a> n) {
|
|
<a name="l00480"></a>00480 <a class="code" href="a00443.html#a46ba0aab126380180672ff6117025aae">it1_</a> += n;
|
|
<a name="l00481"></a>00481 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00482"></a>00482 }
|
|
<a name="l00483"></a>00483 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00484"></a><a class="code" href="a00443.html#a20679f948749f259b17d6d6534ccd60a">00484</a> <a class="code" href="a00443.html">iterator1</a> &<a class="code" href="a00443.html#a20679f948749f259b17d6d6534ccd60a">operator -= </a>(<a class="code" href="a00443.html#a82b06fad776c8208347428209ac3a11d">difference_type</a> n) {
|
|
<a name="l00485"></a>00485 <a class="code" href="a00443.html#a46ba0aab126380180672ff6117025aae">it1_</a> -= n;
|
|
<a name="l00486"></a>00486 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00487"></a>00487 }
|
|
<a name="l00488"></a>00488 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00489"></a><a class="code" href="a00443.html#ad0d25c59885b054035b0ac16a94febcb">00489</a> <a class="code" href="a00443.html#a82b06fad776c8208347428209ac3a11d">difference_type</a> <a class="code" href="a00443.html#ad0d25c59885b054035b0ac16a94febcb">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00443.html">iterator1</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00490"></a>00490 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00491"></a>00491 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00443.html#a8e7f0da6409fb4c07e41053acbf69823">it2_</a> == it.<a class="code" href="a00443.html#a8e7f0da6409fb4c07e41053acbf69823">it2_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00492"></a>00492 <span class="keywordflow">return</span> <a class="code" href="a00443.html#a46ba0aab126380180672ff6117025aae">it1_</a> - it.<a class="code" href="a00443.html#a46ba0aab126380180672ff6117025aae">it1_</a>;
|
|
<a name="l00493"></a>00493 }
|
|
<a name="l00494"></a>00494
|
|
<a name="l00495"></a>00495 <span class="comment">// Dereference</span>
|
|
<a name="l00496"></a>00496 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00497"></a><a class="code" href="a00443.html#a890e4b702cfbb029d028d7b5ceb926a4">00497</a> <a class="code" href="a00443.html#a09e0cef82860d3af3f580e8366b49a7d">reference</a> <a class="code" href="a00443.html#a890e4b702cfbb029d028d7b5ceb926a4">operator * </a>()<span class="keyword"> const </span>{
|
|
<a name="l00498"></a>00498 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) () (<a class="code" href="a00443.html#a46ba0aab126380180672ff6117025aae">it1_</a>, <a class="code" href="a00443.html#a8e7f0da6409fb4c07e41053acbf69823">it2_</a>);
|
|
<a name="l00499"></a>00499 }
|
|
<a name="l00500"></a>00500 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00501"></a><a class="code" href="a00443.html#a1643689423e0b5fa18c37c61dea2439e">00501</a> <a class="code" href="a00443.html#a09e0cef82860d3af3f580e8366b49a7d">reference</a> <a class="code" href="a00443.html#a1643689423e0b5fa18c37c61dea2439e">operator [] </a>(<a class="code" href="a00443.html#a82b06fad776c8208347428209ac3a11d">difference_type</a> n)<span class="keyword"> const </span>{
|
|
<a name="l00502"></a>00502 <span class="keywordflow">return</span> *(*<span class="keyword">this</span> + n);
|
|
<a name="l00503"></a>00503 }
|
|
<a name="l00504"></a>00504
|
|
<a name="l00505"></a>00505 <span class="preprocessor">#ifndef BOOST_UBLAS_NO_NESTED_CLASS_RELATION</span>
|
|
<a name="l00506"></a>00506 <span class="preprocessor"></span> <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00507"></a>00507 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l00508"></a>00508 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00440.html">self_type</a>::
|
|
<a name="l00509"></a>00509 <span class="preprocessor">#endif</span>
|
|
<a name="l00510"></a><a class="code" href="a00443.html#a886c93e4eaa8a97288c50bb74121fa66">00510</a> <span class="preprocessor"></span> <a class="code" href="a00444.html">iterator2</a> <a class="code" href="a00443.html#a886c93e4eaa8a97288c50bb74121fa66">begin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00511"></a>00511 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00440.html#a8aad0a132f2a32f032fd0de90e709c1c">find2</a> (1, <a class="code" href="a00443.html#a46ba0aab126380180672ff6117025aae">it1_</a>, 0);
|
|
<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>00514 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l00515"></a>00515 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00440.html">self_type</a>::
|
|
<a name="l00516"></a>00516 <span class="preprocessor">#endif</span>
|
|
<a name="l00517"></a><a class="code" href="a00443.html#a31191c8e2483dd3d787c7d1f1c2402bc">00517</a> <span class="preprocessor"></span> <a class="code" href="a00444.html">iterator2</a> <a class="code" href="a00443.html#a31191c8e2483dd3d787c7d1f1c2402bc">end</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00518"></a>00518 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00440.html#a8aad0a132f2a32f032fd0de90e709c1c">find2</a> (1, <a class="code" href="a00443.html#a46ba0aab126380180672ff6117025aae">it1_</a>, (*<span class="keyword">this</span>) ().<a class="code" href="a00440.html#aa649f019f5de73cda4bade278797ea9c">size2</a> ());
|
|
<a name="l00519"></a>00519 }
|
|
<a name="l00520"></a>00520 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00521"></a>00521 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l00522"></a>00522 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00440.html">self_type</a>::
|
|
<a name="l00523"></a>00523 <span class="preprocessor">#endif</span>
|
|
<a name="l00524"></a><a class="code" href="a00443.html#aa0a58e9014ff01f7a6461325b259fbad">00524</a> <span class="preprocessor"></span> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator2</a> <a class="code" href="a00443.html#aa0a58e9014ff01f7a6461325b259fbad">rbegin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00525"></a>00525 <span class="keywordflow">return</span> <a class="code" href="a00440.html#a83f8c931136f4f82b9d8dff6cfe67acd">reverse_iterator2</a> (<a class="code" href="a00443.html#a31191c8e2483dd3d787c7d1f1c2402bc">end</a> ());
|
|
<a name="l00526"></a>00526 }
|
|
<a name="l00527"></a>00527 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00528"></a>00528 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l00529"></a>00529 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00440.html">self_type</a>::
|
|
<a name="l00530"></a>00530 <span class="preprocessor">#endif</span>
|
|
<a name="l00531"></a><a class="code" href="a00443.html#a96c61db6b1784310b6bfae45e74c1f73">00531</a> <span class="preprocessor"></span> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator2</a> <a class="code" href="a00443.html#a96c61db6b1784310b6bfae45e74c1f73">rend</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00532"></a>00532 <span class="keywordflow">return</span> <a class="code" href="a00440.html#a83f8c931136f4f82b9d8dff6cfe67acd">reverse_iterator2</a> (<a class="code" href="a00443.html#a886c93e4eaa8a97288c50bb74121fa66">begin</a> ());
|
|
<a name="l00533"></a>00533 }
|
|
<a name="l00534"></a>00534 <span class="preprocessor">#endif</span>
|
|
<a name="l00535"></a>00535 <span class="preprocessor"></span>
|
|
<a name="l00536"></a>00536 <span class="comment">// Indices</span>
|
|
<a name="l00537"></a>00537 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00538"></a><a class="code" href="a00443.html#adb68d85ce73549fccefb04697b6f09fc">00538</a> <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> <a class="code" href="a00443.html#adb68d85ce73549fccefb04697b6f09fc">index1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00539"></a>00539 <span class="keywordflow">return</span> <a class="code" href="a00443.html#a46ba0aab126380180672ff6117025aae">it1_</a>;
|
|
<a name="l00540"></a>00540 }
|
|
<a name="l00541"></a>00541 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00542"></a><a class="code" href="a00443.html#aea3017cad89038badab5b1fa55602020">00542</a> <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> <a class="code" href="a00443.html#aea3017cad89038badab5b1fa55602020">index2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00543"></a>00543 <span class="keywordflow">return</span> <a class="code" href="a00443.html#a8e7f0da6409fb4c07e41053acbf69823">it2_</a>;
|
|
<a name="l00544"></a>00544 }
|
|
<a name="l00545"></a>00545
|
|
<a name="l00546"></a>00546 <span class="comment">// Assignment</span>
|
|
<a name="l00547"></a>00547 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00548"></a><a class="code" href="a00443.html#a39d8ac9242b8f227685c402a5cc59361">00548</a> <a class="code" href="a00443.html">iterator1</a> &<a class="code" href="a00443.html#a39d8ac9242b8f227685c402a5cc59361">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00443.html">iterator1</a> &it) {
|
|
<a name="l00549"></a>00549 <a class="code" href="a00070.html#a8ee5b7e2ac6a45d59e4873df582a02b2">container_reference<self_type>::assign</a> (&it ());
|
|
<a name="l00550"></a>00550 <a class="code" href="a00443.html#a46ba0aab126380180672ff6117025aae">it1_</a> = it.<a class="code" href="a00443.html#a46ba0aab126380180672ff6117025aae">it1_</a>;
|
|
<a name="l00551"></a>00551 <a class="code" href="a00443.html#a8e7f0da6409fb4c07e41053acbf69823">it2_</a> = it.<a class="code" href="a00443.html#a8e7f0da6409fb4c07e41053acbf69823">it2_</a>;
|
|
<a name="l00552"></a>00552 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00553"></a>00553 }
|
|
<a name="l00554"></a>00554
|
|
<a name="l00555"></a>00555 <span class="comment">// Comparison</span>
|
|
<a name="l00556"></a>00556 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00557"></a><a class="code" href="a00443.html#a43dca8fb63fe679ab714f2e990b471cc">00557</a> <span class="keywordtype">bool</span> <a class="code" href="a00443.html#a43dca8fb63fe679ab714f2e990b471cc">operator == </a>(<span class="keyword">const</span> <a class="code" href="a00443.html">iterator1</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00558"></a>00558 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00559"></a>00559 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00443.html#a8e7f0da6409fb4c07e41053acbf69823">it2_</a> == it.<a class="code" href="a00443.html#a8e7f0da6409fb4c07e41053acbf69823">it2_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00560"></a>00560 <span class="keywordflow">return</span> <a class="code" href="a00443.html#a46ba0aab126380180672ff6117025aae">it1_</a> == it.<a class="code" href="a00443.html#a46ba0aab126380180672ff6117025aae">it1_</a>;
|
|
<a name="l00561"></a>00561 }
|
|
<a name="l00562"></a>00562 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00563"></a><a class="code" href="a00443.html#a890c0911e128e1e10b176617a383fa93">00563</a> <span class="keywordtype">bool</span> <a class="code" href="a00443.html#a890c0911e128e1e10b176617a383fa93">operator < </a>(<span class="keyword">const</span> <a class="code" href="a00443.html">iterator1</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00564"></a>00564 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00565"></a>00565 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00443.html#a8e7f0da6409fb4c07e41053acbf69823">it2_</a> == it.<a class="code" href="a00443.html#a8e7f0da6409fb4c07e41053acbf69823">it2_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00566"></a>00566 <span class="keywordflow">return</span> <a class="code" href="a00443.html#a46ba0aab126380180672ff6117025aae">it1_</a> < it.<a class="code" href="a00443.html#a46ba0aab126380180672ff6117025aae">it1_</a>;
|
|
<a name="l00567"></a>00567 }
|
|
<a name="l00568"></a>00568
|
|
<a name="l00569"></a>00569 <span class="keyword">private</span>:
|
|
<a name="l00570"></a><a class="code" href="a00443.html#a46ba0aab126380180672ff6117025aae">00570</a> <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> <a class="code" href="a00443.html#a46ba0aab126380180672ff6117025aae">it1_</a>;
|
|
<a name="l00571"></a><a class="code" href="a00443.html#a8e7f0da6409fb4c07e41053acbf69823">00571</a> <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> <a class="code" href="a00443.html#a8e7f0da6409fb4c07e41053acbf69823">it2_</a>;
|
|
<a name="l00572"></a>00572
|
|
<a name="l00573"></a><a class="code" href="a00443.html#a2217ee3466e64c9a0105ef5d64ba6a11">00573</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="a00441.html">const_iterator1</a>;
|
|
<a name="l00574"></a>00574 };
|
|
<a name="l00575"></a>00575 <span class="preprocessor">#endif</span>
|
|
<a name="l00576"></a>00576 <span class="preprocessor"></span>
|
|
<a name="l00577"></a>00577 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00578"></a><a class="code" href="a00440.html#a37d29b04695d0eef79ba79da48b5fef3">00578</a> <a class="code" href="a00443.html">iterator1</a> <a class="code" href="a00440.html#a37d29b04695d0eef79ba79da48b5fef3">begin1</a> () {
|
|
<a name="l00579"></a>00579 <span class="keywordflow">return</span> <a class="code" href="a00440.html#aa71d9875bdf2bc0903583e04463cc6a4">find1</a> (0, 0, 0);
|
|
<a name="l00580"></a>00580 }
|
|
<a name="l00581"></a>00581 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00582"></a><a class="code" href="a00440.html#af24f2af208805cfba9ebbca4172bd29c">00582</a> <a class="code" href="a00443.html">iterator1</a> <a class="code" href="a00440.html#af24f2af208805cfba9ebbca4172bd29c">end1</a> () {
|
|
<a name="l00583"></a>00583 <span class="keywordflow">return</span> <a class="code" href="a00440.html#aa71d9875bdf2bc0903583e04463cc6a4">find1</a> (0, <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a>, 0);
|
|
<a name="l00584"></a>00584 }
|
|
<a name="l00585"></a>00585
|
|
<a name="l00586"></a>00586 <span class="preprocessor">#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR</span>
|
|
<a name="l00587"></a><a class="code" href="a00442.html">00587</a> <span class="preprocessor"></span> <span class="keyword">class </span><a class="code" href="a00442.html">const_iterator2</a>:
|
|
<a name="l00588"></a>00588 <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><symmetric_matrix>,
|
|
<a name="l00589"></a>00589 <span class="keyword">public</span> <a class="code" href="a00365.html" title="Base class of all random access iterators.">random_access_iterator_base</a><dense_random_access_iterator_tag,
|
|
<a name="l00590"></a>00590 const_iterator2, value_type> {
|
|
<a name="l00591"></a>00591 <span class="keyword">public</span>:
|
|
<a name="l00592"></a><a class="code" href="a00442.html#aba26997d00d0640d4649a1944d69f345">00592</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00440.html#ab1fd95bb9e2934955655b3d355101ad9">symmetric_matrix::value_type</a> <a class="code" href="a00442.html#aba26997d00d0640d4649a1944d69f345">value_type</a>;
|
|
<a name="l00593"></a><a class="code" href="a00442.html#a4da99967422975c8cfc2161ec479d696">00593</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00440.html#a9078f12e2780cecfea77be9fe04689fa">symmetric_matrix::difference_type</a> <a class="code" href="a00442.html#a4da99967422975c8cfc2161ec479d696">difference_type</a>;
|
|
<a name="l00594"></a><a class="code" href="a00442.html#af614e877c19ff9e201bf7fd91dab7a0d">00594</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00440.html#a1648a21cda6323fc6245b13cc7568106">symmetric_matrix::const_reference</a> <a class="code" href="a00442.html#af614e877c19ff9e201bf7fd91dab7a0d">reference</a>;
|
|
<a name="l00595"></a><a class="code" href="a00442.html#a1b1779f6d88c748ee1a9365557b67fa1">00595</a> <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="keyword">typename</span> <a class="code" href="a00440.html#a9caf7a7e039551cd09fb3e690696a942">symmetric_matrix::pointer</a> <a class="code" href="a00442.html#a1b1779f6d88c748ee1a9365557b67fa1">pointer</a>;
|
|
<a name="l00596"></a>00596
|
|
<a name="l00597"></a><a class="code" href="a00442.html#a652915fe773d2b8b3b6ab3152eab85e6">00597</a> <span class="keyword">typedef</span> <a class="code" href="a00441.html">const_iterator1</a> <a class="code" href="a00442.html#a652915fe773d2b8b3b6ab3152eab85e6">dual_iterator_type</a>;
|
|
<a name="l00598"></a><a class="code" href="a00442.html#a053bf1c8650551d2202be54a18130909">00598</a> <span class="keyword">typedef</span> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">const_reverse_iterator1</a> <a class="code" href="a00442.html#a053bf1c8650551d2202be54a18130909">dual_reverse_iterator_type</a>;
|
|
<a name="l00599"></a>00599
|
|
<a name="l00600"></a>00600 <span class="comment">// Construction and destruction</span>
|
|
<a name="l00601"></a>00601 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00602"></a><a class="code" href="a00442.html#a79d45be11db22acec570ecb4fd074856">00602</a> <a class="code" href="a00442.html#a79d45be11db22acec570ecb4fd074856">const_iterator2</a> ():
|
|
<a name="l00603"></a>00603 <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><<a class="code" href="a00440.html">self_type</a>> (), <a class="code" href="a00442.html#a2984eda3602a565a64e4cf89b0e2e0b4">it1_</a> (), <a class="code" href="a00442.html#aa5dc039a64eb504e784328159e9290f1">it2_</a> () {}
|
|
<a name="l00604"></a>00604 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00605"></a><a class="code" href="a00442.html#a4146765d0cd0f4b1235916de54afb108">00605</a> <a class="code" href="a00442.html#a79d45be11db22acec570ecb4fd074856">const_iterator2</a> (<span class="keyword">const</span> <a class="code" href="a00440.html">self_type</a> &m, <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> it1, <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> it2):
|
|
<a name="l00606"></a>00606 <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><<a class="code" href="a00440.html">self_type</a>> (m), <a class="code" href="a00442.html#a2984eda3602a565a64e4cf89b0e2e0b4">it1_</a> (it1), <a class="code" href="a00442.html#aa5dc039a64eb504e784328159e9290f1">it2_</a> (it2) {}
|
|
<a name="l00607"></a>00607 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00608"></a><a class="code" href="a00442.html#a4901ab715f840e1a7947516049182fc7">00608</a> <a class="code" href="a00442.html#a79d45be11db22acec570ecb4fd074856">const_iterator2</a> (<span class="keyword">const</span> <a class="code" href="a00444.html">iterator2</a> &it):
|
|
<a name="l00609"></a>00609 <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><<a class="code" href="a00440.html">self_type</a>> (it ()), <a class="code" href="a00442.html#a2984eda3602a565a64e4cf89b0e2e0b4">it1_</a> (it.<a class="code" href="a00442.html#a2984eda3602a565a64e4cf89b0e2e0b4">it1_</a>), <a class="code" href="a00442.html#aa5dc039a64eb504e784328159e9290f1">it2_</a> (it.<a class="code" href="a00442.html#aa5dc039a64eb504e784328159e9290f1">it2_</a>) {}
|
|
<a name="l00610"></a>00610
|
|
<a name="l00611"></a>00611 <span class="comment">// Arithmetic</span>
|
|
<a name="l00612"></a>00612 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00613"></a><a class="code" href="a00442.html#aa3843c97bcc41d51b4018ff80399ba91">00613</a> <a class="code" href="a00442.html">const_iterator2</a> &<a class="code" href="a00442.html#aa3843c97bcc41d51b4018ff80399ba91">operator ++ </a>() {
|
|
<a name="l00614"></a>00614 ++ <a class="code" href="a00442.html#aa5dc039a64eb504e784328159e9290f1">it2_</a>;
|
|
<a name="l00615"></a>00615 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00616"></a>00616 }
|
|
<a name="l00617"></a>00617 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00618"></a><a class="code" href="a00442.html#ab908d51285c7e588f6acc2a01a274090">00618</a> <a class="code" href="a00442.html">const_iterator2</a> &<a class="code" href="a00442.html#ab908d51285c7e588f6acc2a01a274090">operator -- </a>() {
|
|
<a name="l00619"></a>00619 -- <a class="code" href="a00442.html#aa5dc039a64eb504e784328159e9290f1">it2_</a>;
|
|
<a name="l00620"></a>00620 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00621"></a>00621 }
|
|
<a name="l00622"></a>00622 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00623"></a><a class="code" href="a00442.html#a21f582371dedb31ad807d8064b1b91ac">00623</a> <a class="code" href="a00442.html">const_iterator2</a> &<a class="code" href="a00442.html#a21f582371dedb31ad807d8064b1b91ac">operator += </a>(<a class="code" href="a00442.html#a4da99967422975c8cfc2161ec479d696">difference_type</a> n) {
|
|
<a name="l00624"></a>00624 <a class="code" href="a00442.html#aa5dc039a64eb504e784328159e9290f1">it2_</a> += n;
|
|
<a name="l00625"></a>00625 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00626"></a>00626 }
|
|
<a name="l00627"></a>00627 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00628"></a><a class="code" href="a00442.html#aa3a9bf4b5a0a5ead8b17a165d4f3900d">00628</a> <a class="code" href="a00442.html">const_iterator2</a> &<a class="code" href="a00442.html#aa3a9bf4b5a0a5ead8b17a165d4f3900d">operator -= </a>(<a class="code" href="a00442.html#a4da99967422975c8cfc2161ec479d696">difference_type</a> n) {
|
|
<a name="l00629"></a>00629 <a class="code" href="a00442.html#aa5dc039a64eb504e784328159e9290f1">it2_</a> -= n;
|
|
<a name="l00630"></a>00630 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00631"></a>00631 }
|
|
<a name="l00632"></a>00632 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00633"></a><a class="code" href="a00442.html#a62c46a2b030f5307b7a5c7b903899d4f">00633</a> <a class="code" href="a00442.html#a4da99967422975c8cfc2161ec479d696">difference_type</a> <a class="code" href="a00442.html#a62c46a2b030f5307b7a5c7b903899d4f">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00442.html">const_iterator2</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00634"></a>00634 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00635"></a>00635 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00442.html#a2984eda3602a565a64e4cf89b0e2e0b4">it1_</a> == it.<a class="code" href="a00442.html#a2984eda3602a565a64e4cf89b0e2e0b4">it1_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00636"></a>00636 <span class="keywordflow">return</span> <a class="code" href="a00442.html#aa5dc039a64eb504e784328159e9290f1">it2_</a> - it.<a class="code" href="a00442.html#aa5dc039a64eb504e784328159e9290f1">it2_</a>;
|
|
<a name="l00637"></a>00637 }
|
|
<a name="l00638"></a>00638
|
|
<a name="l00639"></a>00639 <span class="comment">// Dereference</span>
|
|
<a name="l00640"></a>00640 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00641"></a><a class="code" href="a00442.html#a34be30ba2cb5337444b481514145f249">00641</a> <a class="code" href="a00440.html#a1648a21cda6323fc6245b13cc7568106">const_reference</a> <a class="code" href="a00442.html#a34be30ba2cb5337444b481514145f249">operator * </a>()<span class="keyword"> const </span>{
|
|
<a name="l00642"></a>00642 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) () (<a class="code" href="a00442.html#a2984eda3602a565a64e4cf89b0e2e0b4">it1_</a>, <a class="code" href="a00442.html#aa5dc039a64eb504e784328159e9290f1">it2_</a>);
|
|
<a name="l00643"></a>00643 }
|
|
<a name="l00644"></a>00644 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00645"></a><a class="code" href="a00442.html#a15341a780d7f537ee39d8f58a24abf7d">00645</a> <a class="code" href="a00440.html#a1648a21cda6323fc6245b13cc7568106">const_reference</a> <a class="code" href="a00442.html#a15341a780d7f537ee39d8f58a24abf7d">operator [] </a>(<a class="code" href="a00442.html#a4da99967422975c8cfc2161ec479d696">difference_type</a> n)<span class="keyword"> const </span>{
|
|
<a name="l00646"></a>00646 <span class="keywordflow">return</span> *(*<span class="keyword">this</span> + n);
|
|
<a name="l00647"></a>00647 }
|
|
<a name="l00648"></a>00648
|
|
<a name="l00649"></a>00649 <span class="preprocessor">#ifndef BOOST_UBLAS_NO_NESTED_CLASS_RELATION</span>
|
|
<a name="l00650"></a>00650 <span class="preprocessor"></span> <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00651"></a>00651 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l00652"></a>00652 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00440.html">self_type</a>::
|
|
<a name="l00653"></a>00653 <span class="preprocessor">#endif</span>
|
|
<a name="l00654"></a><a class="code" href="a00442.html#a48d4c5c1ed5e6183e49df06c5009d024">00654</a> <span class="preprocessor"></span> <a class="code" href="a00441.html">const_iterator1</a> <a class="code" href="a00442.html#a48d4c5c1ed5e6183e49df06c5009d024">begin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00655"></a>00655 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00440.html#aa71d9875bdf2bc0903583e04463cc6a4">find1</a> (1, 0, <a class="code" href="a00442.html#aa5dc039a64eb504e784328159e9290f1">it2_</a>);
|
|
<a name="l00656"></a>00656 }
|
|
<a name="l00657"></a>00657 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00658"></a>00658 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l00659"></a>00659 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00440.html">self_type</a>::
|
|
<a name="l00660"></a>00660 <span class="preprocessor">#endif</span>
|
|
<a name="l00661"></a><a class="code" href="a00442.html#ae93ebebf2a4f71b97207eb185e455d31">00661</a> <span class="preprocessor"></span> <a class="code" href="a00441.html">const_iterator1</a> <a class="code" href="a00442.html#ae93ebebf2a4f71b97207eb185e455d31">end</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00662"></a>00662 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00440.html#aa71d9875bdf2bc0903583e04463cc6a4">find1</a> (1, (*<span class="keyword">this</span>) ().<a class="code" href="a00440.html#aa61929b3b8ad985c57fa2ecb2902838d">size1</a> (), <a class="code" href="a00442.html#aa5dc039a64eb504e784328159e9290f1">it2_</a>);
|
|
<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>00665 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l00666"></a>00666 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00440.html">self_type</a>::
|
|
<a name="l00667"></a>00667 <span class="preprocessor">#endif</span>
|
|
<a name="l00668"></a><a class="code" href="a00442.html#ac95b104248d374d9fa95149cccbe1d53">00668</a> <span class="preprocessor"></span> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">const_reverse_iterator1</a> <a class="code" href="a00442.html#ac95b104248d374d9fa95149cccbe1d53">rbegin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00669"></a>00669 <span class="keywordflow">return</span> <a class="code" href="a00440.html#aa557ed661cfad0943eb39de1143843a7">const_reverse_iterator1</a> (<a class="code" href="a00442.html#ae93ebebf2a4f71b97207eb185e455d31">end</a> ());
|
|
<a name="l00670"></a>00670 }
|
|
<a name="l00671"></a>00671 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00672"></a>00672 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l00673"></a>00673 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00440.html">self_type</a>::
|
|
<a name="l00674"></a>00674 <span class="preprocessor">#endif</span>
|
|
<a name="l00675"></a><a class="code" href="a00442.html#a997a9e37fe2127584279f7c5990ec09c">00675</a> <span class="preprocessor"></span> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">const_reverse_iterator1</a> <a class="code" href="a00442.html#a997a9e37fe2127584279f7c5990ec09c">rend</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00676"></a>00676 <span class="keywordflow">return</span> <a class="code" href="a00440.html#aa557ed661cfad0943eb39de1143843a7">const_reverse_iterator1</a> (<a class="code" href="a00442.html#a48d4c5c1ed5e6183e49df06c5009d024">begin</a> ());
|
|
<a name="l00677"></a>00677 }
|
|
<a name="l00678"></a>00678 <span class="preprocessor">#endif</span>
|
|
<a name="l00679"></a>00679 <span class="preprocessor"></span>
|
|
<a name="l00680"></a>00680 <span class="comment">// Indices</span>
|
|
<a name="l00681"></a>00681 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00682"></a><a class="code" href="a00442.html#a309cb9a8eef40d4a21f12049e1d6c143">00682</a> <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> <a class="code" href="a00442.html#a309cb9a8eef40d4a21f12049e1d6c143">index1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00683"></a>00683 <span class="keywordflow">return</span> <a class="code" href="a00442.html#a2984eda3602a565a64e4cf89b0e2e0b4">it1_</a>;
|
|
<a name="l00684"></a>00684 }
|
|
<a name="l00685"></a>00685 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00686"></a><a class="code" href="a00442.html#a101f998e1ec09f81abe2516155976498">00686</a> <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> <a class="code" href="a00442.html#a101f998e1ec09f81abe2516155976498">index2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00687"></a>00687 <span class="keywordflow">return</span> <a class="code" href="a00442.html#aa5dc039a64eb504e784328159e9290f1">it2_</a>;
|
|
<a name="l00688"></a>00688 }
|
|
<a name="l00689"></a>00689
|
|
<a name="l00690"></a>00690 <span class="comment">// Assignment</span>
|
|
<a name="l00691"></a>00691 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00692"></a><a class="code" href="a00442.html#a627391858a621a02c437e29c1ea38c50">00692</a> <a class="code" href="a00442.html">const_iterator2</a> &<a class="code" href="a00442.html#a627391858a621a02c437e29c1ea38c50">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00442.html">const_iterator2</a> &it) {
|
|
<a name="l00693"></a>00693 <a class="code" href="a00069.html#ab14250fc4fe5b9bcab4eb9fba8a5b5f8">container_const_reference<self_type>::assign</a> (&it ());
|
|
<a name="l00694"></a>00694 <a class="code" href="a00442.html#a2984eda3602a565a64e4cf89b0e2e0b4">it1_</a> = it.<a class="code" href="a00442.html#a2984eda3602a565a64e4cf89b0e2e0b4">it1_</a>;
|
|
<a name="l00695"></a>00695 <a class="code" href="a00442.html#aa5dc039a64eb504e784328159e9290f1">it2_</a> = it.<a class="code" href="a00442.html#aa5dc039a64eb504e784328159e9290f1">it2_</a>;
|
|
<a name="l00696"></a>00696 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00697"></a>00697 }
|
|
<a name="l00698"></a>00698
|
|
<a name="l00699"></a>00699 <span class="comment">// Comparison</span>
|
|
<a name="l00700"></a>00700 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00701"></a><a class="code" href="a00442.html#afeb0e66c6f1043d343687fcab94b5152">00701</a> <span class="keywordtype">bool</span> <a class="code" href="a00442.html#afeb0e66c6f1043d343687fcab94b5152">operator == </a>(<span class="keyword">const</span> <a class="code" href="a00442.html">const_iterator2</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00702"></a>00702 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00703"></a>00703 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00442.html#a2984eda3602a565a64e4cf89b0e2e0b4">it1_</a> == it.<a class="code" href="a00442.html#a2984eda3602a565a64e4cf89b0e2e0b4">it1_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00704"></a>00704 <span class="keywordflow">return</span> <a class="code" href="a00442.html#aa5dc039a64eb504e784328159e9290f1">it2_</a> == it.<a class="code" href="a00442.html#aa5dc039a64eb504e784328159e9290f1">it2_</a>;
|
|
<a name="l00705"></a>00705 }
|
|
<a name="l00706"></a>00706 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00707"></a><a class="code" href="a00442.html#a10da4d2544ac9b2114162705f23f5ed7">00707</a> <span class="keywordtype">bool</span> <a class="code" href="a00442.html#a10da4d2544ac9b2114162705f23f5ed7">operator < </a>(<span class="keyword">const</span> <a class="code" href="a00442.html">const_iterator2</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00708"></a>00708 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00709"></a>00709 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00442.html#a2984eda3602a565a64e4cf89b0e2e0b4">it1_</a> == it.<a class="code" href="a00442.html#a2984eda3602a565a64e4cf89b0e2e0b4">it1_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00710"></a>00710 <span class="keywordflow">return</span> <a class="code" href="a00442.html#aa5dc039a64eb504e784328159e9290f1">it2_</a> < it.<a class="code" href="a00442.html#aa5dc039a64eb504e784328159e9290f1">it2_</a>;
|
|
<a name="l00711"></a>00711 }
|
|
<a name="l00712"></a>00712
|
|
<a name="l00713"></a>00713 <span class="keyword">private</span>:
|
|
<a name="l00714"></a><a class="code" href="a00442.html#a2984eda3602a565a64e4cf89b0e2e0b4">00714</a> <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> <a class="code" href="a00442.html#a2984eda3602a565a64e4cf89b0e2e0b4">it1_</a>;
|
|
<a name="l00715"></a><a class="code" href="a00442.html#aa5dc039a64eb504e784328159e9290f1">00715</a> <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> <a class="code" href="a00442.html#aa5dc039a64eb504e784328159e9290f1">it2_</a>;
|
|
<a name="l00716"></a>00716 };
|
|
<a name="l00717"></a>00717 <span class="preprocessor">#endif</span>
|
|
<a name="l00718"></a>00718 <span class="preprocessor"></span>
|
|
<a name="l00719"></a>00719 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00720"></a><a class="code" href="a00440.html#a519d31dccedde434c1d09049a47f01a8">00720</a> <a class="code" href="a00442.html">const_iterator2</a> <a class="code" href="a00440.html#a519d31dccedde434c1d09049a47f01a8">begin2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00721"></a>00721 <span class="keywordflow">return</span> <a class="code" href="a00440.html#a8aad0a132f2a32f032fd0de90e709c1c">find2</a> (0, 0, 0);
|
|
<a name="l00722"></a>00722 }
|
|
<a name="l00723"></a>00723 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00724"></a><a class="code" href="a00440.html#ae71f1b0498b7737c646c51ee8f414414">00724</a> <a class="code" href="a00442.html">const_iterator2</a> <a class="code" href="a00440.html#ae71f1b0498b7737c646c51ee8f414414">end2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00725"></a>00725 <span class="keywordflow">return</span> <a class="code" href="a00440.html#a8aad0a132f2a32f032fd0de90e709c1c">find2</a> (0, 0, <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a>);
|
|
<a name="l00726"></a>00726 }
|
|
<a name="l00727"></a>00727
|
|
<a name="l00728"></a>00728 <span class="preprocessor">#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR</span>
|
|
<a name="l00729"></a><a class="code" href="a00444.html">00729</a> <span class="preprocessor"></span> <span class="keyword">class </span><a class="code" href="a00444.html">iterator2</a>:
|
|
<a name="l00730"></a>00730 <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><symmetric_matrix>,
|
|
<a name="l00731"></a>00731 <span class="keyword">public</span> <a class="code" href="a00365.html" title="Base class of all random access iterators.">random_access_iterator_base</a><packed_random_access_iterator_tag,
|
|
<a name="l00732"></a>00732 iterator2, value_type> {
|
|
<a name="l00733"></a>00733 <span class="keyword">public</span>:
|
|
<a name="l00734"></a><a class="code" href="a00444.html#a78ac3e701d8829b3f42b2e65da582098">00734</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00440.html#ab1fd95bb9e2934955655b3d355101ad9">symmetric_matrix::value_type</a> <a class="code" href="a00444.html#a78ac3e701d8829b3f42b2e65da582098">value_type</a>;
|
|
<a name="l00735"></a><a class="code" href="a00444.html#af960523b7bb78d91a8a358928e009063">00735</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00440.html#a9078f12e2780cecfea77be9fe04689fa">symmetric_matrix::difference_type</a> <a class="code" href="a00444.html#af960523b7bb78d91a8a358928e009063">difference_type</a>;
|
|
<a name="l00736"></a><a class="code" href="a00444.html#afc72e19157c716273fd05a51211ac8f1">00736</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00440.html#afe5da26fd29294505df9589b45696c7b">symmetric_matrix::reference</a> <a class="code" href="a00444.html#afc72e19157c716273fd05a51211ac8f1">reference</a>;
|
|
<a name="l00737"></a><a class="code" href="a00444.html#a3562e7276b7463bf47cffca795e06f3f">00737</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00440.html#a9caf7a7e039551cd09fb3e690696a942">symmetric_matrix::pointer</a> <a class="code" href="a00444.html#a3562e7276b7463bf47cffca795e06f3f">pointer</a>;
|
|
<a name="l00738"></a>00738
|
|
<a name="l00739"></a><a class="code" href="a00444.html#ae448ad0b9041a096727aaf6c755cab53">00739</a> <span class="keyword">typedef</span> <a class="code" href="a00443.html">iterator1</a> <a class="code" href="a00444.html#ae448ad0b9041a096727aaf6c755cab53">dual_iterator_type</a>;
|
|
<a name="l00740"></a><a class="code" href="a00444.html#a7b70e11acff6dce31d4c64d41efb540f">00740</a> <span class="keyword">typedef</span> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator1</a> <a class="code" href="a00444.html#a7b70e11acff6dce31d4c64d41efb540f">dual_reverse_iterator_type</a>;
|
|
<a name="l00741"></a>00741
|
|
<a name="l00742"></a>00742 <span class="comment">// Construction and destruction</span>
|
|
<a name="l00743"></a>00743 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00744"></a><a class="code" href="a00444.html#a11ffd1f8cb573c52829c6f89c525fac3">00744</a> <a class="code" href="a00444.html#a11ffd1f8cb573c52829c6f89c525fac3">iterator2</a> ():
|
|
<a name="l00745"></a>00745 <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><<a class="code" href="a00440.html">self_type</a>> (), <a class="code" href="a00444.html#af1a58d6383888378567927fba0dd5be4">it1_</a> (), <a class="code" href="a00444.html#a0250ea800446bf47a430636ea85de43d">it2_</a> () {}
|
|
<a name="l00746"></a>00746 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00747"></a><a class="code" href="a00444.html#a8196e5626fd0c4be6316505b358194b7">00747</a> <a class="code" href="a00444.html#a11ffd1f8cb573c52829c6f89c525fac3">iterator2</a> (<a class="code" href="a00440.html">self_type</a> &m, <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> it1, <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> it2):
|
|
<a name="l00748"></a>00748 <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><<a class="code" href="a00440.html">self_type</a>> (m), <a class="code" href="a00444.html#af1a58d6383888378567927fba0dd5be4">it1_</a> (it1), <a class="code" href="a00444.html#a0250ea800446bf47a430636ea85de43d">it2_</a> (it2) {}
|
|
<a name="l00749"></a>00749
|
|
<a name="l00750"></a>00750 <span class="comment">// Arithmetic</span>
|
|
<a name="l00751"></a>00751 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00752"></a><a class="code" href="a00444.html#ad575fb08eb55ae1abdd2bf9b1dc5842f">00752</a> <a class="code" href="a00444.html">iterator2</a> &<a class="code" href="a00444.html#ad575fb08eb55ae1abdd2bf9b1dc5842f">operator ++ </a>() {
|
|
<a name="l00753"></a>00753 ++ <a class="code" href="a00444.html#a0250ea800446bf47a430636ea85de43d">it2_</a>;
|
|
<a name="l00754"></a>00754 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00755"></a>00755 }
|
|
<a name="l00756"></a>00756 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00757"></a><a class="code" href="a00444.html#a61df019fb4b97dca73e9c9c5f7d79a43">00757</a> <a class="code" href="a00444.html">iterator2</a> &<a class="code" href="a00444.html#a61df019fb4b97dca73e9c9c5f7d79a43">operator -- </a>() {
|
|
<a name="l00758"></a>00758 -- <a class="code" href="a00444.html#a0250ea800446bf47a430636ea85de43d">it2_</a>;
|
|
<a name="l00759"></a>00759 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00760"></a>00760 }
|
|
<a name="l00761"></a>00761 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00762"></a><a class="code" href="a00444.html#ab42385f7816c5df0282221eccb9a7ec6">00762</a> <a class="code" href="a00444.html">iterator2</a> &<a class="code" href="a00444.html#ab42385f7816c5df0282221eccb9a7ec6">operator += </a>(<a class="code" href="a00444.html#af960523b7bb78d91a8a358928e009063">difference_type</a> n) {
|
|
<a name="l00763"></a>00763 <a class="code" href="a00444.html#a0250ea800446bf47a430636ea85de43d">it2_</a> += n;
|
|
<a name="l00764"></a>00764 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00765"></a>00765 }
|
|
<a name="l00766"></a>00766 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00767"></a><a class="code" href="a00444.html#a17f6f776bbda9c59bee08093c2174e22">00767</a> <a class="code" href="a00444.html">iterator2</a> &<a class="code" href="a00444.html#a17f6f776bbda9c59bee08093c2174e22">operator -= </a>(<a class="code" href="a00444.html#af960523b7bb78d91a8a358928e009063">difference_type</a> n) {
|
|
<a name="l00768"></a>00768 <a class="code" href="a00444.html#a0250ea800446bf47a430636ea85de43d">it2_</a> -= n;
|
|
<a name="l00769"></a>00769 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00770"></a>00770 }
|
|
<a name="l00771"></a>00771 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00772"></a><a class="code" href="a00444.html#ae73a401d39bfa9f39016f583c31c5ff0">00772</a> <a class="code" href="a00444.html#af960523b7bb78d91a8a358928e009063">difference_type</a> <a class="code" href="a00444.html#ae73a401d39bfa9f39016f583c31c5ff0">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00444.html">iterator2</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00773"></a>00773 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00774"></a>00774 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00444.html#af1a58d6383888378567927fba0dd5be4">it1_</a> == it.<a class="code" href="a00444.html#af1a58d6383888378567927fba0dd5be4">it1_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00775"></a>00775 <span class="keywordflow">return</span> <a class="code" href="a00444.html#a0250ea800446bf47a430636ea85de43d">it2_</a> - it.<a class="code" href="a00444.html#a0250ea800446bf47a430636ea85de43d">it2_</a>;
|
|
<a name="l00776"></a>00776 }
|
|
<a name="l00777"></a>00777
|
|
<a name="l00778"></a>00778 <span class="comment">// Dereference</span>
|
|
<a name="l00779"></a>00779 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00780"></a><a class="code" href="a00444.html#a0d1c5d0fbb3ce61a536367ffc4f0949b">00780</a> <a class="code" href="a00444.html#afc72e19157c716273fd05a51211ac8f1">reference</a> <a class="code" href="a00444.html#a0d1c5d0fbb3ce61a536367ffc4f0949b">operator * </a>()<span class="keyword"> const </span>{
|
|
<a name="l00781"></a>00781 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) () (<a class="code" href="a00444.html#af1a58d6383888378567927fba0dd5be4">it1_</a>, <a class="code" href="a00444.html#a0250ea800446bf47a430636ea85de43d">it2_</a>);
|
|
<a name="l00782"></a>00782 }
|
|
<a name="l00783"></a>00783 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00784"></a><a class="code" href="a00444.html#a5052de36886244e8e570a1c25a334263">00784</a> <a class="code" href="a00444.html#afc72e19157c716273fd05a51211ac8f1">reference</a> <a class="code" href="a00444.html#a5052de36886244e8e570a1c25a334263">operator [] </a>(<a class="code" href="a00444.html#af960523b7bb78d91a8a358928e009063">difference_type</a> n)<span class="keyword"> const </span>{
|
|
<a name="l00785"></a>00785 <span class="keywordflow">return</span> *(*<span class="keyword">this</span> + n);
|
|
<a name="l00786"></a>00786 }
|
|
<a name="l00787"></a>00787
|
|
<a name="l00788"></a>00788 <span class="preprocessor">#ifndef BOOST_UBLAS_NO_NESTED_CLASS_RELATION</span>
|
|
<a name="l00789"></a>00789 <span class="preprocessor"></span> <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00790"></a>00790 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l00791"></a>00791 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00440.html">self_type</a>::
|
|
<a name="l00792"></a>00792 <span class="preprocessor">#endif</span>
|
|
<a name="l00793"></a><a class="code" href="a00444.html#a49d0a194f7bd19bd5482fa9f5383998c">00793</a> <span class="preprocessor"></span> <a class="code" href="a00443.html">iterator1</a> <a class="code" href="a00444.html#a49d0a194f7bd19bd5482fa9f5383998c">begin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00794"></a>00794 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00440.html#aa71d9875bdf2bc0903583e04463cc6a4">find1</a> (1, 0, <a class="code" href="a00444.html#a0250ea800446bf47a430636ea85de43d">it2_</a>);
|
|
<a name="l00795"></a>00795 }
|
|
<a name="l00796"></a>00796 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00797"></a>00797 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l00798"></a>00798 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00440.html">self_type</a>::
|
|
<a name="l00799"></a>00799 <span class="preprocessor">#endif</span>
|
|
<a name="l00800"></a><a class="code" href="a00444.html#a40a8a6d411c6874f55a3211b1527af69">00800</a> <span class="preprocessor"></span> <a class="code" href="a00443.html">iterator1</a> <a class="code" href="a00444.html#a40a8a6d411c6874f55a3211b1527af69">end</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00801"></a>00801 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00440.html#aa71d9875bdf2bc0903583e04463cc6a4">find1</a> (1, (*<span class="keyword">this</span>) ().<a class="code" href="a00440.html#aa61929b3b8ad985c57fa2ecb2902838d">size1</a> (), <a class="code" href="a00444.html#a0250ea800446bf47a430636ea85de43d">it2_</a>);
|
|
<a name="l00802"></a>00802 }
|
|
<a name="l00803"></a>00803 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00804"></a>00804 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l00805"></a>00805 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00440.html">self_type</a>::
|
|
<a name="l00806"></a>00806 <span class="preprocessor">#endif</span>
|
|
<a name="l00807"></a><a class="code" href="a00444.html#afc52166c1d14417646322bb6a14e20db">00807</a> <span class="preprocessor"></span> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator1</a> <a class="code" href="a00444.html#afc52166c1d14417646322bb6a14e20db">rbegin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00808"></a>00808 <span class="keywordflow">return</span> <a class="code" href="a00440.html#a86414b413fec33b5a6b1a596c6fc36d4">reverse_iterator1</a> (<a class="code" href="a00444.html#a40a8a6d411c6874f55a3211b1527af69">end</a> ());
|
|
<a name="l00809"></a>00809 }
|
|
<a name="l00810"></a>00810 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00811"></a>00811 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l00812"></a>00812 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00440.html">self_type</a>::
|
|
<a name="l00813"></a>00813 <span class="preprocessor">#endif</span>
|
|
<a name="l00814"></a><a class="code" href="a00444.html#a788354c82dbfae220cdaaa1d37d3e5c0">00814</a> <span class="preprocessor"></span> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator1</a> <a class="code" href="a00444.html#a788354c82dbfae220cdaaa1d37d3e5c0">rend</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00815"></a>00815 <span class="keywordflow">return</span> <a class="code" href="a00440.html#a86414b413fec33b5a6b1a596c6fc36d4">reverse_iterator1</a> (<a class="code" href="a00444.html#a49d0a194f7bd19bd5482fa9f5383998c">begin</a> ());
|
|
<a name="l00816"></a>00816 }
|
|
<a name="l00817"></a>00817 <span class="preprocessor">#endif</span>
|
|
<a name="l00818"></a>00818 <span class="preprocessor"></span>
|
|
<a name="l00819"></a>00819 <span class="comment">// Indices</span>
|
|
<a name="l00820"></a>00820 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00821"></a><a class="code" href="a00444.html#a42123e82b576c2049da4638a4ff28fc3">00821</a> <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> <a class="code" href="a00444.html#a42123e82b576c2049da4638a4ff28fc3">index1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00822"></a>00822 <span class="keywordflow">return</span> <a class="code" href="a00444.html#af1a58d6383888378567927fba0dd5be4">it1_</a>;
|
|
<a name="l00823"></a>00823 }
|
|
<a name="l00824"></a>00824 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00825"></a><a class="code" href="a00444.html#ac03373d2665a64ada69b95df7d7066e9">00825</a> <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> <a class="code" href="a00444.html#ac03373d2665a64ada69b95df7d7066e9">index2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00826"></a>00826 <span class="keywordflow">return</span> <a class="code" href="a00444.html#a0250ea800446bf47a430636ea85de43d">it2_</a>;
|
|
<a name="l00827"></a>00827 }
|
|
<a name="l00828"></a>00828
|
|
<a name="l00829"></a>00829 <span class="comment">// Assignment</span>
|
|
<a name="l00830"></a>00830 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00831"></a><a class="code" href="a00444.html#ae3a630d49cc829e56cb611936e21e07a">00831</a> <a class="code" href="a00444.html">iterator2</a> &<a class="code" href="a00444.html#ae3a630d49cc829e56cb611936e21e07a">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00444.html">iterator2</a> &it) {
|
|
<a name="l00832"></a>00832 <a class="code" href="a00070.html#a8ee5b7e2ac6a45d59e4873df582a02b2">container_reference<self_type>::assign</a> (&it ());
|
|
<a name="l00833"></a>00833 <a class="code" href="a00444.html#af1a58d6383888378567927fba0dd5be4">it1_</a> = it.<a class="code" href="a00444.html#af1a58d6383888378567927fba0dd5be4">it1_</a>;
|
|
<a name="l00834"></a>00834 <a class="code" href="a00444.html#a0250ea800446bf47a430636ea85de43d">it2_</a> = it.<a class="code" href="a00444.html#a0250ea800446bf47a430636ea85de43d">it2_</a>;
|
|
<a name="l00835"></a>00835 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00836"></a>00836 }
|
|
<a name="l00837"></a>00837
|
|
<a name="l00838"></a>00838 <span class="comment">// Comparison</span>
|
|
<a name="l00839"></a>00839 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00840"></a><a class="code" href="a00444.html#a4634b7988c5804d8e937945546ef2ec7">00840</a> <span class="keywordtype">bool</span> <a class="code" href="a00444.html#a4634b7988c5804d8e937945546ef2ec7">operator == </a>(<span class="keyword">const</span> <a class="code" href="a00444.html">iterator2</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00841"></a>00841 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00842"></a>00842 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00444.html#af1a58d6383888378567927fba0dd5be4">it1_</a> == it.<a class="code" href="a00444.html#af1a58d6383888378567927fba0dd5be4">it1_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00843"></a>00843 <span class="keywordflow">return</span> <a class="code" href="a00444.html#a0250ea800446bf47a430636ea85de43d">it2_</a> == it.<a class="code" href="a00444.html#a0250ea800446bf47a430636ea85de43d">it2_</a>;
|
|
<a name="l00844"></a>00844 }
|
|
<a name="l00845"></a>00845 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00846"></a><a class="code" href="a00444.html#a1215c8e3092359985af950aa1de0da6d">00846</a> <span class="keywordtype">bool</span> <a class="code" href="a00444.html#a1215c8e3092359985af950aa1de0da6d">operator < </a>(<span class="keyword">const</span> <a class="code" href="a00444.html">iterator2</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00847"></a>00847 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00848"></a>00848 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00444.html#af1a58d6383888378567927fba0dd5be4">it1_</a> == it.<a class="code" href="a00444.html#af1a58d6383888378567927fba0dd5be4">it1_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00849"></a>00849 <span class="keywordflow">return</span> <a class="code" href="a00444.html#a0250ea800446bf47a430636ea85de43d">it2_</a> < it.<a class="code" href="a00444.html#a0250ea800446bf47a430636ea85de43d">it2_</a>;
|
|
<a name="l00850"></a>00850 }
|
|
<a name="l00851"></a>00851
|
|
<a name="l00852"></a>00852 <span class="keyword">private</span>:
|
|
<a name="l00853"></a><a class="code" href="a00444.html#af1a58d6383888378567927fba0dd5be4">00853</a> <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> <a class="code" href="a00444.html#af1a58d6383888378567927fba0dd5be4">it1_</a>;
|
|
<a name="l00854"></a><a class="code" href="a00444.html#a0250ea800446bf47a430636ea85de43d">00854</a> <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> <a class="code" href="a00444.html#a0250ea800446bf47a430636ea85de43d">it2_</a>;
|
|
<a name="l00855"></a>00855
|
|
<a name="l00856"></a><a class="code" href="a00444.html#aac78e9ee2b65e927cfcd66579833084f">00856</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="a00442.html">const_iterator2</a>;
|
|
<a name="l00857"></a>00857 };
|
|
<a name="l00858"></a>00858 <span class="preprocessor">#endif</span>
|
|
<a name="l00859"></a>00859 <span class="preprocessor"></span>
|
|
<a name="l00860"></a>00860 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00861"></a><a class="code" href="a00440.html#ac39cb6e0d75cdf675ee8d105bf79867a">00861</a> <a class="code" href="a00444.html">iterator2</a> <a class="code" href="a00440.html#ac39cb6e0d75cdf675ee8d105bf79867a">begin2</a> () {
|
|
<a name="l00862"></a>00862 <span class="keywordflow">return</span> <a class="code" href="a00440.html#a8aad0a132f2a32f032fd0de90e709c1c">find2</a> (0, 0, 0);
|
|
<a name="l00863"></a>00863 }
|
|
<a name="l00864"></a>00864 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00865"></a><a class="code" href="a00440.html#a3b3b8b632fa745c58667acadbd5186de">00865</a> <a class="code" href="a00444.html">iterator2</a> <a class="code" href="a00440.html#a3b3b8b632fa745c58667acadbd5186de">end2</a> () {
|
|
<a name="l00866"></a>00866 <span class="keywordflow">return</span> <a class="code" href="a00440.html#a8aad0a132f2a32f032fd0de90e709c1c">find2</a> (0, 0, <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a>);
|
|
<a name="l00867"></a>00867 }
|
|
<a name="l00868"></a>00868
|
|
<a name="l00869"></a>00869 <span class="comment">// Reverse iterators</span>
|
|
<a name="l00870"></a>00870
|
|
<a name="l00871"></a>00871 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00872"></a><a class="code" href="a00440.html#a60f0594171602fd039f4025a6586346e">00872</a> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">const_reverse_iterator1</a> <a class="code" href="a00440.html#a60f0594171602fd039f4025a6586346e">rbegin1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00873"></a>00873 <span class="keywordflow">return</span> <a class="code" href="a00440.html#aa557ed661cfad0943eb39de1143843a7">const_reverse_iterator1</a> (<a class="code" href="a00440.html#abd088da9856a6cb1c8b6c93a286c862f">end1</a> ());
|
|
<a name="l00874"></a>00874 }
|
|
<a name="l00875"></a>00875 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00876"></a><a class="code" href="a00440.html#afd18ed0a5668a91c14d9f030dd6c90f9">00876</a> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">const_reverse_iterator1</a> <a class="code" href="a00440.html#afd18ed0a5668a91c14d9f030dd6c90f9">rend1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00877"></a>00877 <span class="keywordflow">return</span> <a class="code" href="a00440.html#aa557ed661cfad0943eb39de1143843a7">const_reverse_iterator1</a> (<a class="code" href="a00440.html#adb5c72c83b51795d3ca6cad9793a25a3">begin1</a> ());
|
|
<a name="l00878"></a>00878 }
|
|
<a name="l00879"></a>00879
|
|
<a name="l00880"></a>00880 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00881"></a><a class="code" href="a00440.html#ac93caec19ae70319379177d18599da79">00881</a> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator1</a> <a class="code" href="a00440.html#ac93caec19ae70319379177d18599da79">rbegin1</a> () {
|
|
<a name="l00882"></a>00882 <span class="keywordflow">return</span> <a class="code" href="a00440.html#a86414b413fec33b5a6b1a596c6fc36d4">reverse_iterator1</a> (<a class="code" href="a00440.html#abd088da9856a6cb1c8b6c93a286c862f">end1</a> ());
|
|
<a name="l00883"></a>00883 }
|
|
<a name="l00884"></a>00884 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00885"></a><a class="code" href="a00440.html#ad2db2f3e6970f0aec725da22d26e7253">00885</a> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator1</a> <a class="code" href="a00440.html#ad2db2f3e6970f0aec725da22d26e7253">rend1</a> () {
|
|
<a name="l00886"></a>00886 <span class="keywordflow">return</span> <a class="code" href="a00440.html#a86414b413fec33b5a6b1a596c6fc36d4">reverse_iterator1</a> (<a class="code" href="a00440.html#adb5c72c83b51795d3ca6cad9793a25a3">begin1</a> ());
|
|
<a name="l00887"></a>00887 }
|
|
<a name="l00888"></a>00888
|
|
<a name="l00889"></a>00889 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00890"></a><a class="code" href="a00440.html#a27446811b05f43e534a06f8b88c06a49">00890</a> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">const_reverse_iterator2</a> <a class="code" href="a00440.html#a27446811b05f43e534a06f8b88c06a49">rbegin2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00891"></a>00891 <span class="keywordflow">return</span> <a class="code" href="a00440.html#a5648cd295d735b5ab22d2ae2e312798c">const_reverse_iterator2</a> (<a class="code" href="a00440.html#ae71f1b0498b7737c646c51ee8f414414">end2</a> ());
|
|
<a name="l00892"></a>00892 }
|
|
<a name="l00893"></a>00893 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00894"></a><a class="code" href="a00440.html#a025befcb8c9e44eed2bdaecc1ed153ef">00894</a> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">const_reverse_iterator2</a> <a class="code" href="a00440.html#a025befcb8c9e44eed2bdaecc1ed153ef">rend2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00895"></a>00895 <span class="keywordflow">return</span> <a class="code" href="a00440.html#a5648cd295d735b5ab22d2ae2e312798c">const_reverse_iterator2</a> (<a class="code" href="a00440.html#a519d31dccedde434c1d09049a47f01a8">begin2</a> ());
|
|
<a name="l00896"></a>00896 }
|
|
<a name="l00897"></a>00897
|
|
<a name="l00898"></a>00898 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00899"></a><a class="code" href="a00440.html#a9b5941b0abc8a15e9188cc5ea8357a6f">00899</a> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator2</a> <a class="code" href="a00440.html#a9b5941b0abc8a15e9188cc5ea8357a6f">rbegin2</a> () {
|
|
<a name="l00900"></a>00900 <span class="keywordflow">return</span> <a class="code" href="a00440.html#a83f8c931136f4f82b9d8dff6cfe67acd">reverse_iterator2</a> (<a class="code" href="a00440.html#ae71f1b0498b7737c646c51ee8f414414">end2</a> ());
|
|
<a name="l00901"></a>00901 }
|
|
<a name="l00902"></a>00902 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00903"></a><a class="code" href="a00440.html#afcfa048a5c6e52100b944ba7b15bcf70">00903</a> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator2</a> <a class="code" href="a00440.html#afcfa048a5c6e52100b944ba7b15bcf70">rend2</a> () {
|
|
<a name="l00904"></a>00904 <span class="keywordflow">return</span> <a class="code" href="a00440.html#a83f8c931136f4f82b9d8dff6cfe67acd">reverse_iterator2</a> (<a class="code" href="a00440.html#a519d31dccedde434c1d09049a47f01a8">begin2</a> ());
|
|
<a name="l00905"></a>00905 }
|
|
<a name="l00906"></a>00906
|
|
<a name="l00907"></a>00907 <span class="keyword">private</span>:
|
|
<a name="l00908"></a><a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">00908</a> <a class="code" href="a00440.html#aa8dde336db0e7c89dd6ec8227c60e274">size_type</a> <a class="code" href="a00440.html#a23ae9edfdcc4b5f4b6d3bfeb97390ee8">size_</a>;
|
|
<a name="l00909"></a><a class="code" href="a00440.html#aa4ac522e86d52e7ec0d9e84c57379700">00909</a> <a class="code" href="a00440.html#a06a2dbd6b557056cfca58a173dd2631c">array_type</a> <a class="code" href="a00440.html#aa4ac522e86d52e7ec0d9e84c57379700">data_</a>;
|
|
<a name="l00910"></a>00910 };
|
|
<a name="l00911"></a>00911
|
|
<a name="l00912"></a>00912
|
|
<a name="l00913"></a>00913 <span class="comment">// Symmetric matrix adaptor class</span>
|
|
<a name="l00914"></a>00914 <span class="keyword">template</span><<span class="keyword">class</span> M, <span class="keyword">class</span> TRI>
|
|
<a name="l00915"></a><a class="code" href="a00435.html">00915</a> <span class="keyword">class </span><a class="code" href="a00435.html">symmetric_adaptor</a>:
|
|
<a name="l00916"></a>00916 <span class="keyword">public</span> <a class="code" href="a00251.html" title="Base class for Matrix Expression models.">matrix_expression</a><symmetric_adaptor<M, TRI> > {
|
|
<a name="l00917"></a>00917
|
|
<a name="l00918"></a><a class="code" href="a00435.html#a1dafeca656ead0e57549937045c98c77">00918</a> <span class="keyword">typedef</span> <a class="code" href="a00435.html">symmetric_adaptor<M, TRI></a> <a class="code" href="a00435.html#a1dafeca656ead0e57549937045c98c77">self_type</a>;
|
|
<a name="l00919"></a>00919 <span class="keyword">public</span>:
|
|
<a name="l00920"></a>00920 <span class="preprocessor">#ifdef BOOST_UBLAS_ENABLE_PROXY_SHORTCUTS</span>
|
|
<a name="l00921"></a>00921 <span class="preprocessor"></span> <span class="keyword">using</span> <a class="code" href="a00251.html" title="Base class for Matrix Expression models.">matrix_expression<self_type>::operator </a>();
|
|
<a name="l00922"></a>00922 <span class="preprocessor">#endif</span>
|
|
<a name="l00923"></a><a class="code" href="a00435.html#aafeadc8391e8d17565aeddaf29a275ea">00923</a> <span class="preprocessor"></span> <span class="keyword">typedef</span> <span class="keyword">const</span> M <a class="code" href="a00435.html#aafeadc8391e8d17565aeddaf29a275ea">const_matrix_type</a>;
|
|
<a name="l00924"></a><a class="code" href="a00435.html#a21801f62072c2e03a4cbb29fea4121ca">00924</a> <span class="keyword">typedef</span> M <a class="code" href="a00435.html#a21801f62072c2e03a4cbb29fea4121ca">matrix_type</a>;
|
|
<a name="l00925"></a><a class="code" href="a00435.html#a935932a18ad45802873a7e946181d46c">00925</a> <span class="keyword">typedef</span> TRI <a class="code" href="a00435.html#a935932a18ad45802873a7e946181d46c">triangular_type</a>;
|
|
<a name="l00926"></a><a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">00926</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> M::size_type <a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">size_type</a>;
|
|
<a name="l00927"></a><a class="code" href="a00435.html#a2ffc5420c14bf3da507c851841ea9cd6">00927</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> M::difference_type <a class="code" href="a00435.html#a2ffc5420c14bf3da507c851841ea9cd6">difference_type</a>;
|
|
<a name="l00928"></a><a class="code" href="a00435.html#aa1b6571e37487f62f60c1782a7352284">00928</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> M::value_type <a class="code" href="a00435.html#aa1b6571e37487f62f60c1782a7352284">value_type</a>;
|
|
<a name="l00929"></a><a class="code" href="a00435.html#afd3842f3af2fb355880d23a82d5d21ec">00929</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> M::const_reference <a class="code" href="a00435.html#afd3842f3af2fb355880d23a82d5d21ec">const_reference</a>;
|
|
<a name="l00930"></a>00930 <span class="keyword">typedef</span> <span class="keyword">typename</span> boost::mpl::if_<boost::is_const<M>,
|
|
<a name="l00931"></a>00931 <span class="keyword">typename</span> <a class="code" href="a00435.html#afd3842f3af2fb355880d23a82d5d21ec">M::const_reference</a>,
|
|
<a name="l00932"></a><a class="code" href="a00435.html#aa7790f803996003fc073055f4b6366a6">00932</a> <span class="keyword">typename</span> M::reference>::type <a class="code" href="a00435.html#aa7790f803996003fc073055f4b6366a6">reference</a>;
|
|
<a name="l00933"></a>00933 <span class="keyword">typedef</span> <span class="keyword">typename</span> boost::mpl::if_<boost::is_const<M>,
|
|
<a name="l00934"></a>00934 <span class="keyword">typename</span> <a class="code" href="a00435.html#a2017c1dbaa81e6356bf463c957c29a0b">M::const_closure_type</a>,
|
|
<a name="l00935"></a><a class="code" href="a00435.html#a6cc781d5de635db5ab3c1f0339853feb">00935</a> <span class="keyword">typename</span> M::closure_type>::type <a class="code" href="a00435.html#a6cc781d5de635db5ab3c1f0339853feb">matrix_closure_type</a>;
|
|
<a name="l00936"></a><a class="code" href="a00435.html#a2017c1dbaa81e6356bf463c957c29a0b">00936</a> <span class="keyword">typedef</span> <span class="keyword">const</span> <a class="code" href="a00435.html">self_type</a> <a class="code" href="a00435.html#a2017c1dbaa81e6356bf463c957c29a0b">const_closure_type</a>;
|
|
<a name="l00937"></a><a class="code" href="a00435.html#a218ff3e24dddec926501d839efac57aa">00937</a> <span class="keyword">typedef</span> <a class="code" href="a00435.html">self_type</a> <a class="code" href="a00435.html#a218ff3e24dddec926501d839efac57aa">closure_type</a>;
|
|
<a name="l00938"></a>00938 <span class="comment">// Replaced by _temporary_traits to avoid type requirements on M</span>
|
|
<a name="l00939"></a>00939 <span class="comment">//typedef typename M::vector_temporary_type vector_temporary_type;</span>
|
|
<a name="l00940"></a>00940 <span class="comment">//typedef typename M::matrix_temporary_type matrix_temporary_type;</span>
|
|
<a name="l00941"></a>00941 <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00418.html">storage_restrict_traits</a><<span class="keyword">typename</span> <a class="code" href="a00435.html#a5b42726bc0cb11ef8a87033515185076">M::storage_category</a>,
|
|
<a name="l00942"></a><a class="code" href="a00435.html#a5b42726bc0cb11ef8a87033515185076">00942</a> <a class="code" href="a00360.html">packed_proxy_tag</a>><a class="code" href="a00435.html#a5b42726bc0cb11ef8a87033515185076">::storage_category</a> <a class="code" href="a00435.html#a5b42726bc0cb11ef8a87033515185076">storage_category</a>;
|
|
<a name="l00943"></a><a class="code" href="a00435.html#a67ae9c00b274eb4ea72496a2d255034c">00943</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> M::orientation_category <a class="code" href="a00435.html#a67ae9c00b274eb4ea72496a2d255034c">orientation_category</a>;
|
|
<a name="l00944"></a>00944
|
|
<a name="l00945"></a>00945 <span class="comment">// Construction and destruction</span>
|
|
<a name="l00946"></a>00946 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00947"></a><a class="code" href="a00435.html#a7c2cadac9b345d30f1f30919b15a59fd">00947</a> <a class="code" href="a00435.html#a7c2cadac9b345d30f1f30919b15a59fd">symmetric_adaptor</a> (<a class="code" href="a00435.html#a21801f62072c2e03a4cbb29fea4121ca">matrix_type</a> &<a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a>):
|
|
<a name="l00948"></a>00948 <a class="code" href="a00251.html" title="Base class for Matrix Expression models.">matrix_expression</a><<a class="code" href="a00435.html">self_type</a>> (),
|
|
<a name="l00949"></a>00949 <a class="code" href="a00435.html#aa5e845c9783dd4567c546a567a0ff117">data_</a> (data) {
|
|
<a name="l00950"></a>00950 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00435.html#aa5e845c9783dd4567c546a567a0ff117">data_</a>.size1 () == <a class="code" href="a00435.html#aa5e845c9783dd4567c546a567a0ff117">data_</a>.size2 (), <a class="code" href="a00016.html">bad_size</a> ());
|
|
<a name="l00951"></a>00951 }
|
|
<a name="l00952"></a>00952 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00953"></a><a class="code" href="a00435.html#a4b1ece867a06b0d0cb86985ee9c3b928">00953</a> <a class="code" href="a00435.html#a7c2cadac9b345d30f1f30919b15a59fd">symmetric_adaptor</a> (<span class="keyword">const</span> <a class="code" href="a00435.html">symmetric_adaptor</a> &m):
|
|
<a name="l00954"></a>00954 <a class="code" href="a00251.html" title="Base class for Matrix Expression models.">matrix_expression</a><<a class="code" href="a00435.html">self_type</a>> (),
|
|
<a name="l00955"></a>00955 <a class="code" href="a00435.html#aa5e845c9783dd4567c546a567a0ff117">data_</a> (m.<a class="code" href="a00435.html#aa5e845c9783dd4567c546a567a0ff117">data_</a>) {
|
|
<a name="l00956"></a>00956 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00435.html#aa5e845c9783dd4567c546a567a0ff117">data_</a>.size1 () == <a class="code" href="a00435.html#aa5e845c9783dd4567c546a567a0ff117">data_</a>.size2 (), <a class="code" href="a00016.html">bad_size</a> ());
|
|
<a name="l00957"></a>00957 }
|
|
<a name="l00958"></a>00958
|
|
<a name="l00959"></a>00959 <span class="comment">// Accessors</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="a00435.html#a2fd4afbc96a17017420b7e2709f4cc34">00961</a> <a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">size_type</a> <a class="code" href="a00435.html#a2fd4afbc96a17017420b7e2709f4cc34">size1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00962"></a>00962 <span class="keywordflow">return</span> <a class="code" href="a00435.html#aa5e845c9783dd4567c546a567a0ff117">data_</a>.size1 ();
|
|
<a name="l00963"></a>00963 }
|
|
<a name="l00964"></a>00964 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00965"></a><a class="code" href="a00435.html#ab743d73ee1fd931ddec630f40dd7df3f">00965</a> <a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">size_type</a> <a class="code" href="a00435.html#ab743d73ee1fd931ddec630f40dd7df3f">size2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00966"></a>00966 <span class="keywordflow">return</span> <a class="code" href="a00435.html#aa5e845c9783dd4567c546a567a0ff117">data_</a>.size2 ();
|
|
<a name="l00967"></a>00967 }
|
|
<a name="l00968"></a>00968
|
|
<a name="l00969"></a>00969 <span class="comment">// Storage accessors</span>
|
|
<a name="l00970"></a>00970 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00971"></a><a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">00971</a> <span class="keyword">const</span> <a class="code" href="a00435.html#a6cc781d5de635db5ab3c1f0339853feb">matrix_closure_type</a> &<a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00972"></a>00972 <span class="keywordflow">return</span> <a class="code" href="a00435.html#aa5e845c9783dd4567c546a567a0ff117">data_</a>;
|
|
<a name="l00973"></a>00973 }
|
|
<a name="l00974"></a>00974 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00975"></a><a class="code" href="a00435.html#aeefdccc4e70cd9177f3619fd37127eb3">00975</a> <a class="code" href="a00435.html#a6cc781d5de635db5ab3c1f0339853feb">matrix_closure_type</a> &<a class="code" href="a00435.html#aeefdccc4e70cd9177f3619fd37127eb3">data</a> () {
|
|
<a name="l00976"></a>00976 <span class="keywordflow">return</span> <a class="code" href="a00435.html#aa5e845c9783dd4567c546a567a0ff117">data_</a>;
|
|
<a name="l00977"></a>00977 }
|
|
<a name="l00978"></a>00978
|
|
<a name="l00979"></a>00979 <span class="comment">// Element access</span>
|
|
<a name="l00980"></a>00980 <span class="preprocessor">#ifndef BOOST_UBLAS_PROXY_CONST_MEMBER</span>
|
|
<a name="l00981"></a>00981 <span class="preprocessor"></span> <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00982"></a><a class="code" href="a00435.html#a4c87b49871b0b685632d8ad545ac177c">00982</a> <a class="code" href="a00435.html#afd3842f3af2fb355880d23a82d5d21ec">const_reference</a> <a class="code" href="a00251.html#a6dc287a9087643182442298441742bc0">operator () </a>(<a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">size_type</a> i, <a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">size_type</a> j)<span class="keyword"> const </span>{
|
|
<a name="l00983"></a>00983 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (i < <a class="code" href="a00435.html#a2fd4afbc96a17017420b7e2709f4cc34">size1</a> (), <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l00984"></a>00984 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (j < <a class="code" href="a00435.html#ab743d73ee1fd931ddec630f40dd7df3f">size2</a> (), <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l00985"></a>00985 <span class="keywordflow">if</span> (triangular_type::other (i, j))
|
|
<a name="l00986"></a>00986 <span class="keywordflow">return</span> <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> () (i, j);
|
|
<a name="l00987"></a>00987 <span class="keywordflow">else</span>
|
|
<a name="l00988"></a>00988 <span class="keywordflow">return</span> <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> () (j, i);
|
|
<a name="l00989"></a>00989 }
|
|
<a name="l00990"></a>00990 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00991"></a><a class="code" href="a00435.html#a891ab05f3d030953e766b150dda82f28">00991</a> <a class="code" href="a00435.html#aa7790f803996003fc073055f4b6366a6">reference</a> <a class="code" href="a00251.html#a6dc287a9087643182442298441742bc0">operator () </a>(<a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">size_type</a> i, <a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">size_type</a> j) {
|
|
<a name="l00992"></a>00992 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (i < <a class="code" href="a00435.html#a2fd4afbc96a17017420b7e2709f4cc34">size1</a> (), <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l00993"></a>00993 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (j < <a class="code" href="a00435.html#ab743d73ee1fd931ddec630f40dd7df3f">size2</a> (), <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l00994"></a>00994 <span class="keywordflow">if</span> (triangular_type::other (i, j))
|
|
<a name="l00995"></a>00995 <span class="keywordflow">return</span> <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> () (i, j);
|
|
<a name="l00996"></a>00996 <span class="keywordflow">else</span>
|
|
<a name="l00997"></a>00997 <span class="keywordflow">return</span> <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> () (j, i);
|
|
<a name="l00998"></a>00998 }
|
|
<a name="l00999"></a>00999 <span class="preprocessor">#else</span>
|
|
<a name="l01000"></a>01000 <span class="preprocessor"></span> <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01001"></a>01001 <a class="code" href="a00435.html#aa7790f803996003fc073055f4b6366a6">reference</a> <a class="code" href="a00251.html#a6dc287a9087643182442298441742bc0">operator () </a>(<a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">size_type</a> i, <a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">size_type</a> j)<span class="keyword"> const </span>{
|
|
<a name="l01002"></a>01002 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (i < <a class="code" href="a00435.html#a2fd4afbc96a17017420b7e2709f4cc34">size1</a> (), <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l01003"></a>01003 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (j < <a class="code" href="a00435.html#ab743d73ee1fd931ddec630f40dd7df3f">size2</a> (), <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l01004"></a>01004 <span class="keywordflow">if</span> (triangular_type::other (i, j))
|
|
<a name="l01005"></a>01005 <span class="keywordflow">return</span> <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> () (i, j);
|
|
<a name="l01006"></a>01006 <span class="keywordflow">else</span>
|
|
<a name="l01007"></a>01007 <span class="keywordflow">return</span> <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> () (j, i);
|
|
<a name="l01008"></a>01008 }
|
|
<a name="l01009"></a>01009 <span class="preprocessor">#endif</span>
|
|
<a name="l01010"></a>01010 <span class="preprocessor"></span>
|
|
<a name="l01011"></a>01011 <span class="comment">// Assignment</span>
|
|
<a name="l01012"></a>01012 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01013"></a><a class="code" href="a00435.html#a71d93b397f62710502885bde3adf98ce">01013</a> <a class="code" href="a00435.html">symmetric_adaptor</a> &<a class="code" href="a00435.html#a71d93b397f62710502885bde3adf98ce">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00435.html">symmetric_adaptor</a> &m) {
|
|
<a name="l01014"></a>01014 matrix_assign<scalar_assign, triangular_type> (*<span class="keyword">this</span>, m);
|
|
<a name="l01015"></a>01015 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01016"></a>01016 }
|
|
<a name="l01017"></a>01017 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01018"></a><a class="code" href="a00435.html#ab37b539c265ce1edc0c8dd149f9e6484">01018</a> <a class="code" href="a00435.html">symmetric_adaptor</a> &<a class="code" href="a00435.html#ab37b539c265ce1edc0c8dd149f9e6484">assign_temporary</a> (<a class="code" href="a00435.html">symmetric_adaptor</a> &m) {
|
|
<a name="l01019"></a>01019 *<span class="keyword">this</span> = m;
|
|
<a name="l01020"></a>01020 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01021"></a>01021 }
|
|
<a name="l01022"></a>01022 <span class="keyword">template</span><<span class="keyword">class</span> AE>
|
|
<a name="l01023"></a>01023 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01024"></a><a class="code" href="a00435.html#ae3c8605e4ad5f6994d85ab2e43b956b1">01024</a> <a class="code" href="a00435.html">symmetric_adaptor</a> &<a class="code" href="a00435.html#a71d93b397f62710502885bde3adf98ce">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00251.html" title="Base class for Matrix Expression models.">matrix_expression<AE></a> &ae) {
|
|
<a name="l01025"></a>01025 matrix_assign<scalar_assign, triangular_type> (*<span class="keyword">this</span>, <a class="code" href="a00218.html" title="A dense matrix of values of type T.">matrix<value_type></a> (ae));
|
|
<a name="l01026"></a>01026 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01027"></a>01027 }
|
|
<a name="l01028"></a>01028 <span class="keyword">template</span><<span class="keyword">class</span> AE>
|
|
<a name="l01029"></a>01029 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01030"></a><a class="code" href="a00435.html#aadfb6b9a96b244e200361100a475ef40">01030</a> <a class="code" href="a00435.html">symmetric_adaptor</a> &<a class="code" href="a00435.html#aadfb6b9a96b244e200361100a475ef40">assign</a> (<span class="keyword">const</span> <a class="code" href="a00251.html" title="Base class for Matrix Expression models.">matrix_expression<AE></a> &ae) {
|
|
<a name="l01031"></a>01031 matrix_assign<scalar_assign, triangular_type> (*<span class="keyword">this</span>, ae);
|
|
<a name="l01032"></a>01032 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01033"></a>01033 }
|
|
<a name="l01034"></a>01034 <span class="keyword">template</span><<span class="keyword">class</span> AE>
|
|
<a name="l01035"></a>01035 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01036"></a><a class="code" href="a00435.html#af1e9650e9d1cb4a6037531504b0887f7">01036</a> <a class="code" href="a00435.html">symmetric_adaptor</a>& <a class="code" href="a00435.html#af1e9650e9d1cb4a6037531504b0887f7">operator += </a>(<span class="keyword">const</span> <a class="code" href="a00251.html" title="Base class for Matrix Expression models.">matrix_expression<AE></a> &ae) {
|
|
<a name="l01037"></a>01037 matrix_assign<scalar_assign, triangular_type> (*<span class="keyword">this</span>, <a class="code" href="a00218.html" title="A dense matrix of values of type T.">matrix<value_type></a> (*<span class="keyword">this</span> + ae));
|
|
<a name="l01038"></a>01038 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01039"></a>01039 }
|
|
<a name="l01040"></a>01040 <span class="keyword">template</span><<span class="keyword">class</span> AE>
|
|
<a name="l01041"></a>01041 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01042"></a><a class="code" href="a00435.html#a0e471732aa907203c6b322cec46db5d6">01042</a> <a class="code" href="a00435.html">symmetric_adaptor</a> &<a class="code" href="a00435.html#a0e471732aa907203c6b322cec46db5d6">plus_assign</a> (<span class="keyword">const</span> <a class="code" href="a00251.html" title="Base class for Matrix Expression models.">matrix_expression<AE></a> &ae) {
|
|
<a name="l01043"></a>01043 matrix_assign<scalar_plus_assign, triangular_type> (*<span class="keyword">this</span>, ae);
|
|
<a name="l01044"></a>01044 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01045"></a>01045 }
|
|
<a name="l01046"></a>01046 <span class="keyword">template</span><<span class="keyword">class</span> AE>
|
|
<a name="l01047"></a>01047 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01048"></a><a class="code" href="a00435.html#aed59a2e927ffe1c0df814ac3dc09e224">01048</a> <a class="code" href="a00435.html">symmetric_adaptor</a>& <a class="code" href="a00435.html#aed59a2e927ffe1c0df814ac3dc09e224">operator -= </a>(<span class="keyword">const</span> <a class="code" href="a00251.html" title="Base class for Matrix Expression models.">matrix_expression<AE></a> &ae) {
|
|
<a name="l01049"></a>01049 matrix_assign<scalar_assign, triangular_type> (*<span class="keyword">this</span>, <a class="code" href="a00218.html" title="A dense matrix of values of type T.">matrix<value_type></a> (*<span class="keyword">this</span> - ae));
|
|
<a name="l01050"></a>01050 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01051"></a>01051 }
|
|
<a name="l01052"></a>01052 <span class="keyword">template</span><<span class="keyword">class</span> AE>
|
|
<a name="l01053"></a>01053 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01054"></a><a class="code" href="a00435.html#a3c539abd842188dff8df6a41429403cc">01054</a> <a class="code" href="a00435.html">symmetric_adaptor</a> &<a class="code" href="a00435.html#a3c539abd842188dff8df6a41429403cc">minus_assign</a> (<span class="keyword">const</span> <a class="code" href="a00251.html" title="Base class for Matrix Expression models.">matrix_expression<AE></a> &ae) {
|
|
<a name="l01055"></a>01055 matrix_assign<scalar_minus_assign, triangular_type> (*<span class="keyword">this</span>, ae);
|
|
<a name="l01056"></a>01056 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01057"></a>01057 }
|
|
<a name="l01058"></a>01058 <span class="keyword">template</span><<span class="keyword">class</span> AT>
|
|
<a name="l01059"></a>01059 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01060"></a><a class="code" href="a00435.html#ae2a8e8a8bf2a93420af5f5ac2ad750e0">01060</a> <a class="code" href="a00435.html">symmetric_adaptor</a>& <a class="code" href="a00435.html#ae2a8e8a8bf2a93420af5f5ac2ad750e0">operator *= </a>(<span class="keyword">const</span> AT &at) {
|
|
<a name="l01061"></a>01061 matrix_assign_scalar<scalar_multiplies_assign> (*<span class="keyword">this</span>, at);
|
|
<a name="l01062"></a>01062 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01063"></a>01063 }
|
|
<a name="l01064"></a>01064 <span class="keyword">template</span><<span class="keyword">class</span> AT>
|
|
<a name="l01065"></a>01065 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01066"></a><a class="code" href="a00435.html#ae219e04e6a872efa3e3843f30cd37541">01066</a> <a class="code" href="a00435.html">symmetric_adaptor</a>& <a class="code" href="a00435.html#ae219e04e6a872efa3e3843f30cd37541">operator /= </a>(<span class="keyword">const</span> AT &at) {
|
|
<a name="l01067"></a>01067 matrix_assign_scalar<scalar_divides_assign> (*<span class="keyword">this</span>, at);
|
|
<a name="l01068"></a>01068 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01069"></a>01069 }
|
|
<a name="l01070"></a>01070
|
|
<a name="l01071"></a>01071 <span class="comment">// Closure comparison</span>
|
|
<a name="l01072"></a>01072 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01073"></a><a class="code" href="a00435.html#aa9a91a8373ac36443493811f51794c25">01073</a> <span class="keywordtype">bool</span> <a class="code" href="a00435.html#aa9a91a8373ac36443493811f51794c25">same_closure</a> (<span class="keyword">const</span> <a class="code" href="a00435.html">symmetric_adaptor</a> &sa)<span class="keyword"> const </span>{
|
|
<a name="l01074"></a>01074 <span class="keywordflow">return</span> (*this).data ().same_closure (sa.<a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ());
|
|
<a name="l01075"></a>01075 }
|
|
<a name="l01076"></a>01076
|
|
<a name="l01077"></a>01077 <span class="comment">// Swapping</span>
|
|
<a name="l01078"></a>01078 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01079"></a><a class="code" href="a00435.html#ac35104516f7c15543f38ddf9d96b5961">01079</a> <span class="keywordtype">void</span> <a class="code" href="a00435.html#ac35104516f7c15543f38ddf9d96b5961">swap</a> (<a class="code" href="a00435.html">symmetric_adaptor</a> &m) {
|
|
<a name="l01080"></a>01080 <span class="keywordflow">if</span> (<span class="keyword">this</span> != &m)
|
|
<a name="l01081"></a>01081 matrix_swap<scalar_swap, triangular_type> (*<span class="keyword">this</span>, m);
|
|
<a name="l01082"></a>01082 }
|
|
<a name="l01083"></a>01083 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01084"></a><a class="code" href="a00435.html#ae82980b6a2b534a6c763c5ca701e6381">01084</a> <span class="keyword">friend</span> <span class="keywordtype">void</span> <a class="code" href="a00435.html#ae82980b6a2b534a6c763c5ca701e6381">swap</a> (<a class="code" href="a00435.html">symmetric_adaptor</a> &m1, <a class="code" href="a00435.html">symmetric_adaptor</a> &m2) {
|
|
<a name="l01085"></a>01085 m1.<a class="code" href="a00435.html#ac35104516f7c15543f38ddf9d96b5961">swap</a> (m2);
|
|
<a name="l01086"></a>01086 }
|
|
<a name="l01087"></a>01087
|
|
<a name="l01088"></a>01088 <span class="comment">// Iterator types</span>
|
|
<a name="l01089"></a>01089 <span class="keyword">private</span>:
|
|
<a name="l01090"></a>01090 <span class="comment">// Use matrix iterator</span>
|
|
<a name="l01091"></a><a class="code" href="a00435.html#a699f4df5cdc0641428fa720dbf1a6be0">01091</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> M::const_iterator1 <a class="code" href="a00435.html#a699f4df5cdc0641428fa720dbf1a6be0">const_subiterator1_type</a>;
|
|
<a name="l01092"></a>01092 <span class="keyword">typedef</span> <span class="keyword">typename</span> boost::mpl::if_<boost::is_const<M>,
|
|
<a name="l01093"></a>01093 <span class="keyword">typename</span> M::const_iterator1,
|
|
<a name="l01094"></a><a class="code" href="a00435.html#a798799541d6db722d213197de55ffbd5">01094</a> <span class="keyword">typename</span> M::iterator1>::type <a class="code" href="a00435.html#a798799541d6db722d213197de55ffbd5">subiterator1_type</a>;
|
|
<a name="l01095"></a><a class="code" href="a00435.html#a2b661a47b7a4603ee5cb550eb8c82ee4">01095</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> M::const_iterator2 <a class="code" href="a00435.html#a2b661a47b7a4603ee5cb550eb8c82ee4">const_subiterator2_type</a>;
|
|
<a name="l01096"></a>01096 <span class="keyword">typedef</span> <span class="keyword">typename</span> boost::mpl::if_<boost::is_const<M>,
|
|
<a name="l01097"></a>01097 <span class="keyword">typename</span> M::const_iterator2,
|
|
<a name="l01098"></a><a class="code" href="a00435.html#aecb5701710a03332204f60a0b0ca3476">01098</a> <span class="keyword">typename</span> M::iterator2>::type <a class="code" href="a00435.html#aecb5701710a03332204f60a0b0ca3476">subiterator2_type</a>;
|
|
<a name="l01099"></a>01099
|
|
<a name="l01100"></a>01100 <span class="keyword">public</span>:
|
|
<a name="l01101"></a>01101 <span class="preprocessor">#ifdef BOOST_UBLAS_USE_INDEXED_ITERATOR</span>
|
|
<a name="l01102"></a>01102 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00169.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_iterator1<self_type, packed_random_access_iterator_tag></a> <a class="code" href="a00438.html">iterator1</a>;
|
|
<a name="l01103"></a>01103 <span class="keyword">typedef</span> <a class="code" href="a00170.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_iterator2<self_type, packed_random_access_iterator_tag></a> <a class="code" href="a00439.html">iterator2</a>;
|
|
<a name="l01104"></a>01104 <span class="keyword">typedef</span> <a class="code" href="a00166.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_const_iterator1<self_type, dense_random_access_iterator_tag></a> <a class="code" href="a00436.html">const_iterator1</a>;
|
|
<a name="l01105"></a>01105 <span class="keyword">typedef</span> <a class="code" href="a00167.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_const_iterator2<self_type, dense_random_access_iterator_tag></a> <a class="code" href="a00437.html">const_iterator2</a>;
|
|
<a name="l01106"></a>01106 <span class="preprocessor">#else</span>
|
|
<a name="l01107"></a>01107 <span class="preprocessor"></span> <span class="keyword">class </span><a class="code" href="a00436.html">const_iterator1</a>;
|
|
<a name="l01108"></a>01108 <span class="keyword">class </span><a class="code" href="a00438.html">iterator1</a>;
|
|
<a name="l01109"></a>01109 <span class="keyword">class </span><a class="code" href="a00437.html">const_iterator2</a>;
|
|
<a name="l01110"></a><a class="code" href="a00435.html#aaaa0afc55766a5a0a72609109c645bc7">01110</a> <span class="keyword">class </span><a class="code" href="a00439.html">iterator2</a>;
|
|
<a name="l01111"></a>01111 <span class="preprocessor">#endif</span>
|
|
<a name="l01112"></a>01112 <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base1<const_iterator1></a> <a class="code" href="a00435.html#aaaa0afc55766a5a0a72609109c645bc7">const_reverse_iterator1</a>;
|
|
<a name="l01113"></a><a class="code" href="a00435.html#a594e5141d89413d8a52be64e02944108">01113</a> <span class="keyword">typedef</span> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base1<iterator1></a> <a class="code" href="a00435.html#a594e5141d89413d8a52be64e02944108">reverse_iterator1</a>;
|
|
<a name="l01114"></a><a class="code" href="a00435.html#acffe763cd0ff171557f8721ecac84ec4">01114</a> <span class="keyword">typedef</span> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base2<const_iterator2></a> <a class="code" href="a00435.html#acffe763cd0ff171557f8721ecac84ec4">const_reverse_iterator2</a>;
|
|
<a name="l01115"></a><a class="code" href="a00435.html#a60d8037595b1d75966dc6b2256bb1ea0">01115</a> <span class="keyword">typedef</span> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base2<iterator2></a> <a class="code" href="a00435.html#a60d8037595b1d75966dc6b2256bb1ea0">reverse_iterator2</a>;
|
|
<a name="l01116"></a>01116
|
|
<a name="l01117"></a>01117 <span class="comment">// Element lookup</span>
|
|
<a name="l01118"></a>01118 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01119"></a><a class="code" href="a00435.html#a6732fbdb05b122ae599e6e634bbc4b20">01119</a> <a class="code" href="a00436.html">const_iterator1</a> <a class="code" href="a00435.html#a6732fbdb05b122ae599e6e634bbc4b20">find1</a> (<span class="keywordtype">int</span> rank, <a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">size_type</a> i, <a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">size_type</a> j)<span class="keyword"> const </span>{
|
|
<a name="l01120"></a>01120 <span class="keywordflow">if</span> (triangular_type::other (i, j)) {
|
|
<a name="l01121"></a>01121 <span class="keywordflow">if</span> (triangular_type::other (<a class="code" href="a00435.html#a2fd4afbc96a17017420b7e2709f4cc34">size1</a> (), j)) {
|
|
<a name="l01122"></a>01122 <span class="keywordflow">return</span> <a class="code" href="a00436.html">const_iterator1</a> (*<span class="keyword">this</span>, 0, 0,
|
|
<a name="l01123"></a>01123 <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a6732fbdb05b122ae599e6e634bbc4b20">find1</a> (rank, i, j), <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a6732fbdb05b122ae599e6e634bbc4b20">find1</a> (rank, <a class="code" href="a00435.html#a2fd4afbc96a17017420b7e2709f4cc34">size1</a> (), j),
|
|
<a name="l01124"></a>01124 <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a07ace6d3a79f10a72a95f1eb79e24b7f">find2</a> (rank, <a class="code" href="a00435.html#ab743d73ee1fd931ddec630f40dd7df3f">size2</a> (), <a class="code" href="a00435.html#a2fd4afbc96a17017420b7e2709f4cc34">size1</a> ()), <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a07ace6d3a79f10a72a95f1eb79e24b7f">find2</a> (rank, <a class="code" href="a00435.html#ab743d73ee1fd931ddec630f40dd7df3f">size2</a> (), <a class="code" href="a00435.html#a2fd4afbc96a17017420b7e2709f4cc34">size1</a> ()));
|
|
<a name="l01125"></a>01125 } <span class="keywordflow">else</span> {
|
|
<a name="l01126"></a>01126 <span class="keywordflow">return</span> <a class="code" href="a00436.html">const_iterator1</a> (*<span class="keyword">this</span>, 0, 1,
|
|
<a name="l01127"></a>01127 <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a6732fbdb05b122ae599e6e634bbc4b20">find1</a> (rank, i, j), <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a6732fbdb05b122ae599e6e634bbc4b20">find1</a> (rank, j, j),
|
|
<a name="l01128"></a>01128 <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a07ace6d3a79f10a72a95f1eb79e24b7f">find2</a> (rank, j, j), <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a07ace6d3a79f10a72a95f1eb79e24b7f">find2</a> (rank, j, <a class="code" href="a00435.html#a2fd4afbc96a17017420b7e2709f4cc34">size1</a> ()));
|
|
<a name="l01129"></a>01129 }
|
|
<a name="l01130"></a>01130 } <span class="keywordflow">else</span> {
|
|
<a name="l01131"></a>01131 <span class="keywordflow">if</span> (triangular_type::other (<a class="code" href="a00435.html#a2fd4afbc96a17017420b7e2709f4cc34">size1</a> (), j)) {
|
|
<a name="l01132"></a>01132 <span class="keywordflow">return</span> <a class="code" href="a00436.html">const_iterator1</a> (*<span class="keyword">this</span>, 1, 0,
|
|
<a name="l01133"></a>01133 <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a6732fbdb05b122ae599e6e634bbc4b20">find1</a> (rank, j, j), <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a6732fbdb05b122ae599e6e634bbc4b20">find1</a> (rank, <a class="code" href="a00435.html#a2fd4afbc96a17017420b7e2709f4cc34">size1</a> (), j),
|
|
<a name="l01134"></a>01134 <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a07ace6d3a79f10a72a95f1eb79e24b7f">find2</a> (rank, j, i), <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a07ace6d3a79f10a72a95f1eb79e24b7f">find2</a> (rank, j, j));
|
|
<a name="l01135"></a>01135 } <span class="keywordflow">else</span> {
|
|
<a name="l01136"></a>01136 <span class="keywordflow">return</span> <a class="code" href="a00436.html">const_iterator1</a> (*<span class="keyword">this</span>, 1, 1,
|
|
<a name="l01137"></a>01137 <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a6732fbdb05b122ae599e6e634bbc4b20">find1</a> (rank, <a class="code" href="a00435.html#a2fd4afbc96a17017420b7e2709f4cc34">size1</a> (), <a class="code" href="a00435.html#ab743d73ee1fd931ddec630f40dd7df3f">size2</a> ()), <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a6732fbdb05b122ae599e6e634bbc4b20">find1</a> (rank, <a class="code" href="a00435.html#a2fd4afbc96a17017420b7e2709f4cc34">size1</a> (), <a class="code" href="a00435.html#ab743d73ee1fd931ddec630f40dd7df3f">size2</a> ()),
|
|
<a name="l01138"></a>01138 <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a07ace6d3a79f10a72a95f1eb79e24b7f">find2</a> (rank, j, i), <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a07ace6d3a79f10a72a95f1eb79e24b7f">find2</a> (rank, j, <a class="code" href="a00435.html#a2fd4afbc96a17017420b7e2709f4cc34">size1</a> ()));
|
|
<a name="l01139"></a>01139 }
|
|
<a name="l01140"></a>01140 }
|
|
<a name="l01141"></a>01141 }
|
|
<a name="l01142"></a>01142 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01143"></a><a class="code" href="a00435.html#ac837195def117cbb01b1520e76f29d1c">01143</a> <a class="code" href="a00438.html">iterator1</a> <a class="code" href="a00435.html#ac837195def117cbb01b1520e76f29d1c">find1</a> (<span class="keywordtype">int</span> rank, <a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">size_type</a> i, <a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">size_type</a> j) {
|
|
<a name="l01144"></a>01144 <span class="keywordflow">if</span> (rank == 1)
|
|
<a name="l01145"></a>01145 i = triangular_type::mutable_restrict1 (i, j, <a class="code" href="a00435.html#a2fd4afbc96a17017420b7e2709f4cc34">size1</a>(), <a class="code" href="a00435.html#ab743d73ee1fd931ddec630f40dd7df3f">size2</a>());
|
|
<a name="l01146"></a>01146 <span class="keywordflow">return</span> <a class="code" href="a00438.html">iterator1</a> (*<span class="keyword">this</span>, <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a6732fbdb05b122ae599e6e634bbc4b20">find1</a> (rank, i, j));
|
|
<a name="l01147"></a>01147 }
|
|
<a name="l01148"></a>01148 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01149"></a><a class="code" href="a00435.html#a07ace6d3a79f10a72a95f1eb79e24b7f">01149</a> <a class="code" href="a00437.html">const_iterator2</a> <a class="code" href="a00435.html#a07ace6d3a79f10a72a95f1eb79e24b7f">find2</a> (<span class="keywordtype">int</span> rank, <a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">size_type</a> i, <a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">size_type</a> j)<span class="keyword"> const </span>{
|
|
<a name="l01150"></a>01150 <span class="keywordflow">if</span> (triangular_type::other (i, j)) {
|
|
<a name="l01151"></a>01151 <span class="keywordflow">if</span> (triangular_type::other (i, <a class="code" href="a00435.html#ab743d73ee1fd931ddec630f40dd7df3f">size2</a> ())) {
|
|
<a name="l01152"></a>01152 <span class="keywordflow">return</span> <a class="code" href="a00437.html">const_iterator2</a> (*<span class="keyword">this</span>, 1, 1,
|
|
<a name="l01153"></a>01153 <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a6732fbdb05b122ae599e6e634bbc4b20">find1</a> (rank, <a class="code" href="a00435.html#ab743d73ee1fd931ddec630f40dd7df3f">size2</a> (), <a class="code" href="a00435.html#a2fd4afbc96a17017420b7e2709f4cc34">size1</a> ()), <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a6732fbdb05b122ae599e6e634bbc4b20">find1</a> (rank, <a class="code" href="a00435.html#ab743d73ee1fd931ddec630f40dd7df3f">size2</a> (), <a class="code" href="a00435.html#a2fd4afbc96a17017420b7e2709f4cc34">size1</a> ()),
|
|
<a name="l01154"></a>01154 <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a07ace6d3a79f10a72a95f1eb79e24b7f">find2</a> (rank, i, j), <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a07ace6d3a79f10a72a95f1eb79e24b7f">find2</a> (rank, i, <a class="code" href="a00435.html#ab743d73ee1fd931ddec630f40dd7df3f">size2</a> ()));
|
|
<a name="l01155"></a>01155 } <span class="keywordflow">else</span> {
|
|
<a name="l01156"></a>01156 <span class="keywordflow">return</span> <a class="code" href="a00437.html">const_iterator2</a> (*<span class="keyword">this</span>, 1, 0,
|
|
<a name="l01157"></a>01157 <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a6732fbdb05b122ae599e6e634bbc4b20">find1</a> (rank, i, i), <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a6732fbdb05b122ae599e6e634bbc4b20">find1</a> (rank, <a class="code" href="a00435.html#ab743d73ee1fd931ddec630f40dd7df3f">size2</a> (), i),
|
|
<a name="l01158"></a>01158 <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a07ace6d3a79f10a72a95f1eb79e24b7f">find2</a> (rank, i, j), <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a07ace6d3a79f10a72a95f1eb79e24b7f">find2</a> (rank, i, i));
|
|
<a name="l01159"></a>01159 }
|
|
<a name="l01160"></a>01160 } <span class="keywordflow">else</span> {
|
|
<a name="l01161"></a>01161 <span class="keywordflow">if</span> (triangular_type::other (i, <a class="code" href="a00435.html#ab743d73ee1fd931ddec630f40dd7df3f">size2</a> ())) {
|
|
<a name="l01162"></a>01162 <span class="keywordflow">return</span> <a class="code" href="a00437.html">const_iterator2</a> (*<span class="keyword">this</span>, 0, 1,
|
|
<a name="l01163"></a>01163 <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a6732fbdb05b122ae599e6e634bbc4b20">find1</a> (rank, j, i), <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a6732fbdb05b122ae599e6e634bbc4b20">find1</a> (rank, i, i),
|
|
<a name="l01164"></a>01164 <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a07ace6d3a79f10a72a95f1eb79e24b7f">find2</a> (rank, i, i), <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a07ace6d3a79f10a72a95f1eb79e24b7f">find2</a> (rank, i, <a class="code" href="a00435.html#ab743d73ee1fd931ddec630f40dd7df3f">size2</a> ()));
|
|
<a name="l01165"></a>01165 } <span class="keywordflow">else</span> {
|
|
<a name="l01166"></a>01166 <span class="keywordflow">return</span> <a class="code" href="a00437.html">const_iterator2</a> (*<span class="keyword">this</span>, 0, 0,
|
|
<a name="l01167"></a>01167 <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a6732fbdb05b122ae599e6e634bbc4b20">find1</a> (rank, j, i), <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a6732fbdb05b122ae599e6e634bbc4b20">find1</a> (rank, <a class="code" href="a00435.html#ab743d73ee1fd931ddec630f40dd7df3f">size2</a> (), i),
|
|
<a name="l01168"></a>01168 <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a07ace6d3a79f10a72a95f1eb79e24b7f">find2</a> (rank, <a class="code" href="a00435.html#a2fd4afbc96a17017420b7e2709f4cc34">size1</a> (), <a class="code" href="a00435.html#ab743d73ee1fd931ddec630f40dd7df3f">size2</a> ()), <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a07ace6d3a79f10a72a95f1eb79e24b7f">find2</a> (rank, <a class="code" href="a00435.html#ab743d73ee1fd931ddec630f40dd7df3f">size2</a> (), <a class="code" href="a00435.html#ab743d73ee1fd931ddec630f40dd7df3f">size2</a> ()));
|
|
<a name="l01169"></a>01169 }
|
|
<a name="l01170"></a>01170 }
|
|
<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="a00435.html#a4f099c931f7bcd45ac6ed9dfb84bc7e6">01173</a> <a class="code" href="a00439.html">iterator2</a> <a class="code" href="a00435.html#a4f099c931f7bcd45ac6ed9dfb84bc7e6">find2</a> (<span class="keywordtype">int</span> rank, <a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">size_type</a> i, <a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">size_type</a> j) {
|
|
<a name="l01174"></a>01174 <span class="keywordflow">if</span> (rank == 1)
|
|
<a name="l01175"></a>01175 j = triangular_type::mutable_restrict2 (i, j, <a class="code" href="a00435.html#a2fd4afbc96a17017420b7e2709f4cc34">size1</a>(), <a class="code" href="a00435.html#ab743d73ee1fd931ddec630f40dd7df3f">size2</a>());
|
|
<a name="l01176"></a>01176 <span class="keywordflow">return</span> <a class="code" href="a00439.html">iterator2</a> (*<span class="keyword">this</span>, <a class="code" href="a00435.html#a1ded883f8dee29f0c34c3d4f3c427ea0">data</a> ().<a class="code" href="a00435.html#a07ace6d3a79f10a72a95f1eb79e24b7f">find2</a> (rank, i, j));
|
|
<a name="l01177"></a>01177 }
|
|
<a name="l01178"></a>01178
|
|
<a name="l01179"></a>01179 <span class="comment">// Iterators simply are indices.</span>
|
|
<a name="l01180"></a>01180
|
|
<a name="l01181"></a>01181 <span class="preprocessor">#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR</span>
|
|
<a name="l01182"></a><a class="code" href="a00436.html">01182</a> <span class="preprocessor"></span> <span class="keyword">class </span><a class="code" href="a00436.html">const_iterator1</a>:
|
|
<a name="l01183"></a>01183 <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><symmetric_adaptor>,
|
|
<a name="l01184"></a>01184 <span class="keyword">public</span> <a class="code" href="a00365.html" title="Base class of all random access iterators.">random_access_iterator_base</a><typename iterator_restrict_traits<
|
|
<a name="l01185"></a>01185 typename const_subiterator1_type::iterator_category, dense_random_access_iterator_tag>::iterator_category,
|
|
<a name="l01186"></a>01186 const_iterator1, value_type> {
|
|
<a name="l01187"></a>01187 <span class="keyword">public</span>:
|
|
<a name="l01188"></a><a class="code" href="a00436.html#a21884e974426e0f6be800ac2f3115080">01188</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> const_subiterator1_type::value_type <a class="code" href="a00436.html#a21884e974426e0f6be800ac2f3115080">value_type</a>;
|
|
<a name="l01189"></a><a class="code" href="a00436.html#a8e8a92574dda6db19fcffafc4ab913ae">01189</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> const_subiterator1_type::difference_type <a class="code" href="a00436.html#a8e8a92574dda6db19fcffafc4ab913ae">difference_type</a>;
|
|
<a name="l01190"></a><a class="code" href="a00436.html#aee80ccb5b468d76ed0b9ce0095334f84">01190</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> const_subiterator1_type::reference <a class="code" href="a00436.html#aee80ccb5b468d76ed0b9ce0095334f84">reference</a>;
|
|
<a name="l01191"></a><a class="code" href="a00436.html#a761921c8299ff3c7e008f98117661ae8">01191</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> const_subiterator1_type::pointer <a class="code" href="a00436.html#a761921c8299ff3c7e008f98117661ae8">pointer</a>;
|
|
<a name="l01192"></a>01192
|
|
<a name="l01193"></a><a class="code" href="a00436.html#ad31e1f3cf260919f3a6a1372b50fa208">01193</a> <span class="keyword">typedef</span> <a class="code" href="a00437.html">const_iterator2</a> <a class="code" href="a00436.html#ad31e1f3cf260919f3a6a1372b50fa208">dual_iterator_type</a>;
|
|
<a name="l01194"></a><a class="code" href="a00436.html#a3d5779a947f5ff2ecad1e1cec099727a">01194</a> <span class="keyword">typedef</span> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">const_reverse_iterator2</a> <a class="code" href="a00436.html#a3d5779a947f5ff2ecad1e1cec099727a">dual_reverse_iterator_type</a>;
|
|
<a name="l01195"></a>01195
|
|
<a name="l01196"></a>01196 <span class="comment">// Construction and destruction</span>
|
|
<a name="l01197"></a>01197 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01198"></a><a class="code" href="a00436.html#a7fc3a01401b0ee4e095dbedf0d051fe0">01198</a> <a class="code" href="a00436.html#a7fc3a01401b0ee4e095dbedf0d051fe0">const_iterator1</a> ():
|
|
<a name="l01199"></a>01199 <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><<a class="code" href="a00435.html">self_type</a>> (),
|
|
<a name="l01200"></a>01200 <a class="code" href="a00436.html#a21ced62acaafbfd57f03a47339ef810d">begin_</a> (-1), <a class="code" href="a00436.html#ada80c4de6cb525c91836a1e04a5e54f1">end_</a> (-1), <a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> (-1),
|
|
<a name="l01201"></a>01201 <a class="code" href="a00436.html#ad27b98c50b20b3e7958d18713d991e5e">it1_begin_</a> (), <a class="code" href="a00436.html#ac5a322d6c4947f49004182c834332105">it1_end_</a> (), <a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a> (),
|
|
<a name="l01202"></a>01202 <a class="code" href="a00436.html#a0dcd5639f0864bc3f7577f2bed8ae477">it2_begin_</a> (), <a class="code" href="a00436.html#a28b42199178bd827adc9adebff82475a">it2_end_</a> (), <a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a> () {}
|
|
<a name="l01203"></a>01203 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01204"></a><a class="code" href="a00436.html#a7b488743de3e7790eceaaab5c5daf665">01204</a> <a class="code" href="a00436.html#a7fc3a01401b0ee4e095dbedf0d051fe0">const_iterator1</a> (<span class="keyword">const</span> <a class="code" href="a00435.html">self_type</a> &m, <span class="keywordtype">int</span> <a class="code" href="a00436.html#a591d1e59c1812292f1c0717fb6f8cc6f">begin</a>, <span class="keywordtype">int</span> <a class="code" href="a00436.html#a75cf5bd956a49942ffa22de735afdba8">end</a>,
|
|
<a name="l01205"></a>01205 <span class="keyword">const</span> <a class="code" href="a00435.html#a699f4df5cdc0641428fa720dbf1a6be0">const_subiterator1_type</a> &it1_begin, <span class="keyword">const</span> <a class="code" href="a00435.html#a699f4df5cdc0641428fa720dbf1a6be0">const_subiterator1_type</a> &it1_end,
|
|
<a name="l01206"></a>01206 <span class="keyword">const</span> <a class="code" href="a00435.html#a2b661a47b7a4603ee5cb550eb8c82ee4">const_subiterator2_type</a> &it2_begin, <span class="keyword">const</span> <a class="code" href="a00435.html#a2b661a47b7a4603ee5cb550eb8c82ee4">const_subiterator2_type</a> &it2_end):
|
|
<a name="l01207"></a>01207 <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><<a class="code" href="a00435.html">self_type</a>> (m),
|
|
<a name="l01208"></a>01208 <a class="code" href="a00436.html#a21ced62acaafbfd57f03a47339ef810d">begin_</a> (begin), <a class="code" href="a00436.html#ada80c4de6cb525c91836a1e04a5e54f1">end_</a> (end), <a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> (begin),
|
|
<a name="l01209"></a>01209 <a class="code" href="a00436.html#ad27b98c50b20b3e7958d18713d991e5e">it1_begin_</a> (it1_begin), <a class="code" href="a00436.html#ac5a322d6c4947f49004182c834332105">it1_end_</a> (it1_end), <a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a> (<a class="code" href="a00436.html#ad27b98c50b20b3e7958d18713d991e5e">it1_begin_</a>),
|
|
<a name="l01210"></a>01210 <a class="code" href="a00436.html#a0dcd5639f0864bc3f7577f2bed8ae477">it2_begin_</a> (it2_begin), <a class="code" href="a00436.html#a28b42199178bd827adc9adebff82475a">it2_end_</a> (it2_end), <a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a> (<a class="code" href="a00436.html#a0dcd5639f0864bc3f7577f2bed8ae477">it2_begin_</a>) {
|
|
<a name="l01211"></a>01211 <span class="keywordflow">if</span> (<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 0 && <a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a> == <a class="code" href="a00436.html#ac5a322d6c4947f49004182c834332105">it1_end_</a>)
|
|
<a name="l01212"></a>01212 <a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> = 1;
|
|
<a name="l01213"></a>01213 <span class="keywordflow">if</span> (<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 1 && <a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a> == <a class="code" href="a00436.html#a28b42199178bd827adc9adebff82475a">it2_end_</a>)
|
|
<a name="l01214"></a>01214 <a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> = 0;
|
|
<a name="l01215"></a>01215 <span class="keywordflow">if</span> ((<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 0 && <a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a> == <a class="code" href="a00436.html#ac5a322d6c4947f49004182c834332105">it1_end_</a>) ||
|
|
<a name="l01216"></a>01216 (<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 1 && <a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a> == <a class="code" href="a00436.html#a28b42199178bd827adc9adebff82475a">it2_end_</a>))
|
|
<a name="l01217"></a>01217 <a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> = <a class="code" href="a00436.html#ada80c4de6cb525c91836a1e04a5e54f1">end_</a>;
|
|
<a name="l01218"></a>01218 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == <a class="code" href="a00436.html#ada80c4de6cb525c91836a1e04a5e54f1">end_</a> ||
|
|
<a name="l01219"></a>01219 (<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 0 && <a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a> != <a class="code" href="a00436.html#ac5a322d6c4947f49004182c834332105">it1_end_</a>) ||
|
|
<a name="l01220"></a>01220 (<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 1 && <a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a> != <a class="code" href="a00436.html#a28b42199178bd827adc9adebff82475a">it2_end_</a>), <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01221"></a>01221 }
|
|
<a name="l01222"></a>01222 <span class="comment">// FIXME cannot compile</span>
|
|
<a name="l01223"></a>01223 <span class="comment">// iterator1 does not have these members!</span>
|
|
<a name="l01224"></a>01224 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01225"></a><a class="code" href="a00436.html#a3a02184de19517cf45fd39ed4772c6e6">01225</a> <a class="code" href="a00436.html#a7fc3a01401b0ee4e095dbedf0d051fe0">const_iterator1</a> (<span class="keyword">const</span> <a class="code" href="a00438.html">iterator1</a> &it):
|
|
<a name="l01226"></a>01226 <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><<a class="code" href="a00435.html">self_type</a>> (it ()),
|
|
<a name="l01227"></a>01227 <a class="code" href="a00436.html#a21ced62acaafbfd57f03a47339ef810d">begin_</a> (it.<a class="code" href="a00436.html#a21ced62acaafbfd57f03a47339ef810d">begin_</a>), <a class="code" href="a00436.html#ada80c4de6cb525c91836a1e04a5e54f1">end_</a> (it.<a class="code" href="a00436.html#ada80c4de6cb525c91836a1e04a5e54f1">end_</a>), <a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> (it.<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a>),
|
|
<a name="l01228"></a>01228 <a class="code" href="a00436.html#ad27b98c50b20b3e7958d18713d991e5e">it1_begin_</a> (it.<a class="code" href="a00436.html#ad27b98c50b20b3e7958d18713d991e5e">it1_begin_</a>), <a class="code" href="a00436.html#ac5a322d6c4947f49004182c834332105">it1_end_</a> (it.<a class="code" href="a00436.html#ac5a322d6c4947f49004182c834332105">it1_end_</a>), <a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a> (it.<a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a>),
|
|
<a name="l01229"></a>01229 <a class="code" href="a00436.html#a0dcd5639f0864bc3f7577f2bed8ae477">it2_begin_</a> (it.<a class="code" href="a00436.html#a0dcd5639f0864bc3f7577f2bed8ae477">it2_begin_</a>), <a class="code" href="a00436.html#a28b42199178bd827adc9adebff82475a">it2_end_</a> (it.<a class="code" href="a00436.html#a28b42199178bd827adc9adebff82475a">it2_end_</a>), <a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a> (it.<a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a>) {
|
|
<a name="l01230"></a>01230 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == <a class="code" href="a00436.html#ada80c4de6cb525c91836a1e04a5e54f1">end_</a> ||
|
|
<a name="l01231"></a>01231 (<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 0 && <a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a> != <a class="code" href="a00436.html#ac5a322d6c4947f49004182c834332105">it1_end_</a>) ||
|
|
<a name="l01232"></a>01232 (<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 1 && <a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a> != <a class="code" href="a00436.html#a28b42199178bd827adc9adebff82475a">it2_end_</a>), <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01233"></a>01233 }
|
|
<a name="l01234"></a>01234
|
|
<a name="l01235"></a>01235 <span class="comment">// Arithmetic</span>
|
|
<a name="l01236"></a>01236 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01237"></a><a class="code" href="a00436.html#a203b979a774036f3b3d0dc5f937feeb3">01237</a> <a class="code" href="a00436.html">const_iterator1</a> &<a class="code" href="a00436.html#a203b979a774036f3b3d0dc5f937feeb3">operator ++ </a>() {
|
|
<a name="l01238"></a>01238 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 0 || <a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 1, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01239"></a>01239 <span class="keywordflow">if</span> (<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 0) {
|
|
<a name="l01240"></a>01240 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a> != <a class="code" href="a00436.html#ac5a322d6c4947f49004182c834332105">it1_end_</a>, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01241"></a>01241 ++ <a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a>;
|
|
<a name="l01242"></a>01242 <span class="keywordflow">if</span> (<a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a> == <a class="code" href="a00436.html#ac5a322d6c4947f49004182c834332105">it1_end_</a> && <a class="code" href="a00436.html#ada80c4de6cb525c91836a1e04a5e54f1">end_</a> == 1) {
|
|
<a name="l01243"></a>01243 <a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a> = <a class="code" href="a00436.html#a0dcd5639f0864bc3f7577f2bed8ae477">it2_begin_</a>;
|
|
<a name="l01244"></a>01244 <a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> = 1;
|
|
<a name="l01245"></a>01245 }
|
|
<a name="l01246"></a>01246 } <span class="keywordflow">else</span> <span class="comment">/* if (current_ == 1) */</span> {
|
|
<a name="l01247"></a>01247 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a> != <a class="code" href="a00436.html#a28b42199178bd827adc9adebff82475a">it2_end_</a>, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01248"></a>01248 ++ <a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a>;
|
|
<a name="l01249"></a>01249 <span class="keywordflow">if</span> (<a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a> == <a class="code" href="a00436.html#a28b42199178bd827adc9adebff82475a">it2_end_</a> && <a class="code" href="a00436.html#ada80c4de6cb525c91836a1e04a5e54f1">end_</a> == 0) {
|
|
<a name="l01250"></a>01250 <a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a> = <a class="code" href="a00436.html#ad27b98c50b20b3e7958d18713d991e5e">it1_begin_</a>;
|
|
<a name="l01251"></a>01251 <a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> = 0;
|
|
<a name="l01252"></a>01252 }
|
|
<a name="l01253"></a>01253 }
|
|
<a name="l01254"></a>01254 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01255"></a>01255 }
|
|
<a name="l01256"></a>01256 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01257"></a><a class="code" href="a00436.html#a1d5947d57bd9db686b899a50750ac132">01257</a> <a class="code" href="a00436.html">const_iterator1</a> &<a class="code" href="a00436.html#a1d5947d57bd9db686b899a50750ac132">operator -- </a>() {
|
|
<a name="l01258"></a>01258 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 0 || <a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 1, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01259"></a>01259 <span class="keywordflow">if</span> (<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 0) {
|
|
<a name="l01260"></a>01260 <span class="keywordflow">if</span> (<a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a> == <a class="code" href="a00436.html#ad27b98c50b20b3e7958d18713d991e5e">it1_begin_</a> && <a class="code" href="a00436.html#a21ced62acaafbfd57f03a47339ef810d">begin_</a> == 1) {
|
|
<a name="l01261"></a>01261 <a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a> = <a class="code" href="a00436.html#a28b42199178bd827adc9adebff82475a">it2_end_</a>;
|
|
<a name="l01262"></a>01262 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a> != <a class="code" href="a00436.html#a0dcd5639f0864bc3f7577f2bed8ae477">it2_begin_</a>, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01263"></a>01263 -- <a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a>;
|
|
<a name="l01264"></a>01264 <a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> = 1;
|
|
<a name="l01265"></a>01265 } <span class="keywordflow">else</span> {
|
|
<a name="l01266"></a>01266 -- <a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a>;
|
|
<a name="l01267"></a>01267 }
|
|
<a name="l01268"></a>01268 } <span class="keywordflow">else</span> <span class="comment">/* if (current_ == 1) */</span> {
|
|
<a name="l01269"></a>01269 <span class="keywordflow">if</span> (<a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a> == <a class="code" href="a00436.html#a0dcd5639f0864bc3f7577f2bed8ae477">it2_begin_</a> && <a class="code" href="a00436.html#a21ced62acaafbfd57f03a47339ef810d">begin_</a> == 0) {
|
|
<a name="l01270"></a>01270 <a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a> = <a class="code" href="a00436.html#ac5a322d6c4947f49004182c834332105">it1_end_</a>;
|
|
<a name="l01271"></a>01271 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a> != <a class="code" href="a00436.html#ad27b98c50b20b3e7958d18713d991e5e">it1_begin_</a>, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01272"></a>01272 -- <a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a>;
|
|
<a name="l01273"></a>01273 <a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> = 0;
|
|
<a name="l01274"></a>01274 } <span class="keywordflow">else</span> {
|
|
<a name="l01275"></a>01275 -- <a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a>;
|
|
<a name="l01276"></a>01276 }
|
|
<a name="l01277"></a>01277 }
|
|
<a name="l01278"></a>01278 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01279"></a>01279 }
|
|
<a name="l01280"></a>01280 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01281"></a><a class="code" href="a00436.html#aa1eada3768cdacdfe61d26105a576339">01281</a> <a class="code" href="a00436.html">const_iterator1</a> &<a class="code" href="a00436.html#aa1eada3768cdacdfe61d26105a576339">operator += </a>(<a class="code" href="a00436.html#a8e8a92574dda6db19fcffafc4ab913ae">difference_type</a> n) {
|
|
<a name="l01282"></a>01282 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 0 || <a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 1, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01283"></a>01283 <span class="keywordflow">if</span> (<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 0) {
|
|
<a name="l01284"></a>01284 <a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">size_type</a> d = (std::min) (n, <a class="code" href="a00436.html#ac5a322d6c4947f49004182c834332105">it1_end_</a> - <a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a>);
|
|
<a name="l01285"></a>01285 <a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a> += d;
|
|
<a name="l01286"></a>01286 n -= d;
|
|
<a name="l01287"></a>01287 <span class="keywordflow">if</span> (n > 0 || (<a class="code" href="a00436.html#ada80c4de6cb525c91836a1e04a5e54f1">end_</a> == 1 && <a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a> == <a class="code" href="a00436.html#ac5a322d6c4947f49004182c834332105">it1_end_</a>)) {
|
|
<a name="l01288"></a>01288 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00436.html#ada80c4de6cb525c91836a1e04a5e54f1">end_</a> == 1, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01289"></a>01289 d = (std::min) (n, <a class="code" href="a00436.html#a28b42199178bd827adc9adebff82475a">it2_end_</a> - <a class="code" href="a00436.html#a0dcd5639f0864bc3f7577f2bed8ae477">it2_begin_</a>);
|
|
<a name="l01290"></a>01290 <a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a> = <a class="code" href="a00436.html#a0dcd5639f0864bc3f7577f2bed8ae477">it2_begin_</a> + d;
|
|
<a name="l01291"></a>01291 n -= d;
|
|
<a name="l01292"></a>01292 <a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> = 1;
|
|
<a name="l01293"></a>01293 }
|
|
<a name="l01294"></a>01294 } <span class="keywordflow">else</span> <span class="comment">/* if (current_ == 1) */</span> {
|
|
<a name="l01295"></a>01295 <a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">size_type</a> d = (std::min) (n, <a class="code" href="a00436.html#a28b42199178bd827adc9adebff82475a">it2_end_</a> - <a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a>);
|
|
<a name="l01296"></a>01296 <a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a> += d;
|
|
<a name="l01297"></a>01297 n -= d;
|
|
<a name="l01298"></a>01298 <span class="keywordflow">if</span> (n > 0 || (<a class="code" href="a00436.html#ada80c4de6cb525c91836a1e04a5e54f1">end_</a> == 0 && <a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a> == <a class="code" href="a00436.html#a28b42199178bd827adc9adebff82475a">it2_end_</a>)) {
|
|
<a name="l01299"></a>01299 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00436.html#ada80c4de6cb525c91836a1e04a5e54f1">end_</a> == 0, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01300"></a>01300 d = (std::min) (n, <a class="code" href="a00436.html#ac5a322d6c4947f49004182c834332105">it1_end_</a> - <a class="code" href="a00436.html#ad27b98c50b20b3e7958d18713d991e5e">it1_begin_</a>);
|
|
<a name="l01301"></a>01301 <a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a> = <a class="code" href="a00436.html#ad27b98c50b20b3e7958d18713d991e5e">it1_begin_</a> + d;
|
|
<a name="l01302"></a>01302 n -= d;
|
|
<a name="l01303"></a>01303 <a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> = 0;
|
|
<a name="l01304"></a>01304 }
|
|
<a name="l01305"></a>01305 }
|
|
<a name="l01306"></a>01306 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (n == 0, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01307"></a>01307 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01308"></a>01308 }
|
|
<a name="l01309"></a>01309 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01310"></a><a class="code" href="a00436.html#a0fc032e65c64613968fea87b30b41896">01310</a> <a class="code" href="a00436.html">const_iterator1</a> &<a class="code" href="a00436.html#a0fc032e65c64613968fea87b30b41896">operator -= </a>(<a class="code" href="a00436.html#a8e8a92574dda6db19fcffafc4ab913ae">difference_type</a> n) {
|
|
<a name="l01311"></a>01311 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 0 || <a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 1, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01312"></a>01312 <span class="keywordflow">if</span> (<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 0) {
|
|
<a name="l01313"></a>01313 <a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">size_type</a> d = (std::min) (n, <a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a> - <a class="code" href="a00436.html#ad27b98c50b20b3e7958d18713d991e5e">it1_begin_</a>);
|
|
<a name="l01314"></a>01314 <a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a> -= d;
|
|
<a name="l01315"></a>01315 n -= d;
|
|
<a name="l01316"></a>01316 <span class="keywordflow">if</span> (n > 0) {
|
|
<a name="l01317"></a>01317 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00436.html#ada80c4de6cb525c91836a1e04a5e54f1">end_</a> == 1, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01318"></a>01318 d = (std::min) (n, <a class="code" href="a00436.html#a28b42199178bd827adc9adebff82475a">it2_end_</a> - <a class="code" href="a00436.html#a0dcd5639f0864bc3f7577f2bed8ae477">it2_begin_</a>);
|
|
<a name="l01319"></a>01319 <a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a> = <a class="code" href="a00436.html#a28b42199178bd827adc9adebff82475a">it2_end_</a> - d;
|
|
<a name="l01320"></a>01320 n -= d;
|
|
<a name="l01321"></a>01321 <a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> = 1;
|
|
<a name="l01322"></a>01322 }
|
|
<a name="l01323"></a>01323 } <span class="keywordflow">else</span> <span class="comment">/* if (current_ == 1) */</span> {
|
|
<a name="l01324"></a>01324 <a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">size_type</a> d = (std::min) (n, <a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a> - <a class="code" href="a00436.html#a0dcd5639f0864bc3f7577f2bed8ae477">it2_begin_</a>);
|
|
<a name="l01325"></a>01325 <a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a> -= d;
|
|
<a name="l01326"></a>01326 n -= d;
|
|
<a name="l01327"></a>01327 <span class="keywordflow">if</span> (n > 0) {
|
|
<a name="l01328"></a>01328 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00436.html#ada80c4de6cb525c91836a1e04a5e54f1">end_</a> == 0, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01329"></a>01329 d = (std::min) (n, <a class="code" href="a00436.html#ac5a322d6c4947f49004182c834332105">it1_end_</a> - <a class="code" href="a00436.html#ad27b98c50b20b3e7958d18713d991e5e">it1_begin_</a>);
|
|
<a name="l01330"></a>01330 <a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a> = <a class="code" href="a00436.html#ac5a322d6c4947f49004182c834332105">it1_end_</a> - d;
|
|
<a name="l01331"></a>01331 n -= d;
|
|
<a name="l01332"></a>01332 <a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> = 0;
|
|
<a name="l01333"></a>01333 }
|
|
<a name="l01334"></a>01334 }
|
|
<a name="l01335"></a>01335 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (n == 0, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01336"></a>01336 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01337"></a>01337 }
|
|
<a name="l01338"></a>01338 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01339"></a><a class="code" href="a00436.html#ae0b1997dcb849da0d8a65f95e4cc6b06">01339</a> <a class="code" href="a00436.html#a8e8a92574dda6db19fcffafc4ab913ae">difference_type</a> <a class="code" href="a00436.html#ae0b1997dcb849da0d8a65f95e4cc6b06">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00436.html">const_iterator1</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l01340"></a>01340 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01341"></a>01341 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 0 || <a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 1, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01342"></a>01342 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (it.<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 0 || it.<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 1, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01343"></a>01343 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<span class="comment">/* begin_ == it.begin_ && */</span> <a class="code" href="a00436.html#ada80c4de6cb525c91836a1e04a5e54f1">end_</a> == it.<a class="code" href="a00436.html#ada80c4de6cb525c91836a1e04a5e54f1">end_</a>, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01344"></a>01344 <span class="keywordflow">if</span> (<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 0 && it.<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 0) {
|
|
<a name="l01345"></a>01345 <span class="keywordflow">return</span> <a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a> - it.<a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a>;
|
|
<a name="l01346"></a>01346 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 0 && it.<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 1) {
|
|
<a name="l01347"></a>01347 <span class="keywordflow">if</span> (<a class="code" href="a00436.html#ada80c4de6cb525c91836a1e04a5e54f1">end_</a> == 1 && it.<a class="code" href="a00436.html#ada80c4de6cb525c91836a1e04a5e54f1">end_</a> == 1) {
|
|
<a name="l01348"></a>01348 <span class="keywordflow">return</span> (<a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a> - it.<a class="code" href="a00436.html#ac5a322d6c4947f49004182c834332105">it1_end_</a>) + (it.<a class="code" href="a00436.html#a0dcd5639f0864bc3f7577f2bed8ae477">it2_begin_</a> - it.<a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a>);
|
|
<a name="l01349"></a>01349 } <span class="keywordflow">else</span> <span class="comment">/* if (end_ == 0 && it.end_ == 0) */</span> {
|
|
<a name="l01350"></a>01350 <span class="keywordflow">return</span> (<a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a> - it.<a class="code" href="a00436.html#ad27b98c50b20b3e7958d18713d991e5e">it1_begin_</a>) + (it.<a class="code" href="a00436.html#a28b42199178bd827adc9adebff82475a">it2_end_</a> - it.<a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a>);
|
|
<a name="l01351"></a>01351 }
|
|
<a name="l01352"></a>01352
|
|
<a name="l01353"></a>01353 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 1 && it.<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 0) {
|
|
<a name="l01354"></a>01354 <span class="keywordflow">if</span> (<a class="code" href="a00436.html#ada80c4de6cb525c91836a1e04a5e54f1">end_</a> == 1 && it.<a class="code" href="a00436.html#ada80c4de6cb525c91836a1e04a5e54f1">end_</a> == 1) {
|
|
<a name="l01355"></a>01355 <span class="keywordflow">return</span> (<a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a> - it.<a class="code" href="a00436.html#a0dcd5639f0864bc3f7577f2bed8ae477">it2_begin_</a>) + (it.<a class="code" href="a00436.html#ac5a322d6c4947f49004182c834332105">it1_end_</a> - it.<a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a>);
|
|
<a name="l01356"></a>01356 } <span class="keywordflow">else</span> <span class="comment">/* if (end_ == 0 && it.end_ == 0) */</span> {
|
|
<a name="l01357"></a>01357 <span class="keywordflow">return</span> (<a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a> - it.<a class="code" href="a00436.html#a28b42199178bd827adc9adebff82475a">it2_end_</a>) + (it.<a class="code" href="a00436.html#ad27b98c50b20b3e7958d18713d991e5e">it1_begin_</a> - it.<a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a>);
|
|
<a name="l01358"></a>01358 }
|
|
<a name="l01359"></a>01359 }
|
|
<a name="l01360"></a>01360 <span class="comment">/* current_ == 1 && it.current_ == 1 */</span> {
|
|
<a name="l01361"></a>01361 <span class="keywordflow">return</span> <a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a> - it.<a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a>;
|
|
<a name="l01362"></a>01362 }
|
|
<a name="l01363"></a>01363 }
|
|
<a name="l01364"></a>01364
|
|
<a name="l01365"></a>01365 <span class="comment">// Dereference</span>
|
|
<a name="l01366"></a>01366 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01367"></a><a class="code" href="a00436.html#a590cc783c3f1e6dd6a984f2f39ea73e8">01367</a> <a class="code" href="a00435.html#afd3842f3af2fb355880d23a82d5d21ec">const_reference</a> <a class="code" href="a00436.html#a590cc783c3f1e6dd6a984f2f39ea73e8">operator * </a>()<span class="keyword"> const </span>{
|
|
<a name="l01368"></a>01368 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 0 || <a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 1, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01369"></a>01369 <span class="keywordflow">if</span> (<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 0) {
|
|
<a name="l01370"></a>01370 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a> != <a class="code" href="a00436.html#ac5a322d6c4947f49004182c834332105">it1_end_</a>, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01371"></a>01371 <span class="keywordflow">return</span> *<a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a>;
|
|
<a name="l01372"></a>01372 } <span class="keywordflow">else</span> <span class="comment">/* if (current_ == 1) */</span> {
|
|
<a name="l01373"></a>01373 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a> != <a class="code" href="a00436.html#a28b42199178bd827adc9adebff82475a">it2_end_</a>, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01374"></a>01374 <span class="keywordflow">return</span> *<a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a>;
|
|
<a name="l01375"></a>01375 }
|
|
<a name="l01376"></a>01376 }
|
|
<a name="l01377"></a>01377 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01378"></a><a class="code" href="a00436.html#a9281b7f78cb2ae7812c63523d538b77e">01378</a> <a class="code" href="a00435.html#afd3842f3af2fb355880d23a82d5d21ec">const_reference</a> <a class="code" href="a00436.html#a9281b7f78cb2ae7812c63523d538b77e">operator [] </a>(<a class="code" href="a00436.html#a8e8a92574dda6db19fcffafc4ab913ae">difference_type</a> n)<span class="keyword"> const </span>{
|
|
<a name="l01379"></a>01379 <span class="keywordflow">return</span> *(*<span class="keyword">this</span> + n);
|
|
<a name="l01380"></a>01380 }
|
|
<a name="l01381"></a>01381
|
|
<a name="l01382"></a>01382 <span class="preprocessor">#ifndef BOOST_UBLAS_NO_NESTED_CLASS_RELATION</span>
|
|
<a name="l01383"></a>01383 <span class="preprocessor"></span> <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01384"></a>01384 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l01385"></a>01385 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00435.html">self_type</a>::
|
|
<a name="l01386"></a>01386 <span class="preprocessor">#endif</span>
|
|
<a name="l01387"></a><a class="code" href="a00436.html#a591d1e59c1812292f1c0717fb6f8cc6f">01387</a> <span class="preprocessor"></span> <a class="code" href="a00437.html">const_iterator2</a> <a class="code" href="a00436.html#a591d1e59c1812292f1c0717fb6f8cc6f">begin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01388"></a>01388 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00435.html#a07ace6d3a79f10a72a95f1eb79e24b7f">find2</a> (1, <a class="code" href="a00436.html#ac646c3f5faf3b344fdc9dbf38f9cfc36">index1</a> (), 0);
|
|
<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>01391 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l01392"></a>01392 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00435.html">self_type</a>::
|
|
<a name="l01393"></a>01393 <span class="preprocessor">#endif</span>
|
|
<a name="l01394"></a><a class="code" href="a00436.html#a75cf5bd956a49942ffa22de735afdba8">01394</a> <span class="preprocessor"></span> <a class="code" href="a00437.html">const_iterator2</a> <a class="code" href="a00436.html#a75cf5bd956a49942ffa22de735afdba8">end</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01395"></a>01395 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00435.html#a07ace6d3a79f10a72a95f1eb79e24b7f">find2</a> (1, <a class="code" href="a00436.html#ac646c3f5faf3b344fdc9dbf38f9cfc36">index1</a> (), (*this) ().<a class="code" href="a00435.html#ab743d73ee1fd931ddec630f40dd7df3f">size2</a> ());
|
|
<a name="l01396"></a>01396 }
|
|
<a name="l01397"></a>01397 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01398"></a>01398 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l01399"></a>01399 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00435.html">self_type</a>::
|
|
<a name="l01400"></a>01400 <span class="preprocessor">#endif</span>
|
|
<a name="l01401"></a><a class="code" href="a00436.html#a8263c6a03daf42d437ddae72c943aa96">01401</a> <span class="preprocessor"></span> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">const_reverse_iterator2</a> <a class="code" href="a00436.html#a8263c6a03daf42d437ddae72c943aa96">rbegin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01402"></a>01402 <span class="keywordflow">return</span> <a class="code" href="a00435.html#acffe763cd0ff171557f8721ecac84ec4">const_reverse_iterator2</a> (<a class="code" href="a00436.html#a75cf5bd956a49942ffa22de735afdba8">end</a> ());
|
|
<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>01405 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l01406"></a>01406 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00435.html">self_type</a>::
|
|
<a name="l01407"></a>01407 <span class="preprocessor">#endif</span>
|
|
<a name="l01408"></a><a class="code" href="a00436.html#adce372e24f9577e9f4b74fc8d4edf9cb">01408</a> <span class="preprocessor"></span> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">const_reverse_iterator2</a> <a class="code" href="a00436.html#adce372e24f9577e9f4b74fc8d4edf9cb">rend</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01409"></a>01409 <span class="keywordflow">return</span> <a class="code" href="a00435.html#acffe763cd0ff171557f8721ecac84ec4">const_reverse_iterator2</a> (<a class="code" href="a00436.html#a591d1e59c1812292f1c0717fb6f8cc6f">begin</a> ());
|
|
<a name="l01410"></a>01410 }
|
|
<a name="l01411"></a>01411 <span class="preprocessor">#endif</span>
|
|
<a name="l01412"></a>01412 <span class="preprocessor"></span>
|
|
<a name="l01413"></a>01413 <span class="comment">// Indices</span>
|
|
<a name="l01414"></a>01414 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01415"></a><a class="code" href="a00436.html#ac646c3f5faf3b344fdc9dbf38f9cfc36">01415</a> <a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">size_type</a> <a class="code" href="a00436.html#ac646c3f5faf3b344fdc9dbf38f9cfc36">index1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01416"></a>01416 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 0 || <a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 1, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01417"></a>01417 <span class="keywordflow">if</span> (<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 0) {
|
|
<a name="l01418"></a>01418 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a> != <a class="code" href="a00436.html#ac5a322d6c4947f49004182c834332105">it1_end_</a>, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01419"></a>01419 <span class="keywordflow">return</span> <a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a>.index1 ();
|
|
<a name="l01420"></a>01420 } <span class="keywordflow">else</span> <span class="comment">/* if (current_ == 1) */</span> {
|
|
<a name="l01421"></a>01421 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a> != <a class="code" href="a00436.html#a28b42199178bd827adc9adebff82475a">it2_end_</a>, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01422"></a>01422 <span class="keywordflow">return</span> <a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a>.index2 ();
|
|
<a name="l01423"></a>01423 }
|
|
<a name="l01424"></a>01424 }
|
|
<a name="l01425"></a>01425 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01426"></a><a class="code" href="a00436.html#a50a930747831aa53331e11373165f94f">01426</a> <a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">size_type</a> <a class="code" href="a00436.html#a50a930747831aa53331e11373165f94f">index2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01427"></a>01427 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 0 || <a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 1, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01428"></a>01428 <span class="keywordflow">if</span> (<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 0) {
|
|
<a name="l01429"></a>01429 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a> != <a class="code" href="a00436.html#ac5a322d6c4947f49004182c834332105">it1_end_</a>, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01430"></a>01430 <span class="keywordflow">return</span> <a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a>.index2 ();
|
|
<a name="l01431"></a>01431 } <span class="keywordflow">else</span> <span class="comment">/* if (current_ == 1) */</span> {
|
|
<a name="l01432"></a>01432 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a> != <a class="code" href="a00436.html#a28b42199178bd827adc9adebff82475a">it2_end_</a>, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01433"></a>01433 <span class="keywordflow">return</span> <a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a>.index1 ();
|
|
<a name="l01434"></a>01434 }
|
|
<a name="l01435"></a>01435 }
|
|
<a name="l01436"></a>01436
|
|
<a name="l01437"></a>01437 <span class="comment">// Assignment</span>
|
|
<a name="l01438"></a>01438 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01439"></a><a class="code" href="a00436.html#af2e7d21103c91820d4c18616fb22b416">01439</a> <a class="code" href="a00436.html">const_iterator1</a> &<a class="code" href="a00436.html#af2e7d21103c91820d4c18616fb22b416">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00436.html">const_iterator1</a> &it) {
|
|
<a name="l01440"></a>01440 <a class="code" href="a00069.html#ab14250fc4fe5b9bcab4eb9fba8a5b5f8">container_const_reference<self_type>::assign</a> (&it ());
|
|
<a name="l01441"></a>01441 <a class="code" href="a00436.html#a21ced62acaafbfd57f03a47339ef810d">begin_</a> = it.<a class="code" href="a00436.html#a21ced62acaafbfd57f03a47339ef810d">begin_</a>;
|
|
<a name="l01442"></a>01442 <a class="code" href="a00436.html#ada80c4de6cb525c91836a1e04a5e54f1">end_</a> = it.<a class="code" href="a00436.html#ada80c4de6cb525c91836a1e04a5e54f1">end_</a>;
|
|
<a name="l01443"></a>01443 <a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> = it.<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a>;
|
|
<a name="l01444"></a>01444 <a class="code" href="a00436.html#ad27b98c50b20b3e7958d18713d991e5e">it1_begin_</a> = it.<a class="code" href="a00436.html#ad27b98c50b20b3e7958d18713d991e5e">it1_begin_</a>;
|
|
<a name="l01445"></a>01445 <a class="code" href="a00436.html#ac5a322d6c4947f49004182c834332105">it1_end_</a> = it.<a class="code" href="a00436.html#ac5a322d6c4947f49004182c834332105">it1_end_</a>;
|
|
<a name="l01446"></a>01446 <a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a> = it.<a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a>;
|
|
<a name="l01447"></a>01447 <a class="code" href="a00436.html#a0dcd5639f0864bc3f7577f2bed8ae477">it2_begin_</a> = it.<a class="code" href="a00436.html#a0dcd5639f0864bc3f7577f2bed8ae477">it2_begin_</a>;
|
|
<a name="l01448"></a>01448 <a class="code" href="a00436.html#a28b42199178bd827adc9adebff82475a">it2_end_</a> = it.<a class="code" href="a00436.html#a28b42199178bd827adc9adebff82475a">it2_end_</a>;
|
|
<a name="l01449"></a>01449 <a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a> = it.<a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a>;
|
|
<a name="l01450"></a>01450 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01451"></a>01451 }
|
|
<a name="l01452"></a>01452
|
|
<a name="l01453"></a>01453 <span class="comment">// Comparison</span>
|
|
<a name="l01454"></a>01454 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01455"></a><a class="code" href="a00436.html#a686a8797b2a5df2842135f584bab80fa">01455</a> <span class="keywordtype">bool</span> <a class="code" href="a00436.html#a686a8797b2a5df2842135f584bab80fa">operator == </a>(<span class="keyword">const</span> <a class="code" href="a00436.html">const_iterator1</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l01456"></a>01456 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01457"></a>01457 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 0 || <a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 1, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01458"></a>01458 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (it.<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 0 || it.<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 1, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01459"></a>01459 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<span class="comment">/* begin_ == it.begin_ && */</span> <a class="code" href="a00436.html#ada80c4de6cb525c91836a1e04a5e54f1">end_</a> == it.<a class="code" href="a00436.html#ada80c4de6cb525c91836a1e04a5e54f1">end_</a>, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01460"></a>01460 <span class="keywordflow">return</span> (<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 0 && it.<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 0 && <a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a> == it.<a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a>) ||
|
|
<a name="l01461"></a>01461 (<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 1 && it.<a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a> == 1 && <a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a> == it.<a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a>);
|
|
<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="a00436.html#ab522c272145e8b54d07bedf9aae007eb">01464</a> <span class="keywordtype">bool</span> <a class="code" href="a00436.html#ab522c272145e8b54d07bedf9aae007eb">operator < </a>(<span class="keyword">const</span> <a class="code" href="a00436.html">const_iterator1</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l01465"></a>01465 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01466"></a>01466 <span class="keywordflow">return</span> it - *<span class="keyword">this</span> > 0;
|
|
<a name="l01467"></a>01467 }
|
|
<a name="l01468"></a>01468
|
|
<a name="l01469"></a>01469 <span class="keyword">private</span>:
|
|
<a name="l01470"></a><a class="code" href="a00436.html#a21ced62acaafbfd57f03a47339ef810d">01470</a> <span class="keywordtype">int</span> <a class="code" href="a00436.html#a21ced62acaafbfd57f03a47339ef810d">begin_</a>;
|
|
<a name="l01471"></a><a class="code" href="a00436.html#ada80c4de6cb525c91836a1e04a5e54f1">01471</a> <span class="keywordtype">int</span> <a class="code" href="a00436.html#ada80c4de6cb525c91836a1e04a5e54f1">end_</a>;
|
|
<a name="l01472"></a><a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">01472</a> <span class="keywordtype">int</span> <a class="code" href="a00436.html#ab3769df35239160dbf8d5a84c68db46f">current_</a>;
|
|
<a name="l01473"></a><a class="code" href="a00436.html#ad27b98c50b20b3e7958d18713d991e5e">01473</a> <a class="code" href="a00435.html#a699f4df5cdc0641428fa720dbf1a6be0">const_subiterator1_type</a> <a class="code" href="a00436.html#ad27b98c50b20b3e7958d18713d991e5e">it1_begin_</a>;
|
|
<a name="l01474"></a><a class="code" href="a00436.html#ac5a322d6c4947f49004182c834332105">01474</a> <a class="code" href="a00435.html#a699f4df5cdc0641428fa720dbf1a6be0">const_subiterator1_type</a> <a class="code" href="a00436.html#ac5a322d6c4947f49004182c834332105">it1_end_</a>;
|
|
<a name="l01475"></a><a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">01475</a> <a class="code" href="a00435.html#a699f4df5cdc0641428fa720dbf1a6be0">const_subiterator1_type</a> <a class="code" href="a00436.html#af249a40a399295a284e3a6d736f2d4dc">it1_</a>;
|
|
<a name="l01476"></a><a class="code" href="a00436.html#a0dcd5639f0864bc3f7577f2bed8ae477">01476</a> <a class="code" href="a00435.html#a2b661a47b7a4603ee5cb550eb8c82ee4">const_subiterator2_type</a> <a class="code" href="a00436.html#a0dcd5639f0864bc3f7577f2bed8ae477">it2_begin_</a>;
|
|
<a name="l01477"></a><a class="code" href="a00436.html#a28b42199178bd827adc9adebff82475a">01477</a> <a class="code" href="a00435.html#a2b661a47b7a4603ee5cb550eb8c82ee4">const_subiterator2_type</a> <a class="code" href="a00436.html#a28b42199178bd827adc9adebff82475a">it2_end_</a>;
|
|
<a name="l01478"></a><a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">01478</a> <a class="code" href="a00435.html#a2b661a47b7a4603ee5cb550eb8c82ee4">const_subiterator2_type</a> <a class="code" href="a00436.html#a37b4b476b720681e210d918ccb6b1141">it2_</a>;
|
|
<a name="l01479"></a>01479 };
|
|
<a name="l01480"></a>01480 <span class="preprocessor">#endif</span>
|
|
<a name="l01481"></a>01481 <span class="preprocessor"></span>
|
|
<a name="l01482"></a>01482 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01483"></a><a class="code" href="a00435.html#ab6edfd99f002a0ba94bdcd86d7c21721">01483</a> <a class="code" href="a00436.html">const_iterator1</a> <a class="code" href="a00435.html#ab6edfd99f002a0ba94bdcd86d7c21721">begin1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01484"></a>01484 <span class="keywordflow">return</span> <a class="code" href="a00435.html#a6732fbdb05b122ae599e6e634bbc4b20">find1</a> (0, 0, 0);
|
|
<a name="l01485"></a>01485 }
|
|
<a name="l01486"></a>01486 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01487"></a><a class="code" href="a00435.html#a9f6c64dcd03c01359d17a81d45418e35">01487</a> <a class="code" href="a00436.html">const_iterator1</a> <a class="code" href="a00435.html#a9f6c64dcd03c01359d17a81d45418e35">end1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01488"></a>01488 <span class="keywordflow">return</span> <a class="code" href="a00435.html#a6732fbdb05b122ae599e6e634bbc4b20">find1</a> (0, <a class="code" href="a00435.html#a2fd4afbc96a17017420b7e2709f4cc34">size1</a> (), 0);
|
|
<a name="l01489"></a>01489 }
|
|
<a name="l01490"></a>01490
|
|
<a name="l01491"></a>01491 <span class="preprocessor">#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR</span>
|
|
<a name="l01492"></a><a class="code" href="a00438.html">01492</a> <span class="preprocessor"></span> <span class="keyword">class </span><a class="code" href="a00438.html">iterator1</a>:
|
|
<a name="l01493"></a>01493 <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><symmetric_adaptor>,
|
|
<a name="l01494"></a>01494 <span class="keyword">public</span> <a class="code" href="a00365.html" title="Base class of all random access iterators.">random_access_iterator_base</a><typename iterator_restrict_traits<
|
|
<a name="l01495"></a>01495 typename subiterator1_type::iterator_category, packed_random_access_iterator_tag>::iterator_category,
|
|
<a name="l01496"></a>01496 iterator1, value_type> {
|
|
<a name="l01497"></a>01497 <span class="keyword">public</span>:
|
|
<a name="l01498"></a><a class="code" href="a00438.html#ac4b49c1038bbdc0ecbb0300115597a5a">01498</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> subiterator1_type::value_type <a class="code" href="a00438.html#ac4b49c1038bbdc0ecbb0300115597a5a">value_type</a>;
|
|
<a name="l01499"></a><a class="code" href="a00438.html#af8c31b9c2b4bcd5e9ea6ebcdc99fd895">01499</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> subiterator1_type::difference_type <a class="code" href="a00438.html#af8c31b9c2b4bcd5e9ea6ebcdc99fd895">difference_type</a>;
|
|
<a name="l01500"></a><a class="code" href="a00438.html#a8cdce6ee60d8a1bfcc89b3bfc5c66dc7">01500</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> subiterator1_type::reference <a class="code" href="a00438.html#a8cdce6ee60d8a1bfcc89b3bfc5c66dc7">reference</a>;
|
|
<a name="l01501"></a><a class="code" href="a00438.html#a3bdec670818b0a2e56a08fa38c208ecd">01501</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> subiterator1_type::pointer <a class="code" href="a00438.html#a3bdec670818b0a2e56a08fa38c208ecd">pointer</a>;
|
|
<a name="l01502"></a>01502
|
|
<a name="l01503"></a><a class="code" href="a00438.html#ab10b9d007e21b43952270bf223dfc6b4">01503</a> <span class="keyword">typedef</span> <a class="code" href="a00439.html">iterator2</a> <a class="code" href="a00438.html#ab10b9d007e21b43952270bf223dfc6b4">dual_iterator_type</a>;
|
|
<a name="l01504"></a><a class="code" href="a00438.html#a3942128a8c65ab2128d8ab6a44df55b1">01504</a> <span class="keyword">typedef</span> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator2</a> <a class="code" href="a00438.html#a3942128a8c65ab2128d8ab6a44df55b1">dual_reverse_iterator_type</a>;
|
|
<a name="l01505"></a>01505
|
|
<a name="l01506"></a>01506 <span class="comment">// Construction and destruction</span>
|
|
<a name="l01507"></a>01507 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01508"></a><a class="code" href="a00438.html#add3427858ae58124d8628cb02ce2d28c">01508</a> <a class="code" href="a00438.html#add3427858ae58124d8628cb02ce2d28c">iterator1</a> ():
|
|
<a name="l01509"></a>01509 <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><<a class="code" href="a00435.html">self_type</a>> (), <a class="code" href="a00438.html#a9fb70ea6a86aae15ebad31299979c127">it1_</a> () {}
|
|
<a name="l01510"></a>01510 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01511"></a><a class="code" href="a00438.html#a673577d565625242b067e98cd2b3ffb6">01511</a> <a class="code" href="a00438.html#add3427858ae58124d8628cb02ce2d28c">iterator1</a> (<a class="code" href="a00435.html">self_type</a> &m, <span class="keyword">const</span> <a class="code" href="a00435.html#a798799541d6db722d213197de55ffbd5">subiterator1_type</a> &it1):
|
|
<a name="l01512"></a>01512 <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><<a class="code" href="a00435.html">self_type</a>> (m), <a class="code" href="a00438.html#a9fb70ea6a86aae15ebad31299979c127">it1_</a> (it1) {}
|
|
<a name="l01513"></a>01513
|
|
<a name="l01514"></a>01514 <span class="comment">// Arithmetic</span>
|
|
<a name="l01515"></a>01515 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01516"></a><a class="code" href="a00438.html#a1100e31f327535ba5ed94f58f83ec7cb">01516</a> <a class="code" href="a00438.html">iterator1</a> &<a class="code" href="a00438.html#a1100e31f327535ba5ed94f58f83ec7cb">operator ++ </a>() {
|
|
<a name="l01517"></a>01517 ++ <a class="code" href="a00438.html#a9fb70ea6a86aae15ebad31299979c127">it1_</a>;
|
|
<a name="l01518"></a>01518 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01519"></a>01519 }
|
|
<a name="l01520"></a>01520 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01521"></a><a class="code" href="a00438.html#aa37f53bc47b7aa3a73646ca0912f0faa">01521</a> <a class="code" href="a00438.html">iterator1</a> &<a class="code" href="a00438.html#aa37f53bc47b7aa3a73646ca0912f0faa">operator -- </a>() {
|
|
<a name="l01522"></a>01522 -- <a class="code" href="a00438.html#a9fb70ea6a86aae15ebad31299979c127">it1_</a>;
|
|
<a name="l01523"></a>01523 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01524"></a>01524 }
|
|
<a name="l01525"></a>01525 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01526"></a><a class="code" href="a00438.html#aa9b42ac8e0e252e17ed38287db566916">01526</a> <a class="code" href="a00438.html">iterator1</a> &<a class="code" href="a00438.html#aa9b42ac8e0e252e17ed38287db566916">operator += </a>(<a class="code" href="a00438.html#af8c31b9c2b4bcd5e9ea6ebcdc99fd895">difference_type</a> n) {
|
|
<a name="l01527"></a>01527 <a class="code" href="a00438.html#a9fb70ea6a86aae15ebad31299979c127">it1_</a> += n;
|
|
<a name="l01528"></a>01528 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01529"></a>01529 }
|
|
<a name="l01530"></a>01530 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01531"></a><a class="code" href="a00438.html#a3846cbdefbdab1c27f51fd966e3a0d8d">01531</a> <a class="code" href="a00438.html">iterator1</a> &<a class="code" href="a00438.html#a3846cbdefbdab1c27f51fd966e3a0d8d">operator -= </a>(<a class="code" href="a00438.html#af8c31b9c2b4bcd5e9ea6ebcdc99fd895">difference_type</a> n) {
|
|
<a name="l01532"></a>01532 <a class="code" href="a00438.html#a9fb70ea6a86aae15ebad31299979c127">it1_</a> -= n;
|
|
<a name="l01533"></a>01533 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<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="a00438.html#a083d24b7ba09d4fafc03f95a0ee9e1ca">01536</a> <a class="code" href="a00438.html#af8c31b9c2b4bcd5e9ea6ebcdc99fd895">difference_type</a> <a class="code" href="a00438.html#a083d24b7ba09d4fafc03f95a0ee9e1ca">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00438.html">iterator1</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l01537"></a>01537 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01538"></a>01538 <span class="keywordflow">return</span> <a class="code" href="a00438.html#a9fb70ea6a86aae15ebad31299979c127">it1_</a> - it.<a class="code" href="a00438.html#a9fb70ea6a86aae15ebad31299979c127">it1_</a>;
|
|
<a name="l01539"></a>01539 }
|
|
<a name="l01540"></a>01540
|
|
<a name="l01541"></a>01541 <span class="comment">// Dereference</span>
|
|
<a name="l01542"></a>01542 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01543"></a><a class="code" href="a00438.html#a800bc1c70bea1d6e2cdb90dc3e2ffb34">01543</a> <a class="code" href="a00438.html#a8cdce6ee60d8a1bfcc89b3bfc5c66dc7">reference</a> <a class="code" href="a00438.html#a800bc1c70bea1d6e2cdb90dc3e2ffb34">operator * </a>()<span class="keyword"> const </span>{
|
|
<a name="l01544"></a>01544 <span class="keywordflow">return</span> *<a class="code" href="a00438.html#a9fb70ea6a86aae15ebad31299979c127">it1_</a>;
|
|
<a name="l01545"></a>01545 }
|
|
<a name="l01546"></a>01546 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01547"></a><a class="code" href="a00438.html#aa6f5cb8d5d6428f80d77fd7151690533">01547</a> <a class="code" href="a00438.html#a8cdce6ee60d8a1bfcc89b3bfc5c66dc7">reference</a> <a class="code" href="a00438.html#aa6f5cb8d5d6428f80d77fd7151690533">operator [] </a>(<a class="code" href="a00438.html#af8c31b9c2b4bcd5e9ea6ebcdc99fd895">difference_type</a> n)<span class="keyword"> const </span>{
|
|
<a name="l01548"></a>01548 <span class="keywordflow">return</span> *(*<span class="keyword">this</span> + n);
|
|
<a name="l01549"></a>01549 }
|
|
<a name="l01550"></a>01550
|
|
<a name="l01551"></a>01551 <span class="preprocessor">#ifndef BOOST_UBLAS_NO_NESTED_CLASS_RELATION</span>
|
|
<a name="l01552"></a>01552 <span class="preprocessor"></span> <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01553"></a>01553 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l01554"></a>01554 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00435.html">self_type</a>::
|
|
<a name="l01555"></a>01555 <span class="preprocessor">#endif</span>
|
|
<a name="l01556"></a><a class="code" href="a00438.html#a4758354c4c7d81abeea21941fe7e2c5f">01556</a> <span class="preprocessor"></span> <a class="code" href="a00439.html">iterator2</a> <a class="code" href="a00438.html#a4758354c4c7d81abeea21941fe7e2c5f">begin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01557"></a>01557 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00435.html#a07ace6d3a79f10a72a95f1eb79e24b7f">find2</a> (1, <a class="code" href="a00438.html#a39c597f29101a942ad6e1c51220060bb">index1</a> (), 0);
|
|
<a name="l01558"></a>01558 }
|
|
<a name="l01559"></a>01559 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01560"></a>01560 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l01561"></a>01561 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00435.html">self_type</a>::
|
|
<a name="l01562"></a>01562 <span class="preprocessor">#endif</span>
|
|
<a name="l01563"></a><a class="code" href="a00438.html#a30d05c9692bbe0aef395528106738805">01563</a> <span class="preprocessor"></span> <a class="code" href="a00439.html">iterator2</a> <a class="code" href="a00438.html#a30d05c9692bbe0aef395528106738805">end</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01564"></a>01564 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00435.html#a07ace6d3a79f10a72a95f1eb79e24b7f">find2</a> (1, <a class="code" href="a00438.html#a39c597f29101a942ad6e1c51220060bb">index1</a> (), (*this) ().<a class="code" href="a00435.html#ab743d73ee1fd931ddec630f40dd7df3f">size2</a> ());
|
|
<a name="l01565"></a>01565 }
|
|
<a name="l01566"></a>01566 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01567"></a>01567 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l01568"></a>01568 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00435.html">self_type</a>::
|
|
<a name="l01569"></a>01569 <span class="preprocessor">#endif</span>
|
|
<a name="l01570"></a><a class="code" href="a00438.html#a6f5d9bd4da480bda96a7409a944e487b">01570</a> <span class="preprocessor"></span> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator2</a> <a class="code" href="a00438.html#a6f5d9bd4da480bda96a7409a944e487b">rbegin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01571"></a>01571 <span class="keywordflow">return</span> <a class="code" href="a00435.html#a60d8037595b1d75966dc6b2256bb1ea0">reverse_iterator2</a> (<a class="code" href="a00438.html#a30d05c9692bbe0aef395528106738805">end</a> ());
|
|
<a name="l01572"></a>01572 }
|
|
<a name="l01573"></a>01573 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01574"></a>01574 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l01575"></a>01575 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00435.html">self_type</a>::
|
|
<a name="l01576"></a>01576 <span class="preprocessor">#endif</span>
|
|
<a name="l01577"></a><a class="code" href="a00438.html#a11d692fddc7b63901b6eeb81ac3cc113">01577</a> <span class="preprocessor"></span> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator2</a> <a class="code" href="a00438.html#a11d692fddc7b63901b6eeb81ac3cc113">rend</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01578"></a>01578 <span class="keywordflow">return</span> <a class="code" href="a00435.html#a60d8037595b1d75966dc6b2256bb1ea0">reverse_iterator2</a> (<a class="code" href="a00438.html#a4758354c4c7d81abeea21941fe7e2c5f">begin</a> ());
|
|
<a name="l01579"></a>01579 }
|
|
<a name="l01580"></a>01580 <span class="preprocessor">#endif</span>
|
|
<a name="l01581"></a>01581 <span class="preprocessor"></span>
|
|
<a name="l01582"></a>01582 <span class="comment">// Indices</span>
|
|
<a name="l01583"></a>01583 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01584"></a><a class="code" href="a00438.html#a39c597f29101a942ad6e1c51220060bb">01584</a> <a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">size_type</a> <a class="code" href="a00438.html#a39c597f29101a942ad6e1c51220060bb">index1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01585"></a>01585 <span class="keywordflow">return</span> <a class="code" href="a00438.html#a9fb70ea6a86aae15ebad31299979c127">it1_</a>.index1 ();
|
|
<a name="l01586"></a>01586 }
|
|
<a name="l01587"></a>01587 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01588"></a><a class="code" href="a00438.html#ae9de04bff1ceb2fea38aacf34fee7100">01588</a> <a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">size_type</a> <a class="code" href="a00438.html#ae9de04bff1ceb2fea38aacf34fee7100">index2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01589"></a>01589 <span class="keywordflow">return</span> <a class="code" href="a00438.html#a9fb70ea6a86aae15ebad31299979c127">it1_</a>.index2 ();
|
|
<a name="l01590"></a>01590 }
|
|
<a name="l01591"></a>01591
|
|
<a name="l01592"></a>01592 <span class="comment">// Assignment</span>
|
|
<a name="l01593"></a>01593 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01594"></a><a class="code" href="a00438.html#a0b3992bd9d770c3d24956bbef55e0d02">01594</a> <a class="code" href="a00438.html">iterator1</a> &<a class="code" href="a00438.html#a0b3992bd9d770c3d24956bbef55e0d02">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00438.html">iterator1</a> &it) {
|
|
<a name="l01595"></a>01595 <a class="code" href="a00070.html#a8ee5b7e2ac6a45d59e4873df582a02b2">container_reference<self_type>::assign</a> (&it ());
|
|
<a name="l01596"></a>01596 <a class="code" href="a00438.html#a9fb70ea6a86aae15ebad31299979c127">it1_</a> = it.<a class="code" href="a00438.html#a9fb70ea6a86aae15ebad31299979c127">it1_</a>;
|
|
<a name="l01597"></a>01597 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01598"></a>01598 }
|
|
<a name="l01599"></a>01599
|
|
<a name="l01600"></a>01600 <span class="comment">// Comparison</span>
|
|
<a name="l01601"></a>01601 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01602"></a><a class="code" href="a00438.html#a846c45a13afdc0001c2453224728056c">01602</a> <span class="keywordtype">bool</span> <a class="code" href="a00438.html#a846c45a13afdc0001c2453224728056c">operator == </a>(<span class="keyword">const</span> <a class="code" href="a00438.html">iterator1</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l01603"></a>01603 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01604"></a>01604 <span class="keywordflow">return</span> <a class="code" href="a00438.html#a9fb70ea6a86aae15ebad31299979c127">it1_</a> == it.<a class="code" href="a00438.html#a9fb70ea6a86aae15ebad31299979c127">it1_</a>;
|
|
<a name="l01605"></a>01605 }
|
|
<a name="l01606"></a>01606 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01607"></a><a class="code" href="a00438.html#a3b7a4b9221ec68c6d652021f52251e52">01607</a> <span class="keywordtype">bool</span> <a class="code" href="a00438.html#a3b7a4b9221ec68c6d652021f52251e52">operator < </a>(<span class="keyword">const</span> <a class="code" href="a00438.html">iterator1</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l01608"></a>01608 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01609"></a>01609 <span class="keywordflow">return</span> <a class="code" href="a00438.html#a9fb70ea6a86aae15ebad31299979c127">it1_</a> < it.<a class="code" href="a00438.html#a9fb70ea6a86aae15ebad31299979c127">it1_</a>;
|
|
<a name="l01610"></a>01610 }
|
|
<a name="l01611"></a>01611
|
|
<a name="l01612"></a>01612 <span class="keyword">private</span>:
|
|
<a name="l01613"></a><a class="code" href="a00438.html#a9fb70ea6a86aae15ebad31299979c127">01613</a> <a class="code" href="a00435.html#a798799541d6db722d213197de55ffbd5">subiterator1_type</a> <a class="code" href="a00438.html#a9fb70ea6a86aae15ebad31299979c127">it1_</a>;
|
|
<a name="l01614"></a>01614
|
|
<a name="l01615"></a><a class="code" href="a00438.html#a2217ee3466e64c9a0105ef5d64ba6a11">01615</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="a00436.html">const_iterator1</a>;
|
|
<a name="l01616"></a>01616 };
|
|
<a name="l01617"></a>01617 <span class="preprocessor">#endif</span>
|
|
<a name="l01618"></a>01618 <span class="preprocessor"></span>
|
|
<a name="l01619"></a>01619 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01620"></a><a class="code" href="a00435.html#a374d65b06d6e569de0fba645b56c0029">01620</a> <a class="code" href="a00438.html">iterator1</a> <a class="code" href="a00435.html#a374d65b06d6e569de0fba645b56c0029">begin1</a> () {
|
|
<a name="l01621"></a>01621 <span class="keywordflow">return</span> <a class="code" href="a00435.html#a6732fbdb05b122ae599e6e634bbc4b20">find1</a> (0, 0, 0);
|
|
<a name="l01622"></a>01622 }
|
|
<a name="l01623"></a>01623 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01624"></a><a class="code" href="a00435.html#a14168016656456f1f05fc8abfa63e68b">01624</a> <a class="code" href="a00438.html">iterator1</a> <a class="code" href="a00435.html#a14168016656456f1f05fc8abfa63e68b">end1</a> () {
|
|
<a name="l01625"></a>01625 <span class="keywordflow">return</span> <a class="code" href="a00435.html#a6732fbdb05b122ae599e6e634bbc4b20">find1</a> (0, <a class="code" href="a00435.html#a2fd4afbc96a17017420b7e2709f4cc34">size1</a> (), 0);
|
|
<a name="l01626"></a>01626 }
|
|
<a name="l01627"></a>01627
|
|
<a name="l01628"></a>01628 <span class="preprocessor">#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR</span>
|
|
<a name="l01629"></a><a class="code" href="a00437.html">01629</a> <span class="preprocessor"></span> <span class="keyword">class </span><a class="code" href="a00437.html">const_iterator2</a>:
|
|
<a name="l01630"></a>01630 <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><symmetric_adaptor>,
|
|
<a name="l01631"></a>01631 <span class="keyword">public</span> <a class="code" href="a00365.html" title="Base class of all random access iterators.">random_access_iterator_base</a><typename iterator_restrict_traits<
|
|
<a name="l01632"></a>01632 typename const_subiterator2_type::iterator_category, dense_random_access_iterator_tag>::iterator_category,
|
|
<a name="l01633"></a>01633 const_iterator2, value_type> {
|
|
<a name="l01634"></a>01634 <span class="keyword">public</span>:
|
|
<a name="l01635"></a><a class="code" href="a00437.html#a883d0d3ff8d571bdcf4db9e9ef0061d8">01635</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> const_subiterator2_type::value_type <a class="code" href="a00437.html#a883d0d3ff8d571bdcf4db9e9ef0061d8">value_type</a>;
|
|
<a name="l01636"></a><a class="code" href="a00437.html#a1c9e6764a535cbb2ac29d00d2346476d">01636</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> const_subiterator2_type::difference_type <a class="code" href="a00437.html#a1c9e6764a535cbb2ac29d00d2346476d">difference_type</a>;
|
|
<a name="l01637"></a><a class="code" href="a00437.html#a067fa0842bc5b0d590e5744f24c3b0a6">01637</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> const_subiterator2_type::reference <a class="code" href="a00437.html#a067fa0842bc5b0d590e5744f24c3b0a6">reference</a>;
|
|
<a name="l01638"></a><a class="code" href="a00437.html#a7c3ff76823d95c09e401894440fc74ea">01638</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> const_subiterator2_type::pointer <a class="code" href="a00437.html#a7c3ff76823d95c09e401894440fc74ea">pointer</a>;
|
|
<a name="l01639"></a>01639
|
|
<a name="l01640"></a><a class="code" href="a00437.html#a9d30d9e4ee28b33a8265694bcf99e3af">01640</a> <span class="keyword">typedef</span> <a class="code" href="a00436.html">const_iterator1</a> <a class="code" href="a00437.html#a9d30d9e4ee28b33a8265694bcf99e3af">dual_iterator_type</a>;
|
|
<a name="l01641"></a><a class="code" href="a00437.html#ab0ede3468130f3de3647285a33f3b160">01641</a> <span class="keyword">typedef</span> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">const_reverse_iterator1</a> <a class="code" href="a00437.html#ab0ede3468130f3de3647285a33f3b160">dual_reverse_iterator_type</a>;
|
|
<a name="l01642"></a>01642
|
|
<a name="l01643"></a>01643 <span class="comment">// Construction and destruction</span>
|
|
<a name="l01644"></a>01644 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01645"></a><a class="code" href="a00437.html#a93e9af01b0246ac789a4f34df633be9b">01645</a> <a class="code" href="a00437.html#a93e9af01b0246ac789a4f34df633be9b">const_iterator2</a> ():
|
|
<a name="l01646"></a>01646 <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><<a class="code" href="a00435.html">self_type</a>> (),
|
|
<a name="l01647"></a>01647 <a class="code" href="a00437.html#a60c583624a3c800e84de2cc2656ce462">begin_</a> (-1), <a class="code" href="a00437.html#a2dad7ba48100a8909a7fbdbbd60ca103">end_</a> (-1), <a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> (-1),
|
|
<a name="l01648"></a>01648 <a class="code" href="a00437.html#a203c09e7251f5c1961599470d53dc997">it1_begin_</a> (), <a class="code" href="a00437.html#aa66604173ed1a8202c95b65ac159fd70">it1_end_</a> (), <a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a> (),
|
|
<a name="l01649"></a>01649 <a class="code" href="a00437.html#a66534ec41f36319ae026356dbe7bc8ca">it2_begin_</a> (), <a class="code" href="a00437.html#ab57d158ffa2934fef183c696c1e27557">it2_end_</a> (), <a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a> () {}
|
|
<a name="l01650"></a>01650 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01651"></a><a class="code" href="a00437.html#a3eac903b42f8ffde244a3f765f8f8cf5">01651</a> <a class="code" href="a00437.html#a93e9af01b0246ac789a4f34df633be9b">const_iterator2</a> (<span class="keyword">const</span> <a class="code" href="a00435.html">self_type</a> &m, <span class="keywordtype">int</span> <a class="code" href="a00437.html#a2ab4e49e3d06f910b79039ec0ce974fa">begin</a>, <span class="keywordtype">int</span> <a class="code" href="a00437.html#ae1834b209bac9c54a8a1d6fd7e58b6ba">end</a>,
|
|
<a name="l01652"></a>01652 <span class="keyword">const</span> <a class="code" href="a00435.html#a699f4df5cdc0641428fa720dbf1a6be0">const_subiterator1_type</a> &it1_begin, <span class="keyword">const</span> <a class="code" href="a00435.html#a699f4df5cdc0641428fa720dbf1a6be0">const_subiterator1_type</a> &it1_end,
|
|
<a name="l01653"></a>01653 <span class="keyword">const</span> <a class="code" href="a00435.html#a2b661a47b7a4603ee5cb550eb8c82ee4">const_subiterator2_type</a> &it2_begin, <span class="keyword">const</span> <a class="code" href="a00435.html#a2b661a47b7a4603ee5cb550eb8c82ee4">const_subiterator2_type</a> &it2_end):
|
|
<a name="l01654"></a>01654 <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><<a class="code" href="a00435.html">self_type</a>> (m),
|
|
<a name="l01655"></a>01655 <a class="code" href="a00437.html#a60c583624a3c800e84de2cc2656ce462">begin_</a> (begin), <a class="code" href="a00437.html#a2dad7ba48100a8909a7fbdbbd60ca103">end_</a> (end), <a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> (begin),
|
|
<a name="l01656"></a>01656 <a class="code" href="a00437.html#a203c09e7251f5c1961599470d53dc997">it1_begin_</a> (it1_begin), <a class="code" href="a00437.html#aa66604173ed1a8202c95b65ac159fd70">it1_end_</a> (it1_end), <a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a> (<a class="code" href="a00437.html#a203c09e7251f5c1961599470d53dc997">it1_begin_</a>),
|
|
<a name="l01657"></a>01657 <a class="code" href="a00437.html#a66534ec41f36319ae026356dbe7bc8ca">it2_begin_</a> (it2_begin), <a class="code" href="a00437.html#ab57d158ffa2934fef183c696c1e27557">it2_end_</a> (it2_end), <a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a> (<a class="code" href="a00437.html#a66534ec41f36319ae026356dbe7bc8ca">it2_begin_</a>) {
|
|
<a name="l01658"></a>01658 <span class="keywordflow">if</span> (<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 0 && <a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a> == <a class="code" href="a00437.html#aa66604173ed1a8202c95b65ac159fd70">it1_end_</a>)
|
|
<a name="l01659"></a>01659 <a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> = 1;
|
|
<a name="l01660"></a>01660 <span class="keywordflow">if</span> (<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 1 && <a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a> == <a class="code" href="a00437.html#ab57d158ffa2934fef183c696c1e27557">it2_end_</a>)
|
|
<a name="l01661"></a>01661 <a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> = 0;
|
|
<a name="l01662"></a>01662 <span class="keywordflow">if</span> ((<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 0 && <a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a> == <a class="code" href="a00437.html#aa66604173ed1a8202c95b65ac159fd70">it1_end_</a>) ||
|
|
<a name="l01663"></a>01663 (<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 1 && <a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a> == <a class="code" href="a00437.html#ab57d158ffa2934fef183c696c1e27557">it2_end_</a>))
|
|
<a name="l01664"></a>01664 <a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> = <a class="code" href="a00437.html#a2dad7ba48100a8909a7fbdbbd60ca103">end_</a>;
|
|
<a name="l01665"></a>01665 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == <a class="code" href="a00437.html#a2dad7ba48100a8909a7fbdbbd60ca103">end_</a> ||
|
|
<a name="l01666"></a>01666 (<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 0 && <a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a> != <a class="code" href="a00437.html#aa66604173ed1a8202c95b65ac159fd70">it1_end_</a>) ||
|
|
<a name="l01667"></a>01667 (<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 1 && <a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a> != <a class="code" href="a00437.html#ab57d158ffa2934fef183c696c1e27557">it2_end_</a>), <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01668"></a>01668 }
|
|
<a name="l01669"></a>01669 <span class="comment">// FIXME cannot compiler</span>
|
|
<a name="l01670"></a>01670 <span class="comment">// iterator2 does not have these members!</span>
|
|
<a name="l01671"></a>01671 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01672"></a><a class="code" href="a00437.html#a8b554808b16468fa12ea97b574de30ba">01672</a> <a class="code" href="a00437.html#a93e9af01b0246ac789a4f34df633be9b">const_iterator2</a> (<span class="keyword">const</span> <a class="code" href="a00439.html">iterator2</a> &it):
|
|
<a name="l01673"></a>01673 <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><<a class="code" href="a00435.html">self_type</a>> (it ()),
|
|
<a name="l01674"></a>01674 <a class="code" href="a00437.html#a60c583624a3c800e84de2cc2656ce462">begin_</a> (it.<a class="code" href="a00437.html#a60c583624a3c800e84de2cc2656ce462">begin_</a>), <a class="code" href="a00437.html#a2dad7ba48100a8909a7fbdbbd60ca103">end_</a> (it.<a class="code" href="a00437.html#a2dad7ba48100a8909a7fbdbbd60ca103">end_</a>), <a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> (it.<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a>),
|
|
<a name="l01675"></a>01675 <a class="code" href="a00437.html#a203c09e7251f5c1961599470d53dc997">it1_begin_</a> (it.<a class="code" href="a00437.html#a203c09e7251f5c1961599470d53dc997">it1_begin_</a>), <a class="code" href="a00437.html#aa66604173ed1a8202c95b65ac159fd70">it1_end_</a> (it.<a class="code" href="a00437.html#aa66604173ed1a8202c95b65ac159fd70">it1_end_</a>), <a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a> (it.<a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a>),
|
|
<a name="l01676"></a>01676 <a class="code" href="a00437.html#a66534ec41f36319ae026356dbe7bc8ca">it2_begin_</a> (it.<a class="code" href="a00437.html#a66534ec41f36319ae026356dbe7bc8ca">it2_begin_</a>), <a class="code" href="a00437.html#ab57d158ffa2934fef183c696c1e27557">it2_end_</a> (it.<a class="code" href="a00437.html#ab57d158ffa2934fef183c696c1e27557">it2_end_</a>), <a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a> (it.<a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a>) {
|
|
<a name="l01677"></a>01677 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == <a class="code" href="a00437.html#a2dad7ba48100a8909a7fbdbbd60ca103">end_</a> ||
|
|
<a name="l01678"></a>01678 (<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 0 && <a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a> != <a class="code" href="a00437.html#aa66604173ed1a8202c95b65ac159fd70">it1_end_</a>) ||
|
|
<a name="l01679"></a>01679 (<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 1 && <a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a> != <a class="code" href="a00437.html#ab57d158ffa2934fef183c696c1e27557">it2_end_</a>), <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01680"></a>01680 }
|
|
<a name="l01681"></a>01681
|
|
<a name="l01682"></a>01682 <span class="comment">// Arithmetic</span>
|
|
<a name="l01683"></a>01683 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01684"></a><a class="code" href="a00437.html#a5e7c510f8542870f5e70006da4354786">01684</a> <a class="code" href="a00437.html">const_iterator2</a> &<a class="code" href="a00437.html#a5e7c510f8542870f5e70006da4354786">operator ++ </a>() {
|
|
<a name="l01685"></a>01685 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 0 || <a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 1, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01686"></a>01686 <span class="keywordflow">if</span> (<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 0) {
|
|
<a name="l01687"></a>01687 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a> != <a class="code" href="a00437.html#aa66604173ed1a8202c95b65ac159fd70">it1_end_</a>, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01688"></a>01688 ++ <a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a>;
|
|
<a name="l01689"></a>01689 <span class="keywordflow">if</span> (<a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a> == <a class="code" href="a00437.html#aa66604173ed1a8202c95b65ac159fd70">it1_end_</a> && <a class="code" href="a00437.html#a2dad7ba48100a8909a7fbdbbd60ca103">end_</a> == 1) {
|
|
<a name="l01690"></a>01690 <a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a> = <a class="code" href="a00437.html#a66534ec41f36319ae026356dbe7bc8ca">it2_begin_</a>;
|
|
<a name="l01691"></a>01691 <a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> = 1;
|
|
<a name="l01692"></a>01692 }
|
|
<a name="l01693"></a>01693 } <span class="keywordflow">else</span> <span class="comment">/* if (current_ == 1) */</span> {
|
|
<a name="l01694"></a>01694 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a> != <a class="code" href="a00437.html#ab57d158ffa2934fef183c696c1e27557">it2_end_</a>, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01695"></a>01695 ++ <a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a>;
|
|
<a name="l01696"></a>01696 <span class="keywordflow">if</span> (<a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a> == <a class="code" href="a00437.html#ab57d158ffa2934fef183c696c1e27557">it2_end_</a> && <a class="code" href="a00437.html#a2dad7ba48100a8909a7fbdbbd60ca103">end_</a> == 0) {
|
|
<a name="l01697"></a>01697 <a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a> = <a class="code" href="a00437.html#a203c09e7251f5c1961599470d53dc997">it1_begin_</a>;
|
|
<a name="l01698"></a>01698 <a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> = 0;
|
|
<a name="l01699"></a>01699 }
|
|
<a name="l01700"></a>01700 }
|
|
<a name="l01701"></a>01701 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01702"></a>01702 }
|
|
<a name="l01703"></a>01703 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01704"></a><a class="code" href="a00437.html#a3ad3e8bd7a6b4cdea0ff88478b6396d5">01704</a> <a class="code" href="a00437.html">const_iterator2</a> &<a class="code" href="a00437.html#a3ad3e8bd7a6b4cdea0ff88478b6396d5">operator -- </a>() {
|
|
<a name="l01705"></a>01705 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 0 || <a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 1, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01706"></a>01706 <span class="keywordflow">if</span> (<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 0) {
|
|
<a name="l01707"></a>01707 <span class="keywordflow">if</span> (<a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a> == <a class="code" href="a00437.html#a203c09e7251f5c1961599470d53dc997">it1_begin_</a> && <a class="code" href="a00437.html#a60c583624a3c800e84de2cc2656ce462">begin_</a> == 1) {
|
|
<a name="l01708"></a>01708 <a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a> = <a class="code" href="a00437.html#ab57d158ffa2934fef183c696c1e27557">it2_end_</a>;
|
|
<a name="l01709"></a>01709 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a> != <a class="code" href="a00437.html#a66534ec41f36319ae026356dbe7bc8ca">it2_begin_</a>, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01710"></a>01710 -- <a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a>;
|
|
<a name="l01711"></a>01711 <a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> = 1;
|
|
<a name="l01712"></a>01712 } <span class="keywordflow">else</span> {
|
|
<a name="l01713"></a>01713 -- <a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a>;
|
|
<a name="l01714"></a>01714 }
|
|
<a name="l01715"></a>01715 } <span class="keywordflow">else</span> <span class="comment">/* if (current_ == 1) */</span> {
|
|
<a name="l01716"></a>01716 <span class="keywordflow">if</span> (<a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a> == <a class="code" href="a00437.html#a66534ec41f36319ae026356dbe7bc8ca">it2_begin_</a> && <a class="code" href="a00437.html#a60c583624a3c800e84de2cc2656ce462">begin_</a> == 0) {
|
|
<a name="l01717"></a>01717 <a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a> = <a class="code" href="a00437.html#aa66604173ed1a8202c95b65ac159fd70">it1_end_</a>;
|
|
<a name="l01718"></a>01718 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a> != <a class="code" href="a00437.html#a203c09e7251f5c1961599470d53dc997">it1_begin_</a>, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01719"></a>01719 -- <a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a>;
|
|
<a name="l01720"></a>01720 <a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> = 0;
|
|
<a name="l01721"></a>01721 } <span class="keywordflow">else</span> {
|
|
<a name="l01722"></a>01722 -- <a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a>;
|
|
<a name="l01723"></a>01723 }
|
|
<a name="l01724"></a>01724 }
|
|
<a name="l01725"></a>01725 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01726"></a>01726 }
|
|
<a name="l01727"></a>01727 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01728"></a><a class="code" href="a00437.html#a30d8e5dbd44ec4c62cabda0099c9e511">01728</a> <a class="code" href="a00437.html">const_iterator2</a> &<a class="code" href="a00437.html#a30d8e5dbd44ec4c62cabda0099c9e511">operator += </a>(<a class="code" href="a00437.html#a1c9e6764a535cbb2ac29d00d2346476d">difference_type</a> n) {
|
|
<a name="l01729"></a>01729 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 0 || <a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 1, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01730"></a>01730 <span class="keywordflow">if</span> (<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 0) {
|
|
<a name="l01731"></a>01731 <a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">size_type</a> d = (std::min) (n, <a class="code" href="a00437.html#aa66604173ed1a8202c95b65ac159fd70">it1_end_</a> - <a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a>);
|
|
<a name="l01732"></a>01732 <a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a> += d;
|
|
<a name="l01733"></a>01733 n -= d;
|
|
<a name="l01734"></a>01734 <span class="keywordflow">if</span> (n > 0 || (<a class="code" href="a00437.html#a2dad7ba48100a8909a7fbdbbd60ca103">end_</a> == 1 && <a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a> == <a class="code" href="a00437.html#aa66604173ed1a8202c95b65ac159fd70">it1_end_</a>)) {
|
|
<a name="l01735"></a>01735 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00437.html#a2dad7ba48100a8909a7fbdbbd60ca103">end_</a> == 1, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01736"></a>01736 d = (std::min) (n, <a class="code" href="a00437.html#ab57d158ffa2934fef183c696c1e27557">it2_end_</a> - <a class="code" href="a00437.html#a66534ec41f36319ae026356dbe7bc8ca">it2_begin_</a>);
|
|
<a name="l01737"></a>01737 <a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a> = <a class="code" href="a00437.html#a66534ec41f36319ae026356dbe7bc8ca">it2_begin_</a> + d;
|
|
<a name="l01738"></a>01738 n -= d;
|
|
<a name="l01739"></a>01739 <a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> = 1;
|
|
<a name="l01740"></a>01740 }
|
|
<a name="l01741"></a>01741 } <span class="keywordflow">else</span> <span class="comment">/* if (current_ == 1) */</span> {
|
|
<a name="l01742"></a>01742 <a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">size_type</a> d = (std::min) (n, <a class="code" href="a00437.html#ab57d158ffa2934fef183c696c1e27557">it2_end_</a> - <a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a>);
|
|
<a name="l01743"></a>01743 <a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a> += d;
|
|
<a name="l01744"></a>01744 n -= d;
|
|
<a name="l01745"></a>01745 <span class="keywordflow">if</span> (n > 0 || (<a class="code" href="a00437.html#a2dad7ba48100a8909a7fbdbbd60ca103">end_</a> == 0 && <a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a> == <a class="code" href="a00437.html#ab57d158ffa2934fef183c696c1e27557">it2_end_</a>)) {
|
|
<a name="l01746"></a>01746 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00437.html#a2dad7ba48100a8909a7fbdbbd60ca103">end_</a> == 0, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01747"></a>01747 d = (std::min) (n, <a class="code" href="a00437.html#aa66604173ed1a8202c95b65ac159fd70">it1_end_</a> - <a class="code" href="a00437.html#a203c09e7251f5c1961599470d53dc997">it1_begin_</a>);
|
|
<a name="l01748"></a>01748 <a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a> = <a class="code" href="a00437.html#a203c09e7251f5c1961599470d53dc997">it1_begin_</a> + d;
|
|
<a name="l01749"></a>01749 n -= d;
|
|
<a name="l01750"></a>01750 <a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> = 0;
|
|
<a name="l01751"></a>01751 }
|
|
<a name="l01752"></a>01752 }
|
|
<a name="l01753"></a>01753 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (n == 0, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01754"></a>01754 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01755"></a>01755 }
|
|
<a name="l01756"></a>01756 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01757"></a><a class="code" href="a00437.html#a3625160eb664942a66d4dc2f4d6c6143">01757</a> <a class="code" href="a00437.html">const_iterator2</a> &<a class="code" href="a00437.html#a3625160eb664942a66d4dc2f4d6c6143">operator -= </a>(<a class="code" href="a00437.html#a1c9e6764a535cbb2ac29d00d2346476d">difference_type</a> n) {
|
|
<a name="l01758"></a>01758 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 0 || <a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 1, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01759"></a>01759 <span class="keywordflow">if</span> (<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 0) {
|
|
<a name="l01760"></a>01760 <a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">size_type</a> d = (std::min) (n, <a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a> - <a class="code" href="a00437.html#a203c09e7251f5c1961599470d53dc997">it1_begin_</a>);
|
|
<a name="l01761"></a>01761 <a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a> -= d;
|
|
<a name="l01762"></a>01762 n -= d;
|
|
<a name="l01763"></a>01763 <span class="keywordflow">if</span> (n > 0) {
|
|
<a name="l01764"></a>01764 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00437.html#a2dad7ba48100a8909a7fbdbbd60ca103">end_</a> == 1, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01765"></a>01765 d = (std::min) (n, <a class="code" href="a00437.html#ab57d158ffa2934fef183c696c1e27557">it2_end_</a> - <a class="code" href="a00437.html#a66534ec41f36319ae026356dbe7bc8ca">it2_begin_</a>);
|
|
<a name="l01766"></a>01766 <a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a> = <a class="code" href="a00437.html#ab57d158ffa2934fef183c696c1e27557">it2_end_</a> - d;
|
|
<a name="l01767"></a>01767 n -= d;
|
|
<a name="l01768"></a>01768 <a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> = 1;
|
|
<a name="l01769"></a>01769 }
|
|
<a name="l01770"></a>01770 } <span class="keywordflow">else</span> <span class="comment">/* if (current_ == 1) */</span> {
|
|
<a name="l01771"></a>01771 <a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">size_type</a> d = (std::min) (n, <a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a> - <a class="code" href="a00437.html#a66534ec41f36319ae026356dbe7bc8ca">it2_begin_</a>);
|
|
<a name="l01772"></a>01772 <a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a> -= d;
|
|
<a name="l01773"></a>01773 n -= d;
|
|
<a name="l01774"></a>01774 <span class="keywordflow">if</span> (n > 0) {
|
|
<a name="l01775"></a>01775 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00437.html#a2dad7ba48100a8909a7fbdbbd60ca103">end_</a> == 0, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01776"></a>01776 d = (std::min) (n, <a class="code" href="a00437.html#aa66604173ed1a8202c95b65ac159fd70">it1_end_</a> - <a class="code" href="a00437.html#a203c09e7251f5c1961599470d53dc997">it1_begin_</a>);
|
|
<a name="l01777"></a>01777 <a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a> = <a class="code" href="a00437.html#aa66604173ed1a8202c95b65ac159fd70">it1_end_</a> - d;
|
|
<a name="l01778"></a>01778 n -= d;
|
|
<a name="l01779"></a>01779 <a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> = 0;
|
|
<a name="l01780"></a>01780 }
|
|
<a name="l01781"></a>01781 }
|
|
<a name="l01782"></a>01782 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (n == 0, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01783"></a>01783 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01784"></a>01784 }
|
|
<a name="l01785"></a>01785 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01786"></a><a class="code" href="a00437.html#a796a3e8bec8144b09bb3f59158332db7">01786</a> <a class="code" href="a00437.html#a1c9e6764a535cbb2ac29d00d2346476d">difference_type</a> <a class="code" href="a00437.html#a796a3e8bec8144b09bb3f59158332db7">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00437.html">const_iterator2</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l01787"></a>01787 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01788"></a>01788 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 0 || <a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 1, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01789"></a>01789 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (it.<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 0 || it.<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 1, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01790"></a>01790 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<span class="comment">/* begin_ == it.begin_ && */</span> <a class="code" href="a00437.html#a2dad7ba48100a8909a7fbdbbd60ca103">end_</a> == it.<a class="code" href="a00437.html#a2dad7ba48100a8909a7fbdbbd60ca103">end_</a>, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01791"></a>01791 <span class="keywordflow">if</span> (<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 0 && it.<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 0) {
|
|
<a name="l01792"></a>01792 <span class="keywordflow">return</span> <a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a> - it.<a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a>;
|
|
<a name="l01793"></a>01793 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 0 && it.<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 1) {
|
|
<a name="l01794"></a>01794 <span class="keywordflow">if</span> (<a class="code" href="a00437.html#a2dad7ba48100a8909a7fbdbbd60ca103">end_</a> == 1 && it.<a class="code" href="a00437.html#a2dad7ba48100a8909a7fbdbbd60ca103">end_</a> == 1) {
|
|
<a name="l01795"></a>01795 <span class="keywordflow">return</span> (<a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a> - it.<a class="code" href="a00437.html#aa66604173ed1a8202c95b65ac159fd70">it1_end_</a>) + (it.<a class="code" href="a00437.html#a66534ec41f36319ae026356dbe7bc8ca">it2_begin_</a> - it.<a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a>);
|
|
<a name="l01796"></a>01796 } <span class="keywordflow">else</span> <span class="comment">/* if (end_ == 0 && it.end_ == 0) */</span> {
|
|
<a name="l01797"></a>01797 <span class="keywordflow">return</span> (<a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a> - it.<a class="code" href="a00437.html#a203c09e7251f5c1961599470d53dc997">it1_begin_</a>) + (it.<a class="code" href="a00437.html#ab57d158ffa2934fef183c696c1e27557">it2_end_</a> - it.<a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a>);
|
|
<a name="l01798"></a>01798 }
|
|
<a name="l01799"></a>01799
|
|
<a name="l01800"></a>01800 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 1 && it.<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 0) {
|
|
<a name="l01801"></a>01801 <span class="keywordflow">if</span> (<a class="code" href="a00437.html#a2dad7ba48100a8909a7fbdbbd60ca103">end_</a> == 1 && it.<a class="code" href="a00437.html#a2dad7ba48100a8909a7fbdbbd60ca103">end_</a> == 1) {
|
|
<a name="l01802"></a>01802 <span class="keywordflow">return</span> (<a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a> - it.<a class="code" href="a00437.html#a66534ec41f36319ae026356dbe7bc8ca">it2_begin_</a>) + (it.<a class="code" href="a00437.html#aa66604173ed1a8202c95b65ac159fd70">it1_end_</a> - it.<a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a>);
|
|
<a name="l01803"></a>01803 } <span class="keywordflow">else</span> <span class="comment">/* if (end_ == 0 && it.end_ == 0) */</span> {
|
|
<a name="l01804"></a>01804 <span class="keywordflow">return</span> (<a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a> - it.<a class="code" href="a00437.html#ab57d158ffa2934fef183c696c1e27557">it2_end_</a>) + (it.<a class="code" href="a00437.html#a203c09e7251f5c1961599470d53dc997">it1_begin_</a> - it.<a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a>);
|
|
<a name="l01805"></a>01805 }
|
|
<a name="l01806"></a>01806 }
|
|
<a name="l01807"></a>01807 <span class="comment">/* current_ == 1 && it.current_ == 1 */</span> {
|
|
<a name="l01808"></a>01808 <span class="keywordflow">return</span> <a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a> - it.<a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a>;
|
|
<a name="l01809"></a>01809 }
|
|
<a name="l01810"></a>01810 }
|
|
<a name="l01811"></a>01811
|
|
<a name="l01812"></a>01812 <span class="comment">// Dereference</span>
|
|
<a name="l01813"></a>01813 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01814"></a><a class="code" href="a00437.html#a3d7cb5f648a46bd7c91c62832a5172d1">01814</a> <a class="code" href="a00435.html#afd3842f3af2fb355880d23a82d5d21ec">const_reference</a> <a class="code" href="a00437.html#a3d7cb5f648a46bd7c91c62832a5172d1">operator * </a>()<span class="keyword"> const </span>{
|
|
<a name="l01815"></a>01815 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 0 || <a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 1, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01816"></a>01816 <span class="keywordflow">if</span> (<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 0) {
|
|
<a name="l01817"></a>01817 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a> != <a class="code" href="a00437.html#aa66604173ed1a8202c95b65ac159fd70">it1_end_</a>, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01818"></a>01818 <span class="keywordflow">return</span> *<a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a>;
|
|
<a name="l01819"></a>01819 } <span class="keywordflow">else</span> <span class="comment">/* if (current_ == 1) */</span> {
|
|
<a name="l01820"></a>01820 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a> != <a class="code" href="a00437.html#ab57d158ffa2934fef183c696c1e27557">it2_end_</a>, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01821"></a>01821 <span class="keywordflow">return</span> *<a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a>;
|
|
<a name="l01822"></a>01822 }
|
|
<a name="l01823"></a>01823 }
|
|
<a name="l01824"></a>01824 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01825"></a><a class="code" href="a00437.html#a483f47768eaa3762b2d4328bd3815074">01825</a> <a class="code" href="a00435.html#afd3842f3af2fb355880d23a82d5d21ec">const_reference</a> <a class="code" href="a00437.html#a483f47768eaa3762b2d4328bd3815074">operator [] </a>(<a class="code" href="a00437.html#a1c9e6764a535cbb2ac29d00d2346476d">difference_type</a> n)<span class="keyword"> const </span>{
|
|
<a name="l01826"></a>01826 <span class="keywordflow">return</span> *(*<span class="keyword">this</span> + n);
|
|
<a name="l01827"></a>01827 }
|
|
<a name="l01828"></a>01828
|
|
<a name="l01829"></a>01829 <span class="preprocessor">#ifndef BOOST_UBLAS_NO_NESTED_CLASS_RELATION</span>
|
|
<a name="l01830"></a>01830 <span class="preprocessor"></span> <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01831"></a>01831 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l01832"></a>01832 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00435.html">self_type</a>::
|
|
<a name="l01833"></a>01833 <span class="preprocessor">#endif</span>
|
|
<a name="l01834"></a><a class="code" href="a00437.html#a2ab4e49e3d06f910b79039ec0ce974fa">01834</a> <span class="preprocessor"></span> <a class="code" href="a00436.html">const_iterator1</a> <a class="code" href="a00437.html#a2ab4e49e3d06f910b79039ec0ce974fa">begin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01835"></a>01835 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00435.html#a6732fbdb05b122ae599e6e634bbc4b20">find1</a> (1, 0, <a class="code" href="a00437.html#a3716fb85ab2a0d065644571557fd3bbe">index2</a> ());
|
|
<a name="l01836"></a>01836 }
|
|
<a name="l01837"></a>01837 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01838"></a>01838 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l01839"></a>01839 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00435.html">self_type</a>::
|
|
<a name="l01840"></a>01840 <span class="preprocessor">#endif</span>
|
|
<a name="l01841"></a><a class="code" href="a00437.html#ae1834b209bac9c54a8a1d6fd7e58b6ba">01841</a> <span class="preprocessor"></span> <a class="code" href="a00436.html">const_iterator1</a> <a class="code" href="a00437.html#ae1834b209bac9c54a8a1d6fd7e58b6ba">end</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01842"></a>01842 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00435.html#a6732fbdb05b122ae599e6e634bbc4b20">find1</a> (1, (*<span class="keyword">this</span>) ().<a class="code" href="a00435.html#a2fd4afbc96a17017420b7e2709f4cc34">size1</a> (), <a class="code" href="a00437.html#a3716fb85ab2a0d065644571557fd3bbe">index2</a> ());
|
|
<a name="l01843"></a>01843 }
|
|
<a name="l01844"></a>01844 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01845"></a>01845 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l01846"></a>01846 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00435.html">self_type</a>::
|
|
<a name="l01847"></a>01847 <span class="preprocessor">#endif</span>
|
|
<a name="l01848"></a><a class="code" href="a00437.html#a0975e071883d233efef95c85afa2fa4d">01848</a> <span class="preprocessor"></span> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">const_reverse_iterator1</a> <a class="code" href="a00437.html#a0975e071883d233efef95c85afa2fa4d">rbegin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01849"></a>01849 <span class="keywordflow">return</span> <a class="code" href="a00435.html#aaaa0afc55766a5a0a72609109c645bc7">const_reverse_iterator1</a> (<a class="code" href="a00437.html#ae1834b209bac9c54a8a1d6fd7e58b6ba">end</a> ());
|
|
<a name="l01850"></a>01850 }
|
|
<a name="l01851"></a>01851 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01852"></a>01852 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l01853"></a>01853 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00435.html">self_type</a>::
|
|
<a name="l01854"></a>01854 <span class="preprocessor">#endif</span>
|
|
<a name="l01855"></a><a class="code" href="a00437.html#a9733a29599343ce2e2bc5d9fffd32639">01855</a> <span class="preprocessor"></span> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">const_reverse_iterator1</a> <a class="code" href="a00437.html#a9733a29599343ce2e2bc5d9fffd32639">rend</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01856"></a>01856 <span class="keywordflow">return</span> <a class="code" href="a00435.html#aaaa0afc55766a5a0a72609109c645bc7">const_reverse_iterator1</a> (<a class="code" href="a00437.html#a2ab4e49e3d06f910b79039ec0ce974fa">begin</a> ());
|
|
<a name="l01857"></a>01857 }
|
|
<a name="l01858"></a>01858 <span class="preprocessor">#endif</span>
|
|
<a name="l01859"></a>01859 <span class="preprocessor"></span>
|
|
<a name="l01860"></a>01860 <span class="comment">// Indices</span>
|
|
<a name="l01861"></a>01861 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01862"></a><a class="code" href="a00437.html#aa963406bba8aa98e9585e484a2157c6c">01862</a> <a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">size_type</a> <a class="code" href="a00437.html#aa963406bba8aa98e9585e484a2157c6c">index1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01863"></a>01863 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 0 || <a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 1, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01864"></a>01864 <span class="keywordflow">if</span> (<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 0) {
|
|
<a name="l01865"></a>01865 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a> != <a class="code" href="a00437.html#aa66604173ed1a8202c95b65ac159fd70">it1_end_</a>, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01866"></a>01866 <span class="keywordflow">return</span> <a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a>.index2 ();
|
|
<a name="l01867"></a>01867 } <span class="keywordflow">else</span> <span class="comment">/* if (current_ == 1) */</span> {
|
|
<a name="l01868"></a>01868 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a> != <a class="code" href="a00437.html#ab57d158ffa2934fef183c696c1e27557">it2_end_</a>, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01869"></a>01869 <span class="keywordflow">return</span> <a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a>.index1 ();
|
|
<a name="l01870"></a>01870 }
|
|
<a name="l01871"></a>01871 }
|
|
<a name="l01872"></a>01872 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01873"></a><a class="code" href="a00437.html#a3716fb85ab2a0d065644571557fd3bbe">01873</a> <a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">size_type</a> <a class="code" href="a00437.html#a3716fb85ab2a0d065644571557fd3bbe">index2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01874"></a>01874 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 0 || <a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 1, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01875"></a>01875 <span class="keywordflow">if</span> (<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 0) {
|
|
<a name="l01876"></a>01876 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a> != <a class="code" href="a00437.html#aa66604173ed1a8202c95b65ac159fd70">it1_end_</a>, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01877"></a>01877 <span class="keywordflow">return</span> <a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a>.index1 ();
|
|
<a name="l01878"></a>01878 } <span class="keywordflow">else</span> <span class="comment">/* if (current_ == 1) */</span> {
|
|
<a name="l01879"></a>01879 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a> != <a class="code" href="a00437.html#ab57d158ffa2934fef183c696c1e27557">it2_end_</a>, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01880"></a>01880 <span class="keywordflow">return</span> <a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a>.index2 ();
|
|
<a name="l01881"></a>01881 }
|
|
<a name="l01882"></a>01882 }
|
|
<a name="l01883"></a>01883
|
|
<a name="l01884"></a>01884 <span class="comment">// Assignment</span>
|
|
<a name="l01885"></a>01885 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01886"></a><a class="code" href="a00437.html#a466680ab172dc6e7c2365edf03f4c6ca">01886</a> <a class="code" href="a00437.html">const_iterator2</a> &<a class="code" href="a00437.html#a466680ab172dc6e7c2365edf03f4c6ca">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00437.html">const_iterator2</a> &it) {
|
|
<a name="l01887"></a>01887 <a class="code" href="a00069.html#ab14250fc4fe5b9bcab4eb9fba8a5b5f8">container_const_reference<self_type>::assign</a> (&it ());
|
|
<a name="l01888"></a>01888 <a class="code" href="a00437.html#a60c583624a3c800e84de2cc2656ce462">begin_</a> = it.<a class="code" href="a00437.html#a60c583624a3c800e84de2cc2656ce462">begin_</a>;
|
|
<a name="l01889"></a>01889 <a class="code" href="a00437.html#a2dad7ba48100a8909a7fbdbbd60ca103">end_</a> = it.<a class="code" href="a00437.html#a2dad7ba48100a8909a7fbdbbd60ca103">end_</a>;
|
|
<a name="l01890"></a>01890 <a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> = it.<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a>;
|
|
<a name="l01891"></a>01891 <a class="code" href="a00437.html#a203c09e7251f5c1961599470d53dc997">it1_begin_</a> = it.<a class="code" href="a00437.html#a203c09e7251f5c1961599470d53dc997">it1_begin_</a>;
|
|
<a name="l01892"></a>01892 <a class="code" href="a00437.html#aa66604173ed1a8202c95b65ac159fd70">it1_end_</a> = it.<a class="code" href="a00437.html#aa66604173ed1a8202c95b65ac159fd70">it1_end_</a>;
|
|
<a name="l01893"></a>01893 <a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a> = it.<a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a>;
|
|
<a name="l01894"></a>01894 <a class="code" href="a00437.html#a66534ec41f36319ae026356dbe7bc8ca">it2_begin_</a> = it.<a class="code" href="a00437.html#a66534ec41f36319ae026356dbe7bc8ca">it2_begin_</a>;
|
|
<a name="l01895"></a>01895 <a class="code" href="a00437.html#ab57d158ffa2934fef183c696c1e27557">it2_end_</a> = it.<a class="code" href="a00437.html#ab57d158ffa2934fef183c696c1e27557">it2_end_</a>;
|
|
<a name="l01896"></a>01896 <a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a> = it.<a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a>;
|
|
<a name="l01897"></a>01897 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01898"></a>01898 }
|
|
<a name="l01899"></a>01899
|
|
<a name="l01900"></a>01900 <span class="comment">// Comparison</span>
|
|
<a name="l01901"></a>01901 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01902"></a><a class="code" href="a00437.html#a0d118c749633ea16334a45b600397136">01902</a> <span class="keywordtype">bool</span> <a class="code" href="a00437.html#a0d118c749633ea16334a45b600397136">operator == </a>(<span class="keyword">const</span> <a class="code" href="a00437.html">const_iterator2</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l01903"></a>01903 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01904"></a>01904 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 0 || <a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 1, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01905"></a>01905 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (it.<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 0 || it.<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 1, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01906"></a>01906 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<span class="comment">/* begin_ == it.begin_ && */</span> <a class="code" href="a00437.html#a2dad7ba48100a8909a7fbdbbd60ca103">end_</a> == it.<a class="code" href="a00437.html#a2dad7ba48100a8909a7fbdbbd60ca103">end_</a>, <a class="code" href="a00178.html" title="Expception raised when some interal errors occurs like computations errors, zeros values where you sh...">internal_logic</a> ());
|
|
<a name="l01907"></a>01907 <span class="keywordflow">return</span> (<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 0 && it.<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 0 && <a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a> == it.<a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a>) ||
|
|
<a name="l01908"></a>01908 (<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 1 && it.<a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a> == 1 && <a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a> == it.<a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a>);
|
|
<a name="l01909"></a>01909 }
|
|
<a name="l01910"></a>01910 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01911"></a><a class="code" href="a00437.html#a660bf6bcdac8cc3f908165156d35d880">01911</a> <span class="keywordtype">bool</span> <a class="code" href="a00437.html#a660bf6bcdac8cc3f908165156d35d880">operator < </a>(<span class="keyword">const</span> <a class="code" href="a00437.html">const_iterator2</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l01912"></a>01912 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01913"></a>01913 <span class="keywordflow">return</span> it - *<span class="keyword">this</span> > 0;
|
|
<a name="l01914"></a>01914 }
|
|
<a name="l01915"></a>01915
|
|
<a name="l01916"></a>01916 <span class="keyword">private</span>:
|
|
<a name="l01917"></a><a class="code" href="a00437.html#a60c583624a3c800e84de2cc2656ce462">01917</a> <span class="keywordtype">int</span> <a class="code" href="a00437.html#a60c583624a3c800e84de2cc2656ce462">begin_</a>;
|
|
<a name="l01918"></a><a class="code" href="a00437.html#a2dad7ba48100a8909a7fbdbbd60ca103">01918</a> <span class="keywordtype">int</span> <a class="code" href="a00437.html#a2dad7ba48100a8909a7fbdbbd60ca103">end_</a>;
|
|
<a name="l01919"></a><a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">01919</a> <span class="keywordtype">int</span> <a class="code" href="a00437.html#a1884e828c808e22da52505788c49d29d">current_</a>;
|
|
<a name="l01920"></a><a class="code" href="a00437.html#a203c09e7251f5c1961599470d53dc997">01920</a> <a class="code" href="a00435.html#a699f4df5cdc0641428fa720dbf1a6be0">const_subiterator1_type</a> <a class="code" href="a00437.html#a203c09e7251f5c1961599470d53dc997">it1_begin_</a>;
|
|
<a name="l01921"></a><a class="code" href="a00437.html#aa66604173ed1a8202c95b65ac159fd70">01921</a> <a class="code" href="a00435.html#a699f4df5cdc0641428fa720dbf1a6be0">const_subiterator1_type</a> <a class="code" href="a00437.html#aa66604173ed1a8202c95b65ac159fd70">it1_end_</a>;
|
|
<a name="l01922"></a><a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">01922</a> <a class="code" href="a00435.html#a699f4df5cdc0641428fa720dbf1a6be0">const_subiterator1_type</a> <a class="code" href="a00437.html#a231bf337c9e6f680be332efc7e47a4c8">it1_</a>;
|
|
<a name="l01923"></a><a class="code" href="a00437.html#a66534ec41f36319ae026356dbe7bc8ca">01923</a> <a class="code" href="a00435.html#a2b661a47b7a4603ee5cb550eb8c82ee4">const_subiterator2_type</a> <a class="code" href="a00437.html#a66534ec41f36319ae026356dbe7bc8ca">it2_begin_</a>;
|
|
<a name="l01924"></a><a class="code" href="a00437.html#ab57d158ffa2934fef183c696c1e27557">01924</a> <a class="code" href="a00435.html#a2b661a47b7a4603ee5cb550eb8c82ee4">const_subiterator2_type</a> <a class="code" href="a00437.html#ab57d158ffa2934fef183c696c1e27557">it2_end_</a>;
|
|
<a name="l01925"></a><a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">01925</a> <a class="code" href="a00435.html#a2b661a47b7a4603ee5cb550eb8c82ee4">const_subiterator2_type</a> <a class="code" href="a00437.html#ab2cddd78f84445494ada6f66de80988e">it2_</a>;
|
|
<a name="l01926"></a>01926 };
|
|
<a name="l01927"></a>01927 <span class="preprocessor">#endif</span>
|
|
<a name="l01928"></a>01928 <span class="preprocessor"></span>
|
|
<a name="l01929"></a>01929 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01930"></a><a class="code" href="a00435.html#aee4fc8adabe3359dbba25a2c069746e1">01930</a> <a class="code" href="a00437.html">const_iterator2</a> <a class="code" href="a00435.html#aee4fc8adabe3359dbba25a2c069746e1">begin2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01931"></a>01931 <span class="keywordflow">return</span> <a class="code" href="a00435.html#a07ace6d3a79f10a72a95f1eb79e24b7f">find2</a> (0, 0, 0);
|
|
<a name="l01932"></a>01932 }
|
|
<a name="l01933"></a>01933 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01934"></a><a class="code" href="a00435.html#a8a8e66465ac0bf411a16a24869e6d4f3">01934</a> <a class="code" href="a00437.html">const_iterator2</a> <a class="code" href="a00435.html#a8a8e66465ac0bf411a16a24869e6d4f3">end2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01935"></a>01935 <span class="keywordflow">return</span> <a class="code" href="a00435.html#a07ace6d3a79f10a72a95f1eb79e24b7f">find2</a> (0, 0, <a class="code" href="a00435.html#ab743d73ee1fd931ddec630f40dd7df3f">size2</a> ());
|
|
<a name="l01936"></a>01936 }
|
|
<a name="l01937"></a>01937
|
|
<a name="l01938"></a>01938 <span class="preprocessor">#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR</span>
|
|
<a name="l01939"></a><a class="code" href="a00439.html">01939</a> <span class="preprocessor"></span> <span class="keyword">class </span><a class="code" href="a00439.html">iterator2</a>:
|
|
<a name="l01940"></a>01940 <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><symmetric_adaptor>,
|
|
<a name="l01941"></a>01941 <span class="keyword">public</span> <a class="code" href="a00365.html" title="Base class of all random access iterators.">random_access_iterator_base</a><typename iterator_restrict_traits<
|
|
<a name="l01942"></a>01942 typename subiterator2_type::iterator_category, packed_random_access_iterator_tag>::iterator_category,
|
|
<a name="l01943"></a>01943 iterator2, value_type> {
|
|
<a name="l01944"></a>01944 <span class="keyword">public</span>:
|
|
<a name="l01945"></a><a class="code" href="a00439.html#a2f1cd3464922e7c3c8dcfe25c8e471ad">01945</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> subiterator2_type::value_type <a class="code" href="a00439.html#a2f1cd3464922e7c3c8dcfe25c8e471ad">value_type</a>;
|
|
<a name="l01946"></a><a class="code" href="a00439.html#a3fd8441b58f2f4c463e39ec6dba15ff2">01946</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> subiterator2_type::difference_type <a class="code" href="a00439.html#a3fd8441b58f2f4c463e39ec6dba15ff2">difference_type</a>;
|
|
<a name="l01947"></a><a class="code" href="a00439.html#a60c2fe9524d01a1f9aba30f98ce223b6">01947</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> subiterator2_type::reference <a class="code" href="a00439.html#a60c2fe9524d01a1f9aba30f98ce223b6">reference</a>;
|
|
<a name="l01948"></a><a class="code" href="a00439.html#ac3394613ebfe4bdb13d720efa182f76a">01948</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> subiterator2_type::pointer <a class="code" href="a00439.html#ac3394613ebfe4bdb13d720efa182f76a">pointer</a>;
|
|
<a name="l01949"></a>01949
|
|
<a name="l01950"></a><a class="code" href="a00439.html#a2c79228246b11c1338cabd46c834153a">01950</a> <span class="keyword">typedef</span> <a class="code" href="a00438.html">iterator1</a> <a class="code" href="a00439.html#a2c79228246b11c1338cabd46c834153a">dual_iterator_type</a>;
|
|
<a name="l01951"></a><a class="code" href="a00439.html#ac5773706d03dbf6b7e78b52000a002f3">01951</a> <span class="keyword">typedef</span> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator1</a> <a class="code" href="a00439.html#ac5773706d03dbf6b7e78b52000a002f3">dual_reverse_iterator_type</a>;
|
|
<a name="l01952"></a>01952
|
|
<a name="l01953"></a>01953 <span class="comment">// Construction and destruction</span>
|
|
<a name="l01954"></a>01954 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01955"></a><a class="code" href="a00439.html#a54fc1a052da0af30ef54d6fb1bc0b591">01955</a> <a class="code" href="a00439.html#a54fc1a052da0af30ef54d6fb1bc0b591">iterator2</a> ():
|
|
<a name="l01956"></a>01956 <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><<a class="code" href="a00435.html">self_type</a>> (), <a class="code" href="a00439.html#af17300edc057ce52e180c898c342a645">it2_</a> () {}
|
|
<a name="l01957"></a>01957 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01958"></a><a class="code" href="a00439.html#a4f96c1fdd02b0bc68ddaf6017c3d8a86">01958</a> <a class="code" href="a00439.html#a54fc1a052da0af30ef54d6fb1bc0b591">iterator2</a> (<a class="code" href="a00435.html">self_type</a> &m, <span class="keyword">const</span> <a class="code" href="a00435.html#aecb5701710a03332204f60a0b0ca3476">subiterator2_type</a> &it2):
|
|
<a name="l01959"></a>01959 <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><<a class="code" href="a00435.html">self_type</a>> (m), <a class="code" href="a00439.html#af17300edc057ce52e180c898c342a645">it2_</a> (it2) {}
|
|
<a name="l01960"></a>01960
|
|
<a name="l01961"></a>01961 <span class="comment">// Arithmetic</span>
|
|
<a name="l01962"></a>01962 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01963"></a><a class="code" href="a00439.html#a5ae039f516184de26a9176b278c00cc1">01963</a> <a class="code" href="a00439.html">iterator2</a> &<a class="code" href="a00439.html#a5ae039f516184de26a9176b278c00cc1">operator ++ </a>() {
|
|
<a name="l01964"></a>01964 ++ <a class="code" href="a00439.html#af17300edc057ce52e180c898c342a645">it2_</a>;
|
|
<a name="l01965"></a>01965 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01966"></a>01966 }
|
|
<a name="l01967"></a>01967 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01968"></a><a class="code" href="a00439.html#a26bfd518859df714db5b77865f1aa43e">01968</a> <a class="code" href="a00439.html">iterator2</a> &<a class="code" href="a00439.html#a26bfd518859df714db5b77865f1aa43e">operator -- </a>() {
|
|
<a name="l01969"></a>01969 -- <a class="code" href="a00439.html#af17300edc057ce52e180c898c342a645">it2_</a>;
|
|
<a name="l01970"></a>01970 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01971"></a>01971 }
|
|
<a name="l01972"></a>01972 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01973"></a><a class="code" href="a00439.html#a36ada9f16deb24303dc1f5a60dd0f274">01973</a> <a class="code" href="a00439.html">iterator2</a> &<a class="code" href="a00439.html#a36ada9f16deb24303dc1f5a60dd0f274">operator += </a>(<a class="code" href="a00439.html#a3fd8441b58f2f4c463e39ec6dba15ff2">difference_type</a> n) {
|
|
<a name="l01974"></a>01974 <a class="code" href="a00439.html#af17300edc057ce52e180c898c342a645">it2_</a> += n;
|
|
<a name="l01975"></a>01975 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01976"></a>01976 }
|
|
<a name="l01977"></a>01977 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01978"></a><a class="code" href="a00439.html#a7b2ff9534f3b57bd942315e1c6dee5cf">01978</a> <a class="code" href="a00439.html">iterator2</a> &<a class="code" href="a00439.html#a7b2ff9534f3b57bd942315e1c6dee5cf">operator -= </a>(<a class="code" href="a00439.html#a3fd8441b58f2f4c463e39ec6dba15ff2">difference_type</a> n) {
|
|
<a name="l01979"></a>01979 <a class="code" href="a00439.html#af17300edc057ce52e180c898c342a645">it2_</a> -= n;
|
|
<a name="l01980"></a>01980 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01981"></a>01981 }
|
|
<a name="l01982"></a>01982 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01983"></a><a class="code" href="a00439.html#a66ce79d57303649546c67a62fbeef802">01983</a> <a class="code" href="a00439.html#a3fd8441b58f2f4c463e39ec6dba15ff2">difference_type</a> <a class="code" href="a00439.html#a66ce79d57303649546c67a62fbeef802">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00439.html">iterator2</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l01984"></a>01984 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01985"></a>01985 <span class="keywordflow">return</span> <a class="code" href="a00439.html#af17300edc057ce52e180c898c342a645">it2_</a> - it.<a class="code" href="a00439.html#af17300edc057ce52e180c898c342a645">it2_</a>;
|
|
<a name="l01986"></a>01986 }
|
|
<a name="l01987"></a>01987
|
|
<a name="l01988"></a>01988 <span class="comment">// Dereference</span>
|
|
<a name="l01989"></a>01989 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01990"></a><a class="code" href="a00439.html#acc20e5e138f6efab3c2af286b2eb7877">01990</a> <a class="code" href="a00439.html#a60c2fe9524d01a1f9aba30f98ce223b6">reference</a> <a class="code" href="a00439.html#acc20e5e138f6efab3c2af286b2eb7877">operator * </a>()<span class="keyword"> const </span>{
|
|
<a name="l01991"></a>01991 <span class="keywordflow">return</span> *<a class="code" href="a00439.html#af17300edc057ce52e180c898c342a645">it2_</a>;
|
|
<a name="l01992"></a>01992 }
|
|
<a name="l01993"></a>01993 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01994"></a><a class="code" href="a00439.html#ac326fc135d177e69953347330987dc18">01994</a> <a class="code" href="a00439.html#a60c2fe9524d01a1f9aba30f98ce223b6">reference</a> <a class="code" href="a00439.html#ac326fc135d177e69953347330987dc18">operator [] </a>(<a class="code" href="a00439.html#a3fd8441b58f2f4c463e39ec6dba15ff2">difference_type</a> n)<span class="keyword"> const </span>{
|
|
<a name="l01995"></a>01995 <span class="keywordflow">return</span> *(*<span class="keyword">this</span> + n);
|
|
<a name="l01996"></a>01996 }
|
|
<a name="l01997"></a>01997
|
|
<a name="l01998"></a>01998 <span class="preprocessor">#ifndef BOOST_UBLAS_NO_NESTED_CLASS_RELATION</span>
|
|
<a name="l01999"></a>01999 <span class="preprocessor"></span> <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02000"></a>02000 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l02001"></a>02001 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00435.html">self_type</a>::
|
|
<a name="l02002"></a>02002 <span class="preprocessor">#endif</span>
|
|
<a name="l02003"></a><a class="code" href="a00439.html#acc9dda8df76c49caea8e8ea9ce4ee0ec">02003</a> <span class="preprocessor"></span> <a class="code" href="a00438.html">iterator1</a> <a class="code" href="a00439.html#acc9dda8df76c49caea8e8ea9ce4ee0ec">begin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l02004"></a>02004 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00435.html#a6732fbdb05b122ae599e6e634bbc4b20">find1</a> (1, 0, <a class="code" href="a00439.html#addd1bacf39b477452f5e0bb6f5018833">index2</a> ());
|
|
<a name="l02005"></a>02005 }
|
|
<a name="l02006"></a>02006 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02007"></a>02007 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l02008"></a>02008 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00435.html">self_type</a>::
|
|
<a name="l02009"></a>02009 <span class="preprocessor">#endif</span>
|
|
<a name="l02010"></a><a class="code" href="a00439.html#a9d4a1a3b29bab5fd13377e80dffaa218">02010</a> <span class="preprocessor"></span> <a class="code" href="a00438.html">iterator1</a> <a class="code" href="a00439.html#a9d4a1a3b29bab5fd13377e80dffaa218">end</a> ()<span class="keyword"> const </span>{
|
|
<a name="l02011"></a>02011 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00435.html#a6732fbdb05b122ae599e6e634bbc4b20">find1</a> (1, (*<span class="keyword">this</span>) ().<a class="code" href="a00435.html#a2fd4afbc96a17017420b7e2709f4cc34">size1</a> (), <a class="code" href="a00439.html#addd1bacf39b477452f5e0bb6f5018833">index2</a> ());
|
|
<a name="l02012"></a>02012 }
|
|
<a name="l02013"></a>02013 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02014"></a>02014 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l02015"></a>02015 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00435.html">self_type</a>::
|
|
<a name="l02016"></a>02016 <span class="preprocessor">#endif</span>
|
|
<a name="l02017"></a><a class="code" href="a00439.html#ad9bf9c9902b26e3f6b553eb8518181e9">02017</a> <span class="preprocessor"></span> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator1</a> <a class="code" href="a00439.html#ad9bf9c9902b26e3f6b553eb8518181e9">rbegin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l02018"></a>02018 <span class="keywordflow">return</span> <a class="code" href="a00435.html#a594e5141d89413d8a52be64e02944108">reverse_iterator1</a> (<a class="code" href="a00439.html#a9d4a1a3b29bab5fd13377e80dffaa218">end</a> ());
|
|
<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>02021 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l02022"></a>02022 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00435.html">self_type</a>::
|
|
<a name="l02023"></a>02023 <span class="preprocessor">#endif</span>
|
|
<a name="l02024"></a><a class="code" href="a00439.html#a83955673ed10d8b8a03aff0ba1edcb15">02024</a> <span class="preprocessor"></span> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator1</a> <a class="code" href="a00439.html#a83955673ed10d8b8a03aff0ba1edcb15">rend</a> ()<span class="keyword"> const </span>{
|
|
<a name="l02025"></a>02025 <span class="keywordflow">return</span> <a class="code" href="a00435.html#a594e5141d89413d8a52be64e02944108">reverse_iterator1</a> (<a class="code" href="a00439.html#acc9dda8df76c49caea8e8ea9ce4ee0ec">begin</a> ());
|
|
<a name="l02026"></a>02026 }
|
|
<a name="l02027"></a>02027 <span class="preprocessor">#endif</span>
|
|
<a name="l02028"></a>02028 <span class="preprocessor"></span>
|
|
<a name="l02029"></a>02029 <span class="comment">// Indices</span>
|
|
<a name="l02030"></a>02030 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02031"></a><a class="code" href="a00439.html#a944e71a3f5edf7d5b2f63f6cfda997b1">02031</a> <a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">size_type</a> <a class="code" href="a00439.html#a944e71a3f5edf7d5b2f63f6cfda997b1">index1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l02032"></a>02032 <span class="keywordflow">return</span> <a class="code" href="a00439.html#af17300edc057ce52e180c898c342a645">it2_</a>.index1 ();
|
|
<a name="l02033"></a>02033 }
|
|
<a name="l02034"></a>02034 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02035"></a><a class="code" href="a00439.html#addd1bacf39b477452f5e0bb6f5018833">02035</a> <a class="code" href="a00435.html#ad1e39a2f642a97f07695c32712bb3cc8">size_type</a> <a class="code" href="a00439.html#addd1bacf39b477452f5e0bb6f5018833">index2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l02036"></a>02036 <span class="keywordflow">return</span> <a class="code" href="a00439.html#af17300edc057ce52e180c898c342a645">it2_</a>.index2 ();
|
|
<a name="l02037"></a>02037 }
|
|
<a name="l02038"></a>02038
|
|
<a name="l02039"></a>02039 <span class="comment">// Assignment</span>
|
|
<a name="l02040"></a>02040 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02041"></a><a class="code" href="a00439.html#a36a06c4d02acbaa760b5309ba1c742ca">02041</a> <a class="code" href="a00439.html">iterator2</a> &<a class="code" href="a00439.html#a36a06c4d02acbaa760b5309ba1c742ca">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00439.html">iterator2</a> &it) {
|
|
<a name="l02042"></a>02042 <a class="code" href="a00070.html#a8ee5b7e2ac6a45d59e4873df582a02b2">container_reference<self_type>::assign</a> (&it ());
|
|
<a name="l02043"></a>02043 <a class="code" href="a00439.html#af17300edc057ce52e180c898c342a645">it2_</a> = it.<a class="code" href="a00439.html#af17300edc057ce52e180c898c342a645">it2_</a>;
|
|
<a name="l02044"></a>02044 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l02045"></a>02045 }
|
|
<a name="l02046"></a>02046
|
|
<a name="l02047"></a>02047 <span class="comment">// Comparison</span>
|
|
<a name="l02048"></a>02048 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02049"></a><a class="code" href="a00439.html#a17a504bd753f760e55742cae765cfa94">02049</a> <span class="keywordtype">bool</span> <a class="code" href="a00439.html#a17a504bd753f760e55742cae765cfa94">operator == </a>(<span class="keyword">const</span> <a class="code" href="a00439.html">iterator2</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l02050"></a>02050 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l02051"></a>02051 <span class="keywordflow">return</span> <a class="code" href="a00439.html#af17300edc057ce52e180c898c342a645">it2_</a> == it.<a class="code" href="a00439.html#af17300edc057ce52e180c898c342a645">it2_</a>;
|
|
<a name="l02052"></a>02052 }
|
|
<a name="l02053"></a>02053 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02054"></a><a class="code" href="a00439.html#a51cc7c264c7e955b642be152af531bd5">02054</a> <span class="keywordtype">bool</span> <a class="code" href="a00439.html#a51cc7c264c7e955b642be152af531bd5">operator < </a>(<span class="keyword">const</span> <a class="code" href="a00439.html">iterator2</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l02055"></a>02055 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l02056"></a>02056 <span class="keywordflow">return</span> <a class="code" href="a00439.html#af17300edc057ce52e180c898c342a645">it2_</a> < it.<a class="code" href="a00439.html#af17300edc057ce52e180c898c342a645">it2_</a>;
|
|
<a name="l02057"></a>02057 }
|
|
<a name="l02058"></a>02058
|
|
<a name="l02059"></a>02059 <span class="keyword">private</span>:
|
|
<a name="l02060"></a><a class="code" href="a00439.html#af17300edc057ce52e180c898c342a645">02060</a> <a class="code" href="a00435.html#aecb5701710a03332204f60a0b0ca3476">subiterator2_type</a> <a class="code" href="a00439.html#af17300edc057ce52e180c898c342a645">it2_</a>;
|
|
<a name="l02061"></a>02061
|
|
<a name="l02062"></a><a class="code" href="a00439.html#aac78e9ee2b65e927cfcd66579833084f">02062</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="a00437.html">const_iterator2</a>;
|
|
<a name="l02063"></a>02063 };
|
|
<a name="l02064"></a>02064 <span class="preprocessor">#endif</span>
|
|
<a name="l02065"></a>02065 <span class="preprocessor"></span>
|
|
<a name="l02066"></a>02066 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02067"></a><a class="code" href="a00435.html#aa7dd8437614f1b1247f0df88351430d7">02067</a> <a class="code" href="a00439.html">iterator2</a> <a class="code" href="a00435.html#aa7dd8437614f1b1247f0df88351430d7">begin2</a> () {
|
|
<a name="l02068"></a>02068 <span class="keywordflow">return</span> <a class="code" href="a00435.html#a07ace6d3a79f10a72a95f1eb79e24b7f">find2</a> (0, 0, 0);
|
|
<a name="l02069"></a>02069 }
|
|
<a name="l02070"></a>02070 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02071"></a><a class="code" href="a00435.html#a684cb5041ef03d56206e9034bdfe7f87">02071</a> <a class="code" href="a00439.html">iterator2</a> <a class="code" href="a00435.html#a684cb5041ef03d56206e9034bdfe7f87">end2</a> () {
|
|
<a name="l02072"></a>02072 <span class="keywordflow">return</span> <a class="code" href="a00435.html#a07ace6d3a79f10a72a95f1eb79e24b7f">find2</a> (0, 0, <a class="code" href="a00435.html#ab743d73ee1fd931ddec630f40dd7df3f">size2</a> ());
|
|
<a name="l02073"></a>02073 }
|
|
<a name="l02074"></a>02074
|
|
<a name="l02075"></a>02075 <span class="comment">// Reverse iterators</span>
|
|
<a name="l02076"></a>02076
|
|
<a name="l02077"></a>02077 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02078"></a><a class="code" href="a00435.html#a10bdab3a4caf3660cd9d49604b2ea53a">02078</a> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">const_reverse_iterator1</a> <a class="code" href="a00435.html#a10bdab3a4caf3660cd9d49604b2ea53a">rbegin1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l02079"></a>02079 <span class="keywordflow">return</span> <a class="code" href="a00435.html#aaaa0afc55766a5a0a72609109c645bc7">const_reverse_iterator1</a> (<a class="code" href="a00435.html#a9f6c64dcd03c01359d17a81d45418e35">end1</a> ());
|
|
<a name="l02080"></a>02080 }
|
|
<a name="l02081"></a>02081 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02082"></a><a class="code" href="a00435.html#a175ca63e5926544bd976a9183240f34f">02082</a> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">const_reverse_iterator1</a> <a class="code" href="a00435.html#a175ca63e5926544bd976a9183240f34f">rend1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l02083"></a>02083 <span class="keywordflow">return</span> <a class="code" href="a00435.html#aaaa0afc55766a5a0a72609109c645bc7">const_reverse_iterator1</a> (<a class="code" href="a00435.html#ab6edfd99f002a0ba94bdcd86d7c21721">begin1</a> ());
|
|
<a name="l02084"></a>02084 }
|
|
<a name="l02085"></a>02085
|
|
<a name="l02086"></a>02086 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02087"></a><a class="code" href="a00435.html#ae6d2387c23742e2aff061d84f27fcad2">02087</a> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator1</a> <a class="code" href="a00435.html#ae6d2387c23742e2aff061d84f27fcad2">rbegin1</a> () {
|
|
<a name="l02088"></a>02088 <span class="keywordflow">return</span> <a class="code" href="a00435.html#a594e5141d89413d8a52be64e02944108">reverse_iterator1</a> (<a class="code" href="a00435.html#a9f6c64dcd03c01359d17a81d45418e35">end1</a> ());
|
|
<a name="l02089"></a>02089 }
|
|
<a name="l02090"></a>02090 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02091"></a><a class="code" href="a00435.html#af75e42cd83c469031c00a9d1a3048546">02091</a> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator1</a> <a class="code" href="a00435.html#af75e42cd83c469031c00a9d1a3048546">rend1</a> () {
|
|
<a name="l02092"></a>02092 <span class="keywordflow">return</span> <a class="code" href="a00435.html#a594e5141d89413d8a52be64e02944108">reverse_iterator1</a> (<a class="code" href="a00435.html#ab6edfd99f002a0ba94bdcd86d7c21721">begin1</a> ());
|
|
<a name="l02093"></a>02093 }
|
|
<a name="l02094"></a>02094
|
|
<a name="l02095"></a>02095 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02096"></a><a class="code" href="a00435.html#aec7ec428f2c95c6d2ab1fb153fc38e28">02096</a> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">const_reverse_iterator2</a> <a class="code" href="a00435.html#aec7ec428f2c95c6d2ab1fb153fc38e28">rbegin2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l02097"></a>02097 <span class="keywordflow">return</span> <a class="code" href="a00435.html#acffe763cd0ff171557f8721ecac84ec4">const_reverse_iterator2</a> (<a class="code" href="a00435.html#a8a8e66465ac0bf411a16a24869e6d4f3">end2</a> ());
|
|
<a name="l02098"></a>02098 }
|
|
<a name="l02099"></a>02099 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02100"></a><a class="code" href="a00435.html#a7ce7fddc4ab074c9a6d57e9ab783c659">02100</a> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">const_reverse_iterator2</a> <a class="code" href="a00435.html#a7ce7fddc4ab074c9a6d57e9ab783c659">rend2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l02101"></a>02101 <span class="keywordflow">return</span> <a class="code" href="a00435.html#acffe763cd0ff171557f8721ecac84ec4">const_reverse_iterator2</a> (<a class="code" href="a00435.html#aee4fc8adabe3359dbba25a2c069746e1">begin2</a> ());
|
|
<a name="l02102"></a>02102 }
|
|
<a name="l02103"></a>02103
|
|
<a name="l02104"></a>02104 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02105"></a><a class="code" href="a00435.html#a5e7ca575b25e16c4bce4e40e7fcbe05f">02105</a> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator2</a> <a class="code" href="a00435.html#a5e7ca575b25e16c4bce4e40e7fcbe05f">rbegin2</a> () {
|
|
<a name="l02106"></a>02106 <span class="keywordflow">return</span> <a class="code" href="a00435.html#a60d8037595b1d75966dc6b2256bb1ea0">reverse_iterator2</a> (<a class="code" href="a00435.html#a8a8e66465ac0bf411a16a24869e6d4f3">end2</a> ());
|
|
<a name="l02107"></a>02107 }
|
|
<a name="l02108"></a>02108 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02109"></a><a class="code" href="a00435.html#aec720f289b3045a3143fb43e59b09371">02109</a> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator2</a> <a class="code" href="a00435.html#aec720f289b3045a3143fb43e59b09371">rend2</a> () {
|
|
<a name="l02110"></a>02110 <span class="keywordflow">return</span> <a class="code" href="a00435.html#a60d8037595b1d75966dc6b2256bb1ea0">reverse_iterator2</a> (<a class="code" href="a00435.html#aee4fc8adabe3359dbba25a2c069746e1">begin2</a> ());
|
|
<a name="l02111"></a>02111 }
|
|
<a name="l02112"></a>02112
|
|
<a name="l02113"></a>02113 <span class="keyword">private</span>:
|
|
<a name="l02114"></a><a class="code" href="a00435.html#aa5e845c9783dd4567c546a567a0ff117">02114</a> <a class="code" href="a00435.html#a6cc781d5de635db5ab3c1f0339853feb">matrix_closure_type</a> <a class="code" href="a00435.html#aa5e845c9783dd4567c546a567a0ff117">data_</a>;
|
|
<a name="l02115"></a>02115 };
|
|
<a name="l02116"></a>02116
|
|
<a name="l02117"></a>02117 <span class="comment">// Specialization for temporary_traits</span>
|
|
<a name="l02118"></a>02118 <span class="keyword">template</span> <<span class="keyword">class</span> M, <span class="keyword">class</span> TRI>
|
|
<a name="l02119"></a><a class="code" href="a00574.html">02119</a> <span class="keyword">struct </span><a class="code" href="a00548.html" title="For the creation of temporary vectors in the assignment of proxies.">vector_temporary_traits</a>< <a class="code" href="a00435.html">symmetric_adaptor</a><M, TRI> >
|
|
<a name="l02120"></a>02120 : <a class="code" href="a00548.html" title="For the creation of temporary vectors in the assignment of proxies.">vector_temporary_traits</a>< M > {} ;
|
|
<a name="l02121"></a>02121 <span class="keyword">template</span> <<span class="keyword">class</span> M, <span class="keyword">class</span> TRI>
|
|
<a name="l02122"></a><a class="code" href="a00560.html">02122</a> <span class="keyword">struct </span><a class="code" href="a00548.html" title="For the creation of temporary vectors in the assignment of proxies.">vector_temporary_traits</a>< const <a class="code" href="a00435.html">symmetric_adaptor</a><M, TRI> >
|
|
<a name="l02123"></a>02123 : <a class="code" href="a00548.html" title="For the creation of temporary vectors in the assignment of proxies.">vector_temporary_traits</a>< M > {} ;
|
|
<a name="l02124"></a>02124
|
|
<a name="l02125"></a>02125 <span class="keyword">template</span> <<span class="keyword">class</span> M, <span class="keyword">class</span> TRI>
|
|
<a name="l02126"></a><a class="code" href="a00304.html">02126</a> <span class="keyword">struct </span><a class="code" href="a00291.html" title="For the creation of temporary vectors in the assignment of proxies.">matrix_temporary_traits</a>< <a class="code" href="a00435.html">symmetric_adaptor</a><M, TRI> >
|
|
<a name="l02127"></a>02127 : <a class="code" href="a00291.html" title="For the creation of temporary vectors in the assignment of proxies.">matrix_temporary_traits</a>< M > {} ;
|
|
<a name="l02128"></a>02128 <span class="keyword">template</span> <<span class="keyword">class</span> M, <span class="keyword">class</span> TRI>
|
|
<a name="l02129"></a><a class="code" href="a00298.html">02129</a> <span class="keyword">struct </span><a class="code" href="a00291.html" title="For the creation of temporary vectors in the assignment of proxies.">matrix_temporary_traits</a>< const <a class="code" href="a00435.html">symmetric_adaptor</a><M, TRI> >
|
|
<a name="l02130"></a>02130 : <a class="code" href="a00291.html" title="For the creation of temporary vectors in the assignment of proxies.">matrix_temporary_traits</a>< M > {} ;
|
|
<a name="l02131"></a>02131
|
|
<a name="l02132"></a>02132 }}}
|
|
<a name="l02133"></a>02133
|
|
<a name="l02134"></a>02134 <span class="preprocessor">#endif</span>
|
|
</pre></div></div>
|
|
</div>
|
|
<div id="nav-path" class="navpath">
|
|
<ul>
|
|
<li class="navelem"><a class="el" href="a00636.html">symmetric.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </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 © 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>
|