Functions | |
FLA_Error | FLA_QR_UT_internal (FLA_Obj A, FLA_Obj T, fla_qrut_t *cntl) |
Variables | |
fla_qrut_t * | fla_qrut_cntl_leaf |
fla_qrut_t * | flash_qrut_cntl |
fla_qrut_t * | flash_qrut_cntl_leaf |
FLA_Error FLA_QR_UT_internal | ( | FLA_Obj | A, | |
FLA_Obj | T, | |||
fla_qrut_t * | cntl | |||
) |
References FLA_Check_error_level(), FLA_Obj_elemtype(), FLA_QR_UT_Accum_T_blk_var1(), FLA_QR_UT_Accum_T_opt_var1(), FLA_QR_UT_Accum_T_unb_var1(), FLA_QR_UT_blk_var2(), FLA_QR_UT_internal(), FLA_QR_UT_internal_check(), FLA_QR_UT_task(), and FLASH_Queue_get_enabled().
Referenced by FLA_QR_UT(), FLA_QR_UT_Accum_T_blk_var1(), FLA_QR_UT_blk_var2(), FLA_QR_UT_copy_task(), FLA_QR_UT_inc_blk_var1(), FLA_QR_UT_internal(), and FLA_QR_UT_task().
00040 { 00041 FLA_Error r_val = FLA_SUCCESS; 00042 00043 if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING ) 00044 FLA_QR_UT_internal_check( A, T, cntl ); 00045 00046 if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER && 00047 FLA_Obj_elemtype( A ) == FLA_MATRIX && 00048 FLA_Cntl_variant( cntl ) == FLA_SUBPROBLEM ) 00049 { 00050 // Recurse 00051 r_val = FLA_QR_UT_internal( *FLASH_OBJ_PTR_AT( A ), 00052 *FLASH_OBJ_PTR_AT( T ), 00053 flash_qrut_cntl_leaf ); 00054 } 00055 else if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER && 00056 FLA_Obj_elemtype( A ) == FLA_SCALAR && 00057 FLASH_Queue_get_enabled( ) ) 00058 { 00059 // Enqueue 00060 ENQUEUE_FLASH_QR_UT( A, T, cntl ); 00061 } 00062 else 00063 { 00064 if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER && 00065 FLA_Obj_elemtype( A ) == FLA_SCALAR && 00066 !FLASH_Queue_get_enabled( ) ) 00067 { 00068 // Execute leaf. 00069 // NOTE: This may be redundant since we execute _internal() with 00070 // fla_qrut_cntl_leaf (in lieu of an _external() function). 00071 cntl = fla_qrut_cntl_leaf; 00072 } 00073 00074 if ( FLA_Cntl_variant( cntl ) == FLA_SUBPROBLEM ) 00075 { 00076 r_val = FLA_QR_UT_task( A, T, fla_qrut_cntl_leaf ); 00077 } 00078 else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT1 ) 00079 { 00080 r_val = FLA_QR_UT_Accum_T_unb_var1( A, T ); 00081 } 00082 else if ( FLA_Cntl_variant( cntl ) == FLA_UNB_OPT_VARIANT1 ) 00083 { 00084 r_val = FLA_QR_UT_Accum_T_opt_var1( A, T ); 00085 } 00086 else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT1 ) 00087 { 00088 r_val = FLA_QR_UT_Accum_T_blk_var1( A, T, cntl ); 00089 } 00090 else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT2 ) 00091 { 00092 r_val = FLA_QR_UT_blk_var2( A, T, cntl ); 00093 } 00094 } 00095 00096 return r_val; 00097 }