work/mixpp/bdm/stat/libBM.h

Go to the documentation of this file.
00001 
00013 #ifndef BM_H
00014 #define BM_H
00015 
00016 #include <itpp/itbase.h>
00017 //#include <std>
00018 
00019 using namespace itpp;
00020 
00026 class RV {
00027         int size,len;
00028         ivec ids;
00029         ivec sizes;
00030         ivec times;
00031         ivec obs;
00032         Array<std::string> names;
00033 
00034 private:
00035         void init ( ivec in_ids, Array<std::string> in_names, ivec in_sizes, ivec in_times, ivec in_obs );
00036 public:
00038         RV ( ivec in_ids, Array<std::string> in_names, ivec in_sizes, ivec in_times, ivec in_obs );
00040         RV ( ivec ids );
00042         RV ();
00043         
00045         friend std::ostream &operator<< ( std::ostream &os, const RV &rv );
00046 
00048         int count() {return size;}
00049         //TODO why not inline and later??
00050         
00052         ivec find(RV rv2);
00054         RV add(RV rv2);
00056         RV subt(RV rv2);
00058         RV subselect(ivec ind);
00060         RV operator()(ivec ind);
00062         void t(int delta);
00063 };
00064 
00065 
00066 
00067 
00069 class fnc {
00070         RV rv;
00071 };
00072 
00074 class BM {
00075 public:
00077         double ll;
00078 
00083         virtual void bayes ( const vec &dt, bool evall=true ) = 0;
00085         void bayes ( mat Dt );
00086 };
00087 
00089 class epdf {
00090         RV rv;
00091 public:
00093 //      virtual vec moment ( const int order = 1 );
00095         virtual vec sample ()=0;
00096         virtual double eval(const vec &val){};
00097 };
00098 
00100 class mpdf {
00102         RV rv;
00104         RV rvc;
00105 public:
00106 
00108 //      virtual fnc moment ( const int order = 1 );
00110         virtual vec samplecond (vec &cond, double lik){};
00111         virtual void condition (vec &cond){};
00112 };
00113 
00120 class DS {
00121 protected:
00123         RV Drv; 
00125         RV Urv; //
00126 public:
00128         void getdata(vec &dt);
00130         void getdata(vec &dt, ivec &indeces);
00132         void write(vec &ut);
00134         void write(vec &ut, ivec &indeces);
00140         void linkrvs(RV &drv, RV &urv);
00141         
00143         void step();
00144 };
00145 
00146 
00147 #endif // BM_H

Generated on Fri Feb 15 18:57:36 2008 for mixpp by  doxygen 1.5.3