Changeset 651 for library/doc/html/mex__BM_8h_source.html
- Timestamp:
- 10/12/09 13:49:39 (15 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
library/doc/html/mex__BM_8h_source.html
r641 r651 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 5 3 <title>mixpp: mex_BM.h Source File</title> 6 <link href="tabs.css" rel="stylesheet" type="text/css"/> 7 <link href="doxygen.css" rel="stylesheet" type="text/css"/> 8 </head> 9 <body> 10 <!-- Generated by Doxygen 1.6.1 --> 4 <link href="tabs.css" rel="stylesheet" type="text/css"> 5 <link href="doxygen.css" rel="stylesheet" type="text/css"> 6 </head><body> 7 <!-- Generated by Doxygen 1.5.9 --> 11 8 <script type="text/javascript"> 12 9 <!-- … … 68 65 <a name="l00002"></a>00002 <span class="preprocessor">#include <itpp/itmex.h></span> 69 66 <a name="l00003"></a>00003 <span class="preprocessor">#include <mex/config2mxstruct.h></span> 70 <a name="l00004"></a>00004 <span class="preprocessor">#include "mex_parser.h"</span>67 <a name="l00004"></a>00004 <span class="preprocessor">#include "mex_parser.h"</span> 71 68 <a name="l00005"></a>00005 72 69 <a name="l00006"></a>00006 <span class="keyword">namespace </span>bdm { 73 70 <a name="l00015"></a>00015 <span class="keyword">using namespace </span>bdm; 74 71 <a name="l00016"></a>00016 75 <a name="l00017"></a> <a class="code" href="classbdm_1_1mexEpdf.html">00017</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1mexEpdf.html">mexEpdf</a>: <span class="keyword">public</span> <a class="code" href="classbdm_1_1epdf.html" title="Probability density function with numerical statistics, e.g. posterior density.">epdf</a>{72 <a name="l00017"></a>00017 <span class="keyword">class </span>mexEpdf: <span class="keyword">public</span> epdf{ 76 73 <a name="l00018"></a>00018 <span class="keyword">protected</span>: 77 74 <a name="l00019"></a>00019 <span class="keywordtype">string</span> name; 78 75 <a name="l00020"></a>00020 mxArray *data; 79 76 <a name="l00021"></a>00021 <span class="keyword">public</span>: 80 <a name="l00022"></a>00022 <a class="code" href="classbdm_1_1mexEpdf.html">mexEpdf</a>() {};81 <a name="l00023"></a> <a class="code" href="classbdm_1_1mexEpdf.html#af371482ea8d21c8ac01f011b3d942298">00023</a> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1mexEpdf.html#af371482ea8d21c8ac01f011b3d942298" title="Load from structure with elements:.">from_setting</a>(<span class="keyword">const</span> Setting &S) {82 <a name="l00024"></a>00024 name = (<span class="keyword">const</span> <span class="keywordtype">char</span> *) S[<span class="stringliteral"> "name"</span>];77 <a name="l00022"></a>00022 mexEpdf() {}; 78 <a name="l00023"></a>00023 <span class="keywordtype">void</span> from_setting(<span class="keyword">const</span> Setting &S) { 79 <a name="l00024"></a>00024 name = (<span class="keyword">const</span> <span class="keywordtype">char</span> *) S[<span class="stringliteral">"name"</span>]; 83 80 <a name="l00025"></a>00025 <a class="code" href="classUImxConfig.html" title="Reimplementation of libconfig&#39;s Config class for Matlab mxArray structures.">UImxConfig</a> conf(S); 84 <a name="l00026"></a>00026 data = mxDuplicateArray(conf. <a class="code" href="classUImxConfig.html#accf378aab12b7709d644441fd2e30d00" title="Matlab structure where the info is stored.">mxconfig</a>);85 <a name="l00027"></a>00027 <span class="comment">//mexCallMATLAB(1, &data, 0, 0, (name+ "_new").c_str());</span>81 <a name="l00026"></a>00026 data = mxDuplicateArray(conf.mxconfig); 82 <a name="l00027"></a>00027 <span class="comment">//mexCallMATLAB(1, &data, 0, 0, (name+"_new").c_str());</span> 86 83 <a name="l00028"></a>00028 <span class="comment">//TODO (future...):</span> 87 <a name="l00029"></a>00029 <span class="comment">//mxArray * init_data = setting2mxarray S[ "init_data"];</span>88 <a name="l00030"></a>00030 <span class="comment">//mexCallMATLAB(1, &data, 1, &init_data, name+ "_from_setting");</span>84 <a name="l00029"></a>00029 <span class="comment">//mxArray * init_data = setting2mxarray S["init_data"];</span> 85 <a name="l00030"></a>00030 <span class="comment">//mexCallMATLAB(1, &data, 1, &init_data, name+"_from_setting");</span> 89 86 <a name="l00031"></a>00031 <span class="comment">//delete init_data;</span> 90 87 <a name="l00032"></a>00032 } 91 <a name="l00033"></a> <a class="code" href="classbdm_1_1mexEpdf.html#a028dd3432d55e1fcc49f786a27f5afe8">00033</a> vec <a class="code" href="classbdm_1_1mexEpdf.html#a028dd3432d55e1fcc49f786a27f5afe8" title="return expected value">mean</a>()<span class="keyword"> const </span>{88 <a name="l00033"></a>00033 vec mean()<span class="keyword"> const </span>{ 92 89 <a name="l00034"></a>00034 mxArray *tmp; 93 <a name="l00035"></a>00035 <span class="keywordtype">string</span> fname = name+<span class="stringliteral"> "_mean"</span>;90 <a name="l00035"></a>00035 <span class="keywordtype">string</span> fname = name+<span class="stringliteral">"_mean"</span>; 94 91 <a name="l00036"></a>00036 mexCallMATLAB(1, &tmp, 1, (mxArray **) &data, fname.c_str()); 95 92 <a name="l00037"></a>00037 <span class="keywordflow">return</span> mxArray2vec(tmp); 96 93 <a name="l00038"></a>00038 } 97 94 <a name="l00039"></a>00039 }; 98 <a name="l00040"></a>00040 <a class="code" href="user__info_8h.html# a4f9de2f17e844047726487b99def99c6" title="Macro for registration of class into map of user-infos, registered class is scriptable...">UIREGISTER</a>(mexEpdf);95 <a name="l00040"></a>00040 <a class="code" href="user__info_8h.html#4f9de2f17e844047726487b99def99c6" title="Macro for registration of class into map of user-infos, registered class is scriptable...">UIREGISTER</a>(mexEpdf); 99 96 <a name="l00041"></a>00041 100 <a name="l00042"></a> <a class="code" href="classbdm_1_1mexBM.html">00042</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1mexBM.html">mexBM</a>: <span class="keyword">public</span> <a class="code" href="classbdm_1_1BM.html" title="Bayesian Model of a system, i.e. all uncertainty is modeled by probabilities.">BM</a>{97 <a name="l00042"></a>00042 <span class="keyword">class </span>mexBM: <span class="keyword">public</span> BM{ 101 98 <a name="l00043"></a>00043 <span class="keyword">protected</span> : 102 99 <a name="l00044"></a>00044 <span class="keywordtype">string</span> name; 103 <a name="l00045"></a>00045 <a class="code" href="classbdm_1_1mexEpdf.html">mexEpdf</a>est;100 <a name="l00045"></a>00045 mexEpdf est; 104 101 <a name="l00046"></a>00046 mxArray *data; 105 102 <a name="l00047"></a>00047 <span class="keyword">public</span>: 106 <a name="l00048"></a>00048 <a class="code" href="classbdm_1_1mexBM.html">mexBM</a>() {}103 <a name="l00048"></a>00048 mexBM() {} 107 104 <a name="l00049"></a>00049 108 105 <a name="l00050"></a>00050 mxArray *get_data() { 109 <a name="l00051"></a>00051 <span class="comment">//mexCallMATLAB(0, NULL, 1, &data, "dump");</span>106 <a name="l00051"></a>00051 <span class="comment">//mexCallMATLAB(0, NULL, 1, &data, "dump");</span> 110 107 <a name="l00052"></a>00052 <span class="keywordflow">return</span> mxDuplicateArray(data); 111 108 <a name="l00053"></a>00053 } 112 109 <a name="l00054"></a>00054 113 <a name="l00055"></a> <a class="code" href="classbdm_1_1mexBM.html#a1dc5937132e070894ca6002b05512afd">00055</a> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1mexBM.html#a1dc5937132e070894ca6002b05512afd" title="This method arrange instance properties according the data stored in the Setting...">from_setting</a>(<span class="keyword">const</span> Setting &S) {114 <a name="l00056"></a>00056 <a class="code" href="classbdm_1_1 mexBM.html#a1dc5937132e070894ca6002b05512afd" title="This method arrange instance properties according the data stored in the Setting...">BM::from_setting</a>(S);115 <a name="l00057"></a>00057 name = (<span class="keyword">const</span> <span class="keywordtype">char</span> *) S[<span class="stringliteral"> "name"</span>];110 <a name="l00055"></a>00055 <span class="keywordtype">void</span> from_setting(<span class="keyword">const</span> Setting &S) { 111 <a name="l00056"></a>00056 <a class="code" href="classbdm_1_1BM.html#23c6a8f71f922023ab08dcb0487a86de" title="This method arrange instance properties according the data stored in the Setting...">BM::from_setting</a>(S); 112 <a name="l00057"></a>00057 name = (<span class="keyword">const</span> <span class="keywordtype">char</span> *) S[<span class="stringliteral">"name"</span>]; 116 113 <a name="l00058"></a>00058 <a class="code" href="classUImxConfig.html" title="Reimplementation of libconfig&#39;s Config class for Matlab mxArray structures.">UImxConfig</a> conf(S); 117 <a name="l00059"></a>00059 data = mxDuplicateArray(conf. <a class="code" href="classUImxConfig.html#accf378aab12b7709d644441fd2e30d00" title="Matlab structure where the info is stored.">mxconfig</a>);118 <a name="l00060"></a>00060 <span class="comment">//string fname = name+ "_new";</span>119 <a name="l00061"></a>00061 <span class="comment">//mexCallMATLAB(1, &data, 0, 0, (name+ "_new").c_str());</span>114 <a name="l00059"></a>00059 data = mxDuplicateArray(conf.mxconfig); 115 <a name="l00060"></a>00060 <span class="comment">//string fname = name+"_new";</span> 116 <a name="l00061"></a>00061 <span class="comment">//mexCallMATLAB(1, &data, 0, 0, (name+"_new").c_str());</span> 120 117 <a name="l00062"></a>00062 <span class="comment">//the following works as long as the posterior is the</span> 121 118 <a name="l00063"></a>00063 <span class="comment">//only member object there could be a structure of </span> 122 119 <a name="l00064"></a>00064 <span class="comment">//member objects in the setting and a for cycle over</span> 123 120 <a name="l00065"></a>00065 <span class="comment">//all of them right here in the code</span> 124 <a name="l00066"></a>00066 Setting &posterior = S[<span class="stringliteral"> "posterior"</span>];125 <a name="l00067"></a>00067 est. <a class="code" href="classbdm_1_1mexEpdf.html#af371482ea8d21c8ac01f011b3d942298" title="Load from structure with elements:.">from_setting</a>(posterior);121 <a name="l00066"></a>00066 Setting &posterior = S[<span class="stringliteral">"posterior"</span>]; 122 <a name="l00067"></a>00067 est.from_setting(posterior); 126 123 <a name="l00068"></a>00068 } 127 <a name="l00069"></a> <a class="code" href="classbdm_1_1mexBM.html#aa99452b52f731f561b01029af18c68f7">00069</a> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1mexBM.html#aa99452b52f731f561b01029af18c68f7" title="Incremental Bayes rule.">bayes</a>(<span class="keyword">const</span> vec &dt) {124 <a name="l00069"></a>00069 <span class="keywordtype">void</span> bayes(<span class="keyword">const</span> vec &dt) { 128 125 <a name="l00070"></a>00070 <span class="comment">//void bayes() {</span> 129 126 <a name="l00071"></a>00071 mxArray *tmp, *old; … … 132 129 <a name="l00074"></a>00074 in[1] = mxCreateDoubleMatrix(dt.size(), 1, mxREAL); 133 130 <a name="l00075"></a>00075 vec2mxArray(dt, in[1]); 134 <a name="l00076"></a>00076 mexCallMATLAB(1, &tmp, 2, in, (name+<span class="stringliteral"> "_bayes"</span>).c_str());131 <a name="l00076"></a>00076 mexCallMATLAB(1, &tmp, 2, in, (name+<span class="stringliteral">"_bayes"</span>).c_str()); 135 132 <a name="l00077"></a>00077 old = data; 136 133 <a name="l00078"></a>00078 data = mxDuplicateArray(tmp); 137 134 <a name="l00079"></a>00079 <span class="keywordflow">if</span> (old) mxDestroyArray(old); 138 135 <a name="l00080"></a>00080 <span class="keywordflow">if</span> (tmp) mxDestroyArray(tmp); 139 <a name="l00081"></a>00081 <span class="comment">//mexCallMATLAB(0, NULL, 1, &data, "dump");</span>136 <a name="l00081"></a>00081 <span class="comment">//mexCallMATLAB(0, NULL, 1, &data, "dump");</span> 140 137 <a name="l00082"></a>00082 } 141 <a name="l00083"></a>00083 <span class="keyword">const</span> <a class="code" href="classbdm_1_1mexEpdf.html">mexEpdf</a>& posterior()<span class="keyword"> const </span>{138 <a name="l00083"></a>00083 <span class="keyword">const</span> mexEpdf& posterior()<span class="keyword"> const </span>{ 142 139 <a name="l00084"></a>00084 <span class="keywordflow">return</span> est; 143 140 <a name="l00085"></a>00085 } <span class="comment">//tohle by melo zustat!!</span> … … 146 143 <a name="l00088"></a>00088 } <span class="comment">//tohle by melo zustat!!</span> 147 144 <a name="l00089"></a>00089 }; 148 <a name="l00090"></a>00090 <a class="code" href="user__info_8h.html# a4f9de2f17e844047726487b99def99c6" title="Macro for registration of class into map of user-infos, registered class is scriptable...">UIREGISTER</a>(mexBM);145 <a name="l00090"></a>00090 <a class="code" href="user__info_8h.html#4f9de2f17e844047726487b99def99c6" title="Macro for registration of class into map of user-infos, registered class is scriptable...">UIREGISTER</a>(mexBM); 149 146 <a name="l00091"></a>00091 150 147 <a name="l00092"></a>00092 } 151 148 </pre></div></div> 152 <hr size="1" /><address style="text-align: right;"><small>Generated on Sun Sep 27 00:49:042009 for mixpp by 149 <hr size="1"><address style="text-align: right;"><small>Generated on Wed Oct 7 17:34:43 2009 for mixpp by 153 150 <a href="http://www.doxygen.org/index.html"> 154 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1</small></address>151 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address> 155 152 </body> 156 153 </html>