#ifndef MATRIX_H #define MATRIX_H #define UNDEFINED_MATRIX_VALUE 0 typedef float MatrixType; //Strukt für Matrix erstellen (Anzahl Zeilen und Spalten sowie einem Speicherbereich mit den eigentlichen Werten) typedef struct{ unsigned int rows; //Zeilen unsigned int cols; //Spalten MatrixType *buffer; //Speicherbereich } Matrix; //[*buffer] |Zeile 1| |Zeile 2| |... // Ich wähle hier eine ein eindimensionales Array (ptr -> |0|1|2|3| |4|5|6|7| |8|9|...) Das ist einfacher zur speicherakolisierung mit malloc, weil ich nur einen Speicher reservieren muss // ! man muss rechnen um auf die richtige Adresse zu kommen! // //[**buffer] // Würde man das wählen hätte ich ptr -> |ptr|ptr|ptr|, jeder dieser pointer würde dann auf eine Zeile Zeigen // !Ich müsste alle malloc nacheinander löschen (schwieriger)! Matrix createMatrix(unsigned int rows, unsigned int cols); void clearMatrix(Matrix *matrix); 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); #endif