/*!
\page userguide0 BDM Use - Introduction

BDM is a library of basic components for Bayesian decision making, hence its direct use is not possible. In order to use BDM the components must be pulled together in order to achieve desired functionality. We expect two kinds of users:

 - <b> Experimenters </b> who run prepared scripts with different parameterizations and analyze their results,
 - <b> Advanced users</b> who are able to extend functionality by filling prepared Matlab classes, 
 - <b> Porgrammers </b> who are able to implement algorithms withing C++ backend of BDM.

This tutorial is intended for the first two classes of users. Programmers should read it for introduction and then follow to the Doxygen maunal.

The logic of bdmtoolbox is that the experiment is run in C++ via mex-file. Parameterization of the task is done via Matlab structures. 
A range of selected "callback" functions to Matlab is available. This range can be extended by a Programmer, please contact authors if available extension point are not satisfactory for you.

\section param Experiment is fully parameterized before execution

The main logic behind the experiment is that all necessary information about it are gathered in advance in a configuration structure.
This approach was designed especially for time consuming  experiments and Monte-Carlo studies for which it suits the most. 

For smaller decision making tasks, interactive use of the experiment can be achieved by showing the full configuration structure (or its selected parts), 
running the experiment on demand and showing the results.

Semi-interactive experiments can be designed by sequential run of different algorithms. This topic will be covered in advanced documentation.

\section secnario Prepared Scenarios

Since some tasks are repeatedly occuring in practical applications of decision making, these tasks has been identified and prepared as standalone applications (or mex files). These tasks are implemented in separate toolbox - bdmtoolbox. Binary version of the toolbox is available see \ref install.

The predefined scenarios are:
 - <b>Data simulation</b>: a task that arise in modelling of real physical experiment. For example, this scenario allows empirical comparison of observed and simulated data. 
 - <b>Sequential estimation</b>: the previous scenario is extended by on-line estimation of model parameters. It allows to run multiple estimators in parallel allowing their mutual comparison.
 - <b>Closed loop</b>: sequantial estimation from previous step is complemneted by adaptive controller (or decision maker) that designs control strategy for the next step.

Mex files for some atomic operations with internal objects are provided for comfortable definition of an experiment and analysis.
These functions are not efficient for use in repettitive way.

These scenarios may serve as a starting point for advanced users who can design specific algorithms tailored for given application domain.

A tutorial how to run the scenarios are:

 - \ref userguide_pdf
 - \ref userguide_sim
 - \ref userguide_estim

*/
