libflame  revision_anchor
Functions
FLA_Trinv_lu_opt_var1.c File Reference

(r)

Functions

FLA_Error FLA_Trinv_lu_opt_var1 (FLA_Obj A)
 
FLA_Error FLA_Trinv_lu_ops_var1 (int mn_A, float *buff_A, int rs_A, int cs_A)
 
FLA_Error FLA_Trinv_lu_opd_var1 (int mn_A, double *buff_A, int rs_A, int cs_A)
 
FLA_Error FLA_Trinv_lu_opc_var1 (int mn_A, scomplex *buff_A, int rs_A, int cs_A)
 
FLA_Error FLA_Trinv_lu_opz_var1 (int mn_A, dcomplex *buff_A, int rs_A, int cs_A)
 

Function Documentation

◆ FLA_Trinv_lu_opc_var1()

FLA_Error FLA_Trinv_lu_opc_var1 ( int  mn_A,
scomplex buff_A,
int  rs_A,
int  cs_A 
)

References bl1_cscalv(), bl1_ctrmv(), BLIS1_LOWER_TRIANGULAR, BLIS1_NO_CONJUGATE, BLIS1_TRANSPOSE, BLIS1_UNIT_DIAG, FLA_MINUS_ONE, and i.

Referenced by FLA_Trinv_lu_opt_var1().

154 {
155  scomplex* buff_m1 = FLA_COMPLEX_PTR( FLA_MINUS_ONE );
156  int i;
157 
158  for ( i = 0; i < mn_A; ++i )
159  {
160  scomplex* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
161  scomplex* a10t = buff_A + (0 )*cs_A + (i )*rs_A;
162 
163  int mn_behind = i;
164 
165  /*------------------------------------------------------------*/
166 
167  // FLA_Trmv_external( FLA_LOWER_TRIANGULAR, FLA_TRANSPOSE, FLA_UNIT_DIAG, A00, a10t );
171  mn_behind,
172  A00, rs_A, cs_A,
173  a10t, cs_A );
174 
175  // FLA_Scal_external( FLA_MINUS_ONE, a10t );
177  mn_behind,
178  buff_m1,
179  a10t, cs_A );
180 
181  /*------------------------------------------------------------*/
182 
183  }
184 
185  return FLA_SUCCESS;
186 }
void bl1_cscalv(conj1_t conj, int n, scomplex *alpha, scomplex *x, int incx)
Definition: bl1_scalv.c:46
FLA_Obj FLA_MINUS_ONE
Definition: FLA_Init.c:22
Definition: blis_type_defs.h:81
Definition: blis_type_defs.h:55
Definition: blis_type_defs.h:75
Definition: blis_type_defs.h:132
int i
Definition: bl1_axmyv2.c:145
void bl1_ctrmv(uplo1_t uplo, trans1_t trans, diag1_t diag, int m, scomplex *a, int a_rs, int a_cs, scomplex *x, int incx)
Definition: bl1_trmv.c:99
Definition: blis_type_defs.h:62

◆ FLA_Trinv_lu_opd_var1()

FLA_Error FLA_Trinv_lu_opd_var1 ( int  mn_A,
double *  buff_A,
int  rs_A,
int  cs_A 
)

References bl1_dscalv(), bl1_dtrmv(), BLIS1_LOWER_TRIANGULAR, BLIS1_NO_CONJUGATE, BLIS1_TRANSPOSE, BLIS1_UNIT_DIAG, FLA_MINUS_ONE, and i.

Referenced by FLA_Trinv_lu_opt_var1().

