提交 400e277e 编写于 作者: S strickland12 提交者: Jinhui Yuan

refine_init_bitset (#1157)

* use resize()

* use .size to calc bitset_num
上级 3612c581
...@@ -67,11 +67,8 @@ void ChainMerger::InitChains() { ...@@ -67,11 +67,8 @@ void ChainMerger::InitChains() {
cur_chain.nodes = {task_node}; cur_chain.nodes = {task_node};
cur_chain.stream_area_id = cur_chain.stream_area_id =
std::make_pair(task_node->area_id(), task_node->GlobalWorkStreamId()); std::make_pair(task_node->area_id(), task_node->GlobalWorkStreamId());
for (int64_t i = 0; i < bitset_num; ++i) { cur_chain.ancestors.resize(bitset_num);
std::bitset<BITSET_SIZE> b; cur_chain.ancestors_and_this.resize(bitset_num);
cur_chain.ancestors.push_back(b);
cur_chain.ancestors_and_this.push_back(b);
}
CarefullySetBitset(&(cur_chain.ancestors_and_this), GetTaskUid(task_node)); CarefullySetBitset(&(cur_chain.ancestors_and_this), GetTaskUid(task_node));
for (auto& ancestor : node2ancestors_.at(task_node)) { for (auto& ancestor : node2ancestors_.at(task_node)) {
int64_t ancestor_uid = GetTaskUid(ancestor); int64_t ancestor_uid = GetTaskUid(ancestor);
...@@ -121,7 +118,8 @@ void ChainMerger::CarefullySetBitset(std::vector<std::bitset<BITSET_SIZE>>* bits ...@@ -121,7 +118,8 @@ void ChainMerger::CarefullySetBitset(std::vector<std::bitset<BITSET_SIZE>>* bits
} }
bool ChainMerger::IsSubset(const ChainIt& lhs, const ChainIt& rhs) const { bool ChainMerger::IsSubset(const ChainIt& lhs, const ChainIt& rhs) const {
int64_t bitset_num = std::ceil(static_cast<double>(task_node2uid_.size()) / BITSET_SIZE); CHECK_EQ(lhs->ancestors_and_this.size(), rhs->ancestors_and_this.size());
int64_t bitset_num = lhs->ancestors_and_this.size();
for (int64_t i = 0; i < bitset_num; ++i) { for (int64_t i = 0; i < bitset_num; ++i) {
if (lhs->ancestors_and_this.at(i) != (lhs->ancestors_and_this.at(i) | rhs->ancestors.at(i))) { if (lhs->ancestors_and_this.at(i) != (lhs->ancestors_and_this.at(i) | rhs->ancestors.at(i))) {
return false; return false;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册