svf-tools 1.0.898 → 1.0.899

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.
Files changed (281) hide show
  1. package/SVF-doxygen/html/AbstractExecution_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/BoundedZ3Expr_8cpp_source.html +4 -4
  3. package/SVF-doxygen/html/BoundedZ3Expr_8h_source.html +399 -395
  4. package/SVF-doxygen/html/ConsExeState_8cpp_source.html +4 -4
  5. package/SVF-doxygen/html/ConsExeState_8h_source.html +4 -4
  6. package/SVF-doxygen/html/IntervalValue_8h_source.html +8 -8
  7. package/SVF-doxygen/html/NumericLiteral_8h_source.html +378 -371
  8. package/SVF-doxygen/html/Options_8cpp_source.html +10 -1
  9. package/SVF-doxygen/html/Options_8h_source.html +8 -4
  10. package/SVF-doxygen/html/RelExeState_8cpp_source.html +4 -4
  11. package/SVF-doxygen/html/RelExeState_8h_source.html +3 -3
  12. package/SVF-doxygen/html/RelationSolver_8cpp.html +2 -0
  13. package/SVF-doxygen/html/RelationSolver_8cpp_source.html +382 -374
  14. package/SVF-doxygen/html/RelationSolver_8h_source.html +10 -10
  15. package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +2 -2
  16. package/SVF-doxygen/html/SaberCondAllocator_8cpp_source.html +2 -2
  17. package/SVF-doxygen/html/SaberCondAllocator_8h_source.html +4 -4
  18. package/SVF-doxygen/html/SingleAbsValue_8h_source.html +6 -6
  19. package/SVF-doxygen/html/Z3Expr_8cpp_source.html +5 -5
  20. package/SVF-doxygen/html/Z3Expr_8h_source.html +303 -294
  21. package/SVF-doxygen/html/ae_8cpp_source.html +4 -4
  22. package/SVF-doxygen/html/classSVF_1_1AbstractExecution.html +1 -1
  23. package/SVF-doxygen/html/classSVF_1_1BoundedZ3Expr-members.html +81 -80
  24. package/SVF-doxygen/html/classSVF_1_1BoundedZ3Expr.html +337 -302
  25. package/SVF-doxygen/html/classSVF_1_1ConsExeState.html +4 -4
  26. package/SVF-doxygen/html/classSVF_1_1IntervalValue.html +6 -6
  27. package/SVF-doxygen/html/classSVF_1_1NumericLiteral-members.html +53 -52
  28. package/SVF-doxygen/html/classSVF_1_1NumericLiteral.html +333 -297
  29. package/SVF-doxygen/html/classSVF_1_1Options-members.html +129 -128
  30. package/SVF-doxygen/html/classSVF_1_1Options.html +26 -0
  31. package/SVF-doxygen/html/classSVF_1_1RelExeState.html +4 -4
  32. package/SVF-doxygen/html/classSVF_1_1RelationSolver-members.html +1 -1
  33. package/SVF-doxygen/html/classSVF_1_1RelationSolver.html +358 -354
  34. package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +1 -1
  35. package/SVF-doxygen/html/classSVF_1_1SaberCondAllocator.html +5 -5
  36. package/SVF-doxygen/html/classSVF_1_1SingleAbsValue-members.html +100 -99
  37. package/SVF-doxygen/html/classSVF_1_1SingleAbsValue.html +11 -5
  38. package/SVF-doxygen/html/classSVF_1_1Z3Expr-members.html +2 -2
  39. package/SVF-doxygen/html/classSVF_1_1Z3Expr.html +227 -221
  40. package/SVF-doxygen/html/classSymblicAbstractionTest.html +4 -4
  41. package/SVF-doxygen/html/functions_a.html +9 -6
  42. package/SVF-doxygen/html/functions_b.html +6 -6
  43. package/SVF-doxygen/html/functions_func_b.html +3 -3
  44. package/SVF-doxygen/html/functions_func_g.html +15 -14
  45. package/SVF-doxygen/html/functions_func_i.html +2 -2
  46. package/SVF-doxygen/html/functions_func_z.html +1 -1
  47. package/SVF-doxygen/html/functions_g.html +18 -17
  48. package/SVF-doxygen/html/functions_l.html +3 -3
  49. package/SVF-doxygen/html/functions_p.html +14 -18
  50. package/SVF-doxygen/html/functions_r.html +1 -1
  51. package/SVF-doxygen/html/functions_s.html +24 -20
  52. package/SVF-doxygen/html/functions_t.html +5 -5
  53. package/SVF-doxygen/html/functions_v.html +6 -6
  54. package/SVF-doxygen/html/functions_vars_a.html +3 -0
  55. package/SVF-doxygen/html/functions_z.html +1 -1
  56. package/SVF-doxygen/html/search/all_1.js +133 -132
  57. package/SVF-doxygen/html/search/all_10.js +326 -326
  58. package/SVF-doxygen/html/search/all_11.js +226 -226
  59. package/SVF-doxygen/html/search/all_12.js +574 -574
  60. package/SVF-doxygen/html/search/all_13.js +208 -208
  61. package/SVF-doxygen/html/search/all_14.js +73 -73
  62. package/SVF-doxygen/html/search/all_15.js +176 -176
  63. package/SVF-doxygen/html/search/all_16.js +77 -77
  64. package/SVF-doxygen/html/search/all_17.js +1 -1
  65. package/SVF-doxygen/html/search/all_18.js +1 -1
  66. package/SVF-doxygen/html/search/all_19.js +27 -27
  67. package/SVF-doxygen/html/search/all_1a.js +179 -179
  68. package/SVF-doxygen/html/search/all_2.js +182 -182
  69. package/SVF-doxygen/html/search/all_3.js +642 -642
  70. package/SVF-doxygen/html/search/all_4.js +236 -236
  71. package/SVF-doxygen/html/search/all_5.js +126 -126
  72. package/SVF-doxygen/html/search/all_6.js +235 -235
  73. package/SVF-doxygen/html/search/all_7.js +1056 -1056
  74. package/SVF-doxygen/html/search/all_8.js +215 -215
  75. package/SVF-doxygen/html/search/all_9.js +632 -632
  76. package/SVF-doxygen/html/search/all_a.js +46 -46
  77. package/SVF-doxygen/html/search/all_b.js +26 -26
  78. package/SVF-doxygen/html/search/all_c.js +115 -115
  79. package/SVF-doxygen/html/search/all_d.js +204 -204
  80. package/SVF-doxygen/html/search/all_e.js +209 -209
  81. package/SVF-doxygen/html/search/all_f.js +122 -122
  82. package/SVF-doxygen/html/search/classes_0.js +28 -28
  83. package/SVF-doxygen/html/search/classes_1.js +11 -11
  84. package/SVF-doxygen/html/search/classes_10.js +74 -74
  85. package/SVF-doxygen/html/search/classes_11.js +14 -14
  86. package/SVF-doxygen/html/search/classes_12.js +2 -2
  87. package/SVF-doxygen/html/search/classes_13.js +10 -10
  88. package/SVF-doxygen/html/search/classes_14.js +19 -19
  89. package/SVF-doxygen/html/search/classes_15.js +1 -1
  90. package/SVF-doxygen/html/search/classes_2.js +73 -73
  91. package/SVF-doxygen/html/search/classes_3.js +35 -35
  92. package/SVF-doxygen/html/search/classes_4.js +8 -8
  93. package/SVF-doxygen/html/search/classes_5.js +28 -28
  94. package/SVF-doxygen/html/search/classes_6.js +98 -98
  95. package/SVF-doxygen/html/search/classes_7.js +38 -38
  96. package/SVF-doxygen/html/search/classes_8.js +59 -59
  97. package/SVF-doxygen/html/search/classes_9.js +1 -1
  98. package/SVF-doxygen/html/search/classes_a.js +12 -12
  99. package/SVF-doxygen/html/search/classes_b.js +29 -29
  100. package/SVF-doxygen/html/search/classes_c.js +6 -6
  101. package/SVF-doxygen/html/search/classes_d.js +19 -19
  102. package/SVF-doxygen/html/search/classes_e.js +36 -36
  103. package/SVF-doxygen/html/search/classes_f.js +25 -25
  104. package/SVF-doxygen/html/search/defines_0.js +3 -3
  105. package/SVF-doxygen/html/search/defines_1.js +3 -3
  106. package/SVF-doxygen/html/search/defines_10.js +2 -2
  107. package/SVF-doxygen/html/search/defines_2.js +30 -30
  108. package/SVF-doxygen/html/search/defines_3.js +20 -20
  109. package/SVF-doxygen/html/search/defines_4.js +3 -3
  110. package/SVF-doxygen/html/search/defines_5.js +4 -4
  111. package/SVF-doxygen/html/search/defines_6.js +2 -2
  112. package/SVF-doxygen/html/search/defines_7.js +5 -5
  113. package/SVF-doxygen/html/search/defines_8.js +11 -11
  114. package/SVF-doxygen/html/search/defines_9.js +9 -9
  115. package/SVF-doxygen/html/search/defines_a.js +2 -2
  116. package/SVF-doxygen/html/search/defines_b.js +1 -1
  117. package/SVF-doxygen/html/search/defines_c.js +4 -4
  118. package/SVF-doxygen/html/search/defines_d.js +2 -2
  119. package/SVF-doxygen/html/search/defines_e.js +8 -8
  120. package/SVF-doxygen/html/search/defines_f.js +4 -4
  121. package/SVF-doxygen/html/search/enums_0.js +4 -4
  122. package/SVF-doxygen/html/search/enums_1.js +2 -2
  123. package/SVF-doxygen/html/search/enums_10.js +1 -1
  124. package/SVF-doxygen/html/search/enums_11.js +1 -1
  125. package/SVF-doxygen/html/search/enums_2.js +9 -9
  126. package/SVF-doxygen/html/search/enums_3.js +1 -1
  127. package/SVF-doxygen/html/search/enums_4.js +4 -4
  128. package/SVF-doxygen/html/search/enums_5.js +1 -1
  129. package/SVF-doxygen/html/search/enums_6.js +2 -2
  130. package/SVF-doxygen/html/search/enums_7.js +2 -2
  131. package/SVF-doxygen/html/search/enums_8.js +4 -4
  132. package/SVF-doxygen/html/search/enums_9.js +1 -1
  133. package/SVF-doxygen/html/search/enums_a.js +1 -1
  134. package/SVF-doxygen/html/search/enums_b.js +7 -7
  135. package/SVF-doxygen/html/search/enums_c.js +1 -1
  136. package/SVF-doxygen/html/search/enums_d.js +4 -4
  137. package/SVF-doxygen/html/search/enums_e.js +2 -2
  138. package/SVF-doxygen/html/search/enums_f.js +4 -4
  139. package/SVF-doxygen/html/search/enumvalues_0.js +15 -15
  140. package/SVF-doxygen/html/search/enumvalues_1.js +16 -16
  141. package/SVF-doxygen/html/search/enumvalues_10.js +36 -36
  142. package/SVF-doxygen/html/search/enumvalues_11.js +5 -5
  143. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  144. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  145. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  146. package/SVF-doxygen/html/search/enumvalues_15.js +4 -4
  147. package/SVF-doxygen/html/search/enumvalues_2.js +37 -37
  148. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  149. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  150. package/SVF-doxygen/html/search/enumvalues_5.js +50 -50
  151. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  152. package/SVF-doxygen/html/search/enumvalues_7.js +8 -8
  153. package/SVF-doxygen/html/search/enumvalues_8.js +24 -24
  154. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  155. package/SVF-doxygen/html/search/enumvalues_a.js +17 -17
  156. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  157. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  158. package/SVF-doxygen/html/search/enumvalues_d.js +19 -19
  159. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  160. package/SVF-doxygen/html/search/enumvalues_f.js +49 -49
  161. package/SVF-doxygen/html/search/files_0.js +16 -16
  162. package/SVF-doxygen/html/search/files_1.js +9 -9
  163. package/SVF-doxygen/html/search/files_10.js +8 -8
  164. package/SVF-doxygen/html/search/files_11.js +8 -8
  165. package/SVF-doxygen/html/search/files_12.js +2 -2
  166. package/SVF-doxygen/html/search/files_2.js +53 -53
  167. package/SVF-doxygen/html/search/files_3.js +14 -14
  168. package/SVF-doxygen/html/search/files_4.js +5 -5
  169. package/SVF-doxygen/html/search/files_5.js +13 -13
  170. package/SVF-doxygen/html/search/files_6.js +10 -10
  171. package/SVF-doxygen/html/search/files_7.js +17 -17
  172. package/SVF-doxygen/html/search/files_8.js +13 -13
  173. package/SVF-doxygen/html/search/files_9.js +18 -18
  174. package/SVF-doxygen/html/search/files_a.js +3 -3
  175. package/SVF-doxygen/html/search/files_b.js +4 -4
  176. package/SVF-doxygen/html/search/files_c.js +20 -20
  177. package/SVF-doxygen/html/search/files_d.js +4 -4
  178. package/SVF-doxygen/html/search/files_e.js +62 -62
  179. package/SVF-doxygen/html/search/files_f.js +8 -8
  180. package/SVF-doxygen/html/search/functions_0.js +13 -13
  181. package/SVF-doxygen/html/search/functions_1.js +368 -368
  182. package/SVF-doxygen/html/search/functions_10.js +140 -140
  183. package/SVF-doxygen/html/search/functions_11.js +140 -140
  184. package/SVF-doxygen/html/search/functions_12.js +299 -299
  185. package/SVF-doxygen/html/search/functions_13.js +73 -73
  186. package/SVF-doxygen/html/search/functions_14.js +41 -41
  187. package/SVF-doxygen/html/search/functions_15.js +72 -72
  188. package/SVF-doxygen/html/search/functions_16.js +38 -38
  189. package/SVF-doxygen/html/search/functions_17.js +3 -3
  190. package/SVF-doxygen/html/search/functions_18.js +179 -179
  191. package/SVF-doxygen/html/search/functions_2.js +94 -94
  192. package/SVF-doxygen/html/search/functions_3.js +261 -261
  193. package/SVF-doxygen/html/search/functions_4.js +85 -85
  194. package/SVF-doxygen/html/search/functions_5.js +57 -57
  195. package/SVF-doxygen/html/search/functions_6.js +65 -65
  196. package/SVF-doxygen/html/search/functions_7.js +872 -872
  197. package/SVF-doxygen/html/search/functions_8.js +162 -162
  198. package/SVF-doxygen/html/search/functions_9.js +440 -440
  199. package/SVF-doxygen/html/search/functions_a.js +30 -30
  200. package/SVF-doxygen/html/search/functions_b.js +2 -2
  201. package/SVF-doxygen/html/search/functions_c.js +25 -25
  202. package/SVF-doxygen/html/search/functions_d.js +82 -82
  203. package/SVF-doxygen/html/search/functions_e.js +36 -36
  204. package/SVF-doxygen/html/search/functions_f.js +58 -58
  205. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  206. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  207. package/SVF-doxygen/html/search/related_0.js +4 -4
  208. package/SVF-doxygen/html/search/related_1.js +2 -2
  209. package/SVF-doxygen/html/search/related_2.js +2 -2
  210. package/SVF-doxygen/html/search/related_3.js +2 -2
  211. package/SVF-doxygen/html/search/related_4.js +2 -2
  212. package/SVF-doxygen/html/search/related_5.js +1 -1
  213. package/SVF-doxygen/html/search/related_6.js +2 -2
  214. package/SVF-doxygen/html/search/related_7.js +5 -5
  215. package/SVF-doxygen/html/search/related_8.js +2 -2
  216. package/SVF-doxygen/html/search/related_9.js +4 -4
  217. package/SVF-doxygen/html/search/related_a.js +19 -19
  218. package/SVF-doxygen/html/search/related_b.js +4 -4
  219. package/SVF-doxygen/html/search/related_c.js +2 -2
  220. package/SVF-doxygen/html/search/related_d.js +12 -12
  221. package/SVF-doxygen/html/search/related_e.js +2 -2
  222. package/SVF-doxygen/html/search/related_f.js +2 -2
  223. package/SVF-doxygen/html/search/typedefs_0.js +19 -19
  224. package/SVF-doxygen/html/search/typedefs_1.js +27 -27
  225. package/SVF-doxygen/html/search/typedefs_10.js +65 -65
  226. package/SVF-doxygen/html/search/typedefs_11.js +13 -13
  227. package/SVF-doxygen/html/search/typedefs_12.js +13 -13
  228. package/SVF-doxygen/html/search/typedefs_13.js +40 -40
  229. package/SVF-doxygen/html/search/typedefs_14.js +11 -11
  230. package/SVF-doxygen/html/search/typedefs_2.js +125 -125
  231. package/SVF-doxygen/html/search/typedefs_3.js +39 -39
  232. package/SVF-doxygen/html/search/typedefs_4.js +17 -17
  233. package/SVF-doxygen/html/search/typedefs_5.js +42 -42
  234. package/SVF-doxygen/html/search/typedefs_6.js +54 -54
  235. package/SVF-doxygen/html/search/typedefs_7.js +47 -47
  236. package/SVF-doxygen/html/search/typedefs_8.js +1 -1
  237. package/SVF-doxygen/html/search/typedefs_9.js +6 -6
  238. package/SVF-doxygen/html/search/typedefs_a.js +29 -29
  239. package/SVF-doxygen/html/search/typedefs_b.js +29 -29
  240. package/SVF-doxygen/html/search/typedefs_c.js +41 -41
  241. package/SVF-doxygen/html/search/typedefs_d.js +15 -15
  242. package/SVF-doxygen/html/search/typedefs_e.js +52 -52
  243. package/SVF-doxygen/html/search/typedefs_f.js +14 -14
  244. package/SVF-doxygen/html/search/variables_0.js +177 -177
  245. package/SVF-doxygen/html/search/variables_1.js +77 -76
  246. package/SVF-doxygen/html/search/variables_10.js +98 -98
  247. package/SVF-doxygen/html/search/variables_11.js +46 -46
  248. package/SVF-doxygen/html/search/variables_12.js +93 -93
  249. package/SVF-doxygen/html/search/variables_13.js +76 -76
  250. package/SVF-doxygen/html/search/variables_14.js +14 -14
  251. package/SVF-doxygen/html/search/variables_15.js +49 -49
  252. package/SVF-doxygen/html/search/variables_16.js +11 -11
  253. package/SVF-doxygen/html/search/variables_17.js +1 -1
  254. package/SVF-doxygen/html/search/variables_18.js +17 -17
  255. package/SVF-doxygen/html/search/variables_2.js +40 -40
  256. package/SVF-doxygen/html/search/variables_3.js +143 -143
  257. package/SVF-doxygen/html/search/variables_4.js +51 -51
  258. package/SVF-doxygen/html/search/variables_5.js +39 -39
  259. package/SVF-doxygen/html/search/variables_6.js +66 -66
  260. package/SVF-doxygen/html/search/variables_7.js +34 -34
  261. package/SVF-doxygen/html/search/variables_8.js +8 -8
  262. package/SVF-doxygen/html/search/variables_9.js +79 -79
  263. package/SVF-doxygen/html/search/variables_a.js +4 -4
  264. package/SVF-doxygen/html/search/variables_b.js +10 -10
  265. package/SVF-doxygen/html/search/variables_c.js +45 -45
  266. package/SVF-doxygen/html/search/variables_d.js +57 -57
  267. package/SVF-doxygen/html/search/variables_e.js +123 -123
  268. package/SVF-doxygen/html/search/variables_f.js +31 -31
  269. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1BoundedZ3Expr_01_4.html +6 -6
  270. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1NumericLiteral_01_4.html +5 -5
  271. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1SingleAbsValue_01_4.html +1 -1
  272. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1Z3Expr_01_4.html +6 -6
  273. package/package.json +1 -1
  274. package/svf/include/AE/Core/BoundedZ3Expr.h +2 -0
  275. package/svf/include/AE/Core/IntervalValue.h +1 -1
  276. package/svf/include/AE/Core/NumericLiteral.h +6 -0
  277. package/svf/include/AE/Core/RelationSolver.h +1 -1
  278. package/svf/include/Util/Options.h +3 -0
  279. package/svf/include/Util/Z3Expr.h +9 -2
  280. package/svf/lib/AE/Core/RelationSolver.cpp +11 -6
  281. package/svf/lib/Util/Options.cpp +8 -0