116 {
117  double* buff_m1 = FLA_DOUBLE_PTR( FLA_MINUS_ONE );
118  int i;
119 
120  for ( i = 0; i < mn_A; ++i )
121  {
122  double* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
123  double* a10t = buff_A + (0 )*cs_A + (i )*rs_A;
124 
125  int mn_behind = i;
126 
127  /*------------------------------------------------------------*/
128 
129  // FLA_Trmv_external( FLA_LOWER_TRIANGULAR, FLA_TRANSPOSE, FLA_UNIT_DIAG, A00, a10t );
133  mn_behind,
134  A00, rs_A, cs_A,
135  a10t, cs_A );
136 
137  // FLA_Scal_external( FLA_MINUS_ONE, a10t );
139  mn_behind,
140  buff_m1,
141  a10t, cs_A );
142 
143  /*------------------------------------------------------------*/
144 
145  }
146 
147  return FLA_SUCCESS;
148 }
FLA_Obj FLA_MINUS_ONE
Definition: FLA_Init.c:22
Definition: blis_type_defs.h:81
void bl1_dtrmv(uplo1_t uplo, trans1_t trans, diag1_t diag, int m, double *a, int a_rs, int a_cs, double *x, int incx)
Definition: bl1_trmv.c:56
Definition: blis_type_defs.h:55
Definition: blis_type_defs.h:75
void bl1_dscalv(conj1_t conj, int n, double *alpha, double *x, int incx)
Definition: bl1_scalv.c:24
int i
Definition: bl1_axmyv2.c:145
Definition: blis_type_defs.h:62

◆ FLA_Trinv_lu_ops_var1()

FLA_Error FLA_Trinv_lu_ops_var1 ( int  mn_A,
float *  buff_A,
int  rs_A,
int  cs_A 
)

References bl1_sscalv(), bl1_strmv(), BLIS1_LOWER_TRIANGULAR, BLIS1_NO_CONJUGATE, BLIS1_TRANSPOSE, BLIS1_UNIT_DIAG, FLA_MINUS_ONE, and i.

Referenced by FLA_Trinv_lu_opt_var1().

78 {
79  float* buff_m1 = FLA_FLOAT_PTR( FLA_MINUS_ONE );
80  int i;
81 
82  for ( i = 0; i < mn_A; ++i )
83  {
84  float* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
85  float* a10t = buff_A + (0 )*cs_A + (i )*rs_A;
86 
87  int mn_behind = i;
88 
89  /*------------------------------------------------------------*/
90 
91  // FLA_Trmv_external( FLA_LOWER_TRIANGULAR, FLA_TRANSPOSE, FLA_UNIT_DIAG, A00, a10t );
95  mn_behind,
96  A00, rs_A, cs_A,
97  a10t, cs_A );
98 
99  // FLA_Scal_external( FLA_MINUS_ONE, a10t );
101  mn_behind,
102  buff_m1,
103  a10t, cs_A );
104 
105  /*------------------------------------------------------------*/
106 
107  }
108 
109  return FLA_SUCCESS;
110 }
FLA_Obj FLA_MINUS_ONE
Definition: FLA_Init.c:22
Definition: blis_type_defs.h:81
Definition: blis_type_defs.h:55
Definition: blis_type_defs.h:75
void bl1_strmv(uplo1_t uplo, trans1_t trans, diag1_t diag, int m, float *a, int a_rs, int a_cs, float *x, int incx)
Definition: bl1_trmv.c:13
void bl1_sscalv(conj1_t conj, int n, float *alpha, float *x, int incx)
Definition: bl1_scalv.c:13
int i
Definition: bl1_axmyv2.c:145
Definition: blis_type_defs.h:62

◆ FLA_Trinv_lu_opt_var1()

FLA_Error FLA_Trinv_lu_opt_var1 ( FLA_Obj  A)

References FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Trinv_lu_opc_var1(), FLA_Trinv_lu_opd_var1(), FLA_Trinv_lu_ops_var1(), and FLA_Trinv_lu_opz_var1().

Referenced by FLA_Trinv_lu().

