Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 83d4e84c authored by PRUVOST Florent's avatar PRUVOST Florent
Browse files

Fix issue #102

parent 548e826f
No related branches found
No related tags found
No related merge requests found
...@@ -108,6 +108,24 @@ option(BUILD_SHARED_LIBS "Build shared libraries" OFF) ...@@ -108,6 +108,24 @@ option(BUILD_SHARED_LIBS "Build shared libraries" OFF)
set( RP_CHAMELEON_DICTIONNARY ${CMAKE_SOURCE_DIR}/cmake_modules/local_subs.py ) set( RP_CHAMELEON_DICTIONNARY ${CMAKE_SOURCE_DIR}/cmake_modules/local_subs.py )
set( RP_CHAMELEON_PRECISIONS "s;d;c;z" ) set( RP_CHAMELEON_PRECISIONS "s;d;c;z" )
include(RulesPrecisions) include(RulesPrecisions)
# Check that at least one option CHAMELEON_PREC_ is set to ON
# count number of CHAMELEON_PREC_ sets to ON
math(EXPR number_of_active_prec 0)
set(CHAMELEON_PRECISIONS "")
foreach (prec ${RP_CHAMELEON_PRECISIONS})
string(TOUPPER ${prec} PREC)
if (CHAMELEON_PREC_${PREC})
math(EXPR number_of_active_prec "${number_of_active_prec}+1")
list(APPEND CHAMELEON_PRECISIONS ${PREC})
endif()
endforeach()
message("-- ${BoldGreen}Floating point precisions enabled (${number_of_active_prec}): ${CHAMELEON_PRECISIONS}.")
if (number_of_active_prec STREQUAL 0)
message(FATAL_ERROR
"Number of active precision is ${number_of_active_prec}, "
"the user should activate at least one precision in the list: "
"CHAMELEON_PREC_S;CHAMELEON_PREC_D;CHAMELEON_PREC_C;CHAMELEON_PREC_Z.")
endif()
# Options to select the runtime # Options to select the runtime
# ----------------------------- # -----------------------------
......
...@@ -69,6 +69,9 @@ set(dep_message "${dep_message}" ...@@ -69,6 +69,9 @@ set(dep_message "${dep_message}"
" LDFlags .............: ${CMAKE_C_LINK_FLAGS}\n" " LDFlags .............: ${CMAKE_C_LINK_FLAGS}\n"
" EXE LDFlags .........: ${CMAKE_EXE_LINKER_FLAGS}\n" " EXE LDFlags .........: ${CMAKE_EXE_LINKER_FLAGS}\n"
"\n" "\n"
" Floating points precisions enabled\n"
" CHAMELEON_PRECISIONS : ${CHAMELEON_PRECISIONS}\n"
"\n"
" Implementation paradigm\n" " Implementation paradigm\n"
" CUDA ................: ${CHAMELEON_USE_CUDA}\n" " CUDA ................: ${CHAMELEON_USE_CUDA}\n"
" MPI .................: ${CHAMELEON_USE_MPI}\n" " MPI .................: ${CHAMELEON_USE_MPI}\n"
......
...@@ -117,20 +117,29 @@ CHAMELEON_Tile_to_Lapack( CHAM_desc_t *A, void *Af77, int LDA ) ...@@ -117,20 +117,29 @@ 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_Lap2Desc( cham_uplo_t uplo, void *Af77, int LDA, CHAM_desc_t *A )
{ {
switch( A->dtyp ) { switch( A->dtyp ) {
#if defined(PRECISION_z)
case ChamComplexDouble: case ChamComplexDouble:
return CHAMELEON_zLap2Desc( uplo, (CHAMELEON_Complex64_t *)Af77, LDA, A ); return CHAMELEON_zLap2Desc( uplo, (CHAMELEON_Complex64_t *)Af77, LDA, A );
break; break;
#endif
#if defined(PRECISION_c)
case ChamComplexFloat: case ChamComplexFloat:
return CHAMELEON_cLap2Desc( uplo, (CHAMELEON_Complex32_t *)Af77, LDA, A ); return CHAMELEON_cLap2Desc( uplo, (CHAMELEON_Complex32_t *)Af77, LDA, A );
break; break;
#endif
#if defined(PRECISION_s)
case ChamRealFloat: case ChamRealFloat:
return CHAMELEON_sLap2Desc( uplo, (float *)Af77, LDA, A ); return CHAMELEON_sLap2Desc( uplo, (float *)Af77, LDA, A );
break; break;
#endif
#if defined(PRECISION_d)
case ChamRealDouble: case ChamRealDouble:
default:
return CHAMELEON_dLap2Desc( uplo, (double *)Af77, LDA, A ); return CHAMELEON_dLap2Desc( uplo, (double *)Af77, LDA, A );
break;
#endif
default:
return CHAMELEON_ERR_ILLEGAL_VALUE;
} }
return CHAMELEON_ERR_ILLEGAL_VALUE;
} }
/** /**
...@@ -164,18 +173,27 @@ int CHAMELEON_Lap2Desc( cham_uplo_t uplo, void *Af77, int LDA, CHAM_desc_t *A ) ...@@ -164,18 +173,27 @@ 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_Desc2Lap( cham_uplo_t uplo, CHAM_desc_t *A, void *Af77, int LDA )
{ {
switch( A->dtyp ) { switch( A->dtyp ) {
#if defined(PRECISION_z)
case ChamComplexDouble: case ChamComplexDouble:
return CHAMELEON_zDesc2Lap( uplo, A, (CHAMELEON_Complex64_t *)Af77, LDA ); return CHAMELEON_zDesc2Lap( uplo, A, (CHAMELEON_Complex64_t *)Af77, LDA );
break; break;
#endif
#if defined(PRECISION_c)
case ChamComplexFloat: case ChamComplexFloat:
return CHAMELEON_cDesc2Lap( uplo, A, (CHAMELEON_Complex32_t *)Af77, LDA ); return CHAMELEON_cDesc2Lap( uplo, A, (CHAMELEON_Complex32_t *)Af77, LDA );
break; break;
#endif
#if defined(PRECISION_s)
case ChamRealFloat: case ChamRealFloat:
return CHAMELEON_sDesc2Lap( uplo, A, (float *)Af77, LDA ); return CHAMELEON_sDesc2Lap( uplo, A, (float *)Af77, LDA );
break; break;
#endif
#if defined(PRECISION_d)
case ChamRealDouble: case ChamRealDouble:
default:
return CHAMELEON_dDesc2Lap( uplo, A, (double *)Af77, LDA ); return CHAMELEON_dDesc2Lap( uplo, A, (double *)Af77, LDA );
break;
#endif
default:
return CHAMELEON_ERR_ILLEGAL_VALUE;
} }
return CHAMELEON_ERR_ILLEGAL_VALUE;
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment