/* * File: _coder_targetSpec_api.c * * MATLAB Coder version : 2.8 * C/C++ source code generated on : 03-Aug-2016 03:43:08 */ /* Include Files */ #include "tmwtypes.h" #include "_coder_targetSpec_api.h" /* Variable Definitions */ emlrtCTX emlrtRootTLSGlobal = NULL; emlrtContext emlrtContextGlobal = { true, false, 131418U, NULL, "targetSpec", 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 const mxArray *b_emlrt_marshallOut(const emxArray_real_T *u); static real_T c_emlrt_marshallIn(const emlrtStack *sp, const mxArray *src, const emlrtMsgIdentifier *msgId); static real_T emlrt_marshallIn(const emlrtStack *sp, const mxArray *agC, 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); /* 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 = c_emlrt_marshallIn(sp, emlrtAlias(u), parentId); emlrtDestroyArray(&u); return y; } /* * Arguments : const emxArray_real_T *u * Return Type : const mxArray * */ static const mxArray *b_emlrt_marshallOut(const emxArray_real_T *u) { const mxArray *y; static const int32_T iv0[2] = { 0, 0 }; const mxArray *m1; y = NULL; m1 = emlrtCreateNumericArray(2, iv0, mxDOUBLE_CLASS, mxREAL); mxSetData((mxArray *)m1, (void *)u->data); emlrtSetDimensions((mxArray *)m1, u->size, 2); emlrtAssign(&y, m1); return y; } /* * Arguments : const emlrtStack *sp * const mxArray *src * const emlrtMsgIdentifier *msgId * Return Type : real_T */ static real_T c_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 *agC * const char_T *identifier * Return Type : real_T */ static real_T emlrt_marshallIn(const emlrtStack *sp, const mxArray *agC, const char_T *identifier) { real_T y; emlrtMsgIdentifier thisId; thisId.fIdentifier = identifier; thisId.fParent = NULL; y = b_emlrt_marshallIn(sp, emlrtAlias(agC), &thisId); emlrtDestroyArray(&agC); 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 mxArray * const prhs[8] * const mxArray *plhs[3] * Return Type : void */ void targetSpec_api(const mxArray * const prhs[8], const mxArray *plhs[3]) { emxArray_real_T *tSpec; emxArray_real_T *PerTgt; real_T agC; real_T Rls; real_T T1; real_T T1dej; real_T nX; real_T M_mean; real_T R_mean; real_T ecSoilCode; real_T eps_bar; emlrtStack st = { NULL, NULL, NULL }; st.tls = emlrtRootTLSGlobal; emlrtHeapReferenceStackEnterFcnR2012b(&st); emxInit_real_T(&st, &tSpec, 2, true); emxInit_real_T(&st, &PerTgt, 2, true); /* Marshall function inputs */ agC = emlrt_marshallIn(&st, emlrtAliasP(prhs[0]), "agC"); Rls = emlrt_marshallIn(&st, emlrtAliasP(prhs[1]), "Rls"); T1 = emlrt_marshallIn(&st, emlrtAliasP(prhs[2]), "T1"); T1dej = emlrt_marshallIn(&st, emlrtAliasP(prhs[3]), "T1dej"); nX = emlrt_marshallIn(&st, emlrtAliasP(prhs[4]), "nX"); M_mean = emlrt_marshallIn(&st, emlrtAliasP(prhs[5]), "M_mean"); R_mean = emlrt_marshallIn(&st, emlrtAliasP(prhs[6]), "R_mean"); ecSoilCode = emlrt_marshallIn(&st, emlrtAliasP(prhs[7]), "ecSoilCode"); /* Invoke the target function */ targetSpec(agC, Rls, T1, T1dej, nX, M_mean, R_mean, ecSoilCode, &eps_bar, tSpec, PerTgt); /* Marshall function outputs */ plhs[0] = emlrt_marshallOut(eps_bar); plhs[1] = b_emlrt_marshallOut(tSpec); plhs[2] = b_emlrt_marshallOut(PerTgt); PerTgt->canFreeData = false; emxFree_real_T(&PerTgt); tSpec->canFreeData = false; emxFree_real_T(&tSpec); emlrtHeapReferenceStackLeaveFcnR2012b(&st); } /* * Arguments : void * Return Type : void */ void targetSpec_atexit(void) { emlrtStack st = { NULL, NULL, NULL }; emlrtCreateRootTLS(&emlrtRootTLSGlobal, &emlrtContextGlobal, NULL, 1); st.tls = emlrtRootTLSGlobal; emlrtEnterRtStackR2012b(&st); emlrtLeaveRtStackR2012b(&st); emlrtDestroyRootTLS(&emlrtRootTLSGlobal); targetSpec_xil_terminate(); } /* * Arguments : void * Return Type : void */ void targetSpec_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 targetSpec_terminate(void) { emlrtStack st = { NULL, NULL, NULL }; st.tls = emlrtRootTLSGlobal; emlrtLeaveRtStackR2012b(&st); emlrtDestroyRootTLS(&emlrtRootTLSGlobal); } /* * File trailer for _coder_targetSpec_api.c * * [EOF] */