diff --git a/spm.h b/spm.h
index 3a9409f94c2493aad0908fc7eea4769b4961c126..4ce46baf3ab01e06db9ed963b1a3d6bf0f3035d3 100644
--- a/spm.h
+++ b/spm.h
@@ -51,6 +51,31 @@ typedef enum pastix_driver_e {
     /* PastixDriverBRGMD,      /\**< Not supported yet *\/ */
 } pastix_driver_t;
 
+/**
+ * @brief Arithmetic types.
+ *
+ * This describes the different arithmetics that can be stored in a sparse matrix.
+ * @remark The values start at 2 for compatibility purpose with PLASMA and
+ * DPLASMA libraries.
+ */
+typedef enum pastix_coeftype_e {
+    PastixPattern   = 0, /**< Pattern only, no values are stored */
+    PastixFloat     = 2, /**< Single precision real              */
+    PastixDouble    = 3, /**< Double precision real              */
+    PastixComplex32 = 4, /**< Single precision complex           */
+    PastixComplex64 = 5  /**< Double precision complex           */
+} pastix_coeftype_t;
+
+/**
+ * @brief Sparse matrix format
+ */
+typedef enum pastix_fmttype_e {
+    PastixCSC = 0, /**< Compressed sparse column */
+    PastixCSR = 1, /**< Compressed sparse row    */
+    PastixIJV = 2  /**< Coordinates              */
+} pastix_fmttype_t;
+
+
 /**
  *
  * @brief The sparse matrix data structure