37 const uint32 n = 2u*max_size;
38 if (do_alloc)
m_links.resize( n );
47 m_mode = n_hits_per_read > 1 ?
53 if (n_hits_per_read == 1)
63 thrust::make_counting_iterator(0u),
64 thrust::make_counting_iterator(in_reads),
85 if (do_alloc)
read_id.resize( size ); bytes += size *
sizeof(
uint32);
87 if (do_alloc)
ssa.resize( size ); bytes += size *
sizeof(
uint32);
88 if (do_alloc)
loc.resize( size ); bytes += size *
sizeof(
uint32);
89 if (do_alloc)
score.resize( size ); bytes += size *
sizeof(
int32);
90 if (do_alloc)
sink.resize( size ); bytes += size *
sizeof(
uint32);
139 opposite_loc( _opposite_loc ),
140 opposite_score( _opposite_score ),
141 opposite_sink( _opposite_sink ),
142 opposite_score2( _opposite_score2 ),
143 opposite_sink2( _opposite_sink2 )
178 #pragma hd_warning_disable
179 template <
typename HitQueuesType>
182 read_id ( hits.read_id[ hit_index ] ),
183 seed ( hits.seed[ hit_index ] ),
184 ssa ( hits.ssa[ hit_index ] ),
185 loc ( hits.loc[ hit_index ] ),
186 score ( hits.score[ hit_index ] ),
187 sink ( hits.sink[ hit_index ] ),
188 opposite_loc ( hits.opposite_loc[ hit_index ] ),
189 opposite_score ( hits.opposite_score[ hit_index ] ),
190 opposite_sink ( hits.opposite_sink[ hit_index ] ),
191 opposite_score2 ( hits.opposite_score2[ hit_index ] ),
192 opposite_sink2 ( hits.opposite_sink2[ hit_index ] )
215 active_reads ( _active_reads ),
217 hits_index ( _hits_index ),
218 hits_pool ( _hits_pool )
226 template <
typename ScoringQueuesType>
230 m_read_index( read_index )
235 template <
typename ScoringQueuesType>
239 return m_queues.hits_index.hit_count( m_read_index );
244 #pragma hd_warning_disable
245 template <
typename ScoringQueuesType>
250 const uint32 hit_index = m_queues.hits_index( m_read_index, i );
251 return m_queues.hits[ hit_index ];
256 #pragma hd_warning_disable
257 template <
typename ScoringQueuesType>
262 return m_queues.hits_index( m_read_index, i );
268 template <
typename ScoringQueuesType>
272 m_read_index = read_index;
277 template <
typename ScoringQueuesType>
281 return m_queues.active_reads.in_queue[ m_read_index ];
290 template <
typename ScoringQueuesType>
294 m_read_index( read_index )
300 template <
typename ScoringQueuesType>
304 m_read_index = read_index;
309 template <
typename ScoringQueuesType>
313 m_queues.hits_index.set_hit_count( m_read_index, size );
318 template <
typename ScoringQueuesType>
322 return m_queues.hits_index.hit_count( m_read_index );
327 #pragma hd_warning_disable
328 template <
typename ScoringQueuesType>
333 const uint32 hit_index = m_queues.hits_index( m_read_index, i );
334 return m_queues.hits[ hit_index ];
339 template <
typename ScoringQueuesType>
343 return m_queues.active_reads.out_queue[ m_read_index ];
349 template <
typename ScoringQueuesType>
353 m_queues.active_reads.out_queue[ m_read_index ] = info;
360 template <
typename ScoringQueuesType>
364 m_queues.hits_index( m_read_index, i ) = slot;