/* Function Definitions */ void mldivide(const emlrtStack *sp, const real_T A[16], real_T B[4]) { real_T b_A[16]; int8_T ipiv[4]; int32_T kAcol; int32_T info; int32_T j; int32_T c; int32_T ix; real_T temp; int32_T k; real_T s; int32_T b; int32_T jy; boolean_T b_kAcol; int32_T ijA; emlrtStack st; emlrtStack b_st; emlrtStack c_st; emlrtStack d_st; emlrtStack e_st; emlrtStack f_st; emlrtStack g_st; emlrtStack h_st; emlrtStack i_st; emlrtStack j_st; emlrtStack k_st; emlrtStack l_st; st.prev = sp; st.tls = sp->tls; st.site = &g_emlrtRSI; b_st.prev = &st; b_st.tls = st.tls; c_st.prev = &b_st; c_st.tls = b_st.tls; d_st.prev = &c_st; d_st.tls = c_st.tls; e_st.prev = &d_st; e_st.tls = d_st.tls; f_st.prev = &e_st; f_st.tls = e_st.tls; g_st.prev = &f_st; g_st.tls = f_st.tls; h_st.prev = &g_st; h_st.tls = g_st.tls; i_st.prev = &h_st; i_st.tls = h_st.tls; j_st.prev = &i_st; j_st.tls = i_st.tls; k_st.prev = &j_st; k_st.tls = j_st.tls; l_st.prev = &k_st; l_st.tls = k_st.tls; b_st.site = &h_emlrtRSI; c_st.site = &j_emlrtRSI; d_st.site = &k_emlrtRSI; e_st.site = &l_emlrtRSI; memcpy(&b_A[0], &A[0], sizeof(real_T) << 4); for (kAcol = 0; kAcol < 4; kAcol++) { ipiv[kAcol] = (int8_T)(1 + kAcol); } info = 0; for (j = 0; j < 3; j++) { c = j * 5; f_st.site = &m_emlrtRSI; g_st.site = &p_emlrtRSI; h_st.site = &q_emlrtRSI; kAcol = 0; ix = c; temp = muDoubleScalarAbs(b_A[c]); i_st.site = &r_emlrtRSI; for (k = 2; k <= 4 - j; k++) { ix++; s = muDoubleScalarAbs(b_A[ix]); if (s > temp) { kAcol = k - 1; temp = s; } } if (b_A[c + kAcol] != 0.0) { if (kAcol != 0) { ipiv[j] = (int8_T)((j + kAcol) + 1); ix = j; kAcol += j; for (k = 0; k < 4; k++) { temp = b_A[ix]; b_A[ix] = b_A[kAcol]; b_A[kAcol] = temp; ix += 4; kAcol += 4; } } b = (c - j) + 4; f_st.site = &n_emlrtRSI; for (jy = c + 1; jy + 1 <= b; jy++) { b_A[jy] /= b_A[c]; } } else { info = j + 1; } f_st.site = &o_emlrtRSI; g_st.site = &t_emlrtRSI; h_st.site = &u_emlrtRSI; i_st.site = &v_emlrtRSI; j_st.site = &w_emlrtRSI; kAcol = c; jy = c + 4; for (k = 1; k <= 3 - j; k++) { temp = b_A[jy]; if (b_A[jy] != 0.0) { ix = c + 1; b = (kAcol - j) + 8; k_st.site = &x_emlrtRSI; if (kAcol + 6 > b) { b_kAcol = false; } else { b_kAcol = (b > 2147483646); } if (b_kAcol) { l_st.site = &s_emlrtRSI; check_forloop_overflow_error(&l_st); } for (ijA = kAcol + 5; ijA + 1 <= b; ijA++) { b_A[ijA] += b_A[ix] * -temp; ix++; } } jy += 4; kAcol += 4; } } if ((info == 0) && (!(b_A[15] != 0.0))) { info = 4; } if (info > 0) { c_st.site = &i_emlrtRSI; d_st.site = &y_emlrtRSI; eml_warning(&d_st); } for (kAcol = 0; kAcol < 3; kAcol++) { if (ipiv[kAcol] != kAcol + 1) { temp = B[kAcol]; B[kAcol] = B[ipiv[kAcol] - 1]; B[ipiv[kAcol] - 1] = temp; } } for (k = 0; k < 4; k++) { kAcol = k << 2; if (B[k] != 0.0) { for (jy = k + 1; jy + 1 < 5; jy++) { B[jy] -= B[k] * b_A[jy + kAcol]; } } } for (k = 3; k > -1; k += -1) { kAcol = k << 2; if (B[k] != 0.0) { B[k] /= b_A[k + kAcol]; for (jy = 0; jy + 1 <= k; jy++) { B[jy] -= B[k] * b_A[jy + kAcol]; } } } }
void mldivide(const real_T A[289], real_T B[289]) { real_T b_A[289]; int8_T ipiv[17]; int32_T jA; int32_T info; int32_T j; int32_T c; int32_T ix; real_T temp; int32_T jy; real_T s; int32_T b; int32_T b_j; boolean_T b_jA; int32_T ijA; char_T DIAGA; char_T TRANSA; char_T UPLO; char_T SIDE; ptrdiff_t m_t; ptrdiff_t n_t; ptrdiff_t lda_t; ptrdiff_t ldb_t; double * Aia0_t; double * Bib0_t; double * alpha1_t; emlrtPushRtStackR2012b(&pb_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&qb_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&sb_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&vb_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&wb_emlrtRSI, emlrtRootTLSGlobal); memcpy(&b_A[0], &A[0], 289U * sizeof(real_T)); for (jA = 0; jA < 17; jA++) { ipiv[jA] = (int8_T)(1 + jA); } info = 0; for (j = 0; j < 16; j++) { c = j * 18; emlrtPushRtStackR2012b(&xb_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&bc_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&cc_emlrtRSI, emlrtRootTLSGlobal); jA = 1; ix = c; temp = muDoubleScalarAbs(b_A[c]); emlrtPushRtStackR2012b(&dc_emlrtRSI, emlrtRootTLSGlobal); emlrtPopRtStackR2012b(&dc_emlrtRSI, emlrtRootTLSGlobal); for (jy = 2; jy <= 17 - j; jy++) { ix++; s = muDoubleScalarAbs(b_A[ix]); if (s > temp) { jA = jy; temp = s; } } emlrtPopRtStackR2012b(&cc_emlrtRSI, emlrtRootTLSGlobal); emlrtPopRtStackR2012b(&bc_emlrtRSI, emlrtRootTLSGlobal); emlrtPopRtStackR2012b(&xb_emlrtRSI, emlrtRootTLSGlobal); if (b_A[(c + jA) - 1] != 0.0) { if (jA - 1 != 0) { ipiv[j] = (int8_T)(j + jA); eml_xswap(b_A, j + 1, j + jA); } b = (c - j) + 17; emlrtPushRtStackR2012b(&yb_emlrtRSI, emlrtRootTLSGlobal); emlrtPopRtStackR2012b(&yb_emlrtRSI, emlrtRootTLSGlobal); for (jA = c + 1; jA + 1 <= b; jA++) { b_A[jA] /= b_A[c]; } } else { info = j + 1; } emlrtPushRtStackR2012b(&ac_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&ec_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&fc_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&gc_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&hc_emlrtRSI, emlrtRootTLSGlobal); jA = c; jy = c + 17; emlrtPushRtStackR2012b(&jc_emlrtRSI, emlrtRootTLSGlobal); emlrtPopRtStackR2012b(&jc_emlrtRSI, emlrtRootTLSGlobal); for (b_j = 1; b_j <= 16 - j; b_j++) { temp = b_A[jy]; if (b_A[jy] != 0.0) { ix = c + 1; b = (jA - j) + 34; emlrtPushRtStackR2012b(&ic_emlrtRSI, emlrtRootTLSGlobal); if (jA + 19 > b) { b_jA = FALSE; } else { b_jA = (b > 2147483646); } if (b_jA) { emlrtPushRtStackR2012b(&g_emlrtRSI, emlrtRootTLSGlobal); check_forloop_overflow_error(); emlrtPopRtStackR2012b(&g_emlrtRSI, emlrtRootTLSGlobal); } emlrtPopRtStackR2012b(&ic_emlrtRSI, emlrtRootTLSGlobal); for (ijA = jA + 18; ijA + 1 <= b; ijA++) { b_A[ijA] += b_A[ix] * -temp; ix++; } } jy += 17; jA += 17; } emlrtPopRtStackR2012b(&hc_emlrtRSI, emlrtRootTLSGlobal); emlrtPopRtStackR2012b(&gc_emlrtRSI, emlrtRootTLSGlobal); emlrtPopRtStackR2012b(&fc_emlrtRSI, emlrtRootTLSGlobal); emlrtPopRtStackR2012b(&ec_emlrtRSI, emlrtRootTLSGlobal); emlrtPopRtStackR2012b(&ac_emlrtRSI, emlrtRootTLSGlobal); } if ((info == 0) && (!(b_A[288] != 0.0))) { info = 17; } emlrtPopRtStackR2012b(&wb_emlrtRSI, emlrtRootTLSGlobal); emlrtPopRtStackR2012b(&vb_emlrtRSI, emlrtRootTLSGlobal); emlrtPopRtStackR2012b(&sb_emlrtRSI, emlrtRootTLSGlobal); if (info > 0) { emlrtPushRtStackR2012b(&rb_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&kc_emlrtRSI, emlrtRootTLSGlobal); eml_warning(); emlrtPopRtStackR2012b(&kc_emlrtRSI, emlrtRootTLSGlobal); emlrtPopRtStackR2012b(&rb_emlrtRSI, emlrtRootTLSGlobal); } for (jA = 0; jA < 17; jA++) { if (ipiv[jA] != jA + 1) { for (j = 0; j < 17; j++) { temp = B[jA + 17 * j]; B[jA + 17 * j] = B[(ipiv[jA] + 17 * j) - 1]; B[(ipiv[jA] + 17 * j) - 1] = temp; } } } emlrtPushRtStackR2012b(&tb_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&mc_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&nc_emlrtRSI, emlrtRootTLSGlobal); temp = 1.0; DIAGA = 'U'; TRANSA = 'N'; UPLO = 'L'; SIDE = 'L'; emlrtPushRtStackR2012b(&oc_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&ob_emlrtRSI, emlrtRootTLSGlobal); emlrt_checkEscapedGlobals(); m_t = (ptrdiff_t)(17); emlrtPopRtStackR2012b(&ob_emlrtRSI, emlrtRootTLSGlobal); emlrtPopRtStackR2012b(&oc_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&pc_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&ob_emlrtRSI, emlrtRootTLSGlobal); emlrt_checkEscapedGlobals(); n_t = (ptrdiff_t)(17); emlrtPopRtStackR2012b(&ob_emlrtRSI, emlrtRootTLSGlobal); emlrtPopRtStackR2012b(&pc_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&qc_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&ob_emlrtRSI, emlrtRootTLSGlobal); emlrt_checkEscapedGlobals(); lda_t = (ptrdiff_t)(17); emlrtPopRtStackR2012b(&ob_emlrtRSI, emlrtRootTLSGlobal); emlrtPopRtStackR2012b(&qc_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&rc_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&ob_emlrtRSI, emlrtRootTLSGlobal); emlrt_checkEscapedGlobals(); ldb_t = (ptrdiff_t)(17); emlrtPopRtStackR2012b(&ob_emlrtRSI, emlrtRootTLSGlobal); emlrtPopRtStackR2012b(&rc_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&sc_emlrtRSI, emlrtRootTLSGlobal); emlrt_checkEscapedGlobals(); Aia0_t = (double *)(&b_A[0]); emlrtPopRtStackR2012b(&sc_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&tc_emlrtRSI, emlrtRootTLSGlobal); emlrt_checkEscapedGlobals(); Bib0_t = (double *)(&B[0]); emlrtPopRtStackR2012b(&tc_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&uc_emlrtRSI, emlrtRootTLSGlobal); emlrt_checkEscapedGlobals(); alpha1_t = (double *)(&temp); emlrtPopRtStackR2012b(&uc_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&vc_emlrtRSI, emlrtRootTLSGlobal); emlrt_checkEscapedGlobals(); dtrsm(&SIDE, &UPLO, &TRANSA, &DIAGA, &m_t, &n_t, alpha1_t, Aia0_t, &lda_t, Bib0_t, &ldb_t); emlrtPopRtStackR2012b(&vc_emlrtRSI, emlrtRootTLSGlobal); emlrtPopRtStackR2012b(&nc_emlrtRSI, emlrtRootTLSGlobal); emlrtPopRtStackR2012b(&mc_emlrtRSI, emlrtRootTLSGlobal); emlrtPopRtStackR2012b(&tb_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&ub_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&mc_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&nc_emlrtRSI, emlrtRootTLSGlobal); temp = 1.0; DIAGA = 'N'; TRANSA = 'N'; UPLO = 'U'; SIDE = 'L'; emlrtPushRtStackR2012b(&oc_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&ob_emlrtRSI, emlrtRootTLSGlobal); emlrt_checkEscapedGlobals(); m_t = (ptrdiff_t)(17); emlrtPopRtStackR2012b(&ob_emlrtRSI, emlrtRootTLSGlobal); emlrtPopRtStackR2012b(&oc_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&pc_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&ob_emlrtRSI, emlrtRootTLSGlobal); emlrt_checkEscapedGlobals(); n_t = (ptrdiff_t)(17); emlrtPopRtStackR2012b(&ob_emlrtRSI, emlrtRootTLSGlobal); emlrtPopRtStackR2012b(&pc_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&qc_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&ob_emlrtRSI, emlrtRootTLSGlobal); emlrt_checkEscapedGlobals(); lda_t = (ptrdiff_t)(17); emlrtPopRtStackR2012b(&ob_emlrtRSI, emlrtRootTLSGlobal); emlrtPopRtStackR2012b(&qc_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&rc_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&ob_emlrtRSI, emlrtRootTLSGlobal); emlrt_checkEscapedGlobals(); ldb_t = (ptrdiff_t)(17); emlrtPopRtStackR2012b(&ob_emlrtRSI, emlrtRootTLSGlobal); emlrtPopRtStackR2012b(&rc_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&sc_emlrtRSI, emlrtRootTLSGlobal); emlrt_checkEscapedGlobals(); Aia0_t = (double *)(&b_A[0]); emlrtPopRtStackR2012b(&sc_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&tc_emlrtRSI, emlrtRootTLSGlobal); emlrt_checkEscapedGlobals(); Bib0_t = (double *)(&B[0]); emlrtPopRtStackR2012b(&tc_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&uc_emlrtRSI, emlrtRootTLSGlobal); emlrt_checkEscapedGlobals(); alpha1_t = (double *)(&temp); emlrtPopRtStackR2012b(&uc_emlrtRSI, emlrtRootTLSGlobal); emlrtPushRtStackR2012b(&vc_emlrtRSI, emlrtRootTLSGlobal); emlrt_checkEscapedGlobals(); dtrsm(&SIDE, &UPLO, &TRANSA, &DIAGA, &m_t, &n_t, alpha1_t, Aia0_t, &lda_t, Bib0_t, &ldb_t); emlrtPopRtStackR2012b(&vc_emlrtRSI, emlrtRootTLSGlobal); emlrtPopRtStackR2012b(&nc_emlrtRSI, emlrtRootTLSGlobal); emlrtPopRtStackR2012b(&mc_emlrtRSI, emlrtRootTLSGlobal); emlrtPopRtStackR2012b(&ub_emlrtRSI, emlrtRootTLSGlobal); emlrtPopRtStackR2012b(&qb_emlrtRSI, emlrtRootTLSGlobal); emlrtPopRtStackR2012b(&pb_emlrtRSI, emlrtRootTLSGlobal); }