svf-tools 1.0.802 → 1.0.804

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 (228) hide show
  1. package/SVF-doxygen/html/BreakConstantExpr_8cpp.html +109 -14
  2. package/SVF-doxygen/html/BreakConstantExpr_8cpp_source.html +188 -141
  3. package/SVF-doxygen/html/BreakConstantExpr_8h_source.html +1 -1
  4. package/SVF-doxygen/html/IntervalValue_8h.html +0 -4
  5. package/SVF-doxygen/html/IntervalValue_8h_source.html +354 -302
  6. package/SVF-doxygen/html/LLVMModule_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/MSSAMuChi_8h_source.html +1 -1
  8. package/SVF-doxygen/html/MemRegion_8cpp_source.html +1 -1
  9. package/SVF-doxygen/html/PointsTo_8cpp_source.html +2 -2
  10. package/SVF-doxygen/html/PointsTo_8h_source.html +2 -2
  11. package/SVF-doxygen/html/SVFType_8cpp_source.html +1 -1
  12. package/SVF-doxygen/html/SVFType_8h_source.html +1 -1
  13. package/SVF-doxygen/html/SVFValue_8h_source.html +1 -1
  14. package/SVF-doxygen/html/SparseBitVector_8h_source.html +2 -2
  15. package/SVF-doxygen/html/classSVF_1_1BreakConstantGEPs.html +102 -101
  16. package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +1 -1
  17. package/SVF-doxygen/html/fastcluster__dm_8cpp_8inc_source.html +1 -1
  18. package/SVF-doxygen/html/globals_func_h.html +6 -0
  19. package/SVF-doxygen/html/globals_h.html +6 -0
  20. package/SVF-doxygen/html/namespaceSVF.html +330 -294
  21. package/SVF-doxygen/html/search/all_10.js +324 -324
  22. package/SVF-doxygen/html/search/all_11.js +222 -222
  23. package/SVF-doxygen/html/search/all_12.js +542 -542
  24. package/SVF-doxygen/html/search/all_13.js +191 -191
  25. package/SVF-doxygen/html/search/all_14.js +67 -67
  26. package/SVF-doxygen/html/search/all_15.js +170 -170
  27. package/SVF-doxygen/html/search/all_16.js +63 -63
  28. package/SVF-doxygen/html/search/all_17.js +1 -1
  29. package/SVF-doxygen/html/search/all_18.js +1 -1
  30. package/SVF-doxygen/html/search/all_19.js +11 -11
  31. package/SVF-doxygen/html/search/all_1a.js +172 -172
  32. package/SVF-doxygen/html/search/all_8.js +135 -133
  33. package/SVF-doxygen/html/search/all_9.js +610 -610
  34. package/SVF-doxygen/html/search/all_a.js +46 -46
  35. package/SVF-doxygen/html/search/all_b.js +26 -26
  36. package/SVF-doxygen/html/search/all_c.js +116 -116
  37. package/SVF-doxygen/html/search/all_d.js +196 -196
  38. package/SVF-doxygen/html/search/all_e.js +207 -207
  39. package/SVF-doxygen/html/search/all_f.js +116 -116
  40. package/SVF-doxygen/html/search/classes_0.js +26 -26
  41. package/SVF-doxygen/html/search/classes_1.js +9 -9
  42. package/SVF-doxygen/html/search/classes_10.js +73 -73
  43. package/SVF-doxygen/html/search/classes_11.js +15 -15
  44. package/SVF-doxygen/html/search/classes_12.js +2 -2
  45. package/SVF-doxygen/html/search/classes_13.js +10 -10
  46. package/SVF-doxygen/html/search/classes_14.js +14 -14
  47. package/SVF-doxygen/html/search/classes_15.js +1 -1
  48. package/SVF-doxygen/html/search/classes_2.js +80 -80
  49. package/SVF-doxygen/html/search/classes_3.js +37 -37
  50. package/SVF-doxygen/html/search/classes_4.js +9 -9
  51. package/SVF-doxygen/html/search/classes_5.js +28 -28
  52. package/SVF-doxygen/html/search/classes_6.js +104 -104
  53. package/SVF-doxygen/html/search/classes_7.js +33 -33
  54. package/SVF-doxygen/html/search/classes_8.js +56 -56
  55. package/SVF-doxygen/html/search/classes_9.js +1 -1
  56. package/SVF-doxygen/html/search/classes_a.js +12 -12
  57. package/SVF-doxygen/html/search/classes_b.js +29 -29
  58. package/SVF-doxygen/html/search/classes_c.js +6 -6
  59. package/SVF-doxygen/html/search/classes_d.js +18 -18
  60. package/SVF-doxygen/html/search/classes_e.js +36 -36
  61. package/SVF-doxygen/html/search/classes_f.js +25 -25
  62. package/SVF-doxygen/html/search/defines_0.js +3 -3
  63. package/SVF-doxygen/html/search/defines_1.js +2 -2
  64. package/SVF-doxygen/html/search/defines_2.js +30 -30
  65. package/SVF-doxygen/html/search/defines_3.js +21 -21
  66. package/SVF-doxygen/html/search/defines_4.js +2 -2
  67. package/SVF-doxygen/html/search/defines_5.js +4 -4
  68. package/SVF-doxygen/html/search/defines_6.js +2 -2
  69. package/SVF-doxygen/html/search/defines_7.js +5 -5
  70. package/SVF-doxygen/html/search/defines_8.js +11 -11
  71. package/SVF-doxygen/html/search/defines_9.js +9 -9
  72. package/SVF-doxygen/html/search/defines_a.js +2 -2
  73. package/SVF-doxygen/html/search/defines_b.js +1 -1
  74. package/SVF-doxygen/html/search/defines_c.js +3 -3
  75. package/SVF-doxygen/html/search/defines_d.js +2 -2
  76. package/SVF-doxygen/html/search/defines_e.js +7 -7
  77. package/SVF-doxygen/html/search/defines_f.js +3 -3
  78. package/SVF-doxygen/html/search/enums_0.js +3 -3
  79. package/SVF-doxygen/html/search/enums_1.js +2 -2
  80. package/SVF-doxygen/html/search/enums_10.js +1 -1
  81. package/SVF-doxygen/html/search/enums_11.js +1 -1
  82. package/SVF-doxygen/html/search/enums_2.js +8 -8
  83. package/SVF-doxygen/html/search/enums_3.js +1 -1
  84. package/SVF-doxygen/html/search/enums_4.js +3 -3
  85. package/SVF-doxygen/html/search/enums_5.js +1 -1
  86. package/SVF-doxygen/html/search/enums_6.js +2 -2
  87. package/SVF-doxygen/html/search/enums_7.js +2 -2
  88. package/SVF-doxygen/html/search/enums_8.js +4 -4
  89. package/SVF-doxygen/html/search/enums_9.js +1 -1
  90. package/SVF-doxygen/html/search/enums_a.js +1 -1
  91. package/SVF-doxygen/html/search/enums_b.js +7 -7
  92. package/SVF-doxygen/html/search/enums_c.js +1 -1
  93. package/SVF-doxygen/html/search/enums_d.js +4 -4
  94. package/SVF-doxygen/html/search/enums_e.js +2 -2
  95. package/SVF-doxygen/html/search/enums_f.js +4 -4
  96. package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
  97. package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
  98. package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
  99. package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
  100. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  101. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  102. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  103. package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
  104. package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
  105. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  106. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  107. package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
  108. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  109. package/SVF-doxygen/html/search/enumvalues_7.js +9 -9
  110. package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
  111. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  112. package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
  113. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  114. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  115. package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
  116. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  117. package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
  118. package/SVF-doxygen/html/search/files_0.js +13 -13
  119. package/SVF-doxygen/html/search/files_1.js +7 -7
  120. package/SVF-doxygen/html/search/files_10.js +8 -8
  121. package/SVF-doxygen/html/search/files_11.js +8 -8
  122. package/SVF-doxygen/html/search/files_12.js +2 -2
  123. package/SVF-doxygen/html/search/files_2.js +55 -55
  124. package/SVF-doxygen/html/search/files_3.js +14 -14
  125. package/SVF-doxygen/html/search/files_4.js +5 -5
  126. package/SVF-doxygen/html/search/files_5.js +13 -13
  127. package/SVF-doxygen/html/search/files_6.js +9 -9
  128. package/SVF-doxygen/html/search/files_7.js +14 -14
  129. package/SVF-doxygen/html/search/files_8.js +13 -13
  130. package/SVF-doxygen/html/search/files_9.js +18 -18
  131. package/SVF-doxygen/html/search/files_a.js +3 -3
  132. package/SVF-doxygen/html/search/files_b.js +2 -2
  133. package/SVF-doxygen/html/search/files_c.js +20 -20
  134. package/SVF-doxygen/html/search/files_d.js +4 -4
  135. package/SVF-doxygen/html/search/files_e.js +62 -62
  136. package/SVF-doxygen/html/search/files_f.js +8 -8
  137. package/SVF-doxygen/html/search/functions_0.js +12 -12
  138. package/SVF-doxygen/html/search/functions_1.js +359 -359
  139. package/SVF-doxygen/html/search/functions_10.js +140 -140
  140. package/SVF-doxygen/html/search/functions_11.js +138 -138
  141. package/SVF-doxygen/html/search/functions_12.js +277 -277
  142. package/SVF-doxygen/html/search/functions_13.js +59 -59
  143. package/SVF-doxygen/html/search/functions_14.js +39 -39
  144. package/SVF-doxygen/html/search/functions_15.js +71 -71
  145. package/SVF-doxygen/html/search/functions_16.js +32 -32
  146. package/SVF-doxygen/html/search/functions_17.js +3 -3
  147. package/SVF-doxygen/html/search/functions_18.js +172 -172
  148. package/SVF-doxygen/html/search/functions_2.js +86 -86
  149. package/SVF-doxygen/html/search/functions_3.js +257 -257
  150. package/SVF-doxygen/html/search/functions_4.js +75 -75
  151. package/SVF-doxygen/html/search/functions_5.js +53 -53
  152. package/SVF-doxygen/html/search/functions_6.js +59 -59
  153. package/SVF-doxygen/html/search/functions_7.js +851 -851
  154. package/SVF-doxygen/html/search/functions_8.js +148 -146
  155. package/SVF-doxygen/html/search/functions_9.js +428 -428
  156. package/SVF-doxygen/html/search/functions_a.js +30 -30
  157. package/SVF-doxygen/html/search/functions_b.js +2 -2
  158. package/SVF-doxygen/html/search/functions_c.js +26 -26
  159. package/SVF-doxygen/html/search/functions_d.js +77 -77
  160. package/SVF-doxygen/html/search/functions_e.js +35 -35
  161. package/SVF-doxygen/html/search/functions_f.js +56 -56
  162. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  163. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  164. package/SVF-doxygen/html/search/related_0.js +2 -2
  165. package/SVF-doxygen/html/search/related_1.js +2 -2
  166. package/SVF-doxygen/html/search/related_2.js +2 -2
  167. package/SVF-doxygen/html/search/related_3.js +2 -2
  168. package/SVF-doxygen/html/search/related_4.js +2 -2
  169. package/SVF-doxygen/html/search/related_5.js +1 -1
  170. package/SVF-doxygen/html/search/related_6.js +2 -2
  171. package/SVF-doxygen/html/search/related_7.js +4 -4
  172. package/SVF-doxygen/html/search/related_8.js +2 -2
  173. package/SVF-doxygen/html/search/related_9.js +4 -4
  174. package/SVF-doxygen/html/search/related_a.js +19 -19
  175. package/SVF-doxygen/html/search/related_b.js +4 -4
  176. package/SVF-doxygen/html/search/related_c.js +1 -1
  177. package/SVF-doxygen/html/search/related_d.js +11 -11
  178. package/SVF-doxygen/html/search/related_e.js +2 -2
  179. package/SVF-doxygen/html/search/related_f.js +2 -2
  180. package/SVF-doxygen/html/search/typedefs_0.js +18 -18
  181. package/SVF-doxygen/html/search/typedefs_1.js +26 -26
  182. package/SVF-doxygen/html/search/typedefs_10.js +61 -61
  183. package/SVF-doxygen/html/search/typedefs_11.js +13 -13
  184. package/SVF-doxygen/html/search/typedefs_12.js +11 -11
  185. package/SVF-doxygen/html/search/typedefs_13.js +35 -35
  186. package/SVF-doxygen/html/search/typedefs_14.js +8 -8
  187. package/SVF-doxygen/html/search/typedefs_2.js +129 -129
  188. package/SVF-doxygen/html/search/typedefs_3.js +39 -39
  189. package/SVF-doxygen/html/search/typedefs_4.js +17 -17
  190. package/SVF-doxygen/html/search/typedefs_5.js +41 -41
  191. package/SVF-doxygen/html/search/typedefs_6.js +55 -55
  192. package/SVF-doxygen/html/search/typedefs_7.js +42 -42
  193. package/SVF-doxygen/html/search/typedefs_8.js +1 -1
  194. package/SVF-doxygen/html/search/typedefs_9.js +6 -6
  195. package/SVF-doxygen/html/search/typedefs_a.js +29 -29
  196. package/SVF-doxygen/html/search/typedefs_b.js +29 -29
  197. package/SVF-doxygen/html/search/typedefs_c.js +41 -41
  198. package/SVF-doxygen/html/search/typedefs_d.js +15 -15
  199. package/SVF-doxygen/html/search/typedefs_e.js +52 -52
  200. package/SVF-doxygen/html/search/typedefs_f.js +14 -14
  201. package/SVF-doxygen/html/search/variables_0.js +151 -151
  202. package/SVF-doxygen/html/search/variables_1.js +75 -75
  203. package/SVF-doxygen/html/search/variables_10.js +97 -97
  204. package/SVF-doxygen/html/search/variables_11.js +44 -44
  205. package/SVF-doxygen/html/search/variables_12.js +92 -92
  206. package/SVF-doxygen/html/search/variables_13.js +75 -75
  207. package/SVF-doxygen/html/search/variables_14.js +14 -14
  208. package/SVF-doxygen/html/search/variables_15.js +48 -48
  209. package/SVF-doxygen/html/search/variables_16.js +9 -9
  210. package/SVF-doxygen/html/search/variables_17.js +1 -1
  211. package/SVF-doxygen/html/search/variables_18.js +2 -2
  212. package/SVF-doxygen/html/search/variables_2.js +37 -37
  213. package/SVF-doxygen/html/search/variables_3.js +142 -142
  214. package/SVF-doxygen/html/search/variables_4.js +55 -55
  215. package/SVF-doxygen/html/search/variables_5.js +36 -36
  216. package/SVF-doxygen/html/search/variables_6.js +66 -66
  217. package/SVF-doxygen/html/search/variables_7.js +33 -33
  218. package/SVF-doxygen/html/search/variables_8.js +7 -7
  219. package/SVF-doxygen/html/search/variables_9.js +77 -77
  220. package/SVF-doxygen/html/search/variables_a.js +4 -4
  221. package/SVF-doxygen/html/search/variables_b.js +10 -10
  222. package/SVF-doxygen/html/search/variables_c.js +45 -45
  223. package/SVF-doxygen/html/search/variables_d.js +56 -56
  224. package/SVF-doxygen/html/search/variables_e.js +123 -123
  225. package/SVF-doxygen/html/search/variables_f.js +30 -30
  226. package/package.json +1 -1
  227. package/svf/include/AbstractExecution/IntervalValue.h +74 -26
  228. package/svf-llvm/lib/BreakConstantExpr.cpp +53 -9
