/************************************************************************** ??/??????????????????????????????? 1. ??????????????????????????????? 2. ?????????????????????? 3. ??rc_fun_rec rc_fun_tab?????????????????? ??????????????????????????????????????????? ***************************************************************************/ /* ????201209054233 ?????????????? */ #include "rowcol.h" #include #include #include /* ????????????????? */ /* ??????????????????????????????????????????????? ??????????2????????????????? */ void c_sum(matrix_t M, vector_t rowsum, vector_t colsum) { int i, j; for (j = 0; j < N; j++) { colsum[j] = 0; for (i = 0; i < N; i++) colsum[j] += M[i][j]; } } /* ???????????????????? */ /* ??????????????????????? */ void rc_sum(matrix_t M, vector_t rowsum, vector_t colsum) { int i, j; for (i = 0; i < N; i++) { rowsum[i] = colsum[i] = 0; for (j = 0; j < N; j++) { rowsum[i] += M[i][j]; colsum[i] += M[j][i]; } } } /* ????????????????????????????????????????, COL/ROWCOL, "?????????"?? COL?????????????????????? ROWCOL??????????????????????? ????????????????????????????? ???? {my_c_sum1, "?????????????????"}, {my_rc_sum2, "??????????????????"}, */ rc_fun_rec rc_fun_tab[] = { /* ???????????????????????????????? */ {c_sum, COL, "Best column sum"}, /* ?????????????????????????????????? */ {rc_sum, ROWCOL, "Best row and column sum"}, {c_sum, COL, "Column sum, reference implementation"}, {rc_sum, ROWCOL, "Row and column sum, reference implementation"}, /* ??????????????????????????????????????? */ {NULL, ROWCOL, NULL}};