FLA_QR_UT_UD_blk_var2.c File Reference

(r)


Functions

FLA_Error FLA_QR_UT_UD_blk_var2 (FLA_Obj U, FLA_Obj D, FLA_Obj T, fla_qrutud_t *cntl)

Function Documentation

FLA_Error FLA_QR_UT_UD_blk_var2 ( FLA_Obj  U,
FLA_Obj  D,
FLA_Obj  T,
fla_qrutud_t cntl 
)

References FLA_Cont_with_3x1_to_2x1(), FLA_Determine_blocksize(), FLA_Obj_length(), FLA_Part_2x1(), FLA_QR_UT_UD_internal(), and FLA_Repart_2x1_to_3x1().

Referenced by FLA_QR_UT_UD_internal().

00037 {
00038   FLA_Obj DT,              D0,
00039           DB,              D1,
00040                            D2;
00041 
00042   FLA_Obj TT,              T0,
00043           TB,              T1,
00044                            T2;
00045 
00046   dim_t b;
00047 
00048   FLA_Part_2x1( D,    &DT, 
00049                       &DB,            0, FLA_TOP );
00050 
00051   FLA_Part_2x1( T,    &TT, 
00052                       &TB,            0, FLA_TOP );
00053 
00054   while ( FLA_Obj_length( DT ) < FLA_Obj_length( D ) ){
00055 
00056     b = FLA_Determine_blocksize( DB, FLA_BOTTOM, FLA_Cntl_blocksize( cntl ) );
00057 
00058     FLA_Repart_2x1_to_3x1( DT,                &D0, 
00059                         /* ** */            /* ****** */
00060                                               &D1, 
00061                            DB,                &D2,        b, FLA_BOTTOM );
00062 
00063     FLA_Repart_2x1_to_3x1( TT,                &T0, 
00064                         /* ** */            /* ****** */
00065                                               &T1, 
00066                            TB,                &T2,        b, FLA_BOTTOM );
00067 
00068     /*------------------------------------------------------------*/
00069 
00070     /*
00071       [ U, ...
00072         D1, T ] = FLA_QR_UT_UD_internal( U
00073                                          D1, T1 );
00074     */
00075 
00076     FLA_QR_UT_UD_internal( U,
00077                            D1, T1, 
00078                            FLA_Cntl_sub_qrutud( cntl ) );
00079 
00080     /*------------------------------------------------------------*/
00081 
00082     FLA_Cont_with_3x1_to_2x1( &DT,                D0, 
00083                                                   D1, 
00084                             /* ** */           /* ****** */
00085                               &DB,                D2,     FLA_TOP );
00086 
00087     FLA_Cont_with_3x1_to_2x1( &TT,                T0, 
00088                                                   T1, 
00089                             /* ** */           /* ****** */
00090                               &TB,                T2,     FLA_TOP );
00091   }
00092 
00093   return FLA_SUCCESS;
00094 }


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