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