\hypertarget{namespacebdm}{
\section{bdm Namespace Reference}
\label{namespacebdm}\index{bdm@{bdm}}
}


\subsection{Detailed Description}
Space of basic BDM structures. 



\subsection*{Classes}
\begin{CompactItemize}
\item 
class \hyperlink{classbdm_1_1ARX}{ARX}
\begin{CompactList}\small\item\em Linear Autoregressive model with Gaussian noise. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1EKFful__unQR}{EKFful\_\-unQR}
\begin{CompactList}\small\item\em Extended \hyperlink{classbdm_1_1Kalman}{Kalman} filter with unknown {\tt Q} and {\tt R}. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1EKFCh__unQ}{EKFCh\_\-unQ}
\begin{CompactList}\small\item\em Extended \hyperlink{classbdm_1_1Kalman}{Kalman} filter in Choleski form with unknown {\tt Q}. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1EKFCh__cond}{EKFCh\_\-cond}
\begin{CompactList}\small\item\em Extended \hyperlink{classbdm_1_1Kalman}{Kalman} filter with unknown parameters in {\tt IM}. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1KalmanFull}{KalmanFull}
\begin{CompactList}\small\item\em Basic \hyperlink{classbdm_1_1Kalman}{Kalman} filter with full matrices (education purpose only)! Will be deleted soon! \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1Kalman}{Kalman}
\begin{CompactList}\small\item\em \hyperlink{classbdm_1_1Kalman}{Kalman} filter with covariance matrices in square root form. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1KalmanCh}{KalmanCh}
\begin{CompactList}\small\item\em \hyperlink{classbdm_1_1Kalman}{Kalman} filter in square root form. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1EKFfull}{EKFfull}
\begin{CompactList}\small\item\em Extended \hyperlink{classbdm_1_1Kalman}{Kalman} Filter in full matrices. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1EKF}{EKF}
\begin{CompactList}\small\item\em Extended \hyperlink{classbdm_1_1Kalman}{Kalman} Filter. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1EKFCh}{EKFCh}
\begin{CompactList}\small\item\em Extended \hyperlink{classbdm_1_1Kalman}{Kalman} Filter in Square root. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1KFcondQR}{KFcondQR}
\begin{CompactList}\small\item\em \hyperlink{classbdm_1_1Kalman}{Kalman} Filter with conditional diagonal matrices R and Q. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1KFcondR}{KFcondR}
\begin{CompactList}\small\item\em \hyperlink{classbdm_1_1Kalman}{Kalman} Filter with conditional diagonal matrices R and Q. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1PF}{PF}
\begin{CompactList}\small\item\em Trivial particle filter with proposal density equal to parameter evolution model. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1MPF}{MPF}
\begin{CompactList}\small\item\em Marginalized Particle filter. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1merger}{merger}
\begin{CompactList}\small\item\em Function for general combination of pdfs. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1MixEF}{MixEF}
\begin{CompactList}\small\item\em Mixture of Exponential Family Densities. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1mratio}{mratio}
\begin{CompactList}\small\item\em Class representing ratio of two densities which arise e.g. by applying the Bayes rule. It represents density in the form: \[ f(rv|rvc) = \frac{f(rv,rvc)}{f(rvc)} \] where $ f(rvc) = \int f(rv,rvc) d\ rv $. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1emix}{emix}
\begin{CompactList}\small\item\em Mixture of epdfs. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1mprod}{mprod}
\begin{CompactList}\small\item\em Chain rule decomposition of \hyperlink{classbdm_1_1epdf}{epdf}. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1eprod}{eprod}
\begin{CompactList}\small\item\em Product of independent epdfs. For dependent pdfs, use \hyperlink{classbdm_1_1mprod}{mprod}. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1mmix}{mmix}
\begin{CompactList}\small\item\em Mixture of mpdfs with constant weights, all mpdfs are of equal type. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1bdmroot}{bdmroot}
\begin{CompactList}\small\item\em Root class of BDM objects. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1str}{str}
\begin{CompactList}\small\item\em Structure of \hyperlink{classbdm_1_1RV}{RV} (used internally), i.e. expanded RVs. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1RV}{RV}
\begin{CompactList}\small\item\em Class representing variables, most often random variables. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1fnc}{fnc}
\begin{CompactList}\small\item\em Class representing function $f(x)$ of variable $x$ represented by {\tt rv}. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1epdf}{epdf}
\begin{CompactList}\small\item\em Probability density function with numerical statistics, e.g. posterior density. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1mpdf}{mpdf}
\begin{CompactList}\small\item\em Conditional probability density, e.g. modeling some dependencies. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1datalink}{datalink}
\begin{CompactList}\small\item\em DataLink is a connection between two data vectors Up and Down. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1datalink__m2e}{datalink\_\-m2e}
\begin{CompactList}\small\item\em data link between \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1datalink__m2m}{datalink\_\-m2m}
\item 
class \hyperlink{classbdm_1_1logger}{logger}
\begin{CompactList}\small\item\em Class for storing results (and semi-results) of an experiment. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1mepdf}{mepdf}
\begin{CompactList}\small\item\em Unconditional \hyperlink{classbdm_1_1mpdf}{mpdf}, allows using \hyperlink{classbdm_1_1epdf}{epdf} in the role of \hyperlink{classbdm_1_1mpdf}{mpdf}. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1compositepdf}{compositepdf}
\begin{CompactList}\small\item\em Abstract composition of pdfs, will be used for specific classes this abstract class is common to \hyperlink{classbdm_1_1epdf}{epdf} and \hyperlink{classbdm_1_1mpdf}{mpdf}. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1DS}{DS}
\begin{CompactList}\small\item\em Abstract class for discrete-time sources of data. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1BM}{BM}
\begin{CompactList}\small\item\em Bayesian Model of a system, i.e. all uncertainty is modeled by probabilities. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1BMcond}{BMcond}
\begin{CompactList}\small\item\em Conditional Bayesian Filter. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1MemDS}{MemDS}
\begin{CompactList}\small\item\em Memory storage of off-line data column-wise. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1ArxDS}{ArxDS}
\begin{CompactList}\small\item\em Generator of \hyperlink{classbdm_1_1ARX}{ARX} data. \item\end{CompactList}\item 
class \textbf{ARXDS}
\item 
class \textbf{stateDS}
\item 
class \hyperlink{classbdm_1_1eEF}{eEF}
\begin{CompactList}\small\item\em General conjugate exponential family posterior density. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1mEF}{mEF}
\begin{CompactList}\small\item\em Exponential family model. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1BMEF}{BMEF}
\begin{CompactList}\small\item\em Estimator for Exponential family. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1enorm}{enorm}
\begin{CompactList}\small\item\em Gaussian density with positive definite (decomposed) covariance matrix. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1egiw}{egiw}
\begin{CompactList}\small\item\em Gauss-inverse-Wishart density stored in LD form. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1eDirich}{eDirich}
\begin{CompactList}\small\item\em Dirichlet posterior density. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1multiBM}{multiBM}
\begin{CompactList}\small\item\em Estimator for Multinomial density. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1egamma}{egamma}
\begin{CompactList}\small\item\em Gamma posterior density. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1eigamma}{eigamma}
\begin{CompactList}\small\item\em Inverse-Gamma posterior density. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1euni}{euni}
\begin{CompactList}\small\item\em Uniform distributed density on a rectangular support. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1mlnorm}{mlnorm}
\begin{CompactList}\small\item\em Normal distributed linear function with linear function of mean value;. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1mlstudent}{mlstudent}
\item 
class \hyperlink{classbdm_1_1mgamma}{mgamma}
\begin{CompactList}\small\item\em Gamma random walk. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1migamma}{migamma}
\begin{CompactList}\small\item\em Inverse-Gamma random walk. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1mgamma__fix}{mgamma\_\-fix}
\begin{CompactList}\small\item\em Gamma random walk around a fixed point. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1migamma__fix}{migamma\_\-fix}
\begin{CompactList}\small\item\em Inverse-Gamma random walk around a fixed point. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1eEmp}{eEmp}
\begin{CompactList}\small\item\em Weighted empirical density. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1constfn}{constfn}
\begin{CompactList}\small\item\em class representing function $f(x) = a$, here {\tt rv} is empty \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1linfn}{linfn}
\begin{CompactList}\small\item\em Class representing function $f(x) = Ax+B$. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1diffbifn}{diffbifn}
\begin{CompactList}\small\item\em Class representing a differentiable function of two variables $f(x,u)$. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1bilinfn}{bilinfn}
\begin{CompactList}\small\item\em Class representing function $f(x,u) = Ax+Bu$. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1memlog}{memlog}
\begin{CompactList}\small\item\em Logging into matrices in data format in memory. \item\end{CompactList}\item 
class \hyperlink{classbdm_1_1dirfilelog}{dirfilelog}
\begin{CompactList}\small\item\em Logging into dirfile with buffer in memory. \item\end{CompactList}\item 
class \textbf{UIFile}
\item 
class \hyperlink{classbdm_1_1UIbuilder}{UIbuilder}
\begin{CompactList}\small\item\em Builds computational object from a UserInfo structure. \item\end{CompactList}\item 
class \textbf{UIexternal}
\item 
class \textbf{UIinternal}
\end{CompactItemize}
\subsection*{Typedefs}
\begin{CompactItemize}
\item 
\hypertarget{namespacebdm_547ee25cd5e6bae90105936ec4264257}{
typedef std::map$<$ string, int $>$ \textbf{RVmap}}
\label{namespacebdm_547ee25cd5e6bae90105936ec4264257}

