00001 00013 #ifndef DS_UI_H 00014 #define DS_UI_H 00015 00016 00017 #include "libDS.h" 00018 #include "stat/loggers_ui.h" 00019 00046 class UImgnorm : public UIbuilder { 00047 public: 00048 UImgnorm() :UIbuilder ( "mgnorm" ) {}; 00049 bdmroot* build ( Setting &S ) const { 00050 mgnorm<chmat>* mgn; 00051 fnc* g; UIbuild ( S["g"],g ); 00052 00053 mat R; 00054 if ( S.exists ( "dR" ) ) {R=diag ( getvec ( S["dR"] ) );} 00055 else { 00056 if ( S.exists ( "R" ) ) {R=getmat ( S["R"],g->dimension() );} 00057 } 00058 00059 mgn->set_parameters(g,R); 00060 return mgn; 00061 }; 00062 }; 00063 00064 UIREGISTER ( UImgnorm); 00065 00086 class UImigamma_ref : public UIbuilder { 00087 public: 00088 UImigamma_ref() :UIbuilder ( "migamma_ref" ) {}; 00089 bdmroot* build ( Setting &S ) const { 00090 migamma_ref* mig=new migamma_ref; 00091 00092 mig->set_parameters(S["k"],getvec(S["ref"]),S["l"]); 00093 return mig; 00094 }; 00095 }; 00096 UIREGISTER ( UImigamma_ref ); 00097 00098 00117 class UImlognorm : public UIbuilder { 00118 public: 00119 UImlognorm() :UIbuilder ( "mlognorm" ) {}; 00120 bdmroot* build ( Setting &S ) const { 00121 mlognorm* mln=new mlognorm; 00122 00123 vec mu0=getvec(S["mu0"]); 00124 mln->set_parameters(mu0.length(),S["k"]); 00125 mln->condition(mu0); 00126 return mln; 00127 }; 00128 }; 00129 UIREGISTER ( UImlognorm ); 00130 00131 #endif // DS_UI_H