00001
00014 #ifndef ARX_UI_H
00015 #define ARX_UI_H
00016
00017
00018 #include "arx.h"
00019 #include "stat/loggers_ui.h"
00020
00041 class UIARX : public UIbuilder {
00042 public:
00043 UIARX() :UIbuilder ( "ARXest" ) {};
00044 bdmroot* build ( Setting &S ) const {
00045 RV *yrv; UIbuild(S["y"],yrv);
00046 RV *rrv; UIbuild(S["rgr"],rrv);
00047 int ylen = yrv->_dsize();
00048 int rgrlen = rrv->_dsize();
00049
00050
00051 mat V0;
00052 if ( S.exists ( "dV0" ) ) {
00053 V0=diag ( getvec(S["dV0"]) );
00054 }
00055 else {
00056 V0=concat ( 1e-3*ones ( ylen ), 1e-5*ones ( rgrlen ) );
00057 }
00058 double nu0;
00059 if ( S.exists ( "nu0" ) ) {
00060 nu0=double(S["nu0"]);
00061 }
00062 else {
00063 nu0 = rgrlen+ylen+2;
00064 }
00065 double frg;
00066 if ( S.exists ( "frg" ) ) {
00067 frg = S["frg"];
00068 }
00069 else {
00070 frg = 1.0;
00071 }
00072 ARX* A=new ARX;
00073 A->set_parameters(frg);
00074 A->set_statistics(ylen,V0, nu0);
00075 A->set_drv(concat(*yrv,*rrv));
00076
00077
00078 A->set_rv(RV("{theta r }", vec_2(ylen*rgrlen, ylen*ylen)));
00079 delete yrv; delete rrv;
00080 return A;
00081 };
00082 };
00083
00084 UIREGISTER ( UIARX );
00085
00086 #endif // DS_UI_H