powerset: rewrite the determinization construction using bitvectors
This helps issue #26 considerably, but I'm not closing it because there are a few places here and there that can be cleaned up. For instance build_state_set in minimize.cc should be rewritten. * src/misc/bitvect.hh (bitvector_array::clear_all): New method. * src/tgbaalgos/powerset.cc (tgba_powerset): Rewrite it. * src/tgbaalgos/powerset.hh (power_map): Simplify.
This commit is contained in:
parent
0d1c08e6e1
commit
f958c51991
3 changed files with 162 additions and 46 deletions
|
|
@ -1,6 +1,6 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2013, 2014 Laboratoire de Recherche et Développement
|
||||
// de l'Epita (LRDE).
|
||||
// Copyright (C) 2013, 2014, 2015 Laboratoire de Recherche et
|
||||
// Développement de l'Epita (LRDE).
|
||||
//
|
||||
// This file is part of Spot, a model checking library.
|
||||
//
|
||||
|
|
@ -487,6 +487,14 @@ namespace spot
|
|||
return *reinterpret_cast<bitvect*>(storage() + index * bvsize_);
|
||||
}
|
||||
|
||||
void clear_all()
|
||||
{
|
||||
// FIXME: This could be changed into a large memset if the
|
||||
// individual vectors where not allowed to be reallocated.
|
||||
for (unsigned s = 0; s < size_; s++)
|
||||
at(s).clear_all();
|
||||
}
|
||||
|
||||
/// Return the bit-vector at \a index.
|
||||
const bitvect& at(const size_t index) const
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue