/*
 * Arguments    : void
 * Return Type  : const mxArray *
 */
const mxArray *emlrtMexFcnResolvedFunctionsInfo(void)
{
  const mxArray *nameCaptureInfo;
  nameCaptureInfo = NULL;
  emlrtAssign(&nameCaptureInfo, emlrtCreateStructMatrix(16, 1, 0, NULL));
  info_helper(&nameCaptureInfo);
  emlrtNameCapturePostProcessR2013b(&nameCaptureInfo);
  return nameCaptureInfo;
}
/*
 * Arguments    : void
 * Return Type  : mxArray *
 */
mxArray *emlrtMexFcnProperties(void)
{
  mxArray *xResult;
  const char * fldNames[4] = { "Name", "NumberOfInputs", "NumberOfOutputs",
    "ConstantInputs" };

  mxArray *xEntryPoints;
  mxArray *xInputs;
  const char * b_fldNames[4] = { "Version", "ResolvedFunctions", "EntryPoints",
    "CoverageInfo" };

  xEntryPoints = emlrtCreateStructMatrix(1, 1, 4, fldNames);
  xInputs = emlrtCreateLogicalMatrix(1, 2);
  emlrtSetField(xEntryPoints, 0, "Name", mxCreateString("matrix_multiplication"));
  emlrtSetField(xEntryPoints, 0, "NumberOfInputs", mxCreateDoubleScalar(2.0));
  emlrtSetField(xEntryPoints, 0, "NumberOfOutputs", mxCreateDoubleScalar(1.0));
  emlrtSetField(xEntryPoints, 0, "ConstantInputs", xInputs);
  xResult = emlrtCreateStructMatrix(1, 1, 4, b_fldNames);
  emlrtSetField(xResult, 0, "Version", mxCreateString("8.6.0.267246 (R2015b)"));
  emlrtSetField(xResult, 0, "ResolvedFunctions", (mxArray *)
                emlrtMexFcnResolvedFunctionsInfo());
  emlrtSetField(xResult, 0, "EntryPoints", xEntryPoints);
  return xResult;
}
/* Function Definitions */
mxArray *emlrtMexFcnProperties()
{
  mxArray *xResult;
  mxArray *xEntryPoints;
  const char * fldNames[4] = { "Name", "NumberOfInputs", "NumberOfOutputs",
    "ConstantInputs" };

  mxArray *xInputs;
  const char * b_fldNames[4] = { "Version", "ResolvedFunctions", "EntryPoints",
    "CoverageInfo" };

  xEntryPoints = emlrtCreateStructMatrix(1, 1, 4, fldNames);
  xInputs = emlrtCreateLogicalMatrix(1, 3);
  emlrtSetField(xEntryPoints, 0, "Name", mxCreateString("makeHistFutTable"));
  emlrtSetField(xEntryPoints, 0, "NumberOfInputs", mxCreateDoubleScalar(3.0));
  emlrtSetField(xEntryPoints, 0, "NumberOfOutputs", mxCreateDoubleScalar(1.0));
  emlrtSetField(xEntryPoints, 0, "ConstantInputs", xInputs);
  xResult = emlrtCreateStructMatrix(1, 1, 4, b_fldNames);
  emlrtSetField(xResult, 0, "Version", mxCreateString("9.0.0.341360 (R2016a)"));
  emlrtSetField(xResult, 0, "ResolvedFunctions", (mxArray *)
                emlrtMexFcnResolvedFunctionsInfo());
  emlrtSetField(xResult, 0, "EntryPoints", xEntryPoints);
  return xResult;
}
/*
 * Arguments    : const struct0_T *u
 * Return Type  : const mxArray *
 */
