43 typename TRankDictionary1,
44 typename TSuffixArray1,
45 typename TRankDictionary2,
46 typename TSuffixArray2>
60 for (
uint32 d = 0; d < c; ++d)
63 const r_range_type d_rank =
rank(
69 x += d_rank.y - d_rank.x;
74 const r_range_type c_rank =
rank(
79 r_range.x = r_fmi.
L2(c) + c_rank.x + 1;
80 r_range.y = r_fmi.
L2(c) + c_rank.y;
82 const uint32 y = 1u + r_range.y - r_range.x;
85 f_range.y = f_range.x + x + y - 1u;
86 f_range.x = f_range.x + x;
100 typename TRankDictionary1,
101 typename TSuffixArray1,
102 typename TRankDictionary2,
103 typename TSuffixArray2>
117 for (
uint32 d = 0; d < c; ++d)
120 const f_range_type d_rank =
rank(
126 x += d_rank.y - d_rank.x;
131 const f_range_type c_rank =
rank(
136 f_range.x = f_fmi.
L2(c) + c_rank.x + 1;
137 f_range.y = f_fmi.
L2(c) + c_rank.y;
139 const uint32 y = 1u + f_range.y - f_range.x;
142 r_range.y = r_range.x + x + y - 1u;
143 r_range.x = r_range.x + x;