353{
354 if (
beta.size() == 0)
return std::make_tuple(
x,beta);
357 auto f = std::get<0>(
findMatch(tmpNode,betaHat));
358 if (f == nullptr)
359 {
360 std::cout << "Oooops" << std::endl;
361 std::cout << *tmpNode << std::endl;
362 std::cout << betaHat << std::endl;
363 }
364 while (f->arcLabel().size() < betaHat.size())
365 {
366 tmpNode = f;
367 betaHat =
suffix(betaHat,f->arcLabel().size());
368 f = std::get<0>(
findMatch(tmpNode,betaHat));
369 }
370 return std::make_tuple(f, betaHat);
371}
Word suffix(const Word vec, int indexOfSuffix)
auto findMatch(SuffixTreeNode *y, const Word &s) const -> ExtendedLocusType
const mpreal beta(const mpreal &z, const mpreal &w, mp_rnd_t rnd_mode=mpreal::get_default_rnd())