⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 matsupsub_8hpp-source.html

📁 Bayes滤波器算法C++类说明文档,源码见Bayes滤波器算法
💻 HTML
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>Bayes++ Bayesian Filtering Classes: matSupSub.hpp Source File</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.3.2 --><div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Compound&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Compound&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div><h1>matSupSub.hpp</h1><a href="matSupSub_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/*</span>00002 <span class="comment"> * Bayes++ the Bayesian Filtering Library</span>00003 <span class="comment"> * Copyright (c) 2002 Michael Stevens</span>00004 <span class="comment"> * See accompanying Bayes++.htm for terms and conditions of use.</span>00005 <span class="comment"> *</span>00006 <span class="comment"> * $Header: /cvsroot/bayesclasses/Bayes++/BayesFilter/matSupSub.hpp,v 1.14.2.1 2004/02/11 21:06:42 mistevens Exp $</span>00007 <span class="comment"> * $NoKeywords: $</span>00008 <span class="comment"> */</span>00009 00010 <span class="comment">/*</span>00011 <span class="comment"> * Matrix types for filter classes</span>00012 <span class="comment"> *  Provides the predefined type 'Vec' and a variety of 'Matrix' types</span>00013 <span class="comment"> *  Replace this header to substitute alternative matrix support</span>00014 <span class="comment"> *</span>00015 <span class="comment"> * Everything in namespace Bayes_filter_matrix is intended to support the matrix storage</span>00016 <span class="comment"> * and algebra requirements of the library. Therefore the interfaces and implementation is</span>00017 <span class="comment"> * not intended to be stable.</span>00018 <span class="comment"> */</span>00019 00020 <span class="comment">/*</span>00021 <span class="comment"> * Use the Boost uBLAS Basic Linear Algebra library</span>00022 <span class="comment"> * That is boost::numeric::ublas</span>00023 <span class="comment"> *  Thanks to Joerg Walter and Mathias Koch for an excellent library!</span>00024 <span class="comment"> *</span>00025 <span class="comment"> * Gappy matrix support: The macros BAYES_FILTER_(SPARSE/COMPRESSED/COORDINATE) control experimental gappy matrix support</span>00026 <span class="comment"> * When enabled the default storage types are replaced with their sparse equivilents</span>00027 <span class="comment"> *</span>00028 <span class="comment"> * ISSUE: Element proxies.</span>00029 <span class="comment"> *  Element proxies have a colourful history!</span>00030 <span class="comment"> *  As of Boost 1.30.0 they do not allow assignment of elements between mixed types.</span>00031 <span class="comment"> *  They do not work with gcc-3.3. The order of expression temporary distruction overrights previous changes. They must be disabled.</span>00032 <span class="comment"> *  The sparse support in Bayes++ does not require element proxies.</span>00033 <span class="comment"> *  Define BOOST_UBLAS_NO_ELEMENT_PROXIES to disable them.</span>00034 <span class="comment"> */</span>00035 00036 <span class="preprocessor">#include &lt;boost/version.hpp&gt;</span>00037 <span class="preprocessor">#if !(BOOST_VERSION &gt;= 103000)</span>00038 <span class="preprocessor"></span><span class="preprocessor">#error Requires Boost 1.30.0 or later</span>00039 <span class="preprocessor"></span><span class="preprocessor">#endif</span>00040 <span class="preprocessor"></span>00041 <span class="preprocessor">#include &lt;boost/numeric/ublas/vector.hpp&gt;</span>00042 <span class="preprocessor">#include &lt;boost/numeric/ublas/matrix.hpp&gt;</span>00043 <span class="preprocessor">#include &lt;boost/numeric/ublas/symmetric.hpp&gt;</span>00044 <span class="preprocessor">#include &lt;boost/numeric/ublas/triangular.hpp&gt;</span>00045 <span class="preprocessor">#include &lt;boost/numeric/ublas/banded.hpp&gt;</span>00046 <span class="preprocessor">#if defined(BAYES_FILTER_SPARSE) || defined(BAYES_FILTER_COMPRESSED) || defined(BAYES_FILTER_COORDINATE)</span>00047 <span class="preprocessor"></span><span class="preprocessor">#include &lt;map&gt;</span>00048 <span class="preprocessor">#include &lt;boost/numeric/ublas/vector_sparse.hpp&gt;</span>00049 <span class="preprocessor">#include &lt;boost/numeric/ublas/matrix_sparse.hpp&gt;</span>00050 <span class="preprocessor">#define BAYES_FILTER_GAPPY</span>00051 <span class="preprocessor"></span><span class="preprocessor">#endif</span>00052 <span class="preprocessor"></span>00053 00054 00055 <span class="comment">/* Filter Matrix Namespace */</span>00056 <span class="keyword">namespace </span>Bayesian_filter_matrix00057 {00058                         <span class="comment">// Allow use of a local ublas namespace</span>00059 <span class="keyword">namespace </span>ublas = boost::numeric::ublas;00060 00061 <span class="comment">/*</span>00062 <span class="comment"> * Declare the value used for ALL linear algebra operations</span>00063 <span class="comment"> * Also required as the matrix/vector container value_type</span>00064 <span class="comment"> */</span><a name="l00065"></a><a class="code" href="namespaceBayesian__filter__matrix.html#a0">00065</a> <span class="keyword">typedef</span> <span class="keywordtype">double</span> <a class="code" href="namespaceBayesian__filter__matrix.html#a0">Float</a>;00066 00067 <span class="comment">/*</span>00068 <span class="comment"> * uBlas base types - these will be wrapper to provide the actual vector and matrix types</span>00069 <span class="comment"> *  Symmetric types don't appear. They are defined later by adapting these base types</span>00070 <span class="comment"> */</span><a name="l00071"></a><a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html">00071</a> <span class="keyword">namespace </span>detail {00072                             <span class="comment">// Dense types</span><a name="l00073"></a><a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a0">00073</a> <span class="keyword">typedef</span> ublas::vector&lt;Float&gt; <a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a0">BaseDenseVector</a>;<a name="l00074"></a><a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a1">00074</a> <span class="keyword">typedef</span> ublas::matrix&lt;Float, ublas::row_major&gt; <a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a1">BaseDenseRowMatrix</a>;<a name="l00075"></a><a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a2">00075</a> <span class="keyword">typedef</span> ublas::matrix&lt;Float, ublas::column_major&gt; <a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a2">BaseDenseColMatrix</a>;<a name="l00076"></a><a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a3">00076</a> <span class="keyword">typedef</span> ublas::triangular_matrix&lt;Float, ublas::upper, ublas::row_major&gt; <a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a3">BaseDenseUpperTriMatrix</a>;<a name="l00077"></a><a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a4">00077</a> <span class="keyword">typedef</span> ublas::triangular_matrix&lt;Float, ublas::lower, ublas::row_major&gt; <a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a4">BaseDenseLowerTriMatrix</a>;<a name="l00078"></a><a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a5">00078</a> <span class="keyword">typedef</span> ublas::banded_matrix&lt;Float&gt; <a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a5">BaseDenseDiagMatrix</a>;00079                             <span class="comment">// Sparse types</span>00080 <span class="preprocessor">#if defined(BAYES_FILTER_SPARSE)</span>00081 <span class="preprocessor"></span><span class="keyword">typedef</span> ublas::sparse_vector&lt;Float, std::map&lt;size_t,Float&gt; &gt; BaseSparseVector;00082 <span class="keyword">typedef</span> ublas::sparse_matrix&lt;Float, ublas::row_major, std::map&lt;size_t,Float&gt; &gt; BaseSparseRowMatrix;00083 <span class="keyword">typedef</span> ublas::sparse_matrix&lt;Float, ublas::column_major, std::map&lt;size_t,Float&gt; &gt; BaseSparseColMatrix;00084                             <span class="comment">// OR Compressed types</span>00085 <span class="preprocessor">#elif defined(BAYES_FILTER_COMPRESSED)</span>00086 <span class="preprocessor"></span><span class="keyword">typedef</span> ublas::compressed_vector&lt;Float&gt; BaseSparseVector;00087 <span class="keyword">typedef</span> ublas::compressed_matrix&lt;Float, ublas::row_major&gt; BaseSparseRowMatrix;00088 <span class="keyword">typedef</span> ublas::compressed_matrix&lt;Float, ublas::column_major&gt; BaseSparseColMatrix;00089                             <span class="comment">// OR Coordinate types</span>00090 <span class="preprocessor">#elif defined(BAYES_FILTER_COORDINATE)</span>00091 <span class="preprocessor"></span><span class="keyword">typedef</span> ublas::coordinate_vector&lt;Float&gt; BaseSparseVector;00092 <span class="keyword">typedef</span> ublas::coordinate_matrix&lt;Float, ublas::row_major&gt; BaseSparseRowMatrix;00093 <span class="keyword">typedef</span> ublas::coordinate_matrix&lt;Float, ublas::column_major&gt; BaseSparseColMatrix;00094 <span class="preprocessor">#endif</span>00095 <span class="preprocessor"></span>00096                             <span class="comment">// Default types Dense or Gappy</span>00097 <span class="preprocessor">#ifndef BAYES_FILTER_GAPPY</span><a name="l00098"></a><a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a6">00098</a> <span class="preprocessor"></span><span class="keyword">typedef</span> <a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a0">BaseDenseVector</a> <a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a6">BaseVector</a>;<a name="l00099"></a><a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a7">00099</a> <span class="keyword">typedef</span> <a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a1">BaseDenseRowMatrix</a> <a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a7">BaseRowMatrix</a>;<a name="l00100"></a><a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a8">00100</a> <span class="keyword">typedef</span> <a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a2">BaseDenseColMatrix</a> <a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a8">BaseColMatrix</a>;<a name="l00101"></a><a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a9">00101</a> <span class="keyword">typedef</span> <a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a3">BaseDenseUpperTriMatrix</a> <a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a9">BaseUpperTriMatrix</a>;<a name="l00102"></a><a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a10">00102</a> <span class="keyword">typedef</span> <a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a4">BaseDenseLowerTriMatrix</a> <a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a10">BaseLowerTriMatrix</a>;<a name="l00103"></a><a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a11">00103</a> <span class="keyword">typedef</span> <a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a5">BaseDenseDiagMatrix</a> <a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a11">BaseDiagMatrix</a>;00104 <span class="preprocessor">#else</span>00105 <span class="preprocessor"></span><span class="keyword">typedef</span> BaseSparseVector <a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a6">BaseVector</a>;00106 <span class="keyword">typedef</span> BaseSparseRowMatrix <a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a7">BaseRowMatrix</a>;00107 <span class="keyword">typedef</span> BaseSparseColMatrix <a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a8">BaseColMatrix</a>;00108 <span class="keyword">typedef</span> <a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a3">BaseDenseUpperTriMatrix</a> <a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a9">BaseUpperTriMatrix</a>;     <span class="comment">// No sparse triangular or banded</span>00109 <span class="keyword">typedef</span> <a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a4">BaseDenseLowerTriMatrix</a> <a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a10">BaseLowerTriMatrix</a>;00110 <span class="keyword">typedef</span> <a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a5">BaseDenseDiagMatrix</a> <a class="code" href="namespaceBayesian__filter__matrix_1_1detail.html#a11">BaseDiagMatrix</a>;00111 <span class="preprocessor">#endif</span>00112 <span class="preprocessor"></span>00113 }00114 00115 }<span class="comment">//namespace</span>00116 00117 <span class="comment">/*</span>00118 <span class="comment"> * Common type independant uBlas interface</span>00119 <span class="comment"> */</span>00120 <span class="preprocessor">#include "<a class="code" href="uBLASmatrix_8hpp.html">uBLASmatrix.hpp</a>"</span></pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Feb 16 11:20:39 2004 for Bayes++ Bayesian Filtering Classes by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 > </a>1.3.2 </small></address></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -