X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7410b72db09489e8b9d3ee3cb087f35882397d93..deac2c062ec8d469f153bc84e6e6f705bf20f3aa:/src/xbt/xbt_matrix.c diff --git a/src/xbt/xbt_matrix.c b/src/xbt/xbt_matrix.c index a90d2368b2..4dd4e5302f 100644 --- a/src/xbt/xbt_matrix.c +++ b/src/xbt/xbt_matrix.c @@ -1,5 +1,3 @@ -/* xbt_matrix_t management functions */ - /* Copyright (c) 2006-2014. The SimGrid Team. * All rights reserved. */ @@ -37,10 +35,9 @@ xbt_matrix_t xbt_matrix_new_sub(xbt_matrix_t from, int lsize, int rsize, int lpo /** \brief destructor */ void xbt_matrix_free(xbt_matrix_t mat) { - unsigned int i; if (mat) { if (mat->free_f) { - for (i = 0; i < (mat->lines * mat->rows); i++) { + for (unsigned i = 0; i < (mat->lines * mat->rows); i++) { mat->free_f((void *) &(mat->data[i * mat->elmsize])); } } @@ -49,22 +46,14 @@ void xbt_matrix_free(xbt_matrix_t mat) } } -/** \brief Freeing function for containers of xbt_matrix_t */ -void xbt_matrix_free_voidp(void *d) -{ - xbt_matrix_free((xbt_matrix_t) * (void **) d); -} - /** \brief Display the content of a matrix (debugging purpose) * \param coords: boolean indicating whether we should add the coords of each cell to the output*/ void xbt_matrix_dump(xbt_matrix_t matrix, const char *name, int coords, void_f_pvoid_t display_fun) { - unsigned int i, j; - fprintf(stderr, ">>> Matrix %s dump (%u x %u)\n", name, matrix->lines, matrix->rows); - for (i = 0; i < matrix->lines; i++) { + for (unsigned i = 0; i < matrix->lines; i++) { fprintf(stderr, " "); - for (j = 0; j < matrix->rows; j++) { + for (unsigned j = 0; j < matrix->rows; j++) { if (coords) fprintf(stderr, " (%u,%u)=", i, j); else @@ -76,11 +65,6 @@ void xbt_matrix_dump(xbt_matrix_t matrix, const char *name, int coords, void_f_p fprintf(stderr, "<<< end_of_matrix %s dump\n", name); } -void xbt_matrix_dump_display_double(void *d) -{ - fprintf(stderr, "%.2f", *(double *) d); -} - /** \brief Copy the values from the matrix src into the matrix dst * \param dest: destination * \param src: source @@ -95,8 +79,6 @@ void xbt_matrix_copy_values(xbt_matrix_t dst, xbt_matrix_t src, unsigned int lsi unsigned int lpos_dst, unsigned int rpos_dst,unsigned int lpos_src, unsigned int rpos_src, pvoid_f_pvoid_t const cpy_f) { - unsigned int i, j; - XBT_DEBUG ("Copy a %ux%u submatrix from %ux%u(of %ux%u) to %ux%u (of %ux%u)", lsize, rsize, lpos_src, rpos_src, src->lines, src->rows, lpos_dst, rpos_dst, dst->lines, dst->rows); @@ -111,9 +93,9 @@ void xbt_matrix_copy_values(xbt_matrix_t dst, xbt_matrix_t src, unsigned int lsi xbt_assert(rpos_dst + rsize <= dst->rows); /* Lets get serious here */ - for (i = 0; i < rsize; i++) { + for (unsigned i = 0; i < rsize; i++) { if (cpy_f) { - for (j = 0; j < lsize; j++) + for (unsigned j = 0; j < lsize; j++) xbt_matrix_get_as(dst, j + lpos_dst, i + rpos_dst, void *) = cpy_f(xbt_matrix_get_ptr(src, j + rpos_src, i + lpos_src)); } else { @@ -136,9 +118,8 @@ xbt_matrix_t xbt_matrix_double_new_zeros(int lines, int rows) xbt_matrix_t xbt_matrix_double_new_id(int lines, int rows) { xbt_matrix_t res = xbt_matrix_double_new_zeros(lines, rows); - int i; - for (i = 0; i < lines; i++) + for (int i = 0; i < lines; i++) xbt_matrix_get_as(res, i, i, double) = 1; return res; } @@ -147,9 +128,8 @@ xbt_matrix_t xbt_matrix_double_new_id(int lines, int rows) xbt_matrix_t xbt_matrix_double_new_seq(int lines, int rows) { xbt_matrix_t res = xbt_matrix_new(lines, rows, sizeof(double), NULL); - int i; - for (i = 0; i < lines * rows; i++) + for (int i = 0; i < lines * rows; i++) *(double *) &res->data[i * res->elmsize] = i; return res; @@ -158,13 +138,11 @@ xbt_matrix_t xbt_matrix_double_new_seq(int lines, int rows) /** \brief add to C the result of A*B */ void xbt_matrix_double_addmult(xbt_matrix_t A, xbt_matrix_t B, /*OUT*/ xbt_matrix_t C) { - unsigned int i, j, k; - xbt_assert(A->lines == C->lines, "A->lines != C->lines (%u vs %u)", A->lines, C->lines); xbt_assert(B->rows == C->rows); - for (i = 0; i < C->lines; i++) - for (j = 0; j < C->rows; j++) - for (k = 0; k < B->lines; k++) + for (unsigned i = 0; i < C->lines; i++) + for (unsigned j = 0; j < C->rows; j++) + for (unsigned k = 0; k < B->lines; k++) xbt_matrix_get_as(C, i, j, double) += xbt_matrix_get_as(A, i, k, double) * xbt_matrix_get_as(B, k, j, double); }