void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[] ) { struct input *X; char docname[MAXPATH]; mxArray *mx_string; int status; if(nrhs != 1) mexErrMsgIdAndTxt("STAToolkit:staRead:numArgs","1 input argument required."); if(nlhs != 1) mexErrMsgIdAndTxt("STAToolkit:staRead:numArgs","1 output argument required."); /* Read in the file name from the Matlab world */ mx_string = mxDuplicateArray(prhs[0]); mxStringToCString(mx_string,docname); /* Allocate memory for X */ X = (struct input *)malloc(sizeof(struct input)); /* memory freed in staReadComp if it returns EXIT_FAILURE */ /* Call fillSwatches */ status = staReadComp(docname,X); if(status==EXIT_FAILURE) mexErrMsgIdAndTxt("STAToolkit:staRead:failure","staRead failed."); /* Pass X into the Matlab world */ plhs[0] = WriteInput(X,1); FreeInput(X); return; }
BOOL WINAPI CtrlHandler(DWORD CtrlType) { switch(CtrlType) { case CTRL_C_EVENT: return TRUE; case CTRL_BREAK_EVENT: if(!CancelIoInProgress().Signaled()) { CancelIoInProgress().Set(); Thread(&Thread::detach, &CancelSynchronousIoWrapper, Global->MainThreadHandle()); } WriteInput(KEY_BREAK); if (Global->CtrlObject && Global->CtrlObject->Cp()) { if (Global->CtrlObject->Cp()->LeftPanel && Global->CtrlObject->Cp()->LeftPanel->GetMode()==PLUGIN_PANEL) Global->CtrlObject->Plugins->ProcessEvent(Global->CtrlObject->Cp()->LeftPanel->GetPluginHandle(),FE_BREAK, ToPtr(CtrlType)); if (Global->CtrlObject->Cp()->RightPanel && Global->CtrlObject->Cp()->RightPanel->GetMode()==PLUGIN_PANEL) Global->CtrlObject->Plugins->ProcessEvent(Global->CtrlObject->Cp()->RightPanel->GetPluginHandle(),FE_BREAK, ToPtr(CtrlType)); } return TRUE; case CTRL_CLOSE_EVENT: Global->CloseFAR=TRUE; Global->AllowCancelExit=FALSE; // trick to let wmain() finish correctly ExitThread(1); //return TRUE; } return FALSE; }
void WriteFullProcMLP::Loop() { std::cout << "Loop varSet = " << varSet << std::endl; addVariables(); FillMLP(varSet); WriteHeader(); WriteInput(); WriteCategory(); WriteCount("var1", "input", "trackSip2dSig"); //********Chunk for Combined BvsDUSG and BvsC starts*********** WriteNormalize(); WriteSplitters(); if (writeSplittersForNonMultiple) WriteSplittersForNonMultiple(); WriteLRx(); WriteLRall(); WriteLRsplit(); WriteOptional(); if (writeMatrices) {WriteMatrices(); WriteOutput("input", "jetPt"); return;} WriteProcMLP(mlp); WriteBiasNorm(procBiasNorm+tagVtx, "var1", procMLP+tagVtx, "var1"); WriteLRBias(procLike+tagVtx, "var1", procBiasNorm+tagVtx, "var1"); //********Chunk for Combined BvsDUSG and BvsC starts*********** if (Flavour != "Combined") { WriteOutput(procLike+tagVtx, "var1"); return; } tagVtx = "C"; //Need to reset Vector for ProcOptional Oprocess.clear(); Oid.clear(); //Need to reset mlp with the corresponding variables with C instead of "DUSG" tag FillMLP(varSet); //For combined xml, copy previuos structure from WriteNormalize to WriteLRBias // then add ProcLinear and output //**************Insert here Chunk for Combined: begin************** WriteNormalize(); WriteSplitters(); if (writeSplittersForNonMultiple) WriteSplittersForNonMultiple(); WriteLRx(); WriteLRall(); WriteLRsplit(); WriteOptional(); if (writeMatrices) {WriteMatrices(); WriteOutput("input", "jetPt"); return;} WriteProcMLP(mlp); WriteBiasNorm(procBiasNorm+tagVtx, "var1", procMLP+tagVtx, "var1"); WriteLRBias(procLike+tagVtx, "var1", procBiasNorm+tagVtx, "var1"); //**************Insert here Chunk for Combined: end**************** WriteLinear(); WriteOutput(procLinear, "var1"); }
void SetInput(NET* Net, INT* Input, BOOL Protocoling) { INT i; for (i=1; i<=Net->InputLayer->Units; i++) { Net->InputLayer->Output[i] = Input[i-1]; } if (Protocoling) { WriteInput(Net, Input); } }
BOOL WINAPI CtrlHandler(DWORD CtrlType) { switch(CtrlType) { case CTRL_C_EVENT: return TRUE; case CTRL_BREAK_EVENT: if(!CancelIoInProgress.Signaled()) { CancelIoInProgress.Set(); HANDLE Thread = CreateThread(nullptr, 0, CancelSynchronousIoWrapper, MainThreadHandle, 0, nullptr); if (Thread) { CloseHandle(Thread); } } WriteInput(KEY_BREAK); if (CtrlObject && CtrlObject->Cp()) { if (CtrlObject->Cp()->LeftPanel && CtrlObject->Cp()->LeftPanel->GetMode()==PLUGIN_PANEL) CtrlObject->Plugins->ProcessEvent(CtrlObject->Cp()->LeftPanel->GetPluginHandle(),FE_BREAK, ToPtr(CtrlType)); if (CtrlObject->Cp()->RightPanel && CtrlObject->Cp()->RightPanel->GetMode()==PLUGIN_PANEL) CtrlObject->Plugins->ProcessEvent(CtrlObject->Cp()->RightPanel->GetPluginHandle(),FE_BREAK, ToPtr(CtrlType)); } return TRUE; case CTRL_CLOSE_EVENT: CloseFAR=TRUE; AllowCancelExit=FALSE; // trick to let wmain() finish correctly ExitThread(1); //return TRUE; } return FALSE; }
void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[] ) { struct input *X,*Y; int n,N; double *vec_double; int *vec; if(nrhs != 2) mexErrMsgIdAndTxt("SpikeInfo:MultiSiteSubset:numArgs","2 input arguments required."); if(nlhs != 1) mexErrMsgIdAndTxt("SpikeInfo:MultiSiteSubset:numArgs","1 output argument required."); X = ReadInput(prhs[0]); N = mxGetNumberOfElements(prhs[1]); vec_double = mxGetPr(prhs[1]); vec = (int *)mxMalloc(N*sizeof(int)); for(n=0;n<N;n++) { vec[n] = ((int)vec_double[n])-1; if(vec[n]>=X[0].N) { mxFreeInput(X); mxFree(vec); mexErrMsgIdAndTxt("SpikeInfo:MultiSiteSubset:outOfRange","Index in vec exceeds number of sites in X."); } } Y = MultiSiteSubsetComp(X,vec,N); plhs[0]=WriteInput(Y,1); mxFreeInput(X); mxFree(vec); return; }