You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A Bimap (similar to Boost.Bimap) is used in the construction of the DFA. This custom data type is very expensive (time & space). An alternative implementation will more than likely improve the performance of the library.
Specifically, the custom hasher used by the Bimap to hash a std::set is extremely wasteful:
// todo: This hasher is too expensive (especially on non-sequential containers
// such as sets). Need to find another way to create a bi-map or replace the
// bi-map entirely
struct SetHasher
{
std::size_t operator()(const std::set<StateId>& V) const
{
auto hash = V.size();
for (const auto i : V)
{
hash ^= i + 0x9e3779b9 + (hash << 6) + (hash >> 2);
}
return hash;
}
};
The text was updated successfully, but these errors were encountered:
A
Bimap
(similar to Boost.Bimap) is used in the construction of theDFA
. This custom data type is very expensive (time & space). An alternative implementation will more than likely improve the performance of the library.Specifically, the custom hasher used by the
Bimap
to hash astd::set
is extremely wasteful:The text was updated successfully, but these errors were encountered: