/* matrix.h -- Header file */

/* Strukturdefinition */

struct matrix {
  int num_rows;
  int num_columns;
  double *elements;
};

/* Konstruktor */

struct matrix *alloc_matrix(int num_rows, int num_columns);

/* Zugriffsfunktionen (Accessors) */

double matrix_element(struct matrix *matrix, int row, int column);

void set_matrix_element(struct matrix *matrix, int row, int column,
			double element);

/* Destruktor */

void free_matrix(struct matrix *matrix);

/* I/O */

struct matrix *read_matrix();

void print_matrix(struct matrix *matrix);

/* Arithmetik */

struct matrix *matrix_sum(struct matrix *A,
			  struct matrix *B);
