/** \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;
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);
/** \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++) {
* \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++) {
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");
}
* \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,
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),
/** \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);