libflame revision_anchor
Functions
FLA_Sylv_nn_opt_var1.c File Reference

(r)

Functions

FLA_Error FLA_Sylv_nn_opt_var1 (FLA_Obj isgn, FLA_Obj A, FLA_Obj B, FLA_Obj C, FLA_Obj scale)
 
FLA_Error FLA_Sylv_nn_ops_var1 (float sgn, int m_C, int n_C, float *buff_A, int rs_A, int cs_A, float *buff_B, int rs_B, int cs_B, float *buff_C, int rs_C, int cs_C, float *buff_scale, int *info)
 
FLA_Error FLA_Sylv_nn_opd_var1 (double sgn, int m_C, int n_C, double *buff_A, int rs_A, int cs_A, double *buff_B, int rs_B, int cs_B, double *buff_C, int rs_C, int cs_C, double *buff_scale, int *info)
 
FLA_Error FLA_Sylv_nn_opc_var1 (float sgn, int m_C, int n_C, scomplex *buff_A, int rs_A, int cs_A, scomplex *buff_B, int rs_B, int cs_B, scomplex *buff_C, int rs_C, int cs_C, scomplex *buff_scale, int *info)
 
FLA_Error FLA_Sylv_nn_opz_var1 (double sgn, int m_C, int n_C, dcomplex *buff_A, int rs_A, int cs_A, dcomplex *buff_B, int rs_B, int cs_B, dcomplex *buff_C, int rs_C, int cs_C, dcomplex *buff_scale, int *info)
 

Function Documentation

◆ FLA_Sylv_nn_opc_var1()

FLA_Error FLA_Sylv_nn_opc_var1 ( float  sgn,
int  m_C,
int  n_C,
scomplex buff_A,
int  rs_A,
int  cs_A,
scomplex buff_B,
int  rs_B,
int  cs_B,
scomplex buff_C,
int  rs_C,
int  cs_C,
scomplex buff_scale,
int info 
)
262{
263 int l, k;
264
265 for ( l = 0; l < n_C; l++ )
266 {
267 for ( k = m_C - 1; k >= 0; k-- )
268 {
269 scomplex* a12t = buff_A + (k+1)*cs_A + (k )*rs_A;
270 scomplex* b01 = buff_B + (l )*cs_B + (0 )*rs_B;
271 scomplex* c10t = buff_C + (0 )*cs_C + (k )*rs_C;
272 scomplex* c21 = buff_C + (l )*cs_C + (k+1)*rs_C;
273 scomplex* alpha11 = buff_A + (k )*cs_A + (k )*rs_A;
274 scomplex* beta11 = buff_B + (l )*cs_B + (l )*rs_B;
275 scomplex* ckl = buff_C + (l )*cs_C + (k )*rs_C;
281
282 int m_behind = m_C - k - 1;
283 int n_behind = l;
284
285 /*------------------------------------------------------------*/
286
288 m_behind,
289 a12t, cs_A,
290 c21, rs_C,
291 &suml );
292
294 n_behind,
295 c10t, cs_C,
296 b01, rs_B,
297 &sumr );
298
299 vec.real = ckl->real - ( suml.real + sgn * sumr.real );
300 vec.imag = ckl->imag - ( suml.imag + sgn * sumr.imag );
301
302 a11.real = alpha11->real + sgn * beta11->real;
303 a11.imag = alpha11->imag + sgn * beta11->imag;
304
305 bl1_cdiv3( &vec, &a11, &x11 );
306
307 *ckl = x11;
308
309 /*------------------------------------------------------------*/
310
311 }
312 }
313
314 return FLA_SUCCESS;
315}
int i
Definition bl1_axmyv2.c:145
void bl1_cdot(conj1_t conj, int n, scomplex *x, int incx, scomplex *y, int incy, scomplex *rho)
Definition bl1_dot.c:39
@ BLIS1_NO_CONJUGATE
Definition blis_type_defs.h:81
Definition blis_type_defs.h:133

References bl1_cdot(), BLIS1_NO_CONJUGATE, and i.

Referenced by FLA_Sylv_nn_opt_var1().

