185 Commits

Author SHA1 Message Date
Chang, Harry
52f658ac55 Fix Klocwork scan issues. 2021-01-25 14:13:13 +02:00
Wang Xiang W
9ea1e4be3d limex: add fast NFA check 2021-01-25 14:13:13 +02:00
Wang Xiang W
411317639b Limex: fix acceleration path analysis 2020-05-25 13:46:42 +00:00
Hong, Yang A
6f6e2744df Cyclic redundancy: change DFS termination condition into successors of cyclic vertex 2020-01-15 15:40:10 +00:00
Chang, Harry
8a1c497f44 Logical Combination of patterns. 2018-06-27 14:04:57 +08:00
Justin Viiret
a1d4eec116 nfagraph: remove ng_undirected.h 2018-06-27 13:40:21 +08:00
Justin Viiret
3c776b25c3 ng_repeat: use undirected_graph 2018-06-27 13:40:15 +08:00
Justin Viiret
c7c90c7ab7 graph_undirected: adapt bidi graph to undirected
Introduces an adaptor (like the BGL's reverse_graph) that presents an
undirected view of a bidirectional graph.

Initially used in ng_calc_components.
2018-06-27 13:40:10 +08:00
Justin Viiret
ce7cfbde82 misc: docs, typo fixes, small cleanups 2018-06-27 13:39:05 +08:00
Justin Viiret
08bf909e2b ng_violet: make calcSplitRatio operation faster
Implements count_reachable in a less malloc-happy way, improving
compile performance. Adds a count() function to small_color_map.
2018-06-27 13:38:55 +08:00
Justin Viiret
cadc7028b1 ng_width: turn min width check into assert 2018-06-27 13:38:32 +08:00
Matthew Barr
090632f61a ext param - more consistent depth check 2018-01-19 06:24:21 -05:00
Matthew Barr
1891f14755 Add support for Hamming distance approx matching 2018-01-19 06:11:43 -05:00
Matthew Barr
5021d7ab78 De-const the empty maps.
Clang 3.8 complains about attempting to default init const objects
without a user-provided constructor.
2017-09-22 15:17:56 +10:00
Justin Viiret
ea2e85ac87 ng_squash: switch to using unordered_map
Also some cleaning up, small performance improvements.
2017-09-18 13:29:34 +10:00
Alex Coyte
2a492273b5 remove !LBR constraints from merge passes
we have either converted candidates to castles already or we have converted them
back in the hope of merging them with other holders
2017-09-18 13:22:56 +10:00
Justin Viiret
3ff70d5568 insertion_ordered_{map,set}: add new containers
These are associative map/set structures that are iterable in insertion
order.
2017-08-21 11:25:21 +10:00
Alex Coyte
72973ccb47 violet: don't bother swapping holders if unable to trim graph 2017-08-21 11:25:21 +10:00
Alex Coyte
34ed4a6991 violet: maintain a reference to all the known implementable graphs 2017-08-21 11:25:12 +10:00
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