root/library/bdm/mex/mex_pdf.h @ 1064

Revision 1064, 1.4 kB (checked in by mido, 14 years ago)

astyle applied all over the library

Line 
1class mexEpdf: public epdf {
2protected:
3    mxArray *data;
4public:
5    mexEpdf() {};
6    void from_setting(const Setting &S)  {
7        Setting &So=S["object"];
8        data = (mxArray*)long(So);
9    }
10    void set_data(mxArray * tmp) {
11        data=tmp;
12    }
13    void validate() {
14        mexCallMATLAB(0, 0, 1, &data,  "validate");
15        mxArray *tmp;
16        mexCallMATLAB(1, &tmp, 1, &data, "dimension");
17        dim = mxArray2double(tmp);
18        mexCallMATLAB(1, &tmp, 1, &data, "get_rv");
19        UImxArray rvtmp(tmp);
20        shared_ptr<RV> r=UI::build<RV>(rvtmp);
21        if (r) {
22            set_rv(*r);
23        }
24    }
25    vec mean() const {
26        mxArray *tmp;
27        mexCallMATLAB(1, &tmp, 1, (mxArray **) &data, "mean");
28        return mxArray2vec(tmp);
29    }
30    vec sample() const {
31        mxArray *tmp;
32        mexCallMATLAB(1, &tmp, 1, (mxArray **) &data, "sample");
33        return mxArray2vec(tmp);
34    }
35    double evallog(const vec &dt) const {
36        mxArray *tmp;
37        mxArray *in[2];
38        in[0]=data;
39        in[1]=mxCreateDoubleMatrix(dimension(),1,mxREAL);
40        vec2mxArray(dt,in[1]);
41        mexCallMATLAB(1, &tmp, 2, in, "evallog");
42        return mxArray2double(tmp);
43    }
44    vec variance() const {
45        mxArray *tmp;
46        mexCallMATLAB(1, &tmp, 1, (mxArray **) &data, "variance");
47        return mxArray2vec(tmp);
48    }
49};
50UIREGISTER(mexEpdf);
Note: See TracBrowser for help on using the browser.