Skip to main content

Table 1 (Abstract O11). Section of the inner loop implementing braid combing logic; frontier_h, frontier_v are vectors of 16-bit indices of braid strands entering the frontier horizontally (respectively, vertically)

From: Third international conference “Bioinformatics: from Algorithms to Applications” (BiATA 2019)

// obtaining match_mask by comparing pattern_vec vs text_vec: 0 = match, 1 = mismatch
match_mask = _mm256_cmpneq_epi8_mask(pattern_vec, text_vec);
// combing braid at frontier
frontier_h2 = _mm512_mask_min_epu16(frontier_v1, match_mask, frontier_v1, frontier_h1);
frontier_v2 = _mm512_mask_max_epu16(frontier_h1, match_mask, frontier_v1, frontier_h1);