39 #include <thrust/host_vector.h>
40 #include <thrust/device_vector.h>
41 #include <thrust/sort.h>
42 #include <thrust/for_each.h>
43 #include <thrust/binary_search.h>
44 #include <thrust/iterator/constant_iterator.h>
45 #include <thrust/iterator/counting_iterator.h>
366 template <
typename string_type,
typename index_iterator,
typename qgram_iterator>
371 const string_type
string,
373 const index_iterator indices,
374 qgram_iterator qgrams);
389 template <
typename string_set_type,
typename index_iterator,
typename qgram_iterator>
393 const string_set_type string_set,
395 const index_iterator indices,
396 qgram_iterator qgrams);
413 template <
typename QGramVectorType,
typename IndexVectorType,
typename CoordVectorType>
420 typedef typename std::iterator_traits<qgram_vector_type>::value_type
qgram_type;
421 typedef typename std::iterator_traits<coord_vector_type>::value_type
coord_type;
437 const uint32 _symbol_size,
439 const uint32 _n_unique_qgrams,
465 const uint2 lut_range =
lut ?
466 make_uint2(
lut[ g_lut ],
lut[ g_lut + 1 ] ) :
473 (lut_range.y - lut_range.x) ) -
qgrams );
477 return make_uint2( 0u, 0u );
508 template <
typename SystemTag,
typename QGramType,
typename IndexType,
typename CoordType>
529 return equal<system_tag,host_tag>() ?
541 return equal<system_tag,device_tag>() ?
585 template <
typename SystemTag>
620 template <
typename string_type>
625 const string_type
string,
630 template <
typename SystemTag>
656 template <
typename SystemTag>
690 template <
typename string_set_type>
694 const string_set_type string_set,
709 template <
typename string_set_type,
typename seed_functor>
713 const string_set_type string_set,
714 const seed_functor seeder,
719 template <
typename SystemTag>
735 template <
typename SystemTag,
typename QT,
typename IT,
typename CT>
740 template <
typename SystemTag,
typename QT,
typename IT,
typename CT>
758 template <
typename SystemTag,
typename QT,
typename IT,
typename CT>
776 template <
typename qgram_index_type>
801 template <
typename string_type>
847 template <
typename string_set_type>
876 const uint32 string_pos =
id.y;
879 const uint32 string_len =
string.length();
896 template <
typename qgram_index_type,
typename string_type>
905 const qgram_index_type _qgram_index,
907 const string_type _string) :