libflame revision_anchor
Functions
FLA_Apply_H2_UT_piv_row.c File Reference

(r)

Functions

FLA_Error FLA_Apply_H2_UT_piv_row (FLA_Obj tau, FLA_Obj a1t, FLA_Obj u1t, FLA_Obj W, FLA_Obj u2, FLA_Obj A2, FLA_Obj U2, FLA_Obj w1t, FLA_Obj vt)
 

Function Documentation

◆ FLA_Apply_H2_UT_piv_row()

FLA_Error FLA_Apply_H2_UT_piv_row ( FLA_Obj  tau,
FLA_Obj  a1t,
FLA_Obj  u1t,
FLA_Obj  W,
FLA_Obj  u2,
FLA_Obj  A2,
FLA_Obj  U2,
FLA_Obj  w1t,
FLA_Obj  vt 
)
50{
51 // a1t -= u1t W = 1 a1t -1 W^T u1t;
54
55 // w1t := a1t;
57
58 // w1t += u2' A2 = 1 w1t + 1 A2^T conj(u2);
60
61 if ( FLA_Obj_min_dim( U2 ) > 0 )
62 {
64
65 // Partition the workspace (a row vector matching the width of a1t)
67
68 // vt := u2'U2 = 0 vt + 1 U2^T conj(u2);
70 FLA_ONE, U2, u2, FLA_ZERO, vt );
71
72 // w1t -= - vt W = 1 w1t -1 W^T vt;
75 }
76
77 // w1t = w1t / tau;
79
80 // a1t = a1t - w1t;
82
83 return FLA_SUCCESS;
84}
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_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
dim_t FLA_Obj_width(FLA_Obj obj)
Definition FLA_Query.c:123
FLA_Error FLA_Part_1x2(FLA_Obj A, FLA_Obj *A1, FLA_Obj *A2, dim_t nb, FLA_Side side)
Definition FLA_View.c:110
dim_t FLA_Obj_min_dim(FLA_Obj obj)
Definition FLA_Query.c:153
int i
Definition bl1_axmyv2.c:145
Definition FLA_type_defs.h:159

References FLA_Axpy_external(), FLA_Copy_external(), FLA_Gemvc_external(), FLA_Inv_scalc_external(), FLA_MINUS_ONE, FLA_Obj_min_dim(), FLA_Obj_width(), FLA_ONE, FLA_Part_1x2(), FLA_ZERO, and i.

Referenced by FLA_QR_UT_piv_unb_var2().