16 {
17  FLA_Datatype datatype;
18  int mn_A;
19  int rs_A, cs_A;
20 
21  datatype = FLA_Obj_datatype( A );
22 
23  mn_A = FLA_Obj_length( A );
24  rs_A = FLA_Obj_row_stride( A );
25  cs_A = FLA_Obj_col_stride( A );
26 
27 
28  switch ( datatype )
29  {
30  case FLA_FLOAT:
31  {
32  float* buff_A = FLA_FLOAT_PTR( A );
33 
35  buff_A, rs_A, cs_A );
36 
37  break;
38  }
39 
40  case FLA_DOUBLE:
41  {
42  double* buff_A = FLA_DOUBLE_PTR( A );
43 
45  buff_A, rs_A, cs_A );
46 
47  break;
48  }
49 
50  case FLA_COMPLEX:
51  {
52  scomplex* buff_A = FLA_COMPLEX_PTR( A );
53 
55  buff_A, rs_A, cs_A );
56 
57  break;
58  }
59 
60  case FLA_DOUBLE_COMPLEX:
61  {
62  dcomplex* buff_A = FLA_DOUBLE_COMPLEX_PTR( A );
63 
65  buff_A, rs_A, cs_A );
66 
67  break;
68  }
69  }
70 
71  return FLA_SUCCESS;
72 }
FLA_Error FLA_Trinv_lu_opd_var1(int mn_A, double *buff_A, int rs_A, int cs_A)
Definition: FLA_Trinv_lu_opt_var1.c:114
dim_t FLA_Obj_row_stride(FLA_Obj obj)
Definition: FLA_Query.c:167
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition: FLA_Query.c:13
Definition: blis_type_defs.h:132
FLA_Error FLA_Trinv_lu_opc_var1(int mn_A, scomplex *buff_A, int rs_A, int cs_A)
Definition: FLA_Trinv_lu_opt_var1.c:152
int FLA_Datatype
Definition: FLA_type_defs.h:49
dim_t FLA_Obj_col_stride(FLA_Obj obj)
Definition: FLA_Query.c:174
FLA_Error FLA_Trinv_lu_opz_var1(int mn_A, dcomplex *buff_A, int rs_A, int cs_A)
Definition: FLA_Trinv_lu_opt_var1.c:190
FLA_Error FLA_Trinv_lu_ops_var1(int mn_A, float *buff_A, int rs_A, int cs_A)
Definition: FLA_Trinv_lu_opt_var1.c:76
dim_t FLA_Obj_length(FLA_Obj obj)
Definition: FLA_Query.c:116
Definition: blis_type_defs.h:137

◆ FLA_Trinv_lu_opz_var1()

FLA_Error FLA_Trinv_lu_opz_var1 ( int  mn_A,
dcomplex buff_A,
int  rs_A,
int  cs_A 
)

References bl1_zscalv(), bl1_ztrmv(), BLIS1_LOWER_TRIANGULAR, BLIS1_NO_CONJUGATE, BLIS1_TRANSPOSE, BLIS1_UNIT_DIAG, FLA_MINUS_ONE, and i.

Referenced by FLA_Trinv_lu_opt_var1().

192 {
193  dcomplex* buff_m1 = FLA_DOUBLE_COMPLEX_PTR( FLA_MINUS_ONE );
194  int i;
195 
196  for ( i = 0; i < mn_A; ++i )
197  {
198  dcomplex* A00 = buff_A + (0 )*cs_A + (0 )*rs_A;
199  dcomplex* a10t = buff_A + (0 )*cs_A + (i )*rs_A;
200 
201  int mn_behind = i;
202 
203  /*------------------------------------------------------------*/
204 
205  // FLA_Trmv_external( FLA_LOWER_TRIANGULAR, FLA_TRANSPOSE, FLA_UNIT_DIAG, A00, a10t );
209  mn_behind,
210  A00, rs_A, cs_A,
211  a10t, cs_A );
212 
213  // FLA_Scal_external( FLA_MINUS_ONE, a10t );
215  mn_behind,
216  buff_m1,
217  a10t, cs_A );
218 
219  /*------------------------------------------------------------*/
220 
221  }
222 
223  return FLA_SUCCESS;
224 }
FLA_Obj FLA_MINUS_ONE
Definition: FLA_Init.c:22
void bl1_zscalv(conj1_t conj, int n, dcomplex *alpha, dcomplex *x, int incx)
Definition: bl1_scalv.c:72
Definition: blis_type_defs.h:81
Definition: blis_type_defs.h:55
Definition: blis_type_defs.h:75
void bl1_ztrmv(uplo1_t uplo, trans1_t trans, diag1_t diag, int m, dcomplex *a, int a_rs, int a_cs, dcomplex *x, int incx)
Definition: bl1_trmv.c:177
int i
Definition: bl1_axmyv2.c:145
Definition: blis_type_defs.h:62
Definition: blis_type_defs.h:137