1 /*
2 * Copyright (C) by Argonne National Laboratory
3 * See COPYRIGHT in top-level directory
4 */
5
6 #include <stdio.h>
7 #include "matrix_util.h"
8
print_matrix(int * matrix,int rows,int cols,const char * desc)9 void print_matrix(int *matrix, int rows, int cols, const char *desc)
10 {
11 int digits = 0;
12 int max = (rows * cols) - 1;
13
14 while (max > 0) {
15 max /= 10;
16 digits++;
17 }
18
19 fprintf(stdout, "%s\n", desc);
20 for (int i = 0; i < rows; i++) {
21 for (int j = 0; j < cols; j++) {
22 fprintf(stdout, "%.*d ", digits, matrix[(i * cols) + j]);
23 }
24 fprintf(stdout, "\n");
25 }
26 fprintf(stdout, "\n");
27 }
28
init_matrix(int * matrix,int rows,int cols)29 void init_matrix(int *matrix, int rows, int cols)
30 {
31 for (int i = 0; i < rows; i++)
32 for (int j = 0; j < cols; j++)
33 matrix[(i * cols) + j] = (int) (i * cols) + j;
34 }
35
set_matrix(int * matrix,int rows,int cols,int val)36 void set_matrix(int *matrix, int rows, int cols, int val)
37 {
38 for (int i = 0; i < rows; i++)
39 for (int j = 0; j < cols; j++)
40 matrix[(i * cols) + j] = (int) val;
41 }
42