\item 
\hypertarget{namespacebdm_4dc620a66ce2fcd4c5f42a03a3909b7c}{
typedef map$<$ const string, const \hyperlink{classbdm_1_1UIbuilder}{UIbuilder} $\ast$ $>$ \hyperlink{namespacebdm_4dc620a66ce2fcd4c5f42a03a3909b7c}{UImap}}
\label{namespacebdm_4dc620a66ce2fcd4c5f42a03a3909b7c}

\begin{CompactList}\small\item\em Internal structure mapping strings to UIBuilder objects. \item\end{CompactList}\end{CompactItemize}
\subsection*{Enumerations}
\begin{CompactItemize}
\item 
enum \textbf{MixEF\_\-METHOD} \{ \textbf{EM} =  0, 
\textbf{QB} =  1
 \}
\item 
enum \hyperlink{namespacebdm_33aac0be76ded31d2e3081c5a3f6c418}{RESAMPLING\_\-METHOD} \{ \textbf{MULTINOMIAL} =  0, 
\textbf{STRATIFIED} =  1, 
\textbf{SYSTEMATIC} =  3
 \}
\begin{CompactList}\small\item\em Switch between various resampling methods. \item\end{CompactList}\end{CompactItemize}
\subsection*{Functions}
\begin{CompactItemize}
\item 
double \hyperlink{namespacebdm_384d37434e33cef41e2785e247b5d4d6}{egiw\_\-bestbelow} (\hyperlink{classbdm_1_1egiw}{egiw} Eg, \hyperlink{classbdm_1_1egiw}{egiw} Eg0, double Egll, ivec \&indeces)
\begin{CompactList}\small\item\em Return the best structure. \item\end{CompactList}\item 
\hypertarget{namespacebdm_1d111e8cdcd92244244a44f6b4af397c}{
std::ostream \& \textbf{operator$<$$<$} (std::ostream \&os, const \hyperlink{classbdm_1_1KalmanFull}{KalmanFull} \&kf)}
\label{namespacebdm_1d111e8cdcd92244244a44f6b4af397c}

