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 #endif // DS_UI_H