diff --git a/cmake_modules/local_subs.py b/cmake_modules/local_subs.py index 14b07b874208eb465c18c4912a387c7402da984f..8fec8ccde1c44496ba92cb681c3239b2481ec870 100644 --- a/cmake_modules/local_subs.py +++ b/cmake_modules/local_subs.py @@ -71,6 +71,7 @@ subs = { # ----- Chameleon Prefixes ('CHAMELEON_P', 'CHAMELEON_S', 'CHAMELEON_D', 'CHAMELEON_C', 'CHAMELEON_Z' ), + ('CHAMELEON_p', 'CHAMELEON_s', 'CHAMELEON_d', 'CHAMELEON_c', 'CHAMELEON_z' ), ('RUNTIME_P', 'RUNTIME_s', 'RUNTIME_d', 'RUNTIME_c', 'RUNTIME_z' ), ('chameleon_p', 'chameleon_s', 'chameleon_d', 'chameleon_c', 'chameleon_z' ), ('codelet_p', 'codelet_s', 'codelet_d', 'codelet_c', 'codelet_z' ), diff --git a/compute/ztile.c b/compute/ztile.c index 02af3dfb8e41ff40fa207662203be81491760e89..b4c3b536725994387c5e18676e054035b3cdfd83 100644 --- a/compute/ztile.c +++ b/compute/ztile.c @@ -26,7 +26,8 @@ * * @ingroup CHAMELEON_Complex64_t * - * CHAMELEON_zLapack_to_Tile - Conversion from LAPACK layout to tile layout. + * @brief Conversion of CHAMELEON_Complex64_t matrix from LAPACK layout to tile + * layout. Deprecated function, see CHAMELEON_zLap2Desc(). * ******************************************************************************* * @@ -37,25 +38,85 @@ * The leading dimension of the matrix Af77. * * @param[in,out] A - * Descriptor of the CHAMELEON matrix in tile layout. - * If CHAMELEON_TRANSLATION_MODE is set to ChamInPlace, - * A->mat is not used and set to Af77 when returns, else if - * CHAMELEON_TRANSLATION_MODE is set to ChamOutOfPlace, - * A->mat has to be allocated before. + * Descriptor of the CHAMELEON matrix. * ******************************************************************************* * * @retval CHAMELEON_SUCCESS successful exit * + */ +int CHAMELEON_zLapack_to_Tile( CHAMELEON_Complex64_t *Af77, int LDA, CHAM_desc_t *A ) +{ + return CHAMELEON_zLap2Desc( ChamUpperLower, Af77, LDA, A ); +} + +/** + ******************************************************************************** + * + * @ingroup CHAMELEON_Complex64_t + * + * @brief Conversion of CHAMELEON_Complex64_t matrix from tile layout to LAPACK + * layout. Deprecated function, see CHAMELEON_zDesc2Lap(). + * ******************************************************************************* * - * @sa CHAMELEON_zTile_to_Lapack - * @sa CHAMELEON_cLapack_to_Tile - * @sa CHAMELEON_dLapack_to_Tile - * @sa CHAMELEON_sLapack_to_Tile + * @param[in] A + * Descriptor of the CHAMELEON matrix. + * + * @param[in,out] Af77 + * LAPACK matrix. + * + * @param[in] LDA + * The leading dimension of the matrix Af77. + * + ******************************************************************************* + * + * @retval CHAMELEON_SUCCESS successful exit * */ -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 ) +{ + return CHAMELEON_zDesc2Lap( ChamUpperLower, A, Af77, LDA ); +} + +/** + ******************************************************************************** + * + * @ingroup CHAMELEON_Complex64_t + * + * @brief Conversion of a CHAMELEON_Complex64_t matrix from LAPACK layout to + * CHAM_desct_t. + * + ******************************************************************************* + * + * @param[in] uplo + * Specifies the shape of the matrix A: + * = ChamUpper: A is upper triangular; + * = ChamLower: A is lower triangular; + * = ChamUpperLower: A is general. + * + * @param[in] Af77 + * LAPACK matrix. + * + * @param[in] LDA + * The leading dimension of the matrix Af77. + * + * @param[in,out] A + * Descriptor of the CHAMELEON matrix. + * + ******************************************************************************* + * + * @retval CHAMELEON_SUCCESS successful exit + * + ******************************************************************************* + * + * @sa CHAMELEON_zDesc2Lap + * @sa CHAMELEON_cLap2Desc + * @sa CHAMELEON_dLap2Desc + * @sa CHAMELEON_sLap2Desc + * + */ +int CHAMELEON_zLap2Desc( cham_uplo_t uplo, CHAMELEON_Complex64_t *Af77, int LDA, CHAM_desc_t *A ) { CHAM_context_t *chamctxt; RUNTIME_sequence_t *sequence = NULL; @@ -87,7 +148,7 @@ int CHAMELEON_zLapack_to_Tile( CHAMELEON_Complex64_t *Af77, int LDA, CHAM_desc_t /* Start the computation */ chameleon_sequence_create( chamctxt, &sequence ); - chameleon_pzlacpy( ChamUpperLower, B, A, sequence, &request ); + chameleon_pzlacpy( uplo, B, A, sequence, &request ); CHAMELEON_Desc_Flush( B, sequence ); CHAMELEON_Desc_Flush( A, sequence ); @@ -107,19 +168,22 @@ int CHAMELEON_zLapack_to_Tile( CHAMELEON_Complex64_t *Af77, int LDA, CHAM_desc_t * * @ingroup CHAMELEON_Complex64_t * - * CHAMELEON_Tile_to_Lapack - Conversion from tile layout to LAPACK layout. + * @brief Conversion of CHAMELEON_Complex64_t matrix from LAPACK layout to tile + * layout. Deprecated function, see CHAMELEON_zDesc2Lap(). * ******************************************************************************* * + * @param[in] uplo + * Specifies the shape of the matrix A: + * = ChamUpper: A is upper triangular; + * = ChamLower: A is lower triangular; + * = ChamUpperLower: A is general. + * * @param[in] A - * Descriptor of the CHAMELEON matrix in tile layout. + * Descriptor of the CHAMELEON matrix. * * @param[in,out] Af77 * LAPACK matrix. - * If CHAMELEON_TRANSLATION_MODE is set to ChamInPlace, - * Af77 has to be A->mat, else if - * CHAMELEON_TRANSLATION_MODE is set to ChamOutOfPlace, - * Af77 has to be allocated before. * * @param[in] LDA * The leading dimension of the matrix Af77. @@ -130,13 +194,13 @@ int CHAMELEON_zLapack_to_Tile( CHAMELEON_Complex64_t *Af77, int LDA, CHAM_desc_t * ******************************************************************************* * - * @sa CHAMELEON_zLapack_to_Tile - * @sa CHAMELEON_cTile_to_Lapack - * @sa CHAMELEON_dTile_to_Lapack - * @sa CHAMELEON_sTile_to_Lapack + * @sa CHAMELEON_zLap2Desc + * @sa CHAMELEON_cDesc2Lap + * @sa CHAMELEON_dDesc2Lap + * @sa CHAMELEON_sDesc2Lap * */ -int CHAMELEON_zTile_to_Lapack( CHAM_desc_t *A, CHAMELEON_Complex64_t *Af77, int LDA ) +int CHAMELEON_zDesc2Lap( cham_uplo_t uplo, CHAM_desc_t *A, CHAMELEON_Complex64_t *Af77, int LDA ) { CHAM_context_t *chamctxt; RUNTIME_sequence_t *sequence = NULL; @@ -167,7 +231,7 @@ int CHAMELEON_zTile_to_Lapack( CHAM_desc_t *A, CHAMELEON_Complex64_t *Af77, int /* Start the computation */ chameleon_sequence_create( chamctxt, &sequence ); - chameleon_pzlacpy( ChamUpperLower, A, B, sequence, &request ); + chameleon_pzlacpy( uplo, A, B, sequence, &request ); CHAMELEON_Desc_Flush( A, sequence ); CHAMELEON_Desc_Flush( B, sequence ); diff --git a/control/chameleon_f77.c b/control/chameleon_f77.c index 7de2fe850557b483ab887d19cd95b951d572b34e..b3e09b48c25b514581a07b75b55a90bd2f41d0f7 100644 --- a/control/chameleon_f77.c +++ b/control/chameleon_f77.c @@ -97,10 +97,10 @@ extern "C" { * FORTRAN API - conversion from LAPACK F77 matrix layout to tile layout */ void CHAMELEON_LAPACK_TO_TILE(intptr_t *Af77, int *LDA, intptr_t *A, int *INFO) - { *INFO = CHAMELEON_Lapack_to_Tile( (void *)Af77, *LDA, (CHAM_desc_t *)(*A)); } + { *INFO = CHAMELEON_Lap2Desc( ChamUpperLower, (void *)Af77, *LDA, (CHAM_desc_t *)(*A) ); } void CHAMELEON_TILE_TO_LAPACK(intptr_t *A, intptr_t *Af77, int *LDA, int *INFO) - { *INFO = CHAMELEON_Tile_to_Lapack((CHAM_desc_t *)(*A), (void *)Af77, *LDA); } + { *INFO = CHAMELEON_Desc2Lap( ChamUpperLower, (CHAM_desc_t *)(*A), (void *)Af77, *LDA ); } #ifdef __cplusplus } diff --git a/control/chameleon_zf77.c b/control/chameleon_zf77.c index 6162950adc36ea39555323e6eab694c8e15b640b..08f079d7f7dc5fc7b603c63083e279293aaffad2 100644 --- a/control/chameleon_zf77.c +++ b/control/chameleon_zf77.c @@ -281,10 +281,10 @@ * FORTRAN API - math functions (simple interface) */ void CHAMELEON_ZLAPACK_TO_TILE(CHAMELEON_Complex64_t *Af77, int *LDA, CHAM_desc_t *A, int *info) -{ *info = CHAMELEON_zLapack_to_Tile(Af77, *LDA, A); } +{ *info = CHAMELEON_zLap2Desc( ChamUpperLower, Af77, *LDA, A ); } void CHAMELEON_ZTILE_TO_LAPACK(CHAM_desc_t *A, CHAMELEON_Complex64_t *Af77, int *LDA, int *info) -{ *info = CHAMELEON_zTile_to_Lapack(A, Af77, *LDA); } +{ *info = CHAMELEON_zDesc2Lap( ChamUpperLower, A, Af77, *LDA ); } //void CHAMELEON_ZGEBRD(int *M, int *N, CHAMELEON_Complex64_t *A, int *LDA, double *D, double *E, CHAM_desc_t **descT, int *info) //{ *info = CHAMELEON_zgebrd(*M, *N, A, *LDA, D, E, *descT); } diff --git a/control/tile.c b/control/tile.c index c32b0355a38018b3e519aac491530084a514573e..3d9257ef4a69d2256af3ce3c42cab336cdddbb5f 100644 --- a/control/tile.c +++ b/control/tile.c @@ -29,7 +29,8 @@ * * @ingroup Tile * - * CHAMELEON_Lapack_to_Tile - Conversion from LAPACK layout to tile layout. + * @brief Conversion from LAPACK layout to tile layout + * Deprecated function see CHAMELEON_Lap2Desc(). * ****************************************************************************** * @@ -39,7 +40,7 @@ * @param[in] LDA * The leading dimension of the matrix Af77. * - * @param[out] A + * @param[in,out] A * Descriptor of the CHAMELEON matrix in tile layout. * ****************************************************************************** @@ -47,21 +48,84 @@ * @retval CHAMELEON_SUCCESS successful exit * */ -int CHAMELEON_Lapack_to_Tile(void *Af77, int LDA, CHAM_desc_t *A) +int +CHAMELEON_Lapack_to_Tile( void *Af77, int LDA, CHAM_desc_t *A ) +{ + return CHAMELEON_Lap2Desc( ChamUpperLower, Af77, LDA, A ); +} + +/** + * + * @ingroup Tile + * + * @brief Conversion from tile layout to LAPACK layout. + * Deprecated function, see CHAMELEON_Desc2Lap(). + * + ****************************************************************************** + * + * @param[in] A + * Descriptor of the CHAMELEON matrix in tile layout. + * + * @param[in,out] Af77 + * LAPACK matrix (only needed on proc 0). + * + * @param[in] LDA + * The leading dimension of the matrix Af77. + * + ****************************************************************************** + * + * @retval CHAMELEON_SUCCESS successful exit + * + */ +int +CHAMELEON_Tile_to_Lapack( CHAM_desc_t *A, void *Af77, int LDA ) +{ + return CHAMELEON_Desc2Lap( ChamUpperLower, A, Af77, LDA ); +} + +/** + * + * @ingroup Tile + * + * @brief Conversion from LAPACK layout to CHAM_desc_t. + * + ****************************************************************************** + * + * @param[in] uplo + * Specifies the shape of the matrix A: + * = ChamUpper: A is upper triangular, the lower part is not referenced; + * = ChamLower: A is lower triangular, the upper part is not referenced; + * = ChamUpperLower: A is general. + * + * @param[in] Af77 + * LAPACK matrix. + * + * @param[in] LDA + * The leading dimension of the matrix Af77. + * + * @param[in,out] A + * Descriptor of the CHAMELEON matrix initialized with data from Af77. + * + ****************************************************************************** + * + * @retval CHAMELEON_SUCCESS successful exit + * + */ +int CHAMELEON_Lap2Desc( cham_uplo_t uplo, void *Af77, int LDA, CHAM_desc_t *A ) { switch( A->dtyp ) { case ChamComplexDouble: - return CHAMELEON_zLapack_to_Tile( (CHAMELEON_Complex64_t *)Af77, LDA, A ); + return CHAMELEON_zLap2Desc( uplo, (CHAMELEON_Complex64_t *)Af77, LDA, A ); break; case ChamComplexFloat: - return CHAMELEON_cLapack_to_Tile( (CHAMELEON_Complex32_t *)Af77, LDA, A ); + return CHAMELEON_cLap2Desc( uplo, (CHAMELEON_Complex32_t *)Af77, LDA, A ); break; case ChamRealFloat: - return CHAMELEON_sLapack_to_Tile( (float *)Af77, LDA, A ); + return CHAMELEON_sLap2Desc( uplo, (float *)Af77, LDA, A ); break; case ChamRealDouble: default: - return CHAMELEON_dLapack_to_Tile( (double *)Af77, LDA, A ); + return CHAMELEON_dLap2Desc( uplo, (double *)Af77, LDA, A ); } return CHAMELEON_ERR_ILLEGAL_VALUE; } @@ -70,14 +134,20 @@ int CHAMELEON_Lapack_to_Tile(void *Af77, int LDA, CHAM_desc_t *A) * * @ingroup Tile * - * CHAMELEON_Tile_to_Lapack - Conversion from tile layout to LAPACK layout. + * @brief Conversion from CHAM_desc_t to LAPACK layout. * ****************************************************************************** * - * @param[out] A + * @param[in] uplo + * Specifies the shape of the matrix A: + * = ChamUpper: A is upper triangular, the lower part is not referenced; + * = ChamLower: A is lower triangular, the upper part is not referenced; + * = ChamUpperLower: A is general. + * + * @param[in] A * Descriptor of the CHAMELEON matrix in tile layout. * - * @param[in] Af77 + * @param[in,out] Af77 * LAPACK matrix (only needed on proc 0). * * @param[in] LDA @@ -88,21 +158,21 @@ int CHAMELEON_Lapack_to_Tile(void *Af77, int LDA, CHAM_desc_t *A) * @retval CHAMELEON_SUCCESS successful exit * */ -int CHAMELEON_Tile_to_Lapack(CHAM_desc_t *A, void *Af77, int LDA) +int CHAMELEON_Desc2Lap( cham_uplo_t uplo, CHAM_desc_t *A, void *Af77, int LDA ) { switch( A->dtyp ) { case ChamComplexDouble: - return CHAMELEON_zTile_to_Lapack( A, (CHAMELEON_Complex64_t *)Af77, LDA ); + return CHAMELEON_zDesc2Lap( uplo, A, (CHAMELEON_Complex64_t *)Af77, LDA ); break; case ChamComplexFloat: - return CHAMELEON_cTile_to_Lapack( A, (CHAMELEON_Complex32_t *)Af77, LDA ); + return CHAMELEON_cDesc2Lap( uplo, A, (CHAMELEON_Complex32_t *)Af77, LDA ); break; case ChamRealFloat: - return CHAMELEON_sTile_to_Lapack( A, (float *)Af77, LDA ); + return CHAMELEON_sDesc2Lap( uplo, A, (float *)Af77, LDA ); break; case ChamRealDouble: default: - return CHAMELEON_dTile_to_Lapack( A, (double *)Af77, LDA ); + return CHAMELEON_dDesc2Lap( uplo, A, (double *)Af77, LDA ); } return CHAMELEON_ERR_ILLEGAL_VALUE; } diff --git a/example/lapack_to_chameleon/step2.c b/example/lapack_to_chameleon/step2.c index f71c8c1d142751972c5ee740ca74459a73a0532f..1357a6759f937b86cac93fa42a9a793b559076f7 100644 --- a/example/lapack_to_chameleon/step2.c +++ b/example/lapack_to_chameleon/step2.c @@ -126,10 +126,10 @@ int main(int argc, char *argv[]) { /* copy LAPACK matrices in CHAMELEON descriptors to be able to call the tile * interface */ - CHAMELEON_dLapack_to_Tile(A, N, descA); - CHAMELEON_dLapack_to_Tile(B, N, descB); - CHAMELEON_dLapack_to_Tile(X, N, descX); - CHAMELEON_dLapack_to_Tile(Acpy, N, descAC); + CHAMELEON_dLap2Desc(UPLO, A, N, descA); + CHAMELEON_dLap2Desc(ChamUpperLower, B, N, descB); + CHAMELEON_dLap2Desc(ChamUpperLower, X, N, descX); + CHAMELEON_dLap2Desc(UPLO, Acpy, N, descAC); /* You could alternatively create descriptors wrapping your allocated * matrices to avoid copies Lapack_to_Tile with the following */ @@ -208,11 +208,11 @@ int main(int argc, char *argv[]) { res / N / eps / (anorm * xnorm + bnorm )); } - /* get back results in LAPACK format */ - CHAMELEON_dTile_to_Lapack(descA, A, N); - CHAMELEON_dTile_to_Lapack(descB, B, N); - CHAMELEON_dTile_to_Lapack(descX, X, N); - CHAMELEON_dTile_to_Lapack(descAC, Acpy, N); + /* get back results in LAPACK format if needed */ + CHAMELEON_dDesc2Lap(UPLO, descA, A, N); + CHAMELEON_dDesc2Lap(ChamUpperLower, descB, B, N); + CHAMELEON_dDesc2Lap(ChamUpperLower, descX, X, N); + CHAMELEON_dDesc2Lap(UPLO, descAC, Acpy, N); /* deallocate A, B, X, Acpy and associated descriptors descA, ... */ CHAMELEON_Desc_Destroy( &descA ); diff --git a/include/chameleon.h b/include/chameleon.h index a66b980e876c51a9040be6761dc7bf040eace6bf..953bd31cd4216f61ddac97313636d8c4b10be672 100644 --- a/include/chameleon.h +++ b/include/chameleon.h @@ -91,14 +91,17 @@ int CHAMELEON_Distributed_start (void); int CHAMELEON_Distributed_stop (void); int CHAMELEON_Comm_size (void); int CHAMELEON_Comm_rank (void); -int CHAMELEON_Lapack_to_Tile (void *Af77, int LDA, CHAM_desc_t *A); -int CHAMELEON_Tile_to_Lapack (CHAM_desc_t *A, void *Af77, int LDA); +int CHAMELEON_Lap2Desc ( cham_uplo_t uplo, void *Af77, int LDA, CHAM_desc_t *A ); +int CHAMELEON_Desc2Lap ( cham_uplo_t uplo, CHAM_desc_t *A, void *Af77, int LDA ); int CHAMELEON_Distributed_start (void); int CHAMELEON_Distributed_stop (void); int CHAMELEON_Distributed_size (int *size); int CHAMELEON_Distributed_rank (int *rank); int CHAMELEON_GetThreadNbr (void); +int CHAMELEON_Lapack_to_Tile( void *Af77, int LDA, CHAM_desc_t *A ) __attribute__((deprecated("Please refer to CHAMELEON_Lap2Desc() instead"))); +int CHAMELEON_Tile_to_Lapack( CHAM_desc_t *A, void *Af77, int LDA ) __attribute__((deprecated("Please refer to CHAMELEON_Desc2Lap() instead"))); + /* Descriptor */ int CHAMELEON_Element_Size(int type); diff --git a/include/chameleon/chameleon_z.h b/include/chameleon/chameleon_z.h index 928a6d3c5c8fca1d1372dbf1610861d2e23588fe..03bae9adf27acdb8787be3b8204fe98e5403b267 100644 --- a/include/chameleon/chameleon_z.h +++ b/include/chameleon/chameleon_z.h @@ -321,8 +321,10 @@ int CHAMELEON_Alloc_Workspace_zgetrf_incpiv_Tile(int N, CHAM_desc_t **descL, int /** * Auxiliary function prototypes */ -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); +int CHAMELEON_zLapack_to_Tile( CHAMELEON_Complex64_t *Af77, int LDA, CHAM_desc_t *A ) __attribute__((deprecated("Please refer to CHAMELEON_zLap2Desc() instead"))); +int CHAMELEON_zTile_to_Lapack( CHAM_desc_t *A, CHAMELEON_Complex64_t *Af77, int LDA ) __attribute__((deprecated("Please refer to CHAMELEON_zDesc2Lap() instead"))); +int CHAMELEON_zLap2Desc( cham_uplo_t uplo, CHAMELEON_Complex64_t *Af77, int LDA, CHAM_desc_t *A ); +int CHAMELEON_zDesc2Lap( cham_uplo_t uplo, CHAM_desc_t *A, CHAMELEON_Complex64_t *Af77, int LDA ); /** * User Builder function prototypes diff --git a/testing/testing_zcheck.c b/testing/testing_zcheck.c index 7d1bd45621c62d6766e6fc0f6043a1c257b35953..5a5f9f302e24a3c962aac79989f521f683e5feae 100644 --- a/testing/testing_zcheck.c +++ b/testing/testing_zcheck.c @@ -79,8 +79,8 @@ int check_zmatrices( run_arg_list_t *args, cham_uplo_t uplo, CHAM_desc_t *descA, } /* Converts the matrices to LAPACK layout in order to compare them on the main process */ - CHAMELEON_Tile_to_Lapack( descA, A, LDA ); - CHAMELEON_Tile_to_Lapack( descB, B, LDA ); + CHAMELEON_zDesc2Lap( uplo, descA, A, LDA ); + CHAMELEON_zDesc2Lap( uplo, descB, B, LDA ); if ( rank == 0 ) { double *work = (double *)malloc(LDA*N*sizeof(double)); @@ -175,7 +175,7 @@ int check_znorm( run_arg_list_t *args, cham_mtxtype_t matrix_type, cham_normtype } /* Converts the matrix to LAPACK layout in order to use the LAPACK norm function */ - CHAMELEON_Tile_to_Lapack( descA, A, LDA ); + CHAMELEON_zDesc2Lap( uplo, descA, A, LDA ); if ( rank == 0 ) { double *work = (double*) malloc(chameleon_max(M, N)*sizeof(double)); @@ -294,6 +294,7 @@ int check_zsum ( run_arg_list_t *args, cham_uplo_t uplo, cham_trans_t trans, CHAMELEON_Complex64_t *Bref = NULL; CHAMELEON_Complex64_t *Bcham = NULL; CHAMELEON_Complex64_t mzone = -1.0; + cham_uplo_t uploA = uplo; if ( rank == 0 ) { A = malloc(An*LDA*sizeof(CHAMELEON_Complex64_t)); @@ -311,16 +312,16 @@ int check_zsum ( run_arg_list_t *args, cham_uplo_t uplo, cham_trans_t trans, Anorm = CHAMELEON_zlantr_Tile( ChamMaxNorm, uplo, ChamNonUnit, descA ); } else { - cham_uplo_t uplo_inv = (uplo == ChamUpper) ? ChamLower : ChamUpper; - Anorm = CHAMELEON_zlantr_Tile( ChamMaxNorm, uplo_inv, ChamNonUnit, descA ); + uploA = (uplo == ChamUpper) ? ChamLower : ChamUpper; + Anorm = CHAMELEON_zlantr_Tile( ChamMaxNorm, uploA, ChamNonUnit, descA ); } Binitnorm = CHAMELEON_zlantr_Tile( ChamMaxNorm, uplo, ChamNonUnit, descBref ); } /* Creates the LAPACK version of the matrices */ - CHAMELEON_Tile_to_Lapack( descA, A, LDA ); - CHAMELEON_Tile_to_Lapack( descBref, Bref, LDB ); - CHAMELEON_Tile_to_Lapack( descBcham, Bcham, LDB ); + CHAMELEON_zDesc2Lap( uploA, descA, A, LDA ); + CHAMELEON_zDesc2Lap( uplo, descBref, Bref, LDB ); + CHAMELEON_zDesc2Lap( uplo, descBcham, Bcham, LDB ); if ( rank == 0 ) { double eps = LAPACKE_dlamch_work('e'); @@ -411,7 +412,7 @@ int check_zscale( run_arg_list_t *args, cham_uplo_t uplo, CHAMELEON_Complex64_t } /* Converts the matrix to LAPACK layout in order to scale with BLAS */ - CHAMELEON_Tile_to_Lapack( descA1, Ainit, M ); + CHAMELEON_zDesc2Lap( uplo, descA1, Ainit, M ); if ( rank == 0 ) { /* Scales using core function */ @@ -420,7 +421,7 @@ int check_zscale( run_arg_list_t *args, cham_uplo_t uplo, CHAMELEON_Complex64_t /* Converts back into Chameleon to compare with check_zmatrices */ descBlas = CHAMELEON_Desc_CopyOnZero( descA1, NULL ); - CHAMELEON_Lapack_to_Tile( Ainit, M, descBlas ); + CHAMELEON_zLap2Desc( uplo, Ainit, M, descBlas ); /* Compares the two matrices */ info_solution = check_zmatrices( args, uplo, descA2, descBlas ); @@ -520,10 +521,10 @@ int check_zgemm( run_arg_list_t *args, cham_trans_t transA, cham_trans_t transB, C = (CHAMELEON_Complex64_t *)malloc(N *LDC*sizeof(CHAMELEON_Complex64_t)); } - CHAMELEON_Tile_to_Lapack(descA, A, LDA); - CHAMELEON_Tile_to_Lapack(descB, B, LDB); - CHAMELEON_Tile_to_Lapack(descCref, Cref, LDC); - CHAMELEON_Tile_to_Lapack(descC, C, LDC); + CHAMELEON_zDesc2Lap( ChamUpperLower, descA, A, LDA ); + CHAMELEON_zDesc2Lap( ChamUpperLower, descB, B, LDB ); + CHAMELEON_zDesc2Lap( ChamUpperLower, descCref, Cref, LDC ); + CHAMELEON_zDesc2Lap( ChamUpperLower, descC, C, LDC ); if ( rank == 0 ) { double eps = LAPACKE_dlamch_work('e'); @@ -656,10 +657,10 @@ int check_zsymm( run_arg_list_t *args, cham_mtxtype_t matrix_type, cham_side_t s } /* Creates the LAPACK version of the matrices */ - CHAMELEON_Tile_to_Lapack( descA, A, LDA ); - CHAMELEON_Tile_to_Lapack( descB, B, LDB ); - CHAMELEON_Tile_to_Lapack( descCref, Cref, LDC ); - CHAMELEON_Tile_to_Lapack( descC, C, LDC ); + CHAMELEON_zDesc2Lap( uplo, descA, A, LDA ); + CHAMELEON_zDesc2Lap( ChamUpperLower, descB, B, LDB ); + CHAMELEON_zDesc2Lap( ChamUpperLower, descCref, Cref, LDC ); + CHAMELEON_zDesc2Lap( ChamUpperLower, descC, C, LDC ); if ( rank == 0 ) { double eps = LAPACKE_dlamch_work('e'); @@ -806,11 +807,11 @@ int check_zsyrk( run_arg_list_t *args, cham_mtxtype_t matrix_type, cham_uplo_t u } /* Creates the LAPACK version of the matrices */ - CHAMELEON_Tile_to_Lapack( descA, A, LDA ); - CHAMELEON_Tile_to_Lapack( descCref, Cref, LDC ); - CHAMELEON_Tile_to_Lapack( descC, C, LDC ); + CHAMELEON_zDesc2Lap( ChamUpperLower, descA, A, LDA ); + CHAMELEON_zDesc2Lap( uplo, descCref, Cref, LDC ); + CHAMELEON_zDesc2Lap( uplo, descC, C, LDC ); if ( descB != NULL ) { - CHAMELEON_Tile_to_Lapack( descB, B, LDA ); + CHAMELEON_zDesc2Lap( ChamUpperLower, descB, B, LDA ); } if ( rank == 0 ) { @@ -979,9 +980,9 @@ int check_ztrmm( run_arg_list_t *args, int check_func, cham_side_t side, cham_up } /* Creates the LAPACK version of the matrices */ - CHAMELEON_Tile_to_Lapack(descA, A, LDA); - CHAMELEON_Tile_to_Lapack(descB, B, LDB); - CHAMELEON_Tile_to_Lapack(descBref, Bref, LDB); + CHAMELEON_zDesc2Lap( uplo, descA, A, LDA); + CHAMELEON_zDesc2Lap( ChamUpperLower, descB, B, LDB); + CHAMELEON_zDesc2Lap( ChamUpperLower, descBref, Bref, LDB); if ( rank == 0 ) { double eps = LAPACKE_dlamch_work('e');