/*!
\page app_base bdmtoolbox - List of available basic objects

Basic objects of BDM are:
 - <b>RV</b> decriptor of data vectors and random variables
 - <b>fnc</b> functions of vector arguments
 - <b>pdf</b> pdf with non-empty conditioning part
 - <b>epdf</b> pdf with empty conditioning part
 - <b>BM</b> Bayesian model - (approximate) calculation of specific type of the Bayes rule, 
 - <b>DS</b> Data Sources - recursive sources of data
 - <b>logger</b> object storing results of all experiments
 
 See, \ref userguide_pdf and \ref userguide_sim for their introduction.



\section app_base_rv Working with RV

In bdmtoolbox, RV is represented by a matlab structure. It is recommended to use the following function to work with it:

 - <b>RV</b>, <b>rva=RV('a',1)</b>, <b>rvab=RV({'b','c'},[1,2])</b> create empty RV, RV named "a" of size 1, and vector of RV "b" and "c" of sizes 1 and 2, respectively.
 - <b>RVtimes(rva,-1)</b> set time (delay) of rva to -1 from current time.
 - <b>RVjoin([rva,rvb])</b> joins rva and rvb into a vector
 
\section app_base_fnc Basic functions
 
Predefined functions are:
 - <b>constfn</b> Class representing function , here rv is empty
 - <b>linfn</b> Class representing function 
 - <b>mexFnc</b> Matlab extension of a function, calling predefined matlab functions
 - <b>grid_fnc</b> Function defined by values on a fixed grid and interpolated inbetween them
 
\section app_base_sq Square root decompositions of symetric matrices

For information purpose, these matrices are used in epdfs:
 - <b>chmat</b> Symmetric matrix stored in square root decomposition using upper cholesky
 - <b>fsqmat</b> Fake sqmat. This class maps sqmat operations to operations on full matrix
 - <b>ldmat</b> Matrix stored in LD form, (commonly known as UD)

\section app_base_epdf Basic epdfs accessible from matlab are:
 - <b>dirac</b> Dirac delta function distribution
 - <b>eDirich</b> Dirichlet posterior density
 - <b>eEF</b> General conjugate exponential family posterior density
 - <b>eEmp</b> Weighted empirical density
 - <b>egamma</b> Gamma posterior density
 - <b>egiw</b> Gauss-inverse-Wishart density stored in LD form
 - <b>egrid</b> Discrete density defined on a continuous grid
 - <b>eigamma</b> Inverse-Gamma posterior density
 - <b>eiWishartCh</b> Inverse Wishart on Choleski decomposition
 - <b>enorm<ldmat></b> Gaussian density with positive definite (decomposed) covariance matrix
 - <b>enorm<chmat></b> Gaussian density with positive definite (decomposed) covariance matrix
 - <b>enorm<fsqmat></b> Gaussian density with positive definite (decomposed) covariance matrix
 - <b>elognorm</b> LogNormal density
 - <b>emix</b> Mixture of epdfs
 - <b>eprod</b> Product of densities, elements may be unconditional, however, the result should be unconditioned pdf.
 - <b>estudent< ldmat></b> Student-t density
 - <b>estudent< ldmat></b> Student-t density
 - <b>estudent< ldmat></b> Student-t density
 - <b>euni</b> Uniform density on rectangular support
 - <b>eWishartCh</b> Wishart in choleski decomposition 
 
\section app_base_pdf Basic (conditioned) pdfs accessible from matlab are:
 - <b>mDirich</b> Dirichlet random walk
 - <b>mexBM</b> BM with functions implemented in matlab
 - <b>mexEpdf</b> Epdf with functions implemented in matlab
 - <b>mgamma</b> Gamma random walk
 - <b>mgamma_fix</b> Gamma random walk around a fixed point
 - <b>mgdirac</b> Dirac delta pdf with geenral function of the support point 
 - <b>mgnorm< ldmat ></b> Gaussian Pdf with general function for mean value
 - <b>mgnorm< chmat ></b> Gaussian Pdf with general function for mean value
 - <b>mgnorm< fsqmat ></b> Gaussian Pdf with general function for mean value
 - <b>mguni</b> Uniform density with geenral function of mean value
 - <b>migamma</b> Inverse-Gamma random walk
 - <b>migamma_ref</b> Inverse-Gamma random walk around a fixed point
 - <b>mlnorm< ldmat></b> Normal distribution with linear function with linear function of mean value;
 - <b>mlnorm< chmat></b> Normal distribution with linear function with linear function of mean value;
 - <b>mlnorm< fsqmat></b> Normal distribution with linear function with linear function of mean value;
 - <b>mlognorm</b> Log-Normal random walk
 - <b>mlstudent</b> Student distributed linear function with linear function of mean value;
 - <b>mmix</b> Mixture of pdfs with constant weights, all pdfs are of equal RV and RVC
 - <b>mprod</b> Chain rule decomposition of epdf
 - <b>mratio</b> Class representing ratio of two densities which arise e.g. by applying the Bayes rule. 
 - <b>rwiWishartCh</b> Random Walk on inverse Wishart
 
\section app_base_ds DataSources 
 - <b>MemDS</b> Memory storage of off-line data column-wise
 - <b>CsvFileDS</b> CSV file data storage The constructor creates Data matrix from the records in a CSV file fname. The orientation can be of two types: 1. BY_COL which is default - the data are stored in columns; one column per time , one row per data item. 2. BY_ROW if the data are stored the classical CSV style. Then each column stores the values for data item, for ex. , one row for each discrete time instant
 - <b>EpdfDS</b> Simulate data from a static pdf (epdf)
 - <b>PdfDS</b> Simulate data from conditional density Still having only one density but allowing conditioning on either input or delayed values
 
 \section app_base_log Loggers - storage of results
 - <b>mexlog</b> Logger storing results into an mxArray
 - <b>dirfilelog</b> Logging into dirfile with buffer in memory
 - <b>stdlog</b> Simple logger used for debugging All data records are written out to std from where they could be send to file
 - <b>ITppFileDS</b> Read Data Matrix from an IT file
 
\section app_base_merg Mergers
 - <b>merger_base</b> Base class for general combination of pdfs on discrete support
 - <b>merger_mix</b> Merger using importance sampling with mixture proposal density

  
\section app_base_bm Bayesian Models   

Basic filters:

 - <b>ARX</b> Linear Autoregressive model with Gaussian noise
 - <b>ARXfrg</b> ARX with conditioned on forgetting factor
 - <b>ARXg</b> ARX with Non-linear transformation + Gaussian noise
 - <b>EKFCh</b> Extended Kalman Filter in Square root
 - <b>EKFfull</b> Extended Kalman Filter in full matrices
 - <b>KalmanCh</b> Kalman filter in square root form
 - <b>KalmanFull</b> Basic Kalman filter with full matrices
 - <b>MixEF</b> Estimator of Mixtures of Exponential Family Densities
 - <b>multiBM</b> Estimator for Multinomial density
 - <b>MultiModel</b> (Switching) Multiple Models. The model runs several BMs in parallel and evaluates thier weights (fittness)
 - <b>PF</b> Particle filtering: Wrapper for particles 
    - <b>BootstrapParticle</b> Class used in PF
    - <b>MarginalizedParticle</b> Class used in PF
 
\section app_base_ctrl Controllers (and related classes)
 - <b>LQG</b> Basic class computing LQG control
 - <b>LQG_ARX</b> Controller using ARX model for estimation and LQG designer for control
 - <b>StateFromARX</b> conversion function
 - <b>StateSpace< ldmat></b> Basic elements of linear state-space model
 - <b>StateSpace< chmat></b> Basic elements of linear state-space model

\section app_base_mpdm Multiple Patricipant Decision Makers
* <b>ARXAgent</b> ARX agent
 
 
*/
