1049 int is_ident23_k1, is_ident34_k1;
1050 int is_ident12_k2, is_ident23_k2;
1053 k_minus_1 = k_G - 1;
1059 if ( nG < 2*k_minus_1 || k_G == 1 )
1065 buff_A, rs_A, cs_A );
1072 for ( j = -1; j < k_minus_1; j += n_fuse )
1075 n_iter = nG_app / k_fuse;
1078 for (
i = 0, k = 0, g = j;
i < n_iter; ++
i, k += k_fuse, g -= n_fuse )
1080 g23_k1 = buff_G + (g )*rs_G + (k )*cs_G;
1081 g34_k1 = buff_G + (g + 1)*rs_G + (k )*cs_G;
1082 g12_k2 = buff_G + (g - 1)*rs_G + (k + 1)*cs_G;
1083 g23_k2 = buff_G + (g )*rs_G + (k + 1)*cs_G;
1084 a1 = buff_A + (g - 1)*cs_A;
1085 a2 = buff_A + (g )*cs_A;
1086 a3 = buff_A + (g + 1)*cs_A;
1087 a4 = buff_A + (g + 2)*cs_A;
1089 gamma23_k1 = g23_k1->
real;
1090 sigma23_k1 = g23_k1->
imag;
1091 gamma34_k1 = g34_k1->
real;
1092 sigma34_k1 = g34_k1->
imag;
1093 gamma12_k2 = g12_k2->
real;
1094 sigma12_k2 = g12_k2->
imag;
1095 gamma23_k2 = g23_k2->
real;
1096 sigma23_k2 = g23_k2->
imag;
1098 is_ident23_k1 = ( gamma23_k1 == one && sigma23_k1 == zero );
1099 is_ident34_k1 = ( gamma34_k1 == one && sigma34_k1 == zero );
1100 is_ident12_k2 = ( gamma12_k2 == one && sigma12_k2 == zero );
1101 is_ident23_k2 = ( gamma23_k2 == one && sigma23_k2 == zero );
1102 has_ident = ( is_ident23_k1 || is_ident34_k1 ||
1103 is_ident12_k2 || is_ident23_k2 );
1109 if ( !is_ident23_k1 )
1110 MAC_Apply_G_mx2_opc( m_A,
1116 if ( !is_ident34_k1 )
1117 MAC_Apply_G_mx2_opc( m_A,
1123 if ( !is_ident12_k2 )
1124 MAC_Apply_G_mx2_opc( m_A,
1130 if ( !is_ident23_k2 )
1131 MAC_Apply_G_mx2_opc( m_A,
1141 MAC_Apply_G_mx4s_opc( m_A,
1159 g34_k1 = buff_G + (g + 1)*rs_G + (k )*cs_G;
1160 a3 = buff_A + (g + 1)*cs_A;
1161 a4 = buff_A + (g + 2)*cs_A;
1163 gamma34_k1 = g34_k1->
real;
1164 sigma34_k1 = g34_k1->
imag;
1166 is_ident34_k1 = ( gamma34_k1 == one && sigma34_k1 == zero );
1168 if ( !is_ident34_k1 )
1169 MAC_Apply_G_mx2_opc( m_A,
1179 for ( ; j < nG - 1; j += n_fuse )
1182 n_iter = nG_app / k_fuse;
1183 n_left = nG_app % k_fuse;
1185 for (
i = 0, k = 0, g = j;
i < n_iter; ++
i, k += k_fuse, g -= n_fuse )
1187 g23_k1 = buff_G + (g )*rs_G + (k )*cs_G;
1188 g34_k1 = buff_G + (g + 1)*rs_G + (k )*cs_G;
1189 g12_k2 = buff_G + (g - 1)*rs_G + (k + 1)*cs_G;
1190 g23_k2 = buff_G + (g )*rs_G + (k + 1)*cs_G;
1191 a1 = buff_A + (g - 1)*cs_A;
1192 a2 = buff_A + (g )*cs_A;
1193 a3 = buff_A + (g + 1)*cs_A;
1194 a4 = buff_A + (g + 2)*cs_A;
1196 gamma23_k1 = g23_k1->
real;
1197 sigma23_k1 = g23_k1->
imag;
1198 gamma34_k1 = g34_k1->
real;
1199 sigma34_k1 = g34_k1->
imag;
1200 gamma12_k2 = g12_k2->
real;
1201 sigma12_k2 = g12_k2->
imag;
1202 gamma23_k2 = g23_k2->
real;
1203 sigma23_k2 = g23_k2->
imag;
1205 is_ident23_k1 = ( gamma23_k1 == one && sigma23_k1 == zero );
1206 is_ident34_k1 = ( gamma34_k1 == one && sigma34_k1 == zero );
1207 is_ident12_k2 = ( gamma12_k2 == one && sigma12_k2 == zero );
1208 is_ident23_k2 = ( gamma23_k2 == one && sigma23_k2 == zero );
1209 has_ident = ( is_ident23_k1 || is_ident34_k1 ||
1210 is_ident12_k2 || is_ident23_k2 );
1216 if ( !is_ident23_k1 )
1217 MAC_Apply_G_mx2_opc( m_A,
1223 if ( !is_ident34_k1 )
1224 MAC_Apply_G_mx2_opc( m_A,
1230 if ( !is_ident12_k2 )
1231 MAC_Apply_G_mx2_opc( m_A,
1237 if ( !is_ident23_k2 )
1238 MAC_Apply_G_mx2_opc( m_A,
1248 MAC_Apply_G_mx4s_opc( m_A,
1266 g23_k1 = buff_G + (g )*rs_G + (k )*cs_G;
1267 g34_k1 = buff_G + (g + 1)*rs_G + (k )*cs_G;
1268 a2 = buff_A + (g )*cs_A;
1269 a3 = buff_A + (g + 1)*cs_A;
1270 a4 = buff_A + (g + 2)*cs_A;
1272 gamma23_k1 = g23_k1->
real;
1273 sigma23_k1 = g23_k1->
imag;
1274 gamma34_k1 = g34_k1->
real;
1275 sigma34_k1 = g34_k1->
imag;
1277 is_ident23_k1 = ( gamma23_k1 == one && sigma23_k1 == zero );
1278 is_ident34_k1 = ( gamma34_k1 == one && sigma34_k1 == zero );
1280 if ( !is_ident23_k1 && is_ident34_k1 )
1282 MAC_Apply_G_mx2_opc( m_A,
1288 else if ( is_ident23_k1 && !is_ident34_k1 )
1290 MAC_Apply_G_mx2_opc( m_A,
1298 MAC_Apply_G_mx3_opc( m_A,
1312 for ( j = nG % n_fuse; j < k_G; j += n_fuse )
1320 g23_k1 = buff_G + (g )*rs_G + (k )*cs_G;
1321 a2 = buff_A + (g )*cs_A;
1322 a3 = buff_A + (g + 1)*cs_A;
1324 gamma23_k1 = g23_k1->
real;
1325 sigma23_k1 = g23_k1->
imag;
1327 is_ident23_k1 = ( gamma23_k1 == one && sigma23_k1 == zero );
1329 if ( !is_ident23_k1 )
1330 MAC_Apply_G_mx2_opc( m_A,
1339 nG_app = k_minus_1 - j;
1340 n_iter = nG_app / k_fuse;
1341 n_left = nG_app % k_fuse;
1343 for (
i = 0;
i < n_iter; ++
i, k += k_fuse, g -= n_fuse )
1345 g23_k1 = buff_G + (g )*rs_G + (k )*cs_G;
1346 g34_k1 = buff_G + (g + 1)*rs_G + (k )*cs_G;
1347 g12_k2 = buff_G + (g - 1)*rs_G + (k + 1)*cs_G;
1348 g23_k2 = buff_G + (g )*rs_G + (k + 1)*cs_G;
1349 a1 = buff_A + (g - 1)*cs_A;
1350 a2 = buff_A + (g )*cs_A;
1351 a3 = buff_A + (g + 1)*cs_A;
1352 a4 = buff_A + (g + 2)*cs_A;
1354 gamma23_k1 = g23_k1->
real;
1355 sigma23_k1 = g23_k1->
imag;
1356 gamma34_k1 = g34_k1->
real;
1357 sigma34_k1 = g34_k1->
imag;
1358 gamma12_k2 = g12_k2->
real;
1359 sigma12_k2 = g12_k2->
imag;
1360 gamma23_k2 = g23_k2->
real;
1361 sigma23_k2 = g23_k2->
imag;
1363 is_ident23_k1 = ( gamma23_k1 == one && sigma23_k1 == zero );
1364 is_ident34_k1 = ( gamma34_k1 == one && sigma34_k1 == zero );
1365 is_ident12_k2 = ( gamma12_k2 == one && sigma12_k2 == zero );
1366 is_ident23_k2 = ( gamma23_k2 == one && sigma23_k2 == zero );
1367 has_ident = ( is_ident23_k1 || is_ident34_k1 ||
1368 is_ident12_k2 || is_ident23_k2 );
1374 if ( !is_ident23_k1 )
1375 MAC_Apply_G_mx2_opc( m_A,
1381 if ( !is_ident34_k1 )
1382 MAC_Apply_G_mx2_opc( m_A,
1388 if ( !is_ident12_k2 )
1389 MAC_Apply_G_mx2_opc( m_A,
1395 if ( !is_ident23_k2 )
1396 MAC_Apply_G_mx2_opc( m_A,
1406 MAC_Apply_G_mx4s_opc( m_A,
1424 g23_k1 = buff_G + (g )*rs_G + (k )*cs_G;
1425 g34_k1 = buff_G + (g + 1)*rs_G + (k )*cs_G;
1426 a2 = buff_A + (g )*cs_A;
1427 a3 = buff_A + (g + 1)*cs_A;
1428 a4 = buff_A + (g + 2)*cs_A;
1430 gamma23_k1 = g23_k1->
real;
1431 sigma23_k1 = g23_k1->
imag;
1432 gamma34_k1 = g34_k1->
real;
1433 sigma34_k1 = g34_k1->
imag;
1435 is_ident23_k1 = ( gamma23_k1 == one && sigma23_k1 == zero );
1436 is_ident34_k1 = ( gamma34_k1 == one && sigma34_k1 == zero );
1438 if ( !is_ident23_k1 && is_ident34_k1 )
1440 MAC_Apply_G_mx2_opc( m_A,
1446 else if ( is_ident23_k1 && !is_ident34_k1 )
1448 MAC_Apply_G_mx2_opc( m_A,
1456 MAC_Apply_G_mx3_opc( m_A,
FLA_Error FLA_Apply_G_rf_opc_var1(int k_G, int m_A, int n_A, scomplex *buff_G, int rs_G, int cs_G, scomplex *buff_A, int rs_A, int cs_A)
Definition: FLA_Apply_G_rf_opt_var1.c:215
int n_left
Definition: bl1_axmyv2.c:149
int i
Definition: bl1_axmyv2.c:145
float bl1_s0(void)
Definition: bl1_constants.c:111
float bl1_s1(void)
Definition: bl1_constants.c:47
Definition: blis_type_defs.h:133
float imag
Definition: blis_type_defs.h:134
float real
Definition: blis_type_defs.h:134