Beispiel #1
0
 void extract(unsigned_vector& indices)
 {
     for (unsigned i = 0; i < m_indices.size(); ++i) {
         if (m_indices[i]) {
             indices.push_back(i);
         }
     }
 }
Beispiel #2
0
 void accumulate(tbv const& t, unsigned_vector& acc) {
     ddnf_node* n = find(t);
     ptr_vector<ddnf_node> todo;
     todo.push_back(n);
     while (!todo.empty()) {
         n = todo.back();
         todo.pop_back();
         unsigned id = n->get_id();
         if (m_marked[id]) continue;
         acc.push_back(id);
         m_marked[id] = true;
         unsigned sz = n->num_children();
         for (unsigned i = 0; i < sz; ++i) {
             todo.push_back((*n)[i]);
         }
     }
 }
Beispiel #3
0
 void udoc_relation::expand_column_vector(unsigned_vector& v, const udoc_relation* other) const {
     unsigned_vector orig;
     orig.swap(v);
     for (unsigned i = 0; i < orig.size(); ++i) {
         unsigned col, limit;
         if (orig[i] < get_num_cols()) {
             col = column_idx(orig[i]);
             limit = col + column_num_bits(orig[i]);
         } else {
             unsigned idx = orig[i] - get_num_cols();
             col = get_num_bits() + other->column_idx(idx);
             limit = col + other->column_num_bits(idx);
         }
         for (; col < limit; ++col) {
             v.push_back(col);
         }
     }
 }
Beispiel #4
0
 void push() {
     m_enum_consts_lim.push_back(m_enum_consts.size());
 }
Beispiel #5
0
void tactic2solver::push_core() {
    m_scopes.push_back(m_assertions.size());
    m_result = 0;
}