diff --git a/src/algebra/TinyMatrix.hpp b/src/algebra/TinyMatrix.hpp
index 0d3b9c0e5fef46f85fa576b68f940708c8ed529d..e347650b362e32a9e37ccc58841b02674967aead 100644
--- a/src/algebra/TinyMatrix.hpp
+++ b/src/algebra/TinyMatrix.hpp
@@ -14,6 +14,10 @@ template <size_t M, size_t N = M, typename T = double>
 class [[nodiscard]] TinyMatrix
 {
  public:
+  inline static constexpr size_t Dimension       = M * N;
+  inline static constexpr size_t NumberOfRows    = M;
+  inline static constexpr size_t NumberOfColumns = N;
+
   using data_type = T;
 
  private:
diff --git a/tests/test_TinyMatrix.cpp b/tests/test_TinyMatrix.cpp
index c9b72d5de9ecb6b047ae8c16ad832f8b29b38157..81c187dc2f5c7663fb7491cfa5c68fc2fc2d7eb6 100644
--- a/tests/test_TinyMatrix.cpp
+++ b/tests/test_TinyMatrix.cpp
@@ -21,6 +21,16 @@ template class TinyMatrix<4, 4, double>;
 
 TEST_CASE("TinyMatrix", "[algebra]")
 {
+  REQUIRE(TinyMatrix<1, 1, int>::Dimension == 1);
+  REQUIRE(TinyMatrix<1, 1, int>::NumberOfRows == 1);
+  REQUIRE(TinyMatrix<1, 1, int>::NumberOfColumns == 1);
+  REQUIRE(TinyMatrix<2, 3, int>::Dimension == 6);
+  REQUIRE(TinyMatrix<2, 3, int>::NumberOfRows == 2);
+  REQUIRE(TinyMatrix<2, 3, int>::NumberOfColumns == 3);
+  REQUIRE(TinyMatrix<5, 4, int>::Dimension == 20);
+  REQUIRE(TinyMatrix<5, 4, int>::NumberOfRows == 5);
+  REQUIRE(TinyMatrix<5, 4, int>::NumberOfColumns == 4);
+
   TinyMatrix<3, 4, int> A(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
   REQUIRE(((A(0, 0) == 1) and (A(0, 1) == 2) and (A(0, 2) == 3) and (A(0, 3) == 4) and   //
            (A(1, 0) == 5) and (A(1, 1) == 6) and (A(1, 2) == 7) and (A(1, 3) == 8) and   //