X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/3e5a0f268e736e6fd525c63071cc1592411f7f3f..c9da3f822dd0c5ff8590c5f81ee60e24c85cfc77:/src/xbt/xbt_matrix.c diff --git a/src/xbt/xbt_matrix.c b/src/xbt/xbt_matrix.c index 81f7d1a170..9cb965c70d 100644 --- a/src/xbt/xbt_matrix.c +++ b/src/xbt/xbt_matrix.c @@ -1,8 +1,7 @@ -/* $Id$ */ - /* xbt_matrix_t management functions */ -/* Copyright (c) 2006 Martin Quinson. All rights reserved. */ +/* Copyright (c) 2006-2014. The SimGrid Team. + * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -48,7 +47,7 @@ void xbt_matrix_free(xbt_matrix_t mat) if (mat) { if (mat->free_f) { for (i = 0; i < (mat->lines * mat->rows); i++) { - (*(mat->free_f)) ((void *) &(mat->data[i * mat->elmsize])); + mat->free_f((void *) &(mat->data[i * mat->elmsize])); } } free(mat->data); @@ -70,16 +69,16 @@ void xbt_matrix_dump(xbt_matrix_t matrix, const char *name, int coords, { unsigned int i, j; - fprintf(stderr, ">>> Matrix %s dump (%d x %d)\n", name, matrix->lines, + fprintf(stderr, ">>> Matrix %s dump (%u x %u)\n", name, matrix->lines, matrix->rows); for (i = 0; i < matrix->lines; i++) { fprintf(stderr, " "); for (j = 0; j < matrix->rows; j++) { if (coords) - fprintf(stderr, " (%d,%d)=", i, j); + fprintf(stderr, " (%u,%u)=", i, j); else fprintf(stderr, " "); - (*display_fun) (xbt_matrix_get_ptr(matrix, i, j)); + display_fun(xbt_matrix_get_ptr(matrix, i, j)); } fprintf(stderr, "\n"); } @@ -109,10 +108,10 @@ void xbt_matrix_copy_values(xbt_matrix_t dst, xbt_matrix_t src, { unsigned int i, j; - DEBUG10("Copy a %dx%d submatrix from %dx%d(of %dx%d) to %dx%d (of %dx%d)", - lsize, rsize, - lpos_src, rpos_src, src->lines, src->rows, - lpos_dst, rpos_dst, dst->lines, dst->rows); + 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); /* everybody knows that issue is between the chair and the screen (particulary in my office) */ xbt_assert(src->elmsize == dst->elmsize); @@ -129,7 +128,7 @@ void xbt_matrix_copy_values(xbt_matrix_t dst, xbt_matrix_t src, if (cpy_f) { for (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)); + cpy_f(xbt_matrix_get_ptr(src, j + rpos_src, i + lpos_src)); } else { memcpy(xbt_matrix_get_ptr(dst, lpos_dst, i + rpos_dst), xbt_matrix_get_ptr(src, lpos_src, i + rpos_src), @@ -139,7 +138,7 @@ void xbt_matrix_copy_values(xbt_matrix_t dst, xbt_matrix_t src, } -/** \brief Creates a new matrix of double filled with zeros */ +/** \brief Creates a new matrix of double filled with zeros */ xbt_matrix_t xbt_matrix_double_new_zeros(int lines, int rows) { xbt_matrix_t res = xbt_matrix_new(lines, rows, sizeof(double), NULL); @@ -148,7 +147,7 @@ xbt_matrix_t xbt_matrix_double_new_zeros(int lines, int rows) return res; } -/** \brief Creates a new matrix of double being the identity matrix */ +/** \brief Creates a new matrix of double being the identity matrix */ xbt_matrix_t xbt_matrix_double_new_id(int lines, int rows) { xbt_matrix_t res = xbt_matrix_double_new_zeros(lines, rows); @@ -159,7 +158,7 @@ xbt_matrix_t xbt_matrix_double_new_id(int lines, int rows) return res; } -/** \brief Creates a new matrix of double randomly filled */ +/** \brief Creates a new matrix of double randomly filled */ xbt_matrix_t xbt_matrix_double_new_rand(int lines, int rows) { xbt_matrix_t res = xbt_matrix_new(lines, rows, sizeof(double), NULL); @@ -171,7 +170,7 @@ xbt_matrix_t xbt_matrix_double_new_rand(int lines, int rows) return res; } -/** \brief Creates a new matrix of double containing the sequence of numbers in order */ +/** \brief Creates a new matrix of double containing the sequence of numbers in order */ xbt_matrix_t xbt_matrix_double_new_seq(int lines, int rows) { xbt_matrix_t res = xbt_matrix_new(lines, rows, sizeof(double), NULL); @@ -182,12 +181,14 @@ xbt_matrix_t xbt_matrix_double_new_seq(int lines, int rows) return res; } -/** \brief Checks whether the matrix contains the sequence of numbers */ -int xbt_matrix_double_is_seq(xbt_matrix_t mat) { - int i; + +/** \brief Checks whether the matrix contains the sequence of numbers */ +int xbt_matrix_double_is_seq(xbt_matrix_t mat) +{ + unsigned int i; for (i = 0; i < mat->lines * mat->rows; i++) { - double val = xbt_matrix_get_as(mat,i,0,double); + double val = xbt_matrix_get_as(mat, i, 0, double); if (val != i) return 0; } @@ -210,14 +211,14 @@ void xbt_matrix_double_addmult(xbt_matrix_t A, xbt_matrix_t B, { unsigned int i, j, k; - xbt_assert2(A->lines == C->lines, - "A->lines != C->lines (%d vs %d)", A->lines, C->lines); + 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++) xbt_matrix_get_as(C, i, j, double) += - xbt_matrix_get_as(A, i, k, double) * xbt_matrix_get_as(B, k, j, - double); + xbt_matrix_get_as(A, i, k, double) * xbt_matrix_get_as(B, k, j, + double); }