32 std::list< std::set< uint64_t > > computeCompatibilities(
33 std::map< uint64_t, std::set< uint64_t > >& exclusions,
34 std::map< uint64_t, bool >& sizes,
35 std::vector< uint64_t >& order);
36 std::list< std::set< uint64_t > > computeCompatibilitiesWithChain(
37 std::map< uint64_t, std::set< uint64_t > >& exclusions,
38 std::map< uint64_t, bool >& sizes,
39 std::vector< uint64_t >& order);
41 void displayResult(
const std::list< std::set< uint64_t > >& searchSpace);
43 friend std::ostream&
operator<<(std::ostream& os,
const std::set< uint64_t >& subres);
44 friend std::ostream&
operator<<(std::ostream& os,
const std::vector< uint64_t >& subres);
48 std::vector< std::set< uint64_t > > buildSearchSpace(
49 std::map< uint64_t, std::set< uint64_t > >& exclusions,
50 const std::vector< uint64_t >& order);
54 bool operator()(
const std::set< uint64_t >& a,
const std::set< uint64_t >& b)
const
56 if (a.size() > b.size())
60 else if (a.size() < b.size())
64 else if (a.empty() && b.empty())
70 std::set< uint64_t >::const_reverse_iterator ita, ita_end;
71 std::set< uint64_t >::const_reverse_iterator itb, itb_end;
72 ita = a.rbegin(); ita_end = a.rend();
73 itb = b.rbegin(); itb_end = b.rend();
74 for (; ita != ita_end; ita++,itb++)
84 std::set< std::set< uint64_t >, SizeSorter > removeVertexEntriesFromSearchSpace(
85 const std::vector< std::set< uint64_t > >& searchSpace,
86 std::map< uint64_t, bool >& sizes);
89 std::list< std::set< uint64_t > > removeIncludedVector(
const std::set< std::set< uint64_t >, SizeSorter >& searchSpace);