/* * File: _coder_imc_api.c * * MATLAB Coder version : 2.8 * C/C++ source code generated on : 03-Aug-2016 03:44:06 */ /* Include Files */ #include "tmwtypes.h" #include "_coder_imc_api.h" /* Variable Definitions */ emlrtCTX emlrtRootTLSGlobal = NULL; emlrtContext emlrtContextGlobal = { true, false, 131418U, NULL, "imc", NULL, false, { 2045744189U, 2170104910U, 2743257031U, 4284093946U }, NULL }; /* Function Declarations */ static real_T b_emlrt_marshallIn(const emlrtStack *sp, const mxArray *u, const emlrtMsgIdentifier *parentId); static void c_emlrt_marshallIn(const emlrtStack *sp, const mxArray *kpn_x, const char_T *identifier, emxArray_real_T *y); static void d_emlrt_marshallIn(const emlrtStack *sp, const mxArray *u, const emlrtMsgIdentifier *parentId, emxArray_real_T *y); static real_T e_emlrt_marshallIn(const emlrtStack *sp, const mxArray *src, const emlrtMsgIdentifier *msgId); static real_T emlrt_marshallIn(const emlrtStack *sp, const mxArray *lambdaCt, const char_T *identifier); static const mxArray *emlrt_marshallOut(const real_T u); static void emxFree_real_T(emxArray_real_T **pEmxArray); static void emxInit_real_T(const emlrtStack *sp, emxArray_real_T **pEmxArray, int32_T numDimensions, boolean_T doPush); static void f_emlrt_marshallIn(const emlrtStack *sp, const mxArray *src, const emlrtMsgIdentifier *msgId, emxArray_real_T *ret); /* Function Definitions */ /* * Arguments : const emlrtStack *sp * const mxArray *u * const emlrtMsgIdentifier *parentId * Return Type : real_T */ static real_T b_emlrt_marshallIn(const emlrtStack *sp, const mxArray *u, const emlrtMsgIdentifier *parentId) { real_T y; y = e_emlrt_marshallIn(sp, emlrtAlias(u), parentId); emlrtDestroyArray(&u); return y; } /* * Arguments : const emlrtStack *sp * const mxArray *kpn_x * const char_T *identifier * emxArray_real_T *y * Return Type : void */ static void c_emlrt_marshallIn(const emlrtStack *sp, const mxArray *kpn_x, const char_T *identifier, emxArray_real_T *y) { emlrtMsgIdentifier thisId; thisId.fIdentifier = identifier; thisId.fParent = NULL; d_emlrt_marshallIn(sp, emlrtAlias(kpn_x), &thisId, y); emlrtDestroyArray(&kpn_x); } /* * Arguments : const emlrtStack *sp * const mxArray *u * const emlrtMsgIdentifier *parentId * emxArray_real_T *y * Return Type : void */ static void d_emlrt_marshallIn(const emlrtStack *sp, const mxArray *u, const emlrtMsgIdentifier *parentId, emxArray_real_T *y) { f_emlrt_marshallIn(sp, emlrtAlias(u), parentId, y); emlrtDestroyArray(&u); } /* * Arguments : const emlrtStack *sp * const mxArray *src * const emlrtMsgIdentifier *msgId * Return Type : real_T */ static real_T e_emlrt_marshallIn(const emlrtStack *sp, const mxArray *src, const emlrtMsgIdentifier *msgId) { real_T ret; emlrtCheckBuiltInR2012b(sp, msgId, src, "double", false, 0U, 0); ret = *(real_T *)mxGetData(src); emlrtDestroyArray(&src); return ret; } /* * Arguments : const emlrtStack *sp * const mxArray *lambdaCt * const char_T *identifier * Return Type : real_T */ static real_T emlrt_marshallIn(const emlrtStack *sp, const mxArray *lambdaCt, const char_T *identifier) { real_T y; emlrtMsgIdentifier thisId; thisId.fIdentifier = identifier; thisId.fParent = NULL; y = b_emlrt_marshallIn(sp, emlrtAlias(lambdaCt), &thisId); emlrtDestroyArray(&lambdaCt); return y; } /* * Arguments : const real_T u * Return Type : const mxArray * */ static const mxArray *emlrt_marshallOut(const real_T u) { const mxArray *y; const mxArray *m0; y = NULL; m0 = emlrtCreateDoubleScalar(u); emlrtAssign(&y, m0); return y; } /* * Arguments : emxArray_real_T **pEmxArray * Return Type : void */ static void emxFree_real_T(emxArray_real_T **pEmxArray) { if (*pEmxArray != (emxArray_real_T *)NULL) { if (((*pEmxArray)->data != (real_T *)NULL) && (*pEmxArray)->canFreeData) { emlrtFreeMex((void *)(*pEmxArray)->data); } emlrtFreeMex((void *)(*pEmxArray)->size); emlrtFreeMex((void *)*pEmxArray); *pEmxArray = (emxArray_real_T *)NULL; } } /* * Arguments : const emlrtStack *sp * emxArray_real_T **pEmxArray * int32_T numDimensions * boolean_T doPush * Return Type : void */ static void emxInit_real_T(const emlrtStack *sp, emxArray_real_T **pEmxArray, int32_T numDimensions, boolean_T doPush) { emxArray_real_T *emxArray; int32_T i; *pEmxArray = (emxArray_real_T *)emlrtMallocMex(sizeof(emxArray_real_T)); if (doPush) { emlrtPushHeapReferenceStackR2012b(sp, (void *)pEmxArray, (void (*)(void *)) emxFree_real_T); } emxArray = *pEmxArray; emxArray->data = (real_T *)NULL; emxArray->numDimensions = numDimensions; emxArray->size = (int32_T *)emlrtMallocMex((uint32_T)(sizeof(int32_T) * numDimensions)); emxArray->allocatedSize = 0; emxArray->canFreeData = true; for (i = 0; i < numDimensions; i++) { emxArray->size[i] = 0; } } /* * Arguments : const emlrtStack *sp * const mxArray *src * const emlrtMsgIdentifier *msgId * emxArray_real_T *ret * Return Type : void */ static void f_emlrt_marshallIn(const emlrtStack *sp, const mxArray *src, const emlrtMsgIdentifier *msgId, emxArray_real_T *ret) { int32_T iv0[1]; boolean_T bv0[1] = { true }; static const int32_T iv1[1] = { -1 }; emlrtCheckVsBuiltInR2012b(sp, msgId, src, "double", false, 1U, iv1, &bv0[0], iv0); ret->size[0] = iv0[0]; ret->allocatedSize = ret->size[0]; ret->data = (real_T *)mxGetData(src); ret->canFreeData = false; emlrtDestroyArray(&src); } /* * Arguments : const mxArray *prhs[5] * const mxArray *plhs[2] * Return Type : void */ void imc_api(const mxArray *prhs[5], const mxArray *plhs[2]) { emxArray_real_T *kpn_x; emxArray_real_T *kpn_y; real_T lambdaCt; real_T betaC; real_T TRagR; real_T imr; real_T b_imc; emlrtStack st = { NULL, NULL, NULL }; st.tls = emlrtRootTLSGlobal; emlrtHeapReferenceStackEnterFcnR2012b(&st); emxInit_real_T(&st, &kpn_x, 1, true); emxInit_real_T(&st, &kpn_y, 1, true); prhs[1] = emlrtProtectR2012b(prhs[1], 1, false, -1); prhs[2] = emlrtProtectR2012b(prhs[2], 2, false, -1); /* Marshall function inputs */ lambdaCt = emlrt_marshallIn(&st, emlrtAliasP(prhs[0]), "lambdaCt"); c_emlrt_marshallIn(&st, emlrtAlias(prhs[1]), "kpn_x", kpn_x); c_emlrt_marshallIn(&st, emlrtAlias(prhs[2]), "kpn_y", kpn_y); betaC = emlrt_marshallIn(&st, emlrtAliasP(prhs[3]), "betaC"); TRagR = emlrt_marshallIn(&st, emlrtAliasP(prhs[4]), "TRagR"); /* Invoke the target function */ imc(lambdaCt, kpn_x, kpn_y, betaC, TRagR, &b_imc, &imr); /* Marshall function outputs */ plhs[0] = emlrt_marshallOut(b_imc); plhs[1] = emlrt_marshallOut(imr); kpn_y->canFreeData = false; emxFree_real_T(&kpn_y); kpn_x->canFreeData = false; emxFree_real_T(&kpn_x); emlrtHeapReferenceStackLeaveFcnR2012b(&st); } /* * Arguments : void * Return Type : void */ void imc_atexit(void) { emlrtStack st = { NULL, NULL, NULL }; emlrtCreateRootTLS(&emlrtRootTLSGlobal, &emlrtContextGlobal, NULL, 1); st.tls = emlrtRootTLSGlobal; emlrtEnterRtStackR2012b(&st); emlrtLeaveRtStackR2012b(&st); emlrtDestroyRootTLS(&emlrtRootTLSGlobal); imc_xil_terminate(); } /* * Arguments : void * Return Type : void */ void imc_initialize(void) { emlrtStack st = { NULL, NULL, NULL }; emlrtCreateRootTLS(&emlrtRootTLSGlobal, &emlrtContextGlobal, NULL, 1); st.tls = emlrtRootTLSGlobal; emlrtClearAllocCountR2012b(&st, false, 0U, 0); emlrtEnterRtStackR2012b(&st); emlrtFirstTimeR2012b(emlrtRootTLSGlobal); } /* * Arguments : void * Return Type : void */ void imc_terminate(void) { emlrtStack st = { NULL, NULL, NULL }; st.tls = emlrtRootTLSGlobal; emlrtLeaveRtStackR2012b(&st); emlrtDestroyRootTLS(&emlrtRootTLSGlobal); } /* * File trailer for _coder_imc_api.c * * [EOF] */