libflame revision_anchor
Functions
FLASH_SA_LU.c File Reference

(r)

Functions

FLA_Error FLASH_SA_LU (FLA_Obj B, FLA_Obj C, FLA_Obj D, FLA_Obj E, FLA_Obj p, FLA_Obj L, dim_t nb_alg, fla_lu_t *cntl)
 

Function Documentation

◆ FLASH_SA_LU()

FLA_Error FLASH_SA_LU ( FLA_Obj  B,
FLA_Obj  C,
FLA_Obj  D,
FLA_Obj  E,
FLA_Obj  p,
FLA_Obj  L,
dim_t  nb_alg,
fla_lu_t cntl 
)
15{
16 FLA_Obj DT, D0,
17 DB, D1,
18 D2;
19
20 FLA_Obj ET, E0,
21 EB, E1,
22 E2;
23
24 FLA_Obj pT, p0,
25 pB, p1,
26 p2;
27
28 FLA_Obj LT, L0,
29 LB, L1,
30 L2;
31
32 FLA_Part_2x1( D, &DT,
33 &DB, 0, FLA_TOP );
34
35 FLA_Part_2x1( E, &ET,
36 &EB, 0, FLA_TOP );
37
38 FLA_Part_2x1( p, &pT,
39 &pB, 0, FLA_TOP );
40
41 FLA_Part_2x1( L, &LT,
42 &LB, 0, FLA_TOP );
43
44 while ( FLA_Obj_length( DT ) < FLA_Obj_length( D ) )
45 {
47 /* ** */ /* ** */
48 &D1,
49 DB, &D2, 1, FLA_BOTTOM );
50
52 /* ** */ /* ** */
53 &E1,
54 EB, &E2, 1, FLA_BOTTOM );
55
57 /* ** */ /* ** */
58 &p1,
59 pB, &p2, 1, FLA_BOTTOM );
60
62 /* ** */ /* ** */
63 &L1,
64 LB, &L2, 1, FLA_BOTTOM );
65
66 /*------------------------------------------------------------*/
67
69 {
70 // Enqueue
75 nb_alg,
76 FLA_Cntl_sub_lu( cntl ) );
77 }
78 else
79 {
80 // Execute leaf
85 nb_alg,
86 FLA_Cntl_sub_lu( cntl ) );
87 }
88
90 D1, p1, C,
91 E1, nb_alg, FLA_Cntl_sub_gemm1( cntl ) );
92
93 /*------------------------------------------------------------*/
94
96 D1,
97 /* ** */ /* ** */
98 &DB, D2, FLA_TOP );
99
101 E1,
102 /* ** */ /* ** */
103 &EB, E2, FLA_TOP );
104
106 p1,
107 /* ** */ /* ** */
108 &pB, p2, FLA_TOP );
109
111 L1,
112 /* ** */ /* ** */
113 &LB, L2, FLA_TOP );
114 }
115
116 return FLA_SUCCESS;
117}
FLA_Bool FLASH_Queue_get_enabled(void)
Definition FLASH_Queue.c:171
FLA_Error FLASH_SA_FS(FLA_Obj L, FLA_Obj D, FLA_Obj p, FLA_Obj C, FLA_Obj E, dim_t nb_alg, fla_gemm_t *cntl)
Definition FLASH_SA_FS.c:13
FLA_Error FLA_SA_LU_task(FLA_Obj U, FLA_Obj D, FLA_Obj p, FLA_Obj L, dim_t nb_alg, fla_lu_t *cntl)
Definition FLA_SA_LU_task.c:13
FLA_Error FLA_Cont_with_3x1_to_2x1(FLA_Obj *AT, FLA_Obj A0, FLA_Obj A1, FLA_Obj *AB, FLA_Obj A2, FLA_Side side)
Definition FLA_View.c:428
FLA_Error FLA_Repart_2x1_to_3x1(FLA_Obj AT, FLA_Obj *A0, FLA_Obj *A1, FLA_Obj AB, FLA_Obj *A2, dim_t mb, FLA_Side side)
Definition FLA_View.c:226
FLA_Error FLA_Part_2x1(FLA_Obj A, FLA_Obj *A1, FLA_Obj *A2, dim_t mb, FLA_Side side)
Definition FLA_View.c:76
dim_t FLA_Obj_length(FLA_Obj obj)
Definition FLA_Query.c:116
int i
Definition bl1_axmyv2.c:145
Definition FLA_type_defs.h:159

References FLA_Cont_with_3x1_to_2x1(), FLA_Obj_length(), FLA_Part_2x1(), FLA_Repart_2x1_to_3x1(), FLA_SA_LU_task(), FLASH_Queue_get_enabled(), FLASH_SA_FS(), and i.

Referenced by FLASH_LU_incpiv_var1(), and FLASH_LU_incpiv_var2().