diff --git a/compute/zgeadd.c b/compute/zgeadd.c
index c98f82c73b2d4e6a95886677af0f9e8214dc13ec..6b2c6aa5ac19c401d046ef9ab9c50be92fdf57ec 100644
--- a/compute/zgeadd.c
+++ b/compute/zgeadd.c
@@ -105,7 +105,7 @@ int CHAMELEON_zgeadd( cham_trans_t trans, int M, int N,
     }
 
     /* Check input arguments */
-    if ((trans < ChamNoTrans) || (trans > ChamConjTrans)) {
+    if ( !isValidTrans( trans ) ) {
         chameleon_error("CHAMELEON_zgeadd", "illegal value of trans");
         return -1;
     }
@@ -317,7 +317,7 @@ int CHAMELEON_zgeadd_Tile_Async( cham_trans_t trans,
         return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
-    if ((trans < ChamNoTrans) || (trans > ChamConjTrans)) {
+    if ( !isValidTrans( trans ) ) {
         chameleon_error("CHAMELEON_zgeadd_Tile_Async", "illegal value of trans");
         return chameleon_request_fail(sequence, request, -1);
     }
diff --git a/compute/zgemm.c b/compute/zgemm.c
index 6de4045679e8b636e61cc2d0d229eff334f95ad3..8fc4e8f8931d77e6c0a41e887eadb05156c979f4 100644
--- a/compute/zgemm.c
+++ b/compute/zgemm.c
@@ -146,11 +146,11 @@ int CHAMELEON_zgemm( cham_trans_t transA, cham_trans_t transB, int M, int N, int
     }
 
     /* Check input arguments */
-    if ((transA < ChamNoTrans) || (transA > ChamConjTrans)) {
+    if ( !isValidTrans( transA ) ) {
         chameleon_error("CHAMELEON_zgemm", "illegal value of transA");
         return -1;
     }
-    if ((transB < ChamNoTrans) || (transB > ChamConjTrans)) {
+    if ( !isValidTrans( transB ) ) {
         chameleon_error("CHAMELEON_zgemm", "illegal value of transB");
         return -2;
     }
@@ -394,11 +394,11 @@ int CHAMELEON_zgemm_Tile_Async( cham_trans_t transA, cham_trans_t transB,
         return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
-    if ((transA < ChamNoTrans) || (transA > ChamConjTrans)) {
+    if ( !isValidTrans( transA ) ) {
         chameleon_error("CHAMELEON_zgemm_Tile_Async", "illegal value of transA");
         return chameleon_request_fail(sequence, request, -1);
     }
-    if ((transB < ChamNoTrans) || (transB > ChamConjTrans)) {
+    if ( !isValidTrans( transB ) ) {
         chameleon_error("CHAMELEON_zgemm_Tile_Async", "illegal value of transB");
         return chameleon_request_fail(sequence, request, -2);
     }
diff --git a/compute/ztradd.c b/compute/ztradd.c
index 02cd629f32cc02e4d5899b4b5ca80923ad470a98..0b1700a15b454c5af7834706983eb3a89f753d3f 100644
--- a/compute/ztradd.c
+++ b/compute/ztradd.c
@@ -115,7 +115,7 @@ int CHAMELEON_ztradd( cham_uplo_t uplo, cham_trans_t trans, int M, int N,
         chameleon_error("CHAMELEON_ztradd", "illegal value of uplo");
         return -1;
     }
-    if ((trans < ChamNoTrans) || (trans > ChamConjTrans)) {
+    if ( !isValidTrans( trans ) ) {
         chameleon_error("CHAMELEON_ztradd", "illegal value of trans");
         return -2;
     }
@@ -333,7 +333,7 @@ int CHAMELEON_ztradd_Tile_Async( cham_uplo_t uplo, cham_trans_t trans,
         return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
-    if ((trans < ChamNoTrans) || (trans > ChamConjTrans)) {
+    if ( !isValidTrans( trans ) ) {
         chameleon_error("CHAMELEON_ztradd_Tile_Async", "illegal value of trans");
         return chameleon_request_fail(sequence, request, -1);
     }
diff --git a/compute/ztrmm.c b/compute/ztrmm.c
index 8d1b203fbb617456526536ecb64fe51ce27e24ce..09399a3b51e38f1443ef6832d3198ffea2033279 100644
--- a/compute/ztrmm.c
+++ b/compute/ztrmm.c
@@ -42,7 +42,7 @@
  *          = ChamUpper: Upper triangle of A is stored;
  *          = ChamLower: Lower triangle of A is stored.
  *
- * @param[in] transA
+ * @param[in] trans
  *          Specifies whether the matrix A is transposed, not transposed or conjugate transposed:
  *          = ChamNoTrans:   A is transposed;
  *          = ChamTrans:     A is not transposed;
@@ -97,7 +97,7 @@
  *
  */
 int CHAMELEON_ztrmm( cham_side_t side, cham_uplo_t uplo,
-                 cham_trans_t transA, cham_diag_t diag,
+                 cham_trans_t trans, cham_diag_t diag,
                  int N, int NRHS, CHAMELEON_Complex64_t alpha,
                  CHAMELEON_Complex64_t *A, int LDA,
                  CHAMELEON_Complex64_t *B, int LDB )
@@ -131,13 +131,8 @@ int CHAMELEON_ztrmm( cham_side_t side, cham_uplo_t uplo,
         chameleon_error("CHAMELEON_ztrmm", "illegal value of uplo");
         return -2;
     }
-    if ((transA != ChamNoTrans)   &&
-#if defined(PRECISION_z) || defined(PRECISION_c)
-        (transA != ChamConjTrans) &&
-#endif
-        (transA != ChamTrans) )
-    {
-        chameleon_error("CHAMELEON_ztrmm", "illegal value of transA");
+    if ( !isValidTrans( trans ) ) {
+        chameleon_error("CHAMELEON_ztrmm", "illegal value of trans");
         return -3;
     }
     if ((diag != ChamUnit) && (diag != ChamNonUnit)) {
@@ -183,7 +178,7 @@ int CHAMELEON_ztrmm( cham_side_t side, cham_uplo_t uplo,
                      B, NB, NB, LDB, NRHS, N, NRHS, sequence, &request );
 
     /* Call the tile interface */
-    CHAMELEON_ztrmm_Tile_Async(  side, uplo, transA, diag, alpha, &descAt, &descBt, sequence, &request );
+    CHAMELEON_ztrmm_Tile_Async(  side, uplo, trans, diag, alpha, &descAt, &descBt, sequence, &request );
 
     /* Submit the matrix conversion back */
     chameleon_ztile2lap( chamctxt, &descAl, &descAt,
@@ -224,7 +219,7 @@ int CHAMELEON_ztrmm( cham_side_t side, cham_uplo_t uplo,
  *          = ChamUpper: Upper triangle of A is stored;
  *          = ChamLower: Lower triangle of A is stored.
  *
- * @param[in] transA
+ * @param[in] trans
  *          Specifies whether the matrix A is transposed, not transposed or conjugate transposed:
  *          = ChamNoTrans:   A is transposed;
  *          = ChamTrans:     A is not transposed;
@@ -264,7 +259,7 @@ int CHAMELEON_ztrmm( cham_side_t side, cham_uplo_t uplo,
  *
  */
 int CHAMELEON_ztrmm_Tile( cham_side_t side, cham_uplo_t uplo,
-                      cham_trans_t transA, cham_diag_t diag,
+                      cham_trans_t trans, cham_diag_t diag,
                       CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B )
 {
     CHAM_context_t *chamctxt;
@@ -279,7 +274,7 @@ int CHAMELEON_ztrmm_Tile( cham_side_t side, cham_uplo_t uplo,
     }
     chameleon_sequence_create( chamctxt, &sequence );
 
-    CHAMELEON_ztrmm_Tile_Async(side, uplo, transA, diag, alpha, A, B, sequence, &request );
+    CHAMELEON_ztrmm_Tile_Async(side, uplo, trans, diag, alpha, A, B, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
     CHAMELEON_Desc_Flush( B, sequence );
@@ -319,7 +314,7 @@ int CHAMELEON_ztrmm_Tile( cham_side_t side, cham_uplo_t uplo,
  *
  */
 int CHAMELEON_ztrmm_Tile_Async( cham_side_t side, cham_uplo_t uplo,
-                            cham_trans_t transA, cham_diag_t diag,
+                            cham_trans_t trans, cham_diag_t diag,
                             CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B,
                             RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
@@ -368,8 +363,8 @@ int CHAMELEON_ztrmm_Tile_Async( cham_side_t side, cham_uplo_t uplo,
         chameleon_error("CHAMELEON_ztrmm_Tile", "illegal value of uplo");
         return chameleon_request_fail(sequence, request, -2);
     }
-    if ((transA < ChamNoTrans) || (transA > ChamConjTrans)) {
-        chameleon_error("CHAMELEON_ztrmm_Tile", "illegal value of transA");
+    if ( !isValidTrans( trans ) ) {
+        chameleon_error("CHAMELEON_ztrmm_Tile", "illegal value of trans");
         return chameleon_request_fail(sequence, request, -3);
     }
     if ((diag != ChamUnit) && (diag != ChamNonUnit)) {
@@ -378,7 +373,7 @@ int CHAMELEON_ztrmm_Tile_Async( cham_side_t side, cham_uplo_t uplo,
     }
 
     /* Quick return */
-    chameleon_pztrmm( side, uplo, transA, diag, alpha, A, B, sequence, request );
+    chameleon_pztrmm( side, uplo, trans, diag, alpha, A, B, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/ztrsm.c b/compute/ztrsm.c
index a0989cef662d2f2e7f0ea86fc4e5aac2a13bccb4..cb9edbf88b217c26e038c0d10f0062a7f1208369 100644
--- a/compute/ztrsm.c
+++ b/compute/ztrsm.c
@@ -43,7 +43,7 @@
  *          = ChamUpper: Upper triangle of A is stored;
  *          = ChamLower: Lower triangle of A is stored.
  *
- * @param[in] transA
+ * @param[in] trans
  *          Specifies whether the matrix A is transposed, not transposed or conjugate transposed:
  *          = ChamNoTrans:   A is transposed;
  *          = ChamTrans:     A is not transposed;
@@ -98,7 +98,7 @@
  *
  */
 int CHAMELEON_ztrsm( cham_side_t side, cham_uplo_t uplo,
-                 cham_trans_t transA, cham_diag_t diag,
+                 cham_trans_t trans, cham_diag_t diag,
                  int N, int NRHS, CHAMELEON_Complex64_t alpha,
                  CHAMELEON_Complex64_t *A, int LDA,
                  CHAMELEON_Complex64_t *B, int LDB )
@@ -132,8 +132,8 @@ int CHAMELEON_ztrsm( cham_side_t side, cham_uplo_t uplo,
         chameleon_error("CHAMELEON_ztrsm", "illegal value of uplo");
         return -2;
     }
-    if (((transA < ChamNoTrans) || (transA > ChamConjTrans)) ) {
-        chameleon_error("CHAMELEON_ztrsm", "illegal value of transA");
+    if ( !isValidTrans( trans ) ) {
+        chameleon_error("CHAMELEON_ztrsm", "illegal value of trans");
         return -3;
     }
     if ((diag != ChamUnit) && (diag != ChamNonUnit)) {
@@ -179,7 +179,7 @@ int CHAMELEON_ztrsm( cham_side_t side, cham_uplo_t uplo,
                      B, NB, NB, LDB, NRHS, N,  NRHS, sequence, &request );
 
     /* Call the tile interface */
-    CHAMELEON_ztrsm_Tile_Async(  side, uplo, transA, diag, alpha, &descAt, &descBt, sequence, &request );
+    CHAMELEON_ztrsm_Tile_Async(  side, uplo, trans, diag, alpha, &descAt, &descBt, sequence, &request );
 
     /* Submit the matrix conversion back */
     chameleon_ztile2lap( chamctxt, &descAl, &descAt,
@@ -220,7 +220,7 @@ int CHAMELEON_ztrsm( cham_side_t side, cham_uplo_t uplo,
  *          = ChamUpper: Upper triangle of A is stored;
  *          = ChamLower: Lower triangle of A is stored.
  *
- * @param[in] transA
+ * @param[in] trans
  *          Specifies whether the matrix A is transposed, not transposed or conjugate transposed:
  *          = ChamNoTrans:   A is transposed;
  *          = ChamTrans:     A is not transposed;
@@ -260,7 +260,7 @@ int CHAMELEON_ztrsm( cham_side_t side, cham_uplo_t uplo,
  *
  */
 int CHAMELEON_ztrsm_Tile( cham_side_t side, cham_uplo_t uplo,
-                      cham_trans_t transA, cham_diag_t diag,
+                      cham_trans_t trans, cham_diag_t diag,
                       CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B )
 {
     CHAM_context_t *chamctxt;
@@ -275,7 +275,7 @@ int CHAMELEON_ztrsm_Tile( cham_side_t side, cham_uplo_t uplo,
     }
     chameleon_sequence_create( chamctxt, &sequence );
 
-    CHAMELEON_ztrsm_Tile_Async(side, uplo, transA, diag, alpha, A, B, sequence, &request );
+    CHAMELEON_ztrsm_Tile_Async(side, uplo, trans, diag, alpha, A, B, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
     CHAMELEON_Desc_Flush( B, sequence );
@@ -315,7 +315,7 @@ int CHAMELEON_ztrsm_Tile( cham_side_t side, cham_uplo_t uplo,
  *
  */
 int CHAMELEON_ztrsm_Tile_Async( cham_side_t side, cham_uplo_t uplo,
-                            cham_trans_t transA, cham_diag_t diag,
+                            cham_trans_t trans, cham_diag_t diag,
                             CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B,
                             RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
@@ -364,8 +364,8 @@ int CHAMELEON_ztrsm_Tile_Async( cham_side_t side, cham_uplo_t uplo,
         chameleon_error("CHAMELEON_ztrsm_Tile", "illegal value of uplo");
         return chameleon_request_fail(sequence, request, -2);
     }
-    if ((transA < ChamNoTrans) || (transA > ChamConjTrans)) {
-        chameleon_error("CHAMELEON_ztrsm_Tile", "illegal value of transA");
+    if ( !isValidTrans( trans ) ) {
+        chameleon_error("CHAMELEON_ztrsm_Tile", "illegal value of trans");
         return chameleon_request_fail(sequence, request, -3);
     }
     if ((diag != ChamUnit) && (diag != ChamNonUnit)) {
@@ -374,7 +374,7 @@ int CHAMELEON_ztrsm_Tile_Async( cham_side_t side, cham_uplo_t uplo,
     }
 
     /* Quick return */
-    chameleon_pztrsm( side, uplo, transA, diag, alpha, A, B, sequence, request );
+    chameleon_pztrsm( side, uplo, trans, diag, alpha, A, B, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/coreblas/compute/core_zgeadd.c b/coreblas/compute/core_zgeadd.c
index 4882a79cf2152eca6eaa05430f77c0f98261ba4c..a7def06bbe7094ef4a84816062e3035890c6cc9c 100644
--- a/coreblas/compute/core_zgeadd.c
+++ b/coreblas/compute/core_zgeadd.c
@@ -88,7 +88,7 @@ int CORE_zgeadd(cham_trans_t trans, int M, int N,
 {
     int i, j;
 
-    if ((trans < ChamNoTrans) || (trans > ChamConjTrans))
+    if ( !isValidTrans( trans ) )
     {
         coreblas_error(1, "illegal value of trans");
         return -1;
@@ -122,36 +122,33 @@ int CORE_zgeadd(cham_trans_t trans, int M, int N,
                              0, 0, 1., beta, M, N, B, LDB );
     }
 
-    switch( trans ) {
+    if( trans == ChamNoTrans ) {
+        for (j=0; j<N; j++) {
+            for(i=0; i<M; i++, B++, A++) {
+                *B += alpha * (*A);
+            }
+            A += LDA-M;
+            B += LDB-M;
+        }
+    }
 #if defined(PRECISION_z) || defined(PRECISION_c)
-    case ChamConjTrans:
+    else if ( trans == ChamConjTrans ) {
         for (j=0; j<N; j++, A++) {
             for(i=0; i<M; i++, B++) {
                 *B += alpha * conj(A[LDA*i]);
             }
             B += LDB-M;
         }
-        break;
+    }
 #endif /* defined(PRECISION_z) || defined(PRECISION_c) */
-
-    case ChamTrans:
+    else {
         for (j=0; j<N; j++, A++) {
             for(i=0; i<M; i++, B++) {
                 *B += alpha * A[LDA*i];
             }
             B += LDB-M;
         }
-        break;
-
-    case ChamNoTrans:
-    default:
-        for (j=0; j<N; j++) {
-            for(i=0; i<M; i++, B++, A++) {
-                *B += alpha * (*A);
-            }
-            A += LDA-M;
-            B += LDB-M;
-        }
     }
+
     return CHAMELEON_SUCCESS;
 }
diff --git a/coreblas/compute/core_zlatro.c b/coreblas/compute/core_zlatro.c
index a139fd5d6b5c996aebc5ad9018da3e154e3a21ff..eb276e3732470a8c9004153d314f109087aa8cd9 100644
--- a/coreblas/compute/core_zlatro.c
+++ b/coreblas/compute/core_zlatro.c
@@ -92,7 +92,7 @@ int CORE_zlatro(cham_uplo_t uplo, cham_trans_t trans,
         coreblas_error(1, "Illegal value of uplo");
         return -1;
     }
-    if ((trans < ChamNoTrans) || (trans > ChamConjTrans)) {
+    if ( !isValidTrans( trans ) ) {
         coreblas_error(2, "Illegal value of trans");
         return -2;
     }
diff --git a/coreblas/compute/core_zpemv.c b/coreblas/compute/core_zpemv.c
index 0144020a748f0ab3a2368fa819411a80aa6441b7..236139d238dc1fea0502b74c89c56534c2f8e040 100644
--- a/coreblas/compute/core_zpemv.c
+++ b/coreblas/compute/core_zpemv.c
@@ -138,7 +138,7 @@ int CORE_zpemv(cham_trans_t trans, cham_store_t storev,
 
 
     /* Check input arguments */
-    if ((trans < ChamNoTrans) || (trans > ChamConjTrans)) {
+    if ( !isValidTrans( trans ) ) {
         coreblas_error(1, "Illegal value of trans");
         return -1;
     }
diff --git a/coreblas/compute/core_ztradd.c b/coreblas/compute/core_ztradd.c
index 09af0f44081c1e626aba9e1dcbb44740c1b3e37f..f87388f4d29dede98695ce3f6cefe92e9db2a375 100644
--- a/coreblas/compute/core_ztradd.c
+++ b/coreblas/compute/core_ztradd.c
@@ -113,7 +113,7 @@ int CORE_ztradd(cham_uplo_t uplo, cham_trans_t trans, int M, int N,
         return -1;
     }
 
-    if ((trans < ChamNoTrans) || (trans > ChamConjTrans))
+    if ( !isValidTrans( trans ) )
     {
         coreblas_error(2, "illegal value of trans");
         return -2;
@@ -153,45 +153,50 @@ int CORE_ztradd(cham_uplo_t uplo, cham_trans_t trans, int M, int N,
      * ChamLower
      */
     if (uplo == ChamLower) {
-        switch( trans ) {
+        if( trans == ChamNoTrans ) {
+            for (j=0; j<minMN; j++) {
+                for(i=j; i<M; i++, B++, A++) {
+                    *B += alpha * (*A);
+                }
+                B += LDB-M+j+1;
+                A += LDA-M+j+1;
+            }
+        }
 #if defined(PRECISION_z) || defined(PRECISION_c)
-        case ChamConjTrans:
+        else if ( trans == ChamConjTrans ) {
             for (j=0; j<minMN; j++, A++) {
                 for(i=j; i<M; i++, B++) {
                     *B += alpha * conj(A[LDA*i]);
                 }
                 B += LDB-M+j+1;
             }
-            break;
+        }
 #endif /* defined(PRECISION_z) || defined(PRECISION_c) */
-
-        case ChamTrans:
+        else {
             for (j=0; j<minMN; j++, A++) {
                 for(i=j; i<M; i++, B++) {
                     *B += alpha * A[LDA*i];
                 }
                 B += LDB-M+j+1;
             }
-            break;
-
-        case ChamNoTrans:
-        default:
-            for (j=0; j<minMN; j++) {
-                for(i=j; i<M; i++, B++, A++) {
-                    *B += alpha * (*A);
-                }
-                B += LDB-M+j+1;
-                A += LDA-M+j+1;
-            }
         }
     }
     /**
      * ChamUpper
      */
     else {
-        switch( trans ) {
+        if ( trans == ChamNoTrans ) {
+            for (j=0; j<N; j++) {
+                int mm = chameleon_min( j+1, M );
+                for(i=0; i<mm; i++, B++, A++) {
+                    *B += alpha * (*A);
+                }
+                B += LDB-mm;
+                A += LDA-mm;
+            }
+        }
 #if defined(PRECISION_z) || defined(PRECISION_c)
-        case ChamConjTrans:
+        else if ( trans == ChamConjTrans ) {
             for (j=0; j<N; j++, A++) {
                 int mm = chameleon_min( j+1, M );
                 for(i=0; i<mm; i++, B++) {
@@ -199,10 +204,9 @@ int CORE_ztradd(cham_uplo_t uplo, cham_trans_t trans, int M, int N,
                 }
                 B += LDB-mm;
             }
-            break;
+        }
 #endif /* defined(PRECISION_z) || defined(PRECISION_c) */
-
-        case ChamTrans:
+        else {
             for (j=0; j<N; j++, A++) {
                 int mm = chameleon_min( j+1, M );
                 for(i=0; i<mm; i++, B++) {
@@ -210,18 +214,6 @@ int CORE_ztradd(cham_uplo_t uplo, cham_trans_t trans, int M, int N,
                 }
                 B += LDB-mm;
             }
-            break;
-
-        case ChamNoTrans:
-        default:
-            for (j=0; j<N; j++) {
-                int mm = chameleon_min( j+1, M );
-                for(i=0; i<mm; i++, B++, A++) {
-                    *B += alpha * (*A);
-                }
-                B += LDB-mm;
-                A += LDA-mm;
-            }
         }
     }
     return CHAMELEON_SUCCESS;
diff --git a/include/chameleon/constants.h b/include/chameleon/constants.h
index b58d4bcc6b393f40002d32a3122f099245b81ad6..f6c8b15e26264296538cc224c17781549760529f 100644
--- a/include/chameleon/constants.h
+++ b/include/chameleon/constants.h
@@ -63,6 +63,17 @@ typedef enum chameleon_trans_e {
     ChamConjTrans = 113  /**< Use conj(A^t) */
 } cham_trans_t;
 
+static inline int
+isValidTrans( cham_trans_t trans )
+{
+    if ( (trans >= ChamNoTrans) && (trans <= ChamConjTrans) ) {
+        return 1;
+    }
+    else {
+        return 0;
+    }
+}
+
 /**
  * @brief Upper/Lower part
  */
diff --git a/runtime/parsec/control/runtime_control.c b/runtime/parsec/control/runtime_control.c
index 4719ff7a2eb56e88418642b2d97e5e1d53559e0c..b69f7d8c8bcc8742ed1a5ca716590afe8a2e2778 100644
--- a/runtime/parsec/control/runtime_control.c
+++ b/runtime/parsec/control/runtime_control.c
@@ -144,7 +144,7 @@ int RUNTIME_comm_rank( CHAM_context_t *chamctxt )
  */
 int RUNTIME_comm_size( CHAM_context_t *chamctxt )
 {
-    int size = 0;
+    int size = 1;
 #if defined(CHAMELEON_USE_MPI)
     MPI_Comm_size(MPI_COMM_WORLD, &size);
 #endif