\item 
\hypertarget{namespacebdm_8b6bce32bf990bf76d04935f391751b3}{
Array$<$ string $>$ \textbf{RV\_\-NAMES} (RV\_\-BUFFER\_\-STEP)}
\label{namespacebdm_8b6bce32bf990bf76d04935f391751b3}

\item 
\hypertarget{namespacebdm_515ed01e2a44f57223293a8e5d98cfc1}{
ivec \textbf{RV\_\-SIZES} (RV\_\-BUFFER\_\-STEP)}
\label{namespacebdm_515ed01e2a44f57223293a8e5d98cfc1}

\item 
\hypertarget{namespacebdm_35914b7631534d21c50a9e1b70146da0}{
std::ostream \& \textbf{operator$<$$<$} (std::ostream \&os, const \hyperlink{classbdm_1_1RV}{RV} \&rv)}
\label{namespacebdm_35914b7631534d21c50a9e1b70146da0}

\item 
\hypertarget{namespacebdm_b9016687c0e874ca5cdcf75ae28811aa}{
\hyperlink{classbdm_1_1RV}{RV} \hyperlink{namespacebdm_b9016687c0e874ca5cdcf75ae28811aa}{concat} (const \hyperlink{classbdm_1_1RV}{RV} \&rv1, const \hyperlink{classbdm_1_1RV}{RV} \&rv2)}
\label{namespacebdm_b9016687c0e874ca5cdcf75ae28811aa}

