FLA_Accum_T_UT_fc_unb_var1.c File Reference

(r)


Functions

FLA_Error FLA_Accum_T_UT_fc_unb_var1 (FLA_Obj A, FLA_Obj tau, FLA_Obj T)

Function Documentation

FLA_Error FLA_Accum_T_UT_fc_unb_var1 ( FLA_Obj  A,
FLA_Obj  tau,
FLA_Obj  T 
)

References FLA_Cont_with_3x1_to_2x1(), FLA_Cont_with_3x3_to_2x2(), FLA_Copy_external(), FLA_Copyt_external(), FLA_Gemv_external(), FLA_Obj_min_dim(), FLA_ONE, FLA_Part_2x1(), FLA_Part_2x2(), FLA_Repart_2x1_to_3x1(), and FLA_Repart_2x2_to_3x3().

00036 {
00037   FLA_Obj ATL,   ATR,      A00,  a01,     A02, 
00038           ABL,   ABR,      a10t, alpha11, a12t,
00039                            A20,  a21,     A22;
00040 
00041   FLA_Obj tauT,            tau0,
00042           tauB,            tau1,
00043                            tau2;
00044 
00045   FLA_Obj TTL,   TTR,      T00,  t01,   T02, 
00046           TBL,   TBR,      t10t, tau11, t12t,
00047                            T20,  t21,   T22;
00048 
00049 
00050   FLA_Part_2x2( A,    &ATL, &ATR,
00051                       &ABL, &ABR,     0, 0, FLA_TL );
00052 
00053   FLA_Part_2x1( tau,  &tauT, 
00054                       &tauB,          0, FLA_TOP );
00055 
00056   FLA_Part_2x2( T,    &TTL, &TTR,
00057                       &TBL, &TBR,     0, 0, FLA_TL );
00058 
00059   while ( FLA_Obj_min_dim( ABR ) > 0 ){
00060 
00061     FLA_Repart_2x2_to_3x3( ATL, /**/ ATR,       &A00,  /**/ &a01,     &A02,
00062                         /* ************* */   /* ************************** */
00063                                                 &a10t, /**/ &alpha11, &a12t,
00064                            ABL, /**/ ABR,       &A20,  /**/ &a21,     &A22,
00065                            1, 1, FLA_BR );
00066 
00067     FLA_Repart_2x1_to_3x1( tauT,                &tau0, 
00068                         /* ** */              /* ** */
00069                                                 &tau1, 
00070                            tauB,                &tau2,        1, FLA_BOTTOM );
00071 
00072     FLA_Repart_2x2_to_3x3( TTL, /**/ TTR,       &T00,  /**/ &t01,   &T02,
00073                         /* ************* */   /* ************************ */
00074                                                 &t10t, /**/ &tau11, &t12t,
00075                            TBL, /**/ TBR,       &T20,  /**/ &t21,   &T22,
00076                            1, 1, FLA_BR );
00077 
00078     /*------------------------------------------------------------*/
00079 
00080     // tau11 = tau1;
00081     FLA_Copy_external( tau1, tau11 );
00082 
00083     // t01 = a10t' + A20' * a21;
00084     FLA_Copyt_external( FLA_CONJ_TRANSPOSE, a10t, t01 );
00085     FLA_Gemv_external( FLA_CONJ_TRANSPOSE, FLA_ONE, A20, a21, FLA_ONE, t01 );
00086 
00087     /*------------------------------------------------------------*/
00088 
00089     FLA_Cont_with_3x3_to_2x2( &ATL, /**/ &ATR,       A00,  a01,     /**/ A02,
00090                                                      a10t, alpha11, /**/ a12t,
00091                             /* ************** */  /* ************************ */
00092                               &ABL, /**/ &ABR,       A20,  a21,     /**/ A22,
00093                               FLA_TL );
00094 
00095     FLA_Cont_with_3x1_to_2x1( &tauT,                tau0, 
00096                                                     tau1, 
00097                             /* ** */              /* ** */
00098                               &tauB,                tau2,     FLA_TOP );
00099 
00100     FLA_Cont_with_3x3_to_2x2( &TTL, /**/ &TTR,       T00,  t01,   /**/ T02,
00101                                                      t10t, tau11, /**/ t12t,
00102                             /* ************** */  /* ********************** */
00103                               &TBL, /**/ &TBR,       T20,  t21,   /**/ T22,
00104                               FLA_TL );
00105 
00106   }
00107 
00108   return FLA_SUCCESS;
00109 }


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