@@ -605,303 +605,355 @@ $(function() {
605
605
  <div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; }</div>
606
606
  <div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;}</div>
607
607
  <div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; </div>
608
+ <div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;<span class="comment">// Compare two IntervalValues for greater than</span></div>
608
609
  <div class="line"><a name="l00581"></a><span class="lineno"><a class="line" href="namespaceSVF.html#aedd9d023a68dddd66314be63bb8e48d2"> 581</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#aedd9d023a68dddd66314be63bb8e48d2">operator&gt;</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;rhs)</div>
609
610
  <div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;{</div>
610
- <div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || rhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div>
611
- <div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; {</div>
612
- <div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
613
- <div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; }</div>
614
- <div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>() || lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>())</div>
615
- <div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; {</div>
616
- <div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
617
- <div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; }</div>
618
- <div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <span class="keywordflow">else</span></div>
619
- <div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; {</div>
620
- <div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() &amp;&amp; rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div>
621
- <div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; {</div>
622
- <div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <span class="keywordflow">return</span> lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#aa01880cdfc3b9504bef63a3bf315c54b">leq</a>(rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>()) ? <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0) : <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1);</div>
623
- <div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; }</div>
624
- <div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <span class="keywordflow">else</span></div>
625
- <div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; {</div>
626
- <div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="comment">// lhs[3,4] rhs[1,2]</span></div>
627
- <div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <span class="keywordflow">if</span> (!lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#aa01880cdfc3b9504bef63a3bf315c54b">leq</a>(rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>()))</div>
628
- <div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; {</div>
629
- <div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1);</div>
630
- <div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <span class="comment">// lhs[1,2] rhs[3,4]</span></div>
631
- <div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; }</div>
632
- <div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#ab8ea498ca849eb969e721772d432b29d">geq</a>(rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>()))</div>
633
- <div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; {</div>
634
- <div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
635
- <div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; }</div>
636
- <div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; <span class="keywordflow">else</span></div>
637
- <div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; {</div>
638
- <div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="comment">// lhs[1,3] rhs[2,4]</span></div>
639
- <div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 1);</div>
640
- <div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; }</div>
641
- <div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; }</div>
642
- <div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; }</div>
643
- <div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;}</div>
644
- <div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; </div>
645
- <div class="line"><a name="l00619"></a><span class="lineno"><a class="line" href="namespaceSVF.html#adeb418bb692b6b0c3498a24927e1068b"> 619</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#adeb418bb692b6b0c3498a24927e1068b">operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;rhs)</div>
646
- <div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;{</div>
647
- <div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || rhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div>
648
- <div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; {</div>
649
- <div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
650
- <div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; }</div>
651
- <div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>() || lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>())</div>
652
- <div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; {</div>
653
- <div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
611
+ <div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="comment">// If either lhs or rhs is bottom, the result is bottom</span></div>
612
+ <div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || rhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div>
613
+ <div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; {</div>
614
+ <div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
615
+ <div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; }</div>
616
+ <div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <span class="comment">// If either lhs or rhs is top, the result is top</span></div>
617
+ <div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>() || rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>())</div>
618
+ <div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; {</div>
619
+ <div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
620
+ <div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; }</div>
621
+ <div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="keywordflow">else</span></div>
622
+ <div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; {</div>
623
+ <div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <span class="comment">// If both lhs and rhs are numerals (lb = ub), directly compare their values</span></div>
624
+ <div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() &amp;&amp; rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div>
625
+ <div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; {</div>
626
+ <div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <span class="comment">// It means lhs.lb() &gt; rhs.lb()? true: false</span></div>
627
+ <div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keywordflow">return</span> lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#aa01880cdfc3b9504bef63a3bf315c54b">leq</a>(rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>()) ? <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0) : <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1);</div>
628
+ <div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; }</div>
629
+ <div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <span class="keywordflow">else</span></div>
630
+ <div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; {</div>
631
+ <div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <span class="comment">// Return [1,1] means lhs is totally greater than rhs</span></div>
632
+ <div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <span class="comment">// When lhs.lb &gt; rhs.ub, e.g., lhs:[3, 4] rhs:[1, 2]</span></div>
633
+ <div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; <span class="comment">// lhs.lb(3) &gt; rhs.ub(2)</span></div>
634
+ <div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="comment">// It means lhs.lb() &gt; rhs.ub()</span></div>
635
+ <div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; <span class="keywordflow">if</span> (!lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#aa01880cdfc3b9504bef63a3bf315c54b">leq</a>(rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>()))</div>
636
+ <div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; {</div>
637
+ <div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1);</div>
638
+ <div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; }</div>
639
+ <div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="comment">// Return [0,0] means lhs is totally impossible to be greater than rhs</span></div>
640
+ <div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <span class="comment">// i.e., lhs is totally less than or equal to rhs</span></div>
641
+ <div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; <span class="comment">// When lhs.ub &lt;= rhs.lb, e.g., lhs:[3, 4] rhs:[4,5]</span></div>
642
+ <div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <span class="comment">// lhs.ub(4) &lt;= rhs.lb(4)</span></div>
643
+ <div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#aa01880cdfc3b9504bef63a3bf315c54b">leq</a>(rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>()))</div>
644
+ <div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; {</div>
645
+ <div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
646
+ <div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; }</div>
647
+ <div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="comment">// For other cases, lhs can be greater than or not, depending on the values</span></div>
648
+ <div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; <span class="comment">// e.g., lhs: [2,4], rhs: [1,3],</span></div>
649
+ <div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="comment">// lhs can be greater than rhs if lhs is 4 and rhs is 1.</span></div>
650
+ <div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; <span class="comment">// lhs can also not be greater than rhs if lhs is 2 and rhs is 3</span></div>
651
+ <div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <span class="keywordflow">else</span></div>
652
+ <div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; {</div>
653
+ <div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 1);</div>
654
+ <div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; }</div>
655
+ <div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; }</div>
654
656
  <div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; }</div>
