\hypertarget{classmprod}{
\section{mprod Class Reference}
\label{classmprod}\index{mprod@{mprod}}
}
Chain rule decomposition of \hyperlink{classepdf}{epdf}.  


{\tt \#include $<$emix.h$>$}

Inheritance diagram for mprod:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=91pt]{classmprod__inherit__graph}
\end{center}
\end{figure}
Collaboration diagram for mprod:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=102pt]{classmprod__coll__graph}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item 
\hypertarget{classmprod_419b303581a91ad85200bdcb4b3186f4}{
\hyperlink{classmprod_419b303581a91ad85200bdcb4b3186f4}{mprod} (Array$<$ \hyperlink{classmpdf}{mpdf} $\ast$ $>$ mFacs)}
\label{classmprod_419b303581a91ad85200bdcb4b3186f4}

\begin{CompactList}\small\item\em Constructor from list of mFacs,. \item\end{CompactList}\item 
\hypertarget{classmprod_f5e1075f133f203113d92084b4a47c28}{
double \hyperlink{classmprod_f5e1075f133f203113d92084b4a47c28}{evallogcond} (const vec \&val, const vec \&cond)}
\label{classmprod_f5e1075f133f203113d92084b4a47c28}

\begin{CompactList}\small\item\em Shortcut for conditioning and evaluation of the internal \hyperlink{classepdf}{epdf}. In some cases, this operation can be implemented efficiently. \item\end{CompactList}\item 
vec \hyperlink{classmprod_a48887eb8738a9e5550bfc38eb8e9d68}{samplecond} (const vec \&cond, double \&ll)
\begin{CompactList}\small\item\em Returns a sample from the density conditioned on {\tt cond}, $x \sim epdf(rv|cond)$. \item\end{CompactList}\item 
\hypertarget{classmprod_e171c40e210539c2af01d6237785620b}{
mat \textbf{samplecond} (const vec \&cond, vec \&ll, int N)}
\label{classmprod_e171c40e210539c2af01d6237785620b}

\item 
\hyperlink{classRV}{RV} \hyperlink{classcompositepdf_635d219fb3e32852400d6f98aa4bdc93}{getrv} (bool checkoverlap=false)
\begin{CompactList}\small\item\em find common rv, flag \item\end{CompactList}\item 
\hypertarget{classcompositepdf_5a4479785c1fdb2cc351fbea07b899ac}{
void \hyperlink{classcompositepdf_5a4479785c1fdb2cc351fbea07b899ac}{setrvc} (const \hyperlink{classRV}{RV} \&\hyperlink{classmpdf_f6687c07ff07d47812dd565368ca59eb}{rv}, \hyperlink{classRV}{RV} \&\hyperlink{classmpdf_acb7dda792b3cd5576f39fa3129abbab}{rvc})}
\label{classcompositepdf_5a4479785c1fdb2cc351fbea07b899ac}

\begin{CompactList}\small\item\em common rvc of all mpdfs is written to rvc \item\end{CompactList}\item 
virtual mat \hyperlink{classmpdf_b1dae6171ee39a6a05976c7b1007a3c5}{samplecond\_\-m} (const vec \&cond, vec \&ll, int N)
\begin{CompactList}\small\item\em Returns. \item\end{CompactList}\item 
\hypertarget{classmpdf_0f95a0cc6ab40611f46804682446ed83}{
virtual void \hyperlink{classmpdf_0f95a0cc6ab40611f46804682446ed83}{condition} (const vec \&cond)}
\label{classmpdf_0f95a0cc6ab40611f46804682446ed83}

\begin{CompactList}\small\item\em Update {\tt ep} so that it represents this \hyperlink{classmpdf}{mpdf} conditioned on {\tt rvc} = cond. \item\end{CompactList}\item 
\hypertarget{classmpdf_95fcff214848f66f1b489459370573fa}{
virtual vec \hyperlink{classmpdf_95fcff214848f66f1b489459370573fa}{evallogcond\_\-m} (const mat \&Dt, const vec \&cond)}
\label{classmpdf_95fcff214848f66f1b489459370573fa}

