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