655
- <div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; <span class="keywordflow">else</span></div>
656
- <div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; {</div>
657
- <div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() &amp;&amp; rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div>
658
- <div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; {</div>
659
- <div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; <span class="keywordflow">return</span> lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#ab8ea498ca849eb969e721772d432b29d">geq</a>(rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>()) ? <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0) : <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1);</div>
660
- <div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; }</div>
661
- <div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <span class="keywordflow">else</span></div>
662
- <div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; {</div>
663
- <div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; <span class="comment">// lhs [1,2] rhs [3,4]</span></div>
664
- <div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; <span class="keywordflow">if</span> (!lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#ab8ea498ca849eb969e721772d432b29d">geq</a>(rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>()))</div>
665
- <div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; {</div>
666
- <div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1);</div>
667
- <div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="comment">// lhs [3,4] rhs [1,2]</span></div>
668
- <div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; }</div>
669
- <div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#aa01880cdfc3b9504bef63a3bf315c54b">leq</a>(rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>()))</div>
670
- <div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; {</div>
671
- <div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
672
- <div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; <span class="comment">// lhs [1,3] rhs [2,4]</span></div>
673
- <div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; }</div>
674
- <div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <span class="keywordflow">else</span></div>
675
- <div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; {</div>
676
- <div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 1);</div>
677
- <div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; }</div>
678
- <div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; }</div>
679
- <div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; }</div>
680
- <div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;}</div>
681
- <div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; </div>
682
- <div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; </div>
683
- <div class="line"><a name="l00658"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a08938c05911dac4ebd102adfafd14d24"> 658</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#a08938c05911dac4ebd102adfafd14d24">operator&gt;=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;rhs)</div>
684
- <div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;{</div>
685
- <div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || rhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div>
686
- <div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; {</div>
687
- <div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
688
- <div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; }</div>
689
- <div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>() || lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>())</div>
690
- <div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; {</div>
691
- <div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
692
- <div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; }</div>
693
- <div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; <span class="keywordflow">else</span></div>
694
- <div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; {</div>
695
- <div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() &amp;&amp; rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div>
696
- <div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; {</div>
697
- <div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; <span class="keywordflow">return</span> lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#ab8ea498ca849eb969e721772d432b29d">geq</a>(rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>()) ? <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1) : <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
698
- <div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; }</div>
699
- <div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; <span class="keywordflow">else</span></div>
700
- <div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; {</div>
701
- <div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; <span class="comment">// lhs [2,3] rhs [1,2]</span></div>
702
- <div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#ab8ea498ca849eb969e721772d432b29d">geq</a>(rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>()))</div>
703
- <div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; {</div>
704
- <div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1);</div>
705
- <div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; <span class="comment">// lhs [1,2] rhs[3,4]</span></div>
706
- <div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; }</div>
707
- <div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#ab8ea498ca849eb969e721772d432b29d">geq</a>(rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>()))</div>
708
- <div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; {</div>
709
- <div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
710
- <div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; <span class="comment">// lhs [1,3] rhs [2,4]</span></div>
711
- <div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; }</div>
712
- <div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; <span class="keywordflow">else</span></div>
713
- <div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; {</div>
714
- <div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#ac06d554ff5f63c43f9b02378800488c1">equals</a>(rhs)) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1);</div>
715
- <div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 1);</div>
716
- <div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; }</div>
717
- <div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; }</div>
718
- <div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; }</div>
719
- <div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;}</div>
720
- <div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; </div>
721
- <div class="line"><a name="l00697"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a1dab362b7d3da3375b60c94e78275293"> 697</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#a1dab362b7d3da3375b60c94e78275293">operator&lt;=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;rhs)</div>
722
- <div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;{</div>
723
- <div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || rhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div>
724
- <div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; {</div>
725
- <div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
726
- <div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; }</div>
727
- <div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>() || lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>())</div>
728
- <div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; {</div>
729
- <div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
730
- <div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; }</div>
731
- <div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <span class="keywordflow">else</span></div>
732
- <div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; {</div>
733
- <div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() &amp;&amp; rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div>
734
- <div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; {</div>
735
- <div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; <span class="keywordflow">return</span> lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#aa01880cdfc3b9504bef63a3bf315c54b">leq</a>(rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>()) ? <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1) : <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
736
- <div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; }</div>
737
- <div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; <span class="keywordflow">else</span></div>
738
- <div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; {</div>
739
- <div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; <span class="comment">// lhs [1,2] rhs [2,3]</span></div>
740
- <div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#aa01880cdfc3b9504bef63a3bf315c54b">leq</a>(rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>()))</div>
741
- <div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; {</div>
742
- <div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1);</div>
743
- <div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <span class="comment">// lhs [3,4] rhs[1,2]</span></div>
657
+ <div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;}</div>
658
+ <div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; </div>
659
+ <div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;<span class="comment">// Compare two IntervalValues for less than</span></div>
660
+ <div class="line"><a name="l00632"></a><span class="lineno"><a class="line" href="namespaceSVF.html#adeb418bb692b6b0c3498a24927e1068b"> 632</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#adeb418bb692b6b0c3498a24927e1068b">operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;rhs)</div>
661
+ <div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;{</div>
662
+ <div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <span class="comment">// If either lhs or rhs is bottom, the result is bottom</span></div>
663
+ <div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || rhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div>
664
+ <div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; {</div>
665
+ <div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
666
+ <div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; }</div>
667
+ <div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; <span class="comment">// If either lhs or rhs is top, the result is top</span></div>
668
+ <div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>() || rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>())</div>
669
+ <div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; {</div>
670
+ <div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
671
+ <div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; }</div>
672
+ <div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="keywordflow">else</span></div>
673
+ <div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; {</div>
674
+ <div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; <span class="comment">// If both lhs and rhs are numerals (lb = ub), directly compare their values</span></div>
675
+ <div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() &amp;&amp; rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div>
676
+ <div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; {</div>
677
+ <div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <span class="comment">// It means lhs.lb() &lt; rhs.lb()? true: false</span></div>
678
+ <div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <span class="keywordflow">return</span> lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#ab8ea498ca849eb969e721772d432b29d">geq</a>(rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>()) ? <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0) : <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1);</div>
679
+ <div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; }</div>
680
+ <div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <span class="keywordflow">else</span></div>
681
+ <div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; {</div>
682
+ <div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <span class="comment">// Return [1,1] means lhs is totally less than rhs</span></div>
683
+ <div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; <span class="comment">// When lhs.ub &lt; rhs.lb, e.g., lhs:[1, 2] rhs:[3, 4]</span></div>
684
+ <div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; <span class="comment">// lhs.ub(2) &lt; rhs.lb(3)</span></div>
685
+ <div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <span class="comment">// It means lhs.ub() &lt; rhs.lb()</span></div>
686
+ <div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; <span class="keywordflow">if</span> (!lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#ab8ea498ca849eb969e721772d432b29d">geq</a>(rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>()))</div>
687
+ <div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; {</div>
688
+ <div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1);</div>
689
+ <div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; }</div>
690
+ <div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; <span class="comment">// Return [0,0] means lhs is totally impossible to be less than rhs</span></div>
691
+ <div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <span class="comment">// i.e., lhs is totally greater than or equal to rhs</span></div>
692
+ <div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; <span class="comment">// When lhs.ub &gt;= rhs.lb, e.g., lhs:[3, 4] rhs:[4,5]</span></div>
693
+ <div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; <span class="comment">// lhs.ub(4) &gt;= rhs.lb(4)</span></div>
694
+ <div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#ab8ea498ca849eb969e721772d432b29d">geq</a>(lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>()))</div>
695
+ <div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; {</div>
696
+ <div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
697
+ <div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; }</div>
698
+ <div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; <span class="comment">// For other cases, lhs can be less than rhs or not, depending on the values</span></div>
699
+ <div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; <span class="comment">// e.g., lhs: [2,4], rhs: [1,3],</span></div>
700
+ <div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; <span class="comment">// lhs can be less than rhs if lhs is 2, rhs is 3.</span></div>
701
+ <div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; <span class="comment">// lhs can also not be less than rhs if lhs is 4 and rhs is 1</span></div>
702
+ <div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; <span class="keywordflow">else</span></div>
703
+ <div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; {</div>
704
+ <div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 1);</div>
705
+ <div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; }</div>
706
+ <div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; }</div>
707
+ <div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; }</div>
708
+ <div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;}</div>
709
+ <div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; </div>
710
+ <div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; </div>
711
+ <div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;<span class="comment">// Compare two IntervalValues for greater than or equal to</span></div>
712
+ <div class="line"><a name="l00684"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a08938c05911dac4ebd102adfafd14d24"> 684</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#a08938c05911dac4ebd102adfafd14d24">operator&gt;=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;rhs)</div>
713
+ <div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;{</div>
714
+ <div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <span class="comment">// If either lhs or rhs is bottom, the result is bottom</span></div>
715
+ <div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || rhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div>
716
+ <div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; {</div>
717
+ <div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
718
+ <div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; }</div>
719
+ <div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; <span class="comment">// If either lhs or rhs is top, the result is top</span></div>
720
+ <div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>() || rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>())</div>
721
+ <div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; {</div>
722
+ <div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
723
+ <div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; }</div>
724
+ <div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; <span class="keywordflow">else</span></div>
725
+ <div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; {</div>
726
+ <div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; <span class="comment">// If both lhs and rhs are numerals (lb = ub), directly compare their values</span></div>
727
+ <div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() &amp;&amp; rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div>
728
+ <div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; {</div>
729
+ <div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="keywordflow">return</span> lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#ab8ea498ca849eb969e721772d432b29d">geq</a>(rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>()) ? <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1) : <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
730
+ <div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; }</div>
731
+ <div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; <span class="keywordflow">else</span></div>
732
+ <div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; {</div>
733
+ <div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <span class="comment">// Return [1,1] means lhs is totally greater than or equal to rhs</span></div>
734
+ <div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; <span class="comment">// When lhs.lb &gt;= rhs.ub, e.g., lhs:[2, 3] rhs:[1, 2]</span></div>
735
+ <div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <span class="comment">// lhs.lb(2) &gt;= rhs.ub(2)</span></div>
736
+ <div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#ab8ea498ca849eb969e721772d432b29d">geq</a>(rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>()))</div>
737
+ <div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; {</div>
738
+ <div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1);</div>
739
+ <div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; }</div>
740
+ <div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="comment">// Return [0,0] means lhs is totally impossible to be greater than or equal to rhs</span></div>
741
+ <div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; <span class="comment">// i.e., lhs is totally less than rhs</span></div>
742
+ <div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; <span class="comment">// When lhs.ub &lt; rhs.lb, e.g., lhs:[1, 2] rhs:[3, 4]</span></div>
743
+ <div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; <span class="comment">// lhs.ub(2) &lt; rhs.lb(3)</span></div>
744
+ <div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; <span class="comment">// It means lhs.ub() &lt; rhs.lb()</span></div>
745
+ <div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#ab8ea498ca849eb969e721772d432b29d">geq</a>(rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>()))</div>
746
+ <div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; {</div>
747
+ <div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
744
748
  <div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; }</div>
745
- <div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#aa01880cdfc3b9504bef63a3bf315c54b">leq</a>(rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>()))</div>
746
- <div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; {</div>
747
- <div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
748
- <div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <span class="comment">// lhs [1,3] rhs [2,4]</span></div>
749
- <div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; }</div>
750
- <div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="keywordflow">else</span></div>
751
- <div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; {</div>
752
- <div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#ac06d554ff5f63c43f9b02378800488c1">equals</a>(rhs)) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1);</div>
753
- <div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 1);</div>
754
- <div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; }</div>
755
- <div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; }</div>
756
- <div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; }</div>
757
- <div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160;}</div>
758
- <div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; </div>
759
- <div class="line"><a name="l00736"></a><span class="lineno"><a class="line" href="namespaceSVF.html#af95793adab8fb9aa19e19027e73372a6"> 736</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#af95793adab8fb9aa19e19027e73372a6">operator&lt;&lt;</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;rhs)</div>
760
- <div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;{</div>
761
- <div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <span class="comment">//TODO: implement &lt;&lt;</span></div>
762
- <div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || rhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div>
763
- <div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
764
- <div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>() &amp;&amp; rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>())</div>
765
- <div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
766
- <div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="keywordflow">else</span></div>
767
- <div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; {</div>
768
- <div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> shift = rhs;</div>
769
- <div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; shift.<a class="code" href="classSVF_1_1IntervalValue.html#a144e17cec654e83654298b379ed4ce9f">meet_with</a>(<a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, <a class="code" href="classSVF_1_1IntervalValue.html#a739ab04e16ec1156be71b29d49998a4f">IntervalValue::plus_infinity</a>()));</div>
770
- <div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; <span class="keywordflow">if</span> (shift.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div>
771
- <div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
772
- <div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> coeff(1 &lt;&lt; (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>) shift.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>(),</div>
773
- <div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; shift.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#ac4acd8ca01d2aa1715c18beb46b0ae1d">is_infinity</a>() ? <a class="code" href="classSVF_1_1IntervalValue.html#a739ab04e16ec1156be71b29d49998a4f">IntervalValue::plus_infinity</a>() : 1</div>
774
- <div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; &lt;&lt; (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>) shift.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
775
- <div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; <span class="keywordflow">return</span> lhs * coeff;</div>
776
- <div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; }</div>
777
- <div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160;}</div>
778
- <div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; </div>
779
- <div class="line"><a name="l00757"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a4b2b5d8755b9f0c4f82a9f82b4631fee"> 757</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#a4b2b5d8755b9f0c4f82a9f82b4631fee">operator&gt;&gt;</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;rhs)</div>
780
- <div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;{</div>
781
- <div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <span class="comment">//TODO: implement &gt;&gt;</span></div>
782
- <div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || rhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div>
783
- <div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
784
- <div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>() &amp;&amp; rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>())</div>
785
- <div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
786
- <div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; <span class="keywordflow">else</span></div>
787
- <div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; {</div>
788
- <div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> shift = rhs;</div>
789
- <div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; shift.<a class="code" href="classSVF_1_1IntervalValue.html#a144e17cec654e83654298b379ed4ce9f">meet_with</a>(<a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, <a class="code" href="classSVF_1_1IntervalValue.html#a739ab04e16ec1156be71b29d49998a4f">IntervalValue::plus_infinity</a>()));</div>
790
- <div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; <span class="keywordflow">if</span> (shift.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div>
791
- <div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
792
- <div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#afcb91d48a79aeba3c78c1a41b0730a73">contains</a>(0))</div>
793
- <div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; {</div>
794
- <div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> l(lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>(), -1);</div>
795
- <div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> u(1, lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>());</div>
796
- <div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> tmp = l &gt;&gt; rhs;</div>
797
- <div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; tmp.<a class="code" href="classSVF_1_1IntervalValue.html#a3771eb932069dcad8212009efc411b99">join_with</a>(u &gt;&gt; rhs);</div>
798
- <div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; tmp.<a class="code" href="classSVF_1_1IntervalValue.html#a3771eb932069dcad8212009efc411b99">join_with</a>(<a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0));</div>
799
- <div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; <span class="keywordflow">return</span> tmp;</div>
800
- <div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; }</div>
801
- <div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; <span class="keywordflow">else</span></div>
802
- <div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; {</div>
803
- <div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> ll = lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>() &gt;&gt; shift.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>();</div>
804
- <div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> lu = lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>() &gt;&gt; shift.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>();</div>
805
- <div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> ul = lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>() &gt;&gt; shift.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>();</div>
806
- <div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> uu = lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>() &gt;&gt; shift.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>();</div>
807
- <div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; std::vector&lt;NumericLiteral&gt; vec{ll, lu, ul, uu};</div>
808
- <div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(<a class="code" href="classSVF_1_1NumericLiteral.html#ab4f45675a9fecb201d0fe05d107fcb97">NumericLiteral::min</a>(vec),</div>
809
- <div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; <a class="code" href="classSVF_1_1NumericLiteral.html#a9e7a696842de2a4fae08a75d72a807ec">NumericLiteral::max</a>(vec));</div>
810
- <div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; }</div>
811
- <div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; }</div>
812
- <div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;}</div>
813
- <div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; </div>
814
- <div class="line"><a name="l00793"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a8ca7e84917358976240bc88c3cceb0c2"> 793</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#a8ca7e84917358976240bc88c3cceb0c2">operator&amp;</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;rhs)</div>
815
- <div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;{</div>
816
- <div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || rhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div>
817
- <div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
818
- <div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() &amp;&amp; rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div>
819
- <div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; {</div>
820
- <div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>() &amp; rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>());</div>
821
- <div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; }</div>
822
- <div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() &gt;= 0 &amp;&amp; rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() &gt;= 0)</div>
823
- <div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; {</div>
824
- <div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>) 0, min(lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>(), rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>()));</div>
825
- <div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; }</div>
826
- <div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() &gt;= 0)</div>
827
- <div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; {</div>
828
- <div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>) 0, lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>());</div>
829
- <div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; }</div>
830
- <div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() &gt;= 0)</div>
831
- <div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; {</div>
832
- <div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>) 0, rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>());</div>
833
- <div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; }</div>
834
- <div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; <span class="keywordflow">else</span></div>
835
- <div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; {</div>
836
- <div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
837
- <div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; }</div>
838
- <div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160;}</div>
839
- <div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; </div>
840
- <div class="line"><a name="l00820"></a><span class="lineno"><a class="line" href="namespaceSVF.html#abed4354cf0282ae30b8330c0e91008d8"> 820</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#abed4354cf0282ae30b8330c0e91008d8">operator|</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;rhs)</div>
841
- <div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160;{</div>
842
- <div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; <span class="keyword">auto</span> next_power_of_2 = [](<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> num)</div>
843
- <div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; {</div>
844
- <div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; <span class="keywordtype">int</span> i = 1;</div>
845
- <div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; <span class="keywordflow">while</span> ((num &gt;&gt; i) != 0)</div>
846
- <div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; {</div>
847
- <div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; ++i;</div>
848
- <div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; }</div>
849
- <div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; <span class="keywordflow">return</span> 1 &lt;&lt; i;</div>
850
- <div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; };</div>
851
- <div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || rhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div>
852
- <div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
853
- <div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() &amp;&amp; rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div>
854
- <div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>() | rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>());</div>
855
- <div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() &gt;= 0 &amp;&amp; !lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#ac4acd8ca01d2aa1715c18beb46b0ae1d">is_infinity</a>() &amp;&amp;</div>
856
- <div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() &gt;= 0 &amp;&amp; !rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#ac4acd8ca01d2aa1715c18beb46b0ae1d">is_infinity</a>())</div>
857
- <div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; {</div>
858
- <div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> m = std::max(lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>(), rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
859
- <div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> ub = next_power_of_2(<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>(m+1));</div>
860
- <div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>) 0, (<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>) ub);</div>
861
- <div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; }</div>
862
- <div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; <span class="keywordflow">else</span></div>
863
- <div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; {</div>
864
- <div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
865
- <div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; }</div>
866
- <div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160;}</div>
867
- <div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; </div>
868
- <div class="line"><a name="l00849"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a8803e977797624599af5b0a84fe1de3d"> 849</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#a8803e977797624599af5b0a84fe1de3d">operator^</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;rhs)</div>
869
- <div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160;{</div>
870
- <div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; <span class="keyword">auto</span> next_power_of_2 = [](<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> num)</div>
871
- <div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; {</div>
872
- <div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; <span class="keywordtype">int</span> i = 1;</div>
873
- <div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; <span class="keywordflow">while</span> ((num &gt;&gt; i) != 0)</div>
874
- <div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; {</div>
875
- <div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; ++i;</div>
876
- <div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; }</div>
877
- <div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; <span class="keywordflow">return</span> 1 &lt;&lt; i;</div>
878
- <div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; };</div>
879
- <div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || rhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div>
880
- <div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
881
- <div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() &amp;&amp; rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div>
882
- <div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>() ^ rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>());</div>
883
- <div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() &gt;= 0 &amp;&amp; !lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#ac4acd8ca01d2aa1715c18beb46b0ae1d">is_infinity</a>() &amp;&amp;</div>
884
- <div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() &gt;= 0 &amp;&amp; !rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#ac4acd8ca01d2aa1715c18beb46b0ae1d">is_infinity</a>())</div>
885
- <div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; {</div>
886
- <div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> m = std::max(lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>(), rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
887
- <div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> ub = next_power_of_2(<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>(m+1));</div>
888
- <div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>) 0, (<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>) ub);</div>
889
- <div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; }</div>
890
- <div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; <span class="keywordflow">else</span></div>
891
- <div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; {</div>
892
- <div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
893
- <div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; }</div>
894
- <div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160;}</div>
895
- <div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; </div>
896
- <div class="line"><a name="l00878"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a9f1d12be8c396b73b5a37de2061a24b0"> 878</a></span>&#160;<span class="keyword">inline</span> std::ostream &amp;<a class="code" href="namespaceSVF.html#af95793adab8fb9aa19e19027e73372a6">operator&lt;&lt;</a>(std::ostream &amp;o,</div>
897
- <div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;<a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>)</div>
898
- <div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160;{</div>
899
- <div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>.<a class="code" href="classSVF_1_1IntervalValue.html#ac4896347f704db07695f4b8dfc42aad7">dump</a>(o);</div>
900
- <div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; <span class="keywordflow">return</span> o;</div>
901
- <div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160;}</div>
902
- <div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; </div>
903
- <div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160;} <span class="comment">// end namespace SVF</span></div>
904
- <div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160;<span class="preprocessor">#endif //Z3_EXAMPLE_IntervalValue_H</span></div>
749
+ <div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; <span class="comment">// For other cases, lhs can be greater than or equal to rhs or not, depending on the values</span></div>
750
+ <div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; <span class="comment">// e.g., lhs: [2,4], rhs: [1,3],</span></div>
751
+ <div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <span class="comment">// lhs can be greater than or equal to rhs if lhs is 3, rhs is 2.</span></div>
752
+ <div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <span class="comment">// lhs can also not be greater than or equal to rhs if lhs is 2 and rhs is 3</span></div>
753
+ <div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <span class="keywordflow">else</span></div>
754
+ <div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; {</div>
755
+ <div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 1);</div>
756
+ <div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; }</div>
757
+ <div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; }</div>
758
+ <div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; }</div>
759
+ <div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;}</div>
760
+ <div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; </div>
761
+ <div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160;<span class="comment">// Compare two IntervalValues for less than or equal to</span></div>
762
+ <div class="line"><a name="l00734"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a1dab362b7d3da3375b60c94e78275293"> 734</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#a1dab362b7d3da3375b60c94e78275293">operator&lt;=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;rhs)</div>
763
+ <div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160;{</div>
764
+ <div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; <span class="comment">// If either lhs or rhs is bottom, the result is bottom</span></div>
765
+ <div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || rhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div>
766
+ <div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; {</div>
767
+ <div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
768
+ <div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; }</div>
769
+ <div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <span class="comment">// If either lhs or rhs is top, the result is top</span></div>
770
+ <div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>() || rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>())</div>
771
+ <div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; {</div>
772
+ <div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
773
+ <div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; }</div>
774
+ <div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; <span class="keywordflow">else</span></div>
775
+ <div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; {</div>
776
+ <div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <span class="comment">// If both lhs and rhs are numerals (lb = ub), directly compare their values</span></div>
777
+ <div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() &amp;&amp; rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div>
778
+ <div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; {</div>
779
+ <div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <span class="keywordflow">return</span> lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#aa01880cdfc3b9504bef63a3bf315c54b">leq</a>(rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>()) ? <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1) : <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
780
+ <div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; }</div>
781
+ <div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keywordflow">else</span></div>
782
+ <div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; {</div>
783
+ <div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; <span class="comment">// Return [1,1] means lhs is totally less than or equal to rhs</span></div>
784
+ <div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; <span class="comment">// When lhs.ub &lt;= rhs.lb, e.g., lhs:[1, 2] rhs:[2, 3]</span></div>
785
+ <div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; <span class="comment">// lhs.ub(2) &lt;= rhs.lb(2)</span></div>
786
+ <div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#aa01880cdfc3b9504bef63a3bf315c54b">leq</a>(rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>()))</div>
787
+ <div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; {</div>
788
+ <div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1);</div>
789
+ <div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; }</div>
790
+ <div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <span class="comment">// Return [0,0] means lhs is totally impossible to be less than or equal to rhs</span></div>
791
+ <div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <span class="comment">// i.e., lhs is totally greater than rhs</span></div>
792
+ <div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; <span class="comment">// When lhs.lb &gt; rhs.ub, e.g., lhs:[3, 4] rhs:[1, 2]</span></div>
793
+ <div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <span class="comment">// lhs.lb(3) &gt; rhs.ub(2)</span></div>
794
+ <div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; <span class="comment">// It means lhs.lb() &gt; rhs.ub()</span></div>
795
+ <div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#aa01880cdfc3b9504bef63a3bf315c54b">leq</a>(rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>()))</div>
796
+ <div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; {</div>
797
+ <div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
798
+ <div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; }</div>
799
+ <div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; <span class="comment">// For other cases, lhs can be less than or equal to rhs or not, depending on the values</span></div>
800
+ <div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; <span class="comment">// e.g., lhs: [2,4], rhs: [1,3],</span></div>
801
+ <div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; <span class="comment">// lhs can be less than or equal to rhs if lhs is 3, rhs is 3.</span></div>
802
+ <div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <span class="comment">// lhs can also not be less than or equal to rhs if lhs is 3 and rhs is 2</span></div>
803
+ <div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; <span class="keywordflow">else</span></div>
804
+ <div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; {</div>
805
+ <div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 1);</div>
806
+ <div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; }</div>
807
+ <div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; }</div>
808
+ <div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; }</div>
809
+ <div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160;}</div>
810
+ <div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; </div>
811
+ <div class="line"><a name="l00784"></a><span class="lineno"><a class="line" href="namespaceSVF.html#af95793adab8fb9aa19e19027e73372a6"> 784</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#af95793adab8fb9aa19e19027e73372a6">operator&lt;&lt;</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;rhs)</div>
812
+ <div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160;{</div>
813
+ <div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; <span class="comment">//TODO: implement &lt;&lt;</span></div>
814
+ <div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || rhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div>
815
+ <div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
816
+ <div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>() &amp;&amp; rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>())</div>
817
+ <div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
818
+ <div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; <span class="keywordflow">else</span></div>
819
+ <div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; {</div>
820
+ <div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> shift = rhs;</div>
821
+ <div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; shift.<a class="code" href="classSVF_1_1IntervalValue.html#a144e17cec654e83654298b379ed4ce9f">meet_with</a>(<a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, <a class="code" href="classSVF_1_1IntervalValue.html#a739ab04e16ec1156be71b29d49998a4f">IntervalValue::plus_infinity</a>()));</div>
822
+ <div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <span class="keywordflow">if</span> (shift.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div>
823
+ <div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
824
+ <div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> coeff(1 &lt;&lt; (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>) shift.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>(),</div>
825
+ <div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; shift.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#ac4acd8ca01d2aa1715c18beb46b0ae1d">is_infinity</a>() ? <a class="code" href="classSVF_1_1IntervalValue.html#a739ab04e16ec1156be71b29d49998a4f">IntervalValue::plus_infinity</a>() : 1</div>
826
+ <div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; &lt;&lt; (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>) shift.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
827
+ <div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; <span class="keywordflow">return</span> lhs * coeff;</div>
828
+ <div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; }</div>
829
+ <div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;}</div>
830
+ <div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; </div>
831
+ <div class="line"><a name="l00805"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a4b2b5d8755b9f0c4f82a9f82b4631fee"> 805</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#a4b2b5d8755b9f0c4f82a9f82b4631fee">operator&gt;&gt;</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;rhs)</div>
832
+ <div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;{</div>
833
+ <div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; <span class="comment">//TODO: implement &gt;&gt;</span></div>
834
+ <div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || rhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div>
835
+ <div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
836
+ <div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>() &amp;&amp; rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>())</div>
837
+ <div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
838
+ <div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; <span class="keywordflow">else</span></div>
839
+ <div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; {</div>
840
+ <div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> shift = rhs;</div>
841
+ <div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; shift.<a class="code" href="classSVF_1_1IntervalValue.html#a144e17cec654e83654298b379ed4ce9f">meet_with</a>(<a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, <a class="code" href="classSVF_1_1IntervalValue.html#a739ab04e16ec1156be71b29d49998a4f">IntervalValue::plus_infinity</a>()));</div>
842
+ <div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; <span class="keywordflow">if</span> (shift.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div>
843
+ <div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
844
+ <div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#afcb91d48a79aeba3c78c1a41b0730a73">contains</a>(0))</div>
845
+ <div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; {</div>
846
+ <div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> l(lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>(), -1);</div>
847
+ <div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> u(1, lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>());</div>
848
+ <div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> tmp = l &gt;&gt; rhs;</div>
849
+ <div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; tmp.<a class="code" href="classSVF_1_1IntervalValue.html#a3771eb932069dcad8212009efc411b99">join_with</a>(u &gt;&gt; rhs);</div>
850
+ <div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; tmp.<a class="code" href="classSVF_1_1IntervalValue.html#a3771eb932069dcad8212009efc411b99">join_with</a>(<a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0));</div>
851
+ <div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; <span class="keywordflow">return</span> tmp;</div>
852
+ <div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; }</div>
853
+ <div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <span class="keywordflow">else</span></div>
854
+ <div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; {</div>
855
+ <div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> ll = lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>() &gt;&gt; shift.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>();</div>
856
+ <div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> lu = lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>() &gt;&gt; shift.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>();</div>
857
+ <div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> ul = lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>() &gt;&gt; shift.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>();</div>
858
+ <div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> uu = lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>() &gt;&gt; shift.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>();</div>
859
+ <div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; std::vector&lt;NumericLiteral&gt; vec{ll, lu, ul, uu};</div>
860
+ <div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(<a class="code" href="classSVF_1_1NumericLiteral.html#ab4f45675a9fecb201d0fe05d107fcb97">NumericLiteral::min</a>(vec),</div>
861
+ <div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; <a class="code" href="classSVF_1_1NumericLiteral.html#a9e7a696842de2a4fae08a75d72a807ec">NumericLiteral::max</a>(vec));</div>
862
+ <div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; }</div>
863
+ <div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; }</div>
864
+ <div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160;}</div>
865
+ <div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; </div>
866
+ <div class="line"><a name="l00841"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a8ca7e84917358976240bc88c3cceb0c2"> 841</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#a8ca7e84917358976240bc88c3cceb0c2">operator&amp;</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;rhs)</div>
867
+ <div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160;{</div>
868
+ <div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || rhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div>
869
+ <div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
870
+ <div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() &amp;&amp; rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div>
871
+ <div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; {</div>
872
+ <div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>() &amp; rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>());</div>
873
+ <div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; }</div>
874
+ <div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() &gt;= 0 &amp;&amp; rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() &gt;= 0)</div>
875
+ <div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; {</div>
876
+ <div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>) 0, min(lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>(), rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>()));</div>
877
+ <div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; }</div>
878
+ <div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() &gt;= 0)</div>
879
+ <div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; {</div>
880
+ <div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>) 0, lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>());</div>
881
+ <div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; }</div>
882
+ <div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() &gt;= 0)</div>
883
+ <div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; {</div>
884
+ <div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>) 0, rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>());</div>
885
+ <div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; }</div>
886
+ <div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; <span class="keywordflow">else</span></div>
887
+ <div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; {</div>
888
+ <div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
889
+ <div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; }</div>
890
+ <div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160;}</div>
891
+ <div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; </div>
892
+ <div class="line"><a name="l00868"></a><span class="lineno"><a class="line" href="namespaceSVF.html#abed4354cf0282ae30b8330c0e91008d8"> 868</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#abed4354cf0282ae30b8330c0e91008d8">operator|</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;rhs)</div>
893
+ <div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160;{</div>
894
+ <div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; <span class="keyword">auto</span> next_power_of_2 = [](<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> num)</div>
895
+ <div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; {</div>
896
+ <div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; <span class="keywordtype">int</span> i = 1;</div>
897
+ <div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; <span class="keywordflow">while</span> ((num &gt;&gt; i) != 0)</div>
898
+ <div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; {</div>
899
+ <div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; ++i;</div>
900
+ <div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; }</div>
901
+ <div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; <span class="keywordflow">return</span> 1 &lt;&lt; i;</div>
902
+ <div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; };</div>
903
+ <div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || rhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div>
904
+ <div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
905
+ <div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() &amp;&amp; rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div>
906
+ <div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>() | rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>());</div>
907
+ <div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() &gt;= 0 &amp;&amp; !lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#ac4acd8ca01d2aa1715c18beb46b0ae1d">is_infinity</a>() &amp;&amp;</div>
908
+ <div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() &gt;= 0 &amp;&amp; !rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#ac4acd8ca01d2aa1715c18beb46b0ae1d">is_infinity</a>())</div>
909
+ <div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; {</div>
910
+ <div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> m = std::max(lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>(), rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
911
+ <div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> ub = next_power_of_2(<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>(m+1));</div>
912
+ <div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>) 0, (<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>) ub);</div>
913
+ <div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; }</div>
914
+ <div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; <span class="keywordflow">else</span></div>
915
+ <div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; {</div>
916
+ <div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
917
+ <div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; }</div>
918
+ <div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160;}</div>
919
+ <div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; </div>
920
+ <div class="line"><a name="l00897"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a8803e977797624599af5b0a84fe1de3d"> 897</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#a8803e977797624599af5b0a84fe1de3d">operator^</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;rhs)</div>
921
+ <div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160;{</div>
922
+ <div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; <span class="keyword">auto</span> next_power_of_2 = [](<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> num)</div>
923
+ <div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; {</div>
924
+ <div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; <span class="keywordtype">int</span> i = 1;</div>
925
+ <div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; <span class="keywordflow">while</span> ((num &gt;&gt; i) != 0)</div>
926
+ <div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; {</div>
927
+ <div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; ++i;</div>
928
+ <div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; }</div>
929
+ <div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; <span class="keywordflow">return</span> 1 &lt;&lt; i;</div>
930
+ <div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; };</div>
931
+ <div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || rhs.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div>
932
+ <div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
933
+ <div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() &amp;&amp; rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div>
934
+ <div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>() ^ rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>());</div>
935
+ <div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() &gt;= 0 &amp;&amp; !lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#ac4acd8ca01d2aa1715c18beb46b0ae1d">is_infinity</a>() &amp;&amp;</div>
936
+ <div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() &gt;= 0 &amp;&amp; !rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#ac4acd8ca01d2aa1715c18beb46b0ae1d">is_infinity</a>())</div>
937
+ <div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; {</div>
938
+ <div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> m = std::max(lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>(), rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
939
+ <div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> ub = next_power_of_2(<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>(m+1));</div>
940
+ <div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>) 0, (<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>) ub);</div>
941
+ <div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; }</div>
942
+ <div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; <span class="keywordflow">else</span></div>
943
+ <div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; {</div>
944
+ <div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
945
+ <div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; }</div>
946
+ <div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160;}</div>
947
+ <div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; </div>
948
+ <div class="line"><a name="l00926"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a9f1d12be8c396b73b5a37de2061a24b0"> 926</a></span>&#160;<span class="keyword">inline</span> std::ostream &amp;<a class="code" href="namespaceSVF.html#af95793adab8fb9aa19e19027e73372a6">operator&lt;&lt;</a>(std::ostream &amp;o,</div>
949
+ <div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;<a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>)</div>
950
+ <div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160;{</div>
951
+ <div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>.<a class="code" href="classSVF_1_1IntervalValue.html#ac4896347f704db07695f4b8dfc42aad7">dump</a>(o);</div>
952
+ <div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; <span class="keywordflow">return</span> o;</div>
953
+ <div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160;}</div>
954
+ <div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; </div>
955
+ <div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160;} <span class="comment">// end namespace SVF</span></div>
956
+ <div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160;<span class="preprocessor">#endif //Z3_EXAMPLE_IntervalValue_H</span></div>
905
957
  </div><!-- fragment --></div><!-- contents -->
