diff --git a/include/eigenpy/details.hpp b/include/eigenpy/details.hpp
index 65b2103cf4f602ee158ef701388c5f609af6f697..1cbe269f45c8deca4f0618abcb8fa5a0c4a04d91 100644
--- a/include/eigenpy/details.hpp
+++ b/include/eigenpy/details.hpp
@@ -119,6 +119,28 @@ namespace eigenpy
     {
       return getInstance().CurrentNumpyType;
     }
+    
+    static const PyTypeObject * getNumpyMatrixType()
+    {
+      return getInstance().NumpyMatrixType;
+    }
+    
+    static const PyTypeObject * getNumpyArrayType()
+    {
+      return getInstance().NumpyArrayType;
+    }
+    
+    static bool isMatrix()
+    {
+      return PyType_IsSubtype(reinterpret_cast<PyTypeObject*>(getInstance().CurrentNumpyType.ptr()),
+                              getInstance().NumpyMatrixType);
+    }
+    
+    static bool isArray()
+    {
+      return PyType_IsSubtype(reinterpret_cast<PyTypeObject*>(getInstance().CurrentNumpyType.ptr()),
+                              getInstance().NumpyArrayType);
+    }
 
   protected:
     NumpyType()