From 3d38a6dddde16c5d1c9fbbf98aa0f51ba754c336 Mon Sep 17 00:00:00 2001
From: Mathieu Faverge <mathieu.faverge@inria.fr>
Date: Sun, 18 Feb 2018 21:31:14 +0100
Subject: [PATCH] Update headers

---
 control/common.h                        |   2 -
 include/chameleon/chameleon_constants.h |  42 +-
 include/chameleon/chameleon_simulate.h  |   2 +-
 include/chameleon/chameleon_struct.h    |  46 +--
 include/chameleon/chameleon_tasks.h     |  16 +-
 include/chameleon/chameleon_tasks_z.h   | 526 ++++++++++++------------
 include/chameleon/chameleon_tasks_zc.h  |   8 +-
 include/chameleon/chameleon_types.h     |   5 +-
 include/chameleon/chameleon_z.h         | 488 +++++++++++-----------
 include/chameleon/chameleon_zc.h        |   4 +-
 include/chameleon/runtime.h             | 118 +++---
 11 files changed, 632 insertions(+), 625 deletions(-)

diff --git a/control/common.h b/control/common.h
index 14579e68f..e32e5f0cd 100644
--- a/control/common.h
+++ b/control/common.h
@@ -81,8 +81,6 @@
 #define MORSE_GRPSIZE     morse->group_size
 #define MORSE_NB          morse->nb
 #define MORSE_IB          morse->ib
-#define MORSE_NBNBSIZE    morse->nbnbsize
-#define MORSE_IBNBSIZE    morse->ibnbsize
 #define MORSE_SCHEDULING  morse->scheduling
 #define MORSE_RHBLK       morse->rhblock
 #define MORSE_TRANSLATION morse->translation
diff --git a/include/chameleon/chameleon_constants.h b/include/chameleon/chameleon_constants.h
index 0f0766889..cc4d3116a 100644
--- a/include/chameleon/chameleon_constants.h
+++ b/include/chameleon/chameleon_constants.h
@@ -47,7 +47,7 @@
 /**
  * @brief Transpostion
  */
