diff --git a/src/matrix/2x2matrix.h b/src/matrix/2x2matrix.h
new file mode 100644
index 0000000000000000000000000000000000000000..04f5db5f032c2aa6f8f277affb916a2fdff199a5
--- /dev/null
+++ b/src/matrix/2x2matrix.h
@@ -0,0 +1,24 @@
+#ifndef _2X2MATRIX_H
+#define _2X2MATRIX_H
+#define MATRIXCACHE2X2 10
+#include <stdint.h>
+typedef struct{
+    float a11,a12,
+        a21,a22;
+}_2x2Matrix;
+
+typedef struct{
+    float a11,
+        a21;
+}_2x1Matrix;
+
+_2x2Matrix add_2x2(_2x2Matrix m1, _2x2Matrix m2);
+_2x2Matrix minus_2x2(_2x2Matrix m1, _2x2Matrix m2);
+_2x2Matrix multiply_2x2(_2x2Matrix m1, _2x2Matrix m2);
+_2x2Matrix scale_2x2(_2x2Matrix m1, float scale);
+float det_2x2(_2x2Matrix m);
+_2x2Matrix inverse_2x2(_2x2Matrix m);
+_2x1Matrix transpose_2x2(_2x2Matrix m1, _2x1Matrix m2);
+unsigned char equals_2x2(_2x2Matrix m1, _2x2Matrix m2);
+
+#endif //_2X2MATRIX_H