00001 
00013 #ifndef DS_UI_H
00014 #define DS_UI_H
00015 
00016 
00017 #include "libDS.h"
00018 #include "stat/loggers_ui.h"
00019 
00051 class UIArxDS : public UIbuilder {
00052 public:
00053         UIArxDS() :UIbuilder ( "ArxDS" ) {};
00054         bdmroot* build ( Setting &S ) const {
00055                 RV *yrv; UIbuild(S["y"],yrv);
00056                 RV *urv; UIbuild(S["u"],urv);
00057                 RV *rrv; UIbuild(S["rgr"],rrv);
00058                 
00059                 ArxDS* tmp = new ArxDS;
00060                 mat Th=getmat ( S["theta"], rrv->_dsize() );
00061                 vec mu0;
00062                 if ( S.exists ( "offset" ) ) {
00063                         mu0=getvec ( S["offset"] );
00064                 }
00065                 else {
00066                         mu0=zeros ( yrv->_dsize() );
00067                 }
00068                 chmat sqR ( getmat ( S["r"],yrv->_dsize() ) );
00069                 tmp->set_parameters ( Th,mu0,sqR );
00070                 tmp->set_drv(*yrv,*urv,*rrv);
00071                 if (S.exists("opt")){tmp->set_options(S["opt"]);}
00072                 return tmp;
00073         };
00074 };
00075 
00076 UIREGISTER ( UIArxDS );
00077 
00108 class UIstateDS : public UIbuilder {
00109         public:
00110                 UIstateDS() :UIbuilder ( "stateDS" ) {};
00111                 bdmroot* build ( Setting &S ) const {
00112                         RV* rvtmp;
00113                         UIbuild(S["IM"]["rvu"], rvtmp);
00114                         mpdf* IM;
00115                         UIbuild(S["IM"],IM);
00116                         mpdf* OM;
00117                         UIbuild(S["OM"],OM);
00118                         stateDS *DS=new stateDS(IM,OM,0);
00119                         
00120                         return DS;
00121                 }
00122 };
00123 UIREGISTER ( UIstateDS );
00124 
00131 class UIITppFileDS : public UIbuilder {
00132         public:
00133                 UIITppFileDS() :UIbuilder ( "ITppFileDS" ) {};
00134                 bdmroot* build ( Setting &S ) const {
00135                         RV* rvtmp;
00136                         UIbuild(S["rv"], rvtmp);
00137                         ITppFileDS *DS=new ITppFileDS(S["filename"],S["varname"]);
00138                         DS->set_drv(*rvtmp,RV());
00139                         return DS;
00140                 }
00141 };
00142 UIREGISTER ( UIITppFileDS );
00143 
00144 #endif // DS_UI_H