597 int is_ident23_k1, is_ident34_k1;
598 int is_ident12_k2, is_ident23_k2;
607 if ( nG < 2*k_minus_1 || k_G == 1 )
613 buff_A, rs_A, cs_A );
620 for ( j = -1; j < k_minus_1; j += n_fuse )
623 n_iter = nG_app / k_fuse;
626 for ( i = 0, k = 0, g = j; i < n_iter; ++
i, k += k_fuse, g -= n_fuse )
628 g23_k1 = buff_G + (g )*rs_G + (k )*cs_G;
629 g34_k1 = buff_G + (g + 1)*rs_G + (k )*cs_G;
630 g12_k2 = buff_G + (g - 1)*rs_G + (k + 1)*cs_G;
631 g23_k2 = buff_G + (g )*rs_G + (k + 1)*cs_G;
632 a1 = buff_A + (g - 1)*cs_A;
633 a2 = buff_A + (g )*cs_A;
634 a3 = buff_A + (g + 1)*cs_A;
635 a4 = buff_A + (g + 2)*cs_A;
637 gamma23_k1 = g23_k1->
real;
638 sigma23_k1 = g23_k1->
imag;
639 gamma34_k1 = g34_k1->
real;
640 sigma34_k1 = g34_k1->
imag;
641 gamma12_k2 = g12_k2->
real;
642 sigma12_k2 = g12_k2->
imag;
643 gamma23_k2 = g23_k2->
real;
644 sigma23_k2 = g23_k2->
imag;
646 is_ident23_k1 = ( gamma23_k1 == one && sigma23_k1 == zero );
647 is_ident34_k1 = ( gamma34_k1 == one && sigma34_k1 == zero );
648 is_ident12_k2 = ( gamma12_k2 == one && sigma12_k2 == zero );
649 is_ident23_k2 = ( gamma23_k2 == one && sigma23_k2 == zero );
650 has_ident = ( is_ident23_k1 || is_ident34_k1 ||
651 is_ident12_k2 || is_ident23_k2 );
657 if ( !is_ident23_k1 )
658 MAC_Apply_G_mx2_asd( m_A,
664 if ( !is_ident34_k1 )
665 MAC_Apply_G_mx2_asd( m_A,
671 if ( !is_ident12_k2 )
672 MAC_Apply_G_mx2_asd( m_A,
678 if ( !is_ident23_k2 )
679 MAC_Apply_G_mx2_asd( m_A,
689 MAC_Apply_G_mx4s_asd( m_A,
707 g34_k1 = buff_G + (g + 1)*rs_G + (k )*cs_G;
708 a3 = buff_A + (g + 1)*cs_A;
709 a4 = buff_A + (g + 2)*cs_A;
711 gamma34_k1 = g34_k1->
real;
712 sigma34_k1 = g34_k1->
imag;
714 is_ident34_k1 = ( gamma34_k1 == one && sigma34_k1 == zero );
716 if ( !is_ident34_k1 )
717 MAC_Apply_G_mx2_asd( m_A,
727 for ( ; j < nG - 1; j += n_fuse )
730 n_iter = nG_app / k_fuse;
731 n_left = nG_app % k_fuse;
733 for ( i = 0, k = 0, g = j; i < n_iter; ++
i, k += k_fuse, g -= n_fuse )
735 g23_k1 = buff_G + (g )*rs_G + (k )*cs_G;
736 g34_k1 = buff_G + (g + 1)*rs_G + (k )*cs_G;
737 g12_k2 = buff_G + (g - 1)*rs_G + (k + 1)*cs_G;
738 g23_k2 = buff_G + (g )*rs_G + (k + 1)*cs_G;
739 a1 = buff_A + (g - 1)*cs_A;
740 a2 = buff_A + (g )*cs_A;
741 a3 = buff_A + (g + 1)*cs_A;
742 a4 = buff_A + (g + 2)*cs_A;
744 gamma23_k1 = g23_k1->
real;
745 sigma23_k1 = g23_k1->
imag;
746 gamma34_k1 = g34_k1->
real;
747 sigma34_k1 = g34_k1->
imag;
748 gamma12_k2 = g12_k2->
real;
749 sigma12_k2 = g12_k2->
imag;
750 gamma23_k2 = g23_k2->
real;
751 sigma23_k2 = g23_k2->
imag;
753 is_ident23_k1 = ( gamma23_k1 == one && sigma23_k1 == zero );
754 is_ident34_k1 = ( gamma34_k1 == one && sigma34_k1 == zero );
755 is_ident12_k2 = ( gamma12_k2 == one && sigma12_k2 == zero );
756 is_ident23_k2 = ( gamma23_k2 == one && sigma23_k2 == zero );
757 has_ident = ( is_ident23_k1 || is_ident34_k1 ||
758 is_ident12_k2 || is_ident23_k2 );
764 if ( !is_ident23_k1 )
765 MAC_Apply_G_mx2_asd( m_A,
771 if ( !is_ident34_k1 )
772 MAC_Apply_G_mx2_asd( m_A,
778 if ( !is_ident12_k2 )
779 MAC_Apply_G_mx2_asd( m_A,
785 if ( !is_ident23_k2 )
786 MAC_Apply_G_mx2_asd( m_A,
796 MAC_Apply_G_mx4s_asd( m_A,
814 g23_k1 = buff_G + (g )*rs_G + (k )*cs_G;
815 g34_k1 = buff_G + (g + 1)*rs_G + (k )*cs_G;
816 a2 = buff_A + (g )*cs_A;
817 a3 = buff_A + (g + 1)*cs_A;
818 a4 = buff_A + (g + 2)*cs_A;
820 gamma23_k1 = g23_k1->
real;
821 sigma23_k1 = g23_k1->
imag;
822 gamma34_k1 = g34_k1->
real;
823 sigma34_k1 = g34_k1->
imag;
825 is_ident23_k1 = ( gamma23_k1 == one && sigma23_k1 == zero );
826 is_ident34_k1 = ( gamma34_k1 == one && sigma34_k1 == zero );
828 if ( !is_ident23_k1 && is_ident34_k1 )
830 MAC_Apply_G_mx2_asd( m_A,
836 else if ( is_ident23_k1 && !is_ident34_k1 )
838 MAC_Apply_G_mx2_asd( m_A,
846 MAC_Apply_G_mx3_asd( m_A,
860 for ( j = nG % n_fuse; j < k_G; j += n_fuse )
868 g23_k1 = buff_G + (g )*rs_G + (k )*cs_G;
869 a2 = buff_A + (g )*cs_A;
870 a3 = buff_A + (g + 1)*cs_A;
872 gamma23_k1 = g23_k1->
real;
873 sigma23_k1 = g23_k1->
imag;
875 is_ident23_k1 = ( gamma23_k1 == one && sigma23_k1 == zero );
877 if ( !is_ident23_k1 )
878 MAC_Apply_G_mx2_asd( m_A,
887 nG_app = k_minus_1 - j;
888 n_iter = nG_app / k_fuse;
889 n_left = nG_app % k_fuse;
891 for ( i = 0; i < n_iter; ++
i, k += k_fuse, g -= n_fuse )
893 g23_k1 = buff_G + (g )*rs_G + (k )*cs_G;
894 g34_k1 = buff_G + (g + 1)*rs_G + (k )*cs_G;
895 g12_k2 = buff_G + (g - 1)*rs_G + (k + 1)*cs_G;
896 g23_k2 = buff_G + (g )*rs_G + (k + 1)*cs_G;
897 a1 = buff_A + (g - 1)*cs_A;
898 a2 = buff_A + (g )*cs_A;
899 a3 = buff_A + (g + 1)*cs_A;
900 a4 = buff_A + (g + 2)*cs_A;
902 gamma23_k1 = g23_k1->
real;
903 sigma23_k1 = g23_k1->
imag;
904 gamma34_k1 = g34_k1->
real;
905 sigma34_k1 = g34_k1->
imag;
906 gamma12_k2 = g12_k2->
real;
907 sigma12_k2 = g12_k2->
imag;
908 gamma23_k2 = g23_k2->
real;
909 sigma23_k2 = g23_k2->
imag;
911 is_ident23_k1 = ( gamma23_k1 == one && sigma23_k1 == zero );
912 is_ident34_k1 = ( gamma34_k1 == one && sigma34_k1 == zero );
913 is_ident12_k2 = ( gamma12_k2 == one && sigma12_k2 == zero );
914 is_ident23_k2 = ( gamma23_k2 == one && sigma23_k2 == zero );
915 has_ident = ( is_ident23_k1 || is_ident34_k1 ||
916 is_ident12_k2 || is_ident23_k2 );
922 if ( !is_ident23_k1 )
923 MAC_Apply_G_mx2_asd( m_A,
929 if ( !is_ident34_k1 )
930 MAC_Apply_G_mx2_asd( m_A,
936 if ( !is_ident12_k2 )
937 MAC_Apply_G_mx2_asd( m_A,
943 if ( !is_ident23_k2 )
944 MAC_Apply_G_mx2_asd( m_A,
954 MAC_Apply_G_mx4s_asd( m_A,
972 g23_k1 = buff_G + (g )*rs_G + (k )*cs_G;
973 g34_k1 = buff_G + (g + 1)*rs_G + (k )*cs_G;
974 a2 = buff_A + (g )*cs_A;
975 a3 = buff_A + (g + 1)*cs_A;
976 a4 = buff_A + (g + 2)*cs_A;
978 gamma23_k1 = g23_k1->
real;
979 sigma23_k1 = g23_k1->
imag;
980 gamma34_k1 = g34_k1->
real;
981 sigma34_k1 = g34_k1->
imag;
983 is_ident23_k1 = ( gamma23_k1 == one && sigma23_k1 == zero );
984 is_ident34_k1 = ( gamma34_k1 == one && sigma34_k1 == zero );
986 if ( !is_ident23_k1 && is_ident34_k1 )
988 MAC_Apply_G_mx2_asd( m_A,
994 else if ( is_ident23_k1 && !is_ident34_k1 )
996 MAC_Apply_G_mx2_asd( m_A,
1004 MAC_Apply_G_mx3_asd( m_A,
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
double imag
Definition: blis_type_defs.h:139
double bl1_d0(void)
Definition: bl1_constants.c:118
double real
Definition: blis_type_defs.h:139
int n_left
Definition: bl1_axmyv2.c:149
int i
Definition: bl1_axmyv2.c:145
double bl1_d1(void)
Definition: bl1_constants.c:54
Definition: blis_type_defs.h:137