generated from freudenreichan/info2Praktikum-NeuronalesNetz
(Hab das erst im ganzen projekt gemacht, eigentlich wider rückgängig. Falls probleme auftreten sollten das checken)
34 lines
1.3 KiB
C
34 lines
1.3 KiB
C
#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
|