void libfla_test_symm_impl( int impl, FLA_Side side, FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj A, FLA_Obj B, FLA_Obj beta, FLA_Obj C ) { switch ( impl ) { case FLA_TEST_HIER_FRONT_END: FLASH_Symm( side, uplo, alpha, A, B, beta, C ); break; case FLA_TEST_FLAT_FRONT_END: FLA_Symm( side, uplo, alpha, A, B, beta, C ); break; case FLA_TEST_FLAT_UNB_VAR: FLA_Symm_internal( side, uplo, alpha, A, B, beta, C, symm_cntl_unb ); break; case FLA_TEST_FLAT_BLK_VAR: FLA_Symm_internal( side, uplo, alpha, A, B, beta, C, symm_cntl_blk ); break; case FLA_TEST_FLAT_UNB_EXT: FLA_Symm_external( side, uplo, alpha, A, B, beta, C ); break; default: libfla_test_output_error( "Invalid implementation type.\n" ); } }
FLA_Error FLA_Symm( FLA_Side side, FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj A, FLA_Obj B, FLA_Obj beta, FLA_Obj C ) { FLA_Error r_val = FLA_SUCCESS; // Check parameters. if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING ) FLA_Symm_check( side, uplo, alpha, A, B, beta, C ); #ifdef FLA_ENABLE_BLAS3_FRONT_END_CNTL_TREES r_val = FLA_Symm_internal( side, uplo, alpha, A, B, beta, C, fla_symm_cntl_mm ); #else r_val = FLA_Symm_external( side, uplo, alpha, A, B, beta, C ); #endif return r_val; }
FLA_Error FLA_Symm_ru_task( FLA_Obj alpha, FLA_Obj A, FLA_Obj B, FLA_Obj beta, FLA_Obj C, fla_symm_t* cntl ) { return FLA_Symm_external( FLA_RIGHT, FLA_UPPER_TRIANGULAR, alpha, A, B, beta, C ); }
FLA_Error FLA_Symm_ll_task( FLA_Obj alpha, FLA_Obj A, FLA_Obj B, FLA_Obj beta, FLA_Obj C, fla_symm_t* cntl ) { return FLA_Symm_external( FLA_LEFT, FLA_LOWER_TRIANGULAR, alpha, A, B, beta, C ); }
FLA_Error FLA_Symm_task( FLA_Side side, FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj A, FLA_Obj B, FLA_Obj beta, FLA_Obj C, fla_symm_t* cntl ) { return FLA_Symm_external( side, uplo, alpha, A, B, beta, C ); }