Functions | |
FLA_Error | FLASH_Apply_Q_UT_UD (FLA_Side side, FLA_Trans trans, FLA_Store storev, FLA_Obj D, FLA_Obj T, FLA_Obj W, FLA_Obj C, FLA_Obj E) |
Variables | |
fla_apqutud_t * | flash_apqutud_cntl |
fla_apqutud_t * | flash_apqutud_cntl_leaf |
fla_apqutud_t * | fla_apqutud_cntl_leaf |
FLA_Error FLASH_Apply_Q_UT_UD | ( | FLA_Side | side, | |
FLA_Trans | trans, | |||
FLA_Store | storev, | |||
FLA_Obj | D, | |||
FLA_Obj | T, | |||
FLA_Obj | W, | |||
FLA_Obj | C, | |||
FLA_Obj | E | |||
) |
References FLA_Apply_Q_UT_UD_check(), FLA_Apply_Q_UT_UD_internal(), FLA_Blocksize_set(), FLA_Check_error_level(), FLA_Part_2x1(), FLASH_Obj_scalar_length(), FLASH_Queue_begin(), and FLASH_Queue_end().
00042 { 00043 FLA_Error r_val; 00044 int nb_alg_in; 00045 FLA_Obj TT, TB; 00046 00047 // Check parameters. 00048 if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING ) 00049 FLA_Apply_Q_UT_UD_check( side, trans, storev, D, T, W, C, E ); 00050 00051 // Inspect the length of a single row of T to get the blocksize used by 00052 // the QR/LQ factorization, which will be our inner blocksize for 00053 // Apply_Q_UT_UD. 00054 FLA_Part_2x1( T, &TT, 00055 &TB, 1, FLA_TOP ); 00056 nb_alg_in = FLASH_Obj_scalar_length( TT ); 00057 00058 // Adjust the blocksize of the leaf control tree node. 00059 FLA_Blocksize_set( FLA_Cntl_blocksize( fla_apqutud_cntl_leaf ), 00060 nb_alg_in, nb_alg_in, nb_alg_in, nb_alg_in ); 00061 00062 // Begin a parallel region. 00063 FLASH_Queue_begin(); 00064 00065 // Invoke FLA_Apply_Q_UT_UD_internal() with the standard control tree. 00066 r_val = FLA_Apply_Q_UT_UD_internal( side, trans, storev, D, T, W, C, E, flash_apqutud_cntl ); 00067 00068 // End the parallel region. 00069 FLASH_Queue_end(); 00070 00071 return r_val; 00072 }