/* marg_table.c ../potential/tables */ /******************************************/ /* 5 input & 1 output */ /* Big table */ /* Big domain */ /* Big sizes */ /* onto */ /* maximize, if missed, maximize=0 */ /* */ /* small table */ /******************************************/ #include "mex.h" void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]){ int i, j, count, NB, NS, siz_b, siz_s, ndim, temp, maximize; int *mask, *sx, *sy, *cpsy, *subs, *s, *cpsy2, *ssize; double *pb, *ps, *bp, *sp, *pbd; siz_b = mxGetNumberOfElements(prhs[1]); siz_s = mxGetNumberOfElements(prhs[3]); pb = mxGetPr(prhs[1]); ps = mxGetPr(prhs[3]); NB = mxGetNumberOfElements(prhs[0]); bp = mxGetPr(prhs[0]); pbd = mxGetPr(prhs[2]); if(nrhs < 5) maximize = 0; else maximize = (int)mxGetScalar(prhs[4]); if(siz_s == 0){ plhs[0] = mxCreateDoubleMatrix(1, 1, mxREAL); sp = mxGetPr(plhs[0]); if(maximize){ for(i=0; i