void b_mldivide(const real32_T A[16], const emxArray_real32_T *B, emxArray_real32_T *Y) { int32_T i4; if (B->size[1] == 0) { i4 = Y->size[0] * Y->size[1]; Y->size[0] = 4; Y->size[1] = 0; emxEnsureCapacity((emxArray__common *)Y, i4, (int32_T)sizeof(real32_T)); } else { b_eml_lusolve(A, B, Y); } }
void mldivide(const emlrtStack *sp, const emxArray_real_T *A, const emxArray_real_T *B, emxArray_real_T *Y) { const mxArray *y; static const int32_T iv77[2] = { 1, 21 }; const mxArray *m13; char_T cv74[21]; int32_T i; static const char_T cv75[21] = { 'C', 'o', 'd', 'e', 'r', ':', 'M', 'A', 'T', 'L', 'A', 'B', ':', 'd', 'i', 'm', 'a', 'g', 'r', 'e', 'e' }; emxArray_real_T *b_B; emxArray_real_T *r17; uint32_T unnamed_idx_0; int32_T loop_ub; emlrtStack st; st.prev = sp; st.tls = sp->tls; emlrtHeapReferenceStackEnterFcnR2012b(sp); if (B->size[0] == A->size[0]) { } else { y = NULL; m13 = emlrtCreateCharArray(2, iv77); for (i = 0; i < 21; i++) { cv74[i] = cv75[i]; } emlrtInitCharArrayR2013a(sp, 21, m13, cv74); emlrtAssign(&y, m13); st.site = &xf_emlrtRSI; error(&st, message(&st, y, &bb_emlrtMCI), &bb_emlrtMCI); } b_emxInit_real_T(sp, &b_B, 1, &tb_emlrtRTEI, true); b_emxInit_real_T(sp, &r17, 1, &tb_emlrtRTEI, true); if ((A->size[0] == 0) || (A->size[1] == 0) || (B->size[0] == 0)) { unnamed_idx_0 = (uint32_T)A->size[1]; i = Y->size[0]; Y->size[0] = (int32_T)unnamed_idx_0; emxEnsureCapacity(sp, (emxArray__common *)Y, i, (int32_T)sizeof(real_T), &tb_emlrtRTEI); loop_ub = (int32_T)unnamed_idx_0; for (i = 0; i < loop_ub; i++) { Y->data[i] = 0.0; } } else if (A->size[0] == A->size[1]) { i = Y->size[0]; Y->size[0] = B->size[0]; emxEnsureCapacity(sp, (emxArray__common *)Y, i, (int32_T)sizeof(real_T), &tb_emlrtRTEI); loop_ub = B->size[0]; for (i = 0; i < loop_ub; i++) { Y->data[i] = B->data[i]; } st.site = &xf_emlrtRSI; b_eml_lusolve(&st, A, Y); } else { i = b_B->size[0]; b_B->size[0] = B->size[0]; emxEnsureCapacity(sp, (emxArray__common *)b_B, i, (int32_T)sizeof(real_T), &tb_emlrtRTEI); loop_ub = B->size[0]; for (i = 0; i < loop_ub; i++) { b_B->data[i] = B->data[i]; } st.site = &xf_emlrtRSI; c_eml_qrsolve(&st, A, b_B, r17); i = Y->size[0]; Y->size[0] = r17->size[0]; emxEnsureCapacity(sp, (emxArray__common *)Y, i, (int32_T)sizeof(real_T), &tb_emlrtRTEI); loop_ub = r17->size[0]; for (i = 0; i < loop_ub; i++) { Y->data[i] = r17->data[i]; } } emxFree_real_T(&r17); emxFree_real_T(&b_B); emlrtHeapReferenceStackLeaveFcnR2012b(sp); }