◆ FLA_Sylv_nn_opd_var1()

FLA_Error FLA_Sylv_nn_opd_var1 ( double  sgn,
int  m_C,
int  n_C,
double buff_A,
int  rs_A,
int  cs_A,
double buff_B,
int  rs_B,
int  cs_B,
double buff_C,
int  rs_C,
int  cs_C,
double buff_scale,
int info 
)
199{
200 int l, k;
201
202 for ( l = 0; l < n_C; l++ )
203 {
204 for ( k = m_C - 1; k >= 0; k-- )
205 {
206 double* a12t = buff_A + (k+1)*cs_A + (k )*rs_A;
207 double* b01 = buff_B + (l )*cs_B + (0 )*rs_B;
208 double* c10t = buff_C + (0 )*cs_C + (k )*rs_C;
209 double* c21 = buff_C + (l )*cs_C + (k+1)*rs_C;
210 double* alpha11 = buff_A + (k )*cs_A + (k )*rs_A;
211 double* beta11 = buff_B + (l )*cs_B + (l )*rs_B;
212 double* ckl = buff_C + (l )*cs_C + (k )*rs_C;
213 double suml;
214 double sumr;
215 double vec;
216 double a11;
217 double x11;
218
219 int m_behind = m_C - k - 1;
220 int n_behind = l;
221
222 /*------------------------------------------------------------*/
223
225 m_behind,
226 a12t, cs_A,
227 c21, rs_C,
228 &suml );
229
231 n_behind,
232 c10t, cs_C,
233 b01, rs_B,
234 &sumr );
235
236 vec = (*ckl) - ( suml + sgn * sumr );
237
238 a11 = (*alpha11) + sgn * (*beta11);
239
240 bl1_ddiv3( &vec, &a11, &x11 );
241
242 *ckl = x11;
243
244 /*------------------------------------------------------------*/
245
246 }
247 }
248
249 return FLA_SUCCESS;
250}
void bl1_ddot(conj1_t conj, int n, double *x, int incx, double *y, int incy, double *rho)
Definition bl1_dot.c:26

References bl1_ddot(), BLIS1_NO_CONJUGATE, and i.

Referenced by FLA_Sylv_nn_opt_var1().

◆ FLA_Sylv_nn_ops_var1()

FLA_Error FLA_Sylv_nn_ops_var1 ( float  sgn,
int  m_C,
int  n_C,
float buff_A,
int  rs_A,
int  cs_A,
float buff_B,
int  rs_B,
int  cs_B,
float buff_C,
int  rs_C,
int  cs_C,
float buff_scale,
int info 
)
136{
137 int l, k;
138
139 for ( l = 0; l < n_C; l++ )
140 {
141 for ( k = m_C - 1; k >= 0; k-- )
142 {
143 float* a12t = buff_A + (k+1)*cs_A + (k )*rs_A;
144 float* b01 = buff_B + (l )*cs_B + (0 )*rs_B;
145 float* c10t = buff_C + (0 )*cs_C + (k )*rs_C;
146 float* c21 = buff_C + (l )*cs_C + (k+1)*rs_C;
147 float* alpha11 = buff_A + (k )*cs_A + (k )*rs_A;
148 float* beta11 = buff_B + (l )*cs_B + (l )*rs_B;
149 float* ckl = buff_C + (l )*cs_C + (k )*rs_C;
150 float suml;
151 float sumr;
152 float vec;
153 float a11;
154 float x11;
155
156 int m_behind = m_C - k - 1;
157 int n_behind = l;
158
159 /*------------------------------------------------------------*/
160
162 m_behind,
163 a12t, cs_A,
164 c21, rs_C,
165 &suml );
166
168 n_behind,
169 c10t, cs_C,
170 b01, rs_B,
171 &sumr );
172
173 vec = (*ckl) - ( suml + sgn * sumr );
174
175 a11 = (*alpha11) + sgn * (*beta11);
176
177 bl1_sdiv3( &vec, &a11, &x11 );
178
179 *ckl = x11;
180
181 /*------------------------------------------------------------*/
182
183 }
184 }
185
186 return FLA_SUCCESS;
187}
void bl1_sdot(conj1_t conj, int n, float *x, int incx, float *y, int incy, float *rho)
Definition bl1_dot.c:13

