File: D:\TMTmethod\simulator\codegen\mex\testspline\mrdivide.c1 /* 2 * mrdivide.c 3 * 4 * Code generation for function 'mrdivide' 5 * 6 * C source code generated on: Thu Aug 30 14:03:55 2012 7 * 8 */ 9 10 /* Include files */ 11 #include "rt_nonfinite.h" 12 #include "testspline.h" 13 #include "mrdivide.h" 14 #include "mldivide.h" 15 #include "testspline_mexutil.h" 16 #include "testspline_data.h" 17 18 /* Type Definitions */ 19 20 /* Named Constants */ 21 22 /* Variable Declarations */ 23 24 /* Variable Definitions */ 25 static emlrtRSInfo o_emlrtRSI = { 1, "mrdivide", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/ops/mrdivide.p" }; 26 static emlrtRSInfo p_emlrtRSI = { 1, "mrdivide", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/ops/mrdivide.p" }; 27 static emlrtRSInfo sb_emlrtRSI = { 16, "eml_warning", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/eml_warning.m" }; 28 static emlrtRSInfo og_emlrtRSI = { 1, "mrdivide", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/ops/mrdivide.p" }; 29 static emlrtRSInfo pg_emlrtRSI = { 1, "mrdivide", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/ops/mrdivide.p" }; 30 static emlrtRSInfo qg_emlrtRSI = { 1, "mldivide", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/ops/mldivide.p" }; 31 static emlrtRSInfo rg_emlrtRSI = { 1, "mldivide", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/ops/mldivide.p" }; 32 static emlrtRSInfo tg_emlrtRSI = { 20, "eml_lusolve", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/eml_lusolve.m" }; 33 static emlrtRSInfo ug_emlrtRSI = { 92, "eml_lusolve", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/eml_lusolve.m" }; 34 static emlrtRSInfo vg_emlrtRSI = { 90, "eml_lusolve", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/eml_lusolve.m" }; 35 static emlrtRSInfo wg_emlrtRSI = { 70, "eml_lusolve", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/eml_lusolve.m" }; 36 static emlrtRSInfo xg_emlrtRSI = { 72, "eml_lusolve", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/eml_lusolve.m" }; 37 static emlrtRSInfo yg_emlrtRSI = { 8, "eml_xgetrf", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/lapack/eml_xgetrf.m" }; 38 static emlrtRSInfo ah_emlrtRSI = { 8, "eml_lapack_xgetrf", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/lapack/internal/eml_lapack_xgetrf.m" }; 39 static emlrtRSInfo bh_emlrtRSI = { 23, "eml_matlab_zgetrf", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/lapack/matlab/eml_matlab_zgetrf.m" }; 40 static emlrtRSInfo mh_emlrtRSI = { 54, "eml_xtrsm", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/blas/eml_xtrsm.m" }; 41 static emlrtRSInfo oh_emlrtRSI = { 28, "eml_blas_xtrsm", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/blas/external/eml_blas_xtrsm.m" }; 42 static emlrtRSInfo ph_emlrtRSI = { 80, "eml_blas_xtrsm", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/blas/external/eml_blas_xtrsm.m" }; 43 static emlrtRSInfo qh_emlrtRSI = { 54, "eml_xtrsm", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/blas/eml_xtrsm.m" }; 44 static emlrtRSInfo sh_emlrtRSI = { 28, "eml_blas_xtrsm", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/blas/external/eml_blas_xtrsm.m" }; 45 static emlrtRSInfo th_emlrtRSI = { 80, "eml_blas_xtrsm", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/blas/external/eml_blas_xtrsm.m" }; 46 static emlrtRSInfo tj_emlrtRSI = { 1, "mrdivide", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/ops/mrdivide.p" }; 47 static emlrtRSInfo uj_emlrtRSI = { 1, "mrdivide", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/ops/mrdivide.p" }; 48 static emlrtRSInfo wj_emlrtRSI = { 1, "mldivide", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/ops/mldivide.p" }; 49 static emlrtRSInfo xj_emlrtRSI = { 20, "eml_lusolve", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/eml_lusolve.m" }; 50 static emlrtRSInfo yj_emlrtRSI = { 92, "eml_lusolve", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/eml_lusolve.m" }; 51 static emlrtRSInfo ak_emlrtRSI = { 90, "eml_lusolve", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/eml_lusolve.m" }; 52 static emlrtRSInfo bk_emlrtRSI = { 70, "eml_lusolve", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/eml_lusolve.m" }; 53 static emlrtRSInfo ck_emlrtRSI = { 72, "eml_lusolve", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/eml_lusolve.m" }; 54 static emlrtRSInfo dk_emlrtRSI = { 54, "eml_xtrsm", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/blas/eml_xtrsm.m" }; 55 static emlrtRSInfo fk_emlrtRSI = { 28, "eml_blas_xtrsm", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/blas/external/eml_blas_xtrsm.m" }; 56 static emlrtRSInfo gk_emlrtRSI = { 80, "eml_blas_xtrsm", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/blas/external/eml_blas_xtrsm.m" }; 57 static emlrtRSInfo hk_emlrtRSI = { 54, "eml_xtrsm", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/blas/eml_xtrsm.m" }; 58 static emlrtRSInfo jk_emlrtRSI = { 28, "eml_blas_xtrsm", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/blas/external/eml_blas_xtrsm.m" }; 59 static emlrtRSInfo kk_emlrtRSI = { 80, "eml_blas_xtrsm", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/blas/external/eml_blas_xtrsm.m" }; 60 static emlrtRSInfo xo_emlrtRSI = { 1, "mrdivide", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/ops/mrdivide.p" }; 61 static emlrtRSInfo yo_emlrtRSI = { 1, "mldivide", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/ops/mldivide.p" }; 62 static emlrtRSInfo ap_emlrtRSI = { 20, "eml_lusolve", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/eml_lusolve.m" }; 63 static emlrtRSInfo bp_emlrtRSI = { 72, "eml_lusolve", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/eml_lusolve.m" }; 64 static emlrtMCInfo e_emlrtMCI = { 1, 1, "mrdivide", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/ops/mrdivide.p" }; 65 static emlrtMCInfo f_emlrtMCI = { 1, 1, "mrdivide", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/ops/mrdivide.p" }; 66 static emlrtMCInfo k_emlrtMCI = { 16, 21, "eml_warning", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/eml_warning.m" }; 67 static emlrtMCInfo l_emlrtMCI = { 16, 5, "eml_warning", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/eml_warning.m" }; 68 static emlrtMCInfo nb_emlrtMCI = { 1, 1, "mrdivide", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/ops/mrdivide.p" }; 69 static emlrtMCInfo ob_emlrtMCI = { 1, 1, "mrdivide", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/ops/mrdivide.p" }; 70 static emlrtMCInfo pb_emlrtMCI = { 1, 1, "mldivide", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/ops/mldivide.p" }; 71 static emlrtMCInfo qb_emlrtMCI = { 1, 1, "mldivide", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/ops/mldivide.p" }; 72 static emlrtMCInfo vb_emlrtMCI = { 1, 1, "mrdivide", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/ops/mrdivide.p" }; 73 static emlrtMCInfo wb_emlrtMCI = { 1, 1, "mrdivide", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/ops/mrdivide.p" }; 74 static emlrtBCInfo ge_emlrtBCI = { -1, -1, 82, 40, "", "eml_blas_xtrsm", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/blas/external/eml_blas_xtrsm.m", 0 }; 75 static emlrtBCInfo he_emlrtBCI = { -1, -1, 82, 5, "", "eml_blas_xtrsm", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/blas/external/eml_blas_xtrsm.m", 0 }; 76 static emlrtBCInfo ie_emlrtBCI = { -1, -1, 82, 40, "", "eml_blas_xtrsm", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/blas/external/eml_blas_xtrsm.m", 0 }; 77 static emlrtBCInfo je_emlrtBCI = { -1, -1, 82, 5, "", "eml_blas_xtrsm", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/blas/external/eml_blas_xtrsm.m", 0 }; 78 static emlrtBCInfo ke_emlrtBCI = { -1, -1, 62, 31, "", "eml_matlab_zgetrf", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/lapack/matlab/eml_matlab_zgetrf.m", 0 }; 79 static emlrtBCInfo le_emlrtBCI = { -1, -1, 62, 33, "", "eml_matlab_zgetrf", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/lapack/matlab/eml_matlab_zgetrf.m", 0 }; 80 static emlrtBCInfo me_emlrtBCI = { -1, -1, 80, 8, "", "eml_lusolve", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/eml_lusolve.m", 0 }; 81 static emlrtBCInfo jg_emlrtBCI = { -1, -1, 82, 5, "", "eml_blas_xtrsm", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/blas/external/eml_blas_xtrsm.m", 0 }; 82 static emlrtBCInfo kg_emlrtBCI = { -1, -1, 82, 5, "", "eml_blas_xtrsm", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/blas/external/eml_blas_xtrsm.m", 0 }; 83 static emlrtBCInfo lg_emlrtBCI = { -1, -1, 62, 33, "", "eml_matlab_zgetrf", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/lapack/matlab/eml_matlab_zgetrf.m", 0 }; 84 static emlrtBCInfo mg_emlrtBCI = { -1, -1, 80, 8, "", "eml_lusolve", "C:/Program Files/MATLAB/R2011b/toolbox/eml/lib/matlab/eml/eml_lusolve.m", 0 }; 85 86 /* Function Declarations */ 87 static real_T b_eml_lusolve(const real_T A_data[1], const int32_T A_sizes[2], real_T B); 88 static void eml_lusolve(const creal_T A_data[1], const int32_T A_sizes[2], const creal_T B_data[1], const int32_T B_sizes[2], creal_T X_data[1], int32_T X_sizes[2]); 89 90 /* Function Definitions */ 91 92 static real_T b_eml_lusolve(const real_T A_data[1], const int32_T A_sizes[2], real_T B) 93 { 94 real_T X; 95 int32_T n; 96 int32_T ipiv_sizes_idx_1; 97 int32_T info; 98 int32_T loop_ub; 99 int32_T i15; 100 real_T b_A_data[1]; 101 real_T alpha1; 102 char_T SIDE; 103 char_T UPLO; 104 char_T TRANSA; 105 char_T DIAGA; 106 EMLRTPUSHRTSTACK(&xj_emlrtRSI); 107 n = A_sizes[1]; 108 EMLRTPUSHRTSTACK(&bk_emlrtRSI); 109 EMLRTPUSHRTSTACK(&y_emlrtRSI); 110 EMLRTPUSHRTSTACK(&ab_emlrtRSI); 111 EMLRTPUSHRTSTACK(&bb_emlrtRSI); 112 EMLRTPUSHRTSTACK(&cb_emlrtRSI); 113 EMLRTPUSHRTSTACK(&db_emlrtRSI); 114 if (muIntScalarMin_sint32(A_sizes[1], A_sizes[1]) < 1) { 115 ipiv_sizes_idx_1 = 0; 116 } else { 117 EMLRTPUSHRTSTACK(&eb_emlrtRSI); 118 EMLRTPOPRTSTACK(&eb_emlrtRSI); 119 ipiv_sizes_idx_1 = 1; 120 } 121 EMLRTPOPRTSTACK(&db_emlrtRSI); 122 EMLRTPOPRTSTACK(&cb_emlrtRSI); 123 EMLRTPOPRTSTACK(&bb_emlrtRSI); 124 info = 0; 125 if (A_sizes[1] < 1) { 126 } else { 127 emlrtDynamicBoundsCheck(1, 1, A_sizes[1], &lg_emlrtBCI); 128 if (!(A_data[0] != 0.0)) { 129 info = 1; 130 } 131 } 132 EMLRTPOPRTSTACK(&ab_emlrtRSI); 133 EMLRTPOPRTSTACK(&y_emlrtRSI); 134 EMLRTPOPRTSTACK(&bk_emlrtRSI); 135 loop_ub = A_sizes[0] * A_sizes[1] - 1; 136 for (i15 = 0; i15 <= loop_ub; i15++) { 137 b_A_data[i15] = A_data[i15]; 138 } 139 if (info > 0) { 140 EMLRTPUSHRTSTACK(&ck_emlrtRSI); 141 EMLRTPUSHRTSTACK(&rb_emlrtRSI); 142 eml_warning(); 143 EMLRTPOPRTSTACK(&rb_emlrtRSI); 144 EMLRTPOPRTSTACK(&ck_emlrtRSI); 145 } 146 info = 1; 147 while (info <= A_sizes[1]) { 148 emlrtDynamicBoundsCheck(1, 1, ipiv_sizes_idx_1, &mg_emlrtBCI); 149 info = 2; 150 } 151 EMLRTPUSHRTSTACK(&ak_emlrtRSI); 152 EMLRTPUSHRTSTACK(&dk_emlrtRSI); 153 X = B; 154 if (A_sizes[1] < 1) { 155 } else { 156 EMLRTPUSHRTSTACK(&fk_emlrtRSI); 157 info = 1; 158 loop_ub = 1; 159 alpha1 = 1.0; 160 SIDE = 'L'; 161 UPLO = 'L'; 162 TRANSA = 'N'; 163 DIAGA = 'U'; 164 emlrtDynamicBoundsCheck(1, 1, 1, &kg_emlrtBCI); 165 EMLRTPUSHRTSTACK(&gk_emlrtRSI); 166 dtrsm32(&SIDE, &UPLO, &TRANSA, &DIAGA, &info, &loop_ub, &alpha1, &b_A_data[0], &n, &X, &n); 167 EMLRTPOPRTSTACK(&gk_emlrtRSI); 168 EMLRTPOPRTSTACK(&fk_emlrtRSI); 169 } 170 EMLRTPOPRTSTACK(&dk_emlrtRSI); 171 EMLRTPOPRTSTACK(&ak_emlrtRSI); 172 EMLRTPUSHRTSTACK(&yj_emlrtRSI); 173 EMLRTPUSHRTSTACK(&hk_emlrtRSI); 174 if (n < 1) { 175 } else { 176 EMLRTPUSHRTSTACK(&jk_emlrtRSI); 177 info = 1; 178 loop_ub = 1; 179 alpha1 = 1.0; 180 SIDE = 'L'; 181 UPLO = 'U'; 182 TRANSA = 'N'; 183 DIAGA = 'N'; 184 emlrtDynamicBoundsCheck(1, 1, A_sizes[1], &jg_emlrtBCI); 185 EMLRTPUSHRTSTACK(&kk_emlrtRSI); 186 dtrsm32(&SIDE, &UPLO, &TRANSA, &DIAGA, &info, &loop_ub, &alpha1, &b_A_data[0], &n, &X, &n); 187 EMLRTPOPRTSTACK(&kk_emlrtRSI); 188 EMLRTPOPRTSTACK(&jk_emlrtRSI); 189 } 190 EMLRTPOPRTSTACK(&hk_emlrtRSI); 191 EMLRTPOPRTSTACK(&yj_emlrtRSI); 192 EMLRTPOPRTSTACK(&xj_emlrtRSI); 193 return X; 194 } 195 196 static void eml_lusolve(const creal_T A_data[1], const int32_T A_sizes[2], const creal_T B_data[1], const int32_T B_sizes[2], creal_T X_data[1], int32_T X_sizes[2]) 197 { 198 int32_T n; 199 int32_T ipiv_sizes_idx_1; 200 int32_T info; 201 char_T SIDE; 202 char_T UPLO; 203 char_T TRANSA; 204 char_T DIAGA; 205 static const creal_T alpha1 = { 1.0, 0.0 }; 206 EMLRTPUSHRTSTACK(&tg_emlrtRSI); 207 n = A_sizes[1]; 208 EMLRTPUSHRTSTACK(&wg_emlrtRSI); 209 EMLRTPUSHRTSTACK(&yg_emlrtRSI); 210 EMLRTPUSHRTSTACK(&ah_emlrtRSI); 211 EMLRTPUSHRTSTACK(&bh_emlrtRSI); 212 EMLRTPUSHRTSTACK(&cb_emlrtRSI); 213 EMLRTPUSHRTSTACK(&db_emlrtRSI); 214 if (muIntScalarMin_sint32(A_sizes[1], A_sizes[1]) < 1) { 215 ipiv_sizes_idx_1 = 0; 216 } else { 217 EMLRTPUSHRTSTACK(&eb_emlrtRSI); 218 EMLRTPOPRTSTACK(&eb_emlrtRSI); 219 ipiv_sizes_idx_1 = 1; 220 } 221 EMLRTPOPRTSTACK(&db_emlrtRSI); 222 EMLRTPOPRTSTACK(&cb_emlrtRSI); 223 EMLRTPOPRTSTACK(&bh_emlrtRSI); 224 info = 0; 225 if (A_sizes[1] < 1) { 226 } else { 227 emlrtDynamicBoundsCheck(1, 1, A_sizes[0], &ke_emlrtBCI); 228 emlrtDynamicBoundsCheck(1, 1, A_sizes[1], &le_emlrtBCI); 229 if (!((A_data[0].re != 0.0) || (A_data[0].im != 0.0))) { 230 info = 1; 231 } 232 } 233 EMLRTPOPRTSTACK(&ah_emlrtRSI); 234 EMLRTPOPRTSTACK(&yg_emlrtRSI); 235 EMLRTPOPRTSTACK(&wg_emlrtRSI); 236 if (info > 0) { 237 EMLRTPUSHRTSTACK(&xg_emlrtRSI); 238 EMLRTPUSHRTSTACK(&rb_emlrtRSI); 239 eml_warning(); 240 EMLRTPOPRTSTACK(&rb_emlrtRSI); 241 EMLRTPOPRTSTACK(&xg_emlrtRSI); 242 } 243 info = 1; 244 while (info <= A_sizes[1]) { 245 emlrtDynamicBoundsCheck(1, 1, ipiv_sizes_idx_1, &me_emlrtBCI); 246 info = 2; 247 } 248 EMLRTPUSHRTSTACK(&vg_emlrtRSI); 249 EMLRTPUSHRTSTACK(&mh_emlrtRSI); 250 X_sizes[0] = B_sizes[0]; 251 X_sizes[1] = B_sizes[1]; 252 info = B_sizes[0] * B_sizes[1] - 1; 253 for (ipiv_sizes_idx_1 = 0; ipiv_sizes_idx_1 <= info; ipiv_sizes_idx_1++) { 254 X_data[ipiv_sizes_idx_1].re = B_data[ipiv_sizes_idx_1].re; 255 X_data[ipiv_sizes_idx_1].im = B_data[ipiv_sizes_idx_1].im; 256 } 257 if ((A_sizes[1] < 1) || (B_sizes[1] < 1)) { 258 } else { 259 EMLRTPUSHRTSTACK(&oh_emlrtRSI); 260 info = 1; 261 ipiv_sizes_idx_1 = 1; 262 SIDE = 'L'; 263 UPLO = 'L'; 264 TRANSA = 'N'; 265 DIAGA = 'U'; 266 emlrtDynamicBoundsCheck(1, 1, A_sizes[0], &je_emlrtBCI); 267 emlrtDynamicBoundsCheck(1, 1, X_sizes[0] * X_sizes[1], &ie_emlrtBCI); 268 EMLRTPUSHRTSTACK(&ph_emlrtRSI); 269 ztrsm32(&SIDE, &UPLO, &TRANSA, &DIAGA, &info, &ipiv_sizes_idx_1, &alpha1, &A_data[0], &n, &X_data[0], &n); 270 EMLRTPOPRTSTACK(&ph_emlrtRSI); 271 EMLRTPOPRTSTACK(&oh_emlrtRSI); 272 } 273 EMLRTPOPRTSTACK(&mh_emlrtRSI); 274 EMLRTPOPRTSTACK(&vg_emlrtRSI); 275 EMLRTPUSHRTSTACK(&ug_emlrtRSI); 276 EMLRTPUSHRTSTACK(&qh_emlrtRSI); 277 if ((n < 1) || (B_sizes[1] < 1)) { 278 } else { 279 EMLRTPUSHRTSTACK(&sh_emlrtRSI); 280 info = 1; 281 ipiv_sizes_idx_1 = 1; 282 SIDE = 'L'; 283 UPLO = 'U'; 284 TRANSA = 'N'; 285 DIAGA = 'N'; 286 emlrtDynamicBoundsCheck(1, 1, A_sizes[0] * A_sizes[1], &he_emlrtBCI); 287 emlrtDynamicBoundsCheck(1, 1, X_sizes[0] * X_sizes[1], &ge_emlrtBCI); 288 EMLRTPUSHRTSTACK(&th_emlrtRSI); 289 ztrsm32(&SIDE, &UPLO, &TRANSA, &DIAGA, &info, &ipiv_sizes_idx_1, &alpha1, &A_data[0], &n, &X_data[0], &n); 290 EMLRTPOPRTSTACK(&th_emlrtRSI); 291 EMLRTPOPRTSTACK(&sh_emlrtRSI); 292 } 293 EMLRTPOPRTSTACK(&qh_emlrtRSI); 294 EMLRTPOPRTSTACK(&ug_emlrtRSI); 295 EMLRTPOPRTSTACK(&tg_emlrtRSI); 296 } 297 298 void b_mrdivide(const creal_T A_data[1], const int32_T A_sizes[2], const creal_T B_data[1], const int32_T B_sizes[2], creal_T y_data[1], int32_T y_sizes[2]) 299 { 300 const mxArray *y; 301 static const int32_T iv19[2] = { 1, 21 }; 302 const mxArray *m11; 303 static const char_T cv12[21] = { 'C', 'o', 'd', 'e', 'r', ':', 'M', 'A', 'T', 'L', 'A', 'B', ':', 'd', 'i', 'm', 'a', 'g', 'r', 'e', 'e' }; 304 int32_T b_A_sizes[2]; 305 int32_T loop_ub; 306 int32_T i11; 307 int32_T b_loop_ub; 308 int32_T i12; 309 creal_T b_A_data[1]; 310 int32_T b_B_sizes[2]; 311 creal_T b_B_data[1]; 312 const mxArray *b_y; 313 static const int32_T iv20[2] = { 1, 21 }; 314 int8_T unnamed_idx_0; 315 creal_T c_A_data[1]; 316 int32_T c_A_sizes[2]; 317 if (B_sizes[1] == A_sizes[1]) { 318 } else { 319 EMLRTPUSHRTSTACK(&og_emlrtRSI); 320 y = NULL; 321 m11 = mxCreateCharArray(2, iv19); 322 emlrtInitCharArray(21, m11, cv12); 323 emlrtAssign(&y, m11); 324 error(message(y, &nb_emlrtMCI), &ob_emlrtMCI); 325 EMLRTPOPRTSTACK(&og_emlrtRSI); 326 } 327 EMLRTPUSHRTSTACK(&pg_emlrtRSI); 328 b_A_sizes[0] = B_sizes[1]; 329 b_A_sizes[1] = B_sizes[0]; 330 loop_ub = B_sizes[0] - 1; 331 for (i11 = 0; i11 <= loop_ub; i11++) { 332 b_loop_ub = B_sizes[1] - 1; 333 for (i12 = 0; i12 <= b_loop_ub; i12++) { 334 b_A_data[i12 + b_A_sizes[0] * i11].re = B_data[i11 + B_sizes[0] * i12].re; 335 b_A_data[i12 + b_A_sizes[0] * i11].im = -B_data[i11 + B_sizes[0] * i12].im; 336 } 337 } 338 b_B_sizes[0] = A_sizes[1]; 339 b_B_sizes[1] = A_sizes[0]; 340 loop_ub = A_sizes[0] - 1; 341 for (i11 = 0; i11 <= loop_ub; i11++) { 342 b_loop_ub = A_sizes[1] - 1; 343 for (i12 = 0; i12 <= b_loop_ub; i12++) { 344 b_B_data[i12 + b_B_sizes[0] * i11].re = A_data[i11 + A_sizes[0] * i12].re; 345 b_B_data[i12 + b_B_sizes[0] * i11].im = -A_data[i11 + A_sizes[0] * i12].im; 346 } 347 } 348 if (b_B_sizes[0] == b_A_sizes[0]) { 349 } else { 350 EMLRTPUSHRTSTACK(&qg_emlrtRSI); 351 b_y = NULL; 352 m11 = mxCreateCharArray(2, iv20); 353 emlrtInitCharArray(21, m11, cv12); 354 emlrtAssign(&b_y, m11); 355 error(message(b_y, &pb_emlrtMCI), &qb_emlrtMCI); 356 EMLRTPOPRTSTACK(&qg_emlrtRSI); 357 } 358 if ((b_A_sizes[0] == 0) || (b_A_sizes[1] == 0) || ((b_B_sizes[0] == 0) || (b_B_sizes[1] == 0))) { 359 unnamed_idx_0 = (int8_T)b_A_sizes[1]; 360 b_A_sizes[0] = (int32_T)(int8_T)b_A_sizes[1]; 361 b_A_sizes[1] = (int32_T)(int8_T)b_B_sizes[1]; 362 loop_ub = unnamed_idx_0 * (int8_T)b_B_sizes[1] - 1; 363 for (i11 = 0; i11 <= loop_ub; i11++) { 364 b_A_data[i11].re = 0.0; 365 b_A_data[i11].im = 0.0; 366 } 367 } else { 368 EMLRTPUSHRTSTACK(&rg_emlrtRSI); 369 c_A_sizes[0] = b_A_sizes[0]; 370 c_A_sizes[1] = b_A_sizes[1]; 371 loop_ub = b_A_sizes[0] * b_A_sizes[1] - 1; 372 for (i11 = 0; i11 <= loop_ub; i11++) { 373 c_A_data[i11] = b_A_data[i11]; 374 } 375 eml_lusolve(c_A_data, c_A_sizes, b_B_data, b_B_sizes, b_A_data, b_A_sizes); 376 EMLRTPOPRTSTACK(&rg_emlrtRSI); 377 } 378 y_sizes[0] = b_A_sizes[1]; 379 y_sizes[1] = b_A_sizes[0]; 380 loop_ub = b_A_sizes[0] - 1; 381 for (i11 = 0; i11 <= loop_ub; i11++) { 382 b_loop_ub = b_A_sizes[1] - 1; 383 for (i12 = 0; i12 <= b_loop_ub; i12++) { 384 y_data[i12 + y_sizes[0] * i11].re = b_A_data[i11 + b_A_sizes[0] * i12].re; 385 y_data[i12 + y_sizes[0] * i11].im = -b_A_data[i11 + b_A_sizes[0] * i12].im; 386 } 387 } 388 EMLRTPOPRTSTACK(&pg_emlrtRSI); 389 } 390 391 void c_mrdivide(real_T A, const real_T B_data[1], const int32_T B_sizes[2], real_T y_data[1], int32_T y_sizes[2]) 392 { 393 const mxArray *y; 394 static const int32_T iv21[2] = { 1, 21 }; 395 const mxArray *m12; 396 static const char_T cv13[21] = { 'C', 'o', 'd', 'e', 'r', ':', 'M', 'A', 'T', 'L', 'A', 'B', ':', 'd', 'i', 'm', 'a', 'g', 'r', 'e', 'e' }; 397 int32_T A_sizes[2]; 398 int32_T loop_ub; 399 int32_T i13; 400 int32_T b_loop_ub; 401 int32_T i14; 402 real_T A_data[1]; 403 real_T d0; 404 real_T Y_data[1]; 405 if (B_sizes[1] == 1) { 406 } else { 407 EMLRTPUSHRTSTACK(&tj_emlrtRSI); 408 y = NULL; 409 m12 = mxCreateCharArray(2, iv21); 410 emlrtInitCharArray(21, m12, cv13); 411 emlrtAssign(&y, m12); 412 error(message(y, &vb_emlrtMCI), &wb_emlrtMCI); 413 EMLRTPOPRTSTACK(&tj_emlrtRSI); 414 } 415 EMLRTPUSHRTSTACK(&uj_emlrtRSI); 416 A_sizes[0] = B_sizes[1]; 417 A_sizes[1] = B_sizes[0]; 418 loop_ub = B_sizes[0] - 1; 419 for (i13 = 0; i13 <= loop_ub; i13++) { 420 b_loop_ub = B_sizes[1] - 1; 421 for (i14 = 0; i14 <= b_loop_ub; i14++) { 422 A_data[i14 + A_sizes[0] * i13] = B_data[i13 + B_sizes[0] * i14]; 423 } 424 } 425 if (A_sizes[1] == 0) { 426 loop_ub = 0; 427 } else { 428 EMLRTPUSHRTSTACK(&wj_emlrtRSI); 429 d0 = b_eml_lusolve(A_data, A_sizes, A); 430 loop_ub = 1; 431 Y_data[0] = d0; 432 EMLRTPOPRTSTACK(&wj_emlrtRSI); 433 } 434 y_sizes[0] = 1; 435 y_sizes[1] = loop_ub; 436 loop_ub--; 437 i13 = 0; 438 while (i13 <= loop_ub) { 439 y_data[0] = Y_data[0]; 440 i13 = 1; 441 } 442 EMLRTPOPRTSTACK(&uj_emlrtRSI); 443 } 444 445 real_T d_mrdivide(real_T A, const real_T B_data[1], const int32_T B_sizes[2]) 446 { 447 real_T y; 448 int32_T loop_ub; 449 int32_T i21; 450 real_T A_data[1]; 451 EMLRTPUSHRTSTACK(&xo_emlrtRSI); 452 loop_ub = B_sizes[1] - 1; 453 for (i21 = 0; i21 <= loop_ub; i21++) { 454 A_data[i21] = B_data[i21]; 455 } 456 EMLRTPUSHRTSTACK(&yo_emlrtRSI); 457 EMLRTPUSHRTSTACK(&ap_emlrtRSI); 458 loop_ub = 0; 459 if (!(A_data[0] != 0.0)) { 460 loop_ub = 1; 461 } 462 if (loop_ub > 0) { 463 EMLRTPUSHRTSTACK(&bp_emlrtRSI); 464 EMLRTPUSHRTSTACK(&rb_emlrtRSI); 465 eml_warning(); 466 EMLRTPOPRTSTACK(&rb_emlrtRSI); 467 EMLRTPOPRTSTACK(&bp_emlrtRSI); 468 } 469 y = A; 470 if (A != 0.0) { 471 y = A / A_data[0]; 472 } 473 EMLRTPOPRTSTACK(&ap_emlrtRSI); 474 EMLRTPOPRTSTACK(&yo_emlrtRSI); 475 EMLRTPOPRTSTACK(&xo_emlrtRSI); 476 return y; 477 } 478 479 void eml_warning(void) 480 { 481 const mxArray *y; 482 static const int32_T iv8[2] = { 1, 27 }; 483 const mxArray *m4; 484 static const char_T cv4[27] = { 'C', 'o', 'd', 'e', 'r', ':', 'M', 'A', 'T', 'L', 'A', 'B', ':', 's', 'i', 'n', 'g', 'u', 'l', 'a', 'r', 'M', 'a', 't', 'r', 'i', 'x' }; 485 EMLRTPUSHRTSTACK(&sb_emlrtRSI); 486 y = NULL; 487 m4 = mxCreateCharArray(2, iv8); 488 emlrtInitCharArray(27, m4, cv4); 489 emlrtAssign(&y, m4); 490 warning(message(y, &k_emlrtMCI), &l_emlrtMCI); 491 EMLRTPOPRTSTACK(&sb_emlrtRSI); 492 } 493 494 void mrdivide(const real_T A_data[1], const int32_T A_sizes[2], const real_T B_data[1], const int32_T B_sizes[2], real_T y_data[1], int32_T y_sizes[2]) 495 { 496 const mxArray *y; 497 static const int32_T iv6[2] = { 1, 21 }; 498 const mxArray *m2; 499 static const char_T cv2[21] = { 'C', 'o', 'd', 'e', 'r', ':', 'M', 'A', 'T', 'L', 'A', 'B', ':', 'd', 'i', 'm', 'a', 'g', 'r', 'e', 'e' }; 500 real_T b_B_data[1]; 501 int32_T b_B_sizes[2]; 502 int32_T loop_ub; 503 int32_T i1; 504 int32_T b_loop_ub; 505 int32_T i2; 506 real_T b_A_data[1]; 507 int32_T b_A_sizes[2]; 508 int32_T tmp_sizes[2]; 509 real_T tmp_data[1]; 510 if (B_sizes[1] == A_sizes[1]) { 511 } else { 512 EMLRTPUSHRTSTACK(&o_emlrtRSI); 513 y = NULL; 514 m2 = mxCreateCharArray(2, iv6); 515 emlrtInitCharArray(21, m2, cv2); 516 emlrtAssign(&y, m2); 517 error(message(y, &e_emlrtMCI), &f_emlrtMCI); 518 EMLRTPOPRTSTACK(&o_emlrtRSI); 519 } 520 EMLRTPUSHRTSTACK(&p_emlrtRSI); 521 b_B_sizes[0] = B_sizes[1]; 522 b_B_sizes[1] = B_sizes[0]; 523 loop_ub = B_sizes[0] - 1; 524 for (i1 = 0; i1 <= loop_ub; i1++) { 525 b_loop_ub = B_sizes[1] - 1; 526 for (i2 = 0; i2 <= b_loop_ub; i2++) { 527 b_B_data[i2 + b_B_sizes[0] * i1] = B_data[i1 + B_sizes[0] * i2]; 528 } 529 } 530 b_A_sizes[0] = A_sizes[1]; 531 b_A_sizes[1] = A_sizes[0]; 532 loop_ub = A_sizes[0] - 1; 533 for (i1 = 0; i1 <= loop_ub; i1++) { 534 b_loop_ub = A_sizes[1] - 1; 535 for (i2 = 0; i2 <= b_loop_ub; i2++) { 536 b_A_data[i2 + b_A_sizes[0] * i1] = A_data[i1 + A_sizes[0] * i2]; 537 } 538 } 539 mldivide(b_B_data, b_B_sizes, b_A_data, b_A_sizes, tmp_data, tmp_sizes); 540 y_sizes[0] = tmp_sizes[1]; 541 y_sizes[1] = tmp_sizes[0]; 542 loop_ub = tmp_sizes[0] - 1; 543 for (i1 = 0; i1 <= loop_ub; i1++) { 544 b_loop_ub = tmp_sizes[1] - 1; 545 for (i2 = 0; i2 <= b_loop_ub; i2++) { 546 y_data[i2 + y_sizes[0] * i1] = tmp_data[i1 + tmp_sizes[0] * i2]; 547 } 548 } 549 EMLRTPOPRTSTACK(&p_emlrtRSI); 550 } 551 /* End of code generation (mrdivide.c) */ 552 |