mirror of
https://github.com/boostorg/ublas.git
synced 2026-02-22 03:42:19 +00:00
2587 lines
440 KiB
HTML
2587 lines
440 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: hermitian.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('a00614.html','');
|
|
</script>
|
|
<div id="doc-content">
|
|
<div class="header">
|
|
<div class="headertitle">
|
|
<h1>hermitian.hpp</h1> </div>
|
|
</div>
|
|
<div class="contents">
|
|
<a href="a00614.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-2010</span>
|
|
<a name="l00003"></a>00003 <span class="comment">// Joerg Walter, Mathias Koch, David Bellot</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_HERMITIAN_H</span>
|
|
<a name="l00014"></a>00014 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_UBLAS_HERMITIAN_H</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> <span class="comment">// for resize_preserve</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">// Hermitian 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#ac1994c4991f2ffce110f1208cda8b9a9">00026</a> <span class="keywordtype">bool</span> <a class="code" href="a00595.html#ac1994c4991f2ffce110f1208cda8b9a9">is_hermitian</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) != <a class="code" href="a00595.html#a66f888cfb70f1e904e5c7ec1d1d6e514">conj</a> (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="preprocessor">#ifdef BOOST_UBLAS_STRICT_HERMITIAN</span>
|
|
<a name="l00042"></a>00042 <span class="preprocessor"></span>
|
|
<a name="l00043"></a>00043 <span class="keyword">template</span><<span class="keyword">class</span> M>
|
|
<a name="l00044"></a>00044 <span class="keyword">class </span>hermitian_matrix_element:
|
|
<a name="l00045"></a>00045 <span class="keyword">public</span> container_reference<M> {
|
|
<a name="l00046"></a>00046 <span class="keyword">public</span>:
|
|
<a name="l00047"></a>00047 <span class="keyword">typedef</span> M matrix_type;
|
|
<a name="l00048"></a>00048 <span class="keyword">typedef</span> <span class="keyword">typename</span> M::size_type size_type;
|
|
<a name="l00049"></a>00049 <span class="keyword">typedef</span> <span class="keyword">typename</span> M::value_type value_type;
|
|
<a name="l00050"></a>00050 <span class="keyword">typedef</span> <span class="keyword">const</span> value_type &const_reference;
|
|
<a name="l00051"></a>00051 <span class="keyword">typedef</span> value_type &reference;
|
|
<a name="l00052"></a>00052 <span class="keyword">typedef</span> value_type *pointer;
|
|
<a name="l00053"></a>00053
|
|
<a name="l00054"></a>00054 <span class="comment">// Construction and destruction</span>
|
|
<a name="l00055"></a>00055 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00056"></a>00056 hermitian_matrix_element (matrix_type &m, size_type i, size_type j, value_type d):
|
|
<a name="l00057"></a>00057 container_reference<matrix_type> (m), i_ (i), j_ (j), d_ (d), dirty_ (false) {}
|
|
<a name="l00058"></a>00058 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00059"></a>00059 ~hermitian_matrix_element () {
|
|
<a name="l00060"></a>00060 <span class="keywordflow">if</span> (dirty_)
|
|
<a name="l00061"></a>00061 (*this) ().insert_element (i_, j_, d_);
|
|
<a name="l00062"></a>00062 }
|
|
<a name="l00063"></a>00063
|
|
<a name="l00064"></a>00064 <span class="comment">// Assignment</span>
|
|
<a name="l00065"></a>00065 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00066"></a>00066 hermitian_matrix_element &operator = (<span class="keyword">const</span> hermitian_matrix_element &p) {
|
|
<a name="l00067"></a>00067 <span class="comment">// Overide the implict copy assignment</span>
|
|
<a name="l00068"></a>00068 d_ = p.d_;
|
|
<a name="l00069"></a>00069 dirty_ = <span class="keyword">true</span>;
|
|
<a name="l00070"></a>00070 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00071"></a>00071 }
|
|
<a name="l00072"></a>00072 <span class="keyword">template</span><<span class="keyword">class</span> D>
|
|
<a name="l00073"></a>00073 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00074"></a>00074 hermitian_matrix_element &operator = (<span class="keyword">const</span> D &d) {
|
|
<a name="l00075"></a>00075 d_ = d;
|
|
<a name="l00076"></a>00076 dirty_ = <span class="keyword">true</span>;
|
|
<a name="l00077"></a>00077 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00078"></a>00078 }
|
|
<a name="l00079"></a>00079 <span class="keyword">template</span><<span class="keyword">class</span> D>
|
|
<a name="l00080"></a>00080 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00081"></a>00081 hermitian_matrix_element &operator += (<span class="keyword">const</span> D &d) {
|
|
<a name="l00082"></a>00082 d_ += d;
|
|
<a name="l00083"></a>00083 dirty_ = <span class="keyword">true</span>;
|
|
<a name="l00084"></a>00084 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00085"></a>00085 }
|
|
<a name="l00086"></a>00086 <span class="keyword">template</span><<span class="keyword">class</span> D>
|
|
<a name="l00087"></a>00087 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00088"></a>00088 hermitian_matrix_element &operator -= (<span class="keyword">const</span> D &d) {
|
|
<a name="l00089"></a>00089 d_ -= d;
|
|
<a name="l00090"></a>00090 dirty_ = <span class="keyword">true</span>;
|
|
<a name="l00091"></a>00091 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00092"></a>00092 }
|
|
<a name="l00093"></a>00093 <span class="keyword">template</span><<span class="keyword">class</span> D>
|
|
<a name="l00094"></a>00094 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00095"></a>00095 hermitian_matrix_element &operator *= (<span class="keyword">const</span> D &d) {
|
|
<a name="l00096"></a>00096 d_ *= d;
|
|
<a name="l00097"></a>00097 dirty_ = <span class="keyword">true</span>;
|
|
<a name="l00098"></a>00098 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00099"></a>00099 }
|
|
<a name="l00100"></a>00100 <span class="keyword">template</span><<span class="keyword">class</span> D>
|
|
<a name="l00101"></a>00101 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00102"></a>00102 hermitian_matrix_element &operator /= (<span class="keyword">const</span> D &d) {
|
|
<a name="l00103"></a>00103 d_ /= d;
|
|
<a name="l00104"></a>00104 dirty_ = <span class="keyword">true</span>;
|
|
<a name="l00105"></a>00105 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00106"></a>00106 }
|
|
<a name="l00107"></a>00107
|
|
<a name="l00108"></a>00108 <span class="comment">// Comparison</span>
|
|
<a name="l00109"></a>00109 <span class="keyword">template</span><<span class="keyword">class</span> D>
|
|
<a name="l00110"></a>00110 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00111"></a>00111 <span class="keywordtype">bool</span> <a class="code" href="a00650.html#aed00b32e2c0ca8c63b63855a13c80052">operator == </a>(<span class="keyword">const</span> D &d)<span class="keyword"> const </span>{
|
|
<a name="l00112"></a>00112 <span class="keywordflow">return</span> d_ == d;
|
|
<a name="l00113"></a>00113 }
|
|
<a name="l00114"></a>00114 <span class="keyword">template</span><<span class="keyword">class</span> D>
|
|
<a name="l00115"></a>00115 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00116"></a>00116 <span class="keywordtype">bool</span> operator != (<span class="keyword">const</span> D &d)<span class="keyword"> const </span>{
|
|
<a name="l00117"></a>00117 <span class="keywordflow">return</span> d_ != d;
|
|
<a name="l00118"></a>00118 }
|
|
<a name="l00119"></a>00119
|
|
<a name="l00120"></a>00120 <span class="comment">// Conversion</span>
|
|
<a name="l00121"></a>00121 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00122"></a>00122 operator const_reference ()<span class="keyword"> const </span>{
|
|
<a name="l00123"></a>00123 <span class="keywordflow">return</span> d_;
|
|
<a name="l00124"></a>00124 }
|
|
<a name="l00125"></a>00125
|
|
<a name="l00126"></a>00126 <span class="comment">// Swapping</span>
|
|
<a name="l00127"></a>00127 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00128"></a>00128 <span class="keywordtype">void</span> <a class="code" href="a00651.html#a7359c42bdbf22249101e062d45c8fec6">swap</a> (hermitian_matrix_element p) {
|
|
<a name="l00129"></a>00129 <span class="keywordflow">if</span> (<span class="keyword">this</span> != &p) {
|
|
<a name="l00130"></a>00130 dirty_ = <span class="keyword">true</span>;
|
|
<a name="l00131"></a>00131 p.dirty_ = <span class="keyword">true</span>;
|
|
<a name="l00132"></a>00132 <a class="code" href="a00651.html#a7359c42bdbf22249101e062d45c8fec6">std::swap</a> (d_, p.d_);
|
|
<a name="l00133"></a>00133 }
|
|
<a name="l00134"></a>00134 }
|
|
<a name="l00135"></a>00135 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00136"></a>00136 <span class="keyword">friend</span> <span class="keywordtype">void</span> <a class="code" href="a00651.html#a7359c42bdbf22249101e062d45c8fec6">swap</a> (hermitian_matrix_element p1, hermitian_matrix_element p2) {
|
|
<a name="l00137"></a>00137 p1.swap (p2);
|
|
<a name="l00138"></a>00138 }
|
|
<a name="l00139"></a>00139
|
|
<a name="l00140"></a>00140 <span class="keyword">private</span>:
|
|
<a name="l00141"></a>00141 size_type i_;
|
|
<a name="l00142"></a>00142 size_type j_;
|
|
<a name="l00143"></a>00143 value_type d_;
|
|
<a name="l00144"></a>00144 <span class="keywordtype">bool</span> dirty_;
|
|
<a name="l00145"></a>00145 };
|
|
<a name="l00146"></a>00146
|
|
<a name="l00147"></a>00147 <span class="keyword">template</span><<span class="keyword">class</span> M>
|
|
<a name="l00148"></a>00148 <span class="keyword">struct </span>type_traits<hermitian_matrix_element<M> > {
|
|
<a name="l00149"></a>00149 <span class="keyword">typedef</span> <span class="keyword">typename</span> M::value_type element_type;
|
|
<a name="l00150"></a>00150 <span class="keyword">typedef</span> type_traits<hermitian_matrix_element<M> > <a class="code" href="a00465.html#af0afbf976864cd0c3364941c0d2bd792">self_type</a>;
|
|
<a name="l00151"></a>00151 <span class="keyword">typedef</span> <span class="keyword">typename</span> type_traits<element_type>::value_type <a class="code" href="a00465.html#a07403c6f0a41e3306340852d42674555">value_type</a>;
|
|
<a name="l00152"></a>00152 <span class="keyword">typedef</span> <span class="keyword">typename</span> type_traits<element_type>::const_reference <a class="code" href="a00465.html#a08949c1a73f05352f6251c84ba2862eb">const_reference</a>;
|
|
<a name="l00153"></a>00153 <span class="keyword">typedef</span> hermitian_matrix_element<M> <a class="code" href="a00465.html#a6e2f6526266d8d1442712ad6e50120ad">reference</a>;
|
|
<a name="l00154"></a>00154 <span class="keyword">typedef</span> <span class="keyword">typename</span> type_traits<element_type>::real_type <a class="code" href="a00465.html#a8212d3d2deb6273ae2006409c81ef720">real_type</a>;
|
|
<a name="l00155"></a>00155 <span class="keyword">typedef</span> <span class="keyword">typename</span> type_traits<element_type>::precision_type <a class="code" href="a00465.html#ac8e0241ac0632c048e23e667076a31c7">precision_type</a>;
|
|
<a name="l00156"></a>00156
|
|
<a name="l00157"></a>00157 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="a00401.html#a6683da6fd3c909f9c5790f475e0d5bfe">plus_complexity</a> = type_traits<element_type>::plus_complexity;
|
|
<a name="l00158"></a>00158 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="a00465.html#a372000ec72c1567fb07a1dc6ad194fbc">multiplies_complexity</a> = type_traits<element_type>::multiplies_complexity;
|
|
<a name="l00159"></a>00159
|
|
<a name="l00160"></a>00160 <span class="keyword">static</span>
|
|
<a name="l00161"></a>00161 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00162"></a>00162 <a class="code" href="a00465.html#a8212d3d2deb6273ae2006409c81ef720">real_type</a> <a class="code" href="a00401.html#a987b7734b7b8cc6fe893666a872a22b9">real</a> (<a class="code" href="a00465.html#a08949c1a73f05352f6251c84ba2862eb">const_reference</a> t) {
|
|
<a name="l00163"></a>00163 <span class="keywordflow">return</span> <a class="code" href="a00401.html#a987b7734b7b8cc6fe893666a872a22b9">type_traits<element_type>::real</a> (t);
|
|
<a name="l00164"></a>00164 }
|
|
<a name="l00165"></a>00165 <span class="keyword">static</span>
|
|
<a name="l00166"></a>00166 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00167"></a>00167 <a class="code" href="a00465.html#a8212d3d2deb6273ae2006409c81ef720">real_type</a> <a class="code" href="a00401.html#adc3a9632d6dc70f4299f288fd074cfa6">imag</a> (<a class="code" href="a00465.html#a08949c1a73f05352f6251c84ba2862eb">const_reference</a> t) {
|
|
<a name="l00168"></a>00168 <span class="keywordflow">return</span> <a class="code" href="a00401.html#adc3a9632d6dc70f4299f288fd074cfa6">type_traits<element_type>::imag</a> (t);
|
|
<a name="l00169"></a>00169 }
|
|
<a name="l00170"></a>00170 <span class="keyword">static</span>
|
|
<a name="l00171"></a>00171 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00172"></a>00172 <a class="code" href="a00465.html#a07403c6f0a41e3306340852d42674555">value_type</a> <a class="code" href="a00401.html#acfda1dae6eabd8e8aebbcd8510925c55">conj</a> (<a class="code" href="a00465.html#a08949c1a73f05352f6251c84ba2862eb">const_reference</a> t) {
|
|
<a name="l00173"></a>00173 <span class="keywordflow">return</span> <a class="code" href="a00401.html#acfda1dae6eabd8e8aebbcd8510925c55">type_traits<element_type>::conj</a> (t);
|
|
<a name="l00174"></a>00174 }
|
|
<a name="l00175"></a>00175
|
|
<a name="l00176"></a>00176 <span class="keyword">static</span>
|
|
<a name="l00177"></a>00177 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00178"></a>00178 <a class="code" href="a00465.html#a8212d3d2deb6273ae2006409c81ef720">real_type</a> <a class="code" href="a00401.html#a504f48318b4010faafc8a9783f9605e2">type_abs</a> (<a class="code" href="a00465.html#a08949c1a73f05352f6251c84ba2862eb">const_reference</a> t) {
|
|
<a name="l00179"></a>00179 <span class="keywordflow">return</span> <a class="code" href="a00401.html#a504f48318b4010faafc8a9783f9605e2">type_traits<element_type>::type_abs</a> (t);
|
|
<a name="l00180"></a>00180 }
|
|
<a name="l00181"></a>00181 <span class="keyword">static</span>
|
|
<a name="l00182"></a>00182 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00183"></a>00183 <a class="code" href="a00465.html#a07403c6f0a41e3306340852d42674555">value_type</a> <a class="code" href="a00401.html#a39f202e048b0c10ec6782667371407a0">type_sqrt</a> (<a class="code" href="a00465.html#a08949c1a73f05352f6251c84ba2862eb">const_reference</a> t) {
|
|
<a name="l00184"></a>00184 <span class="keywordflow">return</span> <a class="code" href="a00401.html#a39f202e048b0c10ec6782667371407a0">type_traits<element_type>::type_sqrt</a> (t);
|
|
<a name="l00185"></a>00185 }
|
|
<a name="l00186"></a>00186
|
|
<a name="l00187"></a>00187 <span class="keyword">static</span>
|
|
<a name="l00188"></a>00188 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00189"></a>00189 <a class="code" href="a00465.html#a8212d3d2deb6273ae2006409c81ef720">real_type</a> <a class="code" href="a00401.html#a2cfa396d6716f1e6d1c516f2516b7f82">norm_1</a> (<a class="code" href="a00465.html#a08949c1a73f05352f6251c84ba2862eb">const_reference</a> t) {
|
|
<a name="l00190"></a>00190 <span class="keywordflow">return</span> <a class="code" href="a00401.html#a2cfa396d6716f1e6d1c516f2516b7f82">type_traits<element_type>::norm_1</a> (t);
|
|
<a name="l00191"></a>00191 }
|
|
<a name="l00192"></a>00192 <span class="keyword">static</span>
|
|
<a name="l00193"></a>00193 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00194"></a>00194 <a class="code" href="a00465.html#a8212d3d2deb6273ae2006409c81ef720">real_type</a> <a class="code" href="a00401.html#a3361e813d4faee29fcd9267b2f19d24d">norm_2</a> (<a class="code" href="a00465.html#a08949c1a73f05352f6251c84ba2862eb">const_reference</a> t) {
|
|
<a name="l00195"></a>00195 <span class="keywordflow">return</span> <a class="code" href="a00401.html#a3361e813d4faee29fcd9267b2f19d24d">type_traits<element_type>::norm_2</a> (t);
|
|
<a name="l00196"></a>00196 }
|
|
<a name="l00197"></a>00197 <span class="keyword">static</span>
|
|
<a name="l00198"></a>00198 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00199"></a>00199 <a class="code" href="a00465.html#a8212d3d2deb6273ae2006409c81ef720">real_type</a> <a class="code" href="a00401.html#a86a95450b58798f489934030028f5f66">norm_inf</a> (<a class="code" href="a00465.html#a08949c1a73f05352f6251c84ba2862eb">const_reference</a> t) {
|
|
<a name="l00200"></a>00200 <span class="keywordflow">return</span> <a class="code" href="a00401.html#a86a95450b58798f489934030028f5f66">type_traits<element_type>::norm_inf</a> (t);
|
|
<a name="l00201"></a>00201 }
|
|
<a name="l00202"></a>00202
|
|
<a name="l00203"></a>00203 <span class="keyword">static</span>
|
|
<a name="l00204"></a>00204 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00205"></a>00205 <span class="keywordtype">bool</span> <a class="code" href="a00401.html#a2baeae2303f2f6061efabd0ad1e023de">equals</a> (<a class="code" href="a00465.html#a08949c1a73f05352f6251c84ba2862eb">const_reference</a> t1, <a class="code" href="a00465.html#a08949c1a73f05352f6251c84ba2862eb">const_reference</a> t2) {
|
|
<a name="l00206"></a>00206 <span class="keywordflow">return</span> <a class="code" href="a00401.html#a2baeae2303f2f6061efabd0ad1e023de">type_traits<element_type>::equals</a> (t1, t2);
|
|
<a name="l00207"></a>00207 }
|
|
<a name="l00208"></a>00208 };
|
|
<a name="l00209"></a>00209
|
|
<a name="l00210"></a>00210 <span class="keyword">template</span><<span class="keyword">class</span> M1, <span class="keyword">class</span> T2>
|
|
<a name="l00211"></a>00211 <span class="keyword">struct </span>promote_traits<hermitian_matrix_element<M1>, T2> {
|
|
<a name="l00212"></a>00212 <span class="keyword">typedef</span> <span class="keyword">typename</span> promote_traits<typename hermitian_matrix_element<M1>::value_type, T2><a class="code" href="a00364.html#a9e5943e03b9d3150264b74abf791d55f">::promote_type</a> <a class="code" href="a00364.html#a9e5943e03b9d3150264b74abf791d55f">promote_type</a>;
|
|
<a name="l00213"></a>00213 };
|
|
<a name="l00214"></a>00214 <span class="keyword">template</span><<span class="keyword">class</span> T1, <span class="keyword">class</span> M2>
|
|
<a name="l00215"></a>00215 <span class="keyword">struct </span>promote_traits<T1, hermitian_matrix_element<M2> > {
|
|
<a name="l00216"></a>00216 <span class="keyword">typedef</span> <span class="keyword">typename</span> promote_traits<T1, typename hermitian_matrix_element<M2>::value_type><a class="code" href="a00364.html#a9e5943e03b9d3150264b74abf791d55f">::promote_type</a> <a class="code" href="a00364.html#a9e5943e03b9d3150264b74abf791d55f">promote_type</a>;
|
|
<a name="l00217"></a>00217 };
|
|
<a name="l00218"></a>00218 <span class="keyword">template</span><<span class="keyword">class</span> M1, <span class="keyword">class</span> M2>
|
|
<a name="l00219"></a>00219 <span class="keyword">struct </span>promote_traits<hermitian_matrix_element<M1>, hermitian_matrix_element<M2> > {
|
|
<a name="l00220"></a>00220 <span class="keyword">typedef</span> <span class="keyword">typename</span> promote_traits<typename hermitian_matrix_element<M1>::value_type,
|
|
<a name="l00221"></a>00221 <span class="keyword">typename</span> hermitian_matrix_element<M2>::value_type><a class="code" href="a00364.html#a9e5943e03b9d3150264b74abf791d55f">::promote_type</a> <a class="code" href="a00364.html#a9e5943e03b9d3150264b74abf791d55f">promote_type</a>;
|
|
<a name="l00222"></a>00222 };
|
|
<a name="l00223"></a>00223
|
|
<a name="l00224"></a>00224 <span class="preprocessor">#endif</span>
|
|
<a name="l00225"></a>00225 <span class="preprocessor"></span>
|
|
<a name="l00243"></a>00243 <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="l00244"></a><a class="code" href="a00150.html">00244</a> <span class="keyword">class </span><a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">hermitian_matrix</a>:
|
|
<a name="l00245"></a>00245 <span class="keyword">public</span> <a class="code" href="a00250.html" title="Base class for Matrix container models.">matrix_container</a><hermitian_matrix<T, TRI, L, A> > {
|
|
<a name="l00246"></a>00246
|
|
<a name="l00247"></a><a class="code" href="a00150.html#aafed3a7043c7b1edb1baf10667b529f0">00247</a> <span class="keyword">typedef</span> T &<a class="code" href="a00150.html#aafed3a7043c7b1edb1baf10667b529f0">true_reference</a>;
|
|
<a name="l00248"></a><a class="code" href="a00150.html#a4215448dfe3b1bb588ef1265cab3bf44">00248</a> <span class="keyword">typedef</span> T *<a class="code" href="a00150.html#a4215448dfe3b1bb588ef1265cab3bf44">pointer</a>;
|
|
<a name="l00249"></a><a class="code" href="a00150.html#ac3d6c334a9b5ae27118162822a029bb6">00249</a> <span class="keyword">typedef</span> TRI <a class="code" href="a00150.html#ac3d6c334a9b5ae27118162822a029bb6">triangular_type</a>;
|
|
<a name="l00250"></a><a class="code" href="a00150.html#a195c28015209579ffbad0c2f5176ee6e">00250</a> <span class="keyword">typedef</span> L <a class="code" href="a00150.html#a195c28015209579ffbad0c2f5176ee6e">layout_type</a>;
|
|
<a name="l00251"></a><a class="code" href="a00150.html#a3d1057b1b5ebb89b4682601830bfc826">00251</a> <span class="keyword">typedef</span> <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">hermitian_matrix<T, TRI, L, A></a> <a class="code" href="a00150.html#a3d1057b1b5ebb89b4682601830bfc826">self_type</a>;
|
|
<a name="l00252"></a>00252 <span class="keyword">public</span>:
|
|
<a name="l00253"></a>00253 <span class="preprocessor">#ifdef BOOST_UBLAS_ENABLE_PROXY_SHORTCUTS</span>
|
|
<a name="l00254"></a>00254 <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="l00255"></a>00255 <span class="preprocessor">#endif</span>
|
|
<a name="l00256"></a><a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">00256</a> <span class="preprocessor"></span> <span class="keyword">typedef</span> <span class="keyword">typename</span> A::size_type <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a>;
|
|
<a name="l00257"></a><a class="code" href="a00150.html#a62d04850fc5b37976df8b332d3e29203">00257</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> A::difference_type <a class="code" href="a00150.html#a62d04850fc5b37976df8b332d3e29203">difference_type</a>;
|
|
<a name="l00258"></a><a class="code" href="a00150.html#a717d8ee188b1eefd52b961c8326b320a">00258</a> <span class="keyword">typedef</span> T <a class="code" href="a00150.html#a717d8ee188b1eefd52b961c8326b320a">value_type</a>;
|
|
<a name="l00259"></a>00259 <span class="comment">// FIXME no better way to not return the address of a temporary?</span>
|
|
<a name="l00260"></a>00260 <span class="comment">// typedef const T &const_reference;</span>
|
|
<a name="l00261"></a><a class="code" href="a00150.html#a23935d97710a77d866996f0d8a15c992">00261</a> <span class="keyword">typedef</span> <span class="keyword">const</span> T <a class="code" href="a00150.html#a23935d97710a77d866996f0d8a15c992">const_reference</a>;
|
|
<a name="l00262"></a>00262 <span class="preprocessor">#ifndef BOOST_UBLAS_STRICT_HERMITIAN</span>
|
|
<a name="l00263"></a><a class="code" href="a00150.html#a6ddfc23d3b881431d884b6e43269d963">00263</a> <span class="preprocessor"></span> <span class="keyword">typedef</span> T &<a class="code" href="a00150.html#a6ddfc23d3b881431d884b6e43269d963">reference</a>;
|
|
<a name="l00264"></a>00264 <span class="preprocessor">#else</span>
|
|
<a name="l00265"></a>00265 <span class="preprocessor"></span> <span class="keyword">typedef</span> hermitian_matrix_element<self_type> <a class="code" href="a00150.html#a6ddfc23d3b881431d884b6e43269d963">reference</a>;
|
|
<a name="l00266"></a>00266 <span class="preprocessor">#endif</span>
|
|
<a name="l00267"></a><a class="code" href="a00150.html#a10a34613592b8156b08ef9f4fe37c03d">00267</a> <span class="preprocessor"></span> <span class="keyword">typedef</span> A <a class="code" href="a00150.html#a10a34613592b8156b08ef9f4fe37c03d">array_type</a>;
|
|
<a name="l00268"></a>00268
|
|
<a name="l00269"></a><a class="code" href="a00150.html#aa13e5840a1d27780f60a8f4d8cb65945">00269</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="a00150.html#aa13e5840a1d27780f60a8f4d8cb65945">const_closure_type</a>;
|
|
<a name="l00270"></a><a class="code" href="a00150.html#a912d2f1d420d4653b4898aa7813cdb87">00270</a> <span class="keyword">typedef</span> <a class="code" href="a00275.html">matrix_reference<self_type></a> <a class="code" href="a00150.html#a912d2f1d420d4653b4898aa7813cdb87">closure_type</a>;
|
|
<a name="l00271"></a><a class="code" href="a00150.html#a6c496a314b03ab4b92c47953d48bfc00">00271</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="a00150.html#a6c496a314b03ab4b92c47953d48bfc00">vector_temporary_type</a>;
|
|
<a name="l00272"></a><a class="code" href="a00150.html#afb3ab6ec9ccff765f971f58be86e8b3d">00272</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="a00150.html#afb3ab6ec9ccff765f971f58be86e8b3d">matrix_temporary_type</a>; <span class="comment">// general sub-matrix</span>
|
|
<a name="l00273"></a><a class="code" href="a00150.html#a851cd3f881d88810a2ca0a0613714fb6">00273</a> <span class="keyword">typedef</span> <a class="code" href="a00362.html">packed_tag</a> <a class="code" href="a00150.html#a851cd3f881d88810a2ca0a0613714fb6">storage_category</a>;
|
|
<a name="l00274"></a><a class="code" href="a00150.html#a39e08c0ad5a33d14ff7fe88aac4654b4">00274</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> L::orientation_category <a class="code" href="a00150.html#a39e08c0ad5a33d14ff7fe88aac4654b4">orientation_category</a>;
|
|
<a name="l00275"></a>00275
|
|
<a name="l00276"></a>00276 <span class="comment">// Construction and destruction</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="a00150.html#a4bf2ed38b9637d87ea437874774c2ac9">00278</a> <a class="code" href="a00150.html#a4bf2ed38b9637d87ea437874774c2ac9">hermitian_matrix</a> ():
|
|
<a name="l00279"></a>00279 <a class="code" href="a00250.html" title="Base class for Matrix container models.">matrix_container</a><<a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">self_type</a>> (),
|
|
<a name="l00280"></a>00280 <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a> (0), <a class="code" href="a00150.html#aaf1bac1951910b94023067bdf1fa6852">data_</a> (0) {}
|
|
<a name="l00281"></a>00281 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00282"></a><a class="code" href="a00150.html#a851917b9fd6da2fe0da0b30045e2ca3b">00282</a> <a class="code" href="a00150.html#a4bf2ed38b9637d87ea437874774c2ac9">hermitian_matrix</a> (<a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> <a class="code" href="a00595.html#a21019ef1d90c1854094dffa247fe1daf" title="Return the number of columns.">size</a>):
|
|
<a name="l00283"></a>00283 <a class="code" href="a00250.html" title="Base class for Matrix container models.">matrix_container</a><<a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">self_type</a>> (),
|
|
<a name="l00284"></a>00284 <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a> (<a class="code" href="a00610.html#ad7bb3e64acf4cd355a9985bdf879cf2a">BOOST_UBLAS_SAME</a> (size, size)), <a class="code" href="a00150.html#aaf1bac1951910b94023067bdf1fa6852">data_</a> (<a class="code" href="a00150.html#ac3d6c334a9b5ae27118162822a029bb6">triangular_type</a>::packed_size (<a class="code" href="a00150.html#a195c28015209579ffbad0c2f5176ee6e">layout_type</a> (), size, size)) {
|
|
<a name="l00285"></a>00285 }
|
|
<a name="l00286"></a>00286 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00287"></a><a class="code" href="a00150.html#ae3535cbd20227282691ced7bacade9a1">00287</a> <a class="code" href="a00150.html#a4bf2ed38b9637d87ea437874774c2ac9">hermitian_matrix</a> (<a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> <a class="code" href="a00150.html#a60daa55b6be28f2753debffad455b74f">size1</a>, <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> <a class="code" href="a00150.html#a85d21ec7df19bf0ebfc8ed17ece22df6">size2</a>):
|
|
<a name="l00288"></a>00288 <a class="code" href="a00250.html" title="Base class for Matrix container models.">matrix_container</a><<a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">self_type</a>> (),
|
|
<a name="l00289"></a>00289 <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a> (<a class="code" href="a00610.html#ad7bb3e64acf4cd355a9985bdf879cf2a">BOOST_UBLAS_SAME</a> (size1, size2)), <a class="code" href="a00150.html#aaf1bac1951910b94023067bdf1fa6852">data_</a> (<a class="code" href="a00150.html#ac3d6c334a9b5ae27118162822a029bb6">triangular_type</a>::packed_size (<a class="code" href="a00150.html#a195c28015209579ffbad0c2f5176ee6e">layout_type</a> (), size1, size2)) {
|
|
<a name="l00290"></a>00290 }
|
|
<a name="l00291"></a>00291 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00292"></a><a class="code" href="a00150.html#a8db7b9aadeb6797d1667c678552e305c">00292</a> <a class="code" href="a00150.html#a4bf2ed38b9637d87ea437874774c2ac9">hermitian_matrix</a> (<a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">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="a00150.html#a10a34613592b8156b08ef9f4fe37c03d">array_type</a> &<a class="code" href="a00150.html#acb20e2dc5499c4434424c47097e84467">data</a>):
|
|
<a name="l00293"></a>00293 <a class="code" href="a00250.html" title="Base class for Matrix container models.">matrix_container</a><<a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">self_type</a>> (),
|
|
<a name="l00294"></a>00294 <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a> (size), <a class="code" href="a00150.html#aaf1bac1951910b94023067bdf1fa6852">data_</a> (data) {}
|
|
<a name="l00295"></a>00295 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00296"></a><a class="code" href="a00150.html#ad8ac8f22eec50f1207a34c7a9837dbce">00296</a> <a class="code" href="a00150.html#a4bf2ed38b9637d87ea437874774c2ac9">hermitian_matrix</a> (<span class="keyword">const</span> <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">hermitian_matrix</a> &m):
|
|
<a name="l00297"></a>00297 <a class="code" href="a00250.html" title="Base class for Matrix container models.">matrix_container</a><<a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">self_type</a>> (),
|
|
<a name="l00298"></a>00298 <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a> (m.<a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>), <a class="code" href="a00150.html#aaf1bac1951910b94023067bdf1fa6852">data_</a> (m.<a class="code" href="a00150.html#aaf1bac1951910b94023067bdf1fa6852">data_</a>) {}
|
|
<a name="l00299"></a>00299 <span class="keyword">template</span><<span class="keyword">class</span> AE>
|
|
<a name="l00300"></a>00300 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00301"></a><a class="code" href="a00150.html#a0445eb9f1109e9a1ac626ea6aa2b3d29">00301</a> <a class="code" href="a00150.html#a4bf2ed38b9637d87ea437874774c2ac9">hermitian_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="l00302"></a>00302 <a class="code" href="a00250.html" title="Base class for Matrix container models.">matrix_container</a><<a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">self_type</a>> (),
|
|
<a name="l00303"></a>00303 <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a> (<a class="code" href="a00610.html#ad7bb3e64acf4cd355a9985bdf879cf2a">BOOST_UBLAS_SAME</a> (ae ().<a class="code" href="a00150.html#a60daa55b6be28f2753debffad455b74f">size1</a> (), ae ().<a class="code" href="a00150.html#a85d21ec7df19bf0ebfc8ed17ece22df6">size2</a> ())),
|
|
<a name="l00304"></a>00304 <a class="code" href="a00150.html#aaf1bac1951910b94023067bdf1fa6852">data_</a> (<a class="code" href="a00150.html#ac3d6c334a9b5ae27118162822a029bb6">triangular_type</a>::packed_size (<a class="code" href="a00150.html#a195c28015209579ffbad0c2f5176ee6e">layout_type</a> (), <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>, <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>)) {
|
|
<a name="l00305"></a>00305 matrix_assign<scalar_assign> (*<span class="keyword">this</span>, ae);
|
|
<a name="l00306"></a>00306 }
|
|
<a name="l00307"></a>00307
|
|
<a name="l00308"></a>00308 <span class="comment">// Accessors</span>
|
|
<a name="l00309"></a>00309 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00310"></a><a class="code" href="a00150.html#a60daa55b6be28f2753debffad455b74f">00310</a> <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> <a class="code" href="a00150.html#a60daa55b6be28f2753debffad455b74f">size1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00311"></a>00311 <span class="keywordflow">return</span> <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>;
|
|
<a name="l00312"></a>00312 }
|
|
<a name="l00313"></a>00313 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00314"></a><a class="code" href="a00150.html#a85d21ec7df19bf0ebfc8ed17ece22df6">00314</a> <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> <a class="code" href="a00150.html#a85d21ec7df19bf0ebfc8ed17ece22df6">size2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00315"></a>00315 <span class="keywordflow">return</span> <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>;
|
|
<a name="l00316"></a>00316 }
|
|
<a name="l00317"></a>00317
|
|
<a name="l00318"></a>00318 <span class="comment">// Storage accessors</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="a00150.html#acb20e2dc5499c4434424c47097e84467">00320</a> <span class="keyword">const</span> <a class="code" href="a00150.html#a10a34613592b8156b08ef9f4fe37c03d">array_type</a> &<a class="code" href="a00150.html#acb20e2dc5499c4434424c47097e84467">data</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00321"></a>00321 <span class="keywordflow">return</span> <a class="code" href="a00150.html#aaf1bac1951910b94023067bdf1fa6852">data_</a>;
|
|
<a name="l00322"></a>00322 }
|
|
<a name="l00323"></a>00323 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00324"></a><a class="code" href="a00150.html#aa7b98a2c54fd15562288eda9d049a49a">00324</a> <a class="code" href="a00150.html#a10a34613592b8156b08ef9f4fe37c03d">array_type</a> &<a class="code" href="a00150.html#aa7b98a2c54fd15562288eda9d049a49a">data</a> () {
|
|
<a name="l00325"></a>00325 <span class="keywordflow">return</span> <a class="code" href="a00150.html#aaf1bac1951910b94023067bdf1fa6852">data_</a>;
|
|
<a name="l00326"></a>00326 }
|
|
<a name="l00327"></a>00327
|
|
<a name="l00328"></a>00328 <span class="comment">// Resizing</span>
|
|
<a name="l00329"></a>00329 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00330"></a><a class="code" href="a00150.html#abbeab7fcf0c19a15a1752ea303b10a05">00330</a> <span class="keywordtype">void</span> <a class="code" href="a00150.html#abbeab7fcf0c19a15a1752ea303b10a05">resize</a> (<a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">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="l00331"></a>00331 <span class="keywordflow">if</span> (preserve) {
|
|
<a name="l00332"></a>00332 <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">self_type</a> temporary (size, size);
|
|
<a name="l00333"></a>00333 detail::matrix_resize_preserve<layout_type, triangular_type> (*<span class="keyword">this</span>, temporary);
|
|
<a name="l00334"></a>00334 }
|
|
<a name="l00335"></a>00335 <span class="keywordflow">else</span> {
|
|
<a name="l00336"></a>00336 <a class="code" href="a00150.html#acb20e2dc5499c4434424c47097e84467">data</a> ().resize (triangular_type::packed_size (<a class="code" href="a00150.html#a195c28015209579ffbad0c2f5176ee6e">layout_type</a> (), size, size));
|
|
<a name="l00337"></a>00337 <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a> = <a class="code" href="a00595.html#a21019ef1d90c1854094dffa247fe1daf" title="Return the number of columns.">size</a>;
|
|
<a name="l00338"></a>00338 }
|
|
<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="a00150.html#a35188080a13c8b29956d5e82e630f5c3">00341</a> <span class="keywordtype">void</span> <a class="code" href="a00150.html#a35188080a13c8b29956d5e82e630f5c3">resize</a> (<a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> <a class="code" href="a00150.html#a60daa55b6be28f2753debffad455b74f">size1</a>, <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> <a class="code" href="a00150.html#a85d21ec7df19bf0ebfc8ed17ece22df6">size2</a>, <span class="keywordtype">bool</span> preserve = <span class="keyword">true</span>) {
|
|
<a name="l00342"></a>00342 <a class="code" href="a00150.html#abbeab7fcf0c19a15a1752ea303b10a05">resize</a> (<a class="code" href="a00610.html#ad7bb3e64acf4cd355a9985bdf879cf2a">BOOST_UBLAS_SAME</a> (size1, size2), preserve);
|
|
<a name="l00343"></a>00343 }
|
|
<a name="l00344"></a>00344 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00345"></a><a class="code" href="a00150.html#aa9d9f9522de44c1ba5723cc976f48054">00345</a> <span class="keywordtype">void</span> <a class="code" href="a00150.html#aa9d9f9522de44c1ba5723cc976f48054">resize_packed_preserve</a> (<a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> <a class="code" href="a00595.html#a21019ef1d90c1854094dffa247fe1daf" title="Return the number of columns.">size</a>) {
|
|
<a name="l00346"></a>00346 <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a> = <a class="code" href="a00610.html#ad7bb3e64acf4cd355a9985bdf879cf2a">BOOST_UBLAS_SAME</a> (size, size);
|
|
<a name="l00347"></a>00347 <a class="code" href="a00150.html#acb20e2dc5499c4434424c47097e84467">data</a> ().resize (triangular_type::packed_size (<a class="code" href="a00150.html#a195c28015209579ffbad0c2f5176ee6e">layout_type</a> (), <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>, <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>), <a class="code" href="a00150.html#a717d8ee188b1eefd52b961c8326b320a">value_type</a> ());
|
|
<a name="l00348"></a>00348 }
|
|
<a name="l00349"></a>00349
|
|
<a name="l00350"></a>00350 <span class="comment">// Element access</span>
|
|
<a name="l00351"></a>00351 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00352"></a><a class="code" href="a00150.html#aa029dfbfb5e9d91d7e621450dc105a12">00352</a> <a class="code" href="a00150.html#a23935d97710a77d866996f0d8a15c992">const_reference</a> <a class="code" href="a00250.html#a0a79c4eb5e6af6ce11daa350b797c648">operator () </a>(<a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> i, <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> j)<span class="keyword"> const </span>{
|
|
<a name="l00353"></a>00353 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (i < <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>, <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l00354"></a>00354 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (j < <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>, <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l00355"></a>00355 <span class="comment">// if (i == j)</span>
|
|
<a name="l00356"></a>00356 <span class="comment">// return type_traits<value_type>::real (data () [triangular_type::element (layout_type (), i, size_, i, size_)]);</span>
|
|
<a name="l00357"></a>00357 <span class="comment">// else</span>
|
|
<a name="l00358"></a>00358 <span class="keywordflow">if</span> (triangular_type::other (i, j))
|
|
<a name="l00359"></a>00359 <span class="keywordflow">return</span> <a class="code" href="a00150.html#acb20e2dc5499c4434424c47097e84467">data</a> () [triangular_type::element (<a class="code" href="a00150.html#a195c28015209579ffbad0c2f5176ee6e">layout_type</a> (), i, <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>, j, <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>)];
|
|
<a name="l00360"></a>00360 <span class="keywordflow">else</span>
|
|
<a name="l00361"></a>00361 <span class="keywordflow">return</span> <a class="code" href="a00595.html#a66f888cfb70f1e904e5c7ec1d1d6e514">type_traits<value_type>::conj</a> (<a class="code" href="a00150.html#acb20e2dc5499c4434424c47097e84467">data</a> () [triangular_type::element (<a class="code" href="a00150.html#a195c28015209579ffbad0c2f5176ee6e">layout_type</a> (), j, <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>, i, <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>)]);
|
|
<a name="l00362"></a>00362 }
|
|
<a name="l00363"></a>00363 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00364"></a><a class="code" href="a00150.html#ae49ff86aca4026ed41b878c53b2050cc">00364</a> <a class="code" href="a00150.html#aafed3a7043c7b1edb1baf10667b529f0">true_reference</a> <a class="code" href="a00150.html#ae49ff86aca4026ed41b878c53b2050cc">at_element</a> (<a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> i, <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> j) {
|
|
<a name="l00365"></a>00365 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (i < <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>, <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l00366"></a>00366 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (j < <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>, <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l00367"></a>00367 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (triangular_type::other (i, j), <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l00368"></a>00368 <span class="keywordflow">return</span> <a class="code" href="a00150.html#acb20e2dc5499c4434424c47097e84467">data</a> () [triangular_type::element (<a class="code" href="a00150.html#a195c28015209579ffbad0c2f5176ee6e">layout_type</a> (), i, <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>, j, <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>)];
|
|
<a name="l00369"></a>00369 }
|
|
<a name="l00370"></a>00370 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00371"></a><a class="code" href="a00150.html#aed665d0e451b51f87f5cb3789ac3d39c">00371</a> <a class="code" href="a00150.html#a6ddfc23d3b881431d884b6e43269d963">reference</a> <a class="code" href="a00250.html#a0a79c4eb5e6af6ce11daa350b797c648">operator () </a>(<a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> i, <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> j) {
|
|
<a name="l00372"></a>00372 <span class="preprocessor">#ifndef BOOST_UBLAS_STRICT_HERMITIAN</span>
|
|
<a name="l00373"></a>00373 <span class="preprocessor"></span> <span class="keywordflow">if</span> (!triangular_type::other (i, j)) {
|
|
<a name="l00374"></a>00374 <a class="code" href="a00015.html">bad_index</a> ().<a class="code" href="a00015.html#a429450f27b91089cbc1dc1ee9e1ea236">raise</a> ();
|
|
<a name="l00375"></a>00375 <span class="comment">// NEVER reached</span>
|
|
<a name="l00376"></a>00376 }
|
|
<a name="l00377"></a>00377 <span class="keywordflow">return</span> <a class="code" href="a00150.html#ae49ff86aca4026ed41b878c53b2050cc">at_element</a> (i, j);
|
|
<a name="l00378"></a>00378 <span class="preprocessor">#else</span>
|
|
<a name="l00379"></a>00379 <span class="preprocessor"></span> <span class="keywordflow">if</span> (triangular_type::other (i, j))
|
|
<a name="l00380"></a>00380 <span class="keywordflow">return</span> <a class="code" href="a00150.html#a6ddfc23d3b881431d884b6e43269d963">reference</a> (*<span class="keyword">this</span>, i, j, <a class="code" href="a00150.html#acb20e2dc5499c4434424c47097e84467">data</a> () [triangular_type::element (<a class="code" href="a00150.html#a195c28015209579ffbad0c2f5176ee6e">layout_type</a> (), i, <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>, j, <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>)]);
|
|
<a name="l00381"></a>00381 <span class="keywordflow">else</span>
|
|
<a name="l00382"></a>00382 <span class="keywordflow">return</span> <a class="code" href="a00150.html#a6ddfc23d3b881431d884b6e43269d963">reference</a> (*<span class="keyword">this</span>, i, j, <a class="code" href="a00465.html">type_traits<value_type>::conj</a> (<a class="code" href="a00150.html#acb20e2dc5499c4434424c47097e84467">data</a> () [triangular_type::element (<a class="code" href="a00150.html#a195c28015209579ffbad0c2f5176ee6e">layout_type</a> (), j, <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>, i, <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>)]));
|
|
<a name="l00383"></a>00383 <span class="preprocessor">#endif</span>
|
|
<a name="l00384"></a>00384 <span class="preprocessor"></span> }
|
|
<a name="l00385"></a>00385
|
|
<a name="l00386"></a>00386 <span class="comment">// Element assignemnt</span>
|
|
<a name="l00387"></a>00387 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00388"></a><a class="code" href="a00150.html#ae6bef1f89dac124f257fa5481d1773ef">00388</a> <a class="code" href="a00150.html#aafed3a7043c7b1edb1baf10667b529f0">true_reference</a> <a class="code" href="a00150.html#ae6bef1f89dac124f257fa5481d1773ef">insert_element</a> (<a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> i, <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> j, <a class="code" href="a00150.html#a23935d97710a77d866996f0d8a15c992">const_reference</a> t) {
|
|
<a name="l00389"></a>00389 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (i < <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>, <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l00390"></a>00390 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (j < <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>, <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l00391"></a>00391 <span class="keywordflow">if</span> (triangular_type::other (i, j)) {
|
|
<a name="l00392"></a>00392 <span class="keywordflow">return</span> (<a class="code" href="a00150.html#acb20e2dc5499c4434424c47097e84467">data</a> () [triangular_type::element (<a class="code" href="a00150.html#a195c28015209579ffbad0c2f5176ee6e">layout_type</a> (), i, <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>, j, <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>)] = t);
|
|
<a name="l00393"></a>00393 } <span class="keywordflow">else</span> {
|
|
<a name="l00394"></a>00394 <span class="keywordflow">return</span> (<a class="code" href="a00150.html#acb20e2dc5499c4434424c47097e84467">data</a> () [triangular_type::element (<a class="code" href="a00150.html#a195c28015209579ffbad0c2f5176ee6e">layout_type</a> (), j, <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>, i, <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>)] = <a class="code" href="a00465.html">type_traits<value_type>::conj</a> (t));
|
|
<a name="l00395"></a>00395 }
|
|
<a name="l00396"></a>00396 }
|
|
<a name="l00397"></a>00397 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00398"></a><a class="code" href="a00150.html#a9ec7ef104aec095de2bb6b1ebf4ed182">00398</a> <span class="keywordtype">void</span> <a class="code" href="a00150.html#a9ec7ef104aec095de2bb6b1ebf4ed182">erase_element</a> (<a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> i, <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> j) {
|
|
<a name="l00399"></a>00399 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (i < <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>, <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l00400"></a>00400 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (j < <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>, <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l00401"></a>00401 <a class="code" href="a00150.html#acb20e2dc5499c4434424c47097e84467">data</a> () [triangular_type::element (<a class="code" href="a00150.html#a195c28015209579ffbad0c2f5176ee6e">layout_type</a> (), i, <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>, j, <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>)] = <a class="code" href="a00150.html#a717d8ee188b1eefd52b961c8326b320a">value_type</a><span class="comment">/*zero*/</span>();
|
|
<a name="l00402"></a>00402 }
|
|
<a name="l00403"></a>00403
|
|
<a name="l00404"></a>00404 <span class="comment">// Zeroing</span>
|
|
<a name="l00405"></a>00405 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00406"></a><a class="code" href="a00150.html#abca3f8285287df0406a6a648eae25438">00406</a> <span class="keywordtype">void</span> <a class="code" href="a00150.html#abca3f8285287df0406a6a648eae25438">clear</a> () {
|
|
<a name="l00407"></a>00407 std::fill (<a class="code" href="a00150.html#acb20e2dc5499c4434424c47097e84467">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="a00150.html#acb20e2dc5499c4434424c47097e84467">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="a00150.html#a717d8ee188b1eefd52b961c8326b320a">value_type</a><span class="comment">/*zero*/</span>());
|
|
<a name="l00408"></a>00408 }
|
|
<a name="l00409"></a>00409
|
|
<a name="l00410"></a>00410 <span class="comment">// Assignment</span>
|
|
<a name="l00411"></a>00411 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00412"></a><a class="code" href="a00150.html#a3fc48622bdb89fa0a98ef4c33ddf5f81">00412</a> <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">hermitian_matrix</a> &<a class="code" href="a00150.html#a3fc48622bdb89fa0a98ef4c33ddf5f81">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">hermitian_matrix</a> &m) {
|
|
<a name="l00413"></a>00413 <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a> = m.<a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>;
|
|
<a name="l00414"></a>00414 <a class="code" href="a00150.html#acb20e2dc5499c4434424c47097e84467">data</a> () = m.<a class="code" href="a00150.html#acb20e2dc5499c4434424c47097e84467">data</a> ();
|
|
<a name="l00415"></a>00415 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00416"></a>00416 }
|
|
<a name="l00417"></a>00417 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00418"></a><a class="code" href="a00150.html#a2ef153da603fda780fde9a0ce6565418">00418</a> <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">hermitian_matrix</a> &<a class="code" href="a00150.html#a2ef153da603fda780fde9a0ce6565418">assign_temporary</a> (<a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">hermitian_matrix</a> &m) {
|
|
<a name="l00419"></a>00419 <a class="code" href="a00150.html#acc2cc8189b58f475674a4ca1933f92b9">swap</a> (m);
|
|
<a name="l00420"></a>00420 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00421"></a>00421 }
|
|
<a name="l00422"></a>00422 <span class="keyword">template</span><<span class="keyword">class</span> AE>
|
|
<a name="l00423"></a>00423 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00424"></a><a class="code" href="a00150.html#a53b0849d3186ca2cabd241f3075b0a66">00424</a> <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">hermitian_matrix</a> &<a class="code" href="a00150.html#a3fc48622bdb89fa0a98ef4c33ddf5f81">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="l00425"></a>00425 <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">self_type</a> temporary (ae);
|
|
<a name="l00426"></a>00426 <span class="keywordflow">return</span> <a class="code" href="a00150.html#a2ef153da603fda780fde9a0ce6565418">assign_temporary</a> (temporary);
|
|
<a name="l00427"></a>00427 }
|
|
<a name="l00428"></a>00428 <span class="keyword">template</span><<span class="keyword">class</span> AE>
|
|
<a name="l00429"></a>00429 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00430"></a><a class="code" href="a00150.html#a018b5d0d08d4c2ac80382f94a9f0f3f1">00430</a> <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">hermitian_matrix</a> &<a class="code" href="a00150.html#a018b5d0d08d4c2ac80382f94a9f0f3f1">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="l00431"></a>00431 matrix_assign<scalar_assign> (*<span class="keyword">this</span>, ae);
|
|
<a name="l00432"></a>00432 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00433"></a>00433 }
|
|
<a name="l00434"></a>00434 <span class="keyword">template</span><<span class="keyword">class</span> AE>
|
|
<a name="l00435"></a>00435 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00436"></a><a class="code" href="a00150.html#ad5f8cbe3ea81703f1ff0f84c12005d3b">00436</a> <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">hermitian_matrix</a>& <a class="code" href="a00150.html#ad5f8cbe3ea81703f1ff0f84c12005d3b">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="l00437"></a>00437 <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">self_type</a> temporary (*<span class="keyword">this</span> + ae);
|
|
<a name="l00438"></a>00438 <span class="keywordflow">return</span> <a class="code" href="a00150.html#a2ef153da603fda780fde9a0ce6565418">assign_temporary</a> (temporary);
|
|
<a name="l00439"></a>00439 }
|
|
<a name="l00440"></a>00440 <span class="keyword">template</span><<span class="keyword">class</span> AE>
|
|
<a name="l00441"></a>00441 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00442"></a><a class="code" href="a00150.html#ab93b963e5925be68627417a062dbdf97">00442</a> <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">hermitian_matrix</a> &<a class="code" href="a00150.html#ab93b963e5925be68627417a062dbdf97">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="l00443"></a>00443 matrix_assign<scalar_plus_assign> (*<span class="keyword">this</span>, ae);
|
|
<a name="l00444"></a>00444 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00445"></a>00445 }
|
|
<a name="l00446"></a>00446 <span class="keyword">template</span><<span class="keyword">class</span> AE>
|
|
<a name="l00447"></a>00447 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00448"></a><a class="code" href="a00150.html#ab08ad158647dfbdde92ca0a08c7a5ca1">00448</a> <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">hermitian_matrix</a>& <a class="code" href="a00150.html#ab08ad158647dfbdde92ca0a08c7a5ca1">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="l00449"></a>00449 <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">self_type</a> temporary (*<span class="keyword">this</span> - ae);
|
|
<a name="l00450"></a>00450 <span class="keywordflow">return</span> <a class="code" href="a00150.html#a2ef153da603fda780fde9a0ce6565418">assign_temporary</a> (temporary);
|
|
<a name="l00451"></a>00451 }
|
|
<a name="l00452"></a>00452 <span class="keyword">template</span><<span class="keyword">class</span> AE>
|
|
<a name="l00453"></a>00453 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00454"></a><a class="code" href="a00150.html#a3abdf7232c83206598c033c30ceb9c2d">00454</a> <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">hermitian_matrix</a> &<a class="code" href="a00150.html#a3abdf7232c83206598c033c30ceb9c2d">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="l00455"></a>00455 matrix_assign<scalar_minus_assign> (*<span class="keyword">this</span>, ae);
|
|
<a name="l00456"></a>00456 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00457"></a>00457 }
|
|
<a name="l00458"></a>00458 <span class="keyword">template</span><<span class="keyword">class</span> AT>
|
|
<a name="l00459"></a>00459 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00460"></a><a class="code" href="a00150.html#ae75f4772e5818c09fc81e17c84abfabf">00460</a> <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">hermitian_matrix</a>& <a class="code" href="a00150.html#ae75f4772e5818c09fc81e17c84abfabf">operator *= </a>(<span class="keyword">const</span> AT &at) {
|
|
<a name="l00461"></a>00461 <span class="comment">// Multiplication is only allowed for real scalars,</span>
|
|
<a name="l00462"></a>00462 <span class="comment">// otherwise the resulting matrix isn't hermitian.</span>
|
|
<a name="l00463"></a>00463 <span class="comment">// Thanks to Peter Schmitteckert for spotting this.</span>
|
|
<a name="l00464"></a>00464 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00465.html">type_traits<value_type>::imag</a> (at) == 0, <a class="code" href="a00358.html">non_real</a> ());
|
|
<a name="l00465"></a>00465 matrix_assign_scalar<scalar_multiplies_assign> (*<span class="keyword">this</span>, at);
|
|
<a name="l00466"></a>00466 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00467"></a>00467 }
|
|
<a name="l00468"></a>00468 <span class="keyword">template</span><<span class="keyword">class</span> AT>
|
|
<a name="l00469"></a>00469 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00470"></a><a class="code" href="a00150.html#adbff697055d0ccc83de6a35baac131be">00470</a> <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">hermitian_matrix</a>& <a class="code" href="a00150.html#adbff697055d0ccc83de6a35baac131be">operator /= </a>(<span class="keyword">const</span> AT &at) {
|
|
<a name="l00471"></a>00471 <span class="comment">// Multiplication is only allowed for real scalars,</span>
|
|
<a name="l00472"></a>00472 <span class="comment">// otherwise the resulting matrix isn't hermitian.</span>
|
|
<a name="l00473"></a>00473 <span class="comment">// Thanks to Peter Schmitteckert for spotting this.</span>
|
|
<a name="l00474"></a>00474 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00465.html">type_traits<value_type>::imag</a> (at) == 0, <a class="code" href="a00358.html">non_real</a> ());
|
|
<a name="l00475"></a>00475 matrix_assign_scalar<scalar_divides_assign> (*<span class="keyword">this</span>, at);
|
|
<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 name="l00479"></a>00479 <span class="comment">// Swapping</span>
|
|
<a name="l00480"></a>00480 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00481"></a><a class="code" href="a00150.html#acc2cc8189b58f475674a4ca1933f92b9">00481</a> <span class="keywordtype">void</span> <a class="code" href="a00150.html#acc2cc8189b58f475674a4ca1933f92b9">swap</a> (<a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">hermitian_matrix</a> &m) {
|
|
<a name="l00482"></a>00482 <span class="keywordflow">if</span> (<span class="keyword">this</span> != &m) {
|
|
<a name="l00483"></a>00483 <a class="code" href="a00150.html#acc2cc8189b58f475674a4ca1933f92b9">std::swap</a> (<a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>, m.<a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>);
|
|
<a name="l00484"></a>00484 <a class="code" href="a00150.html#acb20e2dc5499c4434424c47097e84467">data</a> ().swap (m.<a class="code" href="a00150.html#acb20e2dc5499c4434424c47097e84467">data</a> ());
|
|
<a name="l00485"></a>00485 }
|
|
<a name="l00486"></a>00486 }
|
|
<a name="l00487"></a>00487 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00488"></a><a class="code" href="a00150.html#af4f5cebced49db4eaab9f8b6b0e6f22d">00488</a> <span class="keyword">friend</span> <span class="keywordtype">void</span> <a class="code" href="a00150.html#af4f5cebced49db4eaab9f8b6b0e6f22d">swap</a> (<a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">hermitian_matrix</a> &m1, <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">hermitian_matrix</a> &m2) {
|
|
<a name="l00489"></a>00489 m1.<a class="code" href="a00150.html#acc2cc8189b58f475674a4ca1933f92b9">swap</a> (m2);
|
|
<a name="l00490"></a>00490 }
|
|
<a name="l00491"></a>00491
|
|
<a name="l00492"></a>00492 <span class="comment">// Iterator types</span>
|
|
<a name="l00493"></a>00493 <span class="preprocessor">#ifdef BOOST_UBLAS_USE_INDEXED_ITERATOR</span>
|
|
<a name="l00494"></a>00494 <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="l00495"></a>00495 <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="l00496"></a>00496 <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, packed_random_access_iterator_tag></a> const_iterator1;
|
|
<a name="l00497"></a>00497 <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, packed_random_access_iterator_tag></a> const_iterator2;
|
|
<a name="l00498"></a>00498 <span class="preprocessor">#else</span>
|
|
<a name="l00499"></a>00499 <span class="preprocessor"></span> <span class="keyword">class </span>const_iterator1;
|
|
<a name="l00500"></a>00500 <span class="keyword">class </span>iterator1;
|
|
<a name="l00501"></a>00501 <span class="keyword">class </span>const_iterator2;
|
|
<a name="l00502"></a><a class="code" href="a00150.html#a2aefa64fead82b0a97588631b4e0518a">00502</a> <span class="keyword">class </span><a class="code" href="a00154.html">iterator2</a>;
|
|
<a name="l00503"></a>00503 <span class="preprocessor">#endif</span>
|
|
<a name="l00504"></a>00504 <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="a00150.html#a2aefa64fead82b0a97588631b4e0518a">const_reverse_iterator1</a>;
|
|
<a name="l00505"></a><a class="code" href="a00150.html#aa376cbc4b849f940af2386e33e91f9dd">00505</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="a00150.html#aa376cbc4b849f940af2386e33e91f9dd">reverse_iterator1</a>;
|
|
<a name="l00506"></a><a class="code" href="a00150.html#a8fac55be8292fddcd0a17100ab99eb3a">00506</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="a00150.html#a8fac55be8292fddcd0a17100ab99eb3a">const_reverse_iterator2</a>;
|
|
<a name="l00507"></a><a class="code" href="a00150.html#aa1f6b6014c2a1d03a9f6c3ab2c1e2768">00507</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="a00150.html#aa1f6b6014c2a1d03a9f6c3ab2c1e2768">reverse_iterator2</a>;
|
|
<a name="l00508"></a>00508
|
|
<a name="l00509"></a>00509 <span class="comment">// Element lookup</span>
|
|
<a name="l00510"></a>00510 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00511"></a><a class="code" href="a00150.html#a651ac196c7d393d04acc54f9a1ba9d1d">00511</a> <a class="code" href="a00151.html">const_iterator1</a> <a class="code" href="a00150.html#a651ac196c7d393d04acc54f9a1ba9d1d">find1</a> (<span class="keywordtype">int</span> <span class="comment">/* rank */</span>, <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> i, <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> j)<span class="keyword"> const </span>{
|
|
<a name="l00512"></a>00512 <span class="keywordflow">return</span> <a class="code" href="a00151.html">const_iterator1</a> (*<span class="keyword">this</span>, i, j);
|
|
<a name="l00513"></a>00513 }
|
|
<a name="l00514"></a>00514 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00515"></a><a class="code" href="a00150.html#a74ec0080b7b679819db642b2875d662d">00515</a> <a class="code" href="a00153.html">iterator1</a> <a class="code" href="a00150.html#a74ec0080b7b679819db642b2875d662d">find1</a> (<span class="keywordtype">int</span> rank, <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> i, <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> j) {
|
|
<a name="l00516"></a>00516 <span class="keywordflow">if</span> (rank == 1)
|
|
<a name="l00517"></a>00517 i = triangular_type::mutable_restrict1 (i, j, <a class="code" href="a00150.html#a60daa55b6be28f2753debffad455b74f">size1</a>(), <a class="code" href="a00150.html#a85d21ec7df19bf0ebfc8ed17ece22df6">size2</a>());
|
|
<a name="l00518"></a>00518 <span class="keywordflow">if</span> (rank == 0)
|
|
<a name="l00519"></a>00519 i = triangular_type::global_mutable_restrict1 (i, <a class="code" href="a00150.html#a60daa55b6be28f2753debffad455b74f">size1</a>(), j, <a class="code" href="a00150.html#a85d21ec7df19bf0ebfc8ed17ece22df6">size2</a>());
|
|
<a name="l00520"></a>00520 <span class="keywordflow">return</span> <a class="code" href="a00153.html">iterator1</a> (*<span class="keyword">this</span>, i, j);
|
|
<a name="l00521"></a>00521 }
|
|
<a name="l00522"></a>00522 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00523"></a><a class="code" href="a00150.html#a4824ddc79f33c92f35f363793ae25755">00523</a> <a class="code" href="a00152.html">const_iterator2</a> <a class="code" href="a00150.html#a4824ddc79f33c92f35f363793ae25755">find2</a> (<span class="keywordtype">int</span> <span class="comment">/* rank */</span>, <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> i, <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> j)<span class="keyword"> const </span>{
|
|
<a name="l00524"></a>00524 <span class="keywordflow">return</span> <a class="code" href="a00152.html">const_iterator2</a> (*<span class="keyword">this</span>, i, j);
|
|
<a name="l00525"></a>00525 }
|
|
<a name="l00526"></a>00526 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00527"></a><a class="code" href="a00150.html#a61f69c68b74e85ff8f8216ed64f53bf5">00527</a> <a class="code" href="a00154.html">iterator2</a> <a class="code" href="a00150.html#a61f69c68b74e85ff8f8216ed64f53bf5">find2</a> (<span class="keywordtype">int</span> rank, <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> i, <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> j) {
|
|
<a name="l00528"></a>00528 <span class="keywordflow">if</span> (rank == 1)
|
|
<a name="l00529"></a>00529 j = triangular_type::mutable_restrict2 (i, j, <a class="code" href="a00150.html#a60daa55b6be28f2753debffad455b74f">size1</a>(), <a class="code" href="a00150.html#a85d21ec7df19bf0ebfc8ed17ece22df6">size2</a>());
|
|
<a name="l00530"></a>00530 <span class="keywordflow">if</span> (rank == 0)
|
|
<a name="l00531"></a>00531 j = triangular_type::global_mutable_restrict2 (i, <a class="code" href="a00150.html#a60daa55b6be28f2753debffad455b74f">size1</a>(), j, <a class="code" href="a00150.html#a85d21ec7df19bf0ebfc8ed17ece22df6">size2</a>());
|
|
<a name="l00532"></a>00532 <span class="keywordflow">return</span> <a class="code" href="a00154.html">iterator2</a> (*<span class="keyword">this</span>, i, j);
|
|
<a name="l00533"></a>00533 }
|
|
<a name="l00534"></a>00534
|
|
<a name="l00535"></a>00535 <span class="comment">// Iterators simply are indices.</span>
|
|
<a name="l00536"></a>00536
|
|
<a name="l00537"></a>00537 <span class="preprocessor">#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR</span>
|
|
<a name="l00538"></a><a class="code" href="a00151.html">00538</a> <span class="preprocessor"></span> <span class="keyword">class </span><a class="code" href="a00151.html">const_iterator1</a>:
|
|
<a name="l00539"></a>00539 <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><hermitian_matrix>,
|
|
<a name="l00540"></a>00540 <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="l00541"></a>00541 const_iterator1, value_type> {
|
|
<a name="l00542"></a>00542 <span class="keyword">public</span>:
|
|
<a name="l00543"></a><a class="code" href="a00151.html#a470449c26c277f4d119b3275084c2970">00543</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00150.html#a717d8ee188b1eefd52b961c8326b320a">hermitian_matrix::value_type</a> <a class="code" href="a00151.html#a470449c26c277f4d119b3275084c2970">value_type</a>;
|
|
<a name="l00544"></a><a class="code" href="a00151.html#a43533117e5b9079cd63a85bc9583551e">00544</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00150.html#a62d04850fc5b37976df8b332d3e29203">hermitian_matrix::difference_type</a> <a class="code" href="a00151.html#a43533117e5b9079cd63a85bc9583551e">difference_type</a>;
|
|
<a name="l00545"></a><a class="code" href="a00151.html#a428205c7abb073dbd1115a221731faf5">00545</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00150.html#a23935d97710a77d866996f0d8a15c992">hermitian_matrix::const_reference</a> <a class="code" href="a00151.html#a428205c7abb073dbd1115a221731faf5">reference</a>;
|
|
<a name="l00546"></a><a class="code" href="a00151.html#a8ecedba09ef6540ff40a58d4de1f5005">00546</a> <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="keyword">typename</span> <a class="code" href="a00150.html#a4215448dfe3b1bb588ef1265cab3bf44">hermitian_matrix::pointer</a> <a class="code" href="a00151.html#a8ecedba09ef6540ff40a58d4de1f5005">pointer</a>;
|
|
<a name="l00547"></a>00547
|
|
<a name="l00548"></a><a class="code" href="a00151.html#aa4257a1bddf145d0abfcd5bbabda74d4">00548</a> <span class="keyword">typedef</span> <a class="code" href="a00152.html">const_iterator2</a> <a class="code" href="a00151.html#aa4257a1bddf145d0abfcd5bbabda74d4">dual_iterator_type</a>;
|
|
<a name="l00549"></a><a class="code" href="a00151.html#a28cec1b830ceee0ebf8f0d6532b69e13">00549</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="a00151.html#a28cec1b830ceee0ebf8f0d6532b69e13">dual_reverse_iterator_type</a>;
|
|
<a name="l00550"></a>00550
|
|
<a name="l00551"></a>00551 <span class="comment">// Construction and destruction</span>
|
|
<a name="l00552"></a>00552 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00553"></a><a class="code" href="a00151.html#ae46888980014e8d50626a0df1d48553e">00553</a> <a class="code" href="a00151.html#ae46888980014e8d50626a0df1d48553e">const_iterator1</a> ():
|
|
<a name="l00554"></a>00554 <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="a00150.html" title="A hermitian matrix of values of type T.">self_type</a>> (), <a class="code" href="a00151.html#a6b79865346bac9ba66d8db562fa87aa2">it1_</a> (), <a class="code" href="a00151.html#a39ee26d3e2d224b64bcb2c1b0494b2b6">it2_</a> () {}
|
|
<a name="l00555"></a>00555 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00556"></a><a class="code" href="a00151.html#ae82f25d8c9114e830933a0118c714f6b">00556</a> <a class="code" href="a00151.html#ae46888980014e8d50626a0df1d48553e">const_iterator1</a> (<span class="keyword">const</span> <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">self_type</a> &m, <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> it1, <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> it2):
|
|
<a name="l00557"></a>00557 <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="a00150.html" title="A hermitian matrix of values of type T.">self_type</a>> (m), <a class="code" href="a00151.html#a6b79865346bac9ba66d8db562fa87aa2">it1_</a> (it1), <a class="code" href="a00151.html#a39ee26d3e2d224b64bcb2c1b0494b2b6">it2_</a> (it2) {}
|
|
<a name="l00558"></a>00558 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00559"></a><a class="code" href="a00151.html#a04e4c93a3ba748f92c05a8f2a15b4446">00559</a> <a class="code" href="a00151.html#ae46888980014e8d50626a0df1d48553e">const_iterator1</a> (<span class="keyword">const</span> <a class="code" href="a00153.html">iterator1</a> &it):
|
|
<a name="l00560"></a>00560 <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="a00150.html" title="A hermitian matrix of values of type T.">self_type</a>> (it ()), <a class="code" href="a00151.html#a6b79865346bac9ba66d8db562fa87aa2">it1_</a> (it.<a class="code" href="a00151.html#a6b79865346bac9ba66d8db562fa87aa2">it1_</a>), <a class="code" href="a00151.html#a39ee26d3e2d224b64bcb2c1b0494b2b6">it2_</a> (it.<a class="code" href="a00151.html#a39ee26d3e2d224b64bcb2c1b0494b2b6">it2_</a>) {}
|
|
<a name="l00561"></a>00561
|
|
<a name="l00562"></a>00562 <span class="comment">// Arithmetic</span>
|
|
<a name="l00563"></a>00563 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00564"></a><a class="code" href="a00151.html#a345cd405208fd083f936d0fe4a64f742">00564</a> <a class="code" href="a00151.html">const_iterator1</a> &<a class="code" href="a00151.html#a345cd405208fd083f936d0fe4a64f742">operator ++ </a>() {
|
|
<a name="l00565"></a>00565 ++ <a class="code" href="a00151.html#a6b79865346bac9ba66d8db562fa87aa2">it1_</a>;
|
|
<a name="l00566"></a>00566 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00567"></a>00567 }
|
|
<a name="l00568"></a>00568 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00569"></a><a class="code" href="a00151.html#a62ff7bd8e79d9891ab57283e026c46b9">00569</a> <a class="code" href="a00151.html">const_iterator1</a> &<a class="code" href="a00151.html#a62ff7bd8e79d9891ab57283e026c46b9">operator -- </a>() {
|
|
<a name="l00570"></a>00570 -- <a class="code" href="a00151.html#a6b79865346bac9ba66d8db562fa87aa2">it1_</a>;
|
|
<a name="l00571"></a>00571 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00572"></a>00572 }
|
|
<a name="l00573"></a>00573 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00574"></a><a class="code" href="a00151.html#a3c155f8f632f672f16f2b1826f412b78">00574</a> <a class="code" href="a00151.html">const_iterator1</a> &<a class="code" href="a00151.html#a3c155f8f632f672f16f2b1826f412b78">operator += </a>(<a class="code" href="a00151.html#a43533117e5b9079cd63a85bc9583551e">difference_type</a> n) {
|
|
<a name="l00575"></a>00575 <a class="code" href="a00151.html#a6b79865346bac9ba66d8db562fa87aa2">it1_</a> += n;
|
|
<a name="l00576"></a>00576 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00577"></a>00577 }
|
|
<a name="l00578"></a>00578 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00579"></a><a class="code" href="a00151.html#a35057d26446c1484709d32836915d593">00579</a> <a class="code" href="a00151.html">const_iterator1</a> &<a class="code" href="a00151.html#a35057d26446c1484709d32836915d593">operator -= </a>(<a class="code" href="a00151.html#a43533117e5b9079cd63a85bc9583551e">difference_type</a> n) {
|
|
<a name="l00580"></a>00580 <a class="code" href="a00151.html#a6b79865346bac9ba66d8db562fa87aa2">it1_</a> -= n;
|
|
<a name="l00581"></a>00581 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00582"></a>00582 }
|
|
<a name="l00583"></a>00583 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00584"></a><a class="code" href="a00151.html#a00b035b33de3ae0ecb88ca49ad014c07">00584</a> <a class="code" href="a00151.html#a43533117e5b9079cd63a85bc9583551e">difference_type</a> <a class="code" href="a00151.html#a00b035b33de3ae0ecb88ca49ad014c07">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00151.html">const_iterator1</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00585"></a>00585 <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="l00586"></a>00586 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00151.html#a39ee26d3e2d224b64bcb2c1b0494b2b6">it2_</a> == it.<a class="code" href="a00151.html#a39ee26d3e2d224b64bcb2c1b0494b2b6">it2_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00587"></a>00587 <span class="keywordflow">return</span> <a class="code" href="a00151.html#a6b79865346bac9ba66d8db562fa87aa2">it1_</a> - it.<a class="code" href="a00151.html#a6b79865346bac9ba66d8db562fa87aa2">it1_</a>;
|
|
<a name="l00588"></a>00588 }
|
|
<a name="l00589"></a>00589
|
|
<a name="l00590"></a>00590 <span class="comment">// Dereference</span>
|
|
<a name="l00591"></a>00591 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00592"></a><a class="code" href="a00151.html#a8bc9b069890886d58551b101c0f86944">00592</a> <a class="code" href="a00150.html#a23935d97710a77d866996f0d8a15c992">const_reference</a> <a class="code" href="a00151.html#a8bc9b069890886d58551b101c0f86944">operator * </a>()<span class="keyword"> const </span>{
|
|
<a name="l00593"></a>00593 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) () (<a class="code" href="a00151.html#a6b79865346bac9ba66d8db562fa87aa2">it1_</a>, <a class="code" href="a00151.html#a39ee26d3e2d224b64bcb2c1b0494b2b6">it2_</a>);
|
|
<a name="l00594"></a>00594 }
|
|
<a name="l00595"></a>00595 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00596"></a><a class="code" href="a00151.html#a8386b04d1632a57ad3e98c5d357417da">00596</a> <a class="code" href="a00150.html#a23935d97710a77d866996f0d8a15c992">const_reference</a> <a class="code" href="a00151.html#a8386b04d1632a57ad3e98c5d357417da">operator [] </a>(<a class="code" href="a00151.html#a43533117e5b9079cd63a85bc9583551e">difference_type</a> n)<span class="keyword"> const </span>{
|
|
<a name="l00597"></a>00597 <span class="keywordflow">return</span> *(*<span class="keyword">this</span> + n);
|
|
<a name="l00598"></a>00598 }
|
|
<a name="l00599"></a>00599
|
|
<a name="l00600"></a>00600 <span class="preprocessor">#ifndef BOOST_UBLAS_NO_NESTED_CLASS_RELATION</span>
|
|
<a name="l00601"></a>00601 <span class="preprocessor"></span> <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00602"></a>00602 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l00603"></a>00603 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">self_type</a>::
|
|
<a name="l00604"></a>00604 <span class="preprocessor">#endif</span>
|
|
<a name="l00605"></a><a class="code" href="a00151.html#a3d5804c05cff0f10450044b9c5e0779e">00605</a> <span class="preprocessor"></span> <a class="code" href="a00152.html">const_iterator2</a> <a class="code" href="a00151.html#a3d5804c05cff0f10450044b9c5e0779e">begin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00606"></a>00606 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00150.html#a4824ddc79f33c92f35f363793ae25755">find2</a> (1, <a class="code" href="a00151.html#a6b79865346bac9ba66d8db562fa87aa2">it1_</a>, 0);
|
|
<a name="l00607"></a>00607 }
|
|
<a name="l00608"></a>00608 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00609"></a>00609 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l00610"></a>00610 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">self_type</a>::
|
|
<a name="l00611"></a>00611 <span class="preprocessor">#endif</span>
|
|
<a name="l00612"></a><a class="code" href="a00151.html#ab205d078a10ac0184e96b30fcb6a2bd7">00612</a> <span class="preprocessor"></span> <a class="code" href="a00152.html">const_iterator2</a> <a class="code" href="a00151.html#ab205d078a10ac0184e96b30fcb6a2bd7">end</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00613"></a>00613 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00150.html#a4824ddc79f33c92f35f363793ae25755">find2</a> (1, <a class="code" href="a00151.html#a6b79865346bac9ba66d8db562fa87aa2">it1_</a>, (*<span class="keyword">this</span>) ().<a class="code" href="a00150.html#a85d21ec7df19bf0ebfc8ed17ece22df6">size2</a> ());
|
|
<a name="l00614"></a>00614 }
|
|
<a name="l00615"></a>00615 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00616"></a>00616 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l00617"></a>00617 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">self_type</a>::
|
|
<a name="l00618"></a>00618 <span class="preprocessor">#endif</span>
|
|
<a name="l00619"></a><a class="code" href="a00151.html#a5763c0dceccf0ebc6a37d8fba71a3a2a">00619</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="a00151.html#a5763c0dceccf0ebc6a37d8fba71a3a2a">rbegin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00620"></a>00620 <span class="keywordflow">return</span> <a class="code" href="a00150.html#a8fac55be8292fddcd0a17100ab99eb3a">const_reverse_iterator2</a> (<a class="code" href="a00151.html#ab205d078a10ac0184e96b30fcb6a2bd7">end</a> ());
|
|
<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>00623 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l00624"></a>00624 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">self_type</a>::
|
|
<a name="l00625"></a>00625 <span class="preprocessor">#endif</span>
|
|
<a name="l00626"></a><a class="code" href="a00151.html#aa3c0a4988b39cb6ffe5ff54fffa5d1dd">00626</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="a00151.html#aa3c0a4988b39cb6ffe5ff54fffa5d1dd">rend</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00627"></a>00627 <span class="keywordflow">return</span> <a class="code" href="a00150.html#a8fac55be8292fddcd0a17100ab99eb3a">const_reverse_iterator2</a> (<a class="code" href="a00151.html#a3d5804c05cff0f10450044b9c5e0779e">begin</a> ());
|
|
<a name="l00628"></a>00628 }
|
|
<a name="l00629"></a>00629 <span class="preprocessor">#endif</span>
|
|
<a name="l00630"></a>00630 <span class="preprocessor"></span>
|
|
<a name="l00631"></a>00631 <span class="comment">// Indices</span>
|
|
<a name="l00632"></a>00632 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00633"></a><a class="code" href="a00151.html#ade1183fbbd50439c3a11b8598215c20a">00633</a> <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> <a class="code" href="a00151.html#ade1183fbbd50439c3a11b8598215c20a">index1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00634"></a>00634 <span class="keywordflow">return</span> <a class="code" href="a00151.html#a6b79865346bac9ba66d8db562fa87aa2">it1_</a>;
|
|
<a name="l00635"></a>00635 }
|
|
<a name="l00636"></a>00636 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00637"></a><a class="code" href="a00151.html#a120ef8bb5d13251cc4c3cefbf761eb44">00637</a> <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> <a class="code" href="a00151.html#a120ef8bb5d13251cc4c3cefbf761eb44">index2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00638"></a>00638 <span class="keywordflow">return</span> <a class="code" href="a00151.html#a39ee26d3e2d224b64bcb2c1b0494b2b6">it2_</a>;
|
|
<a name="l00639"></a>00639 }
|
|
<a name="l00640"></a>00640
|
|
<a name="l00641"></a>00641 <span class="comment">// Assignment</span>
|
|
<a name="l00642"></a>00642 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00643"></a><a class="code" href="a00151.html#aa3257b7b21adba3d030cdd9f0c8a6547">00643</a> <a class="code" href="a00151.html">const_iterator1</a> &<a class="code" href="a00151.html#aa3257b7b21adba3d030cdd9f0c8a6547">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00151.html">const_iterator1</a> &it) {
|
|
<a name="l00644"></a>00644 <a class="code" href="a00069.html#ab14250fc4fe5b9bcab4eb9fba8a5b5f8">container_const_reference<self_type>::assign</a> (&it ());
|
|
<a name="l00645"></a>00645 <a class="code" href="a00151.html#a6b79865346bac9ba66d8db562fa87aa2">it1_</a> = it.<a class="code" href="a00151.html#a6b79865346bac9ba66d8db562fa87aa2">it1_</a>;
|
|
<a name="l00646"></a>00646 <a class="code" href="a00151.html#a39ee26d3e2d224b64bcb2c1b0494b2b6">it2_</a> = it.<a class="code" href="a00151.html#a39ee26d3e2d224b64bcb2c1b0494b2b6">it2_</a>;
|
|
<a name="l00647"></a>00647 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00648"></a>00648 }
|
|
<a name="l00649"></a>00649
|
|
<a name="l00650"></a>00650 <span class="comment">// Comparison</span>
|
|
<a name="l00651"></a>00651 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00652"></a><a class="code" href="a00151.html#a164c0f1e482c90ce574b3bae4349fded">00652</a> <span class="keywordtype">bool</span> <a class="code" href="a00151.html#a164c0f1e482c90ce574b3bae4349fded">operator == </a>(<span class="keyword">const</span> <a class="code" href="a00151.html">const_iterator1</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00653"></a>00653 <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="l00654"></a>00654 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00151.html#a39ee26d3e2d224b64bcb2c1b0494b2b6">it2_</a> == it.<a class="code" href="a00151.html#a39ee26d3e2d224b64bcb2c1b0494b2b6">it2_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00655"></a>00655 <span class="keywordflow">return</span> <a class="code" href="a00151.html#a6b79865346bac9ba66d8db562fa87aa2">it1_</a> == it.<a class="code" href="a00151.html#a6b79865346bac9ba66d8db562fa87aa2">it1_</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><a class="code" href="a00151.html#a63a93edf9c1bf736013f1ec483757962">00658</a> <span class="keywordtype">bool</span> <a class="code" href="a00151.html#a63a93edf9c1bf736013f1ec483757962">operator < </a>(<span class="keyword">const</span> <a class="code" href="a00151.html">const_iterator1</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00659"></a>00659 <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="l00660"></a>00660 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00151.html#a39ee26d3e2d224b64bcb2c1b0494b2b6">it2_</a> == it.<a class="code" href="a00151.html#a39ee26d3e2d224b64bcb2c1b0494b2b6">it2_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00661"></a>00661 <span class="keywordflow">return</span> <a class="code" href="a00151.html#a6b79865346bac9ba66d8db562fa87aa2">it1_</a> < it.<a class="code" href="a00151.html#a6b79865346bac9ba66d8db562fa87aa2">it1_</a>;
|
|
<a name="l00662"></a>00662 }
|
|
<a name="l00663"></a>00663
|
|
<a name="l00664"></a>00664 <span class="keyword">private</span>:
|
|
<a name="l00665"></a><a class="code" href="a00151.html#a6b79865346bac9ba66d8db562fa87aa2">00665</a> <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> <a class="code" href="a00151.html#a6b79865346bac9ba66d8db562fa87aa2">it1_</a>;
|
|
<a name="l00666"></a><a class="code" href="a00151.html#a39ee26d3e2d224b64bcb2c1b0494b2b6">00666</a> <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> <a class="code" href="a00151.html#a39ee26d3e2d224b64bcb2c1b0494b2b6">it2_</a>;
|
|
<a name="l00667"></a>00667 };
|
|
<a name="l00668"></a>00668 <span class="preprocessor">#endif</span>
|
|
<a name="l00669"></a>00669 <span class="preprocessor"></span>
|
|
<a name="l00670"></a>00670 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00671"></a><a class="code" href="a00150.html#af8b1b7c60e5b282ad4ff87ce317e5e3d">00671</a> <a class="code" href="a00151.html">const_iterator1</a> <a class="code" href="a00150.html#af8b1b7c60e5b282ad4ff87ce317e5e3d">begin1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00672"></a>00672 <span class="keywordflow">return</span> <a class="code" href="a00150.html#a651ac196c7d393d04acc54f9a1ba9d1d">find1</a> (0, 0, 0);
|
|
<a name="l00673"></a>00673 }
|
|
<a name="l00674"></a>00674 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00675"></a><a class="code" href="a00150.html#aa7b121384a580ffb4a11118cb50a5484">00675</a> <a class="code" href="a00151.html">const_iterator1</a> <a class="code" href="a00150.html#aa7b121384a580ffb4a11118cb50a5484">end1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00676"></a>00676 <span class="keywordflow">return</span> <a class="code" href="a00150.html#a651ac196c7d393d04acc54f9a1ba9d1d">find1</a> (0, <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>, 0);
|
|
<a name="l00677"></a>00677 }
|
|
<a name="l00678"></a>00678
|
|
<a name="l00679"></a>00679 <span class="preprocessor">#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR</span>
|
|
<a name="l00680"></a><a class="code" href="a00153.html">00680</a> <span class="preprocessor"></span> <span class="keyword">class </span><a class="code" href="a00153.html">iterator1</a>:
|
|
<a name="l00681"></a>00681 <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><hermitian_matrix>,
|
|
<a name="l00682"></a>00682 <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="l00683"></a>00683 iterator1, value_type> {
|
|
<a name="l00684"></a>00684 <span class="keyword">public</span>:
|
|
<a name="l00685"></a><a class="code" href="a00153.html#a87dca0114b3d9704d181e7b8634381a9">00685</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00150.html#a717d8ee188b1eefd52b961c8326b320a">hermitian_matrix::value_type</a> <a class="code" href="a00153.html#a87dca0114b3d9704d181e7b8634381a9">value_type</a>;
|
|
<a name="l00686"></a><a class="code" href="a00153.html#a839088ede3aa4d0f7a5e1a8bab4e8ff2">00686</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00150.html#a62d04850fc5b37976df8b332d3e29203">hermitian_matrix::difference_type</a> <a class="code" href="a00153.html#a839088ede3aa4d0f7a5e1a8bab4e8ff2">difference_type</a>;
|
|
<a name="l00687"></a><a class="code" href="a00153.html#abffc6adc04af3b4aa2f153a0c55c9120">00687</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00150.html#aafed3a7043c7b1edb1baf10667b529f0">hermitian_matrix::true_reference</a> <a class="code" href="a00153.html#abffc6adc04af3b4aa2f153a0c55c9120">reference</a>;
|
|
<a name="l00688"></a><a class="code" href="a00153.html#a6a34f24d4350bf1e71ba1fb2149db254">00688</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00150.html#a4215448dfe3b1bb588ef1265cab3bf44">hermitian_matrix::pointer</a> <a class="code" href="a00153.html#a6a34f24d4350bf1e71ba1fb2149db254">pointer</a>;
|
|
<a name="l00689"></a>00689
|
|
<a name="l00690"></a><a class="code" href="a00153.html#ae80d645a2360d9a5b1e062be156e93a5">00690</a> <span class="keyword">typedef</span> <a class="code" href="a00154.html">iterator2</a> <a class="code" href="a00153.html#ae80d645a2360d9a5b1e062be156e93a5">dual_iterator_type</a>;
|
|
<a name="l00691"></a><a class="code" href="a00153.html#ae022bafb68c55df7381256e4f58f7f7f">00691</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="a00153.html#ae022bafb68c55df7381256e4f58f7f7f">dual_reverse_iterator_type</a>;
|
|
<a name="l00692"></a>00692
|
|
<a name="l00693"></a>00693 <span class="comment">// Construction and destruction</span>
|
|
<a name="l00694"></a>00694 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00695"></a><a class="code" href="a00153.html#abf826b3ef59aa5178b5704e20f1bde9d">00695</a> <a class="code" href="a00153.html#abf826b3ef59aa5178b5704e20f1bde9d">iterator1</a> ():
|
|
<a name="l00696"></a>00696 <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="a00150.html" title="A hermitian matrix of values of type T.">self_type</a>> (), <a class="code" href="a00153.html#abe1487e566d656230c5dd6641c613431">it1_</a> (), <a class="code" href="a00153.html#af3fd10dc13087bdbafb38c2ee2947e27">it2_</a> () {}
|
|
<a name="l00697"></a>00697 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00698"></a><a class="code" href="a00153.html#a3c2f81ce1730f0295075175d2cbe193d">00698</a> <a class="code" href="a00153.html#abf826b3ef59aa5178b5704e20f1bde9d">iterator1</a> (<a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">self_type</a> &m, <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> it1, <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> it2):
|
|
<a name="l00699"></a>00699 <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="a00150.html" title="A hermitian matrix of values of type T.">self_type</a>> (m), <a class="code" href="a00153.html#abe1487e566d656230c5dd6641c613431">it1_</a> (it1), <a class="code" href="a00153.html#af3fd10dc13087bdbafb38c2ee2947e27">it2_</a> (it2) {}
|
|
<a name="l00700"></a>00700
|
|
<a name="l00701"></a>00701 <span class="comment">// Arithmetic</span>
|
|
<a name="l00702"></a>00702 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00703"></a><a class="code" href="a00153.html#a99d203d819432c30f1d2511bee98a2ec">00703</a> <a class="code" href="a00153.html">iterator1</a> &<a class="code" href="a00153.html#a99d203d819432c30f1d2511bee98a2ec">operator ++ </a>() {
|
|
<a name="l00704"></a>00704 ++ <a class="code" href="a00153.html#abe1487e566d656230c5dd6641c613431">it1_</a>;
|
|
<a name="l00705"></a>00705 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00706"></a>00706 }
|
|
<a name="l00707"></a>00707 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00708"></a><a class="code" href="a00153.html#a014bc71a39021f9a854a2ae6cb41ce93">00708</a> <a class="code" href="a00153.html">iterator1</a> &<a class="code" href="a00153.html#a014bc71a39021f9a854a2ae6cb41ce93">operator -- </a>() {
|
|
<a name="l00709"></a>00709 -- <a class="code" href="a00153.html#abe1487e566d656230c5dd6641c613431">it1_</a>;
|
|
<a name="l00710"></a>00710 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00711"></a>00711 }
|
|
<a name="l00712"></a>00712 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00713"></a><a class="code" href="a00153.html#a8381cee0f7f6ff85fb7cf046b324b730">00713</a> <a class="code" href="a00153.html">iterator1</a> &<a class="code" href="a00153.html#a8381cee0f7f6ff85fb7cf046b324b730">operator += </a>(<a class="code" href="a00153.html#a839088ede3aa4d0f7a5e1a8bab4e8ff2">difference_type</a> n) {
|
|
<a name="l00714"></a>00714 <a class="code" href="a00153.html#abe1487e566d656230c5dd6641c613431">it1_</a> += n;
|
|
<a name="l00715"></a>00715 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00716"></a>00716 }
|
|
<a name="l00717"></a>00717 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00718"></a><a class="code" href="a00153.html#a4ad26b176a4b2cadd3677ce610c55640">00718</a> <a class="code" href="a00153.html">iterator1</a> &<a class="code" href="a00153.html#a4ad26b176a4b2cadd3677ce610c55640">operator -= </a>(<a class="code" href="a00153.html#a839088ede3aa4d0f7a5e1a8bab4e8ff2">difference_type</a> n) {
|
|
<a name="l00719"></a>00719 <a class="code" href="a00153.html#abe1487e566d656230c5dd6641c613431">it1_</a> -= n;
|
|
<a name="l00720"></a>00720 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00721"></a>00721 }
|
|
<a name="l00722"></a>00722 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00723"></a><a class="code" href="a00153.html#a7070911093dd1e10e9ca000242d15eaa">00723</a> <a class="code" href="a00153.html#a839088ede3aa4d0f7a5e1a8bab4e8ff2">difference_type</a> <a class="code" href="a00153.html#a7070911093dd1e10e9ca000242d15eaa">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00153.html">iterator1</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00724"></a>00724 <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="l00725"></a>00725 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00153.html#af3fd10dc13087bdbafb38c2ee2947e27">it2_</a> == it.<a class="code" href="a00153.html#af3fd10dc13087bdbafb38c2ee2947e27">it2_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00726"></a>00726 <span class="keywordflow">return</span> <a class="code" href="a00153.html#abe1487e566d656230c5dd6641c613431">it1_</a> - it.<a class="code" href="a00153.html#abe1487e566d656230c5dd6641c613431">it1_</a>;
|
|
<a name="l00727"></a>00727 }
|
|
<a name="l00728"></a>00728
|
|
<a name="l00729"></a>00729 <span class="comment">// Dereference</span>
|
|
<a name="l00730"></a>00730 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00731"></a><a class="code" href="a00153.html#a5a0bf6b956e8ac9298c652cda43be1d0">00731</a> <a class="code" href="a00153.html#abffc6adc04af3b4aa2f153a0c55c9120">reference</a> <a class="code" href="a00153.html#a5a0bf6b956e8ac9298c652cda43be1d0">operator * </a>()<span class="keyword"> const </span>{
|
|
<a name="l00732"></a>00732 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00150.html#ae49ff86aca4026ed41b878c53b2050cc">at_element</a> (<a class="code" href="a00153.html#abe1487e566d656230c5dd6641c613431">it1_</a>, <a class="code" href="a00153.html#af3fd10dc13087bdbafb38c2ee2947e27">it2_</a>);
|
|
<a name="l00733"></a>00733 }
|
|
<a name="l00734"></a>00734 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00735"></a><a class="code" href="a00153.html#ae803e0cb9bba8c0880a0106786c23214">00735</a> <a class="code" href="a00153.html#abffc6adc04af3b4aa2f153a0c55c9120">reference</a> <a class="code" href="a00153.html#ae803e0cb9bba8c0880a0106786c23214">operator [] </a>(<a class="code" href="a00153.html#a839088ede3aa4d0f7a5e1a8bab4e8ff2">difference_type</a> n)<span class="keyword"> const </span>{
|
|
<a name="l00736"></a>00736 <span class="keywordflow">return</span> *(*<span class="keyword">this</span> + n);
|
|
<a name="l00737"></a>00737 }
|
|
<a name="l00738"></a>00738
|
|
<a name="l00739"></a>00739 <span class="preprocessor">#ifndef BOOST_UBLAS_NO_NESTED_CLASS_RELATION</span>
|
|
<a name="l00740"></a>00740 <span class="preprocessor"></span> <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00741"></a>00741 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l00742"></a>00742 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">self_type</a>::
|
|
<a name="l00743"></a>00743 <span class="preprocessor">#endif</span>
|
|
<a name="l00744"></a><a class="code" href="a00153.html#aafb77a34fb45708a52bc37235a0d595b">00744</a> <span class="preprocessor"></span> <a class="code" href="a00154.html">iterator2</a> <a class="code" href="a00153.html#aafb77a34fb45708a52bc37235a0d595b">begin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00745"></a>00745 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00150.html#a4824ddc79f33c92f35f363793ae25755">find2</a> (1, <a class="code" href="a00153.html#abe1487e566d656230c5dd6641c613431">it1_</a>, 0);
|
|
<a name="l00746"></a>00746 }
|
|
<a name="l00747"></a>00747 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00748"></a>00748 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l00749"></a>00749 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">self_type</a>::
|
|
<a name="l00750"></a>00750 <span class="preprocessor">#endif</span>
|
|
<a name="l00751"></a><a class="code" href="a00153.html#ac832da4d565cab429993e3ac1adbebbc">00751</a> <span class="preprocessor"></span> <a class="code" href="a00154.html">iterator2</a> <a class="code" href="a00153.html#ac832da4d565cab429993e3ac1adbebbc">end</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00752"></a>00752 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00150.html#a4824ddc79f33c92f35f363793ae25755">find2</a> (1, <a class="code" href="a00153.html#abe1487e566d656230c5dd6641c613431">it1_</a>, (*<span class="keyword">this</span>) ().<a class="code" href="a00150.html#a85d21ec7df19bf0ebfc8ed17ece22df6">size2</a> ());
|
|
<a name="l00753"></a>00753 }
|
|
<a name="l00754"></a>00754 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00755"></a>00755 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l00756"></a>00756 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">self_type</a>::
|
|
<a name="l00757"></a>00757 <span class="preprocessor">#endif</span>
|
|
<a name="l00758"></a><a class="code" href="a00153.html#ac6d0c4b644454d75b86f050bf36da172">00758</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="a00153.html#ac6d0c4b644454d75b86f050bf36da172">rbegin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00759"></a>00759 <span class="keywordflow">return</span> <a class="code" href="a00150.html#aa1f6b6014c2a1d03a9f6c3ab2c1e2768">reverse_iterator2</a> (<a class="code" href="a00153.html#ac832da4d565cab429993e3ac1adbebbc">end</a> ());
|
|
<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>00762 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l00763"></a>00763 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">self_type</a>::
|
|
<a name="l00764"></a>00764 <span class="preprocessor">#endif</span>
|
|
<a name="l00765"></a><a class="code" href="a00153.html#a6425791ec94f73296abf48c115fd9b2e">00765</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="a00153.html#a6425791ec94f73296abf48c115fd9b2e">rend</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00766"></a>00766 <span class="keywordflow">return</span> <a class="code" href="a00150.html#aa1f6b6014c2a1d03a9f6c3ab2c1e2768">reverse_iterator2</a> (<a class="code" href="a00153.html#aafb77a34fb45708a52bc37235a0d595b">begin</a> ());
|
|
<a name="l00767"></a>00767 }
|
|
<a name="l00768"></a>00768 <span class="preprocessor">#endif</span>
|
|
<a name="l00769"></a>00769 <span class="preprocessor"></span>
|
|
<a name="l00770"></a>00770 <span class="comment">// Indices</span>
|
|
<a name="l00771"></a>00771 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00772"></a><a class="code" href="a00153.html#ab66a1dbe50e96cc5bb857d19d576f3e3">00772</a> <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> <a class="code" href="a00153.html#ab66a1dbe50e96cc5bb857d19d576f3e3">index1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00773"></a>00773 <span class="keywordflow">return</span> <a class="code" href="a00153.html#abe1487e566d656230c5dd6641c613431">it1_</a>;
|
|
<a name="l00774"></a>00774 }
|
|
<a name="l00775"></a>00775 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00776"></a><a class="code" href="a00153.html#a0e81a4ee36d913fc8d0b9113a03d239c">00776</a> <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> <a class="code" href="a00153.html#a0e81a4ee36d913fc8d0b9113a03d239c">index2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00777"></a>00777 <span class="keywordflow">return</span> <a class="code" href="a00153.html#af3fd10dc13087bdbafb38c2ee2947e27">it2_</a>;
|
|
<a name="l00778"></a>00778 }
|
|
<a name="l00779"></a>00779
|
|
<a name="l00780"></a>00780 <span class="comment">// Assignment</span>
|
|
<a name="l00781"></a>00781 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00782"></a><a class="code" href="a00153.html#a9a6a421ad2d9078194212079c715da11">00782</a> <a class="code" href="a00153.html">iterator1</a> &<a class="code" href="a00153.html#a9a6a421ad2d9078194212079c715da11">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00153.html">iterator1</a> &it) {
|
|
<a name="l00783"></a>00783 <a class="code" href="a00070.html#a8ee5b7e2ac6a45d59e4873df582a02b2">container_reference<self_type>::assign</a> (&it ());
|
|
<a name="l00784"></a>00784 <a class="code" href="a00153.html#abe1487e566d656230c5dd6641c613431">it1_</a> = it.<a class="code" href="a00153.html#abe1487e566d656230c5dd6641c613431">it1_</a>;
|
|
<a name="l00785"></a>00785 <a class="code" href="a00153.html#af3fd10dc13087bdbafb38c2ee2947e27">it2_</a> = it.<a class="code" href="a00153.html#af3fd10dc13087bdbafb38c2ee2947e27">it2_</a>;
|
|
<a name="l00786"></a>00786 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00787"></a>00787 }
|
|
<a name="l00788"></a>00788
|
|
<a name="l00789"></a>00789 <span class="comment">// Comparison</span>
|
|
<a name="l00790"></a>00790 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00791"></a><a class="code" href="a00153.html#a35bbdae2e6d1eed88e7bdb8111e4248f">00791</a> <span class="keywordtype">bool</span> <a class="code" href="a00153.html#a35bbdae2e6d1eed88e7bdb8111e4248f">operator == </a>(<span class="keyword">const</span> <a class="code" href="a00153.html">iterator1</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00792"></a>00792 <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="l00793"></a>00793 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00153.html#af3fd10dc13087bdbafb38c2ee2947e27">it2_</a> == it.<a class="code" href="a00153.html#af3fd10dc13087bdbafb38c2ee2947e27">it2_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00794"></a>00794 <span class="keywordflow">return</span> <a class="code" href="a00153.html#abe1487e566d656230c5dd6641c613431">it1_</a> == it.<a class="code" href="a00153.html#abe1487e566d656230c5dd6641c613431">it1_</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><a class="code" href="a00153.html#a862e4513d688c6c2f3bdc1d3f9293fe5">00797</a> <span class="keywordtype">bool</span> <a class="code" href="a00153.html#a862e4513d688c6c2f3bdc1d3f9293fe5">operator < </a>(<span class="keyword">const</span> <a class="code" href="a00153.html">iterator1</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00798"></a>00798 <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="l00799"></a>00799 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00153.html#af3fd10dc13087bdbafb38c2ee2947e27">it2_</a> == it.<a class="code" href="a00153.html#af3fd10dc13087bdbafb38c2ee2947e27">it2_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00800"></a>00800 <span class="keywordflow">return</span> <a class="code" href="a00153.html#abe1487e566d656230c5dd6641c613431">it1_</a> < it.<a class="code" href="a00153.html#abe1487e566d656230c5dd6641c613431">it1_</a>;
|
|
<a name="l00801"></a>00801 }
|
|
<a name="l00802"></a>00802
|
|
<a name="l00803"></a>00803 <span class="keyword">private</span>:
|
|
<a name="l00804"></a><a class="code" href="a00153.html#abe1487e566d656230c5dd6641c613431">00804</a> <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> <a class="code" href="a00153.html#abe1487e566d656230c5dd6641c613431">it1_</a>;
|
|
<a name="l00805"></a><a class="code" href="a00153.html#af3fd10dc13087bdbafb38c2ee2947e27">00805</a> <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> <a class="code" href="a00153.html#af3fd10dc13087bdbafb38c2ee2947e27">it2_</a>;
|
|
<a name="l00806"></a>00806
|
|
<a name="l00807"></a><a class="code" href="a00153.html#a2217ee3466e64c9a0105ef5d64ba6a11">00807</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="a00151.html">const_iterator1</a>;
|
|
<a name="l00808"></a>00808 };
|
|
<a name="l00809"></a>00809 <span class="preprocessor">#endif</span>
|
|
<a name="l00810"></a>00810 <span class="preprocessor"></span>
|
|
<a name="l00811"></a>00811 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00812"></a><a class="code" href="a00150.html#ac7a3116646027ff5829d964ef1a63b58">00812</a> <a class="code" href="a00153.html">iterator1</a> <a class="code" href="a00150.html#ac7a3116646027ff5829d964ef1a63b58">begin1</a> () {
|
|
<a name="l00813"></a>00813 <span class="keywordflow">return</span> <a class="code" href="a00150.html#a651ac196c7d393d04acc54f9a1ba9d1d">find1</a> (0, 0, 0);
|
|
<a name="l00814"></a>00814 }
|
|
<a name="l00815"></a>00815 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00816"></a><a class="code" href="a00150.html#aeb0b984de689da90c47d604bb3df27e8">00816</a> <a class="code" href="a00153.html">iterator1</a> <a class="code" href="a00150.html#aeb0b984de689da90c47d604bb3df27e8">end1</a> () {
|
|
<a name="l00817"></a>00817 <span class="keywordflow">return</span> <a class="code" href="a00150.html#a651ac196c7d393d04acc54f9a1ba9d1d">find1</a> (0, <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>, 0);
|
|
<a name="l00818"></a>00818 }
|
|
<a name="l00819"></a>00819
|
|
<a name="l00820"></a>00820 <span class="preprocessor">#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR</span>
|
|
<a name="l00821"></a><a class="code" href="a00152.html">00821</a> <span class="preprocessor"></span> <span class="keyword">class </span><a class="code" href="a00152.html">const_iterator2</a>:
|
|
<a name="l00822"></a>00822 <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><hermitian_matrix>,
|
|
<a name="l00823"></a>00823 <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="l00824"></a>00824 const_iterator2, value_type> {
|
|
<a name="l00825"></a>00825 <span class="keyword">public</span>:
|
|
<a name="l00826"></a><a class="code" href="a00152.html#aa14134826935d9d1f94f888b16c4b7aa">00826</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00150.html#a717d8ee188b1eefd52b961c8326b320a">hermitian_matrix::value_type</a> <a class="code" href="a00152.html#aa14134826935d9d1f94f888b16c4b7aa">value_type</a>;
|
|
<a name="l00827"></a><a class="code" href="a00152.html#aae6f7813152e58156ce274a34d22c43f">00827</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00150.html#a62d04850fc5b37976df8b332d3e29203">hermitian_matrix::difference_type</a> <a class="code" href="a00152.html#aae6f7813152e58156ce274a34d22c43f">difference_type</a>;
|
|
<a name="l00828"></a><a class="code" href="a00152.html#a3aa2c292028af9bf41169ad9e57324db">00828</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00150.html#a23935d97710a77d866996f0d8a15c992">hermitian_matrix::const_reference</a> <a class="code" href="a00152.html#a3aa2c292028af9bf41169ad9e57324db">reference</a>;
|
|
<a name="l00829"></a><a class="code" href="a00152.html#a4e262548de5ce64216bbb75cb5a8300b">00829</a> <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="keyword">typename</span> <a class="code" href="a00150.html#a4215448dfe3b1bb588ef1265cab3bf44">hermitian_matrix::pointer</a> <a class="code" href="a00152.html#a4e262548de5ce64216bbb75cb5a8300b">pointer</a>;
|
|
<a name="l00830"></a>00830
|
|
<a name="l00831"></a><a class="code" href="a00152.html#a002dfa058084b198bea4cd512c9c13b8">00831</a> <span class="keyword">typedef</span> <a class="code" href="a00151.html">const_iterator1</a> <a class="code" href="a00152.html#a002dfa058084b198bea4cd512c9c13b8">dual_iterator_type</a>;
|
|
<a name="l00832"></a><a class="code" href="a00152.html#a70b7155c9d924ea54f7d62fd1a4089cc">00832</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="a00152.html#a70b7155c9d924ea54f7d62fd1a4089cc">dual_reverse_iterator_type</a>;
|
|
<a name="l00833"></a>00833
|
|
<a name="l00834"></a>00834 <span class="comment">// Construction and destruction</span>
|
|
<a name="l00835"></a>00835 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00836"></a><a class="code" href="a00152.html#ab3984321df88dfb858ebba1085f82f8a">00836</a> <a class="code" href="a00152.html#ab3984321df88dfb858ebba1085f82f8a">const_iterator2</a> ():
|
|
<a name="l00837"></a>00837 <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="a00150.html" title="A hermitian matrix of values of type T.">self_type</a>> (), <a class="code" href="a00152.html#a7e77a7b57b7e58c21317dde910077b33">it1_</a> (), <a class="code" href="a00152.html#a753b64fba90da86e92d4bf0c5b07293c">it2_</a> () {}
|
|
<a name="l00838"></a>00838 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00839"></a><a class="code" href="a00152.html#a17bf63f3b8e0ba0daf461ced8f5ae8e5">00839</a> <a class="code" href="a00152.html#ab3984321df88dfb858ebba1085f82f8a">const_iterator2</a> (<span class="keyword">const</span> <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">self_type</a> &m, <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> it1, <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> it2):
|
|
<a name="l00840"></a>00840 <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="a00150.html" title="A hermitian matrix of values of type T.">self_type</a>> (m), <a class="code" href="a00152.html#a7e77a7b57b7e58c21317dde910077b33">it1_</a> (it1), <a class="code" href="a00152.html#a753b64fba90da86e92d4bf0c5b07293c">it2_</a> (it2) {}
|
|
<a name="l00841"></a>00841 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00842"></a><a class="code" href="a00152.html#a46cd21972616f09f64e5a2f59efda037">00842</a> <a class="code" href="a00152.html#ab3984321df88dfb858ebba1085f82f8a">const_iterator2</a> (<span class="keyword">const</span> <a class="code" href="a00154.html">iterator2</a> &it):
|
|
<a name="l00843"></a>00843 <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="a00150.html" title="A hermitian matrix of values of type T.">self_type</a>> (it ()), <a class="code" href="a00152.html#a7e77a7b57b7e58c21317dde910077b33">it1_</a> (it.<a class="code" href="a00152.html#a7e77a7b57b7e58c21317dde910077b33">it1_</a>), <a class="code" href="a00152.html#a753b64fba90da86e92d4bf0c5b07293c">it2_</a> (it.<a class="code" href="a00152.html#a753b64fba90da86e92d4bf0c5b07293c">it2_</a>) {}
|
|
<a name="l00844"></a>00844
|
|
<a name="l00845"></a>00845 <span class="comment">// Arithmetic</span>
|
|
<a name="l00846"></a>00846 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00847"></a><a class="code" href="a00152.html#a016cef522c335ce08131e5f47052965b">00847</a> <a class="code" href="a00152.html">const_iterator2</a> &<a class="code" href="a00152.html#a016cef522c335ce08131e5f47052965b">operator ++ </a>() {
|
|
<a name="l00848"></a>00848 ++ <a class="code" href="a00152.html#a753b64fba90da86e92d4bf0c5b07293c">it2_</a>;
|
|
<a name="l00849"></a>00849 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00850"></a>00850 }
|
|
<a name="l00851"></a>00851 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00852"></a><a class="code" href="a00152.html#a9702b1bd6d4642917e35295c6af37e43">00852</a> <a class="code" href="a00152.html">const_iterator2</a> &<a class="code" href="a00152.html#a9702b1bd6d4642917e35295c6af37e43">operator -- </a>() {
|
|
<a name="l00853"></a>00853 -- <a class="code" href="a00152.html#a753b64fba90da86e92d4bf0c5b07293c">it2_</a>;
|
|
<a name="l00854"></a>00854 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00855"></a>00855 }
|
|
<a name="l00856"></a>00856 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00857"></a><a class="code" href="a00152.html#a52ed769aee7b18acaceeb43689a19ee5">00857</a> <a class="code" href="a00152.html">const_iterator2</a> &<a class="code" href="a00152.html#a52ed769aee7b18acaceeb43689a19ee5">operator += </a>(<a class="code" href="a00152.html#aae6f7813152e58156ce274a34d22c43f">difference_type</a> n) {
|
|
<a name="l00858"></a>00858 <a class="code" href="a00152.html#a753b64fba90da86e92d4bf0c5b07293c">it2_</a> += n;
|
|
<a name="l00859"></a>00859 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00860"></a>00860 }
|
|
<a name="l00861"></a>00861 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00862"></a><a class="code" href="a00152.html#a3291b7f1a47ae6062ac8af2d87ff8db8">00862</a> <a class="code" href="a00152.html">const_iterator2</a> &<a class="code" href="a00152.html#a3291b7f1a47ae6062ac8af2d87ff8db8">operator -= </a>(<a class="code" href="a00152.html#aae6f7813152e58156ce274a34d22c43f">difference_type</a> n) {
|
|
<a name="l00863"></a>00863 <a class="code" href="a00152.html#a753b64fba90da86e92d4bf0c5b07293c">it2_</a> -= n;
|
|
<a name="l00864"></a>00864 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00865"></a>00865 }
|
|
<a name="l00866"></a>00866 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00867"></a><a class="code" href="a00152.html#acf12d0ac71ebd9e99bccd297ebeed64e">00867</a> <a class="code" href="a00152.html#aae6f7813152e58156ce274a34d22c43f">difference_type</a> <a class="code" href="a00152.html#acf12d0ac71ebd9e99bccd297ebeed64e">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00152.html">const_iterator2</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00868"></a>00868 <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="l00869"></a>00869 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00152.html#a7e77a7b57b7e58c21317dde910077b33">it1_</a> == it.<a class="code" href="a00152.html#a7e77a7b57b7e58c21317dde910077b33">it1_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00870"></a>00870 <span class="keywordflow">return</span> <a class="code" href="a00152.html#a753b64fba90da86e92d4bf0c5b07293c">it2_</a> - it.<a class="code" href="a00152.html#a753b64fba90da86e92d4bf0c5b07293c">it2_</a>;
|
|
<a name="l00871"></a>00871 }
|
|
<a name="l00872"></a>00872
|
|
<a name="l00873"></a>00873 <span class="comment">// Dereference</span>
|
|
<a name="l00874"></a>00874 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00875"></a><a class="code" href="a00152.html#a64acc00098bee898353371f4c1ff93a5">00875</a> <a class="code" href="a00150.html#a23935d97710a77d866996f0d8a15c992">const_reference</a> <a class="code" href="a00152.html#a64acc00098bee898353371f4c1ff93a5">operator * </a>()<span class="keyword"> const </span>{
|
|
<a name="l00876"></a>00876 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) () (<a class="code" href="a00152.html#a7e77a7b57b7e58c21317dde910077b33">it1_</a>, <a class="code" href="a00152.html#a753b64fba90da86e92d4bf0c5b07293c">it2_</a>);
|
|
<a name="l00877"></a>00877 }
|
|
<a name="l00878"></a>00878 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00879"></a><a class="code" href="a00152.html#a13abf62865136b09d163e3d0c996669f">00879</a> <a class="code" href="a00150.html#a23935d97710a77d866996f0d8a15c992">const_reference</a> <a class="code" href="a00152.html#a13abf62865136b09d163e3d0c996669f">operator [] </a>(<a class="code" href="a00152.html#aae6f7813152e58156ce274a34d22c43f">difference_type</a> n)<span class="keyword"> const </span>{
|
|
<a name="l00880"></a>00880 <span class="keywordflow">return</span> *(*<span class="keyword">this</span> + n);
|
|
<a name="l00881"></a>00881 }
|
|
<a name="l00882"></a>00882
|
|
<a name="l00883"></a>00883 <span class="preprocessor">#ifndef BOOST_UBLAS_NO_NESTED_CLASS_RELATION</span>
|
|
<a name="l00884"></a>00884 <span class="preprocessor"></span> <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00885"></a>00885 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l00886"></a>00886 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">self_type</a>::
|
|
<a name="l00887"></a>00887 <span class="preprocessor">#endif</span>
|
|
<a name="l00888"></a><a class="code" href="a00152.html#ae7c973504e4b13d4f3e7f684752953be">00888</a> <span class="preprocessor"></span> <a class="code" href="a00151.html">const_iterator1</a> <a class="code" href="a00152.html#ae7c973504e4b13d4f3e7f684752953be">begin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00889"></a>00889 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00150.html#a651ac196c7d393d04acc54f9a1ba9d1d">find1</a> (1, 0, <a class="code" href="a00152.html#a753b64fba90da86e92d4bf0c5b07293c">it2_</a>);
|
|
<a name="l00890"></a>00890 }
|
|
<a name="l00891"></a>00891 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00892"></a>00892 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l00893"></a>00893 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">self_type</a>::
|
|
<a name="l00894"></a>00894 <span class="preprocessor">#endif</span>
|
|
<a name="l00895"></a><a class="code" href="a00152.html#a246506c32288b0b1362eabb796086b36">00895</a> <span class="preprocessor"></span> <a class="code" href="a00151.html">const_iterator1</a> <a class="code" href="a00152.html#a246506c32288b0b1362eabb796086b36">end</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00896"></a>00896 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00150.html#a651ac196c7d393d04acc54f9a1ba9d1d">find1</a> (1, (*<span class="keyword">this</span>) ().<a class="code" href="a00150.html#a60daa55b6be28f2753debffad455b74f">size1</a> (), <a class="code" href="a00152.html#a753b64fba90da86e92d4bf0c5b07293c">it2_</a>);
|
|
<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>00899 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l00900"></a>00900 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">self_type</a>::
|
|
<a name="l00901"></a>00901 <span class="preprocessor">#endif</span>
|
|
<a name="l00902"></a><a class="code" href="a00152.html#ab13a1786f7c385a8bcbc379c176a6f6f">00902</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="a00152.html#ab13a1786f7c385a8bcbc379c176a6f6f">rbegin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00903"></a>00903 <span class="keywordflow">return</span> <a class="code" href="a00150.html#a2aefa64fead82b0a97588631b4e0518a">const_reverse_iterator1</a> (<a class="code" href="a00152.html#a246506c32288b0b1362eabb796086b36">end</a> ());
|
|
<a name="l00904"></a>00904 }
|
|
<a name="l00905"></a>00905 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00906"></a>00906 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l00907"></a>00907 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">self_type</a>::
|
|
<a name="l00908"></a>00908 <span class="preprocessor">#endif</span>
|
|
<a name="l00909"></a><a class="code" href="a00152.html#abb15f4bf74075794706bc6d2045d7833">00909</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="a00152.html#abb15f4bf74075794706bc6d2045d7833">rend</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00910"></a>00910 <span class="keywordflow">return</span> <a class="code" href="a00150.html#a2aefa64fead82b0a97588631b4e0518a">const_reverse_iterator1</a> (<a class="code" href="a00152.html#ae7c973504e4b13d4f3e7f684752953be">begin</a> ());
|
|
<a name="l00911"></a>00911 }
|
|
<a name="l00912"></a>00912 <span class="preprocessor">#endif</span>
|
|
<a name="l00913"></a>00913 <span class="preprocessor"></span>
|
|
<a name="l00914"></a>00914 <span class="comment">// Indices</span>
|
|
<a name="l00915"></a>00915 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00916"></a><a class="code" href="a00152.html#a5a93a2b0a63d3f9b2c828779582c4192">00916</a> <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> <a class="code" href="a00152.html#a5a93a2b0a63d3f9b2c828779582c4192">index1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00917"></a>00917 <span class="keywordflow">return</span> <a class="code" href="a00152.html#a7e77a7b57b7e58c21317dde910077b33">it1_</a>;
|
|
<a name="l00918"></a>00918 }
|
|
<a name="l00919"></a>00919 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00920"></a><a class="code" href="a00152.html#a8b1a22ceee82196d306a0b8e2e52b6a3">00920</a> <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> <a class="code" href="a00152.html#a8b1a22ceee82196d306a0b8e2e52b6a3">index2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00921"></a>00921 <span class="keywordflow">return</span> <a class="code" href="a00152.html#a753b64fba90da86e92d4bf0c5b07293c">it2_</a>;
|
|
<a name="l00922"></a>00922 }
|
|
<a name="l00923"></a>00923
|
|
<a name="l00924"></a>00924 <span class="comment">// Assignment</span>
|
|
<a name="l00925"></a>00925 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00926"></a><a class="code" href="a00152.html#ab82d986a4b48783197babe5faabacb78">00926</a> <a class="code" href="a00152.html">const_iterator2</a> &<a class="code" href="a00152.html#ab82d986a4b48783197babe5faabacb78">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00152.html">const_iterator2</a> &it) {
|
|
<a name="l00927"></a>00927 <a class="code" href="a00069.html#ab14250fc4fe5b9bcab4eb9fba8a5b5f8">container_const_reference<self_type>::assign</a> (&it ());
|
|
<a name="l00928"></a>00928 <a class="code" href="a00152.html#a7e77a7b57b7e58c21317dde910077b33">it1_</a> = it.<a class="code" href="a00152.html#a7e77a7b57b7e58c21317dde910077b33">it1_</a>;
|
|
<a name="l00929"></a>00929 <a class="code" href="a00152.html#a753b64fba90da86e92d4bf0c5b07293c">it2_</a> = it.<a class="code" href="a00152.html#a753b64fba90da86e92d4bf0c5b07293c">it2_</a>;
|
|
<a name="l00930"></a>00930 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00931"></a>00931 }
|
|
<a name="l00932"></a>00932
|
|
<a name="l00933"></a>00933 <span class="comment">// Comparison</span>
|
|
<a name="l00934"></a>00934 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00935"></a><a class="code" href="a00152.html#afe336fd111ea08520c31169819d78dc4">00935</a> <span class="keywordtype">bool</span> <a class="code" href="a00152.html#afe336fd111ea08520c31169819d78dc4">operator == </a>(<span class="keyword">const</span> <a class="code" href="a00152.html">const_iterator2</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00936"></a>00936 <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="l00937"></a>00937 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00152.html#a7e77a7b57b7e58c21317dde910077b33">it1_</a> == it.<a class="code" href="a00152.html#a7e77a7b57b7e58c21317dde910077b33">it1_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00938"></a>00938 <span class="keywordflow">return</span> <a class="code" href="a00152.html#a753b64fba90da86e92d4bf0c5b07293c">it2_</a> == it.<a class="code" href="a00152.html#a753b64fba90da86e92d4bf0c5b07293c">it2_</a>;
|
|
<a name="l00939"></a>00939 }
|
|
<a name="l00940"></a>00940 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00941"></a><a class="code" href="a00152.html#a28746400cac37ae10315aa23349a6783">00941</a> <span class="keywordtype">bool</span> <a class="code" href="a00152.html#a28746400cac37ae10315aa23349a6783">operator < </a>(<span class="keyword">const</span> <a class="code" href="a00152.html">const_iterator2</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00942"></a>00942 <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="l00943"></a>00943 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00152.html#a7e77a7b57b7e58c21317dde910077b33">it1_</a> == it.<a class="code" href="a00152.html#a7e77a7b57b7e58c21317dde910077b33">it1_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00944"></a>00944 <span class="keywordflow">return</span> <a class="code" href="a00152.html#a753b64fba90da86e92d4bf0c5b07293c">it2_</a> < it.<a class="code" href="a00152.html#a753b64fba90da86e92d4bf0c5b07293c">it2_</a>;
|
|
<a name="l00945"></a>00945 }
|
|
<a name="l00946"></a>00946
|
|
<a name="l00947"></a>00947 <span class="keyword">private</span>:
|
|
<a name="l00948"></a><a class="code" href="a00152.html#a7e77a7b57b7e58c21317dde910077b33">00948</a> <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> <a class="code" href="a00152.html#a7e77a7b57b7e58c21317dde910077b33">it1_</a>;
|
|
<a name="l00949"></a><a class="code" href="a00152.html#a753b64fba90da86e92d4bf0c5b07293c">00949</a> <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> <a class="code" href="a00152.html#a753b64fba90da86e92d4bf0c5b07293c">it2_</a>;
|
|
<a name="l00950"></a>00950 };
|
|
<a name="l00951"></a>00951 <span class="preprocessor">#endif</span>
|
|
<a name="l00952"></a>00952 <span class="preprocessor"></span>
|
|
<a name="l00953"></a>00953 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00954"></a><a class="code" href="a00150.html#ab6dd49ce5ae419099ffc9326037d62ab">00954</a> <a class="code" href="a00152.html">const_iterator2</a> <a class="code" href="a00150.html#ab6dd49ce5ae419099ffc9326037d62ab">begin2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00955"></a>00955 <span class="keywordflow">return</span> <a class="code" href="a00150.html#a4824ddc79f33c92f35f363793ae25755">find2</a> (0, 0, 0);
|
|
<a name="l00956"></a>00956 }
|
|
<a name="l00957"></a>00957 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00958"></a><a class="code" href="a00150.html#a8ef345c9b3027566f0c7f7010f21f7cd">00958</a> <a class="code" href="a00152.html">const_iterator2</a> <a class="code" href="a00150.html#a8ef345c9b3027566f0c7f7010f21f7cd">end2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00959"></a>00959 <span class="keywordflow">return</span> <a class="code" href="a00150.html#a4824ddc79f33c92f35f363793ae25755">find2</a> (0, 0, <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>);
|
|
<a name="l00960"></a>00960 }
|
|
<a name="l00961"></a>00961
|
|
<a name="l00962"></a>00962 <span class="preprocessor">#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR</span>
|
|
<a name="l00963"></a><a class="code" href="a00154.html">00963</a> <span class="preprocessor"></span> <span class="keyword">class </span><a class="code" href="a00154.html">iterator2</a>:
|
|
<a name="l00964"></a>00964 <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><hermitian_matrix>,
|
|
<a name="l00965"></a>00965 <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="l00966"></a>00966 iterator2, value_type> {
|
|
<a name="l00967"></a>00967 <span class="keyword">public</span>:
|
|
<a name="l00968"></a><a class="code" href="a00154.html#a1d183624d0ca8aa2cfe3a7224e69efd2">00968</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00150.html#a717d8ee188b1eefd52b961c8326b320a">hermitian_matrix::value_type</a> <a class="code" href="a00154.html#a1d183624d0ca8aa2cfe3a7224e69efd2">value_type</a>;
|
|
<a name="l00969"></a><a class="code" href="a00154.html#a617ed7f1b2a6fc035d9bb56356f2c2b8">00969</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00150.html#a62d04850fc5b37976df8b332d3e29203">hermitian_matrix::difference_type</a> <a class="code" href="a00154.html#a617ed7f1b2a6fc035d9bb56356f2c2b8">difference_type</a>;
|
|
<a name="l00970"></a><a class="code" href="a00154.html#aeee3966ade3b9e7f4c22e5a46f0004d2">00970</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00150.html#aafed3a7043c7b1edb1baf10667b529f0">hermitian_matrix::true_reference</a> <a class="code" href="a00154.html#aeee3966ade3b9e7f4c22e5a46f0004d2">reference</a>;
|
|
<a name="l00971"></a><a class="code" href="a00154.html#aa61687f85b7ffbd2a583dba44dcd053e">00971</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00150.html#a4215448dfe3b1bb588ef1265cab3bf44">hermitian_matrix::pointer</a> <a class="code" href="a00154.html#aa61687f85b7ffbd2a583dba44dcd053e">pointer</a>;
|
|
<a name="l00972"></a>00972
|
|
<a name="l00973"></a><a class="code" href="a00154.html#a14c0214a09b441ab776a8ea476065199">00973</a> <span class="keyword">typedef</span> <a class="code" href="a00153.html">iterator1</a> <a class="code" href="a00154.html#a14c0214a09b441ab776a8ea476065199">dual_iterator_type</a>;
|
|
<a name="l00974"></a><a class="code" href="a00154.html#a28ca8beddb79aa922b90eabd49105d64">00974</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="a00154.html#a28ca8beddb79aa922b90eabd49105d64">dual_reverse_iterator_type</a>;
|
|
<a name="l00975"></a>00975
|
|
<a name="l00976"></a>00976 <span class="comment">// Construction and destruction</span>
|
|
<a name="l00977"></a>00977 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00978"></a><a class="code" href="a00154.html#a56588c292be8db294156b5819dd7a44e">00978</a> <a class="code" href="a00154.html#a56588c292be8db294156b5819dd7a44e">iterator2</a> ():
|
|
<a name="l00979"></a>00979 <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="a00150.html" title="A hermitian matrix of values of type T.">self_type</a>> (), <a class="code" href="a00154.html#a183858f61cd2efb523c2ebde7a6fd605">it1_</a> (), <a class="code" href="a00154.html#af5a884802e31ae9e128b6d195fc6aba9">it2_</a> () {}
|
|
<a name="l00980"></a>00980 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00981"></a><a class="code" href="a00154.html#ad97bd5bebd92799b027ed63d5579c21b">00981</a> <a class="code" href="a00154.html#a56588c292be8db294156b5819dd7a44e">iterator2</a> (<a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">self_type</a> &m, <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> it1, <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> it2):
|
|
<a name="l00982"></a>00982 <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="a00150.html" title="A hermitian matrix of values of type T.">self_type</a>> (m), <a class="code" href="a00154.html#a183858f61cd2efb523c2ebde7a6fd605">it1_</a> (it1), <a class="code" href="a00154.html#af5a884802e31ae9e128b6d195fc6aba9">it2_</a> (it2) {}
|
|
<a name="l00983"></a>00983
|
|
<a name="l00984"></a>00984 <span class="comment">// Arithmetic</span>
|
|
<a name="l00985"></a>00985 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00986"></a><a class="code" href="a00154.html#a4a7e86929a1aef4a76c45332c087cc6e">00986</a> <a class="code" href="a00154.html">iterator2</a> &<a class="code" href="a00154.html#a4a7e86929a1aef4a76c45332c087cc6e">operator ++ </a>() {
|
|
<a name="l00987"></a>00987 ++ <a class="code" href="a00154.html#af5a884802e31ae9e128b6d195fc6aba9">it2_</a>;
|
|
<a name="l00988"></a>00988 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<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="a00154.html#a6e2919abfbaced3d8106b9fe2162fd0a">00991</a> <a class="code" href="a00154.html">iterator2</a> &<a class="code" href="a00154.html#a6e2919abfbaced3d8106b9fe2162fd0a">operator -- </a>() {
|
|
<a name="l00992"></a>00992 -- <a class="code" href="a00154.html#af5a884802e31ae9e128b6d195fc6aba9">it2_</a>;
|
|
<a name="l00993"></a>00993 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00994"></a>00994 }
|
|
<a name="l00995"></a>00995 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00996"></a><a class="code" href="a00154.html#a74041b4d854bcdbdea6ad61ef2aabc95">00996</a> <a class="code" href="a00154.html">iterator2</a> &<a class="code" href="a00154.html#a74041b4d854bcdbdea6ad61ef2aabc95">operator += </a>(<a class="code" href="a00154.html#a617ed7f1b2a6fc035d9bb56356f2c2b8">difference_type</a> n) {
|
|
<a name="l00997"></a>00997 <a class="code" href="a00154.html#af5a884802e31ae9e128b6d195fc6aba9">it2_</a> += n;
|
|
<a name="l00998"></a>00998 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00999"></a>00999 }
|
|
<a name="l01000"></a>01000 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01001"></a><a class="code" href="a00154.html#a5f82bd6730cc2b9f95ebb6664c20227b">01001</a> <a class="code" href="a00154.html">iterator2</a> &<a class="code" href="a00154.html#a5f82bd6730cc2b9f95ebb6664c20227b">operator -= </a>(<a class="code" href="a00154.html#a617ed7f1b2a6fc035d9bb56356f2c2b8">difference_type</a> n) {
|
|
<a name="l01002"></a>01002 <a class="code" href="a00154.html#af5a884802e31ae9e128b6d195fc6aba9">it2_</a> -= n;
|
|
<a name="l01003"></a>01003 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01004"></a>01004 }
|
|
<a name="l01005"></a>01005 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01006"></a><a class="code" href="a00154.html#a27e5e511b4acb3d2a46c432161e94d76">01006</a> <a class="code" href="a00154.html#a617ed7f1b2a6fc035d9bb56356f2c2b8">difference_type</a> <a class="code" href="a00154.html#a27e5e511b4acb3d2a46c432161e94d76">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00154.html">iterator2</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l01007"></a>01007 <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="l01008"></a>01008 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00154.html#a183858f61cd2efb523c2ebde7a6fd605">it1_</a> == it.<a class="code" href="a00154.html#a183858f61cd2efb523c2ebde7a6fd605">it1_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01009"></a>01009 <span class="keywordflow">return</span> <a class="code" href="a00154.html#af5a884802e31ae9e128b6d195fc6aba9">it2_</a> - it.<a class="code" href="a00154.html#af5a884802e31ae9e128b6d195fc6aba9">it2_</a>;
|
|
<a name="l01010"></a>01010 }
|
|
<a name="l01011"></a>01011
|
|
<a name="l01012"></a>01012 <span class="comment">// Dereference</span>
|
|
<a name="l01013"></a>01013 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01014"></a><a class="code" href="a00154.html#a1fdad9c260d560d682b7c83db3aac0ae">01014</a> <a class="code" href="a00154.html#aeee3966ade3b9e7f4c22e5a46f0004d2">reference</a> <a class="code" href="a00154.html#a1fdad9c260d560d682b7c83db3aac0ae">operator * </a>()<span class="keyword"> const </span>{
|
|
<a name="l01015"></a>01015 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00150.html#ae49ff86aca4026ed41b878c53b2050cc">at_element</a> (<a class="code" href="a00154.html#a183858f61cd2efb523c2ebde7a6fd605">it1_</a>, <a class="code" href="a00154.html#af5a884802e31ae9e128b6d195fc6aba9">it2_</a>);
|
|
<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="a00154.html#a3f3a530527d3ec08e1a79e3a6ac060f4">01018</a> <a class="code" href="a00154.html#aeee3966ade3b9e7f4c22e5a46f0004d2">reference</a> <a class="code" href="a00154.html#a3f3a530527d3ec08e1a79e3a6ac060f4">operator [] </a>(<a class="code" href="a00154.html#a617ed7f1b2a6fc035d9bb56356f2c2b8">difference_type</a> n)<span class="keyword"> const </span>{
|
|
<a name="l01019"></a>01019 <span class="keywordflow">return</span> *(*<span class="keyword">this</span> + n);
|
|
<a name="l01020"></a>01020 }
|
|
<a name="l01021"></a>01021
|
|
<a name="l01022"></a>01022 <span class="preprocessor">#ifndef BOOST_UBLAS_NO_NESTED_CLASS_RELATION</span>
|
|
<a name="l01023"></a>01023 <span class="preprocessor"></span> <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01024"></a>01024 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l01025"></a>01025 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">self_type</a>::
|
|
<a name="l01026"></a>01026 <span class="preprocessor">#endif</span>
|
|
<a name="l01027"></a><a class="code" href="a00154.html#acaa1719fc648e35f4b114d9b33583223">01027</a> <span class="preprocessor"></span> <a class="code" href="a00153.html">iterator1</a> <a class="code" href="a00154.html#acaa1719fc648e35f4b114d9b33583223">begin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01028"></a>01028 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00150.html#a651ac196c7d393d04acc54f9a1ba9d1d">find1</a> (1, 0, <a class="code" href="a00154.html#af5a884802e31ae9e128b6d195fc6aba9">it2_</a>);
|
|
<a name="l01029"></a>01029 }
|
|
<a name="l01030"></a>01030 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01031"></a>01031 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l01032"></a>01032 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">self_type</a>::
|
|
<a name="l01033"></a>01033 <span class="preprocessor">#endif</span>
|
|
<a name="l01034"></a><a class="code" href="a00154.html#a504510a03542f8242bc069de6daf59ca">01034</a> <span class="preprocessor"></span> <a class="code" href="a00153.html">iterator1</a> <a class="code" href="a00154.html#a504510a03542f8242bc069de6daf59ca">end</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01035"></a>01035 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00150.html#a651ac196c7d393d04acc54f9a1ba9d1d">find1</a> (1, (*<span class="keyword">this</span>) ().<a class="code" href="a00150.html#a60daa55b6be28f2753debffad455b74f">size1</a> (), <a class="code" href="a00154.html#af5a884802e31ae9e128b6d195fc6aba9">it2_</a>);
|
|
<a name="l01036"></a>01036 }
|
|
<a name="l01037"></a>01037 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01038"></a>01038 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l01039"></a>01039 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">self_type</a>::
|
|
<a name="l01040"></a>01040 <span class="preprocessor">#endif</span>
|
|
<a name="l01041"></a><a class="code" href="a00154.html#a4154534babc683d78e5c832f48493843">01041</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="a00154.html#a4154534babc683d78e5c832f48493843">rbegin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01042"></a>01042 <span class="keywordflow">return</span> <a class="code" href="a00150.html#aa376cbc4b849f940af2386e33e91f9dd">reverse_iterator1</a> (<a class="code" href="a00154.html#a504510a03542f8242bc069de6daf59ca">end</a> ());
|
|
<a name="l01043"></a>01043 }
|
|
<a name="l01044"></a>01044 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01045"></a>01045 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l01046"></a>01046 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00150.html" title="A hermitian matrix of values of type T.">self_type</a>::
|
|
<a name="l01047"></a>01047 <span class="preprocessor">#endif</span>
|
|
<a name="l01048"></a><a class="code" href="a00154.html#ae7e165a6d14bbbafd37cd1d8944f28cd">01048</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="a00154.html#ae7e165a6d14bbbafd37cd1d8944f28cd">rend</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01049"></a>01049 <span class="keywordflow">return</span> <a class="code" href="a00150.html#aa376cbc4b849f940af2386e33e91f9dd">reverse_iterator1</a> (<a class="code" href="a00154.html#acaa1719fc648e35f4b114d9b33583223">begin</a> ());
|
|
<a name="l01050"></a>01050 }
|
|
<a name="l01051"></a>01051 <span class="preprocessor">#endif</span>
|
|
<a name="l01052"></a>01052 <span class="preprocessor"></span>
|
|
<a name="l01053"></a>01053 <span class="comment">// Indices</span>
|
|
<a name="l01054"></a>01054 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01055"></a><a class="code" href="a00154.html#ab3abea580da744568af9dae237d6b590">01055</a> <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> <a class="code" href="a00154.html#ab3abea580da744568af9dae237d6b590">index1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01056"></a>01056 <span class="keywordflow">return</span> <a class="code" href="a00154.html#a183858f61cd2efb523c2ebde7a6fd605">it1_</a>;
|
|
<a name="l01057"></a>01057 }
|
|
<a name="l01058"></a>01058 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01059"></a><a class="code" href="a00154.html#ad9b8add1cc5c2ecf3854cab83b33631c">01059</a> <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> <a class="code" href="a00154.html#ad9b8add1cc5c2ecf3854cab83b33631c">index2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01060"></a>01060 <span class="keywordflow">return</span> <a class="code" href="a00154.html#af5a884802e31ae9e128b6d195fc6aba9">it2_</a>;
|
|
<a name="l01061"></a>01061 }
|
|
<a name="l01062"></a>01062
|
|
<a name="l01063"></a>01063 <span class="comment">// Assignment</span>
|
|
<a name="l01064"></a>01064 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01065"></a><a class="code" href="a00154.html#ada6ad55a737eec02c8234ee85eb32776">01065</a> <a class="code" href="a00154.html">iterator2</a> &<a class="code" href="a00154.html#ada6ad55a737eec02c8234ee85eb32776">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00154.html">iterator2</a> &it) {
|
|
<a name="l01066"></a>01066 <a class="code" href="a00070.html#a8ee5b7e2ac6a45d59e4873df582a02b2">container_reference<self_type>::assign</a> (&it ());
|
|
<a name="l01067"></a>01067 <a class="code" href="a00154.html#a183858f61cd2efb523c2ebde7a6fd605">it1_</a> = it.<a class="code" href="a00154.html#a183858f61cd2efb523c2ebde7a6fd605">it1_</a>;
|
|
<a name="l01068"></a>01068 <a class="code" href="a00154.html#af5a884802e31ae9e128b6d195fc6aba9">it2_</a> = it.<a class="code" href="a00154.html#af5a884802e31ae9e128b6d195fc6aba9">it2_</a>;
|
|
<a name="l01069"></a>01069 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01070"></a>01070 }
|
|
<a name="l01071"></a>01071
|
|
<a name="l01072"></a>01072 <span class="comment">// Comparison</span>
|
|
<a name="l01073"></a>01073 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01074"></a><a class="code" href="a00154.html#ac2339c6e79676450ff3ed51dca88a915">01074</a> <span class="keywordtype">bool</span> <a class="code" href="a00154.html#ac2339c6e79676450ff3ed51dca88a915">operator == </a>(<span class="keyword">const</span> <a class="code" href="a00154.html">iterator2</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l01075"></a>01075 <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="l01076"></a>01076 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00154.html#a183858f61cd2efb523c2ebde7a6fd605">it1_</a> == it.<a class="code" href="a00154.html#a183858f61cd2efb523c2ebde7a6fd605">it1_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01077"></a>01077 <span class="keywordflow">return</span> <a class="code" href="a00154.html#af5a884802e31ae9e128b6d195fc6aba9">it2_</a> == it.<a class="code" href="a00154.html#af5a884802e31ae9e128b6d195fc6aba9">it2_</a>;
|
|
<a name="l01078"></a>01078 }
|
|
<a name="l01079"></a>01079 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01080"></a><a class="code" href="a00154.html#ac1a640e973065302f66a314ce745d61b">01080</a> <span class="keywordtype">bool</span> <a class="code" href="a00154.html#ac1a640e973065302f66a314ce745d61b">operator < </a>(<span class="keyword">const</span> <a class="code" href="a00154.html">iterator2</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l01081"></a>01081 <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="l01082"></a>01082 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00154.html#a183858f61cd2efb523c2ebde7a6fd605">it1_</a> == it.<a class="code" href="a00154.html#a183858f61cd2efb523c2ebde7a6fd605">it1_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01083"></a>01083 <span class="keywordflow">return</span> <a class="code" href="a00154.html#af5a884802e31ae9e128b6d195fc6aba9">it2_</a> < it.<a class="code" href="a00154.html#af5a884802e31ae9e128b6d195fc6aba9">it2_</a>;
|
|
<a name="l01084"></a>01084 }
|
|
<a name="l01085"></a>01085
|
|
<a name="l01086"></a>01086 <span class="keyword">private</span>:
|
|
<a name="l01087"></a><a class="code" href="a00154.html#a183858f61cd2efb523c2ebde7a6fd605">01087</a> <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> <a class="code" href="a00154.html#a183858f61cd2efb523c2ebde7a6fd605">it1_</a>;
|
|
<a name="l01088"></a><a class="code" href="a00154.html#af5a884802e31ae9e128b6d195fc6aba9">01088</a> <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> <a class="code" href="a00154.html#af5a884802e31ae9e128b6d195fc6aba9">it2_</a>;
|
|
<a name="l01089"></a>01089
|
|
<a name="l01090"></a><a class="code" href="a00154.html#aac78e9ee2b65e927cfcd66579833084f">01090</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="a00152.html">const_iterator2</a>;
|
|
<a name="l01091"></a>01091 };
|
|
<a name="l01092"></a>01092 <span class="preprocessor">#endif</span>
|
|
<a name="l01093"></a>01093 <span class="preprocessor"></span>
|
|
<a name="l01094"></a>01094 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01095"></a><a class="code" href="a00150.html#a9a510e95645bc49cff395529166ee378">01095</a> <a class="code" href="a00154.html">iterator2</a> <a class="code" href="a00150.html#a9a510e95645bc49cff395529166ee378">begin2</a> () {
|
|
<a name="l01096"></a>01096 <span class="keywordflow">return</span> <a class="code" href="a00150.html#a4824ddc79f33c92f35f363793ae25755">find2</a> (0, 0, 0);
|
|
<a name="l01097"></a>01097 }
|
|
<a name="l01098"></a>01098 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01099"></a><a class="code" href="a00150.html#a8e195b66804ee5cbd50d0011a76808f7">01099</a> <a class="code" href="a00154.html">iterator2</a> <a class="code" href="a00150.html#a8e195b66804ee5cbd50d0011a76808f7">end2</a> () {
|
|
<a name="l01100"></a>01100 <span class="keywordflow">return</span> <a class="code" href="a00150.html#a4824ddc79f33c92f35f363793ae25755">find2</a> (0, 0, <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>);
|
|
<a name="l01101"></a>01101 }
|
|
<a name="l01102"></a>01102
|
|
<a name="l01103"></a>01103 <span class="comment">// Reverse iterators</span>
|
|
<a name="l01104"></a>01104
|
|
<a name="l01105"></a>01105 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01106"></a><a class="code" href="a00150.html#a995f233b4ad80a4901cb2842a0a4c729">01106</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="a00150.html#a995f233b4ad80a4901cb2842a0a4c729">rbegin1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01107"></a>01107 <span class="keywordflow">return</span> <a class="code" href="a00150.html#a2aefa64fead82b0a97588631b4e0518a">const_reverse_iterator1</a> (<a class="code" href="a00150.html#aa7b121384a580ffb4a11118cb50a5484">end1</a> ());
|
|
<a name="l01108"></a>01108 }
|
|
<a name="l01109"></a>01109 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01110"></a><a class="code" href="a00150.html#aa6b47b506b2b8ae88a914b217ba22e2b">01110</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="a00150.html#aa6b47b506b2b8ae88a914b217ba22e2b">rend1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01111"></a>01111 <span class="keywordflow">return</span> <a class="code" href="a00150.html#a2aefa64fead82b0a97588631b4e0518a">const_reverse_iterator1</a> (<a class="code" href="a00150.html#af8b1b7c60e5b282ad4ff87ce317e5e3d">begin1</a> ());
|
|
<a name="l01112"></a>01112 }
|
|
<a name="l01113"></a>01113
|
|
<a name="l01114"></a>01114 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01115"></a><a class="code" href="a00150.html#afae414722b008c0ec55da4d9b2806a0c">01115</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="a00150.html#afae414722b008c0ec55da4d9b2806a0c">rbegin1</a> () {
|
|
<a name="l01116"></a>01116 <span class="keywordflow">return</span> <a class="code" href="a00150.html#aa376cbc4b849f940af2386e33e91f9dd">reverse_iterator1</a> (<a class="code" href="a00150.html#aa7b121384a580ffb4a11118cb50a5484">end1</a> ());
|
|
<a name="l01117"></a>01117 }
|
|
<a name="l01118"></a>01118 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01119"></a><a class="code" href="a00150.html#ac2f6653dcfe91d01bef53c4cb27b231a">01119</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="a00150.html#ac2f6653dcfe91d01bef53c4cb27b231a">rend1</a> () {
|
|
<a name="l01120"></a>01120 <span class="keywordflow">return</span> <a class="code" href="a00150.html#aa376cbc4b849f940af2386e33e91f9dd">reverse_iterator1</a> (<a class="code" href="a00150.html#af8b1b7c60e5b282ad4ff87ce317e5e3d">begin1</a> ());
|
|
<a name="l01121"></a>01121 }
|
|
<a name="l01122"></a>01122
|
|
<a name="l01123"></a>01123 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01124"></a><a class="code" href="a00150.html#a20dec72fec2078f24f9ee3e6d3a5fda9">01124</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="a00150.html#a20dec72fec2078f24f9ee3e6d3a5fda9">rbegin2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01125"></a>01125 <span class="keywordflow">return</span> <a class="code" href="a00150.html#a8fac55be8292fddcd0a17100ab99eb3a">const_reverse_iterator2</a> (<a class="code" href="a00150.html#a8ef345c9b3027566f0c7f7010f21f7cd">end2</a> ());
|
|
<a name="l01126"></a>01126 }
|
|
<a name="l01127"></a>01127 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01128"></a><a class="code" href="a00150.html#ae67fce78bf5aa6b559a0417f0aaa7cfb">01128</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="a00150.html#ae67fce78bf5aa6b559a0417f0aaa7cfb">rend2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01129"></a>01129 <span class="keywordflow">return</span> <a class="code" href="a00150.html#a8fac55be8292fddcd0a17100ab99eb3a">const_reverse_iterator2</a> (<a class="code" href="a00150.html#ab6dd49ce5ae419099ffc9326037d62ab">begin2</a> ());
|
|
<a name="l01130"></a>01130 }
|
|
<a name="l01131"></a>01131
|
|
<a name="l01132"></a>01132 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01133"></a><a class="code" href="a00150.html#a4e04d743db248761b3a3c2a87ef00a02">01133</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="a00150.html#a4e04d743db248761b3a3c2a87ef00a02">rbegin2</a> () {
|
|
<a name="l01134"></a>01134 <span class="keywordflow">return</span> <a class="code" href="a00150.html#aa1f6b6014c2a1d03a9f6c3ab2c1e2768">reverse_iterator2</a> (<a class="code" href="a00150.html#a8ef345c9b3027566f0c7f7010f21f7cd">end2</a> ());
|
|
<a name="l01135"></a>01135 }
|
|
<a name="l01136"></a>01136 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01137"></a><a class="code" href="a00150.html#ad4b774e3e67ddb46ba9a9fd8535d7af5">01137</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="a00150.html#ad4b774e3e67ddb46ba9a9fd8535d7af5">rend2</a> () {
|
|
<a name="l01138"></a>01138 <span class="keywordflow">return</span> <a class="code" href="a00150.html#aa1f6b6014c2a1d03a9f6c3ab2c1e2768">reverse_iterator2</a> (<a class="code" href="a00150.html#ab6dd49ce5ae419099ffc9326037d62ab">begin2</a> ());
|
|
<a name="l01139"></a>01139 }
|
|
<a name="l01140"></a>01140
|
|
<a name="l01141"></a>01141 <span class="keyword">private</span>:
|
|
<a name="l01142"></a><a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">01142</a> <a class="code" href="a00150.html#ad17507da98b34e55d2fa585975b15d92">size_type</a> <a class="code" href="a00150.html#a0a9cdefbdfcb5bb506a54bb897ae6a8a">size_</a>;
|
|
<a name="l01143"></a><a class="code" href="a00150.html#aaf1bac1951910b94023067bdf1fa6852">01143</a> <a class="code" href="a00150.html#a10a34613592b8156b08ef9f4fe37c03d">array_type</a> <a class="code" href="a00150.html#aaf1bac1951910b94023067bdf1fa6852">data_</a>;
|
|
<a name="l01144"></a>01144 };
|
|
<a name="l01145"></a>01145
|
|
<a name="l01155"></a>01155 <span class="keyword">template</span><<span class="keyword">class</span> M, <span class="keyword">class</span> TRI>
|
|
<a name="l01156"></a><a class="code" href="a00145.html">01156</a> <span class="keyword">class </span><a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">hermitian_adaptor</a>:
|
|
<a name="l01157"></a>01157 <span class="keyword">public</span> <a class="code" href="a00251.html" title="Base class for Matrix Expression models.">matrix_expression</a><hermitian_adaptor<M, TRI> > {
|
|
<a name="l01158"></a>01158
|
|
<a name="l01159"></a><a class="code" href="a00145.html#a01bffc01b1930a39f4a930b9076b79ba">01159</a> <span class="keyword">typedef</span> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">hermitian_adaptor<M, TRI></a> <a class="code" href="a00145.html#a01bffc01b1930a39f4a930b9076b79ba">self_type</a>;
|
|
<a name="l01160"></a><a class="code" href="a00145.html#aa9ee2fbcfebb462138a5b4c657ff8814">01160</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> M::value_type &<a class="code" href="a00145.html#aa9ee2fbcfebb462138a5b4c657ff8814">true_reference</a>;
|
|
<a name="l01161"></a>01161 <span class="keyword">public</span>:
|
|
<a name="l01162"></a>01162 <span class="preprocessor">#ifdef BOOST_UBLAS_ENABLE_PROXY_SHORTCUTS</span>
|
|
<a name="l01163"></a>01163 <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="l01164"></a>01164 <span class="preprocessor">#endif</span>
|
|
<a name="l01165"></a><a class="code" href="a00145.html#a6a86caa7e25069ac5576489545c64d14">01165</a> <span class="preprocessor"></span> <span class="keyword">typedef</span> <span class="keyword">const</span> M <a class="code" href="a00145.html#a6a86caa7e25069ac5576489545c64d14">const_matrix_type</a>;
|
|
<a name="l01166"></a><a class="code" href="a00145.html#a4b70a53e1fcff560a5f797b214c9cdf3">01166</a> <span class="keyword">typedef</span> M <a class="code" href="a00145.html#a4b70a53e1fcff560a5f797b214c9cdf3">matrix_type</a>;
|
|
<a name="l01167"></a><a class="code" href="a00145.html#a3b66b0f2551b1c257a32383cf1431bcb">01167</a> <span class="keyword">typedef</span> TRI <a class="code" href="a00145.html#a3b66b0f2551b1c257a32383cf1431bcb">triangular_type</a>;
|
|
<a name="l01168"></a><a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">01168</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> M::size_type <a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a>;
|
|
<a name="l01169"></a><a class="code" href="a00145.html#a056becf17668614f1efc04a1ebea0526">01169</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> M::difference_type <a class="code" href="a00145.html#a056becf17668614f1efc04a1ebea0526">difference_type</a>;
|
|
<a name="l01170"></a><a class="code" href="a00145.html#a83f172ce6cfcf9132c5eb7818c9a6e01">01170</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> M::value_type <a class="code" href="a00145.html#a83f172ce6cfcf9132c5eb7818c9a6e01">value_type</a>;
|
|
<a name="l01171"></a><a class="code" href="a00145.html#a77227aeb1a2b3663cc1db3b45fcdbae5">01171</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> M::value_type <a class="code" href="a00145.html#a77227aeb1a2b3663cc1db3b45fcdbae5">const_reference</a>;
|
|
<a name="l01172"></a>01172 <span class="preprocessor">#ifndef BOOST_UBLAS_STRICT_HERMITIAN</span>
|
|
<a name="l01173"></a>01173 <span class="preprocessor"></span> <span class="keyword">typedef</span> <span class="keyword">typename</span> boost::mpl::if_<boost::is_const<M>,
|
|
<a name="l01174"></a>01174 <span class="keyword">typename</span> <a class="code" href="a00145.html#a83f172ce6cfcf9132c5eb7818c9a6e01">M::value_type</a>,
|
|
<a name="l01175"></a><a class="code" href="a00145.html#a6188e68d4809643a39096713d945d63d">01175</a> <span class="keyword">typename</span> M::reference>::type <a class="code" href="a00145.html#a6188e68d4809643a39096713d945d63d">reference</a>;
|
|
<a name="l01176"></a>01176 <span class="preprocessor">#else</span>
|
|
<a name="l01177"></a>01177 <span class="preprocessor"></span> <span class="keyword">typedef</span> <span class="keyword">typename</span> boost::mpl::if_<boost::is_const<M>,
|
|
<a name="l01178"></a>01178 <span class="keyword">typename</span> <a class="code" href="a00145.html#a83f172ce6cfcf9132c5eb7818c9a6e01">M::value_type</a>,
|
|
<a name="l01179"></a>01179 hermitian_matrix_element<self_type> >::type <a class="code" href="a00145.html#a6188e68d4809643a39096713d945d63d">reference</a>;
|
|
<a name="l01180"></a>01180 <span class="preprocessor">#endif</span>
|
|
<a name="l01181"></a>01181 <span class="preprocessor"></span> <span class="keyword">typedef</span> <span class="keyword">typename</span> boost::mpl::if_<boost::is_const<M>,
|
|
<a name="l01182"></a>01182 <span class="keyword">typename</span> <a class="code" href="a00145.html#aedf88488c646d5814c67ba01fb386fb9">M::const_closure_type</a>,
|
|
<a name="l01183"></a><a class="code" href="a00145.html#ac3c37633992c83b4ab9f3cadcf52395a">01183</a> <span class="keyword">typename</span> M::closure_type>::type <a class="code" href="a00145.html#ac3c37633992c83b4ab9f3cadcf52395a">matrix_closure_type</a>;
|
|
<a name="l01184"></a><a class="code" href="a00145.html#aedf88488c646d5814c67ba01fb386fb9">01184</a> <span class="keyword">typedef</span> <span class="keyword">const</span> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a> <a class="code" href="a00145.html#aedf88488c646d5814c67ba01fb386fb9">const_closure_type</a>;
|
|
<a name="l01185"></a><a class="code" href="a00145.html#acae0de60dd85c0379aecbe5d1b59811a">01185</a> <span class="keyword">typedef</span> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a> <a class="code" href="a00145.html#acae0de60dd85c0379aecbe5d1b59811a">closure_type</a>;
|
|
<a name="l01186"></a>01186 <span class="comment">// Replaced by _temporary_traits to avoid type requirements on M</span>
|
|
<a name="l01187"></a>01187 <span class="comment">//typedef typename M::vector_temporary_type vector_temporary_type;</span>
|
|
<a name="l01188"></a>01188 <span class="comment">//typedef typename M::matrix_temporary_type matrix_temporary_type;</span>
|
|
<a name="l01189"></a>01189 <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="a00145.html#aeffdbbebb4f91cdbe58dd7f640ad7470">M::storage_category</a>,
|
|
<a name="l01190"></a><a class="code" href="a00145.html#aeffdbbebb4f91cdbe58dd7f640ad7470">01190</a> <a class="code" href="a00360.html">packed_proxy_tag</a>><a class="code" href="a00145.html#aeffdbbebb4f91cdbe58dd7f640ad7470">::storage_category</a> <a class="code" href="a00145.html#aeffdbbebb4f91cdbe58dd7f640ad7470">storage_category</a>;
|
|
<a name="l01191"></a><a class="code" href="a00145.html#a7bd41c6e11542c99cab8da14e9b7e352">01191</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> M::orientation_category <a class="code" href="a00145.html#a7bd41c6e11542c99cab8da14e9b7e352">orientation_category</a>;
|
|
<a name="l01192"></a>01192
|
|
<a name="l01193"></a>01193 <span class="comment">// Construction and destruction</span>
|
|
<a name="l01194"></a>01194 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01195"></a><a class="code" href="a00145.html#a366aa90a1410e786a6078df91d67ce17">01195</a> <a class="code" href="a00145.html#a366aa90a1410e786a6078df91d67ce17">hermitian_adaptor</a> (<a class="code" href="a00145.html#a4b70a53e1fcff560a5f797b214c9cdf3">matrix_type</a> &<a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a>):
|
|
<a name="l01196"></a>01196 <a class="code" href="a00251.html" title="Base class for Matrix Expression models.">matrix_expression</a><<a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a>> (),
|
|
<a name="l01197"></a>01197 <a class="code" href="a00145.html#a15ed283abf6f96a2eba94be2d25dde83">data_</a> (data) {
|
|
<a name="l01198"></a>01198 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00145.html#a15ed283abf6f96a2eba94be2d25dde83">data_</a>.size1 () == <a class="code" href="a00145.html#a15ed283abf6f96a2eba94be2d25dde83">data_</a>.size2 (), <a class="code" href="a00016.html">bad_size</a> ());
|
|
<a name="l01199"></a>01199 }
|
|
<a name="l01200"></a>01200 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01201"></a><a class="code" href="a00145.html#a23d78caaee4a9b6938bdf8239a6ce386">01201</a> <a class="code" href="a00145.html#a366aa90a1410e786a6078df91d67ce17">hermitian_adaptor</a> (<span class="keyword">const</span> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">hermitian_adaptor</a> &m):
|
|
<a name="l01202"></a>01202 <a class="code" href="a00251.html" title="Base class for Matrix Expression models.">matrix_expression</a><<a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a>> (),
|
|
<a name="l01203"></a>01203 <a class="code" href="a00145.html#a15ed283abf6f96a2eba94be2d25dde83">data_</a> (m.<a class="code" href="a00145.html#a15ed283abf6f96a2eba94be2d25dde83">data_</a>) {
|
|
<a name="l01204"></a>01204 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00145.html#a15ed283abf6f96a2eba94be2d25dde83">data_</a>.size1 () == <a class="code" href="a00145.html#a15ed283abf6f96a2eba94be2d25dde83">data_</a>.size2 (), <a class="code" href="a00016.html">bad_size</a> ());
|
|
<a name="l01205"></a>01205 }
|
|
<a name="l01206"></a>01206
|
|
<a name="l01207"></a>01207 <span class="comment">// Accessors</span>
|
|
<a name="l01208"></a>01208 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01209"></a><a class="code" href="a00145.html#a0f1a3c71c1ff3601fb0d1eca0e351d3b">01209</a> <a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> <a class="code" href="a00145.html#a0f1a3c71c1ff3601fb0d1eca0e351d3b">size1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01210"></a>01210 <span class="keywordflow">return</span> <a class="code" href="a00145.html#a15ed283abf6f96a2eba94be2d25dde83">data_</a>.size1 ();
|
|
<a name="l01211"></a>01211 }
|
|
<a name="l01212"></a>01212 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01213"></a><a class="code" href="a00145.html#a980d12364f40b8b1dcacef1a0bde5a6b">01213</a> <a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> <a class="code" href="a00145.html#a980d12364f40b8b1dcacef1a0bde5a6b">size2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01214"></a>01214 <span class="keywordflow">return</span> <a class="code" href="a00145.html#a15ed283abf6f96a2eba94be2d25dde83">data_</a>.size2 ();
|
|
<a name="l01215"></a>01215 }
|
|
<a name="l01216"></a>01216
|
|
<a name="l01217"></a>01217 <span class="comment">// Storage accessors</span>
|
|
<a name="l01218"></a>01218 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01219"></a><a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">01219</a> <span class="keyword">const</span> <a class="code" href="a00145.html#ac3c37633992c83b4ab9f3cadcf52395a">matrix_closure_type</a> &<a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01220"></a>01220 <span class="keywordflow">return</span> <a class="code" href="a00145.html#a15ed283abf6f96a2eba94be2d25dde83">data_</a>;
|
|
<a name="l01221"></a>01221 }
|
|
<a name="l01222"></a>01222 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01223"></a><a class="code" href="a00145.html#a04d4a9a85a5f740108ac05801b17c825">01223</a> <a class="code" href="a00145.html#ac3c37633992c83b4ab9f3cadcf52395a">matrix_closure_type</a> &<a class="code" href="a00145.html#a04d4a9a85a5f740108ac05801b17c825">data</a> () {
|
|
<a name="l01224"></a>01224 <span class="keywordflow">return</span> <a class="code" href="a00145.html#a15ed283abf6f96a2eba94be2d25dde83">data_</a>;
|
|
<a name="l01225"></a>01225 }
|
|
<a name="l01226"></a>01226
|
|
<a name="l01227"></a>01227 <span class="comment">// Element access</span>
|
|
<a name="l01228"></a>01228 <span class="preprocessor">#ifndef BOOST_UBLAS_PROXY_CONST_MEMBER</span>
|
|
<a name="l01229"></a>01229 <span class="preprocessor"></span> <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01230"></a><a class="code" href="a00145.html#a8c5adffee0792ad19a328f39a7f815a8">01230</a> <a class="code" href="a00145.html#a77227aeb1a2b3663cc1db3b45fcdbae5">const_reference</a> <a class="code" href="a00251.html#a6dc287a9087643182442298441742bc0">operator () </a>(<a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> i, <a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> j)<span class="keyword"> const </span>{
|
|
<a name="l01231"></a>01231 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (i < <a class="code" href="a00145.html#a0f1a3c71c1ff3601fb0d1eca0e351d3b">size1</a> (), <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l01232"></a>01232 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (j < <a class="code" href="a00145.html#a980d12364f40b8b1dcacef1a0bde5a6b">size2</a> (), <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l01233"></a>01233 <span class="comment">// if (i == j)</span>
|
|
<a name="l01234"></a>01234 <span class="comment">// return type_traits<value_type>::real (data () (i, i));</span>
|
|
<a name="l01235"></a>01235 <span class="comment">// else</span>
|
|
<a name="l01236"></a>01236 <span class="keywordflow">if</span> (triangular_type::other (i, j))
|
|
<a name="l01237"></a>01237 <span class="keywordflow">return</span> <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> () (i, j);
|
|
<a name="l01238"></a>01238 <span class="keywordflow">else</span>
|
|
<a name="l01239"></a>01239 <span class="keywordflow">return</span> <a class="code" href="a00595.html#a66f888cfb70f1e904e5c7ec1d1d6e514">type_traits<value_type>::conj</a> (<a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> () (j, i));
|
|
<a name="l01240"></a>01240 }
|
|
<a name="l01241"></a>01241 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01242"></a><a class="code" href="a00145.html#ad08795b0c27fdea9b5c3647fffd0de3d">01242</a> <a class="code" href="a00145.html#a6188e68d4809643a39096713d945d63d">reference</a> <a class="code" href="a00251.html#a6dc287a9087643182442298441742bc0">operator () </a>(<a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> i, <a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> j) {
|
|
<a name="l01243"></a>01243 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (i < <a class="code" href="a00145.html#a0f1a3c71c1ff3601fb0d1eca0e351d3b">size1</a> (), <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l01244"></a>01244 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (j < <a class="code" href="a00145.html#a980d12364f40b8b1dcacef1a0bde5a6b">size2</a> (), <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l01245"></a>01245 <span class="preprocessor">#ifndef BOOST_UBLAS_STRICT_HERMITIAN</span>
|
|
<a name="l01246"></a>01246 <span class="preprocessor"></span> <span class="keywordflow">if</span> (triangular_type::other (i, j))
|
|
<a name="l01247"></a>01247 <span class="keywordflow">return</span> <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> () (i, j);
|
|
<a name="l01248"></a>01248 <span class="keywordflow">else</span> {
|
|
<a name="l01249"></a>01249 <a class="code" href="a00132.html">external_logic</a> ().<a class="code" href="a00132.html#a3646372b2dad7953c194da0b1fda8a39">raise</a> ();
|
|
<a name="l01250"></a>01250 <span class="keywordflow">return</span> <a class="code" href="a00145.html#adaecc492127df642011f4c1b10a0e4a4">conj_</a> = <a class="code" href="a00595.html#a66f888cfb70f1e904e5c7ec1d1d6e514">type_traits<value_type>::conj</a> (<a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> () (j, i));
|
|
<a name="l01251"></a>01251 }
|
|
<a name="l01252"></a>01252 <span class="preprocessor">#else</span>
|
|
<a name="l01253"></a>01253 <span class="preprocessor"></span> <span class="keywordflow">if</span> (triangular_type::other (i, j))
|
|
<a name="l01254"></a>01254 <span class="keywordflow">return</span> <a class="code" href="a00145.html#a6188e68d4809643a39096713d945d63d">reference</a> (*<span class="keyword">this</span>, i, j, <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> () (i, j));
|
|
<a name="l01255"></a>01255 <span class="keywordflow">else</span>
|
|
<a name="l01256"></a>01256 <span class="keywordflow">return</span> <a class="code" href="a00145.html#a6188e68d4809643a39096713d945d63d">reference</a> (*<span class="keyword">this</span>, i, j, <a class="code" href="a00465.html">type_traits<value_type>::conj</a> (<a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> () (j, i)));
|
|
<a name="l01257"></a>01257 <span class="preprocessor">#endif</span>
|
|
<a name="l01258"></a>01258 <span class="preprocessor"></span> }
|
|
<a name="l01259"></a>01259 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01260"></a><a class="code" href="a00145.html#aca052b3a584fea64734f6ca68d8dc1b7">01260</a> <a class="code" href="a00145.html#aa9ee2fbcfebb462138a5b4c657ff8814">true_reference</a> <a class="code" href="a00145.html#aca052b3a584fea64734f6ca68d8dc1b7">insert_element</a> (<a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> i, <a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> j, <a class="code" href="a00145.html#a83f172ce6cfcf9132c5eb7818c9a6e01">value_type</a> t) {
|
|
<a name="l01261"></a>01261 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (i < <a class="code" href="a00145.html#a0f1a3c71c1ff3601fb0d1eca0e351d3b">size1</a> (), <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l01262"></a>01262 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (j < <a class="code" href="a00145.html#a980d12364f40b8b1dcacef1a0bde5a6b">size2</a> (), <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l01263"></a>01263 <span class="comment">// if (i == j)</span>
|
|
<a name="l01264"></a>01264 <span class="comment">// data () (i, i) = type_traits<value_type>::real (t);</span>
|
|
<a name="l01265"></a>01265 <span class="comment">// else</span>
|
|
<a name="l01266"></a>01266 <span class="keywordflow">if</span> (triangular_type::other (i, j))
|
|
<a name="l01267"></a>01267 <span class="keywordflow">return</span> <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> () (i, j) = t;
|
|
<a name="l01268"></a>01268 <span class="keywordflow">else</span>
|
|
<a name="l01269"></a>01269 <span class="keywordflow">return</span> <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> () (j, i) = <a class="code" href="a00465.html">type_traits<value_type>::conj</a> (t);
|
|
<a name="l01270"></a>01270 }
|
|
<a name="l01271"></a>01271 <span class="preprocessor">#else</span>
|
|
<a name="l01272"></a>01272 <span class="preprocessor"></span> <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01273"></a>01273 <a class="code" href="a00145.html#a6188e68d4809643a39096713d945d63d">reference</a> <a class="code" href="a00251.html#a6dc287a9087643182442298441742bc0">operator () </a>(<a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> i, <a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> j) {
|
|
<a name="l01274"></a>01274 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (i < <a class="code" href="a00145.html#a0f1a3c71c1ff3601fb0d1eca0e351d3b">size1</a> (), <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l01275"></a>01275 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (j < <a class="code" href="a00145.html#a980d12364f40b8b1dcacef1a0bde5a6b">size2</a> (), <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l01276"></a>01276 <span class="preprocessor">#ifndef BOOST_UBLAS_STRICT_HERMITIAN</span>
|
|
<a name="l01277"></a>01277 <span class="preprocessor"></span> <span class="keywordflow">if</span> (triangular_type::other (i, j))
|
|
<a name="l01278"></a>01278 <span class="keywordflow">return</span> <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> () (i, j);
|
|
<a name="l01279"></a>01279 <span class="keywordflow">else</span> {
|
|
<a name="l01280"></a>01280 <a class="code" href="a00132.html">external_logic</a> ().<a class="code" href="a00132.html#a3646372b2dad7953c194da0b1fda8a39">raise</a> ();
|
|
<a name="l01281"></a>01281 <span class="keywordflow">return</span> <a class="code" href="a00145.html#adaecc492127df642011f4c1b10a0e4a4">conj_</a> = <a class="code" href="a00595.html#a66f888cfb70f1e904e5c7ec1d1d6e514">type_traits<value_type>::conj</a> (<a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> () (j, i));
|
|
<a name="l01282"></a>01282 }
|
|
<a name="l01283"></a>01283 <span class="preprocessor">#else</span>
|
|
<a name="l01284"></a>01284 <span class="preprocessor"></span> <span class="keywordflow">if</span> (triangular_type::other (i, j))
|
|
<a name="l01285"></a>01285 <span class="keywordflow">return</span> <a class="code" href="a00145.html#a6188e68d4809643a39096713d945d63d">reference</a> (*<span class="keyword">this</span>, i, j, <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> () (i, j));
|
|
<a name="l01286"></a>01286 <span class="keywordflow">else</span>
|
|
<a name="l01287"></a>01287 <span class="keywordflow">return</span> <a class="code" href="a00145.html#a6188e68d4809643a39096713d945d63d">reference</a> (*<span class="keyword">this</span>, i, j, <a class="code" href="a00595.html#a66f888cfb70f1e904e5c7ec1d1d6e514">type_traits<value_type>::conj</a> (<a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> () (j, i)));
|
|
<a name="l01288"></a>01288 <span class="preprocessor">#endif</span>
|
|
<a name="l01289"></a>01289 <span class="preprocessor"></span> }
|
|
<a name="l01290"></a>01290 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01291"></a>01291 <a class="code" href="a00145.html#aa9ee2fbcfebb462138a5b4c657ff8814">true_reference</a> <a class="code" href="a00145.html#aca052b3a584fea64734f6ca68d8dc1b7">insert_element</a> (<a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> i, <a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> j, <a class="code" href="a00145.html#a83f172ce6cfcf9132c5eb7818c9a6e01">value_type</a> t) {
|
|
<a name="l01292"></a>01292 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (i < <a class="code" href="a00145.html#a0f1a3c71c1ff3601fb0d1eca0e351d3b">size1</a> (), bad_index ());
|
|
<a name="l01293"></a>01293 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (j < <a class="code" href="a00145.html#a980d12364f40b8b1dcacef1a0bde5a6b">size2</a> (), bad_index ());
|
|
<a name="l01294"></a>01294 <span class="comment">// if (i == j)</span>
|
|
<a name="l01295"></a>01295 <span class="comment">// data () (i, i) = type_traits<value_type>::real (t);</span>
|
|
<a name="l01296"></a>01296 <span class="comment">// else</span>
|
|
<a name="l01297"></a>01297 <span class="keywordflow">if</span> (triangular_type::other (i, j))
|
|
<a name="l01298"></a>01298 <span class="keywordflow">return</span> <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> () (i, j) = t;
|
|
<a name="l01299"></a>01299 <span class="keywordflow">else</span>
|
|
<a name="l01300"></a>01300 <span class="keywordflow">return</span> <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> () (j, i) = <a class="code" href="a00595.html#a66f888cfb70f1e904e5c7ec1d1d6e514">type_traits<value_type>::conj</a> (t);
|
|
<a name="l01301"></a>01301 }
|
|
<a name="l01302"></a>01302 <span class="preprocessor">#endif</span>
|
|
<a name="l01303"></a>01303 <span class="preprocessor"></span>
|
|
<a name="l01304"></a>01304 <span class="comment">// Assignment</span>
|
|
<a name="l01305"></a>01305 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01306"></a><a class="code" href="a00145.html#a17d05ef65a2d9556b703183d8380fdcb">01306</a> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">hermitian_adaptor</a> &<a class="code" href="a00145.html#a17d05ef65a2d9556b703183d8380fdcb">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">hermitian_adaptor</a> &m) {
|
|
<a name="l01307"></a>01307 matrix_assign<scalar_assign, triangular_type> (*<span class="keyword">this</span>, m);
|
|
<a name="l01308"></a>01308 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01309"></a>01309 }
|
|
<a name="l01310"></a>01310 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01311"></a><a class="code" href="a00145.html#a2f15a188903a080d18a31cfc6994c02b">01311</a> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">hermitian_adaptor</a> &<a class="code" href="a00145.html#a2f15a188903a080d18a31cfc6994c02b">assign_temporary</a> (<a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">hermitian_adaptor</a> &m) {
|
|
<a name="l01312"></a>01312 *<span class="keyword">this</span> = m;
|
|
<a name="l01313"></a>01313 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01314"></a>01314 }
|
|
<a name="l01315"></a>01315 <span class="keyword">template</span><<span class="keyword">class</span> AE>
|
|
<a name="l01316"></a>01316 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01317"></a><a class="code" href="a00145.html#a2f25b6685191462896037891c9c977bd">01317</a> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">hermitian_adaptor</a> &<a class="code" href="a00145.html#a17d05ef65a2d9556b703183d8380fdcb">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="l01318"></a>01318 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="l01319"></a>01319 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01320"></a>01320 }
|
|
<a name="l01321"></a>01321 <span class="keyword">template</span><<span class="keyword">class</span> AE>
|
|
<a name="l01322"></a>01322 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01323"></a><a class="code" href="a00145.html#a2c87b86586292f0952c5f16d5c842ef3">01323</a> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">hermitian_adaptor</a> &<a class="code" href="a00145.html#a2c87b86586292f0952c5f16d5c842ef3">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="l01324"></a>01324 matrix_assign<scalar_assign, triangular_type> (*<span class="keyword">this</span>, ae);
|
|
<a name="l01325"></a>01325 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01326"></a>01326 }
|
|
<a name="l01327"></a>01327 <span class="keyword">template</span><<span class="keyword">class</span> AE>
|
|
<a name="l01328"></a>01328 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01329"></a><a class="code" href="a00145.html#ae76babd6b9c1ca667bacb50c9e64119c">01329</a> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">hermitian_adaptor</a>& <a class="code" href="a00145.html#ae76babd6b9c1ca667bacb50c9e64119c">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="l01330"></a>01330 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="l01331"></a>01331 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01332"></a>01332 }
|
|
<a name="l01333"></a>01333 <span class="keyword">template</span><<span class="keyword">class</span> AE>
|
|
<a name="l01334"></a>01334 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01335"></a><a class="code" href="a00145.html#aebafd3058df874a5ca6e04a790e0dd65">01335</a> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">hermitian_adaptor</a> &<a class="code" href="a00145.html#aebafd3058df874a5ca6e04a790e0dd65">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="l01336"></a>01336 matrix_assign<scalar_plus_assign, triangular_type> (*<span class="keyword">this</span>, ae);
|
|
<a name="l01337"></a>01337 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01338"></a>01338 }
|
|
<a name="l01339"></a>01339 <span class="keyword">template</span><<span class="keyword">class</span> AE>
|
|
<a name="l01340"></a>01340 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01341"></a><a class="code" href="a00145.html#aefd1386eeb60956a4f52f84b4fddf991">01341</a> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">hermitian_adaptor</a>& <a class="code" href="a00145.html#aefd1386eeb60956a4f52f84b4fddf991">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="l01342"></a>01342 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="l01343"></a>01343 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01344"></a>01344 }
|
|
<a name="l01345"></a>01345 <span class="keyword">template</span><<span class="keyword">class</span> AE>
|
|
<a name="l01346"></a>01346 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01347"></a><a class="code" href="a00145.html#a500d21204a73cc3c81c39a0ce1e0e30e">01347</a> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">hermitian_adaptor</a> &<a class="code" href="a00145.html#a500d21204a73cc3c81c39a0ce1e0e30e">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="l01348"></a>01348 matrix_assign<scalar_minus_assign, triangular_type> (*<span class="keyword">this</span>, ae);
|
|
<a name="l01349"></a>01349 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01350"></a>01350 }
|
|
<a name="l01351"></a>01351 <span class="keyword">template</span><<span class="keyword">class</span> AT>
|
|
<a name="l01352"></a>01352 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01353"></a><a class="code" href="a00145.html#ab46ef81b3e0c6aaad06f547311e6f028">01353</a> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">hermitian_adaptor</a>& <a class="code" href="a00145.html#ab46ef81b3e0c6aaad06f547311e6f028">operator *= </a>(<span class="keyword">const</span> AT &at) {
|
|
<a name="l01354"></a>01354 <span class="comment">// Multiplication is only allowed for real scalars,</span>
|
|
<a name="l01355"></a>01355 <span class="comment">// otherwise the resulting matrix isn't hermitian.</span>
|
|
<a name="l01356"></a>01356 <span class="comment">// Thanks to Peter Schmitteckert for spotting this.</span>
|
|
<a name="l01357"></a>01357 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00465.html">type_traits<value_type>::imag</a> (at) == 0, <a class="code" href="a00358.html">non_real</a> ());
|
|
<a name="l01358"></a>01358 matrix_assign_scalar<scalar_multiplies_assign> (*<span class="keyword">this</span>, at);
|
|
<a name="l01359"></a>01359 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01360"></a>01360 }
|
|
<a name="l01361"></a>01361 <span class="keyword">template</span><<span class="keyword">class</span> AT>
|
|
<a name="l01362"></a>01362 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01363"></a><a class="code" href="a00145.html#ae4a4021f48aed42ecd62bf95e07e49d7">01363</a> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">hermitian_adaptor</a>& <a class="code" href="a00145.html#ae4a4021f48aed42ecd62bf95e07e49d7">operator /= </a>(<span class="keyword">const</span> AT &at) {
|
|
<a name="l01364"></a>01364 <span class="comment">// Multiplication is only allowed for real scalars,</span>
|
|
<a name="l01365"></a>01365 <span class="comment">// otherwise the resulting matrix isn't hermitian.</span>
|
|
<a name="l01366"></a>01366 <span class="comment">// Thanks to Peter Schmitteckert for spotting this.</span>
|
|
<a name="l01367"></a>01367 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00465.html">type_traits<value_type>::imag</a> (at) == 0, <a class="code" href="a00358.html">non_real</a> ());
|
|
<a name="l01368"></a>01368 matrix_assign_scalar<scalar_divides_assign> (*<span class="keyword">this</span>, at);
|
|
<a name="l01369"></a>01369 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01370"></a>01370 }
|
|
<a name="l01371"></a>01371
|
|
<a name="l01372"></a>01372 <span class="comment">// Closure comparison</span>
|
|
<a name="l01373"></a>01373 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01374"></a><a class="code" href="a00145.html#ac658d21b14bf94e9d84ca18a78bd9f80">01374</a> <span class="keywordtype">bool</span> <a class="code" href="a00145.html#ac658d21b14bf94e9d84ca18a78bd9f80">same_closure</a> (<span class="keyword">const</span> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">hermitian_adaptor</a> &ha)<span class="keyword"> const </span>{
|
|
<a name="l01375"></a>01375 <span class="keywordflow">return</span> (*this).data ().same_closure (ha.<a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ());
|
|
<a name="l01376"></a>01376 }
|
|
<a name="l01377"></a>01377
|
|
<a name="l01378"></a>01378 <span class="comment">// Swapping</span>
|
|
<a name="l01379"></a>01379 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01380"></a><a class="code" href="a00145.html#a98e3bc732c347b93dad7598deabb0820">01380</a> <span class="keywordtype">void</span> <a class="code" href="a00145.html#a98e3bc732c347b93dad7598deabb0820">swap</a> (<a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">hermitian_adaptor</a> &m) {
|
|
<a name="l01381"></a>01381 <span class="keywordflow">if</span> (<span class="keyword">this</span> != &m)
|
|
<a name="l01382"></a>01382 matrix_swap<scalar_swap, triangular_type> (*<span class="keyword">this</span>, m);
|
|
<a name="l01383"></a>01383 }
|
|
<a name="l01384"></a>01384 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01385"></a><a class="code" href="a00145.html#a2f791aab2767fa94177abc501d1f1f16">01385</a> <span class="keyword">friend</span> <span class="keywordtype">void</span> <a class="code" href="a00145.html#a2f791aab2767fa94177abc501d1f1f16">swap</a> (<a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">hermitian_adaptor</a> &m1, <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">hermitian_adaptor</a> &m2) {
|
|
<a name="l01386"></a>01386 m1.<a class="code" href="a00145.html#a98e3bc732c347b93dad7598deabb0820">swap</a> (m2);
|
|
<a name="l01387"></a>01387 }
|
|
<a name="l01388"></a>01388
|
|
<a name="l01389"></a>01389 <span class="comment">// Iterator types</span>
|
|
<a name="l01390"></a>01390 <span class="keyword">private</span>:
|
|
<a name="l01391"></a>01391 <span class="comment">// Use matrix iterator</span>
|
|
<a name="l01392"></a><a class="code" href="a00145.html#ae32c96561b3c927bef1378ca9a429b7d">01392</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> M::const_iterator1 <a class="code" href="a00145.html#ae32c96561b3c927bef1378ca9a429b7d">const_subiterator1_type</a>;
|
|
<a name="l01393"></a>01393 <span class="keyword">typedef</span> <span class="keyword">typename</span> boost::mpl::if_<boost::is_const<M>,
|
|
<a name="l01394"></a>01394 <span class="keyword">typename</span> M::const_iterator1,
|
|
<a name="l01395"></a><a class="code" href="a00145.html#a10d42598c62b79c3147140e93606b0ab">01395</a> <span class="keyword">typename</span> M::iterator1>::type <a class="code" href="a00145.html#a10d42598c62b79c3147140e93606b0ab">subiterator1_type</a>;
|
|
<a name="l01396"></a><a class="code" href="a00145.html#a51ee0a44350af41401b0ff4cc3973802">01396</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> M::const_iterator2 <a class="code" href="a00145.html#a51ee0a44350af41401b0ff4cc3973802">const_subiterator2_type</a>;
|
|
<a name="l01397"></a>01397 <span class="keyword">typedef</span> <span class="keyword">typename</span> boost::mpl::if_<boost::is_const<M>,
|
|
<a name="l01398"></a>01398 <span class="keyword">typename</span> M::const_iterator2,
|
|
<a name="l01399"></a><a class="code" href="a00145.html#a229e74db63c392df6d1792aa0009d1ed">01399</a> <span class="keyword">typename</span> M::iterator2>::type <a class="code" href="a00145.html#a229e74db63c392df6d1792aa0009d1ed">subiterator2_type</a>;
|
|
<a name="l01400"></a>01400
|
|
<a name="l01401"></a>01401 <span class="keyword">public</span>:
|
|
<a name="l01402"></a>01402 <span class="preprocessor">#ifdef BOOST_UBLAS_USE_INDEXED_ITERATOR</span>
|
|
<a name="l01403"></a>01403 <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="a00148.html">iterator1</a>;
|
|
<a name="l01404"></a>01404 <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="a00149.html">iterator2</a>;
|
|
<a name="l01405"></a>01405 <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="a00146.html">const_iterator1</a>;
|
|
<a name="l01406"></a>01406 <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="a00147.html">const_iterator2</a>;
|
|
<a name="l01407"></a>01407 <span class="preprocessor">#else</span>
|
|
<a name="l01408"></a>01408 <span class="preprocessor"></span> <span class="keyword">class </span><a class="code" href="a00146.html">const_iterator1</a>;
|
|
<a name="l01409"></a>01409 <span class="keyword">class </span><a class="code" href="a00148.html">iterator1</a>;
|
|
<a name="l01410"></a>01410 <span class="keyword">class </span><a class="code" href="a00147.html">const_iterator2</a>;
|
|
<a name="l01411"></a><a class="code" href="a00145.html#a99f3f9cac35cbfa5bd1adf27b7f19f83">01411</a> <span class="keyword">class </span><a class="code" href="a00149.html">iterator2</a>;
|
|
<a name="l01412"></a>01412 <span class="preprocessor">#endif</span>
|
|
<a name="l01413"></a>01413 <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="a00145.html#a99f3f9cac35cbfa5bd1adf27b7f19f83">const_reverse_iterator1</a>;
|
|
<a name="l01414"></a><a class="code" href="a00145.html#ab111a0b7967a83f9985dc4a0d906b254">01414</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="a00145.html#ab111a0b7967a83f9985dc4a0d906b254">reverse_iterator1</a>;
|
|
<a name="l01415"></a><a class="code" href="a00145.html#a72e0f2d26a6fe0fc82e71e0cee45c312">01415</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="a00145.html#a72e0f2d26a6fe0fc82e71e0cee45c312">const_reverse_iterator2</a>;
|
|
<a name="l01416"></a><a class="code" href="a00145.html#a0baa32c488fecfea40d1ae60f5f1c533">01416</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="a00145.html#a0baa32c488fecfea40d1ae60f5f1c533">reverse_iterator2</a>;
|
|
<a name="l01417"></a>01417
|
|
<a name="l01418"></a>01418 <span class="comment">// Element lookup</span>
|
|
<a name="l01419"></a>01419 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01420"></a><a class="code" href="a00145.html#ad5ee7ca3e3fa0d51886ef48947ece6b1">01420</a> <a class="code" href="a00146.html">const_iterator1</a> <a class="code" href="a00145.html#ad5ee7ca3e3fa0d51886ef48947ece6b1">find1</a> (<span class="keywordtype">int</span> rank, <a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> i, <a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> j)<span class="keyword"> const </span>{
|
|
<a name="l01421"></a>01421 <span class="keywordflow">if</span> (triangular_type::other (i, j)) {
|
|
<a name="l01422"></a>01422 <span class="keywordflow">if</span> (triangular_type::other (<a class="code" href="a00145.html#a0f1a3c71c1ff3601fb0d1eca0e351d3b">size1</a> (), j)) {
|
|
<a name="l01423"></a>01423 <span class="keywordflow">return</span> <a class="code" href="a00146.html">const_iterator1</a> (*<span class="keyword">this</span>, 0, 0,
|
|
<a name="l01424"></a>01424 <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#ad5ee7ca3e3fa0d51886ef48947ece6b1">find1</a> (rank, i, j), <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#ad5ee7ca3e3fa0d51886ef48947ece6b1">find1</a> (rank, <a class="code" href="a00145.html#a0f1a3c71c1ff3601fb0d1eca0e351d3b">size1</a> (), j),
|
|
<a name="l01425"></a>01425 <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#aac9d117fc187753fc1fe821314584646">find2</a> (rank, <a class="code" href="a00145.html#a980d12364f40b8b1dcacef1a0bde5a6b">size2</a> (), <a class="code" href="a00145.html#a0f1a3c71c1ff3601fb0d1eca0e351d3b">size1</a> ()), <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#aac9d117fc187753fc1fe821314584646">find2</a> (rank, <a class="code" href="a00145.html#a980d12364f40b8b1dcacef1a0bde5a6b">size2</a> (), <a class="code" href="a00145.html#a0f1a3c71c1ff3601fb0d1eca0e351d3b">size1</a> ()));
|
|
<a name="l01426"></a>01426 } <span class="keywordflow">else</span> {
|
|
<a name="l01427"></a>01427 <span class="keywordflow">return</span> <a class="code" href="a00146.html">const_iterator1</a> (*<span class="keyword">this</span>, 0, 1,
|
|
<a name="l01428"></a>01428 <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#ad5ee7ca3e3fa0d51886ef48947ece6b1">find1</a> (rank, i, j), <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#ad5ee7ca3e3fa0d51886ef48947ece6b1">find1</a> (rank, j, j),
|
|
<a name="l01429"></a>01429 <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#aac9d117fc187753fc1fe821314584646">find2</a> (rank, j, j), <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#aac9d117fc187753fc1fe821314584646">find2</a> (rank, j, <a class="code" href="a00145.html#a0f1a3c71c1ff3601fb0d1eca0e351d3b">size1</a> ()));
|
|
<a name="l01430"></a>01430 }
|
|
<a name="l01431"></a>01431 } <span class="keywordflow">else</span> {
|
|
<a name="l01432"></a>01432 <span class="keywordflow">if</span> (triangular_type::other (<a class="code" href="a00145.html#a0f1a3c71c1ff3601fb0d1eca0e351d3b">size1</a> (), j)) {
|
|
<a name="l01433"></a>01433 <span class="keywordflow">return</span> <a class="code" href="a00146.html">const_iterator1</a> (*<span class="keyword">this</span>, 1, 0,
|
|
<a name="l01434"></a>01434 <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#ad5ee7ca3e3fa0d51886ef48947ece6b1">find1</a> (rank, j, j), <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#ad5ee7ca3e3fa0d51886ef48947ece6b1">find1</a> (rank, <a class="code" href="a00145.html#a0f1a3c71c1ff3601fb0d1eca0e351d3b">size1</a> (), j),
|
|
<a name="l01435"></a>01435 <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#aac9d117fc187753fc1fe821314584646">find2</a> (rank, j, i), <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#aac9d117fc187753fc1fe821314584646">find2</a> (rank, j, j));
|
|
<a name="l01436"></a>01436 } <span class="keywordflow">else</span> {
|
|
<a name="l01437"></a>01437 <span class="keywordflow">return</span> <a class="code" href="a00146.html">const_iterator1</a> (*<span class="keyword">this</span>, 1, 1,
|
|
<a name="l01438"></a>01438 <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#ad5ee7ca3e3fa0d51886ef48947ece6b1">find1</a> (rank, <a class="code" href="a00145.html#a0f1a3c71c1ff3601fb0d1eca0e351d3b">size1</a> (), <a class="code" href="a00145.html#a980d12364f40b8b1dcacef1a0bde5a6b">size2</a> ()), <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#ad5ee7ca3e3fa0d51886ef48947ece6b1">find1</a> (rank, <a class="code" href="a00145.html#a0f1a3c71c1ff3601fb0d1eca0e351d3b">size1</a> (), <a class="code" href="a00145.html#a980d12364f40b8b1dcacef1a0bde5a6b">size2</a> ()),
|
|
<a name="l01439"></a>01439 <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#aac9d117fc187753fc1fe821314584646">find2</a> (rank, j, i), <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#aac9d117fc187753fc1fe821314584646">find2</a> (rank, j, <a class="code" href="a00145.html#a0f1a3c71c1ff3601fb0d1eca0e351d3b">size1</a> ()));
|
|
<a name="l01440"></a>01440 }
|
|
<a name="l01441"></a>01441 }
|
|
<a name="l01442"></a>01442 }
|
|
<a name="l01443"></a>01443 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01444"></a><a class="code" href="a00145.html#a909d43102ff2bd1de023bb1bb60a1bf1">01444</a> <a class="code" href="a00148.html">iterator1</a> <a class="code" href="a00145.html#a909d43102ff2bd1de023bb1bb60a1bf1">find1</a> (<span class="keywordtype">int</span> rank, <a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> i, <a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> j) {
|
|
<a name="l01445"></a>01445 <span class="keywordflow">if</span> (rank == 1)
|
|
<a name="l01446"></a>01446 i = triangular_type::mutable_restrict1 (i, j, <a class="code" href="a00145.html#a0f1a3c71c1ff3601fb0d1eca0e351d3b">size1</a>(), <a class="code" href="a00145.html#a980d12364f40b8b1dcacef1a0bde5a6b">size2</a>());
|
|
<a name="l01447"></a>01447 <span class="keywordflow">if</span> (rank == 0)
|
|
<a name="l01448"></a>01448 i = triangular_type::global_mutable_restrict1 (i, <a class="code" href="a00145.html#a0f1a3c71c1ff3601fb0d1eca0e351d3b">size1</a>(), j, <a class="code" href="a00145.html#a980d12364f40b8b1dcacef1a0bde5a6b">size2</a>());
|
|
<a name="l01449"></a>01449 <span class="keywordflow">return</span> <a class="code" href="a00148.html">iterator1</a> (*<span class="keyword">this</span>, <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#ad5ee7ca3e3fa0d51886ef48947ece6b1">find1</a> (rank, i, j));
|
|
<a name="l01450"></a>01450 }
|
|
<a name="l01451"></a>01451 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01452"></a><a class="code" href="a00145.html#aac9d117fc187753fc1fe821314584646">01452</a> <a class="code" href="a00147.html">const_iterator2</a> <a class="code" href="a00145.html#aac9d117fc187753fc1fe821314584646">find2</a> (<span class="keywordtype">int</span> rank, <a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> i, <a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> j)<span class="keyword"> const </span>{
|
|
<a name="l01453"></a>01453 <span class="keywordflow">if</span> (triangular_type::other (i, j)) {
|
|
<a name="l01454"></a>01454 <span class="keywordflow">if</span> (triangular_type::other (i, <a class="code" href="a00145.html#a980d12364f40b8b1dcacef1a0bde5a6b">size2</a> ())) {
|
|
<a name="l01455"></a>01455 <span class="keywordflow">return</span> <a class="code" href="a00147.html">const_iterator2</a> (*<span class="keyword">this</span>, 1, 1,
|
|
<a name="l01456"></a>01456 <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#ad5ee7ca3e3fa0d51886ef48947ece6b1">find1</a> (rank, <a class="code" href="a00145.html#a980d12364f40b8b1dcacef1a0bde5a6b">size2</a> (), <a class="code" href="a00145.html#a0f1a3c71c1ff3601fb0d1eca0e351d3b">size1</a> ()), <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#ad5ee7ca3e3fa0d51886ef48947ece6b1">find1</a> (rank, <a class="code" href="a00145.html#a980d12364f40b8b1dcacef1a0bde5a6b">size2</a> (), <a class="code" href="a00145.html#a0f1a3c71c1ff3601fb0d1eca0e351d3b">size1</a> ()),
|
|
<a name="l01457"></a>01457 <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#aac9d117fc187753fc1fe821314584646">find2</a> (rank, i, j), <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#aac9d117fc187753fc1fe821314584646">find2</a> (rank, i, <a class="code" href="a00145.html#a980d12364f40b8b1dcacef1a0bde5a6b">size2</a> ()));
|
|
<a name="l01458"></a>01458 } <span class="keywordflow">else</span> {
|
|
<a name="l01459"></a>01459 <span class="keywordflow">return</span> <a class="code" href="a00147.html">const_iterator2</a> (*<span class="keyword">this</span>, 1, 0,
|
|
<a name="l01460"></a>01460 <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#ad5ee7ca3e3fa0d51886ef48947ece6b1">find1</a> (rank, i, i), <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#ad5ee7ca3e3fa0d51886ef48947ece6b1">find1</a> (rank, <a class="code" href="a00145.html#a980d12364f40b8b1dcacef1a0bde5a6b">size2</a> (), i),
|
|
<a name="l01461"></a>01461 <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#aac9d117fc187753fc1fe821314584646">find2</a> (rank, i, j), <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#aac9d117fc187753fc1fe821314584646">find2</a> (rank, i, i));
|
|
<a name="l01462"></a>01462 }
|
|
<a name="l01463"></a>01463 } <span class="keywordflow">else</span> {
|
|
<a name="l01464"></a>01464 <span class="keywordflow">if</span> (triangular_type::other (i, <a class="code" href="a00145.html#a980d12364f40b8b1dcacef1a0bde5a6b">size2</a> ())) {
|
|
<a name="l01465"></a>01465 <span class="keywordflow">return</span> <a class="code" href="a00147.html">const_iterator2</a> (*<span class="keyword">this</span>, 0, 1,
|
|
<a name="l01466"></a>01466 <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#ad5ee7ca3e3fa0d51886ef48947ece6b1">find1</a> (rank, j, i), <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#ad5ee7ca3e3fa0d51886ef48947ece6b1">find1</a> (rank, i, i),
|
|
<a name="l01467"></a>01467 <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#aac9d117fc187753fc1fe821314584646">find2</a> (rank, i, i), <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#aac9d117fc187753fc1fe821314584646">find2</a> (rank, i, <a class="code" href="a00145.html#a980d12364f40b8b1dcacef1a0bde5a6b">size2</a> ()));
|
|
<a name="l01468"></a>01468 } <span class="keywordflow">else</span> {
|
|
<a name="l01469"></a>01469 <span class="keywordflow">return</span> <a class="code" href="a00147.html">const_iterator2</a> (*<span class="keyword">this</span>, 0, 0,
|
|
<a name="l01470"></a>01470 <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#ad5ee7ca3e3fa0d51886ef48947ece6b1">find1</a> (rank, j, i), <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#ad5ee7ca3e3fa0d51886ef48947ece6b1">find1</a> (rank, <a class="code" href="a00145.html#a980d12364f40b8b1dcacef1a0bde5a6b">size2</a> (), i),
|
|
<a name="l01471"></a>01471 <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#aac9d117fc187753fc1fe821314584646">find2</a> (rank, <a class="code" href="a00145.html#a0f1a3c71c1ff3601fb0d1eca0e351d3b">size1</a> (), <a class="code" href="a00145.html#a980d12364f40b8b1dcacef1a0bde5a6b">size2</a> ()), <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#aac9d117fc187753fc1fe821314584646">find2</a> (rank, <a class="code" href="a00145.html#a980d12364f40b8b1dcacef1a0bde5a6b">size2</a> (), <a class="code" href="a00145.html#a980d12364f40b8b1dcacef1a0bde5a6b">size2</a> ()));
|
|
<a name="l01472"></a>01472 }
|
|
<a name="l01473"></a>01473 }
|
|
<a name="l01474"></a>01474 }
|
|
<a name="l01475"></a>01475 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01476"></a><a class="code" href="a00145.html#a9dfeeaf8264ade0e67fbb1b2ae046927">01476</a> <a class="code" href="a00149.html">iterator2</a> <a class="code" href="a00145.html#a9dfeeaf8264ade0e67fbb1b2ae046927">find2</a> (<span class="keywordtype">int</span> rank, <a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> i, <a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> j) {
|
|
<a name="l01477"></a>01477 <span class="keywordflow">if</span> (rank == 1)
|
|
<a name="l01478"></a>01478 j = triangular_type::mutable_restrict2 (i, j, <a class="code" href="a00145.html#a0f1a3c71c1ff3601fb0d1eca0e351d3b">size1</a>(), <a class="code" href="a00145.html#a980d12364f40b8b1dcacef1a0bde5a6b">size2</a>());
|
|
<a name="l01479"></a>01479 <span class="keywordflow">if</span> (rank == 0)
|
|
<a name="l01480"></a>01480 j = triangular_type::global_mutable_restrict2 (i, <a class="code" href="a00145.html#a0f1a3c71c1ff3601fb0d1eca0e351d3b">size1</a>(), j, <a class="code" href="a00145.html#a980d12364f40b8b1dcacef1a0bde5a6b">size2</a>());
|
|
<a name="l01481"></a>01481 <span class="keywordflow">return</span> <a class="code" href="a00149.html">iterator2</a> (*<span class="keyword">this</span>, <a class="code" href="a00145.html#a371cc9bf23e3a084f48967f370297aeb">data</a> ().<a class="code" href="a00145.html#aac9d117fc187753fc1fe821314584646">find2</a> (rank, i, j));
|
|
<a name="l01482"></a>01482 }
|
|
<a name="l01483"></a>01483
|
|
<a name="l01484"></a>01484 <span class="comment">// Iterators simply are indices.</span>
|
|
<a name="l01485"></a>01485
|
|
<a name="l01486"></a>01486 <span class="preprocessor">#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR</span>
|
|
<a name="l01487"></a><a class="code" href="a00146.html">01487</a> <span class="preprocessor"></span> <span class="keyword">class </span><a class="code" href="a00146.html">const_iterator1</a>:
|
|
<a name="l01488"></a>01488 <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><hermitian_adaptor>,
|
|
<a name="l01489"></a>01489 <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="l01490"></a>01490 typename const_subiterator1_type::iterator_category, dense_random_access_iterator_tag>::iterator_category,
|
|
<a name="l01491"></a>01491 const_iterator1, value_type> {
|
|
<a name="l01492"></a>01492 <span class="keyword">public</span>:
|
|
<a name="l01493"></a><a class="code" href="a00146.html#a75b6939d805ee0660b6d41d81d04a336">01493</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> const_subiterator1_type::value_type <a class="code" href="a00146.html#a75b6939d805ee0660b6d41d81d04a336">value_type</a>;
|
|
<a name="l01494"></a><a class="code" href="a00146.html#ac2e97837c87fa4fe62ff5c8c6650a14f">01494</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> const_subiterator1_type::difference_type <a class="code" href="a00146.html#ac2e97837c87fa4fe62ff5c8c6650a14f">difference_type</a>;
|
|
<a name="l01495"></a>01495 <span class="comment">// FIXME no better way to not return the address of a temporary?</span>
|
|
<a name="l01496"></a>01496 <span class="comment">// typedef typename const_subiterator1_type::reference reference;</span>
|
|
<a name="l01497"></a><a class="code" href="a00146.html#a2c752d87de4448193ee19f506eff3dbe">01497</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> const_subiterator1_type::value_type <a class="code" href="a00146.html#a2c752d87de4448193ee19f506eff3dbe">reference</a>;
|
|
<a name="l01498"></a><a class="code" href="a00146.html#a534c968e0cafedeefd62df84670dd3c3">01498</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> const_subiterator1_type::pointer <a class="code" href="a00146.html#a534c968e0cafedeefd62df84670dd3c3">pointer</a>;
|
|
<a name="l01499"></a>01499
|
|
<a name="l01500"></a><a class="code" href="a00146.html#a1faf48cc6e624eddb8a01cb1ff587343">01500</a> <span class="keyword">typedef</span> <a class="code" href="a00147.html">const_iterator2</a> <a class="code" href="a00146.html#a1faf48cc6e624eddb8a01cb1ff587343">dual_iterator_type</a>;
|
|
<a name="l01501"></a><a class="code" href="a00146.html#a502c8489284d400e7fb4721ffeb2127f">01501</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="a00146.html#a502c8489284d400e7fb4721ffeb2127f">dual_reverse_iterator_type</a>;
|
|
<a name="l01502"></a>01502
|
|
<a name="l01503"></a>01503 <span class="comment">// Construction and destruction</span>
|
|
<a name="l01504"></a>01504 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01505"></a><a class="code" href="a00146.html#a806c78d1a0756f7711514ec59a22a25c">01505</a> <a class="code" href="a00146.html#a806c78d1a0756f7711514ec59a22a25c">const_iterator1</a> ():
|
|
<a name="l01506"></a>01506 <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="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a>> (),
|
|
<a name="l01507"></a>01507 <a class="code" href="a00146.html#a56191426208712681ecc7c5ca37c0067">begin_</a> (-1), <a class="code" href="a00146.html#a692e6e2472880f4634db23bbc022b5da">end_</a> (-1), <a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> (-1),
|
|
<a name="l01508"></a>01508 <a class="code" href="a00146.html#a07a6de94f6a9c81195d359dff2811e14">it1_begin_</a> (), <a class="code" href="a00146.html#a6dfa8d0c3569dccfbcbc1fc1dae390a8">it1_end_</a> (), <a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a> (),
|
|
<a name="l01509"></a>01509 <a class="code" href="a00146.html#a5de4fd3895d557f3b07400a194634134">it2_begin_</a> (), <a class="code" href="a00146.html#a936aae16d160f16a430fc6daebd20671">it2_end_</a> (), <a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</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="a00146.html#a6272c4513071315d1d798b70a869ce60">01511</a> <a class="code" href="a00146.html#a806c78d1a0756f7711514ec59a22a25c">const_iterator1</a> (<span class="keyword">const</span> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a> &m, <span class="keywordtype">int</span> <a class="code" href="a00146.html#af8c164dc0d4fe793a96beb1d20d5d6f2">begin</a>, <span class="keywordtype">int</span> <a class="code" href="a00146.html#ab8231e27a5e6cc767d9465a79b0c529a">end</a>,
|
|
<a name="l01512"></a>01512 <span class="keyword">const</span> <a class="code" href="a00145.html#ae32c96561b3c927bef1378ca9a429b7d">const_subiterator1_type</a> &it1_begin, <span class="keyword">const</span> <a class="code" href="a00145.html#ae32c96561b3c927bef1378ca9a429b7d">const_subiterator1_type</a> &it1_end,
|
|
<a name="l01513"></a>01513 <span class="keyword">const</span> <a class="code" href="a00145.html#a51ee0a44350af41401b0ff4cc3973802">const_subiterator2_type</a> &it2_begin, <span class="keyword">const</span> <a class="code" href="a00145.html#a51ee0a44350af41401b0ff4cc3973802">const_subiterator2_type</a> &it2_end):
|
|
<a name="l01514"></a>01514 <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="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a>> (m),
|
|
<a name="l01515"></a>01515 <a class="code" href="a00146.html#a56191426208712681ecc7c5ca37c0067">begin_</a> (begin), <a class="code" href="a00146.html#a692e6e2472880f4634db23bbc022b5da">end_</a> (end), <a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> (begin),
|
|
<a name="l01516"></a>01516 <a class="code" href="a00146.html#a07a6de94f6a9c81195d359dff2811e14">it1_begin_</a> (it1_begin), <a class="code" href="a00146.html#a6dfa8d0c3569dccfbcbc1fc1dae390a8">it1_end_</a> (it1_end), <a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a> (<a class="code" href="a00146.html#a07a6de94f6a9c81195d359dff2811e14">it1_begin_</a>),
|
|
<a name="l01517"></a>01517 <a class="code" href="a00146.html#a5de4fd3895d557f3b07400a194634134">it2_begin_</a> (it2_begin), <a class="code" href="a00146.html#a936aae16d160f16a430fc6daebd20671">it2_end_</a> (it2_end), <a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a> (<a class="code" href="a00146.html#a5de4fd3895d557f3b07400a194634134">it2_begin_</a>) {
|
|
<a name="l01518"></a>01518 <span class="keywordflow">if</span> (<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 0 && <a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a> == <a class="code" href="a00146.html#a6dfa8d0c3569dccfbcbc1fc1dae390a8">it1_end_</a>)
|
|
<a name="l01519"></a>01519 <a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> = 1;
|
|
<a name="l01520"></a>01520 <span class="keywordflow">if</span> (<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 1 && <a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a> == <a class="code" href="a00146.html#a936aae16d160f16a430fc6daebd20671">it2_end_</a>)
|
|
<a name="l01521"></a>01521 <a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> = 0;
|
|
<a name="l01522"></a>01522 <span class="keywordflow">if</span> ((<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 0 && <a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a> == <a class="code" href="a00146.html#a6dfa8d0c3569dccfbcbc1fc1dae390a8">it1_end_</a>) ||
|
|
<a name="l01523"></a>01523 (<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 1 && <a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a> == <a class="code" href="a00146.html#a936aae16d160f16a430fc6daebd20671">it2_end_</a>))
|
|
<a name="l01524"></a>01524 <a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> = <a class="code" href="a00146.html#a692e6e2472880f4634db23bbc022b5da">end_</a>;
|
|
<a name="l01525"></a>01525 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == <a class="code" href="a00146.html#a692e6e2472880f4634db23bbc022b5da">end_</a> ||
|
|
<a name="l01526"></a>01526 (<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 0 && <a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a> != <a class="code" href="a00146.html#a6dfa8d0c3569dccfbcbc1fc1dae390a8">it1_end_</a>) ||
|
|
<a name="l01527"></a>01527 (<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 1 && <a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a> != <a class="code" href="a00146.html#a936aae16d160f16a430fc6daebd20671">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="l01528"></a>01528 }
|
|
<a name="l01529"></a>01529 <span class="comment">// FIXME cannot compile</span>
|
|
<a name="l01530"></a>01530 <span class="comment">// iterator1 does not have these members!</span>
|
|
<a name="l01531"></a>01531 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01532"></a><a class="code" href="a00146.html#a23fa6260a30e8d66600b2b6a9bd86978">01532</a> <a class="code" href="a00146.html#a806c78d1a0756f7711514ec59a22a25c">const_iterator1</a> (<span class="keyword">const</span> <a class="code" href="a00148.html">iterator1</a> &it):
|
|
<a name="l01533"></a>01533 <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="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a>> (it ()),
|
|
<a name="l01534"></a>01534 <a class="code" href="a00146.html#a56191426208712681ecc7c5ca37c0067">begin_</a> (it.<a class="code" href="a00146.html#a56191426208712681ecc7c5ca37c0067">begin_</a>), <a class="code" href="a00146.html#a692e6e2472880f4634db23bbc022b5da">end_</a> (it.<a class="code" href="a00146.html#a692e6e2472880f4634db23bbc022b5da">end_</a>), <a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> (it.<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a>),
|
|
<a name="l01535"></a>01535 <a class="code" href="a00146.html#a07a6de94f6a9c81195d359dff2811e14">it1_begin_</a> (it.<a class="code" href="a00146.html#a07a6de94f6a9c81195d359dff2811e14">it1_begin_</a>), <a class="code" href="a00146.html#a6dfa8d0c3569dccfbcbc1fc1dae390a8">it1_end_</a> (it.<a class="code" href="a00146.html#a6dfa8d0c3569dccfbcbc1fc1dae390a8">it1_end_</a>), <a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a> (it.<a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a>),
|
|
<a name="l01536"></a>01536 <a class="code" href="a00146.html#a5de4fd3895d557f3b07400a194634134">it2_begin_</a> (it.<a class="code" href="a00146.html#a5de4fd3895d557f3b07400a194634134">it2_begin_</a>), <a class="code" href="a00146.html#a936aae16d160f16a430fc6daebd20671">it2_end_</a> (it.<a class="code" href="a00146.html#a936aae16d160f16a430fc6daebd20671">it2_end_</a>), <a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a> (it.<a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a>) {
|
|
<a name="l01537"></a>01537 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == <a class="code" href="a00146.html#a692e6e2472880f4634db23bbc022b5da">end_</a> ||
|
|
<a name="l01538"></a>01538 (<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 0 && <a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a> != <a class="code" href="a00146.html#a6dfa8d0c3569dccfbcbc1fc1dae390a8">it1_end_</a>) ||
|
|
<a name="l01539"></a>01539 (<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 1 && <a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a> != <a class="code" href="a00146.html#a936aae16d160f16a430fc6daebd20671">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="l01540"></a>01540 }
|
|
<a name="l01541"></a>01541
|
|
<a name="l01542"></a>01542 <span class="comment">// Arithmetic</span>
|
|
<a name="l01543"></a>01543 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01544"></a><a class="code" href="a00146.html#a6c5327609de724e0630cc4ef0fc46b2f">01544</a> <a class="code" href="a00146.html">const_iterator1</a> &<a class="code" href="a00146.html#a6c5327609de724e0630cc4ef0fc46b2f">operator ++ </a>() {
|
|
<a name="l01545"></a>01545 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 0 || <a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">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="l01546"></a>01546 <span class="keywordflow">if</span> (<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 0) {
|
|
<a name="l01547"></a>01547 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a> != <a class="code" href="a00146.html#a6dfa8d0c3569dccfbcbc1fc1dae390a8">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="l01548"></a>01548 ++ <a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a>;
|
|
<a name="l01549"></a>01549 <span class="keywordflow">if</span> (<a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a> == <a class="code" href="a00146.html#a6dfa8d0c3569dccfbcbc1fc1dae390a8">it1_end_</a> && <a class="code" href="a00146.html#a692e6e2472880f4634db23bbc022b5da">end_</a> == 1) {
|
|
<a name="l01550"></a>01550 <a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a> = <a class="code" href="a00146.html#a5de4fd3895d557f3b07400a194634134">it2_begin_</a>;
|
|
<a name="l01551"></a>01551 <a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> = 1;
|
|
<a name="l01552"></a>01552 }
|
|
<a name="l01553"></a>01553 } <span class="keywordflow">else</span> <span class="comment">/* if (current_ == 1) */</span> {
|
|
<a name="l01554"></a>01554 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a> != <a class="code" href="a00146.html#a936aae16d160f16a430fc6daebd20671">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="l01555"></a>01555 ++ <a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a>;
|
|
<a name="l01556"></a>01556 <span class="keywordflow">if</span> (<a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a> == <a class="code" href="a00146.html#a936aae16d160f16a430fc6daebd20671">it2_end_</a> && <a class="code" href="a00146.html#a692e6e2472880f4634db23bbc022b5da">end_</a> == 0) {
|
|
<a name="l01557"></a>01557 <a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a> = <a class="code" href="a00146.html#a07a6de94f6a9c81195d359dff2811e14">it1_begin_</a>;
|
|
<a name="l01558"></a>01558 <a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> = 0;
|
|
<a name="l01559"></a>01559 }
|
|
<a name="l01560"></a>01560 }
|
|
<a name="l01561"></a>01561 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01562"></a>01562 }
|
|
<a name="l01563"></a>01563 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01564"></a><a class="code" href="a00146.html#a62a64617102ecf0c3acddf1e103f47ff">01564</a> <a class="code" href="a00146.html">const_iterator1</a> &<a class="code" href="a00146.html#a62a64617102ecf0c3acddf1e103f47ff">operator -- </a>() {
|
|
<a name="l01565"></a>01565 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 0 || <a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">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="l01566"></a>01566 <span class="keywordflow">if</span> (<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 0) {
|
|
<a name="l01567"></a>01567 <span class="keywordflow">if</span> (<a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a> == <a class="code" href="a00146.html#a07a6de94f6a9c81195d359dff2811e14">it1_begin_</a> && <a class="code" href="a00146.html#a56191426208712681ecc7c5ca37c0067">begin_</a> == 1) {
|
|
<a name="l01568"></a>01568 <a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a> = <a class="code" href="a00146.html#a936aae16d160f16a430fc6daebd20671">it2_end_</a>;
|
|
<a name="l01569"></a>01569 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a> != <a class="code" href="a00146.html#a5de4fd3895d557f3b07400a194634134">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="l01570"></a>01570 -- <a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a>;
|
|
<a name="l01571"></a>01571 <a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> = 1;
|
|
<a name="l01572"></a>01572 } <span class="keywordflow">else</span> {
|
|
<a name="l01573"></a>01573 -- <a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a>;
|
|
<a name="l01574"></a>01574 }
|
|
<a name="l01575"></a>01575 } <span class="keywordflow">else</span> <span class="comment">/* if (current_ == 1) */</span> {
|
|
<a name="l01576"></a>01576 <span class="keywordflow">if</span> (<a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a> == <a class="code" href="a00146.html#a5de4fd3895d557f3b07400a194634134">it2_begin_</a> && <a class="code" href="a00146.html#a56191426208712681ecc7c5ca37c0067">begin_</a> == 0) {
|
|
<a name="l01577"></a>01577 <a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a> = <a class="code" href="a00146.html#a6dfa8d0c3569dccfbcbc1fc1dae390a8">it1_end_</a>;
|
|
<a name="l01578"></a>01578 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a> != <a class="code" href="a00146.html#a07a6de94f6a9c81195d359dff2811e14">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="l01579"></a>01579 -- <a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a>;
|
|
<a name="l01580"></a>01580 <a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> = 0;
|
|
<a name="l01581"></a>01581 } <span class="keywordflow">else</span> {
|
|
<a name="l01582"></a>01582 -- <a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a>;
|
|
<a name="l01583"></a>01583 }
|
|
<a name="l01584"></a>01584 }
|
|
<a name="l01585"></a>01585 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<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="a00146.html#ad23bdef234bf5bb6cead9ac5661d8c78">01588</a> <a class="code" href="a00146.html">const_iterator1</a> &<a class="code" href="a00146.html#ad23bdef234bf5bb6cead9ac5661d8c78">operator += </a>(<a class="code" href="a00146.html#ac2e97837c87fa4fe62ff5c8c6650a14f">difference_type</a> n) {
|
|
<a name="l01589"></a>01589 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 0 || <a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">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="l01590"></a>01590 <span class="keywordflow">if</span> (<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 0) {
|
|
<a name="l01591"></a>01591 <a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> d = (std::min) (n, <a class="code" href="a00146.html#a6dfa8d0c3569dccfbcbc1fc1dae390a8">it1_end_</a> - <a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a>);
|
|
<a name="l01592"></a>01592 <a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a> += d;
|
|
<a name="l01593"></a>01593 n -= d;
|
|
<a name="l01594"></a>01594 <span class="keywordflow">if</span> (n > 0 || (<a class="code" href="a00146.html#a692e6e2472880f4634db23bbc022b5da">end_</a> == 1 && <a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a> == <a class="code" href="a00146.html#a6dfa8d0c3569dccfbcbc1fc1dae390a8">it1_end_</a>)) {
|
|
<a name="l01595"></a>01595 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00146.html#a692e6e2472880f4634db23bbc022b5da">end_</a> == 1, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01596"></a>01596 d = (std::min) (n, <a class="code" href="a00146.html#a936aae16d160f16a430fc6daebd20671">it2_end_</a> - <a class="code" href="a00146.html#a5de4fd3895d557f3b07400a194634134">it2_begin_</a>);
|
|
<a name="l01597"></a>01597 <a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a> = <a class="code" href="a00146.html#a5de4fd3895d557f3b07400a194634134">it2_begin_</a> + d;
|
|
<a name="l01598"></a>01598 n -= d;
|
|
<a name="l01599"></a>01599 <a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> = 1;
|
|
<a name="l01600"></a>01600 }
|
|
<a name="l01601"></a>01601 } <span class="keywordflow">else</span> <span class="comment">/* if (current_ == 1) */</span> {
|
|
<a name="l01602"></a>01602 <a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> d = (std::min) (n, <a class="code" href="a00146.html#a936aae16d160f16a430fc6daebd20671">it2_end_</a> - <a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a>);
|
|
<a name="l01603"></a>01603 <a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a> += d;
|
|
<a name="l01604"></a>01604 n -= d;
|
|
<a name="l01605"></a>01605 <span class="keywordflow">if</span> (n > 0 || (<a class="code" href="a00146.html#a692e6e2472880f4634db23bbc022b5da">end_</a> == 0 && <a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a> == <a class="code" href="a00146.html#a936aae16d160f16a430fc6daebd20671">it2_end_</a>)) {
|
|
<a name="l01606"></a>01606 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00146.html#a692e6e2472880f4634db23bbc022b5da">end_</a> == 0, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01607"></a>01607 d = (std::min) (n, <a class="code" href="a00146.html#a6dfa8d0c3569dccfbcbc1fc1dae390a8">it1_end_</a> - <a class="code" href="a00146.html#a07a6de94f6a9c81195d359dff2811e14">it1_begin_</a>);
|
|
<a name="l01608"></a>01608 <a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a> = <a class="code" href="a00146.html#a07a6de94f6a9c81195d359dff2811e14">it1_begin_</a> + d;
|
|
<a name="l01609"></a>01609 n -= d;
|
|
<a name="l01610"></a>01610 <a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> = 0;
|
|
<a name="l01611"></a>01611 }
|
|
<a name="l01612"></a>01612 }
|
|
<a name="l01613"></a>01613 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (n == 0, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01614"></a>01614 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01615"></a>01615 }
|
|
<a name="l01616"></a>01616 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01617"></a><a class="code" href="a00146.html#a4bb35c3e4633bd11b9e47b0bd0f75784">01617</a> <a class="code" href="a00146.html">const_iterator1</a> &<a class="code" href="a00146.html#a4bb35c3e4633bd11b9e47b0bd0f75784">operator -= </a>(<a class="code" href="a00146.html#ac2e97837c87fa4fe62ff5c8c6650a14f">difference_type</a> n) {
|
|
<a name="l01618"></a>01618 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 0 || <a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">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="l01619"></a>01619 <span class="keywordflow">if</span> (<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 0) {
|
|
<a name="l01620"></a>01620 <a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> d = (std::min) (n, <a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a> - <a class="code" href="a00146.html#a07a6de94f6a9c81195d359dff2811e14">it1_begin_</a>);
|
|
<a name="l01621"></a>01621 <a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a> -= d;
|
|
<a name="l01622"></a>01622 n -= d;
|
|
<a name="l01623"></a>01623 <span class="keywordflow">if</span> (n > 0) {
|
|
<a name="l01624"></a>01624 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00146.html#a692e6e2472880f4634db23bbc022b5da">end_</a> == 1, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01625"></a>01625 d = (std::min) (n, <a class="code" href="a00146.html#a936aae16d160f16a430fc6daebd20671">it2_end_</a> - <a class="code" href="a00146.html#a5de4fd3895d557f3b07400a194634134">it2_begin_</a>);
|
|
<a name="l01626"></a>01626 <a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a> = <a class="code" href="a00146.html#a936aae16d160f16a430fc6daebd20671">it2_end_</a> - d;
|
|
<a name="l01627"></a>01627 n -= d;
|
|
<a name="l01628"></a>01628 <a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> = 1;
|
|
<a name="l01629"></a>01629 }
|
|
<a name="l01630"></a>01630 } <span class="keywordflow">else</span> <span class="comment">/* if (current_ == 1) */</span> {
|
|
<a name="l01631"></a>01631 <a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> d = (std::min) (n, <a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a> - <a class="code" href="a00146.html#a5de4fd3895d557f3b07400a194634134">it2_begin_</a>);
|
|
<a name="l01632"></a>01632 <a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a> -= d;
|
|
<a name="l01633"></a>01633 n -= d;
|
|
<a name="l01634"></a>01634 <span class="keywordflow">if</span> (n > 0) {
|
|
<a name="l01635"></a>01635 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00146.html#a692e6e2472880f4634db23bbc022b5da">end_</a> == 0, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01636"></a>01636 d = (std::min) (n, <a class="code" href="a00146.html#a6dfa8d0c3569dccfbcbc1fc1dae390a8">it1_end_</a> - <a class="code" href="a00146.html#a07a6de94f6a9c81195d359dff2811e14">it1_begin_</a>);
|
|
<a name="l01637"></a>01637 <a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a> = <a class="code" href="a00146.html#a6dfa8d0c3569dccfbcbc1fc1dae390a8">it1_end_</a> - d;
|
|
<a name="l01638"></a>01638 n -= d;
|
|
<a name="l01639"></a>01639 <a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> = 0;
|
|
<a name="l01640"></a>01640 }
|
|
<a name="l01641"></a>01641 }
|
|
<a name="l01642"></a>01642 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (n == 0, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01643"></a>01643 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01644"></a>01644 }
|
|
<a name="l01645"></a>01645 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01646"></a><a class="code" href="a00146.html#a7f0fbf4d1dbd76c41e6647bd30c3f756">01646</a> <a class="code" href="a00146.html#ac2e97837c87fa4fe62ff5c8c6650a14f">difference_type</a> <a class="code" href="a00146.html#a7f0fbf4d1dbd76c41e6647bd30c3f756">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00146.html">const_iterator1</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l01647"></a>01647 <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="l01648"></a>01648 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 0 || <a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">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="l01649"></a>01649 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (it.<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 0 || it.<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">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="l01650"></a>01650 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<span class="comment">/* begin_ == it.begin_ && */</span> <a class="code" href="a00146.html#a692e6e2472880f4634db23bbc022b5da">end_</a> == it.<a class="code" href="a00146.html#a692e6e2472880f4634db23bbc022b5da">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="l01651"></a>01651 <span class="keywordflow">if</span> (<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 0 && it.<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 0) {
|
|
<a name="l01652"></a>01652 <span class="keywordflow">return</span> <a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a> - it.<a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a>;
|
|
<a name="l01653"></a>01653 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 0 && it.<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 1) {
|
|
<a name="l01654"></a>01654 <span class="keywordflow">if</span> (<a class="code" href="a00146.html#a692e6e2472880f4634db23bbc022b5da">end_</a> == 1 && it.<a class="code" href="a00146.html#a692e6e2472880f4634db23bbc022b5da">end_</a> == 1) {
|
|
<a name="l01655"></a>01655 <span class="keywordflow">return</span> (<a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a> - it.<a class="code" href="a00146.html#a6dfa8d0c3569dccfbcbc1fc1dae390a8">it1_end_</a>) + (it.<a class="code" href="a00146.html#a5de4fd3895d557f3b07400a194634134">it2_begin_</a> - it.<a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a>);
|
|
<a name="l01656"></a>01656 } <span class="keywordflow">else</span> <span class="comment">/* if (end_ == 0 && it.end_ == 0) */</span> {
|
|
<a name="l01657"></a>01657 <span class="keywordflow">return</span> (<a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a> - it.<a class="code" href="a00146.html#a07a6de94f6a9c81195d359dff2811e14">it1_begin_</a>) + (it.<a class="code" href="a00146.html#a936aae16d160f16a430fc6daebd20671">it2_end_</a> - it.<a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a>);
|
|
<a name="l01658"></a>01658 }
|
|
<a name="l01659"></a>01659
|
|
<a name="l01660"></a>01660 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 1 && it.<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 0) {
|
|
<a name="l01661"></a>01661 <span class="keywordflow">if</span> (<a class="code" href="a00146.html#a692e6e2472880f4634db23bbc022b5da">end_</a> == 1 && it.<a class="code" href="a00146.html#a692e6e2472880f4634db23bbc022b5da">end_</a> == 1) {
|
|
<a name="l01662"></a>01662 <span class="keywordflow">return</span> (<a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a> - it.<a class="code" href="a00146.html#a5de4fd3895d557f3b07400a194634134">it2_begin_</a>) + (it.<a class="code" href="a00146.html#a6dfa8d0c3569dccfbcbc1fc1dae390a8">it1_end_</a> - it.<a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a>);
|
|
<a name="l01663"></a>01663 } <span class="keywordflow">else</span> <span class="comment">/* if (end_ == 0 && it.end_ == 0) */</span> {
|
|
<a name="l01664"></a>01664 <span class="keywordflow">return</span> (<a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a> - it.<a class="code" href="a00146.html#a936aae16d160f16a430fc6daebd20671">it2_end_</a>) + (it.<a class="code" href="a00146.html#a07a6de94f6a9c81195d359dff2811e14">it1_begin_</a> - it.<a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a>);
|
|
<a name="l01665"></a>01665 }
|
|
<a name="l01666"></a>01666 } <span class="keywordflow">else</span> <span class="comment">/* if (current_ == 1 && it.current_ == 1) */</span> {
|
|
<a name="l01667"></a>01667 <span class="keywordflow">return</span> <a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a> - it.<a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a>;
|
|
<a name="l01668"></a>01668 }
|
|
<a name="l01669"></a>01669 }
|
|
<a name="l01670"></a>01670
|
|
<a name="l01671"></a>01671 <span class="comment">// Dereference</span>
|
|
<a name="l01672"></a>01672 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01673"></a><a class="code" href="a00146.html#a37df8abcc063f7cea7dba8ae5b9bfde6">01673</a> <a class="code" href="a00145.html#a77227aeb1a2b3663cc1db3b45fcdbae5">const_reference</a> <a class="code" href="a00146.html#a37df8abcc063f7cea7dba8ae5b9bfde6">operator * </a>()<span class="keyword"> const </span>{
|
|
<a name="l01674"></a>01674 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 0 || <a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">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="l01675"></a>01675 <span class="keywordflow">if</span> (<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 0) {
|
|
<a name="l01676"></a>01676 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a> != <a class="code" href="a00146.html#a6dfa8d0c3569dccfbcbc1fc1dae390a8">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="l01677"></a>01677 <span class="keywordflow">if</span> (triangular_type::other (<a class="code" href="a00146.html#a3edeee4dfd513b0c53aeb5c186fd817e">index1</a> (), <a class="code" href="a00146.html#ad35e40f9bde222a656076e936d5cdfae">index2</a> ()))
|
|
<a name="l01678"></a>01678 <span class="keywordflow">return</span> *<a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a>;
|
|
<a name="l01679"></a>01679 <span class="keywordflow">else</span>
|
|
<a name="l01680"></a>01680 <span class="keywordflow">return</span> <a class="code" href="a00595.html#a66f888cfb70f1e904e5c7ec1d1d6e514">type_traits<value_type>::conj</a> (*<a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a>);
|
|
<a name="l01681"></a>01681 } <span class="keywordflow">else</span> <span class="comment">/* if (current_ == 1) */</span> {
|
|
<a name="l01682"></a>01682 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a> != <a class="code" href="a00146.html#a936aae16d160f16a430fc6daebd20671">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="l01683"></a>01683 <span class="keywordflow">if</span> (triangular_type::other (<a class="code" href="a00146.html#a3edeee4dfd513b0c53aeb5c186fd817e">index1</a> (), <a class="code" href="a00146.html#ad35e40f9bde222a656076e936d5cdfae">index2</a> ()))
|
|
<a name="l01684"></a>01684 <span class="keywordflow">return</span> *<a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a>;
|
|
<a name="l01685"></a>01685 <span class="keywordflow">else</span>
|
|
<a name="l01686"></a>01686 <span class="keywordflow">return</span> <a class="code" href="a00595.html#a66f888cfb70f1e904e5c7ec1d1d6e514">type_traits<value_type>::conj</a> (*<a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a>);
|
|
<a name="l01687"></a>01687 }
|
|
<a name="l01688"></a>01688 }
|
|
<a name="l01689"></a>01689 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01690"></a><a class="code" href="a00146.html#a2ccbcff445c1519b6f88c3992ce9d419">01690</a> <a class="code" href="a00145.html#a77227aeb1a2b3663cc1db3b45fcdbae5">const_reference</a> <a class="code" href="a00146.html#a2ccbcff445c1519b6f88c3992ce9d419">operator [] </a>(<a class="code" href="a00146.html#ac2e97837c87fa4fe62ff5c8c6650a14f">difference_type</a> n)<span class="keyword"> const </span>{
|
|
<a name="l01691"></a>01691 <span class="keywordflow">return</span> *(*<span class="keyword">this</span> + n);
|
|
<a name="l01692"></a>01692 }
|
|
<a name="l01693"></a>01693
|
|
<a name="l01694"></a>01694 <span class="preprocessor">#ifndef BOOST_UBLAS_NO_NESTED_CLASS_RELATION</span>
|
|
<a name="l01695"></a>01695 <span class="preprocessor"></span> <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01696"></a>01696 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l01697"></a>01697 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a>::
|
|
<a name="l01698"></a>01698 <span class="preprocessor">#endif</span>
|
|
<a name="l01699"></a><a class="code" href="a00146.html#af8c164dc0d4fe793a96beb1d20d5d6f2">01699</a> <span class="preprocessor"></span> <a class="code" href="a00147.html">const_iterator2</a> <a class="code" href="a00146.html#af8c164dc0d4fe793a96beb1d20d5d6f2">begin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01700"></a>01700 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00145.html#aac9d117fc187753fc1fe821314584646">find2</a> (1, <a class="code" href="a00146.html#a3edeee4dfd513b0c53aeb5c186fd817e">index1</a> (), 0);
|
|
<a name="l01701"></a>01701 }
|
|
<a name="l01702"></a>01702 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01703"></a>01703 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l01704"></a>01704 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a>::
|
|
<a name="l01705"></a>01705 <span class="preprocessor">#endif</span>
|
|
<a name="l01706"></a><a class="code" href="a00146.html#ab8231e27a5e6cc767d9465a79b0c529a">01706</a> <span class="preprocessor"></span> <a class="code" href="a00147.html">const_iterator2</a> <a class="code" href="a00146.html#ab8231e27a5e6cc767d9465a79b0c529a">end</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01707"></a>01707 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00145.html#aac9d117fc187753fc1fe821314584646">find2</a> (1, <a class="code" href="a00146.html#a3edeee4dfd513b0c53aeb5c186fd817e">index1</a> (), (*this) ().<a class="code" href="a00145.html#a980d12364f40b8b1dcacef1a0bde5a6b">size2</a> ());
|
|
<a name="l01708"></a>01708 }
|
|
<a name="l01709"></a>01709 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01710"></a>01710 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l01711"></a>01711 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a>::
|
|
<a name="l01712"></a>01712 <span class="preprocessor">#endif</span>
|
|
<a name="l01713"></a><a class="code" href="a00146.html#a8f0d57391e2ff0a52a9eba94d4b7d7f3">01713</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="a00146.html#a8f0d57391e2ff0a52a9eba94d4b7d7f3">rbegin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01714"></a>01714 <span class="keywordflow">return</span> <a class="code" href="a00145.html#a72e0f2d26a6fe0fc82e71e0cee45c312">const_reverse_iterator2</a> (<a class="code" href="a00146.html#ab8231e27a5e6cc767d9465a79b0c529a">end</a> ());
|
|
<a name="l01715"></a>01715 }
|
|
<a name="l01716"></a>01716 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01717"></a>01717 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l01718"></a>01718 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a>::
|
|
<a name="l01719"></a>01719 <span class="preprocessor">#endif</span>
|
|
<a name="l01720"></a><a class="code" href="a00146.html#a1edb29ef9c22b546b536c80ca2003de9">01720</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="a00146.html#a1edb29ef9c22b546b536c80ca2003de9">rend</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01721"></a>01721 <span class="keywordflow">return</span> <a class="code" href="a00145.html#a72e0f2d26a6fe0fc82e71e0cee45c312">const_reverse_iterator2</a> (<a class="code" href="a00146.html#af8c164dc0d4fe793a96beb1d20d5d6f2">begin</a> ());
|
|
<a name="l01722"></a>01722 }
|
|
<a name="l01723"></a>01723 <span class="preprocessor">#endif</span>
|
|
<a name="l01724"></a>01724 <span class="preprocessor"></span>
|
|
<a name="l01725"></a>01725 <span class="comment">// Indices</span>
|
|
<a name="l01726"></a>01726 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01727"></a><a class="code" href="a00146.html#a3edeee4dfd513b0c53aeb5c186fd817e">01727</a> <a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> <a class="code" href="a00146.html#a3edeee4dfd513b0c53aeb5c186fd817e">index1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01728"></a>01728 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 0 || <a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">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="l01729"></a>01729 <span class="keywordflow">if</span> (<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 0) {
|
|
<a name="l01730"></a>01730 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a> != <a class="code" href="a00146.html#a6dfa8d0c3569dccfbcbc1fc1dae390a8">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="l01731"></a>01731 <span class="keywordflow">return</span> <a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a>.index1 ();
|
|
<a name="l01732"></a>01732 } <span class="keywordflow">else</span> <span class="comment">/* if (current_ == 1) */</span> {
|
|
<a name="l01733"></a>01733 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a> != <a class="code" href="a00146.html#a936aae16d160f16a430fc6daebd20671">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="l01734"></a>01734 <span class="keywordflow">return</span> <a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a>.index2 ();
|
|
<a name="l01735"></a>01735 }
|
|
<a name="l01736"></a>01736 }
|
|
<a name="l01737"></a>01737 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01738"></a><a class="code" href="a00146.html#ad35e40f9bde222a656076e936d5cdfae">01738</a> <a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> <a class="code" href="a00146.html#ad35e40f9bde222a656076e936d5cdfae">index2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01739"></a>01739 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 0 || <a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">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="l01740"></a>01740 <span class="keywordflow">if</span> (<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 0) {
|
|
<a name="l01741"></a>01741 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a> != <a class="code" href="a00146.html#a6dfa8d0c3569dccfbcbc1fc1dae390a8">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="l01742"></a>01742 <span class="keywordflow">return</span> <a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a>.index2 ();
|
|
<a name="l01743"></a>01743 } <span class="keywordflow">else</span> <span class="comment">/* if (current_ == 1) */</span> {
|
|
<a name="l01744"></a>01744 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a> != <a class="code" href="a00146.html#a936aae16d160f16a430fc6daebd20671">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="l01745"></a>01745 <span class="keywordflow">return</span> <a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a>.index1 ();
|
|
<a name="l01746"></a>01746 }
|
|
<a name="l01747"></a>01747 }
|
|
<a name="l01748"></a>01748
|
|
<a name="l01749"></a>01749 <span class="comment">// Assignment</span>
|
|
<a name="l01750"></a>01750 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01751"></a><a class="code" href="a00146.html#ad0932c267722d0b44f72c2b0fa4f7b70">01751</a> <a class="code" href="a00146.html">const_iterator1</a> &<a class="code" href="a00146.html#ad0932c267722d0b44f72c2b0fa4f7b70">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00146.html">const_iterator1</a> &it) {
|
|
<a name="l01752"></a>01752 <a class="code" href="a00069.html#ab14250fc4fe5b9bcab4eb9fba8a5b5f8">container_const_reference<self_type>::assign</a> (&it ());
|
|
<a name="l01753"></a>01753 <a class="code" href="a00146.html#a56191426208712681ecc7c5ca37c0067">begin_</a> = it.<a class="code" href="a00146.html#a56191426208712681ecc7c5ca37c0067">begin_</a>;
|
|
<a name="l01754"></a>01754 <a class="code" href="a00146.html#a692e6e2472880f4634db23bbc022b5da">end_</a> = it.<a class="code" href="a00146.html#a692e6e2472880f4634db23bbc022b5da">end_</a>;
|
|
<a name="l01755"></a>01755 <a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> = it.<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a>;
|
|
<a name="l01756"></a>01756 <a class="code" href="a00146.html#a07a6de94f6a9c81195d359dff2811e14">it1_begin_</a> = it.<a class="code" href="a00146.html#a07a6de94f6a9c81195d359dff2811e14">it1_begin_</a>;
|
|
<a name="l01757"></a>01757 <a class="code" href="a00146.html#a6dfa8d0c3569dccfbcbc1fc1dae390a8">it1_end_</a> = it.<a class="code" href="a00146.html#a6dfa8d0c3569dccfbcbc1fc1dae390a8">it1_end_</a>;
|
|
<a name="l01758"></a>01758 <a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a> = it.<a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a>;
|
|
<a name="l01759"></a>01759 <a class="code" href="a00146.html#a5de4fd3895d557f3b07400a194634134">it2_begin_</a> = it.<a class="code" href="a00146.html#a5de4fd3895d557f3b07400a194634134">it2_begin_</a>;
|
|
<a name="l01760"></a>01760 <a class="code" href="a00146.html#a936aae16d160f16a430fc6daebd20671">it2_end_</a> = it.<a class="code" href="a00146.html#a936aae16d160f16a430fc6daebd20671">it2_end_</a>;
|
|
<a name="l01761"></a>01761 <a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a> = it.<a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a>;
|
|
<a name="l01762"></a>01762 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01763"></a>01763 }
|
|
<a name="l01764"></a>01764
|
|
<a name="l01765"></a>01765 <span class="comment">// Comparison</span>
|
|
<a name="l01766"></a>01766 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01767"></a><a class="code" href="a00146.html#aeb9615e34e854e0aa81fb30705e6a7dc">01767</a> <span class="keywordtype">bool</span> <a class="code" href="a00146.html#aeb9615e34e854e0aa81fb30705e6a7dc">operator == </a>(<span class="keyword">const</span> <a class="code" href="a00146.html">const_iterator1</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l01768"></a>01768 <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="l01769"></a>01769 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 0 || <a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">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="l01770"></a>01770 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (it.<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 0 || it.<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">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="l01771"></a>01771 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<span class="comment">/* begin_ == it.begin_ && */</span> <a class="code" href="a00146.html#a692e6e2472880f4634db23bbc022b5da">end_</a> == it.<a class="code" href="a00146.html#a692e6e2472880f4634db23bbc022b5da">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="l01772"></a>01772 <span class="keywordflow">return</span> (<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 0 && it.<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 0 && <a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a> == it.<a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a>) ||
|
|
<a name="l01773"></a>01773 (<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 1 && it.<a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a> == 1 && <a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a> == it.<a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a>);
|
|
<a name="l01774"></a>01774 }
|
|
<a name="l01775"></a>01775 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01776"></a><a class="code" href="a00146.html#a34c4a54e1e3705405244a84b4dc53f5e">01776</a> <span class="keywordtype">bool</span> <a class="code" href="a00146.html#a34c4a54e1e3705405244a84b4dc53f5e">operator < </a>(<span class="keyword">const</span> <a class="code" href="a00146.html">const_iterator1</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l01777"></a>01777 <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="l01778"></a>01778 <span class="keywordflow">return</span> it - *<span class="keyword">this</span> > 0;
|
|
<a name="l01779"></a>01779 }
|
|
<a name="l01780"></a>01780
|
|
<a name="l01781"></a>01781 <span class="keyword">private</span>:
|
|
<a name="l01782"></a><a class="code" href="a00146.html#a56191426208712681ecc7c5ca37c0067">01782</a> <span class="keywordtype">int</span> <a class="code" href="a00146.html#a56191426208712681ecc7c5ca37c0067">begin_</a>;
|
|
<a name="l01783"></a><a class="code" href="a00146.html#a692e6e2472880f4634db23bbc022b5da">01783</a> <span class="keywordtype">int</span> <a class="code" href="a00146.html#a692e6e2472880f4634db23bbc022b5da">end_</a>;
|
|
<a name="l01784"></a><a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">01784</a> <span class="keywordtype">int</span> <a class="code" href="a00146.html#a74f1a71de9d39c330a4673a0b688996e">current_</a>;
|
|
<a name="l01785"></a><a class="code" href="a00146.html#a07a6de94f6a9c81195d359dff2811e14">01785</a> <a class="code" href="a00145.html#ae32c96561b3c927bef1378ca9a429b7d">const_subiterator1_type</a> <a class="code" href="a00146.html#a07a6de94f6a9c81195d359dff2811e14">it1_begin_</a>;
|
|
<a name="l01786"></a><a class="code" href="a00146.html#a6dfa8d0c3569dccfbcbc1fc1dae390a8">01786</a> <a class="code" href="a00145.html#ae32c96561b3c927bef1378ca9a429b7d">const_subiterator1_type</a> <a class="code" href="a00146.html#a6dfa8d0c3569dccfbcbc1fc1dae390a8">it1_end_</a>;
|
|
<a name="l01787"></a><a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">01787</a> <a class="code" href="a00145.html#ae32c96561b3c927bef1378ca9a429b7d">const_subiterator1_type</a> <a class="code" href="a00146.html#ae6b644d1cb89838408dc31762a1717a1">it1_</a>;
|
|
<a name="l01788"></a><a class="code" href="a00146.html#a5de4fd3895d557f3b07400a194634134">01788</a> <a class="code" href="a00145.html#a51ee0a44350af41401b0ff4cc3973802">const_subiterator2_type</a> <a class="code" href="a00146.html#a5de4fd3895d557f3b07400a194634134">it2_begin_</a>;
|
|
<a name="l01789"></a><a class="code" href="a00146.html#a936aae16d160f16a430fc6daebd20671">01789</a> <a class="code" href="a00145.html#a51ee0a44350af41401b0ff4cc3973802">const_subiterator2_type</a> <a class="code" href="a00146.html#a936aae16d160f16a430fc6daebd20671">it2_end_</a>;
|
|
<a name="l01790"></a><a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">01790</a> <a class="code" href="a00145.html#a51ee0a44350af41401b0ff4cc3973802">const_subiterator2_type</a> <a class="code" href="a00146.html#a90b95497efd47bf36bf11b241fedc8a6">it2_</a>;
|
|
<a name="l01791"></a>01791 };
|
|
<a name="l01792"></a>01792 <span class="preprocessor">#endif</span>
|
|
<a name="l01793"></a>01793 <span class="preprocessor"></span>
|
|
<a name="l01794"></a>01794 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01795"></a><a class="code" href="a00145.html#ab9657ba0d41cd940f9f556b6c20c4bfc">01795</a> <a class="code" href="a00146.html">const_iterator1</a> <a class="code" href="a00145.html#ab9657ba0d41cd940f9f556b6c20c4bfc">begin1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01796"></a>01796 <span class="keywordflow">return</span> <a class="code" href="a00145.html#ad5ee7ca3e3fa0d51886ef48947ece6b1">find1</a> (0, 0, 0);
|
|
<a name="l01797"></a>01797 }
|
|
<a name="l01798"></a>01798 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01799"></a><a class="code" href="a00145.html#a0a3b69a965bc9b0de347d1753a32b27b">01799</a> <a class="code" href="a00146.html">const_iterator1</a> <a class="code" href="a00145.html#a0a3b69a965bc9b0de347d1753a32b27b">end1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01800"></a>01800 <span class="keywordflow">return</span> <a class="code" href="a00145.html#ad5ee7ca3e3fa0d51886ef48947ece6b1">find1</a> (0, <a class="code" href="a00145.html#a0f1a3c71c1ff3601fb0d1eca0e351d3b">size1</a> (), 0);
|
|
<a name="l01801"></a>01801 }
|
|
<a name="l01802"></a>01802
|
|
<a name="l01803"></a>01803 <span class="preprocessor">#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR</span>
|
|
<a name="l01804"></a><a class="code" href="a00148.html">01804</a> <span class="preprocessor"></span> <span class="keyword">class </span><a class="code" href="a00148.html">iterator1</a>:
|
|
<a name="l01805"></a>01805 <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><hermitian_adaptor>,
|
|
<a name="l01806"></a>01806 <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="l01807"></a>01807 typename subiterator1_type::iterator_category, packed_random_access_iterator_tag>::iterator_category,
|
|
<a name="l01808"></a>01808 iterator1, value_type> {
|
|
<a name="l01809"></a>01809 <span class="keyword">public</span>:
|
|
<a name="l01810"></a><a class="code" href="a00148.html#a159d6b906b33bfc0b7fadba3ecf6e6ae">01810</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> subiterator1_type::value_type <a class="code" href="a00148.html#a159d6b906b33bfc0b7fadba3ecf6e6ae">value_type</a>;
|
|
<a name="l01811"></a><a class="code" href="a00148.html#a6d1d5fa7a6794fb8d135be9fcd0882dd">01811</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> subiterator1_type::difference_type <a class="code" href="a00148.html#a6d1d5fa7a6794fb8d135be9fcd0882dd">difference_type</a>;
|
|
<a name="l01812"></a><a class="code" href="a00148.html#ad452c5c4e2c8eb86eb3fe3d2d33f6552">01812</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> subiterator1_type::reference <a class="code" href="a00148.html#ad452c5c4e2c8eb86eb3fe3d2d33f6552">reference</a>;
|
|
<a name="l01813"></a><a class="code" href="a00148.html#a805fe452c510dbf5a4d22c1b1ccadb07">01813</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> subiterator1_type::pointer <a class="code" href="a00148.html#a805fe452c510dbf5a4d22c1b1ccadb07">pointer</a>;
|
|
<a name="l01814"></a>01814
|
|
<a name="l01815"></a><a class="code" href="a00148.html#a7b89cde95cdadb7e5d40d26120f3c569">01815</a> <span class="keyword">typedef</span> <a class="code" href="a00149.html">iterator2</a> <a class="code" href="a00148.html#a7b89cde95cdadb7e5d40d26120f3c569">dual_iterator_type</a>;
|
|
<a name="l01816"></a><a class="code" href="a00148.html#a8c456b584bd81069622925f378d6abea">01816</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="a00148.html#a8c456b584bd81069622925f378d6abea">dual_reverse_iterator_type</a>;
|
|
<a name="l01817"></a>01817
|
|
<a name="l01818"></a>01818 <span class="comment">// Construction and destruction</span>
|
|
<a name="l01819"></a>01819 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01820"></a><a class="code" href="a00148.html#a02e29f9a3ba9958605805a06b35d0294">01820</a> <a class="code" href="a00148.html#a02e29f9a3ba9958605805a06b35d0294">iterator1</a> ():
|
|
<a name="l01821"></a>01821 <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="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a>> (), <a class="code" href="a00148.html#abbb098d854c561e587e9d3021008f899">it1_</a> () {}
|
|
<a name="l01822"></a>01822 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01823"></a><a class="code" href="a00148.html#ae7dc6c03ed6e1e8dad8d46130003abcb">01823</a> <a class="code" href="a00148.html#a02e29f9a3ba9958605805a06b35d0294">iterator1</a> (<a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a> &m, <span class="keyword">const</span> <a class="code" href="a00145.html#a10d42598c62b79c3147140e93606b0ab">subiterator1_type</a> &it1):
|
|
<a name="l01824"></a>01824 <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="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a>> (m), <a class="code" href="a00148.html#abbb098d854c561e587e9d3021008f899">it1_</a> (it1) {}
|
|
<a name="l01825"></a>01825
|
|
<a name="l01826"></a>01826 <span class="comment">// Arithmetic</span>
|
|
<a name="l01827"></a>01827 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01828"></a><a class="code" href="a00148.html#a20e30a2df34f0692564f4d79f5d7050a">01828</a> <a class="code" href="a00148.html">iterator1</a> &<a class="code" href="a00148.html#a20e30a2df34f0692564f4d79f5d7050a">operator ++ </a>() {
|
|
<a name="l01829"></a>01829 ++ <a class="code" href="a00148.html#abbb098d854c561e587e9d3021008f899">it1_</a>;
|
|
<a name="l01830"></a>01830 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01831"></a>01831 }
|
|
<a name="l01832"></a>01832 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01833"></a><a class="code" href="a00148.html#ab7775d4161b94edae94630d041945682">01833</a> <a class="code" href="a00148.html">iterator1</a> &<a class="code" href="a00148.html#ab7775d4161b94edae94630d041945682">operator -- </a>() {
|
|
<a name="l01834"></a>01834 -- <a class="code" href="a00148.html#abbb098d854c561e587e9d3021008f899">it1_</a>;
|
|
<a name="l01835"></a>01835 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<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><a class="code" href="a00148.html#a2aa645a64d5a7e35aa06663e7d266d54">01838</a> <a class="code" href="a00148.html">iterator1</a> &<a class="code" href="a00148.html#a2aa645a64d5a7e35aa06663e7d266d54">operator += </a>(<a class="code" href="a00148.html#a6d1d5fa7a6794fb8d135be9fcd0882dd">difference_type</a> n) {
|
|
<a name="l01839"></a>01839 <a class="code" href="a00148.html#abbb098d854c561e587e9d3021008f899">it1_</a> += n;
|
|
<a name="l01840"></a>01840 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01841"></a>01841 }
|
|
<a name="l01842"></a>01842 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01843"></a><a class="code" href="a00148.html#ad2c1353cea67597f9e428d41bfa50daf">01843</a> <a class="code" href="a00148.html">iterator1</a> &<a class="code" href="a00148.html#ad2c1353cea67597f9e428d41bfa50daf">operator -= </a>(<a class="code" href="a00148.html#a6d1d5fa7a6794fb8d135be9fcd0882dd">difference_type</a> n) {
|
|
<a name="l01844"></a>01844 <a class="code" href="a00148.html#abbb098d854c561e587e9d3021008f899">it1_</a> -= n;
|
|
<a name="l01845"></a>01845 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01846"></a>01846 }
|
|
<a name="l01847"></a>01847 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01848"></a><a class="code" href="a00148.html#a111d55e078f801eb617c441cbdba8e5c">01848</a> <a class="code" href="a00148.html#a6d1d5fa7a6794fb8d135be9fcd0882dd">difference_type</a> <a class="code" href="a00148.html#a111d55e078f801eb617c441cbdba8e5c">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00148.html">iterator1</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l01849"></a>01849 <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="l01850"></a>01850 <span class="keywordflow">return</span> <a class="code" href="a00148.html#abbb098d854c561e587e9d3021008f899">it1_</a> - it.<a class="code" href="a00148.html#abbb098d854c561e587e9d3021008f899">it1_</a>;
|
|
<a name="l01851"></a>01851 }
|
|
<a name="l01852"></a>01852
|
|
<a name="l01853"></a>01853 <span class="comment">// Dereference</span>
|
|
<a name="l01854"></a>01854 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01855"></a><a class="code" href="a00148.html#a0d8510a4890585b6d41f39fd097427a9">01855</a> <a class="code" href="a00148.html#ad452c5c4e2c8eb86eb3fe3d2d33f6552">reference</a> <a class="code" href="a00148.html#a0d8510a4890585b6d41f39fd097427a9">operator * </a>()<span class="keyword"> const </span>{
|
|
<a name="l01856"></a>01856 <span class="keywordflow">return</span> *<a class="code" href="a00148.html#abbb098d854c561e587e9d3021008f899">it1_</a>;
|
|
<a name="l01857"></a>01857 }
|
|
<a name="l01858"></a>01858 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01859"></a><a class="code" href="a00148.html#a5760ba220ea3d780e11c0b713346529e">01859</a> <a class="code" href="a00148.html#ad452c5c4e2c8eb86eb3fe3d2d33f6552">reference</a> <a class="code" href="a00148.html#a5760ba220ea3d780e11c0b713346529e">operator [] </a>(<a class="code" href="a00148.html#a6d1d5fa7a6794fb8d135be9fcd0882dd">difference_type</a> n)<span class="keyword"> const </span>{
|
|
<a name="l01860"></a>01860 <span class="keywordflow">return</span> *(*<span class="keyword">this</span> + n);
|
|
<a name="l01861"></a>01861 }
|
|
<a name="l01862"></a>01862
|
|
<a name="l01863"></a>01863 <span class="preprocessor">#ifndef BOOST_UBLAS_NO_NESTED_CLASS_RELATION</span>
|
|
<a name="l01864"></a>01864 <span class="preprocessor"></span> <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01865"></a>01865 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l01866"></a>01866 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a>::
|
|
<a name="l01867"></a>01867 <span class="preprocessor">#endif</span>
|
|
<a name="l01868"></a><a class="code" href="a00148.html#aa30f94b577262f6291d90499fec28541">01868</a> <span class="preprocessor"></span> <a class="code" href="a00149.html">iterator2</a> <a class="code" href="a00148.html#aa30f94b577262f6291d90499fec28541">begin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01869"></a>01869 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00145.html#aac9d117fc187753fc1fe821314584646">find2</a> (1, <a class="code" href="a00148.html#ae5da03c437abb9002573cf14d64b1d70">index1</a> (), 0);
|
|
<a name="l01870"></a>01870 }
|
|
<a name="l01871"></a>01871 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01872"></a>01872 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l01873"></a>01873 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a>::
|
|
<a name="l01874"></a>01874 <span class="preprocessor">#endif</span>
|
|
<a name="l01875"></a><a class="code" href="a00148.html#aadb673ed511bef294540cf067913e028">01875</a> <span class="preprocessor"></span> <a class="code" href="a00149.html">iterator2</a> <a class="code" href="a00148.html#aadb673ed511bef294540cf067913e028">end</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01876"></a>01876 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00145.html#aac9d117fc187753fc1fe821314584646">find2</a> (1, <a class="code" href="a00148.html#ae5da03c437abb9002573cf14d64b1d70">index1</a> (), (*this) ().<a class="code" href="a00145.html#a980d12364f40b8b1dcacef1a0bde5a6b">size2</a> ());
|
|
<a name="l01877"></a>01877 }
|
|
<a name="l01878"></a>01878 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01879"></a>01879 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l01880"></a>01880 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a>::
|
|
<a name="l01881"></a>01881 <span class="preprocessor">#endif</span>
|
|
<a name="l01882"></a><a class="code" href="a00148.html#a40ac7ca833ffa15637820271f2b762fb">01882</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="a00148.html#a40ac7ca833ffa15637820271f2b762fb">rbegin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01883"></a>01883 <span class="keywordflow">return</span> <a class="code" href="a00145.html#a0baa32c488fecfea40d1ae60f5f1c533">reverse_iterator2</a> (<a class="code" href="a00148.html#aadb673ed511bef294540cf067913e028">end</a> ());
|
|
<a name="l01884"></a>01884 }
|
|
<a name="l01885"></a>01885 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01886"></a>01886 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l01887"></a>01887 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a>::
|
|
<a name="l01888"></a>01888 <span class="preprocessor">#endif</span>
|
|
<a name="l01889"></a><a class="code" href="a00148.html#a746ccb51ee688478cf43e61a6affc51e">01889</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="a00148.html#a746ccb51ee688478cf43e61a6affc51e">rend</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01890"></a>01890 <span class="keywordflow">return</span> <a class="code" href="a00145.html#a0baa32c488fecfea40d1ae60f5f1c533">reverse_iterator2</a> (<a class="code" href="a00148.html#aa30f94b577262f6291d90499fec28541">begin</a> ());
|
|
<a name="l01891"></a>01891 }
|
|
<a name="l01892"></a>01892 <span class="preprocessor">#endif</span>
|
|
<a name="l01893"></a>01893 <span class="preprocessor"></span>
|
|
<a name="l01894"></a>01894 <span class="comment">// Indices</span>
|
|
<a name="l01895"></a>01895 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01896"></a><a class="code" href="a00148.html#ae5da03c437abb9002573cf14d64b1d70">01896</a> <a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> <a class="code" href="a00148.html#ae5da03c437abb9002573cf14d64b1d70">index1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01897"></a>01897 <span class="keywordflow">return</span> <a class="code" href="a00148.html#abbb098d854c561e587e9d3021008f899">it1_</a>.index1 ();
|
|
<a name="l01898"></a>01898 }
|
|
<a name="l01899"></a>01899 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01900"></a><a class="code" href="a00148.html#a59f4974713680113d6ca5f3699ea62dd">01900</a> <a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> <a class="code" href="a00148.html#a59f4974713680113d6ca5f3699ea62dd">index2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01901"></a>01901 <span class="keywordflow">return</span> <a class="code" href="a00148.html#abbb098d854c561e587e9d3021008f899">it1_</a>.index2 ();
|
|
<a name="l01902"></a>01902 }
|
|
<a name="l01903"></a>01903
|
|
<a name="l01904"></a>01904 <span class="comment">// Assignment</span>
|
|
<a name="l01905"></a>01905 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01906"></a><a class="code" href="a00148.html#ab4d470872509f6be9879201c4f409d0a">01906</a> <a class="code" href="a00148.html">iterator1</a> &<a class="code" href="a00148.html#ab4d470872509f6be9879201c4f409d0a">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00148.html">iterator1</a> &it) {
|
|
<a name="l01907"></a>01907 <a class="code" href="a00070.html#a8ee5b7e2ac6a45d59e4873df582a02b2">container_reference<self_type>::assign</a> (&it ());
|
|
<a name="l01908"></a>01908 <a class="code" href="a00148.html#abbb098d854c561e587e9d3021008f899">it1_</a> = it.<a class="code" href="a00148.html#abbb098d854c561e587e9d3021008f899">it1_</a>;
|
|
<a name="l01909"></a>01909 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01910"></a>01910 }
|
|
<a name="l01911"></a>01911
|
|
<a name="l01912"></a>01912 <span class="comment">// Comparison</span>
|
|
<a name="l01913"></a>01913 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01914"></a><a class="code" href="a00148.html#ad58421002108236a66586f6016e51681">01914</a> <span class="keywordtype">bool</span> <a class="code" href="a00148.html#ad58421002108236a66586f6016e51681">operator == </a>(<span class="keyword">const</span> <a class="code" href="a00148.html">iterator1</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l01915"></a>01915 <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="l01916"></a>01916 <span class="keywordflow">return</span> <a class="code" href="a00148.html#abbb098d854c561e587e9d3021008f899">it1_</a> == it.<a class="code" href="a00148.html#abbb098d854c561e587e9d3021008f899">it1_</a>;
|
|
<a name="l01917"></a>01917 }
|
|
<a name="l01918"></a>01918 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01919"></a><a class="code" href="a00148.html#a0d929b9ef878da7dca85ae8c2f9aabb6">01919</a> <span class="keywordtype">bool</span> <a class="code" href="a00148.html#a0d929b9ef878da7dca85ae8c2f9aabb6">operator < </a>(<span class="keyword">const</span> <a class="code" href="a00148.html">iterator1</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l01920"></a>01920 <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="l01921"></a>01921 <span class="keywordflow">return</span> <a class="code" href="a00148.html#abbb098d854c561e587e9d3021008f899">it1_</a> < it.<a class="code" href="a00148.html#abbb098d854c561e587e9d3021008f899">it1_</a>;
|
|
<a name="l01922"></a>01922 }
|
|
<a name="l01923"></a>01923
|
|
<a name="l01924"></a>01924 <span class="keyword">private</span>:
|
|
<a name="l01925"></a><a class="code" href="a00148.html#abbb098d854c561e587e9d3021008f899">01925</a> <a class="code" href="a00145.html#a10d42598c62b79c3147140e93606b0ab">subiterator1_type</a> <a class="code" href="a00148.html#abbb098d854c561e587e9d3021008f899">it1_</a>;
|
|
<a name="l01926"></a>01926
|
|
<a name="l01927"></a><a class="code" href="a00148.html#a2217ee3466e64c9a0105ef5d64ba6a11">01927</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="a00146.html">const_iterator1</a>;
|
|
<a name="l01928"></a>01928 };
|
|
<a name="l01929"></a>01929 <span class="preprocessor">#endif</span>
|
|
<a name="l01930"></a>01930 <span class="preprocessor"></span>
|
|
<a name="l01931"></a>01931 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01932"></a><a class="code" href="a00145.html#aec761a7f30bd2855090c1ad29482699c">01932</a> <a class="code" href="a00148.html">iterator1</a> <a class="code" href="a00145.html#aec761a7f30bd2855090c1ad29482699c">begin1</a> () {
|
|
<a name="l01933"></a>01933 <span class="keywordflow">return</span> <a class="code" href="a00145.html#ad5ee7ca3e3fa0d51886ef48947ece6b1">find1</a> (0, 0, 0);
|
|
<a name="l01934"></a>01934 }
|
|
<a name="l01935"></a>01935 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01936"></a><a class="code" href="a00145.html#ab877ecd4fc7b1803770b8f299f1c67cd">01936</a> <a class="code" href="a00148.html">iterator1</a> <a class="code" href="a00145.html#ab877ecd4fc7b1803770b8f299f1c67cd">end1</a> () {
|
|
<a name="l01937"></a>01937 <span class="keywordflow">return</span> <a class="code" href="a00145.html#ad5ee7ca3e3fa0d51886ef48947ece6b1">find1</a> (0, <a class="code" href="a00145.html#a0f1a3c71c1ff3601fb0d1eca0e351d3b">size1</a> (), 0);
|
|
<a name="l01938"></a>01938 }
|
|
<a name="l01939"></a>01939
|
|
<a name="l01940"></a>01940 <span class="preprocessor">#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR</span>
|
|
<a name="l01941"></a><a class="code" href="a00147.html">01941</a> <span class="preprocessor"></span> <span class="keyword">class </span><a class="code" href="a00147.html">const_iterator2</a>:
|
|
<a name="l01942"></a>01942 <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><hermitian_adaptor>,
|
|
<a name="l01943"></a>01943 <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="l01944"></a>01944 typename const_subiterator2_type::iterator_category, dense_random_access_iterator_tag>::iterator_category,
|
|
<a name="l01945"></a>01945 const_iterator2, value_type> {
|
|
<a name="l01946"></a>01946 <span class="keyword">public</span>:
|
|
<a name="l01947"></a><a class="code" href="a00147.html#a41147c203b774762bfd8586603930680">01947</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> const_subiterator2_type::value_type <a class="code" href="a00147.html#a41147c203b774762bfd8586603930680">value_type</a>;
|
|
<a name="l01948"></a><a class="code" href="a00147.html#af54ccb00ba9bdbfb743af6686f4eb849">01948</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> const_subiterator2_type::difference_type <a class="code" href="a00147.html#af54ccb00ba9bdbfb743af6686f4eb849">difference_type</a>;
|
|
<a name="l01949"></a>01949 <span class="comment">// FIXME no better way to not return the address of a temporary?</span>
|
|
<a name="l01950"></a>01950 <span class="comment">// typedef typename const_subiterator2_type::reference reference;</span>
|
|
<a name="l01951"></a><a class="code" href="a00147.html#ac561d0830f1e28bf23cc6f9339eb64ad">01951</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> const_subiterator2_type::value_type <a class="code" href="a00147.html#ac561d0830f1e28bf23cc6f9339eb64ad">reference</a>;
|
|
<a name="l01952"></a><a class="code" href="a00147.html#a995fefd9be1e56854613bf59b233e3ad">01952</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> const_subiterator2_type::pointer <a class="code" href="a00147.html#a995fefd9be1e56854613bf59b233e3ad">pointer</a>;
|
|
<a name="l01953"></a>01953
|
|
<a name="l01954"></a><a class="code" href="a00147.html#acae7c059ef73f659741fe4211d22cca4">01954</a> <span class="keyword">typedef</span> <a class="code" href="a00146.html">const_iterator1</a> <a class="code" href="a00147.html#acae7c059ef73f659741fe4211d22cca4">dual_iterator_type</a>;
|
|
<a name="l01955"></a><a class="code" href="a00147.html#a4344469795054674cec678ae9058dcaf">01955</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="a00147.html#a4344469795054674cec678ae9058dcaf">dual_reverse_iterator_type</a>;
|
|
<a name="l01956"></a>01956
|
|
<a name="l01957"></a>01957 <span class="comment">// Construction and destruction</span>
|
|
<a name="l01958"></a>01958 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01959"></a><a class="code" href="a00147.html#a133b2c3bb356907d43fe94eaa5cc55c5">01959</a> <a class="code" href="a00147.html#a133b2c3bb356907d43fe94eaa5cc55c5">const_iterator2</a> ():
|
|
<a name="l01960"></a>01960 <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="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a>> (),
|
|
<a name="l01961"></a>01961 <a class="code" href="a00147.html#a0871c1687cfe2ee41bab95d1648d2146">begin_</a> (-1), <a class="code" href="a00147.html#a3e30f30a13a7a5195c46f5b2ad7da1d6">end_</a> (-1), <a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> (-1),
|
|
<a name="l01962"></a>01962 <a class="code" href="a00147.html#acaab268ada603452e3d4597a06c324be">it1_begin_</a> (), <a class="code" href="a00147.html#a883909d2f5e36feb2ab169222241d20b">it1_end_</a> (), <a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a> (),
|
|
<a name="l01963"></a>01963 <a class="code" href="a00147.html#a0f44274bacf229b4cd1d7943b4031ebd">it2_begin_</a> (), <a class="code" href="a00147.html#ab4c0090b0f1a9dad72de080487723d5d">it2_end_</a> (), <a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a> () {}
|
|
<a name="l01964"></a>01964 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01965"></a><a class="code" href="a00147.html#a5c30ca48dfa2429a0ca0b1db93229eac">01965</a> <a class="code" href="a00147.html#a133b2c3bb356907d43fe94eaa5cc55c5">const_iterator2</a> (<span class="keyword">const</span> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a> &m, <span class="keywordtype">int</span> <a class="code" href="a00147.html#a6543a6b98c0bb19eb66b166d68b01a89">begin</a>, <span class="keywordtype">int</span> <a class="code" href="a00147.html#aea696250f85198bc546a55c896722097">end</a>,
|
|
<a name="l01966"></a>01966 <span class="keyword">const</span> <a class="code" href="a00145.html#ae32c96561b3c927bef1378ca9a429b7d">const_subiterator1_type</a> &it1_begin, <span class="keyword">const</span> <a class="code" href="a00145.html#ae32c96561b3c927bef1378ca9a429b7d">const_subiterator1_type</a> &it1_end,
|
|
<a name="l01967"></a>01967 <span class="keyword">const</span> <a class="code" href="a00145.html#a51ee0a44350af41401b0ff4cc3973802">const_subiterator2_type</a> &it2_begin, <span class="keyword">const</span> <a class="code" href="a00145.html#a51ee0a44350af41401b0ff4cc3973802">const_subiterator2_type</a> &it2_end):
|
|
<a name="l01968"></a>01968 <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="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a>> (m),
|
|
<a name="l01969"></a>01969 <a class="code" href="a00147.html#a0871c1687cfe2ee41bab95d1648d2146">begin_</a> (begin), <a class="code" href="a00147.html#a3e30f30a13a7a5195c46f5b2ad7da1d6">end_</a> (end), <a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> (begin),
|
|
<a name="l01970"></a>01970 <a class="code" href="a00147.html#acaab268ada603452e3d4597a06c324be">it1_begin_</a> (it1_begin), <a class="code" href="a00147.html#a883909d2f5e36feb2ab169222241d20b">it1_end_</a> (it1_end), <a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a> (<a class="code" href="a00147.html#acaab268ada603452e3d4597a06c324be">it1_begin_</a>),
|
|
<a name="l01971"></a>01971 <a class="code" href="a00147.html#a0f44274bacf229b4cd1d7943b4031ebd">it2_begin_</a> (it2_begin), <a class="code" href="a00147.html#ab4c0090b0f1a9dad72de080487723d5d">it2_end_</a> (it2_end), <a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a> (<a class="code" href="a00147.html#a0f44274bacf229b4cd1d7943b4031ebd">it2_begin_</a>) {
|
|
<a name="l01972"></a>01972 <span class="keywordflow">if</span> (<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 0 && <a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a> == <a class="code" href="a00147.html#a883909d2f5e36feb2ab169222241d20b">it1_end_</a>)
|
|
<a name="l01973"></a>01973 <a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> = 1;
|
|
<a name="l01974"></a>01974 <span class="keywordflow">if</span> (<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 1 && <a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a> == <a class="code" href="a00147.html#ab4c0090b0f1a9dad72de080487723d5d">it2_end_</a>)
|
|
<a name="l01975"></a>01975 <a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> = 0;
|
|
<a name="l01976"></a>01976 <span class="keywordflow">if</span> ((<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 0 && <a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a> == <a class="code" href="a00147.html#a883909d2f5e36feb2ab169222241d20b">it1_end_</a>) ||
|
|
<a name="l01977"></a>01977 (<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 1 && <a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a> == <a class="code" href="a00147.html#ab4c0090b0f1a9dad72de080487723d5d">it2_end_</a>))
|
|
<a name="l01978"></a>01978 <a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> = <a class="code" href="a00147.html#a3e30f30a13a7a5195c46f5b2ad7da1d6">end_</a>;
|
|
<a name="l01979"></a>01979 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == <a class="code" href="a00147.html#a3e30f30a13a7a5195c46f5b2ad7da1d6">end_</a> ||
|
|
<a name="l01980"></a>01980 (<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 0 && <a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a> != <a class="code" href="a00147.html#a883909d2f5e36feb2ab169222241d20b">it1_end_</a>) ||
|
|
<a name="l01981"></a>01981 (<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 1 && <a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a> != <a class="code" href="a00147.html#ab4c0090b0f1a9dad72de080487723d5d">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="l01982"></a>01982 }
|
|
<a name="l01983"></a>01983 <span class="comment">// FIXME cannot compiler</span>
|
|
<a name="l01984"></a>01984 <span class="comment">// iterator2 does not have these members!</span>
|
|
<a name="l01985"></a>01985 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01986"></a><a class="code" href="a00147.html#ae80c199e2882e58ef19d6ce86f4c288f">01986</a> <a class="code" href="a00147.html#a133b2c3bb356907d43fe94eaa5cc55c5">const_iterator2</a> (<span class="keyword">const</span> <a class="code" href="a00149.html">iterator2</a> &it):
|
|
<a name="l01987"></a>01987 <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="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a>> (it ()),
|
|
<a name="l01988"></a>01988 <a class="code" href="a00147.html#a0871c1687cfe2ee41bab95d1648d2146">begin_</a> (it.<a class="code" href="a00147.html#a0871c1687cfe2ee41bab95d1648d2146">begin_</a>), <a class="code" href="a00147.html#a3e30f30a13a7a5195c46f5b2ad7da1d6">end_</a> (it.<a class="code" href="a00147.html#a3e30f30a13a7a5195c46f5b2ad7da1d6">end_</a>), <a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> (it.<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a>),
|
|
<a name="l01989"></a>01989 <a class="code" href="a00147.html#acaab268ada603452e3d4597a06c324be">it1_begin_</a> (it.<a class="code" href="a00147.html#acaab268ada603452e3d4597a06c324be">it1_begin_</a>), <a class="code" href="a00147.html#a883909d2f5e36feb2ab169222241d20b">it1_end_</a> (it.<a class="code" href="a00147.html#a883909d2f5e36feb2ab169222241d20b">it1_end_</a>), <a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a> (it.<a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a>),
|
|
<a name="l01990"></a>01990 <a class="code" href="a00147.html#a0f44274bacf229b4cd1d7943b4031ebd">it2_begin_</a> (it.<a class="code" href="a00147.html#a0f44274bacf229b4cd1d7943b4031ebd">it2_begin_</a>), <a class="code" href="a00147.html#ab4c0090b0f1a9dad72de080487723d5d">it2_end_</a> (it.<a class="code" href="a00147.html#ab4c0090b0f1a9dad72de080487723d5d">it2_end_</a>), <a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a> (it.<a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a>) {
|
|
<a name="l01991"></a>01991 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == <a class="code" href="a00147.html#a3e30f30a13a7a5195c46f5b2ad7da1d6">end_</a> ||
|
|
<a name="l01992"></a>01992 (<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 0 && <a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a> != <a class="code" href="a00147.html#a883909d2f5e36feb2ab169222241d20b">it1_end_</a>) ||
|
|
<a name="l01993"></a>01993 (<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 1 && <a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a> != <a class="code" href="a00147.html#ab4c0090b0f1a9dad72de080487723d5d">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="l01994"></a>01994 }
|
|
<a name="l01995"></a>01995
|
|
<a name="l01996"></a>01996 <span class="comment">// Arithmetic</span>
|
|
<a name="l01997"></a>01997 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01998"></a><a class="code" href="a00147.html#a2f67eb6b0cb00f73918dfde7bf5b719a">01998</a> <a class="code" href="a00147.html">const_iterator2</a> &<a class="code" href="a00147.html#a2f67eb6b0cb00f73918dfde7bf5b719a">operator ++ </a>() {
|
|
<a name="l01999"></a>01999 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 0 || <a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">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="l02000"></a>02000 <span class="keywordflow">if</span> (<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 0) {
|
|
<a name="l02001"></a>02001 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a> != <a class="code" href="a00147.html#a883909d2f5e36feb2ab169222241d20b">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="l02002"></a>02002 ++ <a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a>;
|
|
<a name="l02003"></a>02003 <span class="keywordflow">if</span> (<a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a> == <a class="code" href="a00147.html#a883909d2f5e36feb2ab169222241d20b">it1_end_</a> && <a class="code" href="a00147.html#a3e30f30a13a7a5195c46f5b2ad7da1d6">end_</a> == 1) {
|
|
<a name="l02004"></a>02004 <a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a> = <a class="code" href="a00147.html#a0f44274bacf229b4cd1d7943b4031ebd">it2_begin_</a>;
|
|
<a name="l02005"></a>02005 <a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> = 1;
|
|
<a name="l02006"></a>02006 }
|
|
<a name="l02007"></a>02007 } <span class="keywordflow">else</span> <span class="comment">/* if (current_ == 1) */</span> {
|
|
<a name="l02008"></a>02008 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a> != <a class="code" href="a00147.html#ab4c0090b0f1a9dad72de080487723d5d">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="l02009"></a>02009 ++ <a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a>;
|
|
<a name="l02010"></a>02010 <span class="keywordflow">if</span> (<a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a> == <a class="code" href="a00147.html#ab4c0090b0f1a9dad72de080487723d5d">it2_end_</a> && <a class="code" href="a00147.html#a3e30f30a13a7a5195c46f5b2ad7da1d6">end_</a> == 0) {
|
|
<a name="l02011"></a>02011 <a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a> = <a class="code" href="a00147.html#acaab268ada603452e3d4597a06c324be">it1_begin_</a>;
|
|
<a name="l02012"></a>02012 <a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> = 0;
|
|
<a name="l02013"></a>02013 }
|
|
<a name="l02014"></a>02014 }
|
|
<a name="l02015"></a>02015 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l02016"></a>02016 }
|
|
<a name="l02017"></a>02017 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02018"></a><a class="code" href="a00147.html#aa7d5b7d661e94292ec96449a93919308">02018</a> <a class="code" href="a00147.html">const_iterator2</a> &<a class="code" href="a00147.html#aa7d5b7d661e94292ec96449a93919308">operator -- </a>() {
|
|
<a name="l02019"></a>02019 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 0 || <a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">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="l02020"></a>02020 <span class="keywordflow">if</span> (<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 0) {
|
|
<a name="l02021"></a>02021 <span class="keywordflow">if</span> (<a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a> == <a class="code" href="a00147.html#acaab268ada603452e3d4597a06c324be">it1_begin_</a> && <a class="code" href="a00147.html#a0871c1687cfe2ee41bab95d1648d2146">begin_</a> == 1) {
|
|
<a name="l02022"></a>02022 <a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a> = <a class="code" href="a00147.html#ab4c0090b0f1a9dad72de080487723d5d">it2_end_</a>;
|
|
<a name="l02023"></a>02023 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a> != <a class="code" href="a00147.html#a0f44274bacf229b4cd1d7943b4031ebd">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="l02024"></a>02024 -- <a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a>;
|
|
<a name="l02025"></a>02025 <a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> = 1;
|
|
<a name="l02026"></a>02026 } <span class="keywordflow">else</span> {
|
|
<a name="l02027"></a>02027 -- <a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a>;
|
|
<a name="l02028"></a>02028 }
|
|
<a name="l02029"></a>02029 } <span class="keywordflow">else</span> <span class="comment">/* if (current_ == 1) */</span> {
|
|
<a name="l02030"></a>02030 <span class="keywordflow">if</span> (<a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a> == <a class="code" href="a00147.html#a0f44274bacf229b4cd1d7943b4031ebd">it2_begin_</a> && <a class="code" href="a00147.html#a0871c1687cfe2ee41bab95d1648d2146">begin_</a> == 0) {
|
|
<a name="l02031"></a>02031 <a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a> = <a class="code" href="a00147.html#a883909d2f5e36feb2ab169222241d20b">it1_end_</a>;
|
|
<a name="l02032"></a>02032 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a> != <a class="code" href="a00147.html#acaab268ada603452e3d4597a06c324be">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="l02033"></a>02033 -- <a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a>;
|
|
<a name="l02034"></a>02034 <a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> = 0;
|
|
<a name="l02035"></a>02035 } <span class="keywordflow">else</span> {
|
|
<a name="l02036"></a>02036 -- <a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a>;
|
|
<a name="l02037"></a>02037 }
|
|
<a name="l02038"></a>02038 }
|
|
<a name="l02039"></a>02039 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l02040"></a>02040 }
|
|
<a name="l02041"></a>02041 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02042"></a><a class="code" href="a00147.html#a5441acc040495250ffefa390c10f439f">02042</a> <a class="code" href="a00147.html">const_iterator2</a> &<a class="code" href="a00147.html#a5441acc040495250ffefa390c10f439f">operator += </a>(<a class="code" href="a00147.html#af54ccb00ba9bdbfb743af6686f4eb849">difference_type</a> n) {
|
|
<a name="l02043"></a>02043 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 0 || <a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">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="l02044"></a>02044 <span class="keywordflow">if</span> (<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 0) {
|
|
<a name="l02045"></a>02045 <a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> d = (std::min) (n, <a class="code" href="a00147.html#a883909d2f5e36feb2ab169222241d20b">it1_end_</a> - <a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a>);
|
|
<a name="l02046"></a>02046 <a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a> += d;
|
|
<a name="l02047"></a>02047 n -= d;
|
|
<a name="l02048"></a>02048 <span class="keywordflow">if</span> (n > 0 || (<a class="code" href="a00147.html#a3e30f30a13a7a5195c46f5b2ad7da1d6">end_</a> == 1 && <a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a> == <a class="code" href="a00147.html#a883909d2f5e36feb2ab169222241d20b">it1_end_</a>)) {
|
|
<a name="l02049"></a>02049 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00147.html#a3e30f30a13a7a5195c46f5b2ad7da1d6">end_</a> == 1, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l02050"></a>02050 d = (std::min) (n, <a class="code" href="a00147.html#ab4c0090b0f1a9dad72de080487723d5d">it2_end_</a> - <a class="code" href="a00147.html#a0f44274bacf229b4cd1d7943b4031ebd">it2_begin_</a>);
|
|
<a name="l02051"></a>02051 <a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a> = <a class="code" href="a00147.html#a0f44274bacf229b4cd1d7943b4031ebd">it2_begin_</a> + d;
|
|
<a name="l02052"></a>02052 n -= d;
|
|
<a name="l02053"></a>02053 <a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> = 1;
|
|
<a name="l02054"></a>02054 }
|
|
<a name="l02055"></a>02055 } <span class="keywordflow">else</span> <span class="comment">/* if (current_ == 1) */</span> {
|
|
<a name="l02056"></a>02056 <a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> d = (std::min) (n, <a class="code" href="a00147.html#ab4c0090b0f1a9dad72de080487723d5d">it2_end_</a> - <a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a>);
|
|
<a name="l02057"></a>02057 <a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a> += d;
|
|
<a name="l02058"></a>02058 n -= d;
|
|
<a name="l02059"></a>02059 <span class="keywordflow">if</span> (n > 0 || (<a class="code" href="a00147.html#a3e30f30a13a7a5195c46f5b2ad7da1d6">end_</a> == 0 && <a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a> == <a class="code" href="a00147.html#ab4c0090b0f1a9dad72de080487723d5d">it2_end_</a>)) {
|
|
<a name="l02060"></a>02060 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00147.html#a3e30f30a13a7a5195c46f5b2ad7da1d6">end_</a> == 0, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l02061"></a>02061 d = (std::min) (n, <a class="code" href="a00147.html#a883909d2f5e36feb2ab169222241d20b">it1_end_</a> - <a class="code" href="a00147.html#acaab268ada603452e3d4597a06c324be">it1_begin_</a>);
|
|
<a name="l02062"></a>02062 <a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a> = <a class="code" href="a00147.html#acaab268ada603452e3d4597a06c324be">it1_begin_</a> + d;
|
|
<a name="l02063"></a>02063 n -= d;
|
|
<a name="l02064"></a>02064 <a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> = 0;
|
|
<a name="l02065"></a>02065 }
|
|
<a name="l02066"></a>02066 }
|
|
<a name="l02067"></a>02067 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (n == 0, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l02068"></a>02068 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<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="a00147.html#a9307f2ed143f29073b0c17a71d3e7ebb">02071</a> <a class="code" href="a00147.html">const_iterator2</a> &<a class="code" href="a00147.html#a9307f2ed143f29073b0c17a71d3e7ebb">operator -= </a>(<a class="code" href="a00147.html#af54ccb00ba9bdbfb743af6686f4eb849">difference_type</a> n) {
|
|
<a name="l02072"></a>02072 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 0 || <a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">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="l02073"></a>02073 <span class="keywordflow">if</span> (<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 0) {
|
|
<a name="l02074"></a>02074 <a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> d = (std::min) (n, <a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a> - <a class="code" href="a00147.html#acaab268ada603452e3d4597a06c324be">it1_begin_</a>);
|
|
<a name="l02075"></a>02075 <a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a> -= d;
|
|
<a name="l02076"></a>02076 n -= d;
|
|
<a name="l02077"></a>02077 <span class="keywordflow">if</span> (n > 0) {
|
|
<a name="l02078"></a>02078 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00147.html#a3e30f30a13a7a5195c46f5b2ad7da1d6">end_</a> == 1, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l02079"></a>02079 d = (std::min) (n, <a class="code" href="a00147.html#ab4c0090b0f1a9dad72de080487723d5d">it2_end_</a> - <a class="code" href="a00147.html#a0f44274bacf229b4cd1d7943b4031ebd">it2_begin_</a>);
|
|
<a name="l02080"></a>02080 <a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a> = <a class="code" href="a00147.html#ab4c0090b0f1a9dad72de080487723d5d">it2_end_</a> - d;
|
|
<a name="l02081"></a>02081 n -= d;
|
|
<a name="l02082"></a>02082 <a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> = 1;
|
|
<a name="l02083"></a>02083 }
|
|
<a name="l02084"></a>02084 } <span class="keywordflow">else</span> <span class="comment">/* if (current_ == 1) */</span> {
|
|
<a name="l02085"></a>02085 <a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> d = (std::min) (n, <a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a> - <a class="code" href="a00147.html#a0f44274bacf229b4cd1d7943b4031ebd">it2_begin_</a>);
|
|
<a name="l02086"></a>02086 <a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a> -= d;
|
|
<a name="l02087"></a>02087 n -= d;
|
|
<a name="l02088"></a>02088 <span class="keywordflow">if</span> (n > 0) {
|
|
<a name="l02089"></a>02089 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00147.html#a3e30f30a13a7a5195c46f5b2ad7da1d6">end_</a> == 0, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l02090"></a>02090 d = (std::min) (n, <a class="code" href="a00147.html#a883909d2f5e36feb2ab169222241d20b">it1_end_</a> - <a class="code" href="a00147.html#acaab268ada603452e3d4597a06c324be">it1_begin_</a>);
|
|
<a name="l02091"></a>02091 <a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a> = <a class="code" href="a00147.html#a883909d2f5e36feb2ab169222241d20b">it1_end_</a> - d;
|
|
<a name="l02092"></a>02092 n -= d;
|
|
<a name="l02093"></a>02093 <a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> = 0;
|
|
<a name="l02094"></a>02094 }
|
|
<a name="l02095"></a>02095 }
|
|
<a name="l02096"></a>02096 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (n == 0, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l02097"></a>02097 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<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="a00147.html#aad31aad33befd066761fbfb2f8a10c17">02100</a> <a class="code" href="a00147.html#af54ccb00ba9bdbfb743af6686f4eb849">difference_type</a> <a class="code" href="a00147.html#aad31aad33befd066761fbfb2f8a10c17">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00147.html">const_iterator2</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l02101"></a>02101 <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="l02102"></a>02102 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 0 || <a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">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="l02103"></a>02103 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (it.<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 0 || it.<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">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="l02104"></a>02104 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<span class="comment">/* begin_ == it.begin_ && */</span> <a class="code" href="a00147.html#a3e30f30a13a7a5195c46f5b2ad7da1d6">end_</a> == it.<a class="code" href="a00147.html#a3e30f30a13a7a5195c46f5b2ad7da1d6">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="l02105"></a>02105 <span class="keywordflow">if</span> (<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 0 && it.<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 0) {
|
|
<a name="l02106"></a>02106 <span class="keywordflow">return</span> <a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a> - it.<a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a>;
|
|
<a name="l02107"></a>02107 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 0 && it.<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 1) {
|
|
<a name="l02108"></a>02108 <span class="keywordflow">if</span> (<a class="code" href="a00147.html#a3e30f30a13a7a5195c46f5b2ad7da1d6">end_</a> == 1 && it.<a class="code" href="a00147.html#a3e30f30a13a7a5195c46f5b2ad7da1d6">end_</a> == 1) {
|
|
<a name="l02109"></a>02109 <span class="keywordflow">return</span> (<a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a> - it.<a class="code" href="a00147.html#a883909d2f5e36feb2ab169222241d20b">it1_end_</a>) + (it.<a class="code" href="a00147.html#a0f44274bacf229b4cd1d7943b4031ebd">it2_begin_</a> - it.<a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a>);
|
|
<a name="l02110"></a>02110 } <span class="keywordflow">else</span> <span class="comment">/* if (end_ == 0 && it.end_ == 0) */</span> {
|
|
<a name="l02111"></a>02111 <span class="keywordflow">return</span> (<a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a> - it.<a class="code" href="a00147.html#acaab268ada603452e3d4597a06c324be">it1_begin_</a>) + (it.<a class="code" href="a00147.html#ab4c0090b0f1a9dad72de080487723d5d">it2_end_</a> - it.<a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a>);
|
|
<a name="l02112"></a>02112 }
|
|
<a name="l02113"></a>02113
|
|
<a name="l02114"></a>02114 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 1 && it.<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 0) {
|
|
<a name="l02115"></a>02115 <span class="keywordflow">if</span> (<a class="code" href="a00147.html#a3e30f30a13a7a5195c46f5b2ad7da1d6">end_</a> == 1 && it.<a class="code" href="a00147.html#a3e30f30a13a7a5195c46f5b2ad7da1d6">end_</a> == 1) {
|
|
<a name="l02116"></a>02116 <span class="keywordflow">return</span> (<a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a> - it.<a class="code" href="a00147.html#a0f44274bacf229b4cd1d7943b4031ebd">it2_begin_</a>) + (it.<a class="code" href="a00147.html#a883909d2f5e36feb2ab169222241d20b">it1_end_</a> - it.<a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a>);
|
|
<a name="l02117"></a>02117 } <span class="keywordflow">else</span> <span class="comment">/* if (end_ == 0 && it.end_ == 0) */</span> {
|
|
<a name="l02118"></a>02118 <span class="keywordflow">return</span> (<a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a> - it.<a class="code" href="a00147.html#ab4c0090b0f1a9dad72de080487723d5d">it2_end_</a>) + (it.<a class="code" href="a00147.html#acaab268ada603452e3d4597a06c324be">it1_begin_</a> - it.<a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a>);
|
|
<a name="l02119"></a>02119 }
|
|
<a name="l02120"></a>02120 } <span class="keywordflow">else</span> <span class="comment">/* if (current_ == 1 && it.current_ == 1) */</span> {
|
|
<a name="l02121"></a>02121 <span class="keywordflow">return</span> <a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a> - it.<a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a>;
|
|
<a name="l02122"></a>02122 }
|
|
<a name="l02123"></a>02123 }
|
|
<a name="l02124"></a>02124
|
|
<a name="l02125"></a>02125 <span class="comment">// Dereference</span>
|
|
<a name="l02126"></a>02126 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02127"></a><a class="code" href="a00147.html#ab3c020946b435f2269cc35ae591e7203">02127</a> <a class="code" href="a00145.html#a77227aeb1a2b3663cc1db3b45fcdbae5">const_reference</a> <a class="code" href="a00147.html#ab3c020946b435f2269cc35ae591e7203">operator * </a>()<span class="keyword"> const </span>{
|
|
<a name="l02128"></a>02128 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 0 || <a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">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="l02129"></a>02129 <span class="keywordflow">if</span> (<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 0) {
|
|
<a name="l02130"></a>02130 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a> != <a class="code" href="a00147.html#a883909d2f5e36feb2ab169222241d20b">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="l02131"></a>02131 <span class="keywordflow">if</span> (triangular_type::other (<a class="code" href="a00147.html#a3e78446614d7f6edc040245e042822c2">index1</a> (), <a class="code" href="a00147.html#a173aa4c22a36c1a82afc51c0b5a9c94b">index2</a> ()))
|
|
<a name="l02132"></a>02132 <span class="keywordflow">return</span> *<a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a>;
|
|
<a name="l02133"></a>02133 <span class="keywordflow">else</span>
|
|
<a name="l02134"></a>02134 <span class="keywordflow">return</span> <a class="code" href="a00595.html#a66f888cfb70f1e904e5c7ec1d1d6e514">type_traits<value_type>::conj</a> (*<a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a>);
|
|
<a name="l02135"></a>02135 } <span class="keywordflow">else</span> <span class="comment">/* if (current_ == 1) */</span> {
|
|
<a name="l02136"></a>02136 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a> != <a class="code" href="a00147.html#ab4c0090b0f1a9dad72de080487723d5d">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="l02137"></a>02137 <span class="keywordflow">if</span> (triangular_type::other (<a class="code" href="a00147.html#a3e78446614d7f6edc040245e042822c2">index1</a> (), <a class="code" href="a00147.html#a173aa4c22a36c1a82afc51c0b5a9c94b">index2</a> ()))
|
|
<a name="l02138"></a>02138 <span class="keywordflow">return</span> *<a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a>;
|
|
<a name="l02139"></a>02139 <span class="keywordflow">else</span>
|
|
<a name="l02140"></a>02140 <span class="keywordflow">return</span> <a class="code" href="a00595.html#a66f888cfb70f1e904e5c7ec1d1d6e514">type_traits<value_type>::conj</a> (*<a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a>);
|
|
<a name="l02141"></a>02141 }
|
|
<a name="l02142"></a>02142 }
|
|
<a name="l02143"></a>02143 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02144"></a><a class="code" href="a00147.html#a28e7a5063a492653256eff4abbe55b41">02144</a> <a class="code" href="a00145.html#a77227aeb1a2b3663cc1db3b45fcdbae5">const_reference</a> <a class="code" href="a00147.html#a28e7a5063a492653256eff4abbe55b41">operator [] </a>(<a class="code" href="a00147.html#af54ccb00ba9bdbfb743af6686f4eb849">difference_type</a> n)<span class="keyword"> const </span>{
|
|
<a name="l02145"></a>02145 <span class="keywordflow">return</span> *(*<span class="keyword">this</span> + n);
|
|
<a name="l02146"></a>02146 }
|
|
<a name="l02147"></a>02147
|
|
<a name="l02148"></a>02148 <span class="preprocessor">#ifndef BOOST_UBLAS_NO_NESTED_CLASS_RELATION</span>
|
|
<a name="l02149"></a>02149 <span class="preprocessor"></span> <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02150"></a>02150 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l02151"></a>02151 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a>::
|
|
<a name="l02152"></a>02152 <span class="preprocessor">#endif</span>
|
|
<a name="l02153"></a><a class="code" href="a00147.html#a6543a6b98c0bb19eb66b166d68b01a89">02153</a> <span class="preprocessor"></span> <a class="code" href="a00146.html">const_iterator1</a> <a class="code" href="a00147.html#a6543a6b98c0bb19eb66b166d68b01a89">begin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l02154"></a>02154 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00145.html#ad5ee7ca3e3fa0d51886ef48947ece6b1">find1</a> (1, 0, <a class="code" href="a00147.html#a173aa4c22a36c1a82afc51c0b5a9c94b">index2</a> ());
|
|
<a name="l02155"></a>02155 }
|
|
<a name="l02156"></a>02156 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02157"></a>02157 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l02158"></a>02158 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a>::
|
|
<a name="l02159"></a>02159 <span class="preprocessor">#endif</span>
|
|
<a name="l02160"></a><a class="code" href="a00147.html#aea696250f85198bc546a55c896722097">02160</a> <span class="preprocessor"></span> <a class="code" href="a00146.html">const_iterator1</a> <a class="code" href="a00147.html#aea696250f85198bc546a55c896722097">end</a> ()<span class="keyword"> const </span>{
|
|
<a name="l02161"></a>02161 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00145.html#ad5ee7ca3e3fa0d51886ef48947ece6b1">find1</a> (1, (*<span class="keyword">this</span>) ().<a class="code" href="a00145.html#a0f1a3c71c1ff3601fb0d1eca0e351d3b">size1</a> (), <a class="code" href="a00147.html#a173aa4c22a36c1a82afc51c0b5a9c94b">index2</a> ());
|
|
<a name="l02162"></a>02162 }
|
|
<a name="l02163"></a>02163 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02164"></a>02164 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l02165"></a>02165 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a>::
|
|
<a name="l02166"></a>02166 <span class="preprocessor">#endif</span>
|
|
<a name="l02167"></a><a class="code" href="a00147.html#a45d6db408cacf42b3dc4adeac39be0f6">02167</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="a00147.html#a45d6db408cacf42b3dc4adeac39be0f6">rbegin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l02168"></a>02168 <span class="keywordflow">return</span> <a class="code" href="a00145.html#a99f3f9cac35cbfa5bd1adf27b7f19f83">const_reverse_iterator1</a> (<a class="code" href="a00147.html#aea696250f85198bc546a55c896722097">end</a> ());
|
|
<a name="l02169"></a>02169 }
|
|
<a name="l02170"></a>02170 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02171"></a>02171 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l02172"></a>02172 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a>::
|
|
<a name="l02173"></a>02173 <span class="preprocessor">#endif</span>
|
|
<a name="l02174"></a><a class="code" href="a00147.html#ad504786aeff088d2945f950074dd5463">02174</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="a00147.html#ad504786aeff088d2945f950074dd5463">rend</a> ()<span class="keyword"> const </span>{
|
|
<a name="l02175"></a>02175 <span class="keywordflow">return</span> <a class="code" href="a00145.html#a99f3f9cac35cbfa5bd1adf27b7f19f83">const_reverse_iterator1</a> (<a class="code" href="a00147.html#a6543a6b98c0bb19eb66b166d68b01a89">begin</a> ());
|
|
<a name="l02176"></a>02176 }
|
|
<a name="l02177"></a>02177 <span class="preprocessor">#endif</span>
|
|
<a name="l02178"></a>02178 <span class="preprocessor"></span>
|
|
<a name="l02179"></a>02179 <span class="comment">// Indices</span>
|
|
<a name="l02180"></a>02180 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02181"></a><a class="code" href="a00147.html#a3e78446614d7f6edc040245e042822c2">02181</a> <a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> <a class="code" href="a00147.html#a3e78446614d7f6edc040245e042822c2">index1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l02182"></a>02182 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 0 || <a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">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="l02183"></a>02183 <span class="keywordflow">if</span> (<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 0) {
|
|
<a name="l02184"></a>02184 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a> != <a class="code" href="a00147.html#a883909d2f5e36feb2ab169222241d20b">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="l02185"></a>02185 <span class="keywordflow">return</span> <a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a>.index2 ();
|
|
<a name="l02186"></a>02186 } <span class="keywordflow">else</span> <span class="comment">/* if (current_ == 1) */</span> {
|
|
<a name="l02187"></a>02187 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a> != <a class="code" href="a00147.html#ab4c0090b0f1a9dad72de080487723d5d">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="l02188"></a>02188 <span class="keywordflow">return</span> <a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a>.index1 ();
|
|
<a name="l02189"></a>02189 }
|
|
<a name="l02190"></a>02190 }
|
|
<a name="l02191"></a>02191 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02192"></a><a class="code" href="a00147.html#a173aa4c22a36c1a82afc51c0b5a9c94b">02192</a> <a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> <a class="code" href="a00147.html#a173aa4c22a36c1a82afc51c0b5a9c94b">index2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l02193"></a>02193 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 0 || <a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">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="l02194"></a>02194 <span class="keywordflow">if</span> (<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 0) {
|
|
<a name="l02195"></a>02195 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a> != <a class="code" href="a00147.html#a883909d2f5e36feb2ab169222241d20b">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="l02196"></a>02196 <span class="keywordflow">return</span> <a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a>.index1 ();
|
|
<a name="l02197"></a>02197 } <span class="keywordflow">else</span> <span class="comment">/* if (current_ == 1) */</span> {
|
|
<a name="l02198"></a>02198 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a> != <a class="code" href="a00147.html#ab4c0090b0f1a9dad72de080487723d5d">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="l02199"></a>02199 <span class="keywordflow">return</span> <a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a>.index2 ();
|
|
<a name="l02200"></a>02200 }
|
|
<a name="l02201"></a>02201 }
|
|
<a name="l02202"></a>02202
|
|
<a name="l02203"></a>02203 <span class="comment">// Assignment</span>
|
|
<a name="l02204"></a>02204 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02205"></a><a class="code" href="a00147.html#a0ab66f54ba1cb193a86ee774f5ea9443">02205</a> <a class="code" href="a00147.html">const_iterator2</a> &<a class="code" href="a00147.html#a0ab66f54ba1cb193a86ee774f5ea9443">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00147.html">const_iterator2</a> &it) {
|
|
<a name="l02206"></a>02206 <a class="code" href="a00069.html#ab14250fc4fe5b9bcab4eb9fba8a5b5f8">container_const_reference<self_type>::assign</a> (&it ());
|
|
<a name="l02207"></a>02207 <a class="code" href="a00147.html#a0871c1687cfe2ee41bab95d1648d2146">begin_</a> = it.<a class="code" href="a00147.html#a0871c1687cfe2ee41bab95d1648d2146">begin_</a>;
|
|
<a name="l02208"></a>02208 <a class="code" href="a00147.html#a3e30f30a13a7a5195c46f5b2ad7da1d6">end_</a> = it.<a class="code" href="a00147.html#a3e30f30a13a7a5195c46f5b2ad7da1d6">end_</a>;
|
|
<a name="l02209"></a>02209 <a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> = it.<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a>;
|
|
<a name="l02210"></a>02210 <a class="code" href="a00147.html#acaab268ada603452e3d4597a06c324be">it1_begin_</a> = it.<a class="code" href="a00147.html#acaab268ada603452e3d4597a06c324be">it1_begin_</a>;
|
|
<a name="l02211"></a>02211 <a class="code" href="a00147.html#a883909d2f5e36feb2ab169222241d20b">it1_end_</a> = it.<a class="code" href="a00147.html#a883909d2f5e36feb2ab169222241d20b">it1_end_</a>;
|
|
<a name="l02212"></a>02212 <a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a> = it.<a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a>;
|
|
<a name="l02213"></a>02213 <a class="code" href="a00147.html#a0f44274bacf229b4cd1d7943b4031ebd">it2_begin_</a> = it.<a class="code" href="a00147.html#a0f44274bacf229b4cd1d7943b4031ebd">it2_begin_</a>;
|
|
<a name="l02214"></a>02214 <a class="code" href="a00147.html#ab4c0090b0f1a9dad72de080487723d5d">it2_end_</a> = it.<a class="code" href="a00147.html#ab4c0090b0f1a9dad72de080487723d5d">it2_end_</a>;
|
|
<a name="l02215"></a>02215 <a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a> = it.<a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a>;
|
|
<a name="l02216"></a>02216 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l02217"></a>02217 }
|
|
<a name="l02218"></a>02218
|
|
<a name="l02219"></a>02219 <span class="comment">// Comparison</span>
|
|
<a name="l02220"></a>02220 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02221"></a><a class="code" href="a00147.html#a1d0bf007a0438df6543f35f967fc746b">02221</a> <span class="keywordtype">bool</span> <a class="code" href="a00147.html#a1d0bf007a0438df6543f35f967fc746b">operator == </a>(<span class="keyword">const</span> <a class="code" href="a00147.html">const_iterator2</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l02222"></a>02222 <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="l02223"></a>02223 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 0 || <a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">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="l02224"></a>02224 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (it.<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 0 || it.<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">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="l02225"></a>02225 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<span class="comment">/* begin_ == it.begin_ && */</span> <a class="code" href="a00147.html#a3e30f30a13a7a5195c46f5b2ad7da1d6">end_</a> == it.<a class="code" href="a00147.html#a3e30f30a13a7a5195c46f5b2ad7da1d6">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="l02226"></a>02226 <span class="keywordflow">return</span> (<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 0 && it.<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 0 && <a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a> == it.<a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a>) ||
|
|
<a name="l02227"></a>02227 (<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 1 && it.<a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a> == 1 && <a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a> == it.<a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a>);
|
|
<a name="l02228"></a>02228 }
|
|
<a name="l02229"></a>02229 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02230"></a><a class="code" href="a00147.html#afded94020e2225ba60b61718b36530b7">02230</a> <span class="keywordtype">bool</span> <a class="code" href="a00147.html#afded94020e2225ba60b61718b36530b7">operator < </a>(<span class="keyword">const</span> <a class="code" href="a00147.html">const_iterator2</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l02231"></a>02231 <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="l02232"></a>02232 <span class="keywordflow">return</span> it - *<span class="keyword">this</span> > 0;
|
|
<a name="l02233"></a>02233 }
|
|
<a name="l02234"></a>02234
|
|
<a name="l02235"></a>02235 <span class="keyword">private</span>:
|
|
<a name="l02236"></a><a class="code" href="a00147.html#a0871c1687cfe2ee41bab95d1648d2146">02236</a> <span class="keywordtype">int</span> <a class="code" href="a00147.html#a0871c1687cfe2ee41bab95d1648d2146">begin_</a>;
|
|
<a name="l02237"></a><a class="code" href="a00147.html#a3e30f30a13a7a5195c46f5b2ad7da1d6">02237</a> <span class="keywordtype">int</span> <a class="code" href="a00147.html#a3e30f30a13a7a5195c46f5b2ad7da1d6">end_</a>;
|
|
<a name="l02238"></a><a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">02238</a> <span class="keywordtype">int</span> <a class="code" href="a00147.html#addb0435823a52d4c33172a3b32b40768">current_</a>;
|
|
<a name="l02239"></a><a class="code" href="a00147.html#acaab268ada603452e3d4597a06c324be">02239</a> <a class="code" href="a00145.html#ae32c96561b3c927bef1378ca9a429b7d">const_subiterator1_type</a> <a class="code" href="a00147.html#acaab268ada603452e3d4597a06c324be">it1_begin_</a>;
|
|
<a name="l02240"></a><a class="code" href="a00147.html#a883909d2f5e36feb2ab169222241d20b">02240</a> <a class="code" href="a00145.html#ae32c96561b3c927bef1378ca9a429b7d">const_subiterator1_type</a> <a class="code" href="a00147.html#a883909d2f5e36feb2ab169222241d20b">it1_end_</a>;
|
|
<a name="l02241"></a><a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">02241</a> <a class="code" href="a00145.html#ae32c96561b3c927bef1378ca9a429b7d">const_subiterator1_type</a> <a class="code" href="a00147.html#a0fc2222e5c96c81ebf117dbce40b3532">it1_</a>;
|
|
<a name="l02242"></a><a class="code" href="a00147.html#a0f44274bacf229b4cd1d7943b4031ebd">02242</a> <a class="code" href="a00145.html#a51ee0a44350af41401b0ff4cc3973802">const_subiterator2_type</a> <a class="code" href="a00147.html#a0f44274bacf229b4cd1d7943b4031ebd">it2_begin_</a>;
|
|
<a name="l02243"></a><a class="code" href="a00147.html#ab4c0090b0f1a9dad72de080487723d5d">02243</a> <a class="code" href="a00145.html#a51ee0a44350af41401b0ff4cc3973802">const_subiterator2_type</a> <a class="code" href="a00147.html#ab4c0090b0f1a9dad72de080487723d5d">it2_end_</a>;
|
|
<a name="l02244"></a><a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">02244</a> <a class="code" href="a00145.html#a51ee0a44350af41401b0ff4cc3973802">const_subiterator2_type</a> <a class="code" href="a00147.html#a569740d3a7c084898738e01e0ea5e6d5">it2_</a>;
|
|
<a name="l02245"></a>02245 };
|
|
<a name="l02246"></a>02246 <span class="preprocessor">#endif</span>
|
|
<a name="l02247"></a>02247 <span class="preprocessor"></span>
|
|
<a name="l02248"></a>02248 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02249"></a><a class="code" href="a00145.html#a874b54cbd31b4430ff13b76d4c34c0dd">02249</a> <a class="code" href="a00147.html">const_iterator2</a> <a class="code" href="a00145.html#a874b54cbd31b4430ff13b76d4c34c0dd">begin2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l02250"></a>02250 <span class="keywordflow">return</span> <a class="code" href="a00145.html#aac9d117fc187753fc1fe821314584646">find2</a> (0, 0, 0);
|
|
<a name="l02251"></a>02251 }
|
|
<a name="l02252"></a>02252 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02253"></a><a class="code" href="a00145.html#ae46c630188e470b9ae8cfb5aee83b78b">02253</a> <a class="code" href="a00147.html">const_iterator2</a> <a class="code" href="a00145.html#ae46c630188e470b9ae8cfb5aee83b78b">end2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l02254"></a>02254 <span class="keywordflow">return</span> <a class="code" href="a00145.html#aac9d117fc187753fc1fe821314584646">find2</a> (0, 0, <a class="code" href="a00145.html#a980d12364f40b8b1dcacef1a0bde5a6b">size2</a> ());
|
|
<a name="l02255"></a>02255 }
|
|
<a name="l02256"></a>02256
|
|
<a name="l02257"></a>02257 <span class="preprocessor">#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR</span>
|
|
<a name="l02258"></a><a class="code" href="a00149.html">02258</a> <span class="preprocessor"></span> <span class="keyword">class </span><a class="code" href="a00149.html">iterator2</a>:
|
|
<a name="l02259"></a>02259 <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><hermitian_adaptor>,
|
|
<a name="l02260"></a>02260 <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="l02261"></a>02261 typename subiterator2_type::iterator_category, packed_random_access_iterator_tag>::iterator_category,
|
|
<a name="l02262"></a>02262 iterator2, value_type> {
|
|
<a name="l02263"></a>02263 <span class="keyword">public</span>:
|
|
<a name="l02264"></a><a class="code" href="a00149.html#a57dd185b580d6660fc7109e36ca36d52">02264</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> subiterator2_type::value_type <a class="code" href="a00149.html#a57dd185b580d6660fc7109e36ca36d52">value_type</a>;
|
|
<a name="l02265"></a><a class="code" href="a00149.html#acc076266a5e9fc8bec17d4ec61094f4a">02265</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> subiterator2_type::difference_type <a class="code" href="a00149.html#acc076266a5e9fc8bec17d4ec61094f4a">difference_type</a>;
|
|
<a name="l02266"></a><a class="code" href="a00149.html#a0ccaf12f6b2bd39b8c455ca516cd5b31">02266</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> subiterator2_type::reference <a class="code" href="a00149.html#a0ccaf12f6b2bd39b8c455ca516cd5b31">reference</a>;
|
|
<a name="l02267"></a><a class="code" href="a00149.html#adcad95d6fdb0cab5b0b434e293b2cfcc">02267</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> subiterator2_type::pointer <a class="code" href="a00149.html#adcad95d6fdb0cab5b0b434e293b2cfcc">pointer</a>;
|
|
<a name="l02268"></a>02268
|
|
<a name="l02269"></a><a class="code" href="a00149.html#a34956790427d04511b8d87aece8bd09a">02269</a> <span class="keyword">typedef</span> <a class="code" href="a00148.html">iterator1</a> <a class="code" href="a00149.html#a34956790427d04511b8d87aece8bd09a">dual_iterator_type</a>;
|
|
<a name="l02270"></a><a class="code" href="a00149.html#a2376c1f1ead159ef8cbbbf06cf30aff2">02270</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="a00149.html#a2376c1f1ead159ef8cbbbf06cf30aff2">dual_reverse_iterator_type</a>;
|
|
<a name="l02271"></a>02271
|
|
<a name="l02272"></a>02272 <span class="comment">// Construction and destruction</span>
|
|
<a name="l02273"></a>02273 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02274"></a><a class="code" href="a00149.html#aff135f1ef6585d4d656dd424108ceb3b">02274</a> <a class="code" href="a00149.html#aff135f1ef6585d4d656dd424108ceb3b">iterator2</a> ():
|
|
<a name="l02275"></a>02275 <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="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a>> (), <a class="code" href="a00149.html#a66d3aecce46a057d6c4d0c3577d1e4ab">it2_</a> () {}
|
|
<a name="l02276"></a>02276 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02277"></a><a class="code" href="a00149.html#a47146034b51280653606c01c446f1734">02277</a> <a class="code" href="a00149.html#aff135f1ef6585d4d656dd424108ceb3b">iterator2</a> (<a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a> &m, <span class="keyword">const</span> <a class="code" href="a00145.html#a229e74db63c392df6d1792aa0009d1ed">subiterator2_type</a> &it2):
|
|
<a name="l02278"></a>02278 <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="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a>> (m), <a class="code" href="a00149.html#a66d3aecce46a057d6c4d0c3577d1e4ab">it2_</a> (it2) {}
|
|
<a name="l02279"></a>02279
|
|
<a name="l02280"></a>02280 <span class="comment">// Arithmetic</span>
|
|
<a name="l02281"></a>02281 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02282"></a><a class="code" href="a00149.html#a276b85a9b10368047b84a266d8775bd2">02282</a> <a class="code" href="a00149.html">iterator2</a> &<a class="code" href="a00149.html#a276b85a9b10368047b84a266d8775bd2">operator ++ </a>() {
|
|
<a name="l02283"></a>02283 ++ <a class="code" href="a00149.html#a66d3aecce46a057d6c4d0c3577d1e4ab">it2_</a>;
|
|
<a name="l02284"></a>02284 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l02285"></a>02285 }
|
|
<a name="l02286"></a>02286 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02287"></a><a class="code" href="a00149.html#ae5e10d8d901161b5574a5798af358c17">02287</a> <a class="code" href="a00149.html">iterator2</a> &<a class="code" href="a00149.html#ae5e10d8d901161b5574a5798af358c17">operator -- </a>() {
|
|
<a name="l02288"></a>02288 -- <a class="code" href="a00149.html#a66d3aecce46a057d6c4d0c3577d1e4ab">it2_</a>;
|
|
<a name="l02289"></a>02289 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l02290"></a>02290 }
|
|
<a name="l02291"></a>02291 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02292"></a><a class="code" href="a00149.html#aa2166b4b8477986dbd7b770d9d4c506a">02292</a> <a class="code" href="a00149.html">iterator2</a> &<a class="code" href="a00149.html#aa2166b4b8477986dbd7b770d9d4c506a">operator += </a>(<a class="code" href="a00149.html#acc076266a5e9fc8bec17d4ec61094f4a">difference_type</a> n) {
|
|
<a name="l02293"></a>02293 <a class="code" href="a00149.html#a66d3aecce46a057d6c4d0c3577d1e4ab">it2_</a> += n;
|
|
<a name="l02294"></a>02294 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l02295"></a>02295 }
|
|
<a name="l02296"></a>02296 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02297"></a><a class="code" href="a00149.html#a5e24a0f25f029b5c913884b3d6bef5fa">02297</a> <a class="code" href="a00149.html">iterator2</a> &<a class="code" href="a00149.html#a5e24a0f25f029b5c913884b3d6bef5fa">operator -= </a>(<a class="code" href="a00149.html#acc076266a5e9fc8bec17d4ec61094f4a">difference_type</a> n) {
|
|
<a name="l02298"></a>02298 <a class="code" href="a00149.html#a66d3aecce46a057d6c4d0c3577d1e4ab">it2_</a> -= n;
|
|
<a name="l02299"></a>02299 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l02300"></a>02300 }
|
|
<a name="l02301"></a>02301 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02302"></a><a class="code" href="a00149.html#a4e94a27a73191ce950364da7e9e56d39">02302</a> <a class="code" href="a00149.html#acc076266a5e9fc8bec17d4ec61094f4a">difference_type</a> <a class="code" href="a00149.html#a4e94a27a73191ce950364da7e9e56d39">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00149.html">iterator2</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l02303"></a>02303 <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="l02304"></a>02304 <span class="keywordflow">return</span> <a class="code" href="a00149.html#a66d3aecce46a057d6c4d0c3577d1e4ab">it2_</a> - it.<a class="code" href="a00149.html#a66d3aecce46a057d6c4d0c3577d1e4ab">it2_</a>;
|
|
<a name="l02305"></a>02305 }
|
|
<a name="l02306"></a>02306
|
|
<a name="l02307"></a>02307 <span class="comment">// Dereference</span>
|
|
<a name="l02308"></a>02308 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02309"></a><a class="code" href="a00149.html#a7e2f7a6f973f64bf5f90cab21a239de1">02309</a> <a class="code" href="a00149.html#a0ccaf12f6b2bd39b8c455ca516cd5b31">reference</a> <a class="code" href="a00149.html#a7e2f7a6f973f64bf5f90cab21a239de1">operator * </a>()<span class="keyword"> const </span>{
|
|
<a name="l02310"></a>02310 <span class="keywordflow">return</span> *<a class="code" href="a00149.html#a66d3aecce46a057d6c4d0c3577d1e4ab">it2_</a>;
|
|
<a name="l02311"></a>02311 }
|
|
<a name="l02312"></a>02312 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02313"></a><a class="code" href="a00149.html#a5ec75563ce623d08ff0807aa2df648cc">02313</a> <a class="code" href="a00149.html#a0ccaf12f6b2bd39b8c455ca516cd5b31">reference</a> <a class="code" href="a00149.html#a5ec75563ce623d08ff0807aa2df648cc">operator [] </a>(<a class="code" href="a00149.html#acc076266a5e9fc8bec17d4ec61094f4a">difference_type</a> n)<span class="keyword"> const </span>{
|
|
<a name="l02314"></a>02314 <span class="keywordflow">return</span> *(*<span class="keyword">this</span> + n);
|
|
<a name="l02315"></a>02315 }
|
|
<a name="l02316"></a>02316
|
|
<a name="l02317"></a>02317 <span class="preprocessor">#ifndef BOOST_UBLAS_NO_NESTED_CLASS_RELATION</span>
|
|
<a name="l02318"></a>02318 <span class="preprocessor"></span> <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02319"></a>02319 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l02320"></a>02320 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a>::
|
|
<a name="l02321"></a>02321 <span class="preprocessor">#endif</span>
|
|
<a name="l02322"></a><a class="code" href="a00149.html#a66cba1809491e39802f3de126d2ff265">02322</a> <span class="preprocessor"></span> <a class="code" href="a00148.html">iterator1</a> <a class="code" href="a00149.html#a66cba1809491e39802f3de126d2ff265">begin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l02323"></a>02323 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00145.html#ad5ee7ca3e3fa0d51886ef48947ece6b1">find1</a> (1, 0, <a class="code" href="a00149.html#a9e2cc0315bc430d40d4cbf1610984dfa">index2</a> ());
|
|
<a name="l02324"></a>02324 }
|
|
<a name="l02325"></a>02325 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02326"></a>02326 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l02327"></a>02327 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a>::
|
|
<a name="l02328"></a>02328 <span class="preprocessor">#endif</span>
|
|
<a name="l02329"></a><a class="code" href="a00149.html#a92821247938c107f6372e6c4ce464cb4">02329</a> <span class="preprocessor"></span> <a class="code" href="a00148.html">iterator1</a> <a class="code" href="a00149.html#a92821247938c107f6372e6c4ce464cb4">end</a> ()<span class="keyword"> const </span>{
|
|
<a name="l02330"></a>02330 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().<a class="code" href="a00145.html#ad5ee7ca3e3fa0d51886ef48947ece6b1">find1</a> (1, (*<span class="keyword">this</span>) ().<a class="code" href="a00145.html#a0f1a3c71c1ff3601fb0d1eca0e351d3b">size1</a> (), <a class="code" href="a00149.html#a9e2cc0315bc430d40d4cbf1610984dfa">index2</a> ());
|
|
<a name="l02331"></a>02331 }
|
|
<a name="l02332"></a>02332 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02333"></a>02333 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l02334"></a>02334 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a>::
|
|
<a name="l02335"></a>02335 <span class="preprocessor">#endif</span>
|
|
<a name="l02336"></a><a class="code" href="a00149.html#af45f4eaf91fb2b3d219acfbf11699ee1">02336</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="a00149.html#af45f4eaf91fb2b3d219acfbf11699ee1">rbegin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l02337"></a>02337 <span class="keywordflow">return</span> <a class="code" href="a00145.html#ab111a0b7967a83f9985dc4a0d906b254">reverse_iterator1</a> (<a class="code" href="a00149.html#a92821247938c107f6372e6c4ce464cb4">end</a> ());
|
|
<a name="l02338"></a>02338 }
|
|
<a name="l02339"></a>02339 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02340"></a>02340 <span class="preprocessor">#ifdef BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION</span>
|
|
<a name="l02341"></a>02341 <span class="preprocessor"></span> <span class="keyword">typename</span> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">self_type</a>::
|
|
<a name="l02342"></a>02342 <span class="preprocessor">#endif</span>
|
|
<a name="l02343"></a><a class="code" href="a00149.html#a2c6fa48f27393ef05716a391f057feee">02343</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="a00149.html#a2c6fa48f27393ef05716a391f057feee">rend</a> ()<span class="keyword"> const </span>{
|
|
<a name="l02344"></a>02344 <span class="keywordflow">return</span> <a class="code" href="a00145.html#ab111a0b7967a83f9985dc4a0d906b254">reverse_iterator1</a> (<a class="code" href="a00149.html#a66cba1809491e39802f3de126d2ff265">begin</a> ());
|
|
<a name="l02345"></a>02345 }
|
|
<a name="l02346"></a>02346 <span class="preprocessor">#endif</span>
|
|
<a name="l02347"></a>02347 <span class="preprocessor"></span>
|
|
<a name="l02348"></a>02348 <span class="comment">// Indices</span>
|
|
<a name="l02349"></a>02349 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02350"></a><a class="code" href="a00149.html#a73be851211803699139a4b225f70f35e">02350</a> <a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> <a class="code" href="a00149.html#a73be851211803699139a4b225f70f35e">index1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l02351"></a>02351 <span class="keywordflow">return</span> <a class="code" href="a00149.html#a66d3aecce46a057d6c4d0c3577d1e4ab">it2_</a>.index1 ();
|
|
<a name="l02352"></a>02352 }
|
|
<a name="l02353"></a>02353 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02354"></a><a class="code" href="a00149.html#a9e2cc0315bc430d40d4cbf1610984dfa">02354</a> <a class="code" href="a00145.html#a139f126355e5933b2c696cddb6aa18f9">size_type</a> <a class="code" href="a00149.html#a9e2cc0315bc430d40d4cbf1610984dfa">index2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l02355"></a>02355 <span class="keywordflow">return</span> <a class="code" href="a00149.html#a66d3aecce46a057d6c4d0c3577d1e4ab">it2_</a>.index2 ();
|
|
<a name="l02356"></a>02356 }
|
|
<a name="l02357"></a>02357
|
|
<a name="l02358"></a>02358 <span class="comment">// Assignment</span>
|
|
<a name="l02359"></a>02359 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02360"></a><a class="code" href="a00149.html#ac86716004c1f3de23929ecff8c353e67">02360</a> <a class="code" href="a00149.html">iterator2</a> &<a class="code" href="a00149.html#ac86716004c1f3de23929ecff8c353e67">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00149.html">iterator2</a> &it) {
|
|
<a name="l02361"></a>02361 <a class="code" href="a00070.html#a8ee5b7e2ac6a45d59e4873df582a02b2">container_reference<self_type>::assign</a> (&it ());
|
|
<a name="l02362"></a>02362 <a class="code" href="a00149.html#a66d3aecce46a057d6c4d0c3577d1e4ab">it2_</a> = it.<a class="code" href="a00149.html#a66d3aecce46a057d6c4d0c3577d1e4ab">it2_</a>;
|
|
<a name="l02363"></a>02363 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l02364"></a>02364 }
|
|
<a name="l02365"></a>02365
|
|
<a name="l02366"></a>02366 <span class="comment">// Comparison</span>
|
|
<a name="l02367"></a>02367 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02368"></a><a class="code" href="a00149.html#ae752edd7315e76b017b8b7ee4378312f">02368</a> <span class="keywordtype">bool</span> <a class="code" href="a00149.html#ae752edd7315e76b017b8b7ee4378312f">operator == </a>(<span class="keyword">const</span> <a class="code" href="a00149.html">iterator2</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l02369"></a>02369 <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="l02370"></a>02370 <span class="keywordflow">return</span> <a class="code" href="a00149.html#a66d3aecce46a057d6c4d0c3577d1e4ab">it2_</a> == it.<a class="code" href="a00149.html#a66d3aecce46a057d6c4d0c3577d1e4ab">it2_</a>;
|
|
<a name="l02371"></a>02371 }
|
|
<a name="l02372"></a>02372 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02373"></a><a class="code" href="a00149.html#a9736f83fdf5441df7b51e2d478341cf7">02373</a> <span class="keywordtype">bool</span> <a class="code" href="a00149.html#a9736f83fdf5441df7b51e2d478341cf7">operator < </a>(<span class="keyword">const</span> <a class="code" href="a00149.html">iterator2</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l02374"></a>02374 <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="l02375"></a>02375 <span class="keywordflow">return</span> <a class="code" href="a00149.html#a66d3aecce46a057d6c4d0c3577d1e4ab">it2_</a> < it.<a class="code" href="a00149.html#a66d3aecce46a057d6c4d0c3577d1e4ab">it2_</a>;
|
|
<a name="l02376"></a>02376 }
|
|
<a name="l02377"></a>02377
|
|
<a name="l02378"></a>02378 <span class="keyword">private</span>:
|
|
<a name="l02379"></a><a class="code" href="a00149.html#a66d3aecce46a057d6c4d0c3577d1e4ab">02379</a> <a class="code" href="a00145.html#a229e74db63c392df6d1792aa0009d1ed">subiterator2_type</a> <a class="code" href="a00149.html#a66d3aecce46a057d6c4d0c3577d1e4ab">it2_</a>;
|
|
<a name="l02380"></a>02380
|
|
<a name="l02381"></a><a class="code" href="a00149.html#aac78e9ee2b65e927cfcd66579833084f">02381</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="a00147.html">const_iterator2</a>;
|
|
<a name="l02382"></a>02382 };
|
|
<a name="l02383"></a>02383 <span class="preprocessor">#endif</span>
|
|
<a name="l02384"></a>02384 <span class="preprocessor"></span>
|
|
<a name="l02385"></a>02385 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02386"></a><a class="code" href="a00145.html#a048e47f3a926187cf3322d85061960b5">02386</a> <a class="code" href="a00149.html">iterator2</a> <a class="code" href="a00145.html#a048e47f3a926187cf3322d85061960b5">begin2</a> () {
|
|
<a name="l02387"></a>02387 <span class="keywordflow">return</span> <a class="code" href="a00145.html#aac9d117fc187753fc1fe821314584646">find2</a> (0, 0, 0);
|
|
<a name="l02388"></a>02388 }
|
|
<a name="l02389"></a>02389 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02390"></a><a class="code" href="a00145.html#a3867ad956c26786ae5fe0a87eab1c63c">02390</a> <a class="code" href="a00149.html">iterator2</a> <a class="code" href="a00145.html#a3867ad956c26786ae5fe0a87eab1c63c">end2</a> () {
|
|
<a name="l02391"></a>02391 <span class="keywordflow">return</span> <a class="code" href="a00145.html#aac9d117fc187753fc1fe821314584646">find2</a> (0, 0, <a class="code" href="a00145.html#a980d12364f40b8b1dcacef1a0bde5a6b">size2</a> ());
|
|
<a name="l02392"></a>02392 }
|
|
<a name="l02393"></a>02393
|
|
<a name="l02394"></a>02394 <span class="comment">// Reverse iterators</span>
|
|
<a name="l02395"></a>02395
|
|
<a name="l02396"></a>02396 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02397"></a><a class="code" href="a00145.html#ab27db0c29e7ef09e940b4339bd4f6d20">02397</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="a00145.html#ab27db0c29e7ef09e940b4339bd4f6d20">rbegin1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l02398"></a>02398 <span class="keywordflow">return</span> <a class="code" href="a00145.html#a99f3f9cac35cbfa5bd1adf27b7f19f83">const_reverse_iterator1</a> (<a class="code" href="a00145.html#a0a3b69a965bc9b0de347d1753a32b27b">end1</a> ());
|
|
<a name="l02399"></a>02399 }
|
|
<a name="l02400"></a>02400 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02401"></a><a class="code" href="a00145.html#af36bab98633e3d812b515139f1910c3f">02401</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="a00145.html#af36bab98633e3d812b515139f1910c3f">rend1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l02402"></a>02402 <span class="keywordflow">return</span> <a class="code" href="a00145.html#a99f3f9cac35cbfa5bd1adf27b7f19f83">const_reverse_iterator1</a> (<a class="code" href="a00145.html#ab9657ba0d41cd940f9f556b6c20c4bfc">begin1</a> ());
|
|
<a name="l02403"></a>02403 }
|
|
<a name="l02404"></a>02404
|
|
<a name="l02405"></a>02405 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02406"></a><a class="code" href="a00145.html#a6dda3def063268bfe8e5f0064ed59149">02406</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="a00145.html#a6dda3def063268bfe8e5f0064ed59149">rbegin1</a> () {
|
|
<a name="l02407"></a>02407 <span class="keywordflow">return</span> <a class="code" href="a00145.html#ab111a0b7967a83f9985dc4a0d906b254">reverse_iterator1</a> (<a class="code" href="a00145.html#a0a3b69a965bc9b0de347d1753a32b27b">end1</a> ());
|
|
<a name="l02408"></a>02408 }
|
|
<a name="l02409"></a>02409 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02410"></a><a class="code" href="a00145.html#a266b75b89c6dc955af90c1edd4b5702e">02410</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="a00145.html#a266b75b89c6dc955af90c1edd4b5702e">rend1</a> () {
|
|
<a name="l02411"></a>02411 <span class="keywordflow">return</span> <a class="code" href="a00145.html#ab111a0b7967a83f9985dc4a0d906b254">reverse_iterator1</a> (<a class="code" href="a00145.html#ab9657ba0d41cd940f9f556b6c20c4bfc">begin1</a> ());
|
|
<a name="l02412"></a>02412 }
|
|
<a name="l02413"></a>02413
|
|
<a name="l02414"></a>02414 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02415"></a><a class="code" href="a00145.html#a31cb9d6e1ba87e791e39ec20c3e53aaf">02415</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="a00145.html#a31cb9d6e1ba87e791e39ec20c3e53aaf">rbegin2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l02416"></a>02416 <span class="keywordflow">return</span> <a class="code" href="a00145.html#a72e0f2d26a6fe0fc82e71e0cee45c312">const_reverse_iterator2</a> (<a class="code" href="a00145.html#ae46c630188e470b9ae8cfb5aee83b78b">end2</a> ());
|
|
<a name="l02417"></a>02417 }
|
|
<a name="l02418"></a>02418 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02419"></a><a class="code" href="a00145.html#adda5e35274bafffaa0e51060d3c10e65">02419</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="a00145.html#adda5e35274bafffaa0e51060d3c10e65">rend2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l02420"></a>02420 <span class="keywordflow">return</span> <a class="code" href="a00145.html#a72e0f2d26a6fe0fc82e71e0cee45c312">const_reverse_iterator2</a> (<a class="code" href="a00145.html#a874b54cbd31b4430ff13b76d4c34c0dd">begin2</a> ());
|
|
<a name="l02421"></a>02421 }
|
|
<a name="l02422"></a>02422
|
|
<a name="l02423"></a>02423 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02424"></a><a class="code" href="a00145.html#abf5263f20d61bbdebd85f96505839378">02424</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="a00145.html#abf5263f20d61bbdebd85f96505839378">rbegin2</a> () {
|
|
<a name="l02425"></a>02425 <span class="keywordflow">return</span> <a class="code" href="a00145.html#a0baa32c488fecfea40d1ae60f5f1c533">reverse_iterator2</a> (<a class="code" href="a00145.html#ae46c630188e470b9ae8cfb5aee83b78b">end2</a> ());
|
|
<a name="l02426"></a>02426 }
|
|
<a name="l02427"></a>02427 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l02428"></a><a class="code" href="a00145.html#a909532c35ffb87bfb5661dd6e3eaf23a">02428</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="a00145.html#a909532c35ffb87bfb5661dd6e3eaf23a">rend2</a> () {
|
|
<a name="l02429"></a>02429 <span class="keywordflow">return</span> <a class="code" href="a00145.html#a0baa32c488fecfea40d1ae60f5f1c533">reverse_iterator2</a> (<a class="code" href="a00145.html#a874b54cbd31b4430ff13b76d4c34c0dd">begin2</a> ());
|
|
<a name="l02430"></a>02430 }
|
|
<a name="l02431"></a>02431
|
|
<a name="l02432"></a>02432 <span class="keyword">private</span>:
|
|
<a name="l02433"></a><a class="code" href="a00145.html#a15ed283abf6f96a2eba94be2d25dde83">02433</a> <a class="code" href="a00145.html#ac3c37633992c83b4ab9f3cadcf52395a">matrix_closure_type</a> <a class="code" href="a00145.html#a15ed283abf6f96a2eba94be2d25dde83">data_</a>;
|
|
<a name="l02434"></a><a class="code" href="a00145.html#adaecc492127df642011f4c1b10a0e4a4">02434</a> <span class="keyword">static</span> <a class="code" href="a00145.html#a83f172ce6cfcf9132c5eb7818c9a6e01">value_type</a> <a class="code" href="a00145.html#adaecc492127df642011f4c1b10a0e4a4">conj_</a>;
|
|
<a name="l02435"></a>02435 };
|
|
<a name="l02436"></a>02436
|
|
<a name="l02437"></a>02437 <span class="keyword">template</span><<span class="keyword">class</span> M, <span class="keyword">class</span> TRI>
|
|
<a name="l02438"></a>02438 <span class="keyword">typename</span> <a class="code" href="a00145.html#a83f172ce6cfcf9132c5eb7818c9a6e01">hermitian_adaptor<M, TRI>::value_type</a> <a class="code" href="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">hermitian_adaptor<M, TRI>::conj_</a>;
|
|
<a name="l02439"></a>02439
|
|
<a name="l02440"></a>02440 <span class="comment">// Specialization for temporary_traits</span>
|
|
<a name="l02441"></a>02441 <span class="keyword">template</span> <<span class="keyword">class</span> M, <span class="keyword">class</span> TRI>
|
|
<a name="l02442"></a><a class="code" href="a00565.html">02442</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="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">hermitian_adaptor</a><M, TRI> >
|
|
<a name="l02443"></a>02443 : <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="l02444"></a>02444 <span class="keyword">template</span> <<span class="keyword">class</span> M, <span class="keyword">class</span> TRI>
|
|
<a name="l02445"></a><a class="code" href="a00551.html">02445</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="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">hermitian_adaptor</a><M, TRI> >
|
|
<a name="l02446"></a>02446 : <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="l02447"></a>02447
|
|
<a name="l02448"></a>02448 <span class="keyword">template</span> <<span class="keyword">class</span> M, <span class="keyword">class</span> TRI>
|
|
<a name="l02449"></a><a class="code" href="a00300.html">02449</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="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">hermitian_adaptor</a><M, TRI> >
|
|
<a name="l02450"></a>02450 : <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="l02451"></a>02451 <span class="keyword">template</span> <<span class="keyword">class</span> M, <span class="keyword">class</span> TRI>
|
|
<a name="l02452"></a><a class="code" href="a00294.html">02452</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="a00145.html" title="A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.">hermitian_adaptor</a><M, TRI> >
|
|
<a name="l02453"></a>02453 : <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="l02454"></a>02454
|
|
<a name="l02455"></a>02455 }}}
|
|
<a name="l02456"></a>02456
|
|
<a name="l02457"></a>02457 <span class="preprocessor">#endif</span>
|
|
</pre></div></div>
|
|
</div>
|
|
<div id="nav-path" class="navpath">
|
|
<ul>
|
|
<li class="navelem"><a class="el" href="a00614.html">hermitian.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>
|