Functions | |
FLA_Error | FLASH_Apply_Q_UT_inc (FLA_Side side, FLA_Trans trans, FLA_Store storev, FLA_Obj A, FLA_Obj TW, FLA_Obj W1, FLA_Obj B) |
Variables | |
fla_apqut_t * | fla_apqut_cntl_leaf |
fla_apqutud_t * | fla_apqutud_cntl_leaf |
fla_apqutinc_t * | flash_apqutinc_cntl |
FLA_Error FLASH_Apply_Q_UT_inc | ( | FLA_Side | side, | |
FLA_Trans | trans, | |||
FLA_Store | storev, | |||
FLA_Obj | A, | |||
FLA_Obj | TW, | |||
FLA_Obj | W1, | |||
FLA_Obj | B | |||
) |
References FLA_Apply_Q_UT_inc_check(), FLA_Apply_Q_UT_inc_internal(), FLA_Blocksize_set(), FLA_Check_error_level(), FLA_Part_2x2(), FLASH_Obj_scalar_length(), FLASH_Queue_begin(), and FLASH_Queue_end().
00042 { 00043 FLA_Error r_val; 00044 int nb_alg; 00045 FLA_Obj TWTL, TWTR, 00046 TWBL, TWBR; 00047 00048 // Check parameters. 00049 if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING ) 00050 FLA_Apply_Q_UT_inc_check( side, trans, storev, A, TW, W1, B ); 00051 00052 // Inspect the length of a the top-left element of T to get the algorithmic 00053 // blocksize we'll use throughout the Apply_Q_UT_inc algorithm. 00054 FLA_Part_2x2( TW, &TWTL, &TWTR, 00055 &TWBL, &TWBR, 1, 1, FLA_TL ); 00056 nb_alg = FLASH_Obj_scalar_length( TWTL ); 00057 00058 // Adjust the blocksizes of the leaf control tree nodes, which are invoked 00059 // by the individual QR_UT_inc tasks. 00060 FLA_Blocksize_set( FLA_Cntl_blocksize( fla_apqut_cntl_leaf ), 00061 nb_alg, nb_alg, nb_alg, nb_alg ); 00062 FLA_Blocksize_set( FLA_Cntl_blocksize( fla_apqutud_cntl_leaf ), 00063 nb_alg, nb_alg, nb_alg, nb_alg ); 00064 00065 // Begin a parallel region. 00066 FLASH_Queue_begin(); 00067 00068 // Invoke FLA_Apply_Q_UT_inc_internal() with the standard control tree. 00069 r_val = FLA_Apply_Q_UT_inc_internal( side, trans, storev, A, TW, W1, B, flash_apqutinc_cntl ); 00070 00071 // End the parallel region. 00072 FLASH_Queue_end(); 00073 00074 return r_val; 00075 }