-typedef enum cham_trans_e {
+typedef enum chameleon_trans_e {
     ChamNoTrans   = 111, /**< Use A         */
     ChamTrans     = 112, /**< Use A^t       */
     ChamConjTrans = 113  /**< Use conj(A^t) */
@@ -56,7 +56,7 @@ typedef enum cham_trans_e {
 /**
  * @brief Upper/Lower part
  */
-typedef enum cham_uplo_e {
+typedef enum chameleon_uplo_e {
     ChamUpper      = 121, /**< Use lower triangle of A */
     ChamLower      = 122, /**< Use upper triangle of A */
     ChamUpperLower = 123  /**< Use the full A          */
@@ -66,7 +66,7 @@ typedef enum cham_uplo_e {
 /**
  * @brief Diagonal
  */
-typedef enum cham_diag_e {
+typedef enum chameleon_diag_e {
     ChamNonUnit = 131, /**< Diagonal is non unitary */
     ChamUnit    = 132  /**< Diagonal is unitary     */
 } cham_diag_t;
@@ -74,7 +74,7 @@ typedef enum cham_diag_e {
 /**
  * @brief Side of the operation
  */
-typedef enum cham_side_e {
+typedef enum chameleon_side_e {
     ChamLeft  = 141, /**< Apply operator on the left  */
     ChamRight = 142  /**< Apply operator on the right */
 } cham_side_t;
@@ -82,7 +82,7 @@ typedef enum cham_side_e {
 /**
  * @brief Norms
  */
-typedef enum cham_normtype_e {
+typedef enum chameleon_normtype_e {
     ChamOneNorm       = 171, /**< One norm:       max_j( sum_i( |a_{ij}| ) )   */
     ChamRealOneNorm   = 172,
     ChamTwoNorm       = 173,
@@ -93,7 +93,6 @@ typedef enum cham_normtype_e {
     ChamRealMaxNorm   = 178
 } cham_normtype_t;
 
-
 #define ChameleonDistUniform     201
 #define ChameleonDistSymmetric   202
 #define ChameleonDistNormal      203
@@ -112,15 +111,32 @@ typedef enum cham_normtype_e {
 #define ChameleonPackUpeprBand   297
 #define ChameleonPackAll         298
 
-#define ChameleonNoVec           301
-#define ChameleonVec             302
-#define ChameleonIvec            303
+/**
+ * @brief Singular/Eigen vector job description
+ */
+typedef enum chameleon_job_e {
+    ChamNoVec = 301,
+    ChamVec   = 302,
+    ChamIvec  = 303,
+} cham_job_t;
+
+/**
+ * @brief Algorithm Direction
+ */
+typedef enum chameleon_dir_e {
+    ChamDirForward  = 391, /**< Forward direction   */
+    ChamDirBackward = 392, /**< Backward direction  */
+} cham_dir_t;
+
+/**
+ * @brief Direction of the main vectors as for the householder reflectors in QR/LQ factorizations.
+ */
+typedef enum chameleon_store_e {
+    ChamColumnwise  = 401, /**< Column wise storage  */
+    ChamRowwise     = 402, /**< Row wise storage     */
+} cham_store_t;
 
-#define ChameleonForward         391
-#define ChameleonBackward        392
 
-#define ChameleonColumnwise      401
-#define ChameleonRowwise         402
 #define ChameleonTrd            1001
 #define ChameleonBrd            1002
 
diff --git a/include/chameleon/chameleon_simulate.h b/include/chameleon/chameleon_simulate.h
index 5e0631b04..06df2a8cf 100644
--- a/include/chameleon/chameleon_simulate.h
+++ b/include/chameleon/chameleon_simulate.h
@@ -19,7 +19,7 @@
 #ifndef _chameleon_simulate_h_
 #define _chameleon_simulate_h_
 
-#include "chameleon/chameleon_config.h"
+#include "chameleon/config.h"
 
 /* we need this when starpu is compiled with simgrid enabled */
 #if defined(CHAMELEON_SCHED_STARPU) && defined(CHAMELEON_SIMULATION)
diff --git a/include/chameleon/chameleon_struct.h b/include/chameleon/chameleon_struct.h
index b981bcd6c..e661792f5 100644
--- a/include/chameleon/chameleon_struct.h
+++ b/include/chameleon/chameleon_struct.h
@@ -18,11 +18,11 @@
  * @date 2011-06-01
  *
  */
-#ifndef _CHAMELEON_STRUCT_H_
-#define _CHAMELEON_STRUCT_H_
+#ifndef _chameleon_struct_h_
+#define _chameleon_struct_h_
 
-#include "chameleon/chameleon_config.h"
-#include "chameleon/chameleon_types.h"
+#include "chameleon/config.h"
+#include "chameleon/types.h"
 
 BEGIN_C_DECLS
 
@@ -44,22 +44,22 @@ BEGIN_C_DECLS
  *      +----------+---+
  *
  */
-struct matrix_desc_s;
-typedef struct matrix_desc_s MATRIX_desc_t;
+struct chameleon_desc_s;
+typedef struct chameleon_desc_s CHAM_desc_t;
 
-struct matrix_desc_s {
-    // function to get matrix tiles address
-    void *(*get_blkaddr)( const MATRIX_desc_t*, int, int );
-    // function to get matrix tiles leading dimension
-    int   (*get_blkldd )( const MATRIX_desc_t*, int );
-    // function to get matrix tiles MPI rank
-    int   (*get_rankof) ( const MATRIX_desc_t*, int, int );
+struct chameleon_desc_s {
+    // function to get chameleon tiles address
+    void *(*get_blkaddr)( const CHAM_desc_t*, int, int );
+    // function to get chameleon tiles leading dimension
+    int   (*get_blkldd )( const CHAM_desc_t*, int );
+    // function to get chameleon tiles MPI rank
+    int   (*get_rankof) ( const CHAM_desc_t*, int, int );
     void *mat;        // pointer to the beginning of the matrix
     size_t A21;       // pointer to the beginning of the matrix A21
     size_t A12;       // pointer to the beginning of the matrix A12
     size_t A22;       // pointer to the beginning of the matrix A22
-    CHAMELEON_enum styp;  // storage layout of the matrix
-    CHAMELEON_enum dtyp;  // precision of the matrix
+    cham_storage_t styp;  // storage layout of the matrix
+    cham_flttype_t dtyp;  // precision of the matrix
     int mb;           // number of rows in a tile
     int nb;           // number of columns in a tile
     int bsiz;         // size in elements including padding
@@ -111,19 +111,17 @@ typedef struct chameleon_context_s {
     int                group_size;
 
     /* Boolean flags */
-    CHAMELEON_bool         warnings_enabled;
-    CHAMELEON_bool         autotuning_enabled;
-    CHAMELEON_bool         parallel_enabled;
-    CHAMELEON_bool         profiling_enabled;
-    CHAMELEON_bool         progress_enabled;
+    cham_bool_t        warnings_enabled;
+    cham_bool_t        autotuning_enabled;
+    cham_bool_t        parallel_enabled;
+    cham_bool_t        profiling_enabled;
+    cham_bool_t        progress_enabled;
 
-    CHAMELEON_enum         householder;        // "domino" (flat) or tree-based (reduction) Householder
-    CHAMELEON_enum         translation;        // In place or Out of place layout conversion
+    cham_householder_t householder;        // "domino" (flat) or tree-based (reduction) Householder
+    cham_translation_t translation;        // In place or Out of place layout conversion
 
     int                nb;
     int                ib;
-    int                nbnbsize;           // tile size in elements (possibly padded)
-    int                ibnbsize;           // T or L tile size in elements (---''---)
     int                rhblock;            // block size for tree-based (reduction) Householder
     void              *schedopt;           // structure for runtimes
     int                mpi_outer_init;     // MPI has been initialized outside our functions
diff --git a/include/chameleon/chameleon_tasks.h b/include/chameleon/chameleon_tasks.h
index 8c4828793..924166c2c 100644
--- a/include/chameleon/chameleon_tasks.h
+++ b/include/chameleon/chameleon_tasks.h
@@ -20,7 +20,7 @@
 #ifndef _chameleon_tasks_h_
 #define _chameleon_tasks_h_
 
-#include "chameleon/chameleon_config.h"
+#include "chameleon/config.h"
 
 BEGIN_C_DECLS
 
@@ -84,14 +84,14 @@ typedef enum chameleon_tasktype_e {
   TASK_TILE_ZERO,
 
   TASK_NBKERNELS
-} chameleon_tasktype_t;
+} cham_tasktype_t;
 
-#include "chameleon/chameleon_tasks_z.h"
-#include "chameleon/chameleon_tasks_d.h"
-#include "chameleon/chameleon_tasks_c.h"
-#include "chameleon/chameleon_tasks_s.h"
-#include "chameleon/chameleon_tasks_zc.h"
-#include "chameleon/chameleon_tasks_ds.h"
+#include "chameleon/tasks_z.h"
+#include "chameleon/tasks_d.h"
+#include "chameleon/tasks_c.h"
+#include "chameleon/tasks_s.h"
+#include "chameleon/tasks_zc.h"
+#include "chameleon/tasks_ds.h"
 
 END_C_DECLS
 
diff --git a/include/chameleon/chameleon_tasks_z.h b/include/chameleon/chameleon_tasks_z.h
index 7a3f4178b..21d20a299 100644
--- a/include/chameleon/chameleon_tasks_z.h
+++ b/include/chameleon/chameleon_tasks_z.h
@@ -31,437 +31,435 @@
  *  Declarations of QUARK wrappers (called by CHAMELEON) - alphabetical order
  */
 void INSERT_TASK_dzasum( const RUNTIME_option_t *options,
-                        MORSE_enum storev, MORSE_enum uplo, int M, int N,
-                        const MORSE_desc_t *A, int Am, int An, int lda,
-                        const MORSE_desc_t *B, int Bm, int Bn );
+                        cham_store_t storev, cham_uplo_t uplo, int M, int N,
+                        const CHAM_desc_t *A, int Am, int An, int lda,
+                        const CHAM_desc_t *B, int Bm, int Bn );
 void INSERT_TASK_zgeadd( const RUNTIME_option_t *options,
-                        MORSE_enum trans, int m, int n, int nb,
-                        MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda,
-                        MORSE_Complex64_t beta,  const MORSE_desc_t *B, int Bm, int Bn, int ldb );
+                        cham_trans_t trans, int m, int n, int nb,
+                        CHAM_Complex64_t alpha, const CHAM_desc_t *A, int Am, int An, int lda,
+                        CHAM_Complex64_t beta,  const CHAM_desc_t *B, int Bm, int Bn, int ldb );
 void INSERT_TASK_zlascal( const RUNTIME_option_t *options,
-                         MORSE_enum uplo,
+                         cham_uplo_t uplo,
                          int m, int n, int nb,
-                         MORSE_Complex64_t alpha,
-                         const MORSE_desc_t *A, int Am, int An, int lda );
+                         CHAM_Complex64_t alpha,
+                         const CHAM_desc_t *A, int Am, int An, int lda );
 void INSERT_TASK_zbrdalg( const RUNTIME_option_t *options,
-                         MORSE_enum uplo,
+                         cham_uplo_t uplo,
                          int N, int NB,
-                         const MORSE_desc_t *A,
-                         const MORSE_desc_t *C, int Cm, int Cn,
-                         const MORSE_desc_t *S, int Sm, int Sn,
+                         const CHAM_desc_t *A,
+                         const CHAM_desc_t *C, int Cm, int Cn,
+                         const CHAM_desc_t *S, int Sm, int Sn,
                          int i, int j, int m, int grsiz, int BAND,
                          int *PCOL, int *ACOL, int *MCOL );
 void INSERT_TASK_zgelqt( const RUNTIME_option_t *options,
                         int m, int n, int ib, int nb,
-                        const MORSE_desc_t *A, int Am, int An, int lda,
-                        const MORSE_desc_t *T, int Tm, int Tn, int ldt );
+                        const CHAM_desc_t *A, int Am, int An, int lda,
+                        const CHAM_desc_t *T, int Tm, int Tn, int ldt );
 void INSERT_TASK_zgemm( const RUNTIME_option_t *options,
-                       MORSE_enum transA, MORSE_enum transB,
+                       cham_trans_t transA, cham_trans_t transB,
                        int m, int n, int k, int nb,
-                       MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda,
-                       const MORSE_desc_t *B, int Bm, int Bn, int ldb,
-                       MORSE_Complex64_t beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc );
+                       CHAM_Complex64_t alpha, const CHAM_desc_t *A, int Am, int An, int lda,
+                       const CHAM_desc_t *B, int Bm, int Bn, int ldb,
+                       CHAM_Complex64_t beta, const CHAM_desc_t *C, int Cm, int Cn, int ldc );
 void INSERT_TASK_zgemm2( const RUNTIME_option_t *options,
-                        MORSE_enum transA, MORSE_enum transB,
+                        cham_trans_t transA, cham_trans_t transB,
                         int m, int n, int k, int nb,
-                        MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda,
-                        const MORSE_desc_t *B, int Bm, int Bn, int ldb,
-                        MORSE_Complex64_t beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc );
+                        CHAM_Complex64_t alpha, const CHAM_desc_t *A, int Am, int An, int lda,
+                        const CHAM_desc_t *B, int Bm, int Bn, int ldb,
+                        CHAM_Complex64_t beta, const CHAM_desc_t *C, int Cm, int Cn, int ldc );
 void INSERT_TASK_zgemm_f2( const RUNTIME_option_t *options,
-                          MORSE_enum transA, MORSE_enum transB,
+                          cham_trans_t transA, cham_trans_t transB,
                           int m, int n, int k, int nb,
-                          MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda,
-                          const MORSE_desc_t *B, int Bm, int Bn, int ldb,
-                          MORSE_Complex64_t beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc,
-                          const MORSE_desc_t *fake1, int fake1m, int fake1n, int szefake1, int flag1,
-                          const MORSE_desc_t *fake2, int fake2m, int fake2n, int szefake2, int flag2 );
+                          CHAM_Complex64_t alpha, const CHAM_desc_t *A, int Am, int An, int lda,
+                          const CHAM_desc_t *B, int Bm, int Bn, int ldb,
+                          CHAM_Complex64_t beta, const CHAM_desc_t *C, int Cm, int Cn, int ldc,
+                          const CHAM_desc_t *fake1, int fake1m, int fake1n, int szefake1, int flag1,
+                          const CHAM_desc_t *fake2, int fake2m, int fake2n, int szefake2, int flag2 );
 void INSERT_TASK_zgemm_p2( const RUNTIME_option_t *options,
-                          MORSE_enum transA, MORSE_enum transB,
+                          cham_trans_t transA, cham_trans_t transB,
                           int m, int n, int k, int nb,
-                          MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda,
-                          const MORSE_Complex64_t **B, int ldb,
-                          MORSE_Complex64_t beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc );
+                          CHAM_Complex64_t alpha, const CHAM_desc_t *A, int Am, int An, int lda,
+                          const CHAM_Complex64_t **B, int ldb,
+                          CHAM_Complex64_t beta, const CHAM_desc_t *C, int Cm, int Cn, int ldc );
 void INSERT_TASK_zgemm_p2f1( const RUNTIME_option_t *options,
-                            MORSE_enum transA, MORSE_enum transB,
+                            cham_trans_t transA, cham_trans_t transB,
                             int m, int n, int k, int nb,
-                            MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda,
-                            const MORSE_Complex64_t **B, int ldb,
-                            MORSE_Complex64_t beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc,
-                            const MORSE_desc_t *fake1, int fake1m, int fake1n, int szefake1, int flag1 );
+                            CHAM_Complex64_t alpha, const CHAM_desc_t *A, int Am, int An, int lda,
+                            const CHAM_Complex64_t **B, int ldb,
+                            CHAM_Complex64_t beta, const CHAM_desc_t *C, int Cm, int Cn, int ldc,
+                            const CHAM_desc_t *fake1, int fake1m, int fake1n, int szefake1, int flag1 );
 void INSERT_TASK_zgemm_p3( const RUNTIME_option_t *options,
-                          MORSE_enum transA, MORSE_enum transB,
+                          cham_trans_t transA, cham_trans_t transB,
                           int m, int n, int k, int nb,
-                          MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda,
-                          const MORSE_desc_t *B, int Bm, int Bn, int ldb,
-                          MORSE_Complex64_t beta, MORSE_Complex64_t **C, int ldc );
+                          CHAM_Complex64_t alpha, const CHAM_desc_t *A, int Am, int An, int lda,
+                          const CHAM_desc_t *B, int Bm, int Bn, int ldb,
+                          CHAM_Complex64_t beta, CHAM_Complex64_t **C, int ldc );
 void INSERT_TASK_zgeqrt( const RUNTIME_option_t *options,
                         int m, int n, int ib, int nb,
-                        const MORSE_desc_t *A, int Am, int An, int lda,
-                        const MORSE_desc_t *T, int Tm, int Tn, int ldt );
+                        const CHAM_desc_t *A, int Am, int An, int lda,
+                        const CHAM_desc_t *T, int Tm, int Tn, int ldt );
 void INSERT_TASK_zgessm( const RUNTIME_option_t *options,
                         int m, int n, int k, int ib, int nb,
                         int *IPIV,
-                        const MORSE_desc_t *L, int Lm, int Ln, int ldl,
-                        const MORSE_desc_t *D, int Dm, int Dn, int ldd,
-                        const MORSE_desc_t *A, int Am, int An, int lda );
+                        const CHAM_desc_t *L, int Lm, int Ln, int ldl,
+                        const CHAM_desc_t *D, int Dm, int Dn, int ldd,
+                        const CHAM_desc_t *A, int Am, int An, int lda );
 void INSERT_TASK_zgessq( const RUNTIME_option_t *options,
                         int m, int n,
-                        const MORSE_desc_t *A, int Am, int An, int lda,
-                        const MORSE_desc_t *SCALESUMSQ, int SCALESUMSQm, int SCALESUMSQn );
+                        const CHAM_desc_t *A, int Am, int An, int lda,
+                        const CHAM_desc_t *SCALESUMSQ, int SCALESUMSQm, int SCALESUMSQn );
 void INSERT_TASK_zgetrf( const RUNTIME_option_t *options,
                         int m, int n, int nb,
-                        const MORSE_desc_t *A, int Am, int An, int lda,
+                        const CHAM_desc_t *A, int Am, int An, int lda,
                         int *IPIV,
-
-                        MORSE_bool check_info, int iinfo );
+                        cham_bool_t check_info, int iinfo );
 void INSERT_TASK_zgetrf_incpiv( const RUNTIME_option_t *options,
                                int m, int n, int ib, int nb,
-                               const MORSE_desc_t *A, int Am, int An, int lda,
-                               const MORSE_desc_t *L, int Lm, int Ln, int ldl,
+                               const CHAM_desc_t *A, int Am, int An, int lda,
+                               const CHAM_desc_t *L, int Lm, int Ln, int ldl,
                                int *IPIV,
-                               MORSE_bool check_info, int iinfo );
+                               cham_bool_t check_info, int iinfo );
 void INSERT_TASK_zgetrf_nopiv( const RUNTIME_option_t *options,
                               int m, int n, int ib, int nb,
-                              const MORSE_desc_t *A, int Am, int An, int lda, int iinfo );
+                              const CHAM_desc_t *A, int Am, int An, int lda, int iinfo );
 void INSERT_TASK_zgetrf_reclap( const RUNTIME_option_t *options,
                                int m, int n, int nb,
-                               const MORSE_desc_t *A, int Am, int An, int lda,
+                               const CHAM_desc_t *A, int Am, int An, int lda,
                                int *IPIV,
 
-                               MORSE_bool check_info, int iinfo,
+                               cham_bool_t check_info, int iinfo,
                                int nbthread );
 void INSERT_TASK_zgetrf_rectil( const RUNTIME_option_t *options,
-                               const MORSE_desc_t A, const MORSE_desc_t *Amn, int Amnm, int Amnn, int size,
+                               const CHAM_desc_t A, const CHAM_desc_t *Amn, int Amnm, int Amnn, int size,
                                int *IPIV,
 
-                               MORSE_bool check_info, int iinfo,
+                               cham_bool_t check_info, int iinfo,
                                int nbthread );
 void INSERT_TASK_zgetrip( const RUNTIME_option_t *options,
-                         int m, int n, const MORSE_desc_t *A, int Am, int An, int szeA );
+                         int m, int n, const CHAM_desc_t *A, int Am, int An, int szeA );
 void INSERT_TASK_zgetrip_f1( const RUNTIME_option_t *options,
-                            int m, int n, const MORSE_desc_t *A, int Am, int An, int szeA,
-                            const MORSE_desc_t *fake, int fakem, int faken, int szeF, int paramF );
+                            int m, int n, const CHAM_desc_t *A, int Am, int An, int szeA,
+                            const CHAM_desc_t *fake, int fakem, int faken, int szeF, int paramF );
 void INSERT_TASK_zgetrip_f2( const RUNTIME_option_t *options,
-                            int m, int n, const MORSE_desc_t *A, int Am, int An, int szeA,
-                            const MORSE_desc_t *fake1, int fake1m, int fake1n, int szeF1, int paramF1,
-                            const MORSE_desc_t *fake2, int fake2m, int fake2n, int szeF2, int paramF2 );
+                            int m, int n, const CHAM_desc_t *A, int Am, int An, int szeA,
+                            const CHAM_desc_t *fake1, int fake1m, int fake1n, int szeF1, int paramF1,
+                            const CHAM_desc_t *fake2, int fake2m, int fake2n, int szeF2, int paramF2 );
 void INSERT_TASK_zhe2ge( const RUNTIME_option_t *options,
-                        MORSE_enum uplo,
+                        cham_uplo_t uplo,
                         int m, int n, int mb,
-                        const MORSE_desc_t *A, int Am, int An, int lda,
-                        const MORSE_desc_t *B, int Bm, int Bn, int ldb );
+                        const CHAM_desc_t *A, int Am, int An, int lda,
+                        const CHAM_desc_t *B, int Bm, int Bn, int ldb );
 void INSERT_TASK_zhemm( const RUNTIME_option_t *options,
-                       MORSE_enum side, MORSE_enum uplo,
+                       cham_side_t side, cham_uplo_t uplo,
                        int m, int n, int nb,
-                       MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda,
-                       const MORSE_desc_t *B, int Bm, int Bn, int ldb,
-                       MORSE_Complex64_t beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc );
+                       CHAM_Complex64_t alpha, const CHAM_desc_t *A, int Am, int An, int lda,
+                       const CHAM_desc_t *B, int Bm, int Bn, int ldb,
+                       CHAM_Complex64_t beta, const CHAM_desc_t *C, int Cm, int Cn, int ldc );
 void INSERT_TASK_zhegst( const RUNTIME_option_t *options,
-                        int itype, MORSE_enum uplo, int N,
-                        const MORSE_desc_t *A, int Am, int An, int LDA,
-                        const MORSE_desc_t *B, int Bm, int Bn, int LDB,
+                        int itype, cham_uplo_t uplo, int N,
+                        const CHAM_desc_t *A, int Am, int An, int LDA,
+                        const CHAM_desc_t *B, int Bm, int Bn, int LDB,
                         int iinfo );
 void INSERT_TASK_zherk( const RUNTIME_option_t *options,
-                       MORSE_enum uplo, MORSE_enum trans,
+                       cham_uplo_t uplo, cham_trans_t trans,
                        int n, int k, int nb,
-                       double alpha, const MORSE_desc_t *A, int Am, int An, int lda,
-                       double beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc );
+                       double alpha, const CHAM_desc_t *A, int Am, int An, int lda,
+                       double beta, const CHAM_desc_t *C, int Cm, int Cn, int ldc );
 void INSERT_TASK_zher2k( const RUNTIME_option_t *options,
-                        MORSE_enum uplo, MORSE_enum trans,
+                        cham_uplo_t uplo, cham_trans_t trans,
                         int n, int k, int nb,
-                        MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda,
-                        const MORSE_desc_t *B, int Bm, int Bn, int LDB,
-                        double beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc );
+                        CHAM_Complex64_t alpha, const CHAM_desc_t *A, int Am, int An, int lda,
+                        const CHAM_desc_t *B, int Bm, int Bn, int LDB,
+                        double beta, const CHAM_desc_t *C, int Cm, int Cn, int ldc );
 void INSERT_TASK_zherfb( const RUNTIME_option_t *options,
-                        MORSE_enum uplo,
+                        cham_uplo_t uplo,
                         int n, int k, int ib, int nb,
-                        const MORSE_desc_t *A, int Am, int An, int lda,
-                        const MORSE_desc_t *T, int Tm, int Tn, int ldt,
-                        const MORSE_desc_t *C, int Cm, int Cn, int ldc );
+                        const CHAM_desc_t *A, int Am, int An, int lda,
+                        const CHAM_desc_t *T, int Tm, int Tn, int ldt,
+                        const CHAM_desc_t *C, int Cm, int Cn, int ldc );
 void INSERT_TASK_zlacpy( const RUNTIME_option_t *options,
-                        MORSE_enum uplo, int m, int n, int mb,
-                        const MORSE_desc_t *A, int Am, int An, int lda,
-                        const MORSE_desc_t *B, int Bm, int Bn, int ldb );
+                        cham_uplo_t uplo, int m, int n, int mb,
+                        const CHAM_desc_t *A, int Am, int An, int lda,
+                        const CHAM_desc_t *B, int Bm, int Bn, int ldb );
 void INSERT_TASK_zlacpyx( const RUNTIME_option_t *options,
-                         MORSE_enum uplo, int m, int n, int mb,
-                         int displA, const MORSE_desc_t *A, int Am, int An, int lda,
-                         int displB, const MORSE_desc_t *B, int Bm, int Bn, int ldb );
+                         cham_uplo_t uplo, int m, int n, int mb,
+                         int displA, const CHAM_desc_t *A, int Am, int An, int lda,
+                         int displB, const CHAM_desc_t *B, int Bm, int Bn, int ldb );
 void INSERT_TASK_zlange( const RUNTIME_option_t *options,
-                        MORSE_enum norm, int M, int N, int NB,
-                        const MORSE_desc_t *A, int Am, int An, int LDA,
-                        const MORSE_desc_t *B, int Bm, int Bn );
+                        cham_normtype_t norm, int M, int N, int NB,
+                        const CHAM_desc_t *A, int Am, int An, int LDA,
+                        const CHAM_desc_t *B, int Bm, int Bn );
 void INSERT_TASK_zlange_max( const RUNTIME_option_t *options,
-                            const MORSE_desc_t *A, int Am, int An,
-                            const MORSE_desc_t *B, int Bm, int Bn );
+                            const CHAM_desc_t *A, int Am, int An,
+                            const CHAM_desc_t *B, int Bm, int Bn );
 void INSERT_TASK_zhessq( const RUNTIME_option_t *options,
-                        MORSE_enum uplo, int n,
-                        const MORSE_desc_t *A, int Am, int An, int lda,
-                        const MORSE_desc_t *SCALESUMSQ, int SCALESUMSQm, int SCALESUMSQn );
+                        cham_uplo_t uplo, int n,
+                        const CHAM_desc_t *A, int Am, int An, int lda,
+                        const CHAM_desc_t *SCALESUMSQ, int SCALESUMSQm, int SCALESUMSQn );
 void INSERT_TASK_zlanhe( const RUNTIME_option_t *options,
-                        MORSE_enum norm, MORSE_enum uplo, int N, int NB,
-                        const MORSE_desc_t *A, int Am, int An, int LDA,
-                        const MORSE_desc_t *B, int Bm, int Bn );
+                        cham_normtype_t norm, cham_uplo_t uplo, int N, int NB,
+                        const CHAM_desc_t *A, int Am, int An, int LDA,
+                        const CHAM_desc_t *B, int Bm, int Bn );
 void INSERT_TASK_zlansy( const RUNTIME_option_t *options,
-                        MORSE_enum norm, MORSE_enum uplo, int N, int NB,
-                        const MORSE_desc_t *A, int Am, int An, int LDA,
-                        const MORSE_desc_t *B, int Bm, int Bn );
+                        cham_normtype_t norm, cham_uplo_t uplo, int N, int NB,
+                        const CHAM_desc_t *A, int Am, int An, int LDA,
+                        const CHAM_desc_t *B, int Bm, int Bn );
 void INSERT_TASK_zlantr( const RUNTIME_option_t *options,
-                        MORSE_enum norm, MORSE_enum uplo, MORSE_enum diag,
+                        cham_normtype_t norm, cham_uplo_t uplo, cham_diag_t diag,
                         int M, int N, int NB,
-                        const MORSE_desc_t *A, int Am, int An, int LDA,
-                        const MORSE_desc_t *B, int Bm, int Bn );
+                        const CHAM_desc_t *A, int Am, int An, int LDA,
+                        const CHAM_desc_t *B, int Bm, int Bn );
 void INSERT_TASK_zlaset( const RUNTIME_option_t *options,
-                        MORSE_enum uplo, int n1, int n2, MORSE_Complex64_t alpha,
-                        MORSE_Complex64_t beta, const MORSE_desc_t *tileA, int tileAm, int tileAn, int ldtilea );
+                        cham_uplo_t uplo, int n1, int n2, CHAM_Complex64_t alpha,
+                        CHAM_Complex64_t beta, const CHAM_desc_t *tileA, int tileAm, int tileAn, int ldtilea );
 void INSERT_TASK_zlaset2( const RUNTIME_option_t *options,
-                         MORSE_enum uplo, int n1, int n2, MORSE_Complex64_t alpha,
-                         const MORSE_desc_t *tileA, int tileAm, int tileAn, int ldtilea );
+                         cham_uplo_t uplo, int n1, int n2, CHAM_Complex64_t alpha,
+                         const CHAM_desc_t *tileA, int tileAm, int tileAn, int ldtilea );
 void INSERT_TASK_zlaswp( const RUNTIME_option_t *options,
-                        int n, const MORSE_desc_t *A, int Am, int An, int lda,
+                        int n, const CHAM_desc_t *A, int Am, int An, int lda,
                         int i1,  int i2, int *ipiv, int inc );
 void INSERT_TASK_zlaswp_f2( const RUNTIME_option_t *options,
-                           int n, const MORSE_desc_t *A, int Am, int An, int lda,
+                           int n, const CHAM_desc_t *A, int Am, int An, int lda,
                            int i1,  int i2, int *ipiv, int inc,
-                           const MORSE_desc_t *fake1, int fake1m, int fake1n, int szefake1, int flag1,
-                           const MORSE_desc_t *fake2, int fake2m, int fake2n, int szefake2, int flag2 );
+                           const CHAM_desc_t *fake1, int fake1m, int fake1n, int szefake1, int flag1,
+                           const CHAM_desc_t *fake2, int fake2m, int fake2n, int szefake2, int flag2 );
 void INSERT_TASK_zlaswp_ontile( const RUNTIME_option_t *options,
-                               const MORSE_desc_t descA, const MORSE_desc_t *A, int Am, int An,
-                               int i1,  int i2, int *ipiv, int inc, MORSE_Complex64_t *fakepanel );
+                               const CHAM_desc_t descA, const CHAM_desc_t *A, int Am, int An,
+                               int i1,  int i2, int *ipiv, int inc, CHAM_Complex64_t *fakepanel );
 void INSERT_TASK_zlaswp_ontile_f2( const RUNTIME_option_t *options,
-                                  const MORSE_desc_t descA, const MORSE_desc_t *A, int Am, int An,
+                                  const CHAM_desc_t descA, const CHAM_desc_t *A, int Am, int An,
                                   int i1,  int i2, int *ipiv, int inc,
-                                  const MORSE_desc_t *fake1, int fake1m, int fake1n, int szefake1, int flag1,
-                                  const MORSE_desc_t *fake2, int fake2m, int fake2n, int szefake2, int flag2 );
+                                  const CHAM_desc_t *fake1, int fake1m, int fake1n, int szefake1, int flag1,
+                                  const CHAM_desc_t *fake2, int fake2m, int fake2n, int szefake2, int flag2 );
 void INSERT_TASK_zlaswpc_ontile( const RUNTIME_option_t *options,
-                                const MORSE_desc_t descA, const MORSE_desc_t *A, int Am, int An,
-                                int i1,  int i2, int *ipiv, int inc, MORSE_Complex64_t *fakepanel );
+                                const CHAM_desc_t descA, const CHAM_desc_t *A, int Am, int An,
+                                int i1,  int i2, int *ipiv, int inc, CHAM_Complex64_t *fakepanel );
 void INSERT_TASK_zlatro( const RUNTIME_option_t *options,
-                        MORSE_enum uplo, MORSE_enum trans, int m, int n, int mb,
-                        const MORSE_desc_t *A, int Am, int An, int lda,
-                        const MORSE_desc_t *B, int Bm, int Bn, int ldb );
+                        cham_uplo_t uplo, cham_trans_t trans, int m, int n, int mb,
+                        const CHAM_desc_t *A, int Am, int An, int lda,
+                        const CHAM_desc_t *B, int Bm, int Bn, int ldb );
 void INSERT_TASK_zlauum( const RUNTIME_option_t *options,
-                        MORSE_enum uplo, int n, int nb,
-                        const MORSE_desc_t *A, int Am, int An, int lda );
+                        cham_uplo_t uplo, int n, int nb,
+                        const CHAM_desc_t *A, int Am, int An, int lda );
 void INSERT_TASK_zplghe( const RUNTIME_option_t *options,
-                        double bump, int m, int n, const MORSE_desc_t *A, int Am, int An, int lda,
+                        double bump, int m, int n, const CHAM_desc_t *A, int Am, int An, int lda,
                         int bigM, int m0, int n0, unsigned long long int seed );
 void INSERT_TASK_zplgsy( const RUNTIME_option_t *options,
-                        MORSE_Complex64_t bump, int m, int n, const MORSE_desc_t *A, int Am, int An, int lda,
+                        CHAM_Complex64_t bump, int m, int n, const CHAM_desc_t *A, int Am, int An, int lda,
                         int bigM, int m0, int n0, unsigned long long int seed );
 void INSERT_TASK_zplrnt( const RUNTIME_option_t *options,
-                        int m, int n, const MORSE_desc_t *A, int Am, int An, int lda,
+                        int m, int n, const CHAM_desc_t *A, int Am, int An, int lda,
                         int bigM, int m0, int n0, unsigned long long int seed );
 void INSERT_TASK_zpotrf( const RUNTIME_option_t *options,
-                        MORSE_enum uplo, int n, int nb,
-                        const MORSE_desc_t *A, int Am, int An, int lda,
+                        cham_uplo_t uplo, int n, int nb,
+                        const CHAM_desc_t *A, int Am, int An, int lda,
 
                         int iinfo );
 void INSERT_TASK_zshift( const RUNTIME_option_t *options,
                         int s, int m, int n, int L,
-                        MORSE_Complex64_t *A );
+                        CHAM_Complex64_t *A );
 void INSERT_TASK_zshiftw( const RUNTIME_option_t *options,
                          int s, int cl, int m, int n, int L,
-                         const MORSE_desc_t *A, int Am, int An, MORSE_Complex64_t *W );
+                         const CHAM_desc_t *A, int Am, int An, CHAM_Complex64_t *W );
 void INSERT_TASK_zssssm( const RUNTIME_option_t *options,
                         int m1, int n1, int m2, int n2, int k, int ib, int nb,
-                        const MORSE_desc_t *A1, int A1m, int A1n, int lda1,
-                        const MORSE_desc_t *A2, int A2m, int A2n, int lda2,
-                        const MORSE_desc_t *L1, int L1m, int L1n, int ldl1,
-                        const MORSE_desc_t *L2, int L2m, int L2n, int ldl2,
+                        const CHAM_desc_t *A1, int A1m, int A1n, int lda1,
+                        const CHAM_desc_t *A2, int A2m, int A2n, int lda2,
+                        const CHAM_desc_t *L1, int L1m, int L1n, int ldl1,
+                        const CHAM_desc_t *L2, int L2m, int L2n, int ldl2,
                         const int *IPIV );
 void INSERT_TASK_zsymm( const RUNTIME_option_t *options,
-                       MORSE_enum side, MORSE_enum uplo,
+                       cham_side_t side, cham_uplo_t uplo,
                        int m, int n, int nb,
-                       MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda,
-                       const MORSE_desc_t *B, int Bm, int Bn, int ldb,
-                       MORSE_Complex64_t beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc );
+                       CHAM_Complex64_t alpha, const CHAM_desc_t *A, int Am, int An, int lda,
+                       const CHAM_desc_t *B, int Bm, int Bn, int ldb,
+                       CHAM_Complex64_t beta, const CHAM_desc_t *C, int Cm, int Cn, int ldc );
 void INSERT_TASK_zsyrk( const RUNTIME_option_t *options,
-                       MORSE_enum uplo, MORSE_enum trans,
+                       cham_uplo_t uplo, cham_trans_t trans,
                        int n, int k, int nb,
-                       MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda,
-                       MORSE_Complex64_t beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc );
+                       CHAM_Complex64_t alpha, const CHAM_desc_t *A, int Am, int An, int lda,
+                       CHAM_Complex64_t beta, const CHAM_desc_t *C, int Cm, int Cn, int ldc );
 void INSERT_TASK_zsyr2k( const RUNTIME_option_t *options,
-                        MORSE_enum uplo, MORSE_enum trans,
+                        cham_uplo_t uplo, cham_trans_t trans,
                         int n, int k, int nb,
-                        MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda,
-                        const MORSE_desc_t *B, int Bm, int Bn, int LDB,
-                        MORSE_Complex64_t beta, const MORSE_desc_t *C, int Cm, int Cn, int ldc );
+                        CHAM_Complex64_t alpha, const CHAM_desc_t *A, int Am, int An, int lda,
+                        const CHAM_desc_t *B, int Bm, int Bn, int LDB,
+                        CHAM_Complex64_t beta, const CHAM_desc_t *C, int Cm, int Cn, int ldc );
 void INSERT_TASK_zsyssq( const RUNTIME_option_t *options,
-                        MORSE_enum uplo, int n,
-                        const MORSE_desc_t *A, int Am, int An, int lda,
-                        const MORSE_desc_t *SCALESUMSQ, int SCALESUMSQm, int SCALESUMSQn );
+                        cham_uplo_t uplo, int n,
+                        const CHAM_desc_t *A, int Am, int An, int lda,
+                        const CHAM_desc_t *SCALESUMSQ, int SCALESUMSQm, int SCALESUMSQn );
 void INSERT_TASK_zsytrf_nopiv( const RUNTIME_option_t *options,
-                              MORSE_enum uplo, int n, int nb,
-                              const MORSE_desc_t *A, int Am, int An, int lda,
+                              cham_uplo_t uplo, int n, int nb,
+                              const CHAM_desc_t *A, int Am, int An, int lda,
                               int iinfo );
 void INSERT_TASK_zswpab( const RUNTIME_option_t *options,
                         int i, int n1, int n2,
-                        const MORSE_desc_t *A, int Am, int An, int szeA );
+                        const CHAM_desc_t *A, int Am, int An, int szeA );
 void INSERT_TASK_zswptr_ontile( const RUNTIME_option_t *options,
-                               const MORSE_desc_t descA, const MORSE_desc_t *Aij, int Aijm, int Aijn,
+                               const CHAM_desc_t descA, const CHAM_desc_t *Aij, int Aijm, int Aijn,
                                int i1,  int i2, int *ipiv, int inc,
-                               const MORSE_desc_t *Akk, int Akkm, int Akkn, int ldak );
+                               const CHAM_desc_t *Akk, int Akkm, int Akkn, int ldak );
 void INSERT_TASK_ztplqt( const RUNTIME_option_t *options,
                         int m, int n, int l, int ib, int nb,
-                        const MORSE_desc_t *A, int Am, int An, int lda,
-                        const MORSE_desc_t *B, int Bm, int Bn, int ldb,
-                        const MORSE_desc_t *T, int Tm, int Tn, int ldt );
+                        const CHAM_desc_t *A, int Am, int An, int lda,
+                        const CHAM_desc_t *B, int Bm, int Bn, int ldb,
+                        const CHAM_desc_t *T, int Tm, int Tn, int ldt );
 void INSERT_TASK_ztpmlqt( const RUNTIME_option_t *options,
-                         MORSE_enum side, MORSE_enum trans,
+                         cham_side_t side, cham_trans_t trans,
                          int M, int N, int K, int L, int ib, int nb,
-                         const MORSE_desc_t *V, int Vm, int Vn, int ldv,
-                         const MORSE_desc_t *T, int Tm, int Tn, int ldt,
-                         const MORSE_desc_t *A, int Am, int An, int lda,
-                         const MORSE_desc_t *B, int Bm, int Bn, int ldb );
+                         const CHAM_desc_t *V, int Vm, int Vn, int ldv,
+                         const CHAM_desc_t *T, int Tm, int Tn, int ldt,
+                         const CHAM_desc_t *A, int Am, int An, int lda,
+                         const CHAM_desc_t *B, int Bm, int Bn, int ldb );
 void INSERT_TASK_ztpmqrt( const RUNTIME_option_t *options,
-                         MORSE_enum side, MORSE_enum trans,
+                         cham_side_t side, cham_trans_t trans,
                          int m, int n, int k, int l, int ib, int nb,
-                         const MORSE_desc_t *V, int Vm, int Vn, int ldv,
-                         const MORSE_desc_t *T, int Tm, int Tn, int ldt,
-                         const MORSE_desc_t *A, int Am, int An, int lda,
-                         const MORSE_desc_t *B, int Bm, int Bn, int ldb );
+                         const CHAM_desc_t *V, int Vm, int Vn, int ldv,
+                         const CHAM_desc_t *T, int Tm, int Tn, int ldt,
+                         const CHAM_desc_t *A, int Am, int An, int lda,
+                         const CHAM_desc_t *B, int Bm, int Bn, int ldb );
 void INSERT_TASK_ztpqrt( const RUNTIME_option_t *options,
                         int m, int n, int l, int ib, int nb,
-                        const MORSE_desc_t *A, int Am, int An, int lda,
-                        const MORSE_desc_t *B, int Bm, int Bn, int ldb,
-                        const MORSE_desc_t *T, int Tm, int Tn, int ldt );
+                        const CHAM_desc_t *A, int Am, int An, int lda,
+                        const CHAM_desc_t *B, int Bm, int Bn, int ldb,
+                        const CHAM_desc_t *T, int Tm, int Tn, int ldt );
 void INSERT_TASK_ztrdalg( const RUNTIME_option_t *options,
-                         MORSE_enum uplo,
+                         cham_uplo_t uplo,
                          int N, int NB,
-                         const MORSE_desc_t *A,
-                         const MORSE_desc_t *C, int Cm, int Cn,
-                         const MORSE_desc_t *S, int Sm, int Sn,
+                         const CHAM_desc_t *A,
+                         const CHAM_desc_t *C, int Cm, int Cn,
+                         const CHAM_desc_t *S, int Sm, int Sn,
                          int i, int j, int m, int grsiz, int BAND,
                          int *PCOL, int *ACOL, int *MCOL );
 void INSERT_TASK_ztradd( const RUNTIME_option_t *options,
-                        MORSE_enum uplo, MORSE_enum trans, int m, int n, int nb,
-                        MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda,
-                        MORSE_Complex64_t beta,  const MORSE_desc_t *B, int Bm, int Bn, int ldb );
+                        cham_uplo_t uplo, cham_trans_t trans, int m, int n, int nb,
+                        CHAM_Complex64_t alpha, const CHAM_desc_t *A, int Am, int An, int lda,
+                        CHAM_Complex64_t beta,  const CHAM_desc_t *B, int Bm, int Bn, int ldb );
 void INSERT_TASK_ztrasm( const RUNTIME_option_t *options,
-                        MORSE_enum storev, MORSE_enum uplo, MORSE_enum diag, int M, int N,
-                        const MORSE_desc_t *A, int Am, int An, int lda,
-                        const MORSE_desc_t *B, int Bm, int Bn );
+                        cham_store_t storev, cham_uplo_t uplo, cham_diag_t diag, int M, int N,
+                        const CHAM_desc_t *A, int Am, int An, int lda,
+                        const CHAM_desc_t *B, int Bm, int Bn );
 void INSERT_TASK_ztrmm( const RUNTIME_option_t *options,
-                       MORSE_enum side, MORSE_enum uplo, MORSE_enum transA, MORSE_enum diag,
+                       cham_side_t side, cham_uplo_t uplo, cham_trans_t transA, cham_diag_t diag,
                        int m, int n, int nb,
-                       MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda,
-                       const MORSE_desc_t *B, int Bm, int Bn, int ldb );
+                       CHAM_Complex64_t alpha, const CHAM_desc_t *A, int Am, int An, int lda,
+                       const CHAM_desc_t *B, int Bm, int Bn, int ldb );
 void INSERT_TASK_ztrmm_p2( const RUNTIME_option_t *options,
-                          MORSE_enum side, MORSE_enum uplo, MORSE_enum transA, MORSE_enum diag,
+                          cham_side_t side, cham_uplo_t uplo, cham_trans_t transA, cham_diag_t diag,
                           int m, int n, int nb,
-                          MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda,
-                          MORSE_Complex64_t **B, int ldb );
+                          CHAM_Complex64_t alpha, const CHAM_desc_t *A, int Am, int An, int lda,
+                          CHAM_Complex64_t **B, int ldb );
 void INSERT_TASK_ztrsm( const RUNTIME_option_t *options,
-                       MORSE_enum side, MORSE_enum uplo, MORSE_enum transA, MORSE_enum diag,
+                       cham_side_t side, cham_uplo_t uplo, cham_trans_t transA, cham_diag_t diag,
                        int m, int n, int nb,
-                       MORSE_Complex64_t alpha, const MORSE_desc_t *A, int Am, int An, int lda,
-                       const MORSE_desc_t *B, int Bm, int Bn, int ldb );
+                       CHAM_Complex64_t alpha, const CHAM_desc_t *A, int Am, int An, int lda,
+                       const CHAM_desc_t *B, int Bm, int Bn, int ldb );
 void INSERT_TASK_ztrssq( const RUNTIME_option_t *options,
-                        MORSE_enum uplo, MORSE_enum diag,
+                        cham_uplo_t uplo, cham_diag_t diag,
                         int m, int n,
-                        const MORSE_desc_t *A, int Am, int An, int lda,
-                        const MORSE_desc_t *SCALESUMSQ, int SCALESUMSQm, int SCALESUMSQn );
+                        const CHAM_desc_t *A, int Am, int An, int lda,
+                        const CHAM_desc_t *SCALESUMSQ, int SCALESUMSQm, int SCALESUMSQn );
 void INSERT_TASK_ztrtri( const RUNTIME_option_t *options,
-                        MORSE_enum uplo, MORSE_enum diag, int n, int nb,
-                        const MORSE_desc_t *A, int Am, int An, int lda,
+                        cham_uplo_t uplo, cham_diag_t diag, int n, int nb,
+                        const CHAM_desc_t *A, int Am, int An, int lda,
 
                         int iinfo );
 void INSERT_TASK_ztslqt( const RUNTIME_option_t *options,
                         int m, int n, int ib, int nb,
-                        const MORSE_desc_t *A1, int A1m, int A1n, int lda1,
-                        const MORSE_desc_t *A2, int A2m, int A2n, int lda2,
-                        const MORSE_desc_t *T, int Tm, int Tn, int ldt );
+                        const CHAM_desc_t *A1, int A1m, int A1n, int lda1,
+                        const CHAM_desc_t *A2, int A2m, int A2n, int lda2,
+                        const CHAM_desc_t *T, int Tm, int Tn, int ldt );
 void INSERT_TASK_ztsmlq( const RUNTIME_option_t *options,
-                        MORSE_enum side, MORSE_enum trans,
+                        cham_side_t side, cham_trans_t trans,
                         int m1, int n1, int m2, int n2, int k, int ib, int nb,
-                        const MORSE_desc_t *A1, int A1m, int A1n, int lda1,
-                        const MORSE_desc_t *A2, int A2m, int A2n, int lda2,
-                        const MORSE_desc_t *V, int Vm, int Vn, int ldv,
-                        const MORSE_desc_t *T, int Tm, int Tn, int ldt );
+                        const CHAM_desc_t *A1, int A1m, int A1n, int lda1,
+                        const CHAM_desc_t *A2, int A2m, int A2n, int lda2,
+                        const CHAM_desc_t *V, int Vm, int Vn, int ldv,
+                        const CHAM_desc_t *T, int Tm, int Tn, int ldt );
 void INSERT_TASK_ztsmlq_hetra1( const RUNTIME_option_t *options,
-                               MORSE_enum side, MORSE_enum trans,
+                               cham_side_t side, cham_trans_t trans,
                                int m1, int n1, int m2, int n2, int k, int ib, int nb,
-                               const MORSE_desc_t *A1, int A1m, int A1n, int lda1,
-                               const MORSE_desc_t *A2, int A2m, int A2n, int lda2,
-                               const MORSE_desc_t *V, int Vm, int Vn, int ldv,
-                               const MORSE_desc_t *T, int Tm, int Tn, int ldt );
+                               const CHAM_desc_t *A1, int A1m, int A1n, int lda1,
+                               const CHAM_desc_t *A2, int A2m, int A2n, int lda2,
+                               const CHAM_desc_t *V, int Vm, int Vn, int ldv,
+                               const CHAM_desc_t *T, int Tm, int Tn, int ldt );
 void INSERT_TASK_ztsmqr( const RUNTIME_option_t *options,
-                        MORSE_enum side, MORSE_enum trans,
+                        cham_side_t side, cham_trans_t trans,
                         int m1, int n1, int m2, int n2, int k, int ib, int nb,
-                        const MORSE_desc_t *A1, int A1m, int A1n, int lda1,
-                        const MORSE_desc_t *A2, int A2m, int A2n, int lda2,
-                        const MORSE_desc_t *V, int Vm, int Vn, int ldv,
-                        const MORSE_desc_t *T, int Tm, int Tn, int ldt );
+                        const CHAM_desc_t *A1, int A1m, int A1n, int lda1,
+                        const CHAM_desc_t *A2, int A2m, int A2n, int lda2,
+                        const CHAM_desc_t *V, int Vm, int Vn, int ldv,
+                        const CHAM_desc_t *T, int Tm, int Tn, int ldt );
 void INSERT_TASK_ztsmqr_hetra1( const RUNTIME_option_t *options,
-                               MORSE_enum side, MORSE_enum trans,
+                               cham_side_t side, cham_trans_t trans,
                                int m1, int n1, int m2, int n2, int k, int ib, int nb,
-                               const MORSE_desc_t *A1, int A1m, int A1n, int lda1,
-                               const MORSE_desc_t *A2, int A2m, int A2n, int lda2,
-                               const MORSE_desc_t *V, int Vm, int Vn, int ldv,
-                               const MORSE_desc_t *T, int Tm, int Tn, int ldt );
+                               const CHAM_desc_t *A1, int A1m, int A1n, int lda1,
+                               const CHAM_desc_t *A2, int A2m, int A2n, int lda2,
+                               const CHAM_desc_t *V, int Vm, int Vn, int ldv,
+                               const CHAM_desc_t *T, int Tm, int Tn, int ldt );
 void INSERT_TASK_ztsqrt( const RUNTIME_option_t *options,
                         int m, int n, int ib, int nb,
-                        const MORSE_desc_t *A1, int A1m, int A1n, int lda1,
-                        const MORSE_desc_t *A2, int A2m, int A2n, int lda2,
-                        const MORSE_desc_t *T, int Tm, int Tn, int ldt );
+                        const CHAM_desc_t *A1, int A1m, int A1n, int lda1,
+                        const CHAM_desc_t *A2, int A2m, int A2n, int lda2,
+                        const CHAM_desc_t *T, int Tm, int Tn, int ldt );
 void INSERT_TASK_ztstrf( const RUNTIME_option_t *options,
                         int m, int n, int ib, int nb,
-                        const MORSE_desc_t *U, int Um, int Un, int ldu,
-                        const MORSE_desc_t *A, int Am, int An, int lda,
-                        const MORSE_desc_t *L, int Lm, int Ln, int ldl,
+                        const CHAM_desc_t *U, int Um, int Un, int ldu,
+                        const CHAM_desc_t *A, int Am, int An, int lda,
+                        const CHAM_desc_t *L, int Lm, int Ln, int ldl,
                         int *IPIV,
-
-                        MORSE_bool check_info, int iinfo );
+                        cham_bool_t check_info, int iinfo );
 void INSERT_TASK_zttmqr( const RUNTIME_option_t *options,
-                        MORSE_enum side, MORSE_enum trans,
+                        cham_side_t side, cham_trans_t trans,
                         int m1, int n1, int m2, int n2, int k, int ib, int nb,
-                        const MORSE_desc_t *A1, int A1m, int A1n, int lda1,
-                        const MORSE_desc_t *A2, int A2m, int A2n, int lda2,
-                        const MORSE_desc_t *V, int Vm, int Vn, int ldv,
-                        const MORSE_desc_t *T, int Tm, int Tn, int ldt );
+                        const CHAM_desc_t *A1, int A1m, int A1n, int lda1,
+                        const CHAM_desc_t *A2, int A2m, int A2n, int lda2,
+                        const CHAM_desc_t *V, int Vm, int Vn, int ldv,
+                        const CHAM_desc_t *T, int Tm, int Tn, int ldt );
 void INSERT_TASK_zttqrt( const RUNTIME_option_t *options,
                         int m, int n, int ib, int nb,
-                        const MORSE_desc_t *A1, int A1m, int A1n, int lda1,
-                        const MORSE_desc_t *A2, int A2m, int A2n, int lda2,
-                        const MORSE_desc_t *T, int Tm, int Tn, int ldt );
+                        const CHAM_desc_t *A1, int A1m, int A1n, int lda1,
+                        const CHAM_desc_t *A2, int A2m, int A2n, int lda2,
+                        const CHAM_desc_t *T, int Tm, int Tn, int ldt );
 void INSERT_TASK_zttmlq( const RUNTIME_option_t *options,
-                        MORSE_enum side, MORSE_enum trans,
+                        cham_side_t side, cham_trans_t trans,
                         int m1, int n1, int m2, int n2, int k, int ib, int nb,
-                        const MORSE_desc_t *A1, int A1m, int A1n, int lda1,
-                        const MORSE_desc_t *A2, int A2m, int A2n, int lda2,
-                        const MORSE_desc_t *V, int Vm, int Vn, int ldv,
-                        const MORSE_desc_t *T, int Tm, int Tn, int ldt );
+                        const CHAM_desc_t *A1, int A1m, int A1n, int lda1,
+                        const CHAM_desc_t *A2, int A2m, int A2n, int lda2,
+                        const CHAM_desc_t *V, int Vm, int Vn, int ldv,
+                        const CHAM_desc_t *T, int Tm, int Tn, int ldt );
 void INSERT_TASK_zttlqt( const RUNTIME_option_t *options,
                         int m, int n, int ib, int nb,
-                        const MORSE_desc_t *A1, int A1m, int A1n, int lda1,
-                        const MORSE_desc_t *A2, int A2m, int A2n, int lda2,
-                        const MORSE_desc_t *T, int Tm, int Tn, int ldt );
+                        const CHAM_desc_t *A1, int A1m, int A1n, int lda1,
+                        const CHAM_desc_t *A2, int A2m, int A2n, int lda2,
+                        const CHAM_desc_t *T, int Tm, int Tn, int ldt );
 void INSERT_TASK_zpamm( const RUNTIME_option_t *options,
-                       int op, MORSE_enum side, MORSE_enum storev,
+                       int op, cham_side_t side, cham_store_t storev,
                        int m, int n, int k, int l,
-                       const MORSE_desc_t *A1, int A1m, int A1n, int lda1,
-                       const MORSE_desc_t *A2, int A2m, int A2n, int lda2,
-                       const MORSE_desc_t *V, int Vm, int Vn, int ldv,
-                       const MORSE_desc_t *W, int Wm, int Wn, int ldw );
+                       const CHAM_desc_t *A1, int A1m, int A1n, int lda1,
+                       const CHAM_desc_t *A2, int A2m, int A2n, int lda2,
+                       const CHAM_desc_t *V, int Vm, int Vn, int ldv,
+                       const CHAM_desc_t *W, int Wm, int Wn, int ldw );
 void INSERT_TASK_zplssq( const RUNTIME_option_t *options,
-                        const MORSE_desc_t *SCALESUMSQ, int SCALESUMSQm, int SCALESUMSQn,
-                        const MORSE_desc_t *SCLSSQ,     int SCLSSQm,     int SCLSSQn );
+                        const CHAM_desc_t *SCALESUMSQ, int SCALESUMSQm, int SCALESUMSQn,
+                        const CHAM_desc_t *SCLSSQ,     int SCLSSQm,     int SCLSSQn );
 void INSERT_TASK_zplssq2( const RUNTIME_option_t *options,
-                         const MORSE_desc_t *RESULT, int RESULTm, int RESULTn );
+                         const CHAM_desc_t *RESULT, int RESULTm, int RESULTn );
 void INSERT_TASK_zunmlq( const RUNTIME_option_t *options,
-                        MORSE_enum side, MORSE_enum trans,
+                        cham_side_t side, cham_trans_t trans,
                         int m, int n, int ib,  int nb, int k,
-                        const MORSE_desc_t *A, int Am, int An, int lda,
-                        const MORSE_desc_t *T, int Tm, int Tn, int ldt,
-                        const MORSE_desc_t *C, int Cm, int Cn, int ldc );
+                        const CHAM_desc_t *A, int Am, int An, int lda,
+                        const CHAM_desc_t *T, int Tm, int Tn, int ldt,
+                        const CHAM_desc_t *C, int Cm, int Cn, int ldc );
 void INSERT_TASK_zunmqr( const RUNTIME_option_t *options,
-                        MORSE_enum side, MORSE_enum trans,
+                        cham_side_t side, cham_trans_t trans,
                         int m, int n, int k, int ib, int nb,
-                        const MORSE_desc_t *A, int Am, int An, int lda,
-                        const MORSE_desc_t *T, int Tm, int Tn, int ldt,
-                        const MORSE_desc_t *C, int Cm, int Cn, int ldc );
+                        const CHAM_desc_t *A, int Am, int An, int lda,
+                        const CHAM_desc_t *T, int Tm, int Tn, int ldt,
+                        const CHAM_desc_t *C, int Cm, int Cn, int ldc );
 void INSERT_TASK_zbuild( const RUNTIME_option_t *options,
-                        const MORSE_desc_t *A, int Am, int An, int lda,
+                        const CHAM_desc_t *A, int Am, int An, int lda,
                         void *user_data, void* user_build_callback );
 
 #endif
