diff --git a/matrix.h b/matrix.h index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..86c8e8f3e3fb477c7abb98a8271ff977c756eec8 100644 --- a/matrix.h +++ b/matrix.h @@ -0,0 +1,28 @@ +#ifndef _MY_MATRIX_ +#define _MY_MATRIX_ +#include <cstdint> +#include <stdbool.h> + +typedef enum _error_code { + OK, ERR +} error_code; + +struct _matrix +{ + int32_t m, n; + int32_t ** data; +} matrix; + +error_code matrix_alloc(_matrix *mat, int32_t m, int32_t n); +error_code matrix_init(_matrix *mat, int32_t m, int32_t n, int32_t val); +error_code matrix_destroy(_matrix *mat); +error_code matrix_init_from_array(_matrix *mat, int32_t m , int32_t n, int32_t data[], int32_t s); +error_code matrix_clone(_matrix *cloned, _matrix mat); +error_code matrix_transpose(_matrix *transposed, _matrix mat); +error_code matrix_print(_matrix mat); +bool matrix_is_equal(_matrix mat1, _matrix mat2); +error_code matrix_get(int32_t *elem, _matrix mat, int32_t ix, int32_t iy); +error_code matrix_set(_matrix mat, int32_t ix, int32_t iy, int32_t elem); + + +#endif \ No newline at end of file