summaryrefslogtreecommitdiff
path: root/matrix.h
diff options
context:
space:
mode:
authorSoikk2022-08-24 17:53:50 +0200
committerSoikk2022-08-24 17:53:50 +0200
commit0c77a6920580eaa08a301a21a9324e6b8938ceba (patch)
treecc2b599291f8f73f30a236a32149f6af79ef9683 /matrix.h
downloadsoikk-matrix-0c77a6920580eaa08a301a21a9324e6b8938ceba.tar.xz
soikk-matrix-0c77a6920580eaa08a301a21a9324e6b8938ceba.tar.zst
Initial commit
Diffstat (limited to 'matrix.h')
-rw-r--r--matrix.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/matrix.h b/matrix.h
new file mode 100644
index 0000000..b01c889
--- /dev/null
+++ b/matrix.h
@@ -0,0 +1,48 @@
+#pragma once
+#ifndef MATRIX_H
+#define MATRIX_H
+
+
+typedef struct matrix{
+ int rows;
+ int cols;
+ double **data;
+} matrix;
+
+matrix *newMatrix(int rows, int cols);
+
+void freeMatrix(matrix **m);
+
+matrix *copyMatrix(matrix *m);
+
+matrix *identityMatrix(int order);
+
+matrix *fillMatrix(matrix *m, double n);
+
+matrix *addMatrix(matrix *m, double n);
+
+matrix *subtractMatrix(matrix *m, double n);
+
+matrix *scaleMatrix(matrix *m, double n);
+
+matrix *addMatrices(matrix *m1, matrix *m2);
+
+matrix *subtractMatrices(matrix *m1, matrix *m2);
+
+matrix *multiplyMatrices(matrix *m1, matrix *m2);
+
+matrix *subMatrix(matrix *m, int row, int col);
+
+double determinant(matrix *m);
+
+matrix *cofactor(matrix *m);
+
+matrix *transpose(matrix *m);
+
+matrix *adjugate(matrix *m);
+
+matrix *inverse(matrix *m);
+
+matrix *raiseMatrix(matrix *m, int n);
+
+#endif