#include <stdlib.h>
#include <string.h>
#include "matrix.h"

// TODO Matrix-Funktionen implementieren

Matrix createMatrix(unsigned int rows, unsigned int cols)
{
    Matrix matrix;
    if (rows == 0 || cols == 0) {
        matrix.rows = 0;
        matrix.cols = 0;
        matrix.buffer = NULL;
    }
    else
    {
        matrix.rows = rows;
        matrix.cols = cols;
        matrix.buffer = (MatrixType*)malloc(sizeof(MatrixType) * rows * cols);
    }
    return matrix;


}

void clearMatrix(Matrix *matrix)
{
  for (int i = 0; i < matrix->rows; i++)
  { for (int j = 0; j < matrix->cols; j++)
      {
        matrix->cols = 0;
        matrix->rows = 0;
      	matrix->buffer = NULL;
      }
   }
}

void setMatrixAt(MatrixType value, Matrix matrix, unsigned int rowIdx, unsigned int colIdx)
{
    
}

MatrixType getMatrixAt(const Matrix matrix, unsigned int rowIdx, unsigned int colIdx)
{
    
}

Matrix add(const Matrix matrix1, const Matrix matrix2)
{
    
}

Matrix multiply(const Matrix matrix1, const Matrix matrix2)
{
    
}