Commit Graph

210 Commits

Author SHA1 Message Date
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
Justin Viiret
1ef87c43ee noncopyable: switch over from boost 2017-04-26 15:18:26 +10:00
Justin Viiret
a871f70c25 ng_extparam: split up work and do per-comp reduce
This change breaks extparam processing up into:

 - propagateExtendedParams: propagates min_length, min_offset and
   max_offset into the reports on the graph
 - reduceExtendedParams: runs graph reductions based on extparams

Then, we apply the reduce pass to the whole graph, and later as well to
each component after calc_components.
2017-04-26 15:18:22 +10:00
Justin Viiret
1200f33116 ng_region: no need to copy enters 2017-04-26 15:18:13 +10:00
Justin Viiret
699ab4190a ng_region: clean up and modernise 2017-04-26 15:18:13 +10:00
Justin Viiret
ca22edc9d3 ng_region: don't realloc exits 2017-04-26 15:18:13 +10:00
Justin Viiret
d63fdcd860 ng_region: simplify checkAndAddExitCandidate 2017-04-26 15:18:13 +10:00