diff --git a/include/chameleon/chameleon_tasks_zc.h b/include/chameleon/chameleon_tasks_zc.h
index aeb38cccf..c53e7e225 100644
--- a/include/chameleon/chameleon_tasks_zc.h
+++ b/include/chameleon/chameleon_tasks_zc.h
@@ -31,11 +31,11 @@
  */
 void INSERT_TASK_clag2z( const RUNTIME_option_t *options,
                         int m, int n, int nb,
-                        MORSE_desc_t *A, int Am, int An, int lda,
-                        MORSE_desc_t *B, int Bm, int Bn, int ldb );
+                        CHAM_desc_t *A, int Am, int An, int lda,
+                        CHAM_desc_t *B, int Bm, int Bn, int ldb );
 void INSERT_TASK_zlag2c( const RUNTIME_option_t *options,
                         int m, int n, int nb,
-                        MORSE_desc_t *A, int Am, int An, int lda,
-                        MORSE_desc_t *B, int Bm, int Bn, int ldb );
+                        CHAM_desc_t *A, int Am, int An, int lda,
+                        CHAM_desc_t *B, int Bm, int Bn, int ldb );
 
 #endif
diff --git a/include/chameleon/chameleon_types.h b/include/chameleon/chameleon_types.h
index e6fbbbb46..a527c5f30 100644
--- a/include/chameleon/chameleon_types.h
+++ b/include/chameleon/chameleon_types.h
@@ -40,10 +40,7 @@
 /**
  *  CHAMELEON types
  */
