libflame
revision_anchor
|
Functions | |
FLA_Error | FLA_Apply_H2_UT_r_unb_var1 (FLA_Obj tau, FLA_Obj u2, FLA_Obj a1, FLA_Obj A2) |
References FLA_Axpy_external(), FLA_Copy_external(), FLA_Gemv_external(), FLA_Gerc_external(), FLA_Inv_scal_external(), FLA_MINUS_ONE, FLA_Obj_create_conf_to(), FLA_Obj_free(), FLA_Obj_has_zero_dim(), and FLA_ONE.
{ FLA_Obj w1; if ( FLA_Obj_has_zero_dim( a1 ) ) return FLA_SUCCESS; // w1 = a1; FLA_Obj_create_conf_to( FLA_NO_TRANSPOSE, a1, &w1 ); FLA_Copy_external( a1, w1 ); // w1 = w1 + A2 * u2; FLA_Gemv_external( FLA_NO_TRANSPOSE, FLA_ONE, A2, u2, FLA_ONE, w1 ); // w1 = w1 / tau; FLA_Inv_scal_external( tau, w1 ); // a1 = a1 - w1; FLA_Axpy_external( FLA_MINUS_ONE, w1, a1 ); // A2 = A2 - w1 * u2'; FLA_Gerc_external( FLA_NO_CONJUGATE, FLA_CONJUGATE, FLA_MINUS_ONE, w1, u2, A2 ); FLA_Obj_free( &w1 ); return FLA_SUCCESS; }