@@ -44,8 +44,7 @@ public:
44
44
  private:
45
45
  z3::expr e;
46
46
 
47
- Z3Expr(float f); // placeholder don't support floating point expression
48
- Z3Expr(double f); // placeholder don't support floating point expression
47
+
49
48
 
50
49
  public:
51
50
 
@@ -65,6 +64,14 @@ public:
65
64
  {
66
65
  }
67
66
 
67
+ Z3Expr(float f) : Z3Expr((double) f)
68
+ {
69
+ }
70
+
71
+ Z3Expr(double f): e(getContext().real_val(std::to_string(f).c_str()))
72
+ {
73
+ }
74
+
68
75
  virtual ~Z3Expr() = default;
69
76
 
70
77
  inline Z3Expr &operator=(const Z3Expr &rhs)
@@ -27,6 +27,9 @@
27
27
  *
28
28
  */
29
29
  #include "AE/Core/RelationSolver.h"
30
+ #include <cmath>
31
+ #include "Util/Options.h"
32
+
30
33
  using namespace SVF;
31
34
  using namespace SVFUtil;
32
35
 
@@ -59,7 +62,7 @@ IntervalESBase RelationSolver::bilateral(const IntervalESBase &domain, const Z3E
59
62
  Z3Expr rhs = !(gamma_hat(consequence, domain));
60
63
  solver.push();
61
64
  solver.add(phi.getExpr() && rhs.getExpr());
62
- Map<u32_t, double> solution;
65
+ Map<u32_t, s32_t> solution;
63
66
  z3::check_result checkRes = solver.check();
64
67
  /// find any solution, which is sat
65
68
  if (checkRes == z3::sat)
@@ -121,7 +124,7 @@ IntervalESBase RelationSolver::RSY(const IntervalESBase& domain, const Z3Expr& p
121
124
  Z3Expr rhs = !(gamma_hat(lower, domain));
122
125
  solver.push();
123
126
  solver.add(phi.getExpr() && rhs.getExpr());
124
- Map<u32_t, double> solution;
127
+ Map<u32_t, s32_t> solution;
125
128
  z3::check_result checkRes = solver.check();
126
129
  /// find any solution, which is sat
127
130
  if (checkRes == z3::sat)
@@ -238,7 +241,7 @@ Z3Expr RelationSolver::gamma_hat(u32_t id, const IntervalESBase& exeState) const
238
241
  return res;
239
242
  }
240
243
 
241
- IntervalESBase RelationSolver::beta(const Map<u32_t, double>& sigma,
244
+ IntervalESBase RelationSolver::beta(const Map<u32_t, s32_t>& sigma,
242
245
  const IntervalESBase& exeState) const
243
246
  {
244
247
  IntervalESBase res;
@@ -268,7 +271,9 @@ IntervalESBase RelationSolver::BS(const IntervalESBase& domain, const Z3Expr &ph
268
271
  /// because key of _varToItvVal is u32_t, -key may out of range for int
269
272
  /// so we do key + bias for -key
270
273
  u32_t bias = 0;
271
- int infinity = (INT32_MAX) - 1;
274
+ s32_t infinity = INT32_MAX - 1;
275
+
276
+ // int infinity = (INT32_MAX) - 1;
272
277
  // int infinity = 20;
273
278
  Map<u32_t, NumericLiteral> ret;
274
279
  Map<u32_t, NumericLiteral> low_values, high_values;
@@ -343,7 +348,7 @@ Map<u32_t, NumericLiteral> RelationSolver::BoxedOptSolver(const Z3Expr& phi, Map
343
348
  {
344
349
  NumericLiteral mid = (low_values.at(item.first) + (high_values.at(item.first) - low_values.at(item.first)) / 2);
345
350
  updateMap(mid_values, item.first, mid);
346
- Z3Expr expr = ((int)mid.getNumeral() <= v && v <= (int)high_values.at(item.first).getNumeral());
351
+ Z3Expr expr = (mid.getExpr() <= v && v <= high_values.at(item.first).getExpr());
347
352
  L_phi[item.first] = expr;
348
353
  }
349
354
  }
@@ -399,7 +404,7 @@ void RelationSolver::decide_cpa_ext(const Z3Expr& phi,
399
404
  updateMap(mid_values, id, mid);
400
405
  Z3Expr v = toZ3Expr(id);
401
406
  // Z3Expr v = Z3Expr::getContext().int_const(std::to_string(id).c_str());
402
- Z3Expr expr = ((int)mid_values.at(id).getNumeral() <= v && v <= (int)high_values.at(id).getNumeral());
407
+ Z3Expr expr = (mid_values.at(id).getExpr() <= v && v <= high_values.at(id).getExpr());
403
408
  L_phi[id] = expr;
404
409
  }
405
410
  solver.pop();
@@ -853,4 +853,12 @@ const Option<bool> Options::RunUncallFuncs(
853
853
  "run-uncall-fun","Skip Gep Unknown Index",false);
854
854
  const Option<bool> Options::ICFGMergeAdjacentNodes(
855
855
  "icfg-merge-adjnodes","ICFG Simplification - Merge Adjacent Nodes in the Same Basic Block.",false);
856
+
857
+
858
+ const Option<u32_t> Options::AEPrecision(
859
+ "precision",
860
+ "symbolic abstraction precision for float",
861
+ 0
862
+ );
863
+
856
864
  } // namespace SVF.