\begin{CompactList}\small\item\em Matrix version of evallogcond. \item\end{CompactList}\item 
\hypertarget{classmpdf_15ef062183b1ccdf794732d5fa0b77cd}{
\hyperlink{classRV}{RV} \hyperlink{classmpdf_15ef062183b1ccdf794732d5fa0b77cd}{\_\-rvc} () const }
\label{classmpdf_15ef062183b1ccdf794732d5fa0b77cd}

\begin{CompactList}\small\item\em access function \item\end{CompactList}\item 
\hypertarget{classmpdf_71256ffb5fbd08f41d650e606a5bd585}{
\hyperlink{classRV}{RV} \hyperlink{classmpdf_71256ffb5fbd08f41d650e606a5bd585}{\_\-rv} () const }
\label{classmpdf_71256ffb5fbd08f41d650e606a5bd585}

\begin{CompactList}\small\item\em access function \item\end{CompactList}\item 
\hypertarget{classmpdf_e17780ee5b2cfe05922a6c56af1462f8}{
\hyperlink{classepdf}{epdf} \& \hyperlink{classmpdf_e17780ee5b2cfe05922a6c56af1462f8}{\_\-epdf} ()}
\label{classmpdf_e17780ee5b2cfe05922a6c56af1462f8}

\begin{CompactList}\small\item\em access function \item\end{CompactList}\item 
\hypertarget{classmpdf_75ded3b0f657cd7da6590691a810963c}{
\hyperlink{classepdf}{epdf} $\ast$ \hyperlink{classmpdf_75ded3b0f657cd7da6590691a810963c}{\_\-e} ()}
\label{classmpdf_75ded3b0f657cd7da6590691a810963c}

\begin{CompactList}\small\item\em access function \item\end{CompactList}\end{CompactItemize}
\subsection*{Protected Attributes}
\begin{CompactItemize}
\item 
\hypertarget{classmprod_0883ce383e8475546df138719918f70e}{
Array$<$ \hyperlink{classepdf}{epdf} $\ast$ $>$ \hyperlink{classmprod_0883ce383e8475546df138719918f70e}{epdfs}}
\label{classmprod_0883ce383e8475546df138719918f70e}

\begin{CompactList}\small\item\em pointers to epdfs - shortcut to \hyperlink{classcompositepdf_637877061b917a16a0421bb5c4cd480d}{mpdfs()}.\hyperlink{classmpdf_e17780ee5b2cfe05922a6c56af1462f8}{\_\-epdf()} \item\end{CompactList}\item 
\hypertarget{classmprod_5334777dda3dad9b9fa73e22e8d0f24c}{
Array$<$ \hyperlink{classdatalink__m2m}{datalink\_\-m2m} $\ast$ $>$ \hyperlink{classmprod_5334777dda3dad9b9fa73e22e8d0f24c}{dls}}
\label{classmprod_5334777dda3dad9b9fa73e22e8d0f24c}

\begin{CompactList}\small\item\em Data link for each mpdfs. \item\end{CompactList}\item 
\hypertarget{classcompositepdf_c1646fe41ff5934d010e54ccaa46133f}{
int \hyperlink{classcompositepdf_c1646fe41ff5934d010e54ccaa46133f}{n}}
\label{classcompositepdf_c1646fe41ff5934d010e54ccaa46133f}

\begin{CompactList}\small\item\em Number of mpdfs in the composite. \item\end{CompactList}\item 
\hypertarget{classcompositepdf_637877061b917a16a0421bb5c4cd480d}{
Array$<$ \hyperlink{classmpdf}{mpdf} $\ast$ $>$ \hyperlink{classcompositepdf_637877061b917a16a0421bb5c4cd480d}{mpdfs}}
\label{classcompositepdf_637877061b917a16a0421bb5c4cd480d}

\begin{CompactList}\small\item\em Elements of composition. \item\end{CompactList}\item 
\hypertarget{classmpdf_f6687c07ff07d47812dd565368ca59eb}{
\hyperlink{classRV}{RV} \hyperlink{classmpdf_f6687c07ff07d47812dd565368ca59eb}{rv}}
\label{classmpdf_f6687c07ff07d47812dd565368ca59eb}

\begin{CompactList}\small\item\em modeled random variable \item\end{CompactList}\item 
\hypertarget{classmpdf_acb7dda792b3cd5576f39fa3129abbab}{
\hyperlink{classRV}{RV} \hyperlink{classmpdf_acb7dda792b3cd5576f39fa3129abbab}{rvc}}
\label{classmpdf_acb7dda792b3cd5576f39fa3129abbab}