\begin{CompactList}\small\item\em Concat two random variables. \item\end{CompactList}\item 
\hypertarget{namespacebdm_9a39066aa68568b4b97f8d3103c8699c}{
{\footnotesize template$<$class sq\_\-T$>$ }\\std::ostream \& \textbf{operator$<$$<$} (std::ostream \&os, \hyperlink{classbdm_1_1mlnorm}{mlnorm}$<$ sq\_\-T $>$ \&ml)}
\label{namespacebdm_9a39066aa68568b4b97f8d3103c8699c}

\item 
\hypertarget{namespacebdm_c8d6de8f4e080550406df7c1600117fe}{
\textbf{UIREGISTER} (UIexternal)}
\label{namespacebdm_c8d6de8f4e080550406df7c1600117fe}

\item 
\hypertarget{namespacebdm_3a4ea5a3dc0198c5df3795970e82d629}{
\textbf{UIREGISTER} (UIinternal)}
\label{namespacebdm_3a4ea5a3dc0198c5df3795970e82d629}

\item 
\hypertarget{namespacebdm_f420706e534b420cf6561aa529be9a9e}{
void \hyperlink{namespacebdm_f420706e534b420cf6561aa529be9a9e}{UI\_\-DBG} (Setting \&S, const string \&spc)}
\label{namespacebdm_f420706e534b420cf6561aa529be9a9e}

\begin{CompactList}\small\item\em \mbox{[}Debugging\mbox{]} Print values in current S to cout \item\end{CompactList}\item 
\hypertarget{namespacebdm_b547b14af614cba1ab6c8942dde34462}{
{\footnotesize template$<$class T$>$ }\\void \hyperlink{namespacebdm_b547b14af614cba1ab6c8942dde34462}{UIbuild} (Setting \&S, T $\ast$\&ret)}
\label{namespacebdm_b547b14af614cba1ab6c8942dde34462}

\begin{CompactList}\small\item\em Prototype of a UI builder. Return value is by the second argument since it type checking via {\tt dynamic\_\-cast}. \item\end{CompactList}\item 
\hypertarget{namespacebdm_0760231b120a0b42f80b09515456d57b}{
{\footnotesize template$<$class T$>$ }\\void \hyperlink{namespacebdm_0760231b120a0b42f80b09515456d57b}{UIcall} (Setting \&S, void($\ast$func)(Setting \&, T), T Tmp)}
\label{namespacebdm_0760231b120a0b42f80b09515456d57b}

\begin{CompactList}\small\item\em Auxiliary function allowing recursivity in S (too complex, remove?). \item\end{CompactList}\end{CompactItemize}
\subsection*{Variables}
\begin{CompactItemize}
\item 
\hypertarget{namespacebdm_356cbfd6e12dc4b6680fa82dd35063fb}{
const int \textbf{RV\_\-BUFFER\_\-STEP} = 1}
\label{namespacebdm_356cbfd6e12dc4b6680fa82dd35063fb}

\item 
\hypertarget{namespacebdm_c83cfa7ad40f4622cb17af4b80f09d45}{
RVmap \textbf{RV\_\-MAP}}
\label{namespacebdm_c83cfa7ad40f4622cb17af4b80f09d45}

