00001
00013 #ifndef BM_H
00014 #define BM_H
00015
00016 #include <itpp/itbase.h>
00017
00018
00019 using namespace itpp;
00020
00026 class RV {
00027 int 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 friend std::ostream &operator<< ( std::ostream &os, const RV &rv );
00043
00045 ivec rvfind(RV rv2);
00047 RV rvadd(RV rv2);
00049 RV rvsubt(RV rv2);
00051 RV rvsubselect(ivec ind);
00053 RV operator()(ivec ind);
00054 };
00055
00056
00057
00058
00060 class fnc {
00061 RV rv;
00062 };
00063
00065 class BM {
00066 public:
00071 virtual void bayes ( const vec &dt, bool evall=true ) = 0;
00073 void bayes ( mat Dt );
00074 };
00075
00077 class epdf {
00078 RV rv;
00079 public:
00081 virtual vec moment ( const int order = 1 );
00082 };
00083
00085 class mpdf {
00087 RV rv;
00089 RV rvc;
00090 public:
00091
00093 virtual fnc moment ( const int order = 1 );
00094 };
00095
00096 #endif // BM_H