MCPcopy Create free account
hub / github.com/comaps/comaps / operator()

Method operator()

libs/coding/compressed_bit_vector.cpp:118–135  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

116 UnionOp() {}
117
118 unique_ptr<coding::CompressedBitVector> operator()(coding::DenseCBV const & a, coding::DenseCBV const & b) const
119 {
120 size_t const sizeA = a.NumBitGroups();
121 size_t const sizeB = b.NumBitGroups();
122
123 size_t commonSize = min(sizeA, sizeB);
124 size_t resultSize = max(sizeA, sizeB);
125 vector<uint64_t> resGroups(resultSize);
126 for (size_t i = 0; i < commonSize; ++i)
127 resGroups[i] = a.GetBitGroup(i) | b.GetBitGroup(i);
128 if (a.NumBitGroups() == resultSize)
129 for (size_t i = commonSize; i < resultSize; ++i)
130 resGroups[i] = a.GetBitGroup(i);
131 else
132 for (size_t i = commonSize; i < resultSize; ++i)
133 resGroups[i] = b.GetBitGroup(i);
134 return CompressedBitVectorBuilder::FromBitGroups(std::move(resGroups));
135 }
136
137 unique_ptr<coding::CompressedBitVector> operator()(coding::DenseCBV const & a, coding::SparseCBV const & b) const
138 {

Callers

nothing calls this directly

Calls 8

NumBitGroupsMethod · 0.80
GetBitGroupMethod · 0.80
PopCountMethod · 0.45
SelectMethod · 0.45
BeginMethod · 0.45
EndMethod · 0.45
push_backMethod · 0.45
ForEachMethod · 0.45

Tested by

no test coverage detected