\item 
\hypertarget{namespacebdm_bdd4760f14ec7d6fea083aa2170f6236}{
\hyperlink{classbdm_1_1RV}{RV} \hyperlink{namespacebdm_bdd4760f14ec7d6fea083aa2170f6236}{RV0} = \hyperlink{classbdm_1_1RV}{RV}()}
\label{namespacebdm_bdd4760f14ec7d6fea083aa2170f6236}

\begin{CompactList}\small\item\em Default empty \hyperlink{classbdm_1_1RV}{RV} that can be used as default argument. \item\end{CompactList}\item 
\hypertarget{namespacebdm_58a0ee51fd426e38101eb99e7c42a65e}{
ivec \textbf{RV\_\-SIZES}}
\label{namespacebdm_58a0ee51fd426e38101eb99e7c42a65e}

\item 
\hypertarget{namespacebdm_81ac40e336bdac971cd2e60fe2fb2deb}{
Array$<$ string $>$ \textbf{RV\_\-NAMES}}
\label{namespacebdm_81ac40e336bdac971cd2e60fe2fb2deb}

\item 
\hypertarget{namespacebdm_96288dbda6916cd442af735f66a9f40b}{
Uniform\_\-RNG \hyperlink{namespacebdm_96288dbda6916cd442af735f66a9f40b}{UniRNG}}
\label{namespacebdm_96288dbda6916cd442af735f66a9f40b}

\begin{CompactList}\small\item\em Global Uniform\_\-RNG. \item\end{CompactList}\item 
\hypertarget{namespacebdm_c959a7382efbcc31af4b58cf0f0f951a}{
Normal\_\-RNG \hyperlink{namespacebdm_c959a7382efbcc31af4b58cf0f0f951a}{NorRNG}}
\label{namespacebdm_c959a7382efbcc31af4b58cf0f0f951a}

\begin{CompactList}\small\item\em Global Normal\_\-RNG. \item\end{CompactList}\item 
\hypertarget{namespacebdm_2828dc833cc283a1fb39a5e8dc06518f}{
Gamma\_\-RNG \hyperlink{namespacebdm_2828dc833cc283a1fb39a5e8dc06518f}{GamRNG}}
\label{namespacebdm_2828dc833cc283a1fb39a5e8dc06518f}

\begin{CompactList}\small\item\em Global Gamma\_\-RNG. \item\end{CompactList}\item 
\hypertarget{namespacebdm_edbf34217028dd95a3680c346af85fea}{
\hyperlink{namespacebdm_4dc620a66ce2fcd4c5f42a03a3909b7c}{UImap} \hyperlink{namespacebdm_edbf34217028dd95a3680c346af85fea}{\_\-\_\-uimap\_\-\_\-}}
\label{namespacebdm_edbf34217028dd95a3680c346af85fea}

\begin{CompactList}\small\item\em global map of UIbulder names to instances of UIbuilders. Created by UIREGISTER macro \item\end{CompactList}\end{CompactItemize}


\subsection{Function Documentation}
\hypertarget{namespacebdm_384d37434e33cef41e2785e247b5d4d6}{
\index{bdm@{bdm}!egiw\_\-bestbelow@{egiw\_\-bestbelow}}
\index{egiw\_\-bestbelow@{egiw\_\-bestbelow}!bdm@{bdm}}
\subsubsection[egiw\_\-bestbelow]{\setlength{\rightskip}{0pt plus 5cm}double bdm::egiw\_\-bestbelow (egiw {\em Eg}, \/  egiw {\em Eg0}, \/  double {\em Egll}, \/  ivec \& {\em indeces})}}
\label{namespacebdm_384d37434e33cef41e2785e247b5d4d6}


Return the best structure. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em Eg}]a copy of GiW density that is being examined \item[{\em Eg0}]a copy of prior GiW density before estimation \item[{\em Egll}]likelihood of the current Eg \item[{\em indeces}]current indeces \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]best likelihood in the structure below the given one \end{Desc}


References ldmat::\_\-D(), ldmat::\_\-L(), bdm::egiw::\_\-V(), ldmat::ldform(), bdm::egiw::lognc(), and ldmat::rows().

Referenced by bdm::ARX::structure\_\-est().