void polyfit(const emxArray_real_T *x, const emxArray_real_T *y, double p[2]) { emxArray_real_T *V; int n; unsigned int unnamed_idx_0; int i5; int k; emxArray_real_T *b_y; double rr; double p1[2]; emxInit_real_T(&V, 2); n = x->size[0] - 1; unnamed_idx_0 = (unsigned int)x->size[0]; i5 = V->size[0] * V->size[1]; V->size[0] = (int)unnamed_idx_0; V->size[1] = 2; emxEnsureCapacity((emxArray__common *)V, i5, (int)sizeof(double)); if ((int)unnamed_idx_0 == 0) { } else { for (k = 0; k <= n; k++) { V->data[k + V->size[0]] = 1.0; } for (k = 0; k <= n; k++) { V->data[k] = x->data[k]; } } b_emxInit_real_T(&b_y, 1); i5 = b_y->size[0]; b_y->size[0] = y->size[0]; emxEnsureCapacity((emxArray__common *)b_y, i5, (int)sizeof(double)); k = y->size[0]; for (i5 = 0; i5 < k; i5++) { b_y->data[i5] = y->data[i5]; } eml_qrsolve(V, b_y, p1, &rr); emxFree_real_T(&b_y); emxFree_real_T(&V); for (i5 = 0; i5 < 2; i5++) { p[i5] = p1[i5]; } }
void mldivide(const emxArray_real_T *A, emxArray_real_T *B) { emxArray_real_T *Y; emxArray_real_T *b_B; int32_T n; int32_T i17; int32_T jy; emxArray_int32_T *ipiv; int32_T ldap1; int32_T u0; int32_T j; int32_T mmj; int32_T jj; int32_T jp1j; int32_T c; int32_T ix; real_T temp; int32_T k; real_T s; int32_T jA; emxArray_real_T *r77; emxInit_real_T(&Y, 1); if (A->size[0] == A->size[1]) { b_emxInit_real_T(&b_B, 2); n = A->size[1]; i17 = b_B->size[0] * b_B->size[1]; b_B->size[0] = A->size[0]; b_B->size[1] = A->size[1]; emxEnsureCapacity((emxArray__common *)b_B, i17, (int32_T)sizeof(real_T)); jy = A->size[0] * A->size[1] - 1; for (i17 = 0; i17 <= jy; i17++) { b_B->data[i17] = A->data[i17]; } emxInit_int32_T(&ipiv, 2); eml_signed_integer_colon(n, ipiv); ldap1 = n + 1; u0 = n - 1; if (u0 <= n) { } else { u0 = n; } for (j = 1; j <= u0; j++) { mmj = n - j; jj = (j - 1) * ldap1; jp1j = jj + 2; c = mmj + 1; if (c < 1) { jy = 0; } else { jy = 1; if (c > 1) { ix = jj; temp = fabs(b_B->data[jj]); for (k = 2; k <= c; k++) { ix++; s = fabs(b_B->data[ix]); if (s > temp) { jy = k; temp = s; } } } } if (b_B->data[(jj + jy) - 1] != 0.0) { if (jy - 1 != 0) { ipiv->data[j - 1] = (j + jy) - 1; eml_xswap(n, b_B, j, n, (j + jy) - 1, n); } i17 = (jp1j + mmj) - 1; for (jy = jp1j; jy <= i17; jy++) { b_B->data[jy - 1] /= b_B->data[jj]; } } c = n - j; jA = jj + ldap1; jy = jj + n; for (k = 1; k <= c; k++) { temp = b_B->data[jy]; if (b_B->data[jy] != 0.0) { ix = jp1j; i17 = mmj + jA; for (jj = jA; jj + 1 <= i17; jj++) { b_B->data[jj] += b_B->data[ix - 1] * -temp; ix++; } } jy += n; jA += n; } } for (jy = 0; jy + 1 <= n; jy++) { if (ipiv->data[jy] != jy + 1) { temp = B->data[jy]; B->data[jy] = B->data[ipiv->data[jy] - 1]; B->data[ipiv->data[jy] - 1] = temp; } } emxFree_int32_T(&ipiv); for (k = 0; k + 1 <= n; k++) { c = n * k; if (B->data[k] != 0.0) { for (jy = k + 2; jy <= n; jy++) { B->data[jy - 1] -= B->data[k] * b_B->data[(jy + c) - 1]; } } } for (k = n - 1; k + 1 > 0; k--) { c = n * k; if (B->data[k] != 0.0) { B->data[k] /= b_B->data[k + c]; for (jy = 1; jy <= k; jy++) { B->data[jy - 1] -= B->data[k] * b_B->data[(jy + c) - 1]; } } } emxFree_real_T(&b_B); } else { emxInit_real_T(&b_B, 1); i17 = b_B->size[0]; b_B->size[0] = B->size[0]; emxEnsureCapacity((emxArray__common *)b_B, i17, (int32_T)sizeof(real_T)); jy = B->size[0] - 1; for (i17 = 0; i17 <= jy; i17++) { b_B->data[i17] = B->data[i17]; } emxInit_real_T(&r77, 1); eml_qrsolve(A, b_B, r77); i17 = B->size[0]; B->size[0] = r77->size[0]; emxEnsureCapacity((emxArray__common *)B, i17, (int32_T)sizeof(real_T)); emxFree_real_T(&b_B); jy = r77->size[0] - 1; for (i17 = 0; i17 <= jy; i17++) { B->data[i17] = r77->data[i17]; } emxFree_real_T(&r77); } emxFree_real_T(&Y); }