-typedef int  CHAMELEON_enum;
-typedef int  CHAMELEON_bool;
-typedef long CHAMELEON_index;
-typedef long CHAMELEON_size;
+typedef int8_t cham_bool_t;
 
 
 /**
diff --git a/include/chameleon/chameleon_z.h b/include/chameleon/chameleon_z.h
index fb84df256..326056c17 100644
--- a/include/chameleon/chameleon_z.h
+++ b/include/chameleon/chameleon_z.h
@@ -32,72 +32,72 @@ BEGIN_C_DECLS
 /**
  *  Declarations of math functions (LAPACK layout) - alphabetical order
  */
-int CHAMELEON_zgeadd(CHAMELEON_enum trans, int M, int N, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *B, int LDB);
-//int CHAMELEON_zgebrd(int M, int N, CHAMELEON_Complex64_t *A, int LDA, double *D, double *E, CHAMELEON_desc_t *descT);
-//int CHAMELEON_zgecon(CHAMELEON_enum norm, int N, CHAMELEON_Complex64_t *A, int LDA, double anorm, double *rcond);
-//int CHAMELEON_zpocon(CHAMELEON_enum uplo, int N, CHAMELEON_Complex64_t *A, int LDA, double anorm, double *rcond);
-int CHAMELEON_zgelqf(int M, int N, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descT);
-int CHAMELEON_zgelqs(int M, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descT, CHAMELEON_Complex64_t *B, int LDB);
-int CHAMELEON_zgels(CHAMELEON_enum trans, int M, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descT, CHAMELEON_Complex64_t *B, int LDB);
-int CHAMELEON_zgemm(CHAMELEON_enum transA, CHAMELEON_enum transB, int M, int N, int K, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB, CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *C, int LDC);
-int CHAMELEON_zgeqrf(int M, int N, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descT);
-int CHAMELEON_zgeqrs(int M, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descT, CHAMELEON_Complex64_t *B, int LDB);
+int CHAMELEON_zgeadd(cham_trans_t trans, int M, int N, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *B, int LDB);
+//int CHAMELEON_zgebrd(int M, int N, CHAMELEON_Complex64_t *A, int LDA, double *D, double *E, CHAM_desc_t *descT);
+//int CHAMELEON_zgecon(cham_normtype_t norm, int N, CHAMELEON_Complex64_t *A, int LDA, double anorm, double *rcond);
+//int CHAMELEON_zpocon(cham_uplo_t uplo, int N, CHAMELEON_Complex64_t *A, int LDA, double anorm, double *rcond);
+int CHAMELEON_zgelqf(int M, int N, CHAMELEON_Complex64_t *A, int LDA, CHAM_desc_t *descT);
+int CHAMELEON_zgelqs(int M, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAM_desc_t *descT, CHAMELEON_Complex64_t *B, int LDB);
+int CHAMELEON_zgels(cham_trans_t trans, int M, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAM_desc_t *descT, CHAMELEON_Complex64_t *B, int LDB);
+int CHAMELEON_zgemm(cham_trans_t transA, cham_trans_t transB, int M, int N, int K, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB, CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *C, int LDC);
+int CHAMELEON_zgeqrf(int M, int N, CHAMELEON_Complex64_t *A, int LDA, CHAM_desc_t *descT);
+int CHAMELEON_zgeqrs(int M, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAM_desc_t *descT, CHAMELEON_Complex64_t *B, int LDB);
 //int CHAMELEON_zgesv(int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, int *IPIV, CHAMELEON_Complex64_t *B, int LDB);
-int CHAMELEON_zgesv_incpiv(int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descL, int *IPIV, CHAMELEON_Complex64_t *B, int LDB);
+int CHAMELEON_zgesv_incpiv(int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAM_desc_t *descL, int *IPIV, CHAMELEON_Complex64_t *B, int LDB);
 int CHAMELEON_zgesv_nopiv(int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB);
-int CHAMELEON_zgesvd(CHAMELEON_enum jobu, CHAMELEON_enum jobvt, int M, int N, CHAMELEON_Complex64_t *A, int LDA, double *S, CHAMELEON_desc_t *descT, CHAMELEON_Complex64_t *U, int LDU, CHAMELEON_Complex64_t *VT, int LDVT);
+int CHAMELEON_zgesvd(cham_job_t jobu, cham_job_t jobvt, int M, int N, CHAMELEON_Complex64_t *A, int LDA, double *S, CHAM_desc_t *descT, CHAMELEON_Complex64_t *U, int LDU, CHAMELEON_Complex64_t *VT, int LDVT);
 //int CHAMELEON_zgetrf(int M, int N, CHAMELEON_Complex64_t *A, int LDA, int *IPIV);
-int CHAMELEON_zgetrf_incpiv(int M, int N, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descL, int *IPIV);
+int CHAMELEON_zgetrf_incpiv(int M, int N, CHAMELEON_Complex64_t *A, int LDA, CHAM_desc_t *descL, int *IPIV);
 int CHAMELEON_zgetrf_nopiv(int M, int N, CHAMELEON_Complex64_t *A, int LDA);
 //int CHAMELEON_zgetri(int N, CHAMELEON_Complex64_t *A, int LDA, int *IPIV);
-//int CHAMELEON_zgetrs(CHAMELEON_enum trans, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, int *IPIV, CHAMELEON_Complex64_t *B, int LDB);
-int CHAMELEON_zgetrs_incpiv(CHAMELEON_enum trans, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descL, int *IPIV, CHAMELEON_Complex64_t *B, int LDB);
-int CHAMELEON_zgetrs_nopiv(CHAMELEON_enum trans, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB);
-int CHAMELEON_zhemm(CHAMELEON_enum side, CHAMELEON_enum uplo, int M, int N, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB, CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *C, int LDC);
-int CHAMELEON_zherk(CHAMELEON_enum uplo, CHAMELEON_enum trans, int N, int K, double alpha, CHAMELEON_Complex64_t *A, int LDA, double beta, CHAMELEON_Complex64_t *C, int LDC);
-int CHAMELEON_zher2k(CHAMELEON_enum uplo, CHAMELEON_enum trans, int N, int K, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB, double beta, CHAMELEON_Complex64_t *C, int LDC);
-//int CHAMELEON_zheev(CHAMELEON_enum jobz, CHAMELEON_enum uplo, int N, CHAMELEON_Complex64_t *A, int LDA, double *W, CHAMELEON_desc_t *descT, CHAMELEON_Complex64_t *Q, int LDQ);
-int CHAMELEON_zheevd(CHAMELEON_enum jobz, CHAMELEON_enum uplo, int N, CHAMELEON_Complex64_t *A, int LDA, double *W, CHAMELEON_desc_t *descT);
-//int CHAMELEON_zhegv(CHAMELEON_enum itype, CHAMELEON_enum jobz, CHAMELEON_enum uplo, int N, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB, double *W, CHAMELEON_desc_t *descT, CHAMELEON_Complex64_t *Q, int LDQ);
-//int CHAMELEON_zhegvd(CHAMELEON_enum itype, CHAMELEON_enum jobz, CHAMELEON_enum uplo, int N, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB, double *W, CHAMELEON_desc_t *descT, CHAMELEON_Complex64_t *Q, int LDQ);
-//int CHAMELEON_zhegst(CHAMELEON_enum itype, CHAMELEON_enum uplo, int N, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB);
-int CHAMELEON_zhetrd(CHAMELEON_enum jobz, CHAMELEON_enum uplo, int N, CHAMELEON_Complex64_t *A, int LDA, double *D, double *E, CHAMELEON_desc_t *descT, CHAMELEON_Complex64_t *Q, int LDQ);
-int CHAMELEON_zlacpy(CHAMELEON_enum uplo, int M, int N, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB);
-double CHAMELEON_zlange(CHAMELEON_enum norm, int M, int N, CHAMELEON_Complex64_t *A, int LDA);
-double CHAMELEON_zlanhe(CHAMELEON_enum norm, CHAMELEON_enum uplo, int N, CHAMELEON_Complex64_t *A, int LDA);
-double CHAMELEON_zlansy(CHAMELEON_enum norm, CHAMELEON_enum uplo, int N, CHAMELEON_Complex64_t *A, int LDA);
-double CHAMELEON_zlantr(CHAMELEON_enum norm, CHAMELEON_enum uplo, CHAMELEON_enum diag, int M, int N, CHAMELEON_Complex64_t *A, int LDA);
-int CHAMELEON_zlascal(CHAMELEON_enum uplo, int M, int N, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA);
-int CHAMELEON_zlaset(CHAMELEON_enum uplo, int M, int N, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *A, int LDA);
+//int CHAMELEON_zgetrs(cham_trans_t trans, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, int *IPIV, CHAMELEON_Complex64_t *B, int LDB);
+int CHAMELEON_zgetrs_incpiv(cham_trans_t trans, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAM_desc_t *descL, int *IPIV, CHAMELEON_Complex64_t *B, int LDB);
+int CHAMELEON_zgetrs_nopiv(cham_trans_t trans, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB);
+int CHAMELEON_zhemm(cham_side_t side, cham_uplo_t uplo, int M, int N, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB, CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *C, int LDC);
+int CHAMELEON_zherk(cham_uplo_t uplo, cham_trans_t trans, int N, int K, double alpha, CHAMELEON_Complex64_t *A, int LDA, double beta, CHAMELEON_Complex64_t *C, int LDC);
+int CHAMELEON_zher2k(cham_uplo_t uplo, cham_trans_t trans, int N, int K, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB, double beta, CHAMELEON_Complex64_t *C, int LDC);
+//int CHAMELEON_zheev(cham_job_t jobz, cham_uplo_t uplo, int N, CHAMELEON_Complex64_t *A, int LDA, double *W, CHAM_desc_t *descT, CHAMELEON_Complex64_t *Q, int LDQ);
+int CHAMELEON_zheevd(cham_job_t jobz, cham_uplo_t uplo, int N, CHAMELEON_Complex64_t *A, int LDA, double *W, CHAM_desc_t *descT);
+//int CHAMELEON_zhegv(CHAMELEON_enum itype, cham_job_t jobz, cham_uplo_t uplo, int N, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB, double *W, CHAM_desc_t *descT, CHAMELEON_Complex64_t *Q, int LDQ);
+//int CHAMELEON_zhegvd(CHAMELEON_enum itype, cham_job_t jobz, cham_uplo_t uplo, int N, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB, double *W, CHAM_desc_t *descT, CHAMELEON_Complex64_t *Q, int LDQ);
+//int CHAMELEON_zhegst(CHAMELEON_enum itype, cham_uplo_t uplo, int N, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB);
+int CHAMELEON_zhetrd(cham_job_t jobz, cham_uplo_t uplo, int N, CHAMELEON_Complex64_t *A, int LDA, double *D, double *E, CHAM_desc_t *descT, CHAMELEON_Complex64_t *Q, int LDQ);
+int CHAMELEON_zlacpy(cham_uplo_t uplo, int M, int N, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB);
+double CHAMELEON_zlange(cham_normtype_t norm, int M, int N, CHAMELEON_Complex64_t *A, int LDA);
+double CHAMELEON_zlanhe(cham_normtype_t norm, cham_uplo_t uplo, int N, CHAMELEON_Complex64_t *A, int LDA);
+double CHAMELEON_zlansy(cham_normtype_t norm, cham_uplo_t uplo, int N, CHAMELEON_Complex64_t *A, int LDA);
+double CHAMELEON_zlantr(cham_normtype_t norm, cham_uplo_t uplo, cham_diag_t diag, int M, int N, CHAMELEON_Complex64_t *A, int LDA);
+int CHAMELEON_zlascal(cham_uplo_t uplo, int M, int N, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA);
+int CHAMELEON_zlaset(cham_uplo_t uplo, int M, int N, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *A, int LDA);
 //int CHAMELEON_zlaswp(int N, CHAMELEON_Complex64_t *A, int LDA, int K1, int K2, int *IPIV, int INCX);
 //int CHAMELEON_zlaswpc(int N, CHAMELEON_Complex64_t *A, int LDA, int K1, int K2, int *IPIV, int INCX);
-int CHAMELEON_zlauum(CHAMELEON_enum uplo, int N, CHAMELEON_Complex64_t *A, int LDA);
-int CHAMELEON_zplghe( double bump, CHAMELEON_enum uplo, int N, CHAMELEON_Complex64_t *A, int LDA, unsigned long long int seed );
-int CHAMELEON_zplgsy( CHAMELEON_Complex64_t bump, CHAMELEON_enum uplo, int N, CHAMELEON_Complex64_t *A, int LDA, unsigned long long int seed );
+int CHAMELEON_zlauum(cham_uplo_t uplo, int N, CHAMELEON_Complex64_t *A, int LDA);
+int CHAMELEON_zplghe( double bump, cham_uplo_t uplo, int N, CHAMELEON_Complex64_t *A, int LDA, unsigned long long int seed );
+int CHAMELEON_zplgsy( CHAMELEON_Complex64_t bump, cham_uplo_t uplo, int N, CHAMELEON_Complex64_t *A, int LDA, unsigned long long int seed );
 int CHAMELEON_zplrnt( int M, int N, CHAMELEON_Complex64_t *A, int LDA, unsigned long long int seed );
