268{
269
270
271
272
273 std::vector<int> startIndices;
274
276 {
277 for (
auto& o :
p.second)
278 {
279 if (not std::get<3>(o)) continue;
280 if (std::get<1>(o) == -1) continue;
281 int overlapLen = std::get<1>(o) +
mWordTable[std::get<2>(o)].size();
282 if (overlapLen <= newLeadWord.
size())
continue;
283 startIndices.clear();
284
287 for (auto j : startIndices)
288 {
289 if (j != 0 or j != w.size() - newLeadWord.
size())
290 {
292 std::cout << "Reduction avoided using lazy 2nd criterion." << std::endl;
293 std::get<3>(o) = false;
294 break;
295 }
296 }
297 }
298 }
299}
Word createOverlapLeadWord(const Overlap &o)
OverlapTable mOverlapTable
static void subwordPositions(Word word1, Word word2, std::vector< int > &result_start_indices)