31 #ifndef __CLAW_KMP_HPP__
32 #define __CLAW_KMP_HPP__
44 template<
class RandomIterator>
class kmp
47 template <
class UnaryPredicate>
48 void operator()(
const RandomIterator pattern_begin,
49 const RandomIterator pattern_end,
50 const RandomIterator text_begin,
51 const RandomIterator text_end,
52 UnaryPredicate& action)
const;
55 unsigned int common_prefix_length(
const RandomIterator begin_1,
56 const RandomIterator begin_2,
57 const RandomIterator end_1,
58 const RandomIterator end_2 )
const;
60 void z_boxes(
const RandomIterator begin,
const RandomIterator end,
61 std::map<unsigned int, unsigned int>& out)
const;
63 void spi_prime(
const RandomIterator begin,
const RandomIterator end,
64 std::map<unsigned int, unsigned int>& out)
const;
72 #endif // __CLAW_KMP_HPP__