-int CHAMELEON_zposv(CHAMELEON_enum uplo, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB);
-int CHAMELEON_zpotrf(CHAMELEON_enum uplo, int N, CHAMELEON_Complex64_t *A, int LDA);
-int CHAMELEON_zsytrf(CHAMELEON_enum uplo, int N, CHAMELEON_Complex64_t *A, int LDA);
-int CHAMELEON_zpotri(CHAMELEON_enum uplo, int N, CHAMELEON_Complex64_t *A, int LDA);
-int CHAMELEON_zpotrimm(CHAMELEON_enum uplo, int N, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB, CHAMELEON_Complex64_t *C, int LDC);
-int CHAMELEON_zpotrs(CHAMELEON_enum uplo, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB);
-int CHAMELEON_zsymm(CHAMELEON_enum side, CHAMELEON_enum uplo, int M, int N, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB, CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *C, int LDC);
-int CHAMELEON_zsyrk(CHAMELEON_enum uplo, CHAMELEON_enum trans, int N, int K, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *C, int LDC);
-int CHAMELEON_zsyr2k(CHAMELEON_enum uplo, CHAMELEON_enum trans, int N, int K, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB, CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *C, int LDC);
-int CHAMELEON_zsysv(CHAMELEON_enum uplo, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB);
-int CHAMELEON_zsytrs(CHAMELEON_enum uplo, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB);
-int CHAMELEON_ztpgqrt( int M, int N, int K, int L, CHAMELEON_Complex64_t *V1, int LDV1, CHAMELEON_desc_t *descT1, CHAMELEON_Complex64_t *V2, int LDV2, CHAMELEON_desc_t *descT2, CHAMELEON_Complex64_t *Q1, int LDQ1, CHAMELEON_Complex64_t *Q2, int LDQ2 );
-int CHAMELEON_ztpqrt( int M, int N, int L, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB, CHAMELEON_desc_t *descT );
-int CHAMELEON_ztradd(CHAMELEON_enum uplo, CHAMELEON_enum trans, int M, int N, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *B, int LDB);
-int CHAMELEON_ztrmm(CHAMELEON_enum side, CHAMELEON_enum uplo, CHAMELEON_enum transA, CHAMELEON_enum diag, int N, int NRHS, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB);
-int CHAMELEON_ztrsm(CHAMELEON_enum side, CHAMELEON_enum uplo, CHAMELEON_enum transA, CHAMELEON_enum diag, int N, int NRHS, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB);
-int CHAMELEON_ztrsmpl(int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descL, int *IPIV, CHAMELEON_Complex64_t *B, int LDB);
-int CHAMELEON_ztrsmrv(CHAMELEON_enum side, CHAMELEON_enum uplo, CHAMELEON_enum transA, CHAMELEON_enum diag, int N, int NRHS, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB);
-int CHAMELEON_ztrtri(CHAMELEON_enum uplo, CHAMELEON_enum diag, int N, CHAMELEON_Complex64_t *A, int LDA);
-int CHAMELEON_zunglq(int M, int N, int K, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descT, CHAMELEON_Complex64_t *B, int LDB);
-int CHAMELEON_zungqr(int M, int N, int K, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descT, CHAMELEON_Complex64_t *B, int LDB);
-int CHAMELEON_zunmlq(CHAMELEON_enum side, CHAMELEON_enum trans, int M, int N, int K, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descT, CHAMELEON_Complex64_t *B, int LDB);
-int CHAMELEON_zunmqr(CHAMELEON_enum side, CHAMELEON_enum trans, int M, int N, int K, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descT, CHAMELEON_Complex64_t *B, int LDB);
+int CHAMELEON_zposv(cham_uplo_t uplo, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB);
+int CHAMELEON_zpotrf(cham_uplo_t uplo, int N, CHAMELEON_Complex64_t *A, int LDA);
+int CHAMELEON_zsytrf(cham_uplo_t uplo, int N, CHAMELEON_Complex64_t *A, int LDA);
+int CHAMELEON_zpotri(cham_uplo_t uplo, int N, CHAMELEON_Complex64_t *A, int LDA);
+int CHAMELEON_zpotrimm(cham_uplo_t uplo, int N, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB, CHAMELEON_Complex64_t *C, int LDC);
+int CHAMELEON_zpotrs(cham_uplo_t uplo, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB);
+int CHAMELEON_zsymm(cham_side_t side, cham_uplo_t uplo, int M, int N, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB, CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *C, int LDC);
+int CHAMELEON_zsyrk(cham_uplo_t uplo, cham_trans_t trans, int N, int K, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *C, int LDC);
+int CHAMELEON_zsyr2k(cham_uplo_t uplo, cham_trans_t trans, int N, int K, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB, CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *C, int LDC);
+int CHAMELEON_zsysv(cham_uplo_t uplo, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB);
+int CHAMELEON_zsytrs(cham_uplo_t uplo, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB);
+int CHAMELEON_ztpgqrt( int M, int N, int K, int L, CHAMELEON_Complex64_t *V1, int LDV1, CHAM_desc_t *descT1, CHAMELEON_Complex64_t *V2, int LDV2, CHAM_desc_t *descT2, CHAMELEON_Complex64_t *Q1, int LDQ1, CHAMELEON_Complex64_t *Q2, int LDQ2 );
+int CHAMELEON_ztpqrt( int M, int N, int L, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB, CHAM_desc_t *descT );
+int CHAMELEON_ztradd(cham_uplo_t uplo, cham_trans_t trans, int M, int N, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *B, int LDB);
+int CHAMELEON_ztrmm(cham_side_t side, cham_uplo_t uplo, cham_trans_t transA, cham_diag_t diag, int N, int NRHS, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB);
+int CHAMELEON_ztrsm(cham_side_t side, cham_uplo_t uplo, cham_trans_t transA, cham_diag_t diag, int N, int NRHS, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB);
+int CHAMELEON_ztrsmpl(int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAM_desc_t *descL, int *IPIV, CHAMELEON_Complex64_t *B, int LDB);
+int CHAMELEON_ztrsmrv(cham_side_t side, cham_uplo_t uplo, cham_trans_t transA, cham_diag_t diag, int N, int NRHS, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *B, int LDB);
+int CHAMELEON_ztrtri(cham_uplo_t uplo, cham_diag_t diag, int N, CHAMELEON_Complex64_t *A, int LDA);
+int CHAMELEON_zunglq(int M, int N, int K, CHAMELEON_Complex64_t *A, int LDA, CHAM_desc_t *descT, CHAMELEON_Complex64_t *B, int LDB);
+int CHAMELEON_zungqr(int M, int N, int K, CHAMELEON_Complex64_t *A, int LDA, CHAM_desc_t *descT, CHAMELEON_Complex64_t *B, int LDB);
+int CHAMELEON_zunmlq(cham_side_t side, cham_trans_t trans, int M, int N, int K, CHAMELEON_Complex64_t *A, int LDA, CHAM_desc_t *descT, CHAMELEON_Complex64_t *B, int LDB);
+int CHAMELEON_zunmqr(cham_side_t side, cham_trans_t trans, int M, int N, int K, CHAMELEON_Complex64_t *A, int LDA, CHAM_desc_t *descT, CHAMELEON_Complex64_t *B, int LDB);
 
 //int CHAMELEON_zgecfi(int m, int n, CHAMELEON_Complex64_t *A, CHAMELEON_enum fin, int imb, int inb, CHAMELEON_enum fout, int omb, int onb);
 //int CHAMELEON_zgetmi(int m, int n, CHAMELEON_Complex64_t *A, CHAMELEON_enum fin, int mb,  int nb);
