diff options
| author | Soikk | 2022-08-24 17:53:50 +0200 |
|---|---|---|
| committer | Soikk | 2022-08-24 17:53:50 +0200 |
| commit | 0c77a6920580eaa08a301a21a9324e6b8938ceba (patch) | |
| tree | cc2b599291f8f73f30a236a32149f6af79ef9683 /matrix.h | |
| download | soikk-matrix-0c77a6920580eaa08a301a21a9324e6b8938ceba.tar.xz soikk-matrix-0c77a6920580eaa08a301a21a9324e6b8938ceba.tar.zst | |
Initial commit
Diffstat (limited to 'matrix.h')
| -rw-r--r-- | matrix.h | 48 |
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 |
