File: D:\TMTmethod\simulator\codegen\mex\testspline\mrdivide.c

    1   /*
    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