FLA_SA_FS_blk.c File Reference

(r)


Functions

FLA_Error FLA_SA_FS_blk (FLA_Obj L, FLA_Obj D, FLA_Obj p, FLA_Obj C, FLA_Obj E, dim_t nb_alg)

Function Documentation

FLA_Error FLA_SA_FS_blk ( FLA_Obj  L,
FLA_Obj  D,
FLA_Obj  p,
FLA_Obj  C,
FLA_Obj  E,
dim_t  nb_alg 
)

References FLA_Cont_with_1x3_to_1x2(), FLA_Cont_with_3x1_to_2x1(), FLA_Gemm_external(), FLA_MINUS_ONE, FLA_Obj_length(), FLA_ONE, FLA_Part_1x2(), FLA_Part_2x1(), FLA_Repart_1x2_to_1x3(), FLA_Repart_2x1_to_3x1(), FLA_SA_Apply_pivots(), and FLA_Trsm_external().

Referenced by FLA_SA_FS_task(), and FLASH_FS_incpiv_aux2().

00038 {
00039   FLA_Obj LT,              L0,
00040           LB,              L1,
00041                            L2;
00042 
00043   FLA_Obj DL,    DR,       D0,  D1,  D2;
00044 
00045   FLA_Obj pT,              p0,
00046           pB,              p1,
00047                            p2;
00048 
00049   FLA_Obj CT,              C0,
00050           CB,              C1,
00051                            C2;
00052 
00053   FLA_Obj L1_sqr, L1_rest;
00054 
00055   dim_t b;
00056 
00057   FLA_Part_2x1( L,    &LT, 
00058                       &LB,            0, FLA_TOP );
00059 
00060   FLA_Part_1x2( D,    &DL,  &DR,      0, FLA_LEFT );
00061 
00062   FLA_Part_2x1( p,    &pT, 
00063                       &pB,            0, FLA_TOP );
00064 
00065   FLA_Part_2x1( C,    &CT, 
00066                       &CB,            0, FLA_TOP );
00067 
00068   while ( FLA_Obj_length( LT ) < FLA_Obj_length( L ) )
00069   {
00070     b = min( FLA_Obj_length( LB ), nb_alg );
00071 
00072     FLA_Repart_2x1_to_3x1( LT,                &L0, 
00073                         /* ** */            /* ** */
00074                                               &L1, 
00075                            LB,                &L2,        b, FLA_BOTTOM );
00076 
00077     FLA_Repart_1x2_to_1x3( DL,  /**/ DR,      &D0, /**/ &D1, &D2,
00078                            b, FLA_RIGHT );
00079 
00080     FLA_Repart_2x1_to_3x1( pT,                &p0, 
00081                         /* ** */            /* ** */
00082                                               &p1, 
00083                            pB,                &p2,        b, FLA_BOTTOM );
00084 
00085     FLA_Repart_2x1_to_3x1( CT,                &C0, 
00086                         /* ** */            /* ** */
00087                                               &C1, 
00088                            CB,                &C2,        b, FLA_BOTTOM );
00089 
00090     /*------------------------------------------------------------*/
00091 
00092     FLA_Part_1x2( L1,    &L1_sqr, &L1_rest,      b, FLA_LEFT );
00093 
00094 
00095     FLA_SA_Apply_pivots( C1,
00096                          E, p1 );
00097 
00098     FLA_Trsm_external( FLA_LEFT, FLA_LOWER_TRIANGULAR,
00099                        FLA_NO_TRANSPOSE, FLA_UNIT_DIAG,
00100                        FLA_ONE, L1_sqr, C1 );
00101 
00102     FLA_Gemm_external( FLA_NO_TRANSPOSE, FLA_NO_TRANSPOSE, 
00103                        FLA_MINUS_ONE, D1, C1, FLA_ONE, E );
00104 
00105     /*------------------------------------------------------------*/
00106 
00107     FLA_Cont_with_3x1_to_2x1( &LT,                L0, 
00108                                                   L1, 
00109                             /* ** */           /* ** */
00110                               &LB,                L2,     FLA_TOP );
00111 
00112     FLA_Cont_with_1x3_to_1x2( &DL,  /**/ &DR,     D0, D1, /**/ D2,
00113                               FLA_LEFT );
00114 
00115     FLA_Cont_with_3x1_to_2x1( &pT,                p0, 
00116                                                   p1, 
00117                             /* ** */           /* ** */
00118                               &pB,                p2,     FLA_TOP );
00119 
00120     FLA_Cont_with_3x1_to_2x1( &CT,                C0, 
00121                                                   C1, 
00122                             /* ** */           /* ** */
00123                               &CB,                C2,     FLA_TOP );
00124   }
00125 
00126   return FLA_SUCCESS;
00127 }


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