diff --git a/Startcode/matrix.c b/Startcode/matrix.c index 20bf4e6..dc4c5b1 100644 --- a/Startcode/matrix.c +++ b/Startcode/matrix.c @@ -11,13 +11,13 @@ int getMatrixIndex(unsigned int cols, unsigned int rowIdx, unsigned int colIdx) Matrix createMatrix(const unsigned int rows, const unsigned int cols) { Matrix matrix = {.rows = rows, .cols = cols}; - matrix.storage = malloc(rows * cols * sizeof(MatrixType)); + matrix.buffer = malloc(rows * cols * sizeof(MatrixType)); return matrix; } void setMatrixAt(MatrixType value, Matrix matrix, unsigned int rowIdx, unsigned int colIdx) { - matrix.storage[getMatrixIndex(matrix.cols, rowIdx, colIdx)] = value; + matrix.buffer[getMatrixIndex(matrix.cols, rowIdx, colIdx)] = value; } void clearMatrix(Matrix *matrix) @@ -33,7 +33,7 @@ void clearMatrix(Matrix *matrix) MatrixType getMatrixAt(const Matrix matrix, unsigned int rowIdx, unsigned int colIdx) { - return matrix.storage[getMatrixIndex(matrix.cols, rowIdx, colIdx)]; + return matrix.buffer[getMatrixIndex(matrix.cols, rowIdx, colIdx)]; } Matrix add(const Matrix matrix1, const Matrix matrix2) @@ -42,14 +42,14 @@ Matrix add(const Matrix matrix1, const Matrix matrix2) { fprintf(stderr, "Fehler: Dimensionen stimmen nicht überein (%ux%u und %ux%u)\n", matrix1.rows, matrix1.cols, matrix2.rows, matrix2.cols); - return (Matrix){ .rows = 0, .cols = 0, .storage = NULL }; + return (Matrix){ .rows = 0, .cols = 0, .buffer = NULL }; } Matrix result = createMatrix(matrix1.rows, matrix1.cols); // check, ob genügend Speicher vorhanden - if (result.storage == NULL) { - return (Matrix){ .rows = 0, .cols = 0, .storage = NULL }; + if (result.buffer == NULL) { + return (Matrix){ .rows = 0, .cols = 0, .buffer = NULL }; } for (unsigned int i = 0; i < matrix1.rows; i++) @@ -57,7 +57,7 @@ Matrix add(const Matrix matrix1, const Matrix matrix2) for (unsigned int j = 0; j < matrix1.cols; j++) { unsigned int index = getMatrixIndex(matrix1.cols, i, j); - result.storage[index] = matrix1.storage[index] + matrix2.storage[index]; + result.buffer[index] = matrix1.buffer[index] + matrix2.buffer[index]; } } @@ -70,14 +70,14 @@ Matrix multiply(const Matrix matrix1, const Matrix matrix2) { printf("Fehler: Spalten von Matrix 1 (%u) entsprechen nicht Zeilen von Matrix 2 (%u)\n", matrix1.cols, matrix2.rows); - return (Matrix){ .rows = 0, .cols = 0, .storage = NULL }; + return (Matrix){ .rows = 0, .cols = 0, .buffer = NULL }; } Matrix result = createMatrix(matrix1.rows, matrix2.cols); // check, ob genügend Speicher vorhanden - if (result.storage == NULL) { - return (Matrix){ .rows = 0, .cols = 0, .storage = NULL }; + if (result.buffer == NULL) { + return (Matrix){ .rows = 0, .cols = 0, .buffer = NULL }; } for (unsigned int i = 0; i < matrix1.rows; i++) @@ -88,12 +88,12 @@ Matrix multiply(const Matrix matrix1, const Matrix matrix2) for (unsigned int k = 0; k < matrix1.cols; k++) { - MatrixType val1 = matrix1.storage[i * matrix1.cols + k]; - MatrixType val2 = matrix2.storage[k * matrix2.cols + j]; + MatrixType val1 = matrix1.buffer[i * matrix1.cols + k]; + MatrixType val2 = matrix2.buffer[k * matrix2.cols + j]; sum += val1 * val2; } - result.storage[i * result.cols + j] = sum; + result.buffer[i * result.cols + j] = sum; } } diff --git a/Startcode/matrix.h b/Startcode/matrix.h index 8300fcb..104c35d 100644 --- a/Startcode/matrix.h +++ b/Startcode/matrix.h @@ -11,7 +11,7 @@ typedef struct { unsigned int rows; unsigned int cols; - MatrixType* storage; + MatrixType* buffer; } Matrix; Matrix createMatrix(unsigned int rows, unsigned int cols);