/* TA_MRSP::MRSP_BuildTargetList_LOOP */
void MRSP_BuildTargetList_LOOP_TA_MRSP(
    /* TA_MRSP::MRSP_BuildTargetList_LOOP::SSP_Matrix_In */SSP_t_matrix_t_TA_MRSP *SSP_Matrix_In,
    /* TA_MRSP::MRSP_BuildTargetList_LOOP::SSP_list_in */SSP_t_indexed_matrix_element_TA_MRSP *SSP_list_in,
    outC_MRSP_BuildTargetList_LOOP_TA_MRSP *outC)
{
    SSP_t_indexed_matrix_element_TA_MRSP noname;

    kcg_copy_SSP_t_matrix_t_TA_MRSP(&outC->_L1, SSP_Matrix_In);
    /* 1 */ MRSP_Find_First_in_each_t_TA_MRSP(&outC->_L1, &outC->Context_1);
    kcg_copy_SSP_t_indexed_targets_list_t_TA_MRSP(
        &outC->_L3,
        &outC->Context_1.SSP_indexed_targets_per_cat_out);
    /* 1 */ MRSP_FindMax_of_all_t_cats_TA_MRSP(&outC->_L3, &outC->_1_Context_1);
    kcg_copy_SSP_t_indexed_matrix_element_TA_MRSP(
        &outC->_L4,
        &outC->_1_Context_1.SSP_largest_target);
    /* 1 */
    MRSP_RemoveLargestFromSSP_TA_MRSP(
        &outC->_L4,
        &outC->_L1,
        &outC->_2_Context_1);
    kcg_copy_SSP_t_matrix_t_TA_MRSP(
        &outC->_L5,
        &outC->_2_Context_1.SSP_matrix_out);
    kcg_copy_SSP_t_indexed_matrix_element_TA_MRSP(&outC->_L2, SSP_list_in);
    kcg_copy_SSP_t_indexed_matrix_element_TA_MRSP(&noname, &outC->_L2);
    kcg_copy_SSP_t_indexed_matrix_element_TA_MRSP(
        &outC->SSP_list_out,
        &outC->_L4);
    kcg_copy_SSP_t_matrix_t_TA_MRSP(&outC->SSP_Matrix_out, &outC->_L5);
}
/* TA_MRSP::MRSP_BuildTargetList */
void MRSP_BuildTargetList_TA_MRSP(
  /* TA_MRSP::MRSP_BuildTargetList::SSP_Matrix_In */SSP_t_matrix_t_TA_MRSP *SSP_Matrix_In,
  outC_MRSP_BuildTargetList_TA_MRSP *outC)
{
  SSP_t_matrix_t_TA_MRSP tmp;
  kcg_int i;
  SSP_t_matrix_t_TA_MRSP noname;
  
  kcg_copy_SSP_t_list_t_TA_MRSP(
    &outC->_L5,
    (SSP_t_list_t_TA_MRSP *) &DEFAULT_SSP_targets_TA_MRSP);
  kcg_copy_SSP_t_matrix_t_TA_MRSP(&outC->_L3, SSP_Matrix_In);
  kcg_copy_SSP_t_matrix_t_TA_MRSP(&outC->_L4, &outC->_L3);
  for (i = 0; i < 363; i++) {
    kcg_copy_SSP_t_matrix_t_TA_MRSP(&tmp, &outC->_L4);
    /* 1 */
    MRSP_BuildTargetList_LOOP_TA_MRSP(&tmp, &outC->_L5[i], &outC->Context_1[i]);
    kcg_copy_SSP_t_matrix_t_TA_MRSP(
      &outC->_L4,
      &outC->Context_1[i].SSP_Matrix_out);
    kcg_copy_SSP_t_indexed_matrix_element_TA_MRSP(
      &outC->_L1[i],
      &outC->Context_1[i].SSP_list_out);
  }
  kcg_copy_SSP_t_list_t_TA_MRSP(&outC->SSP_list_out, &outC->_L1);
  kcg_copy_SSP_t_matrix_t_TA_MRSP(&noname, &outC->_L4);
}
/* TA_MRSP::MRSP_RemoveLargestFromSSP_t_matrix */
void MRSP_RemoveLargestFromSSP_TA_MRSP(
  /* TA_MRSP::MRSP_RemoveLargestFromSSP_t_matrix::Largest_Target */SSP_t_indexed_matrix_element_TA_MRSP *Largest_Target,
  /* TA_MRSP::MRSP_RemoveLargestFromSSP_t_matrix::SSP_matrix_in */SSP_t_matrix_t_TA_MRSP *SSP_matrix_in,
  outC_MRSP_RemoveLargestFromSSP_TA_MRSP *outC)
{
  outC->_L18 = 0;
  kcg_copy_SSP_t_indexed_matrix_element_TA_MRSP(&outC->_L2, Largest_Target);
  outC->_L17 = outC->_L2.Pos_Index;
  outC->_L10 = outC->_L2.Category_Index;
  kcg_copy_SSP_t_matrix_t_TA_MRSP(&outC->_L1, SSP_matrix_in);
  kcg_copy_SSP_t_matrix_t_TA_MRSP(&outC->_L3, &outC->_L1);
  if ((0 <= outC->_L10) & (outC->_L10 < 11) & ((0 <= outC->_L17) & (outC->_L17 <
        33))) {
    outC->_L3[outC->_L10][outC->_L17] = outC->_L18;
  }
  kcg_copy_SSP_t_matrix_t_TA_MRSP(&outC->SSP_matrix_out, &outC->_L3);
}
/* TA_MRSP::MRSP_Determine_LengthOfTargetList_LOOP */
void MRSP_Determine_LengthOfTa_TA_MRSP(
  /* TA_MRSP::MRSP_Determine_LengthOfTargetList_LOOP::i */kcg_int i,
  /* TA_MRSP::MRSP_Determine_LengthOfTargetList_LOOP::Acc */kcg_int Acc,
  /* TA_MRSP::MRSP_Determine_LengthOfTargetList_LOOP::SSP_target_in */SSP_t_indexed_matrix_element_TA_MRSP *SSP_target_in,
  outC_MRSP_Determine_LengthOfTa_TA_MRSP *outC)
{
  kcg_int noname;
  
  outC->_L15 = DIM_SSP_TA_MRSP;
  outC->_L1 = i;
  outC->_L14 = outC->_L15 - outC->_L1;
  outC->_L2 = Acc;
  noname = outC->_L2;
  kcg_copy_SSP_t_indexed_matrix_element_TA_MRSP(&outC->_L3, SSP_target_in);
  outC->_L10 = outC->_L3.Loc;
  outC->_L11 = int_ZERO_TA_MRSP;
  outC->_L12 = outC->_L10 == outC->_L11;
  outC->length = outC->_L14;
  outC->cont = outC->_L12;
}
/* TA_MRSP::MRSP_Determine_LengthOfTargetList */
void _18_MRSP_Determine_LengthOfTa_TA_MRSP(
  /* TA_MRSP::MRSP_Determine_LengthOfTargetList::SSP_t_list_in */SSP_t_list_t_TA_MRSP *SSP_t_list_in,
  outC__18_MRSP_Determine_LengthOfTa_TA_MRSP *outC)
{
  kcg_int i1;
  kcg_int tmp;
  kcg_int i;
  kcg_int noname;
  
  outC->_L183 = 0;
  kcg_copy_SSP_t_list_t_TA_MRSP(&outC->_L2, SSP_t_list_in);
  for (i1 = 0; i1 < 363; i1++) {
    kcg_copy_SSP_t_indexed_matrix_element_TA_MRSP(
      &outC->_L179[i1],
      &outC->_L2[362 - i1]);
  }
  outC->_L181 = kcg_true;
  outC->_L182 = outC->_L183;
  if (outC->_L181) {
    for (i = 0; i < 363; i++) {
      tmp = outC->_L182;
      /* 1 */
      MRSP_Determine_LengthOfTa_TA_MRSP(
        i,
        tmp,
        &outC->_L179[i],
        &outC->Context_1[i]);
      outC->_L182 = outC->Context_1[i].length;
      outC->_L180 = i + 1;
      if (!outC->Context_1[i].cont) {
        break;
      }
    }
  }
  else {
    outC->_L180 = 0;
  }
  noname = outC->_L180;
  outC->length = outC->_L182;
}