59 lines
1.0 KiB
C
59 lines
1.0 KiB
C
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
/*
|
|
* Create a matrix stored in a single array.
|
|
*/
|
|
double *create_sa_matrix(int rows, int cols) {
|
|
double *x;
|
|
|
|
x = (double *) malloc(rows * cols * sizeof(double));
|
|
return x;
|
|
}
|
|
|
|
/*
|
|
* Destroy a single array matrix.
|
|
*/
|
|
void destroy_sa_matrix(double *x) {
|
|
free(x);
|
|
}
|
|
|
|
/*
|
|
* Get the index for the single array matrix
|
|
* that correspond to the given row and column.
|
|
*/
|
|
int sa_index(int cols, int r, int c) {
|
|
return r * cols + c;
|
|
}
|
|
|
|
double **create_matrix(int rows, int cols) {
|
|
int i;
|
|
double **x;
|
|
|
|
x = (double **) malloc(rows * sizeof(double));
|
|
for (i = 0; i < rows; i++) {
|
|
x[i] = (double *) malloc(cols * sizeof(double));
|
|
}
|
|
return x;
|
|
}
|
|
|
|
void destroy_matrix(double **x, int rows) {
|
|
int i;
|
|
|
|
for (i = 0; i < rows; i++) {
|
|
free(x[i]);
|
|
}
|
|
free(x);
|
|
}
|
|
|
|
void print_matrix(double **x, int rows, int cols) {
|
|
int i, j;
|
|
for (i = 0; i < rows; i++) {
|
|
for (j = 0; j < cols; j++) {
|
|
printf("%f\t", x[i][j]);
|
|
}
|
|
printf("\n");
|
|
}
|
|
fflush(stdout);
|
|
}
|