/* matrix.h -- Header file */

/* Strukturdefinition */

struct matrix;

/* 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);

int matrix_num_rows(struct matrix *matrix);

int matrix_num_columns(struct matrix *matrix);

/* 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);
