16 #ifndef INCLUDED_protocols_match_MatchSet_hh
17 #define INCLUDED_protocols_match_MatchSet_hh
26 #include <numeric/geometry/hashing/SixDHasher.hh>
29 #include <utility/pointer/ReferenceCount.hh>
30 #include <utility/fixedsizearray1.hh>
31 #include <utility/FixedSizeLexicographicalIterator.fwd.hh>
37 #include <boost/unordered_map.hpp>
42 #include <utility/vector1_bool.hh>
65 typedef boost::unordered_map< boost::uint64_t, MatchSet, numeric::geometry::hashing::bin_index_hasher >
HitHash;
105 HitHash::const_iterator
108 HitHash::const_iterator
111 numeric::geometry::hashing::SixDCoordinateBinner
const &
140 typedef numeric::geometry::hashing::Bin6D
Bin6D;
143 typedef std::list< std::pair< core::Size, Hit const * > >
HitIndexList;
144 typedef boost::unordered_map< boost::uint64_t, HitIndexList, numeric::geometry::hashing::bin_index_hasher >
HitHash;
180 void add_hits( std::list< Hit >
const & hitlist );
207 utility::FixedSizeLexicographicalIterator< 6 >
const & halfbin_lex,
213 Bin6D const & query_halfbin,
214 Bin6D const & nb_halfbin,
216 utility::FixedSizeLexicographicalIterator< 6 >
const & halfbin_lex
231 numeric::geometry::hashing::SixDCoordinateBinnerOP
binner_;
243 typedef numeric::geometry::hashing::Bin6D
Bin6D;
246 typedef boost::unordered_map< boost::uint64_t, HitCounts, numeric::geometry::hashing::bin_index_hasher >
HitHash;
284 void add_hits(
Size geomcst_id, std::list< Hit >
const & hitlist );
287 void add_hits(
Size geomcst_id, std::list< Hit const * >
const & hitptrlist );
304 utility::FixedSizeLexicographicalIterator< 6 > const & halfbin_lex,
310 Bin6D const & query_halfbin,
311 Bin6D const & nb_halfbin,
313 utility::FixedSizeLexicographicalIterator< 6 > const & halfbin_lex
327 numeric::geometry::hashing::SixDCoordinateBinnerOP
binner_;
345 if ( lhs.size() != rhs.size() )
return false;
346 for (
core::Size ii = 1; ii <= lhs.size(); ++ii ) {
347 if ( lhs[ ii ] != rhs[ ii ] ) {
365 for (
core::Size ii = 1; ii <= m.size(); ++ii ) {
366 hash += ( hash *
reinterpret_cast< Size > ( m[ ii ] ) * ii ) % 5527;
376 typedef boost::unordered_map< match_lite, bool, match_lite_hasher, match_lite_equals >
MatchHash;