svf-tools 1.0.849 → 1.0.850
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SVF-doxygen/html/IntervalExeState_8cpp_source.html +293 -217
- package/SVF-doxygen/html/IntervalExeState_8h.html +2 -0
- package/SVF-doxygen/html/IntervalExeState_8h_source.html +622 -435
- package/SVF-doxygen/html/RelationSolver_8cpp_source.html +60 -60
- package/SVF-doxygen/html/RelationSolver_8h_source.html +16 -16
- package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +10 -10
- package/SVF-doxygen/html/SVFIR2ItvExeState_8h_source.html +8 -8
- package/SVF-doxygen/html/annotated.html +215 -214
- package/SVF-doxygen/html/classSVF_1_1ExeState.html +9 -8
- package/SVF-doxygen/html/classSVF_1_1ExeState.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1IntervalESBase-members.html +168 -0
- package/SVF-doxygen/html/classSVF_1_1IntervalESBase.html +2331 -0
- package/SVF-doxygen/html/classSVF_1_1IntervalESBase.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1IntervalExeState-members.html +79 -62
- package/SVF-doxygen/html/classSVF_1_1IntervalExeState.html +497 -1381
- package/SVF-doxygen/html/classSVF_1_1IntervalExeState.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1RelationSolver-members.html +8 -8
- package/SVF-doxygen/html/classSVF_1_1RelationSolver.html +100 -100
- package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +29 -29
- package/SVF-doxygen/html/classes.html +232 -231
- package/SVF-doxygen/html/functions.html +2 -2
- package/SVF-doxygen/html/functions_a.html +1 -1
- package/SVF-doxygen/html/functions_b.html +4 -4
- package/SVF-doxygen/html/functions_c.html +2 -2
- package/SVF-doxygen/html/functions_e.html +4 -3
- package/SVF-doxygen/html/functions_f.html +3 -3
- package/SVF-doxygen/html/functions_func.html +1 -1
- package/SVF-doxygen/html/functions_func_b.html +4 -4
- package/SVF-doxygen/html/functions_func_c.html +2 -2
- package/SVF-doxygen/html/functions_func_e.html +3 -2
- package/SVF-doxygen/html/functions_func_g.html +27 -24
- package/SVF-doxygen/html/functions_func_h.html +4 -3
- package/SVF-doxygen/html/functions_func_i.html +16 -9
- package/SVF-doxygen/html/functions_func_j.html +1 -0
- package/SVF-doxygen/html/functions_func_l.html +6 -4
- package/SVF-doxygen/html/functions_func_m.html +1 -0
- package/SVF-doxygen/html/functions_func_n.html +6 -4
- package/SVF-doxygen/html/functions_func_o.html +17 -11
- package/SVF-doxygen/html/functions_func_p.html +3 -3
- package/SVF-doxygen/html/functions_func_r.html +1 -1
- package/SVF-doxygen/html/functions_func_s.html +2 -2
- package/SVF-doxygen/html/functions_func_t.html +2 -2
- package/SVF-doxygen/html/functions_func_w.html +4 -2
- package/SVF-doxygen/html/functions_func_~.html +3 -0
- package/SVF-doxygen/html/functions_g.html +24 -21
- package/SVF-doxygen/html/functions_h.html +6 -5
- package/SVF-doxygen/html/functions_i.html +21 -14
- package/SVF-doxygen/html/functions_j.html +1 -0
- package/SVF-doxygen/html/functions_l.html +10 -8
- package/SVF-doxygen/html/functions_m.html +1 -0
- package/SVF-doxygen/html/functions_n.html +5 -3
- package/SVF-doxygen/html/functions_o.html +18 -12
- package/SVF-doxygen/html/functions_p.html +17 -13
- package/SVF-doxygen/html/functions_r.html +7 -8
- package/SVF-doxygen/html/functions_rela_r.html +2 -1
- package/SVF-doxygen/html/functions_rela_s.html +1 -0
- package/SVF-doxygen/html/functions_s.html +15 -14
- package/SVF-doxygen/html/functions_t.html +5 -5
- package/SVF-doxygen/html/functions_type_l.html +1 -1
- package/SVF-doxygen/html/functions_type_v.html +1 -1
- package/SVF-doxygen/html/functions_v.html +7 -5
- package/SVF-doxygen/html/functions_vars.html +2 -2
- package/SVF-doxygen/html/functions_w.html +13 -9
- package/SVF-doxygen/html/functions_~.html +3 -0
- package/SVF-doxygen/html/hierarchy.html +2 -1
- package/SVF-doxygen/html/namespaceSVF.html +2 -0
- package/SVF-doxygen/html/search/all_0.js +2 -2
- package/SVF-doxygen/html/search/all_1.js +1 -1
- package/SVF-doxygen/html/search/all_10.js +325 -325
- package/SVF-doxygen/html/search/all_11.js +224 -224
- package/SVF-doxygen/html/search/all_12.js +552 -552
- package/SVF-doxygen/html/search/all_13.js +190 -190
- package/SVF-doxygen/html/search/all_14.js +67 -67
- package/SVF-doxygen/html/search/all_15.js +168 -168
- package/SVF-doxygen/html/search/all_16.js +63 -63
- package/SVF-doxygen/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/search/all_18.js +1 -1
- package/SVF-doxygen/html/search/all_19.js +11 -11
- package/SVF-doxygen/html/search/all_1a.js +174 -173
- package/SVF-doxygen/html/search/all_2.js +4 -4
- package/SVF-doxygen/html/search/all_3.js +2 -2
- package/SVF-doxygen/html/search/all_5.js +2 -2
- package/SVF-doxygen/html/search/all_6.js +1 -1
- package/SVF-doxygen/html/search/all_7.js +6 -6
- package/SVF-doxygen/html/search/all_8.js +2 -2
- package/SVF-doxygen/html/search/all_9.js +406 -405
- package/SVF-doxygen/html/search/all_a.js +46 -46
- package/SVF-doxygen/html/search/all_b.js +26 -26
- package/SVF-doxygen/html/search/all_c.js +115 -115
- package/SVF-doxygen/html/search/all_d.js +197 -197
- package/SVF-doxygen/html/search/all_e.js +207 -207
- package/SVF-doxygen/html/search/all_f.js +116 -116
- package/SVF-doxygen/html/search/classes_0.js +26 -26
- package/SVF-doxygen/html/search/classes_1.js +9 -9
- package/SVF-doxygen/html/search/classes_10.js +73 -73
- package/SVF-doxygen/html/search/classes_11.js +15 -15
- package/SVF-doxygen/html/search/classes_12.js +2 -2
- package/SVF-doxygen/html/search/classes_13.js +10 -10
- package/SVF-doxygen/html/search/classes_14.js +14 -14
- package/SVF-doxygen/html/search/classes_15.js +1 -1
- package/SVF-doxygen/html/search/classes_2.js +81 -81
- package/SVF-doxygen/html/search/classes_3.js +37 -37
- package/SVF-doxygen/html/search/classes_4.js +9 -9
- package/SVF-doxygen/html/search/classes_5.js +28 -28
- package/SVF-doxygen/html/search/classes_6.js +104 -104
- package/SVF-doxygen/html/search/classes_7.js +34 -34
- package/SVF-doxygen/html/search/classes_8.js +57 -56
- package/SVF-doxygen/html/search/classes_9.js +1 -1
- package/SVF-doxygen/html/search/classes_a.js +12 -12
- package/SVF-doxygen/html/search/classes_b.js +29 -29
- package/SVF-doxygen/html/search/classes_c.js +6 -6
- package/SVF-doxygen/html/search/classes_d.js +18 -18
- package/SVF-doxygen/html/search/classes_e.js +36 -36
- package/SVF-doxygen/html/search/classes_f.js +25 -25
- package/SVF-doxygen/html/search/defines_0.js +3 -3
- package/SVF-doxygen/html/search/defines_1.js +2 -2
- package/SVF-doxygen/html/search/defines_2.js +30 -30
- package/SVF-doxygen/html/search/defines_3.js +20 -20
- package/SVF-doxygen/html/search/defines_4.js +2 -2
- package/SVF-doxygen/html/search/defines_5.js +4 -4
- package/SVF-doxygen/html/search/defines_6.js +2 -2
- package/SVF-doxygen/html/search/defines_7.js +5 -5
- package/SVF-doxygen/html/search/defines_8.js +11 -11
- package/SVF-doxygen/html/search/defines_9.js +9 -9
- package/SVF-doxygen/html/search/defines_a.js +2 -2
- package/SVF-doxygen/html/search/defines_b.js +1 -1
- package/SVF-doxygen/html/search/defines_c.js +3 -3
- package/SVF-doxygen/html/search/defines_d.js +2 -2
- package/SVF-doxygen/html/search/defines_e.js +7 -7
- package/SVF-doxygen/html/search/defines_f.js +3 -3
- package/SVF-doxygen/html/search/enums_0.js +3 -3
- package/SVF-doxygen/html/search/enums_1.js +2 -2
- package/SVF-doxygen/html/search/enums_10.js +1 -1
- package/SVF-doxygen/html/search/enums_11.js +1 -1
- package/SVF-doxygen/html/search/enums_2.js +8 -8
- package/SVF-doxygen/html/search/enums_3.js +1 -1
- package/SVF-doxygen/html/search/enums_4.js +3 -3
- package/SVF-doxygen/html/search/enums_5.js +1 -1
- package/SVF-doxygen/html/search/enums_6.js +2 -2
- package/SVF-doxygen/html/search/enums_7.js +2 -2
- package/SVF-doxygen/html/search/enums_8.js +4 -4
- package/SVF-doxygen/html/search/enums_9.js +1 -1
- package/SVF-doxygen/html/search/enums_a.js +1 -1
- package/SVF-doxygen/html/search/enums_b.js +7 -7
- package/SVF-doxygen/html/search/enums_c.js +1 -1
- package/SVF-doxygen/html/search/enums_d.js +4 -4
- package/SVF-doxygen/html/search/enums_e.js +2 -2
- package/SVF-doxygen/html/search/enums_f.js +4 -4
- package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
- package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
- package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
- package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
- package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
- package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
- package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
- package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
- package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
- package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
- package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_7.js +8 -8
- package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
- package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
- package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
- package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
- package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
- package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
- package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
- package/SVF-doxygen/html/search/files_0.js +13 -13
- package/SVF-doxygen/html/search/files_1.js +7 -7
- package/SVF-doxygen/html/search/files_10.js +8 -8
- package/SVF-doxygen/html/search/files_11.js +8 -8
- package/SVF-doxygen/html/search/files_12.js +2 -2
- package/SVF-doxygen/html/search/files_2.js +57 -57
- package/SVF-doxygen/html/search/files_3.js +14 -14
- package/SVF-doxygen/html/search/files_4.js +5 -5
- package/SVF-doxygen/html/search/files_5.js +13 -13
- package/SVF-doxygen/html/search/files_6.js +9 -9
- package/SVF-doxygen/html/search/files_7.js +14 -14
- package/SVF-doxygen/html/search/files_8.js +13 -13
- package/SVF-doxygen/html/search/files_9.js +18 -18
- package/SVF-doxygen/html/search/files_a.js +3 -3
- package/SVF-doxygen/html/search/files_b.js +2 -2
- package/SVF-doxygen/html/search/files_c.js +20 -20
- package/SVF-doxygen/html/search/files_d.js +4 -4
- package/SVF-doxygen/html/search/files_e.js +62 -62
- package/SVF-doxygen/html/search/files_f.js +8 -8
- package/SVF-doxygen/html/search/functions_0.js +13 -13
- package/SVF-doxygen/html/search/functions_1.js +362 -362
- package/SVF-doxygen/html/search/functions_10.js +140 -140
- package/SVF-doxygen/html/search/functions_11.js +139 -139
- package/SVF-doxygen/html/search/functions_12.js +288 -288
- package/SVF-doxygen/html/search/functions_13.js +59 -59
- package/SVF-doxygen/html/search/functions_14.js +39 -39
- package/SVF-doxygen/html/search/functions_15.js +71 -71
- package/SVF-doxygen/html/search/functions_16.js +32 -32
- package/SVF-doxygen/html/search/functions_17.js +3 -3
- package/SVF-doxygen/html/search/functions_18.js +174 -173
- package/SVF-doxygen/html/search/functions_2.js +89 -89
- package/SVF-doxygen/html/search/functions_3.js +261 -261
- package/SVF-doxygen/html/search/functions_4.js +78 -78
- package/SVF-doxygen/html/search/functions_5.js +53 -53
- package/SVF-doxygen/html/search/functions_6.js +60 -60
- package/SVF-doxygen/html/search/functions_7.js +855 -855
- package/SVF-doxygen/html/search/functions_8.js +148 -148
- package/SVF-doxygen/html/search/functions_9.js +421 -420
- package/SVF-doxygen/html/search/functions_a.js +30 -30
- package/SVF-doxygen/html/search/functions_b.js +2 -2
- package/SVF-doxygen/html/search/functions_c.js +25 -25
- package/SVF-doxygen/html/search/functions_d.js +79 -79
- package/SVF-doxygen/html/search/functions_e.js +35 -35
- package/SVF-doxygen/html/search/functions_f.js +56 -56
- package/SVF-doxygen/html/search/namespaces_0.js +1 -1
- package/SVF-doxygen/html/search/namespaces_1.js +7 -7
- package/SVF-doxygen/html/search/related_0.js +2 -2
- package/SVF-doxygen/html/search/related_1.js +2 -2
- package/SVF-doxygen/html/search/related_2.js +3 -3
- package/SVF-doxygen/html/search/related_3.js +2 -2
- package/SVF-doxygen/html/search/related_4.js +2 -2
- package/SVF-doxygen/html/search/related_5.js +1 -1
- package/SVF-doxygen/html/search/related_6.js +2 -2
- package/SVF-doxygen/html/search/related_7.js +4 -4
- package/SVF-doxygen/html/search/related_8.js +2 -2
- package/SVF-doxygen/html/search/related_9.js +4 -4
- package/SVF-doxygen/html/search/related_a.js +19 -19
- package/SVF-doxygen/html/search/related_b.js +4 -4
- package/SVF-doxygen/html/search/related_c.js +2 -2
- package/SVF-doxygen/html/search/related_d.js +12 -12
- package/SVF-doxygen/html/search/related_e.js +2 -2
- package/SVF-doxygen/html/search/related_f.js +2 -2
- package/SVF-doxygen/html/search/typedefs_0.js +19 -19
- package/SVF-doxygen/html/search/typedefs_1.js +26 -26
- package/SVF-doxygen/html/search/typedefs_10.js +62 -62
- package/SVF-doxygen/html/search/typedefs_11.js +13 -13
- package/SVF-doxygen/html/search/typedefs_12.js +11 -11
- package/SVF-doxygen/html/search/typedefs_13.js +33 -33
- package/SVF-doxygen/html/search/typedefs_14.js +8 -8
- package/SVF-doxygen/html/search/typedefs_2.js +129 -129
- package/SVF-doxygen/html/search/typedefs_3.js +39 -39
- package/SVF-doxygen/html/search/typedefs_4.js +17 -17
- package/SVF-doxygen/html/search/typedefs_5.js +41 -41
- package/SVF-doxygen/html/search/typedefs_6.js +56 -56
- package/SVF-doxygen/html/search/typedefs_7.js +44 -44
- package/SVF-doxygen/html/search/typedefs_8.js +1 -1
- package/SVF-doxygen/html/search/typedefs_9.js +6 -6
- package/SVF-doxygen/html/search/typedefs_a.js +29 -29
- package/SVF-doxygen/html/search/typedefs_b.js +29 -29
- package/SVF-doxygen/html/search/typedefs_c.js +41 -41
- package/SVF-doxygen/html/search/typedefs_d.js +14 -14
- package/SVF-doxygen/html/search/typedefs_e.js +52 -52
- package/SVF-doxygen/html/search/typedefs_f.js +14 -14
- package/SVF-doxygen/html/search/variables_0.js +151 -151
- package/SVF-doxygen/html/search/variables_1.js +75 -75
- package/SVF-doxygen/html/search/variables_10.js +98 -98
- package/SVF-doxygen/html/search/variables_11.js +45 -45
- package/SVF-doxygen/html/search/variables_12.js +90 -90
- package/SVF-doxygen/html/search/variables_13.js +74 -74
- package/SVF-doxygen/html/search/variables_14.js +14 -14
- package/SVF-doxygen/html/search/variables_15.js +49 -49
- package/SVF-doxygen/html/search/variables_16.js +9 -9
- package/SVF-doxygen/html/search/variables_17.js +1 -1
- package/SVF-doxygen/html/search/variables_18.js +2 -2
- package/SVF-doxygen/html/search/variables_2.js +38 -38
- package/SVF-doxygen/html/search/variables_3.js +142 -142
- package/SVF-doxygen/html/search/variables_4.js +50 -50
- package/SVF-doxygen/html/search/variables_5.js +37 -37
- package/SVF-doxygen/html/search/variables_6.js +66 -66
- package/SVF-doxygen/html/search/variables_7.js +34 -34
- package/SVF-doxygen/html/search/variables_8.js +7 -7
- package/SVF-doxygen/html/search/variables_9.js +78 -78
- package/SVF-doxygen/html/search/variables_a.js +4 -4
- package/SVF-doxygen/html/search/variables_b.js +10 -10
- package/SVF-doxygen/html/search/variables_c.js +45 -45
- package/SVF-doxygen/html/search/variables_d.js +55 -55
- package/SVF-doxygen/html/search/variables_e.js +123 -123
- package/SVF-doxygen/html/search/variables_f.js +30 -30
- package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1IntervalExeState_01_4.html +6 -6
- package/package.json +1 -1
- package/svf/include/AbstractExecution/IntervalExeState.h +274 -102
- package/svf/include/AbstractExecution/RelationSolver.h +9 -9
- package/svf/lib/AbstractExecution/IntervalExeState.cpp +85 -14
- package/svf/lib/AbstractExecution/RelationSolver.cpp +22 -22
|
@@ -79,30 +79,30 @@ $(function() {
|
|
|
79
79
|
Public Member Functions</h2></td></tr>
|
|
80
80
|
<tr class="memitem:aaee624b8260da9ba0de027d80b01d984"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#aaee624b8260da9ba0de027d80b01d984">RelationSolver</a> ()=default</td></tr>
|
|
81
81
|
<tr class="separator:aaee624b8260da9ba0de027d80b01d984"><td class="memSeparator" colspan="2"> </td></tr>
|
|
82
|
-
<tr class="memitem:
|
|
83
|
-
<tr class="memdesc:
|
|
84
|
-
<tr class="separator:
|
|
85
|
-
<tr class="memitem:
|
|
86
|
-
<tr class="memdesc:
|
|
87
|
-
<tr class="separator:
|
|
88
|
-
<tr class="memitem:
|
|
89
|
-
<tr class="memdesc:
|
|
90
|
-
<tr class="separator:
|
|
91
|
-
<tr class="memitem:
|
|
92
|
-
<tr class="separator:
|
|
93
|
-
<tr class="memitem:
|
|
94
|
-
<tr class="separator:
|
|
82
|
+
<tr class="memitem:af860063ccaeca043bac84eb9eb2cf80a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">gamma_hat</a> (const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &exeState) const</td></tr>
|
|
83
|
+
<tr class="memdesc:af860063ccaeca043bac84eb9eb2cf80a"><td class="mdescLeft"> </td><td class="mdescRight">Return <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> according to valToValMap. <a href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">More...</a><br /></td></tr>
|
|
84
|
+
<tr class="separator:af860063ccaeca043bac84eb9eb2cf80a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
85
|
+
<tr class="memitem:a93a034bb18001abc278d6986706024af"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#a93a034bb18001abc278d6986706024af">gamma_hat</a> (const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &alpha, const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &exeState) const</td></tr>
|
|
86
|
+
<tr class="memdesc:a93a034bb18001abc278d6986706024af"><td class="mdescLeft"> </td><td class="mdescRight">Return <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> according to another valToValMap. <a href="classSVF_1_1RelationSolver.html#a93a034bb18001abc278d6986706024af">More...</a><br /></td></tr>
|
|
87
|
+
<tr class="separator:a93a034bb18001abc278d6986706024af"><td class="memSeparator" colspan="2"> </td></tr>
|
|
88
|
+
<tr class="memitem:aff6752947e73cd0559b5a340547c9016"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#aff6752947e73cd0559b5a340547c9016">gamma_hat</a> (<a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> id, const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &exeState) const</td></tr>
|
|
89
|
+
<tr class="memdesc:aff6752947e73cd0559b5a340547c9016"><td class="mdescLeft"> </td><td class="mdescRight">Return <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> from a NodeID. <a href="classSVF_1_1RelationSolver.html#aff6752947e73cd0559b5a340547c9016">More...</a><br /></td></tr>
|
|
90
|
+
<tr class="separator:aff6752947e73cd0559b5a340547c9016"><td class="memSeparator" colspan="2"> </td></tr>
|
|
91
|
+
<tr class="memitem:a012d18ece2c66ba6e784ae9578171369"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#a012d18ece2c66ba6e784ae9578171369">abstract_consequence</a> (const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &lower, const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &upper, const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &domain) const</td></tr>
|
|
92
|
+
<tr class="separator:a012d18ece2c66ba6e784ae9578171369"><td class="memSeparator" colspan="2"> </td></tr>
|
|
93
|
+
<tr class="memitem:af0c2db68bffbb223b845ca307b86c10a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#af0c2db68bffbb223b845ca307b86c10a">beta</a> (const <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, double > &sigma, const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &exeState) const</td></tr>
|
|
94
|
+
<tr class="separator:af0c2db68bffbb223b845ca307b86c10a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
95
95
|
<tr class="memitem:af621897ab66f6475d5ee043ef2e33623"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#af621897ab66f6475d5ee043ef2e33623">toZ3Expr</a> (<a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId) const</td></tr>
|
|
96
96
|
<tr class="memdesc:af621897ab66f6475d5ee043ef2e33623"><td class="mdescLeft"> </td><td class="mdescRight">Return Z3 expression lazily based on <a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> ID. <a href="classSVF_1_1RelationSolver.html#af621897ab66f6475d5ee043ef2e33623">More...</a><br /></td></tr>
|
|
97
97
|
<tr class="separator:af621897ab66f6475d5ee043ef2e33623"><td class="memSeparator" colspan="2"> </td></tr>
|
|
98
|
-
<tr class="memitem:
|
|
99
|
-
<tr class="separator:
|
|
100
|
-
<tr class="memitem:
|
|
101
|
-
<tr class="separator:
|
|
98
|
+
<tr class="memitem:a0df88638c5e3f8cd56d34088b96199f1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#a0df88638c5e3f8cd56d34088b96199f1">bilateral</a> (const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &domain, const <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &phi, <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> descend_check=0)</td></tr>
|
|
99
|
+
<tr class="separator:a0df88638c5e3f8cd56d34088b96199f1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
100
|
+
<tr class="memitem:a657af041f883e7b1a3f9892453a2c4cf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#a657af041f883e7b1a3f9892453a2c4cf">RSY</a> (const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &domain, const <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &phi)</td></tr>
|
|
101
|
+
<tr class="separator:a657af041f883e7b1a3f9892453a2c4cf"><td class="memSeparator" colspan="2"> </td></tr>
|
|
102
102
|
<tr class="memitem:aaae7ac9ed7d0e17f39948c37b867ada9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, <a class="el" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#aaae7ac9ed7d0e17f39948c37b867ada9">BoxedOptSolver</a> (const <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &phi, <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, <a class="el" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> > &ret, <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, <a class="el" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> > &low_values, <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, <a class="el" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> > &high_values)</td></tr>
|
|
103
103
|
<tr class="separator:aaae7ac9ed7d0e17f39948c37b867ada9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
104
|
-
<tr class="memitem:
|
|
105
|
-
<tr class="separator:
|
|
104
|
+
<tr class="memitem:a7e827609a1d69c6517f1a3eee0326fc3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#a7e827609a1d69c6517f1a3eee0326fc3">BS</a> (const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &domain, const <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &phi)</td></tr>
|
|
105
|
+
<tr class="separator:a7e827609a1d69c6517f1a3eee0326fc3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
106
106
|
<tr class="memitem:af00aee55faf18a994dc5558ca4bf4932"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#af00aee55faf18a994dc5558ca4bf4932">updateMap</a> (<a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, <a class="el" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> > &map, <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> key, const <a class="el" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> &value)</td></tr>
|
|
107
107
|
<tr class="separator:af00aee55faf18a994dc5558ca4bf4932"><td class="memSeparator" colspan="2"> </td></tr>
|
|
108
108
|
<tr class="memitem:a7ace50c6e53a79f0e329badb63570f92"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#a7ace50c6e53a79f0e329badb63570f92">decide_cpa_ext</a> (const <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &phi, <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> > &, <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, <a class="el" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> > &, <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, <a class="el" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> > &, <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, <a class="el" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> > &, <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, <a class="el" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> > &)</td></tr>
|
|
@@ -138,28 +138,28 @@ Public Member Functions</h2></td></tr>
|
|
|
138
138
|
</div>
|
|
139
139
|
</div>
|
|
140
140
|
<h2 class="groupheader">Member Function Documentation</h2>
|
|
141
|
-
<a id="
|
|
142
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
141
|
+
<a id="a012d18ece2c66ba6e784ae9578171369"></a>
|
|
142
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a012d18ece2c66ba6e784ae9578171369">◆ </a></span>abstract_consequence()</h2>
|
|
143
143
|
|
|
144
144
|
<div class="memitem">
|
|
145
145
|
<div class="memproto">
|
|
146
146
|
<table class="memname">
|
|
147
147
|
<tr>
|
|
148
|
-
<td class="memname"><a class="el" href="
|
|
148
|
+
<td class="memname"><a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> RelationSolver::abstract_consequence </td>
|
|
149
149
|
<td>(</td>
|
|
150
|
-
<td class="paramtype">const <a class="el" href="
|
|
150
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> & </td>
|
|
151
151
|
<td class="paramname"><em>lower</em>, </td>
|
|
152
152
|
</tr>
|
|
153
153
|
<tr>
|
|
154
154
|
<td class="paramkey"></td>
|
|
155
155
|
<td></td>
|
|
156
|
-
<td class="paramtype">const <a class="el" href="
|
|
156
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> & </td>
|
|
157
157
|
<td class="paramname"><em>upper</em>, </td>
|
|
158
158
|
</tr>
|
|
159
159
|
<tr>
|
|
160
160
|
<td class="paramkey"></td>
|
|
161
161
|
<td></td>
|
|
162
|
-
<td class="paramtype">const <a class="el" href="
|
|
162
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> & </td>
|
|
163
163
|
<td class="paramname"><em>domain</em> </td>
|
|
164
164
|
</tr>
|
|
165
165
|
<tr>
|
|
@@ -188,11 +188,11 @@ Public Member Functions</h2></td></tr>
|
|
|
188
188
|
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="comment"> of the SMT solver in many cases. In certain cases, other choices for</span></div>
|
|
189
189
|
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="comment"> the abstract consequence will lead to better algorithm performance.*/</span></div>
|
|
190
190
|
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  </div>
|
|
191
|
-
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = domain.<a class="code" href="
|
|
192
|
-
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  it != domain.<a class="code" href="
|
|
191
|
+
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>().begin();</div>
|
|
192
|
+
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  it != domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>().end(); ++it)</div>
|
|
193
193
|
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  {</div>
|
|
194
|
-
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <a class="code" href="
|
|
195
|
-
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  proposed.<a class="code" href="
|
|
194
|
+
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> proposed = domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a33fd0e4a654dd4f5b7762b0088e11674">top</a>(); </div>
|
|
195
|
+
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  proposed.<a class="code" href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>[it->first] = lower.<a class="code" href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>.at(it->first);</div>
|
|
196
196
|
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keywordflow">if</span> (!(proposed >= upper)) </div>
|
|
197
197
|
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  {</div>
|
|
198
198
|
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keywordflow">return</span> proposed; </div>
|
|
@@ -203,14 +203,14 @@ Public Member Functions</h2></td></tr>
|
|
|
203
203
|
</div><!-- fragment -->
|
|
204
204
|
</div>
|
|
205
205
|
</div>
|
|
206
|
-
<a id="
|
|
207
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
206
|
+
<a id="af0c2db68bffbb223b845ca307b86c10a"></a>
|
|
207
|
+
<h2 class="memtitle"><span class="permalink"><a href="#af0c2db68bffbb223b845ca307b86c10a">◆ </a></span>beta()</h2>
|
|
208
208
|
|
|
209
209
|
<div class="memitem">
|
|
210
210
|
<div class="memproto">
|
|
211
211
|
<table class="memname">
|
|
212
212
|
<tr>
|
|
213
|
-
<td class="memname"><a class="el" href="
|
|
213
|
+
<td class="memname"><a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> RelationSolver::beta </td>
|
|
214
214
|
<td>(</td>
|
|
215
215
|
<td class="paramtype">const <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, double > & </td>
|
|
216
216
|
<td class="paramname"><em>sigma</em>, </td>
|
|
@@ -218,7 +218,7 @@ Public Member Functions</h2></td></tr>
|
|
|
218
218
|
<tr>
|
|
219
219
|
<td class="paramkey"></td>
|
|
220
220
|
<td></td>
|
|
221
|
-
<td class="paramtype">const <a class="el" href="
|
|
221
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> & </td>
|
|
222
222
|
<td class="paramname"><em>exeState</em> </td>
|
|
223
223
|
</tr>
|
|
224
224
|
<tr>
|
|
@@ -231,10 +231,10 @@ Public Member Functions</h2></td></tr>
|
|
|
231
231
|
|
|
232
232
|
<p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#l00241">241</a> of file <a class="el" href="RelationSolver_8cpp_source.html">RelationSolver.cpp</a>.</p>
|
|
233
233
|
<div class="fragment"><div class="line"><a name="l00243"></a><span class="lineno"> 243</span> {</div>
|
|
234
|
-
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <a class="code" href="
|
|
235
|
-
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> : exeState.<a class="code" href="
|
|
234
|
+
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> res;</div>
|
|
235
|
+
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> : exeState.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
|
|
236
236
|
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  {</div>
|
|
237
|
-
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  res.<a class="code" href="
|
|
237
|
+
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  res.<a class="code" href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(</div>
|
|
238
238
|
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  sigma.at(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first), sigma.at(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first));</div>
|
|
239
239
|
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  }</div>
|
|
240
240
|
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keywordflow">return</span> res;</div>
|
|
@@ -242,16 +242,16 @@ Public Member Functions</h2></td></tr>
|
|
|
242
242
|
</div><!-- fragment -->
|
|
243
243
|
</div>
|
|
244
244
|
</div>
|
|
245
|
-
<a id="
|
|
246
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
245
|
+
<a id="a0df88638c5e3f8cd56d34088b96199f1"></a>
|
|
246
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a0df88638c5e3f8cd56d34088b96199f1">◆ </a></span>bilateral()</h2>
|
|
247
247
|
|
|
248
248
|
<div class="memitem">
|
|
249
249
|
<div class="memproto">
|
|
250
250
|
<table class="memname">
|
|
251
251
|
<tr>
|
|
252
|
-
<td class="memname"><a class="el" href="
|
|
252
|
+
<td class="memname"><a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> RelationSolver::bilateral </td>
|
|
253
253
|
<td>(</td>
|
|
254
|
-
<td class="paramtype">const <a class="el" href="
|
|
254
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> & </td>
|
|
255
255
|
<td class="paramname"><em>domain</em>, </td>
|
|
256
256
|
</tr>
|
|
257
257
|
<tr>
|
|
@@ -283,14 +283,14 @@ Public Member Functions</h2></td></tr>
|
|
|
283
283
|
|
|
284
284
|
<p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#l00033">33</a> of file <a class="el" href="RelationSolver_8cpp_source.html">RelationSolver.cpp</a>.</p>
|
|
285
285
|
<div class="fragment"><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> {</div>
|
|
286
|
-
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <a class="code" href="
|
|
287
|
-
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <a class="code" href="
|
|
286
|
+
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> upper = domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a33fd0e4a654dd4f5b7762b0088e11674">top</a>();</div>
|
|
287
|
+
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> lower = domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a839e8ee927c1cad86aef3059b41ba2eb">bottom</a>();</div>
|
|
288
288
|
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> meets_in_a_row = 0;</div>
|
|
289
289
|
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  z3::solver solver = <a class="code" href="classSVF_1_1Z3Expr.html#a16721e960145864d0835eb95f2ae4681">Z3Expr::getSolver</a>();</div>
|
|
290
290
|
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  z3::params <a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>(<a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">Z3Expr::getContext</a>());</div>
|
|
291
291
|
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>.set(<span class="stringliteral">":timeout"</span>, <span class="keyword">static_cast<</span><span class="keywordtype">unsigned</span><span class="keyword">></span>(600)); <span class="comment">// in milliseconds</span></div>
|
|
292
292
|
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  solver.set(<a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>);</div>
|
|
293
|
-
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="
|
|
293
|
+
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> consequence;</div>
|
|
294
294
|
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  </div>
|
|
295
295
|
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordflow">while</span> (lower != upper)</div>
|
|
296
296
|
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  {</div>
|
|
@@ -300,9 +300,9 @@ Public Member Functions</h2></td></tr>
|
|
|
300
300
|
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  }</div>
|
|
301
301
|
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordflow">else</span></div>
|
|
302
302
|
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  {</div>
|
|
303
|
-
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  consequence = <a class="code" href="classSVF_1_1RelationSolver.html#
|
|
303
|
+
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  consequence = <a class="code" href="classSVF_1_1RelationSolver.html#a012d18ece2c66ba6e784ae9578171369">abstract_consequence</a>(lower, upper, domain);</div>
|
|
304
304
|
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  }</div>
|
|
305
|
-
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> rhs = !(<a class="code" href="classSVF_1_1RelationSolver.html#
|
|
305
|
+
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> rhs = !(<a class="code" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">gamma_hat</a>(consequence, domain));</div>
|
|
306
306
|
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  solver.push();</div>
|
|
307
307
|
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  solver.add(phi.<a class="code" href="classSVF_1_1Z3Expr.html#a57c199ba2c3c6a6d44a86e0b1429be55">getExpr</a>() && rhs.<a class="code" href="classSVF_1_1Z3Expr.html#a57c199ba2c3c6a6d44a86e0b1429be55">getExpr</a>());</div>
|
|
308
308
|
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<u32_t, double></a> solution;</div>
|
|
@@ -319,7 +319,7 @@ Public Member Functions</h2></td></tr>
|
|
|
319
319
|
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  solution.emplace(std::stoi(v.name().str()),</div>
|
|
320
320
|
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  m.get_const_interp(v).get_numeral_int());</div>
|
|
321
321
|
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  }</div>
|
|
322
|
-
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> : domain.<a class="code" href="
|
|
322
|
+
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> : domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
|
|
323
323
|
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  {</div>
|
|
324
324
|
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordflow">if</span> (solution.find(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first) == solution.end())</div>
|
|
325
325
|
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  {</div>
|
|
@@ -327,10 +327,10 @@ Public Member Functions</h2></td></tr>
|
|
|
327
327
|
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  }</div>
|
|
328
328
|
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  }</div>
|
|
329
329
|
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  solver.pop();</div>
|
|
330
|
-
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <a class="code" href="
|
|
331
|
-
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  newLower.<a class="code" href="
|
|
332
|
-
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <a class="code" href="
|
|
333
|
-
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  newLower.<a class="code" href="
|
|
330
|
+
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> newLower = domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a839e8ee927c1cad86aef3059b41ba2eb">bottom</a>();</div>
|
|
331
|
+
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  newLower.<a class="code" href="classSVF_1_1IntervalESBase.html#adc0db607e4c0f117760535df67b91fbd">joinWith</a>(lower);</div>
|
|
332
|
+
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> rhs = <a class="code" href="classSVF_1_1RelationSolver.html#af0c2db68bffbb223b845ca307b86c10a">beta</a>(solution, domain);</div>
|
|
333
|
+
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  newLower.<a class="code" href="classSVF_1_1IntervalESBase.html#adc0db607e4c0f117760535df67b91fbd">joinWith</a>(rhs);</div>
|
|
334
334
|
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  lower = newLower;</div>
|
|
335
335
|
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  meets_in_a_row = 0;</div>
|
|
336
336
|
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  }</div>
|
|
@@ -342,9 +342,9 @@ Public Member Functions</h2></td></tr>
|
|
|
342
342
|
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">if</span> (solver.reason_unknown() == <span class="stringliteral">"timeout"</span>)</div>
|
|
343
343
|
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">return</span> upper;</div>
|
|
344
344
|
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  }</div>
|
|
345
|
-
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <a class="code" href="
|
|
346
|
-
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  newUpper.<a class="code" href="
|
|
347
|
-
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  newUpper.<a class="code" href="
|
|
345
|
+
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> newUpper = domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a33fd0e4a654dd4f5b7762b0088e11674">top</a>();</div>
|
|
346
|
+
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  newUpper.<a class="code" href="classSVF_1_1IntervalESBase.html#a92a8531c7f12cc6f9117596aa5e534b6">meetWith</a>(upper);</div>
|
|
347
|
+
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  newUpper.<a class="code" href="classSVF_1_1IntervalESBase.html#a92a8531c7f12cc6f9117596aa5e534b6">meetWith</a>(consequence);</div>
|
|
348
348
|
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  upper = newUpper;</div>
|
|
349
349
|
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  meets_in_a_row += 1;</div>
|
|
350
350
|
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  }</div>
|
|
@@ -421,16 +421,16 @@ Public Member Functions</h2></td></tr>
|
|
|
421
421
|
</div><!-- fragment -->
|
|
422
422
|
</div>
|
|
423
423
|
</div>
|
|
424
|
-
<a id="
|
|
425
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
424
|
+
<a id="a7e827609a1d69c6517f1a3eee0326fc3"></a>
|
|
425
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a7e827609a1d69c6517f1a3eee0326fc3">◆ </a></span>BS()</h2>
|
|
426
426
|
|
|
427
427
|
<div class="memitem">
|
|
428
428
|
<div class="memproto">
|
|
429
429
|
<table class="memname">
|
|
430
430
|
<tr>
|
|
431
|
-
<td class="memname"><a class="el" href="
|
|
431
|
+
<td class="memname"><a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> RelationSolver::BS </td>
|
|
432
432
|
<td>(</td>
|
|
433
|
-
<td class="paramtype">const <a class="el" href="
|
|
433
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> & </td>
|
|
434
434
|
<td class="paramname"><em>domain</em>, </td>
|
|
435
435
|
</tr>
|
|
436
436
|
<tr>
|
|
@@ -461,7 +461,7 @@ Public Member Functions</h2></td></tr>
|
|
|
461
461
|
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<u32_t, NumericLiteral></a> ret;</div>
|
|
462
462
|
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<u32_t, NumericLiteral></a> low_values, high_values;</div>
|
|
463
463
|
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> new_phi = phi;</div>
|
|
464
|
-
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>: domain.<a class="code" href="
|
|
464
|
+
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>: domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
|
|
465
465
|
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  {</div>
|
|
466
466
|
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <a class="code" href="classSVF_1_1RelationSolver.html#af00aee55faf18a994dc5558ca4bf4932">updateMap</a>(ret, <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first, <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second.ub());</div>
|
|
467
467
|
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second.lb().is_minus_infinity())</div>
|
|
@@ -475,7 +475,7 @@ Public Member Functions</h2></td></tr>
|
|
|
475
475
|
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first > bias)</div>
|
|
476
476
|
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  bias = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first + 1;</div>
|
|
477
477
|
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  }</div>
|
|
478
|
-
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>: domain.<a class="code" href="
|
|
478
|
+
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>: domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
|
|
479
479
|
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  {</div>
|
|
480
480
|
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> reverse_key = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first + bias;</div>
|
|
481
481
|
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <a class="code" href="classSVF_1_1RelationSolver.html#af00aee55faf18a994dc5558ca4bf4932">updateMap</a>(ret, reverse_key, -<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second.lb());</div>
|
|
@@ -490,22 +490,22 @@ Public Member Functions</h2></td></tr>
|
|
|
490
490
|
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  new_phi = (new_phi && (<a class="code" href="classSVF_1_1RelationSolver.html#af621897ab66f6475d5ee043ef2e33623">toZ3Expr</a>(reverse_key) == -1 * <a class="code" href="classSVF_1_1RelationSolver.html#af621897ab66f6475d5ee043ef2e33623">toZ3Expr</a>(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first)));</div>
|
|
491
491
|
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  }</div>
|
|
492
492
|
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <a class="code" href="classSVF_1_1RelationSolver.html#aaae7ac9ed7d0e17f39948c37b867ada9">BoxedOptSolver</a>(new_phi.<a class="code" href="classSVF_1_1Z3Expr.html#afb3478316592a395c6d473791b5a0981">simplify</a>(), ret, low_values, high_values);</div>
|
|
493
|
-
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <a class="code" href="
|
|
493
|
+
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> retInv;</div>
|
|
494
494
|
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>: ret)</div>
|
|
495
495
|
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  {</div>
|
|
496
496
|
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first >= bias)</div>
|
|
497
497
|
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  {</div>
|
|
498
498
|
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second.equal(infinity))</div>
|
|
499
|
-
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  retInv.<a class="code" href="
|
|
499
|
+
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  retInv.<a class="code" href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first - bias].setLb(<a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">Z3Expr::getContext</a>().int_const(<span class="stringliteral">"-oo"</span>));</div>
|
|
500
500
|
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordflow">else</span></div>
|
|
501
|
-
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  retInv.<a class="code" href="
|
|
501
|
+
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  retInv.<a class="code" href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first - bias].setLb(-<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second);</div>
|
|
502
502
|
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  }</div>
|
|
503
503
|
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="keywordflow">else</span></div>
|
|
504
504
|
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  {</div>
|
|
505
505
|
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second.equal(infinity))</div>
|
|
506
|
-
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  retInv.<a class="code" href="
|
|
506
|
+
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  retInv.<a class="code" href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first].setUb(<a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">Z3Expr::getContext</a>().int_const(<span class="stringliteral">"+oo"</span>));</div>
|
|
507
507
|
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="keywordflow">else</span></div>
|
|
508
|
-
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  retInv.<a class="code" href="
|
|
508
|
+
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  retInv.<a class="code" href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first].setUb(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second);</div>
|
|
509
509
|
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  }</div>
|
|
510
510
|
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  }</div>
|
|
511
511
|
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keywordflow">return</span> retInv;</div>
|
|
@@ -620,8 +620,8 @@ Public Member Functions</h2></td></tr>
|
|
|
620
620
|
</div><!-- fragment -->
|
|
621
621
|
</div>
|
|
622
622
|
</div>
|
|
623
|
-
<a id="
|
|
624
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
623
|
+
<a id="a93a034bb18001abc278d6986706024af"></a>
|
|
624
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a93a034bb18001abc278d6986706024af">◆ </a></span>gamma_hat() <span class="overload">[1/3]</span></h2>
|
|
625
625
|
|
|
626
626
|
<div class="memitem">
|
|
627
627
|
<div class="memproto">
|
|
@@ -629,13 +629,13 @@ Public Member Functions</h2></td></tr>
|
|
|
629
629
|
<tr>
|
|
630
630
|
<td class="memname"><a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> RelationSolver::gamma_hat </td>
|
|
631
631
|
<td>(</td>
|
|
632
|
-
<td class="paramtype">const <a class="el" href="
|
|
632
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> & </td>
|
|
633
633
|
<td class="paramname"><em>alpha</em>, </td>
|
|
634
634
|
</tr>
|
|
635
635
|
<tr>
|
|
636
636
|
<td class="paramkey"></td>
|
|
637
637
|
<td></td>
|
|
638
|
-
<td class="paramtype">const <a class="el" href="
|
|
638
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> & </td>
|
|
639
639
|
<td class="paramname"><em>exeState</em> </td>
|
|
640
640
|
</tr>
|
|
641
641
|
<tr>
|
|
@@ -651,9 +651,9 @@ Public Member Functions</h2></td></tr>
|
|
|
651
651
|
<p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#l00212">212</a> of file <a class="el" href="RelationSolver_8cpp_source.html">RelationSolver.cpp</a>.</p>
|
|
652
652
|
<div class="fragment"><div class="line"><a name="l00214"></a><span class="lineno"> 214</span> {</div>
|
|
653
653
|
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> res(<a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">Z3Expr::getContext</a>().bool_val(<span class="keyword">true</span>));</div>
|
|
654
|
-
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span>& <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> : exeState.<a class="code" href="
|
|
654
|
+
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span>& <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> : exeState.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
|
|
655
655
|
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  {</div>
|
|
656
|
-
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> interval = alpha.<a class="code" href="
|
|
656
|
+
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> interval = alpha.<a class="code" href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>.at(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first);</div>
|
|
657
657
|
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keywordflow">if</span> (interval.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div>
|
|
658
658
|
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">Z3Expr::getContext</a>().bool_val(<span class="keyword">false</span>);</div>
|
|
659
659
|
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="keywordflow">if</span> (interval.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>())</div>
|
|
@@ -667,8 +667,8 @@ Public Member Functions</h2></td></tr>
|
|
|
667
667
|
</div><!-- fragment -->
|
|
668
668
|
</div>
|
|
669
669
|
</div>
|
|
670
|
-
<a id="
|
|
671
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
670
|
+
<a id="af860063ccaeca043bac84eb9eb2cf80a"></a>
|
|
671
|
+
<h2 class="memtitle"><span class="permalink"><a href="#af860063ccaeca043bac84eb9eb2cf80a">◆ </a></span>gamma_hat() <span class="overload">[2/3]</span></h2>
|
|
672
672
|
|
|
673
673
|
<div class="memitem">
|
|
674
674
|
<div class="memproto">
|
|
@@ -676,7 +676,7 @@ Public Member Functions</h2></td></tr>
|
|
|
676
676
|
<tr>
|
|
677
677
|
<td class="memname"><a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> RelationSolver::gamma_hat </td>
|
|
678
678
|
<td>(</td>
|
|
679
|
-
<td class="paramtype">const <a class="el" href="
|
|
679
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> & </td>
|
|
680
680
|
<td class="paramname"><em>exeState</em></td><td>)</td>
|
|
681
681
|
<td> const</td>
|
|
682
682
|
</tr>
|
|
@@ -688,7 +688,7 @@ Public Member Functions</h2></td></tr>
|
|
|
688
688
|
<p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#l00196">196</a> of file <a class="el" href="RelationSolver_8cpp_source.html">RelationSolver.cpp</a>.</p>
|
|
689
689
|
<div class="fragment"><div class="line"><a name="l00197"></a><span class="lineno"> 197</span> {</div>
|
|
690
690
|
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> res(<a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">Z3Expr::getContext</a>().bool_val(<span class="keyword">true</span>));</div>
|
|
691
|
-
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span>& <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> : exeState.<a class="code" href="
|
|
691
|
+
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span>& <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> : exeState.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
|
|
692
692
|
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  {</div>
|
|
693
693
|
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second.isBottom())</div>
|
|
694
694
|
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">Z3Expr::getContext</a>().bool_val(<span class="keyword">false</span>);</div>
|
|
@@ -703,8 +703,8 @@ Public Member Functions</h2></td></tr>
|
|
|
703
703
|
</div><!-- fragment -->
|
|
704
704
|
</div>
|
|
705
705
|
</div>
|
|
706
|
-
<a id="
|
|
707
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
706
|
+
<a id="aff6752947e73cd0559b5a340547c9016"></a>
|
|
707
|
+
<h2 class="memtitle"><span class="permalink"><a href="#aff6752947e73cd0559b5a340547c9016">◆ </a></span>gamma_hat() <span class="overload">[3/3]</span></h2>
|
|
708
708
|
|
|
709
709
|
<div class="memitem">
|
|
710
710
|
<div class="memproto">
|
|
@@ -718,7 +718,7 @@ Public Member Functions</h2></td></tr>
|
|
|
718
718
|
<tr>
|
|
719
719
|
<td class="paramkey"></td>
|
|
720
720
|
<td></td>
|
|
721
|
-
<td class="paramtype">const <a class="el" href="
|
|
721
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> & </td>
|
|
722
722
|
<td class="paramname"><em>exeState</em> </td>
|
|
723
723
|
</tr>
|
|
724
724
|
<tr>
|
|
@@ -733,8 +733,8 @@ Public Member Functions</h2></td></tr>
|
|
|
733
733
|
|
|
734
734
|
<p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#l00230">230</a> of file <a class="el" href="RelationSolver_8cpp_source.html">RelationSolver.cpp</a>.</p>
|
|
735
735
|
<div class="fragment"><div class="line"><a name="l00231"></a><span class="lineno"> 231</span> {</div>
|
|
736
|
-
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keyword">auto</span> it = exeState.<a class="code" href="
|
|
737
|
-
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  assert(it != exeState.<a class="code" href="
|
|
736
|
+
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keyword">auto</span> it = exeState.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>().find(<span class="keywordtype">id</span>);</div>
|
|
737
|
+
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  assert(it != exeState.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>().end() && <span class="stringliteral">"id not in varToVal?"</span>);</div>
|
|
738
738
|
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> v = <a class="code" href="classSVF_1_1RelationSolver.html#af621897ab66f6475d5ee043ef2e33623">toZ3Expr</a>(<span class="keywordtype">id</span>);</div>
|
|
739
739
|
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="comment">// Z3Expr v = Z3Expr::getContext().int_const(std::to_string(id).c_str());</span></div>
|
|
740
740
|
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> res = (v >= (int)it->second.lb().getNumeral() &&</div>
|
|
@@ -744,16 +744,16 @@ Public Member Functions</h2></td></tr>
|
|
|
744
744
|
</div><!-- fragment -->
|
|
745
745
|
</div>
|
|
746
746
|
</div>
|
|
747
|
-
<a id="
|
|
748
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
747
|
+
<a id="a657af041f883e7b1a3f9892453a2c4cf"></a>
|
|
748
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a657af041f883e7b1a3f9892453a2c4cf">◆ </a></span>RSY()</h2>
|
|
749
749
|
|
|
750
750
|
<div class="memitem">
|
|
751
751
|
<div class="memproto">
|
|
752
752
|
<table class="memname">
|
|
753
753
|
<tr>
|
|
754
|
-
<td class="memname"><a class="el" href="
|
|
754
|
+
<td class="memname"><a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> RelationSolver::RSY </td>
|
|
755
755
|
<td>(</td>
|
|
756
|
-
<td class="paramtype">const <a class="el" href="
|
|
756
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> & </td>
|
|
757
757
|
<td class="paramname"><em>domain</em>, </td>
|
|
758
758
|
</tr>
|
|
759
759
|
<tr>
|
|
@@ -776,14 +776,14 @@ Public Member Functions</h2></td></tr>
|
|
|
776
776
|
|
|
777
777
|
<p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#l00111">111</a> of file <a class="el" href="RelationSolver_8cpp_source.html">RelationSolver.cpp</a>.</p>
|
|
778
778
|
<div class="fragment"><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> {</div>
|
|
779
|
-
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <a class="code" href="
|
|
779
|
+
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> lower = domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a839e8ee927c1cad86aef3059b41ba2eb">bottom</a>();</div>
|
|
780
780
|
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  z3::solver& solver = <a class="code" href="classSVF_1_1Z3Expr.html#a16721e960145864d0835eb95f2ae4681">Z3Expr::getSolver</a>();</div>
|
|
781
781
|
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  z3::params <a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>(<a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">Z3Expr::getContext</a>());</div>
|
|
782
782
|
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>.set(<span class="stringliteral">":timeout"</span>, <span class="keyword">static_cast<</span><span class="keywordtype">unsigned</span><span class="keyword">></span>(600)); <span class="comment">// in milliseconds</span></div>
|
|
783
783
|
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  solver.set(<a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>);</div>
|
|
784
784
|
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordflow">while</span> (1)</div>
|
|
785
785
|
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  {</div>
|
|
786
|
-
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> rhs = !(<a class="code" href="classSVF_1_1RelationSolver.html#
|
|
786
|
+
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> rhs = !(<a class="code" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">gamma_hat</a>(lower, domain));</div>
|
|
787
787
|
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  solver.push();</div>
|
|
788
788
|
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  solver.add(phi.<a class="code" href="classSVF_1_1Z3Expr.html#a57c199ba2c3c6a6d44a86e0b1429be55">getExpr</a>() && rhs.<a class="code" href="classSVF_1_1Z3Expr.html#a57c199ba2c3c6a6d44a86e0b1429be55">getExpr</a>());</div>
|
|
789
789
|
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<u32_t, double></a> solution;</div>
|
|
@@ -800,7 +800,7 @@ Public Member Functions</h2></td></tr>
|
|
|
800
800
|
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  solution.emplace(std::stoi(v.name().str()),</div>
|
|
801
801
|
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  m.get_const_interp(v).get_numeral_int());</div>
|
|
802
802
|
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  }</div>
|
|
803
|
-
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> : domain.<a class="code" href="
|
|
803
|
+
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> : domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
|
|
804
804
|
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  {</div>
|
|
805
805
|
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">if</span> (solution.find(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first) == solution.end())</div>
|
|
806
806
|
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  {</div>
|
|
@@ -808,9 +808,9 @@ Public Member Functions</h2></td></tr>
|
|
|
808
808
|
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  }</div>
|
|
809
809
|
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  }</div>
|
|
810
810
|
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  solver.pop();</div>
|
|
811
|
-
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <a class="code" href="
|
|
812
|
-
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  newLower.<a class="code" href="
|
|
813
|
-
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  newLower.<a class="code" href="
|
|
811
|
+
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> newLower = domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a839e8ee927c1cad86aef3059b41ba2eb">bottom</a>();</div>
|
|
812
|
+
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  newLower.<a class="code" href="classSVF_1_1IntervalESBase.html#adc0db607e4c0f117760535df67b91fbd">joinWith</a>(lower);</div>
|
|
813
|
+
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  newLower.<a class="code" href="classSVF_1_1IntervalESBase.html#adc0db607e4c0f117760535df67b91fbd">joinWith</a>(<a class="code" href="classSVF_1_1RelationSolver.html#af0c2db68bffbb223b845ca307b86c10a">beta</a>(solution, domain));</div>
|
|
814
814
|
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  lower = newLower;</div>
|
|
815
815
|
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  }</div>
|
|
816
816
|
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keywordflow">else</span> </div>
|
|
@@ -819,7 +819,7 @@ Public Member Functions</h2></td></tr>
|
|
|
819
819
|
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keywordflow">if</span> (checkRes == z3::unknown)</div>
|
|
820
820
|
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  {</div>
|
|
821
821
|
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordflow">if</span> (solver.reason_unknown() == <span class="stringliteral">"timeout"</span>)</div>
|
|
822
|
-
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">return</span> domain.<a class="code" href="
|
|
822
|
+
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">return</span> domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a33fd0e4a654dd4f5b7762b0088e11674">top</a>();</div>
|
|
823
823
|
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  }</div>
|
|
824
824
|
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordflow">break</span>;</div>
|
|
825
825
|
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  }</div>
|
|
@@ -917,32 +917,32 @@ Public Member Functions</h2></td></tr>
|
|
|
917
917
|
<div class="ttc" id="acJSON_8cpp_html_a009ef1d888ab6dbe77e6b42b0b39f1ae"><div class="ttname"><a href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a></div><div class="ttdeci">cJSON * p</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02559">cJSON.cpp:2559</a></div></div>
|
|
918
918
|
<div class="ttc" id="aclassSVF_1_1Z3Expr_html_a57c199ba2c3c6a6d44a86e0b1429be55"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a57c199ba2c3c6a6d44a86e0b1429be55">SVF::Z3Expr::getExpr</a></div><div class="ttdeci">const z3::expr & getExpr() const</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00079">Z3Expr.h:79</a></div></div>
|
|
919
919
|
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_a0df07a2659cbf3a918de5b0d7c407264"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">SVF::IntervalValue::lb</a></div><div class="ttdeci">const NumericLiteral & lb() const</div><div class="ttdoc">Return the lower bound.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00218">IntervalValue.h:218</a></div></div>
|
|
920
|
-
<div class="ttc" id="aclassSVF_1_1RelationSolver_html_a4b8d34e7a307b3ab4c0b763f14f4d8bb"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#a4b8d34e7a307b3ab4c0b763f14f4d8bb">SVF::RelationSolver::abstract_consequence</a></div><div class="ttdeci">IntervalExeState abstract_consequence(const IntervalExeState &lower, const IntervalExeState &upper, const IntervalExeState &domain) const</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00167">RelationSolver.cpp:167</a></div></div>
|
|
921
|
-
<div class="ttc" id="aclassSVF_1_1IntervalExeState_html_ad1b59eda77f703a29e9070c3ef70e430"><div class="ttname"><a href="classSVF_1_1IntervalExeState.html#ad1b59eda77f703a29e9070c3ef70e430">SVF::IntervalExeState::top</a></div><div class="ttdeci">IntervalExeState top() const</div><div class="ttdoc">Set all value top.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00128">IntervalExeState.h:128</a></div></div>
|
|
922
920
|
<div class="ttc" id="aclassSVF_1_1Z3Expr_html_acfdff582a0188678c10939165a40df30"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">SVF::Z3Expr::getContext</a></div><div class="ttdeci">static z3::context & getContext()</div><div class="ttdoc">Get z3 context, singleton design here to make sure we only have one context.</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8cpp_source.html#l00066">Z3Expr.cpp:66</a></div></div>
|
|
923
921
|
<div class="ttc" id="aclassSVF_1_1RelationSolver_html_aaae7ac9ed7d0e17f39948c37b867ada9"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#aaae7ac9ed7d0e17f39948c37b867ada9">SVF::RelationSolver::BoxedOptSolver</a></div><div class="ttdeci">Map< u32_t, NumericLiteral > BoxedOptSolver(const Z3Expr &phi, Map< u32_t, NumericLiteral > &ret, Map< u32_t, NumericLiteral > &low_values, Map< u32_t, NumericLiteral > &high_values)</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00331">RelationSolver.cpp:331</a></div></div>
|
|
924
922
|
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_af8be90fc1b61103187908dce4ba68001"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">SVF::IntervalValue::isBottom</a></div><div class="ttdeci">bool isBottom() const override</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00060">IntervalValue.h:60</a></div></div>
|
|
925
923
|
<div class="ttc" id="aclassSVF_1_1RelationSolver_html_a7ace50c6e53a79f0e329badb63570f92"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#a7ace50c6e53a79f0e329badb63570f92">SVF::RelationSolver::decide_cpa_ext</a></div><div class="ttdeci">void decide_cpa_ext(const Z3Expr &phi, Map< u32_t, Z3Expr > &, Map< u32_t, NumericLiteral > &, Map< u32_t, NumericLiteral > &, Map< u32_t, NumericLiteral > &, Map< u32_t, NumericLiteral > &)</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00359">RelationSolver.cpp:359</a></div></div>
|
|
926
924
|
<div class="ttc" id="aclassSVF_1_1Z3Expr_html"><div class="ttname"><a href="classSVF_1_1Z3Expr.html">SVF::Z3Expr</a></div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00038">Z3Expr.h:38</a></div></div>
|
|
927
925
|
<div class="ttc" id="aclassSVF_1_1NumericLiteral_html_a4181e5e15e10304ea524e5f8b2a3f576"><div class="ttname"><a href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">SVF::NumericLiteral::getNumeral</a></div><div class="ttdeci">s64_t getNumeral() const</div><div class="ttdoc">Return Numeral.</div><div class="ttdef"><b>Definition:</b> <a href="NumericLiteral_8h_source.html#l00120">NumericLiteral.h:120</a></div></div>
|
|
928
|
-
<div class="ttc" id="
|
|
926
|
+
<div class="ttc" id="aclassSVF_1_1IntervalESBase_html"><div class="ttname"><a href="classSVF_1_1IntervalESBase.html">SVF::IntervalESBase</a></div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00054">IntervalExeState.h:54</a></div></div>
|
|
927
|
+
<div class="ttc" id="aclassSVF_1_1RelationSolver_html_af860063ccaeca043bac84eb9eb2cf80a"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">SVF::RelationSolver::gamma_hat</a></div><div class="ttdeci">Z3Expr gamma_hat(const IntervalESBase &exeState) const</div><div class="ttdoc">Return Z3Expr according to valToValMap.</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00196">RelationSolver.cpp:196</a></div></div>
|
|
929
928
|
<div class="ttc" id="aclassSVF_1_1RelationSolver_html_af621897ab66f6475d5ee043ef2e33623"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#af621897ab66f6475d5ee043ef2e33623">SVF::RelationSolver::toZ3Expr</a></div><div class="ttdeci">virtual Z3Expr toZ3Expr(u32_t varId) const</div><div class="ttdoc">Return Z3 expression lazily based on SVFVar ID.</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8h_source.html#l00061">RelationSolver.h:61</a></div></div>
|
|
930
929
|
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_adac2dc2c9f744a071ad3f0175ed40cd9"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">SVF::IntervalValue::ub</a></div><div class="ttdeci">const NumericLiteral & ub() const</div><div class="ttdoc">Return the upper bound.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00225">IntervalValue.h:225</a></div></div>
|
|
931
|
-
<div class="ttc" id="
|
|
932
|
-
<div class="ttc" id="
|
|
930
|
+
<div class="ttc" id="aclassSVF_1_1IntervalESBase_html_a92a8531c7f12cc6f9117596aa5e534b6"><div class="ttname"><a href="classSVF_1_1IntervalESBase.html#a92a8531c7f12cc6f9117596aa5e534b6">SVF::IntervalESBase::meetWith</a></div><div class="ttdeci">void meetWith(const IntervalESBase &other)</div><div class="ttdoc">domain meet with other, important! other widen this.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8cpp_source.html#l00164">IntervalExeState.cpp:164</a></div></div>
|
|
931
|
+
<div class="ttc" id="aclassSVF_1_1IntervalESBase_html_ad2288306aed7301ccd30e55410c7b428"><div class="ttname"><a href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">SVF::IntervalESBase::_varToItvVal</a></div><div class="ttdeci">VarToValMap _varToItvVal</div><div class="ttdoc">Map a variable (symbol) to its interval value.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00147">IntervalExeState.h:147</a></div></div>
|
|
933
932
|
<div class="ttc" id="aclassSVF_1_1IntervalValue_html"><div class="ttname"><a href="classSVF_1_1IntervalValue.html">SVF::IntervalValue</a></div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00043">IntervalValue.h:43</a></div></div>
|
|
934
|
-
<div class="ttc" id="
|
|
935
|
-
<div class="ttc" id="aclassSVF_1_1IntervalExeState_html_af1f0b9b41ccaa98aa23a7e128a253253"><div class="ttname"><a href="classSVF_1_1IntervalExeState.html#af1f0b9b41ccaa98aa23a7e128a253253">SVF::IntervalExeState::bottom</a></div><div class="ttdeci">IntervalExeState bottom() const</div><div class="ttdoc">Set all value bottom.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00117">IntervalExeState.h:117</a></div></div>
|
|
933
|
+
<div class="ttc" id="aclassSVF_1_1RelationSolver_html_af0c2db68bffbb223b845ca307b86c10a"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#af0c2db68bffbb223b845ca307b86c10a">SVF::RelationSolver::beta</a></div><div class="ttdeci">IntervalESBase beta(const Map< u32_t, double > &sigma, const IntervalESBase &exeState) const</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00241">RelationSolver.cpp:241</a></div></div>
|
|
936
934
|
<div class="ttc" id="aclassSVF_1_1RelationSolver_html_af00aee55faf18a994dc5558ca4bf4932"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#af00aee55faf18a994dc5558ca4bf4932">SVF::RelationSolver::updateMap</a></div><div class="ttdeci">void updateMap(Map< u32_t, NumericLiteral > &map, u32_t key, const NumericLiteral &value)</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00253">RelationSolver.cpp:253</a></div></div>
|
|
937
|
-
<div class="ttc" id="
|
|
938
|
-
<div class="ttc" id="aclassSVF_1_1RelationSolver_html_a6283193a43136ecca6975e7e012984be"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#a6283193a43136ecca6975e7e012984be">SVF::RelationSolver::gamma_hat</a></div><div class="ttdeci">Z3Expr gamma_hat(const IntervalExeState &exeState) const</div><div class="ttdoc">Return Z3Expr according to valToValMap.</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00196">RelationSolver.cpp:196</a></div></div>
|
|
935
|
+
<div class="ttc" id="aclassSVF_1_1IntervalESBase_html_a839e8ee927c1cad86aef3059b41ba2eb"><div class="ttname"><a href="classSVF_1_1IntervalESBase.html#a839e8ee927c1cad86aef3059b41ba2eb">SVF::IntervalESBase::bottom</a></div><div class="ttdeci">IntervalESBase bottom() const</div><div class="ttdoc">Set all value bottom.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00113">IntervalExeState.h:113</a></div></div>
|
|
939
936
|
<div class="ttc" id="aclassSVF_1_1Z3Expr_html_afb3478316592a395c6d473791b5a0981"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#afb3478316592a395c6d473791b5a0981">SVF::Z3Expr::simplify</a></div><div class="ttdeci">Z3Expr simplify() const</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00130">Z3Expr.h:130</a></div></div>
|
|
940
937
|
<div class="ttc" id="acJSON_8h_html_ac76cea59d438ba893d2f82aabb367d14"><div class="ttname"><a href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a></div><div class="ttdeci">cJSON * item</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00222">cJSON.h:222</a></div></div>
|
|
941
938
|
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_a977128211266b93e58e298a7ac29a059"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">SVF::IntervalValue::isTop</a></div><div class="ttdeci">bool isTop() const override</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00055">IntervalValue.h:55</a></div></div>
|
|
942
939
|
<div class="ttc" id="aclassSVF_1_1NumericLiteral_html"><div class="ttname"><a href="classSVF_1_1NumericLiteral.html">SVF::NumericLiteral</a></div><div class="ttdef"><b>Definition:</b> <a href="NumericLiteral_8h_source.html#l00040">NumericLiteral.h:40</a></div></div>
|
|
940
|
+
<div class="ttc" id="aclassSVF_1_1IntervalESBase_html_a903797577ba99ef57879774a3849bbfe"><div class="ttname"><a href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">SVF::IntervalESBase::getVarToVal</a></div><div class="ttdeci">const VarToValMap & getVarToVal() const</div><div class="ttdoc">get var2val map</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00189">IntervalExeState.h:189</a></div></div>
|
|
943
941
|
<div class="ttc" id="anamespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map< Key, Value, Hash, KeyEqual, Allocator > Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00102">SVFType.h:102</a></div></div>
|
|
942
|
+
<div class="ttc" id="aclassSVF_1_1RelationSolver_html_a012d18ece2c66ba6e784ae9578171369"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#a012d18ece2c66ba6e784ae9578171369">SVF::RelationSolver::abstract_consequence</a></div><div class="ttdeci">IntervalESBase abstract_consequence(const IntervalESBase &lower, const IntervalESBase &upper, const IntervalESBase &domain) const</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00167">RelationSolver.cpp:167</a></div></div>
|
|
943
|
+
<div class="ttc" id="aclassSVF_1_1IntervalESBase_html_a33fd0e4a654dd4f5b7762b0088e11674"><div class="ttname"><a href="classSVF_1_1IntervalESBase.html#a33fd0e4a654dd4f5b7762b0088e11674">SVF::IntervalESBase::top</a></div><div class="ttdeci">IntervalESBase top() const</div><div class="ttdoc">Set all value top.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00124">IntervalExeState.h:124</a></div></div>
|
|
944
944
|
<div class="ttc" id="anamespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00051">SVFType.h:51</a></div></div>
|
|
945
|
-
<div class="ttc" id="
|
|
945
|
+
<div class="ttc" id="aclassSVF_1_1IntervalESBase_html_adc0db607e4c0f117760535df67b91fbd"><div class="ttname"><a href="classSVF_1_1IntervalESBase.html#adc0db607e4c0f117760535df67b91fbd">SVF::IntervalESBase::joinWith</a></div><div class="ttdeci">void joinWith(const IntervalESBase &other)</div><div class="ttdoc">domain join with other, important! other widen this.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8cpp_source.html#l00113">IntervalExeState.cpp:113</a></div></div>
|
|
946
946
|
<div class="ttc" id="aclassSVF_1_1Z3Expr_html_a16721e960145864d0835eb95f2ae4681"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a16721e960145864d0835eb95f2ae4681">SVF::Z3Expr::getSolver</a></div><div class="ttdeci">static z3::solver & getSolver()</div><div class="ttdoc">Get z3 solver, singleton design here to make sure we only have one context.</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8cpp_source.html#l00056">Z3Expr.cpp:56</a></div></div>
|
|
947
947
|
<!-- start footer part -->
|
|
948
948
|
<hr class="footer"/><address class="footer"><small>
|