164 int is_ident23_k1, is_ident34_k1;
165 int is_ident12_k2, is_ident23_k2;
176 if ( nG < 2*k_minus_1 || k_G == 1 )
182 buff_A, rs_A, cs_A );
189 for ( j = -1; j < k_minus_1; j += n_fuse )
192 n_iter = nG_app / k_fuse;
196 for (
i = 0, k = 0, g = j;
i < n_iter; ++
i, k += k_fuse, g -= n_fuse )
198 g23_k1 = buff_G + (g )*rs_G + (k )*cs_G;
199 g34_k1 = buff_G + (g + 1)*rs_G + (k )*cs_G;
200 g12_k2 = buff_G + (g - 1)*rs_G + (k + 1)*cs_G;
201 g23_k2 = buff_G + (g )*rs_G + (k + 1)*cs_G;
202 a1 = buff_A + (g - 1)*cs_A;
203 a2 = buff_A + (g )*cs_A;
204 a3 = buff_A + (g + 1)*cs_A;
205 a4 = buff_A + (g + 2)*cs_A;
207 gamma23_k1 = g23_k1->
real;
208 sigma23_k1 = g23_k1->
imag;
209 gamma34_k1 = g34_k1->
real;
210 sigma34_k1 = g34_k1->
imag;
211 gamma12_k2 = g12_k2->
real;
212 sigma12_k2 = g12_k2->
imag;
213 gamma23_k2 = g23_k2->
real;
214 sigma23_k2 = g23_k2->
imag;
216 is_ident23_k1 = ( gamma23_k1 == one && sigma23_k1 == zero );
217 is_ident34_k1 = ( gamma34_k1 == one && sigma34_k1 == zero );
218 is_ident12_k2 = ( gamma12_k2 == one && sigma12_k2 == zero );
219 is_ident23_k2 = ( gamma23_k2 == one && sigma23_k2 == zero );
220 has_ident = ( is_ident23_k1 || is_ident34_k1 ||
221 is_ident12_k2 || is_ident23_k2 );
223 m_app = min( i_k + 3 + j - iTL, m_A );
224 m_app = max( m_app, 0 );
230 if ( !is_ident23_k1 )
231 MAC_Apply_G_mx2_asd( m_app,
237 if ( !is_ident34_k1 )
238 MAC_Apply_G_mx2_asd( m_app,
244 if ( !is_ident12_k2 )
245 MAC_Apply_G_mx2_asd( m_app,
251 if ( !is_ident23_k2 )
252 MAC_Apply_G_mx2_asd( m_app,
262 MAC_Apply_G_mx4s_asd( m_app,
280 g34_k1 = buff_G + (g + 1)*rs_G + (k )*cs_G;
281 a3 = buff_A + (g + 1)*cs_A;
282 a4 = buff_A + (g + 2)*cs_A;
284 gamma34_k1 = g34_k1->
real;
285 sigma34_k1 = g34_k1->
imag;
287 is_ident34_k1 = ( gamma34_k1 == one && sigma34_k1 == zero );
289 m_app = min( i_k + 3 + j - iTL, m_A );
290 m_app = max( m_app, 0 );
292 if ( !is_ident34_k1 )
293 MAC_Apply_G_mx2_asd( m_app,
303 for ( ; j < nG - 1; j += n_fuse )
306 n_iter = nG_app / k_fuse;
309 for (
i = 0, k = 0, g = j;
i < n_iter; ++
i, k += k_fuse, g -= n_fuse )
311 g23_k1 = buff_G + (g )*rs_G + (k )*cs_G;
312 g34_k1 = buff_G + (g + 1)*rs_G + (k )*cs_G;
313 g12_k2 = buff_G + (g - 1)*rs_G + (k + 1)*cs_G;
314 g23_k2 = buff_G + (g )*rs_G + (k + 1)*cs_G;
315 a1 = buff_A + (g - 1)*cs_A;
316 a2 = buff_A + (g )*cs_A;
317 a3 = buff_A + (g + 1)*cs_A;
318 a4 = buff_A + (g + 2)*cs_A;
320 gamma23_k1 = g23_k1->
real;
321 sigma23_k1 = g23_k1->
imag;
322 gamma34_k1 = g34_k1->
real;
323 sigma34_k1 = g34_k1->
imag;
324 gamma12_k2 = g12_k2->
real;
325 sigma12_k2 = g12_k2->
imag;
326 gamma23_k2 = g23_k2->
real;
327 sigma23_k2 = g23_k2->
imag;
329 is_ident23_k1 = ( gamma23_k1 == one && sigma23_k1 == zero );
330 is_ident34_k1 = ( gamma34_k1 == one && sigma34_k1 == zero );
331 is_ident12_k2 = ( gamma12_k2 == one && sigma12_k2 == zero );
332 is_ident23_k2 = ( gamma23_k2 == one && sigma23_k2 == zero );
333 has_ident = ( is_ident23_k1 || is_ident34_k1 ||
334 is_ident12_k2 || is_ident23_k2 );
336 m_app = min( i_k + 3 + j - iTL, m_A );
337 m_app = max( m_app, 0 );
343 if ( !is_ident23_k1 )
344 MAC_Apply_G_mx2_asd( m_app,
350 if ( !is_ident34_k1 )
351 MAC_Apply_G_mx2_asd( m_app,
357 if ( !is_ident12_k2 )
358 MAC_Apply_G_mx2_asd( m_app,
364 if ( !is_ident23_k2 )
365 MAC_Apply_G_mx2_asd( m_app,
375 MAC_Apply_G_mx4s_asd( m_app,
393 g23_k1 = buff_G + (g )*rs_G + (k )*cs_G;
394 g34_k1 = buff_G + (g + 1)*rs_G + (k )*cs_G;
395 a2 = buff_A + (g )*cs_A;
396 a3 = buff_A + (g + 1)*cs_A;
397 a4 = buff_A + (g + 2)*cs_A;
399 gamma23_k1 = g23_k1->
real;
400 sigma23_k1 = g23_k1->
imag;
401 gamma34_k1 = g34_k1->
real;
402 sigma34_k1 = g34_k1->
imag;
404 is_ident23_k1 = ( gamma23_k1 == one && sigma23_k1 == zero );
405 is_ident34_k1 = ( gamma34_k1 == one && sigma34_k1 == zero );
407 m_app = min( i_k + 3 + j - iTL, m_A );
408 m_app = max( m_app, 0 );
410 if ( !is_ident23_k1 && is_ident34_k1 )
412 MAC_Apply_G_mx2_asd( m_app,
418 else if ( is_ident23_k1 && !is_ident34_k1 )
420 MAC_Apply_G_mx2_asd( m_app,
428 MAC_Apply_G_mx3_asd( m_app,
442 for ( j = nG % n_fuse; j < k_G; j += n_fuse )
450 g23_k1 = buff_G + (g )*rs_G + (k )*cs_G;
451 a2 = buff_A + (g )*cs_A;
452 a3 = buff_A + (g + 1)*cs_A;
454 gamma23_k1 = g23_k1->
real;
455 sigma23_k1 = g23_k1->
imag;
457 is_ident23_k1 = ( gamma23_k1 == one && sigma23_k1 == zero );
461 if ( !is_ident23_k1 )
462 MAC_Apply_G_mx2_asd( m_app,
471 nG_app = k_minus_1 - j;
472 n_iter = nG_app / k_fuse;
475 for (
i = 0;
i < n_iter; ++
i, k += k_fuse, g -= n_fuse )
477 g23_k1 = buff_G + (g )*rs_G + (k )*cs_G;
478 g34_k1 = buff_G + (g + 1)*rs_G + (k )*cs_G;
479 g12_k2 = buff_G + (g - 1)*rs_G + (k + 1)*cs_G;
480 g23_k2 = buff_G + (g )*rs_G + (k + 1)*cs_G;
481 a1 = buff_A + (g - 1)*cs_A;
482 a2 = buff_A + (g )*cs_A;
483 a3 = buff_A + (g + 1)*cs_A;
484 a4 = buff_A + (g + 2)*cs_A;
486 gamma23_k1 = g23_k1->
real;
487 sigma23_k1 = g23_k1->
imag;
488 gamma34_k1 = g34_k1->
real;
489 sigma34_k1 = g34_k1->
imag;
490 gamma12_k2 = g12_k2->
real;
491 sigma12_k2 = g12_k2->
imag;
492 gamma23_k2 = g23_k2->
real;
493 sigma23_k2 = g23_k2->
imag;
495 is_ident23_k1 = ( gamma23_k1 == one && sigma23_k1 == zero );
496 is_ident34_k1 = ( gamma34_k1 == one && sigma34_k1 == zero );
497 is_ident12_k2 = ( gamma12_k2 == one && sigma12_k2 == zero );
498 is_ident23_k2 = ( gamma23_k2 == one && sigma23_k2 == zero );
499 has_ident = ( is_ident23_k1 || is_ident34_k1 ||
500 is_ident12_k2 || is_ident23_k2 );
508 if ( !is_ident23_k1 )
509 MAC_Apply_G_mx2_asd( m_app,
515 if ( !is_ident34_k1 )
516 MAC_Apply_G_mx2_asd( m_app,
522 if ( !is_ident12_k2 )
523 MAC_Apply_G_mx2_asd( m_app,
529 if ( !is_ident23_k2 )
530 MAC_Apply_G_mx2_asd( m_app,
540 MAC_Apply_G_mx4s_asd( m_app,
558 g23_k1 = buff_G + (g )*rs_G + (k )*cs_G;
559 g34_k1 = buff_G + (g + 1)*rs_G + (k )*cs_G;
560 a2 = buff_A + (g )*cs_A;
561 a3 = buff_A + (g + 1)*cs_A;
562 a4 = buff_A + (g + 2)*cs_A;
564 gamma23_k1 = g23_k1->
real;
565 sigma23_k1 = g23_k1->
imag;
566 gamma34_k1 = g34_k1->
real;
567 sigma34_k1 = g34_k1->
imag;
569 is_ident23_k1 = ( gamma23_k1 == one && sigma23_k1 == zero );
570 is_ident34_k1 = ( gamma34_k1 == one && sigma34_k1 == zero );
574 if ( !is_ident23_k1 && is_ident34_k1 )
576 MAC_Apply_G_mx2_asd( m_app,
582 else if ( is_ident23_k1 && !is_ident34_k1 )
584 MAC_Apply_G_mx2_asd( m_app,
592 MAC_Apply_G_mx3_asd( m_app,
FLA_Error FLA_Apply_G_rf_asd_var1(int k_G, int m_A, int n_A, dcomplex *buff_G, int rs_G, int cs_G, double *buff_A, int rs_A, int cs_A)
Definition: FLA_Apply_G_rf_asm_var1.c:164
int n_left
Definition: bl1_axmyv2.c:149
int i
Definition: bl1_axmyv2.c:145
double bl1_d0(void)
Definition: bl1_constants.c:118
double bl1_d1(void)
Definition: bl1_constants.c:54
Definition: blis_type_defs.h:138
double real
Definition: blis_type_defs.h:139
double imag
Definition: blis_type_defs.h:139