1 /*
2 
3     Copyright (C) 2014, The University of Texas at Austin
4 
5     This file is part of libflame and is available under the 3-Clause
6     BSD license, which can be found in the LICENSE file at the top-level
7     directory, or at http://opensource.org/licenses/BSD-3-Clause
8 
9 */
10 
11 #include "FLAME.h"
12 
FLA_Trsm_ruh(FLA_Diag diag,FLA_Obj alpha,FLA_Obj A,FLA_Obj B,fla_trsm_t * cntl)13 FLA_Error FLA_Trsm_ruh( FLA_Diag diag, FLA_Obj alpha, FLA_Obj A, FLA_Obj B, fla_trsm_t* cntl )
14 {
15 	FLA_Error r_val = FLA_SUCCESS;
16 
17 	if      ( FLA_Cntl_variant( cntl ) == FLA_SUBPROBLEM )
18 	{
19 		r_val = FLA_Trsm_ruh_task( diag, alpha, A, B, cntl );
20 	}
21 #ifdef FLA_ENABLE_NON_CRITICAL_CODE
22 	else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT1 )
23 	{
24 		r_val = FLA_Trsm_ruh_blk_var1( diag, alpha, A, B, cntl );
25 	}
26 #endif
27 	else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT2 )
28 	{
29 		r_val = FLA_Trsm_ruh_blk_var2( diag, alpha, A, B, cntl );
30 	}
31 	else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT3 )
32 	{
33 		r_val = FLA_Trsm_ruh_blk_var3( diag, alpha, A, B, cntl );
34 	}
35 #ifdef FLA_ENABLE_NON_CRITICAL_CODE
36 	else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT4 )
37 	{
38 		r_val = FLA_Trsm_ruh_blk_var4( diag, alpha, A, B, cntl );
39 	}
40 #endif
41 #ifdef FLA_ENABLE_NON_CRITICAL_CODE
42 	else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT1 )
43 	{
44 		r_val = FLA_Trsm_ruh_unb_var1( diag, alpha, A, B );
45 	}
46 	else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT2 )
47 	{
48 		r_val = FLA_Trsm_ruh_unb_var2( diag, alpha, A, B );
49 	}
50 	else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT3 )
51 	{
52 		r_val = FLA_Trsm_ruh_unb_var3( diag, alpha, A, B );
53 	}
54 	else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT4 )
55 	{
56 		r_val = FLA_Trsm_ruh_unb_var4( diag, alpha, A, B );
57 	}
58 #endif
59 	else
60 	{
61 		r_val = FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED );
62 	}
63 
64 	return r_val;
65 }
66 
67