Show
Ignore:
Timestamp:
06/09/10 14:00:40 (14 years ago)
Author:
mido
Message:

astyle applied all over the library

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • library/bdm/mex/mex_BM.h

    r944 r1064  
    11#include <mex/mex_parser.h> 
    22#include <mex/mex_pdf.h> 
    3 class mexBM: public BM{ 
    4         protected: 
    5                 mxArray *data; 
    6                 mexEpdf est; 
    7         public: 
    8                 mexBM() {}; 
    9                 void from_setting(const Setting &S)  { 
    10                         Setting &So=S["object"]; 
    11                         data = (mxArray*)long(So); 
    12                 }  
    13                 void validate() { 
    14                         mxArray *tmp; 
    15                         mexCallMATLAB(1, &tmp, 1, &data,  "validate"); 
    16                         // new object is in tmp 
    17                         data = tmp; 
    18                          
    19                         mexCallMATLAB(1, &tmp, 1, &data, "dimensions"); 
    20                         vec v=mxArray2vec(tmp); 
    21                         if (v.length()<3) {bdm_error("Three dimensions are expected in mexBM.dimensions");} 
    22                         set_dim(v(0)); 
    23                         dimy = v(1); 
    24                         dimc = v(2); 
    25                          
    26                         mexCallMATLAB(1, &tmp, 1, &data, "get_rv"); 
    27                         UImxArray rvtmp(tmp); 
    28                         shared_ptr<RV> r = UI::build<RV>(rvtmp); 
    29                         set_rv(*r); 
    30                          
    31                         mexCallMATLAB(1, &tmp, 1, &data, "get_rvc"); 
    32                         UImxArray rvtmpc(tmp); 
    33                         shared_ptr<RV> rc = UI::build<RV>(rvtmpc); 
    34                         rvtmpc.writeFile("tmpc.cfg"); 
    35                         rvc=*rc; 
    36                          
    37                         mexCallMATLAB(1, &tmp, 1, &data, "get_rvy"); 
    38                         UImxArray rvtmpy(tmp); 
    39                         rvtmpy.writeFile("tmpy.cfg"); 
    40                         shared_ptr<RV> ry = UI::build<RV>(rvtmpy); 
    41                         yrv = *ry; 
    42                          
    43                 } 
    44                 void bayes(const vec &dt, const vec &cond) { 
    45                         mxArray *tmp; 
    46                         mxArray *in[3]; 
    47                         in[0]=data; 
    48                         in[1]=mxCreateDoubleMatrix(dt.length(),1,mxREAL); 
    49                         vec2mxArray(dt,in[1]); 
    50                         in[2]=mxCreateDoubleMatrix(cond.length(),1,mxREAL); 
    51                         vec2mxArray(cond,in[2]); 
    52                          
    53                         mexCallMATLAB(1, &tmp, 3, in, "bayes"); 
    54                         data = tmp; 
    55                 } 
    56                 epdf* predictor(const vec &cond) const { 
    57                         mxArray *tmp; 
    58                         mxArray *in[3]; 
    59                         in[0]=data; 
    60                         in[1]=mxCreateDoubleMatrix(cond.length(),1,mxREAL); 
    61                         vec2mxArray(cond,in[1]); 
    62                          
    63                         mexCallMATLAB(1, &tmp, 3, in, "predictor"); 
    64                          
    65                         UImxArray uitmp(tmp); 
    66                         shared_ptr<epdf> pred = UI::build<epdf>(uitmp); 
    67                         return pred.get(); 
    68                         // 
    69                 } 
    70                 const epdf& posterior() const { 
    71                         mxArray *tmp; 
    72                         mexCallMATLAB(1, &tmp, 1,(mxArray **) &data,  "posterior"); 
    73                         const_cast<mexEpdf*>(&est)->set_data(tmp); 
    74                         return est; 
    75                 } 
     3class mexBM: public BM { 
     4protected: 
     5    mxArray *data; 
     6    mexEpdf est; 
     7public: 
     8    mexBM() {}; 
     9    void from_setting(const Setting &S)  { 
     10        Setting &So=S["object"]; 
     11        data = (mxArray*)long(So); 
     12    } 
     13    void validate() { 
     14        mxArray *tmp; 
     15        mexCallMATLAB(1, &tmp, 1, &data,  "validate"); 
     16        // new object is in tmp 
     17        data = tmp; 
     18 
     19        mexCallMATLAB(1, &tmp, 1, &data, "dimensions"); 
     20        vec v=mxArray2vec(tmp); 
     21        if (v.length()<3) { 
     22            bdm_error("Three dimensions are expected in mexBM.dimensions"); 
     23        } 
     24        set_dim(v(0)); 
     25        dimy = v(1); 
     26        dimc = v(2); 
     27 
     28        mexCallMATLAB(1, &tmp, 1, &data, "get_rv"); 
     29        UImxArray rvtmp(tmp); 
     30        shared_ptr<RV> r = UI::build<RV>(rvtmp); 
     31        set_rv(*r); 
     32 
     33        mexCallMATLAB(1, &tmp, 1, &data, "get_rvc"); 
     34        UImxArray rvtmpc(tmp); 
     35        shared_ptr<RV> rc = UI::build<RV>(rvtmpc); 
     36        rvtmpc.writeFile("tmpc.cfg"); 
     37        rvc=*rc; 
     38 
     39        mexCallMATLAB(1, &tmp, 1, &data, "get_rvy"); 
     40        UImxArray rvtmpy(tmp); 
     41        rvtmpy.writeFile("tmpy.cfg"); 
     42        shared_ptr<RV> ry = UI::build<RV>(rvtmpy); 
     43        yrv = *ry; 
     44 
     45    } 
     46    void bayes(const vec &dt, const vec &cond) { 
     47        mxArray *tmp; 
     48        mxArray *in[3]; 
     49        in[0]=data; 
     50        in[1]=mxCreateDoubleMatrix(dt.length(),1,mxREAL); 
     51        vec2mxArray(dt,in[1]); 
     52        in[2]=mxCreateDoubleMatrix(cond.length(),1,mxREAL); 
     53        vec2mxArray(cond,in[2]); 
     54 
     55        mexCallMATLAB(1, &tmp, 3, in, "bayes"); 
     56        data = tmp; 
     57    } 
     58    epdf* predictor(const vec &cond) const { 
     59        mxArray *tmp; 
     60        mxArray *in[3]; 
     61        in[0]=data; 
     62        in[1]=mxCreateDoubleMatrix(cond.length(),1,mxREAL); 
     63        vec2mxArray(cond,in[1]); 
     64 
     65        mexCallMATLAB(1, &tmp, 3, in, "predictor"); 
     66 
     67        UImxArray uitmp(tmp); 
     68        shared_ptr<epdf> pred = UI::build<epdf>(uitmp); 
     69        return pred.get(); 
     70        // 
     71    } 
     72    const epdf& posterior() const { 
     73        mxArray *tmp; 
     74        mexCallMATLAB(1, &tmp, 1,(mxArray **) &data,  "posterior"); 
     75        const_cast<mexEpdf*>(&est)->set_data(tmp); 
     76        return est; 
     77    } 
    7678}; 
    7779UIREGISTER(mexBM);