53 template <
typename FMType,
typename rFMType>
59 const FMType fmi_ref = dir ==
FORWARD ? fmi : rfmi;
63 rfmi.length()-1 - g_pos : g_pos;
70 return rfmi.length()-1 -
locate(rfmi, r);
76 template <
typename FMType,
typename rFMType>
82 const FMType fmi_ref = dir ==
FORWARD ? fmi : rfmi;
97 template <
typename FMType,
typename rFMType>
103 const FMType fmi_ref = dir ==
FORWARD ? fmi : rfmi;
106 rfmi.length()-1 - g_pos : g_pos;
122 template <
typename BatchType,
typename FMType,
typename rFMType> __global__
124 const BatchType read_batch,
const FMType fmi,
const rFMType rfmi,
131 if (thread_id >= in_count)
return;
142 const uint32 g_pos =
locate( fmi, rfmi, index_dir, sa_pos ) - pos_in_read;
153 template <
typename BatchType,
typename FMType,
typename rFMType> __global__
155 const BatchType read_batch,
const FMType fmi,
const rFMType rfmi,
162 if (thread_id >= in_count)
return;
172 const uint2 ssa =
locate_init( fmi, rfmi, index_dir, sa_pos );
183 template <
typename BatchType,
typename FMType,
typename rFMType> __global__
185 const BatchType read_batch,
const FMType fmi,
const rFMType rfmi,
192 if (thread_id >= in_count)
return;
204 const uint32 g_pos =
locate_lookup( fmi, rfmi, index_dir, make_uint2( sa_pos, sa_off ) ) - pos_in_read;
213 template <
typename index_iterator,
typename flags_iterator> __global__
217 const uint32 reference_count,
218 const index_iterator reference_index,
220 flags_iterator flags,
224 if (thread_id >= in_count)
return;
235 reference_count+1u ) - 1u;
241 reference_count+1u ) - 1u;
243 if (seq_begin != seq_end)
258 template <
typename BatchType,
typename FMType,
typename rFMType>
260 const BatchType read_batch,
const FMType fmi,
const rFMType rfmi,
268 detail::locate_kernel<<<blocks, BLOCKDIM>>>(
269 read_batch, fmi, rfmi,
281 template <
typename BatchType,
typename FMType,
typename rFMType>
283 const BatchType read_batch,
const FMType fmi,
const rFMType rfmi,
291 detail::locate_init_kernel<<<blocks, BLOCKDIM>>>(
292 read_batch, fmi, rfmi,
304 template <
typename ScoringScheme>
324 template <
typename BatchType,
typename FMType,
typename rFMType>
326 const BatchType read_batch,
const FMType fmi,
const rFMType rfmi,
334 detail::locate_lookup_kernel<<<blocks, BLOCKDIM>>>(
335 read_batch, fmi, rfmi,
347 template <
typename ScoringScheme>
354 detail::locate_lookup_kernel<<<blocks, BLOCKDIM>>>(
367 template <
typename index_iterator,
typename flags_iterator>
371 const uint32 reference_count,
372 const index_iterator reference_index,
374 flags_iterator flags,
379 detail::mark_straddling_kernel<<<blocks, BLOCKDIM>>>(