diff --git a/control/descriptor.c b/control/descriptor.c index de4bd65c032d661372453d319e9659a58bb1faab..ad2d53f2859da764e7156e9872f5898f985214a3 100644 --- a/control/descriptor.c +++ b/control/descriptor.c @@ -68,6 +68,27 @@ int chameleon_desc_mat_free( CHAM_desc_t *desc ) return CHAMELEON_SUCCESS; } +/** + * Internal function to return MPI rank of element A(m,n) with m,n = block indices + */ +int chameleon_getrankof_2d( const CHAM_desc_t *A, int m, int n ) +{ + int mm = m + A->i / A->mb; + int nn = n + A->j / A->nb; + return (mm % A->p) * A->q + (nn % A->q); +} + +/** + * Internal function to return MPI rank of element DIAG(m,0) with m,n = block indices + */ +int chameleon_getrankof_2d_diag( const CHAM_desc_t *A, int m, int n ) +{ + int mm = m + A->i / A->mb; + assert( m == n ); + return (mm % A->p) * A->q + (mm % A->q); +} + + /** ****************************************************************************** * diff --git a/control/descriptor.h b/control/descriptor.h index 2be4cafe9c59f7a13042b54e6a99bf0b265bd00c..6eff677110b0e4269a5366cc7ffcf24269050547 100644 --- a/control/descriptor.h +++ b/control/descriptor.h @@ -44,8 +44,8 @@ inline static int chameleon_getblkldd_ccrb(const CHAM_desc_t *A, int m); /** * Data distributions */ -inline static int chameleon_getrankof_2d(const CHAM_desc_t *desc, int m, int n); -inline static int chameleon_getrankof_2d_diag(const CHAM_desc_t *desc, int m, int n); +int chameleon_getrankof_2d(const CHAM_desc_t *desc, int m, int n); +int chameleon_getrankof_2d_diag(const CHAM_desc_t *desc, int m, int n); int chameleon_desc_init ( CHAM_desc_t *desc, void *mat, cham_flttype_t dtyp, int mb, int nb, int bsiz, @@ -175,27 +175,6 @@ inline static int chameleon_getblkldd_cm(const CHAM_desc_t *A, int m) { return A->llm; } -/** - * Internal function to return MPI rank of element A(m,n) with m,n = block indices - */ -inline static int chameleon_getrankof_2d(const CHAM_desc_t *A, int m, int n) -{ - int mm = m + A->i / A->mb; - int nn = n + A->j / A->nb; - return (mm % A->p) * A->q + (nn % A->q); -} - -/** - * Internal function to return MPI rank of element DIAG(m,0) with m,n = block indices - */ -inline static int chameleon_getrankof_2d_diag(const CHAM_desc_t *A, int m, int n) -{ - int mm = m + A->i / A->mb; - assert( m == n ); - return (mm % A->p) * A->q + (mm % A->q); -} - - /** * Detect if the tile is local or not */