@@ -105,142 +105,142 @@ int CHAMELEON_zunmqr(CHAMELEON_enum side, CHAMELEON_enum trans, int M, int N, in
 /**
  *  Declarations of math functions (tile layout) - alphabetical order
  */
-int CHAMELEON_zgeadd_Tile(CHAMELEON_enum trans, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_Complex64_t beta, CHAMELEON_desc_t *B);
-//int CHAMELEON_zgebrd_Tile(CHAMELEON_desc_t *A, double *D, double *E, CHAMELEON_desc_t *T);
-//int CHAMELEON_zgecon_Tile(CHAMELEON_enum norm, CHAMELEON_desc_t *A, double anorm, double *rcond);
-//int CHAMELEON_zpocon_Tile(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, double anorm, double *rcond);
-int CHAMELEON_zgelqf_Tile(CHAMELEON_desc_t *A, CHAMELEON_desc_t *T);
-int CHAMELEON_zgelqs_Tile(CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, CHAMELEON_desc_t *B);
-int CHAMELEON_zgels_Tile(CHAMELEON_enum trans, CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, CHAMELEON_desc_t *B);
-int CHAMELEON_zgemm_Tile(CHAMELEON_enum transA, CHAMELEON_enum transB, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, CHAMELEON_Complex64_t beta, CHAMELEON_desc_t *C);
-int CHAMELEON_zgeqrf_Tile(CHAMELEON_desc_t *A, CHAMELEON_desc_t *T);
-int CHAMELEON_zgeqrs_Tile(CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, CHAMELEON_desc_t *B);
-//int CHAMELEON_zgesv_Tile(CHAMELEON_desc_t *A, int *IPIV, CHAMELEON_desc_t *B);
-int CHAMELEON_zgesv_incpiv_Tile(CHAMELEON_desc_t *A, CHAMELEON_desc_t *L, int *IPIV, CHAMELEON_desc_t *B);
-int CHAMELEON_zgesv_nopiv_Tile(CHAMELEON_desc_t *A, CHAMELEON_desc_t *B);
-int CHAMELEON_zgesvd_Tile(CHAMELEON_enum jobu, CHAMELEON_enum jobvt, CHAMELEON_desc_t *A, double *S, CHAMELEON_desc_t *T, CHAMELEON_Complex64_t *U, int LDU, CHAMELEON_Complex64_t *VT, int LDVT);
-//int CHAMELEON_zgetrf_Tile(CHAMELEON_desc_t *A, int *IPIV);
-int CHAMELEON_zgetrf_incpiv_Tile(CHAMELEON_desc_t *A, CHAMELEON_desc_t *L, int *IPIV);
-int CHAMELEON_zgetrf_nopiv_Tile(CHAMELEON_desc_t *A);
-//int CHAMELEON_zgetri_Tile(CHAMELEON_desc_t *A, int *IPIV);
-//int CHAMELEON_zgetrs_Tile(CHAMELEON_enum trans, CHAMELEON_desc_t *A, int *IPIV, CHAMELEON_desc_t *B);
-int CHAMELEON_zgetrs_incpiv_Tile(CHAMELEON_desc_t *A, CHAMELEON_desc_t *L, int *IPIV, CHAMELEON_desc_t *B);
-int CHAMELEON_zgetrs_nopiv_Tile(CHAMELEON_desc_t *A, CHAMELEON_desc_t *B);
-int CHAMELEON_zhemm_Tile(CHAMELEON_enum side, CHAMELEON_enum uplo, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, CHAMELEON_Complex64_t beta, CHAMELEON_desc_t *C);
-int CHAMELEON_zherk_Tile(CHAMELEON_enum uplo, CHAMELEON_enum trans, double alpha, CHAMELEON_desc_t *A, double beta, CHAMELEON_desc_t *C);
-int CHAMELEON_zher2k_Tile(CHAMELEON_enum uplo, CHAMELEON_enum trans, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, double beta, CHAMELEON_desc_t *C);
-//int CHAMELEON_zheev_Tile(CHAMELEON_enum jobz, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, double *W, CHAMELEON_desc_t *T, CHAMELEON_Complex64_t *Q, int LDQ);
-int CHAMELEON_zheevd_Tile(CHAMELEON_enum jobz, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, double *W, CHAMELEON_desc_t *T);
-//int CHAMELEON_zhegv_Tile( CHAMELEON_enum itype, CHAMELEON_enum jobz, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, double *W, CHAMELEON_desc_t *T, CHAMELEON_desc_t *Q);
-//int CHAMELEON_zhegvd_Tile(CHAMELEON_enum itype, CHAMELEON_enum jobz, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, double *W, CHAMELEON_desc_t *T, CHAMELEON_desc_t *Q);
-//int CHAMELEON_zhegst_Tile(CHAMELEON_enum itype, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B);
-int CHAMELEON_zhetrd_Tile(CHAMELEON_enum jobz, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, double *D, double *E, CHAMELEON_desc_t *T, CHAMELEON_Complex64_t *Q, int LDQ);
-int CHAMELEON_zlacpy_Tile(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B);
-double CHAMELEON_zlange_Tile(CHAMELEON_enum norm, CHAMELEON_desc_t *A);
-double CHAMELEON_zlanhe_Tile(CHAMELEON_enum norm, CHAMELEON_enum uplo, CHAMELEON_desc_t *A);
-double CHAMELEON_zlansy_Tile(CHAMELEON_enum norm, CHAMELEON_enum uplo, CHAMELEON_desc_t *A);
-double CHAMELEON_zlantr_Tile(CHAMELEON_enum norm, CHAMELEON_enum uplo, CHAMELEON_enum diag, CHAMELEON_desc_t *A);
-int CHAMELEON_zlascal_Tile(CHAMELEON_enum uplo, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A);
-int CHAMELEON_zlaset_Tile(CHAMELEON_enum uplo, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t beta, CHAMELEON_desc_t *A);
-//int CHAMELEON_zlaswp_Tile(CHAMELEON_desc_t *A, int K1, int K2, int *IPIV, int INCX);
-//int CHAMELEON_zlaswpc_Tile(CHAMELEON_desc_t *A, int K1, int K2, int *IPIV, int INCX);
-int CHAMELEON_zlauum_Tile(CHAMELEON_enum uplo, CHAMELEON_desc_t *A);
-int CHAMELEON_zplghe_Tile(double bump, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, unsigned long long int seed );
-int CHAMELEON_zplgsy_Tile(CHAMELEON_Complex64_t bump, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, unsigned long long int seed );
-int CHAMELEON_zplrnt_Tile(CHAMELEON_desc_t *A, unsigned long long int seed );
-int CHAMELEON_zposv_Tile(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B);
-int CHAMELEON_zpotrf_Tile(CHAMELEON_enum uplo, CHAMELEON_desc_t *A);
-int CHAMELEON_zsytrf_Tile(CHAMELEON_enum uplo, CHAMELEON_desc_t *A);
-int CHAMELEON_zpotri_Tile(CHAMELEON_enum uplo, CHAMELEON_desc_t *A);
-int CHAMELEON_zpotrimm_Tile(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, CHAMELEON_desc_t *C);
-int CHAMELEON_zpotrs_Tile(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B);
-int CHAMELEON_zsymm_Tile(CHAMELEON_enum side, CHAMELEON_enum uplo, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, CHAMELEON_Complex64_t beta, CHAMELEON_desc_t *C);
-int CHAMELEON_zsyrk_Tile(CHAMELEON_enum uplo, CHAMELEON_enum trans, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_Complex64_t beta, CHAMELEON_desc_t *C);
-int CHAMELEON_zsyr2k_Tile(CHAMELEON_enum uplo, CHAMELEON_enum trans, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, CHAMELEON_Complex64_t beta, CHAMELEON_desc_t *C);
-int CHAMELEON_zsysv_Tile(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B);
-int CHAMELEON_zsytrs_Tile(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B);
-int CHAMELEON_ztpgqrt_Tile( int L, CHAMELEON_desc_t *V1, CHAMELEON_desc_t *T1, CHAMELEON_desc_t *V2, CHAMELEON_desc_t *T2, CHAMELEON_desc_t *Q1, CHAMELEON_desc_t *Q2 );
-int CHAMELEON_ztpqrt_Tile( int L, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, CHAMELEON_desc_t *T );
-int CHAMELEON_ztradd_Tile(CHAMELEON_enum uplo, CHAMELEON_enum trans, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_Complex64_t beta, CHAMELEON_desc_t *B);
-int CHAMELEON_ztrmm_Tile(CHAMELEON_enum side, CHAMELEON_enum uplo, CHAMELEON_enum transA, CHAMELEON_enum diag, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B);
-int CHAMELEON_ztrsm_Tile(CHAMELEON_enum side, CHAMELEON_enum uplo, CHAMELEON_enum transA, CHAMELEON_enum diag, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B);
-int CHAMELEON_ztrsmpl_Tile(CHAMELEON_desc_t *A, CHAMELEON_desc_t *L, int *IPIV, CHAMELEON_desc_t *B);
-int CHAMELEON_ztrsmrv_Tile(CHAMELEON_enum side, CHAMELEON_enum uplo, CHAMELEON_enum transA, CHAMELEON_enum diag, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B);
-int CHAMELEON_ztrtri_Tile(CHAMELEON_enum uplo, CHAMELEON_enum diag, CHAMELEON_desc_t *A);
-int CHAMELEON_zunglq_Tile(CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, CHAMELEON_desc_t *B);
-int CHAMELEON_zungqr_Tile(CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, CHAMELEON_desc_t *B);
-int CHAMELEON_zunmlq_Tile(CHAMELEON_enum side, CHAMELEON_enum trans, CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, CHAMELEON_desc_t *B);
-int CHAMELEON_zunmqr_Tile(CHAMELEON_enum side, CHAMELEON_enum trans, CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, CHAMELEON_desc_t *B);
+int CHAMELEON_zgeadd_Tile(cham_trans_t trans, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAMELEON_Complex64_t beta, CHAM_desc_t *B);
+//int CHAMELEON_zgebrd_Tile(CHAM_desc_t *A, double *D, double *E, CHAM_desc_t *T);
+//int CHAMELEON_zgecon_Tile(cham_normtype_t norm, CHAM_desc_t *A, double anorm, double *rcond);
+//int CHAMELEON_zpocon_Tile(cham_uplo_t uplo, CHAM_desc_t *A, double anorm, double *rcond);
+int CHAMELEON_zgelqf_Tile(CHAM_desc_t *A, CHAM_desc_t *T);
+int CHAMELEON_zgelqs_Tile(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *B);
+int CHAMELEON_zgels_Tile(cham_trans_t trans, CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *B);
+int CHAMELEON_zgemm_Tile(cham_trans_t transA, cham_trans_t transB, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B, CHAMELEON_Complex64_t beta, CHAM_desc_t *C);
+int CHAMELEON_zgeqrf_Tile(CHAM_desc_t *A, CHAM_desc_t *T);
+int CHAMELEON_zgeqrs_Tile(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *B);
+//int CHAMELEON_zgesv_Tile(CHAM_desc_t *A, int *IPIV, CHAM_desc_t *B);
+int CHAMELEON_zgesv_incpiv_Tile(CHAM_desc_t *A, CHAM_desc_t *L, int *IPIV, CHAM_desc_t *B);
+int CHAMELEON_zgesv_nopiv_Tile(CHAM_desc_t *A, CHAM_desc_t *B);
+int CHAMELEON_zgesvd_Tile(cham_job_t jobu, cham_job_t jobvt, CHAM_desc_t *A, double *S, CHAM_desc_t *T, CHAMELEON_Complex64_t *U, int LDU, CHAMELEON_Complex64_t *VT, int LDVT);
+//int CHAMELEON_zgetrf_Tile(CHAM_desc_t *A, int *IPIV);
+int CHAMELEON_zgetrf_incpiv_Tile(CHAM_desc_t *A, CHAM_desc_t *L, int *IPIV);
+int CHAMELEON_zgetrf_nopiv_Tile(CHAM_desc_t *A);
+//int CHAMELEON_zgetri_Tile(CHAM_desc_t *A, int *IPIV);
+//int CHAMELEON_zgetrs_Tile(cham_trans_t trans, CHAM_desc_t *A, int *IPIV, CHAM_desc_t *B);
+int CHAMELEON_zgetrs_incpiv_Tile(CHAM_desc_t *A, CHAM_desc_t *L, int *IPIV, CHAM_desc_t *B);
+int CHAMELEON_zgetrs_nopiv_Tile(CHAM_desc_t *A, CHAM_desc_t *B);
+int CHAMELEON_zhemm_Tile(cham_side_t side, cham_uplo_t uplo, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B, CHAMELEON_Complex64_t beta, CHAM_desc_t *C);
+int CHAMELEON_zherk_Tile(cham_uplo_t uplo, cham_trans_t trans, double alpha, CHAM_desc_t *A, double beta, CHAM_desc_t *C);
+int CHAMELEON_zher2k_Tile(cham_uplo_t uplo, cham_trans_t trans, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B, double beta, CHAM_desc_t *C);
+//int CHAMELEON_zheev_Tile(cham_job_t jobz, cham_uplo_t uplo, CHAM_desc_t *A, double *W, CHAM_desc_t *T, CHAMELEON_Complex64_t *Q, int LDQ);
+int CHAMELEON_zheevd_Tile(cham_job_t jobz, cham_uplo_t uplo, CHAM_desc_t *A, double *W, CHAM_desc_t *T);
+//int CHAMELEON_zhegv_Tile( CHAMELEON_enum itype, cham_job_t jobz, cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, double *W, CHAM_desc_t *T, CHAM_desc_t *Q);
+//int CHAMELEON_zhegvd_Tile(CHAMELEON_enum itype, cham_job_t jobz, cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, double *W, CHAM_desc_t *T, CHAM_desc_t *Q);
+//int CHAMELEON_zhegst_Tile(CHAMELEON_enum itype, cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B);
+int CHAMELEON_zhetrd_Tile(cham_job_t jobz, cham_uplo_t uplo, CHAM_desc_t *A, double *D, double *E, CHAM_desc_t *T, CHAMELEON_Complex64_t *Q, int LDQ);
+int CHAMELEON_zlacpy_Tile(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B);
+double CHAMELEON_zlange_Tile(cham_normtype_t norm, CHAM_desc_t *A);
+double CHAMELEON_zlanhe_Tile(cham_normtype_t norm, cham_uplo_t uplo, CHAM_desc_t *A);
+double CHAMELEON_zlansy_Tile(cham_normtype_t norm, cham_uplo_t uplo, CHAM_desc_t *A);
+double CHAMELEON_zlantr_Tile(cham_normtype_t norm, cham_uplo_t uplo, cham_diag_t diag, CHAM_desc_t *A);
+int CHAMELEON_zlascal_Tile(cham_uplo_t uplo, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A);
+int CHAMELEON_zlaset_Tile(cham_uplo_t uplo, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t beta, CHAM_desc_t *A);
+//int CHAMELEON_zlaswp_Tile(CHAM_desc_t *A, int K1, int K2, int *IPIV, int INCX);
+//int CHAMELEON_zlaswpc_Tile(CHAM_desc_t *A, int K1, int K2, int *IPIV, int INCX);
+int CHAMELEON_zlauum_Tile(cham_uplo_t uplo, CHAM_desc_t *A);
+int CHAMELEON_zplghe_Tile(double bump, cham_uplo_t uplo, CHAM_desc_t *A, unsigned long long int seed );
+int CHAMELEON_zplgsy_Tile(CHAMELEON_Complex64_t bump, cham_uplo_t uplo, CHAM_desc_t *A, unsigned long long int seed );
+int CHAMELEON_zplrnt_Tile(CHAM_desc_t *A, unsigned long long int seed );
+int CHAMELEON_zposv_Tile(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B);
+int CHAMELEON_zpotrf_Tile(cham_uplo_t uplo, CHAM_desc_t *A);
+int CHAMELEON_zsytrf_Tile(cham_uplo_t uplo, CHAM_desc_t *A);
+int CHAMELEON_zpotri_Tile(cham_uplo_t uplo, CHAM_desc_t *A);
+int CHAMELEON_zpotrimm_Tile(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *C);
+int CHAMELEON_zpotrs_Tile(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B);
+int CHAMELEON_zsymm_Tile(cham_side_t side, cham_uplo_t uplo, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B, CHAMELEON_Complex64_t beta, CHAM_desc_t *C);
+int CHAMELEON_zsyrk_Tile(cham_uplo_t uplo, cham_trans_t trans, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAMELEON_Complex64_t beta, CHAM_desc_t *C);
+int CHAMELEON_zsyr2k_Tile(cham_uplo_t uplo, cham_trans_t trans, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B, CHAMELEON_Complex64_t beta, CHAM_desc_t *C);
+int CHAMELEON_zsysv_Tile(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B);
+int CHAMELEON_zsytrs_Tile(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B);
+int CHAMELEON_ztpgqrt_Tile( int L, CHAM_desc_t *V1, CHAM_desc_t *T1, CHAM_desc_t *V2, CHAM_desc_t *T2, CHAM_desc_t *Q1, CHAM_desc_t *Q2 );
+int CHAMELEON_ztpqrt_Tile( int L, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *T );
+int CHAMELEON_ztradd_Tile(cham_uplo_t uplo, cham_trans_t trans, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAMELEON_Complex64_t beta, CHAM_desc_t *B);
+int CHAMELEON_ztrmm_Tile(cham_side_t side, cham_uplo_t uplo, cham_trans_t transA, cham_diag_t diag, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B);
+int CHAMELEON_ztrsm_Tile(cham_side_t side, cham_uplo_t uplo, cham_trans_t transA, cham_diag_t diag, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B);
+int CHAMELEON_ztrsmpl_Tile(CHAM_desc_t *A, CHAM_desc_t *L, int *IPIV, CHAM_desc_t *B);
+int CHAMELEON_ztrsmrv_Tile(cham_side_t side, cham_uplo_t uplo, cham_trans_t transA, cham_diag_t diag, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B);
+int CHAMELEON_ztrtri_Tile(cham_uplo_t uplo, cham_diag_t diag, CHAM_desc_t *A);
+int CHAMELEON_zunglq_Tile(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *B);
+int CHAMELEON_zungqr_Tile(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *B);
+int CHAMELEON_zunmlq_Tile(cham_side_t side, cham_trans_t trans, CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *B);
+int CHAMELEON_zunmqr_Tile(cham_side_t side, cham_trans_t trans, CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *B);
 
 /**
  *  Declarations of math functions (tile layout, asynchronous execution) - alphabetical order
  */
-int CHAMELEON_zgeadd_Tile_Async(CHAMELEON_enum trans, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_Complex64_t beta, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-//int CHAMELEON_zgebrd_Tile_Async(CHAMELEON_desc_t *A, double *D, double *E, CHAMELEON_desc_t *T, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-//int CHAMELEON_zgecon_Tile_Async(CHAMELEON_enum norm, CHAMELEON_desc_t *A, double anorm, double *rcond, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-//int CHAMELEON_zpocon_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, double anorm, double *rcond, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zgelqf_Tile_Async(CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zgelqs_Tile_Async(CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zgels_Tile_Async(CHAMELEON_enum trans, CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zgemm_Tile_Async(CHAMELEON_enum transA, CHAMELEON_enum transB, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, CHAMELEON_Complex64_t beta, CHAMELEON_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zgeqrf_Tile_Async(CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zgeqrs_Tile_Async(CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-//int CHAMELEON_zgesv_Tile_Async(CHAMELEON_desc_t *A, int *IPIV, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zgesv_incpiv_Tile_Async(CHAMELEON_desc_t *A, CHAMELEON_desc_t *L, int *IPIV, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zgesv_nopiv_Tile_Async(CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zgesvd_Tile_Async(CHAMELEON_enum jobu, CHAMELEON_enum jobvt, CHAMELEON_desc_t *A, double *S, CHAMELEON_desc_t *T, CHAMELEON_Complex64_t *U, int LDU, CHAMELEON_Complex64_t *VT, int LDVT, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-//int CHAMELEON_zgetrf_Tile_Async(CHAMELEON_desc_t *A, int *IPIV, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zgetrf_incpiv_Tile_Async(CHAMELEON_desc_t *A, CHAMELEON_desc_t *L, int *IPIV, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zgetrf_nopiv_Tile_Async(CHAMELEON_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-//int CHAMELEON_zgetri_Tile_Async(CHAMELEON_desc_t *A, int *IPIV, CHAMELEON_desc_t *W, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-//int CHAMELEON_zgetrs_Tile_Async(CHAMELEON_enum trans, CHAMELEON_desc_t *A, int *IPIV, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zgetrs_incpiv_Tile_Async(CHAMELEON_desc_t *A, CHAMELEON_desc_t *L, int *IPIV, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zgetrs_nopiv_Tile_Async(CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zhemm_Tile_Async(CHAMELEON_enum side, CHAMELEON_enum uplo, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, CHAMELEON_Complex64_t beta, CHAMELEON_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zherk_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_enum trans, double alpha, CHAMELEON_desc_t *A, double beta, CHAMELEON_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zher2k_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_enum trans, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, double beta, CHAMELEON_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-//int CHAMELEON_zheev_Tile_Async(CHAMELEON_enum jobz, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, double *W, CHAMELEON_desc_t *T, CHAMELEON_Complex64_t *Q, int LDQ, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zheevd_Tile_Async(CHAMELEON_enum jobz, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, double *W, CHAMELEON_desc_t *T, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-//int CHAMELEON_zhegv_Tile_Async( CHAMELEON_enum itype, CHAMELEON_enum jobz, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, double *W, CHAMELEON_desc_t *T, CHAMELEON_desc_t *Q, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-//int CHAMELEON_zhegvd_Tile_Async(CHAMELEON_enum itype, CHAMELEON_enum jobz, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, double *W, CHAMELEON_desc_t *T, CHAMELEON_desc_t *Q, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-//int CHAMELEON_zhegst_Tile_Async(CHAMELEON_enum itype, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zhetrd_Tile_Async(CHAMELEON_enum jobz, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, double *D, double *E, CHAMELEON_desc_t *T, CHAMELEON_Complex64_t *Q, int LDQ, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zlacpy_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zlange_Tile_Async(CHAMELEON_enum norm, CHAMELEON_desc_t *A, double *value, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zlanhe_Tile_Async(CHAMELEON_enum norm, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, double *value, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zlansy_Tile_Async(CHAMELEON_enum norm, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, double *value, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zlantr_Tile_Async(CHAMELEON_enum norm, CHAMELEON_enum uplo, CHAMELEON_enum diag, CHAMELEON_desc_t *A, double *value, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zlascal_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zlaset_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t beta, CHAMELEON_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-//int CHAMELEON_zlaswp_Tile_Async(CHAMELEON_desc_t *A, int K1, int K2, int *IPIV, int INCX, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-//int CHAMELEON_zlaswpc_Tile_Async(CHAMELEON_desc_t *A, int K1, int K2, int *IPIV, int INCX, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zlauum_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zplghe_Tile_Async(double bump, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, unsigned long long int seed, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request );
-int CHAMELEON_zplgsy_Tile_Async(CHAMELEON_Complex64_t bump, CHAMELEON_enum uplo, CHAMELEON_desc_t *A, unsigned long long int seed, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request );
-int CHAMELEON_zplrnt_Tile_Async(CHAMELEON_desc_t *A, unsigned long long int seed, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request );
-int CHAMELEON_zposv_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zpotrf_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zsytrf_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zpotri_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zpotrimm_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, CHAMELEON_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zpotrs_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zsysv_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zsytrs_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zsymm_Tile_Async(CHAMELEON_enum side, CHAMELEON_enum uplo, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, CHAMELEON_Complex64_t beta, CHAMELEON_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zsyrk_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_enum trans, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_Complex64_t beta, CHAMELEON_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zsyr2k_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_enum trans, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, CHAMELEON_Complex64_t beta, CHAMELEON_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_ztpgqrt_Tile_Async( int L, CHAMELEON_desc_t *V1, CHAMELEON_desc_t *T1, CHAMELEON_desc_t *V2, CHAMELEON_desc_t *T2, CHAMELEON_desc_t *Q1, CHAMELEON_desc_t *Q2, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request );
-int CHAMELEON_ztpqrt_Tile_Async( int L, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, CHAMELEON_desc_t *T, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request );
-int CHAMELEON_ztradd_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_enum trans, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_Complex64_t beta, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_ztrmm_Tile_Async(CHAMELEON_enum side, CHAMELEON_enum uplo, CHAMELEON_enum transA, CHAMELEON_enum diag, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_ztrsm_Tile_Async(CHAMELEON_enum side, CHAMELEON_enum uplo, CHAMELEON_enum transA, CHAMELEON_enum diag, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_ztrsmpl_Tile_Async(CHAMELEON_desc_t *A, CHAMELEON_desc_t *L, int *IPIV, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_ztrsmrv_Tile_Async(CHAMELEON_enum side, CHAMELEON_enum uplo, CHAMELEON_enum transA, CHAMELEON_enum diag, CHAMELEON_Complex64_t alpha, CHAMELEON_desc_t *A, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_ztrtri_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_enum diag, CHAMELEON_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zunglq_Tile_Async(CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zungqr_Tile_Async(CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zunmlq_Tile_Async(CHAMELEON_enum side, CHAMELEON_enum trans, CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zunmqr_Tile_Async(CHAMELEON_enum side, CHAMELEON_enum trans, CHAMELEON_desc_t *A, CHAMELEON_desc_t *T, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zgeadd_Tile_Async(cham_trans_t trans, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAMELEON_Complex64_t beta, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+//int CHAMELEON_zgebrd_Tile_Async(CHAM_desc_t *A, double *D, double *E, CHAM_desc_t *T, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+//int CHAMELEON_zgecon_Tile_Async(cham_normtype_t norm, CHAM_desc_t *A, double anorm, double *rcond, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+//int CHAMELEON_zpocon_Tile_Async(cham_uplo_t uplo, CHAM_desc_t *A, double anorm, double *rcond, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zgelqf_Tile_Async(CHAM_desc_t *A, CHAM_desc_t *T, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zgelqs_Tile_Async(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zgels_Tile_Async(cham_trans_t trans, CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zgemm_Tile_Async(cham_trans_t transA, cham_trans_t transB, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B, CHAMELEON_Complex64_t beta, CHAM_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zgeqrf_Tile_Async(CHAM_desc_t *A, CHAM_desc_t *T, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zgeqrs_Tile_Async(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+//int CHAMELEON_zgesv_Tile_Async(CHAM_desc_t *A, int *IPIV, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zgesv_incpiv_Tile_Async(CHAM_desc_t *A, CHAM_desc_t *L, int *IPIV, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zgesv_nopiv_Tile_Async(CHAM_desc_t *A, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zgesvd_Tile_Async(cham_job_t jobu, cham_job_t jobvt, CHAM_desc_t *A, double *S, CHAM_desc_t *T, CHAMELEON_Complex64_t *U, int LDU, CHAMELEON_Complex64_t *VT, int LDVT, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+//int CHAMELEON_zgetrf_Tile_Async(CHAM_desc_t *A, int *IPIV, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zgetrf_incpiv_Tile_Async(CHAM_desc_t *A, CHAM_desc_t *L, int *IPIV, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zgetrf_nopiv_Tile_Async(CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+//int CHAMELEON_zgetri_Tile_Async(CHAM_desc_t *A, int *IPIV, CHAM_desc_t *W, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+//int CHAMELEON_zgetrs_Tile_Async(cham_trans_t trans, CHAM_desc_t *A, int *IPIV, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zgetrs_incpiv_Tile_Async(CHAM_desc_t *A, CHAM_desc_t *L, int *IPIV, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zgetrs_nopiv_Tile_Async(CHAM_desc_t *A, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zhemm_Tile_Async(cham_side_t side, cham_uplo_t uplo, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B, CHAMELEON_Complex64_t beta, CHAM_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zherk_Tile_Async(cham_uplo_t uplo, cham_trans_t trans, double alpha, CHAM_desc_t *A, double beta, CHAM_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zher2k_Tile_Async(cham_uplo_t uplo, cham_trans_t trans, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B, double beta, CHAM_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+//int CHAMELEON_zheev_Tile_Async(cham_job_t jobz, cham_uplo_t uplo, CHAM_desc_t *A, double *W, CHAM_desc_t *T, CHAMELEON_Complex64_t *Q, int LDQ, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zheevd_Tile_Async(cham_job_t jobz, cham_uplo_t uplo, CHAM_desc_t *A, double *W, CHAM_desc_t *T, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+//int CHAMELEON_zhegv_Tile_Async( CHAMELEON_enum itype, cham_job_t jobz, cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, double *W, CHAM_desc_t *T, CHAM_desc_t *Q, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+//int CHAMELEON_zhegvd_Tile_Async(CHAMELEON_enum itype, cham_job_t jobz, cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, double *W, CHAM_desc_t *T, CHAM_desc_t *Q, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+//int CHAMELEON_zhegst_Tile_Async(CHAMELEON_enum itype, cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zhetrd_Tile_Async(cham_job_t jobz, cham_uplo_t uplo, CHAM_desc_t *A, double *D, double *E, CHAM_desc_t *T, CHAMELEON_Complex64_t *Q, int LDQ, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zlacpy_Tile_Async(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zlange_Tile_Async(cham_normtype_t norm, CHAM_desc_t *A, double *value, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zlanhe_Tile_Async(cham_normtype_t norm, cham_uplo_t uplo, CHAM_desc_t *A, double *value, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zlansy_Tile_Async(cham_normtype_t norm, cham_uplo_t uplo, CHAM_desc_t *A, double *value, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zlantr_Tile_Async(cham_normtype_t norm, cham_uplo_t uplo, cham_diag_t diag, CHAM_desc_t *A, double *value, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zlascal_Tile_Async(cham_uplo_t uplo, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zlaset_Tile_Async(cham_uplo_t uplo, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t beta, CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+//int CHAMELEON_zlaswp_Tile_Async(CHAM_desc_t *A, int K1, int K2, int *IPIV, int INCX, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+//int CHAMELEON_zlaswpc_Tile_Async(CHAM_desc_t *A, int K1, int K2, int *IPIV, int INCX, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zlauum_Tile_Async(cham_uplo_t uplo, CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zplghe_Tile_Async(double bump, cham_uplo_t uplo, CHAM_desc_t *A, unsigned long long int seed, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request );
+int CHAMELEON_zplgsy_Tile_Async(CHAMELEON_Complex64_t bump, cham_uplo_t uplo, CHAM_desc_t *A, unsigned long long int seed, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request );
+int CHAMELEON_zplrnt_Tile_Async(CHAM_desc_t *A, unsigned long long int seed, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request );
+int CHAMELEON_zposv_Tile_Async(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zpotrf_Tile_Async(cham_uplo_t uplo, CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zsytrf_Tile_Async(cham_uplo_t uplo, CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zpotri_Tile_Async(cham_uplo_t uplo, CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zpotrimm_Tile_Async(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zpotrs_Tile_Async(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zsysv_Tile_Async(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zsytrs_Tile_Async(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zsymm_Tile_Async(cham_side_t side, cham_uplo_t uplo, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B, CHAMELEON_Complex64_t beta, CHAM_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zsyrk_Tile_Async(cham_uplo_t uplo, cham_trans_t trans, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAMELEON_Complex64_t beta, CHAM_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zsyr2k_Tile_Async(cham_uplo_t uplo, cham_trans_t trans, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B, CHAMELEON_Complex64_t beta, CHAM_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_ztpgqrt_Tile_Async( int L, CHAM_desc_t *V1, CHAM_desc_t *T1, CHAM_desc_t *V2, CHAM_desc_t *T2, CHAM_desc_t *Q1, CHAM_desc_t *Q2, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request );
+int CHAMELEON_ztpqrt_Tile_Async( int L, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *T, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request );
+int CHAMELEON_ztradd_Tile_Async(cham_uplo_t uplo, cham_trans_t trans, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAMELEON_Complex64_t beta, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_ztrmm_Tile_Async(cham_side_t side, cham_uplo_t uplo, cham_trans_t transA, cham_diag_t diag, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_ztrsm_Tile_Async(cham_side_t side, cham_uplo_t uplo, cham_trans_t transA, cham_diag_t diag, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_ztrsmpl_Tile_Async(CHAM_desc_t *A, CHAM_desc_t *L, int *IPIV, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_ztrsmrv_Tile_Async(cham_side_t side, cham_uplo_t uplo, cham_trans_t transA, cham_diag_t diag, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_ztrtri_Tile_Async(cham_uplo_t uplo, cham_diag_t diag, CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zunglq_Tile_Async(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zungqr_Tile_Async(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zunmlq_Tile_Async(cham_side_t side, cham_trans_t trans, CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zunmqr_Tile_Async(cham_side_t side, cham_trans_t trans, CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
 
 //int CHAMELEON_zgecfi_Async(int m, int n, CHAMELEON_Complex64_t *A, CHAMELEON_enum f_in, int imb, int inb, CHAMELEON_enum f_out, int omb, int onb, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
 //int CHAMELEON_zgetmi_Async(int m, int n, CHAMELEON_Complex64_t *A, CHAMELEON_enum f_in, int mb,  int inb, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
@@ -251,85 +251,85 @@ int CHAMELEON_zunmqr_Tile_Async(CHAMELEON_enum side, CHAMELEON_enum trans, CHAME
 /**
  *  Declarations of math functions (LAPACK layout) - alphabetical order
  */
-int CHAMELEON_zgels_param(const libhqr_tree_t *qrtree, CHAMELEON_enum trans, int M, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descTS, CHAMELEON_desc_t *descTT, CHAMELEON_Complex64_t *B, int LDB);
-int CHAMELEON_zgelqf_param(const libhqr_tree_t *qrtree, int M, int N, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descTS, CHAMELEON_desc_t *descTT);
-int CHAMELEON_zgelqs_param(const libhqr_tree_t *qrtree, int M, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descTS, CHAMELEON_desc_t *descTT, CHAMELEON_Complex64_t *B, int LDB);
-int CHAMELEON_zgeqrf_param(const libhqr_tree_t *qrtree, int M, int N, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descTS, CHAMELEON_desc_t *descTT);
-int CHAMELEON_zgeqrs_param(const libhqr_tree_t *qrtree, int M, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descTS, CHAMELEON_desc_t *TT, CHAMELEON_Complex64_t *B, int LDB);
-int CHAMELEON_zunglq_param(const libhqr_tree_t *qrtree, int M, int N, int K, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descTS, CHAMELEON_desc_t *TT, CHAMELEON_Complex64_t *B, int LDB);
-int CHAMELEON_zungqr_param(const libhqr_tree_t *qrtree, int M, int N, int K, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descTS, CHAMELEON_desc_t *descTT, CHAMELEON_Complex64_t *B, int LDB);
-int CHAMELEON_zunmlq_param(const libhqr_tree_t *qrtree, CHAMELEON_enum side, CHAMELEON_enum trans, int M, int N, int K, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descT, CHAMELEON_desc_t *TT, CHAMELEON_Complex64_t *B, int LDB);
-int CHAMELEON_zunmlq_param(const libhqr_tree_t *qrtree, CHAMELEON_enum side, CHAMELEON_enum trans, int M, int N, int K, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descT, CHAMELEON_desc_t *TT, CHAMELEON_Complex64_t *B, int LDB);
-int CHAMELEON_zunmqr_param(const libhqr_tree_t *qrtree, CHAMELEON_enum side, CHAMELEON_enum trans, int M, int N, int K, CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_desc_t *descTS, CHAMELEON_desc_t *TT, CHAMELEON_Complex64_t *B, int LDB);
+int CHAMELEON_zgels_param(const libhqr_tree_t *qrtree, cham_trans_t trans, int M, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAM_desc_t *descTS, CHAM_desc_t *descTT, CHAMELEON_Complex64_t *B, int LDB);
+int CHAMELEON_zgelqf_param(const libhqr_tree_t *qrtree, int M, int N, CHAMELEON_Complex64_t *A, int LDA, CHAM_desc_t *descTS, CHAM_desc_t *descTT);
+int CHAMELEON_zgelqs_param(const libhqr_tree_t *qrtree, int M, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAM_desc_t *descTS, CHAM_desc_t *descTT, CHAMELEON_Complex64_t *B, int LDB);
+int CHAMELEON_zgeqrf_param(const libhqr_tree_t *qrtree, int M, int N, CHAMELEON_Complex64_t *A, int LDA, CHAM_desc_t *descTS, CHAM_desc_t *descTT);
+int CHAMELEON_zgeqrs_param(const libhqr_tree_t *qrtree, int M, int N, int NRHS, CHAMELEON_Complex64_t *A, int LDA, CHAM_desc_t *descTS, CHAM_desc_t *TT, CHAMELEON_Complex64_t *B, int LDB);
+int CHAMELEON_zunglq_param(const libhqr_tree_t *qrtree, int M, int N, int K, CHAMELEON_Complex64_t *A, int LDA, CHAM_desc_t *descTS, CHAM_desc_t *TT, CHAMELEON_Complex64_t *B, int LDB);
+int CHAMELEON_zungqr_param(const libhqr_tree_t *qrtree, int M, int N, int K, CHAMELEON_Complex64_t *A, int LDA, CHAM_desc_t *descTS, CHAM_desc_t *descTT, CHAMELEON_Complex64_t *B, int LDB);
+int CHAMELEON_zunmlq_param(const libhqr_tree_t *qrtree, cham_side_t side, cham_trans_t trans, int M, int N, int K, CHAMELEON_Complex64_t *A, int LDA, CHAM_desc_t *descT, CHAM_desc_t *TT, CHAMELEON_Complex64_t *B, int LDB);
+int CHAMELEON_zunmlq_param(const libhqr_tree_t *qrtree, cham_side_t side, cham_trans_t trans, int M, int N, int K, CHAMELEON_Complex64_t *A, int LDA, CHAM_desc_t *descT, CHAM_desc_t *TT, CHAMELEON_Complex64_t *B, int LDB);
+int CHAMELEON_zunmqr_param(const libhqr_tree_t *qrtree, cham_side_t side, cham_trans_t trans, int M, int N, int K, CHAMELEON_Complex64_t *A, int LDA, CHAM_desc_t *descTS, CHAM_desc_t *TT, CHAMELEON_Complex64_t *B, int LDB);
 /**
  *  Declarations of math functions (tile layout) - alphabetical order
  */
-int CHAMELEON_zgels_param_Tile(const libhqr_tree_t *qrtree, CHAMELEON_enum trans, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, CHAMELEON_desc_t *B);
-int CHAMELEON_zgelqf_param_Tile(const libhqr_tree_t *qrtree, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT);
-int CHAMELEON_zgelqs_param_Tile(const libhqr_tree_t *qrtree, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, CHAMELEON_desc_t *B);
-int CHAMELEON_zgeqrf_param_Tile(const libhqr_tree_t *qrtree, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT);
-int CHAMELEON_zgeqrs_param_Tile(const libhqr_tree_t *qrtree, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, CHAMELEON_desc_t *B);
-int CHAMELEON_zunglq_param_Tile(const libhqr_tree_t *qrtree, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, CHAMELEON_desc_t *B);
-int CHAMELEON_zungqr_param_Tile(const libhqr_tree_t *qrtree, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, CHAMELEON_desc_t *B);
-int CHAMELEON_zungqr_param_Tile(const libhqr_tree_t *qrtree, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, CHAMELEON_desc_t *B);
-int CHAMELEON_zunmlq_param_Tile(const libhqr_tree_t *qrtree, CHAMELEON_enum side, CHAMELEON_enum trans, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, CHAMELEON_desc_t *B);
-int CHAMELEON_zunmqr_param_Tile(const libhqr_tree_t *qrtree, CHAMELEON_enum side, CHAMELEON_enum trans, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, CHAMELEON_desc_t *B);
+int CHAMELEON_zgels_param_Tile(const libhqr_tree_t *qrtree, cham_trans_t trans, CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *B);
+int CHAMELEON_zgelqf_param_Tile(const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT);
+int CHAMELEON_zgelqs_param_Tile(const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *B);
+int CHAMELEON_zgeqrf_param_Tile(const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT);
+int CHAMELEON_zgeqrs_param_Tile(const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *B);
+int CHAMELEON_zunglq_param_Tile(const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *B);
+int CHAMELEON_zungqr_param_Tile(const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *B);
+int CHAMELEON_zungqr_param_Tile(const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *B);
+int CHAMELEON_zunmlq_param_Tile(const libhqr_tree_t *qrtree, cham_side_t side, cham_trans_t trans, CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *B);
+int CHAMELEON_zunmqr_param_Tile(const libhqr_tree_t *qrtree, cham_side_t side, cham_trans_t trans, CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *B);
 /**
  *  Declarations of math functions (tile layout, asynchronous execution) - alphabetical order
  */
-int CHAMELEON_zgels_param_Tile_Async(const libhqr_tree_t *qrtree, CHAMELEON_enum trans, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zgelqf_param_Tile_Async(const libhqr_tree_t *qrtree, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zgelqs_param_Tile_Async(const libhqr_tree_t *qrtree, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zgeqrf_param_Tile_Async(const libhqr_tree_t *qrtree, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zgeqrs_param_Tile_Async(const libhqr_tree_t *qrtree, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zunglq_param_Tile_Async(const libhqr_tree_t *qrtree, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zungqr_param_Tile_Async(const libhqr_tree_t *qrtree, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zunmlq_param_Tile_Async(const libhqr_tree_t *qrtree, CHAMELEON_enum side, CHAMELEON_enum trans, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-int CHAMELEON_zunmqr_param_Tile_Async(const libhqr_tree_t *qrtree, CHAMELEON_enum side, CHAMELEON_enum trans, CHAMELEON_desc_t *A, CHAMELEON_desc_t *TS, CHAMELEON_desc_t *TT, CHAMELEON_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zgels_param_Tile_Async(const libhqr_tree_t *qrtree, cham_trans_t trans, CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zgelqf_param_Tile_Async(const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zgelqs_param_Tile_Async(const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zgeqrf_param_Tile_Async(const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zgeqrs_param_Tile_Async(const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zunglq_param_Tile_Async(const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zungqr_param_Tile_Async(const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zunmlq_param_Tile_Async(const libhqr_tree_t *qrtree, cham_side_t side, cham_trans_t trans, CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+int CHAMELEON_zunmqr_param_Tile_Async(const libhqr_tree_t *qrtree, cham_side_t side, cham_trans_t trans, CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
 
 /**
  *  Declarations of workspace allocation functions (tile layout) - alphabetical order
  */
-int CHAMELEON_Alloc_Workspace_zgesv_incpiv(        int N, CHAMELEON_desc_t **descL, int **IPIV, int p, int q);
-int CHAMELEON_Alloc_Workspace_zgetrf_incpiv(int M, int N, CHAMELEON_desc_t **descL, int **IPIV, int p, int q);
+int CHAMELEON_Alloc_Workspace_zgesv_incpiv(        int N, CHAM_desc_t **descL, int **IPIV, int p, int q);
+int CHAMELEON_Alloc_Workspace_zgetrf_incpiv(int M, int N, CHAM_desc_t **descL, int **IPIV, int p, int q);
 
-int CHAMELEON_Alloc_Workspace_zgebrd(int M, int N, CHAMELEON_desc_t **descT, int p, int q);
-int CHAMELEON_Alloc_Workspace_zgeev( int N,        CHAMELEON_desc_t **descT, int p, int q);
-int CHAMELEON_Alloc_Workspace_zgehrd(int N,        CHAMELEON_desc_t **descT, int p, int q);
-int CHAMELEON_Alloc_Workspace_zgelqf(int M, int N, CHAMELEON_desc_t **T, int p, int q);
-int CHAMELEON_Alloc_Workspace_zgels( int M, int N, CHAMELEON_desc_t **T, int p, int q);
-int CHAMELEON_Alloc_Workspace_zgeqrf(int M, int N, CHAMELEON_desc_t **T, int p, int q);
-int CHAMELEON_Alloc_Workspace_zgesvd(int M, int N, CHAMELEON_desc_t **descT, int p, int q);
-int CHAMELEON_Alloc_Workspace_zheev( int M, int N, CHAMELEON_desc_t **descT, int p, int q);
-int CHAMELEON_Alloc_Workspace_zheevd( int M, int N, CHAMELEON_desc_t **descT, int p, int q);
-int CHAMELEON_Alloc_Workspace_zhegv( int M, int N, CHAMELEON_desc_t **descT, int p, int q);
-int CHAMELEON_Alloc_Workspace_zhegvd( int M, int N, CHAMELEON_desc_t **descT, int p, int q);
-int CHAMELEON_Alloc_Workspace_zhetrd(int M, int N, CHAMELEON_desc_t **descT, int p, int q);
+int CHAMELEON_Alloc_Workspace_zgebrd(int M, int N, CHAM_desc_t **descT, int p, int q);
+int CHAMELEON_Alloc_Workspace_zgeev( int N,        CHAM_desc_t **descT, int p, int q);
+int CHAMELEON_Alloc_Workspace_zgehrd(int N,        CHAM_desc_t **descT, int p, int q);
+int CHAMELEON_Alloc_Workspace_zgelqf(int M, int N, CHAM_desc_t **T, int p, int q);
+int CHAMELEON_Alloc_Workspace_zgels( int M, int N, CHAM_desc_t **T, int p, int q);
+int CHAMELEON_Alloc_Workspace_zgeqrf(int M, int N, CHAM_desc_t **T, int p, int q);
+int CHAMELEON_Alloc_Workspace_zgesvd(int M, int N, CHAM_desc_t **descT, int p, int q);
+int CHAMELEON_Alloc_Workspace_zheev( int M, int N, CHAM_desc_t **descT, int p, int q);
+int CHAMELEON_Alloc_Workspace_zheevd( int M, int N, CHAM_desc_t **descT, int p, int q);
+int CHAMELEON_Alloc_Workspace_zhegv( int M, int N, CHAM_desc_t **descT, int p, int q);
+int CHAMELEON_Alloc_Workspace_zhegvd( int M, int N, CHAM_desc_t **descT, int p, int q);
+int CHAMELEON_Alloc_Workspace_zhetrd(int M, int N, CHAM_desc_t **descT, int p, int q);
 
 /**
  *  Declarations of workspace allocation functions (tile layout, asynchronous execution) - alphabetical order
  */
-int CHAMELEON_Alloc_Workspace_zgetri_Tile_Async(CHAMELEON_desc_t *A, CHAMELEON_desc_t *W);
+int CHAMELEON_Alloc_Workspace_zgetri_Tile_Async(CHAM_desc_t *A, CHAM_desc_t *W);
 
 /* Warning: Those functions are deprecated */
-int CHAMELEON_Alloc_Workspace_zgelqf_Tile(int M, int N, CHAMELEON_desc_t **descT, int p, int q);
-int CHAMELEON_Alloc_Workspace_zgels_Tile( int M, int N, CHAMELEON_desc_t **descT, int p, int q);
-int CHAMELEON_Alloc_Workspace_zgeqrf_Tile(int M, int N, CHAMELEON_desc_t **descT, int p, int q);
-int CHAMELEON_Alloc_Workspace_zgesv_incpiv_Tile (int N, CHAMELEON_desc_t **descL, int **IPIV, int p, int q);
-int CHAMELEON_Alloc_Workspace_zgetrf_incpiv_Tile(int N, CHAMELEON_desc_t **descL, int **IPIV, int p, int q);
+int CHAMELEON_Alloc_Workspace_zgelqf_Tile(int M, int N, CHAM_desc_t **descT, int p, int q);
+int CHAMELEON_Alloc_Workspace_zgels_Tile( int M, int N, CHAM_desc_t **descT, int p, int q);
+int CHAMELEON_Alloc_Workspace_zgeqrf_Tile(int M, int N, CHAM_desc_t **descT, int p, int q);
+int CHAMELEON_Alloc_Workspace_zgesv_incpiv_Tile (int N, CHAM_desc_t **descL, int **IPIV, int p, int q);
+int CHAMELEON_Alloc_Workspace_zgetrf_incpiv_Tile(int N, CHAM_desc_t **descL, int **IPIV, int p, int q);
 
 /**
  *  Auxiliary function prototypes
  */
-int CHAMELEON_zLapack_to_Tile(CHAMELEON_Complex64_t *Af77, int LDA, CHAMELEON_desc_t *A);
-int CHAMELEON_zTile_to_Lapack(CHAMELEON_desc_t *A, CHAMELEON_Complex64_t *Af77, int LDA);
+int CHAMELEON_zLapack_to_Tile(CHAMELEON_Complex64_t *Af77, int LDA, CHAM_desc_t *A);
+int CHAMELEON_zTile_to_Lapack(CHAM_desc_t *A, CHAMELEON_Complex64_t *Af77, int LDA);
 
 /**
  *  User Builder function prototypes
  */
-int CHAMELEON_zbuild(CHAMELEON_enum uplo, int M, int N, CHAMELEON_Complex64_t *A, int LDA, void *user_data, void* user_build_callback);
-int CHAMELEON_zbuild_Tile(CHAMELEON_enum uplo,  CHAMELEON_desc_t *A, void *user_data, void* user_build_callback );
-int CHAMELEON_zbuild_Tile_Async(CHAMELEON_enum uplo, CHAMELEON_desc_t *A, void *user_data, void* user_build_callback, RUNTIME_sequence_t *sequence, RUNTIME_request_t  *request);
+int CHAMELEON_zbuild(cham_uplo_t uplo, int M, int N, CHAMELEON_Complex64_t *A, int LDA, void *user_data, void* user_build_callback);
+int CHAMELEON_zbuild_Tile(cham_uplo_t uplo,  CHAM_desc_t *A, void *user_data, void* user_build_callback );
+int CHAMELEON_zbuild_Tile_Async(cham_uplo_t uplo, CHAM_desc_t *A, void *user_data, void* user_build_callback, RUNTIME_sequence_t *sequence, RUNTIME_request_t  *request);
 
 END_C_DECLS
 
diff --git a/include/chameleon/chameleon_zc.h b/include/chameleon/chameleon_zc.h
index ba0051c4b..46e1d19a0 100644
--- a/include/chameleon/chameleon_zc.h
+++ b/include/chameleon/chameleon_zc.h
@@ -21,8 +21,8 @@
  * @precisions mixed zc -> ds
  *
  */
-#ifndef _CHAMELEON_ZC_H_
-#define _CHAMELEON_ZC_H_
+#ifndef _chameleon_zc_h_
+#define _chameleon_zc_h_
 
 BEGIN_C_DECLS
 
diff --git a/include/chameleon/runtime.h b/include/chameleon/runtime.h
index 982e29be0..dbf224d47 100644
--- a/include/chameleon/runtime.h
+++ b/include/chameleon/runtime.h
@@ -17,11 +17,11 @@
  * @date 2011-06-01
  *
  */
-#ifndef _runtime_h_
-#define _runtime_h_
+#ifndef _chameleon_runtime_h_
+#define _chameleon_runtime_h_
 
-#include "chameleon/chameleon_config.h"
-#include "chameleon/chameleon_constants.h"
+#include "chameleon/config.h"
+#include "chameleon/constants.h"
 #include "chameleon/runtime_struct.h"
 
 BEGIN_C_DECLS
@@ -49,7 +49,7 @@ typedef enum runtime_id_e {
  *            The runtime context to initialize for the runtime.
  */
 void
-RUNTIME_context_create( RUNTIME_context_t *ctxt );
+RUNTIME_context_create( CHAM_context_t *ctxt );
 
 /**
  * @brief Destroy the specific options in the context after this last one has
@@ -60,27 +60,27 @@ RUNTIME_context_create( RUNTIME_context_t *ctxt );
  *            be destroyed
  */
 void
-RUNTIME_context_destroy( RUNTIME_context_t *ctxt );
+RUNTIME_context_destroy( CHAM_context_t *ctxt );
 
 /**
  * @brief Enable a global option of the runtime.
- * @warning Should be called only by MORSE_Enable()
+ * @warning Should be called only by RUNTIME_Enable()
  *
  * @param[in] option
- *            @arg MORSE_PROFILING_MODE: start the profiling mode of the runtime.
+ *            @arg CHAMELEON_PROFILING_MODE: start the profiling mode of the runtime.
  */
 void
-RUNTIME_enable( MORSE_enum option );
+RUNTIME_enable( cham_option_t option );
 
 /**
  * @brief Disable a global option of the runtime.
- * @warning Should be called only by MORSE_Disable()
+ * @warning Should be called only by RUNTIME_Disable()
  *
  * @param[in] option
- *            @arg MORSE_PROFILING_MODE: stop the profiling mode of the runtime.
+ *            @arg CHAMELEON_PROFILING_MODE: stop the profiling mode of the runtime.
  */
 void
-RUNTIME_disable( MORSE_enum option );
+RUNTIME_disable( cham_option_t option );
 
 /**
  * @}
@@ -118,7 +118,7 @@ RUNTIME_disable( MORSE_enum option );
  *
  */
 int
-RUNTIME_init( RUNTIME_context_t *ctxt,
+RUNTIME_init( CHAM_context_t *ctxt,
               int ncpus,
               int ncudas,
               int nthreads_per_worker );
@@ -130,7 +130,7 @@ RUNTIME_init( RUNTIME_context_t *ctxt,
  *            The runtime context for which the runtime system must be shut down.
  */
 void
-RUNTIME_finalize( RUNTIME_context_t *ctxt );
+RUNTIME_finalize( CHAM_context_t *ctxt );
 
 /**
  * @brief Suspend the processing of new tasks submitted to the runtime system.
@@ -139,7 +139,7 @@ RUNTIME_finalize( RUNTIME_context_t *ctxt );
  *            The runtime context for which the suspension must be made.
  */
 void
-RUNTIME_pause( RUNTIME_context_t *ctxt );
+RUNTIME_pause( CHAM_context_t *ctxt );
 
 /**
  * @brief Resume the processing of new tasks submitted to the runtime system.
@@ -148,7 +148,7 @@ RUNTIME_pause( RUNTIME_context_t *ctxt );
  *            The runtime context for which the execution must be resumed.
  */
 void
-RUNTIME_resume( RUNTIME_context_t *ctxt );
+RUNTIME_resume( CHAM_context_t *ctxt );
 
 /**
  * @brief Wait for completion of all tasks submitted to the runtime.
@@ -157,7 +157,7 @@ RUNTIME_resume( RUNTIME_context_t *ctxt );
  *            The runtime context in which the task completion is performed.
  */
 void
-RUNTIME_barrier( RUNTIME_context_t *ctxt );
+RUNTIME_barrier( CHAM_context_t *ctxt );
 
 /**
  * @brief Show the progress of the computations when enabled.
@@ -166,7 +166,7 @@ RUNTIME_barrier( RUNTIME_context_t *ctxt );
  *            The runtime context for which the context needs to be printed.
  */
 void
-RUNTIME_progress( RUNTIME_context_t *ctxt );
+RUNTIME_progress( CHAM_context_t *ctxt );
 
 /**
  * @brief Get the rank of the current worker for the runtime.
@@ -177,7 +177,7 @@ RUNTIME_progress( RUNTIME_context_t *ctxt );
  * @retval The rank of the current thread in the runtime.
  */
 int
-RUNTIME_thread_rank( RUNTIME_context_t *ctxt );
+RUNTIME_thread_rank( CHAM_context_t *ctxt );
 
 /**
  * @brief Get the number of CPU workers of the runtime.
@@ -188,7 +188,7 @@ RUNTIME_thread_rank( RUNTIME_context_t *ctxt );
  * @retval The number of threads currently used by the runtime.
  */
 int
-RUNTIME_thread_size( RUNTIME_context_t *ctxt );
+RUNTIME_thread_size( CHAM_context_t *ctxt );
 
 /**
  * @brief Get the MPI comm rank of the current process related to the runtime.
@@ -199,7 +199,7 @@ RUNTIME_thread_size( RUNTIME_context_t *ctxt );
  * @retval The rank of the process in the communicator known by the runtime.
  */
 int
-RUNTIME_comm_rank( RUNTIME_context_t *ctxt );
+RUNTIME_comm_rank( CHAM_context_t *ctxt );
 
 /**
  * @brief Get the MPI comm size related to the runtime.
@@ -210,7 +210,7 @@ RUNTIME_comm_rank( RUNTIME_context_t *ctxt );
  * @retval The size of the communicator known by the runtime.
  */
 int
-RUNTIME_comm_size( RUNTIME_context_t *ctxt );
+RUNTIME_comm_size( CHAM_context_t *ctxt );
 
 /**
  * @brief Set the data tags bounds based on runtime tags limit.
@@ -247,11 +247,11 @@ RUNTIME_comm_set_tag_sizes( int user_tag_width,
  *            On entry the allocated runtime sequence structure, and on exit
  *            the scheduler specifics for the sequence have been initialized.
  *
- * @retval MORSE_SUCCESS on success.
- * @retval MORSE_ERR_OUT_OF_RESOURCES, if the sequence could not be created.
+ * @retval CHAMELEON_SUCCESS on success.
+ * @retval CHAMELEON_ERR_OUT_OF_RESOURCES, if the sequence could not be created.
  */
 int
-RUNTIME_sequence_create( RUNTIME_context_t  *ctxt,
+RUNTIME_sequence_create( CHAM_context_t     *ctxt,
                          RUNTIME_sequence_t *sequence );
 
 /**
@@ -265,10 +265,10 @@ RUNTIME_sequence_create( RUNTIME_context_t  *ctxt,
  *            On exit, the scheduler specifics of the sequence have been
  *            destroyed.
  *
- * @retval MORSE_SUCCESS on success.
+ * @retval CHAMELEON_SUCCESS on success.
  */
 int
-RUNTIME_sequence_destroy( RUNTIME_context_t  *ctxt,
+RUNTIME_sequence_destroy( CHAM_context_t     *ctxt,
                           RUNTIME_sequence_t *sequence);
 
 /**
@@ -280,11 +280,11 @@ RUNTIME_sequence_destroy( RUNTIME_context_t  *ctxt,
  * @param[in] sequence
  *            The sequence that gathers a set of tasks to complete.
  *
- * @retval MORSE_SUCCESS on success.
+ * @retval CHAMELEON_SUCCESS on success.
  * @retval The algorithm return code on failure.
  */
 int
-RUNTIME_sequence_wait( RUNTIME_context_t  *ctxt,
+RUNTIME_sequence_wait( CHAM_context_t     *ctxt,
                        RUNTIME_sequence_t *sequence );
 
 /**
@@ -307,10 +307,10 @@ RUNTIME_sequence_wait( RUNTIME_context_t  *ctxt,
  *            above.
  */
 void
-RUNTIME_sequence_flush( RUNTIME_context_t  *ctxt,
+RUNTIME_sequence_flush( CHAM_context_t     *ctxt,
                         RUNTIME_sequence_t *sequence,
                         RUNTIME_request_t  *request,
-                        int               status );
+                        int                 status );
 
 /**
  * @}
@@ -355,7 +355,7 @@ RUNTIME_free( void *ptr, size_t size );
  *            The descriptor to initialize.
  */
 void
-RUNTIME_desc_create( MORSE_desc_t *desc );
+RUNTIME_desc_create( CHAM_desc_t *desc );
 
 /**
  * @brief Finalize runtime specific data structure of a given descriptor.
@@ -364,7 +364,7 @@ RUNTIME_desc_create( MORSE_desc_t *desc );
  *            The descriptor to finalize.
  */
 void
-RUNTIME_desc_destroy( MORSE_desc_t *desc );
+RUNTIME_desc_destroy( CHAM_desc_t *desc );
 
 /**
  * @brief Acquire in main memory an up-to-date copy of the data described by the
@@ -377,10 +377,10 @@ RUNTIME_desc_destroy( MORSE_desc_t *desc );
  * @param[in] desc
  *            The descriptor to acquire.
  *
- * @retval MORSE_SUCCESS on success
+ * @retval CHAMELEON_SUCCESS on success
  */
 int
-RUNTIME_desc_acquire( const MORSE_desc_t *desc );
+RUNTIME_desc_acquire( const CHAM_desc_t *desc );
 
 /**
  * @brief Release the data described by the descriptor to be used by the runtime
@@ -392,10 +392,10 @@ RUNTIME_desc_acquire( const MORSE_desc_t *desc );
  * @param[in] desc
  *            The descriptor to release.
  *
- * @retval MORSE_SUCCESS on success
+ * @retval CHAMELEON_SUCCESS on success
  */
 int
-RUNTIME_desc_release( const MORSE_desc_t *desc );
+RUNTIME_desc_release( const CHAM_desc_t *desc );
 
 /**
  * @brief Flush all pieces of data from a descriptor.
@@ -412,7 +412,7 @@ RUNTIME_desc_release( const MORSE_desc_t *desc );
  *            The sequence in which the data is used.
  */
 void
-RUNTIME_desc_flush( const MORSE_desc_t     *desc,
+RUNTIME_desc_flush( const CHAM_desc_t     *desc,
                     const RUNTIME_sequence_t *sequence );
 
 /**
@@ -446,7 +446,7 @@ RUNTIME_flush( );
  */
 void
 RUNTIME_data_flush( const RUNTIME_sequence_t *sequence,
-                    const MORSE_desc_t *A, int Am, int An );
+                    const CHAM_desc_t *A, int Am, int An );
 
 /**
  * @brief Migrate a single piece of data.
@@ -472,11 +472,11 @@ RUNTIME_data_flush( const RUNTIME_sequence_t *sequence,
 #if defined(CHAMELEON_USE_MIGRATE)
 void
 RUNTIME_data_migrate( const RUNTIME_sequence_t *sequence,
-                      const MORSE_desc_t *A, int Am, int An, int new_rank );
+                      const CHAM_desc_t *A, int Am, int An, int new_rank );
 #else
 static inline void
 RUNTIME_data_migrate( const RUNTIME_sequence_t *sequence,
-                      const MORSE_desc_t *A, int Am, int An, int new_rank ) {
+                      const CHAM_desc_t *A, int Am, int An, int new_rank ) {
     (void)sequence; (void)A; (void)Am; (void)An; (void)new_rank;
 }
 #endif
@@ -497,7 +497,7 @@ RUNTIME_data_migrate( const RUNTIME_sequence_t *sequence,
  * @retval The runtime handler address of the piece of data.
  */
 void *
-RUNTIME_data_getaddr( const MORSE_desc_t *A, int Am, int An );
+RUNTIME_data_getaddr( const CHAM_desc_t *A, int Am, int An );
 
 /**
  * @}
@@ -524,7 +524,7 @@ RUNTIME_data_getaddr( const MORSE_desc_t *A, int Am, int An );
  */
 void
 RUNTIME_options_init( RUNTIME_option_t   *options,
-                      RUNTIME_context_t  *context,
+                      CHAM_context_t  *context,
                       RUNTIME_sequence_t *sequence,
                       RUNTIME_request_t  *request );
 
@@ -541,7 +541,7 @@ RUNTIME_options_init( RUNTIME_option_t   *options,
  */
 void
 RUNTIME_options_finalize( RUNTIME_option_t  *options,
-                          RUNTIME_context_t *context );
+                          CHAM_context_t *context );
 
 /**
  * @brief Declare and initialize the workspaces for the given options structure
@@ -586,20 +586,20 @@ void RUNTIME_dlocality_allrestore ();
 void RUNTIME_slocality_allrestore ();
 
 void RUNTIME_zlocality_allrestrict(uint32_t);
-void RUNTIME_zlocality_onerestrict(MORSE_kernel_t, uint32_t);
-void RUNTIME_zlocality_onerestore (MORSE_kernel_t);
+void RUNTIME_zlocality_onerestrict(cham_tasktype_t, uint32_t);
+void RUNTIME_zlocality_onerestore (cham_tasktype_t);
 
 void RUNTIME_clocality_allrestrict(uint32_t);
-void RUNTIME_clocality_onerestrict(MORSE_kernel_t, uint32_t);
-void RUNTIME_clocality_onerestore (MORSE_kernel_t);
+void RUNTIME_clocality_onerestrict(cham_tasktype_t, uint32_t);
+void RUNTIME_clocality_onerestore (cham_tasktype_t);
 
 void RUNTIME_dlocality_allrestrict(uint32_t);
-void RUNTIME_dlocality_onerestrict(MORSE_kernel_t, uint32_t);
-void RUNTIME_dlocality_onerestore (MORSE_kernel_t);
+void RUNTIME_dlocality_onerestrict(cham_tasktype_t, uint32_t);
+void RUNTIME_dlocality_onerestore (cham_tasktype_t);
 
 void RUNTIME_slocality_allrestrict(uint32_t);
-void RUNTIME_slocality_onerestrict(MORSE_kernel_t, uint32_t);
-void RUNTIME_slocality_onerestore (MORSE_kernel_t);
+void RUNTIME_slocality_onerestrict(cham_tasktype_t, uint32_t);
+void RUNTIME_slocality_onerestore (cham_tasktype_t);
 
 /**
  * @}
@@ -611,8 +611,8 @@ void   RUNTIME_schedprofile_display ();
 void   RUNTIME_kernelprofile_display();
 double RUNTIME_get_time();
 
-void  RUNTIME_iteration_push     (RUNTIME_context_t*, unsigned long iteration);
-void  RUNTIME_iteration_pop      (RUNTIME_context_t*);
+void  RUNTIME_iteration_push     (CHAM_context_t*, unsigned long iteration);
+void  RUNTIME_iteration_pop      (CHAM_context_t*);
 
 void RUNTIME_start_profiling();
 void RUNTIME_stop_profiling();
@@ -621,13 +621,13 @@ void RUNTIME_start_stats();
 void RUNTIME_stop_stats();
 
 void RUNTIME_zdisplay_allprofile ();
-void RUNTIME_zdisplay_oneprofile (MORSE_kernel_t);
+void RUNTIME_zdisplay_oneprofile (cham_tasktype_t);
 void RUNTIME_cdisplay_allprofile ();
-void RUNTIME_cdisplay_oneprofile (MORSE_kernel_t);
+void RUNTIME_cdisplay_oneprofile (cham_tasktype_t);
 void RUNTIME_ddisplay_allprofile ();
-void RUNTIME_ddisplay_oneprofile (MORSE_kernel_t);
+void RUNTIME_ddisplay_oneprofile (cham_tasktype_t);
 void RUNTIME_sdisplay_allprofile ();
-void RUNTIME_sdisplay_oneprofile (MORSE_kernel_t);
+void RUNTIME_sdisplay_oneprofile (cham_tasktype_t);
 
 /**
  * @}
@@ -635,4 +635,4 @@ void RUNTIME_sdisplay_oneprofile (MORSE_kernel_t);
 
 END_C_DECLS
 
-#endif /* _runtime_h_ */
+#endif /* _chameleon_runtime_h_ */
-- 
GitLab