static const mxArray *emlrt_marshallOut(const struct0_T *u)
{
  const mxArray *y;
  const mxArray *b_y;
  const mxArray *m0;
  const mxArray *c_y;
  const mxArray *d_y;
  const mxArray *e_y;
  const mxArray *f_y;
  const mxArray *g_y;
  const mxArray *h_y;
  const mxArray *i_y;
  const mxArray *j_y;
  const mxArray *k_y;
  const mxArray *l_y;
  const mxArray *m_y;
  const mxArray *n_y;
  const mxArray *o_y;
  const mxArray *p_y;
  const mxArray *q_y;
  const mxArray *r_y;
  const mxArray *s_y;
  const mxArray *t_y;
  const mxArray *u_y;
  const mxArray *v_y;
  const mxArray *w_y;
  const mxArray *x_y;
  const mxArray *y_y;
  const mxArray *ab_y;
  y = NULL;
  emlrtAssign(&y, emlrtCreateStructMatrix(1, 1, 0, NULL));
  b_y = NULL;
  m0 = emlrtCreateDoubleScalar(u->Dur_GT);
  emlrtAssign(&b_y, m0);
  emlrtAddField(y, b_y, "Dur_GT", 0);
  c_y = NULL;
  m0 = emlrtCreateDoubleScalar(u->Dur_TR);
  emlrtAssign(&c_y, m0);
  emlrtAddField(y, c_y, "Dur_TR", 0);
  d_y = NULL;
  m0 = emlrtCreateDoubleScalar(u->N_GT);
  emlrtAssign(&d_y, m0);
  emlrtAddField(y, d_y, "N_GT", 0);
  e_y = NULL;
  m0 = emlrtCreateDoubleScalar(u->N_TR);
  emlrtAssign(&e_y, m0);
  emlrtAddField(y, e_y, "N_TR", 0);
  emlrtAddField(y, b_emlrt_marshallOut(u->COnPOff_listgt), "COnPOff_listgt", 0);
  f_y = NULL;
  m0 = emlrtCreateDoubleScalar(u->COnPOff_Precision);
  emlrtAssign(&f_y, m0);
  emlrtAddField(y, f_y, "COnPOff_Precision", 0);
  g_y = NULL;
  m0 = emlrtCreateDoubleScalar(u->COnPOff_Recall);
  emlrtAssign(&g_y, m0);
  emlrtAddField(y, g_y, "COnPOff_Recall", 0);
  h_y = NULL;
  m0 = emlrtCreateDoubleScalar(u->COnPOff_Fmeasure);
  emlrtAssign(&h_y, m0);
  emlrtAddField(y, h_y, "COnPOff_Fmeasure", 0);
  emlrtAddField(y, b_emlrt_marshallOut(u->COnOff_listgt), "COnOff_listgt", 0);
  i_y = NULL;
  m0 = emlrtCreateDoubleScalar(u->COnOff_Precision);
  emlrtAssign(&i_y, m0);
  emlrtAddField(y, i_y, "COnOff_Precision", 0);
  j_y = NULL;
  m0 = emlrtCreateDoubleScalar(u->COnOff_Recall);
  emlrtAssign(&j_y, m0);
  emlrtAddField(y, j_y, "COnOff_Recall", 0);
  k_y = NULL;
  m0 = emlrtCreateDoubleScalar(u->COnOff_Fmeasure);
  emlrtAssign(&k_y, m0);
  emlrtAddField(y, k_y, "COnOff_Fmeasure", 0);
  emlrtAddField(y, b_emlrt_marshallOut(u->COnP_listgt), "COnP_listgt", 0);
  l_y = NULL;
  m0 = emlrtCreateDoubleScalar(u->COnP_Precision);
  emlrtAssign(&l_y, m0);
  emlrtAddField(y, l_y, "COnP_Precision", 0);
  m_y = NULL;
  m0 = emlrtCreateDoubleScalar(u->COnP_Recall);
  emlrtAssign(&m_y, m0);
  emlrtAddField(y, m_y, "COnP_Recall", 0);
  n_y = NULL;
  m0 = emlrtCreateDoubleScalar(u->COnP_Fmeasure);
  emlrtAssign(&n_y, m0);
  emlrtAddField(y, n_y, "COnP_Fmeasure", 0);
  emlrtAddField(y, b_emlrt_marshallOut(u->COn_listgt), "COn_listgt", 0);
  o_y = NULL;
  m0 = emlrtCreateDoubleScalar(u->COn_Precision);
  emlrtAssign(&o_y, m0);
  emlrtAddField(y, o_y, "COn_Precision", 0);
  p_y = NULL;
  m0 = emlrtCreateDoubleScalar(u->COn_Recall);
  emlrtAssign(&p_y, m0);
  emlrtAddField(y, p_y, "COn_Recall", 0);
  q_y = NULL;
  m0 = emlrtCreateDoubleScalar(u->COn_Fmeasure);
  emlrtAssign(&q_y, m0);
  emlrtAddField(y, q_y, "COn_Fmeasure", 0);
  emlrtAddField(y, b_emlrt_marshallOut(u->OBOn_listgt), "OBOn_listgt", 0);
  r_y = NULL;
  m0 = emlrtCreateDoubleScalar(u->OBOn_rategt);
  emlrtAssign(&r_y, m0);
  emlrtAddField(y, r_y, "OBOn_rategt", 0);
  emlrtAddField(y, b_emlrt_marshallOut(u->OBP_listgt), "OBP_listgt", 0);
  s_y = NULL;
  m0 = emlrtCreateDoubleScalar(u->OBP_rategt);
  emlrtAssign(&s_y, m0);
  emlrtAddField(y, s_y, "OBP_rategt", 0);
  emlrtAddField(y, b_emlrt_marshallOut(u->OBOff_listgt), "OBOff_listgt", 0);
  t_y = NULL;
  m0 = emlrtCreateDoubleScalar(u->OBOff_rategt);
  emlrtAssign(&t_y, m0);
  emlrtAddField(y, t_y, "OBOff_rategt", 0);
  emlrtAddField(y, b_emlrt_marshallOut(u->S_listgt), "S_listgt", 0);
  u_y = NULL;
  m0 = emlrtCreateDoubleScalar(u->S_rategt);
  emlrtAssign(&u_y, m0);
  emlrtAddField(y, u_y, "S_rategt", 0);
  v_y = NULL;
  m0 = emlrtCreateDoubleScalar(u->S_ratio);
  emlrtAssign(&v_y, m0);
  emlrtAddField(y, v_y, "S_ratio", 0);
  emlrtAddField(y, b_emlrt_marshallOut(u->M_listgt), "M_listgt", 0);
  w_y = NULL;
  m0 = emlrtCreateDoubleScalar(u->M_rategt);
  emlrtAssign(&w_y, m0);
  emlrtAddField(y, w_y, "M_rategt", 0);
  x_y = NULL;
  m0 = emlrtCreateDoubleScalar(u->M_ratio);
  emlrtAssign(&x_y, m0);
  emlrtAddField(y, x_y, "M_ratio", 0);
  emlrtAddField(y, b_emlrt_marshallOut(u->PU_listtr), "PU_listtr", 0);
  y_y = NULL;
  m0 = emlrtCreateDoubleScalar(u->PU_ratetr);
  emlrtAssign(&y_y, m0);
  emlrtAddField(y, y_y, "PU_ratetr", 0);
  emlrtAddField(y, b_emlrt_marshallOut(u->ND_listgt), "ND_listgt", 0);
  ab_y = NULL;
  m0 = emlrtCreateDoubleScalar(u->ND_rategt);
  emlrtAssign(&ab_y, m0);
  emlrtAddField(y, ab_y, "ND_rategt", 0);
  return y;
}