Alex Coyte
c693c44646
violet: do not remove more states from holders if dfa has been built
2017-08-21 11:25:12 +10:00
Matthew Barr
d33dcc0534
Remove unwanted move constructor
2017-08-21 11:20:22 +10:00
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
Alex Coyte
aa6025012b
Ensure max width of repeat before transforming graph.
2017-08-21 11:18:30 +10:00
Justin Viiret
33823d60d1
tidy: "ue2::flat_set/map" -> "flat_set/map"
2017-08-21 11:14:59 +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
Alex Coyte
482e1ef931
Ensure that reports would be sustained after self loop is removed
...
Approximante matching means that is now possible to get a non-standard report
on a cyclic during edge redundancy passes which means checks are now needed.
2017-08-21 11:12:26 +10:00
Justin Viiret
b454ab6484
ng_prefilter.cpp: remove interior edges first
...
This allows us to avoid looking them up while we're in copyOutEdges(),
halves time on large cases.
2017-08-21 11:12:26 +10:00
Justin Viiret
2fba9bd16c
ng_mcclellan: reject determinise if NFA is too big
2017-08-21 11:12:26 +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
c0320b8cdc
ng_depth: more use of small_color_map
2017-08-21 11:12:26 +10:00
Justin Viiret
90faea4ce9
ng_depth: use small_color_map in findLoopReachable
2017-08-21 11:12:26 +10:00
Justin Viiret
9c046db360
ng_util: make more use of small_color_map in DFS
2017-08-21 11:12:26 +10:00
Justin Viiret
8d178d52ef
ng_util: use small_color_map
2017-08-21 11:12:26 +10:00
Justin Viiret
f98ccedf27
ng_prune: use small_color_map
2017-08-21 11:12:26 +10:00
Justin Viiret
33141e64b6
ng_netflow: use small_color_map
2017-08-21 11:12:26 +10:00
Justin Viiret
b97fa8c808
ng_literal_analysis: use small_color_map
2017-08-21 11:12:26 +10:00
Justin Viiret
32270725c6
ng_repeat: use small_color_map
2017-08-21 11:12:26 +10:00
Justin Viiret
8982e7177c
ng_region: use small_color_map
2017-08-21 11:12:26 +10:00
Justin Viiret
1392be048a
ng_width: use small_color_map
2017-08-21 11:12:26 +10:00
Justin Viiret
03c1af1173
ng_misc_opt: use small_color_map
2017-08-21 11:12:26 +10:00
Justin Viiret
a1ff4d3293
small_color_map: add efficient 2-bit color map
2017-08-21 11:12:26 +10:00
Justin Viiret
e9f4adba0d
ng_dump: use StdioFile
2017-08-21 11:12:16 +10:00
Justin Viiret
b09e3acd04
ng_misc_opt: improve performance in large cases
2017-08-21 11:10:11 +10:00
Justin Viiret
95e3fd3f32
ng_misc_opt: remove dead code
2017-08-21 11:10:11 +10:00
Justin Viiret
7ec757c7ce
ng_cyclic_redundancy: persist colour map
2017-08-21 11:10:11 +10:00
Justin Viiret
fe2654b086
ng_small_literal_set: pre-check for narrow reach
2017-08-21 11:10:11 +10:00
Justin Viiret
92c28d28c1
ng_mcclellan: use flat_set in triggerAllowed()
2017-08-21 11:10:11 +10:00
Justin Viiret
d0e4a703ed
ng_literal_analysis: reserve space for fwd_edges
2017-08-21 11:10:11 +10:00
Justin Viiret
e27e76a595
ng_literal_decorated: remove unused header
2017-08-21 11:10:11 +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
63973175ed
ng_calc_components: check tail shell too
2017-08-21 11:10:11 +10:00
Justin Viiret
f6adc4f464
ng_calc_components: skip if shell has 1 path only
2017-08-21 11:10:11 +10:00
Justin Viiret
85f7790a21
dfa: standardise 'using' instead of typedef
2017-08-21 10:40:18 +10:00
Justin Viiret
0d7d52625c
ng_haig: make StateMap an unordered_map
2017-08-21 10:40:18 +10:00
Justin Viiret
31141dd35b
determinise: use queue, improve api
...
- Use a queue rather than always building the full vector of state
sets.
- Make more use of move, emplace, reserve.
- Write directly into dstates argument.
- Return bool rather than int.
2017-08-21 10:40:18 +10:00
Justin Viiret
9aee3b22b5
ng_expr_info: more complete analysis passes
2017-06-09 10:12:03 +10:00
Justin Viiret
cfdac66404
accel: limit how far we will search in findBest
2017-05-30 14:00:45 +10:00
Matthew Barr
423569ec82
De-multiaccel
2017-05-30 13:59:00 +10:00
Matthew Barr
c510b85bf1
whitespace changes
2017-05-30 13:59:00 +10:00
Justin Viiret
923e602601
ng_equivalence: use flat_set for VertexInfoSet
2017-05-30 13:59:00 +10:00
Alex Coyte
725de51f89
determinisation: cleanups, remove shrinkStateSet
2017-05-30 13:59:00 +10:00
Justin Viiret
c17085ba35
ng_depth: modernize findLoopReachable
2017-05-30 13:59:00 +10:00
Justin Viiret
dfe1b8a2af
ng_depth: rename calcDepth functions, return vec
2017-05-30 13:59:00 +10:00
Justin Viiret
4cc998e4ab
ng_limex_accel: fix broken termination condition
2017-05-30 13:49:49 +10:00
Justin Viiret
c0d7960954
ng_limex_accel: compile time speedups, tidy up
2017-05-30 13:48:38 +10:00
Justin Viiret
63fe84c3f1
bytecode_ptr: add make_zeroed_bytecode_ptr
...
Rather than always zeroing memory.
2017-04-26 15:19:36 +10:00
Justin Viiret
a197074c5d
nfa: switch to using bytecode_ptr<NFA>
2017-04-26 15:19:36 +10:00
Justin Viiret
cf82924a39
depth: make constructor explicit
2017-04-26 15:19:19 +10:00