//----------------------------------------------------------------------------- static double RandGauss(void) // standard normal random number { double r = 0; for (int i = 0; i < 12; i++) // by central limit theorem sum of uniforms is gaussian r += RandUniform(); return r / 2; }
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; }