\begin{CompactList}\small\item\em random variable in condition \item\end{CompactList}\item 
\hypertarget{classmpdf_7aa894208a32f3487827df6d5054424c}{
\hyperlink{classepdf}{epdf} $\ast$ \hyperlink{classmpdf_7aa894208a32f3487827df6d5054424c}{ep}}
\label{classmpdf_7aa894208a32f3487827df6d5054424c}

\begin{CompactList}\small\item\em pointer to internal \hyperlink{classepdf}{epdf} \item\end{CompactList}\end{CompactItemize}


\subsection{Detailed Description}
Chain rule decomposition of \hyperlink{classepdf}{epdf}. 

Probability density in the form of Chain-rule decomposition: $\backslash$\mbox{[} f(x\_\-1,x\_\-2,x\_\-3) = f(x\_\-1$|$x\_\-2,x\_\-3)f(x\_\-2,x\_\-3)f(x\_\-3) $\backslash$\mbox{]} Note that 

\subsection{Member Function Documentation}
\hypertarget{classmprod_a48887eb8738a9e5550bfc38eb8e9d68}{
\index{mprod@{mprod}!samplecond@{samplecond}}
\index{samplecond@{samplecond}!mprod@{mprod}}
\subsubsection[samplecond]{\setlength{\rightskip}{0pt plus 5cm}vec mprod::samplecond (const vec \& {\em cond}, \/  double \& {\em ll})\hspace{0.3cm}{\tt  \mbox{[}inline, virtual\mbox{]}}}}
\label{classmprod_a48887eb8738a9e5550bfc38eb8e9d68}


Returns a sample from the density conditioned on {\tt cond}, $x \sim epdf(rv|cond)$. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em cond}]is numeric value of {\tt rv} \item[{\em ll}]is a return value of log-likelihood of the sample. \end{description}
\end{Desc}


Reimplemented from \hyperlink{classmpdf_3f172b79ec4a5ebc87898a5381141f1b}{mpdf}.

References RV::count(), dls, epdfs, compositepdf::mpdfs, compositepdf::n, and mpdf::rv.\hypertarget{classcompositepdf_635d219fb3e32852400d6f98aa4bdc93}{
\index{mprod@{mprod}!getrv@{getrv}}
\index{getrv@{getrv}!mprod@{mprod}}
\subsubsection[getrv]{\setlength{\rightskip}{0pt plus 5cm}{\bf RV} compositepdf::getrv (bool {\em checkoverlap} = {\tt false})\hspace{0.3cm}{\tt  \mbox{[}inherited\mbox{]}}}}
\label{classcompositepdf_635d219fb3e32852400d6f98aa4bdc93}


find common rv, flag 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em checkoverlap}]modifies whether overlaps are acceptable \end{description}
\end{Desc}


References RV::add(), compositepdf::mpdfs, and compositepdf::n.\hypertarget{classmpdf_b1dae6171ee39a6a05976c7b1007a3c5}{
\index{mprod@{mprod}!samplecond\_\-m@{samplecond\_\-m}}
\index{samplecond\_\-m@{samplecond\_\-m}!mprod@{mprod}}
\subsubsection[samplecond\_\-m]{\setlength{\rightskip}{0pt plus 5cm}virtual mat mpdf::samplecond\_\-m (const vec \& {\em cond}, \/  vec \& {\em ll}, \/  int {\em N})\hspace{0.3cm}{\tt  \mbox{[}inline, virtual, inherited\mbox{]}}}}
\label{classmpdf_b1dae6171ee39a6a05976c7b1007a3c5}


Returns. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em N}]samples from the density conditioned on {\tt cond}, $x \sim epdf(rv|cond)$. \item[{\em cond}]is numeric value of {\tt rv} \item[{\em ll}]is a return value of log-likelihood of the sample. \end{description}
\end{Desc}


References mpdf::condition(), RV::count(), mpdf::ep, epdf::evallog(), mpdf::rv, and epdf::sample().

The documentation for this class was generated from the following file:\begin{CompactItemize}
\item 
work/git/mixpp/bdm/stat/\hyperlink{emix_8h}{emix.h}\end{CompactItemize}
