FLASH_Apply_Q_UT_UD.c File Reference

(r)


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_tflash_apqutud_cntl
fla_apqutud_tflash_apqutud_cntl_leaf
fla_apqutud_tfla_apqutud_cntl_leaf

Function Documentation

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 }


Variable Documentation


Generated on Mon Jul 6 05:45:57 2009 for libflame by  doxygen 1.5.9