libflame
revision_anchor
|
Functions | |
FLA_Error | FLA_Syrk_lt_unb_var5 (FLA_Obj alpha, FLA_Obj A, FLA_Obj beta, FLA_Obj C) |
References FLA_Cont_with_3x1_to_2x1(), FLA_Obj_length(), FLA_Part_2x1(), FLA_Repart_2x1_to_3x1(), FLA_Scalr_external(), and FLA_Syr_external().
Referenced by FLA_Syrk_lt().
{ FLA_Obj AT, A0, AB, a1t, A2; FLA_Scalr_external( FLA_LOWER_TRIANGULAR, beta, C ); FLA_Part_2x1( A, &AT, &AB, 0, FLA_TOP ); while ( FLA_Obj_length( AT ) < FLA_Obj_length( A ) ){ FLA_Repart_2x1_to_3x1( AT, &A0, /* ** */ /* *** */ &a1t, AB, &A2, 1, FLA_BOTTOM ); /*------------------------------------------------------------*/ /* C := C + a1t' * a1t */ FLA_Syr_external( FLA_LOWER_TRIANGULAR, alpha, a1t, C ); /*------------------------------------------------------------*/ FLA_Cont_with_3x1_to_2x1( &AT, A0, a1t, /* ** */ /* *** */ &AB, A2, FLA_TOP ); } return FLA_SUCCESS; }