diff --git a/src/matrix/3x3matrix.h b/src/matrix/3x3matrix.h new file mode 100644 index 0000000000000000000000000000000000000000..7b4dc346ce0ca43cf5db0e44d2c5516c50972072 --- /dev/null +++ b/src/matrix/3x3matrix.h @@ -0,0 +1,42 @@ +#ifndef _3X3MATRIX_H +#define _3X3MATRIX_H +#include <stdint.h> + +#define _mA a11 +#define _mB a12 +#define _mC a13 +#define _mD a21 +#define _mE a22 +#define _mF a23 +#define _mG a31 +#define _mH a32 +#define _mI a33 + +typedef struct{ + float a11,a12,a13, + a21,a22,a23, + a31,a32,a33; +}_3x3Matrix; + +typedef struct{ + float a11, + a21, + a31; +}_3x1Matrix; + +_3x3Matrix add_3x3(_3x3Matrix m1, _3x3Matrix m2); +_3x3Matrix minus_3x3(_3x3Matrix m1, _3x3Matrix m2); +_3x3Matrix multiply_3x3(_3x3Matrix m1, _3x3Matrix m2); +_3x3Matrix scale_3x3(_3x3Matrix m1, float scale); +float det_3x3(_3x3Matrix m); +_3x3Matrix inverse_3x3(_3x3Matrix m); +_3x1Matrix add_3x1(_3x1Matrix m1, _3x1Matrix m2); +_3x1Matrix minus_3x1(_3x1Matrix m1, _3x1Matrix m2); +_3x3Matrix combine(_3x1Matrix m1, _3x1Matrix m2, _3x1Matrix m3); +_3x1Matrix transpose_3x3(_3x3Matrix m1, _3x1Matrix m2); +unsigned char equals_3x3(_3x3Matrix m1, _3x3Matrix m2); +_3x1Matrix crossProduct(_3x1Matrix m1, _3x1Matrix m2); + + +#endif //_3X3MATRIX_H +