void newcal(){ int i,j; for(i=0;i<N;i++){ for(j=0;j<Dim;j++){ rnew[i][j] = rold[i][j] + (fpold[i][j]*Kb*T*h)/(zi*diam) + sqrt(2.0*Dif*h)*RandNormal(); rnew[i][j] = rnew[i][j] - round(rnew[i][j]/L)*L; } } }
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%// // given rold and fpold, return rnew void newcal(){ int i,j; for(i=0;i<N;i++){ // calculate positions of next time step for(j=0;j<Dim;j++){ rnew[i][j] = rold[i][j] + fpold[i][j]*h + sqrt(2.0*Dif*h)*RandNormal(); // over damped Langevin equation rnew[i][j] = rnew[i][j] - round(rnew[i][j]/L)*L; // making boundaries // apply periodic boundary condition: if rnew[i][j]<L/2 -> rnew[i][j]=rnew[i][j] // : if rnew[i][j]>L/2 -> rnew[i][j]=rnew[i][j]-L } } }
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) { //declare variables double *FunctionID; int functionID; //associate inputs FunctionID = mxGetPr(prhs[0]); functionID = (int) *FunctionID; // Depending on the functionID call the corresponding function switch(functionID){ case 1: // PCAIC { PCAIC(nlhs, plhs, nrhs, prhs); break; } case 2: // PCCDF { PCCDF(nlhs, plhs, nrhs, prhs); break; } case 3: // PCFit { PCFit(nlhs, plhs, nrhs, prhs); break; } case 4: // PCHfun { PCHfun(nlhs, plhs, nrhs, prhs); break; } case 5: // PCIndepTest { PCIndepTest(nlhs, plhs, nrhs, prhs); break; } case 6: // PCInvHfun { PCInvHfun(nlhs, plhs, nrhs, prhs); break; } case 7: // PCInvVfun { PCInvVfun(nlhs, plhs, nrhs, prhs); break; } case 8: // PCNegLL { PCNegLL(nlhs, plhs, nrhs, prhs); break; } case 9: // PCPDF { PCPDF(nlhs, plhs, nrhs, prhs); break; } case 10: // PCRand { PCRand(nlhs, plhs, nrhs, prhs); break; } case 11: // PCSelect { PCSelect(nlhs, plhs, nrhs, prhs); break; } case 12: // PCVfun { PCVfun(nlhs, plhs, nrhs, prhs); break; } case 101: // VineFit { VineFit(nlhs, plhs, nrhs, prhs); break; } case 102: // VineFitSeq { VineFitSeq(nlhs, plhs, nrhs, prhs); break; } case 103: // VineGetPseudoObs { VineGetPseudoObs(nlhs, plhs, nrhs, prhs); break; } case 104: // VineNegLL { VineNegLL(nlhs, plhs, nrhs, prhs); break; } case 105: // VineRand { VineRand(nlhs, plhs, nrhs, prhs); break; } case 106: // VineStructureSelect { VineStructureSelect(nlhs, plhs, nrhs, prhs); break; } case 1001: // CvMTestStatCPP { CvMTestStatCPP(nlhs, plhs, nrhs, prhs); break; } case 1002: // FastKendallTau { FastKendallTau(nlhs, plhs, nrhs, prhs); break; } case 1003: // RandNormal { RandNormal(nlhs, plhs, nrhs, prhs); break; } case 1004: // RandUniform { RandUniform(nlhs, plhs, nrhs, prhs); break; } case 1005: // VineCopulaMatlabSetSeed { VineCopulaMatlabSetSeed(nlhs, plhs, nrhs, prhs); break; } default: { // Place an error here } } return; }