-/* $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. */
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);
{
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");
}
{
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);
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),
}
-/** \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);
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);
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);
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);
return res;
}
-/** \brief Checks whether the matrix contains the sequence of numbers */
-int xbt_matrix_double_is_seq(xbt_matrix_t mat) {
+
+/** \brief Checks whether the matrix contains the sequence of numbers */
+int xbt_matrix_double_is_seq(xbt_matrix_t mat)
+{
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;
}
{
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);
}