Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Propagate the change of prototype (use exceptions, not int return) of context factori...
[simgrid.git] / src / xbt / xbt_matrix.c
index ff2c3c8..53ac040 100644 (file)
@@ -17,7 +17,7 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(xbt_matrix,xbt,"2D data storage");
 /** \brief constructor */
 xbt_matrix_t xbt_matrix_new(int lines, int rows, 
                            const unsigned long elmsize,
-                           void_f_pvoid_t const free_f)  {
+                           void_f_pvoid_t const free_f)  {
    xbt_matrix_t res=xbt_new(s_xbt_matrix_t, 1);
    res->lines   = lines;
    res->rows    = rows;
@@ -31,7 +31,7 @@ xbt_matrix_t xbt_matrix_new(int lines, int rows,
 xbt_matrix_t xbt_matrix_new_sub(xbt_matrix_t from, 
                                int lsize, int rsize,
                                int lpos, int rpos,
-                               pvoid_f_pvoid_t *const cpy_f) {
+                               pvoid_f_pvoid_t const cpy_f) {
    
    xbt_matrix_t res=xbt_matrix_new(lsize,rsize,
                                   from->elmsize, from->free_f);
@@ -41,7 +41,7 @@ xbt_matrix_t xbt_matrix_new_sub(xbt_matrix_t from,
 
 /** \brief destructor */
 void xbt_matrix_free(xbt_matrix_t mat) {
-  int i;
+  unsigned int i;
   if (mat) {
     if (mat->free_f) {
       for (i=0; i < (mat->lines * mat->rows) ; i++) {
@@ -63,7 +63,7 @@ void xbt_matrix_free_voidp(void *d) {
  *  \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) {
-  int i,j;
+  unsigned int i,j;
 
   fprintf(stderr,">>> Matrix %s dump (%d x %d)\n",name,matrix->lines,matrix->rows);
   for (i=0; i<matrix->lines; i++) {
@@ -73,7 +73,7 @@ void xbt_matrix_dump(xbt_matrix_t matrix, const char*name, int coords,
         fprintf(stderr," (%d,%d)=",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");
   }
@@ -94,11 +94,11 @@ void xbt_matrix_dump_display_double(void*d) {
  * \param rpos_src: row offset on destination matrix
  */
 void xbt_matrix_copy_values(xbt_matrix_t dst, xbt_matrix_t src,
-                           int lsize, int rsize,
-                           int lpos_dst,int rpos_dst,
-                           int lpos_src,int rpos_src,
-                           pvoid_f_pvoid_t *const cpy_f) {
-   int i,j;
+                           unsigned int lsize, unsigned int rsize,
+                           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;
    
    DEBUG10("Copy a %dx%d submatrix from %dx%d(of %dx%d) to %dx%d (of %dx%d)",
           lsize,rsize,
@@ -119,7 +119,7 @@ void xbt_matrix_copy_values(xbt_matrix_t dst, xbt_matrix_t src,
    for (i=0;i<rsize;i++) {
       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));
+          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 {
         memcpy(xbt_matrix_get_ptr(dst,lpos_dst,i+rpos_dst),
                xbt_matrix_get_ptr(src,lpos_src,i+rpos_src),
@@ -179,7 +179,7 @@ xbt_matrix_t xbt_matrix_double_new_mult(xbt_matrix_t A,xbt_matrix_t B) {
 /** \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) {
-  int i,j,k;
+  unsigned int i,j,k;
 
   xbt_assert2(A->lines == C->lines,
              "A->lines != C->lines (%d vs %d)",A->lines,C->lines);