FLASH_QR_UT_UD.c File Reference

(r)


Functions

FLA_Error FLASH_QR_UT_UD (FLA_Obj B, FLA_Obj D, FLA_Obj T)

Variables

fla_qrutud_tflash_qrutud_cntl
fla_qrutud_tflash_qrutud_cntl_leaf
fla_qrutud_tfla_qrutud_cntl_leaf

Function Documentation

FLA_Error FLASH_QR_UT_UD ( FLA_Obj  B,
FLA_Obj  D,
FLA_Obj  T 
)

References FLA_Blocksize_set(), FLA_Check_error_level(), FLA_Part_2x1(), FLA_QR_UT_UD_check(), FLA_QR_UT_UD_internal(), FLASH_Obj_scalar_length(), FLASH_Queue_begin(), and FLASH_Queue_end().

00040 {
00041   FLA_Error r_val;
00042   int       nb_alg_in;
00043   FLA_Obj   TT, TB;
00044 
00045   // Check parameters.
00046   if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
00047     FLA_QR_UT_UD_check( B, D, T );
00048 
00049   // Inspect the length of a single row of T to get the blocksize used by
00050   // the QR/LQ factorization, which will be our inner blocksize for
00051   // QR_UT_UD.
00052   FLA_Part_2x1( T,   &TT,
00053                      &TB,   1, FLA_TOP );
00054   nb_alg_in = FLASH_Obj_scalar_length( TT );
00055 
00056   // Adjust the blocksize of the control tree node for the flat subproblem.
00057   if ( FLA_Cntl_blocksize( fla_qrutud_cntl_leaf ) != NULL )
00058     FLA_Blocksize_set( FLA_Cntl_blocksize( fla_qrutud_cntl_leaf ),
00059                        nb_alg_in, nb_alg_in, nb_alg_in, nb_alg_in );
00060 
00061   // Begin a parallel region.
00062   FLASH_Queue_begin();
00063   
00064   // Invoke FLA_QR_UT_UD_internal() with the standard control tree.
00065   r_val = FLA_QR_UT_UD_internal( B, D, T, flash_qrutud_cntl );
00066 
00067   // End the parallel region.
00068   FLASH_Queue_end();
00069 
00070   return r_val;
00071 }


Variable Documentation


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