31 Commits

Author SHA1 Message Date
Alex Coyte
68c8845d15 Do equivalency removal before violet's implementablity check.
This is helpful as removing/restoring literals may introduce redundancy in the
graphs. Also improve the implementation by caching known good holders.
2017-08-21 11:18:30 +10:00
Justin Viiret
9cf66b6ac9 util: switch from Boost to std::unordered set/map
This commit replaces the ue2::unordered_{set,map} types with their STL
versions, with some new hashing utilities in util/hash.h. The new types
ue2_unordered_set<T> and ue2_unordered_map<Key, T> default to using the
ue2_hasher.

The header util/ue2_containers.h has been removed, and the flat_set/map
containers moved to util/flat_containers.h.
2017-08-21 11:14:55 +10:00
Justin Viiret
e8f09aa8c6 ng_violet: fail on added_count limit quicker
- also fixes typo "splitForImplementability"
- adds more detail in debug output
2017-08-21 11:12:26 +10:00
Justin Viiret
5837f68b9a ng_literal_decorated: pre-check for narrow reach 2017-08-21 11:10:11 +10:00
Justin Viiret
5a7d5958d1 ng_violet: skip analysis on graphs with wide reach 2017-08-21 11:10:11 +10:00
Justin Viiret
dfe1b8a2af ng_depth: rename calcDepth functions, return vec 2017-05-30 13:59:00 +10:00
Justin Viiret
1ef87c43ee noncopyable: switch over from boost 2017-04-26 15:18:26 +10:00
Justin Viiret
1fad822735 violet: use bitset to speed up poisonFromSuccessor 2017-04-26 14:46:42 +10:00
Alex Coyte
d402ef9b28 violet: heuristic tweaks for ensuring implementablity 2017-04-26 14:44:49 +10:00
Alex Coyte
c32d7d51d9 remove ng_rose 2017-04-26 14:44:49 +10:00
Alex Coyte
2a1202e1e6 add checkViolet and switch SOM path accross to use violet 2017-04-26 14:44:49 +10:00
Alex Coyte
cde6ebf516 violet: decompose further for implementability 2017-04-26 14:44:49 +10:00
Alex Coyte
a43116c6d4 remove util functions from ng_rose. 2017-04-26 14:44:29 +10:00
Alex Coyte
8741759c3a refactor restoreTrailingLiteral use 2017-04-26 14:44:29 +10:00
Alex Coyte
7767651b59 shift all early_dfa creation logic to ng_violet/ng_rose 2017-04-26 14:44:29 +10:00
Alex Coyte
512c049493 shift early_dfa construction earlier 2017-04-26 14:44:03 +10:00
Alex Coyte
530d84c6f3 allow edge_descriptors to be created from pair<edge_descriptor, bool> 2016-12-02 11:32:20 +11:00
Alex Coyte
e1e9010cac Introduce custom adjacency-list based graph 2016-12-02 11:31:33 +11:00
Alex Coyte
445cf987a8 remove unused includes 2016-10-28 14:52:56 +11:00
Alex Coyte
c94899dd44 allow sets of tops on edges 2016-10-28 14:51:46 +11:00
Matthew Barr
0a1491d907 Remove problematic debug output 2016-08-22 16:04:44 +10:00
Justin Viiret
c58d9d04a1 ng_violet: fix non-det in lookForCleanEarlySplits 2016-08-10 15:07:45 +10:00
Justin Viiret
d119dd95fd ng_violet: trivial typo fixes 2016-08-10 15:07:45 +10:00
Justin Viiret
f3ccbf19b8 ng_violet: fix non-determinism in deanchorIfNeeded 2016-08-10 15:07:45 +10:00
Justin Viiret
a8cceeeddc ng_violet: fix non-determinism in splitEdgesByCut 2016-08-10 15:07:45 +10:00
Matthew Barr
cbd115f7fe Don't shadow names 2016-08-10 15:06:57 +10:00
Justin Viiret
68ae4cc7c8 ng_violet: det. vertex ordering in splitRoseEdge 2016-08-10 15:06:43 +10:00
Justin Viiret
63528f1cd2 ng_violet: iterate in edge order 2016-08-10 15:06:43 +10:00
Justin Viiret
de543bec24 ng_violet: use dumpString for debug output 2016-08-10 15:06:05 +10:00
Alex Coyte
34289eb3b4 violet: 32bit fix 2016-08-10 15:01:28 +10:00
Alex Coyte
5c5ec905cc violet: initial implementation 2016-08-10 15:01:08 +10:00