References bl1_sdot(), BLIS1_NO_CONJUGATE, and i.

Referenced by FLA_Sylv_nn_opt_var1().

◆ FLA_Sylv_nn_opt_var1()

FLA_Error FLA_Sylv_nn_opt_var1 ( FLA_Obj  isgn,
FLA_Obj  A,
FLA_Obj  B,
FLA_Obj  C,
FLA_Obj  scale 
)
14{
15 FLA_Datatype datatype;
16 int m_C, n_C;
17 int rs_A, cs_A;
18 int rs_B, cs_B;
19 int rs_C, cs_C;
20 int info;
21
22 datatype = FLA_Obj_datatype( A );
23
26
29
30 m_C = FLA_Obj_length( C );
31 n_C = FLA_Obj_width( C );
34
35
36 switch ( datatype )
37 {
38 case FLA_FLOAT:
39 {
40 int* buff_isgn = FLA_INT_PTR( isgn );
41 float* buff_A = FLA_FLOAT_PTR( A );
42 float* buff_B = FLA_FLOAT_PTR( B );
43 float* buff_C = FLA_FLOAT_PTR( C );
44 float* buff_scale = FLA_FLOAT_PTR( scale );
45 float sgn = ( float ) *buff_isgn;
46
48 m_C,
49 n_C,
54 &info );
55
56 break;
57 }
58
59 case FLA_DOUBLE:
60 {
61 int* buff_isgn = FLA_INT_PTR( isgn );
62 double* buff_A = FLA_DOUBLE_PTR( A );
63 double* buff_B = FLA_DOUBLE_PTR( B );
64 double* buff_C = FLA_DOUBLE_PTR( C );
65 double* buff_scale = FLA_DOUBLE_PTR( scale );
66 double sgn = ( double ) *buff_isgn;
67
69 m_C,
70 n_C,
75 &info );
76
77 break;
78 }
79
80 case FLA_COMPLEX:
81 {
82 int* buff_isgn = FLA_INT_PTR( isgn );
87 float sgn = ( float ) *buff_isgn;
88
90 m_C,
91 n_C,
96 &info );
97
98 break;
99 }
100
102 {
103 int* buff_isgn = FLA_INT_PTR( isgn );
108 double sgn = ( double ) *buff_isgn;
109
111 m_C,
112 n_C,
113 buff_A, rs_A, cs_A,
114 buff_B, rs_B, cs_B,
115 buff_C, rs_C, cs_C,
117 &info );
118
119 break;
120 }
121 }
122
123 return FLA_SUCCESS;
124}
FLA_Error FLA_Sylv_nn_opd_var1(double sgn, int m_C, int n_C, double *buff_A, int rs_A, int cs_A, double *buff_B, int rs_B, int cs_B, double *buff_C, int rs_C, int cs_C, double *buff_scale, int *info)
Definition FLA_Sylv_nn_opt_var1.c:191
FLA_Error FLA_Sylv_nn_opc_var1(float sgn, int m_C, int n_C, scomplex *buff_A, int rs_A, int cs_A, scomplex *buff_B, int rs_B, int cs_B, scomplex *buff_C, int rs_C, int cs_C, scomplex *buff_scale, int *info)
Definition FLA_Sylv_nn_opt_var1.c:254
FLA_Error FLA_Sylv_nn_opz_var1(double sgn, int m_C, int n_C, dcomplex *buff_A, int rs_A, int cs_A, dcomplex *buff_B, int rs_B, int cs_B, dcomplex *buff_C, int rs_C, int cs_C, dcomplex *buff_scale, int *info)
Definition FLA_Sylv_nn_opt_var1.c:319
FLA_Error FLA_Sylv_nn_ops_var1(float sgn, int m_C, int n_C, float *buff_A, int rs_A, int cs_A, float *buff_B, int rs_B, int cs_B, float *buff_C, int rs_C, int cs_C, float *buff_scale, int *info)
Definition FLA_Sylv_nn_opt_var1.c:128
dim_t FLA_Obj_width(FLA_Obj obj)
Definition FLA_Query.c:123
dim_t FLA_Obj_row_stride(FLA_Obj obj)
Definition FLA_Query.c:167
dim_t FLA_Obj_length(FLA_Obj obj)
Definition FLA_Query.c:116
dim_t FLA_Obj_col_stride(FLA_Obj obj)
Definition FLA_Query.c:174
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition FLA_Query.c:13
int FLA_Datatype
Definition FLA_type_defs.h:49
Definition blis_type_defs.h:138

References FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_width(), FLA_Sylv_nn_opc_var1(), FLA_Sylv_nn_opd_var1(), FLA_Sylv_nn_ops_var1(), FLA_Sylv_nn_opz_var1(), and i.

Referenced by FLA_Sylv_nn(), FLA_Sylv_nn_opt_var10(), FLA_Sylv_nn_opt_var11(), FLA_Sylv_nn_opt_var12(), FLA_Sylv_nn_opt_var13(), FLA_Sylv_nn_opt_var14(), FLA_Sylv_nn_opt_var15(), FLA_Sylv_nn_opt_var16(), FLA_Sylv_nn_opt_var17(), FLA_Sylv_nn_opt_var18(), FLA_Sylv_nn_opt_var2(), FLA_Sylv_nn_opt_var3(), FLA_Sylv_nn_opt_var4(), FLA_Sylv_nn_opt_var5(), FLA_Sylv_nn_opt_var6(), FLA_Sylv_nn_opt_var7(), FLA_Sylv_nn_opt_var8(), and FLA_Sylv_nn_opt_var9().

◆ FLA_Sylv_nn_opz_var1()

FLA_Error FLA_Sylv_nn_opz_var1 ( double  sgn,
int  m_C,
int  n_C,
dcomplex buff_A,
int  rs_A,
int  cs_A,
dcomplex buff_B,
int  rs_B,
int  cs_B,
dcomplex buff_C,
int  rs_C,
int  cs_C,
dcomplex buff_scale,
int info 
)
327{
328 int l, k;
329
330 for ( l = 0; l < n_C; l++ )
331 {
332 for ( k = m_C - 1; k >= 0; k-- )
333 {
334 dcomplex* a12t = buff_A + (k+1)*cs_A + (k )*rs_A;
335 dcomplex* b01 = buff_B + (l )*cs_B + (0 )*rs_B;
336 dcomplex* c10t = buff_C + (0 )*cs_C + (k )*rs_C;
337 dcomplex* c21 = buff_C + (l )*cs_C + (k+1)*rs_C;
338 dcomplex* alpha11 = buff_A + (k )*cs_A + (k )*rs_A;
339 dcomplex* beta11 = buff_B + (l )*cs_B + (l )*rs_B;
340 dcomplex* ckl = buff_C + (l )*cs_C + (k )*rs_C;
346
347 int m_behind = m_C - k - 1;
348 int n_behind = l;
349
350 /*------------------------------------------------------------*/
351
353 m_behind,
354 a12t, cs_A,
355 c21, rs_C,
356 &suml );
357
359 n_behind,
360 c10t, cs_C,
361 b01, rs_B,
362 &sumr );
363
364 vec.real = ckl->real - ( suml.real + sgn * sumr.real );
365 vec.imag = ckl->imag - ( suml.imag + sgn * sumr.imag );
366
367 a11.real = alpha11->real + sgn * beta11->real;
368 a11.imag = alpha11->imag + sgn * beta11->imag;
369
370 bl1_zdiv3( &vec, &a11, &x11 );
371
372 *ckl = x11;
373
374 /*------------------------------------------------------------*/
375
376 }
377 }
378
379 return FLA_SUCCESS;
380}
void bl1_zdot(conj1_t conj, int n, dcomplex *x, int incx, dcomplex *y, int incy, dcomplex *rho)
Definition bl1_dot.c:65

References bl1_zdot(), BLIS1_NO_CONJUGATE, and i.

Referenced by FLA_Sylv_nn_opt_var1().