/* 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_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_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_Split_And_Reverse_SSP_matrix */
void MRSP_Split_And_Reverse_SS_TA_MRSP(
  /* TA_MRSP::MRSP_Split_And_Reverse_SSP_matrix::SSP_matrix_in */SSP_matrix_t_TA_MRSP *SSP_matrix_in,
  outC_MRSP_Split_And_Reverse_SS_TA_MRSP *outC)
{
  kcg_int i;
  
  kcg_copy_SSP_matrix_t_TA_MRSP(&outC->_L1, SSP_matrix_in);
  for (i = 0; i < 11; i++) {
    /* 1 */
    _19_MRSP_SplitAndReverseSSP_L_TA_MRSP(&outC->_L1[i], &outC->Context_1[i]);
    kcg_copy_SSP_t_cat_t_TA_MRSP(
      &outC->_L27[i],
      &outC->Context_1[i].SSP_reverse_t_cat_out);
    kcg_copy_SSP_cat_t_TA_MRSP(
      &outC->_L51[i],
      &outC->Context_1[i].SSP_reverse_cat_out);
  }
  kcg_copy_SSP_matrix_t_TA_MRSP(&outC->SSP_reverse_matrix_out, &outC->_L51);
  kcg_copy_SSP_t_matrix_t_TA_MRSP(&outC->SSP_reverse_t_matrix_out, &outC->_L27);
}