libflame revision_anchor
FLA_Apply_H2_UT_l_unb_var1.c File Reference

(r)

Functions

FLA_Error FLA_Apply_H2_UT_l_unb_var1 (FLA_Obj tau, FLA_Obj u2, FLA_Obj a1t, FLA_Obj A2)
 

Function Documentation

◆ FLA_Apply_H2_UT_l_unb_var1()

FLA_Error FLA_Apply_H2_UT_l_unb_var1 ( FLA_Obj tau,
FLA_Obj u2,
FLA_Obj a1t,
FLA_Obj A2 )
65{
66 FLA_Obj w1t;
67
68 if ( FLA_Obj_has_zero_dim( a1t ) || FLA_Obj_equals( tau, FLA_ZERO ) ) return FLA_SUCCESS;
69
70 // w1t = a1t;
71 FLA_Obj_create_conf_to( FLA_NO_TRANSPOSE, a1t, &w1t );
72 FLA_Copy_external( a1t, w1t );
73
74 // w1t = w1t + u2' * A2;
75 // w1t = w1t + A2^T * conj(u2);
76 FLA_Gemvc_external( FLA_TRANSPOSE, FLA_CONJUGATE, FLA_ONE, A2, u2, FLA_ONE, w1t );
77
78 // w1t = w1t / tau;
79 FLA_Inv_scalc_external( FLA_NO_CONJUGATE, tau, w1t );
80
81 // a1t = a1t - w1t;
83
84 // A2 = A2 - u2 * w1t;
85 FLA_Ger_external( FLA_MINUS_ONE, u2, w1t, A2 );
86
87 FLA_Obj_free( &w1t );
88
89 return FLA_SUCCESS;
90}
FLA_Error FLA_Inv_scalc_external(FLA_Conj conjalpha, FLA_Obj alpha, FLA_Obj A)
Definition FLA_Inv_scalc_external.c:13
FLA_Error FLA_Axpy_external(FLA_Obj alpha, FLA_Obj A, FLA_Obj B)
Definition FLA_Axpy_external.c:13
FLA_Error FLA_Copy_external(FLA_Obj A, FLA_Obj B)
Definition FLA_Copy_external.c:13
FLA_Error FLA_Gemvc_external(FLA_Trans transa, FLA_Conj conjx, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
Definition FLA_Gemvc_external.c:13
FLA_Error FLA_Ger_external(FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj A)
Definition FLA_Ger_external.c:13
FLA_Obj FLA_MINUS_ONE
Definition FLA_Init.c:22
FLA_Obj FLA_ZERO
Definition FLA_Init.c:20
FLA_Obj FLA_ONE
Definition FLA_Init.c:18
FLA_Bool FLA_Obj_has_zero_dim(FLA_Obj A)
Definition FLA_Query.c:400
FLA_Bool FLA_Obj_equals(FLA_Obj A, FLA_Obj B)
Definition FLA_Query.c:507
FLA_Error FLA_Obj_create_conf_to(FLA_Trans trans, FLA_Obj old, FLA_Obj *obj)
Definition FLA_Obj.c:286
FLA_Error FLA_Obj_free(FLA_Obj *obj)
Definition FLA_Obj.c:588
Definition FLA_type_defs.h:159

References FLA_Axpy_external(), FLA_Copy_external(), FLA_Gemvc_external(), FLA_Ger_external(), FLA_Inv_scalc_external(), FLA_MINUS_ONE, FLA_Obj_create_conf_to(), FLA_Obj_equals(), FLA_Obj_free(), FLA_Obj_has_zero_dim(), FLA_ONE, and FLA_ZERO.