906
958
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html_a2dd004dda59ee5271081afd082374039"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a2dd004dda59ee5271081afd082374039">SVF::IntervalValue::leq</a></div><div class="ttdeci">bool leq(const IntervalValue &amp;other) const</div><div class="ttdoc">Check current IntervalValue is smaller than or equal to the other.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00290">IntervalValue.h:290</a></div></div>
907
959
  <div class="ttc" id="aclassSVF_1_1NumericLiteral_html_ac154ddeb6516e240e091f4867c4c3593"><div class="ttname"><a href="classSVF_1_1NumericLiteral.html#ac154ddeb6516e240e091f4867c4c3593">SVF::NumericLiteral::to_string</a></div><div class="ttdeci">const std::string to_string() const</div><div class="ttdef"><b>Definition:</b> <a href="NumericLiteral_8h_source.html#l00090">NumericLiteral.h:90</a></div></div>
@@ -909,7 +961,7 @@ $(function() {
909
961
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html_ad51535cb50a03df7a439b4e5b5d305f0"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">SVF::IntervalValue::IntervalValue</a></div><div class="ttdeci">IntervalValue()</div><div class="ttdoc">Create default IntervalValue.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00095">IntervalValue.h:95</a></div></div>
910
962
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html_a739ab04e16ec1156be71b29d49998a4f"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a739ab04e16ec1156be71b29d49998a4f">SVF::IntervalValue::plus_infinity</a></div><div class="ttdeci">static NumericLiteral plus_infinity()</div><div class="ttdoc">Get plus infinity +oo.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00072">IntervalValue.h:72</a></div></div>
911
963
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html_a3c00a3b16192645f667a88bf636f01ff"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a3c00a3b16192645f667a88bf636f01ff">SVF::IntervalValue::_ub</a></div><div class="ttdeci">NumericLiteral _ub</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00050">IntervalValue.h:50</a></div></div>
912
- <div class="ttc" id="anamespaceSVF_html_a1dab362b7d3da3375b60c94e78275293"><div class="ttname"><a href="namespaceSVF.html#a1dab362b7d3da3375b60c94e78275293">SVF::operator&lt;=</a></div><div class="ttdeci">IntervalValue operator&lt;=(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Greater than IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00697">IntervalValue.h:697</a></div></div>
964
+ <div class="ttc" id="anamespaceSVF_html_a1dab362b7d3da3375b60c94e78275293"><div class="ttname"><a href="namespaceSVF.html#a1dab362b7d3da3375b60c94e78275293">SVF::operator&lt;=</a></div><div class="ttdeci">IntervalValue operator&lt;=(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00734">IntervalValue.h:734</a></div></div>
913
965
  <div class="ttc" id="anamespaceSVF_html_ad9d56b31ab074c813b48da4c2e0742aa"><div class="ttname"><a href="namespaceSVF.html#ad9d56b31ab074c813b48da4c2e0742aa">SVF::operator+</a></div><div class="ttdeci">IntervalValue operator+(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Add IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00459">IntervalValue.h:459</a></div></div>
914
966
  <div class="ttc" id="aAbstractValue_8h_html"><div class="ttname"><a href="AbstractValue_8h.html">AbstractValue.h</a></div></div>
915
967
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html_a72d89f686c6239c43ea1ea6fcab3062a"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a72d89f686c6239c43ea1ea6fcab3062a">SVF::IntervalValue::classof</a></div><div class="ttdeci">static bool classof(const AbstractValue *v)</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00211">IntervalValue.h:211</a></div></div>
@@ -921,7 +973,7 @@ $(function() {
921
973
  <div class="ttc" id="anamespaceSVF_html_abf0dfb872989751b13069f859ef408e1"><div class="ttname"><a href="namespaceSVF.html#abf0dfb872989751b13069f859ef408e1">SVF::operator*</a></div><div class="ttdeci">IntervalValue operator*(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Multiply IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00495">IntervalValue.h:495</a></div></div>
922
974
  <div class="ttc" id="aclassSVF_1_1NumericLiteral_html_a8d874a7b6396e8af210c4a36d3234d71"><div class="ttname"><a href="classSVF_1_1NumericLiteral.html#a8d874a7b6396e8af210c4a36d3234d71">SVF::NumericLiteral::is_zero</a></div><div class="ttdeci">bool is_zero() const</div><div class="ttdoc">Check if this is zero.</div><div class="ttdef"><b>Definition:</b> <a href="NumericLiteral_8h_source.html#l00114">NumericLiteral.h:114</a></div></div>
923
975
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html_aa3b742bd0116a6b7bf290286902b470b"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#aa3b742bd0116a6b7bf290286902b470b">SVF::IntervalValue::setUb</a></div><div class="ttdeci">void setUb(const NumericLiteral &amp;ub)</div><div class="ttdoc">Set the upper bound.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00238">IntervalValue.h:238</a></div></div>
924
- <div class="ttc" id="anamespaceSVF_html_af95793adab8fb9aa19e19027e73372a6"><div class="ttname"><a href="namespaceSVF.html#af95793adab8fb9aa19e19027e73372a6">SVF::operator&lt;&lt;</a></div><div class="ttdeci">IntervalValue operator&lt;&lt;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Left binary shift of IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00736">IntervalValue.h:736</a></div></div>
976
+ <div class="ttc" id="anamespaceSVF_html_af95793adab8fb9aa19e19027e73372a6"><div class="ttname"><a href="namespaceSVF.html#af95793adab8fb9aa19e19027e73372a6">SVF::operator&lt;&lt;</a></div><div class="ttdeci">IntervalValue operator&lt;&lt;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Left binary shift of IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00784">IntervalValue.h:784</a></div></div>
925
977
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html_ac06d554ff5f63c43f9b02378800488c1"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#ac06d554ff5f63c43f9b02378800488c1">SVF::IntervalValue::equals</a></div><div class="ttdeci">bool equals(const IntervalValue &amp;other) const</div><div class="ttdoc">Equality comparison.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00326">IntervalValue.h:326</a></div></div>
926
978
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html_aa339a88f42bea8c1adfe0db8ba3a5d2a"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#aa339a88f42bea8c1adfe0db8ba3a5d2a">SVF::IntervalValue::IntervalValue</a></div><div class="ttdeci">IntervalValue(NumericLiteral n)</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00106">IntervalValue.h:106</a></div></div>
927
979
  <div class="ttc" id="anamespaceSVF_html_a366625858f450a1ea5f985a3c83e0f14"><div class="ttname"><a href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">SVF::u64_t</a></div><div class="ttdeci">unsigned long long u64_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00053">SVFType.h:53</a></div></div>
@@ -930,8 +982,8 @@ $(function() {
930
982
  <div class="ttc" id="aclassSVF_1_1AbstractValue_html"><div class="ttname"><a href="classSVF_1_1AbstractValue.html">SVF::AbstractValue</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractValue_8h_source.html#l00045">AbstractValue.h:45</a></div></div>
931
983
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html_a5d73cc2aa0a6ed49e8301fa7b0cd5045"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a5d73cc2aa0a6ed49e8301fa7b0cd5045">SVF::IntervalValue::toString</a></div><div class="ttdeci">const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00441">IntervalValue.h:441</a></div></div>
932
984
  <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>
933
- <div class="ttc" id="anamespaceSVF_html_abed4354cf0282ae30b8330c0e91008d8"><div class="ttname"><a href="namespaceSVF.html#abed4354cf0282ae30b8330c0e91008d8">SVF::operator|</a></div><div class="ttdeci">IntervalValue operator|(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Bitwise OR of IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00820">IntervalValue.h:820</a></div></div>
934
- <div class="ttc" id="anamespaceSVF_html_adeb418bb692b6b0c3498a24927e1068b"><div class="ttname"><a href="namespaceSVF.html#adeb418bb692b6b0c3498a24927e1068b">SVF::operator&lt;</a></div><div class="ttdeci">IntervalValue operator&lt;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Greater than IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00619">IntervalValue.h:619</a></div></div>
985
+ <div class="ttc" id="anamespaceSVF_html_abed4354cf0282ae30b8330c0e91008d8"><div class="ttname"><a href="namespaceSVF.html#abed4354cf0282ae30b8330c0e91008d8">SVF::operator|</a></div><div class="ttdeci">IntervalValue operator|(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Bitwise OR of IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00868">IntervalValue.h:868</a></div></div>
986
+ <div class="ttc" id="anamespaceSVF_html_adeb418bb692b6b0c3498a24927e1068b"><div class="ttname"><a href="namespaceSVF.html#adeb418bb692b6b0c3498a24927e1068b">SVF::operator&lt;</a></div><div class="ttdeci">IntervalValue operator&lt;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00632">IntervalValue.h:632</a></div></div>
935
987
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html_ab7ddcc29a116944a91db24af90d4c144"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#ab7ddcc29a116944a91db24af90d4c144">SVF::IntervalValue::widen_with</a></div><div class="ttdeci">void widen_with(const IntervalValue &amp;other)</div><div class="ttdoc">Current IntervalValue widen with another IntervalValue.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00371">IntervalValue.h:371</a></div></div>
936
988
  <div class="ttc" id="acJSON_8cpp_html_ab6e2ea6dc7bd57d1483413449998230a"><div class="ttname"><a href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a></div><div class="ttdeci">cJSON * n</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02558">cJSON.cpp:2558</a></div></div>
937
989
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html_a0827c976d921894e89ca4ac88ecf3f95"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a0827c976d921894e89ca4ac88ecf3f95">SVF::IntervalValue::_lb</a></div><div class="ttdeci">NumericLiteral _lb</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00047">IntervalValue.h:47</a></div></div>
@@ -939,7 +991,7 @@ $(function() {
939
991
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html_a523826aede7ad22736beed0c8223b6b0"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">SVF::IntervalValue::is_numeral</a></div><div class="ttdeci">bool is_numeral() const</div><div class="ttdoc">Return true if the IntervalValue is a number [num, num].</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00270">IntervalValue.h:270</a></div></div>
940
992
  <div class="ttc" id="aclassSVF_1_1AbstractValue_html_a74bc740e894dfbdb2253bedc2851dd2e"><div class="ttname"><a href="classSVF_1_1AbstractValue.html#a74bc740e894dfbdb2253bedc2851dd2e">SVF::AbstractValue::getAbstractValueKind</a></div><div class="ttdeci">AbstractValueK getAbstractValueKind() const</div><div class="ttdef"><b>Definition:</b> <a href="AbstractValue_8h_source.html#l00069">AbstractValue.h:69</a></div></div>
941
993
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html_a304db5abb4cc7added56dbcbcd94d905"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a304db5abb4cc7added56dbcbcd94d905">SVF::IntervalValue::IntervalValue</a></div><div class="ttdeci">IntervalValue(u32_t lb, u32_t ub)</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00118">IntervalValue.h:118</a></div></div>
942
- <div class="ttc" id="anamespaceSVF_html_aedd9d023a68dddd66314be63bb8e48d2"><div class="ttname"><a href="namespaceSVF.html#aedd9d023a68dddd66314be63bb8e48d2">SVF::operator&gt;</a></div><div class="ttdeci">IntervalValue operator&gt;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Greater than IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00581">IntervalValue.h:581</a></div></div>
994
+ <div class="ttc" id="anamespaceSVF_html_aedd9d023a68dddd66314be63bb8e48d2"><div class="ttname"><a href="namespaceSVF.html#aedd9d023a68dddd66314be63bb8e48d2">SVF::operator&gt;</a></div><div class="ttdeci">IntervalValue operator&gt;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00581">IntervalValue.h:581</a></div></div>
943
995
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html_add3acad151d5af6c9a5f692f7a01e65b"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">SVF::IntervalValue::top</a></div><div class="ttdeci">static IntervalValue top()</div><div class="ttdoc">Create the IntervalValue [-oo, +oo].</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00083">IntervalValue.h:83</a></div></div>
944
996
  <div class="ttc" id="aclassSVF_1_1NumericLiteral_html_ab4f45675a9fecb201d0fe05d107fcb97"><div class="ttname"><a href="classSVF_1_1NumericLiteral.html#ab4f45675a9fecb201d0fe05d107fcb97">SVF::NumericLiteral::min</a></div><div class="ttdeci">friend NumericLiteral min(const NumericLiteral &amp;lhs, const NumericLiteral &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="NumericLiteral_8h_source.html#l00389">NumericLiteral.h:389</a></div></div>
945
997
  <div class="ttc" id="anamespaceSVF_html_a2f3ddba25bc972f70300128369e4cd1d"><div class="ttname"><a href="namespaceSVF.html#a2f3ddba25bc972f70300128369e4cd1d">SVF::operator%</a></div><div class="ttdeci">IntervalValue operator%(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Divide IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00541">IntervalValue.h:541</a></div></div>
@@ -950,7 +1002,7 @@ $(function() {
950
1002
  <div class="ttc" id="aNumericLiteral_8h_html"><div class="ttname"><a href="NumericLiteral_8h.html">NumericLiteral.h</a></div></div>
951
1003
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html_a8a9edd3eb9c31ecff090953301bf822d"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a8a9edd3eb9c31ecff090953301bf822d">SVF::IntervalValue::set_to_top</a></div><div class="ttdeci">void set_to_top()</div><div class="ttdoc">Set current IntervalValue as top.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00283">IntervalValue.h:283</a></div></div>
952
1004
  <div class="ttc" id="acJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
953
- <div class="ttc" id="anamespaceSVF_html_a8ca7e84917358976240bc88c3cceb0c2"><div class="ttname"><a href="namespaceSVF.html#a8ca7e84917358976240bc88c3cceb0c2">SVF::operator&amp;</a></div><div class="ttdeci">IntervalValue operator&amp;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Bitwise AND of IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00793">IntervalValue.h:793</a></div></div>
1005
+ <div class="ttc" id="anamespaceSVF_html_a8ca7e84917358976240bc88c3cceb0c2"><div class="ttname"><a href="namespaceSVF.html#a8ca7e84917358976240bc88c3cceb0c2">SVF::operator&amp;</a></div><div class="ttdeci">IntervalValue operator&amp;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Bitwise AND of IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00841">IntervalValue.h:841</a></div></div>
954
1006
  <div class="ttc" id="anamespaceSVF_html_a23c136994bc83222e1913d43ec3e7468"><div class="ttname"><a href="namespaceSVF.html#a23c136994bc83222e1913d43ec3e7468">SVF::operator/</a></div><div class="ttdeci">IntervalValue operator/(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Divide IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00515">IntervalValue.h:515</a></div></div>
955
1007
  <div class="ttc" id="anamespaceSVF_html_a4bddb7dbd28d3c0deb3cd35e48179a36"><div class="ttname"><a href="namespaceSVF.html#a4bddb7dbd28d3c0deb3cd35e48179a36">SVF::operator-</a></div><div class="ttdeci">IntervalValue operator-(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Subtract IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00477">IntervalValue.h:477</a></div></div>
956
1008
  <div class="ttc" id="aclassSVF_1_1NumericLiteral_html_ab8ea498ca849eb969e721772d432b29d"><div class="ttname"><a href="classSVF_1_1NumericLiteral.html#ab8ea498ca849eb969e721772d432b29d">SVF::NumericLiteral::geq</a></div><div class="ttdeci">bool geq(const NumericLiteral &amp;rhs) const</div><div class="ttdef"><b>Definition:</b> <a href="NumericLiteral_8h_source.html#l00155">NumericLiteral.h:155</a></div></div>
@@ -983,17 +1035,17 @@ $(function() {
983
1035
  <div class="ttc" id="aclassSVF_1_1NumericLiteral_html_aa01880cdfc3b9504bef63a3bf315c54b"><div class="ttname"><a href="classSVF_1_1NumericLiteral.html#aa01880cdfc3b9504bef63a3bf315c54b">SVF::NumericLiteral::leq</a></div><div class="ttdeci">bool leq(const NumericLiteral &amp;rhs) const</div><div class="ttdoc">Less then or equal.</div><div class="ttdef"><b>Definition:</b> <a href="NumericLiteral_8h_source.html#l00132">NumericLiteral.h:132</a></div></div>
984
1036
  <div class="ttc" id="aclassSVF_1_1NumericLiteral_html_a538deb0b9e88fd99b9768f5775e58ca7"><div class="ttname"><a href="classSVF_1_1NumericLiteral.html#a538deb0b9e88fd99b9768f5775e58ca7">SVF::NumericLiteral::is_plus_infinity</a></div><div class="ttdeci">bool is_plus_infinity() const</div><div class="ttdoc">Check if this is plus infinity.</div><div class="ttdef"><b>Definition:</b> <a href="NumericLiteral_8h_source.html#l00102">NumericLiteral.h:102</a></div></div>
985
1037
  <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>
986
- <div class="ttc" id="anamespaceSVF_html_a08938c05911dac4ebd102adfafd14d24"><div class="ttname"><a href="namespaceSVF.html#a08938c05911dac4ebd102adfafd14d24">SVF::operator&gt;=</a></div><div class="ttdeci">IntervalValue operator&gt;=(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Greater than IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00658">IntervalValue.h:658</a></div></div>
1038
+ <div class="ttc" id="anamespaceSVF_html_a08938c05911dac4ebd102adfafd14d24"><div class="ttname"><a href="namespaceSVF.html#a08938c05911dac4ebd102adfafd14d24">SVF::operator&gt;=</a></div><div class="ttdeci">IntervalValue operator&gt;=(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00684">IntervalValue.h:684</a></div></div>
987
1039
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html_a312f9257f8562fce510c1257d8a6e4df"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a312f9257f8562fce510c1257d8a6e4df">SVF::IntervalValue::geq</a></div><div class="ttdeci">bool geq(const IntervalValue &amp;other) const</div><div class="ttdoc">Check current IntervalValue is greater than or equal to the other.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00308">IntervalValue.h:308</a></div></div>
988
1040
  <div class="ttc" id="anamespaceSVF_html_ad781b0b14e89773e774072b280658ef3"><div class="ttname"><a href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">SVF::s64_t</a></div><div class="ttdeci">signed long long s64_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00054">SVFType.h:54</a></div></div>
989
1041
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html_ad1a81f516a61f54a595fa15444e2001b"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#ad1a81f516a61f54a595fa15444e2001b">SVF::IntervalValue::IntervalValue</a></div><div class="ttdeci">IntervalValue(double n)</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00104">IntervalValue.h:104</a></div></div>
990
1042
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html_ae081b5c462f8ed5b306719822e35cea9"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#ae081b5c462f8ed5b306719822e35cea9">SVF::IntervalValue::getNumeral</a></div><div class="ttdeci">s64_t getNumeral() const</div><div class="ttdoc">Return.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00263">IntervalValue.h:263</a></div></div>
991
1043
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html_a50d11cbc14f717d679caafe3cf59e0c5"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a50d11cbc14f717d679caafe3cf59e0c5">SVF::IntervalValue::IntervalValue</a></div><div class="ttdeci">IntervalValue(double lb, double ub)</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00114">IntervalValue.h:114</a></div></div>
992
1044
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html_a3771eb932069dcad8212009efc411b99"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a3771eb932069dcad8212009efc411b99">SVF::IntervalValue::join_with</a></div><div class="ttdeci">void join_with(const IntervalValue &amp;other)</div><div class="ttdoc">Current IntervalValue joins with another IntervalValue.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00345">IntervalValue.h:345</a></div></div>
993
- <div class="ttc" id="anamespaceSVF_html_a8803e977797624599af5b0a84fe1de3d"><div class="ttname"><a href="namespaceSVF.html#a8803e977797624599af5b0a84fe1de3d">SVF::operator^</a></div><div class="ttdeci">IntervalValue operator^(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Bitwise XOR of IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00849">IntervalValue.h:849</a></div></div>
1045
+ <div class="ttc" id="anamespaceSVF_html_a8803e977797624599af5b0a84fe1de3d"><div class="ttname"><a href="namespaceSVF.html#a8803e977797624599af5b0a84fe1de3d">SVF::operator^</a></div><div class="ttdeci">IntervalValue operator^(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Bitwise XOR of IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00897">IntervalValue.h:897</a></div></div>
994
1046
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html_ac3736c3e3129cfdb6ee415ef64c2e75c"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#ac3736c3e3129cfdb6ee415ef64c2e75c">SVF::IntervalValue::IntervalValue</a></div><div class="ttdeci">IntervalValue(s32_t lb, s32_t ub)</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00116">IntervalValue.h:116</a></div></div>
995
1047
  <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>
996
- <div class="ttc" id="anamespaceSVF_html_a4b2b5d8755b9f0c4f82a9f82b4631fee"><div class="ttname"><a href="namespaceSVF.html#a4b2b5d8755b9f0c4f82a9f82b4631fee">SVF::operator&gt;&gt;</a></div><div class="ttdeci">IntervalValue operator&gt;&gt;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Left binary shift of IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00757">IntervalValue.h:757</a></div></div>
1048
+ <div class="ttc" id="anamespaceSVF_html_a4b2b5d8755b9f0c4f82a9f82b4631fee"><div class="ttname"><a href="namespaceSVF.html#a4b2b5d8755b9f0c4f82a9f82b4631fee">SVF::operator&gt;&gt;</a></div><div class="ttdeci">IntervalValue operator&gt;&gt;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Left binary shift of IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00805">IntervalValue.h:805</a></div></div>
997
1049
  <!-- start footer part -->
998
1050
  <hr class="footer"/><address class="footer"><small>
999
1051
  Generated by &#160;<a href="http://www.doxygen.org/index.html">